11.5MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通マイクロエレクトロニクス
CONTROLLER MANUAL
CM44-10120-4
F2MC-16LX
16 ビット・マイクロコントローラ
MB90460/465 シリーズ
ハードウェアマニュアル
F2MC-16LX
16 ビット・マイクロコントローラ
MB90460/465 シリーズ
ハードウェアマニュアル
富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。
ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。
開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。
「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目
をリストにしたものです。
http://edevice.fujitsu.com/micom/jp-support/
富士通マイクロエレクトロニクス株式会社
はじめに
■ 本書の目的と対象読者
富士通マイクロエレクトロニクス製品につきまして , 平素より格別のご愛読を賜り厚
くお礼申し上げます。
MB90460/465 シリーズは , ASIC(Application Specific IC)対応が可能なオリジナル 16
ビット・ワンチップマイクロコントローラである F2MC-16LX ファミリの汎用品の 1 つ
として開発された製品です。
本書は , 実際にこの半導体を使って製品を設計する技術者の方を対象に , MB90460/465
シリーズの機能や動作について記載しています。本書をご一読ください。
■ 商標
F2MCは, FUJITSU Flexible Microcontrollerの略で富士通マイクロエレクトロニクス株式
会社の商標です。
その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録
商標です。
i
■ 本書の全体構成
本書は , 以下に示す 24 の章および付録から構成されています。
第 1 章 概要
MB90460/465 シリーズの主な特長と基本仕様について説明します。
第 2 章 デバイスの取扱い について
デバイスの取扱い上の注意について説明します。
第 3 章 CPU
MB90460/465 シリーズの機能と動作について説明します。
第 4 章 リセット
MB90460/465 シリーズのリセットについて説明します。
第 5 章 クロック
MB90460/465 シリーズのクロックについて説明します。
第 6 章 低消費電力モード
MB90460/465 シリーズ低消費電力モードについて説明します。
第 7 章 割込み
MB90460/465 シリーズの割込みと拡張インテリジェント I/O サービス(EI2OS)に
ついて説明します。
第 8 章 モード設定
MB90460/465 シリーズの動作モードについて説明します。
第 9 章 I/O ポート
I/O ポートの機能と動作について説明します。
第 10 章 タイムベースタイマ
タイムベースタイマの機能と動作について説明します。
第 11 章 ウォッチドッグタイマ
ウォッチドッグタイマの機能と動作について説明します。
第 12 章 16 ビットリロードタイマ
16 ビットリロードタイマの機能と動作について説明します。
第 13 章 16 ビット PPG タイマ
16 ビット PPG タイマの機能と動作について説明します(MB90467 では , PPG1 タ
イマ ch.1 未搭載となります)。
第 14 章 多機能タイマ
多機能タイマの機能と動作について説明します。
第 15 章 マルチパルスジェネレータ
マルチパルスジェネレータの機能と動作について説明します(MB90467 では , 未
搭載となります)。
第 16 章 PWC タイマ
PWC タイマの機能と動作について説明します(MB90467 では , PWC タイマ ch.0
未搭載となります)。
ii
第 17 章 UART
UART の機能と動作について説明します。
第 18 章 DTP/ 外部割込み
DTP/ 外部割込みの機能と動作について説明します。
第 19 章 遅延割込み発生モジュール
遅延割込み発生モジュールの機能と動作について説明します。
第 20 章 8/10 ビット A/D コンバータ
8/10 ビット A/D コンバータの機能と動作について説明します。
第 21 章 アドレス一致検出機能
アドレス一致検出機能の機能と動作について説明します。
第 22 章 ROM ミラー機能 選択モジュール
ROM ミラー機能選択モジュールの機能と動作について説明します。
第 23 章 512K/1024K ビット フラッシュメモリ
512K/1024K ビットフラッシュメモリの機能と動作について説明します。
第 24 章 フラッシュシリアル 書込み接続例
横河ディジタルコンピュータ株式会社製フラッシュマイコンプログラマを用いた
場合の , シリアル書込み接続例について説明します。
付録
付録では , I/O マップ , 命令などを記載します。
iii
•
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ
い。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ
たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ
ては , 当社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し
たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性
が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。
ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ
い。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関
連法規等の規制をご確認の上 , 必要な手続きをおとりください。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。
Copyright© 2002-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved.
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
1.7
第2章
2.1
第3章
概要 .............................................................................................................1
MB90460/465 シリーズの特長 ............................................................................................... 2
MB90460/465 シリーズの製品一覧 ........................................................................................ 5
MB90460/465 シリーズのブロックダイヤグラム .................................................................. 7
端子配列図.............................................................................................................................. 8
外形寸法図............................................................................................................................ 11
I/O 端子と端子機能説明........................................................................................................ 14
I/O 回路の種類 ...................................................................................................................... 19
デバイスの取扱いについて .......................................................................23
デバイス取扱い上の注意事項 ............................................................................................... 24
CPU...........................................................................................................27
3.1 CPU の概要 .......................................................................................................................... 28
3.2 メモリ空間............................................................................................................................ 29
3.3 メモリマップ ........................................................................................................................ 31
3.4 アドレス指定 ........................................................................................................................ 33
3.4.1
リニア方式によるアドレス指定 ................................................................................. 34
3.4.2
バンク方式によるアドレス指定 ................................................................................. 35
3.5 多バイト長データのメモリ配置 ........................................................................................... 37
3.6 レジスタ ............................................................................................................................... 39
3.7 専用レジスタ ........................................................................................................................ 40
3.7.1
アキュムレータ(A).................................................................................................. 42
3.7.2
スタックポインタ (USP, SSP)................................................................................ 45
3.7.3
プロセッサステータス(PS)..................................................................................... 47
3.7.4
コンディションコードレジスタ(PS:CCR).............................................................. 48
3.7.5
レジスタバンクポインタ(PS:RP)............................................................................ 50
3.7.6
割込みレベルマスクレジスタ(PS:ILM).................................................................... 51
3.7.7
プログラムカウンタ(PC)......................................................................................... 52
3.7.8
ダイレクトページレジスタ(DPR)........................................................................... 53
3.7.9
バンクレジスタ(PCB, DTB, USB, SSB, ADB)........................................................ 54
3.8 汎用レジスタ ........................................................................................................................ 55
3.9 プリフィックスコード.......................................................................................................... 57
3.9.1
バンクセレクトプリフィックス(PCB, DTB, ADB, SPB)......................................... 58
3.9.2
コモンレジスタバンクプリフィックス(CMR)......................................................... 60
3.9.3
フラグ変化抑止プリフィックス(NCC).................................................................... 61
3.9.4
プリフィックスコードに関する制約 .......................................................................... 62
3.9.5
「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意 ................................................ 64
第4章
4.1
4.2
4.3
4.4
リセット....................................................................................................67
リセットの概要 .................................................................................................................... 68
リセット要因と発振安定待ち時間........................................................................................ 70
外部リセット端子 ................................................................................................................. 71
リセット動作 ........................................................................................................................ 72
v
4.5
4.6
第5章
5.1
5.2
5.3
5.4
5.5
5.6
第6章
リセット要因フラグビット................................................................................................... 74
リセットによる各端子の状態 ............................................................................................... 77
クロック....................................................................................................79
クロックの概要 .................................................................................................................... 80
クロック発生部のブロックダイヤグラム ............................................................................. 82
クロック選択レジスタ(CKSCR)........................................................................................ 84
クロックモード .................................................................................................................... 86
発振安定待ち時間 ................................................................................................................. 88
振動子と外部クロックの接続 ............................................................................................... 89
低消費電力モード .....................................................................................91
6.1 低消費電力モードの概要 ...................................................................................................... 92
6.2 低消費電力制御回路のブロックダイヤグラム...................................................................... 95
6.3 低消費電力モード制御レジスタ (LPMCR)........................................................................ 97
6.4 CPU 間欠動作モード .......................................................................................................... 100
6.5 スタンバイモード ............................................................................................................... 101
6.5.1
スリープモード ........................................................................................................ 102
6.5.2
タイムベースタイマモード ...................................................................................... 105
6.5.3
ストップモード ........................................................................................................ 107
6.6 状態遷移図.......................................................................................................................... 109
6.7 スタンバイモード , リセットの端子状態............................................................................ 110
6.8 低消費電力モード使用上の注意 ......................................................................................... 111
第7章
割込み .....................................................................................................113
7.1 割込み ................................................................................................................................. 114
7.2 割込み要因と割込みベクタ................................................................................................. 116
7.3 割込み制御レジスタとリソース ......................................................................................... 119
7.3.1
割込み制御レジスタ(ICR00 ∼ ICR15).................................................................. 120
7.3.2
割込み制御レジスタの機能 ...................................................................................... 122
7.4 ハードウェア割込み ........................................................................................................... 125
7.4.1
ハードウェア割込み動作 .......................................................................................... 128
7.4.2
割込み処理 ............................................................................................................... 130
7.4.3
ハードウェア割込み使用手順................................................................................... 131
7.4.4
複数の割込み ............................................................................................................ 132
7.4.5
ハードウェア割込みの処理に要する時間................................................................. 134
7.5 ソフトウェア割込み ........................................................................................................... 136
7.6 拡張インテリジェント I/O サービス(EI2OS)からの割込み............................................ 138
7.6.1
拡張インテリジェント I/O サービス(EI2OS)のディスクリプタ(ISD)............... 140
7.6.2
拡張インテリジェント I/O サービス(EI2OS)のディスクリプタ(ISD)の
レジスタ構成 ................................................................................................................. 141
7.6.3
拡張インテリジェント I/O サービス(EI2OS)の動作 ............................................ 144
7.6.4
拡張インテリジェント I/O サービス(EI2OS)の使用手順 ..................................... 145
7.6.5
拡張インテリジェント I/O サービス(EI2OS)の処理時間 ..................................... 146
7.7 例外処理割込み .................................................................................................................. 148
7.8 割込み処理時のスタック動作 ............................................................................................. 149
7.9 割込み処理のプログラム例................................................................................................. 151
vi
第8章
8.1
8.2
8.3
モード設定 ..............................................................................................155
モード設定.......................................................................................................................... 156
モード端子(MD2 ∼ MD0)................................................................................................ 157
モードデータレジスタ........................................................................................................ 158
第9章
I/O ポート................................................................................................161
9.1 I/O ポートの概要 ................................................................................................................ 162
9.2 I/O ポートのレジスタ ......................................................................................................... 164
9.3 ポート 0 .............................................................................................................................. 165
9.3.1
ポート 0 のレジスタ(PDR0, DDR0, RDR0).......................................................... 167
9.3.2
ポート 0 の動作 ........................................................................................................ 169
9.4 ポート 1 .............................................................................................................................. 171
9.4.1
ポート 1 のレジスタ(PDR1, DDR1, RDR1).......................................................... 173
9.4.2
ポート 1 の動作 ........................................................................................................ 175
9.5 ポート 2 .............................................................................................................................. 177
9.5.1
ポート 2 のレジスタ(PDR2, DDR2)...................................................................... 179
9.5.2
ポート 2 の動作 ........................................................................................................ 180
9.6 ポート 3 .............................................................................................................................. 182
9.6.1
ポート 3 のレジスタ(PDR3, DDR3)...................................................................... 184
9.6.2
ポート 3 の動作 ........................................................................................................ 185
9.7 ポート 4 .............................................................................................................................. 187
9.7.1
ポート 4 のレジスタ(PDR4, DDR4)...................................................................... 189
9.7.2
ポート 4 の動作 ........................................................................................................ 190
9.8 ポート 5 .............................................................................................................................. 192
9.8.1
ポート 5 のレジスタ(PDR5, DDR5, ADER).......................................................... 194
9.8.2
ポート 5 の動作 ........................................................................................................ 196
9.9 ポート 6 .............................................................................................................................. 198
9.9.1
ポート 6 のレジスタ(PDR6, DDR6)...................................................................... 200
9.9.2
ポート 6 の動作 ........................................................................................................ 201
9.10 I/O ポートのプログラム例 .................................................................................................. 203
第 10 章
10.1
10.2
10.3
10.4
10.5
10.6
10.7
タイムベースタイマの概要................................................................................................. 206
タイムベースタイマの構成................................................................................................. 208
タイムベースタイマ制御レジスタ (TBTC)...................................................................... 209
タイムベースタイマ割込み................................................................................................. 211
タイムベースタイマの動作................................................................................................. 212
タイムベースタイマ使用上の注意...................................................................................... 215
タイムベースタイマのプログラム例 .................................................................................. 216
第 11 章
11.1
11.2
11.3
11.4
11.5
11.6
タイムベースタイマ................................................................................205
ウォッチドッグタイマ ............................................................................217
ウォッチドッグタイマの概要 ............................................................................................. 218
ウォッチドッグタイマの構成 ............................................................................................. 219
ウォッチドッグタイマ制御レジスタ(WDTC).................................................................. 220
ウォッチドッグタイマの動作 ............................................................................................. 222
ウォッチドッグタイマ使用上の注意 .................................................................................. 224
ウォッチドッグタイマのプログラム例............................................................................... 225
vii
第 12 章
16 ビットリロードタイマ .......................................................................227
12.1 16 ビットリロードタイマの概要 ........................................................................................ 228
12.2 16 ビットリロードタイマのブロックダイヤグラム ........................................................... 231
12.3 16 ビットリロードタイマの端子 ........................................................................................ 233
12.4 16 ビットリロードタイマのレジスタ................................................................................. 234
12.4.1
タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1)......................................... 235
12.4.2
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1).......................................... 237
12.4.3
16 ビットタイマレジスタ上位 , 下位(TMRH0, TMRH1, TMRL0, TMRL1)............ 239
12.4.4
16 ビットリロードレジスタ上位 , 下位
(TMRDH0, TMRDH1, TMRDL0, TMRDL1).................................................................. 240
12.5 16 ビットリロードタイマの割込み .................................................................................... 241
12.6 16 ビットリロードタイマの動作 ........................................................................................ 242
12.6.1
内部クロックモード(リロードモード)................................................................... 244
12.6.2
内部クロックモード(ワンショットモード)........................................................... 247
12.6.3
イベントカウントモード .......................................................................................... 250
12.7 16 ビットリロードタイマ使用上の注意 ............................................................................. 252
12.8 16 ビットリロードタイマのプログラム例.......................................................................... 253
第 13 章
16 ビット PPG タイマ ............................................................................257
13.1 16 ビット PPG タイマの概要 ............................................................................................. 258
13.2 16 ビット PPG タイマのブロックダイヤグラム ................................................................ 259
13.3 16 ビット PPG タイマの端子 ............................................................................................. 260
13.4 16 ビット PPG タイマのレジスタ...................................................................................... 262
13.4.1
PPG ダウンカウンタレジスタ(PDCRH, PDCRL0 ∼ PDCRL2)........................... 264
13.4.2
PPG 周期設定バッファレジスタ(PCSRH, PCSRL0 ∼ PCSRL2)........................ 265
13.4.3
PPG デューティ設定バッファレジスタ(PDUTH, PDUTL0 ∼ PDUTL2).............. 266
13.4.4
PPG 状態制御レジスタ(PCNTH, PCNTL0 ∼ PCNTL2)....................................... 267
13.5 16 ビット PPG タイマ割込み ............................................................................................. 271
13.6 16 ビット PPG タイマの動作 ............................................................................................. 273
13.7 16 ビット PPG タイマ使用上の注意 .................................................................................. 277
13.8 16 ビット PPG タイマのプログラム例............................................................................... 278
第 14 章
多機能タイマ...........................................................................................281
14.1 多機能タイマの概要 ........................................................................................................... 282
14.2 多機能タイマのブロックダイヤグラム............................................................................... 284
14.3 多機能タイマの端子 ........................................................................................................... 288
14.4 多機能タイマのレジスタ .................................................................................................... 290
14.4.1
コンペアクリアバッファレジスタ(CPCLRBH, CPCLRBL)/
コンペアクリアレジスタ(CPCLRH, CPCLRL)........................................................... 294
14.4.2
タイマデータレジスタ(TCDTH, TCDTL).............................................................. 295
14.4.3
タイマ状態制御レジスタ(TCCSH, TCCSL).......................................................... 296
14.4.4
アウトプットコンペアバッファレジスタ(OCCPBH, OCCPBL0 ∼ OCCPBL5)/
アウトプットコンペアレジスタ(OCCPH, OCCPL0 ∼ OCCPL5).............................. 302
14.4.5
コンペア制御レジスタ(OCSH, OCSL0 ∼ OCSL5)............................................... 304
14.4.6
インプットキャプチャデータレジスタ(IPCPH, IPCPL0 ∼ IPCPL3).................... 310
14.4.7
インプットキャプチャ状態制御 /PPG 出力制御レジスタ
(ICSH23, ICSL23, PICSH01, PICSL01)....................................................................... 311
14.4.8
16 ビットデッドタイマレジスタ(TMRRH, TMRRL0 ∼ TMRRL2)....................... 318
14.4.9
16 ビットデッドタイマ制御レジスタ(DTCR0 ∼ DTCR2).................................... 319
14.4.10
波形制御レジスタ(SIGCR).................................................................................... 328
viii
14.5 多機能タイマ割込み ........................................................................................................... 330
14.6 多機能タイマの動作 ........................................................................................................... 334
14.6.1
16 ビットフリーランタイマの動作 .......................................................................... 335
14.6.2
16 ビットアウトプットコンペアの動作 ................................................................... 341
14.6.3
16 ビットインプットキャプチャの動作 ................................................................... 346
14.6.4
波形ジェネレータの動作 .......................................................................................... 348
14.7 多機能タイマ使用上の注意................................................................................................. 360
14.8 多機能タイマのプログラム例 ............................................................................................. 363
第 15 章
マルチパルスジェネレータ .....................................................................367
15.1 マルチパルスジェネレータの概要...................................................................................... 368
15.2 マルチパルスジェネレータのブロックダイヤグラム ......................................................... 372
15.3 マルチパルスジェネレータの端子...................................................................................... 379
15.4 マルチパルスジェネレータのレジスタ............................................................................... 381
15.4.1
出力制御レジスタ上位 , 下位(OPCUR, OPCLR)................................................... 384
15.4.2
出力データレジスタ上位 , 下位(OPDRH, OPDRL)............................................... 388
15.4.3
出力データバッファレジスタ(OPDBR0 ∼ OPDBRB).......................................... 391
15.4.4
入力制御レジスタ上位 , 下位(IPCUR, IPCLR)...................................................... 394
15.4.5
コンペアクリアレジスタ上位 , 下位(CPCRH, CPCRL)........................................ 398
15.4.6
タイマバッファレジスタ上位 , 下位(TMBRH, TMBRL)........................................ 399
15.4.7
ノイズキャンセル制御レジスタ(NCCR)............................................................... 400
15.4.8
タイマ状態制御レジスタ(TCSR)........................................................................... 402
15.5 マルチパルスジェネレータの割込み .................................................................................. 404
15.6 マルチパルスジェネレータの動作...................................................................................... 407
15.6.1
位置検出の動作 ........................................................................................................ 409
15.6.2
データ書込み制御ユニットの動作............................................................................ 411
15.6.3
出力データバッファレジスタの動作 ........................................................................ 415
15.6.4
出力データレジスタへのデータ転送動作................................................................. 417
15.6.5
DTTI 入力制御の動作 ............................................................................................... 431
15.6.6
ノイズ除去機能の動作 ............................................................................................. 434
15.6.7
16 ビットタイマの動作 ............................................................................................ 435
15.7 マルチパルスジェネレータ使用上の注意 ........................................................................... 439
15.8 マルチパルスジェネレータのプログラム例 ....................................................................... 441
第 16 章
PWC タイマ ............................................................................................443
16.1 PWC タイマの概要............................................................................................................. 444
16.2 PWC タイマのブロックダイヤグラム ................................................................................ 445
16.3 PWC タイマの端子............................................................................................................. 446
16.4 PWC タイマのレジスタ...................................................................................................... 448
16.4.1
PWC 状態制御レジスタ(PWCSH0, PWCSH1, PWCSL0, PWCSL1).................... 449
16.4.2
PWC データバッファレジスタ(PWCH0, PWCH1, PWCL0, PWCL1).................. 454
16.4.3
分周比制御レジスタ(DIV0, DIV1).......................................................................... 455
16.5 PWC タイマの割込み ......................................................................................................... 456
16.6 PWC タイマの動作............................................................................................................. 458
16.6.1
動作モードの選択..................................................................................................... 461
16.6.2
タイマとパルス幅測定の起動 / 停止と , タイマクリア............................................. 462
16.6.3
タイマモード時の動作 ............................................................................................. 464
16.6.4
パルス幅測定モード時の動作................................................................................... 467
16.7 PWC タイマ使用上の注意 .................................................................................................. 472
ix
16.8 PWC タイマのプログラム例 .............................................................................................. 474
第 17 章
UART ......................................................................................................477
17.1 UART の概要 ...................................................................................................................... 478
17.2 UART のブロックダイヤグラム ......................................................................................... 480
17.3 UART の構成 ...................................................................................................................... 483
17.3.1
シリアル制御レジスタ 0, 1(SCR0, SCR1)............................................................ 485
17.3.2
シリアルモードレジスタ 0, 1(SMR0, SMR1)........................................................ 487
17.3.3
シリアルステータスレジスタ 0, 1(SSR0, SSR1).................................................. 489
17.3.4
シリアル入力データレジスタ 0, 1(SIDR0, SIDR1),
シリアル出力データレジスタ 0, 1(SODR0, SODR1)................................................. 492
17.3.5
通信プリスケーラ制御レジスタ(CDCR0, CDCR1)............................................... 494
17.4 UART の割込み................................................................................................................... 495
17.4.1
受信割込み発生とフラグ設定のタイミング ............................................................. 497
17.4.2
送信割込み発生とフラグ設定のタイミング ............................................................. 499
17.5 UART のボーレート ........................................................................................................... 500
17.5.1
専用ボーレートジェネレータによるボーレート ...................................................... 502
17.5.2
内部タイマ(16 ビットリロードタイマ)によるボーレート................................... 505
17.5.3
外部クロックによるボーレート ............................................................................... 507
17.6 UART の動作説明 ............................................................................................................... 508
17.6.1
非同期モード(動作モード 0, 1)時の動作 ............................................................. 510
17.6.2
クロック同期モード(動作モード 2)時の動作....................................................... 514
17.6.3
双方向通信機能(動作モード 0, 2).......................................................................... 516
17.6.4
マスタ / スレーブ型通信機能(マルチプロセッサモード時)................................... 518
17.7 UART 使用上の注意 ........................................................................................................... 521
17.8 UART のプログラム例........................................................................................................ 522
第 18 章
DTP/ 外部割込み .....................................................................................525
18.1 DTP/ 外部割込みの概要...................................................................................................... 526
18.2 DTP/ 外部割込みのブロックダイヤグラム ......................................................................... 527
18.3 DTP/ 外部割込みの構成...................................................................................................... 529
18.3.1
DTP/ 外部割込み要因レジスタ(EIRR)................................................................... 530
18.3.2
DTP/ 外部割込み許可レジスタ(ENIR)................................................................... 531
18.3.3
検出レベル設定レジスタ , 上位(ELVRH).............................................................. 533
18.3.4
検出レベル設定レジスタ , 下位(ELVRL)............................................................... 534
18.4 DTP/ 外部割込みの動作説明............................................................................................... 535
18.4.1
外部割込み機能 ........................................................................................................ 538
18.4.2
DTP 機能 .................................................................................................................. 539
18.5 DTP/ 外部割込み使用上の注意 ........................................................................................... 540
18.6 DTP/ 外部割込み回路のプログラム例 ................................................................................ 542
第 19 章
遅延割込み発生モジュール .....................................................................545
19.1 遅延割込み発生モジュールの概要...................................................................................... 546
19.2 遅延割込み発生モジュールのブロックダイヤグラム ......................................................... 547
19.3 遅延割込み発生モジュールの構成...................................................................................... 548
19.3.1
遅延割込み要求発生 / 解除レジスタ(DIRR)........................................................... 549
19.4 遅延割込み発生モジュールの動作説明............................................................................... 550
19.5 遅延割込み発生モジュール使用上の注意 ........................................................................... 551
19.6 遅延割込み発生モジュールのプログラム例 ....................................................................... 552
x
第 20 章
8/10 ビット A/D コンバータ....................................................................553
20.1 8/10 ビット A/D コンバータの概要 .................................................................................... 554
20.2 8/10 ビット A/D コンバータのブロックダイヤグラム........................................................ 556
20.3 8/10 ビット A/D コンバータの端子 .................................................................................... 558
20.4 8/10 ビット A/D コンバータのレジスタ構成 ...................................................................... 560
20.4.1
A/D 制御ステータスレジスタ 1(ADCS1)............................................................... 561
20.4.2
A/D 制御ステータスレジスタ 0(ADCS0)............................................................... 564
20.4.3
A/D データレジスタ(ADCR0, ADCR1).................................................................. 567
20.5 8/10 ビット A/D コンバータの割込み................................................................................. 569
20.6 8/10 ビット A/D コンバータの動作 .................................................................................... 570
20.6.1
EI2OS を使用した場合の変換動作 ........................................................................... 573
20.6.2
A/D 変換データ保護機能 .......................................................................................... 574
20.7 8/10 ビット A/D コンバータ使用上の注意.......................................................................... 576
20.8 8/10 ビット A/D コンバータのプログラム例 1
(EI2OS を使用した場合の単発変換モード)....................................................................... 577
20.9 8/10 ビット A/D コンバータのプログラム例 2
(EI2OS を使用した場合の連続変換モード)....................................................................... 579
20.10 8/10 ビット A/D コンバータのプログラム例 3
(EI2OS を使用した場合の停止変換モード)....................................................................... 582
第 21 章
アドレス一致検出機能 ............................................................................585
21.1 アドレス一致検出機能の概要 ............................................................................................. 586
21.2 アドレス一致検出機能のブロックダイヤグラム ................................................................ 587
21.3 アドレス一致検出機能のレジスタ構成............................................................................... 588
21.3.1
プログラムアドレス検出制御ステータスレジスタ(PACSR)................................. 589
21.3.2
プログラムアドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L)..................... 591
21.4 アドレス一致検出機能の動作説明...................................................................................... 593
21.4.1
アドレス一致検出機能の使用例 ............................................................................... 594
21.5 アドレス一致検出機能のプログラム例............................................................................... 598
第 22 章
ROM ミラー機能選択モジュール............................................................599
22.1 ROM ミラー機能選択モジュールの概要 ............................................................................ 600
22.2 ROM ミラー機能選択モジュールレジスタ(ROMM)........................................................ 602
第 23 章
512K/1024K ビットフラッシュメモリ....................................................605
23.1 512K/1024K ビットフラッシュメモリの概要..................................................................... 606
23.2 フラッシュメモリのレジスタとセクタ構成 ....................................................................... 607
23.3 フラッシュメモリ制御ステータスレジスタ(FMCS)........................................................ 608
23.4 フラッシュメモリ自動アルゴリズム起動方法.................................................................... 611
23.5 自動アルゴリズム実行状態の確認...................................................................................... 613
23.5.1
データポーリングフラグ(DQ7)............................................................................. 615
23.5.2
トグルビットフラグ(DQ6).................................................................................... 617
23.5.3
タイミングリミット超過フラグ(DQ5).................................................................. 618
23.5.4
セクタ消去タイマフラグ(DQ3)............................................................................. 619
23.5.5
トグルビット 2 フラグ(DQ2)................................................................................. 620
23.6 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 622
23.6.1
フラッシュメモリを読出し / リセット状態にする ................................................... 623
23.6.2
フラッシュメモリへデータを書き込む .................................................................... 624
23.6.3
フラッシュメモリのデータを消去する(チップ消去)............................................. 626
xi
23.6.4
フラッシュメモリの任意のデータを消去する(セクタ消去).................................. 627
23.6.5
フラッシュメモリのセクタ消去を一時停止する ...................................................... 629
23.6.6
フラッシュメモリのセクタ消去を再開する ............................................................. 630
23.7 フラッシュセキュリティの特長 ......................................................................................... 631
23.8 512K ビットフラッシュメモリのプログラム例.................................................................. 632
第 24 章
24.1
24.2
24.3
24.4
24.5
付録
付録 A
付録 B
索引
フラッシュシリアル書込み接続例 ..........................................................637
F2MC-16LX ファミリ MB90F462/F462A/F463A シリアル書込み接続の基本構成 ............ 638
シングルチップモード時の接続例(ユーザ電源).............................................................. 641
シングルチップモード時の接続例(ライタ電源).............................................................. 643
フラッシュマイコンプログラマとの最小限の接続例(ユーザ電源).................................. 645
フラッシュマイコンプログラマとの最小限の接続例(ライタ電源).................................. 647
................................................................................................................649
I/O マップ ....................................................................................................................... 650
命令 ................................................................................................................................ 660
................................................................................................................721
xii
本版での主な変更内容
ページ
-
変更内容(詳細は本文を参照してください。
MB90460/465 シリーズ に統一
25
第 2 章 デバイスの取扱い に
ついて
2.1 デバイス取扱い上の注意
事項
● 水晶発振回路を変更
・各量産品において , ご使用される発振子メーカに発振評
価依頼をしてください。を追加
85
第 5 章 クロック
5.3 クロック選択レジスタ
(CKSCR)
表 5.3-1 を変更
Bit14 の MCM の機能に「・書込みは動作に影響ありませ
ん。」を追加
109
第 6 章 低消費電力モード
6.6 状態遷移図
図 6.6-1 を変更
110
第 6 章 低消費電力モード
6.7 スタンバイモード , リ
セットの端子状態
表 6.7-1 の下の説明 *3 を変更
122
第 7 章 割込み
7.3.2 割込み制御レジスタの
機能
サマリ文を変更
229
第 12 章 16 ビットリロードタ
イマ
12.1 16 ビットリロードタイ
マの概要
● 外部トリガ入力動作を変更
253
第 12 章 16 ビットリロードタ
イマ
12.8 16 ビットリロードタイ
マのプログラム例
● コーディング例を変更
300
第 14 章 多機能タイマ
14.4.3 タイマ状態制御レジス
タ (TCCSH, TCCSL)
表 14.4-2 の bit3 に・"1" を書き込んだ後 , 次のカウントク
ロックまでにこのビットへの "0" 書込みを行うと , カウン
タ値の初期化は行われません。を追加
530
第 18 章 DTP/ 外部割込み
18.3.1 DTP/ 外部割込み要因
レジスタ (EIRR)
■ DTP/ 外部割込み要因レジスタ (EIRR) を変更
<注意事項>を追加
531
第 18 章 DTP/ 外部割込み
18.3.2 DTP/ 外部割込み許可
レジスタ (ENIR)
■ DTP/ 外部割込み許可レジスタ (ENIR) を変更
<注意事項>を追加
535
第 18 章 DTP/ 外部割込み
18.4 DTP/ 外部割込みの動作
説明
● 設定の手順を変更
1. 外部割込み入力として使用する端子と兼用する汎用入
出力ポートを入力ポートに設定する。を追加
xiii
ページ
変更内容(詳細は本文を参照してください。
540
第 18 章 DTP/ 外部割込み
18.5 DTP/ 外部割込み使用上
の注意
● 外部割込みの入力極性を変更
要求入力レベルがレベル設定の場合 , パルス幅はデータ
シートに記載されている最少パルス幅以上の期間を必要
とします。また割込み入力端子がアクティブレベルを保
持しつづけている限りは , DTP/ 外部割込み要因レジスタ
をクリアしても , 割込みコントローラへの割込み要求は
発生し続けます。を追加
566
第 20 章 8/10 ビット A/D コン
バータ
20.4.2 A/D 制御ステータスレ
ジスタ 0 (ADCS0)
表 20.4-2 を変更
bit5 ∼ bit3 に ( 注意事項 ) を追加
629
第 23 章 512K/1024K ビット
フラッシュメモリ
23.6.5 フラッシュメモリの
セクタ消去を一時停止する
■ フラッシュメモリのセクタ消去を一時停止するを変更
最後の文を次のとおり変更
• 最大 15µs → 最大 20µs
• セクタ消去一時停止コマンドは , セクタ消去コマンドあ
るいはセクタ消去再開コマンド発行後 , 20µs 以上後に
行ってください。
639
第 24 章 フラッシュシリアル
書込み接続例
24.1 F2MC-16LX ファミリ
MB90F462/F462A/F463A シリ
アル書込み接続の基本構成
表 24.1-1 を変更
変更箇所は , 本文中のページ左側の│によって示しています。
xiv
第1章
概要
MB90460/465 シリーズの主な特長と基本仕様につ
いて説明します。
1.1 MB90460/465 シリーズの特長
1.2 MB90460/465 シリーズの製品一覧
1.3 MB90460/465 シリーズのブロックダイヤグラム
1.4 端子配列図
1.5 外形寸法図
1.6 I/O 端子と端子機能説明
1.7 I/O 回路の種類
1
第 1 章 概要
1.1
MB90460/465 シリーズの特長
MB90460/465 シリーズは , 高速リアルタイム処理を必要とするアプリケーション用
に設計された 16 ビット汎用マイクロコントローラであり , さまざまな工業用機械や
モータ(交流インダクションモータやブラシレス直流モータ)の制御に適した製品
です。このマイクロコントローラは , 交流 / 直流モータ制御用の多機能タイマと , さ
まざまな型の波形を生成できる直流モータ制御用のマルチパルスジェネレータから
構成されています。
命令セットは , コントローラのアプリケーションに対して最適化されるように設計
されており , かつ F2MC-16LX ファミリの AT アーキテクチャを継承していることに
より , 広範にわたる制御作業を効率的かつ高速で処理することを可能とします。
■ MB90460/465 シリーズの特長
● クロック
• 組込み PLL クロック逓倍回路
• 動作クロック(PLL クロック)としては , 原発振の 2 分周かあるいは原発振の 1 か
ら 4 逓倍した周波数(原発振が 4MHz の場合は 4MHz, 8MHz, 12MHz, 16MHz のいず
れか)から選択できます。
• 最小命令実行時間は62.5 ns(原発振が4MHz, PLLクロックが4逓倍, VCC が 5.0Vの時)
● 16M バイトの CPU アドレス空間
• 24 ビットの内部アドレス
● アプリケーションに対して最適化された命令セット
• 豊富なデータタイプ(ビット , バイト , ワード , ロングワード)
• 豊富なアドレス指定モード(23 種類)
• 高いコード効率
• 32 ビットアキュムレータにより実現される高精度演算
● 高級言語(C)とマルチタスク処理用に設計された命令セット
• システムスタックポインタを採用
• 高度なポインタ間接命令
• バレルシフト命令
● プログラムパッチ機能(2 アドレスポインタ)
● 向上した実行速度
• 4 バイト命令キュー
● 強力な割込み機能
• 優先順位を設定可能 : 8 レベル
• 32 の強力な割込み要因
2
第 1 章 概要
● CPU 動作に依存しない自動データ転送機能
• 拡張インテリジェント I/O サービス機能(EI2OS)
• 最大 16 チャネル
● 低消費電力モード(スタンバイモード)
• スリープモード(CPU 動作クロックが停止しているモード)
• タイムベースタイマモード(発振とタイムベースタイマ以外が停止しているモー
ド)
• ストップモード(発振が停止しているモード)
• CPU 間欠動作モード
● パッケージ
• LQFP-64 (FPT-64P-M09: 0.65mm ピッチ)
• LQFP-64 (FPT-64P-M06: 1.00mm ピッチ)
• SDIP-64 (DIP-64P-M01: 1.78mm ピッチ)
● プロセス
• CMOS
■ リソース
● I/O ポート
• 最大 51 ポート
● 18 ビットタイムベースカウンタ / ウォッチドッグタイマ : 1 チャネル
● ウォッチドッグタイマ : 1 チャネル
● PWC: 2 チャネル
● 16 ビットリロードタイマ : 1 チャネル
● 16 ビット PPG タイマ : 1 チャネル
● 多機能タイマ(交流 / 直流モータ制御用): 1 チャネル
• 16 ビットフリーランタイマ(アップモードまたはアップ / ダウンモードの選択が可
能であり , バッファ付き): 1 チャネル
• 16 ビットアウトプットコンペア(バッファ付き): 6 チャネル
• 16 ビットインプットキャプチャ :4 チャネル
• 16 ビット PPG タイマ : 1 チャネル
• 波形ジェネレータ(バッファとコンペアクリア機能付き 16 ビットタイマを搭載)
● マルチパルスジェネレータ(直流モータ制御用): 1 チャネル
• 16 ビットリロードタイマ :1 チャネル
• 16 ビット PPG タイマ : 1 チャネル
• 波形シーケンサ(バッファとコンペアクリア機能付き 16 ビットタイマを搭載)
3
第 1 章 概要
● UART: 2 チャネル
• 全二重の二重バッファ(8 ビット長)を搭載
• クロック非同期転送またはクロック同期転送(スタートビットとストップビットを
使用)を選択的に使用可能
● DTP/ 外部割込み回路 : 8 チャネル
• 拡張インテリジェント I/O サービス(EI2OS)の起動および外部入力をトリガとする
外部割込み生成用モジュール
● 遅延割込み生成モジュール
• タスク切換え割込み要求を生成
● 8/10 ビット A/D コンバータ : 8 チャネル
• 8/10 ビット分解能
4
第 1 章 概要
MB90460/465 シリーズの製品一覧
1.2
MB90460/465 シリーズの製品一覧を表 1.2-1 に示します。
■ MB90460/465 シリーズの製品一覧
表 1.2-1 MB90460/465 シリーズの製品一覧 ( 1 / 2 )
型格
項目
MB90V460
分類
−
ROM 容量
−
RAM 容量
8K バイト
エミュレータ
専用電源 *
無
MB90F462
MB90F462A MB90F463A
フラッシュ ROM
64K バイト
MB90462
MB90467
マスク ROM
128K バイト
64K バイト
2K バイト
−
−
−
−
−
CPU 機能
命令数 : 351
最大実行時間 : 62.5ns/4MHz (PLL: 4MHz × 4)
アドレス指定モード : 23
データビット長 : 1, 8, 16 ビット
最大メモリ空間 : 16M バイト
I/O ポート
I/O ポート(CMOS): 51
PWC
パルス幅カウンタタイマ : 2 チャネル
UART
全二重の二重バッファ(8 ビット長)を搭載
クロック非同期転送またはクロック同期転送(スタートビットとストップビット使
用)を選択的に使用可能
1 チャネル
リロードタイマ : 2 チャネル
16 ビットリ
リロードモード , シングルショットモードまたはイベントカウントモードを選択可能
ロードタイマ
マルチパルスジェネレータと一緒に動作することが可能。また単独での動作も可能
16 ビット
PPG タイマ
PPG タイマ : 3 チャネル
PWM モードまたはシングルショットモードを選択可能
多機能タイマ / マルチパルスジェネレータと一緒に動作することが可
能。また単独での動作も可能
2 チャネル
16 ビットフリーランタイマ(アップモードまたはアップ / ダウンモード選択可能。
多機能タイマ バッファ付き): 1 チャネル
16 ビットアウトプットコンペア : 6 チャネル
(交流 / 直流
16 ビットインプットキャプチャ : 4 チャネル
モータ制御
用)
16 ビット PPG タイマ : 1 チャネル
波形ジェネレータ(16 ビットタイマ : 3 チャネル。3 位相波形またはデッドタイム)
5
第 1 章 概要
表 1.2-1 MB90460/465 シリーズの製品一覧 ( 2 / 2 )
型格
項目
MB90V460
MB90F462
MB90F462A MB90F463A
MB90462
16 ビット PPG タイマ : 1 チャネル
16
ビットリロードタイマ動作(トグル出力またはワンショット出力を
マルチパルス
ジェネレータ 選択可能)
(直流モータ イベントカウンタ機能(1 チャネル内蔵)
制御用)
波形シーケンサ(バッファとコンペアクリア機能付き 16 ビットタイ
マを搭載)
MB90467
−
8/10 ビット
8/10 ビット分解能(8 チャネル)
A/D コンバー
変換時間 : 6.13µs 未満(16 MHz 内部クロック)
タ
外部割込み
独立した 8 チャネル
選択可能な要因 : 立上がり , 立下がり , "L" レベルまたは "H" レベル
低消費電力
停止モード , スリープモード , CPU 間欠動作モード
プロセス
CMOS
パッケージ
PGA256
動作電圧
5V ± 10% @16MHz
LQFP-64 (FPT-64P-M09: 0.65mm ピッチ)
LQFP-64 (FPT-64P-M06: 1.00mm ピッチ)
SDIP-64 (DIP-64P-M01: 1.78mm ピッチ)
*: エミュレーションポッド(MB2145-507)を使用頂く際のディップスイッチ(S2)の設定です。詳
細につきましては『MB2145-507 ハードウェアマニュアル(2.7 エミュレータ専用電源端子)』をご
参照ください。
6
第 1 章 概要
1.3
MB90460/465 シリーズのブロックダイヤグラム
MB90460/465 シリーズの全体ブロックダイヤグラムを図 1.3-1 に示します。
■ MB90460/465 シリーズの全体ブロックダイヤグラム
図 1.3-1 MB90460/465 シリーズの全体ブロックダイヤグラム
X0
CPU
クロック
制御回路
X1
F2MC-16LX ファミリコア
タイムベースタイマ
リセット回路
(ウォッチドッグタイマ)
RST
その他のピン
Vss x 2,Vcc x 1,MD0-2,C
遅延割込みジェネレータ
割込みコントローラ
多機能タイマ
P37/PPG0
16 ビット PPG タイマ
P11/INT1
・P13/INT3
・P14/INT4
(ch.0)
2
8
DTP/ 外部割込み
16 ビット
インプットキャプチャ
P40/SIN0
P41/SOT0
P42/SCK0
(ch.0~ch.3)
UART
(ch.0)
16 ビット
フリーランタイマ
マルチパルスジェネレータ*2
(ch.1)
16 ビット
リロードタイマ
(ch.0)
P43/SNI0*2 to 3
P45/SNI2*2
3
P00/OPT0*2
P01/OPT1*2
P02/OPT2*2
P03/OPT3*2
P04/OPT4*2
P05/OPT5*2
P12/INT2/DTTI1*2
波形シーケンサ*1
PWC*1
(ch.0)
P06/PWI0*2
P07/PW00*2
P30/RTO0(U)
P31/RTO1(X)
P32/RTO2(V)
P33/RTO3(Y)
P34/RTO4(W)
P35/RTO5(Z)
アウトプットコンペア
F2MC-16LX バス
P15/INT5/TIN0
P16/INT6/T00
P17/FRCK
16 ビット
16ビットPPGタイマ*1
P36/PPG1*2
4 ・P24/IN0
・P27/IN3
4
(ch.0~ch.5)
波形ジェネレータ
P10/INT0/DTTI0
16 ビット
リロードタイマ
(ch.1)
P20/TIN1
P21/TO1
PWC
(ch.1)
P22/PWI1
P23/PWO1
P60/SIN1
P61/SOT1
P62/SCK1
UART
(ch.1)
P63/INT7
16ビットPPGタイマ
P46/PPG2
(ch.2)
CMOS I/O ポート 0,1,3,4
CMOS I/O ポート 1,2,3,6
CMOS I/O ポート 5
RAM
ROM
アドレス一致検出機能
A/D コンバータ
(8/10 ビット)
8
P50/AN0
P51/AN1
P52/AN2
P53/AN3
P54/AN4
P55/AN5
P56/AN6
P57/AN7
ROM ミラーリング
(注意事項)
P00
P10
*1:
*2:
P07(8チャネル): 入力プルアップ抵抗として使用可能なレジスタを搭載
P17(8チャネル): 入力プルアップ抵抗として使用可能なレジスタを搭載
MB90467には,搭載されていません。
MB90467では,リソースが搭載されていないため,削除となります。
AVCC
AVR
AVSS
7
第 1 章 概要
1.4
端子配列図
MB90460/465 シリーズの端子配列図を図 1.4-1 ∼図 1.4-3 に示します。
■ 端子配列図(FPT-64P-M06)
P55/AN5
P56/AN6
P57/AN7
AVCC
AVR
AVSS
P60/SIN1
P61/SOT1
P62/SCK1
P63/INT7
9
10
11
12
13
14
15
16
17
18
19
P33/RTO3(Y)*1
P32/RTO2(V)*1
P31/RTO1(X)*1
53
52
55
54
58
57
56
P37/PPG0
P36/PPG1*2
C
VCC
P35/RTO5(Z)*1
P34/RTO4(W)*1
(TOP VIEW)
(FPT-64P-M06)
RST
MD1
MD2
X0
X1
VSS
P00/OPT0*1,2
P01/OPT1*1,2
P02/OPT2*1,2
P03/OPT3*1,2
P04/OPT4*1,2
P05/OPT5*1,2
P06/PWI0*2
20
21
22
MD0
QFP-64
31
32
7
8
29
30
P53/AN3
P54/AN4
26
27
28
P46/PPG2
P50/AN0
P51/AN1
P52/AN2
1
2
3
4
5
6
23
24
25
P44/SNI1*2
P45/SNI2*2
61
60
59
P42/SCK0
P41/SOT0
P40/SIN0
64
63
62
P43/SNI0*2
図 1.4-1 端子配列図(FPT-64P-M06)
*1:大電流端子
*2:MB90467では,リソースが搭載されていないため,削除となります。
8
51
50
49
48
47
46
P30/RT00(U)*1
VSS
45
44
P23/PWO1
P22/PWI1
43
42
41
40
39
38
37
36
35
34
33
P21/TO1
P20/TIN1
P17/FRCK
P16/INT6/TO0
P15/INT5/TIN0
P14/INT4
P13/INT3
P12/INT2/DTTI1*2
P11/INT1
P10/INT0/DTTI0
P07/PW00*2
P27/IN3
P26/IN2
P25/IN1
P24/IN0
第 1 章 概要
■ 端子配列図(FPT-64P-M09)
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
P44/SNI1*2
P43/SNI0*2
P42/SCK0
P41/SOT0
P40/SIN0
P37/PPG0
P36/PPG1*2
C
VCC
P35/RTO5(Z)*1
P34/RTO4(W)*1
P33/RTO3(Y)*1
P32/RTO2(V)*1
P31/RTO1(X)*1
P30/RTO0(U)*1
VSS
図 1.4-2 端子配列図(FPT-64P-M09)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
QFP-64
(TOP VIEW)
(FPT-64P-M09)
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
P27/IN3
P26/IN2
P25/IN1
P24/IN0
P23/PWO1
P22/PWI1
P21/TO1
P20/TIN1
P17/FRCK
P16/INT6/TO0
P15/INT5/TIN0
P14/INT4
P13/INT3
P12/INT2/DTTI1*2
P11/INT1
P10/INT0/DTTI0
P63/INT7
MD0
RST
MD1
MD2
X0
X1
VSS
P00/OPT0*1,2
P01/OPT1*1,2
P02/OPT2*1,2
P03/OPT3*1,2
P04/OPT4*1,2
P05/OPT5*1,2
P06/PWI0*2
P07/PWO0*2
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
P45/SNI2*2
P46/PPG2
P50/AN0
P51/AN1
P52/AN2
P53/AN3
P54/AN4
P55/AN5
P56/AN6
P57/AN7
AVCC
AVR
AVSS
P60/SIN1
P61/SOT1
P62/SCK1
*1:大電流端子
*2:MB90467では,リソースが搭載されていないため,削除となります。
9
第 1 章 概要
■ 端子配列図(DIP-64P-M01)
図 1.4-3 端子配列図(DIP-64P-M01)
C
P36/PPG1*2
P37/PPG0
P40/SIN0
P41/SOT0
P42/SCK0
P43/SNI0*2
P44/SNI1*2
P45/SNI2*2
P46/PPG2
P50/AN0
P51/AN1
P52/AN2
P53/AN3
P54/AN4
P55/AN5
P56/AN6
P57/AN7
AVCC
AVR
AVSS
P60/SIN1
P61/SOT1
P62/SCK1
P63/INT7
MD0
RST
MD1
MD2
X0
X1
VSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SDIP-64
(TOP VIEW)
(DIP-64P-M01)
*1:大電流端子
*2:MB90467では,リソースが搭載されていないため,削除となります。
10
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
VCC
P35/RTO5(Z)*1
P34/RTO4(W)*1
P33/RTO3(Y)*1
P32/RTO2(V)*1
P31/RTO1(X)*1
P30/RTO0(U)*1
VSS
P27/IN3
P26/IN2
P25/IN1
P24/IN0
P23/PWO1
P22/PWI1
P21/TO1
P20/TIN1
P17/FRCK
P16/INT6/TO0
P15/INT5/TIN0
P14/INT4
P13/INT3
P12/INT2/DTTI1*2
P11/INT1
P10/INT0/DTTI0
P07/PWO0*2
P06/PWI0*2
P05/OPT5*1,2
P04/OPT4*1,2
P03/OPT3*1,2
P02/OPT2*1,2
P01/OPT1*1,2
P00/OPT0*1,2
第 1 章 概要
外形寸法図
1.5
MB90460/465 シリーズには , 3 種類のパッケージが用意されています。
なお , 本外形寸法図は参考用です。正式版につきましては別途ご相談ください。
■ DIP-64P-M01 の外形寸法図
プラスチック・SH-DIP, 64 ピン
リードピッチ
1.778mm
パッケージ幅×
パッケージ長さ
17 × 58mm
封止方法
プラスチックモールド
取付け高さ
5.65mm MAX
(DIP-64P-M01)
プラスチック・SH-DIP, 64 ピン
(DIP-64P-M01)
注)端子幅および端子厚さはメッキ厚を含む。
+0.22
+.009
58.00 –0.55 2.283 –.022
INDEX-1
17.00±0.25
(.669±.010)
INDEX-2
+0.70
4.95 –0.20
+.028
.195 –.008
+0.50
0.70 –0.19
+.020
.028 –.007
0.27±0.10
(.011±.004)
+0.20
3.30 –0.30
.130
+.008
–.012
1.378
.0543
C
+0.40
–0.20
+.016
–.008
1.778(.0700)
0.47±0.10
(.019±.004)
19.05(.750)
+0.50
0.25(.010)
M
1.00 –0
.039
+.020
–.0
2001-2008 FUJITSU MICROELECTRONICS LIMITED D64001S-c-4-6
0~15
単位:mm (inches)
注意:括弧内の値は参考値です。
最新の外形寸法図については , 下記の URL にてご確認ください。
http://edevice.fujitsu.com/package/jp-search/
11
第 1 章 概要
■ FPT-64P-M06 の外形寸法図
プラスチック・QFP, 64 ピン
リードピッチ
1.00mm
パッケージ幅×
パッケージ長さ
14 × 20mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
3.35mm MAX
コード(参考)
P-QFP64-14×20-1.00
(FPT-64P-M06)
プラスチック・QFP, 64 ピン
(FPT-64P-M06)
注 1)* 印寸法はレジン残りを含まず。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
24.70±0.40(.972±.016)
* 20.00±0.20(.787±.008)
51
0.17±0.06
(.007±.002)
33
32
52
18.70±0.40
(.736±.016)
*14.00±0.20
Details of "A" part
(.551±.008)
3.00 –0.20
INDEX
+0.35
+.014
.118 –.008
(Mounting height)
20
64
0~8°
1
19
1.00(.039)
0.42±0.08
(.017±.003)
0.20(.008)
+0.15
M
0.25 –0.20
1.20±0.20
(.047±.008)
+.006
.010 –.008
(Stand off)
"A"
0.10(.004)
C
2003-2008 FUJITSU MICROELECTRONICS LIMITED F64013S-c-5-6
最新の外形寸法図については , 下記の URL にてご確認ください。
http://edevice.fujitsu.com/package/jp-search/
12
単位:mm (inches)
注意:括弧内の値は参考値です。
第 1 章 概要
■ FPT-64P-M09 の外形寸法図
プラスチック・LQFP, 64 ピン
リードピッチ
0.65mm
パッケージ幅×
パッケージ長さ
12 × 12mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
コード(参考)
P-LQFP64-12×12-0.65
(FPT-64P-M09)
プラスチック・LQFP, 64 ピン
(FPT-64P-M09)
注 1)* 印寸法はレジン残りを含まず。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
14.00±0.20(.551±.008)SQ
* 12.00±0.10(.472±.004)SQ
48
0.145±0.055
(.0057±.0022)
33
49
32
0.10(.004)
Details of "A" part
+0.20
1.50 –0.10
+.008
.059 –.004
(Mounting height)
0.25(.010)
INDEX
0~8°
64
17
1
0.65(.026)
C
"A"
16
0.32±0.05
(.013±.002)
0.13(.005)
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
0.10±0.10
(.004±.004)
(Stand off)
M
2003-2008 FUJITSU MICROELECTRONICS LIMITED F64018S-c-3-6
単位:mm (inches)
注意:括弧内の値は参考値です。
最新の外形寸法図については , 下記の URL にてご確認ください。
http://edevice.fujitsu.com/package/jp-search/
13
第 1 章 概要
1.6
I/O 端子と端子機能説明
MB90460/465 シリーズの I/O 端子とこれらの端子の機能を表 1.6-1 に示し , I/O 回路
の種類を表 1.7-1 に示します。
表 1.6-1 における“I/O 回路の種類”欄の英字は , 表 1.7-1 における“分類”欄の英
字を示します。
■ I/O 端子と端子機能
表 1.6-1 I/O 端子と端子機能 (1 / 5)
端子番号
端子名
I/O
回路
リセット
時の端子
の状態
QFPM09*1
QFPM06*2
SDIP*3
22, 23
23, 24
30, 31
X0, X1
A
発振中
19
20
27
RST
B
リセット
入力
P00 ∼
P05
25 ∼
30
26 ∼
31
33 ∼
38
39
32
33
40
PWI0*4
汎用入出力ポートです。
E
PWC 0 信号入力端子です。*4
P07
PWO0*4
汎用入出力ポートです。
E
INT0
34
41
C
P11
35
42
14
外部割込み要求入力チャネル 0 として使用できま
す。スタンバイモード時には EN0 に "1" を設定
して , 入力ポートに設定した場合に有効になりま
す。
汎用入出力ポートです。
C
INT1
汎用入出力ポートです。
RTO0 ∼ RTO5 端子使用時の端子レベル固定入力
端子です。この機能は , 波形ジェネレータで各入
力を有効にすると有効になります。
DTTI0
34
PWC 0 信号出力端子です。*4
入力
ポート
P10
33
リセット入力外部リセット入力端子です。
波形シーケンサの出力端子(OPTn)です。これ
らの端子は , 波形シーケンサ回路の出力データレ
ジスタで指定された波形を出力します。波形は
OPCR の OPnE を有効にすると出力されます。*4
D
OPT0 ∼
P06
32
発振中発振入力端子です。
汎用入出力ポートです。
OPT5*4
31
機能
外部割込み要求入力チャネル 1 として使用できま
す。スタンバイモード時には EN1 に "1" を設定
して , 入力ポートに設定した場合に有効になりま
す。
第 1 章 概要
表 1.6-1 I/O 端子と端子機能 (2 / 5)
端子番号
QFPM09*1
35
QFPM06*2
36
端子名
SDIP*3
I/O
回路
リセット
時の端子
の状態
機能
P12
汎用入出力ポートです。
INT
外部割込み要求入力チャネル 2 として使用できま
す。スタンバイモード時には EN2 に "1" を設定
して , 入力ポートに設定した場合に有効になりま
す。
43
C
OPTO0 ∼ OPTO5 端子使用時の端子レベル固定入
力端子です。この機能は , 波形シーケンサで各入
DTTI1*4
力を有効にすると有効になります。*4
P13,
P14
36, 37
37, 38
44, 45
汎用入出力ポートです。
外部割込み要求入力チャネル 3, 4 として使用でき
ます。スタンバイモード時には EN3 と EN4 に
"1" を設定して , 入力ポートに設定した場合に有
効になります。
C
INT3,
INT4
P15
38
39
46
INT5
汎用入出力ポートです。
C
入力
ポート
TIN0
P16
39
40
40
41
47
INT6
C
リロードタイマ 0 のイベント出力端子です。
P17
汎用入出力ポートです。
48
C
49
P21
43
50
汎用入出力ポートです。
リロードタイマ 1 用のイベント出力端子です。
P22
44
リロードタイマ 1 用の外部クロック入力端子で
す。
F
TO1
43
フリーランタイマ用の外部クロック入力端子で
す。
汎用入出力ポートです。
F
TIN1
42
外部割込み要求入力チャネル 6 として使用できま
す。スタンバイモード時には EN6 に "1" を設定
して , 入力ポートに設定した場合に有効になりま
す。
TO0
P20
42
リロードタイマ 0 用の外部クロック入力端子で
す。
汎用入出力ポートです。
FRCK
41
外部割込み要求入力チャネル 5 として使用できま
す。スタンバイモード時には EN5 に "1" を設定
して , 入力ポートに設定した場合に有効になりま
す。
51
汎用入出力ポートです。
F
PWI1
PWC 1 信号入力端子です。
15
第 1 章 概要
表 1.6-1 I/O 端子と端子機能 (3 / 5)
端子番号
端子名
QFPM09*1
QFPM06*2
SDIP*3
44
45
52
I/O
回路
リセット
時の端子
の状態
P23
45 ∼
48
50 ∼
55
46 ∼
49
51 ∼
56
53 ∼
56
58 ∼
63
汎用入出力ポートです。
F
PWO1
PWC 1 信号出力端子です。
P24 ∼
P27
汎用入出力ポートです。
IN0 ∼
IN3
インプットキャプチャチャネル 0 ∼ 3 のトリガ入
力端子です。インプットキャプチャトリガ入力を
設定し , 入力ポートを設定した場合に入力できま
す。
P30 ∼
P35
汎用入出力ポートです。
F
RTO0
∼
RTO5
波形ジェネレータ出力端子です。これらの端子は ,
波形ジェネレータに指定した波形を出力します。
出力波形は , 波形ジェネレータ出力を有効にする
と生成されます。
G
P36,
P37
58, 59
59, 60
2, 3
PPG1*5,
PPG0
汎用入出力ポートです。
H
61
61
62
入力
ポート
UART チャネル 0 のシリアルデータ入力端子で
す。UART チャネル 0 が入力動作中は , シリアル
データ以外は入力しないでください。
P41
汎用入出力ポートです。
F
5
F
P42
63
6
F
P43
64
7
SNI0*4
UART チャネル 0 のシリアルデータ出力端子で
す。この機能は , UART チャネル 0 のデータ出力
を有効にすると有効になります。
汎用入出力ポートです。
SCK0
63
汎用入出力ポートです。
SIN0
4
SOT0
62
PPG チャネル 1, 0 の出力端子です。この機能は ,
PPG チャネル 1, 0 の出力を有効にすると有効にな
ります。*5
P40
60
機能
UART チャネル 0 のシリアルクロック I/O 端子で
す。この機能は , UART チャネル 0 のクロック出
力を有効にすると有効になります。
汎用入出力ポートです。
F
波形シーケンサの位置検出用トリガ入力端子で
す。端子を入力として設定した場合は , トリガ入
力以外は入力しないでください。*4
P44
64
1
8
SNI1*4
汎用入出力ポートです。
F
マルチパルスジェネレータの位置検出用トリガ入
力端子です。端子を入力として設定した場合は ,
トリガ入力以外は入力しないでください。*4
16
第 1 章 概要
表 1.6-1 I/O 端子と端子機能 (4 / 5)
端子番号
QFPM09*1
QFPM06*2
端子名
SDIP*3
I/O
回路
リセット
時の端子
の状態
P45
1
2
9
*4
汎用入出力ポートです。
マルチパルスジェネレータの位置検出用トリガ入
力端子です。端子を入力として設定した場合は ,
F
SNI2
入力
ポート
P46
2
3 ∼ 10
3
4 ∼ 11
P50 ∼
P57
汎用入出力ポートです。
I
AN0 ∼
AN7
12
19
AVCC
−
12
13
20
AVR
J
13
14
21
AVSS
−
アナログ
入力
15
16
電源入力
汎用入出力ポートです。
SIN1
UART チャネル 1 のシリアルデータ入力端子で
す。UART チャネルが入力動作中はシリアルデー
タ以外は入力しないでください。
P61
汎用入出力ポートです。
22
F
23
UART チャネル 1 のシリアルデータ出力端子で
す。この機能は , UART チャネル 1 のデータ出力
を有効にすると有効になります。
F
入力
ポート
P62
17
24
P63
18
25
汎用入出力ポートです。
外部割込み要求入力チャネル 7 として使用できま
す。スタンバイモード時には EN7 に "1" を設定
して , 入力ポートに設定した場合に有効になりま
す。
F
INT7
18
20, 21
19
21, 22
26
28, 29
MD0
MD1,
MD2
汎用入出力ポートです。
UART チャネル 1 のシリアルクロック I/O 端子で
す。この機能は , UART チャネル 1 のクロック出
力を有効にすると有効になります。
F
SCK1
17
A/D コンバータのリファレンス入力端子です。こ
の電圧は VCC を超えてはいけません。
A/D コンバータの電源入力端子(0V)です。
SOT1
16
A/D コンバータアナログ入力端子です。この機能
は , アナログ入力を有効すると有効になります
(ADER)。
A/D コンバータの電源入力端子です。
P60
15
汎用入出力ポートです。
PPG チャネル 2 の出力端子です。この機能は ,
PPG チャネル 2 の出力を有効にすると有効になり
ます。
F
11
14
トリガ入力以外は入力しないでください。*4
PPG2
10
11 ∼
18
機能
L
モード
入力
L
動作モードの指定用入力端子です。この端子は ,
VCC または VSS に直結してください。
動作モードの指定用入力端子です。この端子は ,
VCC または VSS に直結してください。
17
第 1 章 概要
表 1.6-1 I/O 端子と端子機能 (5 / 5)
端子番号
QFPM09*1
QFPM06*2
SDIP*3
24, 49
25, 50
32, 57
56
57
64
端子名
I/O
回路
VSS
−
VCC
リセット
時の端子
の状態
機能
電源(0V)入力端子です。
電源入力
−
電源(5V)入力端子です。
*1: FPT-64P-M09
*2: FPT-64P-M06
*3: DIP-64P-M01
*4:MB90467 では , リソースが搭載されていないため , 削除となります。
*5:MB90467 では , リソースが搭載されていないため , PPG1 は削除となります。
18
第 1 章 概要
1.7
I/O 回路の種類
MB90460/465 シリーズの I/O 回路の種類を表 1.7-1 に示します。
■ I/O 回路の種類
表 1.7-1 入出力回路形式 ( 1 / 3 )
分類
回路
備考
A
発振回路
• 発振帰還抵抗は約 1MΩ
X1
Xout
N-ch P-ch
P-ch
X0
N-ch
スタンバイ制御信号
B
•
ヒステリシス入力
• 抵抗は約 50kΩ
R
ヒステリシス入力
C
•
R
P-ch
プルアップ制御信号
P-ch
Pout
CMOS 出力
• ヒステリシス入力
• プルアップ抵抗選択可能
(約 50kΩ)
• IOL=4mA
Nout
N-ch
ヒステリシス入力
スタンバイ制御信号
D
•
R
P-ch
プルアップ制御信号
P-ch
N-ch
Pout
CMOS 出力
• CMOS 入力
• プルアップ抵抗選択可能
(約 50kΩ)
• IOL=12mA
Nout
CMOS 入力
スタンバイ制御信号
19
第 1 章 概要
表 1.7-1 入出力回路形式 ( 2 / 3 )
分類
回路
備考
E
•
R
P-ch
プルアップ制御信号
P-ch
N-ch
Pout
CMOS 出力
• CMOS 入力
• プルアップ抵抗選択可能
(約 50kΩ)
• IOL=4mA
Nout
CMOS 入力
スタンバイ制御信号
F
•
P-ch
N-ch
Pout
CMOS 出力
• ヒステリシス入力
• IOL=4mA
Nout
ヒステリシス入力
スタンバイ制御信号
G
•
P-ch
N-ch
Pout
CMOS 出力
• CMOS 入力
• IOL=12mA
Nout
CMOS 入力
スタンバイ制御信号
H
•
P-ch
N-ch
Pout
Nout
CMOS 入力
スタンバイ制御信号
20
CMOS 出力
• CMOS 入力
• IOL=4mA
第 1 章 概要
表 1.7-1 入出力回路形式 ( 3 / 3 )
分類
回路
備考
I
•
P-ch
N-ch
CMOS 出力
• CMOS 入力
• A/D コンバータアナログ入力
• IOL=4mA
Pout
Nout
CMOS 入力
アナログ入力制御信号
A/D コンバータアナログ入力
J
P-ch
•
保護回路付き A/D コンバータ基準
電圧(AVR)入力端子
•
ヒステリシス入力
A/D コンバータ
アナログ入力
有効
アナログ入力
N-ch
A/D コンバータ
アナログ入力
有効
K
ヒステリシス入力
21
第 1 章 概要
22
第2章
デバイスの取扱い
について
デバイスの取扱い上の注意について説明します。
2.1 デバイス取扱い上の注意事項
23
第 2 章 デバイスの取扱い について
2.1
デバイス取扱い上の注意事項
デバイスを取扱う際には , 以下の項目について特に注意してください。
• 最大定格電圧の厳守(ラッチアップの防止)
• 供給電圧の安定化
• 電源端子
• 水晶発振回路
• 外部クロックを使用する場合
• PLL クロックモード動作中の注意について
• 未使用入力端子の処理
• N.C. 端子の処理
• A/D コンバータを使用しない場合の端子処理
■ デバイス取扱い上の注意事項
● 最大定格電圧の厳守(ラッチアップの防止)
• CMOS IC においては , 中・高耐圧以外の入力端子や出力端子に , VCC よりも高い電
圧や VSS より低い電圧が印加された場合または , VCC に定格を超える電圧が印加さ
れた場合に , ラッチアップ現象を発生する場合があります。
ラッチアップが発生した場合 , 電源電流が激増し , 素子の熱破壊に至る場合があり
ますので , 使用に際しては最大定格を超えないように注意してください。
• アナログ電源を投入または切断する場合 , アナログ供給電圧(AVCC, AVR)とアナ
ログ入力電圧は , ディジタル電源電圧(VCC)を超えないように注意してください。
● 供給電圧の安定化
• VCC 電源電圧の動作保障範囲内であっても , 電源電圧が急激に変化した場合は , 誤
動作を起こす場合がありますので , VCC 電源電圧を安定させてください。
• 安定化の基準としましては , 商用周波数(50Hz ∼ 60Hz)での VCC リップル変動
(peak to peak 値)を標準 VCC 電源電圧値の "10%" 以下に , また , 電源を切り換える
瞬時変化におきましては過渡変動率が 0.1V/ms 以下になるように電源電圧を安定さ
せてください。
● 電源端子
• 電流供給源は , 低インピーダンスでデバイスの VCC へ接続してください。
• 電源ノイズ対策として , VCC や VSS 端子間(デバイスの VCC や VSS 端子の近く)に
0.1μF 程度のコンデンサをバイパスコンデンサとして接続してください。
24
第 2 章 デバイスの取扱い について
● 水晶発振回路
• X0 や X1 端子へのノイズは , デバイスの誤動作の原因となります。X0 端子 , 水晶振
動子(あるいはセラミック振動子)およびグランドへのバイパスコンデンサは , X0
や X1 端子の近くに接続してください。
また , X0 や X1 端子の配線は , ほかの配線と交差しないようにプリント基板を設計
してください。
• X0 や X1 端子の回りをグランドで囲むようなプリント基板アートワークは , 安定し
た動作を期待できます。
• 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。
● 外部クロックを使用する場合
• 外部クロックを使用する場合は , X0 端子のみを駆動し , X1 端子は開放してくださ
い。外部クロック使用例を図 2.1-1 に示します。
図 2.1-1 外部クロックの適用例
X0
MB90460/465シリーズ
開放
X1
● PLL クロックモード動作中の注意について
• 本マイコンで PLL クロックを選択しているときに発振子が外れたり , あるいはク
ロック入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で
動作を継続し続ける場合があります。この動作は保証外の動作です。
● 未使用入力端子の処理
• 使用していない入力端子を開放のままにした場合 , 誤動作およびラッチアップによ
る永久破壊の原因となることがあります。2kΩ 以上の抵抗を介してプルアップまた
はプルダウン処理してください。
また , 使用していない入出力端子が存在する場合は , 出力状態に設定して開放する
か , 入力状態に設定して入力端子と同じように処理してください。
● N.C. 端子の処理
• N.C.(内部接続)端子は , 必ず開放にして使用してください。
● A/D コンバータを使用しない場合の端子処理
• A/D コンバータを使用しない場合は , AVCC = AVR= VCC, AVSS = VSS となるように
接続してください。
25
第 2 章 デバイスの取扱い について
26
第3章
CPU
MB90460/465 シリーズの機能と動作について説明
します。
3.1 CPU の概要
3.2 メモリ空間
3.3 メモリマップ
3.4 アドレス指定
3.5 多バイト長データのメモリ配置
3.6 レジスタ
3.7 専用レジスタ
3.8 汎用レジスタ
3.9 プリフィックスコード
27
第 3 章 CPU
3.1
CPU の概要
F2MC-16LX ファミリ CPU コアは , 民生用や車載用機器等の高速リアルタイム処理
が要求されるアプリケーション用に設計された 16 ビット CPU です。F2MC-16LX
ファミリ命令セットは制御アプリケーション用に設計されており , 各種制御の高速
かつ高効率処理が可能です。
F2MC-16LX ファミリ CPU コアは , 内部 32 ビットアキュムレータを搭載しているの
で 32 ビット処理も可能です。メモリ空間は最大 16M バイトであり , このメモリ空
間へはリニア方式およびバンク方式のいずれでもアクセス可能です。また , 命令体
系は , F2MC-8L ファミリおよび F2MC-16L ファミリの AT アーキテクチャをベース
にして , C 言語対応命令の追加 , アドレス指定モードの拡張 , 乗除算命令の強化およ
びビット処理の充実化により強化されています。以下に , F2MC-16LX ファミリ CPU
の特長を示します。
■ CPU の概要
● 最小命令実行時間 :62.5ns(原発振 4MHz, PLL クロック 4 逓倍のとき)
● 最大メモリ空間 :16M バイト , リニア / バンク方式アドレス指定にてアクセス
● 命令体系
• データタイプ : ビット , バイト , ワード , ロングワード
• アドレス指定モード :23 種類
• 32 ビットアキュムレータ採用による演算精度の強化
• 符号付き乗除算 , 拡張 RETI 命令
● 割込み機能
8 つのプライオリティレベル(プログラマブル)
● CPU に依存しない自動転送機能
最大 16 チャネルまでの拡張インテリジェント I/O サービス
● C 言語 , マルチタスクに対応した命令体系
システムスタックポイントの採用 , 命令セットの対称性 , バレルシフト命令
● 実行速度の向上 :4 バイトの命令キュー
< 注意事項 >
28
MB90460/465 シリーズは , シングルチップモードによる使用となるため , 内蔵
ROM, 内蔵 RAM, リソースの空間のみへアクセスでき , ほかへはアクセスできま
せん。
第 3 章 CPU
3.2
メモリ空間
F2MC-16LX ファミリの I/O, プログラムおよびデータは , 16M バイトのメモリ空間に
配置されます。RAM 領域は , 拡張インテリジェント I/O サービス(EI2OS)ディス
クリプタおよび汎用レジスタに使用されます。
■ メモリ空間
I/O, プログラムおよびデータは , F2MC-16LX ファミリ CPU が持つ 16M バイトのメモ
リ空間に配置されます。CPU は , 24 ビットのアドレスバスによってメモリ空間のアド
レスを示し , 各リソースへアクセスできます。
MB90460/465 シリーズのメモリマップを図 3.2-1 に示します。
図 3.2-1 MB90460/465 シリーズのメモリマップ
F2MC-16LX ファミリデバイス
プログラム
FFFFFFH
ベクタテーブル領域
ROM領域
FFC000H
FF0000H
プログラム領域
*1
100000H
内部データバス
F2MC-16LX
CPU
外部領域*4
010000H
004000H
*2
003FE0H
*2
データ
002000H
000D00H
*3
EI2OS
000380H
000180H
割込み
リソース
汎用ポート
000100H
0000C0H
0000B0H
000020H
000000H
ROM領域
(FFバンクのイメージ)
リソース制御レジスタ
(con't)
外部領域*4
I/O領域
データ領域
汎用レジスタ
EI2OSディスク
リプタ領域
外部領域*4
割込み制御レジスタ領域
リソース制御レジスタ領域
I/O力ポート制御レジスタ領域
RAM領域
I/O領域
*1:品種によって,内蔵ROM(またはフラッシュメモリ)の容量が異なります。
*2:品種によって,イメージでアクセスできる領域が異なります。
*3:品種によって,内蔵RAMの容量が異なります。
*4:シングルチップモード時には,アクセスできません。
■ ROM 領域
● ベクタテーブル領域(アドレス :"FFFC00H ∼ FFFFFFH")
• ベクタコール命令 , 割込みベクタおよびリセットベクタの各々のベクタテーブルと
して使用します。
• ROM 領域の最上位に割当てられており , 対応する処理ルーチンの開始アドレスをベ
クタコール命令 , 割込みベクタおよびリセットベクタのベクタテーブルのアドレス
にデータとして設定します。
29
第 3 章 CPU
● プログラム領域(アドレス :" ∼ 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)を設定します。
● リソース制御レジスタ領域(アドレス :"000080H ∼ 00000FH", "000019H ∼ 0000AFH",
"003FE0H ∼ 003FFFH")
これらのレジスタはリソースを制御し , かつデータを入出力します。I/O アドレスを指
定する命令(MOV A, io)は 003FE0H ∼ 003FFFH レジスタ領域をサポートしていません。
● I/O ポート制御レジスタ領域(アドレス :"000000H ∼ 000006H", "000010H ∼ 000017H")
これらのレジスタは I/O ポートを制御し , かつデータを入出力します。
30
第 3 章 CPU
3.3
メモリマップ
MB90460/465 シリーズの各製品のメモリマップを示します。
■ メモリマップ
MB90460/465 シリーズのメモリマップを図 3.3-1 に示します。
図 3.3-1 メモリマップ
シングルチップモード
(ROM ミラー機能あり)
FFFFFF H
ROM 領域
アドレス番号1
FC0000 H
010000 H
ROM 領域
(FFバンクイメージ)
アドレス番号 2
004000 H
003FE0 H
リソース領域
アドレス番号3
RAM
領域
レジスタ
: 内部アクセスメモリ
000100 H
: アクセス不可
0000C0 H
000000 H
リソース領域
製品番号
アドレス番号1
アドレス番号2
アドレス番号3
MB90462/467
FF0000H
004000H
000900H
MB90F462/F462A
FF0000H
004000H
000900H
MB90F463A
FE0000H
004000H
000900H
MB90V460
FF0000H *
004000H *
002100H
*:MB90V460にはROMは含まれていません。これらの領域は,開発ツールがROMデコード
領域として使用するものと仮定します。
< 注意事項 >
ROM ミラー機能レジスタを設定した場合 , 00 バンクの上位側("004000H ∼
00FFFFH")に FF バンクの上位側("FF0000H ∼ FFFFFFH")のデータがミラーイ
メージで見えるようになります。
ROM ミラー機能の設定は , 「第 22 章 ROM ミラー機能選択モジュール」をご参照
ください。
31
第 3 章 CPU
< 参考 >
ROM ミラー機能は , C コンパイラのスモールモデルを使用するための機能です。
FF バンクの下位 16 ビットアドレスは , 00 バンクの下位 16 ビットアドレスと同じ
になります。ただし , FF バンクの ROM 領域は 48K バイトを超えますので , 00 バ
ンクには ROM 領域の全データをミラーイメージで見せることはできません。
C コンパイラのスモールモデルをご使用の場合は , データテーブルを "FF4000H ∼
FFFFFFH" に格納しておくことで "004000H ∼ 00FFFFH" にミラーイメージでデー
タテーブルを見せることができます。したがって , ポインタで far 指定を宣言する
ことなく , ROM 領域内のデータテーブルを参照できます。
32
第 3 章 CPU
3.4
アドレス指定
アドレス指定には , リニア方式とバンク方式があります。
リニア方式は , 16M バイトの空間において連続している 24 ビットアドレスに対し ,
命令により直接アドレスを指定します。
バンク方式は , 64K バイトごとの 256 バンクに分割された 16M バイト空間において ,
上位 8 ビットアドレスをバンクレジスタにより指定し , 下位 16 ビットアドレスを命
令により直接指定します。
F2MC-16LX ファミリは , アドレス生成方式により命令の使用方法が異なります。
■ リニア方式とバンク方式のメモリ指定
図 3.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
000000H
000000H
123456H
すべて命令で指定
04バンク
03バンク
02バンク
01バンク
00バンク
123456H
命令で指定
用途に応じたバンクレジスタで指定
33
第 3 章 CPU
3.4.1
リニア方式によるアドレス指定
リニア方式によるアドレス指定には , さらにオペランドで 24 ビットのアドレスを直
接指定する方法と , 32 ビット汎用レジスタの下位 24 ビットをアドレスとして引用指
定(間接指定)する方法があります。
■ オペランドによる 24 ビットアドレス直接指定
図 3.4-2 リニア方式による 24 ビット物理アドレス直接指定例
JMPP 0123456H
旧プログラムカウンタ
+プログラムバンク
17
0452DH
170452DH
新プログラムカウンタ
+プログラムバンク
12
03456H
0123456H
JMPP 0123456H
次の命令
■ 32 ビット汎用レジスタの下位 24 ビットアドレス引用指定(間接指定)
図 3.4-3 リニア方式による 32 ビット汎用レジスタ(下位 24 ビットアドレス引用)間接指定例
MOV A,@RL1+7
旧AL
090700H
XXXX
3AH
+7
新AL
003A
RL1
(上位8ビットは無視)
RL1:32ビット(ロングワード)汎用レジスタ
34
240906F9H
第 3 章 CPU
3.4.2
バンク方式によるアドレス指定
バンク方式は , 16M バイトのメモリ空間を 64K バイトごとの 256 バンクに分割し ,
これらのバンクアドレスを , アドレスの上位 8 ビットを示すバンクレジスタによっ
て指定します。下位 16 ビットアドレスは命令により直接指定します。
バンクレジスタには , 用途別に以下に示す 5 種類があります。
• プログラムバンクレジスタ(PCB)
• データバンクレジスタ(DTB)
• ユーザスタックバンクレジスタ(USB)
• システムスタックバンクレジスタ(SSB)
• アディショナルバンクレジスタ(ADB)
■ バンクレジスタとアクセス空間
各バンクレジスタのアクセス空間と主な用途について表 3.4-1 に示します。
表 3.4-1 各バンクレジスタのアクセス空間と主な用途
バンクレジスタ名
プログラム
バンクレジスタ
(PCB)
データバンク
レジスタ(DTB)
ユーザスタック
バンクレジスタ
(USB)
アクセス
空間
リセット時
初期値
プログラ
ム空間
命令コード , ベクタテーブル , 即値データの格納用
FFH
データ
空間
読み書き可能なデータを格納。内外周辺の制御レジスタ
やデータレジスタへのアクセス用
00H
PUSH/POP 命令や , 割込みのレジスタ退避などのスタック
アクセス用。コンディションレジスタ内のスタックフラ
グ(CCR:S)が "1" の場合は SSB レジスタを , "0" の場合
は USB レジスタを使用 *
00H
スタック
空間
システムスタック
バンクレジスタ
(SSB)*
アディショナル
バンクレジスタ
(ADB)
主な用途
アディ
ショナル
空間
データ(DT)空間でオーバフローしたデータの格納用
00H
00H
*: 割込み時のスタックには , 必ず SSB レジスタが使用されます。
バンクレジスタの詳細は , 「3.7.9 バンクレジスタ(PCB, DTB, USB, SSB, ADB)」を
ご参照ください。
バンク方式によるアドレス指定例を図 3.4-4 に示します。
35
第 3 章 CPU
図 3.4-4 バンク方式によるアドレス指定例
FFFFFFH
FF0000H
プログラム空間
FFH
:PCB(プログラムバンクレジスタ)
0FFFFFH
物
アディショナル空間
0F0000H
0FH :ADB(アディショナルバンクレジスタ)
理
ア
ド
0DFFFFH
0D0000H
ユーザズタック空間
0DH
:USB(ユーザスタックバンクレジスタ)
0BH
:DTB(データバンクレジスタ)
レ
0BFFFFH
データ空間
ス
0B0000H
07FFFFH
070000H
システムスタック空間
07H :SSB(システムスタックバンクレジスタ)
000000H
■ バンク方式によるアドレス指定とデフォルト空間
命令のコード効率向上のために , 各命令には , アドレス指定方式ごとに表 3.4-2 に示す
ようなデフォルト空間が決められています。デフォルト以外の空間を使用したい場合
は , 各バンクに対応しているプリフィックスコード
を , 命令に先行して設定してください。これにより , プリフィックスコードに対応した
バンク空間へアクセスできます。プリフィックスコードの詳細は , 「3.9 プリフィック
スコード」をご参照ください。
表 3.4-2 アドレス指定とデフォルト空間
デフォルト空間
アドレス指定
プログラム空間
PC 間接 , プログラムアクセス , 分岐系
データ空間
@RW0, @RW1, @RW4, @RW5, @A, addr16, dir を用いたアドレス指定
スタック空間
PUSHW, POPW, @RW3, @RW7 を用いたアドレス指定
アディショナル空間
@RW2, @RW6 を用いたアドレス指定
36
第 3 章 CPU
3.5
多バイト長データのメモリ配置
多バイト長データは , 下位アドレスから順にメモリへ書き込まれます。多バイト長
データが 32 ビットであれば , 下位 16 ビットの次に上位 16 ビットの順に転送されま
す。ただし , 下位データを書き込んだ直後に外部リセット信号が入力された場合 , 上
位データが書き込まれない場合があります。
■ メモリ上の多バイト長データの格納状態
データは下位 8 ビットが n 番地に , 次に n + 1 番地 , n + 2 番地 , n + 3 番地の順に配置
されます。
メモリ上における多バイ長データの構成を図 3.5-1 に示します。
図 3.5-1 メモリ上の多バイト長データ構成
MSB
H
01010101B
LSB
11001100B
11111111B
00010100B
01010101B
11001100B
11111111B
00010100B
n番地
L
MSB:最上位ビット
LSB:最下位ビット
■ 多バイト長オペランドの構成
メモリ上における多バイ長オペランドの構成を図 3.5-2 に示します。
図 3.5-2 メモリ上の多バイト長オペランド構成
JMPP 123456H
H
JMPP 1 2 3 4 5 6H
12H
34H
56H
n番地
63H
L
37
第 3 章 CPU
■ スタック上の多バイト長データの構成
スタック上の多バイト長データ構成を図 3.5-3 に示します。
図 3.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" 番地に
なります。
バンクアドレス境界における多バイト長データへのアクセスを図 3.5-4 に示します。
図 3.5-4 バンクアドレス境界における多バイト長データへのアクセス
H
実行前のAL
80FFFFH
01H
800000H
・
・
・
23H
L
38
? ?
? ?
MOVW A,080FFFFH
実行後のAL
23H
01H
第 3 章 CPU
3.6
レジスタ
F2MC-16LX ファミリのレジスタには , CPU に内蔵されている専用レジスタと , 内蔵
RAM 上に配置されている汎用レジスタがあります。
■ 専用レジスタと汎用レジスタ
専用レジスタは , CPU に内蔵されています。
汎用レジスタは , CPU のアドレス空間上に RAM と共存しています。
専用レジスタと汎用レジスタを図 3.6-1 に示します。
図 3.6-1 専用レジスタと汎用レジスタ
CPU
RAM
専用レジスタ
RAM
アキュームレータ
汎用レジスタ
ユーザスタックポインタ
システムスタックポインタ
プログラムカウンタ
ダイレクトページレジスタ
内部データバス
プロセッサステータス
プログラムバンクレジスタ
データバンクレジスタ
ユーザスタックバンクレジスタ
システムスタックバンクレジスタ
アディショナルデータバンクレジスタ
39
第 3 章 CPU
3.7
専用レジスタ
専用レジスタは , 以下に示す 11 種類のレジスタで構成されています。
• アキュムレータ(A)
• ユーザスタックポインタ(USP)
• システムスタックポインタ(SSP)
• プロセッサステータス(PS)
• プログラムカウンタ(PC)
• ダイレクトページレジスタ(DPR)
• プログラムバンクレジスタ(PCB)
• データバンクレジスタ(DTB)
• ユーザスタックバンクレジスタ(USB)
• システムスタックバンクレジスタ(SSB)
• アディショナルデータバンクレジスタ(ADB)
■ 専用レジスタの構成
専用レジスタの構成を図 3.7-1 に示します。
図 3.7-1 専用レジスタの構成
AH
AL
:アキュムレータ(A)
演算結果の格納用。<16ビット×2>
連続した32ビットレジスタとしても使用可能。
USP
:ユーザスタックポインタ(USP)<16ビット>
ユーザスタックアドレスを示す。
SSP
:システムスタックポインタ(SSP)<16ビット>
システムスタックアドレスを示す。
PS
:プロセッサステータス(PS)<16ビット>
システムの状態を示す。
PC
:プログラムカウンタ(PC)<16ビット>
プログラムアドレスを示す。
DPR
:ダイレクトページレジスタ(DPR)<8ビット>
短縮直接アドレッシングを実行した場合に,オペランドアドレスの
ビット8~15を指定します。
PCB
:プログラムバンクレジスタ(PCB)<8ビット>
プログラム空間を示す。
DTB
:データバンクレジスタ(DTB)<8ビット>
データ空間を示す。
USB
:ユーザスタックバンクレジスタ(USB)<8ビット>
ユーザスタック空間を示す。
SSB
:システムスタックバンクレジスタ(SSB)<8ビット>
システムスタック空間を示す。
ADB
8ビット
:アディショナルデータバンクレジスタ(ADB)<8ビット>
アディショナル空間を示す。
16ビット
32ビット
40
バンクレジスタ
第 3 章 CPU
表 3.7-1 専用レジスタの初期値
専用レジスタ
初期値
アキュムレータ(A)
不定
ユーザスタックポインタ(USP)
不定
システムスタックポインタ(SSP)
不定
プロセッサステータス(PS)
bit
15
~
13 12
~
ILM
PS
0
0
8
7
0
0
0
0
0
~
CCR
RP
0
0
x
0
1
x
x
x
x
x
リセットベクタ中の値(FFFFDCH,FFFFDDHのデータ)
プログラムカウンタ(PC)
リセットベクタ中の値(FFFFDCH, FFFFDDH のデータ)
ダイレクトページレジスタ(DPR)
01H
プログラムバンクレジスタ(PCB)
リセットベクタ中の値(FFFFDEH のデータ)
データバンクレジスタ(DTB)
00H
ユーザスタックバンクレジスタ(USB)
00H
システムスタックバンクレジスタ(SSB)
00H
アディショナルデータバンクレジスタ(ADB) 00H
41
第 3 章 CPU
3.7.1
アキュムレータ(A)
アキュムレータ(A)は , 二つの 16 ビット長演算用レジスタ(AH/AL)から構成さ
れています。演算結果やデータの一時記憶に使用されるレジスタです。
アキュムレータ(A)は , 32/16/8 ビットのレジスタとして使用できます。メモリと
ほかのレジスタ間 , あるいは上位側の 16 ビット長演算レジスタ(AH)と下位側の
16 ビット長演算レジスタ(AL)間で演算できます。また , ワード長以下(16 ビッ
ト長以下)のデータを下位側の 16 ビット長演算レジスタ(AL)へ転送した場合 , そ
れまでに存在した下位側の 16 ビット長演算レジスタ(AL)のデータが , 上位側の
16 ビット長演算レジスタ(AH)へ転送されるデータ保持機能があります(一部の
命令ではこの " データ保持機能 " は無効となります)。
■ アキュムレータ(A)
● アキュムレータへのデータ転送
アキュムレータは , 32 ビット長(ロングワード), 16 ビット長(ワード), 8 ビット長
(バイト)のデータを処理します。例外として , 4 ビットデータ転送命令(MOVN)も
8 ビットデータと同様に処理します。
• 32 ビットデータの処理時は , 上位演算用レジスタ(AH)と下位演算用レジスタ(AL)
が連結して使用されます。
• 16 ビットデータや 8 ビットデータの処理時は , 下位演算用レジスタ(AL)が使用さ
れます。上位演算用レジスタ(AH)は , その処理前まで存在した下位演算用レジス
タ(AL)のデータを保持します。
• 下位演算用レジスタ(AL)へバイト長以下(8 ビット長以下)のデータが転送され
た場合は , そのデータは 16 ビット長へ符号拡張またはゼロ拡張され , 下位演算用レ
ジスタ(AL)へ格納されます。また , 下位演算用レジスタ(AL)へ格納されたデー
タは , 16 ビットデータまたは 8 ビットデータとして処理できます。
具体的な転送例を図 3.7-2 ∼図 3.7-6 に示します。
図 3.7-2 アキュムレータ(A)へのデータ転送
32ビット
AH
AL
32ビットデータ転送
データ転送 データ転送
16ビットデータ転送
AH
データ退避
AL
データ転送
8ビットデータ転送
AH
データ退避
AL
"00H"もしくは"FFH"* データ転送
(ゼロ拡張もしくは符号拡張)
*:4ビット転送命令の場合は,"000H"もしくは"FFFH"となります。
42
第 3 章 CPU
● アキュムレータ(A)のバイト処理算術演算
バイト処理の算術演算命令を下位演算用レジスタ(AL)に対して実行した場合 , 下位
演算用レジスタ(AL)の上位 8 ビットは無視されます("00H" が挿入されます)。
● アキュムレータ(A)の初期値
リセット後の初期値は不定です。
図 3.7-3 アキュムレータ(A)の AL-AH レジスタ間の転送例(8 ビット即値 , ゼロ拡張)
MOV A,3000H
(3000H番地のデータをゼロ拡張してALレジスタに格納する命令)
MSB
実行前
AH
AL
XXXXH
2456H
2456H
77H
LSB
88H
B5H
DTB
実行後
B53000H
メモリ空間
X :不定
MSB:最上位ビット
LSB:最下位ビット
DTB:データバンクレジスタ
0088H
図 3.7-4 アキュムレータ(A)の AL-AH レジスタ間の転送例(8 ビット即値 , 符号拡張)
MOVX A,3000H
(3000H番地のデータをALレジスタに格納する命令)
MSB
実行前
AH
AL
XXXXH
2456H
DTB
実行後
2456H
FF88H
B53000H
メモリ空間
77H
LSB
88H
B5H
X :不定
MSB:最上位ビット
LSB:最下位ビット
DTB:データバンクレジスタ
43
第 3 章 CPU
図 3.7-5 アキュムレータ(A)への 32 ビットデータ転送例(レジスタ間接)
MOVL A,@RW1+6
実行前
AH
XXXXH
(RW1のデータ+8ビット長オフセットの結果を番地としてロングワード
長リードを行い,そのデータをAレジスタに格納する命令)
AL
XXXXH
8F74H
メモリ空間
A6153EH
8FH
2BH
74H
52H
RW1
15H
38H
A61540H
A6H
DTB
実行後
MSB
LSB
+6
2B52H
X :不定
MSB:最上位ビット
LSB:最下位ビット
DTB:データバンクレジスタ
図 3.7-6 アキュムレータ(A)の AL-AH レジスタ間の転送例(16 ビット , レジスタ間接)
MOVW A,@RW1+6
実行前
(RW1のデータ+8ビット長オフセットの結果を番地としてワード長
リードを行い、そのデータをAレジスタに格納する命令)
AH
AL
XXXXH
1234H
DTB
実行後
1234H
2B52H
MSB
A6153EH
8FH
2BH
74H
52H
RW1
15H
38H
A61540H
A6H
メモリ空間
LSB
+6
X :不定
MSB:最上位ビット
LSB:最下位ビット
DTB:データバンクレジスタ
44
第 3 章 CPU
3.7.2
スタックポインタ (USP, SSP)
スタックポインタには , ユーザスタックポインタ(USP)とシステムスタックポイ
ンタ(SSP)があります。これらのレジスタは , PUSH 命令や POP 命令およびサブ
ルーチンを実行する場合に , データの退避先や復帰先のメモリアドレスを示す 24
ビットのレジスタです。スタックアドレス(24 ビット)の上位 8 ビットは , ユーザ
スタックバンクレジスタ(USB)もしくはシステムスタックバンクレジスタ(SSB)
で指定されます。
コンディションコードレジスタ(CCR)の S フラグが "0" の場合は , ユーザスタッ
クポインタ(USP)およびユーザスタックバンクレジスタ(USB)が有効になりま
す。S フラグが "1" の場合は , システムスタックポインタ(SSP)およびシステムス
タックバンクレジスタ(SSB)が有効になります。
■ スタックの設定
F2MC-16LX ファミリでは , システムスタックとユーザスタックの 2 種類のスタックを
使用できます。スタックアドレスは , プロセッサステータスレジスタ(PS:CCR)内の
S フラグによって , 表 3.7-2 のように決定されます。
表 3.7-2 スタックアドレスの指定
スタックアドレス(24 ビット)
S フラグ
上位 8 ビット
下位 16 ビット
0
ユーザスタックバンクレジスタ
(USB)
ユーザスタックポインタ(USP)
1*
システムスタックバンクレジスタ
(SSB)
システムスタックポインタ(SSP)
*: 初期値
リセットによって , S フラグは "1" に初期化されます。したがって , 初期設定ではシス
テムスタックが使用されます。ただし , 割込みルーチンのスタック操作時はシステムス
タックが使用され , 割込みルーチン以外のスタック操作時にはユーザスタックが使用
されます。スタック空間を分割しないのであれば , システムスタックを使用してくださ
い。
< 注意事項 >
割込みが受付けられた場合 , S フラグは "1" にセットされ , システムスタックが使用
されます。
スタック操作命令とスタックポインタを図 3.7-7 に示します。
45
第 3 章 CPU
図 3.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)の詳細は , 「3.7.4 コンディションコードレジ
スタ(PS:CCR)」を , システムスタックバンクレジスタ(SSB)の詳細は , 「3.7.9 バン
クレジスタ(PCB, DTB, USB, SSB, ADB)」をご参照ください。
■ ユーザスタックポインタ(USP)
ユーザスタックポインタ(USP)を設定する場合は , コンディションコードレジスタ
(CCR)内の S フラグに "0" を設定してください。S フラグに "0" を設定した場合 , ス
タックを操作する際に使用されるアドレスの上位8ビットは, ユーザスタックバンクレ
ジスタ(USB)により示されます。
コンディションコードレジスタ(CCR)の詳細は , 「3.7.4 コンディションコードレジ
スタ(PS:CCR)
」を , システムスタックバンクレジスタ(SSB)の詳細は , 「3.7.9 バン
クレジスタ(PCB, DTB, USB, SSB, ADB)」をご参照ください。
46
第 3 章 CPU
3.7.3
プロセッサステータス(PS)
プロセッサステータス(PS)は , CPU を制御するビットと CPU の状態を示すビッ
トから構成されています。プロセッサステータス(PS)は , 以下に示す 3 つのレジ
スタで構成されています。
• 割込みレベルマスクレジスタ(ILM)
• レジスタバンクポインタ(RP)
• コンディションコードレジスタ(CCR)
■ プロセッサステータス(PS)の構成
プロセッサステータス(PS)の構成を図 3.7-8 に示します。
図 3.7-8 プロセッサステータス(PS)の構成
RP
ILM
bit
PS
12
11
ILM2 ILM1 ILM0 B4
B3
15
14
13
10
CCR
9
B2 B1
8
7
6
5
4
3
2
1
0
B0
-
I
S
T
N
Z
V
C
● コンディションコードレジスタ(CCR)
命令実行結果や割込み出力によって "1" が設定または "0" にクリアされる各種フラグか
ら構成されています。
各種フラグの詳細は , 「3.7.4 コンディションコードレジスタ(PS:CCR)」をご参照く
ださい。
● レジスタバンクポインタ(RP)
RAM 領域の中で汎用レジスタとして使用するメモリブロック(レジスタバンク)の先
頭アドレスを設定するポインタです。
汎用レジスタは 32 バンクで構成されています。レジスタバンクポインタ(RP)
に "00H ∼
1FH " の値を設定してバンクを指定してください。
設定方法および詳細は , 「3.7.5 レジスタバンクポインタ(PS:RP)」をご参照ください。
● 割込みレベルマスクレジスタ(ILM)
CPU が現在受付けている割込みのレベルを示します。またリソースごとの割込み要求
に対応して設定されている割込み制御レジスタ(ICR00 ∼ ICR15)の割込みレベル設
定ビット(ICR:IL0 ∼ IL2)値と比較します。
設定方法および詳細は , 「3.7.6 割込みレベルマスクレジスタ(PS:ILM)」をご参照くだ
さい。
47
第 3 章 CPU
コンディションコードレジスタ(PS:CCR)
3.7.4
コンディションコードレジスタ(CCR)は , 以下に示す 8 ビットで構成されていま
す。
• 演算結果や転送データを示すビット
• 割込み要求の受付けを制御するビット
■ コンディションコードレジスタ(CCR)の構成
命令実行時のコンディションコードレジスタ(CCR)の状態については ,『F2MC-16LX
ファミリ プログラミングマニュアル』をご参照ください。
コンディションコードレジスタ(CCR)の構成を図 3.7-9 に示します。
図 3.7-9 コンディションコードレジスタ(CCR)の構成
RP
ILM
bit 15
PS
14
13
12
ILM2 ILM1 ILM0 B4
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" が設定されます。
スタックポインタの詳細は ,「3.7.2 スタックポインタ(USP, SSP)
」をご参照ください。
48
第 3 章 CPU
● スティッキィビットフラグ(T)
論理右シフト命令または算術右シフト命令を実行した場合 , キャリーからシフトアウ
トされたデータ内に "1" があればスティッキィビットフラグ(T)に "1" が設定され ,
"1" がなければスティッキィビットフラグ(T)は "0" にクリアされます。また , シフト
量がゼロの場合でも "0" にクリアされます。
● ネガティブフラグ(N)
演算結果が格納される汎用レジスタ(RL0 ∼ RL3)の最上位ビット(MSB)が "1" の
場合は , ネガティブフラグ(N)に "1" が設定されます。演算結果が格納される汎用レ
ジスタ(RL0-RL3)の最上位ビット(MSB)が "0" の場合は , ネガティブフラグ(N)
が "0" にクリアされます。
汎用レジスタの詳細は , 「3.8 汎用レジスタ」をご参照ください。
● ゼロフラグ(Z)
演算結果が格納される汎用レジスタ(RL0 ∼ RL3)の値が "0000H" の場合は , ゼロフラ
グ(Z)に "1" が設定されます。演算結果が格納される汎用レジスタ(RL0 ∼ RL3)の
値が "0000H" でない場合は , ゼロフラグ(Z)は "0" にクリアされます。
汎用レジスタの詳細は , 「3.8 汎用レジスタ」をご参照ください。
● オーバフローフラグ(V)
演算の結果 , 符号付き数値としてオーバフローが発生した場合は , オーバフローフラグ
(V)に "1" が設定されます。オーバフローが発生しなかった場合は , オーバフローフ
ラグ(V)は "0" にクリアされます。
● キャリーフラグ(C)
演算の結果 , 最上位ビットからの桁上がりまたは最上位ビットへの桁下がりが発生し
た場合は , キャリーフラグ(C)に "1" が設定されます。発生しなかった場合は , キャ
リーフラグ(C)は "0" にクリアされます。
49
第 3 章 CPU
レジスタバンクポインタ(PS:RP)
3.7.5
レジスタバンクポインタ(RP)は , 現在使用している汎用レジスタバンクの先頭ア
ドレスを示す 5 ビットのレジスタです。
■ レジスタバンクポインタ(RP)
レジスタバンクポインタ(RO)を図 3.7-10 に示します。
図 3.7-10 レジスタバンクポインタ(RP)の構成
RP
ILM
bit
PS
15
14
13
12
ILM2 ILM1 ILM0 B4
11
10
B3 B2
CCR
9
8
7
6
5
4
3
2
1
0
RP初期値
B1
B0
-
I
S
T
N
Z
V
C
00000B
■ 汎用レジスタ領域とレジスタバンクポインタ(RP)
レジスタバンクポインタ(RP)は , F2MC-16LX ファミリが持っている汎用レジスタと ,
内部 RAM のアドレスとの関係を示すポインタです。レジスタバンクポインタ(RP)と
アドレスは , 図 3.7-11 に示す変換規則の関係です。
図 3.7-11 汎用レジスタ領域の物理アドレス変換規則
変換式 [ 000180H +(RP)× 10H ]
RP=10Hの場合
000370H
レジスタバンク31
:
:
000280H
レジスタバンク16
:
:
000180H
レジスタバンク 0
• アセンブラ命令では , レジスタバンクポインタ(RP)へ転送する 8 ビットの即値転
送命令を使用できます。ただし , 下位 5 ビットのデータが有効となります。
50
第 3 章 CPU
割込みレベルマスクレジスタ(PS:ILM)
3.7.6
割込みレベルマスクレジスタ(ILM)は , 現在設定されている割込みレベルを示しま
す。
割込みレベルマスクレジスタ(ILM)には , 受付け可能な割込みレベルを設定できま
す。割込みレベルマスクレジスタ(ILM)に設定された割込みレベル値よりも弱い割
込みレベル値の割込みは受付けません。
■ 割込みレベルマスクレジスタ(ILM)
割込みの詳細は , 「第 7 章 割込み」をご参照ください。
割込みレベルマスクレジスタ(ILM)の構成を図 3.7-12 に示します。
図 3.7-12 割込みレベルマスクレジスタ(ILM)の構成
RP
ILM
bit
PS
15
14
13
12
ILM2 ILM1 ILM0 B4
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
11
割込みレベルマスクレジスタ(ILM)は , 現在設定されている割込みレベルを示します。
割込みレベルマスクレジスタ(ILM)には , 受付け可能な割込みレベルを設定できま
す。割込みレベルマスクレジスタ(ILM)に設定された割込みレベル値よりも弱い割
込みレベル値の割込みは受付けません。
• リセットにより割込みレベルマスクレジスタ(ILM)は , 最強の割込みレベルが設
定され , 割込みを受付けません。
• アセンブラ命令では , 割込みレベルマスクレジスタ(ILM)へ転送する 8 ビットの
即値転送命令を使用できます。ただし , 下位 3 ビットが有効となります。
表 3.7-3 割込みレベルマスクレジスタ(ILM)と割込みレベルの強弱
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
↓
弱
51
第 3 章 CPU
3.7.7
プログラムカウンタ(PC)
プログラムカウンタ(PC)は , CPU が次に実行する命令アドレスの下位 16 ビット
を示す 16 ビットカウンタです。
■ プログラムカウンタ(PC)
CPU が次に実行する命令アドレスの , 上位 8 ビットをプログラムバンクレジスタ
(PCB)
で設定し , 下位 16 ビットをプログラムカウンタ(PC)で設定します。次に実行する命
令アドレスは , 図 3.7-13 のように決定します。プログラムカウンタ(PC)は条件分岐
命令 , サブルーチンコール命令 , 割込みやリセットでも内容が更新されます。また , オ
ペランドを読み出す場合のベースポインタとしても使用できます。
プログラムバンクレジスタ(PCB)の詳細は ,「3.7.9 バンクレジスタ(PCB, DTB, USB,
SSB, ADB)
」をご参照ください。
図 3.7-13 プログラムカウンタ(PC)
上位8ビット
PCB
FEH
下位16ビット
PC
ABCDH
FEABCDH
< 注意事項 >
52
次に実行する命令
プログラムカウンタ(PC)やプログラムバンクレジスタ(PCB)をプログラム
(MOV PC, #0FFH などの命令)で直接書き換えることはできません。
第 3 章 CPU
3.7.8
ダイレクトページレジスタ(DPR)
ダイレクトページレジスタ(DPR)は , 短縮直接アドレス指定方式の命令実行時に ,
オペランドアドレスのビット 8 ∼ 15(addr8 ∼ addr15)を指定する 8 ビットレジ
スタです。リセットにより "01H" に初期化されます。
■ ダイレクトページレジスタ(DPR)
短縮直接アドレス指定方式については , 「付録 B.3 直接アドレッシング」をご参照く
ださい。
ダイレクトページレジスタ(DPR)による物理アドレスの生成を図 3.7-14 に示します。
図 3.7-14 ダイレクトページレジスタ(DPR)による物理アドレスの生成
データバンクレジスタDTB
A A A A A A A A
データバンクレジスタDPR
B B B B B B B B
MSB
bit24
16
24ビット
物理アドレス
A A A A A A A A
15
命令中の直接アドレス
C C C C C C C C
8
B B B B B B B B
LSB
7
0
C C C C C C C C
MSB:最上位ビット
LSB:最下位ビット
ダイレクトページレジスタ(DPR)の設定とデータアクセス例を図 3.7-15 に示します。
図 3.7-15 ダイレクトページレジスタ(DPR)の設定とデータアクセス例
MOV S:56H,#5AH
命令実行結果
上位8ビット 下位8ビット
データバンクレジスタDTB
12H
データバンクレジスタDPR
34H
123458H
123456H
MSB:最上位ビット
LSB:最下位ビット
5AH
123454H
MSB
LSB
53
第 3 章 CPU
3.7.9
バンクレジスタ(PCB, DTB, USB, SSB, ADB)
バンクレジスタは , バンク方式アドレス指定の最上位 8 ビットアドレスを指定する
レジスタであり , 以下に示す 5 種類のレジスタで構成されます。
• プログラムバンクレジスタ(PCB)
• データバンクレジスタ(DTB)
• ユーザスタックバンクレジスタ(USB)
• システムスタックバンクレジスタ(SSB)
• アディショナルバンクレジスタ(ADB)
各バンクレジスタは , プログラム空間 , データ空間 , ユーザスタック空間 , システム
スタック空間およびアディショナル空間に配置されるメモリバンクを示します。
■ バンクレジスタ(PCB, DTB, USB, SSB, ADB)
● プログラムバンクレジスタ(PCB)
プログラム(PC)空間を指定するバンクレジスタです。
● データバンクレジスタ(DTB)
データ(DT)空間を指定するバンクレジスタです。
● ユーザスタックバンクレジスタ(USB)/ システムスタックバンクレジスタ(SSB)
スタック(SP)空間を指定するバンクレジスタです。
● アディショナルバンクレジスタ(ADB)
アディショナル(AD)空間を指定するバンクレジスタです。
● 各バンクの設定とデータアクセス
バンクレジスタは , 8 ビット長です。リセットによりプログラムバンクレジスタ(PCB)
は "FFH" に初期化され , データバンクレジスタ(DTB), ユーザスタックバンクレジス
タ(USB), システムスタックバンクレジスタ(SSB)およびアディショナルバンクレ
ジスタ(ADB)は "00H" に初期化されます。プログラムバンクレジスタ(PCB)は , 読
出しはできますが書込みはできません。プログラムバンクレジスタ(PCB)以外のバ
ンクレジスタは , 読み書き可能です。
< 注意事項 >
54
MB90460/465 シリーズは , デバイスに内蔵されるメモリ空間までをサポートしま
す。
各レジスタ動作の詳細は , 「3.4.2 バンク方式によるアドレス指定」をご参照くださ
い。
第 3 章 CPU
3.8
汎用レジスタ
汎用レジスタは , RAM 上の "000180H ∼ 00037FH" に , 16 ビット× 8 本を 1 つのレ
ジスタバンクとして割当てたメモリブロックです。汎用の 8 ビットレジスタ(バイ
トレジスタ R0 ∼ R7), 16 ビットレジスタ(ワードレジスタ RW0 ∼ RW7)もしく
は 32 ビットレジスタ(ロングワードレジスタ RL0 ∼ RL7)として使用できます。
汎用レジスタへは , 短い命令で高速にアクセスできます。また , レジスタバンクに
よってブロック化されているために , データの保護や機能単位の分割が容易です。
また , ロングワードレジスタとして使用した場合は , 全空間へ直接アクセスするリニ
アポインタとしても使用できます。
■ 汎用レジスタの構成
汎用レジスタは , RAM 上の "000180H ∼ 00037FH" に全部で 32 バンク存在し , レジスタ
バンクポインタ(RP)でバンクを指定します。レジスタバンクポインタ(RP)で設定
するバンクの先頭アドレスは , 下式のようになります。16 ビット× 8 本を 1 つのレジ
スタバンクとして定義します。
汎用レジスタの先頭アドレス =000180H + レジスタバンクポインタ(RP)× 10H
レジスタバンクポインタ(PR)の詳細は , 「3.7.5 レジスタバンクポインタ(PS:RP)
」
をご参照ください。
メモリ空間内における汎用レジスタの配置と構成を図 3.8-1 に示します。
図 3.8-1 メモリ空間内における汎用レジスタの配置と構成
内蔵RAM
000380H
000370H
000360H
0002E0H
0002D0H
0002C0H
0002B0H
:
バイト
アドレス
レジスタバンク30
02CEH
R6
R7
02CFH
RW7
:
:
:
02CCH
R4
R5
02CDH
RW6
02CAH
R2
R3
02CBH
RW5
02C8H
R0
R1
02C9H
RW4
レジスタバンク21
レジスタバンク20
レジスタバンク19
:
:
:
:
:
0001B0H
0001A0H
レジスタバンク 2
000190H
000180H
レジスタバンク 1
レジスタバンク 0
< 注意事項 >
バイト
アドレス
レジスタバンク31
:
RP
14H
02C6H
RW3
02C7H
02C4H
RW2
02C5H
02C2H
RW1
02C3H
02C0H
RW0
02C1H
LSB
RL3
RL2
RL1
RL0
MSB
16ビット
変換式[000180H + RP×10H]
R0 ~ R7 :バイトレジスタ
RW0 ~ RW7:ワードレジスタ
RL0 ~ RL3:ロングワードレジスタ
MSB
:最上位ビット
LSB
:最下位ビット
レジスタバンクポインタ(RP)は , リセット後 "00H" に初期化されます。
55
第 3 章 CPU
■ レジスタバンク
レジスタバンク内の汎用レジスタは , RAM と同様にリセットでは初期化されず , リ
セット前のデータを保持します。ただし , パワーオンリセット時には不定となります。
表 3.8-1 汎用レジスタの代表的な機能
レジスタ名
56
機能
R0 to R7
各種命令のオペランドとして使用
( 注意事項 )
R0 はバレルシフトのカウンタおよびノーマライズ(正規化)命令のカ
ウンタとしても使用
RW0 to RW7
ポインタとして使用
各種命令のオペランドとして使用
( 注意事項 )
RW0 はストリング命令のカウンタとしても使用
RL0 to RL3
ロングポインタとして使用
各種命令のオペランドとして使用
第 3 章 CPU
3.9
プリフィックスコード
命令の前にプリフィックスコードを設定した場合は , プリフィックスコード直後の
命令動作を変更できます。プリフィックスコードには , 以下に示す 3 種類がありま
す。
• バンクセレクトプリフィックス(PCB, DTB, ADB, SPB)
• コモンレジスタバンクプリフィックス(CMR)
• フラグ変化抑止プリフィックス(NCC)
■ プリフィックスコード
● バンクセレクトプリフィックス(PCB, DTB, ADB, SPB)
バンクセレクトプリフィックスを命令の前に設定した場合は , 命令がアクセスするメ
モリ空間を , アドレス指定方式とは無関係に設定できます。
詳細は , 「3.9.1 バンクセレクトプリフィックス(PCB, DTB, ADB, SPB)」をご参照く
ださい。
● コモンレジスタバンクプリフィックス(CMR)
レジスタバンクをアクセスする命令の前にコモンレジスタバンクプリフィックスを設
定した場合は , レジスタバンクポインタ(RP)の値とは関係なく , レジスタアクセスを
"000180H ∼ 00018FH" に存在するコモンバンク(RP=00H の場合に設定されるレジスタ
バンク)へ変更できます。
詳細は , 「3.9.2 コモンレジスタバンクプリフィックス(CMR)」をご参照ください。
● フラグ変化抑止プリフィックス(NCC)
フラグ変化を抑止したい命令の前に , フラグ変化抑止プリフィックスコードを設定し
た場合は , 命令の実行に伴うフラグ変化を抑止できます。
詳細は , 「3.9.3 フラグ変化抑止プリフィックス(NCC)
」をご参照ください。
57
第 3 章 CPU
3.9.1
バンクセレクトプリフィックス(PCB, DTB, ADB,
SPB)
データアクセス時のメモリ空間は , アドレス指定方式ごとに定められています。し
かしバンクセレクトプリフィックスを命令の前に設定した場合は , アクセスするメ
モリ空間を , アドレス指定方式とは無関係に設定できます。
■ バンクセレクトプリフィックス(PCB, DTB, ADB, SPB)
表 3.9-1 バンクセレクトプリフィックス
バンクセレクト
プリフィックス
設定される空間
PCB
プログラム空間
DTB
データ空間
ADB
アディショナル空間
SPB
コンディションコードレジスタ(CCR)の S フラグの値が "0" の場合は
ユーザスタック空間が , "1" の場合はシステムスタック空間が用いられ
ます。
バンクセレクトプリフィックスを使用した場合 , 例外的に動作する命令があります。
表 3.9-2 バンクセレクトプリフィックスの影響を受けない命令
命令の種類
ストリング
命令
命 令
MOVS
SCEQ
FILS
スタック操
作命令
PUSHW
I/O アクセ
ス命令
MOV A
MOVW A, io
MOV io, A
MOV io, #imm8
MOVB A, io : bp
SETB io : bp
BBC io : bp, rel
WBTC io, bp
割込み復帰
命令
RETI
58
MOVSW
SCWEQ
FILSW
POPW
バンクセレクトプリフィックスの効果
プリフィックスの有無にかかわらず , オペランド
で指定されたバンクレジスタが使用されます。
プリフィックスの有無にかかわらず , S フラグが
"0" の場合はユーザスタックバンクレジスタ
(USB)が , S フラグが "1" の場合はシステムス
タックバンクレジスタ(SSB)が使用されます。
MOVX A, io
MOVW io, A
MOVW io,
#imm16
MOVB io : bp, A
CLRB io : bp
BBS io : bp, rel
WBTS io : bp
プリフィックスの有無にかかわらず , I/O 空間
("000000H" ∼ "0000FFH")がアクセスされます。
プリフィックスの有無にかかわらず , システムス
タックバンクレジスタ(SSB)が使用されます。
第 3 章 CPU
表 3.9-3 バンクセレクトプリフィックスの使用時に注意すべき命令
命令の種類
命 令
説 明
フラグ変更命令
AND CCR, #imm8
OR CCR, #imm8
プリフィックスの効果は次の命令までおよびます。
ILM 設定命令
MOV ILM, #imm8
プリフィックスの効果は次の命令までおよびます。
PS 復帰命令
POPW PS
PS 復帰命令に対してはバンクセレクトプリフィッ
クスを付加しないでください。
59
第 3 章 CPU
3.9.2
コモンレジスタバンクプリフィックス(CMR)
コモンレジスタバンクプリフィックス(CMR)を , レジスタバンクをアクセスする
命令の前に設定した場合は , レジスタバンクポインタ(RP)の値とは関係なく , レ
ジスタアクセスを , "000180H ∼ 00018FH" に存在するコモンバンク(RP=00H の場
合に設定されるレジスタバンク)へ変更できます。
■ コモンレジスタバンクプリフィックス(CMR)
複数のタスク間におけるデータ交換を容易にするために , F2MC-16LX ファミリでは各
タスクで共通に使用できるコモンバンクを用意しています。コモンバンクは , "000180H ∼
00018FH" に存在します。
ただし , コモンレジスタバンクプリフィクス(CMR)を使用する際は表 3.9-4 に示した
命令に注意してください。
表 3.9-4 コモンレジスタバンクプリフィックス(CMR)使用時に注意すべき命令
命令の種類
60
命 令
説 明
ストリング命令
MOVS
MOVSW
SCEQ
SCWEQ
FILS
FILSW
ストリング命令に対しては , CMR プリフィックスを
付加しないでください。
フラグ変更命令
AND CCR, #imm8
OR CCR, #imm8
プリフィックスの効果は , 次の命令までおよびます。
PS 復帰命令
POPW PS
プリフィックスの効果は , 次の命令までおよびます。
ILM 設定命令
MOV ILM, #imm8
プリフィックスの効果は , 次の命令までおよびます。
第 3 章 CPU
3.9.3
フラグ変化抑止プリフィックス(NCC)
フラグ変化を抑止したい命令の前に , NCC プリフィックスを設定した場合は , 命令
の実行に伴うフラグ変化を抑止できます。
■ フラグ変化抑止プリフィックス(NCC)
不要なフラグ変化を抑止するために , フラグ変化抑止プリフィックス(NCC)を用い
ます。フラグ変化の抑止対象となるフラグは T, N, Z, V, C です。
ただし , フラグ変化抑止プリフィックスを使用する際は表 3.9-5 に示した命令に注意し
てください。
T, N, Z, V, C の各フラグの詳細は , 「3.7.4 コンディションコードレジスタ(PS:CCR)
」
をご参照ください。
表 3.9-5 フラグ変化抑止プリフィックス(NCC)の使用時に注意すべき命令
命令の種類
命 令
説 明
ストリング命令
MOVS
MOVSW
SCEQ
SCWEQ
FILS
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)は命令の仕様どおりに
変化します。
コンテキスト
スイッチ命令
[email protected]
プリフィックスの有無にかかわらず , コンディショ
ンコードレジスタ(CCR)は命令の仕様どおりに
変化します。
61
第 3 章 CPU
3.9.4
プリフィックスコードに関する制約
プリフィックスコードの使用には , 以下のような制約があります。
• プリフィックスコードや割込み / ホールド抑止命令の実行中は , 割込み / ホールド
要求を受付けません。
• 割込み / ホールド命令の前にプリフィックスコードを置いた場合 , プリフィック
スコードの効果は遅延します。
• 競合するプリフィックスコードが連続している場合は , 最後のプリフィックス
コードが有効となります。
■ プリフィックスコードと割込み抑止命令
プリフィックスコードと割込み抑止命令を表 3.9-6 に示します。
表 3.9-6 プリフィックスコードと割込み抑止命令
割込みやホールド
要求を受付けない
< 注意事項 >
プリフィックス
コード
割込み / ホールド抑止命令
(プリフィックスコードの効果を遅延させる命令)
PCB
DTB
ADB
SPB
CMR
NCC
MOV ILM, #imm8
OR CCR, #imm8
AND CCR, #imm8
POPW PS
割込みの抑止
図 3.9-1 に示すように , プリフィックスコードや割込み / ホールド命令の実行中は , 割
込みやホールド要求が発生しても受付けられません。これらの要求が受付けられない
場合 , 次に割込み / ホールドが処理されるのは , プリフィックスコードや割込み / ホー
ルド抑止命令以降 , 初めてプリフィックスコードや割込み / ホールド命令以外の命令
が実行された後になります。
図 3.9-1 割込みの抑止
割込み/ホールド抑止命令
・・・・・・・・・・・・・・・
割込み要求発生
62
(a) 普通の命令(プリフィックスコードなし)
(a)
・・・
割込み受付け
第 3 章 CPU
● プリフィックスコードの効果遅延
割込み / ホールド抑止命令の前にプリフィックスコードを設定した場合 , プリフィック
スコードの効果は , 割込み / ホールド抑止命令後の命令に対して有効となります。
図 3.9-2 割込み / ホールド抑止命令とプリフィックスコード
割込み/ホールド抑止命令
MOV A,0FFH
NCC
・・・・
MOV ILM,#imm8
ADD A,01H
CCR:XXX10XXB
CCR:XXX10XXB
NCCによりCCRは変化しません
■ プリフィックスコードの連続
競合するプリフィックスコード(PCB, ADB, DTB, SPB)が連続していた場合 , 最後
のプログラム空間(PCB)に設定された値が有効になります。
図 3.9-3 プリフィックスコードの連続
プリフィックスコード
・・・
ADB
DTB
PCB
ADD A,01H
・・・
プリフィックスコードは
PCBが有効になります。
63
第 3 章 CPU
3.9.5
「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意
「DIV A, Ri」, 「DIVW A, RWi」命令を使用する場合は , バンクレジスタに "00H" を
設定してください。
■「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意
「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意を表 3.9-7 に示します。
表 3.9-7 「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意(i=0 ∼ 7)
命 令
左記命令実行時に
影響を受ける
バンクレジスタ名
余りが格納されるアドレス
DIV A, R0
(DTB: 上位 8 ビット)+(0180H+RP × 10H+8H: 下位 16 ビット)
DIV A, R1
(DTB: 上位 8 ビット)+(0180H+RP × 10H+9H: 下位 16 ビット)
DIV A, R4
(DTB: 上位 8 ビット)+(0180H+RP × 10H+CH: 下位 16 ビット)
(DTB: 上位 8 ビット)+(0180H+RP × 10H+DH: 下位 16 ビット)
DIV A, R5
DTB
DIVW A, RW0
(DTB: 上位 8 ビット)+(0180H+RP × 10H+0H: 下位 16 ビット)
DIVW A, RW1
(DTB: 上位 8 ビット)+(0180H+RP × 10H+2H: 下位 16 ビット)
DIVW A, RW4
(DTB: 上位 8 ビット)+(0180H+RP × 10H+8H: 下位 16 ビット)
DIVW A, RW5
(DTB: 上位 8 ビット)+(0180H+RP × 10H +AH: 下位 16 ビット)
DIV A, R2
(ADB: 上位 8 ビット)+(0180H+RP × 10H+AH: 下位 16 ビット)
(ADB: 上位 8 ビット)+(0180H+RP × 10H+EH: 下位 16 ビット)
DIV A, R6
ADB
DIVW A, RW2
(ADB: 上位 8 ビット)+(0180H+RP × 10H+4H: 下位 16 ビット)
DIVW A, RW6
(ADB: 上位 8 ビット)+(0180H+RP × 10H+EH: 下位 16 ビット)
DIV A, R3
(USB*2: 上位 8 ビット)+(0180H+RP × 10H+BH: 下位 16 ビット)
DIV A, R7
DIVW A, RW3
DIVW A, RW7
USB
SSB*1
(USB*2: 上位 8 ビット)+(0180H+RP × 10H+FH: 下位 16 ビット)
(USB*2: 上位 8 ビット)+(0180H+RP × 10H+6H: 下位 16 ビット)
(USB*2: 上位 8 ビット)+(0180H+RP × 10H+EH: 下位 16 ビット)
*1:CCR レジスタの S ビットによる
*2:CCR レジスタの S ビットが "0" の場合
64
第 3 章 CPU
バンクレジスタ(DTB, ADB, USB, SSB)の値が "00H" の場合は , 除算結果の余りは命
令オペランドのレジスタに格納されます。バンクレジスタの値が "00H" 以外の場合は ,
上位 8 ビットアドレスは命令オペランドのレジスタに対応したバンクレジスタにより
指定され , 下位 16 ビットアドレスは命令オペランドのレジスタのアドレスと同じアド
レスとなり , 上位 8 ビットで指定されたバンクのレジスタに余りが格納されます。
【例】
DTB=053H, RP=03H の場合で「DIV A, R0」を実行すると , R0 のアドレスは "0180H"+RP
("03H")× "10 H"+"08H"(R0 相当アドレス)=0001B8H です。
ここで , 「DIV A, R0」で指定されるバンクレジスタはデータバンクレジスタ(DTB)
ですので , バンクアドレス "053H" を付加したアドレス "05301B8H" に余りが格納されま
す(Ri および RWi のレジスタについては , 「3.8 汎用レジスタ」をご参照ください)
。
■ 注意事項の回避について
「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意事項を回避してプログラムを開発
していただくために , コンパイラでは表 3.9-7 の命令を生成しないように変更し , アセ
ンブラでは表 3.9-7 の命令を同等の命令列に置換える機能を追加したバージョンが用
意されています。コンパイラおよびアセンブラは , 以下のバージョンをご使用くださ
い。
● コンパイラ
• cc907 の V02L06 以降のバージョンおよび fcc907s の V30L02 以降の バージョン
● アセンブラ
• asm907a の V03L04 以降のバージョンおよび fasm907s の V30L04 (Rev. 300004)以
降のバージョン
65
第 3 章 CPU
66
第4章
リセット
MB90460/465 シリーズのリセットについて説明し
ます。
4.1 リセットの概要
4.2 リセット要因と発振安定待ち時間
4.3 外部リセット端子
4.4 リセット動作
4.5 リセット要因フラグビット
4.6 リセットによる各端子の状態
67
第 4 章 リセット
リセットの概要
4.1
リセット要因が発生した場合 , CPU は現在実行中の処理を中断し , リセット解除待
ち状態になります。リセット解除後は , リセットベクタが示すアドレスから処理を
開始します。
リセットには , 以下に示す 4 種類の要因があります。
• パワーオンリセットの発生(電源投入時)
• ウォッチドッグタイマのオーバフロー(ウォッチドッグタイマを使用している場
合)
• 端子から外部リセット信号を入力した場合
• 低消費電力モード制御レジスタ(LPMCR)の内部リセット信号発生ビット
(RST)に "0" を設定した場合(ソフトウェアリセット)
■ リセット要因
表 4.1-1 リセット要因
リセット
発生要因
マシンクロック
ウォッチドッグ
タイマ
発振安定
待ち
外部リセット
RST 端子への "L" レベル入力
メインクロック
(MCLK)
カウント停止
なし
ソフトウェア
リセット
低消費電力モード制御レジスタ
(LPMCR)の内部リセット信号発生
ビット(RST)に "0" を設定
メインクロック
(MCLK)
カウント停止
なし
ウォッチドッグ機能が許可されてい
る場合に , ウォッチドッグタイマが
オーバフローした場合
メインクロック
(MCLK)
カウント停止
なし
メインクロック
(MCLK)
カウント停止
あり
ウォッチドッグ
タイマリセット
パワーオン
リセット
電源投入時
MCLK: メインクロック周波数(発振クロックの 2 分周クロック :2/HCLK)
HCLK: 発振クロック周波数
● 外部リセット
外部リセットは , 外部リセット端子( 端子)に "L" レベルを設定した場合に発生しま
す。"L" レベル入力時間は , 16 マシンサイクル(16/φ)以上必要です。マシンクロック
で動作している場合には , 外部リセット端子に "L" レベルを設定してリセットが発生し
ても , 発振安定待ち時間を取りません。
< 参考 >
68
命令実行中のリセット
命令実行中(転送系命令実行中 MOV 命令など)に外部リセット端子をアサート
した場合 , 実行中の命令が終了した後にリセット入力が有効になります。
ただし , ストリング系命令(MOVS 命令など)の実行中は , 設定したカウンタ値に
よる転送が完了する前にリセット入力が有効になる場合があります。
外部リセット端子をアサートした場合 , ポート端子は命令実行サイクルに関係なく
リセット状態になります(アサートされた場合は非同期です)
。
第 4 章 リセット
● ソフトウェアリセット
ソフトウェアリセットは , 低消費電力モード制御レジスタ(LPMCR)の内部リセット
信号発生ビット(RST)に "0" を設定することにより , 3 マシンサイクル(3/φ)のリ
セットを発生します。ソフトウェアリセット時は , 発振安定待ち時間を取りません。
● ウォッチドッグリセット
ウォッチドッグリセットは , ウォッチドッグタイマ起動後から , ウォッチドッグタイマ
制御レジスタ(WDTC)のインターバル時間設定ビット(WT1, WT0)で設定した時
間内に , ウォッチドッグタイマ制御レジスタ(WDTC)のウォッチドッグ制御ビット
(WTE)に "0" を設定しなかった場合に発生します。
発振安定待ち時間はクロック選択レジスタ(CKSCR)によって設定できます。
● パワーオンリセット
パワーオンリセットは , 電源投入時に発生するリセットです。
発振安定待ち時間は 218/HCLK(約 65.54ms: 発振クロック 4MHz 時), の固定です。発
振安定待ち時間が経過した後 , リセットが動作します。
< 参考 >
クロックの定義
HCLK: 発振クロック周波数(発振端子から供給されるクロック)
MCLK: メインクロック周波数(発振クロックの 2 分周クロック)
φ: マシンクロック周波数(CPU 動作クロック)
1/φ: マシンサイクル(CPU 動作クロック周期)
マシンクロックの詳細は , 「5.1 クロックの概要」ご参照ください。
69
第 4 章 リセット
4.2
リセット要因と発振安定待ち時間
F2MC-16LX ファミリには 4 種類のリセット要因があり , リセット時の発振安定待ち
時間はリセット要因によって異なります。
■ リセット要因と発振安定待ち時間
リセット要因と発振安定待ち時を表 4.2-1 に示します。
表 4.2-1 リセット要因と発振安定待ち時間
発振安定待ち時間
( )内は発振クロック周波数 4MHz 時
リセット要因
パワーオンリセット
218/HCLK (約 65.54ms)
ウォッチドッグタイマ
なし(WS1, WS0 ビットは "11B" に初期化されます)
外部リセット
なし(WS1, WS0 ビットは "11B" に初期化されます)
ソフトウェアリセット
なし(WS1, WS0 ビットは "11B" に初期化されます)
HCLK: 発振クロック周波数(MHz)
パワーオンリセットが発生した場合の発振安定待ち時間を図 4.2-1 に示します。
図 4.2-1 パワーオンリセットが発生した場合の発振安定待ち時間
Vcc
CLK
CPU動作
217/HCLK
降圧回路の
安定待ち時間
218/HCLK
発振安定待ち時間
< 注意事項 >
70
発振クロック振動子は , 発振を開始してから固有振動数で安定するまでに , 振動子
固有の発振安定待ち時間が必要です。使用する振動子に合わせた発振安定待ち時間
を設定してください。発振安定待ち時間の詳細は , 「5.5 発振安定待ち時間」をご
参照ください。
第 4 章 リセット
外部リセット端子
4.3
外部リセット端子(RST 端子)へ "L" レベル入力を設定することにより , リセット
が発生します。
■ 外部リセット端子のブロックダイヤグラム
図 4.3-1 リセット発生のブロックダイヤグラム
CPU動作クロック
(PLL逓倍回路,HCLKの2分周)
Pout
RST
P-ch
同期化回路
端子
Nout
CPU,
リソース
N-ch
入力バッファ
ポート0~6端子
制御回路
HCLK:発振クロック周波数
< 注意事項 >
内部回路を初期化するには , マシンクロックが必要です。リセット入力時には , 発
振端子からクロックが供給されている必要があります。
71
第 4 章 リセット
4.4
リセット動作
リセットが解除された場合 , モード端子の設定により , 内部メモリまたは外部メモリ
に設定されたモードデータとリセットベクタを取込みます。モードデータレジスタ
により CPU の動作モードが設定され , リセットベクタによりリセットシーケンス終
了後の実行開始アドレスが設定されます。
■ リセット動作の概要
リセット動作フローを図 4.4-1 に示します。
図 4.4-1 リセット動作フロー
パワーオンリセット
ストップモード
外部リセット
ソフトウェアリセット
ウォッチドッグタイマリセット
リセット中
発振安定待ちリセット状態
モードデータ取込み
(バスモードの端子設定)
リセットシーケンス
リセットベクタ取込み
プログラム動作
リセットベクタが示す
アドレスから命令コードを
取込み,命令を実行
■ モード端子
モード端子(MD2 ∼ MD0)は , モードデータとリセットベクタの取込み方法を事前に
設定します。モードデータとリセットベクタを取込む場合は , リセットシーケンスを実
行します。詳細は , 「8.2 モード端子(MD2 ∼ MD0)」をご参照ください。
■ モードデータの取込み
リセットが解除された場合 , CPU はモードデータをモードデータレジスタに取込みま
す。モードデータを取込んだ後に , リセットベクタをプログラムカウンタ(PC)とプ
ログラムカウンタバンクレジスタ(PCB)に取込みます。
モードデータレジスタは , バスモードとバス幅を設定できます。また , リセットベクタ
では , プログラムの開始アドレスを指定できます。
モードデータ取込みの詳細は , 「第 8 章 モード設定」をご参照ください。
モードデータとリセットベクタの転送を , 図 4.4-2 に示します。
72
第 4 章 リセット
図 4.4-2 モードデータとリセットベクタの転送
メモリ空間
F2MC-16LXファミリ CPUコア
モードデータ
レジスタ
FFFFDFH
モードデータ
FFFFDEH
リセットベクタ(ビット23~16)
FFFFDDH
リセットベクタ(ビット15~8)
FFFFDCH
リセットベクタ(ビット7~0)
PCB
PC
< 参考 >
モード端子の設定
モードデータとリセットベクタを , 内蔵 ROM(またはフラッシュメモリ), ある
いは外部メモリから読み出すかは , モード端子の設定により決まります。モード
端子を外部メモリに設定した場合は , 外部メモリからモードデータとリセットベ
クタを読み出します。また , モード端子を内蔵 ROM(またはフラッシュメモリ)
に設定した場合は , 内蔵 ROM(またはフラッシュメモリ)からモードデータと
リセットベクタを読み出します。
シングルチップモードの場合は , モード端子を内蔵 ROM(またはフラッシュメ
モリ)に設定してください。
詳細は , 「8.2 モード端子(MD2 ∼ MD0)」をご参照ください。
● モードデータレジスタ(アドレス : FFFFDFH)
モードデータレジスタは , リセットシーケンス実行中に設定を変更できます。
モードデータレジスタの設定は , リセットベクタ取込み後から有効になります。
また , 命令を使用して "FFFFDFH" にモードデータを設定しても , モードデータレジス
タを書換えることはできません。
詳細は , 「8.3 モードデータレジスタ」をご参照ください。
● リセットベクタ(アドレス : FFFFDCH ∼ FFFFDEH)
リセット解除後のプログラム開始アドレスを設定します。リセットベクタで設定され
たアドレスからプログラムを実行します。
73
第 4 章 リセット
4.5
リセット要因フラグビット
リセット発生要因は , ウォッチドッグタイマ制御レジスタ(WDTC)内のフラグを
読み出すことで判別できます。
■ リセット要因フラグビット
ウォッチドッグタイマ制御レジスタ(WDTC)のリセット要因フラグビット(PONR,
WRST, ERST, SRST)でリセット要因を確認できます。リセット解除後に , リセット
発生要因を判別する必要がある場合には , ウォッチドッグタイマ制御レジスタ
(WDTC)のリセット要因フラグビット(PONR, WRST, ERST, SRST)を読み出して
ください。
ただし , リセット要因フラグビット(PONR, WRST, ERST, SRST)は , ウォッチドッ
グタイマ制御レジスタ(WDTC)を読み出した場合 , "0" にクリアされます。
リセット要因フラグビットのブロックダイヤグラムを , 図 4.5-1 に示します。
図 4.5-1 リセット要因フラグビットのブロックダイヤグラム
RST端子
パワーオン
リセット発生
検出回路
ウォッチドッグ
タイマ制御
レジスタ
S
(WDTC)
Q
定期的なクリア ソフトウェアリセット
ビットのクリア
なし
RST=L
電源投入
LPMCR,RSTビッ
ト"0"書込み
検出回路
ウォッチドッグ
タイマリセット
発生検出回路
外部リセット
要求検出回路
クリア
R
S
F/F
R
S
F/F
Q
R
S
F/F
Q
R
F/F
遅延回路
Q
ウォッチドッグタイマ
制御レジスタ(WDTC)
読出し信号
内部データバス
S
R
Q
F/F
74
:セット
:リセット
:出力
:フリップフロップ
第 4 章 リセット
■ リセット要因フラグビットとリセット要因の対応
リセット要因フラグビットの構成を , 図 4.5-2 に示します。
図 4.5-2 リセット要因フラグビットの構成(ウォッチドッグタイマ制御レジスタ)
ウォッチドッグタイマ制御レジスタ(WDTC)
アドレス
6
bit 7
0000A8H
PONR
-
R
-
5
4
3
WRST ERST SRST
R
R
初期値
2
1
0
WTE
WT1
WT0
W
W
W
R
X-XXX111B
リセット要因フラグビット
R
W
X
-
:リードオンリ
:ライトオンリ
:不定
:未定義ビット
表 4.5-1 リセット要因フラグビットの値とリセット要因の対応
PONR
WRST
ERST
SRST
パワーオンリセット
1
×
×
×
ウォッチドッグタイマリセット
*
1
*
*
外部リセット(RST 端子入力)
*
*
1
*
ソフトウェアリセット
*
*
*
1
リセット要因
*: 前の状態を保持
× : 不定
■ リセット要因フラグビットの注意事項
● 複数のリセット要因が発生した場合
リセット要因を複数検出した場合でも , ウォッチドッグタイマ制御レジスタ(WDTC)
の対応するリセット要因フラグビット(PONR, WRST, ERST, SRST)には "1" が設定
されます。
< 参考 >
外部リセットとウォッチドッグタイマリセットが同時に発生した場合は , ウォッチ
ドッグタイマ制御レジスタ(WDTC)のリセット要因フラグビット(ERST,
WRST)に "1" が設定されます。
● パワーオンリセットが発生した場合
パワーオンリセットが発生した場合は , ウォッチドッグタイマ制御レジスタ(WDTC)
の PONR ビットに "1" が設定されます。しかし WRST, ERST, SRST ビットは不定値と
なります。
PONR ビットに "1" が設定されている場合は , WRST, ERST, SRST ビットの値を無視
してください。
75
第 4 章 リセット
● リセット要因フラグビットのクリア
リセット要因フラグビット(PONR, WRST, ERST, SRST)は , ウォッチドッグタイマ
制御レジスタ(WDTC)を読み出した場合 , 全て "0" にクリアされます。リセットが発
生してもウォッチドッグタイマ制御レジスタ(WDTC)を読み出さなければ , リセット
要因フラグビットは "0" にクリアされません。
76
第 4 章 リセット
4.6
リセットによる各端子の状態
リセットによる各端子の状態について説明します。
■ リセットによる各端子の状態
リセットによる各端子の状態は, モード端子
(MD2∼MD0)の設定によって異なります。
● 内部ベクタモード設定時(MD=0, MD1=1, MD0=1)
ポート 0 ∼ 6 はハイインピーダンス出力となります。
モードデータは内蔵 ROM(フラッシュメモリ)から読み出されます。
■ モードデータ読出し後の端子状態
モードデータ読出し後の端子状態は , モードデータレジスタのバスモード設定ビット
(M1, M0)によって設定されます。
● シングルチップモード設定時 (モードデータレジスタ :M1, M0 ビット =00B)
ポート 0 ∼ 6 はハイインピーダンス出力となります。
モードデータは , 内蔵 ROM(またはフラッシュメモリ)から読み出されます。
< 注意事項 >
外部端子レベルを , 外部回路が動作しないように設定してください。
リセット中の各端子状態は , 「6.7 スタンバイモード , リセットの端子状態」の表 6.7-1
をご参照ください。
77
第 4 章 リセット
78
第5章
クロック
MB90460/465 シリーズのクロックについて説明し
ます。
5.1 クロックの概要
5.2 クロック発生部のブロックダイヤグラム
5.3 クロック選択レジスタ(CKSCR)
5.4 クロックモード
5.5 発振安定待ち時間
5.6 振動子と外部クロックの接続
79
第 5 章 クロック
5.1
クロックの概要
クロック発生部は , CPU およびリソースの動作クロックを制御します。この動作ク
ロックを " マシンクロック " とよびます。
クロックとしては , 以下の 4 種類があります。
• 発振クロック(HCLK)
• メインクロック(MCLK)
• PLL クロック(PCLK)
• マシンクロック(φ)
■ クロックの概要
クロック生成部には , 発振クロックを生成する発振回路が含まれています。外部発振器
は , この回路に接続します。発振クロックの供給は , クロック生成部に外部クロックを
入力することによっても行うことができます。
クロック生成部にはまた , PLL クロック逓倍回路(発振クロックの倍数である 4 つの
クロックを生成する)も含まれています。
クロック生成部は , 発振安定待ち時間および PLL クロック逓倍を制御します。また , ク
ロックセレクタでクロックを切り換えることによって動作クロックの動作も制御しま
す。
● 発振クロック(HCLK)
X0, X1 端子に振動子を接続するかまたは外部クロックを入力して発生させたクロック
です。
● メインクロック(MCLK)
発振クロックの2分周クロックであり, タイムベースタイマおよびクロックセレクタへ
の入力クロックとなります。
● PLL クロック(PCLK)
発振クロックを , PLL 逓倍回路(PLL 発振回路)により逓倍したクロックです。4 種類
(1 逓倍∼ 4 逓倍)のクロックを発生します。
● マシンクロック(φ)
CPU およびリソースの動作クロックです。マシンクロックの 1 周期が 1 マシンサイク
ルです。メインクロック(2 分周されたソースクロックが生成)および 4 種類のクロッ
ク(ソースクロックの倍数)を設定します。
< 注意事項 >
80
動作電圧が 5V の場合 , 発振クロック周波数は 3MHz ∼ 32MHz の範囲で使用できま
す。CPU およびリソースの最大動作周波数は 16MHz です。最大動作周波数を超え
る逓倍率を設定した場合 , デバイスは正常に動作しません。例えば , 発振クロック
周波数が 16MHz の場合には , 1 逓倍が設定可能です。
第 5 章 クロック
■ クロック供給マップ
クロック供給マップを図 5.1-1 に示します。
図 5.1-1 クロック供給マップ
リソース
ウォッチドッグ
タイマ
発振安定待ち制御
4
16ビット
PPGタイマ1
3
タイムベースタイマ
16ビット
PPGタイマ2
クロック発生部
1 2 3 4
端子
X1
端子
16ビット リロードタイマ0
PLL逓倍回路
X0
システム
クロック
発生回路 HCLK
16ビット
PPGタイマ0
PCLK
クロックセレクタ
2分周
MCLK
φ
UART0
UART1
CPU
16ビット リロードタイマ1
PPG0
端子
PPG1
端子
PPG2
端子
TIN0
端子
TO0
端子
SCK0,SIN0
端子
SOT0
端子
SCK1,SIN1
端子
SOT1
端子
TIN1
端子
TO1
端子
DTTI0
端子
波形生成部
RTO0~5
端子
16ビットアウトプット
コンペア(ch.0~ch.5)
16ビット
フリーランタイマ
16ビットインプット
キャプチャ
(ch.0~ch.3)
HCLK:発振クロック
MCLK:メインクロック
PCLK:PLLクロック
φ :マシンクロック
8/10ビット
A/Dコンバータ
FRCK
端子
IN0~3
端子
DTTI1
端子
波形シーケンサ
OPT0~5
端子
PWI0,1
端子
PWC(ch.0,ch.1)
PWO0,1
端子
81
第 5 章 クロック
クロック発生部のブロックダイヤグラム
5.2
クロック発生部は , 以下の 5 種類のブロックから構成されています。
• システムクロック発生回路
• PLL 逓倍回路
• クロックセレクタ
• クロック選択レジスタ(CKSCR)
• 発振安定待ち時間セレクタ
■ クロック発生部のブロックダイヤグラム
クロック発生部のブロックダイヤグラムを図 5.2-1 に示します。
図 5.2-1 クロック発生部のブロックダイヤグラム
低消費電力モード制御レジスタ(LPMCR)
STP
SLP
SPL
RST
TMD
CG1
CG0
予約
端子ハイインピー
ダンス制御回路
RST
内部リセット
発生回路
端子
内部リセット
入出力端子リセット
間欠サイクル選択
CPU間欠動作
セレクタ
CPUクロック
制御回路
3
CPUクロック
ストップ,スリープ信号
スタンバイ
制御回路
割込み解除
端子ハイイン
ピーダンス制御
ストップ信号
マシンクロック
周辺クロック
制御回路
周辺クロック
発振安定待ち解除
クロック発生部
クロックセレクタ
発振安定
待ち時間
セレクタ
2
2
PLL逓倍回路
X0 端子
予約
MCM
WS1
予約
WS0
MCS
CS1
CS0
クロック選択レジスタ(CKSCR)
システム
クロック
発生回路
HCLK
2分周
MCLK
21 …
29 210 211 212 213 214 215 216 217 218
タイムベースタイマ
X1 端子
HCLK:発振クロック
MCLK:メインクロック
82
第 5 章 クロック
● システムクロック発生回路
X0, X1 端子に振動子を接続するかまたは外部クロックを入力し , 発振クロックを発生
します。
● PLL 逓倍回路
発振クロックを逓倍し , クロックセレクタへ供給します。
● クロックセレクタ
メインクロックおよび 4 種類の PLL クロックから , CPU クロック制御回路および周辺
クロック制御回路へ供給するクロックを設定します。
● クロック選択レジスタ(CKSCR)
マシンクロック(メインクロック /PLL クロック)の切換え , 発振安定待ち時間および
PLL クロックの逓倍率を設定します。
● 発振安定待ち時間セレクタ
ストップモードの解除またはウォッチドッグタイマがリセットされた場合の発振ク
ロックの発振安定待ち時間を設定します。4 種類のタイムベースタイマ出力から発振安
定待ち時間を設定します。
83
第 5 章 クロック
5.3
クロック選択レジスタ(CKSCR)
クロック選択レジスタ(CKSCR)は , マシンクロックの切換え , 発振安定待ち時間
の設定および PLL クロックの逓倍率を設定するレジスタです。
■ クロック選択レジスタ(CKSCR)
クロック選択レジスタ(CKSCR)の構成を図 5.3-1 に示します。
また , クロック選択レジスタ(CKSCR)の各ビットの機能説明を表 5.3-1 に示します。
図 5.3-1 クロック選択レジスタ (CKSCR)の構成
bit
15
14
13
12
11
10
9
8
予約
MCM
WS1
WS0
予約
MCS
CS1
CS0
R/W
R
R/W
R/W
R/W
R/W
R/W
R/W
CS1 CS0
初期値
11111100B
逓倍率選択ビット
( )内は発振クロック周波数4MHzの場合
0
0
1×HCLK( 4MHz)
0
1
2×HCLK( 8MHz)
1
0
3×HCLK(12MHz)
1
1
4×HCLK(16MHz)
MCS
マシンクロック選択ビット
0
PLLクロックを選択
1
メインクロックを選択
WS1 WS0
発振安定待ち時間選択ビット
( )内は発振クロック周波数4MHzの場合
0
0
210/HCLK(約256μs)
0
1
213/HCLK(約 2.05ms)
1
0
1
1
215/HCLK(約 8.19ms)
217/HCLK(約32.77ms)*
*:パワーオンリセットの場合は218/HCLK(約65.54ms)です。
MCM
マシンクロック表示ビット
0
PLLクロックで動作中
1
メインクロックで動作中
予約ビット
予約
必ず"1"を設定してください。
R/W
R
HCLK
84
:リード/ライト
:リードオンリ
:初期値
:発振クロック周波数
第 5 章 クロック
表 5.3-1 クロック選択レジスタ(CKSCR)の各ビットの機能説明
ビット名
bit15,
bit11
bit14
予約 :
予約ビット
MCM:
マシンクロック
表示ビット
機 能
•
必ず "1" を設定してください。
•
マシンクロックとして , メインクロックと PLL クロックのどちらが設定さ
れているかを示します。
このビットが "0" の場合 :PLL クロックが設定されていることを示します。
このビットが "1" の場合 : メインクロックが設定されていることを示しま
す。
マシンクロック選択ビット(MCS)に "0" を設定後に , "1" がセットされて
いる場合は , PLL クロックの発振安定待ち時間中であることを示します。
書込みは動作に影響ありません。
•
•
•
•
•
•
bit13,
bit12
WS1, WS0:
発振安定待ち
時間選択ビット
ストップモードを外部割込みにより解除した場合の , 発振クロックの発振
安定待ち時間を設定します。
リセット要因により "11B" に初期化されます。
• 発振安定待ち時間は , 使用する振動子に合わせて設定してください。
( 注意事項 )
「4.2 リセット要因と発振安定待ち時間」をご参照ください。
( 参考 )
PLL 発振安定化待ち時間は , 214/HCLK 固定です。
マシンクロックとして , メインクロックまたは PLL クロックを設定します。
このビットが "0" の場合 :PLL クロックを設定します。
このビットが "1" の場合 : メインクロックを設定します。
"1" が設定されている場合に , "0" を設定すると , PLL クロックの発振安定
待ち時間が発生するため , タイムベースタイマカウンタおよびタイムベー
スタイマ制御レジスタ(TBTC)の割込み要求フラグビット(TBOF)は
"0" にクリアされます。
• PLL クロックの発振安定待ち時間は , 214/HCLK に固定です。発振クロック
周波数が 4MHz の場合 , 発振安定待ち時間は約 4ms です。
• メインクロックを設定した場合のマシンクロックは , 発振クロックを 2 分
周したクロックとなります。発振クロック周波数が 4MHz の場合 , マシン
クロック周波数 , 2MHz です。
• リセットで "1" に初期化されます。
( 注意事項 )
"1" が設定されている場合に , "0" を設定するには , タイムベースタイマ制
御レジスタ(TBTC)の割込み要求許可ビット(TBIE)または割込みレベ
ルマスクレジスタ(ILM)により , タイムベースタイマ割込み要求が禁止
されている状態に限られます。
"1" を設定してから 8 マシンサイクルの間は , 本ビットへ "0" を設定できな
い場合があります。本ビットへの設定は , 8 マシンサイクル経過後に行っ
てください。
•
•
•
•
bit10
bit9,
bit8
MCS:
マシンクロック
設定ビット
CS1, CS0:
逓倍率設定
ビット
•
•
•
PLL クロックの逓倍率を設定します。
4 種類の逓倍率から設定できます。
リセットで "00B" に初期化されます。
( 注意事項 )
マシンクロック選択ビット(MCS)または , マシンクロック表示ビット
(MCM)に "0" が設定されている場合は設定できません。マシンクロック
選択ビット(MCS)に "1" を設定後に設定してください。
HCLK: 発振クロック周波数
85
第 5 章 クロック
5.4
クロックモード
クロックモードとしては , メインクロックモードと PLL クロックモードがあります。
■ メインクロックモードと PLL クロックモード
● メインクロックモード
メインクロックモード時は , CPU およびリソースのマシンクロックとしてメインク
ロック(発振クロックの 2 分周)を使用し , PLL クロックを停止させます。
● PLL クロックモード
PLL クロックモード時は , CPU およびリソースのマシンクロックとして PLL クロック
を使用します。PLL クロックの逓倍率は , クロック選択レジスタ(CKSCR)の逓倍率
選択ビット(CS1, CS0:bit9, bit8)で設定します。
■ クロックモードの遷移
クロック選択レジスタ(CKSCR)のマシンクロック選択ビット(MCS:bit10)の設定に
より , メインクロックモードまたは PLL クロックモードへ遷移します。
● メインクロックモードから PLL クロックモードへの遷移
クロック選択レジスタ(CKSCR)のマシンクロック選択ビット(MCS:bit10)を "1" か
ら "0" に設定した場合は , PLL クロックの発振安定待ち時間(214/HCLK)後 , メインク
ロックから PLL クロックに切り換わります。
● PLL クロックモードからメインクロックモードへの遷移
クロック選択レジスタ(CKSCR)のマシンクロック選択ビット(MCS:bit10)を "0" か
ら "1" に設定した場合は , PLL クロックとメインクロックのエッジが一致するタイミン
グ(1 ∼ 8PLL クロック経過後)で , PLL クロックからメインクロックに切り換わります。
< 注意事項 >
マシンクロックの切換え後 , リソースを動作させる場合は , クロック選択レジスタ
(CKSCR)のマシンクロック表示ビット(MCM:bit14)により , マシンクロックが
切り換わったことを確認したあと動作させてください。
クロックモードを切り換えた場合 , 切換えが完了するまではほかのクロックモード
および低消費電力モードへは切り換えないようにしてください。
切換えの完了はクロック選択レジスタ(CKSCR)の MCM ビットを参照して確認
してください。切換えが完了する前に , ほかのクロックモードおよび低消費電力
モードへの切換えを行った場合 , 切り換わらない場合があります。
■ PLL クロック逓倍率の設定
クロック選択レジスタ(CKSCR)の逓倍率選択ビット(CS1, CS0:bit9, bit8)に "00B" ∼
"11B" を設定し , 1 ∼ 4 逓倍の 4 種類から PLL クロック逓倍率を設定します。
86
第 5 章 クロック
■ マシンクロック
メインクロックまたは PLL クロックが , マシンクロックとなります。マシンクロック
は CPU およびリソースの動作クロックです。メインクロックまたは PLL クロックは ,
クロック選択レジスタ(CKSCR)のマシンクロック選択ビット(MCS)で設定します。
マシンクロックを切り換えることによって発生する状態遷移を図 5.4-1 に示します。
図 5.4-1 マシンクロック選択の状態遷移図
パワーオン
メイン
MCS=1
MCM=1
CS1,CS0=XXB
(1)
メイン→PLLx
MCS=0
MCM=1
(6) CS1,CS0=XXB
(2)
(3)
(4)
(5)
(7) PLL1→メイン
PLL1逓倍
MCS=0
(6) MCM=0
CS1,CS0=00B
MCS=1
MCM=1
CS1,CS0=00B
(7) PLL2→メイン
PLL2逓倍
MCS=0
(6) MCM=0
CS1,CS0=01B
MCS=1
MCM=0
CS1,CS0=01B
(7) PLL3→メイン
MCS=1
MCM=0
CS1,CS0=10B
(6)
(7) PLL4→メイン
MCS=1
MCM=0
CS1,CS0=11B
(6)
PLL3逓倍
MCS=0
MCM=0
CS1,CS0=10B
PLL4逓倍
MCS=0
MCM=0
CS1,CS0=11B
(1)MCSビットクリア
(2)PLLクロック発振安定待ち終了後 CS1,CS0=00B
(3)PLLクロック発振安定待ち終了後 CS1,CS0=01B
(4)PLLクロック発振安定待ち終了後 CS1,CS0=10B
(5)PLLクロック発振安定待ち終了後 CS1,CS0=11B
(6)MCSビットセット(ハードウェアスタンバイおよびウォッチドッグタイマリセットを含む)
(7)PLLクロック周波数とメインクロック周波数の同期タイミング
MCS
:クロック選択レジスタ(CKSCR)のマシンクロック選択ビット
MCM :クロック選択レジスタ(CKSCR)のマシンクロック表示ビット
CS1,CS0 :クロック選択レジスタ(CKSCR)の逓倍率選択ビット
< 注意事項 >
マシンクロックの初期値は , メインクロック(CKSCR:MCS=1)です。
87
第 5 章 クロック
発振安定待ち時間
5.5
電源投入 , ストップモードの解除およびウォッチドッグタイマリセットの場合は , 発
振停止から動作が開始するため , 発振開始後に発振安定待ち時間が必要です。また ,
メインクロックから PLL クロックへ切り換える場合も , PLL クロックの発振開始後
に発振安定待ち時間が必要です。
■ 発振安定待ち時間
セラミック発振子および水晶発振子では一般に , 発振を開始してから固有周波数に安
定するまでに , 数ミリ秒から数十ミリ秒の発振安定化待ち時間が必要です。
CPU 動作は , 発振が完全に安定した後で行う必要があるため , CPU の動作は発振安定
化待ち時間が経過した後で行われます。
発振安定化待ち時間は発振子のタイプ(水晶 , セラミックなど)によって異なるので ,
使用する発振子に適切な発振安定化待ち時間を選択しなければなりません。発振安定
化待ち時間は , クロック選択レジスタ(CKSCR)を設定することによって選択できま
す。
メインクロックから PLL クロックへの切換え時 , CPU は発振安定化待ち時間中はメイ
ンクロックで動作を継続します。動作クロックの PLL クロックへの切換えは , この時
間が経過した後で行われます。発振開始後の動作を図 5.5-1 に示します。
図 5.5-1 発振開始直後の動作
振動子の発振時間
発振安定待ち時間
X1
発振開始
88
発振安定
( )
通常動作開始または
PLLクロックへの切換え
第 5 章 クロック
5.6
振動子と外部クロックの接続
MB90460/465 シリーズは , システムクロック発生回路を内蔵しており , X0, X1 端子
に振動子を接続するかまたは外部クロックを入力できます。
■ 振動子と外部クロックの接続
● 水晶振動子またはセラミック振動子の接続例
水晶振動子またはセラミック振動子は , 図 5.6-1 の例で示すように接続してください。
図 5.6-1 水晶振動子またはセラミック振動子の接続例
MB90460/465シリーズ
X0
X1
XTAL
C1
C2
● 外部クロックの接続例
図 5.6-2 の例に示すように , 外部クロックは X0 端子に接続し , X1 端子はオープン(開
放)にしてください。
図 5.6-2 外部クロックの接続例
MB90460/465シリーズ
X0
X1
オープン
89
第 5 章 クロック
90
第6章
低消費電力モード
MB90460/465 シリーズ低消費電力モードについて
説明します。
6.1 低消費電力モードの概要
6.2 低消費電力制御回路のブロックダイヤグラム
6.3 低消費電力モード制御レジスタ (LPMCR)
6.4 CPU 間欠動作モード
6.5 スタンバイモード
6.6 状態遷移図
6.7 スタンバイモード , リセットの端子状態
6.8 低消費電力モード使用上の注意
91
第 6 章 低消費電力モード
低消費電力モードの概要
6.1
MB90460/465 シリーズは , 動作クロックの設定とクロックの動作制御により , 以下
の低消費電力モードがあります。
• CPU 間欠動作モード(PLL クロック間欠動作モードおよびメインクロック間欠動
作モード)
• スタンバイモード(スリープモード , タイムベースタイムモードおよびストップ
モード)
■ CPU 動作モードと消費電流
CPU 動作モードと消費電流の関係を図 6.1-1 に示します。
図 6.1-1 CPU 動作モードと消費電流
消費電流
数10mA
CPU
動作モード
PLLクロックモード
4逓倍クロック
3逓倍クロック
2逓倍クロック
1逓倍クロック
PLLクロック間欠動作モード
4逓倍クロック
3逓倍クロック
2逓倍クロック
1逓倍クロック
メインクロックモード(2分周クロックモード)
メインクロック間欠動作モード
数mA
スタンバイモード
スリープモード
タイムベースタイマモード
ストップモード
数 µA
:低消費電力モード
(注意事項)この図は,各種モードのイメージであり,実際の消費電流とは異なる場合があります。
92
第 6 章 低消費電力モード
■ クロックモード
● PLL クロックモード
PLL クロックは , 発振クロック(HCLK)を 1 ∼ 4 逓倍(CKSCR レジスタの CS1, CS0
ビットで設定)した周波数のクロックであり , CPU およびリソースを動作させます。
● メインクロックモード
メインクロックは , 発振クロック(HCLK)を 2 分周した周波数のクロックであり , CPU
およびリソースを動作させます。メインクロックモード時は , PLL 逓倍回路が停止し
ます。
< 参照 >
クロックモードの詳細については , 「5.1 クロックの概要」をご参照ください。
■ CPU 間欠動作モード
CPU 間欠動作モード時は , CPU が間欠的に動作すると同時に , 高速クロックパルスが
リソースへ供給され , 消費電力が抑えられます。CPU 間欠動作モード時 , 間欠クロック
パルスが CPU に供給されるのは , レジスタ , 内部メモリ , リソースまたは外部ユニット
をアクセスするときのみです。
■ スタンバイモード
スタンバイモードにおける低消費電力制御回路は , CPU へのクロック供給を停止(ス
リープモード), CPU およびリソースへのクロック供給を停止(タイムベースタイマ
モード)または発振クロックを完全に停止(ストップモード)することにより消費電
力を抑えます。
● PLL スリープモード
PLL スリープモードが起動され , PLL クロックモードになると , CPU の動作クロックが
停止します。ほかのリソースは , PLL クロックで動作を継続します。
● メインスリープモード
メインスリープモードが起動され , メインクロックモードになると , CPU の動作クロッ
クが停止します。ほかのリソースは , メインクロックで動作を継続します。
● PLL タイムベースタイマモード
PLL タイムベースタイマモード時は , 発振クロック , PLL クロックおよびタイムベース
タイマ以外の動作が停止します。
● メインタイムベースタイマモード
メインタイムベースタイマモード時は , 発振クロック , メインクロックおよびタイム
ベースタイマ以外の動作が停止します。
● ストップモード
ストップモード時は , 発振クロックが停止し , すべての機能が停止します。
ストップモード時は発振クロックが停止するため , 最も低消費電力でデータを保持で
きます。
93
第 6 章 低消費電力モード
< 注意事項 >
94
クロックモードを切り換えた場合 , 切換えが完了するまではほかのクロックモード
および低消費電力モードへ切り換えないようにしてください。
切換えの完了はクロック選択レジスタ(CKSCR)の MCM ビットを参照して確認
してください。切換えが完了する前に , ほかのクロックモードおよび低消費電力
モードへの切換えを行った場合 , 切り換わらない場合があります。
第 6 章 低消費電力モード
低消費電力制御回路のブロックダイヤグラム
6.2
低消費電力制御回路は , 以下の 7 つのブロックから構成されています。
• CPU 間欠動作セレクタ
• 待機クロック制御回路
• CPU クロック制御回
• 周辺クロック制御回路
• 端子ハイインピーダンス制御回路
• 内部リセット発生回路
• 低消費電力モード制御レジスタ(LPMCR)
■ 低消費電力制御回路のブロックダイヤグラム
低消費電力制御回路のブロックダイヤグラムを図 6.2-1 に示します。
図 6.2-1 低消費電力制御回路のブロックダイヤグラム
低消費電力モード制御レジスタ(LPMCR)
STP
SLP
SPL
RST
TMD
CG1
CG0
予約
端子ハイインピー
ダンス制御回路
RST
内部リセット
発生回路
端子
内部リセット
入出力端子リセット
間欠サイクル選択
CPU間欠動作
セレクタ
CPUクロック
制御回路
3
CPUクロック
ストップ,スリープ信号
スタンバイ
制御回路
割込み解除
端子ハイイン
ピーダンス制御
ストップ信号
マシンクロック
クロック
発生部
周辺クロック
制御回路
周辺クロック
発振安定待ち解除
クロックセレクタ
発振安定
待ち時間
セレクタ
2
2
PLL逓倍回路
X0 端子
予約
MCM
WS1
WS0
予約
MCS
CS1
CS0
クロック選択レジスタ(CKSCR)
システム
クロック
発生回路
HCLK
2分周
MCLK
21 …
29 210 211 212 213 214 215 216 217 218
タイムベースタイマ
X1 端子
HCLK:発振クロック周波数
MCLK:メインクロック周波数
95
第 6 章 低消費電力モード
● CPU 間欠動作セレクタ
CPU 間欠動作モード時に動作中の CPU 動作クロック停止サイクル数を設定します。
● スタンバイ制御回路
CPU クロック制御回路 , 周辺クロック制御回路および端子ハイインピーダンス制御回
路を制御し , 低消費電力モードへの遷移および解除を行います。
● CPU クロック制御回路
CPU に供給するクロックを制御します。この回路は , 周辺クロック制御のリソースへ
供給されるクロックを制御します。
● 周辺クロック制御回路
リソースへ供給するクロックを制御します。
● 端子ハイインピーダンス制御回路
タイムベースタイマモードおよびストップモード時に , 設定により入出力端子をハイ
インピーダンスにします。
プルアップ抵抗を接続している入出力端子は , ストップモード時にプルアップ抵抗を
切離します。
● 内部リセット生成回路
内部リセット信号を発生させます。
● 低消費電力モード制御レジスタ(LPMCR)
低消費電力モードへの遷移 / 解除および CPU 間欠動作モードで動作中の CPU 動作ク
ロック停止サイクル数などを設定します。
96
第 6 章 低消費電力モード
6.3
低消費電力モード制御レジスタ (LPMCR)
低消費電力モード制御レジスタ(LPMCR)は , 低消費電力モードへの遷移 / 解除お
よび CPU 間欠動作モードで動作中の CPU 動作クロック停止サイクル数を設定しま
す。
■ 低消費電力モード制御レジスタ (LPMCR)
低消費電力モード制御レジスタ(LPMCR)の構成を図 6.3-1 に示します。
図 6.3-1 低消費電力モード制御レジスタ (LPMCR)の構成
bit
7
6
5
4
3
2
1
0
STP
SLP
SPL
RST
TMD
CG1
CG0
予約
W
W
R/W
W
R/W
R/W
R/W
R/W
初期値
00011000B
予約ビット
予約
必ず"0"を設定してください。
CG1 CG0
CPU動作クロック停止サイクル数選択ビット
0
0
0サイクル
0
1
8サイクル
1
0
16サイクル
1
1
32サイクル
タイムベースタイマモードビット
TMD
0
タイムベースタイマモードへ遷移
1
動作に影響しません
RST
内部リセット信号発生ビット
0
3マシンサイクルの内部リセット信号を発生
1
動作に影響しません
SPL
0
保持
1
ハイインピーダンス
SLP
スリープモードビット
0
動作に影響しません
1
スリープモードへ遷移
STP
R/W :リード/ライト
W :ライトオンリ
:初期値
端子状態設定ビット
(タイムベースタイマモードまたはストップモードで有効)
ストップモードビット
0
動作に影響しません
1
ストップモードへ遷移
97
第 6 章 低消費電力モード
表 6.3-1 低消費電力モード制御レジスタ(LPMCR)の各ビットの機能説明
ビット名
bit7
STP:
ストップモード
ビット
機 能
•
•
•
•
•
bit6
SLP:
スリープモード
ビット
•
•
•
•
•
bit5
bit4
SPL:
端子状態設定ビット
(タイムベースタイ
マモードまたはス
トップモードで有
効)
RST:
内部リセット信号発
生ビット
•
•
•
•
•
•
•
•
•
•
bit3
TMDX:
タイムベースタイマ
モードビット
•
•
•
98
bit2,
bit1
CG1, CG0:
CPU 動作クロック
停止サイクル数選択
ビット
bit0
予約 :
予約ビット
ストップモードを設定するビットです。
このビットに "0" を設定した場合 : 動作に影響しません。
このビットに "1" を設定した場合 : ストップモードへ遷移します。
外部リセットまたはハードウェア割込み出力により , "0" にクリアされ
ます。
読出し値は常に , "0" です。
スリープモードを設定するビットです。
このビットに "0" を設定した場合 : 動作に影響しません。
このビットに "1" を設定した場合 : スリープモードへ遷移します。
外部リセットまたはハードウェア割込み出力により , "0" にクリアされ
ます。
読出し値は常に , "0" です。
タイムベースタイマモードまたはストップモード時の端子状態を設定
するビットです。
このビットに "0" を設定した場合 : 入出力端子のレベルを保持します。
このビットに "1" を設定した場合 : 入出力端子をハイインピーダンス
にします。
外部リセットで "0" にクリアされます。
内部リセットを設定するビットです。
このビットに "0" を設定した場合 :3 マシンサイクルの内部リセット信
号を発生します。
このビットに "1" を設定した場合 : 動作に影響しません。
読出し値は常に , "1" です。
タイムベースタイマモードへの遷移を設定するビットです。
このビットに "0" を設定した場合 : タイムベースタイマモードへに遷
移します。
このビットに "1" を設定した場合 : 動作に影響しません。
外部リセットまたはタイムベースタイマ割込み出力により , "1" に初期
化されます。
読出し値は "1" です。
•
•
•
CPU 間欠動作モードで動作中の CPU 動作クロック停止サイクル数を設
定するビットです。
1 命令ごとに設定サイクル数の CPU クロック供給を停止します。
4 種類のサイクル数から設定します。
リセットにより "00B" に初期化されます。
•
必ず "0" を設定してください。
•
第 6 章 低消費電力モード
■ 低消費電力モード制御レジスタへのアクセス
低消費電力モード制御レジスタを設定するには , 表 6.3-2 に示す命令を使用してくださ
い。表 6.3-2 に示す命令以外で低消費電力モードへ遷移した場合は , 動作を保証できま
せん。
ワード長で低消費電力モード制御レジスタへ設定する場合は , 低消費電力制御回路
(0000A0H, 0000A1H)にワードアクセスしてください。
表 6.3-2 低消費電力モードへ遷移する場合に使用する命令一覧
MOV io, #imm8
MOV io, A
MOV @RLi+disp8, A
MOVW io, #imm16
MOVW io, A
MOVW @RLi+disp8, A
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 io:bp
CLRB io:bp
SETB dir:bp
CLRB dir:bp
SETB addr16:bp
CLRB addr16:bp
■ スタンバイモードの優先順位
ストップモード(LPMCR:STP), スリープモード(LPMCR:SLP)およびタイムベース
タイマモード(LPMCR:TMD)を同時に設定した場合は , ストップモード>タイムベー
スタイマモード>スリープモードの優先順位で遷移します。
99
第 6 章 低消費電力モード
6.4
CPU 間欠動作モード
CPU 間欠動作モードは , CPU の間欠動作を行うと同時にリソースの高速動作を継続
させるために使用されます。CPU 間欠動作を行うことにより消費電力を抑えること
ができます。
■ CPU 間欠動作モード
CPU 間欠動作モードは , CPU へのクロック供給をある一定期間停止します。この停止
が発生するのは , レジスタ , 内部メモリ(ROM および RAM), I/O およびリソースをア
クセスする各命令が実行された後です。したがって , 内部バスサイクルが起動される際
には遅延が生じます。ある一定速度の周辺クロックパルスがリソースに供給されてい
る間 , CPU 実行速度が下げられ , 低消費電力での処理が可能になります。
• 低消費電力モード制御レジスタ(LPMCR)の CG1 ビットと CG0 ビットは , CPU に
供給されるクロックの 1 停止サイクル当りのクロックパルス数を選択するために使
用します。
• CPU 間欠モード時の命令実行時間は , 次のようにして算出できます。レジスタ , 内
部メモリ , リソースおよび外部バスをアクセスする命令が実行された回数に 1 停止
サイクル当りのクロックパルス数を掛けることによって , 補正値を求めます。この
補正値を正常実行時間に加算します。
CPU 間欠動作モード時の動作クロックパルスを図 6.4-1 に示します。
図 6.4-1 CPU 間欠動作時のクロック
周辺クロック
CPUクロック
間欠動作停止サイクル数
1命令実行
サイクル
内部データバス起動
100
第 6 章 低消費電力モード
6.5
スタンバイモード
スタンバイモードとしては , スリープモード(PLL スリープモード , メインスリープ
モード), タイムベースタイマモード , ストップモードがあります。
■ スタンバイモードでの動作状態
スタンバイモードの動作状態の概要を表 6.5-1 に示します。
表 6.5-1 スタンバイモードの動作状態
スタンバイモード
スリープ
モード
タイム
ベース
タイマ
モード
ストップ
モード
PLL スリー
プモード
遷移条件
発振
クロック
マシン
クロック
CPU
端子
解除方法
動作
動作
外部リセッ
トまたは
割込み
MCS=0
SLP=1
動作
メインスリー
プモード
MCS=1
SLP=1
タイムベース
タイマモード
(SPL=0)
TMD=0
動作
保持
停止
タイムベース
タイマモード
(SPL=1)
TMD=0
ストップモー
ド(SPL=0)
STP=1
停止 *
Hi-Z
外部リセッ
トまたは
割込み *1
停止
保持
停止
ストップモー
ド(SPL=1)
リソース
停止
STP=1
Hi-Z
外部リセッ
トまたは
割込み *2
*1 : タイムベースタイマ
*2 : 外部割込み
SPL : 低消費電力モード制御レジスタ(LPMCR)の端子状態設定ビット
SLP : 低消費電力モード制御レジスタ(LPMCR)のスリープモードビット
STP : 低消費電力モード制御レジスタ(LPMCR)のストップモードビット
TMD : 低消費電力モード制御レジスタ(LPMCR)のタイムベースタイマモードビット
MCS : クロック選択レジスタ(CKSCR)のマシンクロック選択ビット
Hi-Z : ハイインピーダンス
101
第 6 章 低消費電力モード
6.5.1
スリープモード
スリープモードは , CPU の動作クロックを停止させます。CPU 以外は動作を継続し
ます。スリープモードへの遷移を設定すると , PLL クロックモードを設定している
場合は PLL スリープモードへ遷移し , メインクロックモードを設定している場合は
メインスリープモードへ遷移します。
■ スリープモードへの遷移
低消費電力モード制御レジスタ(LPMCR)のスリープモードビット(SLP:bit6)に "1"
を , タイムベースタイマモードビット(TMD:bit3)に "1" を , ストップモードビット
(STP:bit5)に "0" を設定した場合は , スリープモードへ遷移します。スリープモードへ
の遷移を設定すると , クロック選択レジスタ(CKSCR)のマシンクロック選択ビット
(MCS:bit10)に "0" が設定されている場合は , PLL スリープモードへ遷移します。マシ
ンクロック選択ビット(MCS:bit10)に "1" が設定されている場合は , メインスリープ
モードへ遷移します。
SLP ビットと STP ビットへの "1" の書込みと TMD ビットへの "0" の書込みが同時に行
われると, STP/TMDビット設定値はSLPビット設定値を無効にするので, ストップモー
ドまたはタイムベースタイマモードへの切換えが発生します。
● データ保持機能
スリープモード時は , 専用レジスタ(アキュムレータや内部 RAM など)のデータを保
持します。
専用レジスタの詳細は , 「3.7 専用レジスタ」をご参照ください。
● 割込み要求時の動作
割込み要求時に LPMCR の SLP ビットに "1" を書き込んでも , スリープモードへの切換
えは発生しません。CPU が割込みを受け付けない場合は , CPU は当該命令のその次の
命令を実行します。CPU が割込みを受け付けた場合は , CPU 動作は直ちに割込み処理
ルーチンに分岐します。
● ピンの状態
スリープモード時には , すべての端子(バス入出力またはバス制御を行うために使用さ
れる端子は除く)は , スリープモードへの切換えが発生する直前の状態を保持します。
102
第 6 章 低消費電力モード
■ スリープモードの解除
スリープモードは , 外部リセットまたは割込みにより解除できます。
● リセットによるスリープモードの解除
スリープモードがリセットによって解除されると , スリープモードが解除されると同
時にリセット状態になります。
● 割込みによるスリープモードの解除
スリープモード時にリソースからレベル7より高い割込み要求が発生されると, スリー
プモードが解除されます。スリープモードが解除されると , CPU はこの割込みをほか
の割込みと同様な方法で処理します。CPU は , コンディションコードレジスタ(CCR),
割込みレベルマスクレジスタ(ILM)および割込み制御レジスタ(ICR)の設定に従っ
て処理を実行します。この割込みが受付けられた場合は , CPU は割込み処理を実行し
ます。この割込みが受付けられなかった場合は , CPU はスリープモードへの切換えが
指定されている命令のすぐ次の命令を実行します。
割込みによるスリープモードの解除を図 6.5-1 に示します。
図 6.5-1 ハードウェア割込み出力によるスリープモードの解除フロー
リソースの割込み
許可フラグ設定
ハードウェア
割込み発生
(IL<7)
YES
I="0"
NO
YES
スリープモード継続
[スリープモード]
次の命令実行
[スリープモード解除]
NO
ILM<IL
YES
次の命令実行
NO
割込み実行
IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット
I :コンディションコードレジスタ(CCR)の割込み許可フラグ
ILM:割込みレベルマスクレジスタ(PS内)
割込み処理が正常に実行されると , CPU はまず , スリープモードへの切換えが指定され
ている命令のすぐ次の命令を実行します。CPU は次に , 割込み処理に移ります。
103
第 6 章 低消費電力モード
● 外部リセットによる PLL スリープモードからノーマルモードへの復帰
PLL スリープモード時には , メインクロックと PLL クロックがクロックパルスを生成
します。外部リセットはクロック選択レジスタ(CKSCR)の MCS ビットを "1" に初期
化しないので , PLL ロックモードが選択された状態(CKSCR の MCS=0)のままとなり
ます。外部リセットで PLL スリープモードからノーマルモードに復帰すると(すなわ
ち , PLL スリープモードが解除された後), CPU は直ちに PLL クロックで動作を開始し
ます(図 6.5-2 を参照)。
図 6.5-2 PLL スリープモードの解除(外部リセットを使用)
RST端子
スリ-プモード
メインクロック
発振
PLLクロック
発振
CPUクロック
PLLクロック
CPUの動作
停止
スリープモード解除
104
リセットシーケンス
リセット解除
実行
第 6 章 低消費電力モード
6.5.2
タイムベースタイマモード
タイムベースタイマモードは , 発振クロックとタイムベースタイマ以外の動作を停
止させます。
■ タイムベースタイマモードへの遷移
低 消 費 電 力 モ ー ド 制 御 レ ジ ス タ(LPMCR)の タ イ ム ベ ー ス タ イ マ モ ー ド ビ ッ ト
(TMD:bit3)に "0" を設定した場合は , タイムベースタイマモードへ遷移します。
LPMCR の TMD ビットと STP ビットにそれぞれ "0" を書き込むと , タイムベースタイ
マモードへの切換えが発生します。
この時点でクロック選択レジスタ(CKSCR)の MCS ビットに "0" が設定されている場
合は , PLL タイムベースタイマモードになり , クロック選択レジスタ(CKSCR)の MCS
ビットに "1" が設定されている場合は , メインタイムベースタイマモードになります。
TMD ビットと STP ビットへの "0" の書込みが同時に行われると , STP ビット設定値は
TMD ビットの設定値を無効にするので , ストップモードへの切換えが発生します。
● データ保持機能
タイムベースタイマモード時は , 専用レジスタと(アキュムレータや内部 RAM など)
のデータを保持します。
専用レジスタの詳細は , 「3.7 専用レジスタ」をご参照ください。
● 割込み要求時の動作
割込み要求時に LPMCR の TMD ビットに "0" を書き込んでも , タイムベースタイマモー
ドへの切換えは発生しません。
● 端子の状態
タイムベースタイマモードへの切換えが発生する直前の状態を外部端子に保持させる
かまたはこのモードへの切換えによって外部端子をハイインピーダンスに設定するか
の選択に関する制御は , LPMCR の SPL ビットで行うことができます。
105
第 6 章 低消費電力モード
■ タイムベースタイマモードの解除
タイムベースタイマモードは , 外部リセットまたはタイムベースタイマ割込みで解除
できます。
● リセットによるタイムベースタイマモードの解除
タイムベースタイマモードがリセットによって解除されると , タイムベースタイマ
モードから解除された後でリセット状態になります。
● 外部リセットによるタイムベースタイマモードの解除
外部リセットはクロック選択レジスタ(CKSCR)の MCS ビットを "1" に初期化しない
ため , PLL クロックモードが選択された状態(CKSCR の MCS=0)のままとなるかまた
はメインクロックモードが選択された状態(CKSCR の MCS=1)のままとなります。外
部リセットでタイムベースタイマモードから復帰すると(すなわち , タイムベースタイ
マモードが解除された後), CPU は直ちに PLL/ メインクロックで動作を開始します。
外部リセットによるタイムベースタイマモードからノーマルモードへの復帰動作を図
6.5-3 に示します。
● タイムベースタイマ割込みによる解除
タイムベースタイマモード中に割込みレベルが 7 より強く設定されたタイムベースタ
イマ割込みが発生すると , 低消費電力制御回路はタイムベースタイマモードを解除し
ます。タイムベースタイマモードの解除後は , 通常の割込み処理と同じ扱いとなりま
す。コンディションコードレジスタ(CCR)の I フラグ , 割込みレベルマスクレジスタ
(ILM)および割込み制御レジスタ(ICR)の設定により割込みが受付けられない場合
は , タイムベースタイマモードに入る前の次の命令から処理を続行します。
図 6.5-3 外部割込み出力によるタイムベースタイマモードの解除フロー
リソースの割込み
許可フラグ設定
ハードウェア
割込み発生
(IL<7)
YES
I=0
NO
タイムベースタイマモード継続
[タイムベースタイマモード]
YES
[タイムベースタイマモード解除]
次の命令実行
NO
ILM<IL
YES
次の命令実行
NO
割込み実行
IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット
I :コンディションコードレジスタ(CCR)の割込み許可フラグ
ILM:割込みレベルマスクレジスタ(PS内)
106
第 6 章 低消費電力モード
6.5.3
ストップモード
ストップモードは , 発振クロックを停止させます。すべての機能が停止しますので ,
最も低消費電力でデータを保持できます。
■ ストップモードへの遷移
低消費電力モード制御レジスタ(LPMCR)のストップモードビット(STP:bit7)に "1"
を設定した場合は , ストップモードへ遷移します。
この時点でクロック選択レジスタ(CKSCR)の MCS ビットに "0" が設定されている場
合は , PLL ストップモードになり , クロック選択レジスタ(CKSCR)の MCS ビットに
"1" が設定されている場合は , メインストップモードになります。
● データ保持機能
ストップモード時は , 専用レジスタと(アキュムレータや内部 RAM など)のデータを
保持します。
専用レジスタの詳細は , 「3.7 専用レジスタ」をご参照ください。
● 割込み要求出力中の動作
割込み要求を出力している場合は , 低消費電力モード制御レジスタ(LPMCR)のストッ
プモードビット(STP:bit7)に "1" を設定しても , ストップモードへ遷移しません。
● 端子状態の設定
ストップモードの入出力端子は , 低消費電力モード制御レジスタ(LPMCR)の端子状
態設定ビット(SPL:bit5)により , 直前のレベルを保持するか , ハイインピーダンスに
するかを設定します。
107
第 6 章 低消費電力モード
■ ストップモードの解除
ストップモードは , 外部リセットまたはハードウェア割込み出力で解除できます。
● リセットによるストップモードの解除
ストップモードのリセットによって解除されると , ストップモードから解除された後 ,
発振安定化待ちおよびリセット状態になります。リセットシーケンスには , 発振安定化
待ち時間経過後に移ります。
● 割込みによるストップモードの解除
(割込み制御レジスタ(ICR)の IL2, IL1, IL0 が "111B" 以外の値に設定されているとき)
ストップモード時にリソースからレベル7より高い割込み要求が発生されると, 低消費
電力制御回路はストップモードを解除します。ストップモードが解除されると , CPU
はこの割込みをほかの割込みと同様な方法で処理します。ただし , CPU の起動は , ク
ロック選択レジスタ(CKSCR)の WS1 ビットと WS0 ビットで指定されたメインク
ロック発振安定化待ち時間が経過した後で行われます。CPU は , コンディションコー
ドレジスタ(CCR), 割込みレベルマスクレジスタ(ILM)および割込み制御レジスタ
(ICR)の設定に従って処理を実行します。この割込みが受け付けられた場合は , CPU
は割込み処理を実行します。この割込みが受け付けられなかった場合は , CPU はストッ
プモードへの切換えが指定されている命令のすぐ次の命令を実行します。
割込み処理が正常に実行されると , CPU はまず , ストップモードへの切換えが指定され
ている命令のすぐ次の命令を実行します。CPU は次に , 割込み処理に移ります。
ストップモードからノーマルモードへの復帰動作を図 6.5-4 に示します。
図 6.5-4 外部割込み出力によるストップモードの解除
RST端子
ストップモード
メインクロック
発振安定待ち時間
発振
PLLクロック
発振安定待ち時間
発振
メイン/PLLクロック
CPUクロック
CPU動作
ストップモード解除
108
停止
リセット解除
リセットシーケンス
実行
第 6 章 低消費電力モード
6.6
状態遷移図
MB90460/465 シリーズ CPU 動作モードの状態遷移図を示します。
■ 状態遷移図
図 6.6-1 状態遷移図
外部リセット,
ウォッチドッグタイマリセット,
ソフトウェアリセット
電源投入
リセット
発振安定待ち終了
MCS=1
メインクロック
モード
SLP=1
割込み
PLLクロック
モード
MCS=0
SLP=1
メインスリープ
モード
割込み
TMD=0
PLLスリープ
モード
TMD=0
メインタイムベース
タイマモード
STP=1
割込み
PLLタイムベース
タイマモード
STP=1
メインストップ
モード
割込み
PLLストップ
モード
割込み
発振安定
待ち終了
メインクロック
発振安定待ち
< 注意事項 >
割込み
発振安定
待ち終了
PLLクロック
発振安定待ち
クロックモードを切り換えた場合 , 切換えが完了するまではほかのクロックモード
および低消費電力モードへ切り換えないようにしてください。
切換えの完了はクロック選択レジスタ(CKSCR)の MCM ビットを参照して確認
してください。切換えが完了する前に , ほかのクロックモードおよび低消費電力
モードへの切換えを行った場合 , 切り換わらない場合があります。
109
第 6 章 低消費電力モード
6.7
スタンバイモード , リセットの端子状態
スタンバイモード , リセットの端子状態を示します。
■ ソフトウェアプルアップ抵抗
ソフトウェアでプルアップ抵抗を接続している入出力端子は , 出力設定にすることで
プルアップ抵抗は切離されます。
■ 端子状態
各端子の状態を表 6.7-1 に示します。
表 6.7-1 各端子状態
スタンバイモード
端子名
ストップモード
リセット時
スリープ
P00 ∼ P07
P17
P20 ∼ P27
P30 ∼ P37
P40
P42 ∼ P47
P50 ∼ P57
P60 ∼ P63
P10 ∼ P16
P63
直前の状態を
保持 *2
SPL=0
SPL=1
直前の状態を
保持 *2
入力遮断 *3/
出力 Hi-Z*4
出力 Hi-Z*4
入力可 *1
*1:" 入力可 " とは , 入力機能が可能な状態であることを意味します。ただし , 部割込みを許
可している場合に限ります。出力ポートとして使用している場合は , 低消費電力モード制
御レジスタ(LPMCR)の端子状態設定ビット(SPL)の設定に従います。
*2:" 直前の状態を保持 " とは , スタンバイモードに遷移する直前に出力していた状態をその
まま保持 *5 することを意味します。ただし , 入力状態であった場合は , 入力不可 *6 とな
るので注意してください。
*3: 入力遮断状態では , 入力はマスクされ "L" レベルが内部に伝わります。
*4:" 出力 Hi-Z" とは , 端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダ
ンスにする ことを意味します。
*5:" 出力していた状態をそのまま保持 " とは , リソースの出力値またはポートの出力 値を保
持することを意味します。
*6:" 入力不可 " とは , 内部回路が動作していないため , 端子への入力値が内部で受け付けら
れない状態を 意味します。
110
第 6 章 低消費電力モード
6.8
低消費電力モード使用上の注意
低消費電力モードを使用する場合は , 以下の注意が必要です。
• スタンバイモードへの遷移と割込み
• 割込みによるスタンバイモードの解除
• スタンバイモードの設定
• 外部割込みによるストップモードの解除
• タイムベースタイマモードの解除
• 発振安定待ち時間
• クロックモードの切換え
■ スタンバイモードへの遷移と割込み
リソースが割込み要求を出力している場合は , 低消費電力モード制御レジスタ
(LPMCR)のストップモードビット(STP:bit7)に "1", スリープモードビット(SLP:bit5)
に "1", あるいはタイムベースタイマモードビット(TMD:bit3)に "0" を設定しても , ス
タンバイモードへは遷移しません。
ただし , CPU による割込み処理が実行中 , 割込み要求フラグがクリアされ , かつほかの
割込み要求が送出されていない場合は , スタンバイモードへ遷移できます。
■ 割込みによるスタンバイモードの解除
スリープモード , タイムベースタイマモードおよびストップモード中に , 動作している
リソースおよび外部割込みから割込みレベルが "7" より強い割込み要求(割込み制御
レジスタ ICR:IL2, IL1, IL0=000B ∼ 110B)が出力されると , スタンバイモードは解除さ
れます。
待機モードが解除された後 , 正常割込み処理が実行されます。CPU は割込み処理ルー
チンへ分岐します(割込みレベル設定ビット(ICR の IL2, IL1, IL0)で示された割込み
要求優先順位が割込みレベルマスクレジスタ(ILM)より高い場合)。コンディション
コードレジスタ(CCR)の割込み許可フラグ(I)は "1"(許可)に設定されます。割
込みが受付けられない場合は , CPU はスタンバイモードへの遷移が指定されている命
令のすぐ次の命令を実行します。
割込み処理が正常に実行されると , CPU はまず , スタンバイモードへの遷移が指定され
ている命令のすぐ次の命令を実行します。CPU は次に , 割込み処理に移ります。ただ
し , スタンバイモードへの遷移が実行されたときの状態によっては , CPU はその次の命
令を実行する前に割込み処理に移ることがあります。
スタンバイモードからノーマルモードへ復帰した直後に CPU が割込み処理ルーチンへ
分岐しない場合は , スタンバイモードが設定される前に割込みを停止する処置をしな
ければなりません。
■ スタンバイモードの設定
LPMCR の STP ビットと SLP ビットに同時に "1" を書き込むと , スタンバイモードへの
遷移が実行されます。クロック選択レジスタ(CKSCR)の MCS ビットが "0" の場合は ,
タイムベースタイマモードへの切換えが実行されます。このビットが "1" の場合は , ス
トップモードへの切換えが実行されます。
111
第 6 章 低消費電力モード
■ 外部割込みによるストップモードの解除
ストップモードを解除するために外部割込みを使用する場合は , システムがストップ
モードに遷移する前に割込み入力要因として設定した入力を使用してください。入力
要因として "H" レベル , "L" レベル , 立上りエッジまたは立下りエッジを選択できます。
■ タイムベースタイマモードの解除
PLL タイムベースタイマモードが解除されると , PLL クロック発振安定化待ち状態に
なります。メインタイムベースタイマモードの場合は , リセット直後かまたは割込みか
らの復帰と同時に実行される命令でクロック選択レジスタ(CKSCR)の MCS ビット
を "1" に書き換えてください。
外部割込みを使用してタイムベースタイマモードを解除する場合は , 入力要因として
"H" レベル , "L" レベル , 立上りエッジまたは立下りエッジを選択できます。
■ 発振安定待ち時間
● 発振クロックの発振安定化待ち時間
ストップモード時は原発振の発振子は停止するので , 発振安定化待ち時間を設けなけ
ればなりません。CKSCR の WS1 ビットと WS0 ビットで選択された時間幅は , 発振安
定化待ち時間として使用されます。
● PLL クロック発振安定化待ち時間
CPU はメインクロックで動作でき , PLL クロックは停止できます。CPU およびリソー
スが PLL クロックで動作するモードになると , PLL クロックは最初に発振安定化待ち
状態になります。発振安定化待ち状態においては , CPU はメインクロックで動作しま
す。
PLL クロック発振安定化待ち時間は , 214/HCLK 固定です(HCLK: 発振クロック周波
数)。
■ クロックモードの切換え
クロックモードを切り換えた場合 , 切換えが完了するまでは低消費電力モードへの切
換えおよびほかのクロックモードへ切り換えないようにしてください。切換えの完了
はクロック選択レジスタ(CKSCR)の MCM ビットを参照して確認してください。
切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換えを
行った場合 , 切り換わらない場合があります。
112
第7章
割込み
MB90460/465 シリーズの割込みと拡張インテリ
ジェント I/O サービス(EI2OS)について説明しま
す。
7.1 割込み
7.2 割込み要因と割込みベクタ
7.3 割込み制御レジスタとリソース
7.4 ハードウェア割込み
7.5 ソフトウェア割込み
7.6 拡張インテリジェント I/O サービス(EI2OS)からの割
込み
7.7 例外処理割込み
7.8 割込み処理時のスタック動作
7.9 割込み処理のプログラム例
113
第 7 章 割込み
7.1
割込み
MB90460/465 シリーズの割込みと拡張インテリジェント I/O サービス(EI2OS)に
ついて説明します。
• ハードウェア割込み
• ソフトウェア割込み
• 拡張インテリジェント I/O サービス(EI2OS)からの割込み
• 例外処理
■ 割込みの種類と機能
● ハードウェア割込み
ハードウェア割込みは , リソースから割込み要求が発生すると , ユーザ定義の割込み処
理プログラムへ制御を移します。
● ソフトウェア割込み
ソフトウェア割込みは , 専用ソフトウェア割込み命令(INT 命令など)の実行により起
動されたユーザ定義の割込み処理プログラムへ制御を移します。
● 拡張インテリジェント I/O サービス(EI2OS)による割込み
拡張インテリジェント I/O サービス(EI2OS)は , リソースとメモリ間における自動デー
タ転送機能です。EI2OS の起動時の設定プログラムと終了プログラムを作成するだけ
で , データを転送できます。データ転送処理を終了すると , 自動的に割込み処理プログ
ラムを実行します。
拡張インテリジェント I/O サービス(EI2OS)による割込みは , 上記のハードウェア割
込みの一種です。
● 例外処理
例外処理は , 命令間で例外事項(未定義命令の実行)の発生が検出された場合に , 通常
処理を中断して実行されます。上記のソフトウェア割込み命令の "INTI0" と等価です。
114
第 7 章 割込み
■ 割込み動作
4 種類の割込み機能の起動と復帰処理を図 7.1-1 に示します。
図 7.1-1 割込み動作の全体フロー
スタート
メインプログラム
有効な
Is there
ハードウェア
割込み要求が存在
するか?
ストリング系 *
命令が実行中
YES
割込みの起動と復帰処理
NO
次の命令を取出し,
デコードする
YES
EI2OS?
YES
INT命令?
EI2OS処理
ソフトウェア
割込み/
例外処理
システムスタックへ
専用レジスタを
退避する
NO
EI2OS
ハードウェア割込みの
受付けを無効にする
("1" → "0")
ハードウェア
割込み
YES
システムスタックへ
専用レジスタを退避する
指定された
回数に達したか?
またはリソースから
終了要求が
あったか?
NO
CPU割込み処理レベル
(ILM)を更新する
RETI命令?
NO
通常命令を実行する
instruction
YES
割込み
復帰処理
システムスタックから
専用レジスタを戻し,
割込みルーチンを呼出す
る前のルーチンへ戻る
割込みベクタを読出し,
PCとPCBを更新し,
割込みルーチンへ
分岐する
ストリング系 *
命令の反復は完了
したか?
YES
PCを更新してポインタを
次の命令へ移動する
*:ストリング系命令の実行中は,1ステップごとに割込みが判定されます。
115
第 7 章 割込み
割込み要因と割込みベクタ
7.2
F2MC-16LX ファミリは , 256 種類の割込み要因を処理する機能を備えています。
256 の割込みベクタテーブルは , 最上位アドレスのメモリに割当てられています。こ
れらの割込みベクタは , すべての割込みで共用されます。
ソフトウェア割込みは , これらすべての割込みベクタ(INT0 ∼ INT255)を使用でき
ます。ソフトウェア割込みは , 同じ割込みベクタをハードウェア割込みおよび例外
処理割込みと共用します。ハードウェア割込みは , 各リソースの固定割込みベクタ
と割込み制御レジスタ(ICR)を使用します。
■ 割込みベクタ
割込み処理時に参照される割込みベクタテーブルは , メモリ領域の最上位アドレス
(FFFC00H ∼ FFFFFFH)に割当てられています。割込みベクタは , 同じ領域を EI2OS,
例外処理 , ハードウェア割込み , ソフトウェア割込みが共用します。
割込み番号および割込みベクタの割当てを , 表 7.2-1 に示します。
表 7.2-1 割込みベクタ
ソフトウェア
割込み命令
ベクタ
アドレス L
ベクタ
アドレス M
ベクタ
アドレス H
モード
データ
割込み
番号
ハードウェア
割込み
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
なし
L: 下位アドレス
M: 中位アドレス
H: 上位アドレス
< 参考 >
116
使用されない割込みベクタは , 例外処理などのアドレスに設定することを推奨しま
す。
第 7 章 割込み
■ 割込み要因 , 割込みベクタおよび割込み制御レジスタ
割込み要因(ソフトウェア割込みを除く), 割込みベクタおよび割込み制御レジスタの
関係を表 7.2-2 に示します。
表 7.2-2 割込み要因 , 割込みベクタおよび割込み制御レジスタ ( 1 / 2 )
割込み要因
EI2OS
対応
割込みベクタ
割込み制御レジスタ
優先度 *2
番号
アドレス
ICR
アドレス
リセット
×
#08
08H
FFFFDCH
-
-
高い
INT9 命令
×
#09
09H
FFFFD8H
-
-
↑
例外処理
×
#10
0AH
FFFFD4H
-
-
A/D コンバータによる変換終了
○
#11
0BH
FFFFD0H
アウトプットコンペアチャネル 0
一致
ICR00
#12
0CH
FFFFCCH
0000B0H*1
○
PWC0 タイマ測定終了 ,
PWC0 タイマオーバフロー
○
#13
0DH
FFFFC8H
ICR01
0000B1H*1
16 ビット PPG タイマ 0
○
#14
0EH
FFFFC4H
アウトプットコンペアチャネル 1
一致
○
#15
0FH
FFFFC0H
ICR02
0000B2H*1
16 ビット PPG タイマ 1
○
#16
10H
FFFFBCH
アウトプットコンペアチャネル 2
一致
○
#17
11H
FFFFB8H
ICR03
16 ビットリロードタイマ 1 アンダ
フロー
0000B3H*1
○
#18
12H
FFFFB4H
アウトプットコンペアチャネル 3
一致
○
#19
13H
FFFFB0H
DTP/ 外部割込みチャネル 0/1 検出
○
ICR04
0000B4H*1
ICR05
0000B5H*1
ICR06
0000B6H*1
ICR07
0000B7H*1
DTTI0
Δ
アウトプットコンペアチャネル 4
一致
○
DTP/ 外部割込みチャネル 2/3 検出
○
DTTI1
○
アウトプットコンペアチャネル 5
一致
○
#20
14H
FFFFACH
#21
15H
FFFFA8H
#22
16H
FFFFA4H
#23
17H
FFFFA0H
PWC1 タイマ測定終了 ,
PWC1 タイマオーバフロー
○
#24
18H
FFFF9CH
DTP/ 外部割込みチャネル 4/5 検出
○
#25
19H
FFFF98H
マルチパルスジェネレータタイマ
コンペア一致 / 書込みタイミング
○
#26
1AH
FFFF94H
↓
低い
117
第 7 章 割込み
表 7.2-2 割込み要因 , 割込みベクタおよび割込み制御レジスタ ( 2 / 2 )
割込み要因
DTP/ 外部割込みチャネル 6/7 検出
EI2OS
対応
○
割込みベクタ
優先度 *2
番号
#27
1BH
アドレス
○
#28
1CH
FFFF8CH
波形生成部 16 ビットタイマ 0/1/2
アンダフロー
Δ
#29
1DH
FFFF88H
16 ビットリロードタイマ 0 アンダ
フロー
○
#30
1EH
FFFF84H
16 ビットフリーランタイマ 0 検出
Δ
#31
1FH
FFFF80H
16 ビット PPG タイマ 2
○
#32
20H
FFFF7CH
インプットキャプチャチャネル 0/1
○
#33
21H
FFFF78H
16 ビットフリーランタイマコンペ
アクリア
Δ
#34
22H
FFFF74H
アウトプットキャプチャチャネル
2/3
○
#35
23H
FFFF70H
タイムベースタイマ
Δ
#36
24H
FFFF6CH
UART1 受信完了
◎
#37
25H
FFFF68H
FFFF64H
UART1 送信開始
Δ
#38
26H
UART0 受信完了
◎
#39
27H
FFFF60H
UART0 送信開始
Δ
#40
28H
FFFF5CH
フラッシュメモリステータス
Δ
#41
29H
FFFF58H
Δ
#42
2AH
ICR
アドレス
ICR08
0000B8H*1
FFFF90H
マルチパルスジェネレータ位置検
出 / コンペア割込み
遅延割込み発生モジュール
割込み制御レジスタ
高い
↑
ICR09
0000B9H*1
ICR10
0000BAH*1
ICR11
0000BBH*1
ICR12
0000BCH*1
ICR13
0000BDH*1
ICR14
0000BEH*1
ICR15
0000BFH*1
FFFF54H
↓
低い
○ :EI2OS は使用可能であり , 割込み要求フラグは EI2OS 割込みクリア信号でクリアされます。
× :EI2OS は使用不可。
◎ :EI2OS は使用可能であり , EI2OS 停止要求もサポートされています。
Δ:EI2OS は , ICR を共用する割込み要因を使用しない場合 , 使用可能です。
*1:
- ICR レジスタを共用するリソースの場合 , 割込みレベルは同じです。
- EI2OS を , 別のリソースと , ICR レジスタを共用しているリソースを一緒に使用する場合は , EI2OS はこれ
ら 2 つのリソースのどちらかで起動できます。また , EI2OS クリアをサポートしている場合は , 2 つの割込
み要因の各割込み要求フラグが EI2OS 割込みクリア信号でクリアされます。EI2OS の使用中は , どちらか
一方の割込み要求をマスクすることを推奨します。
- 複数の EI2OS を複数回 , 同時に起動することはできません。EI2OS の動作中は , 動作中の割込み以外の割
込みはマスクされます。EI2OS の使用中は , どちらか一方の割込み要求をマスクすることを推奨します。
*2: この優先度は , 同じレベルの割込みが同時に発生する場合に適用されます。
118
第 7 章 割込み
7.3
割込み制御レジスタとリソース
割込み制御レジスタ(ICR00 ∼ ICR15)は , 割込みコントローラ内に存在します。
割込み制御レジスタは , 割込み機能を持つすべてのリソースに対応しています。こ
れらのレジスタは , 割込みと拡張インテリジェント I/O サービス(EI2OS)を制御し
ます。
■ 割込み制御レジスタ
割込み制御レジスタと , これらのレジスタに対応しているリソースを表 7.3-1 に示しま
す。
表 7.3-1 割込み制御レジスタ
アドレス
0000B0H
割込み制御レジスタ 00
レジスタ
ICR00
略語
A/D コンバータ , アウトプットコンペア 0
対応するリソース
0000B1H
割込み制御レジスタ 01
ICR01
PWC0, 16 ビット PPG タイマ 0
0000B2H
割込み制御レジスタ 02
ICR02
アウトプットコンペア 1, 16 ビット PPG タイマ 1
0000B3H
割込み制御レジスタ 03
ICR03
アウトプットコンペア 2, 16 ビットリロードタイマ 1
0000B4H
割込み制御レジスタ 04
ICR04
アウトプットコンペア 3, DTP/ 外部割込み 0/1, DTTI0
0000B5H
割込み制御レジスタ 05
ICR05
アウトプットコンペア 4, DTP/ 外部割込み 2/3, DTTI1
0000B6H
割込み制御レジスタ 06
ICR06
アウトプットコンペア 5, PWC1 タイマ
0000B7H
割込み制御レジスタ 07
ICR07
DTP/ 外部割込み 4/5, マルチパルスジェネレータ
0000B8H
割込み制御レジスタ 08
ICR08
DTP/ 外部割込み 6/7, マルチパルスジェネレータ
0000B9H
割込み制御レジスタ 09
ICR09
波形生成部 , 16 ビットリロードタイマ 0
0000BAH
割込み制御レジスタ 10
ICR10
16 ビットフリーランタイマ 0 検出 , 16 ビット PPG タイマ 2
0000BBH
割込み制御レジスタ 11
ICR11
0000BCH
割込み制御レジスタ 12
ICR12
0000BDH
割込み制御レジスタ 13
ICR13
インプットキャプチャ 0/1,
16 ビットフリーランタイマコンペアクリア
インプットキャプチャ 2/3, タイムベースタイマ
UART1
0000BEH
割込み制御レジスタ 14
ICR14
UART0
0000BFH
割込み制御レジスタ 15
ICR15
フラッシュメモリ , 遅延割込みジェネレータモジュール
■ 割込み制御レジスタの機能
すべての割込み制御レジスタ(ICR)は , 以下を処理します。
• 対応するリソースの割込みレベルを設定する
• 対応するリソースの割込みとして , " 通常割込み " または " 拡張インテリジェント I/O
サービス " を選択する
• 拡張インテリジェント I/O サービス(EI2OS)のチャネルを選択する
• 拡張インテリジェント I/O サービス(EI2OS)の状態を表示する
割込み制御レジスタ(ICR)の一部の機能は , 図 7.3-1 と図 7.3-2 に示されているように ,
書込み時と読出し時では異なります。
割込み制御レジスタ(ICR)へアクセスする際 , リードモディファイライト命令は使用
しないでください。リードモディファイライト命令を使用すると , 正常に動作しませ
ん。
119
第 7 章 割込み
7.3.1
割込み制御レジスタ(ICR00 ∼ ICR15)
割込み制御レジスタは , 割込み機能を持つすべてのリソースに対応しています。割
込み制御レジスタは , 割込み要求が発生すると割込み処理を制御します。割込み制
御レジスタの一部の機能は , 書込み時と読出し時では異なります。
■ 割込み制御レジスタ(ICR00 ∼ ICR15)
図 7.3-1 書込み時の割込み制御レジスタ(ICR00 ∼ ICR15)
書込み時
bit
7
6
5
4
ICS3 ICS2 ICS1 ICS0
W
W
W
W
3
2
1
0
ISE
IL2
IL1
IL0
R/W
R/W
R/W
R/W
IL2 IL1
初期値
00000111B
IL0
割込みレベル設定ビット
0
1
0
割込みレベル0(優先度が最も高い)
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
割込みレベル7(割込みなし)
ISE
EI2OS許可ビット
0 割込みが発生すると,割込みシーケンスをアクティブにする
1
割込みが発生すると,EI2OSをアクティブにする
ICS3 ICS2 ICS1 ICS0
R/W : リード/ライト
W
: ライトオンリ
: 初期値
120
EI2OSチャネル選択ビット
チャネル ディスクリプタアドレス
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
000128H
0
1
0
1
5
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
第 7 章 割込み
図 7.3-2 読出し時の割込み制御レジスタ(ICR00 ∼ ICR15)
読出し時
bit
7
6
5
4
3
1
0
―
―
S1
S0
ISE
IL2
2
IL1
IL0
R
R
R/W
R/W
R/W
R/W
IL2 IL1
初期値
XX000111B
IL0
割込みレベル設定ビット
0
1
0
割込みレベル0(優先度が最も高い)
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
ISE
0
1
R/W
R
-
X
:
:
:
:
:
リード/ライト
リードオンリ
未使用
不定
初期値
割込みレベル7(割込みなし)
EI2OS許可ビット
割込みが発生すると,割込みシーケンスをアクティブにする
割込みが発生すると,EI2OSをアクティブにする
S1
S0
EI2OSのステータスビット
0
0
EI2OSが動作中かまたはアクティブになっていない
0
1
カウントが終了したため停止している
1
0
未使用
1
1
リソースからの要求が発生したため停止している
121
第 7 章 割込み
7.3.2
割込み制御レジスタの機能
割込み制御レジスタ(ICR00 ∼ ICR15)は , 以下の 4 つの機能ビットから構成され
ています。
• 割込みレベル設定ビット(IL2 ∼ IL0)
• 拡張インテリジェント I/O サービス(EI2OS)許可ビット(ISE:bit3)
• 拡張インテリジェント I/O サービス(EI2OS)チャネル選択ビット
(ICS3 ∼ ICS0:bit7 ∼ bit4)
• 拡張インテリジェント I/O サービス(EI2OS)ステータスビット
(S1, S0:bit5, bit4)
■ 割込み制御レジスタ(ICR)
割込み制御レジスタ(ICR)のビット構成を図 7.3-3 に示します。
図 7.3-3 割込み制御レジスタ(ICR)の構成
割込み制御レジスタ(ICR)への書込み
bit
7
6
5
4
3
2
1
0
ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 IL0
W
W
W
W R/W R/W R/W R/W
初期値
00000111B
割込み制御レジスタ(ICR)の読出し
bit
R/W:リード/ライト
R :リードオンリ
W :ライトオンリ
- :未使用
< 参考 >
7
6
5
4
―
―
―
―
S1
R
S0
R
3
2
1
0
ISE IL2 IL1 IL0
R/W R/W R/W R/W
初期値
XX000111B
• ICS3:bit7 から ICS0:bit4 までは , 拡張インテリジェント I/O サービス(EI2OS)
がアクティブになっている場合に限り有効です。EI2OS をアクティブにするに
は , ISE:bit3 に "1" を設定してください。EI2OS をアクティブにしないためには ,
ISE:bit3 に "0" を設定してください。EI2OS がアクティブでない場合は , ICS3 か
ら ICS0 までのビット設定は不要です。
• ICS1, 0:bit5, bit4 は書込みのみ可能です。S1, 0:bit5, bit4 は , 読出しのみ可能で
す。
■ 割込み制御レジスタの機能
● 割込みレベル設定ビット(IL2 ∼ IL0: bit2 ∼ bit0)
これらのビットは , 対応するリソースの割込みレベルを設定します。これらのビット
は , リセットすることにより , レベル 7(割込みなし)に初期化されます。
割込みレベル設定ビットと割込みレベルの対応関係を表 7.3-2 に示します。
122
第 7 章 割込み
表 7.3-2 割込みレベル設定ビットと割込みレベルの対応関係
IL2
IL1
IL0
割込みレベル
0
0
0
0(優先度が最も高い)
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
↑
↓
6(優先度が最も低い)
1
1
1
7(割込みなし)
● 拡張インテリジェント I/O サービス(EI2OS)許可ビット(ISE:bit3)
割込み要求生成時にこのビットが "1" の場合 , EI2OS がアクティブになります。割込み
要求発生時にこのビットが "0" の場合 , 割込みシーケンスがアクティブになります。
EI2OS 終了条件が満たされる(S1, S0:bit5, bit4 が "00B" でない場合)と , ISE:bit3 がク
リアされます。対応するリソースが EI2OS 機能を持っていない場合は , ソフトウェア
により "0" を設定しなければなりません。ISE:bit3 は , リセットにより "0" に初期化さ
れます。
● 拡張インテリジェント I/O サービス(EI2OS)チャネル選択ビット(ICS3 ∼ ICS0:bit7 ∼
bit4)
これらのビットは書込み専用ビットであり , EI2OS チャネルを指定します。EI2OS ディ
スクリプタアドレスは , これらのビット値に基づいて決定されます。これらのビット
は , リセットにより "0000B" に初期化されます。
EI2OS チャネル選択ビットとディスクリプタアドレスの対応関係を表 7.3-3 に示しま
す。
表 7.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
123
第 7 章 割込み
● 拡張インテリジェント I/O サービス(EI2OS)ステータスビット(S1, S0:bit5, bit4)
これらのビットは , 読出し専用ビットです。このビット値を EI2OS 終了時にチェック
すると , 動作状態と終了状態を区別できます。これらのビットは , リセットにより "00B"
に初期化されます。
S1, S0:bit5, bit4 と EI2OS 状態の対応関係を表 7.3-4 に示します。
表 7.3-4 EI2OS ステータスビットと EI2OS 状態の対応関係
124
S1
S0
0
0
EI2OS が動作中かまたはアクティブになっていない
0
1
カウントが終了したため停止している
1
0
未使用
1
1
リソースからの要求が発生したため停止している
EI2OS の状態
第 7 章 割込み
7.4
ハードウェア割込み
ハードウェア割込み機能は , リソースからの割込み信号に応じて , CPU が実行中の
プログラムを一時的に中断し , ユーザ定義の割込み処理プログラムへ制御を移しま
す。
拡張インテリジェント I/O サービス(EI2OS)と外部割込みは , 一種のハードウェア
割込みとして実行されます。
■ ハードウェア割込み
● ハードウェア割込み機能
ハードウェア割込み機能は , リソースから出力された割込み要求信号の割込みレベル
を , CPU のプロセッサステータス(PS)の割込みレベルマスクレジスタ(ILM)と比
較します。次に , ハードウェア割込み機能は , ハードウェアを介して CPU のプロセッ
サステータス(PS)の I フラグ値を参照し , 割込みが受付け可能か否かを決定します。
ハードウェア割込みが受け付けられると , CPU 内部レジスタの値は自動的にシステム
スタックへ退避されます。現在要求されている割込みレベルは , 割込みレベルマスクレ
ジスタ(ILM)に格納され , ハードウェア割込み機能は対応する割込みベクタへ分岐し
ます。
● 複数の割込み
複数のハードウェア割込みを起動できます。
● 拡張インテリジェント I/O サービス(EI2OS)
EI2OS は , メモリと I/O 領域の間の自動転送機能です。指定された転送数が完了すると ,
ハードウェア割込みが起動します。複数の EI2OS の起動は発生しません。EI2OS 処理
中は , ほかのすべての割込み要求と EI2OS 要求は保留されます。
● 外部割込み
外部割込みは , ハードウェア割込みとしてリソース(割込み要求検出回路)から受け付
けられます。
● 割込みベクタ
割込み処理中に参照される割込みベクタテーブルは , "FFFC00H" から "FFFFFFH" まで
のメモリに割当てられます。これらのテーブルは , ソフトウェア割込みと共用されま
す。
割込み番号と割込みベクタの割当てに関する詳細は,「7.2 割込み要因と割込みベクタ」
をご参照ください。
125
第 7 章 割込み
■ ハードウェア割込みの構造
ハードウェア割込みを実行する際に使用される 4 つの機能を表 7.4-1 に示します。これ
ら 4 つの機能は , ハードウェア割込みを起動する前に , プログラムに組込まれていなけ
ればなりません。
表 7.4-1 ハードウェア割込みで使用されるメカニズム
機能
動作
リソース
割込み許可ビット ,
割込み要求ビット
リソースからの割込み要求を制御する
割込みコントローラ
割込み制御レジスタ(ICR)
割込みレベルを設定し , EI2OS を制御する
割込み許可フラグ(I)
割込み許可状態を識別する
割込みレベルマスクレジスタ
(ILM)
CPU
メモリの "FFFC00H" から
"FFFFFFH" までのアドレス
要求割込みレベルと現割込みレベルを比較す
る
マイクロコード
割込み処理ルーチンを実行する
割込みベクタテーブル
割込み処理の分岐先アドレスを格納する
■ ハードウェア割込みの抑制
以下の場合 , ハードウェア割込み要求の受付けは抑制されます。
● リソース制御レジスタへの書込み中
リソース制御レジスタ領域へのデータ書込み中 , ハードウェア割込み要求は受け付け
られません。これにより , CPU の誤動作を防止できます。この誤動作は , リソースの割
込み制御レジスタへのデータ書込み時に割込み要求が生成された場合に発生する場合
があります。リソース制御レジスタ領域は , "000000H" から "0000FFH" までの I/O アド
レス指定領域ではなく , リソース制御レジスタとリソースデータレジスタに割当てら
れた領域です。
リソース領域への書込み時におけるハードウェア割込み動作を図 7.4-1 に示します。
図 7.4-1 リソース制御レジスタ領域への書込み中に発生するハードウェア割込み要求
リソース制御レジスタ領域への書込み命令
MOV A,#08
MOV io,A
割込み要求が
ここで生成される
126
MOV A,2000H
割込みへ
分岐しない
割込み処理
割込みへ
分岐する
第 7 章 割込み
● 割込み抑制命令の実行中
表 7.4-2 に示されている 10 種類のハードウェア割込み抑制命令の実行中にハードウェ
ア割込みが発生した場合 , ハードウェア割込み抑止命令の処理後 , ほかの命令が実行さ
れた後に割込みが処理されます。
表 7.4-2 ハードウェア割込み抑制命令
プリフィクスコード
割込み抑止命令
PCB
MOV
ILM, #imm8
DTB
OR
CCR, #imm8
ADB
AND
CCR, #imm8
SPB
POPW
PS
割込み要求を受付けない命令
CMR
NCC
これらのハードウェア割込み抑制命令のいずれかの実行中は , 有効なハードウェア割
込み要求が生成されても , この割込みは別の種類の命令が初めて実行されるまで処理
されません。
● ソフトウェア割込みの実行中
ソフトウェア割込みがアクティブになると , I フラグは "0" にクリアされます。この場
合 , ほかの割込み要求を受付けることはできません。
127
第 7 章 割込み
7.4.1
ハードウェア割込み動作
ハードウェア割込み要求発生から割込み処理完了までのハードウェア割込み動作に
ついて説明します。
■ ハードウェア割込みのアクティブ化
● リソースの動作(割込み要求の発生)
ハードウェア割込み要求機能を持っているリソースは , 割込み要求が存在することを
示す割込み要求フラグと , CPU 割込み要求が許可か禁止かを判定する割込み許可フラ
グを持っています。割込み要求フラグは , リソース固有のイベントが発生した場合に設
定されます。
● 割込みコントローラの動作(割込み要求制御)
割込みコントローラは , 同時に受取った割込み要求の割込みレベル(IL)を比較しま
す。割込みコントローラは , 最も高いレベル(IL 値は最も小さい)の要求を選択し , そ
れを CPU へ通知します。複数の要求の割込みレベルが同じ場合は , 割込み番号が小さ
い要求が最も高い優先度となります。
● CPU 動作(割込み要求受付けと割込み処理)
CPU は , 受取った割込みレベル(ICR レジスタの IL2 ∼ IL0:bit2 ∼ bit0)と , 割込みレ
ベルマスクレジスタ(ILM)を比較します。"IL < ILM" であり , かつ割込みが許可(PS
レジスタ中の CCR レジスタの I フラグ =1)の場合は , 現在実行中の命令が終了した後 ,
CPU は割込み処理マイクロコードをアクティブにします。
CPU は , 割込み処理マイクロコードの先頭で割込み制御レジスタ(ICR)の ISE:bit3 を
参照します。ISE :bit3=0 の場合は , CPU は割込み処理の実行を継続します(ISE:bit3=1
の場合は , EI2OS はアクティブになります)
。
割込み処理時は , 専用レジスタ(A, DPR, ADB, DTB, PCB, PC, PS から構成される 12 バ
イト)の値がシステムスタック(SSB と SSP が示すシステムスタック空間)へ退避さ
れます。
次に CPU は , 割込みベクタプログラムカウンタ(PCB, PC)へデータをロードし , 割込
みレベルマスクレジスタ(ILM)を更新し , スタックフラグ(S)を設定します(コン
ディションコードレジスタ(CCR)の S ビットに "1" を設定し , システムスタックをア
クティブにします)。
■ ハードウェア割込みからの復帰
割込み処理プログラムでは , 割込み要因を発生したリソースの割込み要求フラグがク
リアされて RETI 命令が実行されると , システムスタックに退避されていた 12 バイト
データが専用レジスタへ復元され , 割込みを分岐する前に実行していた処理が再開し
ます。
割込み要求フラグがクリアされると , リソースが割込みコントローラへ出力した割込
み要求は , 自動的にキャンセルされます。
128
第 7 章 割込み
■ ハードウェア割込み動作
ハードウェア割込み発生から割込み処理完了までのハードウェア割込み動作を図 7.4-2
に示します。
図 7.4-2 ハードウェア割込み動作
内部データバス
(7)
PS,PC・・
マイクロコード
PS
I
ILM
IR
(6)
チェック
検査
(5)
比較器
(4)
(3)
ほかのリソース
割込み要求を生成したリソース
レベル
比較器
有効FF
要因FF
(8)
(2)
割込み
レベル
(IL)
(1)
割込みコントローラ
IL :
PS :
I :
ILM:
IR :
FF :
割込み制御レジスタ(ICR)の割込みレベル設定ビット
プロセッサ状態
割込み許可フラグ
割込みレベルマスクレジスタ
命令レジスタ
フリップフロップ
(1) 割込み要因がリソース内部で発生します。
(2) リソースの割込み許可ビットが参照されます。割込みが許可の場合は , 割込み要求
がリソースから割込みコントローラへ出力されます。
(3) 割込み要求を受取る割込みコントローラは , 同時に受取った割込み要求の優先度を
決定し , 対応する割込み要求に一致する割込みレベル(IL)を CPU へ転送します。
(4) CPU は , 割込みコントローラへ要求された割込みレベル(IL)を割込みレベルマス
クレジスタ(ILM)と比較します。
(5) 比較の結果 , 当該割込みレベルの優先度が現割込み処理レベルよりも高いことを示
している場合は , CPU はコンディションコードレジスタ(CCR)の I フラグ値を
チェックします。
(6) 上記ステップ(5)のチェックにより , I フラグが割込みイネーブル(I =1)を示して
いる場合 , CPU は現在実行中の命令の実行が終了するまで処理を待ちます。当該命
令が終了すると , CPU は要求されたレベル(IL)を割込みレベルマスクレジスタ
(ILM)に設定します。
(7) レジスタが退避され , 処理は割込み処理ルーチンへ分岐します。
(8) 上記ステップ(1)で発生した割込み要因は , 割込み処理ルーチンによりソフトウェ
ア的にクリアされます。RETI 命令を実行すると , 割込み処理は終了します。
129
第 7 章 割込み
7.4.2
割込み処理
リソースにおいて割込み要求が発生すると , 割込みコントローラは割込みレベルを
CPU へ送信します。CPU が割込みを受付けることができる場合は , 割込みコント
ローラは実行中の命令を一時的に中断します。次に割込みコントローラは , 割込み
処理ルーチンを実行するかまたは拡張インテリジェント I/O サービス(EI2OS)をア
クティブにします。
ソフトウェア割込みが INT 命令で生成された場合は , 割込み処理ルーチンが CPU 状
態とは無関係に実行されます。この場合 , ハードウェア割込みは許可されません。
■ 割込み処理
割込み処理フローを図 7.4-3 に示します。
図 7.4-3 割込み処理フロー
スタート
I&IF&IE=1
AND
ILM>IL
*
ストリング系
命令実行中
NO
メインプログラム
YES
割込みの起動/復帰処理
YES
ISE=1
次の命令の取出し
デコードする
EI2OS
NO
YES
INT命令か?
EI2OS処理
ソフトウェア
割込み/
例外処理
ハードウェア
システムスタックへ専用 割込み
レジスタを退避する
NO
I=0
(ハードウェア割込み
の禁止)
YES
指定した回数
に達したか?または
リソースから終了要求
があったか?
システムスタックへ専用
レジスタを退避する
NO
ILM←IL
(受付けられた割込み
要求の割込みレベル
をILMへ転送)
YES
RETI命令か?
NO
通常命令を実行する
(割込み処理を含む)
NO
割込み
復帰処理
システムスタックから
専用レジスタが復帰し,
割込みルーチン呼出し
前のルーチンへ復帰
S=1
(システムスタックを
有効にする)
PCB,PC←割込みベクタ
(割込み処理ルーチンへ
分岐)
ストリング系*
命令の反復は完了
したか?
YES
PCを更新してポインタ
を次命令へ移動する
例外処理では
RETI命令で復帰
できません
S :コンディションコードレジスタ(CCR)の
:ストリング系命令の実行中は,1ステップごとに
割込みが判定されます。
スタックフラグ
I :コンディションコードレジスタ(CCR)の
PCB :プログラムバンクレジスタ
割込み許可フラグ
PC :プログラムカウンタ
IF :リソースの割込み要求フラグ
IE :リソースの割込み許可フラグ
ILM :割込みレベルマスクレジスタ(PS中の)
ISE :割込み制御レジスタ(ICR)のEI2OS許可フラグ
IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット
*
130
第 7 章 割込み
ハードウェア割込み使用手順
7.4.3
ハードウェア割込みを使用する場合は , 事前にシステムスタック領域 , リソースおよ
び割込み制御レジスタ(ICR)を設定しておかなければなりません。
■ ハードウェア割込み使用手順
ハードウェア割込み使用手順の例を図 7.4-4 に示します。
図 7.4-4 ハードウェア割込み使用手順
スタート
(1) システムスタック領域の設定
割込み処理プログラム
(2)
リソースの動作設定
(3)
割込みコントローラ内の
ICRの設定
(4)
リソースの動作開始設定
割込み許可ビットを
"許可"に設定
(5)
スタック処理
割込みベクタへ分岐
(7)
ハードウェア
による処理
PS内のILM,Iの設定
(8) リソースへの割込み
に対する処理(割込み処
理ルーチンの実行)
(9)
割込み要因のクリア
(10) 割込み復帰命令(RETI)
メインプログラム
(6)
割込み要求出力
メインプログラム
(1) システムスタック領域を設定してください。
(2) 割込み要求を発生できるリソースを初期化してください。
(3) 割込みコントローラの割込み制御レジスタ(ICR)を設定してください。
(4) リソースを動作開始状態に設定し , 割込み許可ビットを " 許可 " に設定してくださ
い。
(5) 割込みレベルマスクレジスタ(ILM)と割込み許可フラグ(I)を " 割込み受付け可
能 " に設定してください。
(6) リソースにおいて発生した割込みによりハードウェア割込み要求が発生されます。
(7) 割込み処理ハードウェアがレジスタを退避し , 割込み処理プログラムへ分岐しま
す。
(8) 割込ルーチンにてプログラムが実行されます。
(9) リソースからの割込み要求をクリアします。
(10)割込み復帰命令を実行し , 割込みへ分岐する前に実行されていたプログラムへ制御
を戻します。
131
第 7 章 割込み
7.4.4 複数の割込み
割込み制御レジスタ(ICR)の割込みレベル設定ビット(IL2 ∼ IL0:bit2 ∼ bit0)に
複数の割込みレベルを設定すると , リソースから複数の割込み要求が発生した場合 ,
複数のハードウェア割込みを起動できます。ただし , 拡張インテリジェント I/O サー
ビス(EI2OS)では複数の割込みを使用することはできません。
■ 複数の割込み
● 複数の割込み動作
割込み処理ルーチンの実行中 , 優先度がより高い割込み要求が発生すると , 現割込み処
理が中断され , このより高い割込み優先度を持つ割込み要求が受け付けられます。この
割込み要求が終了すると , CPU は前の割込み処理へ処理を戻します。
割込みレベルとしては "0" から "7" までを設定できます。レベル "7" を設定すると , CPU
は割込み要求を受け付けません。
割込み処理実行中に割込み優先順位が同じかまたは低い割込み要求が生成されると ,
コンディションコードレジスタ(CCR)の I フラグまたは割込みレベルマスクレジス
タ(ILM)が変更されない限り , 現割込み処理が終了するまでこの新しい割込み要求は
保留されます。
割込み中に起動予定であるほかの複数の割込みは , 割込み処理ルーチンのコンディ
ションコードレジスタ(CCR)の I フラグを割込み不可(I=0\)に設定するかまたは割
込みレベルマスクレジスタ(ILM)を割込み不可(ILM=000B)に設定すると , 一時的
に禁止にすることができます。
拡張インテリジェント I/O サービス(EI2OS)を使用して複数の割込みを起動すること
はできません。拡張インテリジェント I/O サービス(EI2OS)の処理中は , ほかのすべ
ての割込み要求および拡張インテリジェント I/O サービス要求は保留されます。
● 複数の割込み処理例
複数の割込み処理例では , タイマ割込みの優先度が A/D コンバータ割込みの優先度よ
りも高いものと仮定します。この例では , A/D コンバータの割込みレベルとして "2" が
設定されており , タイマの割込みレベルとしては "1" が設定されています。A/D コン
バータ割込み処理中にタイマ割込みが発生すると , 図 7.4-5 のように処理します。
132
第 7 章 割込み
図 7.4-5 複数の割込み処理例
メインプログラム
A/D割込み処理
割込みレベル"2"
リソースの初期化
(ILM=010)
(1)
A/D割込み発生
(2)
タイマ割込み処理
割込みレベル1
(ILM=001)
(3)タイマ割込み発生
中断
(4) タイマ割込み処理
再開
メインプログラムの処理再開 (8)
(6) A/D割込み処理
(5) タイマ割込みからの復帰
(7) A/D割込みからの復帰
• A/D 割込み発生
- A/D コンバータ割込み処理が開始されると , 割込みレベルマスクレジスタ(ILM)
には自動的に A/D コンバータ割込みレベル(ICR レジスタの IL2 ∼ IL0:bit2 ∼
bit0)と同じ値(例では "2")が設定されます。レベル "1" または "0" の割込み要
求が発生した場合は , これらの割込み処理が優先されます。
• 割込み処理の終了
- 割込み処理が終了し , 復帰命令(RETI)が実行されると , 専用レジスタ(A, DPR,
ADB, DTB, PCB, PC, PS)の値がスタックから戻され , 割込みレベルマスクレジス
タ(ILM)には , 割込み発生前の値が設定されます。
133
第 7 章 割込み
7.4.5
ハードウェア割込みの処理に要する時間
ハードウェア割込み要求が発生してから割込み処理ルーチンを実行するまでには ,
現在実行中の命令を終了させるために要する時間と , 割込みを処理するために要す
る時間が必要です。
■ ハードウェア割込みの処理に要する時間
ハードウェア割込み要求が発生してから割込みを受付け , 割込み処理ルーチンを実行
するまでには , 割込み要求をサンプリングするための待ち時間と , 割込みを処理するた
めに要する時間(割込み処理の準備に要する時間)が必要です。割込みの処理に要す
る時間を図 7.4-6 に示します。
図 7.4-6 割込み処理時間
CPU動作
割込み待ち時間
通常命令の実行
割込み要求サンプ
リング待ち時間
割込み処理
割込み処理ルーチン
割込み処理時間
(θマシンサイクル)*
割込み要求発生
: 最後の命令サイクルは,割込み要求をここでサンプリングします。
* : 1マシンサイクルは,1マシンクロック(φ)に相当します。
● 割込み要求サンプリング待ち時間
割込み要求サンプリング待ち時間は , 割込み要求が生成された時点から現在実行中の
命令が終了した時点までの時間です。
割込み要求が発生したか否かは , 最後の命令サイクルの割込み要求をサンプリングす
ることによって判定されます。各命令の実行中は CPU は割込み要求を確認できず , 待
ち時間が発生します。
割込み要求サンプリング待ち時間は, 実行時間が最も長いPOPW RW0, …RW7命令(45
マシンサイクル)が開始された直後に割込み要求が発生した時点で最大になります。
● 割込み処理時間(θ マシンサイクル)
CPU は , 割込み要求を受け取ると , システムスタックに専用レジスタを退避し , 割込み
ベクタを読み出します。割込み処理時間は , φ マシンサイクルです。割込み処理時間は ,
以下に示す式で算出されます。
• 割込みがアクティブになったとき :θ =24+6+Z マシンサイクル
• 割込みから制御が返されたとき :θ =11+6+Z マシンサイクル(RETI 命令)
割込み処理時間は , スタックポインタが指す各アドレスによって異なります。
134
第 7 章 割込み
割込み処理時間の補間値(Z)を表 7.4-3 に示します。
表 7.4-3 割込み処理時間の補間値(Z)
< 参考 >
スタックポインタが指すアドレス
補間値(Z)
外部 8 ビット
+4
偶数番号の外部アドレス
+1
奇数番号の外部アドレス
+4
偶数番号の内部アドレス
0
奇数番号の内部アドレス
+2
1 マシンサイクルは , マシンクロック(φ)の 1 サイクルに相当します。
135
第 7 章 割込み
7.5
ソフトウェア割込み
ソフトウェア割込み命令(INT 命令)を実行すると , ソフトウェア割込み機能は ,
CPU で実行中のプログラムからユーザ定義の割込み処理プログラムへ制御を移しま
す。ハードウェア割込みは , ソフトウェア割込み実行中は禁止になります。
■ ソフトウェア割込みの起動
● ソフトウェア割込みの起動
INT 命令は , ソフトウェア割込みを起動にするために使用します。ソフトウェア割込み
要求の場合 , 割込み要求フラグや割込み許可フラグは存在しません。INT 命令を実行す
ると , 割込み要求が必ず発生します。
● ハードウェア割込みの抑制
INT 命令は割込みレベルを持たないので , 割込みレベルマスクレジスタ(ILM)は更新
されません。INT 命令の実行中 , コンディションコードレジスタ(CCR)の I フラグに
は "0" が設定され , ハードウェア割込みはマスクされます。
ソフトウェア割込み処理中にハードウェア割込みを許可するには , ソフトウェア割込
み処理ルーチンのにおいて I フラグに "1" を設定してください。
● ソフトウェア割込み動作
CPU が INT 命令を読み出すと , ソフトウェア割込み処理マイクロコードがアクティブ
になります。このマイクロコードは , CPU 内部レジスタをシステムスタックに退避し ,
ハードウェア割込みをマスクし(CCR レジスタの I フラグ =0), 対応する割込みベク
タへ分岐します。
割込み番号と割込みベクタの割当てについての詳細は ,「7.2 割込み要因と割込みベク
タ」をご参照ください。
■ ソフトウェア割込みからの復帰
割込み処理プログラムでは , 割込み復帰命令(RETI 命令)を実行すると , システムス
タックに退避されている 12 バイトデータが専用レジスタへ復元され , 割込みへ分岐す
る前に実行されていた処理を再開します。
136
第 7 章 割込み
■ ソフトウェア割込み動作
ソフトウェア割込みが生成されてから割込み処理が完了するまでのソフトウェア割込
み動作を図 7.5-1 に示します。
図 7.5-1 ソフトウェア割込み動作
(1)
PS
レジスタファイル
I
(2)
S
Bユニット
マイクロコード
IR
F2MC-16LX CPU
キュー
フェッチ
(3)
退避
内部バス
命令バス
RAM
PS
I
S
IR
Bユニット
:
:
:
:
:
プロセッサ状態
割込み許可フラグ
スタックフラグ
命令レジスタ
バスインタフェースユニット
(1) ソフトウェア割込み命令が実行されます。
(2) 専用レジスタが , ソフトウェア割込み命令に対応するマイクロコードに従って退避
されます。またはほかの必要な処理が実行されます。次に , 分岐処理が実行されま
す。
(3) ユーザの割込み処理ルーチン中の RETI 命令が割込み処理を終了させます。
プログラムバンクレジスタ(PCB)が "FFH" の場合 , CALLV 命令のベクタ領域が INT
#vct8 命令テーブルとオーバラップします。ソフトウェアを作成する場合は , CALLV 命
令と INT #vct8 命令の重複アドレスに注意してください。
137
第 7 章 割込み
7.6
拡張インテリジェント I/O サービス(EI2OS)からの割
込み
拡張インテリジェント I/O サービス(EI2OS)は , 自動的にリソース(I/O 領域)と
メモリの間においてデータを転送します。データ転送が終了すると , ハードウェア
割込みが発生します。
■ 拡張インテリジェント I/O サービス(EI2OS)
拡張インテリジェント I/O サービスは , 一種のハードウェア割込みです。拡張インテリ
ジェント I/O サービスは , 自動的にリソース(I/O 領域)とメモリの間においてデータ
を転送します。従来はリソース(I/O 領域)とメモリの間におけるデータ転送は , 割込
み処理プログラムが行っていました。EI2OS は , 直接メモリアクセス(DMA)と同じ
方法でこのデータを転送します。終了時に EI2OS は , 終了コードを設定し , 自動的に割
込み処理ルーチンへ分岐します。ユーザは , EI2OS を起動および終了するためのプログ
ラムのみを作成する必要があり , データ転送プログラムを作成する必要はありません。
● 拡張インテリジェント I/O サービス(EI2OS)の利点
割込み処理ルーチンで実行されるデータ転送と比較すると, EI2OSの場合は以下の利点
があります。
• データ転送プログラムをコード化する必要がなく , プログラムサイズを小さくでき
ます。
• データ転送はリソース(I/O 領域)の状態によって停止できるので , 不要なデータ転
送を除外できます。
• バッファアドレスを更新するかまたは更新しないかを選択できます。
• I/O アドレスポインタを更新するかまたは更新しないかを選択できます。
● 拡張インテリジェント I/O サービス(EI2OS)からの終了割込み
EI2OS によるデータ転送が終了すると , 終了状態は割込み制御レジスタ(ICR)の S1,
S0: bit5, bit4 に設定されます。したがって , 処理は自動的に割込み処理ルーチンへ分岐
します。
EI2OS 終了要因は , 割込み処理プログラムで EI2OS 状態(ICR レジスタの S1, S0:bit5,
bit4)をチェックすることで決定できます。
割込み番号と割込みベクタは , 各リソースに対して固定されます。詳細は , 「7.2 割込
み要因と割込みベクタ」をご参照ください。
● 割込み制御レジスタ(ICR)
割込みコントローラに存在するこのレジスタは , EI2OS をアクティブにし , EI2OS チャ
ネルを指定し , EI2OS 終了状態を表示します。
138
第 7 章 割込み
● 拡張インテリジェント I/O サービス(EI2OS)のディスクリプタ(ISD)
このディスクリプタは , "000100H" から "00017FH" までの内部 RAM に存在し , 転送モー
ド , I/O アドレス , 転送数およびバッファアドレスを保持する "8 バイト× 16" チャネル
で構成されています。チャネルは , 割込み制御レジスタ(ICR)で指定します。
拡張インテリジェント I/O サービス(EI2OS)の動作中 , CPU プログラムの実行は停止
します。
■ 拡張インテリジェント I/O サービス(EI2OS)の動作
EI2OS の動作を図 7.6-1 に示します。
図 7.6-1 拡張インテリジェント I/O サービス(EI2OS)の動作
メモリ空間
IOAが指す
I/O レジスタ
F2MC-16LX
CPU
・・・・・・・・・・ I/O レジスタ
リソース
(I/O)
(5)
割込み要求
(3)
ISD
(3)
ICSが
指定する
(2)
(1)
割込み制御レジスタ(ICR)
割込みコントローラ
BAPが指す
(4)
バッファ
ISD:
IOA:
BAP:
ICS:
DCT:
DCTが示す
EI2OSディスクリプタ
I/Oアドレスポインタ
バッファアドレスポインタ
2
ICRのEI OSチャネル選択ビット
データカウンタ
(1) 割込み要求が発生し , EI2OS が起動されます。
(2) 割込みコントローラがディスクリプタを選択します。
(3) ディスクリプタから転送元と転送先が読み出されます。
(4) I/O 領域とメモリの間で転送が行われます。
(5) 割込み要因が自動的にクリアされます。
139
第 7 章 割込み
7.6.1 拡張インテリジェント I/O サービス(EI2OS)の
ディスクリプタ(ISD)
拡張インテリジェント I/O サービス(EI2OS)のディスクリプタ(ISD)は ,
"000100H" から "00017FH" までの内部 RAM に存在します。ISD は , "8 バイト×
16" チャネルで構成されています。
■ 拡張インテリジェント I/O サービス(EI2OS)のディスクリプタ(ISD)の構成
ISD は , "8 バイト× 16" チャネルで構成されています。各 ISD は , 図 7.6-2 に示されて
いる各ビットから構成されています。チャネル番号と ISD アドレスの対応関係を表 7.6-1
に示します。
図 7.6-2 EI2OS のディスクリプタ(ISD)の構成
H
データカウンタの上位 8 ビット(DCTH)
データカウンタの下位 8 ビット(DCTL)
I/O アドレスポインタの上位 8 ビット(IOAH)
I/O アドレスポインタの下位 8 ビット(IOAL)
EI2OS ステータスレジスタ(ISCS)
バッファアドレスポインタの上位 8 ビット(BAPH)
000100H + 8 x ICS
バッファアドレスポインタの中位 8 ビット(BAPM)
ISD開始アドレス
バッファアドレスポインタの下位 8 ビット(BAPL)
表 7.6-1 チャネル番号とディスクリプタアドレスの対応関係
140
チャネル
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
L
第 7 章 割込み
7.6.2
拡張インテリジェント I/O サービス(EI2OS)のディ
スクリプタ(ISD)のレジスタ構成
拡張インテリジェント I/O サービス(EI2OS)ディスクリプタ(ISD)は , 以下のレ
ジスタで構成されています。
• データカウンタ(DCT)
• I/O レジスタアドレスポインタ(IOA)
• EI2OS ステータスレジスタ(ISCS)
• バッファアドレスポインタ(BAP)
リセット後の各レジスタの初期値は不定なので注意してください。
■ データカウンタ(DCT)
DCT は , データ転送数のカウンタとしての役割を果たす 16 ビットレジスタです。各
データ転送が実行されると , カウンタは 1 ずつデクリメントします。カウンタが "0" に
達すると , EI2OS は終了します。
DCT の構成を図 7.6-3 に示します。
図 7.6-3 DCT の構成
bit
12
11
B13
B12
B11
B10
B09
B08
X
X
X
X
X
X
X
7
6
5
4
3
2
1
0
B07
B06
B05
B04
B03
B02
B01
B00
X
X
X
X
X
X
X
X
データカウンタの上位バイト
15
14
B15
B14
X
初期値
bit
データカウンタの下位バイト
初期値
13
10
9
8
DCTH
DCTL
■ I/O レジスタアドレスポインタ(IOA)
IOA は , バッファへ(から)データを転送するために使用される , I/O レジスタの下位
アドレス(A15 ∼ A00)を示す 16 ビットレジスタです。上位アドレス(A23 ∼ A16)
は , すべて "00H" です。"000000H" から "00FFFFH" までの領域は , すべてアドレスで指
定できます。
IOA の構成を図 7.6-4 に示します。
図 7.6-4 I/O レジスタアドレスポインタ(IOA)の構成
bit 15
上位アドレスポインタ
初期値
14
13
A15
A14
A13
X
X
X
5
bit 7
下位アドレスポインタ
初期値
6
12
11
10
9
8
A12
A11
A10
A09
A08
X
X
X
X
X
4
3
2
1
0
A07
A06
A05
A04
A03
A02
A01
A00
X
X
X
X
X
X
X
X
IOAH
IOAL
141
第 7 章 割込み
■ 拡張インテリジェント I/O サービス(EI2OS)のステータスレジスタ(ISCS)
ISCS は , 8 ビットレジスタです。ISCS は , バッファアドレスポインタが更新されるか
否か , I/O アドレスポインタが更新されるか否かおよび転送データフォーマット(バイ
トまたはワード)と転送方向を示します。
ISCS の構成を図 7.6-5 に示します。
図 7.6-5 EI2OS 状態レジスタ(ISCS)の構成
bit 7
4
3
2
1
0
RESV RESV RESV
IF
BW
BF
DIR
SE
R/W
R/W
R/W
R/W
R/W
R/W
R/W
6
5
R/W
初期値
XXXXXXXXB
OS終了制御ビット
EI2termination
SE
EI2OS
control bit
0 リソースからの要求で終了されない
リソースからの要求で終了される
1 Terminated
by a request from the peripheral function
DIR
Dataデータ転送方向指定ビット
transfer direction specification bit
0 I/O
I/Oアドレスポインタ
register address →
pointer
→バッファアドレスポインタ
buffer address pointer.
address pointer
→ I/O register
address pointer
バッファアドレスポインタ
→ I/Oアドレスポインタ
1 Buffer
BF
0
1
BAP更新/固定選択ビット
BAP
update/fixed selection bit
データ転送後,バッファアドレスポインタが更新される(*1)
データ転送後,バッファアドレスポインタが更新されない
BW
バイト
0 Byte
ワード
1 Word
IF
0
1
Transfer
data length specification bit
転送データ長指定ビット
IOAIOA更新/固定選択ビット
update/fixed selection bit
データ転送後,I/Oアドレスポインタが更新される(*2)
データ転送後,I/Oアドレスポインタが更新されない
Reserved
bits
未使用ビット
RESV
0 must be written to these bits.
これらのビットには"0"を書込まなければなりません。
R/W: リード/ライト
X : 不定
*1 バッファアドレスポインタの下位16ビットのみが変化します。
バッファアドレスポインタは,インクリメントのみ可能です。
*2 I/Oアドレスポインタは,インクリメントのみ可能です。
■ バッファアドレスポインタ(BAP)
BAP は , その次の転送で EI2OS が使用するアドレスを保持する 24 ビットレジスタで
す。各 EI2OS チャネルには 1 つの独立した BAP が存在するので , 各 EI2OS チャネルは
16 メガバイト空間内のアドレスと I/O 領域との間においてデータを転送できます。
EI2OS 状態レジスタ(ISCS)の BF:bit2(BAP 更新 / 固定選択ビット)に "0" を設定す
ると , BAP の下位 16 ビット(BAPM, BAPL)のみが変化し , 上位 8 ビット(BAPH)は
変化しません。BAP の構成を図 7.6-6 に示します。
142
第 7 章 割込み
図 7.6-6 バッファアドレスポインタ(BAP)の構成
bit 23 ~ bit 16
BAP
bit 15 ~ bit 8
BAPH
BAPM
(R/W)
(R/W)
bit 7 ~ bit 0
BAPL
(R/W)
初期値
XXXXXXH
R/W: リード / ライト
X : 不定
< 参考 >
• I/O アドレスポインタ(IOA)で指定できる領域は , "000000H" ∼ "00FFFFH" ま
でです。
• バッファアドレスポインタ(BAP)で指定できる領域は , "000000H" ∼
"FFFFFFH" までです。
• データカウンタ(DCT)で指定できる最大転送数は , 65, 536 回(64K バイト)
です。
143
第 7 章 割込み
7.6.3
拡張インテリジェント I/O サービス(EI2OS)の動作
割込み要求がリソースにおいて発生すると , 対応する割込み制御レジスタ(ICR)に
EI2OS の起動が設定され , CPU はデータを転送するために EI2OS を使用します。指
定されたデータ転送数に達すると , ハードウェア割込みが自動的に処理されます。
■ 拡張インテリジェント I/O サービス(EI2OS)の動作フロー
CPU の内部マイクロコードに基づく EI2OS 動作フローを図 7.6-7 に示します。
図 7.6-7 拡張インテリジェント I/O サービス(EI2OS)の動作フロー
リソースが割込み要求を
生成する
NO
ISE = 1
YES
割込みシーケンス
ISD/ISCSを読出す
リソースから
終了要求が
発生したか?
YES
YES
SE = 1
NO
NO
YES
DIR = 1
NO
IOAで示されるデータ
(データ転送)
BAPで示されるメモリ
BAPで示されるメモリデータ
_(データ転送)
IOAで示されるデータメモリ
YES
IF = 0
NO
BWに基づく更新値
IOAを更新する
BWに基づく更新値
BAPを更新する
YES
BF = 0
NO
DCTをデクリメントする
(-1)
YES
DCT = 00
EI2OS終了処理
NO
S1とS0に"00B"を設定する
S1とS0に"01B"を設定する
リソースからの割込み
要求をクリアする
ISEを"0"にクリアする
CPU動作へ戻る
割込みシーケンス
SD :EI2OSディスクリプタ
SCS:EI2OSステータスレジスタ
F :EI2OSステータスレジスタ(ISCS)のIOA更新/固定選択ビット
BW :EI2OSステータスレジスタ(ISCS)の転送データ長指定ビット
BF :EI2OSステータスレジスタ(ISCS)のBAP更新/固定選択ビット
DIR:EI2OSステータスレジスタ(ISCS)のデータ転送方向指定ビット
SE :EI2OSステータスレジスタ(ISCS)のEI2OS終了制御ビット
144
S1とS0に"11B"を設定する
DCT :データカウンタ
IOA :I/Oレジスタアドレスポインタ
BAP :バッファアドレスポインタ
ISE :割込み制御レジスタ(ICR)のEI2OS許可ビット
S1,S0:割込み制御レジスタ(ICR)のEI2OSステータスビット
第 7 章 割込み
7.6.4
拡張インテリジェント I/O サービス(EI2OS)の使用
手順
拡張インテリジェント I/O サービス(EI2OS)を使用する場合は , 事前にシステムス
タック領域 , 拡張インテリジェント I/O サービス(EI2OS)ディスクリプタ , 割込み
機能および割込み制御レジスタ(ICR)を設定しておかなければなりません。
■ 拡張インテリジェント I/O サービス(EI2OS)の使用手順
EI2OS ソフトウェア / ハードウェア処理を図 7.6-8 に示します。
図 7.6-8 拡張インテリジェント I/O サービス(EI2OS)の使用手順
ソフトウェアによる処理
ハードウェアによる処理
スタート
システムスタック領域の設定
初
期
設
定
EI2OSディスクリプタの設定
リソースの初期設定
割込み制御レジスタ(ICR)
の設定
リソースの動作開始
設定割込み許可ビットの
設定
PS内のILM,Iの設定
S1,S0=00B
ユーザプログラムの実行
(割込み要求)and(ISE=1)
データ転送
カウント終了orリソース
からの終了要求による
割込みへ分岐の判定
(割込みベクタへ分岐)
拡張インテリジェントI/O
サービスの再設定
(チャネルの切換えなど)
NO
YES
S1,S0=01B or
S1,S0=11B
バッファ中のデータの処理
RETI
ISE :割込み制御レジスタ(ICR)のEI2OSの許可ビット
S1,S0:割込み制御レジスタ(ICR)のEI2OSステータスビット
145
第 7 章 割込み
7.6.5
拡張インテリジェント I/O サービス(EI2OS)の処理
時間
拡張インテリジェント I/O サービス(EI2OS)の処理に要する時間は , 以下の要素に
よって変化します。
• EI2OS ステータスレジスタ(ISCS)の設定
• I/O レジスタアドレスポインタ(IOA)が指すアドレス(領域)
• バッファアドレスポインタ(BAP)が指すアドレス(領域)
• 外部アクセス用の外部データバス幅
• 転送データ長
EI2OS によるデータ転送が終了するとハードウェア割込みが起動するので , 割込み
処理時間が追加されます。
■ 拡張インテリジェント I/O サービス(EI2OS)の処理時間(1 回のデータ転送に要
する時間)
● データ転送を継続する場合
データ転送を継続する場合の EI2OS 処理時間を表 7.6-2 に示します(この表は EI2OS ス
テータスレジスタ(ISCS)の設定に基づいています)
。
表 7.6-2 拡張インテリジェント I/O サービスの実行時間
EI2OS 終了制御ビット(SE:bit0)の設定
IOA 更新 / 固定選択ビット(IF:bit4)の設定
BAP アドレス更新 / 固定選択ビット
(BF:bit2)の設定
リソースからの終了
要求で終了する
リソースからの終了
要求を無視する
固定
更新
固定
更新
固定
32
34
33
35
更新
34
36
35
37
単位 : マシンサイクル(1 マシンサイクルはマシンクロック(φ)の 1 サイクルに相当します。)
さらに表 7.6-3 に示しているように , EI2OS の実行状態によっては補間する必要があり
ます。
表 7.6-3 EI2OS 実行時間のデータ転送補間値
内部アクセス
I/O レジスタアドレスポインタ
内部アクセス
バッファアドレス
ポインタ
外部アクセス
B
8
偶数
奇数
146
: バイトデータ転送
: 外部バス幅 8 ビットでワード転送
: 偶数番号アドレスのワード転送
: 奇数番号アドレスのワード転送
外部アクセス
B/ 偶数
奇数
B/ 偶数
8/ 奇数
B/ 偶数
0
+2
+1
+4
奇数
+2
+4
+3
+6
B/ 偶数
+1
+3
+2
+5
8/ 奇数
+4
+6
+5
+8
第 7 章 割込み
● データカウンタ(DCT)によるカウントを終了する場合(最後のデータ転送)
EI2OSによるデータ転送が終了するとハードウェア割込みが起動するので, 割込み処理
時間が追加されます。カウントを終了させるために要する EI2OS 処理時間は , 以下の
式で算出されます。
カウントを終了させるために要する EI2OS 処理時間 = データ転送に要する EI2OS 処理
時間 + 割込み処理時間(21 + 6 × Z)マシンサイクル
割込み処理時間は , スタックポインタが指す各アドレスによって異なります。割込み処
理時間の補間値(Z)を表 7.6-4 に示します。
表 7.6-4 割込み処理時間の補間値(Z)
スタックポインタが指すアドレス
補間値(Z)
外部 8 ビット
+4
偶数番号の外部アドレス
+1
奇数番号の外部アドレス
+4
偶数番号の内部アドレス
0
奇数番号の内部アドレス
+2
● リソース(I/O)からの終了要求で終了する場合
EI2OS によるデータ転送をリソース(I/O 領域)からの終了要求で終了すると(ICR レ
ジスタの S1, S0 :bit5, bit4=11B), データは転送されず , ハードウェア割込みが起動しま
す。EI2OS 処理時間は , 以下の式で算出されます。式中の "Z" は , 割込み処理時間の補
間値を示します(表 7.6-4)
。
データ転送を終了させるために要する EI2OS 処理時間 =(36 + 6 × Z)マシンサイクル
< 参考 >
1 マシンサイクルは , マシンクロック(φ)の 1 サイクルに相当します。
147
第 7 章 割込み
7.7
例外処理割込み
F2MC-16LX ファミリでは , 未定義命令を実行すると例外処理が発生します。
例外処理は , 基本的には割込みと同じです。例外処理の発生を命令と命令の間で検
出すると , 通常処理が中断され , 例外処理が実行されます。
一般に , 例外処理は予期しない動作の結果として発生します。例外処理は , デバッグ
時や緊急時に必要となる復帰ソフトウェアを起動する場合にのみ使用してください。
■ 例外処理
● 例外処理の動作
F2MC-16LX ファミリは , 命令マップにおいて未定義命令として定義されていない , す
べてのコードを扱います。未定義命令を実行すると , INT #10 ソフトウェア割込み命令
に相当する処理が実行されます。
例外処理が割込みルーチンへ分岐する前に以下の処理が実行されます。
• A, DPR, ADB, DTB, PCB, PC, PS レジスタがシステムスタックに退避されます。
• 状態コードレジスタ(CCR)の I フラグが "0" にクリアされ , ハードウェア割込みが
マスクされます。
• コンディションコードレジスタ(CCR)の S フラグに "1" が設定され , システムス
タックがアクティブになります。
システムスタックに退避されたプログラムカウンタ(PC)値は , 未定義命令が格納さ
れるアドレスそのものです。2 バイト以上の命令コードの場合 , " 未定義 " として識別
されたコードはこのアドレスに格納されます。例外処理ルーチン内で例外要因の種類
を決定しなければならない場合は , この PC 値を使用してください。
● 例外処理からの復帰
RETI 命令で例外処理から制御が返されると , PC が未定義命令を指しているので , 例外
処理が再開されます。ソフトウェアリセットを行うなどで解決してください。
148
第 7 章 割込み
割込み処理時のスタック動作
7.8
割込みが一度受付けられると , 割込み処理へ分岐する前に専用レジスタの値が自動
的にシステムスタックへ退避されます。割込み処理が終了すると , 退避されていた
専用レジスタは自動的にシステムスタックから復元します。
■ 割込み処理開始時のスタック動作
割込みが一度受付けられると , CPU は自動的に現在の専用レジスタの値を , 以下に示さ
れた順序でシステムスタックへ退避します。
• アキュムレータ(A)
• ダイレクトページレジスタ(DPR)
• アディショナルデータバンクレジスタ(ADB)
• データバンクレジスタ(DTB)
• プログラムバンクレジスタ(PCB)
• プログラムカウンタ(PC)
• プロセッサステータス(PS)
割込み処理開始時のスタック動作を図 7.8-1 に示します。
図 7.8-1 割込み処理開始時のスタック動作
割込み直前
アドレス
00H
08FFH
08FEH
SSB
SSP
08FEH
A
0000H
08FEH
AH
AL
DPR
01H
ADB
00H
DTB
00H
PCB
FFH
PC
803FH
PS
20E0H
08F2H
メモリ
割込み直後
アドレス
00H
08FFH
08FEH
SSB
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
SP
H
SSP
08F2H
A
0000H
08FEH
AH
AL
DPR
01H
ADB
00H
DTB
00H
PCB
FFH
L
PC
803FH
PS
20E0H
バイト
08F2H
メモリ
00H
00H
08H
FEH
01H
00H
00H
FFH
80H
3FH
20H
E0H
バイト
SP
AH
AL
DPR
ADB
DTB
PCB
PC
PS
更新後
のSP
■ 割込み処理からの復帰時のスタック動作
割込み処理終了時に割込み復帰命令(RETI)を実行すると , 専用レジスタ値は退避時
とは逆の順序(PS, PC, PCB, DTB, ADB, DPR, A)でスタックから返されます。専用レ
ジスタは , 割込み処理開始直前の状態に復元されます。
149
第 7 章 割込み
■ スタック領域
● スタック領域の割当て
スタック領域は , 割込み処理時に加え , サブルーチン呼出し命令(CALL)やベクタ呼
出し命令(CALLV)実行時にもプログラムカウンタ(PC)を退避および復元するため
に使用します。スタック領域は , PUSHW 命令や POPW 命令でレジスタを一時的に退
避または復元するために使用します。
スタック領域は , RAM のデータ領域と一緒に割当てられます。
スタック領域を図 7.8-2 スタック領域に示します。
図 7.8-2 スタック領域
FFFFFFH
FFFC00H
ベクタテーブル
(リセットするための
割込みベクタ呼出し命令)
ROM 領域
FF0000H*1
000900H*2
内蔵
RAM 領域
スタック
000380H
領域
000180H
汎用レジスタバンク
領域
000100H
0000C0H
内蔵 I/O 領域
000000H
*1:内部ROMは,製品型格によって異なります。
*2:内部RAMは,製品型格によって異なります。
• 一般的に, 偶数番号のアドレスはスタックポインタ(SSP, USP)へ設定してください。
• オーバラップが発生しないように注意して , システムスタック領域やユーザスタッ
ク領域 , データ領域を割当ててください。
● システムスタックとユーザスタック
システムスタック領域は , 割込み処理に使用されます。割込みが発生すると , 使用中の
ユーザスタック領域は強制的にシステムスタックに切り換えられます。システムス
タック領域は , 主にユーザスタック領域を使用するシステムの場合でも正しく設定し
なければなりません。
スタック空間を分割する必要が特にない場合は , システムスタックのみを使用してく
ださい。
150
第 7 章 割込み
7.9
割込み処理のプログラム例
割込み処理のプログラム例を示します。
■ 割込み処理のプログラム例
● 処理仕様
外部割込み 0(INT0)を使用する割込み処理プログラム例を以下に示します。
● コーディング例
EQU 000011H
; ポート 1 方向レジスタ
EQU 030H
;DTP/ 外部割込み許可レジスタ
EQU 031H
;DTP/ 外部割込み要因レジスタ
EQU 032H
; 要求レベル設定レジスタ
EQU 0B4H
; 割込み制御レジスタ
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
;SSP を設定する(S フラグ =1 なので)
MOV DDR1,#00000000B;P10/INT0 端子を " 入力 " に設定
OR
CCR,#40H
;PS の CCR の I フラグを設定して割込みを許可 する
MOV I:ICR04,#00H ; 割込みレベルを "0"(優先度が最も高い)に設定
MOV I:ELVR,#00000001B;INT0 に H レベルを入力するよう要求
MOV I:EIRR,#00H;INT0 割込み要因をクリア
MOV I:EIRR,#01H;INT0 入力を許可する
:
LOOP:
NOP
; ダミーループ
NOP
NOP
NOP
BRA LOOP
; 無条件ジャンプ
;---------- 割込みプログラム ------------------------------------------ED_INT1:
MOV I:EIRR,#00H; 新しい INT0 の受付け不可
NOP
NOP
NOP
NOP
NOP
NOP
RETI
; 割込みからの復帰
CODE
ENDS
DDR1
ENIR
EIRR
ELVR
ICR04
STACK
151
第 7 章 割込み
;---------- ベクタ設定 -----------------------------------------------VECT
CSEG ABS=0FFH
ORG 0FFACH
; 割込み #20(14H)のベクタを設定
VECT
DSL
ORG
DSL
DB
ENDS
END
ED_INT1
0FFDCH
START
00H
; リセットベクタを設定
; シングルチップモードを設定
START
■ 拡張インテリジェント I/O サービス(EI2OS)のプログラム例
• このプログラムは , INT0 端子へ入力された H レベル信号を検出し , 拡張インテリ
ジェント I/O サービス(EI2OS)を起動します。
• INT0 端子へ H レベルが入力されると , EI2OS が起動します。データは , ポート 0 か
らアドレス "003000H" のメモリへ転送されます。
• 転送データバイト数は , 100 バイトです。100 バイトの転送が完了すると , EI2OS 転
送が終了したので割込みが発生します。
● コーディング例
DDR1
ENIR
EIRR
ELVR
ICR04
BAPL
BAPM
BAPH
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
000011H
000030H
000031H
000032H
0000B4H
000100H
000101H
000102H
; ポート 1 方向レジスタ
;DTP /外部割込み許可レジスタ
;DTP /外部割込み要因レジスタ
; 要求レベル設定レジスタ
; 割込み制御レジスタ
; バッファアドレスポインタ下位
; バッファアドレスポインタ中位
; バッファアドレスポインタ上位
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
;SSP を設定する(S フラグ =1 なので)
MOV I:DDR1,#00000000B;P10/INT0 端子を " 入力 " に設定
MOV BAPL,#00H
; バッファアドレス(003000H)を設定
ISCS
IOAL
IOAH
DCTL
DCTH
ER0
STACK
MOV
MOV
152
BAPM,#30H
BAPH,#00H
第 7 章 割込み
MOV
ISCS,#00010001B
MOV
IOAL,#00H
MOV
MOV
MOV
IOAH,#00H
DCTL,#64H
DCTH,#00H
;I/O アドレス更新 , バイト転送 , バッファアドレスを更新しない
;I/O →バッファへ転送 , リソースで終了させる
; 転送元アドレス(ポート 0: 000000H)を設定
; 転送バイト数(100 バイト)を設定
I:ICR04,#00001000B;EI2OS チャネル 0, EI2OS 許可 ,
; 割込みレベル 0(優先度が最も高い)
MOV I:ELVR,#00000001B ;INT0 に H レベルを入力するよう要求
MOV I:EIRR,#00H
;INT0 割込み要因をクリア
MOV I:ENIR,#01H
;INT0 割込みを許可する
MOV ILM,#07H
;PS の ILM をレベル 7 に設定
OR
CCR,#40H
;PS の CCR の I フラグを設定して割込みを許可する
:
LOOP
BRA LOOP
; 無限ループ
;---------- 割込みプログラム ------------------------------------------WARI
CLRB ER0;DTP /外部割込み要求フラグをクリア
:
MOV
;EI2OS の終了要因をチェックし ,
ユーザ処理
:
; バッファのデータを処理し , EI2OS を再び設定
RETI
CODE
ENDS
;--------- ベクタ設定 ------------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FFACH ; 割込み #20(14H)のベクタを設定
VECT
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH ; リセットベクタを設定
START
00H
; シングルチップモードを設定
START
153
第 7 章 割込み
154
第8章
モード設定
MB90460/465 シリーズの動作モードについて説明
します。
8.1 モード設定
8.2 モード端子(MD2 ∼ MD0)
8.3 モードデータレジスタ
155
第 8 章 モード設定
8.1
モード設定
リセット入力時のモード端子レベルの設定と , モードレジスタにモードデータを設
定することにより動作モードを設定できます。
■ モード設定
モードの分類を図 8.1-1 に示します。
図 8.1-1 モードの分類
動作モード
○ RUN モード
○ フラッシュメモリ書込みモード
バスモード
○ シングルチップモード
■ 動作モード
動作モードは , モード端子(MD2 ∼ MD0)とモードデータレジスタのバスモード設定
ビット(M1, M0:bit7, bit6)で設定します。設定した動作モードによって起動します。
< 注意事項 >
MD2 ∼ MD0 端子に "011B" を , モードデータレジスタのバスモード設定ビット
(M1, M0:bit7, bit6)は "00B" を設定してください。
■ バスモード
MB90460/465 シリーズはシングルチップモードのみ設定できます。
詳細は「8.2 モード端子(MD2 ∼ MD0)
」と「8.3 モードデータレジスタ」をご参照
ください。
■ RUN モード
RUN モードは , CPU が動作しているモードです。RUN モードとしては , メインクロッ
クで動作するメインクロックモード , PLL クロックで動作する PLL クロックモードお
よび低消費電力モードがあります。詳細は , 「第 6 章 低消費電力モード」をご参照く
ださい。
156
第 8 章 モード設定
モード端子(MD2 ∼ MD0)
8.2
モード端子は , MD2 ∼ MD0 の 3 本の外部端子であり , リセットベクタとモードデー
タの取込み方法を設定します。
■ モード端子 (MD2 ∼ MD0)
モード端子によりモードを設定します。
フラッシュメモリ内蔵品の場合は , 内蔵フラッシュメモリにプログラムを書き込むた
めのフラッシュメモリ書込みモードも , これらの端子により設定します。
表 8.2-1 モード端子の設定
リセットベクタ
アクセス領域
外部データ
バス幅
備考
モードデータ
レジスタで設定
リセットシーケンス
以降はモードデータ
で制御
MD2
MD1
MD0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
フラッシュメモリシ
リアル書込みモード *
−
−
−
1
1
1
フラッシュメモリ
モード
−
−
パラレルライタ
使用時のモード
モード名
設定禁止
内部ベクタモード
内部メモリ
設定禁止
MD2 ∼ MD0:"0"=VSS, "1"=VCC としてください。
*: フラッシュメモリのシリアル書込みは , モード端子を設定するだけでは実行できません。ほかの箇所も設定
する必要があります。詳細は , 「第 24 章 フラッシュシリアル書込み接続例」をご参照ください。
157
第 8 章 モード設定
8.3
モードデータレジスタ
モードデータレジスタは , "FFFFDFH" 番地のメモリ上にあり , リセットシーケンス
後のメモリアクセス動作を設定します。
■ モードデータレジスタ
リセットシーケンス実行中に , "FFFFDFH" 番地のモードデータをモードデータレジス
タへ取込みます。モードデータレジスタのデータは , リセットシーケンス実行中に変更
できます。命令では変更できません。モードデータの設定は , リセットシーケンス後に
有効となります。
モードデータレジスタの構成を図 8.3-1 に示します。
図 8.3-1 モードデータレジスタの構成
モードデータ
レジスタ
bit
7
6
5
4
3
2
1
0
M1
M0
0
0
0
0
0
0
機能拡張ビット(予約領域)
バスモード設定ビット
■ バスモード設定ビット
リセットシーケンス終了後のバスモードを設定するビットです。
これらのビット機能を表 8.3-1 に示します。
表 8.3-1 バスモードのビット設定と機能
M1
M0
機能
0
0
シングルチップモード
0
1
1
0
1
1
(設定禁止)
MB90460/465 シリーズのアクセス領域と物理アドレスの関係を図 8.3-2 に示します。
158
第 8 章 モード設定
図 8.3-2 MB90460/465 シリーズのアクセス領域と物理アドレスの関係
FFFFFFH
ROM 領域
アドレス #1
FF0000H
00FFFFH
ROM 領域
(FFバンクの
イメージ)
004000H
アドレス #2
000100H
0000C0H
000000H
RAM レジスタ
領域
:アクセス禁止
I/O 領域
(注意事項)「アドレス#x」は品種ごとに決まるアドレスです。
製品番号
アドレス #1
アドレス #2
MB90462/467
FF0000H
000900H
MB90F462
FF0000H
000900H
MB90F462A
FF0000H
000900H
MB90F463A
FE0000H
000900H
MB90V460*
FF0000H
002100H
*:MB90V460 には , ROM は含まれていません。これらの領域は , 開
発ツールから ROM デコード領域として使用するものと仮定します。
■ モード端子とモードデータの関係
モード端子とモードデータの関係を表 8.3-2 に示します。
表 8.3-2 モード端子とモードデータの関係
モード端子の設定
モードデータレジスタの設定
バスモード
シングルチップモード
MD2
MD1
MD0
M1
M0
0
1
1
0
0
159
第 8 章 モード設定
160
第9章
I/O ポート
I/O ポートの機能と動作について説明します。
9.1 I/O ポートの概要
9.2 I/O ポートのレジスタ
9.3 ポート 0
9.4 ポート 1
9.5 ポート 2
9.6 ポート 3
9.7 ポート 4
9.8 ポート 5
9.9 ポート 6
9.10 I/O ポートのプログラム例
161
第 9 章 I/O ポート
9.1
I/O ポートの概要
I/O ポートは , 汎用入出力ポート(パラレル I/O ポート)として使用できます。
MB90460/465 シリーズには , 7 つのポート(51 本)があります。これらのポートは ,
リソース入出力端子としても使用します。
■ I/O ポートの機能
各 I/O ポートは , ポートデータレジスタ(PDR)のデータを端子へ出力したり , 入力信
号を端子から取込んだりします。各 I/O ポートは , ポート方向レジスタ(DDR)を使用
して , ビット単位で入出力端子のデータ入出力方向を指定できます。各ポートの機能と ,
この機能を使用するリソースについて以下に説明します。
• ポート 0: 汎用入出力ポート / リソース(マルチパルスジェネレータ , PWC0)
• ポート 1: 汎用入出力ポート / リソース(外部割込み , マルチパルスジェネレータ , 多
機能タイマ , 16 ビットリロードタイマ 0)
• ポート 2: 汎用入出力ポート / リソース(16 ビットリロードタイマ , PWC, インプッ
トキャプチャ)
• ポート 3: 汎用入出力ポート / リソース(多機能タイマ , PPG1, PPG0)
• ポート 4: 汎用入出力ポート / リソース(UART0, マルチパルスジェネレータ , PPG2)
• ポート 5: 汎用入出力ポート / リソース(A/D)
• ポート 6: 汎用入出力ポート / リソース(UART1, 外部割込み)
各ポートの機能の概要を表 9.1-1 に示します。
表 9.1-1 各ポートの機能
ポート
ポート 0
ポート 1
ポート 2
ポート 3
端子
P00/OPT0 ∼
P07/PWO0
P10/INT0/
DTTI0 ∼
P17/FRCK
入力形式
CMOS
CMOS プル
アップ抵抗
を設定可能
CMOS
(ヒステ
リシス)
P20/TIN1 ∼
P27/IN3
P30/RTO0 ∼
P37/PPG0
CMOS
CMOS
P40/SIN0 ∼
ポート 4
(ヒステ
P46/PPG2
リシス)
ポート 5
出力形式
P50/AN0 ∼ アナログ
/CMOS
P57/AN7
CMOS
P60/SIN1 ∼
ポート 6
(ヒステ
P63/INT7
リシス)
CMOS
機能
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
汎用入出力
ポート
P07
P06
P05
P04
P03
P02
P01
P00
リソース
PWO0* PWI0* OPT5* OPT4* OPT3* OPT2* OPT1* OPT0*
汎用入出力
ポート
P17
P16
P15
P14
P13
P12
P11
P10
リソース
FRCK
INT6/
TO0
INT5/
TIN0
INT4
INT3
INT2/
DTTI1
*
INT1
INT0/
DTTI0
汎用入出力
ポート
P27
P26
P25
P24
P23
P22
P21
P20
リソース
IN3
IN2
IN1
IN0
PWO1
PWI1
TO1
TIN1
汎用入出力
ポート
P37
P36
P35
P34
P33
P32
P31
P30
RTO4
RTO3
RTO2
RTO1
RTO0
リソース
PPG0
汎用入出力
ポート
−
P46
P45
P44
P43
P42
P41
P40
リソース
−
PPG2
SNI2*
SNI1*
SNI0*
SCK0
SOT0
SIN0
汎用入出力
ポート
P57
P56
P55
P54
P53
P52
P51
P50
アナログ入力
AN7
AN6
AN5
AN4
AN3
AN2
AN1
AN0
汎用入出力
ポート
−
−
−
−
P63
P62
P61
P60
リソース
−
−
−
−
INT7
SCK1
SOT1
SIN1
*:MB90467 では , リソースが搭載されていないため , 削除となります。
162
PPG1* RTO5
第 9 章 I/O ポート
ポート 5 は , アナログ入力端子と兼用しています。ポート 5 を汎用ポートとして使用す
るためには , アナログデータ入力許可レジスタ(ADER)の対応ビットには必ず "0" を
設定してください。リセットにより , ADER レジスタの各ビットには "1" が設定されま
す。
163
第 9 章 I/O ポート
9.2
I/O ポートのレジスタ
I/O ポートの設定に関係するレジスタの一覧を示します。
■ I/O ポート関連のレジスタ
各ポートに対応するレジスタの一覧を表 9.2-1 に示します。
表 9.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
-XXXXXXXB
ポート 5 データレジスタ(PDR5)
R/W
000005H
XXXXXXXXB
ポート 6 データレジスタ(PDR6)
R/W
000006H
----XXXXB
ポート 0 データ方向レジスタ(DDR0)
R/W
000010H
00000000B
ポート 1 データ方向レジスタ(DDR1)
R/W
000011H
00000000B
ポート 2 データ方向レジスタ(DDR2)
R/W
000012H
00000000B
ポート 3 データ方向レジスタ(DDR3)
R/W
000013H
00000000B
ポート 4 データ方向レジスタ(DDR4)
R/W
000014H
-0000000B
ポート 5 データ方向レジスタ(DDR5)
R/W
000015H
00000000B
ポート 6 データ方向レジスタ(DDR6)
R/W
000016H
----0000B
アナログデータ入力許可レジスタ(ADER)
R/W
000017H
11111111B
ポート 0 プルアップ抵抗設定レジスタ(RDR0)
R/W
00001CH
00000000B
ポート 1 プルアップ抵抗設定レジスタ(RDR1)
R/W
00001DH
00000000B
R/W : リード / ライト
X : 不定
− : 未使用
164
第 9 章 I/O ポート
9.3
ポート 0
ポート 0 は汎用入出力ポートですが , リソース入出力と兼用しています。ポートの
端子は , ビット単位でポート機能とリソース機能を切り換えることができます。こ
こでは , 汎用入出力ポート機能を中心に説明します。また , ポート 0 の構成 , 端子一
覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて説明します。
■ ポート 0 の構成
ポート 0 は , 以下から構成されています。
• 汎用入出力ポート , マルチパルスジェネレータ出力 , PWC 入出力(P00/OPT0 ∼ P07/
PWO0)
• ポート 0 データレジスタ(PDR0)
• ポート 0 方向レジスタ(DDR0)
• ポート 0 プルアップ抵抗設定レジスタ(RDR0)
■ ポート 0 の端子
ポート 0 は , リソースの入出力端子としても使用します。したがって , これらの端子は ,
リソース入出力端子として使用した場合 , 汎用入出力ポートとしては使用できません。
ポート 0 の端子一覧を表 9.3-1 に示します。
表 9.3-1 ポート 0 の端子
入出力形式
ポート
端子
ポート機能
リソース機能
入力
ポート 0
P00/OPT0*
P00
OPT0*
マルチパルスジェネ
レータ出力
P01/OPT1*
P01
OPT1*
マルチパルスジェネ
レータ出力
P02/OPT2*
P02
OPT2*
マルチパルスジェネ
レータ出力
OPT3*
マルチパルスジェネ
レータ出力
P03/OPT3*
P03
P04/OPT4*
P04
OPT4*
マルチパルスジェネ
レータ出力
P05/OPT5*
P05
OPT5*
マルチパルスジェネ
レータ出力
P06/PWI0*
P06
PWI0*
PWC0 入力
P07/PWO0*
P07
PWO0*
PWC0 出力
汎用入出力
出力
回路の
種類
D
CMOS
CMOS
E
*:MB90467 では , リソースが搭載されていないため , 削除となります。
回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。
165
第 9 章 I/O ポート
■ ポート 0 の端子のブロックダイヤグラム
ポート 0 の端子のブロックダイヤグラムを図 9.3-1 に示します。
図 9.3-1 ポート 0 の端子のブロックダイヤグラム
RDR
リソース出力
直接リソース入力
リソース出力許可信号
ポートデータレジスタ(PDR)
プルアップ
抵抗
約50kΩ
内部データバス
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
リソース出力許可ビットを " 許可 " にすると , ポートは , DDR0 レジスタの値にかかわ
らずリソースの出力端子として機能します。
■ ポート 0 のレジスタ
ポート 0 のレジスタには , PDR0, DDR0, RDR0 があります。各レジスタを構成してい
るビットは , ポート 0 の端子に 1 対 1 で対応しています。ポート 0 の端子と , これらの
端子に対応しているレジスタビットを表 9.3-2 に示します。
表 9.3-2 ポート 0 の端子と対応レジスタビット
ポート
レジスタビットと対応ポート端子
PDR0, DDR0, RDR0
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P07
P06
P05
P04
P03
P02
P01
P00
ポート 0
回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。
166
第 9 章 I/O ポート
9.3.1
ポート 0 のレジスタ(PDR0, DDR0, RDR0)
ポート 0 のレジスタについて説明します。
■ ポート 0 のレジスタの機能
● ポート 0 データレジスタ(PDR0)
PDR0 レジスタは , ポート 0 の各端子の状態を示します。
● ポート 0 方向レジスタ(DDR0)
DDR0 レジスタは , ポート 0 の各端子(ビット)のデータ入出力方向を指定します。
DDR0 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端
子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する
ポート(端子)は入力ポートとして設定されます。
● ポート 0 プルアップ抵抗設定レジスタ(RDR0)
RDR0 レジスタは , ポート 0 の各端子(ビット)に対するプルアップ抵抗を設定しま
す。RDR0 レジスタのいずれかのビットが "1" の場合は , プルアップ抵抗がそのビット
に対応するポート(端子)に対して有効になります。いずれかのビットが "0" の場合
は , そのビットに対応するプルアップ抵抗は無効になります。
• リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ
トが " 許可 " に設定されていると , ポートは DDR0 レジスタの値とは無関係にリソー
スの出力端子として機能します。
• リソースの入力と兼用している端子をリソースの入力として使用する場合は , 各入
力端子に対応する DDR0 レジスタのビットに "0" を設定してポートを入力モードに
してください。
ポート 0 のレジスタの機能を表 9.3-3 に示します。
167
第 9 章 I/O ポート
表 9.3-3 ポート 0 のレジスタの機能
レジスタ
データ
読出し時
書込み時
0
端子は
low レベル
出力ラッチへ "0" がロードさ
れます。端子が出力ポートと
して機能すると , 端子には low
レベルが設定されます
1
端子は
high レベル
出力ラッチへ "1" がロードさ
れます。端子が出力ポートと
して機能すると , 端子には
high レベルが設定されます
0
方向ラッチ
は "0"
出力バッファが " オフ " にな
り , ポートが入力モードにな
ります
1
方向ラッチ
は "1"
出力バッファが " オン " にな
り , ポートが出力モードにな
ります
0
設定ラッチ
は "0"
入力モードにおいてプルアッ
プ抵抗が遮断され , ポートは
Hi-Z 状態になります
設定ラッチ
は "1"
入力モードにおいてプルアッ
プ抵抗が設定され , ポートは
high レベルを保持します
ポート 0
データ
レジスタ
(PDR0)
ポート 0
方向
レジスタ
(DDR0)
ポート 0
プルアップ
抵抗設定
レジスタ
(RDR0)
1
R/W : リード / ライト
X : 不定
168
リード /
ライト
アドレス
初期値
R/W
000000H
XXXXXXXXB
R/W
000010H
00000000B
R/W
00001CH
00000000B
第 9 章 I/O ポート
9.3.2
ポート 0 の動作
ポート 0 の動作について説明します。
■ ポート 0 の動作
● 出力モード時のポート動作
• DDR0 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー
トの端子は出力モードになります。
• 出力モード時において PDR0 レジスタに書き込まれたデータは , PDR の出力ラッチ
が保持し , そのままの端子へ出力されます。
• PDR0 レジスタを読み出すと PDR の出力ラッチの状態を読み出すことができます。
リードモディファイライト命令を PDR0 レジスタに対して使用すると , このレジスタの
ターゲットビットには書き込んだ値が設定されます。DDR0 レジスタによって " 出力 "
として指定されているビットは影響を受けませんが , " 入力 " として指定されている
ビットの場合は , 端子からの入力値は出力ラッチに書き込まれ , そのまま出力されま
す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー
タをPDR0レジスタへ書き込み, 次にDDR0レジスタを出力モードに設定してください。
● 入力モード時のポート動作
• DDR0 レジスタのビットに "0" を設定すると , そのビットに対応する端子は入力モー
ドになります。
• 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に
なります。
• ただし , RDR0 レジスタのいずれかのビットに "1" を設定してプルアップ抵抗を有効
にすると , 端子は high レベルを保持します。
• 入力モード時において PDR0 レジスタに書き込まれたデータは , PDR の出力ラッチ
が保持しますが , 端子には出力されません。
• PDR0 レジスタを読み出すと端子のレベル("0" または "1")を読み出すことができ
ます。
● リソース出力としてのポート動作
• リソース出力許可ビットを " 許可 " にすると , ポートはリソース出力として使用で
きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が
優先されます。すなわち , たとえ DDR0 レジスタのいずれかのビットが "0" であっ
ても , リソース出力が " 許可 " になっている場合は , そのビットに対応する端子はリ
ソース出力として使用されます。しかしリソース出力が " 許可 " であっても端子の
値を読み出すことはできるので , リソースの出力値を読み出すことができます。
● リソース入力としてのポート動作
• ポートをリソース入力として使用する場合 , 端子の値がリソースの入力値となりま
すので , DDR0 レジスタに "0" を設定しポートを入力モードにしてください。
169
第 9 章 I/O ポート
● リセット後のポート動作
• リセットにより , DDR0 レジスタは "0" に初期化されます。その結果 , 出力バッファ
が " オフ " になり(入出力モードは " 入力 " に変化する), プルアップ抵抗が遮断さ
れ , 端子はハイインピーダンス状態になります。
• PDR0 レジスタは , リセットでも初期化されません。したがって , ポートを出力モー
ドで使用する場合は , 出力データを PDR0 レジスタに設定した後 , 出力モードに
DDR0 レジスタを設定しなければなりません。
● ストップモードまたはタイムベースタイマモード時のポート動作
ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力
モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は ,
端子はハイインピーダンス状態になります。これは , 出力バッファが DDR0 レジスタ
の値とは無関係に " オフ " にさせられるからです。
また , プルアップ抵抗が " 有効 " のときは , SPL ビットに "1" を設定した場合 , 端子は
high レベルを保持し , ハイインピーダンス状態にはならないので注意してください。
ポート 0 の端子状態を表 9.3-4 に示します。
表 9.3-4 ポート 0 の端子状態
端子
通常動作
スリープ
モード
P00/OPT0
∼ P07/
PWO0
汎用入出
力ポート
汎用入出
力ポート
ストップモードまた
はタイムベースタイ
マモード(SPL=0)
ストップモードまた
はタイムベースタイ
マモード
(SPL=1, RDR=0)
ストップモードまた
はタイムベースタイ
マモード
(SPL=1, RDR=1)
汎用入出力ポート
入力は遮断され , 出力
は Hi-Z 状態になる
入力は遮断され , H レ
ベルに保持される
SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット
Hi-Z: ハイインピーダンス
170
第 9 章 I/O ポート
9.4
ポート 1
ポート 1 は汎用入出力ポートですが , リソース入出力と兼用しています。ポートの
端子は , ビット単位でポート機能とリソース機能を切り換えることができます。こ
こでは , 汎用入出力ポート機能を中心に説明します。また , ポート 1 の構成 , 端子一
覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて説明します。
■ ポート 1 の構成
ポート 1 は , 以下から構成されています。
• 汎用入出力ポート , 外部割込み入力 , 16 ビットリロードタイマ入出力 , フリーラン
タイマ外部クロック入力(P10/INT0/DTT0 ∼ P17/FRCK)
• ポート 1 データレジスタ(PDR1)
• ポート 1 方向レジスタ(DDR1)
• ポート 1 プルアップ抵抗設定レジスタ(RDR1)
■ ポート 1 の端子
ポート 1 は , リソースの入力端子としても使用します。したがってこれらの端子は , リ
ソースの入力端子として使用した場合 , 汎用入出力ポートとしては使用できません。
ポート 1 の端子一覧を表 9.4-1 に示します。
表 9.4-1 ポート 1 の端子
入出力形式
ポート
端子
ポート機能
リソース機能
P10/INT0/
DTTI0
P10
INT0/
DTTI0
外部割込み入力 , 多機能
タイマ入力
P11/INT1
P11
INT1
外部割込み入力
P12/INT2/
DTTI1*
P12
INT2/
DTTI1*
外部割込み入力 , マル
チパルスジェネレータ
入力
P13/INT3
P13
INT3
P14/INT4
P14
INT4
P15/INT5/
TIN0
P15
INT5/
TIN0
外部割込み入力 , リロー
ドタイマクロック入力
P16/INT6/
TO0
P16
INT6/
TO0
外部割込み入力 , リロー
ドタイマイベント出力
P17/FRCK
P17
FRCK
フリーランタイマクロッ
ク入力
ポート 1
汎用入出力
外部割込み入力
入力
出力
CMOS
(ヒス
テリ
シス)
CMOS
回路の
種類
C
*:MB90467 では , リソースが搭載されていないため , 削除となります。
回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。
171
第 9 章 I/O ポート
■ ポート 1 の端子のブロックダイヤグラム
ポート 1 の端子のブロックダイヤグラムを図 9.4-1 に示します。
図 9.4-1 ポート 1 の端子のブロックダイヤグラム
RDR
リソース入力
リソース出力
リソース出力許可信号
ポートデータレジスタ(PDR)
プルアップ
抵抗
約50kΩ
内部データバス
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
リソース出力許可ビットを " 許可 " にすると , ポートは , DDR1 レジスタの値にかかわ
らずリソースの出力端子として機能します。
■ ポート 1 のレジスタ
ポート 1 のレジスタには , PDR1, DDR1, RDR1 があります。各レジスタを構成してい
るビットは , ポート 1 の端子に 1 対 1 で対応しています。ポート 1 の端子と , これらの
端子に対応しているレジスタビットを表 9.4-2 に示します。
表 9.4-2 ポート 1 の端子と対応レジスタビット
ポート
レジスタビットと対応ポート端子
PDR1, DDR1, RDR1
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P17
P16
P15
P14
P13
P12
P11
P10
ポート 1
172
第 9 章 I/O ポート
9.4.1
ポート 1 のレジスタ(PDR1, DDR1, RDR1)
ポート 1 のレジスタについて説明します。
■ ポート 1 のレジスタの機能
● ポート 1 データレジスタ(PDR1)
PDR1 レジスタは , ポート 1 の各端子の状態を示します。
● ポート 1 方向レジスタ(DDR1)
DDR1 レジスタは , ポート 1 の各端子(ビット)のデータ入出力方向を指定します。
DDR1 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端
子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する
ポート(端子)は入力ポートとして設定されます。
● ポート 1 プルアップ抵抗設定レジスタ(RDR1)
RDR1 レジスタは , ポート 1 の各端子(ビット)に対するプルアップ抵抗を設定しま
す。RDR1 レジスタのいずれかのビットが "1" の場合は , プルアップ抵抗はそのビット
に対応するポート(端子)に対して有効になります。いずれかのビットが "0" の場合
は , そのビットに対応するプルアップ抵抗は無効になります。
• リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ
トが " 許可 " に設定されていると , ポートは DDR1 レジスタの値とは無関係にリソー
スの出力端子として機能します。
• リソースの入力と兼用している端子をリソースの入力として使用する場合は , 各入
力端子に対応する DDR1 レジスタのビットに "0" を設定してポートを入力モードに
してください。
ポート 1 のレジスタの機能を表 9.4-3 に示します。
173
第 9 章 I/O ポート
表 9.4-3 ポート 1 のレジスタの機能
レジスタ
データ
読出し時
書込み時
0
端子は
low レベル
出力ラッチへ "0" がロードさ
れます。端子が出力ポートと
して機能すると , 端子には low
レベルが設定されます
1
端子は
high レベル
出力ラッチへ "1" がロードさ
れます。端子が出力ポートと
して機能すると , 端子には
high レベルが設定されます
0
方向ラッチ
は "0"
出力バッファが " オフ " にな
り , ポートが入力モードにな
ります
1
方向ラッチ
は "1"
出力バッファが " オン " にな
り , ポートが出力モードにな
ります
0
設定ラッチ
は "0"
入力モードにおいてプルアッ
プ抵抗が遮断され , ポートは
Hi-Z 状態になります
設定ラッチ
は "1"
入力モードにおいてプルアッ
プ抵抗が設定され , ポートは
high レベルを保持します
ポート 1
データ
レジスタ
(PDR1)
ポート 1
方向
レジスタ
(DDR1)
ポート 1
プルアップ
抵抗設定
レジスタ
(RDR1)
1
R/W : リード / ライト
X
: 不定
174
リード /
ライト
アドレス
初期値
R/W
000001H
XXXXXXXXB
R/W
000011H
00000000B
R/W
00001DH
00000000B
第 9 章 I/O ポート
9.4.2
ポート 1 の動作
ポート 1 の動作について説明します。
■ ポート 1 の動作
● 出力モード時のポート動作
• DDR1 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー
トの端子は出力モードになります。
• 出力モード時において PDR1 レジスタに書き込まれたデータは , PDR の出力ラッチ
が保持し , そのまま端子へ出力されます。
• PDR1 レジスタを読み出すと PDR の出力ラッチの状態を読み出すことができます。
リードモディファイライト命令を PDR1 レジスタに対して使用すると , このレジスタの
ターゲットビットには書き込んだ値が設定されます。DDR レジスタによって " 出力 "
として指定されているビットは影響を受けませんが , " 入力 " として指定されている
ビットの場合は , 端子からの入力値は出力ラッチへ書き込まれ , そのまま出力されま
す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー
タをPDR1レジスタに書き込み, 次にDDR1レジスタを出力モードに設定してください。
● 入力モード時のポート動作
• DDR1 レジスタのいずれかのビットに "0" を設定すると , そのビットに対応する端子
は入力モードになります。
• 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に
なります。
• ただし , RDR1 レジスタのいずれかのビットに "1" を設定してプルアップ抵抗を " 有
効 " にすると , 端子は high レベルを保持します。
• 入力モード時において PDR1 レジスタに書き込まれたデータは , PDR の出力ラッチ
が保持しますが , 端子へは出力されません。
• PDR1 レジスタを読み出すとポートの端子レベル("0" または "1")を読み出すこと
ができます。
● リソース出力としてのポート動作
• リソース出力許可ビットを " 許可 " にすると , ポートはリソース出力として使用で
きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が
優先されます。すなわち , たとえ DDR1 レジスタのいずれかのビットが "0" であっ
ても , リソース出力が " 許可 " になっている場合は , そのビットに対応する端子はリ
ソース出力として使用されます。しかしリソース出力が " 許可 " であっても端子の
値を読み出すことはできるので , リソースの出力値を読み出すことができます。
● リソース入力としてのポート動作
• ポートをリソース入力として使用する場合 , 端子の値がリソースの入力値となりま
すので , DDR1 レジスタに "0" を設定しポートを入力モードにしてください。
175
第 9 章 I/O ポート
● リセット後のポート動作
• リセットにより , DDR1 レジスタは "0" に初期化されます。その結果 , 出力バッファ
が " オフ " になり(入出力モードは " 入力 " に変化する), プルアップ抵抗が遮断さ
れ , 端子はハイインピーダンス状態になります。
• PDR1 レジスタは , リセットでも初期化されません。したがって , ポートを出力モー
ド時に使用する場合は , 出力データを PDR1 レジスタに設定した後 , 出力モードに
DDR1 レジスタを設定しなければなりません。
● ストップモードまたはタイムベースタイマモード時のポート動作
ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力
モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は ,
端子はハイインピーダンス状態になります。これは , 出力バッファが DDR1 レジスタ
の値とは無関係に " オフ " にさせられるからです。
また , プルアップ抵抗が " 有効 " のときは , たとえ SPL ビットに "1" を設定した場合 ,
端子は high レベルを保持し , ハイインピーダンス状態にはならないので注意してくだ
さい。ポート 1 の端子状態を表 9.4-4 に示します。
表 9.4-4 ポート 1 の端子状態
端子
通常動作
スリープ
モード
P10/
INT0/
DTTI0 ∼
P17/
FRCK
汎用入出
力ポート
汎用入出
力ポート
ストップモード
またはタイムベース
タイマモード
(SPL=0)
ストップモード
またはタイムベース
タイマモード
(SPL=1, RDR=0)
ストップモード
またはタイムベース
タイマモード
(SPL=1, RDR=1)
汎用入出力ポート
入力は有効になり *,
出力は Hi-Z 状態にな
ります
入力は遮断され , H レ
ベルを保持します
SPL : 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット
Hi-Z : ハイインピーダンス
*
176
: 入力は , P10/INT0 ∼ P16/INT6 を外部割込み端子として構成した場合のみ有効になり , それ以
外の場合は遮断されます。
第 9 章 I/O ポート
9.5
ポート 2
ポート 2 は汎用入出力ポートですが , リソース入出力と兼用しています。ポートの
端子は , ビット単位でポート機能とリソース機能を切り換えることができます。こ
こでは , 汎用入出力ポート機能を中心に説明します。また , ポート 2 の構成 , 端子一
覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて説明します。
■ ポート 2 の構成
ポート 2 は , 以下から構成されています。
• 汎用入出力ポート , 16 ビットリロードタイマ入出力 , PWC 入出力 , インプットキャ
プチャ入力(P20/TIN1 ∼ P27/IN3)
• ポート 2 データレジスタ(PDR2)
• ポート 2 方向レジスタ(DDR2)
■ ポート 2 の端子
ポート 2 は , リソースの入出力端子としても使用します。したがってこれらの端子は ,
リソースの入出力端子として使用した場合 , 汎用入出力ポートとしては使用できませ
ん。ポート 2 の端子一覧を表 9.5-1 に示します。
表 9.5-1 ポート 2 の端子
入出力形式
ポート
ポート 2
端子
ポート機能
リソース機能
P20/TIN1
P20
TIN1
16 ビットリロードタイマ
1 イベント入力
P21/TO1
P21
TO1
16 ビットリロードタイマ
1 タイマ出力
P22/PWI1
P22
PWI1
PWC1 入力
P23/PWO1
P23
PWO1
PWC1 出力
P24/IN0
P24
IN0
インプットキャプチャ
チャネル 0 入力
P25/IN1
P25
IN1
インプットキャプチャ
チャネル 1 入力
P26/IN2
P26
IN2
インプットキャプチャ
チャネル 2 入力
P27/IN3
P27
IN3
インプットキャプチャ
チャネル 3 入力
汎用入出力
入力
出力
CMOS
(ヒス
テリ
シス)
CMOS
回路の
種類
F
回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。
177
第 9 章 I/O ポート
■ ポート 2 の端子のブロックダイヤグラム
ポート 2 の端子のブロックダイヤグラムを図 9.5-1 に示します。
図 9.5-1 ポート 2 の端子のブロックダイヤグラム
リソース出力
リソース入力
リソース出力許可信号
内部データバス
ポートデータレジスタ(PDR)
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
リソース出力許可ビットを " 許可 " にすると , ポートは , DDR2 レジスタの値にかかわ
らずリソースの出力端子として機能します。
■ ポート 2 のレジスタ
ポート 2 のレジスタには , PDR2 と DDR2 があります。各レジスタを構成しているビッ
トは , ポート 2 の端子に 1 対 1 で対応しています。ポート 2 の端子と , これらの端子に
対応しているレジスタビットを表 9.5-2 に示します。
表 9.5-2 ポート 2 の端子と対応レジスタビット
ポート
レジスタビットと対応ポート端子
PDR2, DDR2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P27
P26
P25
P24
P23
P22
P21
P20
ポート 2
178
第 9 章 I/O ポート
9.5.1
ポート 2 のレジスタ(PDR2, DDR2)
ポート 2 のレジスタについて説明します。
■ ポート 2 のレジスタの機能
● ポート 2 データレジスタ(PDR2)
PDR2 レジスタは , ポート 2 の各端子の状態を示します。
● ポート 2 方向レジスタ(DDR2)
DDR2 レジスタは , ポート 2 の各端子(ビット)のデータ入出力方向を指定します。
DDR2 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端
子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する
ポート(端子)は入力ポートとして設定されます。
• リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ
トが " 許可 " に設定されていると , ポートは DDR2 レジスタの値とは無関係にリソー
スの出力端子として機能します。
• リソースの入力と兼用している端子をリソースの入力として使用する場合は , 各入
力端子に対応する DDR2 レジスタのビットに "0" を設定してポートを入力モードに
してください。
ポート 2 のレジスタの機能を表 9.5-3 に示します。
表 9.5-3 ポート 2 のレジスタの機能
レジスタ
データ
読出し時
書込み時
0
端子は
low レベル
出力ラッチへ "0" がロードさ
れます。端子が出力ポートと
して機能すると , 端子には low
レベルが設定されます
1
端子は
high レベル
出力ラッチへ "1" がロードさ
れます。端子が出力ポートと
して機能すると , 端子には
high レベルが設定されます
0
方向ラッチ
は "0"
出力バッファが " オフ " にな
り , ポートが入力モードにな
ります
方向ラッチ
は "1"
出力バッファが " オン " にな
り , ポートが出力モードにな
ります
ポート 2
データ
レジスタ
(PDR2)
ポート 2
方向
レジスタ
(DDR2)
1
リード /
ライト
アドレス
初期値
R/W
000002H
XXXXXXXXB
R/W
000012H
00000000B
R/W : リード / ライト
X : 不定
179
第 9 章 I/O ポート
9.5.2
ポート 2 の動作
ポート 2 の動作について説明します。
■ ポート 2 の動作
● 出力モード時のポート動作
• DDR2 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー
トの端子は出力モードになります。
• 出力モード時において PDR2 レジスタに書き込まれたデータは , PDR の出力ラッチ
が保持し , 端子へ出力されます。
• PDR2 レジスタを読み出すと PDR の出力ラッチの状態を読み出すことができます。
リードモディファイライト命令を PDR2 レジスタに対して使用すると , このレジスタの
ターゲットビットには書き込んだ値が設定されます。DDR2 レジスタによって " 出力 "
として指定されているビットは影響を受けませんが , " 入力 " として指定されている
ビットの場合は , 端子からの入力値は出力ラッチに書き込まれ , そのまま出力されま
す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー
タをPDR2レジスタに書き込み, 次にDDR2レジスタを出力モードに設定してください。
● 入力モード時のポート動作
• DDR2 レジスタのいずれかのビットに "0" を設定すると , そのビットに対応する端子
は入力モードになります。
• 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に
なります。
• 入力モード時において PDR2 レジスタに書き込まれたデータは , PDR の出力ラッチ
が保持しますが , 端子へは出力されません。
• PDR2 レジスタを読み出すと端子のレベル("0" または "1")を読み出すことができ
ます。
● リソース出力としてのポート動作
• リソース出力許可ビットを " 許可 " にすると , ポートはリソース出力として使用で
きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が
優先されます。すなわち , たとえ DDR0 レジスタのいずれかのビットが "0" であっ
ても , リソース出力が " 許可 " になっている場合は , そのビットに対応する端子はリ
ソース出力として使用されます。しかしリソース出力が " 許可 " であっても端子の
値を読み出すことはできるので , リソースの出力値を読み出すことができます。
● リソース入力としてのポート動作
• ポートをリソース入力として使用する場合 , 端子の値がリソースの入力値となりま
すので , DDR2 レジスタに "0" を設定しポートを入力モードにしてください。
180
第 9 章 I/O ポート
● リセット後のポート動作
• リセットにより , DDR2 レジスタは "0" に初期化されます。その結果 , 出力バッファ
が " オフ " になり(入出力モードは " 入力 " に変化する), 端子はハイインピーダン
ス状態になります。
• PDR2 レジスタは , リセットでも初期化されません。したがって , ポートを出力モー
ドで使用する場合は , 出力データを PDR2 レジスタに設定した後 , 出力モードに
DDR2 レジスタを設定しなければなりません。
● ストップモードまたはタイムベースタイマモード時のポート動作
ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力
モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は ,
端子はハイインピーダンス状態になります。これは , 出力バッファが DDR2 レジスタ
の値とは無関係に " オフ " にさせられるからです。ポート 2 の端子状態を表 9.5-4 に示
します。
表 9.5-4 ポート 2 の端子状態
端子
通常動作
スリープ
モード
ストップモードまたはタ
イムベースタイマモード
(SPL=0)
ストップモードまたはタ
イムベースタイマモード
(SPL=1)
P20/TIN1
∼
P27/IN3
汎用入出
力ポート
汎用入出
力ポート
汎用入出力ポート
入力は遮断され , 出力は
Hi-Z 状態になります
SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット
Hi-Z: ハイインピーダンス
181
第 9 章 I/O ポート
9.6
ポート 3
ポート 3 は汎用入出力ポートですが , リソース出力と兼用しています。ポート端子
は , ビット単位でポート機能とリソース機能を切り換えることができます。ここで
は , 汎用入出力ポート機能を中心に説明します。また , ポート 3 の構成 , 端子一覧 ,
端子のブロックダイヤグラムおよび対応するレジスタについて説明します。
■ ポート 3 の構成
ポート 3 は , 以下から構成されています。
• 汎用入出力ポート , 多機能タイマ出力 , PPG 出力(P30/RTO0 ∼ P37/PPG0)
• ポート 3 データレジスタ(PDR3)
• ポート 3 方向レジスタ(DDR3)
■ ポート 3 の端子
ポート 3 は , リソースの出力端子としても使用します。したがってこれらの端子は , リ
ソースの入出力端子として使用した場合 , 汎用入出力ポートとしては使用できません。
ポート 3 の端子一覧を表 9.6-1 に示します。
表 9.6-1 ポート 3 の端子
入出力形式
ポート
端子
ポート機能
リソース機能
入力
P30/RTO0
P30
RTO0
多機能タイマ出力 0
P31/RTO1
P31
RTO1
多機能タイマ出力 1
P32/RTO2
P32
RTO2
多機能タイマ出力 2
P33/RTO3
P33
RTO3
多機能タイマ出力 3
P34/RTO4
P34
RTO4
多機能タイマ出力 4
P35/RTO5
P35
RTO5
多機能タイマ出力 5
P36/PPG1*
P36
PPG1*
PPG1 出力
P37/PPG0
P37
PPG0
PPG0 出力
出力
回路の
種類
G
ポート 3
CMOS
汎用入出力
CMOS
H
*:MB90467 では , リソースが搭載されていないため , 削除となります。
回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。
182
第 9 章 I/O ポート
■ ポート 3 の端子のブロックダイヤグラム
ポート 3 の端子のブロックダイヤグラムを図 9.6-1 に示します。
図 9.6-1 ポート 3 の端子のブロックダイヤグラム
リソース出力
リソース出力許可信号
ポートデータレジスタ(PDR)
内部データバス
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
リソース出力許可ビットを " 許可 " にすると , ポートは , DDR3 レジスタの値にかかわ
らずリソースの出力端子として機能します。
■ ポート 3 のレジスタ
ポート 3 のレジスタには , PDR3 と DDR3 があります。各レジスタを構成しているビッ
トは , ポート 3 の端子に 1 対 1 で対応しています。ポート 3 の端子と , これらの端子に
対応しているレジスタビットを表 9.6-2 に示します。
表 9.6-2 ポート 3 の端子と対応レジスタビット
ポート
レジスタビットと対応ポート端子
PDR3, DDR3
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P37
P36
P35
P34
P33
P32
P31
P30
ポート 3
183
第 9 章 I/O ポート
9.6.1
ポート 3 のレジスタ(PDR3, DDR3)
ポート 3 のレジスタについて説明します。
■ ポート 3 のレジスタの機能
● ポート 3 データレジスタ(PDR3)
PDR3 レジスタは , ポート 3 の各端子の状態を示します。
● ポート 3 方向レジスタ(DDR3)
DDR3 レジスタは , ポート 3 の各端子(ビット)のデータ入出力方向を指定します。
DDR3 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端
子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する
ポート(端子)は入力ポートとして設定されます。
• リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ
トが " 許可 " に設定されていると , ポートは DDR3 レジスタの値とは無関係にリソー
スの出力端子として機能します。
ポート 3 のレジスタの機能を表 9.6-3 に示します。
表 9.6-3 ポートの 3 レジスタの機能
レジスタ
データ
読出し時
書込み時
0
端子は
low レベル
出力ラッチへ "0" がロードさ
れます。端子が出力ポートと
して機能すると , 端子には low
レベルが設定されます
1
端子は
high レベル
出力ラッチへ "1" がロードさ
れます。端子が出力ポートと
して機能すると , 端子には
high レベルが設定されます
0
方向ラッチ
は "0"
出力バッファが " オフ " にな
り , ポートが入力モードにな
ります
方向ラッチ
は "1"
出力バッファが " オン " にな
り , ポートが出力モードにな
ります
ポート 3
データ
レジスタ
(PDR3)
ポート 3
方向
レジスタ
(DDR3)
1
R/W : リード / ライト
X : 不定
184
リード /
ライト
アドレス
初期値
R/W
000003H
XXXXXXXXB
R/W
000013H
00000000B
第 9 章 I/O ポート
9.6.2
ポート 3 の動作
ポート 3 の動作について説明します。
■ ポート 3 の動作
● 出力モード時のポート動作
• DDR3 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー
トの端子は出力モードになります。
• 出力モード時において PDR3 レジスタに書き込まれたデータは , PDR の出力ラッチ
が保持し , 端子へ出力されます。
• PDR3 レジスタを読み出すと PDR の出力ラッチの状態を読み出すことができます。
リードモディファイライト命令を PDR3 レジスタに対して使用すると , このレジスタの
ターゲットビットには書き込んだ値が設定されます。DDR3 レジスタによって " 出力 "
として指定されているビットは影響を受けませんが , " 入力 " として指定されている
ビットの場合は , 端子からの入力値は出力ラッチに書き込まれ , そのまま出力されま
す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー
タをPDR3レジスタへ書き込み, 次にDDR3レジスタを出力モードに設定してください。
● 入力モード時のポート動作
• DDR3 レジスタのいずれかのビットに "0" を設定すると , そのビットに対応する端子
は入力モードになります。
• 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に
なります。
• 入力モード時において PDR3 レジスタに書き込まれたデータは , PDR の出力ラッチ
が保持しますが , 端子へは出力されません。
• PDR3 レジスタを読み出すと端子のレベル("0" または "1")を読み出すことができ
ます。
● リソース出力としてのポート動作
• リソース出力許可ビットを " 許可 " にすると , ポートをリソース出力として使用で
きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が
優先されます。すなわち , たとえ DDR3 レジスタのビットが "0" であっても , リソー
ス出力が " 許可 " になっている場合は , そのビットに対応する端子はリソース出力
として使用されます。しかしリソース出力が " 許可 " であっても端子の値を読み出
すことはできますので , リソースの出力値を読み出すことができます。
● リセット後のポート動作
• リセットにより , DDR3 レジスタは "0" に初期化されます。その結果 , 出力バッファ
が " オフ " になり(入出力モードが " 入力 " に変化する), 端子がハイインピーダン
ス状態になります。
• PDR3 レジスタは , リセットでも初期化されません。したがって , ポートを出力モー
ドで使用する場合は , 出力データを PDR3 レジスタに設定した後 , 出力モードに
DDR3 レジスタを設定しなければなりません。
185
第 9 章 I/O ポート
● ストップモードまたはタイムベースタイマモード時のポート動作
ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力
モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は ,
端子はハイインピーダンス状態になります。これは , 出力バッファが DDR3 レジスタ
の値とは無関係に " オフ " にさせられるからです。ポート 3 の端子状態を表 9.6-4 に示
します。
表 9.6-4 ポート 3 の端子状態
端子
通常動作
スリープ
モード
ストップモードまたはタ
イムベースタイマモード
(SPL=0)
ストップモードまたはタ
イムベースタイマモード
(SPL=1)
P30/RTO0
∼
P37/PPG0
汎用入出
力ポート
汎用入出
力ポート
汎用入出力ポート
入力は遮断され , 出力は
Hi-Z 状態になります
SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット
Hi-Z: ハイインピーダンス
186
第 9 章 I/O ポート
9.7
ポート 4
ポート 4 は汎用入出力ポートですが , リソース入出力と兼用しています。ポートの端
子は , ビット単位でポート機能とリソース機能を切り換えることができます。ここで
は , 汎用入出力ポート機能を中心に説明します。また , ポート 4 の構成 , 端子一覧 ,
端子のブロックダイヤグラムおよび対応するレジスタについて説明します。
■ ポート 4 の構成
ポート 4 は , 以下から構成されています。
• 汎用入出力ポート , UART 入出力 , マルチパルスジェネレータ入力 , PPG 出力(P40/
SIN0 ∼ P46/PPG2)
• ポート 4 データレジスタ(PDR4)
• ポート 4 方向レジスタ(DDR4)
■ ポート 4 の端子
ポート 4 は , リソースの入出力端子としても使用します。したがってこれらの端子は ,
リソースの入出力端子として使用した場合 , 汎用入出力ポートとしては使用できませ
ん。ポート 4 の端子一覧を表 9.7-1 に示します。
表 9.7-1 ポート 4 の端子
入出力形式
ポート
ポート 4
端子
ポート機能
リソース機能
P40/SIN0
P40
SIN0
UART0 データ入力
P41/SOT0
P41
SOT0
UART0 データ出力
P42/SCK0
P42
SCK0
UART0 シリアルクロック
I/O
P43/SNI0*
P43
SNI0*
マルチパルスジェネレー
タ入力 0
P44/SNI1*
P44
SNI1*
マルチパルスジェネレー
タ入力 1
P45/SNI2*
P45
SNI2*
マルチパルスジェネレー
タ入力
P46/PPG2
P46
PPG2
PPG2 出力
汎用入出力
入力
出力
CMOS
(ヒス
テリ
シス)
CMOS
回路の
種類
F
*:MB90467 では , リソースが搭載されていないため , 削除となります。
回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。
187
第 9 章 I/O ポート
■ ポート 4 の端子のブロックダイヤグラム
ポート 4 の端子のブロックダイヤグラムを図 9.7-1 に示します。
図 9.7-1 ポート 4 の端子のブロックダイヤグラム
リソース出力
リソース入力
リソース出力許可信号
ポートデータレジスタ(PDR)
内部データバス
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
リソース出力許可ビットを " 許可 " にすると , ポートは , DDR4 レジスタの値にかかわ
らずリソースの出力端子として機能します。
■ ポート 4 のレジスタ
ポート 4 のレジスタには , PDR4 と DDR4 があります。各レジスタを構成しているビッ
トは , ポート 4 の端子に 1 対 1 で対応しています。ポート 4 の端子と , これらの端子に
対応しているレジスタビットを表 9.7-2 に示します。
表 9.7-2 ポート 4 の端子と対応レジスタビット
ポート
レジスタビットと対応ポート端子
PDR4, DDR4
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
−
P46
P45
P44
P43
P42
P41
P40
ポート 4
188
第 9 章 I/O ポート
9.7.1
ポート 4 のレジスタ(PDR4, DDR4)
ポート 4 のレジスタについて説明します。
■ ポート 4 のレジスタの機能
● ポート 4 データレジスタ(PDR4)
PDR4 レジスタは , ポート 4 の各端子の状態を示します。
● ポート 4 方向レジスタ(DDR4)
DDR4 レジスタは , ポート 4 の各端子(ビット)のデータ入出力方向を指定します。
DDR4 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端
子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する
ポート(端子)は入力ポートとして設定されます。
• リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ
トが " 許可 " に設定されていると , ポートは DDR4 レジスタの値とは無関係にリソー
スの出力端子として機能します。
• リソースの入力と兼用している端子をリソースの入力として使用する場合は , 各入
力端子に対応する DDR4 レジスタビットに "0" を設定してポートを入力モードにし
てください。
ポート 4 のレジスタの機能を表 9.7-3 に示します。
表 9.7-3 ポート 4 のレジスタの機能
レジスタ
データ
読出し時
書込み時
端子は
low レベル
DDR5 ビットに "0" を設定す
ると , 端子はハイインピーダ
ンス状態になります。DDR5
ビットに "1" を設定すると , 端
子は出力ポートとして機能し ,
low レベルが設定されます
1
端子は
high レベル
DDR5 ビットに "0" を設定す
ると , 端子はハイインピーダ
ンス状態になります。DDR5
ビットに "1" を設定すると , 端
子は出力ポートとして機能し ,
high レベルが設定されます
0
方向ラッチ
は "0"
出力バッファが " オフ " にな
り , ポートが入力モードにな
ります
方向ラッチ
は "1"
出力バッファが " オン " にな
り , ポートが出力モードにな
ります
0
ポート 4
データ
レジスタ
(PDR4)
ポート 4
方向
レジスタ
(DDR4)
1
リード /
ライト
アドレス
初期値
R/W
000004H
-XXXXXXXB
R/W
000014H
-0000000B
R/W : リード / ライト
X
-
: 不定
: 未定義
189
第 9 章 I/O ポート
9.7.2
ポート 4 の動作
ポート 4 の動作について説明します。
■ ポート 4 の動作
● 出力モード時のポート動作
• DDR4 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー
トの端子は出力モードになります。
• 出力モード時において PDR4 レジスタに書き込まれたデータは , PDR の出力ラッチ
が保持し , 端子へ出力されます。
• PDR4 レジスタを読み出すと PDR の出力ラッチ状態を読み出すことができます。
リードモディファイライト命令を PDR4 レジスタに対して使用すると , このレジスタの
ターゲットビットには書き込んだ値が設定されます。DDR4 レジスタによって " 出力 "
として指定されているビットは影響を受けませんが , " 入力 " として指定されている
ビットの場合は , 端子からの入力値は出力ラッチへ書き込まれ , そのまま出力されま
す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー
タをPDR4レジスタへ書き込み, 次にDDR4レジスタを出力モードに設定してください。
● 入力モード時のポート動作
• DDR4 レジスタのいずれかのビットに "0" を設定すると , そのビットに対応する端子
は入力モードになります。
• 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に
なります。
• 入力モード時において PDR4 レジスタに書き込まれたデータは , PDR の出力ラッチ
が保持しますが , 端子へは出力されません。
• PDR4 レジスタを読み出すと端子のレベル("0" または "1")が読み出されます。
● リソース出力としてのポート動作
• リソース出力許可ビットを " 許可 " にすると , ポートはリソース出力として使用で
きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が
優先されます。すなわち , たとえ DDR4 レジスタのビットが "0" であっても , リソー
ス出力が " 許可 " になっている場合は , そのビットに対応する端子はリソース出力
として使用されます。しかしリソース出力が " 許可 " であっても端子の値を読み出
すことはできるので , リソースの出力値を読み出すことができます。
● リソース入力としてのポート動作
• ポートをリソース入力として使用する場合 , 端子の値がリソースの入力の値となり
ますので , DDR4 レジスタに "0" を設定することでポートを入力モードにしてくださ
い。
190
第 9 章 I/O ポート
● リセット後のポート動作
• リセットにより , DDR4 レジスタは "0" に初期化されます。その結果 , 出力バッファ
が " オフ " になり(入出力モードが " 入力 " に変化する), 端子がハイインピーダン
ス状態になります。
• PDR4 レジスタは , リセットでも初期化されません。したがって , ポートを出力モー
ドで使用する場合は , 出力データを PDR4 レジスタに設定した後 , 出力モードに
DDR4 レジスタを設定しなければなりません。
● ストップモードまたはタイムベースタイマモード時のポート動作
ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力
のモード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合
は , 端子はハイインピーダンス状態になります。これは , 出力バッファが DDR4 レジス
タの値とは無関係に " オフ " にさせられるからです。ポート 4 の端子状態を表 9.7-4 に
示します。
表 9.7-4 ポート 4 の端子状態
端子
通常動作
スリープ
モード
ストップモードまたはタ
イムベースタイマモード
(SPL=0)
ストップモードまたはタ
イムベースタイマモード
(SPL=1)
P40/SIN0
∼
P46/PPG2
汎用入出
力ポート
汎用入出
力ポート
汎用入出力ポート
入力は遮断され , 出力は
Hi-Z 状態になります
SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット
Hi-Z: ハイインピーダンス
191
第 9 章 I/O ポート
9.8
ポート 5
ポート 5 は汎用入出力ポートですが , A/D コンバータアナログ入力と兼用していま
す。ポートの端子は , ビット単位でポート機能とアナログ入力機能を切り換えるこ
とができます。ここでは , 汎用入出力ポート機能を中心に説明します。また , ポート
5 の構成 , 端子一覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて
説明します。
■ ポート 5 の構成
ポート 5 は , 以下から構成されています。
• 汎用入出力ポート , アナログ入力端子(P50/AN0 ∼ P57/AN7)
• ポート 5 データレジスタ(PDR5)
• ポート 5 方向レジスタ(DDR5)
• アナログ入力許可レジスタ(ADER)
■ ポート 5 の端子
ポート 5 は , アナログの入力端子としても使用します。したがってこれらの端子は , ア
ナログ入力として使用した場合 , 汎用入出力ポートとしては使用できません。同様に ,
ポート 5 は , 汎用入出力ポートとして使用した場合 , アナログ入力としては使用できま
せん。ポート 5 の端子一覧を表 9.8-1 に示します。
表 9.8-1 ポート 5 の端子
入出力形式
ポート
端子
ポート機能
リソース機能
P50/AN0
P50
AN0
アナログ入力 0
P51/AN1
P51
AN1
アナログ入力 1
P52/AN2
P52
AN2
アナログ入力 2
P53/AN3
P53
AN3
アナログ入力 3
ポート 5
汎用入出力
P54/AN4
P54
AN4
アナログ入力 4
P55/AN5
P55
AN5
アナログ入力 5
P56/AN6
P56
AN6
アナログ入力 6
P57/AN7
P57
AN7
アナログ入力 7
入力
出力
アナログ /
CMOS
CMOS
回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。
192
回路の
種類
I
第 9 章 I/O ポート
■ ポート 5 の端子のブロックダイヤグラム
ポート 5 の端子のブロックダイヤグラムを図 9.8-1 に示します。
図 9.8-1 ポート 5 の端子のブロックダイヤグラム
ADER
アナログ入力
ポートデータレジスタ(PDR)
内部データバス
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
入力ポートとして使用される端子の場合は , その端子に対応する DDR5 レジスタの各
ビットに "0" が設定され , またその端子に対応する ADER レジスタの各ビットにも "0"
が設定されます。
アナログ入力端子として使用される端子の場合は , その端子に対応する DDR5 レジス
タビットに "0" が設定され , その端子に対応する ADER レジスタビットには "1" が設定
されます。この場合 , PDR5 レジスタから読み出される値は "0" です。
■ ポート 5 のレジスタ
ポート 5 のレジスタには , PDR5, DDR5, ADER があります。各レジスタを構成してい
るビットは , ポート 5 の端子に 1 対 1 で対応しています。ポート 5 の端子と , これらの
端子に対応しているレジスタビットを表 9.8-2 に示します。
表 9.8-2 ポート 5 の端子と対応レジスタビット
ポート
レジスタビットと対応ポート端子
PDR5, DDR5, ADER
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P57
P56
P55
P54
P53
P52
P51
P50
ポート 5
193
第 9 章 I/O ポート
9.8.1
ポート 5 のレジスタ(PDR5, DDR5, ADER)
ポート 5 のレジスタについて説明します。
■ ポート 5 のレジスタの機能
● ポート 5 データレジスタ(PDR5)
PDR5 レジスタは , ポート 5 の各端子の状態を示します。
● ポート 5 方向レジスタ(DDR5)
DDR5 レジスタは , ポート 5 の各端子(ビット)のデータ入出力方向を指定します。
DDR5 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端
子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する
ポート(端子)は入力ポートとして設定されます。
● アナログ入力許可レジスタ(ADER)
ADER レジスタの各ビットは , 対応するポート 5 端子を " 汎用入出力ポート " として使
用するか " アナログ入力端子 " として使用するかを指定します。ADER ビットに "1" を
設定すると , 対応する端子をアナログ入力として使用します。ADER ビットに "0" を設
定すると , 対応する端子を汎用入出力として使用します。
• ポートを入力モードに設定して中間レベルの信号が入力されると , 入力リーク電流
が発生します。したがって , 端子をアナログ入力として使用する場合は , 対応する
ADER ビットには必ず "1" を設定してください。
< 参考 >
リセットにより , DDR5 レジスタは "0" にリセットされ , ADER レジスタには "1"
(端子をアナログ入力として使用する)が設定されます。
ポート 5 のレジスタの機能を表 9.8-3 に示します。
194
第 9 章 I/O ポート
表 9.8-3 ポート 5 のレジスタの機能
レジスタ
ポート 5
データ
レジスタ
(PDR5)
ポート 5
方向
レジスタ
(DDR5)
アナログ
入力許可
レジスタ
(ADER)
データ
読出し時
0
端子は
low レベル
1
端子は
high レベル
0
方向ラッチ
は "0"
出力バッファが " オフ " にな
り , ポートが入力モードにな
ります
方向ラッチ
は "1"
出力バッファが " オン " にな
り , ポートが出力モードにな
ります
1
書込み時
0
ポート入出力モード
1
アナログ入力モード
リード /
ライト
アドレス
初期値
R/W
000005H
XXXXXXXXB
R/W
000015H
00000000B
R/W
000017H
11111111B
R/W : リード / ライト
X : 不定
195
第 9 章 I/O ポート
9.8.2
ポート 5 の動作
ポート 5 の動作について説明します。
■ ポート 5 の動作
● 出力モード時のポート動作
• DDR5 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー
トの端子は出力モードになります。
• 出力モード時において PDR5 レジスタに書き込まれたデータは , PDR の出力ラッチ
が保持し , 端子へ出力されます。
• PDR5 レジスタを読み出すと PDR の出力ラッチ状態をが読み出すことができます。
リードモディファイライト命令を PDR5 レジスタに対して使用すると , このレジスタの
ターゲットビットには書き込んだ値が設定されます。DDR5 レジスタにより " 出力 " と
して指定されているビットは影響を受けませんが , " 入力 " として指定されているビッ
トの場合は , 端子からの入力値が出力ラッチへ書き込まれ , そのまま出力されます。し
たがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力データを
PDR5 レジスタへ書き込み , 次に DDR5 レジスタを出力モードに設定してください。
● 入力モード時のポート動作
• DDR5 レジスタと ADER レジスタのいずれかのビットに "0" を設定すると , 対応す
る端子が入力モードになります。
• 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に
なります。
• 入力モード時において PDR5 レジスタへ書き込まれたデータは , PDR の出力ラッチ
が保持しますが , 端子へは出力されません。
• PDR5 レジスタを読み出すと端子のレベル("0" または "1")が読み出されます。
● アナログ入力としてのポート動作
• ポート端子を " アナログ入力 " として使用する場合は , その端子に対応する ADER
ビットに "1" を設定してください。すると , 端子は汎用ポート端子としては動作せ
ず , アナログ入力端子として動作します。この状態で PDR5 レジスタを読み出すと
"0" が読み出されます。
● リセット後のポート動作
• リセットにより , DDR5 レジスタは "0" に , ADER レジスタは "1" に初期化され , ポー
トがアナログ入力モードになります。ポートを汎用入出力ポートとして使用する場
合は, 前もってADERレジスタに"0"設定し, ポートを入出力モードにしてください。
196
第 9 章 I/O ポート
● ストップモードまたはタイムベースタイマモード時のポート動作
ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力
モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は ,
端子はハイインピーダンス状態になります。これは , 出力バッファが " オフ " にさせら
れるからです。ポート 5 の端子状態を表 9.8-4 に示します。
表 9.8-4 ポート 5 の端子状態
端子
通常動作
スリープ
モード
ストップモードまたはタ
イムベースタイマモード
(SPL=0)
ストップモードまたはタ
イムベースタイマモード
(SPL=1)
P50/AN0
∼
P57/AN7
汎用入出
力ポート
汎用入出
力ポート
汎用入出力ポート
入力は遮断され , 出力は
Hi-Z 状態になります
SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット
Hi-Z: ハイインピーダンス
197
第 9 章 I/O ポート
9.9
ポート 6
ポート 6 は汎用入出力ポートですが , リソース入出力と兼用しています。ポートの
端子は , ビット単位でポート機能とリソース機能を切り換えることができます。こ
こでは , 汎用入出力ポート機能を中心に説明します。また , ポート 6 の構成 , 端子一
覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて説明します。
■ ポート 6 の構成
ポート 6 は , 以下から構成されています。
• 汎用入出力ポート , UART 入出力 , 外部割込み入力(P60/SIN1 ∼ P63/INT7)
• ポート 6 データレジスタ(PDR6)
• ポート 6 方向レジスタ(DDR6)
■ ポート 6 の端子
ポート 6 は , リソースの入出力端子としても使用します。したがってこれらの端子は ,
リソースの入出力端子として使用した場合 , 汎用入出力ポートとしては使用できませ
ん。ポート 6 の端子一覧を表 9.9-1 に示します。
表 9.9-1 ポート 6 の端子
入出力形式
ポート
端子
ポート機能
リソース機能
入力
P60/SIN1
P60
SIN1
UART1 データ入力
P61/SOT1
P61
SOT1
UART1 データ出力
P62/SCK1
P62
SCK1
P63/INT7
P63
INT7
ポート 6
汎用 I/O
CMOS
(ヒス
UART1 シリアルクロック テリ
シス)
入出力
出力
CMOS
外部割込み入力
回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。
198
回路の
種類
F
第 9 章 I/O ポート
■ ポート 6 の端子のブロックダイヤグラム
ポート 6 の端子のブロックダイヤグラムを図 9.9-1 に示します。
図 9.9-1 ポート 6 の端子のブロックダイヤグラム
リソース入力
リソース出力
リソース出力許可信号
ポートデータレジスタ(PDR)
内部データバス
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ
制御信号(SPL=1)
外部割込み許可
■ ポート 6 のレジスタ
ポート 6 のレジスタには , PDR6 と DDR6 があります。各レジスタを構成しているビッ
トは , ポート 6 の端子に 1 対 1 で対応しています。ポート 6 の端子と , これらの端子に
対応しているレジスタビットを表 9.9-2 に示します。
表 9.9-2 ポート 6 の端子と対応レジスタビット
ポート
レジスタビットと対応ポート端子
PDR6, DDR6
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
−
−
−
−
P63
P62
P61
P60
ポート 6
199
第 9 章 I/O ポート
9.9.1
ポート 6 のレジスタ(PDR6, DDR6)
ポート 6 のレジスタについて説明します。
■ ポート 6 のレジスタの機能
● ポート 6 データレジスタ(PDR6)
PDR6 レジスタは , ポート 6 の各端子の状態を示します。
● ポート 6 方向レジスタ(DDR6)
DDR6 レジスタは , ポート 6 の各端子(ビット)のデータ入出力方向を指定します。
DDR6 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端
子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する
ポート(端子)は入力ポートとして設定されます。
• リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ
トが " 許可 " 設定されていると , ポートは DDR6 レジスタの値とは無関係にリソー
スの出力端子として機能します。
• リソースの入力と兼用している端子をリソースの入力として使用する場合は , 各入
力端子に対応する DDR6 レジスタビットに "0" を設定してポートを入力モードにし
ます。
ポート 6 のレジスタの機能を表 9.9-3 に示します。
表 9.9-3 ポート 6 のレジスタの機能
レジスタ
データ
読出し時
書込み時
0
端子は
low レベル
出力ラッチへ "0" がロードさ
れます。端子が出力ポートと
して機能すると , 端子には low
レベルが設定されます
1
端子は
high レベル
出力ラッチへ "1" がロードさ
れます。端子が出力ポートと
して機能すると , 端子には
high レベルが設定されます
0
方向ラッチ
は "0"
出力バッファが " オフ " にな
り , ポートが入力モードにな
ります
方向ラッチ
は "1"
出力バッファが " オン " にな
り , ポートが出力モードにな
ります
ポート 6
データ
レジスタ
(PDR6)
ポート 6
方向
レジスタ
(DDR6)
1
R/W : リード / ライト
X
-
200
: 不定
: 未定義
リード /
ライト
アドレス
初期値
R/W
000006H
----XXXXB
R/W
000016H
----0000B
第 9 章 I/O ポート
9.9.2
ポート 6 の動作
ポート 6 の動作について説明します。
■ ポート 6 の動作
● 出力モード時のポート動作
• DDR6 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー
トの端子は出力モードになります。
• 出力モード時において PDR6 レジスタへ書き込まれたデータは , PDR の出力ラッチ
が保持し , 端子へ出力されます。
• PDR6 レジスタを読み出すと PDR の出力ラッチの状態を読み出すことができます。
リードモディファイライト命令を PDR6 レジスタに対して使用すると , このレジスタの
ターゲットビットには書き込んだ値が設定されます。DDR6 レジスタによって " 出力 "
として指定されているビットは影響を受けませんが , " 入力 " として指定されている
ビットの場合は , 端子からの入力値が出力ラッチへ書き込まれ , そのまま出力されま
す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー
タをPDR6レジスタへ書き込み, 次にDDR6レジスタを出力モードに設定してください。
● 入力モード時のポート動作
• DDR6 レジスタのビットに "0" を設定すると , そのビットに対応する端子は入力モー
ドになります。
• 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に
なります。
• 入力モード時において PDR6 レジスタへ書き込まれたデータは , PDR の出力ラッチ
が保持しますが , 端子へは出力されません。
• PDR6 レジスタは , 読み出すと端子のレベル("0" または "1")が読み出されます。
● リソース出力としてのポート動作
• リソース出力許可ビットを " 許可 " にすると , ポートをリソース出力として使用で
きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が
優先されます。すなわち , たとえ DDR6 レジスタのいずれかのビットが "0" であっ
ても , リソース出力が " 許可 " になっている場合は , そのビットに対応する端子はリ
ソース出力として使用します。しかしリソース出力が " 許可 " であっても端子の値
を読み出すことはできるので , リソースの出力値を読み出すことができます。
● リソース入力としてのポート動作
• ポートをリソース入力として使用する場合 , 端子の値がリソースの入力の値となり
ますので , DDR6 レジスタに "0" を設定しポートを入力モードにしてください。
201
第 9 章 I/O ポート
● リセット後のポート動作
• リセットにより , DDR6 レジスタは "0" に初期化されます。その結果 , 出力バッファ
が " オフ " になり(入出力モードが " 入力 " に変化する), 端子がハイインピーダン
ス状態になります。
• PDR6 レジスタは , リセットでも初期化されません。ポートを出力モード時に使用す
る場合は , 出力データを PDR6 レジスタへ設定した後 , 出力モードに DDR6 レジス
タを設定しなければなりません。
● ストップモードまたはタイムベースタイマモード時のポート動作
ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力
モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は ,
端子はハイインピーダンス状態になります。これは , 出力バッファが DDR6 レジスタ
の値とは無関係に " オフ " にさせられるからです。ポート 6 の端子状態を表 9.9-4 に示
します。
表 9.9-4 ポート 6 の端子状態
端子
通常動作
スリープ
モード
ストップモードまたはタ
イムベースタイマモード
(SPL=0)
ストップモードまたはタ
イムベースタイマモード
(SPL=1)
P60/SIN1
∼
P63/INT7
汎用入出
力ポート
汎用入出
力ポート
汎用入出力ポート
入力は遮断され , 出力は
Hi-Z 状態になります
SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット
Hi-Z: ハイインピーダンス
202
第 9 章 I/O ポート
9.10
I/O ポートのプログラム例
I/O ポート端子を使用したプログラム例を示します。
■ I/O ポートのプログラム例
● 処理仕様
• ポート 0 とポート 1 を使用してセブンセグメント(小数点を含めるとエイトセグメ
ント)LED のすべての線分を " オン " にします。
• 端子 P00 はセブンセグメント LED の陽極共通端子に対応しており , 端子 P10 ∼ P17
は各セグメント端子に対応しています。
MB90460/465 シリーズのポートにエイトセグメント LED を接続する例を図 9.10-1 に示
します。
図 9.10-1 エイトセグメント LED の接続例
MB90460
P00
P17
P16
P15
P14
P13
P12
P11
P10
● コーディング例
PDR0
EQU 000000H
PDR1
EQU 000001H
DDR0
EQU 000010H
DDR1
EQU 000011H
;---------- メインプログラム ------------------------------------------CODE
CSEG
START:
; 初期値
MOV I:PDR0,#00000000B
;P00 に low レベル(#XXXXXXX0B)を設定
MOV I:DDR0,#11111111B
; ポート 0 のすべてのビットを出力モードにする
MOV I:PDR1,#11111111B
; ポート 1 のすべてのビットに "1" を設定する
MOV I:DDR1,#11111111B
; ポート 1 のすべてのビットを出力モードにする
CODE
ENDS
;------------------------------------------------------------------END START
203
第 9 章 I/O ポート
204
第 10 章
タイムベースタイマ
タイムベースタイマの機能と動作について説明し
ます。
10.1 タイムベースタイマの概要
10.2 タイムベースタイマの構成
10.3 タイムベースタイマ制御レジスタ (TBTC)
10.4 タイムベースタイマ割込み
10.5 タイムベースタイマの動作
10.6 タイムベースタイマ使用上の注意
10.7 タイムベースタイマのプログラム例
205
第 10 章 タイムベースタイマ
10.1
タイムベースタイマの概要
タイムベースタイマは , メインクロック(原発振を 2 分周したもの)に同期してカ
ウントアップする 18 ビットフリーランカウンタです。
タイムベースタイマは , 4 つのインターバル時間を選択できるインターバルタイマ機
能を備えています。タイムベースタイマはまた , 発振安定待ち時間用のタイマおよ
びウォッチドッグタイマにクロックへ供給するための機能も備えています。
■ インターバルタイマ機能
インターバルタイマ機能は , 割込み要求をある一定のインターバルで繰返し生成しま
す。
• 割込み要求は , タイムベースカウンタのインターバルタイマビットのオーバフロー
が発生すると生成されます。
• インターバル時間は , 4 種類の中から選択できます。タイムベースタイマのインター
バル時間を表 10.1-1 に示します。
表 10.1-1 タイムベースタイマのインターバル時間
メインクロック周期
インターバル時間
212/HCLK(約 1.0ms)
214/HCLK(約 4.1ms)
2/HCLK (0.5μs)
216/HCLK(約 16.4ms)
219/HCLK(約 131.1ms)
HCLK: 発振クロック
括弧内の数値は , 発振クロック周波数 4MHz で動作させた場合のインターバル時間です。
206
第 10 章 タイムベースタイマ
■ クロック供給機能
クロック供給機能は , 発振安定待ち時間用のタイマおよび一部のリソースへクロック
を供給します。
タイムベースタイマから各リソースへ供給されるクロック周期を表 10.1-2 に示しま
す。
表 10.1-2 タイムベースタイマから供給されるクロック周期
クロック供給先
クロック周期
213/HCLK(約 2.0ms)
発振安定待ち時間タイマ
備 考
セラミック振動子の発振安定待ち時間
215/HCLK(約 8.2ms)
217/HCLK(約 32.8ms)
水晶振動子の発振安定待ち時間
212/HCLK(約 1.0ms)
214/HCLK(約 4.1ms)
ウォッチドッグタイマ
216/HCLK(約
16.4ms)
ウォッチドッグタイマの
カウントアップクロック
219/HCLK(約 131.1ms)
HCLK: 発振クロック
括弧内の数値は , 発振クロック周波数 4MHZ で動作させた場合のインターバル時間です。
< 参考 >
発振開始時の発振周期は不安定なので , 上記に示されている発振安定待ち時間は目
安として使用してください。
207
第 10 章 タイムベースタイマ
10.2
タイムベースタイマの構成
タイムベースタイマは , 以下の 4 つのブロックから構成されています。
• タイムベースタイマカウンタ
• カウンタクリア回路
• インターバルタイマセレクタ
• タイムベースタイマ制御レジスタ(TBTC)
■ タイムベースタイマのブロックダイヤグラム
タイムベースタイマのブロックダイヤグラムを図 10.2-1 に示します。
図 10.2-1 タイムベースタイマのブロックダイヤグラム
ウォッチドッグ
タイマへ
タイムベース
タイマカウンタ
メイン
クロック
×21 ×22 ×23 ... ... ×28 ×29 ×210 ×211 ×212 ×213×214 ×215 ×216 ×217×218
OF
OF
OF
OF
OF
カウンタクリア
パワーオンリセット
ストップモード開始
CKSCR:MCS=1→0(*1)
クロック制御部
の発振設定時間
セレクタへ
カウンタ
クリア回路
インターバル
タイマセレクタ
TBOF設定
TBOFクリア
タイムベースタイマ
割込み信号#36(24H)
(*2)
—
—
—
OF: オーバフロー
*1 マシンクロックをメインクロックから PLL クロックへ切換え
*2 割込み番号
TBIE
TBOF
TBR
TBC1
TBC0
タイムベースタイマ
割込み制御レジスタ
(TBTC)
● タイムベースタイマカウンタ
この 18 ビットアップカウンタは , メインクロックをカウントクロックとして使用しま
す。
● カウンタクリア回路
カウンタをクリアするために使用されます。カウンタは , パワーオンリセット時または
ストップモードへの遷移時(LPMCR:STP=1)に TBTC レジスタの TBR:bit10 に "0" を
書き込むことによってクリアされます。
● インターバルタイマセレクタ
タイムベースタイマカウンタの 4 種類の出力から選択します。選択されたビットのオー
バフローは , 割込み要因となります。
● タイムベースタイマ制御レジスタ(TBTC)
インターバル時間の選択 , カウンタのクリア , 割込み要求の制御および状態の確認を行
います。
208
第 10 章 タイムベースタイマ
タイムベースタイマ制御レジスタ (TBTC)
10.3
タイムベースタイマ制御レジスタ(TBTC)は , インターバル時間の設定 , カウンタ
のクリア , 割込み要求の制御および状態の確認を行います。
■ タイムベースタイマ制御レジスタ (TBTC)
図 10.3-1 タイムベースタイマ制御レジスタ(TBTC)
bit
15
14
13
予約
-
-
R/W
12
11
TBIE TBOF
R/W
R/W
10
9
8
TBR
TBC1
TBC0
W
R/W
R/W
TBC1 TBC0
0
0
7
・・・・・
0
初期値
1--00100B
(WDTC)
インターバル時間設定ビット
212/HCLK (約1.0ms)
0
1
1
0
214/HCLK (約 4.1ms)
216/HCLK (約16.4ms)
1
1
219/HCLK (約131.1ms)
括弧内の数値は,発振クロック周波数4MHzで動作させた場合
のインターバルです。
TBR
0
タイムベースタイマ初期化ビット
読出し時
書込み時
タイムベースタイマカウンタ
およびTBOFビットのクリア
-
1
読出し値は常に"1"です。 変化なし。
ほかのビットへの影響なし。
TBOF
割込み要求フラグビット
読出し時
書込み時
0
割込要求あり
このビットがクリアされます。
1
割込要求なし
変化なし。
ほかのビットへの影響なし。
割込み要求許可ビット
TBIE
0 割込み要求禁止。
1 割込み要求許可。
予約
R/W :
W :
- :
X :
:
HCLK :
リード/ライト
ライトオンリ
未使用
未定義
初期値
発振クロック
予約ビット
このビットには必ず"1"を書込んでください。
209
第 10 章 タイムベースタイマ
表 10.3-1 タイムベースタイマ制御レジスタ(TBTC)の各ビットの機能説明
ビット名
機 能
bit15
予約 :
予約ビット
( 注意事項 )
このビットには必ず "1" を書き込んでください。
bit14,
bit13
未使用
•
•
読出し値は不定です。
書込みを行っても動作への影響はありません。
bit12
TBIE:
割込み要求許可
ビット
•
•
割込み要求を許可または禁止します。
このビットが "1" のときに割込み要求フラグビット(TBOF)が "1" にな
ると , 割込み要求が発生します。
TBOF:
割込み要求フラグ
ビット
このビットは , タイムベースタイマカウンタの指定するビットよりオー
バフローが発生すると , "1" が設定されます。
• このビットが "1" になったときに割込み要求許可(TBIE)が "1" の場合 ,
割込要求が発生します。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは変化せず , 動作へ影響
しません。
( 注意事項 )
1)このビットをクリアするには , TBIE ビットまたはプロセッサステー
タス(PS)ILM ビットを設定することでタイムベースタイマ割込み
を禁止してください。
2)このビットは , "0" の書込み , ストップモードへの遷移 , TBR ビット
によるタイムベースタイマのクリアまたはリセットよりクリアされ
ます。
bit10
TBR:
タイムベースタイ
マ初期化ビット
タイムベースタイマカウンタをクリアします。
このビットに "0" を設定した場合 : カウンタがクリアされ , TBOF ビッ
トがクリアされます。
• このビットに "1" を設定した場合 : このビットは変化せず , 動作へ影響
しません。
< 参考 >
読出し値は常に "1" です。
bit9,
bit8
TBC1, TBC0:
インターバル時間
選択ビット
•
BIT11
•
•
210
•
•
•
インターバル時間を選択します。
タイムベースタイマカウンタのインターバルタイマビットが設定されま
す。
4 つの異なるインターバル時間を選択できます。
第 10 章 タイムベースタイマ
10.4
タイムベースタイマ割込み
タイムベースタイマは , タイムベースタイマカウンタの指定するビットよりオーバ
フローが発生すると , 割込み要求が生成されます。
■ タイムベースタイマ割込み
割込み要求フラグビット(TBTC レジスタの TBOF:bit11)に "1" が設定されるのは , タ
イムベースタイマカウンタが内部カウントクロックでカウントアップし , 選択された
インターバルタイマビットのオーバフローが発生した場合です。割込み要求フラグ
ビットに "1" が設定されたとき , 割込み要求許可ビットが " 許可 " になっている(TBTC
レジスタの TBIE:12=1)場合は , 割込み要求(#36)が生成されます。割込み処理ルー
チンで TBOF ビットに "0" を書き込むと , 割込み要求はクリアされます。指定された
ビットのオーバフローが発生すると , TBIE ビット値とは無関係に TBOF ビットが "1"
に設定されます。
割込み要求フラグビット(TBTC レジスタの TBOF:bit11)のクリアは , TBIE ビットま
たはプロセッサステータス(PS)ILM ビットの設定によりタイムベースタイマ割込み
を禁止している間に行ってください。
< 参考 >
TBOF ビットが "1" であり , TBIE ビットの状態が禁止から許可に遷移する("0" →
"1")と , 割込み要求が直ちに発生します。
■ タイムベースタイマ割込みと EI2OS
タイムベースタイマ割込みと EI2OS を表 10.4-1 に示します。
表 10.4-1 タイムベースタイマ割込みと EI2OS
割込みレベル設定レジスタ
ベクタテーブルのアドレス
EI2OS
割込み番号
#36(24H)
レジスタ名
アドレス
下位
上位
バンク
ICR12
0000BCH
FFFF6CH
FFFF6DH
FFFF6EH
△
△ : ICR を共用する割込み要因を使用していない場合に使用できます。
ICR12 は , タイムベースタイマ割込みとインプットキャプチャチャネル 2/3 割込みに共
用されます。割込みは 2 つのアプリケーションに対して使用できますが , これらの割込
みレベルは同一です。
211
第 10 章 タイムベースタイマ
10.5
タイムベースタイマの動作
タイムベースタイマは , インターバルタイマ機能とクロック供給機能(各リソース
へクロックを供給する)を備えています。
■ インターバルタイマ機能(タイムベースタイマ)の動作
インターバルタイマ機能は , 割込み要求を各インターバルで生成します。
すべてのタイマをインターバルタイマとして動作させるには , 図 10.5-1 のように設定
しなければなりません。
図 10.5-1 タイムベースタイマの設定
bit
TBTC
15
14
13
RESV
-
-
1
12
11
TBIE TBOF
◎ ◎
10
TBR
9
8
TBC1 TBC0
0 0
7
・・・・
0
WDTC
◎
◎:使用
0 :"0"設定
1 :"1"設定
• タイムベースタイマカウンタは ,
クロックが発振されている限りメインクロック
(発振クロックを 2 分周したもの)と同期してカウントアップを継続します。
• カウンタがクリアされる(TBR=0)と , カウンタは "0" からカウントアップを開始
します。インターバルタイマビットのオーバフローが発生すると , 割込み要求フラ
グビット(TBOF)に "1" が設定されます。このとき割込み要求出力がすでに許可に
なっている場合は , クリアされた時間を基準に選択された各インターバルで割込み
を生成します。
• タイムベースタイマがクリアされるために , インターバル時間は設定された時間よ
り長くなることがあります。
212
第 10 章 タイムベースタイマ
■ 発振安定待ち時間用タイマ機能
タイムベースタイマは , 発振クロックおよび PLL クロックの発振安定待ち時間用タイ
マとしても使用されます。
発振安定待ち時間は , カウンタが "0"(カウントクリア)からカウントアップを開始し
てから発振安定待ち時間ビットのオーバフローが発生するまでの時間をインターバル
として設定されます。タイムベースタイマモードから PLL クロックモードに制御が戻
ると , タイムベースタイマカウンタはクリアされていないので , 発振安定待ち時間はカ
ウントの途中から開始します。タイムベースタイマカウンタのクリアと , 発振安定待ち
時間を表 10.5-1 に示します。
表 10.5-1 タイムベースタイマカウンタのクリアおよび発振安定待ち時間
動作
カウンタ
のクリア
TBOF
のクリア
TBTC レジスタの TBR:bit10 への "0"
書込み
0
0
0
0
ストップモードの解除
0
0
発振クロックモードから PLL クロッ
クモードへの遷移(MCS=1 → 0)
0
0
タイムベースタイマモードの解除
X
X
スリープモードの解除
X
X
パワーオンリセット
発振安定待ち時間
発振クロック発振安定待ち時間
ウォッチドッグリセット
発振クロック発振安定待ち時間
(メインクロックモードへの復帰時)
PLL クロック発振安定待ち時間
PLL クロック発振安定待ち時間
(PLL クロックモードへの復帰時)
O: 使用可能
X: 使用不可
■ クロック供給機能
タイムベースタイマは , ウォッチドッグタイマへクロックを供給します。タイムベース
カウンタのクリアは , ウォッチドッグタイマの動作に影響を与えます。
213
第 10 章 タイムベースタイマ
■ タイムベースタイマの動作
以下の動作を図 10.5-2 に示します。
• パワーオンリセットの発生
• インターバルタイマ機能動作時のスリープモードへの遷移
• ストップモードへ遷移した場合
• カウンタクリア要求の送出
ストップモードに入ると , タイムベースタイマがクリアされ , タイムベースタイマの動
作が停止します。ストップモードから復帰すると , タイムベースタイマが直ちに発振安
定待ち時間のカウントを開始します。
図 10.5-2 タイムベースタイマの動作
カウンタの値
3FFFFH
ストップモードへの遷移
発生によるクリア
発振安定化遅延
オーバフロー
0000H
インターバルサイクル
(TBTC:TBC1,TBC0=11B)
CPU動作開始
パワーオンリセット
(オプション)
カウンタのクリア
(TBTC:TBR=0)
割込み処理ルーチンによる
クリア
TBOFビット
スリープモード
TBIEビット
SLPビット
(STBCレジスタ)
STPビット
(STBCレジスタ)
ストップ
インターバル割込みスリープの解除
外部割込みによるストップの解除
タイムベースタイマ制御レジスタのインターバル選択ビット
(TBTC:TBC1,TC0)に"11B"が設定されているとき
: 発振安定待ち時間を示します。
214
第 10 章 タイムベースタイマ
10.6
タイムベースタイマ使用上の注意
割込み要求のクリアおよびタイムベースタイマカウンタのクリアによる機能への影
響などの注意点を示します。
■ タイムベースタイマ使用上の注意
● 割込み要求のクリア
タイムベースタイマ制御レジスタの TBOF ビットは , タイムベースタイマ割込みが
TBIE ビットまたはプロセッサステータス(PS)割込みレベルマスクレジスタ(ILM)
でマスクされている間にクリアしなければなりません。
● タイムベースタイマのクリアによる影響
タイムベースタイマカウンタをクリアすると , 以下が影響を受けます。
• タイムベースタイマで使用中のインターバルタイマ機能
• 使用中のウォッチドッグタイマ
● 発振安定待ち時間用タイマとしてのタイムベースタイマの使用
メインストップモード時およびパワーオン時には , メインクロックの原発振は停止し
ます。発振子の動作開始後 , タイムベースタイマから供給される動作クロックは , メイ
ンクロックの発振安定待ち時間を設けるために使用されます。適切な発振安定待ち時
間を , メインクロック発振子(クロック生成部)に接続されている発振子のタイプに基
づいて選択しなければなりません。詳細については , 「5.5 発振安定待ち時間」をご参
照ください。
● タイムベースタイマからクロックが供給されるリソースについての注意
メインクロックソース発振が停止しているモード時は , タイムベースタイマカウンタ
がクリアされ , タイムベースタイマ動作が停止します。タイムベースタイマカウンタが
クリアされると , タイムベースタイマから供給されるクロックはタイムベースタイマ
の初期状態から供給されます。その結果 , "H" レベルが 1/2 サイクル短くなり , "L" レベ
ルが 1/2 サイクル長くなります。ウォッチドッグタイマへのクロックもタイムベース
タイマの初期状態から供給されますが , ウォッチドッグタイマは正常サイクルで動作
します(ウォッチドッグタイマカウンタのクリアは , タイムベースタイマカウンタのク
リアと同時に行われるからです)。
215
第 10 章 タイムベースタイマ
10.7
タイムベースタイマのプログラム例
タイムベースタイマのプログラム例を示します。
■ タイムベースタイマのプログラム例
● 処理
割込みが 212/HCLK(HCLK: 発振クロック)のインターバルで繰返し生成されます。イ
ンターバル時間は , 約 1.0ms(4MHZ で動作させた場合)です。
● コーディング例
ICR12 EQU
0000BCH
; タイムベースタイマ割込み制御レジスタ
TBTC
EQU
0000A9H
; タイムベースタイマ制御レジスタ
TBOF
EQU
TBTC:3
; 割込み要求フラグビット
;--------- メインプログラム -------------------------------------------CODE
CSEG
START:
; :
; スタックポインタ(SP)はすでに初期化され
; ているものと仮定します
AND
CCR,#0BFH
; 割込みを禁止します
MOV
I:ICR12,#00H
; 割込みレベル 0(優先順位が最も高い)
MOV
I:TBTC,#10010000B; 上位 3 ビットを固定します
; 割込みを許可し , TBOF をクリアします
; カウンタをクリアします
; インターバル 212/HCLK を選択します
MOV
ILM,#07H
;PS の ILM をレベル 7 に設定します
OR
CCR,#40H
; 割込みを許可にします
LOOP: MOV
A,#00H
; 無限プール
MOV
A,#01H
BRA
LOOP
;--------- 割込みプログラム -------------------------------------------WARI:
CLRB I:TBOF
; 割込み要求フラグをクリアします
; :
ユーザ処理
; :
RETI
; 割込み処理から復帰します
CODE
ENDS
;--------- ベクタ設定 ------------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FF6CH
; 割込み #36(24H)のベクタを設定します
VECT
216
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH
START
00H
START
; リセットベクタを設定します
;
第 11 章
ウォッチドッグタイマ
ウォッチドッグタイマの機能と動作について説明
します。
11.1 ウォッチドッグタイマの概要
11.2 ウォッチドッグタイマの構成
11.3 ウォッチドッグタイマ制御レジスタ(WDTC)
11.4 ウォッチドッグタイマの動作
11.5 ウォッチドッグタイマ使用上の注意
11.6 ウォッチドッグタイマのプログラム例
217
第 11 章 ウォッチドッグタイマ
11.1
ウォッチドッグタイマの概要
ウォッチドッグタイマは , タイムベースタイマから供給されるクロックをカウント
クロックとして使用する 2 ビットカウンタです。ウォッチドッグタイマが起動され
てからある一定時間内にウォッチドッグタイマがクリアされない場合は , CPU がリ
セットされます。
■ ウォッチドッグタイマ機能
ウォッチドッグタイマは , プログラムの暴走に対処するためのカウンタです。ウォッチ
ドッグタイマは , 一度起動されると , ある一定時間ごとに定期的にクリアする必要があ
ります。プログラムが無限ループに入ってしまい , ウォッチドッグタイマがある一定時
間経過後もクリアされない場合は , ウォッチドッグリセットが生成されます。
ウォッチドッグタイマのインターバル時間を表 11.1-1 に示します。ウォッチドッグタ
イマがクリアされない場合は , 最小時間と最大時間の範囲内でウォッチドッグリセッ
トが発生します。カウンタは , この表に示されている最小時間内でクリアしてくださ
い。
表 11.1-1 ウォッチドッグタイマのインターバル時間
インターバル時間
最大 *
最小 *
発振クロックサイクル数
約 3.58ms
約 4.61ms
214 ± 211 サイクル
約 14.33ms
約 18.3ms
216 ± 213 サイクル
約 57.23ms
約 73.73ms
218 ± 215 サイクル
約 458.75ms
約 589.82ms
221 ± 218 サイクル
*: 発振クロック周波数 4MHZ で動作させた場合のインターバル時間です。
ウォッチドッグタイマのインターバル時間は , カウントクロック(タイムベースタイマ
から供給されるクロック)のサイクルの 3.5 倍∼ 4.5 倍です。
詳細については , 「11.4 ウォッチドッグタイマの動作」をご参照ください。
ウォッチドッグカウンタは , タイムベースタイマから供給される信号をカウントク
ロックとして使用する 2 ビットカウンタです。したがって , タイムベースタイマがクリ
アされるとウォッチドッグリセットのインターバル時間は設定された時間より長くな
る場合があります。
< 参考 >
218
ウォッチドッグタイマは , 起動されるとパワーオンリセットまたはウォッチドッグ
リセットで初期化され , その後 , 停止状態になります。ウォッチドッグタイマは , 外
部端子リセット , ソフトリセット , WTE ビット(ウォッチドッグタイマ制御レジス
タ)への書込み , スリープモードへの遷移またはストップモードへの遷移によりク
リアされます。ただし , ウォッチドッグタイマは , クリアされても停止状態にはな
りません。
第 11 章 ウォッチドッグタイマ
11.2
ウォッチドッグタイマの構成
ウォッチドッグタイマは , 以下の 5 ブロックから構成されています。
• カウントクロックセレクタ
• ウォッチドッグカウンタ(2 ビットカウンタ)
• ウォッチドッグリセットジェネレータ
• カウンタクリア制御回路
• ウォッチドッグタイマ制御レジスタ(WDTC)
■ ウォッチドッグタイマのブロックダイヤグラム
ウォッチドッグタイマのブロックダイヤグラムを図 11.2-1 に示します。
図 11.2-1 ウォッチドッグタイマのブロックダイヤグラム
ウォッチドッグタイマ制御レジスタ(WDTC)
PONR
-
WRST
ウォッチドッグタイマ
スリープモード開始
ホールド状態開始
ストップモード開始
ERST
SRST
WT1
WT0
2
クリア
クリア
と起動 オーバ
ウォッチドッグ
フロー
2ビット
リセット
タイマ
発生回路
カウント
クロック
セレクタ
タイマ
クリア
制御回路
WTE
内部リセット
発生回路へ
クリア
4
クリア
(タイムベースタイマカウンタ)
メインクロック
×21 ×22
・・・
×28 ×29 ×210 ×211 ×212 ×213 ×214 ×215 ×216 ×217 ×218
HCLK:発振クロック
● カウントクロックセレクタ
この回路は , 4 つの異なるタイムベースタイマ出力からウォッチドッグタイマのカウン
トクロックを選択するために使用されます。ウォッチドッグリセットのインターバル
時間は , 選択されたカウントクロックに基づいて決まります。
● ウォッチドッグカウンタ(2 ビットカウンタ)
この2ビットアップカウンタは, タイムベースタイマ出力をカウントクロックとして使
用します。
● ウォッチドッグリセット発生回路
ウォッチドッグカウンタオーバフローでリセット信号を発生します。
● カウンタクリア制御回路
ウォッチドッグカウンタのクリアとウォッチドッグカウンタの動作または停止を制御
します。
● ウォッチドッグタイマ制御レジスタ(WDTC)
ウォッチドッグタイマを起動またはクリアします。リセット発生要因を示します。
219
第 11 章 ウォッチドッグタイマ
11.3
ウォッチドッグタイマ制御レジスタ(WDTC)
ウォッチドッグタイマ制御レジスタ(WDTC)は , ウォッチドッグタイマの起動と
クリアおよびリセット要因の表示を行います。
■ ウォッチドッグタイマ制御レジスタ(WDTC)
ウォッチドッグタイマ制御レジスタ(WDTC)を図 11.3-1 に示します。また , ウォッ
チドッグタイマ制御レジスタ(WDTC)の各ビットの機能説明を表 11.3-1 に示します。
図 11.3-1 ウォッチドッグタイマ制御レジスタ(WDTC)
bit
7
6
PONR
-
R
-
5
4
3
WRST ERST SRST
R
R
R
WT1
WT0
0
0
1
0
1
0
1
1
WTE
0
1
初期値
2
1
0
WTE
WT1
WT0
W
W
W
X-XXX111B
インターバル時間選択ビット(HCLK:4MHzの場合)
インターバル時間
発振クロックサイクル数
最大
最小
214±211サイクル
約 3.58ms 約 4.61ms
約 14.33ms 約 18.3ms
216±213サイクル
約 57.23ms 約 73.73ms
218±215サイクル
約458.75ms 約589.82ms
221±218サイクル
ウォッチドッグタイマ制御ビット
・ウォッチドッグタイマを起動
(リセット後,1回目の設定の場合)
・ウォッチドッグタイマをクリア
(リセット後,2回目以降の設定の場合)
動作に影響しません。
リセット要因フラグビット
リセット要因
PONR WRST ERST SRST
1
X
X
X
パワーオンリセット
R
W
X
-
:
:
:
:
:
* :
HCLK :
220
リードオンリ
ライトオンリ
不定
未定義ビット
初期値
前の状態を保持
発振クロック周波数
*
1
*
*
*
*
ウォッチドッグタイマリセット
*
1
*
外部リセット(RST端子入力)
*
*
1
ソフトウェアリセット(LPMCR:RST)
第 11 章 ウォッチドッグタイマ
ウォッチドッグタイマのインターバル時間は , カウントクロック(タイムベースタイマ
出力値)のサイクルの 3.5 倍∼ 4.5 倍です。
詳細については , 「11.4 ウォッチドッグタイマの動作」をご参照ください。
表 11.3-1 ウォッチドッグタイマ制御レジスタ(WDTC)の各ビットの機能説明
ビット名
機 能
•
bit7
∼
bit3
PONR, WRST,
ERST, SRST:
リセット要因フラ
グビット
bit2
WTE:
ウォッチドッグタ
イマ制御ビット
bit1,
bit0
WT1, WT0:
インターバル時間
選択ビット
•
•
リセット要因を示すための読出し専用ビットです。複数のリセット要因
が発生した場合は , 各リセット要因に対応するビットに "1" が設定され
ます。
これらのビットは , ウォッチドッグタイマ制御レジスタ(WDTC)の読
出し後 , すべて "0" にクリアされます。
パワーオン時 , PONR ビット以外のビット値は不定となります。した
がって , PONR ビットが "1" のとき , PONR ビット以外のビット値は無視
してください。
このビットに "0" を設定した場合 : ウォッチドッグタイマが起動される
(リセット後の最初の書込み)かまたは 2 ビットカウンタがクリアされ
ます(リセット後の 2 番目以降の書込み)。
• このビットに "1" を設定した場合 : 動作へ影響しません。
•
•
•
•
ウォッチドッグタイマのインターバル時間を選択します。
ウォッチドッグタイマが起動されたときのデータのみが有効です。
ウォッチドッグタイマが起動された後に書き込まれたデータは , 無視さ
れます。
これらのビットは , 書込み専用ビットです。
221
第 11 章 ウォッチドッグタイマ
11.4
ウォッチドッグタイマの動作
ウォッチドッグタイマは , ウォッチドッグカウンタのオーバフローによりウォッチ
ドッグリセットを生成します。
■ ウォッチドッグタイマの動作
ウォッチドッグタイマを動作させるには , 図 11.4-1 のような設定が必要です。
図 11.4-1 ウォッチドッグタイマの設定
bit
WDTC
15
8
TBTC
7
6
5
4
3
2
1
0
PONR
-
WRST
ERST
SRST
WTE
WT1
WT0
0
◎
◎
◎:使用ビット
0 :"0"を設定
● ウォッチドッグタイマの起動
• ウォッチドッグタイマは , リセット後の最初の "0" 書込みをウォッチドッグタイマ
制御レジスタ(WDTC)の WTE ビットに行うと起動されます。インターバル時間
は , ウォッチドッグタイマ制御レジスタの WT1 ビットと WT0 ビットを同時に設定
してください。
• ウォッチドッグタイマが一度起動すると , パワーオンリセットまたはウォッチドッ
グリセットでしかウォッチドッグタイマを停止できません。
● ウォッチドッグタイマのクリア
• 2 番目以降の "0" 書込みを WTE ビットに行うと , ウォッチドッグタイマの 2 ビット
カウンタはクリアされます。このカウンタが指定インターバル時間内にクリアされ
ない場合は , オーバフローが発生し , ウォッチドッグリセットが発生します。
• ウォッチドッグカウンタは , リセット生成 , スリープモードへの遷移 , ストップモー
ドへの遷移またはクロックモードへの遷移によりリセットされます。
● ウォッチドッグタイマのインターバル
ウォッチドッグタイマのクリアタイミングとインターバル時間の関係を図 11.4-2 に示
します。ウォッチドッグタイマのインターバル時間は , ウォッチドッグタイマのクリア
タイミングに従って変化し , またカウントクロックサイクルの 3.5 倍∼ 4.5 倍の長さを
必要とします。
● リセット要因の確認
リセット要因は , リセット後のウォッチドッグタイマ制御レジスタ(WDTC)の PONR,
WRST, ERST, SRST ビットを確認することで判断できます。
222
第 11 章 ウォッチドッグタイマ
図 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
カウント許可
リセット信号
9×(カウントクロック周期/2)
WTEビットクリア
ウォッチドッグリセット発生
223
第 11 章 ウォッチドッグタイマ
11.5
ウォッチドッグタイマ使用上の注意
ウォッチドッグタイマ使用上の注意を以下に示します。
■ ウォッチドッグタイマ使用上の注意
● ウォッチドッグタイマの停止
ウォッチドッグタイマは , 一度起動されると , パワーオンリセットまたはウォッチドッ
グリセットが発生するまで停止できません。ウォッチドッグタイマカウンタは , 外部リ
セットまたはソフトリセットでクリアされます。ただし , カウンタがクリアされても
ウォッチドッグタイマは停止状態にはなりません。
● インターバル時間
タイムベースタイマから供給される信号をインターバルカウントクロックとして使用
するので , ウォッチドッグタイマのインターバル時間は , タイムベースタイマがクリア
されると , 設定された時間より長くなる場合があります。
タイムベースタイマは , タイムベースタイマ制御レジスタ (TBTC) のタイムベースタイ
マ初期化ビット (TBR) への "0" 書込みのほか , メインクロックモードから PLL クロッ
クモードへの遷移時にもクリアされますので , ご注意ください。
● インターバル時間の選択
インターバルは , ウォッチドッグタイマが起動されたとき選択できます。起動以外の動
作時に書き込まれたデータは無視されます。
● プログラム作成上の注意
メインループ内でウォッチドッグタイマを繰返しクリアするプログラムを作成する場
合 , メインループの処理時間(割込み処理を含む)は , ウォッチドッグタイマの最小イ
ンターバル時間に等しいかまたはそれ未満でなければなりません。
● タイムベースタイマモード時のウォッチドッグタイマの動作
タイムベースタイマは , タイムベースタイマモードが設定されている間動作します。
ただし , ウォッチドッグタイマは一時的に停止状態になります。
224
第 11 章 ウォッチドッグタイマ
11.6
ウォッチドッグタイマのプログラム例
ウォッチドッグタイマのプログラム例を示します。
■ ウォッチドッグタイマのプログラム例
● 処理
• ウォッチドッグタイマは , 毎回メインプログラムループ内でクリアされます。
• メインループは , ウォッチドッグタイマの最小インターバル時間内に 1 回 , 繰返さ
なければなりません。
● コーディング例
WDTC
EQU
0000A8H
; ウォッチドッグタイマ制御レジスタ
WTE
EQU
WDTC:2
; ウォッチドッグ制御ビット
;--------- メインプログラム ------------------------------------------CODE
CSEG
START:
; :
; スタックポインタ(SP)はすでに初期化されているもの
;
と仮定します
WDG_SRART:
MOV
WDTC,#00000011B; ウォッチドッグタイマを起動します
; インターバル 221+218 サイクルを選択します
;--------- メインループ ---------------------------------------------MAIN: CLRB I:WTE
; ウォッチドッグタイマをクリアします
; :
このビットを定期的にクリアします
; ユーザ処理
; :
JMP
MAIN
; ウォッチドッグタイマのインターバル時間未満の時間で
; ループします
CODE
ENDS
;--------- ベクタ設定 -----------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FFDCH
; リセットベクタを設定します
DSL
START
DB
00H
;
VECT
ENDS
END
START
225
第 11 章 ウォッチドッグタイマ
226
第 12 章
16 ビットリロードタイマ
16 ビットリロードタイマの機能と動作について説
明します。
12.1 16 ビットリロードタイマの概要
12.2 16 ビットリロードタイマのブロックダイヤグラム
12.3 16 ビットリロードタイマの端子
12.4 16 ビットリロードタイマのレジスタ
12.5 16 ビットリロードタイマの割込み
12.6 16 ビットリロードタイマの動作
12.7 16 ビットリロードタイマ使用上の注意
12.8 16 ビットリロードタイマのプログラム例
227
第 12 章 16 ビットリロードタイマ
12.1
16 ビットリロードタイマの概要
16 ビットリロードタイマにおいては , 以下の 2 つのクロックモードと 2 つのカウン
タ動作モードを選択できます。
• 内部クロックモード
:3 種類の内部クロックから選択した 1 つのクロックに
同期してカウントダウンします。
• イベントカウントモード : 外部端子における動作エッジの検出によってカウント
ダウンタイマは , カウント値が "0000H" → "FFFFH" へ
• リロードモード
• ワンショットモード
変更されたときにアンダフロー条件結果を定義します。
すなわち , アンダフローは " リロードレジスタ設定値
+1" の後 , 発生することになります。
: カウント設定値を再リロードしてカウントを繰り返し
ます。
: アンダフローによってカウントを停止します。カウン
タアンダフローは , 拡張インテリジェント I/O サービ
ス(EI2OS)に対応しています。
MB90460/465 シリーズの 16 ビットリロードタイマは , 2 つのチャネルを内蔵してい
ます。
■ 16 ビットリロードタイマの動作モード
16 ビットリロードタイマの動作モードを表 12.1-1 に示します。
表 12.1-1 16 ビットリロードタイマの動作モード
クロックモード
カウンタ動作モード
動作モード
リロードモード
ソフトウェアトリガ動作
外部トリガ入力動作
外部ゲート入力動作
内部クロックモード
ワンショットモード
イベントカウントモード
(外部クロックモード)
リロードモード
ソフトウェアトリガ動作
ワンショットモード
■ 内部クロックモード
タ イ マ 制 御 状 態 レ ジ ス タ 上 位(TMCSRH)の カ ウ ン ト ロ ッ ク 設 定 ビ ッ ト(CSL1,
CSL0:bit11, bit10)に "00B" や "01B", "10B" を設定した場合は , 内部クロックモードにな
ります。
内部クロックモード時は , 以下の 3 種類の動作モードを選択できます。
● ソフトウェアトリガ動作
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" が設定されソフトウェアトリガビット(TRG:bit0)に "1" が設定されるとカウント
を開始します。TRG ビットによるトリガ入力は , 外部ゲート入力と同様に常に外部トリ
ガ入力に対し有効です。
228
第 12 章 16 ビットリロードタイマ
● 外部トリガ入力動作
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" が設定されている場合に , 動作モード設定ビット(MOD2 ∼ MOD0:bit9 ∼ bit7)に
よって設定されているトリガ入力の有効ビット(立上り , 立下り , 両エッジから設定可
能)が TIN0, TIN1 端子へ入力されると , カウントを開始します。
● 外部ゲート入力動作
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" が設定されている場合に , 動作モード設定ビット(MOD2 ∼ MOD0:bit9 ∼ bit7)に
よって設定されているゲート入力の有効レベル("L" または "H" を設定可能)が TIN0,
TIN1 端子へ入力されると , カウントを開始します。
■ イベントカウントモード(外部クロックモード)
タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1)のカウントブロック設定ビット
(CSL1, CSL0:bit11, bit10)
に "11B" を設定した場合に , 動作設定ビット
(MOD2 ∼ MOD0:
bit9 ∼ bit7)によって設定されているトリガ入力の有効エッジ(立上り , 立下り , 両エッ
ジから設定可能)が TIN0, TIN1 端子へ入力されると , カウントを開始します。一定周期
の外部クロックを入力する場合は , インターバルタイマとしても使用できます。
■ カウンタ動作
● リロードモード
16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH")により 16 ビットリロー
ドレジスタ上位(TMRDH0, TMRDH1)の値を 16 ビットダウンカウンタへロードし ,
カウントを開始します。また , アンダフローにより割込み要求を出力しますので , イン
ターバルタイマとして使用できます。
16 ビットリロードタイマ用インターバル時間を表 12.1-2 に示します。
表 12.1-2 16 ビットリロードタイマのインターバル時間
カウントクロック
内部カウントクロック
外部カウントクロック
カウントクロック周期
インターバル時間
21φ(0.125µs)
0.125µs ∼ 8.192ms
23/φ(0.5µs)
0.5µs ∼ 32.768ms
25/φ(2.0µs)
2.0µs ∼ 131.1ms
23/φ(0.5µs)以上
0.5µs 以上
φ: マシンクロック
( )内はマシンクロックが 16MHZ の場合です。
● ワンショットモード
カウントダウンやカウント停止の間にアンダフロー("0000H" → "FFFFH")が発生した
場合 , アンダフローの発生のために割込みが発生します。
カウンタ動作中 , カウンタが進行中であることを示す矩形波を TO0 と TO1 端子から出
力できます。
229
第 12 章 16 ビットリロードタイマ
< 参考 >
• 16 ビットリロードタイマ 0 は , UART0 のボーレート生成に使用できます。
• 16 ビットリロードタイマ 1 は , UART1 のボーレート生成や , A/D コンバータの
起動トリガに使用できます。
■ 16 ビットリロードタイマの割込みと EI2OS
16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH")により , 割込み要求を
出力します。
16 ビットリロードタイマの割込みと EI2OS を表 12.1-3 に示します。
表 12.1-3 16 ビットリロードタイマの割込みと EI2OS
チャネル
16 ビット
リロード
タイマ 0*1
割込み
番号
#30(1EH)
割込み制御レジスタ
ベクタテーブルのアドレス
EI2OS
レジスタ名
アドレス
下位
上位
バンク
ICR09
0000B9H
FFFF84H
FFFF85H
FFFF86H
○
16 ビット
リロード
タイマ 1*2
#18(12H)
ICR03
0000BAH
FFFFB4H
FFFFB5H
FFFB6H
○ : 使用可能
*1 :16 ビットリロードタイマ "0" のアンダフローと同じ割込み番号が 16 ビットタイマ 0, 1, 2 カウンタボロー
に割当てられます。
*2 :16 ビットリロードタイマ "1" のアンダフローと同じ割込み番号が 16 ビットアウトプウトコンペアのチャ
ネル 2 に割当てられます。
230
第 12 章 16 ビットリロードタイマ
12.2
16 ビットリロードタイマのブロックダイヤグラム
16 ビットリロードタイマ 0, 1 は , それぞれ以下の 7 種類のブロックで構成されてい
ます。
• カウントクロック生成回路
• リロード制御回路
• 出力制御回路
• 動作制御回路
• 16 ビットタイマレジスタ(TMRH0, TMRH1, TMRL0, TMRL1)
• 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)
• タイマ制御状態レジスタ(TMCSRH0, TMCSRH1, TMCSRL0, TMCSRL1)
■ 16 ビットリロードタイマのブロックダイヤグラム
16 ビットリロードタイマのブロックダイヤグラムを図 12.2-1 に示します。
図 12.2-1 16 ビットリロードタイマのブロックダイヤグラム
内部データバス
TMRDL0*1
<TMRDL1>
16ビットリロードレジスタ
リロード信号
TMRL0*1
<TMRL1>
リロード
制御回路
16ビットタイマレジスタ
カウントクロック生成回路
マシン
クロック
プリ
3
スケーラ
CLK
ゲート
入力
クリア
有効
クロック
判定回路
ウェイト信号
UART0とUART*1
<A/Dコンバータ>
CLK
出力制御回路
内部
クロック
端子
クロック
セレクタ
入力制御
回路
TIN0*1
<TIN1>
外部クロック
3
2
反転
出力信号
生成回路
-
-
TO0*1
<TO1>
セレクト
信号
機能選択
-
端子
許可
動作
制御回路
- CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE UF CNTE TRG
タイマ制御状態レジスタ(TMCSRH,L0)*1
<TMCSRH,L1>
割込み要求信号
#30(1EH)*2
<#18(12H)>
*1:このレジスタはチャネル0とチャネル1を含みます。< >はチャネル1のレジスタを示します。
*2:割込み番号
231
第 12 章 16 ビットリロードタイマ
● カウントクロック生成回路
マシンクロックまたは外部入力クロックから 16 ビットリロードタイマ用のカウントク
ロックを生成します。
● リロード制御回路
タイマ起動とアンダフロー発生時にリロード動作を制御します。
● 出力制御回路
16 ビットダウンカウンタのアンダフローによる TO 端子出力の反転制御と , TO 端子出
力の許可 / 禁止を制御します。
● 動作制御回路
16 ビットダウンカウンタの起動 / 停止を制御します。
● 16 ビットタイマレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)
16 ビットダウンカウンタです。読出しの間は , 現在のカウンタ値が読み出されます。
● 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)
16 ビットダウンカウンタへのロード値を設定するレジスタです。16 ビットリロードレ
ジスタの設定値を 16 ビットダウンカウンタにロードし , ダウンカウントします。
● タイマ制御状態レジスタ(TMCSRH0, TMCSRH1, TMCSRL0, TMCSRL1)
このレジスタは , 16 ビットリロードタイマのカウントクロックと動作モードを選択し
た後 , 動作条件を設定し , ソフトウェアにより起動しカウントを許可 / 禁止にして , 割
込みと状態を制御します。リロードまたはワンショットモードおよび端子出力レベル
を選択した後 , タイマ出力を許可 / 禁止にして , 割込みと状態を制御します。
232
第 12 章 16 ビットリロードタイマ
16 ビットリロードタイマの端子
12.3
16 ビットリロードタイマの端子について説明します。また端子のブロックダイヤグ
ラムも示します。
■ 16 ビットリロードタイマの端子
16 ビットリロードタイマの端子は , 汎用入出力ポートと兼用になっています。
端子状態や I/O 形式 , 16 ビットリロードタイマを使用するにあたって必要とする設定
を表 12.3-1 に示します。
表 12.3-1 16 ビットリロードタイマの端子
端子名
端子機能
入力形式
P15/INT5/
TIN0
ポート 1 入出力 /
外部割込み入力 /
タイマ入力
P16/INT6/
TO0
ポート 1 入出力 /
外部割込み入力 /
タイマ入力
P20/TIN1
ポート 2 入出力 /
タイマ出力
P21/TO1
ポート 2 入出力 /
タイマ出力
プルアップ
オプション
スタンバイ
制御
端子設定
入力ポートに設定
(DDR1:bit7=0)
選択可
CMOS 出力 /
CMOS ヒス
テリシス入力
あり
タイマ出力を " 許可 " に設定
(TMCSRL0:OUTE =1)
入力ポートに設定
(DDR2:bit0 =0)
なし
タイマ出力を " 許可 " に設定
(TMCSRL1:OUTE =1)
■ 16 ビットリロードタイマ端子のブロックダイヤグラム
16 ビットリロードタイマ端子のブロックダイヤグラムを図 12.3-1 に示します。
図 12.3-1 16 ビットリロードタイマの端子部のブロックダイヤグラム
リリース入力*
PDR(ポートデータレジスタ)
リソース出力*
リソース出力許可信号*
内部データバス
PDR読出し
出力ラッチ
P-ch
PDR2書込み
端子
DDR(ポート方向レジスタ)
方向ラッチ
N-ch
DDR書込み
スタンバイ制御信号(SPL=1)
DDR読出し
スタンバイ制御信号:SPL=1によるストップおよびクロックモード
*:リソース用の端子だけはリソースI/Oとして使用します。
233
第 12 章 16 ビットリロードタイマ
12.4
16 ビットリロードタイマのレジスタ
16 ビットリロードタイマのレジスタ一覧を示します。
■ 16 ビットリロードタイマのレジスタ一覧
16 ビットリロードタイマのレジスタを図 12.4-1 に示します。
図 12.4-1 16 ビットリロードタイマのレジスタ
タイマ制御状態レジスタ(上位)
bit 15
リード/ライト
初期値
14
13
12
11
10
9
8
CSL1
CSL0
MOD2
MOD1
-
-
R/W
0
R/W
0
R/W
0
R/W
0
6
5
4
3
2
1
0
MOD0
OUTE
OUTL
RELD
INTE
UF
CNTE
TRG
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
14
13
12
11
10
9
8
D15
D14
D13
D12
D11
D10
D9
D8
R
X
R
X
R
X
R
X
R
X
R
X
R
X
R
X
-
-
TMCSRH0,1
タイマ制御状態レジスタ(下位)
bit 7
リード/ライト
初期値
TMCSRL0,1
16ビットタイマレジスタ(上位)
bit 15
リード/ライト
初期値
TMRH0,1
16ビットタイマレジスタ(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R
X
R
X
R
X
R
X
R
X
R
X
R
X
R
X
14
13
12
11
10
9
8
D15
D14
D13
D12
D11
D10
D9
D8
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
TMRL0,1
16ビットリロードレジスタ(上位)
bit 15
リード/ライト
初期値
TMRDH0,1
16ビットリロードレジスタ(下位)
bit
リード/ライト
初期値
234
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
TMRDL0,1
第 12 章 16 ビットリロードタイマ
12.4.1
タイマ制御状態レジスタ上位(TMCSRH0,
TMCSRH1)
タイマ制御状態レジスタ(TMCSRH0, TMCSRH1)の bit11 ∼ bit7 により , 16 ビッ
トリロードタイマの動作モードと動作条件を設定します。
■ タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1)
図 12.4-2 タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1)
bit
15
14
13
12
11
10
-
-
-
-
CSL1 CSL0 MOD2 MOD1 MOD0
-
-
-
-
R/W
R/W
9
8
R/W
R/W
7
初期値
----00000B
R/W
動作モード選択ビット
(内部クロックモード時)
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
立上りエッジ
トリガ入力
ゲート入力
0
0
X
0
1
X
1
0
X
1
1
CSL1 CSL0
0
0
0
1
1
0
1
1
"H"レベル
動作モード選択ビット
(イベントカウントモード時)
入力端子機能
X
立下りエッジ
―
有効エッジ
―
立上りエッジ
トリガ入力
立下りエッジ
両エッジ
カウントクロック選択ビット
機能
カウントクロック
21/φ(0.125µs)
内部クロックモード
23/φ(0.5µs)
25/φ(2.0µs)
イベントカウントモード
外部イベント入力
R/W :リード/ライト
X :不定
- :初期値
:未定義
φ :マシンサイクル。( )はマシンクロック16MHz時の値を示します。
235
第 12 章 16 ビットリロードタイマ
表 12.4-1 タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1)
ビット名
bit15
∼
bit12
bit11,
bit10
−:
未定義ビット
CSL1, CSL0:
カウントク
ロック選択
ビット
機 能
•
•
読出し値は不定値です。
このビットへの書込みは , 動作へ影響しません。
•
•
このビットは , 16 ビットリロードタイマのカウントクロックを設定します。
これらのビットに "11B", "10B", "01B", "00B" を設定した場合 :
•
内部クロックモードが設定されます。内部クロックはこのモード時にお
いてカウントします。
これらのビットに "11B" を設定した場合 :
イベントカウントモードが設定されます。外部クロックのエッジはこの
モード時においてカウントされます。
bit9
∼
bit7
236
MOD2,
MOD1,
MOD0:
動作モード選
択ビット
< 内部クロックモード時 >
• MOD2:bit9 は , 入力端子の機能を設定します。また , bit9 が "0" の場合は , 入
力端子はトリガ入力端子となり , 設定した有効エッジが入力されると , 16
ビットリロードレジスタ(TMRDH0, 1, TMRDL0, 1)の値を 16 ビットカウ
ンタへロードし , カウント動作を継続します。
• MOD1, MOD0:bit8, bit7 は , 有効エッジを設定します。
• MOD2:bit9 に "1" を設定した場合は , 入力端子はゲート入力となり , MOD0:
bit7 で設定した有効レベル信号が入力されている間 , カウントを継続しま
す。
• MOD1:bit8 に設定した値は , 動作に影響しません。
• MOD0:bit7 は有効レベルを設定します。
< イベントカウントモード時 >
• MOD2:bit9 に設定した値は , 動作に影響しません。任意の値("0" か "1")を
設定してください。
• 入力端子はイベント入力用のトリガ入力端子となり , 有効エッジは MOD1
と MOD0 ビットで設定されます。
第 12 章 16 ビットリロードタイマ
12.4.2
タイマ制御状態レジスタ下位(TMCSRL0,
TMCSRL1)
タイマ制御状態レジスタ(TMCSRL0, TMCSRL1)の下位 8 ビットであり , 16 ビッ
トリロードタイマの動作条件の設定 , カウント動作の許可 / 禁止の設定 , 割込み制御
および割込み要求の状態を確認する機能があります。
■ タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)
図 12.4-3 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)
bit
2
1
0
*
MOD0 OUTE OUTL RELD INTE
7
6
UF
CNTE
TRG
R/W
R/W
R/W
R/W
R/W
5
R/W
4
R/W
3
R/W
TRG
初期値
00000000B
ソフトウェアトリガビット
ライト時
リード時
0
常に"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
端子機能
タイマ出力許可ビット
各チャネルに対応するレジスタと端子
汎用入出力ポート
TMCSRL0
P16
TMCSRL1
P21
TO0
タイマ出力端子
TO1
1
R/W :リード/ライト
:初期値
* :MOD0:ビット7は,「12.4.1 タイマ制御状態レジスタ上位(TMCSRH0,TMCSRH1)」をご参照ください。
237
第 12 章 16 ビットリロードタイマ
表 12.4-2 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)
ビット名
bit6
bit5
OUTE:
タイマ出力許
可ビット
•
•
•
•
このビットは , タイマ出力端子への出力を許可 / 禁止します。
このビットに "0" を設定した場合 : 端子は汎用入出力ポートとなります。
このビットに "1" を設定した場合 : 端子はタイマ出力端子となります。
タイマ出力端子の出力波形は , リロードモードを設定した場合トグル波形を
出力し , ワンショットモードを設定した場合はカウント動作中を示す矩形波
を出力します。
OUTL:
端子出力レベ
ル選択ビット
•
•
タイマ出力端子への出力レベルを設定するビットです。
このビットに "0" を設定した場合と "1" を設定した場合では , 端子出力レベ
ルが逆になります。
RELD:
リロード選択
ビット
•
•
このビットは , リロード動作を許可します。
このビットに "0" を設定した場合 :
ワンショットモードとなり , 16 ビットカウンタのアンダフローによりカ
ウントを停止します。
このビットに "1" を設定した場合 :
リロードモードとなり , 16 ビットカウンタのアンダフローの発生と同時
に , 16 ビットリロードレジスタに設定した値が 16 ビットカウンタに
ロードされ , カウントを継続します。
bit4
bit3
bit2
機 能
•
INTE:
アンダフロー
割込み要求許
可ビット
•
•
このビットは割込み要求を許可 / 禁止します。
このビットに "1" を設定した場合 :
アンダフロー割込み要求フラグビット(UF)に "1" がセットされると ,
タイマは割込み要求を出力します。
UF:
アンダフロー
割込み要求フ
ラグビット
•
このビットは , 16 ビットカウンタのアンダフローにより "1" がセットされま
す。
アンダフロー割込み要求許可ビット(INTE)に "1" を設定している場合にこ
のビットに "1" がセットされると割込み要求を出力します。
このビットに "0" を設定した場合 : 割込み要求がクリアされます。
このビットに "1" を設定した場合 : 動作へ影響しません。
このビットは , EI2OS の起動により , "0" にクリアされます。
•
•
•
•
bit1
CNTE:
カウント許可
ビット
•
•
このビットは , カウント動作を許可 / 禁止します。
このビットに "1" を設定した場合 :
カウンタは起動トリガ待ち状態となります。トリガの発生により , 実カ
ウントを開始します。
TRG:
ソフトウェア
トリガビット
•
このビットは , インタバルタイマ機能またはカウンタ機能をソフトウェアで
起動します。
このビットに "0" 設定した場合 : 動作へ影響しません。
このビットに "1" 設定した場合 :
ソフトウェアトリガとなり , 16 ビットリロードレジスタに設定した値が
16 ビットダウンカウンタにロードされ , カウントを開始します。
このビットの読出し値は "0" です。
動作モードにかかわりなく CNTE ビットに "1" が設定されたとき , トリガ入
力は常に " 許可 " です。
•
•
bit0
•
•
238
第 12 章 16 ビットリロードタイマ
16 ビットタイマレジスタ上位 , 下位
(TMRH0, TMRH1, TMRL0, TMRL1)
12.4.3
16 ビットタイマレジスタ上位 , 下位(TMRH0, TMRH1, TMRL0, TMRL1)は , 16
ビットダウンカウンタのカウント値を読み出すことができます。
■ 16 ビットタイマレジスタ上位 , 下位(TMRH0, TMRH1, TMRL0, TMRL1)
16 ビットタイマレジスタ上位 , 下位(TMRH0, TMRH1, TMRL0, TMRL1)を図 12.4-4
に示します。
図 12.4-4 16 ビットタイマレジスタ上位 , 下位(TMRH0, TMRH1, TMRL0, TMRL1)
16ビットタイマレジスタ,上位
bit
リード/ライト
初期値
15
14
13
12
11
10
9
8
D15
D14
D13
D12
D11
D10
D9
D8
R
X
R
X
R
X
R
X
R
X
R
X
R
X
R
X
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R
X
R
X
R
X
R
X
R
X
R
X
R
X
R
X
TMRH0,TMRH1
16ビットタイマレジスタ,下位
bit
リード/ライト
初期値
TMRL0,TMRL1
R :リードオンリ
X :不定
16ビットタイマレジスタは16ビットダウンカウンタのカウント値を読み出すことがで
きます。
カウント開始にあたりカウントが許可(TMCSRL0, TMCSRL1レジスタのCNTE:bit1=1)
されている場合 , 16 ビットリロードレジスタに書き込まれた値はこのレジスタへリ
ロードされ , カウントダウンを開始します。
このレジスタ値はカウンタ停止状態(TMCSRL0, TMCSRL1 レジスタの CNTE:bit1=0 の
ときに格納されます。
< 注意事項 >
• このレジスタはカウント中でも値を読み出すことが可能です。読出し時は必ず
ワード転送命令(MOVW A, 003AH)をご使用ください。
• 16 ビットタイマレジスタ(TMRH0, TMRH1, TMRL0, TMRL1)は読出し専用の
レジスタであり , 16 ビットリロードレジスタの同一アドレスに配置されていま
す。したがって , このレジスタへの書込みは TMRH0, TMRH1, TMRL0, TMRL1
レジスタの値へ影響しません。TMRH0, TMRH1, TMRL0, TMRL1 レジスタへの
書込みは実行されます。
239
第 12 章 16 ビットリロードタイマ
16 ビットリロードレジスタ上位 , 下位
(TMRDH0, TMRDH1, TMRDL0, TMRDL1)
12.4.4
16 ビットリロードレジスタ上位 , 下位(TMRDH0, TMRDH1, TMRDL0, TMRDL1)
は , 16 ビットダウンカウンタへのリロード値を設定するレジスタです。16 ビットリ
ロードレジスタに設定された値が , 16 ビットダウンカウンタにリロードされ , ダウ
ンカウントを実行します。
■ 16 ビットリロードレジスタ上位 , 下位(TMRDH0, TMRDH1, TMRDL0, TMRDL1)
16 ビットリロードレジスタ上位 , 下位(TMRDH0, TMRDH1, TMRDL0, TMRDL1)を
図 12.4-5 に示します。
図 12.4-5 16 ビットリロードレジスタ上位 , 下位(TMRDH0, TMRDH1, TMRDL0, TMRDH1)
bit
リード/ライト
初期値
bit
リード/ライト
初期値
15
14
13
12
11
10
9
8
D15
D14
D13
D12
D11
D10
D9
D8
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
TMRDH0,TMRDH1
TMRDL0,TMRDL1
W :ライトオンリ
X :不定
16 ビ ッ ト リ ロ ー ド タ イ マ の モ ー ド に か か わ ら ず , カ ウ ン ト が 禁 止(TMCSRL0,
TMCSRL1 レジスタの CNTE:bit1=0)のときは , カウンタの初期値がこのレジスタに設
定されます。カウントが許可(TMCSRL0, TMCSRL1 レジスタの CNTE: レジスタ =1)
であり , かつカウントが開始したとき , このレジスタに書き込まれた値からカウントダ
ウンを開始します。
リロードモード時において , アンダフローが発生しダウンカントが継続しているとき
には , 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定
された値はカウンタへリロードされます。
< 注意事項 >
240
• 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)へ値を
設定する場合は , カウント動作を停止(TMCSRL0, TMCSRL1 の CNTE:bit1=0)
してください。
• 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)への設
定は , ワード転送命令(MOVW 003AH, A)をご使用ください。
• 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)は , 書
込み専用のレジスタであり , 読込み専用のレジスタである 16 ビットタイマレジ
スタ(TMRH0, TMRH1, TMRL0, TMRL1)と同一アドレスに配置されているた
め , 書込み値と読出し値は異なります。リードモディファイライト命令は使用で
きません。
第 12 章 16 ビットリロードタイマ
12.5
16 ビットリロードタイマの割込み
16 ビットリロードタイマは , 16 ビットダウンカウンタのアンダフロー時に割込み要
求を出力します。拡張インテリジェント I/O サービス(EI2OS)に対応しています。
■ 16 ビットリロードタイマの割込み
16 ビットリロードタイマの割込み制御ビットと割込み要因を表 12.5-1 に示します。
表 12.5-1 16 ビットリロードタイマの割込み制御ビットと割込み要因
16 ビットリロードタイマ 0
16 ビットリロードタイマ 1
アンダフロー割込み
要求フラグビット
TMCSRL0 の UF:bit2
TMCSRL1 の UF:bit2
割込み要求許可ビット
TMCSRL0 の INTE:bit3
TMCSRL1 の INTE:bit3
16 ビットダウンカウンタ
(TMRH0, TMRL0)のアンダフロー
割込み要因
16 ビットダウンカウンタ
(TMRH1, TMRL1)のアンダフロー
16 ビットリロードタイマでは , 16 ビットダウンカウンタのアンダフロー("0000H" →
"FFFFH")により , タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のアンダフ
ロー割込み要求フラグビット(UF:bit2)に "1" がセットされます。アンダフロー割込
み要求許可ビットが割込み要求を許可(TMCSRL0, TMCSRL1 の INTE:bit3=1)にしてい
る場合 , 割込み要求を割込みコントローラへ出力します。
■ 16 ビットリロードタイマの割込みと EI2OS 機能
16 ビットリロードタイマの割込みと EI2OS 機能を表 12.5-2 に示します。
表 12.5-2 16 ビットリロードタイマの割込みと EI2OS 機能
チャネル
16 ビット
リロード
タイマ 0*1
割込み
番号
#30(1EH)
割込み制御レジスタ
ベクタテーブルのアドレス
EI2OS
レジスタ名
アドレス
下位
上位
バンク
ICR09
0000B9H
FFFF84H
FFFF85H
FFFF86H
○
16 ビット
リロード
タイマ 1*2
#18(12H)
ICR03
0000B3H
FFFFB4H
FFFFB5H
FFFB6H
○ : 使用可能
*1 : 波形シーケンサ 16 ビットタイマカウンタボローと同じ割込み番号が , 16 ビットリロードタイマ 0 に割付
けられています。
*2 : アウトプットコンペア ch.2 一致と同じ割込み番号が , 16 ビットリロードタイマ 1 に割付けられています。
241
第 12 章 16 ビットリロードタイマ
12.6
16 ビットリロードタイマの動作
16 ビットリロードタイマの設定と , カウンタの動作状態について説明します。
■ 16 ビットリロードタイマの設定
● 内部クロックモードの設定
インターバルタイマとして動作させるには , 下位のレジスタを図 12.6-1 のように設定
してください。
図 12.6-1 内部クロックモードの設定
bit 15
14
13
12
-
-
-
- CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE UF CNTE TRG
TMCSRH0,TMCSRH1
TMCSRL0,TMCSRL1
11
10
"11B"以外
TMRDH0,TMRDH1
TMRDL0,TMRDL1
9
◎
8
◎
7
◎
6
◎
5
◎
4
◎
3
◎
2
1
◎
1
0
◎
カウンタの初期値(リロード値)を設定
◎ :使用ビット
1 :"1"を設定
● イベントカウントモードの設定
イベントカウンタとして動作させるには , 下位のレジスタを図 12.6-2 のように設定し
てください。
図 12.6-2 イベントカウンタモードの設定
bit 15
TMCSRH0,TMCSRH1
TMCSRL0,TMCSRL1
-
14
13
12
-
-
- CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE UF CNTE TRG
11
1
TMRDH0,TMRDH1
TMRDL0,TMRDL1
10
1
9
◎
8
◎
7
◎
6
◎
5
◎
4
◎
3
◎
2
◎
1
1
0
◎
カウンタの初期値(リロード値)を設定
DDR1
DDR2(PWC1用)
△
△
◎:使用ビット
△:使用する端子に対応するビットに"0"を設定
1 :"1"を設定
242
第 12 章 16 ビットリロードタイマ
■ カウンタの動作状態
カウンタの状態は , タイマ制御状態レジスタ(TMCSRL0, TMCSRL1)のカウント許可
ビット(CNTE:bit1)値と内部信号の起動トリガ待ち信号値(WAIT)で決まります。
STOP 状態(停止状態), WAIT 状態(起動トリガ待ち状態)および RUN 状態(動作状
態)が設定可能です。
これらのカウンタの状態遷移を図 12.6-3 に示します。
図 12.6-3 カウンタ状態遷移図
STOP状態
CNTE=0,WAIT=1
TIN端子 :入力禁止
TO端子 :汎用入出力ポート
リセット
カウンタ:停止時の値を保持
リセット直後は不定
CNTE:bit1=0
CNTE:bit1=0
CNTE=1
TRG:bit0=0
WAIT状態
CNTE=1,WAIT=1
TIN端子:トリガ入力のみ許可
TO端子 :初期値出力
UF:bit2=1
カウンタ:停止時の値を保持
RELD:bit4=0
リセット直後ロードするまでは不定 (ワンショットモード)
TRG=1
(ソフトトリガ)
TIN端子からの外部トリガ
CNTE:bit1=1
TRG:bit0=1
RUN状態
CNTE=1, WAIT=0
TIN端子 :TIN端子として機能
TO端子 :TO端子として機能
カウンタ:動作
UF:bit2=1
RELD:bit4=1
(リロードモード)
TRG:bit0=1
(ソフトウェアトリガ)
LOAD
CNTE=1,WAIT=0
リロードレジスタ値をカウンタへロード
ロード終了
:ハードウェアによる状態遷移
:レジスタアクセスによる状態遷移
WAIT :内部信号の起動トリガ待ち信号値
TRG
:タイマ制御状態レジスタ(TMCSRL0,1)のソフトウェアトリガビット
CNTE :タイマ制御状態レジスタ(TMCSRL0,1)のカウント許可ビット
UF :タイマ制御状態レジスタ(TMCSRL0,1)のアンダフロー割込み要求フラグビット
RELD :タイマ制御状態レジスタ(TMCSRL0,1)のリロード選択ビット
243
第 12 章 16 ビットリロードタイマ
12.6.1
内部クロックモード(リロードモード)
内部カウントクロックに同期して , 16 ビットダウンカウンタをダウンカウントし ,
アンダフロー("0000H" → "FFFFH")のために , CPU への割込み要求を出力しま
す。また , タイマ出力端子からトグル波形を出力できます。
■ 内部クロックモード(リロードモード)の動作
タイマ制御状態レジスタ(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" を設定してカウントが許可の場合に , ソフトウェアトリガビット(TRG:bit0)に
"1" を設定あるいは外部トリガによりタイマを開始すると , 16 ビットリロードレジスタ
(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定した値が 16 ビットダウンカウンタ
にリロードされ , ダウンカウントを開始します。カウント許可ビット(CNTE:bit1)と
ソフトウェアトリガビット(TRG:bit0)同時に "1" を設定したときにカウント動作を許
可すると , 同時にカウントを開始します。
16 ビットカウンタのアンダフロー("0000H" → "FFFFH")により , 16 ビットリロードレ
ジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定した値が , 16 ビットカウン
タにリロードされ , カウントを継続します。アンダフロー割込み要求許可ビット
(INTE:bit3)に "1" を設定しているときに , タイマ制御状態レジスタ下位(TMCSRL0,
TMCSRL1)のアンダフロー割込み要求フラグビット(UF:bit2)に "1" が設定されると ,
割込み要求を出力します。
TO0, TO1 端子からは , アンダフローごとに反転するトグル波形が出力されます。
● ソフトウェアトリガ動作
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" を設定している場合に , ソウトウェアトリガビット(TRG:bit0)に "1" を設定する
と , カウントを開始します。
リロードモード時のソフトウェアトリガ動作を図 12.6-4 に示します。
図 12.6-4 リロードモードのカウント動作(ソフトウェアトリガ動作)
カウントクロック
カウンタ
データロード信号
-1
リロードデータ
0000H
-1
リロードデータ
0000H
-1
リロードデータ
UFビット
CNTEビット
TRGビット
TO端子
1マシンサイクル*
*:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。
244
0000H
-1
リロードデータ
第 12 章 16 ビットリロードタイマ
● 外部トリガ入力動作
タイマ制御状態レジスタ(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" を設定している場合に , 動作モード選択ビット(MOD2, MOD1, MOD0)で設定
しているトリガ入力の有効エッジ(立上り , 立下り , 両エッジから設定可能)が TIN 端
子に入力されると , カウントを開始します。
リロードモード時における外部トリガ入力動作を図 12.6-5 に示します。
図 12.6-5 リロードモードのカウント動作(外部トリガ入力動作)
カウントクロック
カウンタ
データロード信号
-1
リロードデータ
0000H
-1
リロードデータ
0000H
-1
0000H
リロードデータ
-1
リロードデータ
UFビット
CNTEビット
TIN端子
2~2.5マシンサイクル*
TO端子
*:外部トリガ入力からリロードデータロードまで,2~2.5マシンサイクルの時間がかかります。
< 注意事項 >
TIN0, TIN1 端子へ入力するトリガパルス幅は , 2/φ(φ : マシンクロック)以上とし
ください。
245
第 12 章 16 ビットリロードタイマ
● ゲート入力動作
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" を設定している場合に , ソフトウェアトリガビット(TRG:bit0)に "1" を設定する
と , カウントを開始します。
動作モード選択ビット(MOD2, MOD1, MOD0)で設定しているゲート入力の許可レベ
ル("L" または "H" を設定可能)が TIN 端子に入力されている間 , カウントします。
リロードモード時におけるゲート入力動作を図 12.6-6 に示します。
図 12.6-6 リロードモードのカウント動作(外部ゲート入力動作)
カウントクロック
カウンタ
リロードデータ
-1
-1
-1
0000H
-1
-1
リロードデータ
データロード信号
UFビット
CNTEビット
TRGビット
TIN端子
1マシンサイクル*
TO端子
*:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。
< 注意事項 >
246
TIN0, TIN1 端子へ入力するゲート入力のパルス幅は , 2/φ(φ: マシンクロック)以
上としてください。
第 12 章 16 ビットリロードタイマ
12.6.2
内部クロックモード(ワンショットモード)
内部カウントクロックに同期して , 16 ビットカウンタのダウンカウント用 16 ビット
リロードタイマを使用し , アンダフロー("0000H" → "FFFFH")のために , CPU に
対する割込み要求を出力します。また , TO 端子から , カウント中を示す矩形波を出
力できます。
■ 内部クロックモード(ワンショットモード)
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" を設定している場合に , ソフトウェアトリガビット(TRG:bit0)に "1" を設定ま
たは動作モード選択ビット(MOD2, MOD1, MOD0)で選択されたトリガ入力の有効
エッジ(立上り , 立下り , 両エッジから設定可能)が TIN 端子に入力されると , 16 ビッ
トリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定した値が 16
ビットカウンタにリロードされ , ダウンカウントを開始します。カウント許可ビット
(CNT:bit1)とソフトウェアトリガビット(TRG:bit0)同時に "1" を設定した場合は , カ
ウントを許可すると同時にカウントを開始します。
16 ビットカウンタのアンダフロー("0000H" → "FFFFH")により , 16 ビットカウンタは
"FFFFH" の状態でカウントを停止します。
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のアンダフロー割込み要求フラ
グビット(UF:bit2)に"1"がセットされ, アンダフロー割込み要求許可ビット
(INTE:bit3)
に "1" を設定している場合は , 割込み要求を出力します。
TO0, TO1 端子からは , カウント中を示す矩形波を出力できます。
● ソフトウェアトリガ動作
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" を設定している場合に , ソウトウェアトリガビット(TRG:bit0)に "1" を設定する
と , カウントを開始します。
ワンショットモード時におけるソフトウェアトリガ動作を図 12.6-7 に示します。
図 12.6-7 ワンショットモードのカウント動作(ソフトウェアトリガ動作)
カウントクロック
カウンタ
データロード信号
-1
0000H FFFFH
リロードデータ
-1
0000H FFFFH
リロードデータ
UFビット
CNTEビット
TRGビット
1マシンサイクル*
TO端子
起動トリガ入力待ち
*:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。
247
第 12 章 16 ビットリロードタイマ
● 外部トリガ入力動作
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" を設定している場合に , 動作モード選択ビット(MOD2, MOD1, MOD0)で設定し
ているトリガ入力の有効エッジ(立上り , 立下り , 両エッジから設定可能)が TIN 端子
に入力されると , カウントを開始します。
ワンショットモード時における外部トリガ入力動作を図 12.6-8 に示します。
図 12.6-8 ワンショットモードのカウント動作(外部トリガ入力動作)
カウントクロック
カウンタ
-1
データロード信号
リロードデータ
0000H FFFFH
-1
0000H FFFFH
リロードデータ
UFビット
CNTEビット
TIN端子
2~2.5マシンサイクル*
TO端子
起動トリガ入力待ち
*:外部トリガ入力からリロードデータロードまで,2~2.5マシンサイクルの時間がかかります。
< 注意事項 >
248
TIN0, TIN1 端子へ入力するトリガパルス幅は , 2/φ(φ: マシンクロック)以上として
ください。
第 12 章 16 ビットリロードタイマ
● ゲート入力動作
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" を設定している場合に , ソフトウェアトリガビット(TRG:bit0)に "1" を設定する
と , カウントを開始します。
動作モード選択ビット(MOD2, MOD1, MOD0)で設定しているトリガ入力の許可レ
ベル("L" または "H" を設定可能)が TIN0, TIN1 端子に入力されている間 , カウント
します。
ワンショットモード時における外部ゲート入力動作を図 12.6-9 に示します。
図 12.6-9 ワンショットモードのカウント動作(外部ゲート入力動作)
カウントクロック
カウンタ
リロードデータ
-1
0000H
FFFFH
-1
-1
リロードデータ
データロード信号
UFビット
CNTEビット
TRGビット
1マシンサイクル*
TIN端子
TO端子
起動トリガ入力待ち
*:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。
< 注意事項 >
TIN0, TIN1 端子へ入力するゲート入力のパルス幅は , 2/φ(φ: マシンクロック)以上
としてください。
249
第 12 章 16 ビットリロードタイマ
12.6.3
イベントカウントモード
TIN 端子に入力されたパルスの有効エッジを検出するごとに , 16 ビットダウンカウ
ンタをダウンカウントし , アンダフロー("0000H" → "FFFFH")により , CPU への
割込み要求を出力します。また , TO0, TO1 端子から , トグル波形または矩形波を出
力できます。
■ イベントカウントモード
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1)
に "1" を設定している場合に , ソフトウェアトリガビット(TGR:bit0)に "1" を設定する
と , 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定した
値が , 16 ビットカウンタにリロードされます。TIN 端子に入力されたパルス(外部カウ
ントクロック)の有効エッジ(立上り , 立下り , 両エッジから設定可能)を検出するごと
に , カウントします。
カウント許可ビット(CNTE:bit1)とソフトウェアトリガビット(TRG:bit0)同時に "1"
を設定した場合 , カウントを許可にすると同時に , カウントを開始します。
● リロードモードの動作
16 ビットカウンタのアンダフロー("0000H" → "FFFFH")時は , 16 ビットリロードレジ
スタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定した値が 16 ビットカウンタに
リロードされ , カウントを継続します。
16 ビットカウンタのアンダフロー("0000H" → "FFFFH")時は , タイマ制御状態レジ
スタ下位(TMCSRL0, TMCSRL1)のアンダフロー割込み要求フラグビット(UF:bit0)
に "1" が設定され , アンダフロー割込み要求許可ビット(INTE:bit3)に "1" を設定し
ている場合は , 割込み要求を出力します。
TO0, TO1 端子からは , アンダフローごとに反転するトグル波形を出力できます。リ
ロード時におけるカウント動作を図 12.6-10 に示します。
図 12.6-10 リロードモードのカウント動作(イベントカウントモード)
TIN端子
-1
カウンタ
データロード信号
リロードデータ
0000H
-1
リロードデータ
0000H
-1
リロードデータ
0000H
-1
リロードデータ
UFビット
CNTEビット
TRGビット
TO端子
1マシンサイクル*
*:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。
< 注意事項 >
250
TIN0, TIN1 端子へ入力されるパルスの "H" 幅および "L" 幅は , 4/φ(φ: マシンクロッ
ク)以上としてください。
第 12 章 16 ビットリロードタイマ
● ワンショットモードの動作
16 ビットカウンタのアンダフロー("0000H" → "FFFFH")時は , 16 ビットカウンタの値
は , "FFFFH" の状態でカウントを停止します。
タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のアンダフロー要求フラグビッ
ト(UF:bit0)に "1" がセットされ , アンダフロー割込み要求許可ビット(INTE:bit3)に
"1" を設定している場合は , 割込み要求を出力します。
TO0, TO1 端子からは , カウント中を示す矩形波を出力できます。ワンショットモード
時におけるカウント動作を図 12.6-11 に示します。
図 12.6-11 ワンショットモードのカウンタ動作(イベントカウントモード)
TIN端子
-1
カウンタ
データロード信号
0000H FFFFH
リロードデータ
-1
0000H FFFFH
リロードデータ
UFビット
CNTEビット
TRGビット
1マシンサイクル*
TO端子
起動トリガ入力待ち
*:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。
< 注意事項 >
TIN0, TIN1 端子へ入力されるパルスの "H" 幅および "L" 幅は , 4/φ(φ: マシンクロッ
ク)以上としてください。
251
第 12 章 16 ビットリロードタイマ
12.7
16 ビットリロードタイマ使用上の注意
16 ビットリロードタイマ使用上の注意を以下に示します。
■ 16 ビットリロードタイマ使用上の注意
● プログラム設定上の注意
• 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に値を設定
する場合は , カウントを停止(TMCSRL0, TMCSRL1 レジスタの CNTE:bit1=0)させ
てください。16 ビットタイマレジスタ(TMRH0, TMRH1, TMRL0, TMRL1)を読み
出す場合は , 必ずワード転送命令(MOVW A, dir)をご使用ください。
• タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1)のカウントクロック選択ビッ
ト(CSL1, CSL0)を変更する場合は , カウントを停止(TMCSRL0, TMCSRL1 レジ
スタの CNTE:bit1=0)してください。
● 割込みに関する注意
• タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のアンダフロー割込み要求
フラグビット(UF:bit2)に "1" が設定され , アンダフロー割込み要求許可ビット
(INTE:bit3)に "1" を設定している場合は , 割込み処理から復帰できません。アンダ
フロー割込み要求フラグビット(UF:bit2)は , 必ず "0" にクリアしてください。
• 16 ビットリロードタイマは , ほかのリソースと割込みベクタを共用しているため ,
同時に同じレベルの割込みを出力した場合は , 割込み番号が小さい方(優先度が高
い)を優先します。EI2OS が 16 ビットリロードタイマによって使用される場合 , 共
用するリソースの割込みは禁止でなければなりません。
252
第 12 章 16 ビットリロードタイマ
12.8
16 ビットリロードタイマのプログラム例
16 ビットリロードタイマの内部クロックモードとイベントカウントモードのプログ
ラム例を示します。
■ 内部クロックモードのプログラム例
● 処理仕様
• 16ビットリロードタイマ0により, 25msのインターバルタイマ割込みを生成します。
• タイマはリロードモード時において , 割込みの繰返し生成のために使用します。
• 外部トリガ入力は使用せず , ソフトウェアトリガにより 16 ビットリロードタイマを
起動します。
• EI2OS は使用しません。
• 16MHZ はマシンクロック用 , 2μs はカウントクロック用です。
● コーディング例
ICR09 EQU 0000B9H
;16 ビットリロードタイマ用割込み制御レジスタ
TMCSRL EQU 000082H
; タイマ制御状態レジスタ下位
TMRL
EQU 000084H
;16 ビットタイマレジスタ下位
TMRDL EQU 000084H
;16 ビットリロードレジスタ下位
UF
EQU TMCSR:2
; アンダフロー割込み要求フラグビット
CNTE
EQU TMCSR:1
; カウント許可ビット
TRG
EQU TMCSR:0
; ソフトウエアトリガビット
;-------- メインプログラム -------------------------------------------CODE
CSEG
START:
;
:
; スタックポインタ (SP) は既に初期化されてい るもの
; と仮定します
CCR,#0BFH
; 割込み禁止
I:ICR09,#00H
; 割込みレベル 0(最強)
I:CNTE
; カウンタを一時停止
I:TMRD,#30D3H
;25ms タイマのデータを設定
I:TMCSR,#0000100000011011B
; インターバルタイマ動作 , クロック 2µs
; 外部トリガ禁止 , 外部出力禁止 ,
; リロードモード選択 , 割込み許可
; 割込みフラグクリア , カウンタ開始
MOV ILM,#07H
;PS 内の ILM レジスタをレベル 7 に設定
OR
CCR,#40H
; 割込み許可
LOOP: MOV A,#00H
; 無限プール
MOV A,#01H
;
BRA LOOP
;
;--------- 割込みプログラム ------------------------------------------WARI:
CLRB I:UF
; アンダフロー割込み要求フラグをクリア
; :
AND
MOV
CLRB
MOVW
MOVW
253
第 12 章 16 ビットリロードタイマ
ユーザ処理
:
RETI
;
;
; 割込みから復帰
CODE
ENDS
;--------- ベクタ設定 -----------------------------------------------VECT
CSEG ABS=0FFH
ORG 0FF84H
; 割込み #30(1EH)のベクタを設定
VECT
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH
START
00H
; リセットベクタを設定
; シングルチップモードを設定
START
■ イベントカウントモードのプログラム例
● 処理仕様
• 外部イベント入力端子に入力されるパルスの立上がりエッジを 16 ビットリロード
タイマ / カウンタ 0 で 10, 000 回カウントすると , 割込みを生成します。
• ワンショットモードで動作します。
• 外部トリガ入力は , 立上がりエッジを設定します。
• EI2OS は使用しません。
● コーディング例
ICR09 EQU 0000B9H
;16 ビットリロードタイマ用割込み制御レジスタ
TMCSR EQU 000082H
; タイマ制御状態レジスタ下位
TMR
EQU 000084H
;16 ビットタイマレジスタ下位
TMRD
EQU 000084H
;16 ビットリロードレジスタ下位
DDR1
EQU 000011H
; ポート方向レジスタ
UF
EQU TMCSR:2
; アンダフロー割込み要求フラグビット
CNTE
EQU TMCSR:1
; カウント許可ビット
TRG
EQU TMCSR:0
; ソフトウエアトリガビット
;--------- メインプログラム ------------------------------------------CODE
CSEG
START:
; :
; スタックポインタ(SP)は既に初期化されているものと
; 仮定します
CCR,#0BFH
; 割込み禁止
I:ICR09,#00H
; 割込みレベル 0(最強)
I:DDR1,#00H
;INT5 と TIN0 端子を入力に設定
I:CNTE
; カウンタを一時停止
I:TMRD,#2710H ; リロード値 10, 000 回の設定
I:TMCSR,#0000110010001011B
; カウンタ動作 , 外部イベント入力 , 立上りエッジ ,
; 外部出力禁止
; ワンショットモード設定 , 割込み許可
; 割込みフラグクリア , カウンタ開始
MOV
ILM,#07H
;PS 内の ILM レジスタをレベル 7 に設定
OR
CCR,#40H
; 割込み許可
LOOP: MOV
A,#00H
; 無限ループ
MOV
A,#01H
;
BRA
LOOP
AND
MOV
MOV
CLRB
MOVW
MOVW
254
第 12 章 16 ビットリロードタイマ
;--------- 割込みプログラム ------------------------------------------WARI:
CLRB I:UF
; アンダフロー割込み要求フラグをクリア
; :
; ユーザ処理
;
RETI
; 割込みから復帰
CODE ENDS
;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH
ORG
0FF84H
; 割込み #30(1EH)のベクタを設定
VECT
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH
START
00H
; リセットベクタを設定
; シングルチップモードを設定
START
255
第 12 章 16 ビットリロードタイマ
256
第 13 章
16 ビット PPG タイマ
16 ビット PPG タイマの機能と動作について説明
します(MB90467 では , PPG1 タイマ ch.1 未搭載
となります)。
13.1 16 ビット PPG タイマの概要
13.2 16 ビット PPG タイマのブロックダイヤグラム
13.3 16 ビット PPG タイマの端子
13.4 16 ビット PPG タイマのレジスタ
13.5 16 ビット PPG タイマ割込み
13.6 16 ビット PPG タイマの動作
13.7 16 ビット PPG タイマ使用上の注意
13.8 16 ビット PPG タイマのプログラム例
257
第 13 章 16 ビット PPG タイマ
13.1
16 ビット PPG タイマの概要
16 ビット PPG タイマは , 16 ビットダウンカウンタ , プリスケーラ , 16 ビット周期
設定バッファレジスタ , 16 ビットデューティ設定バッファレジスタ , 16 ビット制御
レジスタおよび PPG 出力端子から構成されています。
■ 16 ビット PPG タイマ(× 3)
16 ビット PPG タイマは , 16 ビットダウンカウンタ , プリスケーラ , 16 ビット周期設定
バッファレジスタ , 16 ビットデューティ設定バッファレジスタ , 16 ビット制御レジス
タおよび PPG 出力端子から構成されています。このモジュールを使用すると , 多機能
タイマからのソフトウェアトリガまたは GATE 信号で同期化されたパルスを出力でき
ます。多機能タイマについての詳細は , 「第 14 章 多機能タイマ」をご参照ください。
• カウンタ動作クロックは , 8 種類(φ, φ/2, φ/4, φ/8, φ/16, φ/32, φ/64, φ/128)の中から選
択できます(φ はマシンクロック)
。
• 割込みは , トリガまたはカウンタボローが発生した場合または PPG 立上り(通常極
性)が発生した場合または PPG 立下り(反転極性)が発生した場合に生成されます。
• PPG 出力動作 :16 ビット PPG タイマは , 周期およびデューティ比が可変のパルス波
形を出力できます。また , 16 ビット PPG タイマは , 外付け回路によ
り D/A コンバータとしても使用できます。
258
第 13 章 16 ビット PPG タイマ
16 ビット PPG タイマのブロックダイヤグラム
13.2
16 ビット PPG タイマのブロックダイヤグラムを示します。
■ 16 ビット PPG タイマのブロックダイヤグラム
図 13.2-1 16 ビット PPG タイマのブロックダイヤグラム
周期設定バッファレジスタ0,1,2
デューティ設定バッファレジスタ0,1,2
プリスケーラ
CKS2
CKS1
CKS0
周期設定レジスタ0,1,2
1/1
1/2
1/4
1/8
1/16
1/32
1/64
1/128
デューティ設定レジスタ0,1,2
コンパレータ
CLK
LOAD
16ビットダウン
カウンタ
MDSE
PGMS
OSEL
PPG0
または
PPG1
または
PPG2
POEN
STOP
START
BORROW
マシンクロックφ
ダウンカウンタレジスタ0,1,2
内部データバス
端子
S
Q
PPG0(多機能タイマ)
または
PPG1(マルチパルスジェネレータ)
または
PPG2
R
割込み
選択
割込み#14/#16/#32
多機能タイマからのGATE
(PPGチャネル0の場合)
IRS1 IRS0 IRQF IREN
エッジ検出
(PPGチャネル1&2の場合)
STGR CNTE RTRG
259
第 13 章 16 ビット PPG タイマ
13.3
16 ビット PPG タイマの端子
16 ビット PPG タイマの端子について説明します。また端子のブロックダイヤグラ
ムも示します。
■ 16 ビット PPG タイマの端子
16 ビット PPG タイマの端子は , 汎用入出力ポートと共用されます。端子の機能や I/O
形式 , 端子の設定(16 ビット PPG タイマを使用するために必要な設定)を表 13.3-1 に
示します。
表 13.3-1 16 ビット PPG タイマの端子
端子名
端子の機能
P37/PPG0
ポート 3 入出力 ,
PPG0 出力
P36/
PPG1*
ポート 3 入出力 ,
PPG1 出力
P46/PPG2
ポート 4 入出力 ,
PPG2 出力
I/O 形式
スタンバイ制御
PPG0 タイマ出力設定
(PNCTL0:POEN=1)
CMOS 出力または
CMOS 入力
使用可能
CMOS 出力 , CMOS ヒ
ステリシス入力
*:MB90467 では , リソースが搭載されていないため , 削除となります。
260
端子設定
PPG1 タイマ出力許可設定許可
(PNCTL1:POEN=1)
PPG2 タイマ出力許可設定許可
(PNCTL2:POEN=1)
第 13 章 16 ビット PPG タイマ
■ 16 ビット PPG タイマ端子のブロックダイヤグラム
図 13.3-1 16 ビット PPG0, PPG1 タイマ端子のブロックダイヤグラム
リソース出力
リソース出力許可信号
内部データバス
ポートデータレジスタ(PDR)
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
図 13.3-2 16 ビット PPG2 タイマ端子のブロックダイヤグラム
リソース出力
リソース入力
リソース出力許可信号
ポートデータレジスタ(PDR)
内部データバス
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
261
第 13 章 16 ビット PPG タイマ
13.4
16 ビット PPG タイマのレジスタ
16 ビット PPG タイマのレジスタ一覧を示します。
■ 16 ビット PPG タイマのレジスタ
図 13.4-1 16 ビット PPG タイマのレジスタ
PPG ダウンカウンタレジスタ(上位)
bit
リード/ライト
初期値
15
14
13
12
11
10
9
8
DC15
DC14
DC13
DC12
DC11
DC10
DC09
DC08
R
1
R
1
R
1
R
1
R
1
R
1
R
1
R
1
PDCRH0~PDCRH2
PPG ダウンカウンタレジスタ(下位)
7
6
5
4
3
2
1
0
DC07
DC06
DC05
DC04
DC03
DC02
DC01
DC00
R
1
R
1
R
1
R
1
R
1
R
1
R
1
R
1
bit
リード/ライト
初期値
PDCRL0~PDCRL2
PPG 周期設定バッファレジスタ(上位)
bit
リード/ライト
初期値
15
14
13
12
11
10
9
8
CS15
CS14
CS13
CS12
CS11
CS10
CS09
CS08
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
PCSRH0 ~PCSRH2
PPG 周期設定バッファレジスタ(下位)
7
bit
6
5
4
3
2
1
0
CS07
CS06
CS05
CS04
CS03
CS02
CS01
CS00
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
リード/ライト
初期値
PCSRL0~PCSRL2
PPG デューティ設定バッファレジスタ(上位)
bit
リード/ライト
初期値
15
14
13
12
11
10
9
8
DU15
DU14
DU13
DU12
DU11
DU10
DU09
DU08
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
PDUTH0 ~PDUTH2
PPG デューティ設定バッファレジスタ(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
DU07
DU06
DU05
DU04
DU03
DU02
DU01
DU00
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
PDUTL0~ PDUTL2
( 続く )
262
第 13 章 16 ビット PPG タイマ
( 続き )
PPG 状態制御レジスタ(上位)
bit
リード/ライト
初期値
15
14
13
12
11
10
9
8
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
0
PCNTH0~PCNTH2
PPG 状態制御レジスタ(下位)
bit
リード/ライト
初期値
7
-
6
-
5
4
3
2
1
0
IREN
IRQF
IRS1
IRS0
POEN
OSEL
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
PCNTL0~PCNTL2
263
第 13 章 16 ビット PPG タイマ
13.4.1
PPG ダウンカウンタレジスタ(PDCRH, PDCRL0 ∼
PDCRL2)
PPG ダウンカウンタレジスタ(PDCRH, PDCRL0 ∼ PDCRL2)は , 16 ビット PPG
ダウンカウンタのカウント値を読み出すために使用する 16 ビットレジスタです。
■ PPG ダウンカウンタレジスタ(PDCRH, PDCRL0 ∼ PDCRL2)
図 13.4-2 PPG ダウンカウンタレジスタ(PDCRH, PDCRL0 ∼ PDCRL2)
PPG ダウンカウンタレジスタ(上位)
bit 15
リード/ライト
初期値
14
13
12
11
10
9
8
DC15
DC14
DC13
DC12
DC11
DC10
DC09
DC08
R
1
R
1
R
1
R
1
R
1
R
1
R
1
R
1
PDCRH0~PDCRH2
PPG ダウンカウンタレジスタ(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
DC07
DC06
DC05
DC04
DC03
DC02
DC01
DC00
R
1
R
1
R
1
R
1
R
1
R
1
R
1
R
1
PDCRL0~PDCRL2
これらのレジスタは , 16 ビットダウンカウンタの値を格納するために使用する 16 ビッ
トレジスタです。これらのレジスタの初期値は , すべて "1" です。これらのレジスタへ
アクセスする場合は , ワードアクセス命令をご使用ください。これらのレジスタは , 読
出し専用レジスタです。
264
第 13 章 16 ビット PPG タイマ
13.4.2
PPG 周期設定バッファレジスタ
(PCSRH, PCSRL0 ∼ PCSRL2)
PPG 周期設定バッファレジスタは , PPG で生成される出力パルスの周期を設定する
ために使用します。
■ PPG 周期設定バッファレジスタ(PCSRH, PCSRL0 ∼ PCSRL2)
図 13.4-3 PPG 周期設定バッファレジスタ(PCSRH, CSRL0 ∼ CSRL2)
PPG 周波数設定バッファレジスタ
(上位)
bit 15
リード/ライト
初期値
14
13
12
11
10
9
8
CS15
CS14
CS13
CS12
CS11
CS10
CS09
CS08
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
PCSRH0~PCSRH2
PPG 周波数設定バッファレジスタ
(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
CS07
CS06
CS05
CS04
CS03
CS02
CS01
CS00
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
PCSRL0~PCSRL2
これらのレジスタは , PPG で生成される出力パルスの周期を設定するために使用する
16 ビットレジスタです。これらのレジスタの初期値は不定なので , 動作を開始する前
にレジスタに値を設定しなければなりません。これらのレジスタへアクセスする場合
は , ワードアクセス命令をご使用ください。これらのレジスタは , 書込み専用レジスタ
です。
PPG 周期設定バッファレジスタから周期設定レジスタへのデータ転送は , カウンタボ
ロー , トリガまたは再トリガが発生した場合に実行されます。
PPG 周期設定バッファレジスタを更新する場合は , この PPG 周期設定バッファレジス
タを更新した後に , この更新値をデューティ設定バッファレジスタに書き込まなけれ
ばなりません。すなわち , PPG 周期設定バッファレジスタのみの更新は禁止されてい
ます。
265
第 13 章 16 ビット PPG タイマ
13.4.3
PPG デューティ設定バッファレジスタ
(PDUTH, PDUTL0 ∼ PDUTL2)
PPG デューティ設定バッファレジスタは , PPG で生成される出力パルスのデュー
ティ比を制御するために使用します。
■ PPG デューティ設定バッファレジスタ(PDUTH, PDUTL0 ∼ PDUTL2)
図 13.4-4 PPG デューティ設定バッファレジスタ(PDUTH, PDUTL0 ∼ PDUTL2)
PPG デューティ設定バッファレジスタ
(上位)
bit 15
リード/ライト
初期値
14
13
12
11
10
9
8
DU15
DU14
DU13
DU12
DU11
DU10
DU09
DU08
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
PDUTH0~PDUTH2
PPGデューティ設定バッファレジスタ
(下位)
bit
7
6
5
4
3
2
1
0
DU07
DU06
DU05
DU04
DU03
DU02
DU01
DU00
W
X
W
X
W
X
W
X
W
X
W
X
W
X
W
X
リード/ライト
初期値
PDUTL0~PDUTL2
これらのレジスタは , PPG で生成される出力パルスのデューティ比を制御するために
使用する 16 ビットレジスタです。これらのレジスタの初期値は不定なので , 動作を開
始する前にレジスタに値を設定しなければなりません。これらのレジスタへアクセス
する場合は , ワードアクセス命令をご使用ください。これらのレジスタは , 書込み専用
レジスタです。
PPG デューティ設定バッファレジスタからデューティ設定レジスタへのデータ転送
は , カウンタボロー , トリガまたは再トリガが発生した場合に実行されます。
PPG 周期設定レジスタとデューティ設定レジスタに同じ値を設定すると , 通常極性の
場合はすべて "H" を出力し , 反転極性の場合は全て "L" を出力します。
PPG の出力は , "PCSR < PDUT" の場合は不定です。
PPG 周期設定バッファレジスタを更新しない場合は , PPG デューティ設定バッファレ
ジスタへの書込みは可能です。
266
第 13 章 16 ビット PPG タイマ
PPG 状態制御レジスタ(PCNTH, PCNTL0 ∼
PCNTL2)
13.4.4
PPG 状態制御レジスタは , 16 ビット PPG タイマの許可 / 禁止 , ソフトウェアトリガ ,
再トリガ制御割込みおよび出力極性に関する動作状態を設定するために使用します。
また状態チェックのためにも使用します。
■ PPG 状態制御レジスタ , 上位バイト(PCNTH0 ∼ PCNTH2)
図 13.4-5 PPG 状態制御レジスタ , 上位(PCNTH0 ∼ PCNTH2)
bit
15
14
13
12
11
10
9
8
CNTE
STGR
MDSE
RTRG
CKS2
CKS1
CKS0
PGMS
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
PGMS
PPG出力マスク許可ビット
0
PPG出力マスク禁止する
1
PPG出力マスク許可する
CKS2
CKS1
CKS0
0
0
0
0
0
1
φ/2(125ns,φ=16MHz)
0
1
0
φ/4(250ns,φ=16MHz)
0
1
1
1
0
0
φ/16(1µs,φ=16MHz)
1
0
1
φ/32(2µs,φ=16MHz)
1
1
0
φ/64(4µs,φ=16MHz)
1
1
1
φ/128(8µs,φ=16MHz)
カウンタクロック選択ビット
φ(62.5ns,φ=16MHz)
φ/8(500ns,φ=16MHz)
φ:マシンクロック
RTRG
0
再トリガ禁止する
1
再トリガ許可する
MDSE
モード選択ビット
0
PWMモード
1
ワンショットモード
STGR
ソフトウェアトリガビット
書込み
0
ソフトウェアトリガOFF
1
ソフトウェアトリガON
CNTE
R/W :リード/ライト
:初期値
再トリガ許可ビット
読出し
常に"0"読出す
タイマ許可ビット
0
PPGタイマを停止する
1
PPGタイマを許可にする
267
第 13 章 16 ビット PPG タイマ
表 13.4-1 PPG 状態制御レジスタ , 上位(PCNTH0 ∼ PCNTH2)
ビット名
機 能
•
•
•
このビットは , PPG タイマ動作を許可するために使用します。
このビットに "0" を設定した場合 : 動作が停止します。
このビットに "1" を設定した場合 :
PPG 動作が " 許可 " になり , PPG 動作がトリガによって開始されますの
を待つ状態になります。
bit15
CNTE:
タイマ許可
ビット
bit14
STGR:
ソフトウェア
トリガビット
•
•
•
このビットは , PPG をソフトウェアで起動するために使用します。
このビットに "1" を設定した場合 :PPG がソフトウェアで起動します。
このビットからは必ず "0" が読み出されます。
bit13
MDSE:
モード選択
ビット
•
•
このビットに "0" を設定した場合 :PPG は PWM モードで動作します。
このビットに "1" を設定した場合 :PPG はワンショットモードで動作しま
す。
bit12
RTRG:
再トリガ許可
ビット
•
•
•
このビットは , 動作中に PPG の再トリガ機能を許可するために使用します。
このビットに "0" を設定した場合 : 再トリガ機能は " 禁止 " になります。
このビットに "1" を設定した場合 : 再トリガ機能は " 許可 " になります。
CKS2, CKS1,
CKS0:
カウンタク
ロック選択
ビット
•
bit11
∼
bit9
これらのビットは , 16 ビット PPG タイマの動作クロックを選択するために
使用します。
このビットは , モード設定(PCNTH0 ∼ PCNTH2 レジスタの MDSE:bit13),
周期設定(PCSRH, L)またはデューティ設定(PDUTH, L)とは無関係に特
定レベルへの PPG 出力をマスクするために使用します。
• このビットに "0" を設定した場合 :PPG 出力マスク機能は " 禁止 " になりま
す。
• このビットに "1" を設定した場合 :PPG 出力は , 極性設定が " 通常 "
(PCNTL レジスタ OSEL:bit=0)の場合は必ず "L" がマスクされます。
• このビットに "1" を設定した場合 :PPG 出力は , 極性設定が " 反転 "
(PCNTL レジスタ OSEL:bit=0)の場合は必ず "H" がマスクされます。
( 注意事項 )
PPG 周期設定バッファレジスタ(PCSRH, L)と PPG デューティ設定バッ
ファレジスタ(PDUTH, L)に同じ値を設定すると , このビットが "1" 場合
で , かつ通常極性の場合はオール "H" を出力でき , 反転極性の場合はオール
"L" を出力できます。
•
bit8
268
PGMS:
PPG 出力マス
ク許可ビット
第 13 章 16 ビット PPG タイマ
■ PPG 状態制御レジスタ , 下位バイト(PCNTL0 ∼ PCNTL2 )
図 13.4-6 PPG 状態制御レジスタ , 下位(PCNTL0 ∼ PCNTL2)
bit
7
6
5
4
3
2
1
0
-
-
IREN
IRQF
IRS1
IRS0
POEN
OSEL
-
-
R/W
R/W
R/W
R/W
R/W
R/W
OSEL
出力反転ビット
0
通常極性
1
反転極性
POEN
出力許可ビット
0
汎用入出力ポート
1
PPG出力端子
IRS1
IRS0
割込みの種類
0
0
ゲートトリガ,ソフトウェアトリガ,
再トリガ(チャネル0のみ)
0
1
1
0
1
1
IRQF
R/W :リード/ライト
- :未使用
:初期値
初期値
--000000B
カウンタボロー
通常極性でのPPG出力立上りまたは
反転極性でのPPG出力立下り
(デューティ一致)
カウンタボローまたは通常極性での
PPG出力立上りまたは反転極性での
PPG出力立下り
PPG割込み要求フラグ
読出し
書込み
0
PPG割込みが生成されない
このビットを
クリアする
1
PPG割込みが生成されます
このビットを
影響を与えない
IREN
PPG割込み要求許可フラグ
0
割込み要求を禁止にする
1
割込み要求を許可にする
269
第 13 章 16 ビット PPG タイマ
表 13.4-2 PPG 状態制御レジスタ , 下位(PCNTL0 ∼ PCNTL2)
ビット名
bit7,
bit6
未使用ビット
bit5
IREN:
PPG 割込み要
求許可ビット
bit4
IRQF:
PPG 割込みフ
ラグビット
bit3,
bit2
IRS1, IRS0:
割込み選択
ビット
bit1
POEN:
出力許可ビッ
ト
bit0
OSEL:
出力反転ビッ
ト
機 能
•
•
読出し値は不定です。
このビットへの書みは動作へ影響しません。
•
•
このビットは , CPU への PPG 割込み要求を許可または禁止します。
このビットと割込みフラグ(IRQF)ビットが "1" の場合 , PPG は割込み要求
を出力します。
•
•
•
•
•
このビットは , PPG 割込みが発生すると "1" に設定されます。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 : このビットは影響を受けません。
リードモディファイライト動作時は必ず "1" が読み出されます。
このビットは , EI2OS がアクティブになった場合にもクリアされます。
•
これらのビットは , PPG タイマの割込み動作を選択するために使用します。
•
•
•
このビットは , PPG 出力端子からの出力を許可または禁止します。
このビットに "0" を設定した場合 : 端子は汎用ポートとして機能します。
このビットに "1" を設定した場合 : 端子は PPG タイマ出力端子として機能
します。
•
•
このビットは , PPG 出力端子の極性を選択します。
このビットに "0" を設定した場合 : 通常極性が選択されます。PPG は , 16
ビットダウンカウント値が PDUTH, L レジスタよりも大きい場合は "L" を出
力し , 16 ビットダウンカウント値が PDUTH, L レジスタ以下の場合は "H" を
出力します。
このビットに "1" を設定した場合 :PPG 出力は反転します。
•
270
第 13 章 16 ビット PPG タイマ
13.5
16 ビット PPG タイマ割込み
16 ビット PPG タイマは , 以下の場合に割込み要求を生成できます。
• トリガまたはカウンタボローが発生した場合
• 通常極性で PPG 立上りが発生した場合
• 反転極性で PPG 立下りが発生した場合
これらの割込み動作は PCNTL0 ∼ PCNTL2 レジスタの IRS1:bit3 と , IRS0:bit2 で
設定されます。また 16 ビット PPG タイマは , 拡張インテリジェント I/O サービス
(EI2OS)とも連係しています。
■ 16 ビット PPG タイマ割込み
16 ビット PPG タイマの割込み制御ビットと割込み要因を表 13.5-1 に示します。
表 13.5-1 16 ビット PPG タイマの割込み制御ビットと割込み要因
16 ビット PPG タイマ 0
16 ビット PPG タイマ 1
16 ビット PPG タイマ 2
割込みフラグビット
PCNTL0:IRQF(bit4)
PCNTL1:IRQF(bit4)
PCNTL2:IRQF(bit4)
割込み要求許可ビット
PCNTL0:IREN(bit5)
PCNTL1:IREN(bit5)
PCNTL2:IREN(bit5)
割込み種類選択ビット
割込み要因
PCNTL0:IRS1, IRS0
(bit3, bit2)
PCNTL1:IRS1, IRS0
(bit3, bit2)
PCNTL2:IRS1, IRS0
(bit3, bit2)
PCNTL0:IRS1, IRS0=00
16 ビットダウンカウンタ
(ch.0)のゲートトリガ ,
ソフトウェアトリガ , 再
トリガ
PCNTL1:IRS1, IRS0=00
16 ビットダウンカウンタ
(ch.1)のソフトウェアト
リガ , 再トリガ
PCNTL2:IRS1, IRS0=00
16 ビットダウンカウンタ
(ch.2)のソフトウェアト
リガ , 再トリガ
PCNTL0:IRS1, IRS0=00
16 ビットダウンカウンタ
(ch.0)のカウンタボロー
PCNTL1:IRS1, IRS0=01
16 ビットダウンカウンタ
(ch.1)のカウンタボロー
PCNTL2:IRS1, IRS0=00
16 ビットダウンカウンタ
(ch.2)のカウンタボロー
PCNTL0:IRS1, IRS0=00
通常極性での PPG0 出力
立上りまたは反転極性で
の PPG0 出力立下り
PCNTL1:IRS1, IRS0=00
通常極性での PPG1 出力
立上りまたは反転極性で
の PPG1 出力立下り
PCNTL2:IRS1, IRS0=00
通常極性での PPG2 出力
立上りまたは反転極性で
の PPG2 出力立下り
16 ビットダウンカウンタ
16 ビットダウンカウンタ
16 ビットダウンカウンタ
(ch.0)のカウンタボロー (ch.1)のカウンタボロー (ch.2)のカウンタボロー
または通常極性での PPG0 または通常極性での PPG1 または通常極性での PPG2
出力立上りまたは反転極
出力立上りまたは反転極
出力立上りまたは反転極
性での PPG2 出力立下り
性での PPG1 出力立下り
性での PPG0 出力立下り
16 ビット PPG タイマでは , PPG 状態制御レジスタ(PCNTL)の IRQF:bit4 に "1" が設
定され , 割込み要求が許可されると(PCNTL レジスタの IREN:bit5=1), 割込み要求が
割込みコントローラへ出力されます。
271
第 13 章 16 ビット PPG タイマ
■ 16 ビット PPG タイマ割込みと EI2OS
16 ビット PPG タイマ割込みと EI2OS を表 13.5-2 に示します。
表 13.5-2 16 ビット PPG タイマ割込みと EI2OS
割込み制御レジスタ
チャネル
16 ビット PPG
タイマ 0*1
16 ビット PPG
タイマ 1
*2
16 ビット PPG
タイマ 2*3
割込み
番号
ベクトルテーブルアドレス
EI2OS
レジスタ
名
アドレス
下位
中位
上位
#14
(0EH)
ICR01
0000B1H
FFFFC4H
FFFFC5H
FFFFC6H
#16
(10H)
ICR02
0000B2H
FFFFBCH
FFFFBDH
FFFFBEH
#32
(20H)
ICR10
0000BAH
FFFF7CH
FFFF7DH
FFFF7EH
○
*1 :16 ビット PPG タイマ 0 に割当てられた割込み制御レジスタと同じレジスタが PWC タイマ 0 に割当てられ
ます。
*2 :16 ビット PPG タイマ 1 に割当てられた割込み制御レジスタと同じレジスタが 16 ビットアウトプットコン
ペアチャネル 1 一致に割当てられます。
*3 :16 ビット PPG タイマ 2 に割当てられた割込み制御レジスタと同じレジスタが 16 ビットフリーランタイマ
0 検出に割当てられます。
■ 16 ビット PPG タイマの EI2OS 機能
16 ビット PPG タイマは EI2OS と連係する回路を持っているので , カウンタは , PPG 割
込みが発生すると EI2OS を起動できます。
ただし , EI2OS は , 割込み制御レジスタ(ICR)を共用するほかのリソースが割込みを
使用しない場合に限り使用可能です。たとえば , 16 ビット PPG タイマ 0 が EI2OS を使
用している場合 , アウトプットコンペアチャネル 0 一致の割込みは , 禁止にしなければ
なりません。
272
第 13 章 16 ビット PPG タイマ
13.6
16 ビット PPG タイマの動作
16 ビット PPG タイマは , PWM モードまたはワンショットモードで動作します。ま
た , 16 ビット PPG タイマでは再トリガを使用することもできます。
■ PWM モード(PCNTH レジスタの MDSE:bit13=0)
PWM 動作の場合 , 16 ビットダウンカウンタは , PCSR 値がロードされ , 有効なトリガが
検出された後 , カウントを開始します。16 ビットダウンカウンタは , “0” に達したら ,
PCSR 値がリロードされ , カウントを反復します。PPG 出力は , 16 ビットダウンカウン
タに PCSR 値がリロードされますと , 切り換わります。出力パルスの周期は PCSRH,
PCSRL レジスタを設定することで制御でき , デューティ比は PDUTH, PDUTL レジス
タを設定することで制御できます。
● 再トリガを無効にする(PCNTH レジスタの RTRG:bit12=0)
図 13.6-1 PWM モードにおいて再トリガを無効にする
カウンタ値
m
n
0
時間
立上りエッジが検出されます
トリガが無視されます
ソフトウェアトリガ
PPG
(通常極性)
(反転極性)
(1)
(2)
(1)=(n+1)*Tns
(2)=(m+1)*Tns
T:カウントクロック周期
m:PCSRH,Lレジスタ値
n:PDUTH,Lレジスタ値
273
第 13 章 16 ビット PPG タイマ
● 再トリガを有効にする(PCNTH レジスタの RTRG:bit12=1)
図 13.6-2 PWM モードにおいて再トリガを有効にする
カウンタ値
m
n
0
時間
立上りエッジが検出されます
トリガで再起動されます
ソフトウェアトリガ
PPG
(通常極性)
PPG
(反転極性)
(1)
(2)
T:カウントクロック周期
m:PCSRH,Lレジスタ値
n:PDUTH,Lレジスタ値
(1)=(n+1)*Tns
(2)=(m+1)*Tns
■ ワンショットモード(PCNTH レジスタの MDSE:bit13=1)
ワンショット動作の場合 , 指定された幅の単一パルスを有効なトリガで出力できます。
再トリガを有効にすると , 動作中にエッジが検出された場合 , カウンタに値がリロード
されます。
● 再トリガを無効にする(PCNTH レジスタの RTRG:bit12=0)
図 13.6-3 シングルショットモードにおいて再トリガを無効にする
カウンタ値
m
n
0
時間
立上りエッジが検出されます
トリガが無視されます
ソフトウェアトリガ
PPG
(通常極性)
PPG
(反転極性)
(1)
(2)
(1)=(n+1)*Tns
(2)=(m+1)*Tns
274
T:カウントクロック周期
m:PCSRH,Lレジスタ値
n:PDUTH,Lレジスタ値
第 13 章 16 ビット PPG タイマ
● 再トリガを有効にする(PCNTH レジスタの RTRG:bit12=1)
図 13.6-4 ワンショットモードにおいて再トリガを有効にする
カウンタ値
m
n
0
時間
立上りエッジが検出されます
トリガが再起動されます
ソフトウェアトリガ
PPG
(通常極性)
PPG
(反転極性)
(1)
(2)
(1)=(n+1)*Tns
(2)=(m+1)*Tns
T:カウントクロック周期
m:PCSRH,Lレジスタ値
n:PDUTH,Lレジスタ値
■ ゲートトリガ(PPG チャネル 0 の場合のみ)
ゲートトリガを使用した場合 , PPG はゲートトリガの立上がりエッジが検出されると
動作を開始し , ゲートトリガの立下りエッジが検出されると動作を停止します。PPG
は , その次の立上りエッジで動作を再開します。
図 13.6-5 再トリガを有効にした場合の PWM モードにおけるゲートトリガ
カウンタ値
m
n
0
時間
立上りエッジが検出されます
立下りエッジが検出されます
ソフトウェアトリガ
PPG
(通常極性)
(反転極性)
(1)
(2)
(1)=(n+1)*Tns
(2)=(m+1)*Tns
T:カウントクロック周期
m:PCSRH,Lレジスタ値
n:PDUTH,Lレジスタ値
275
第 13 章 16 ビット PPG タイマ
■ PPG 割込み
割込み種類選択ビット(PCNTL レジスタの IRS1, IRS0:bit3, bit2)で選択された 1 つの
割込みフラグ(PCNTL レジスタの IRQF:bit4)を共用する割込みとしては , 以下の 4 種
類があります。
• ゲートトリガ(PPG チャネル 0 の場合のみ), ソフトウェアトリガまたは再トリガ
• カウンタボロー
• デューティ一致(通常極性において PPG 出力立上りが発生した場合または反転極性
において PPG 出力立下りが発生した場合)
• カウンタボローまたはデューティ一致
図 13.6-6 PPG 割込みタイミング
ソフトウェア
トリガ
ロード
カウントクロック
カウンタ値
PPG出力
割込み
(ソフトウェアトリガ
による)
割込み
(デューティ一致による)
割込み
(カウンタボローによる)
276
0002H
0001H
0000H
0002H
第 13 章 16 ビット PPG タイマ
13.7
16 ビット PPG タイマ使用上の注意
16 ビット PPG タイマ使用上の注意を以下に示します。
■ 16 ビット PPG タイマ使用上の注意
● プログラム設定上の注意
• PPG 周期設定バッファレジスタ(PCSRH, PCSRL)を更新する場合は , この PPG 周
期設定バッファレジスタを更新した後 , この更新値を PPG デューティ設定バッファ
レジスタ(PDUTH, PDUTL)に書き込まなければなりません。すなわち , PCSRH,
PCSRL レジスタのみの更新は禁止されています。
• PPG デューティ設定バッファレジスタ(PDUTH, PDUTL)へは , 必ず PPG 周期設定
バッファレジスタ(PCSRH, PCSRL)以下の値を設定してください。PCSRH, PCSRL
の値よりも大きい値を設定すると , PPG 出力は不定になります。
• PPG が停止したとき(PCNTH レジスタの CNTE:bit15=0)は , PPG 状態制御レジス
タ(PCNTH)の CKS2 ∼ CKS0:bit11 ∼ bit9 を変更してください。
● 割込みについての注意
• PPG 状態制御レジスタ(PCNTL)の IRQF:bit4 に "1" を設定し , 次に割込み要求を有
効にすると(PCNTL レジスタの IREN:bit5=1), 制御は割込み処理から戻ることがで
きません。したがって , IRQF:bit4 は必ずクリアしてください。
• 16 ビット PPG タイマは割込みベクトルをほかのリソースと共用するので , 割込みを
使用する場合は , 割込み処理ルーチンで割込み要因を注意深くチェックしなければ
なりません。
• また , 16 ビット PPG タイマで EI2OS を使用する場合は , 共用リソース割込みを無効
にしなければなりません。
277
第 13 章 16 ビット PPG タイマ
13.8
16 ビット PPG タイマのプログラム例
16 ビット PPG タイマのプログラム例を示します。
■ 16 ビット PPG タイマのプログラム例
● 処理
• 66% デューティ比の 160kHz 時における出力は , 16 ビット PPG タイマ 0 によって生
成します。
• 本タイマは PWM モード時において割込みの繰返し生成に使用します。
• 本タイマはソフトウェアトリガによって開始します。
• EI2OS を使用しません。
• 16 MHz はマシンクロック用 , 62.5ns はカウントクロック用です。
● コーディング例
ICR01
EQU
0000B1H
;16 ビット PPG タイマ用割込み制御レジスタ
PCSRL0 EQU
00003AH
;PPG 周期設定バッファレジスタ
PDUTL0 EQU
00003CH
;PPG デューティ設定バッファレジスタ
PCNTL0 EQU
00003EH
;PPG 制御状態レジスタ
IRQF
EQU
PCNTL0:4 ; 割込み要求フラグビット
;---------- メインプログラム -----------------------------------------CODE
CSEG
START:
; :
; スタックポインタ (SP) が既に初期化されているものと仮定
CCR,#0BFH
; 割込み禁止
I:ICR01,#00H
; 割込みレベル 0(最強)
I:PCSRL0,#0063H;PPG 出力の周期を設定
I:PDUTL0,#003BH;PPG 出力のデューティ比の設定
I:PCNTL0,#00110001B
; 通常極性時における PPG 出力を許可
;16 ビット PPG タイマと 62.5ns クロックを有効
; ソフトウェアが PPG をトリガ
;PWM モードを選択 , 割込みを許可
; 割込みフラグをクリア , カウンタ開始
MOV
ILM,#07H
;PS の ILM をレベル 7 に設定
OR
CCR,#40H
; 割込み許可
LOOP:
MOV
A,#00H
; 無限ループ
MOV
A,#01H
;
BRA
LOOP
;
;---------- 割込みプログラム -----------------------------------------WARI:
CLRB I:IRQF
; 割込み要求フラグをクリア
; :
; ユーザ処理
; :
RETI
; 割込みから復帰
AND
MOV
MOVW
MOVW
MOVW
CODE
278
ENDS
第 13 章 16 ビット PPG タイマ
;---------- ベクタ設定 ----------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FFC4H
; 割込み #14(0EH)用ベクタを設定
VECT
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH
START
00H
; リセットベクタを設定
; シングルチップモードを設定
START
279
第 13 章 16 ビット PPG タイマ
280
第 14 章
多機能タイマ
多機能タイマの機能と動作について説明します。
14.1 多機能タイマの概要
14.2 多機能タイマのブロックダイヤグラム
14.3 多機能タイマの端子
14.4 多機能タイマのレジスタ
14.5 多機能タイマ割込み
14.6 多機能タイマの動作
14.7 多機能タイマ使用上の注意
14.8 多機能タイマのプログラム例
281
第 14 章 多機能タイマ
14.1
多機能タイマの概要
多機能タイマは , 1 つの 16 ビットフリーランタイマ , 6 つの 16 ビットアウトプット
コンペア , 4 つの 16 ビットインプットコンペア , 1 チャネルの 16 ビット PPG タイ
マおよび 1 つの波形ジェネレータから構成されています。この波形ジェネレータを
使用すると , 12 個の別々の波形を 16 ビットフリーランタイマから出力でき , また入
力パルス幅と外部クロックサイクルを測定することもできます。
■ 16 ビットフリーランタイマ(× 1)
• 16 ビットフリーランタイマは , 16 ビットアップ / アップダウンカウンタ , 制御レジ
スタ , 16 ビットコンペアクリアレジスタ(バッファレジスタを持っています)およ
びプリスケーラから構成されています。
• 8 種類のカウンタ動作クロック(φ, φ/2, φ/4, φ/8, φ/16, φ/32, φ/64, φ/128)を選択できま
す(φ はマシンクロック)。
• コンペアクリア割込みは , コンペアクリアレジスタと 16 ビットフリーランタイマが
比較され , 一致した場合に生成されます。ゼロ検出割込みは , 16 ビットフリーラン
タイマがカウント値 "0" を検出している間に生成されます。
• コンペアクリアレジスタは ,
選択可能なバッファレジスタを持っています(この
バッファレジスタに書き込まれたデータはコンペアクリアレジスタへ転送されま
す)。16 ビットフリーランタイマが停止し , バッファにデータが書き込まれると , 転
送は直ちに実行されます。16 ビットフリーランタイマの動作中にタイマ値 "0" が検
出されると , バッファからデータが転送されます。
• アップカウントモードにおいてリセットやソフトウェアクリア , あるいはコンペア
クリアレジスタとのコンペア一致が発生すると , カウンタ値は "0000H" にリセット
されます。
• このカウンタの出力値は , 多機能タイマのアウトプットコンペアとインプットキャ
プチャのクロックカウントとして使用できます。
■ 16 ビットアウトプットコンペア(× 6)
• 16 ビットアウトプットコンペアは , 6 つの 16 ビットコンペアレジスタ(選択可能な
バッファレジスタを持っています), コンペア出力ラッチ , コンペア制御レジスタか
ら構成されています。16 ビットフリーランタイマ値とコンペアレジスタが一致する
と , 割込みが生成され , 出力レベルが反転します。
• 6 つのコンペアレジスタは , 別々に動作させることができます。
出力端子と割込みフラグは , 各コンペアレジスタに対応しています。
• 2 つのコンペアレジスタを対(ペア)にして出力端子を制御できます。
2 つのコンペアレジスタを一緒に使用することによって出力端子を反転させます。
• 各出力端子の初期値を設定できます。
• 割込みは , アウトプットコンペアレジスタが 16 ビットフリーランタイマと一致した
場合に生成されます。
282
第 14 章 多機能タイマ
■ 16 ビットインプットキャプチャ(× 4)
インプットキャプチャは , 4 つの独立した外部入力端子と , この端子に対応するキャプ
チャレジスタおよびキャプチャ制御レジスタから構成されています。外部端子におい
て入力信号のエッジを検出すると , 16 ビットフリーランタイマの値をキャプチャレジ
スタへ格納でき , また割込みも同時に生成されます。
• 外部入力信号の 3 種類のトリガエッジ(立上りエッジ , 立下りエッジおよびその両
方のエッジ)を選択でき , またトリガエッジが立上りエッジであるか立下りエッジ
であるかを示すビットを持っています。
• 4 つの入力キャプチャを別々に動作させることができます。
• 割込みは , 外部入力からの有効なエッジが検出されると生成されます。
• チャネル 0 とチャネル 1 は , 割込み #33 を共用します。
• チャネル 2 とチャネル 3 は , 割込み #35 を共用します。
■ 16 ビット PPG タイマ(× 1)
16 ビット PPG タイマ 0 は , 波形ジェネレータへ PPG 信号を供給するために使用しま
す。16 ビット PPG タイマ 0 の詳細については , 「第 13 章 16 ビット PPG タイマ」を
ご参照ください。
■ 波形ジェネレータ
波形ジェネレータは , 3 つの 16 ビットデッドタイマレジスタ , 3 つのタイマ制御レジス
タおよび 1 つの 16 ビット波形制御レジスタから構成されています。
波形ジェネレータは , リアルタイム出力 , 16 ビット PPG 波形出力 , ノンオーバラップ 3
相波形出力(インバータ制御用)および DC チョッパ波形出力を生成できます。
• 16 ビットデッドタイマのデッドタイムに基づいてノンオーバラップ波形出力を生
成できます(デッドタイムタイマ機能)
。
• 2 チャネルモード時にリアルタイムアウトプットを動作させることにより , ノンオー
バラップ波形出力を生成できます(デッドタイムタイマ機能)
。
• リアルタイムアウトプットコンペア一致を検出すると , GATE 信号が生成され , この
信号により PPG タイマの動作が開始または停止します(GATE 機能)
。
• リアルタイムアウトプットコンペア一致が検出されると , 16 ビットデッドタイマが
アクティブになり , PPG 動作の制御用 GATE 信号を生成することによって , PPG タ
イマを容易に開始または停止させることができます(GATE 機能)
。
• DTTI 端子を使用することによって強制的に停止を制御できます。
283
第 14 章 多機能タイマ
14.2
多機能タイマのブロックダイヤグラム
多機能タイマのブロックダイヤグラムを示します。
■ 多機能タイマのブロックダイヤグラム
図 14.2-1 多機能タイマのブロックダイヤグラム
リアルタイム I/O
割込み
割込み
割込み
割込み
割込み
割込み
16 ビットアウト
プットコンペア
#12
#15
#17
#19
#21
#23
アウトプットコンペア0
アウトプットコンペア1
アウトプットコンペア2
アウトプットコンペア3
アウトプットコンペア4
アウトプットコンペア5
RT0~5
内部データバス
バッファからの
データ転送
カウンタ値
16 ビット
フリーラン
タイマ
ゼロ検出
コンペアクリア
284
RT01
端子 RT01(X)
RT02
端子 RT02(V)
RT03
端子 RT03(Y)
RT04
端子 RT04(W)
RT05
端子 RT05(Z)
DTTI
端子 INT0/DTTI0
割込み #29
割込み #20
A/Dトリガ
A/Dトリガ
EXCK
カウンタ値
端子 RT00(U)
RT0~5
波形
ジェネレータ
割込み #31
割込み #34
RT00
割込み #33
割込み #35
16ビットデッドタイマ
0,1,2
DTTI0立下りエッジ検出
PPG0
PPG0
GATE
GATE
端子 FRCK
インプットキャプチャ0,1
インプットキャプチャ2,3
IN0
端子 IN0
16 ビットインプット
キャプチャ
IN1
端子 IN1
IN2
端子 IN2
IN3
端子 IN3
第 14 章 多機能タイマ
■ 16 ビットフリーランタイマのブロックダイヤグラム
図 14.2-2 16 ビットフリーランタイマのブロックダイヤグラム
φ
STOP
MODE
STOP
UP/UP-DOWN
SCLR
CLK2
CLK1
プリスケーラ
CLK0
CLR
停止 アップ/アップダウン
16ビットフリーランタイマ
ゼロ検出回路
ゼロ検出(アウトプットコンペアへ)
CK
インプットキャプチャおよび
アウトプットコンペアへ
内部データバス
転送
16ビットコンペアクリア
レジスタ
コンペア回路
コンペアクリア一致
(アウトプットコンペアへ)
16ビットコンペアクリア
バッファレジスタ
I0
I1
セレクタ
I1
I0
O
割込み #31(1FH)
セレクタ
O
I0
I1
O
割込み #34(22H)
セレクタ
マスク回路
A/Dトリガ
MSI2
MSI1
MSI0
ICLR
ICRE IRQZF IRQZE
I0
I1
O
セレクタ
285
第 14 章 多機能タイマ
■ 16 ビットアウトプットコンペアのブロックダイヤグラム
図 14.2-3 16 ビットアウトプットコンペアのブロックダイヤグラム
フリーランタイマからのカウント値
内部データバス
BTS0
BUF0
コンペアバッファレジスタ
フリーランタイマからの
ゼロ検出
フリーランタイマからの
コンペアクリア一致
I0
転送
コンペアレジスタ0,2,4
O
I1
セレクタ
BTS1
BUF1
コンペア回路
I0
O
コンペアバッファレジスタ
転送
コンペアレジスタ1,3,5
I1
セレクタ
CMOD
コンペア回路
IOP1
IOP0
IOE1
T
Q
T
Q
RT00,2,4
(波形ジェネレータ)
RTO1,3,5
(波形ジェネレータ)
IOE0
割込み
#12,#17,#21
#15,#19,#23
■ 16 ビットインプットキャプチャのブロックダイヤグラム
図 14.2-4 16 ビットインプットキャプチャのブロックダイヤグラム
フリーランタイマからのカウント値
内部データバス
IN0,2
エッジ検出
キャプチャレジスタ0,2
EG11
EG10
EG01
エッジ検出
キャプチャレジスタ1,3
ICP0
ICP1
ICE0
EG00
IEI1 IEI0
IN1,3
ICE1
割込み
#33,#35
#33,#35
286
第 14 章 多機能タイマ
■ 波形ジェネレータのブロックダイヤグラム
図 14.2-5 波形ジェネレータのブロックダイヤグラム
DCK2
φ
DCK1
DCK0
分周器
NRSL
DTIF
DTIE
NWS1
DTTI 制御回路
PICSH01
DTCR0 TMD8
TMD7
TMD6
SIGCR
NWSO
ノイズキャンセル
DTTI
PGEN1 PGEN0
GTEN5 GTEN4
GATE0,1
GATE
(PPG0へ)
TO0
波形制御
RT0
セレクタ
16ビット
タイマ0
コンペア回路
セレクタ
出力制御
TO1
RT1
RT01(X)
U
16ビットデッドタイマレジスタ0
RT00(U)
デッドタイムジェネレータ
X
TMD4
TMD3
GTEN3 GTEN2
PICSH01
PGEN3 PGEN2
GATE 2/3
TO2
波形制御
RT2
TO3
RT3
セレクタ
16ビット
タイマ1
コンペア回路
セレクタ
出力制御
内部データバス
DTCR1 TMD5
RT03(Y)
V
16ビットデッドタイマレジスタ1
RT02(V)
デッドタイムジェネレータ
Y
TMD2
TMD1
TMD0
GTEN1 GTEN0
GATE 4/5
PICSH01 PGEN5 PGEN4
TO4
波形制御
RT4
TO5
RT5
セレクタ
16ビット
タイマ2
コンペア回路
セレクタ
W
16ビットデッドタイマレジスタ2
出力制御
DTCR2
RT04(W)
RT05(Z)
デッドタイムジェネレータ
PPG0
Z
287
第 14 章 多機能タイマ
14.3
多機能タイマの端子
多機能タイマの端子について説明します。また端子のブロックダイヤグラムも示し
ます。
■ 多機能タイマの端子
表 14.3-1 多機能タイマの端子
端子名
P10/INT0/
DTTI0
端子機能
I/O 形式
ポート 1 入出力 ,
外部割込み入力 ,
DTTI0
プルアップ
オプション
スタンバイ
制御
端子設定
端子を入力ポートとして設
定する (DDR1:bit0=0)
選択可能
P17/FRCK
ポート 1 入出力 ,
外部クロック
端子を入力ポートとして設
定する (DDR1:bit7=0)
P24/IN0
ポート 2 入出力 ,
インプットキャ
プチャ 0
端子を入力ポートとして設
定する (DDR2:bit4=0)
CMOS 出力 ,
CMOS ヒステ
リシス入力
P25/IN1
ポート 2 入出力 ,
インプットキャ
プチャ 1
P26/IN2
ポート 2 入出力 ,
インプットキャ
プチャ 2
P27/IN3
ポート 2 入出力 ,
インプットキャ
プチャ 3
P30/RTO0
(U)
ポート 3 入出力 ,
RTO0
P31/RTO1
(X)
ポート 3 入出力 ,
RTO1
RTO1 出力を設定する
(OCS1:OTE1=1)
P32/RTO2
(V)
ポート 3 入出力 ,
RTO2
RTO2 出力を設定する
(OCS3:OTE0=1)
P33/RTO3
(Y)
ポート 3 入出力 ,
RTO3
P34/RTO4
(W)
ポート 3 入出力 ,
RTO4
RTO4 出力を設定する
(OCS5:OTE0=1)
P35/RTO5
(Z)
ポート 3 入出力 ,
RTO5
RTO5 出力を設定する
(OCS5:OTE1=1)
DDRx: ポート方向レジスタ
OCSx: コンペア制御レジスタ
288
端子を入力ポートとして設
定する (DDR2:bit5=0)
端子を入力ポートとして設
定する (DDR2:bit6 =0)
あり
なし
CMOS 出力 ,
CMOS 入力
端子を入力ポートとして設
定する (DDR2:bit7=0)
RTO0 出力を設定する
(OCS1:OTE0=1)
RTO3 出力を設定する
(OCS3:OTE1=1)
第 14 章 多機能タイマ
■ 多機能タイマ端子のブロックダイヤグラム
図 14.3-1 P10/INT0/DTTI および P17/FRCK のブロックダイヤグラム
RDR
内部データバス
リソース入力
リソース出力
リソース出力許可信号
ポートデータレジスタ(PDR)
プルアップ
抵抗
約50kΩ
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
図 14.3-2 P24/IN0 ∼ P27/IN3 のブロックダイヤグラム
リソース出力
リソース入力
リソース出力許可信号
ポートデータレジスタ(PDR)
内部データバス
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
図 14.3-3 P30/RTO0 ∼ P35/RTO5 のブロックダイヤグラム
RDR
リソース出力
内部データバス
ポートデータレジスタ(PDR)
リソース入力
リソース出力許可信号
プルアップ
抵抗
約50kΩ
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
289
第 14 章 多機能タイマ
14.4
多機能タイマのレジスタ
多機能タイマのレジスタについて説明します。
■ 16 ビットフリーランタイマのレジスタ
図 14.4-1 16 ビットフリーランタイマのレジスタ
コンペアクリアバッファレジスタ,コンペアクリアレジスタ
(上位)
bit
(CPCLRBH) リード/ライト
(CPCLRH)
初期値
15
14
13
12
11
10
9
8
CL15
CL14
CL13
CL12
C L11
CL10
C L09
CL08
W
R
1
W
R
1
W
R
1
W
R
1
W
R
1
W
R
1
W
R
1
W
R
1
CPCLRBH/CPCLRH
コンペアクリアバッファレジスタ,コンペアクリアレジスタ(下位)
7
6
5
4
3
2
1
0
ビット番号
CL07
CL06
CL05
CL04
CL03
CL02
CL01
CL00
CPCLRBL/CPCLRL
W
R
1
W
R
1
W
R
1
W
R
1
W
R
1
W
R
1
W
R
1
W
R
1
bit 15
14
13
12
11
10
9
8
T15
T14
T13
T12
T11
T 10
T09
T 08
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
7
6
5
4
3
2
1
0
T07
T 06
T05
T 04
T0 3
T02
T0 1
T 00
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
14
13
12
11
10
9
8
ECKE
IRQZF
IRQZE
MSI2
MSI1
MSI0
ICLR
ICRE
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
6
5
4
3
2
1
BFE
STOP
MODE
SCLR
CLK2
CLK1
C LK0
R/W
0
R/W
1
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
bit
(CPCLRBL) リード/ライト
(CPCLRL)
初期値
タイマデータレジスタ(上位)
リード/ライト
初期値
TCDTH
タイマデータレジスタ(下位)
bit
リード/ライト
初期値
TCDTL
タイマ状態制御レジスタ
(上位)
bit 15
リード/ライト
初期値
TCCSH
タイマ状態制御レジスタ
(下位)
bit
リード/ライト
初期値
290
7
X
0
ビット番号
TCCSL
第 14 章 多機能タイマ
■ 16 ビットアウトプットコンペアのレジスタ
図 14.4-2 16 ビットアウトプットコンペアのレジスタ
アウトプットコンペアバッファレジスタ,アウトプットコンペアレジスタ(上位)
bit 15
14
13
12
11
10
9
8
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
リード/ライト
初期値
OCCPBH0~OCCPBH5/
OCCPH0~OCCPH5
アウトプットコンペアバッファレジスタ,アウトプットコンペアレジスタ(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
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
OCCPBL0~OCCPBL5/
OCCPL0~OCCPL5
コンペア制御レジスタ1,3,5(上位)
bit 15
リード/ライト
初期値
14
13
12
11
10
9
8
BTS1
BTS0
CMOD
OTE1
OTE0
OTD1
OTD0
R/W
1
R/W
1
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
X
OCSH1,OCSH3,OCSH5
コンペア制御レジスタ0,2,4(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
IOP1
IOP0
IOE1
IOE0
BUF1
BUF0
CST1
CST0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
1
R/W
1
R/W
0
R/W
0
OCSL0,OCSL2,OCSL4
291
第 14 章 多機能タイマ
■ 16 ビットインプットキャプチャのレジスタ
図 14.4-3 16 ビットインプットキャプチャのレジスタ
インプットキャプチャデータレジスタ(上位)
bit 15
14
13
12
11
10
9
8
CP15
CP14
CP13
CP12
CP11
CP10
CP09
CP08
R
X
R
X
R
X
R
X
R
X
R
X
R
X
R
X
リード/ライト
初期値
IPCPH0~IPCPH3
インプットキャプチャデータレジスタ(下位)
7
6
5
4
3
2
1
0
CP07
CP06
CP05
CP04
CP03
CP02
CP01
CP00
R
X
R
X
R
X
R
X
R
X
R
X
R
X
R
X
11
10
bit
リード/ライト
初期値
IPCPL0~IPCPL3
インプットキャプチャ状態制御レジスタ(ch2,3)(上位)
bit 15
リード/ライト
初期値
-
X
14
-
X
13
-
X
12
-
X
-
X
9
8
IEI3
IEI2
R
0
R
0
-
X
ICSH23
インプットキャプチャ状態制御レジスタ(ch2,3)(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
ICP3
ICP2
ICE3
ICE2
EG31
EG31
EG21
EG20
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
ICSL23
PPG 出力制御 / インプットキャプチャ状態制御レジスタ(ch0,1)(上位)
bit
リード/ライト
初期値
15
14
13
12
11
10
9
8
PGEN5
PGEN4
PGEN3
PGEN2
PGEN1
PGENO
IEI1
IEI0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R
0
R
0
PICSH01
インプットキャプチャ状態制御レジスタ(ch0,1)(下位)
bit
リード/ライト
初期値
292
7
6
5
4
3
2
1
0
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
PICSL01
第 14 章 多機能タイマ
■ 波形ジェネレータのレジスタ
図 14.4-4 波形ジェネレータのレジスタ
16 ビットデッドタイマレジスタ(上位)
bit 15
14
13
12
11
10
9
8
TR15
TR14
TR13
TR12
TR11
TR10
TR09
TR08
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
リード/ライト
初期値
TMRRH0~TMRRH2
16 ビットデッドタイマレジスタ(下位)
bit
7
6
5
4
3
2
1
0
TR07
TR06
TR05
TR04
TR03
TR02
TR01
TR00
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
リード/ライト
初期値
TMRRL0~TMRRL2
16 ビットデッドタイマ制御レジスタ 0
bit 7
リード/ライト
初期値
6
5
4
3
2
1
0
DMOD0
GTEN1
GTEN0
TMIF0
TMIE0
TMD2
TMD1
TMD0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
13
12
11
10
9
8
GTEN2
TMIF1
TMIE1
TMD5
T MD4
T MD3
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
DTCR0
16 ビットデッドタイマ制御レジスタ 1
bit 15
14
DMOD1 GTEN3
リード/ライト
初期値
R/W
0
R/W
0
DTCR1
16 ビットデッドタイマ制御レジスタ 2
bit 7
リード/ライト
初期値
6
5
4
3
2
1
0
DMOD2
GTEN5
GTEN4
TMIF2
T MIE2
TMD8
TMD7
TMD6
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
14
13
12
11
10
9
8
DTIE
DTIF
NRSL
DCK2
DCK1
DCK0
NWS1
NWS0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
DTCR2
波形制御レジスタ
bit 15
リード/ライト
初期値
SIGCR
293
第 14 章 多機能タイマ
14.4.1
コンペアクリアバッファレジスタ(CPCLRBH,
CPCLRBL)/ コンペアクリアレジスタ(CPCLRH,
CPCLRL)
コンペアクリアバッファレジスタ(CPCLRBH, CPCLRBL)は , コンペアクリアレ
ジスタ(CPCLRH, CPCLRL)に存在する 16 ビットバッファレジスタです。
CPCLRBH, CPCLRBL レジスタと CPCLRH, CPCLRL レジスタは , 両方とも同じア
ドレスに存在します。
■ コンペアクリアバッファレジスタ(CPCLRBH, CPCLRBL)
図 14.4-5 コンペアクリアバッファレジスタ(CPCLRBH, CPCLRBL)
コンペアクリアバッファレジスタ(上位)
bit
15
14
13
12
11
10
CL15
CL14
CL13
CL12
C L11
CL10
C L09
CL08
W
1
W
1
W
1
W
1
W
1
W
1
W
1
W
1
リード/ライト
初期値
9
8
CPCLRBH
コンペアクリアバッファレジスタ
(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
CL07
CL06
CL05
CL04
CL03
CL02
CL01
CL00
W
1
W
1
W
1
W
1
W
1
W
1
W
1
W
1
CPCLRBL
コンペアクリアバッファレジスタは , コンペアクリアレジスタ(CPCLRH, CPCLRL)と
同じアドレスに存在するバッファレジスタです。バッファ機能が無効になるか(タイ
マ状態制御レジスタ下位(TCCSL)の BFE:bit6=0)またはフリーランタイマが停止す
ると , コンペアクリアバッファレジスタの値が直ちにコンペアクリアレジスタへ転送
されます。バッファ機能が有効になると , 16 ビットフリーランタイマのカウント値 "0"
が検出されたときに値がコンペアクリアレジスタへ転送されます。
このレジスタへアクセスする場合は , ワードアクセス命令をご使用ください。
■ コンペアクリアレジスタ(CPCLRH, CPCLRL)
図 14.4-6 コンペアクリアレジスタ(CPCLRH, CPCLRL)
コンペアクリアレジスタ
(上位)
bit 15
14
13
12
11
10
CL15
CL14
CL13
CL12
C L11
CL10
C L09
CL08
R
1
R
1
R
1
R
1
R
1
R
1
R
1
R
1
リード/ライト
初期値
9
8
CPCLRH
コンペアクリアレジスタ
(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
CL07
CL06
CL05
CL04
CL03
CL02
CL01
CL00
R
1
R
1
R
1
R
1
R
1
R
1
R
1
R
1
CPCLRL
コンペアクリアレジスは , 16 ビットフリーランタイマのカウント値と比較されるため
に使用します。アップカウントモード時は , このレジスタが 16 ビットフリーランタイ
マのカウント値と一致すると , 16 ビットフリーランタイマは "0000H" にリセットされ
ます。アップダウンカウントモード時は , このレジスタが 16 ビットフリーランタイマ
のカウント値と一致すると , 16 ビットフリーランタイマは "0" 検出時にアップカウン
トからダウンカウントに変わるかまたはダウンカウントからアップカウントに変わり
ます。
このレジスタへアクセスする場合は , ワードアクセス命令をご使用ください。
294
第 14 章 多機能タイマ
14.4.2
タイマデータレジスタ(TCDTH, TCDTL)
タイマデータレジスタ(TCDTH, TCDTL)は , 16 ビットフリーランタイマのカウン
ト値を読み出すために使用します。
■ タイマデータレジスタ(TCDTH, TCDTL)
図 14.4-7 タイマデータレジスタ(TCDTH, TCDTL)
タイマデータレジスタ
(上位)
bit 15
14
13
12
11
10
9
8
T15
T14
T13
T12
T11
T10
T09
T08
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
7
6
5
4
3
2
1
0
T07
T06
T05
T04
T03
T02
T01
T00
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
リード/ライト
初期値
TCDTH
タイマデータレジスタ
(下位)
bit
リード/ライト
初期値
TCDTL
タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出すために
使用します。カウンタ値は , リセットが発生すると直ちに "000H" にクリアされます。
タイマ値は , このレジスタへ値を書き込むことで設定できます。ただし , 値の書込みは
タイマの停止中(タイマ状態制御レジスタ下位(TCCSL)の STOP:bit5=1)でなければ
なりません。タイマデータレジスタへアクセスする場合は , ワードアクセス命令をご使
用ください。
16 ビットフリーランタイマは , 以下の要因が発生すると直ちに初期化されます。
• リセット
• タイマ状態制御レジスタ(TCCSL)のクリアビット(SCLR:bit3)=1
• アップカウントモード(タイマ状態制御レジスタ下位(TCCSL)の MODE:bit4=0)
時におけるコンペアクリアレジスタとタイマカウンタ値の一致
295
第 14 章 多機能タイマ
14.4.3
タイマ状態制御レジスタ(TCCSH, TCCSL)
タイマ状態制御レジスタ(TCCSH, TCCSL)は , 16 ビットフリーランタイマの動作
を制御するために使用する 16 ビットレジスタです。
■ タイマ状態制御レジスタ , 上位バイト(TCCSH)
図 14.4-8 タイマ状態制御レジスタ , 上位バイト(TCCSH)
bit
15
ECKE
R/W
14
13
IRQZF IRQZE
R/W
R/W
12
11
10
9
8
MSI2
MSI1
MSI0
ICLR
ICRE
R/W
R/W
R/W
R/W
R/W
ICRE
コンペアクリア割込み要求許可ビット
0
割込み要求を禁止する
1
割込み要求を許可する
コンペアクリア割込みフラグビット
ICLR
読出し
0
コンペアクリア一致なし
1
コンペアクリア一致あり
MSI2 MSI1 MSI0
296
書込み
このビットを
クリアする
このビットに
影響を与えない
割込みマスク選択ビット
0
0
0
1回目の一致が発生したときに割込みが生成される
0
0
1
2回目の一致が発生したときに割込みが生成される
0
1
0
3回目の一致が発生したときに割込みが生成される
0
1
1
4回目の一致が発生したときに割込みが生成される
1
0
0
5回目の一致が発生したときに割込みが生成される
1
0
1
6回目の一致が発生したときに割込みが生成される
1
1
0
7回目の一致が発生したときに割込みが生成される
1
1
1
8回目の一致が発生したときに割込みが生成される
IRQZE
ゼロ検出割込み要求許可ビット
0
割込み要求を禁止にする
1
割込み要求を許可する
IRQZF
R/W :リード/ライト
:初期値
初期値
00000000B
ゼロ検出割込みフラグビット
読出し
0
ゼロが検出されない
1
ゼロが検出される
ECKE
クロック選択ビット
0
内部クロック
1
外部クロック
書込み
このビットを
クリアする
このビットに
影響を与えない
第 14 章 多機能タイマ
表 14.4-1 タイマ状態制御レジスタ , 上位バイト(TCCSH)( 1 / 2 )
ビット名
機 能
このビットは , 内部クロックまたは外部クロックを 16 ビットフリーランタイ
マのカウントクロックとして選択するために使用します。
• このビットに "0" を設定した場合 : 内部クロックが選択されます。カウント
クロック周波数を選択するためには , TCCSL レジスタのクロック周波数選択
ビット(CLK2 ∼ CLK0:bit2 ∼ bit0)も設定しなければなりません。
• このビットに "1" を設定した場合 : 外部クロックが選択されます。外部ク
ロックは , "FRCK" 端子から入力されます。したがって , ポート方向レジスタ
(DDR1)の bit7 へ "0" を書き込んで外部クロック入力を有効にしなければな
りません。
( 注意事項 )
カウントクロックは , このビットが設定されると直ちに変更されます。した
がって , このビットの変更は , アウトプットコンペアとインプットキャプチャ
が停止している間でなければなりません。
•
bit15
ECKE:
クロック選
択ビット
•
bit14
IRQZF:
ゼロ検出割
込みフラグ
ビット
16 ビットフリーランタイマのカウント値が "0000H" のとき , このビットには
"1" がセットされます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
( 注意事項 )
ソフトウェアクリア(タイマ状態制御レジスタ下位(TCCSL)の SCLR:bit3
への "1" 書込み)では , このビットは設定されません。
アップダウンカウントモード(タイマ状態制御レジスタ下位(TCCSL)の
MODE:bit4=1)時は , 割込みマスク選択ビット(タイマ状態制御レジスタ上位
(TCCSH)の MSI2 ∼ MSI0:bit12 ∼ bit10 が "000B" 以外)で設定した割込みが
発生したときにこのビットに "1" が設定されます。割込みが発生しないとき
は , このビットに "1" は設定されません。
アップカウントモード(MODE: ビット4 =0)時は , MSI2 ∼ MSI0:bit12 ∼
bit10 の値とは無関係に , このビットはゼロ検出が発生するたびに設定されま
す。
bit13
IRQZE:
ゼロ検出割
込み要求許
可ビット
•
このビットと割込みフラグビット(IRQZF:bit14)に "1" が設定されると , CPU
に対する割込み要求が生成されます。
これらのビットは , アップカウントモード(MODE=0)時はコンペアクリア割
込みのマスク回数を設定するために使用します。アップダウンカウントモー
ド(MODE=1)時は , ゼロ検出割込みのマスク回数を設定するために使用しま
す。
• このビットに "0" を設定した場合 : 割込み要因はマスクされません。
( 注意事項 )
割込み要因を 2 回マスクし , 3 回目の割込みを処理する際には , これらのビッ
トに "010B" を設定しなければなりません。
•
bit12
∼
bit10
MSI2 ∼
MSI0:
割込みマス
ク選択ビッ
ト
297
第 14 章 多機能タイマ
表 14.4-1 タイマ状態制御レジスタ , 上位バイト(TCCSH)( 2 / 2 )
ビット名
機 能
コンペアクリア値と 16 ビットフリーランタイマ値が一致すると , このビット
には "1" が設定されます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
( 注意事項 )
アップカウントモード(タイマ状態制御レジスタ下位(TCCSL)の MODE:
bit4=1)時は , 割込みマスク選択ビット(タイマ状態制御レジスタ上位
(TCCSH)の MSI2 ∼ MSI0:bit12 ∼ bit10 が "000B" 以外)で設定した割込みが
•
bit9
ICLR:
コンペアク
リア割込み
フラグビッ
ト
発生したときにこのビットに "1" が設定されます。割込みが発生しないとき
は , このビットに "1" は設定されません。
アップダウンカウントモード(MODE=1)時は , MSI2 ∼ MSI0 ビットの値と
は無関係に , このビットはコンペアクリアが発生するたびに設定されます。
bit8
298
ICRE:
コンペアク
リア割込み
要求許可
ビット
•
このビットとコンペアクリア割込みフラグビット(ICLR:bit9)に "1" が設定
されると , CPU に対する割込み要求が生成されます。
第 14 章 多機能タイマ
■ タイマ状態制御レジスタ , 下位バイト(TCCSL)
図 14.4-9 タイマ状態制御レジスタ , 下位バイト(TCCSL)
bit
7
-
6
5
4
3
2
1
0
BFE
STOP
MODE
SCLR
CLK2
CLK1
C LK0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
X0100000B
クロック周波数選択ビット
CL K2 CL K1 CL K0 カウント
φ=16MHz φ =8MHz φ =4MHz φ =1MHz
クロック
0
0
0
φ
62.5ns
125ns
0.25ms
1ms
0
0
1
φ/2
125ns
0.25ms
0.5ms
2ms
0
1
0
φ/4
0.25ms
0.5ms
1ms
4ms
0
1
1
φ/8
0.5ms
1ms
2ms
8ms
1
0
0
φ/16
1ms
2ms
4ms
16ms
1
0
1
φ/32
2ms
4ms
8ms
32ms
1
1
0
φ/64
4ms
8ms
16ms
64ms
1
1
1
φ/128
8ms
16ms
32ms
128ms
φ:マシンサイクル
SCLR
書込み
読出し
0
このビットに影響を与えない
1
カウンタを"0000H"に初期化する
MODE
0
1
STOP
R/W :リード/ライト
:初期値
:未使用
-
タイマクリアビット
常に"0"を読出す
タイマカウントモードビット
アップカウントモード
アップダウンカウントモード
タイマ許可ビット
0
カウントを許可する(カウントを開始する)
1
カウントを禁止する(カウントを停止する)
コンペアクリアバッファ許可ビット
BFE
0
コンペアクリアバッファを無効にする
1
コンペアクリアバッファを有効にする
299
第 14 章 多機能タイマ
表 14.4-2 タイマ状態制御レジスタ , 下位バイト(TCCSL)( 1 / 2 )
ビット名
bit7
bit6
未使用ビット
BFE:
コンペアクリ
アバッファ有
効ビット
機 能
•
•
読出し値は不定です。
このビットへの書込みは動作に影響しません。
•
•
このビットは , コンペアクリアバッファを有効にするために使用します。
このビットに "0" を設定した場合 :
コンペアクリアバッファは無効になります。したがってコンペアクリア
レジスタ(CPCLRH, CPCLRL)に直接書き込むことが可能です。
このビットに "1" を設定した場合 :
コンペアクリアバッファは有効になります。コンペアクリアバッファに
書き込まれ保持されていたデータは , 16 ビットフリーランタイマのカウ
ント値 "0" が検出されると , コンペアクリアレジスタへ転送されます。
•
このビットは , 16 ビットフリーランタイマのカウントを停止 / 開始するために
使用します。
• このビットに "0" を設定した場合 :
16 ビットフリーランタイマのカウントは開始します。
• このビットに "1" を設定した場合 :
16 ビットフリーランタイマのカウントは停止します。
( 注意事項 )
16 ビットフリーランタイマが停止すると , アウトプットコンペアの動作も停
止します。
•
bit5
STOP:
タイマ有効
ビット
•
•
bit4
MODE:
タイマカウン
トモードビッ
ト
•
•
このビットは , 16 ビットフリーランタイマのカウントモードを選択するため
に使用します。
このビットに "0" を設定した場合 :
アップカウントモードが選択されます。タイマは , カウンタ値がコンペ
アクリアレジスタと一致して "0000H" にリセットされるまでカウント
アップし , その後 , 再びカウントアップします。
このビットに "1" を設定した場合 :
アップダウンカウントモードが選択されます。タイマは , カウンタ値が
コンペアクリアレジスタと一致するまでカウントアップし , その後ダウ
ンカウントに変わります。その後 , カウンタ値が "0000H" に達すると再
びアップカウントに変わります。
このビットは , タイマが動作中であっても停止されていても書込みが可能で
す。タイマが動作中の場合は , このビットに書き込まれた値はバッファに入れ
られ , その後 , タイマ値が "0000H" になるとバッファの値によりカウントモー
ドが変わります。
bit3
SCLR:
タイマクリア
ビット
•
このビットは , 16 ビットフリーランタイマを "0000H" に初期化するために使
•
•
用します。
このビットに "0" を設定した場合 : 意味はありません。
このビットに "1" を設定した場合 :
16 ビットフリーランタイマは , その次のカウントクロックで "0000H" に
初期化されます。
• 読出し値は , 必ず "0" です。
( 注意事項 )
• このビットは , タイマが停止しているとき(STOP=1)にタイマを初期化す
るためには使用できません。タイマデータレジスタ(TCDTH, TCDTL)
に "0000H" を書き込むと , タイマを初期化できます。
•
•
300
このビットに "1" を書き込んでも , ゼロ検出割込みは生成されません。
"1" を書き込んだ後 , 次のカウントクロックまでにこのビットへの "0" 書込
みを行うと , カウンタ値の初期化は行われません。
第 14 章 多機能タイマ
表 14.4-2 タイマ状態制御レジスタ , 下位バイト(TCCSL)( 2 / 2 )
ビット名
機 能
•
bit2
∼
bit0
CLK2 ∼ 0:
クロック周波
数選択ビット
•
このビットは , 16 ビットフリーランタイマのカウントクロック周波数を選択
するために使用します。
カウントクロックは , これらのビットが設定されると直ちに変更されます。し
たがって , これらのビットの変更は , アウトプットコンペアとインプットキャ
プチャが停止している間でなければなりません。
301
第 14 章 多機能タイマ
14.4.4
アウトプットコンペアバッファレジスタ(OCCPBH,
OCCPBL0 ∼ OCCPBL5)/ アウトプットコンペアレ
ジスタ(OCCPH, OCCPL0 ∼ OCCPL5)
アウトプットコンペアバッファレジスタ(OCCPBH, OCCPBL)は , アウトプット
コンペアレジスタ(OCCPH, OCCPL)用の 16 ビットバッファレジスタです。
OCCPBH, OCCPBL レジスタと OCCPH, OCCPL レジスタは , 両方とも同じアドレ
スに存在します。
■ アウトプットコンペアバッファレジスタ(OCCPBH, OCCPBL0 ∼ OCCPBL5)
図 14.4-10 アウトプットコンペアバッファレジスタ(OCCPBH, OCCPBL0 ∼ OCCPBL5)
アウトプットコンペアバッファレジスタ(上位)
bit 15
リード/ライト
初期値
14
13
12
11
10
9
8
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
OCCPBH0~OCCPBH5
アウトプットコンペアバッファレジスタ(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
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
OCCPBL0~OCCPBL 5
アウトプットコンペアバッファレジスタは , アウトプットコンペアレジスタ(OCCPH,
OCCPL)用のバッファレジスタです。バッファ機能が無効になるか(コンペア制御レ
ジスタ下位(OCSL0, OCSL2, OCSL4)の BUF1, BUF 0:bit3, bit2=11B)またはフリーラ
ンタイマが停止すると , アウトプットコンペアバッファレジスタの値は , 直ちにアウト
プットコンペアレジスタへ転送されます。バッファ機能が有効になると(コンペア制
御レジスタ下位(OCSL0, OCSL2, OCSL4)の BUF1, 0:bit3, bit2=00B), 値はコンペア
制御レジスタ上位(OCSH1, OCSH3, OCSH5)の転送選択ビット(BTS1, 0:bit14, bit13)
に従ってコンペアクリア一致時またはゼロ検出時に転送されます。
このレジスタへアクセスする場合は , ワードアクセス命令をご使用ください。
302
第 14 章 多機能タイマ
■ アウトプットコンペアレジスタ(OCCPH, OCCPL0 ∼ OCCPL5)
図 14.4-11 アウトプットコンペアレジスタ(OCCPH, OCCPL0 ∼ OCCPL5)
アウトプットコンペアレジスタ(上位)
bit 15
リード/ライト
初期値
14
13
12
11
OP15
OP14
OP13
OP12
OP11
10
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
9
8
OP10
OP09
OP08
R/W
X
R/W
X
R/W
X
OCCPH0~OCCPH5
アウトプットコンペアレジスタ(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
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
OCCPL0~OCCPL5
アウトプットコンペアレジスタは , 16 ビットフリーランタイマのカウント値と比較す
るために使用する 16 ビットレジスタです。アウトプットコンペアレジスタの初期値は
不定なので , タイマの動作を有効にする前にアウトプットコンペアバッファレジスタ
(OCCPBH, OCCPBL)に値を設定しなければなりません。
アウトプットコンペアレジスタの値が 16 ビットフリーランタイマのカウント値と一致
すると , コンペア信号が生成され , アウトプットコンペア割込みフラグビット(コンペ
ア制御レジスタ下位 OCSL0, OCSL2, OCSL4 の IOP1, IOP0:bit7, bit6)が設定されま
す。出力レベルが設定されると(コンペア制御レジスタ上位(OCSH1, OCSH3, OCSH5)
の OTD1, OTD0:bit9, bit8), アウトプットコンペアレジスタ(OCCPH, OCCPL0 ∼
OCCPL5)に対応する出力レベル波形ジェネレータ RTO0 ∼ RTO5 を反転させることが
できます。
このレジスタへアクセスする場合は , ワードアクセス命令をご使用ください。
303
第 14 章 多機能タイマ
コンペア制御レジスタ(OCSH, OCSL0 ∼ OCSL5)
14.4.5
コンペア制御レジスタは , RT0 ∼ RT5 の出力レベル , 出力許可 , 出力レベル反転モー
ド , コンペア動作許可 , コンペア一致割込み許可およびコンペア一致割込みフラグを
制御するために使用します。
■ コンペア制御レジスタ , 上位バイト(OCSH1, OCSH3, OCSH5)
図 14.4-12 コンペア制御レジスタ , 上位バイト(OCSH1, OCSH3, OCSH5)
bit
15
14
13
12
11
10
9
8
BTS1
BTS0
CMOD
OTE1
OTE0
OTD1
OTD0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
出力レベルビット
OTD0
0
RT0,RT2,RT4が"0"を出力する
1
RT0,RT2,RT4が"1"を出力する
出力レベルビット
読出し
0
RT1,RT3,RT5が"0"を出力する
1
RT1,RT3,RT5が"1"を出力する
汎用入出力ポート
1
アウトプットコンペア出力端子(RT00,RT2,RT4)
OTE1
出力許可ビット
0
汎用入出力ポート
1
アウトプットコンペア出力端子(RT01,RT3,RT5)
CMOD
1
RT1,RT3,RT5の現出力値
出力許可ビット
0
0
RT0,RT2,RT4の現出力値
書込み
OTE0
304
読出し
書込み
OTD1
R/W :リード/ライト
:初期値
- :未使用
初期値
X1100000B
出力レベル反転モードビット
RT0,RT2,RT4:レベルは,コンペアレジスタ0,2,4との一致が発生すると直ちに反転する
RT1,RT3,RT5:レベルは,コンペアレジスタ1,3,5との一致が発生すると直ちに反転する
RT0,RT2,RT4:レベルは,コンペアレジスタ0,2,4との一致が発生すると直ちに反転する
RT1,RT3,RT5:レベルは,コンペアレジスタ(0または1)(2または3)(4または5)との一致が発生すると直ちに反転する
BTS0
バッファ転送選択ビット
0
ゼロ検出が発生すると,転送が起動する(チャネル0,2,4)
1
コンペアクリア一致が発生すると,転送が起動する(チャネル0,2,4)
BTS1
バッファ転送選択ビット
0
ゼロ検出が発生すると,転送が起動する(チャネル1,3,5)
1
コンペアクリア一致が発生すると,転送が起動する(チャネル1,3,5)
第 14 章 多機能タイマ
表 14.4-3 コンペア制御レジスタ , 上位バイト(OCSH1, OCSH3, OCSH5)( 1 / 2 )
ビット名
bit15
機能
読出し値は不定です。
このビットへの書込みは動作に影響しません。
未使用ビット
•
•
BTS1:
バッファ転送
選択ビット
このビットは , アウトプットコンペアバッファレジスタ(OCCPBH,
OCCPBL1, OCCPBL3, OCCPBL5)からアウトプットコンペアレジスタ
(OCCPH, OCCPL1, OCCPL3, OCCPL5)へのデータ転送時期を選択するため
に使用します。
• このビットに "0" を設定した場合 :
データ転送は , 16 ビットフリーランタイマのカウント値 "0" が検出され
ると起動します。
• このビットに "1" を設定した場合 :
データ転送は , 16 ビットフリーランタイマでコンペアクリア一致が発生
すると起動します。
BTS0:
バッファ転送
選択ビット
このビットは , アウトプットコンペアバッファレジスタ(OCCPBH,
OCCPBL0, OCCPBL2, OCCPBL4)からアウトプットコンペアレジスタ
(OCCPH, OCCPL0, OCCPL2, OCCPL 4)へのデータ転送時期を選択するため
に使用します。
• このビットに "0" を設定した場合 :
データ転送は , 16 ビットフリーランタイマのカウント値 "0" が検出され
ると起動します。
• このビットに "1" を設定した場合 :
データ転送は , 16 ビットフリーランタイマでコンペアクリア一致が発生
すると起動します。
•
bit14
•
bit13
•
•
bit12
CMOD:
出力レベル
反転モード
ビット
•
このビットは , 端子出力が有効の間(OTE1=1 または OTE0=1)に一致が発
生した場合に端子出力レベル反転モードを直ちに切り換えるために使用しま
す。
このビットに "0" を設定した場合 :
端子の出力レベルは , 対応するコンペアレジスタとの一致が発生すると
直ちに反転します。
- RT0, RT2, RT4: レベルは , 16 ビットフリーランタイマとコンペアレジス
タ 0, 2, 4 が一致すると直ちに反転します。
- RT1, RT3, RT5: レベルは , 16 ビットフリーランタイマとコンペアレジス
タ 1, 3, 5 が一致すると直ちに反転します。
このビットに "1" を設定した場合 :
コンペアレジスタに対応する RT0, RT2, RT4 の出力レベルは , 本ビット
が "0" の場合と同様に反転します。ただし , コンペアレジスタ 1, 3, 5 に
対応する RT1, RT3, RT5 の出力レベルは , コンペアレジスタ 0, 2, 4 また
は 1, 3, 5 で一致が発生すると反転します。コンペアレジスタ 0, 2, 4 と
1, 3, 5 が同じ値の場合は , ただ 1 つのコンペアレジスタが使用される場
合と同じ動作になります。
- RT0, RT2, RT4: レベルは , 16 ビットフリーランタイマとコンペアレジス
タ 0, 2, 4 が一致すると直ちに反転します。
- RT1, RT3, RT5: レベルは , 16 ビットフリーランタイマとコンペアレジス
タ(0 または 1)(2 または 3)(4 または 5)が一致する
と直ちに反転します。
305
第 14 章 多機能タイマ
表 14.4-3 コンペア制御レジスタ , 上位バイト(OCSH1, OCSH3, OCSH5)( 2 / 2 )
ビット名
機能
このビットは , ポートへの波形ジェネレータ出力(RTO1, RTO3, RTO5)を
許可するために使用します。
• このビットの初期値は "0" です。
( 注意事項 )
波形ジェネレータが無効(16 ビットデッドタイマ制御レジスタ下位
(DTCRL0, DTCRL1, DTCRL2)の TMD2 ∼ TMD0, TMD5 ∼ TMD3, TMD8 ∼
TMD6:bit2, bit1=000B)の場合は , RTO1, RTO3, RTO5 はアウトプットコンペ
•
bit11
OTE1:
出力許可
ビット
アと同じ値を出力します。
このビットは , ポートへの波形ジェネレータ出力(RTO0, RTO2, RTO4)を
許可するために使用します。
• このビットの初期値は "0" です。
( 注意事項 )
波形ジェネレータが無効(16 ビットデッドタイマ制御レジスタ下位
(DTCRL0, DTCRL1, DTCRL2)の TMD2 ∼ TMD0, TMD5 ∼ TMD3, TMD8 ∼
TMD6:bit2, bit1=000B)の場合は , RTO0, RTO2, RTO4 はアウトプットコンペ
•
bit10
OTE0:
出力許可
ビット
アと同じ値を出力します。
•
bit9
OTD1:
出力レベル
ビット
•
•
•
bit8
306
OTD0:
出力レベル
ビット
•
•
このビットは , アウトプットコンペア 1, 3, 5(RT1, RT3, RT5)の端子出力
レベルを変更するために使用します。
コンペア端子出力の初期値は "0" です。
値を書き込む場合は , 必ず前もってコンペア動作を停止させてください。こ
のビットの読出し値は , RT1, RT3, RT5 におけるアウトプットコンペア値を
示します。
このビットは , アウトプットコンペア 0, 2, 4(RT0, RT2, RT4)の端子出力
レベルを変更するために使用します。
コンペア端子出力の初期値は "0" です。
値を書き込む場合は , 必ず前もってコンペア動作を停止させてください。こ
のビットの読出し値は , RT0, RT2, RT4 におけるアウトプットコンペア値を
示します。
第 14 章 多機能タイマ
■ コンペア制御レジスタ , 下位バイト(OCSL0, OCSL2, OCSL4)
図 14.4-13 コンペア制御レジスタ , 下位バイト(OCSL0, OCSL2, OCSL4)
bit 7
6
5
4
3
2
1
0
IOP1
IOP0
IOE1
IOE0
BUF1
BUF0
CST1
CST0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CST0
コンペア動作許可ビット
0
コンペアレジスタ0,2,4のコンペア動作を禁止する
1
コンペアレジスタ0,2,4のコンペア動作を許可する
CST0
コンペア動作許可ビット
0
コンペアレジスタ1,3,5のコンペア動作を禁止する
1
コンペアレジスタ1,3,5のコンペア動作を許可する
BUF0
コンペアバッファ無効ビット
0
コンペアレジスタ0,2,4のコンペアバッファを有効にする
1
コンペアレジスタ0,2,4のコンペアバッファを無効にする
BUF1
コンペアバッファ無効ビット
0
コンペアレジスタ1,3,5のコンペアバッファを有効にする
1
コンペアレジスタ1,3,5のコンペアバッファを無効にする
IOE0
コンペア一致割込み許可ビット
0
コンペアレジスタ0,2,4のコンペア一致割込みを禁止する
1
コンペアレジスタ0,2,4のコンペア一致割込みを許可する
IOE1
コンペア一致割込み許可ビット
0
コンペアレジスタ1,3,5のコンペア一致割込みを禁止する
1
コンペアレジスタ1,3,5のコンペア一致割込みを許可する
IOP0
0
1
IOP1
0
R/W :リード/ライト
:初期値
- :未使用
初期値
00001100B
1
コンペア一致割込みフラグビット
読出し
コンペアレジスタ0,2,4のコンペア
一致割込みが発生しない
コンペアレジスタ0,2,4のコンペア
一致割込みが発生する
書込み
このビットをクリアする
このビットに影響を与えない
コンペア一致割込みフラグビット
読出し
コンペアレジスタ1,3,5のコンペア
一致割込みが発生しない
コンペアレジスタ1,3,5のコンペア
一致割込みが発生する
書込み
このビットをクリアする
このビットに影響を与えない
307
第 14 章 多機能タイマ
表 14.4-4 コンペア制御レジスタ , 下位バイト(OCSL0, OCSL2, OCSL4)( 1 / 2 )
ビット名
機能
•
bit7
IOP1:
コンペア一致
割込みフラグ
ビット
•
•
•
•
•
•
bit6
IOP0:
コンペア一致
割込みフラグ
ビット
•
•
•
•
•
•
bit5
•
bit4
IOE0:
コンペア一致
割込み許可
ビット
•
bit3
BUF1:
コンペアバッ
ファ無効
ビット
bit2
BUF0:
コンペアバッ
ファ無効
ビット
このビットは , コンペアレジスタ 0, 2, 4 のアウトプットコンペア割込みを "
許可 " にするために使用します。
• このビットに "1" が書き込まれている間にコンペア一致割込みフラグビット
(IOP0:bit7)が設定されると , アウトプットコンペア割込みが発生します。
•
•
•
308
このビットは , アウトプットコンペアレジスタ 1, 3, 5 のバッファ機能を無効
にするために使用します。
このビットに "0" を設定した場合 : バッファ機能が有効になります。
このビットは , アウトプットコンペアレジスタ 0, 2, 4 のバッファ機能を無効
にするために使用します。
このビットに "0" を設定した場合 : バッファ機能が有効になります。
このビットは , 16 ビットフリーランタイマとコンペアレジスタ 1, 3, 5 の間
のコンペア動作を許可にするために使用します。
• コンペア動作を許可にする場合は , 必ず前もってコンペアレジスタ 1, 3, 5 と
タイマデータレジスタ(TCDTH, L)に値を書き込んでください。
( 注意事項 )
アウトプットコンペアは 16 ビットフリーランタイマクロックと同期化され
るので , 16 ビットフリーランタイマを停止すると , コンペア動作も停止しま
す。
•
CST1:
コンペア動作
許可ビット
このビットは , コンペアレジスタ 0, 2, 4 が 16 ビットフリーランタイマの値
と一致したことを示す割込みフラグです。
このビットは , コンペアレジスタ値が 16 ビットフリーランタイマ値に一致
した場合に "1" が設定されます。
コンペア一致割込み許可ビット(IOE0:bit4)が " 許可 " になっている間にこ
のビットが設定されると , アウトプットコンペア割込みが発生します。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 : このビットは影響を受けません。
リードモディファイライト時は , 必ず "1" が読み出されます。
このビットは , コンペアレジスタ 1, 3, 5 のアウトプットコンペア割込みを "
許可 " にするために使用します。
• このビットに "1" が書き込まれている間にコンペア一致割込みフラグビット
(IOP1:bit7)が設定されると , アウトプットコンペア割込みが発生します。
IOE1:
コンペア一致
割込み許可
ビット
bit1
このビットは , コンペアレジスタ 1, 3, 5 が 16 ビットフリーランタイマの値
と一致したことを示す割込みフラグです。
このビットは , コンペアレジスタ値が 16 ビットフリーランタイマ値に一致
した場合に "1" が設定されます。
コンペア一致割込み許可ビット(IOE1:bit5)が " 許可 " になっている間にこ
のビットが設定されると , アウトプットコンペア割込みが発生します。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 : このビットは影響を受けません。
リードモディファイライト時は , 必ず "1" が読み出されます。
第 14 章 多機能タイマ
表 14.4-4 コンペア制御レジスタ , 下位バイト(OCSL0, OCSL2, OCSL4)( 2 / 2 )
ビット名
機能
このビットは , 16 ビットフリーランタイマとコンペアレジスタ 0, 2, 4 の間
のコンペア動作を許可にするために使用します。
• コンペア動作を許可にする場合は , 必ず前もってコンペアレジスタ 0, 2, 4 と
タイマデータレジスタ(TCDTH, L)に値を書き込んでください。
( 注意事項 )
アウトプットコンペアは 16 ビットフリーランタイマクロックと同期化され
るので , 16 ビットフリーランタイマを停止するとゼロ検出 , コンペア動作も
停止します。
•
bit0
CST0:
コンペア動作
許可ビット
309
第 14 章 多機能タイマ
14.4.6
インプットキャプチャデータレジスタ(IPCPH,
IPCPL0 ∼ IPCPL3)
インプットキャプチャデータレジスタは , 入力波形の有効エッジが検出されたとき
の 16 ビットデッドタイマのカウント値を保持するために使用します。
■ インプットキャプチャデータレジスタ(IPCPH, IPCPL0 ∼ IPCPL3)
図 14.4-14 インプットキャプチャデータレジスタ(IPCPH, IPCPL0 ∼ IPCPL3)
インプットキャプチャデータレジスタ(上位)
bit 1 5
14
13
12
11
10
9
8
CP15
CP14
CP13
CP12
CP11
CP10
CP09
CP08
R
X
R
X
R
X
R
X
R
X
R
X
R
X
R
X
リード/ライト
初期値
IPCPH0~IPCPH3
インプットキャプチャデータレジスタ(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
CP07
CP06
CP05
CP04
CP03
CP02
CP01
CP00
R
X
R
X
R
X
R
X
R
X
R
X
R
X
R
X
IPCPL0~IPCPL3
このレジスタは , 対応する外部端子入力波形の有効エッジが検出されたときの 16 ビッ
トデッドタイマ値を格納するために使用します(このレジスタへアクセスする場合は ,
ワードアクセス命令をご使用ください。このレジスタにデータを書き込むことはでき
ません)。
310
第 14 章 多機能タイマ
インプットキャプチャ状態制御 /PPG 出力制御レジス
タ(ICSH23, ICSL23, PICSH01, PICSL01)
14.4.7
インプットキャプチャ状態制御 /PPG 出力制御レジスタ(ICSH23, ICSL23,
PICSH01, PICSL01)は , エッジ選択 , 割込み要求許可 , 割込み要求フラグおよび
PPG 出力を制御するために使用します。またインプットキャプチャ 0 ∼ 3 において
検出された有効なエッジを示すためにも使用します。
■ インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 上位バイト(ICSH23)
図 14.4-15 インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 上位バイト(ICSH23)
bit
15
14
13
R :リード
:初期値
- :未使用
12
11
10
9
8
IEI3
IEI2
R
R
初期値
XXXXXX00B
IEI2
有効エッジ指示ビット(インプットキャプチャ2)
0
立下りエッジが検出される
1
立上りエッジが検出される
IEI3
有効エッジ指示ビット(インプットキャプチャ3)
0
立下りエッジが検出される
1
立上りエッジが検出される
表 14.4-5 インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 上位バイト(ICSH23)
ビット名
bit15
∼
bit10
未使用ビット
機能
•
•
読出し値は不定です。
このビットへの書込みは動作に影響しません。
このビットは , キャプチャレジスタ 3 の有効エッジ指示ビットであり , 立上
りエッジまたは立下りエッジが検出されたことを示します。
• 立下りエッジが検出されると , このビットに "0" が書き込まれます。
• 立上りエッジが検出されると , このビットに "1" が書き込まれます。
• このビットは読出し専用ビットです。
( 注意事項 )
インプットキャプチャ状態制御レジスタ下位(ICSL23)の EG31,
EG30:bit3, 2=00B の場合 , 読出し値は意味がありません。
•
bit9
IEI3:
有効エッジ
指示ビット
(インプット
キャプチャ 3)
このビットは , キャプチャレジスタ 2 の有効エッジ指示ビットであり , 立上
りエッジまたは立下りエッジが検出されたことを示します。
• 立下りエッジが検出されると , このビットに "0" が書き込まれます。
• 立上りエッジが検出されると , このビットに "1" が書き込まれます。
• このビットは読出し専用ビットです。
( 注意事項 )
インプットキャプチャ状態制御レジスタ下位(ICSL23)の EG21, EG20:bit1,
bit0=00B の場合 , 読出し値は意味がありません。
•
bit8
IEI2:
有効エッジ
指示ビット
(インプット
キャプチャ 2)
311
第 14 章 多機能タイマ
■ インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 下位バイト(ICSL23)
図 14.4-16 インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 下位バイト(ICSL23)
bit
7
6
5
4
3
2
1
0
初期値
00000000B
ICP3
ICP2
ICE3
ICE2
EG31
EG30
EG21
EG20
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
EG21
EG20
0
0
エッジは検出されない(停止)
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
EG31
EG30
エッジ選択ビット(インプットキャプチャ2)
エッジ選択ビット(インプットキャプチャ3)
0
0
エッジは検出されない(停止)
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
ICE2
割込み要求許可ビット(インプットキャプチャ2)
0
割込み要求を禁止する
1
割込み要求を許可する
ICE3
割込み要求許可ビット(インプットキャプチャ3)
0
割込み要求を禁止する
1
割込み要求を許可する
ICP2
割込み要求フラグビット(インプットキャプチャ2)
読出し
有効なエッジが検出されない このビットはクリアされる
1
有効なエッジが検出される
ICP3
312
このビットは影響を受けない
割込み要求フラグビット(インプットキャプチャ3)
読出し
R/W :リード/ライト
:初期値
書込み
0
書込み
0
有効なエッジが検出されない このビットはクリアされる
1
有効なエッジが検出される
このビットは影響を受けない
第 14 章 多機能タイマ
表 14.4-6 インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 下位バイト(ICSL23)
ビット名
機能
•
bit7
ICP3:
割込み要求フ
ラグビット
(インプット
キャプチャ 3)
•
•
•
•
•
•
bit6
ICP2:
割込み要求フ
ラグビット
(インプット
キャプチャ 2)
•
•
•
•
•
bit5
ICE3:
割込み要求許
可ビット (イ
ンプットキャ
プチャ 3)
•
bit4
ICE2:
割込み要求許
可ビット(イ
ンプットキャ
プチャ 2)
•
bit3,
bit2
EG31, EG30:
エッジ選択
ビット(イン
プットキャプ
チャ 3)
•
bit1,
bit0
EG21, EG20:
エッジ選択
ビット(イン
プットキャプ
チャ 2)
•
•
•
•
•
このビットは , インプットキャプチャ 3 の割込み要求フラグとして使用しま
す。
このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定
されます。
割込み許可ビット(ICE3:bit5)が設定されている間に有効エッジが検出され
ると , 直ちに割込みを生成できます。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 : このビットは影響を受けません。
リードモディファイライト時は , 必ず "1" が読み出されます。
このビットは , インプットキャプチャ 2 の割込み要求フラグとして使用しま
す。
このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定
されます。
割込み許可ビット(ICE2:bit4)が設定されている間に有効エッジが検出され
ると , 直ちに割込みを生成できます。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 : このビットは影響を受けません。
リードモディファイライト時は , 必ず "1" が読み出されます。
このビットは , インプットキャプチャ 3 のインプットキャプチャ割込み要求
を許可にするために使用します。
このビットに "1" が設定されている間に割込みフラグ(ICP3:bit7)が設定さ
れると , インプットキャプチャ割込みが生成されます。
このビットは , インプットキャプチャ 2 のインプットキャプチャ割込み要求
を許可にするために使用します。
このビットに "1" が設定されている間に割込みフラグ(ICP2:bit6)が設定さ
れると , インプットキャプチャ割込みが生成されます。
これらのビットは , インプットキャプチャ 3 の外部入力の有効エッジ極性を
指定するために使用します。
これらのビットは , インプットキャプチャ動作を有効にするためにも使用し
ます。
これらのビットは , インプットキャプチャ 2 の外部入力の有効エッジ極性を
指定するために使用します。
これらのビットは , インプットキャプチャ動作を有効にするためにも使用し
ます。
313
第 14 章 多機能タイマ
■ PPG 出力制御 / インプットキャプチャ状態制御レジスタ (ch.0, ch.1), 上位バイト
(PICSH01)
図 14.4-17 PPG 出力制御 / インプットキャプチャ状態制御レジスタ(ch.0, ch.1), 上位バイト
(PICSH01)
bit
15
PGEN5
R/W
14
13
PGEN4 PGEN3
R/W
R/W
12
11
PGEN2 PGEN1
R/W
R/W
10
9
8
PGEN0
IEI1
IEI0
R/W
R
R
IEI0
立下りエッジが検出される
1
立上りエッジが検出される
有効エッジ指示ビット(インプットキャプチャ1)
0
立下りエッジが検出される
1
立上りエッジが検出される
PGEN0
PPG出力許可ビット
0
RTO0へのPPG0出力を禁止する
1
RTO0へのPPG0出力を許可する
PGEN1
PPG出力許可ビット
0
RTO1へのPPG0出力を禁止する
1
RTO1へのPPG0出力を許可する
PGEN2
PPG出力許可ビット
0
RTO2へのPPG0出力を禁止する
1
RTO2へのPPG0出力を許可する
PGEN3
PPG出力許可ビット
0
RTO3へのPPG0出力を禁止する
1
RTO3へのPPG0出力を許可する
PGEN4
PPG出力許可ビット
0
RTO4へのPPG0出力を禁止する
1
RTO4へのPPG0出力を許可する
PGEN5
314
有効エッジ指示ビット(インプットキャプチャ0)
0
IEI1
R :リードオンリ
R/W :リード/ライト
:初期値
初期値
00000000B
PPG出力許可ビット
0
RTO5へのPPG0出力を禁止する
1
RTO5へのPPG0出力を許可する
第 14 章 多機能タイマ
表 14.4-7 PPG 出力制御 / インプットキャプチャ状態制御レジスタ(ch.0, ch.1), 上位バイト
(PICSH01)
ビット名
bit15
∼
bit10
PGEN5 ∼
PGEN0:
PPG 出力許可
ビット
機能
•
これらのビットは , RTO0 ∼ RTO5 への PPG0 出力を選択するために使用しま
す。
このビットは , キャプチャレジスタ 1 の有効エッジ指示ビットであり , 立上
りエッジまたは立下りエッジが検出されたことを示します。
• 立下りエッジが検出されると , このビットに "0" が書き込まれます。
• 立上りエッジが検出されると , このビットに "1" が書き込まれます。
• このビットは読出し専用ビットです。
( 注意事項 )
インプットキャプチャ状態制御レジスタ下位(PICSL01)の EG11,
EG10:bit3, bit2=00B の場合 , 読出し値は意味がありません。
•
bit9
IEI1:
有効エッジ指
示ビット(イ
ンップトキャ
プチャ 1)
このビットは , キャプチャレジスタ 0 の有効エッジ指示ビットであり , 立上
りエッジまたは立下りエッジが検出されたことを示します。
• 立下りエッジが検出されると , このビットに "0" が書き込まれます。
• 立上りエッジが検出されると , このビットに "1" が書き込まれます。
• このビットは読出し専用ビットです。
( 注意事項 )
インプットキャプチャ状態制御レジスタ下位(PICSL01)の EG01,
EG00:bit1, bit0=00B の場合 , 読出し値は意味がありません。
•
bit8
IEI0:
有効エッジ指
示ビット(イ
ンップトキャ
プチャ 0)
315
第 14 章 多機能タイマ
■ インプットキャプチャ状態制御レジスタ(ch.0, ch.1), 下位バイト(PICSL01)
図 14.4-18 インプットキャプチャ状態制御レジスタ(ch.0, ch.1), 下位バイト(PICSL01)
bit
7
6
5
4
3
2
1
0
ICP1
ICP0
ICE1
ICE0
EG11
EG10
EG01
EG00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
EG01
EG00
初期値
00000000B
エッジ選択ビット(インプットキャプチャ0)
0
0
エッジは検出されない(停止)
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
EG11
EG10
0
0
エッジは検出されない(停止)
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
エッジ選択ビット(インプットキャプチャ1)
ICE0
割込み要求許可ビット(インプットキャプチャ0)
0
割込み要求を禁止する
1
割込み要求を許可する
ICE1
割込み要求許可ビット(インプットキャプチャ1)
0
割込み要求を禁止する
1
割込み要求を許可する
ICP0
割込み要求フラグビット(インプットキャプチャ0)
読出し
0
有効なエッジが検出されない このビットはクリアされる
1
有効なエッジが検出される
ICP1
316
このビットは影響を受けない
割込み要求フラグビット(インプットキャプチャ1)
読出し
R/W :リード/ライト
:初期値
書込み
書込み
0
有効なエッジが検出されない このビットはクリアされる
1
有効なエッジが検出される
このビットは影響を受けない
第 14 章 多機能タイマ
表 14.4-8 インプットキャプチャ状態制御レジスタ(ch.0, ch.1), 下位バイト(PICSL01)
ビット名
機能
•
bit7
ICP1:
割込み要求フ
ラグビット
(インプット
キャプチャ 1)
•
•
•
•
•
•
bit6
ICP0:
割込み要求フ
ラグビット
(インプット
キャプチャ 0)
•
•
•
•
•
•
bit5
ICE1:
割込み要求許
可ビット(イ
ンプットキャ
プチャ 1)
•
bit4
ICE0:
割込み要求許
可ビット(イ
ンプットキャ
プチャ 0)
•
bit3,
bit2
EG11, EG10:
エッジ選択
ビット(イン
プットキャプ
チャ 1)
•
bit1,
bit0
EG01, EG00:
エッジ選択
ビット(イン
プットキャプ
チャ 0)
•
•
•
•
このビットは , インプットキャプチャ 1 の割込み要求フラグとして使用しま
す。
このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定
されます。
割込み許可ビット(ICE1:bit5)が設定されている間に有効エッジが検出され
ると , 直ちに割込みが生成されます。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 : このビットは影響を受けません。
リードモディファイライト時は , 必ず "1" が読み出されます。
このビットは , インプットキャプチャ 0 の割込み要求フラグとして使用しま
す。
このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定
されます。
割込み許可ビット(ICE0:bit4)が設定されている間に有効エッジが検出され
ると , 直ちに割込みが生成されます。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 : このビットは影響を受けません。
リードモディファイライト時は , 必ず "1" が読み出されます。
このビットは , インプットキャプチャ 1 のインプットキャプチャ割込み要求
を許可するために使用します。
このビットに "1" が設定されている間に割込みフラグ(ICP1:bit7)が設定さ
れると , インプットキャプチャ 1 割込みが生成されます。
このビットは , インプットキャプチャ 0 のインプットキャプチャ割込み要求
を許可するために使用します。
このビットに "1" が設定されている間に割込みフラグ(ICP0:bit6)が設定さ
れると , インプットキャプチャ 0 割込みが生成されます。
これらのビットは , インプットキャプチャ 1 の外部入力の有効エッジ極性を
指定するために使用します。
これらのビットは , インプットキャプチャ 1 の動作を有効にするためにも使
用します。
これらのビットは , インプットキャプチャ 0 の外部入力の有効エッジ極性を
指定するために使用します。
これらのビットは , インプットキャプチャ 0 の動作を有効にするためにも使
用します。
317
第 14 章 多機能タイマ
16 ビットデッドタイマレジスタ(TMRRH,
TMRRL0 ∼ TMRRL2)
14.4.8
16 ビットデッドタイマレジスタは , 16 ビットデッドタイマのコンペア値を保持しま
す。
■ 16 ビットデッドタイマレジスタ(TMRRH, TMRRL0 ∼ TMRRL2)
図 14.4-19 16 ビットデッドタイマレジスタ(TMRRH, TMRRL0 ∼ TMRRL2)
16 ビットデッドタイマレジスタ(上位)
bit
リード/ライト
初期値
15
14
13
12
11
10
9
8
TR15
TR14
TR13
TR12
TR11
TR10
TR09
TR08
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
TMRRH0~TMRRH2
16 ビットデッドタイマレジスタ(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
TR07
TR06
TR05
TR04
TR03
TR02
TR01
TR00
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
R/W
X
TMRRL0~TMRRL2
これらのレジスタは , 16 ビットデッドタイマの比較値を格納するために使用します。こ
れらのレジスタ値は , 16 ビットデッドタイマが動作を開始するとリロードされます。タ
イマ動作中にこれらのレジスタに値が再書き込みされると , この新しい値は次回のタ
イマ開始 / 動作時に有効になります。
デッドタイムタイマモード時は , これらのレジスタはノンオーバラップ時間を設定す
るために使用します。
ノンオーバラップ時間 = (設定値 + 1)× 選択されたクロック
< 注意事項 >
• "0000H" を設定することはできません。
• ノンオーバラップ時間の最大オフセットは , " 設定値 -1" のカウンタ値です。
タイマモード時は , これらのレジスタは PPG0 タイマ動作の GATE 時間を設定するため
に使用します。
GATE 時間 = (設定値 + 1)× 選択されたクロック
< 注意事項 >
• "0000H" を設定することはできません。最大オフセットは , " 設定値 -1" のカウン
タ値です。
• GATE 時間の最大オフセットは , " 設定値 -1" のカウンタ値です。
318
第 14 章 多機能タイマ
14.4.9
16 ビットデッドタイマ制御レジスタ(DTCR0 ∼
DTCR2)
16 ビットデッドタイマ制御レジスタ(DTCR0 ∼ DTCR2)は , 波形ジェネレータの
動作モード , 割込み要求許可 , 割込み要求フラグ , GATE 信号許可および出力レベル
極性を制御するため使用します。
■ 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR0)
図 14.4-20 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR0)
7
4
3
2
1
0
DMOD0 GTEN1 GTEN0
TMIF0
TMIE0
TMD2
TMD1
TMD0
R/W
R/W
R/W
R/W
R/W
R/W
bit
R/W
6
5
R/W
TMD2
TMD1
TMD0
動作モードビット
0
0
0
波形ジェネレータが停止する
0
0
1
RT信号が"H"の間にPPG0タイマがパレスを出力する
0
1
0
各RT信号の立上りエッジがトリガとなり,16ビットデッ
ドタイマが起動する。PPG0タイマは,16ビットデッドタ
イマが停止するまでパレスを出力する(タイマモード)。
1
0
0
RT信号でノンオーバラップ信号を生成する
(デッドタイムタイマモード)。
1
1
1
PPG0タイマでノンオーバラップ信号を生成する
(デッドタイムタイマモード)。
その他
TMIE0
禁止
割込み要求許可ビット,ソフトウェアトリガビット
0
16ビットデッドタイマでアンダフローが発生されても,割込みを
生成しない。
1
16ビットデッドタイマでアンダフローが発生されると,割込みを
生成する。
TMIF0
割込み要求フラグビット
読出し
書込み
0
カウンタのアンダフローが検出されない
このビットはクリア
される
1
カウンタのアンダフローが検出される
このビットは影響を
受けない
GTEN0
GATE信号制御ビット0
0
GATE信号は,RT0で制御されない(非同期モード)
1
GATE信号は,RT0で制御される(同期モード)
GTEN1
GATE信号制御ビット1
0
GATE信号は,RT1で制御されない(非同期モード)
1
GATE信号は,RT1で制御される(同期モード)
DMOD0
R/W :リード/ライト
:初期値
初期値
00000000B
出力極性制御ビット
0
通常極性出力
1
反転極性出力
319
第 14 章 多機能タイマ
表 14.4-9 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR0)( 1 / 2 )
ビット名
機能
このビットは , デッドタイムタイマモードにおいて U/V/W の出力極性を設定
するために使用します。
• このビットを設定すると , U/V/W の出力極性は反転します。
( 注意事項 )
このビットは , デッドタイムタイマモードが選択されていない場合(TMD2:
bit2=0)は意味がありません。
•
bit7
DMOD0:
出力極性制御
ビット
GTEN1:
GATE 信号制
御ビット 1
•
bit6
このビットは , RT1 で PPG0 タイマの GATE 信号出力を制御するために使用
します。
GTEN0:
GATE 信号制
御ビット 0
•
bit5
このビットは , RT0 で PPG0 タイマの GATE 信号出力を制御するために使用
します。
このビットは , 16 ビットデッドタイマの割込み要求フラグとして使用しま
す。
• このビットは , 16 ビットデッドタイマ 0, 2 でアンダフローが発生すると "1"
が設定されます。
• このビットに "0" を書き込むと , このビットはクリアされます。"1" を書き込
んでもこのビットは影響を受けません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
( 注意事項 )
このビットは , TMD2 ∼ TMD0:bit2 ∼ bit0)が "000B" または "001B" の場合
•
bit4
TMIF0:
割込み要求フ
ラグビット
•
•
•
bit3
320
TMIE0:
割込み要求許
可ビット , ソ
フトウェアト
リガビット
のみ機能し , ほかの値の場合は必ず "0" になります。
ソフトウェアクリア(”0” 書込み)とハードウェアセット(16 ビットデッド
タイマ 0, 2 でアンダフローが発生する)が同時に発生した場合は , ソフト
ウェアクリアがハードウェアセットよりも優先され , このビットはクリアさ
れます。
このビットは , 16 ビットデッドタイマのソフトウェアトリガビットおよび割
込み許可ビットとして使用されます。
TMD2 ∼ TMD0:bit2 ∼ bit0 が "000B" または "001B" の場合 , このビットは 16
ビットデッドタイマのソフトウェアトリガとして使用されます。このビット
を "0" から "1" へ変更すると , 16 ビットデッドタイマがトリガとなり , 値が
リロードされ , ダウンカウントが開始します。
• このビットが "1" であり , 割込み要求フラグビット(TMIF0:bit4)が "1" の場
合 , 割込み要求が CPU へ送られます。
( 注意事項 )
16 ビットデッドタイマを再度トリガとする場合には , このビットに "1" を書
き込む前に必ず "0" を書き込んでください。
第 14 章 多機能タイマ
表 14.4-9 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR0)( 2 / 2 )
ビット名
機能
•
これらのビットは , 波形ジェネレータの動作モードを選択するために使用し
ます。
TMD2 ∼ TMD0:bit2 ∼ bit0 が "000B" の場合 , アウトプットコンペアの RT0
•
と RT1 の信号は , RTO0 と RTO1 のそれぞれから出力されます。また , 16
ビットデッドタイマはリロードタイマとしても使用できます。
TMD2 ∼ TMD0:bit2 ∼ bit0 が "001B" の場合 , アウトプットコンペアの RT0
•
bit2
∼
bit0
TMD2 ∼
TMD0:
動作モード
ビット
と RT1 の信号は , PPG0 出力が禁止(PPG 出力制御 / インプットキャプチャ
状態制御レジスタ上位(PICSH01)の PGEN0:bit10=0, PGEN1:bit11=0)にな
ると , RTO0 と ROT1 のそれぞれから出力されます。また , 16 ビットデッド
タイマはリロードタイマとしても使用できます。
( 注意事項 )
デッドタイムタイマモードで波形ジェネレータを動作させるには , 必ず RT1
に対して 2 チャネルモード(コンペア制御レジスタ上位(OCSH1)の
CMOD:bit12=1)を選択してください。
TMD2 ∼ TMD0:bit2 ∼ bit0 が "111B" の場合 , RT0 出力と RT1 出力は , PPG
出力制御 / インプットキャプチャ状態制御レジスタ上位(PICSH01)の
PGEN0:bit10=0, PGEN1:bit11=0 の設定に依存しません。
321
第 14 章 多機能タイマ
■ 16 ビットデッドタイマ制御レジスタ , 上位バイト(DTCR1)
図 14.4-21 16 ビットデッドタイマ制御レジスタ , 上位バイト(DTCR1)
15
12
11
10
9
8
DMOD1 GTEN3 GTEN2
TMIF1
TMIE1
TMD5
TMD4
TMD3
R/W
R/W
R/W
R/W
R/W
R/W
bit
R/W
14
13
R/W
TMD5
TMD4
TMD3
動作モードビット
0
0
0
波形ジェネレータが停止する
0
0
1
RT信号が"H"の間にPPG0タイマがパレスを出力する
0
1
0
各RT信号の立上りエッジがトリガとなり,16ビットデッ
ドタイマが起動する。PPG0タイマは,16ビットデッドタ
イマが停止するまでパレスを出力する(タイマモード)。
1
0
0
RT信号でノンオーバラップ信号を生成する
(デッドタイムタイマモード)。
1
1
1
PPG0タイマでノンオーバラップ信号を生成する
(デッドタイムタイマモード)。
その他
TMIE1
割込み要求許可ビット,ソフトウェアトリガビット
16ビットデッドタイマでアンダフローが発生されても,割込みを
生成しない。
1
16ビットデッドタイマでアンダフローが発生されると,割込みを
生成する。
割込み要求フラグビット
読出し
書込み
0
カウンタのアンダフローが検出されない
このビットはクリア
される
1
カウンタのアンダフローが検出される
このビットは影響を
受けない
GTEN2
GATE信号制御ビット2
0
GATE信号は,RT2で制御されない(非同期モード)
1
GATE信号は,RT2で制御される(同期モード)
GTEN3
GATE信号制御ビット3
0
GATE信号は,RT3で制御されない(非同期モード)
1
GATE信号は,RT3で制御される(同期モード)
DMOD1
322
禁止
0
TMIF1
R/W :リード/ライト
:初期値
初期値
00000000B
出力極性制御ビット
0
通常極性出力
1
反転極性出力
第 14 章 多機能タイマ
表 14.4-10 16 ビットデッドタイマ制御レジスタ , 上位バイト(DTCR1)( 1 / 2 )
ビット名
機能
•
このビットは , デッドタイムタイマモードにおいて U/V/W の出力極性を設定
するために使用します。
このビットを設定すると , U/V/W の出力極性は反転します。
このビットは , デッドタイムタイマモードが選択されていない場合(TMD5:
bit10=0)は意味がありません。
bit15
DMOD1:
出力極性制御
ビット
GTEN3:
GATE 信号
制御ビット 3
•
bit14
このビットは , RT3 で PPG0 タイマの GATE 信号出力を制御するために使用
します。
GTEN2:
GATE 信号
制御ビット 2
•
bit13
このビットは , RT2 で PPG0 タイマの GATE 信号出力を制御するために使用
します。
•
•
このビットは , 16 ビットデッドタイマの割込み要求フラグとして使用しま
す。
• このビットは , 16 ビットデッドタイマ 1 でアンダフローが発生すると "1" が
設定されます。
• このビットに "0" を書き込むと , このビットはクリアされます。"1" を書き込
んでもこのビットは影響を受けません。
• リードモディファイライト時は必ず "1" が読み出されます。
( 注意事項 )
このビットは , TMD5 ∼ TMD3: ビット 10 ∼ 8 が "000B" または "001B" の場
•
bit12
TMIF1:
割込み要求
フラグビット
合のみ機能し , ほかの値の場合は必ず ”0” になります。
ソフトウェアクリア("0" 書き込み)とハードウェアセット(16 ビットデッ
ドタイマ 1 でアンダフローが発生する)が同時に発生した場合は , ソフト
ウェアクリアがハードウェアセットよりも優先され , このビットをクリアし
ます。
•
•
bit11
TMIE1:
割込み要求許
可ビット ,
ソフトウェア
トリガビット
このビットは , 16 ビットデッドタイマのソフトウェアトリガビットおよび割
込み許可ビットとして使用します。
TMD5 ∼ TMD3:bit10 ∼ bit8 が "000B" または "001B" の場合 , このビットは
16 ビットデッドタイマのソフトウェアトリガとして使用されます。この
ビットを "0" から "1" へ変更すると , 16 ビットデッドタイマがトリガとなり ,
値がリロードされ , ダウンカウントが開始します。
• このビットが "1" であり , 割込みフラグビット(TMIF1:bit12)が "1" の場合 ,
割込み要求が CPU へ送られます。
( 注意事項 )
16 ビットデッドタイマを再度トリガとする場合には , このビットに "1" を書
き込む前に必ず "0" を書き込んでください。
323
第 14 章 多機能タイマ
表 14.4-10 16 ビットデッドタイマ制御レジスタ , 上位バイト(DTCR1)( 2 / 2 )
ビット名
機能
•
これらのビットは , 波形ジェネレータの動作モードを選択するために使用し
ます。
TMD5 ∼ TMD3:bit10 ∼ bit8 が "000B" の場合 , アウトプットコンペアの RT2
•
と RT3 の信号は , RTO2 と RTO3 のそれぞれから出力されます。また , 16
ビットデッドタイマはリロードタイマとしても使用できます。
TMD5 ∼ TMD3:bit10 ∼ bit8 が "001B" の場合 , アウトプットコンペアの RT2
•
bit10
∼
bit8
TMD5 ∼
TMD3:
動作モード
ビット
と RT3 は , PPG0 出力が禁止(PPG 出力制御 / インプットキャプチャ状態制
御レジスタ上位(PICSH01)の PGEN2:bit12=0, PGEN3:bit13=0 になると ,
RTO2 と RTO3 のそれぞれから出力されます。また , 16 ビットデッドタイマ
はリロードタイマとしても使用できます。
( 注意事項 )
デッドタイムタイマモードで波形ジェネレータを動作させるには , 必ず RT3
に対して 2 チャネルモード(コンペア制御レジスタ上位(OCSH3)の
CMOD:bit12=1 を選択してください。
TMD5 ∼ TMD3:bit10 ∼ bit8 が "111B" の場合 , RTO2 の出力と RTO3 の出力
は , PPG 出力制御インプットキャプチャ状態制御レジスタ上位(PICSH01)
の PGEN2:bit12=0, PGEN3:bit13=0 の設定に依存しません。
324
第 14 章 多機能タイマ
■ 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR2)
図 14.4-22 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR2)
bit 7
4
3
2
1
0
DMOD2 GTEN5 GTEN4
TMIF2
TMIE2
TMD8
TMD7
TMD6
R/W
R/W
R/W
R/W
R/W
R/W
R/W
6
5
R/W
TMD8
TMD7
TMD6
動作モードビット
0
0
0
波形ジェネレータが停止する
0
0
1
RT信号が"H"の間にPPG0タイマがパレスを出力する
0
1
0
各RT信号の立上りエッジがトリガとなり,16ビットデッ
ドタイマが起動する。PPG0タイマは,16ビットデッドタ
イマが停止するまでパレスを出力する(タイマモード)。
1
0
0
RT信号でノンオーバラップ信号を生成する
(デッドタイムタイマモード)。
1
1
1
PPG0タイマでノンオーバラップ信号を生成する
(デッドタイムタイマモード)。
その他
TMIE2
禁止
割込み要求許可ビット,ソフトウェアトリガビット
0
16ビットデッドタイマでアンダフローが発生されても,割込みを
生成しない。
1
16ビットデッドタイマでアンダフローが発生されると,割込みを
生成する。
TMIF2
割込み要求フラグビット
読出し
書込み
0
カウンタのアンダフローが検出されない
このビットはクリア
される
1
カウンタのアンダフローが検出される
このビットは影響を
受けない
GTEN4
GATE信号制御ビット4
0
GATE信号は,RT4で制御されない(非同期モード)
1
GATE信号は,RT4で制御される(同期モード)
GTEN5
GATE信号制御ビット1
0
GATE信号は,RT5で制御されない(非同期モード)
1
GATE信号は,RT5で制御される(同期モード)
DMOD2
R/W :リード/ライト
:初期値
初期値
00000000B
出力極性制御ビット
0
通常極性出力
1
反転極性出力
325
第 14 章 多機能タイマ
表 14.4-11 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR2)( 1 / 2 )
ビット名
機能
このビットは , デッドタイムタイマモードにおいて U/V/W の出力極性を設定
するために使用します。
• このビットを設定すると , U/V/W の出力極性は反転します。
( 注意事項 )
このビットは , デッドタイムタイマモードが選択されていない場合(TMD8:
bit2=0)は意味がありません。
•
bit7
DMOD2:
出力極性制御
ビット
GTEN5:
GATE 信号制
御ビット 5
•
bit6
このビットは , RT5 で PPG0 タイマの GATE 信号出力を制御するために使用
します。
GTEN4:
GATE 信号制
御ビット 4
•
bit5
このビットは , RT4 で PPG0 タイマの GATE 信号出力を制御するために使用
します。
このビットは , 16 ビットデッドタイマの割込み要求フラグとして使用しま
す。
• このビットは , 16 ビットデッドタイマ 1 でアンダフローが発生すると "1" が
設定されます。
• このビットに "0" を書き込むと , このビットはクリアされます。"1" を書き込
んでもこのビットは影響を受けません。
• リードモディファイライト時は必ず "1" が読み出されます。
( 注意事項 )
このビットは , TMD8 ∼ TMD6:bit2 ∼ bit0 が "000B" または "001B" の場合の
•
bit4
TMIF2:
割込み要求フ
ラグビット
み機能し , ほかの値の場合は必ず ”0” になります。
ソフトウェアクリア("0" 書込み)とハードウェアセット(16 ビットデッド
タイマ 1 でアンダフローが発生する)が同時に発生した場合は , ソフトウェ
アクリアがハードウェアセットよりも優先され , このビットをクリアしま
す。
•
•
bit3
326
TMIE2:
割込み要求許
可ビット , ソ
フトウェアト
リガビット
このビットは , 16 ビットデッドタイマ 16 ビットデッドタイマのソフトウェ
アトリガビットおよび割込み許可ビットとして使用します。
TMD8 ∼ TMD6:bit2 ∼ bit0 が "000B" または "001B" の場合 , このビットは 16
ビットデッドタイマのソフトウェアトリガとして使用されます。このビット
を "0" から "1" へ変更すると , 16 ビットデッドタイマがトリガとなり , 値が
リロードされ , ダウンカウントが開始します。
• このビットが "1" であり , 割込みフラグビット(TMIF2:bit4)が "1" の場合 ,
割込み要求が CPU へ送られます。
( 注意事項 )
16 ビットデッドタイマを再度トリガとする場合には , このビットに "1" を書
き込む前に必ず "0" を書き込んでください。
第 14 章 多機能タイマ
表 14.4-11 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR2)( 2 / 2 )
ビット名
機能
•
これらのビットは , 波形ジェネレータの動作モードを選択するために使用し
ます。
TMD8 ∼ TMD6:bit2 ∼ bit0 が "000B" の場合 , アウトプットコンペアの RT4
•
と RT5 の信号は , RTO4 と RTO5 のそれぞれから出力されます。また , 16
ビットデッドタイマはリロードタイマとしても使用できます。
TMD8 ∼ TMD6:bit2 ∼ bit0 が "001B" の場合 , アウトプットコンペアの RT4
•
bit2
∼
bit0
TMD8 ∼
TMD6:
動作モード
ビット
と RT5 は , PPG0 出力が禁止(PPG 出力制御 / インプットキャプチャ状態制
御レジスタ上位(PICSH01)の PGEN4:bit14=0, PGEN5:bit15=0 になると ,
RTO4 と RTO5 のそれぞれから出力されます。また , 16 ビットデッドタイマ
はリロードタイマとしても使用できます。
( 注意事項 )
デッドタイムタイマモードで波形ジェネレータを動作させるには , 必ず RT5
に対して 2 チャネルモード(コンペア制御レジスタ上位(OCSH5)の
CMOD:bit12=1 を選択してください。
TMD8 ∼ TMD6:bit2 ∼ bit0 が "111B" の場合 , RTO4 の出力と RTO5 の出力
は , PPG 出力制御インプットキャプチャ状態制御レジスタ上位(PICSH01)
の PGEN4:bit14=0, PGEN5:bit15=0 の設定に依存しません。
327
第 14 章 多機能タイマ
波形制御レジスタ(SIGCR)
14.4.10
波形制御レジスタは , 動作クロック周波数 , ノイズキャンセル機能有効 , DTTI 入力
有効および DTTI 割込みを制御するために使用します。
■ 波形制御レジスタ(SIGCR)
図 14.4-23 波形制御レジスタ(SIGCR)
bit
15
14
13
12
11
10
DTIE
DTIF
NRSL
DCK2
DCK1
DCK0
NWS1
NWS0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
NWS1
9
8
初期値
00000000B
NWS0
DTTIノイズ幅選択ビット
0
0
4サイクルノイズをキャンセルする
0
1
8サイクルノイズをキャンセルする
1
0
16サイクルノイズをキャンセルする
1
1
32サイクルノイズをキャンセルする
DCK2
DCK1
DCK0
動作クロック選択ビット
0
0
0
φ (62.5ns,f=16MHz)
0
0
1
φ/2 (125ns,f=16MHz)
0
1
0
φ/4 (250ns,f=16MHz)
0
1
1
φ/8 (500ns,f=16MHz)
1
0
0
φ/16 (1ms,f=16MHz)
1
0
1
φ/32 (2ms,f=16MHz)
1
1
0
φ/64 (4ms,f=16MHz)
1
1
1
禁止
φ :マシンサイクル
NRSL
ノイズキャンセル機能有効ビット
0
DTTI入力の,ノイズキャンセル回路が無効
1
DTTI入力の,ノイズキャンセル回路が有効
DTTI割込みフラグビット
DTIF
R/W :リード/ライト
:初期値
328
読出し
書込み
0
割込み要求なし
このビットはクリアされる
1
割込み要求あり
このビットは影響受けない
DTIE
DTTI入力有効ビット
0
DTTI入力を無効にする
1
DTTI入力を有効にする
第 14 章 多機能タイマ
表 14.4-12 波形制御レジスタ(SIGCR)
ビット名
bit15
DTIE:
DTTI 入力有効
ビット
機 能
•
このビットは , RTO0 ∼ RTO5 端子の出力レベル制御用 DTTI 端子を有効にす
るために使用します。
DTIF:
DTTI 割込み
フラグビット
このビットは , DTTI の割込みフラグです。
DTTI 入力が有効になり(DTIE:bit5=1), DTTI の low レベルが検出されると ,
このビットが設定され , 割込み要求が CPU へ送られます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時では , 必ず "1" が読み出されます。
( 注意事項 )
ノイズキャンセル機能が有効になった場合(NRSL:bit13=1), ノイズパルス
幅が渡されると , このビットには "1" が設定されます。
ソフトウェアクリア("0" 書込み)とハードウェアセット(DTTI の low レ
ベル検出)が同時に発生した場合は , ソフトウェアクリアがハードウェアリ
セットよりも優先され , このビットはクリアされます。
bit13
NRSL:
ノイズキャン
セル機能有効
ビット
このビットは , ノイズキャンセル機能を有効にするために使用します。
ノイズキャンセル回路は , カウンタでオーバフローが発生するまで low レベ
ルが保持されると , DTTI 入力信号を受取ります。カウンタは , low レベル入
力で操作される n ビットカウンタです。n は , NWS1, NWS0 ビット :9, 8 の設
定に基づいて 2, 3, 4 または 5 のいずれかの値になります。
( 注意事項 )
ノイズパルス幅をキャンセルするには , 約 2n マシンサイクルが必要になり
ます。
ノイズキャンセル回路を選択すると , 内部クロックが停止するモード(停止
モードなど)時は入力が無効になります。
bit12
∼
bit10
DCK2 ∼
DCK0:
動作クロック
選択ビット
•
これらのビットは , 16 ビットデッドタイマの動作クロックを選択するために
使用します。
bit9,
bit8
NWS1, NWS 0:
DTTI ノイズ幅
選択ビット
•
これらのビットは , 除去する DTTI 端子ノイズパルス幅を選択するために使
用します。
•
•
bit14
•
•
329
第 14 章 多機能タイマ
14.5
多機能タイマ割込み
多機能タイマは , 16 ビットフリーランタイマ割込み , 16 ビットアウトプットコンペ
ア割込み , 16 ビットインプットキャプチャ割込みおよび波形ジェネレータ割込みを
生成できます。
■ 16 ビットフリーランタイマ割込み
16 ビットフリーランタイマの割込み制御ビットと割込み要因を表 14.5-1 に示します。
表 14.5-1 16 ビットフリーランタイマの割込み制御ビットと割込み要因
16 ビットフリーランタイマ
コンペアクリア
ゼロ検出
割込み要求フラグビット
タイマ状態レジスタ上位(TCCSH)の
ICLR:bit9
タイマ状態レジスタ上位(TCCSH)の
IRQZF:bit14
割込み要求許可ビット
タイマ状態レジスタ上位(TCCSH)の
ICRE:bit8
タイマ状態レジスタ上位(TCCSH)の
IRQZE:bit13
割込み要因
16 ビットフリーランタイマ値がコンペ
アクリアレジスタ(CPCLRH, L)と一
致する
16 ビットフリーランタイマ値が "0" に
なる
16 ビットフリーランタイマの値がコンペアクリアレジスタ(CPCLRH, L)と一致する
と , タイマ状態制御レジスタ(TCCSH)の ICLR:bit9 に "1" が設定されます。この状態
において割込み要求が許可(TCCSH レジスタの ICRE:bit8=1)になると , 割込み要求が
割込みコントローラへ出力されます。
タイマ値が "0000H" になると , タイマ状態制御レジスタ(TCCSH)の IRQZF:bit14 に
"1" が設定されます。この状態において割込み要求が許可(TCCSH レジスタの IRQZE:
bit13=1)になると , 割込み要求が割込みコントローラへ出力されます。
■ 16 ビットフリーランタイマ割込みと EI2OS
16 ビットフリーランタイマ割込みと EI2OS を表 14.5-2 に示します。
表 14.5-2 16 ビットフリーランタイマ割込みと EI2OS
チャネル
割込み
番号
割込み制御レジスタ
ベクトルテーブルアドレス
EI2OS
レジスタ名
アドレス
下位
中位
上位
コンペアクリア *1
#34(22H)
ICR11
0000BBH
FFFF74H
FFFF75H
FFFF76H
ゼロ検出 *2
#31(1FH)
ICR10
0000BAH
FFFF80H
FFFF81H
FFFF82H
△
*1:16 ビットフリーランタイマコンペアクリアの割込み制御レジスタと同じ値が 16 ビット入力キャプチャチャ
ネル 0, 1 に割当てられます。
*2:16 ビットフリーランタイマ “0” 検出の割込み制御レジスタと同じ値が 16 ビット PPG タイマ 2 に割当てられ
ます。
330
第 14 章 多機能タイマ
■ 16 ビットアウトプットコンペア割込み
16 ビットアウトプットコンペアの割込み制御ビットと割込み要因を表 14.5-3 に示しま
す。
表 14.5-3 16 ビットアウトプットコンペア 0 ∼ 5 の割込み制御ビットと割込み要因
16 ビットアウトプット
コンペア 0, 1
16 ビットアウトプット
コンペア 2, 3
16 ビットアウトプット
コンペア 4, 5
割込み要求フラグビット
コンペア制御レジスタ下
位(OCSL0)の IOP1,
IOP 0(bit7, bit6)
コンペア制御レジスタ下
位(OCSL2)の IOP1,
IOP0(bit7, bit6)
コンペア制御レジスタ下
位(OCSL4)の IOP1,
IOP0(bit7, bit6)
割込み要求許可ビット
コンペア制御レジスタ下
位(OCSL0)の IOE1,
IOE0(bit5, bit4)
コンペア制御レジスタ下
位(OCSL2)の IOE1,
IOE 0(bit5, bit4)
コンペア制御レジスタ下
位(OCSL4)の IOE1,
IOE 0(bit5, bit4)
割込み原因
16 ビットフリーランタイ
マ値がアウトプットコン
ペアレジスタ(OCCPH,
L0, L1)と一致する
16 ビットフリーランタイ
マ値がアウトプットコン
ペアレジスタ(OCCPH,
L2, L3)と一致する
16 ビットフリーランタイ
マ値がアウトプットコン
ペアレジスタ(OCCPH,
L4, L5)と一致する
16 ビットフリーランタイマ値がアウトプットコンペアレジスタ(OCCPH, L0 ∼ L5)
と一致すると, コンペア制御レジスタ下位(OCSL0, OCSL2, OCSL4)のIOP1, IOP0:bit7,
bit6 に "1" に設定されます。この状態において割込み要求が許可(OCSL0, OCSL2,
OCSL4 レジスタの IOE1, IOE0:bit5, bit4=11B)になると , 割込み要求が割込みコント
ローラへ出力されます。
■ 16 ビットアウトプットコンペア割込みと EI2OS
16 ビットアウトプットコンペア割込みと EI2OS を表 14.5-4 に示します。
表 14.5-4 16 ビットアウトプットコンペア割込みと EI2OS
割込み制御レジスタ
ベクトルテーブルアドレス
割込み
番号
レジスタ名
アドレス
下位
中位
上位
出力コンペア 0 一致 *1
#12(0CH)
ICR00
0000B0H
FFFFCCH
FFFFCDH
FFFFCEH
出力コンペア 1 一致 *2
#15(0FH)
ICR02
0000B2H
FFFFC0H
FFFFC1H
FFFFC2H
出力コンペア 2 一致 *3
#17(11H)
ICR03
0000B3H
FFFFB8H
FFFFB9H
FFFFBAH
出力コンペア 3 一致 *4
#19(13H)
ICR04
0000B4H
FFFFB0H
FFFFB1H
FFFFB2H
出力コンペア 4 一致 *5
#21(15H)
ICR05
0000B5H
FFFFA8H
FFFFA9H
FFFFAAH
出力コンペア 5 一致 *6
#23(17H)
ICR06
0000B6H
FFFFA0H
FFFFA1H
FFFFA2H
チャネル
EI2OS
○
*1:16 ビットアウトプットコンペア 0 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が A/D 変換
終了に割当てられています。
*2:16 ビットアウトプットコンペア 1 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が 16 ビット
PPG タイマ 1 に割当てられています。
*3:16 ビットアウトプットコンペア 2 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が 16 ビット
リロードタイマ 1 アンダフローに割当てられています。
*4:16 ビットアウトプットコンペア 3 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が DTP, 外部
割込みチャネル 0, 1 検出 , DTTI に割当てられています。
*5:16 ビットアウトプットコンペア 4 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が DTP, 外部
割込みチャネル 2, 3 検出 , DTTI に割当てられています。
*6:16 ビットアウトプットコンペア 5 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が PWC タ
イマ 1 に割当てられています。
331
第 14 章 多機能タイマ
■ 16 ビットインプットキャプチャ割込み
16 ビットインプットキャプチャの割込み制御ビットと割込み要因を表 14.5-5 に示しま
す。
表 14.5-5 16 ビットインプットキャプチャ 0 ∼ 3 の割込み制御ビットと割込み要因
16 ビットインプットキャプチャ 0, 1
16 ビットインプットキャプチャ 2, 3
割込み要求フラグビット
インプットキャプチャ状態制御レジス
タ下位(PICSL01)の ICP1, ICP0
(bit7, bit 6)
インプットキャプチャ状態制御レジス
タ下位(ICSL23)の ICP3, ICP2
(bit7, bit 6)
割込み要求許可ビット
インプットキャプチャ状態制御レジス
タ下位(PICSL01)の ICE1, ICE0
(bit5, bit 4)
インプットキャプチャ状態制御レジス
タ下位(ICSL23)の ICP3, ICP2
(bit5, bit4)
有効なエッジが IN0, IN1 端子で検出さ
れる
割込み要因
有効なエッジが IN2, IN3 端子で検出さ
れる
16 ビットインプットキャプチャでは , 有効なエッジが IN0 ∼ IN3 端子で検出される
と , インプットキャプチャ状態制御レジスタ(PICSL01, ICSL23)の ICP3 ∼ ICP0: 共
に bit7, bit6 に "11B" が設定されます。この状態において割込み要求が許可(PICSL01,
ICSL23 レジスタの ICE3 ∼ ICE0: 共に bit5, bit4=11B)になると , 割込み要求は割込み
コントローラへ出力されます。
■ 16 ビットインプットキャプチャ割込みと EI2OS
16 ビットインプットキャプチャ割込みと EI2OS を表 14.5-6 に示します。
表 14.5-6 16 ビットインプットキャプチャ割込みと EI2OS
割込み制御レジスタ
チャネル
インプットキャプチャ 0,
*1
1
割込み
番号
#33
(21H)
ベクトルテーブルアドレス
EI2OS
レジスタ
名
アドレス
下位
中位
上位
ICR11
0000BBH
FFFF78H
FFFF79H
FFFF7AH
○
インプットキャプチャ 2,
3*2
#35
(23H)
ICR12
0000BCH
FFFF70H
FFFF71H
FFFF72H
*1:16 ビットインプットキャプチャ 0, 1 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が 16
ビットフリーランタイマコンペアクリアに割当てられています。
*2:16 ビットインプットキャプチャ 2, 3 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)がタイム
ベースタイマに割当てられています。
332
第 14 章 多機能タイマ
■ 波形ジェネレータ割込み
波形ジェネレータの割込み制御ビットと割込み要因を表 14.5-7 に示します。
表 14.5-7 波形ジェネレータの割込み制御ビットと割込み要因
波形ジェネレータ
DTTI0
16 ビットデッドタイマ 0, 1, 2
割込み要求フラグビット
16 ビットデッドタイマ制御レジスタ上位 , 下
位(DTCR0 ∼ DTCR2)の TMIF0 ∼ TMIF2
(上位は bit12, 下位は bit4)
波形制御レジスタ(SIGCR)の
DTIF(bit14)
16 ビットデッドタイマ制御レジスタ上位 , 下
位(DTCR0 ∼ DTCR2)の TMIE0 ∼ TMIE2
(上位は bit11, 下位は bit3)
−
割込み要求許可ビット
16 ビットデッドタイマ 0, 1, 2 アンダフロー
割込み要因
DTTI で low レベルが検出される
波形ジェネレータでは , 16 ビットデッドタイマのアンダフローが発生し , かつ DTCR0 ∼
DTCR2 レジスタの TMD8 ∼ TMD0(上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0)が "000B" ま
たは "001B" のとき , 16 ビットデッドタイマ制御レジスタ(DTCR0 ∼ DTCR2)の TMIF0 ∼
TMIF2(上位は bit12, 下位は bit4)には "1" が設定されます。この状態において割込み要
求が許可(DTCR0 ∼ DTCR2 レジスタの TMIE0 ∼ TMIE2(上位は bit11, 下位は bit3)=1)
になると , 割込み要求は割込みコントローラへ出力されます。
■ 波形ジェネレータ割込みと EI2OS
波形ジェネレータ割込みと EI2OS を表 14.5-8 に示します。
表 14.5-8 波形ジェネレータ割込みと EI2OS
割込み
番号
チャネル
16 ビットデッドタイマ
0, 1, 2 アンダフロー *1
DTTI
*2
割込み制御レジスタ
ベクトルテーブルアドレス
レジスタ名
アドレス
下位
中位
上位
ICR09
0000B9H
FFFF88H
FFFF89H
FFFF8AH
ICR04
0000B4H
FFFFACH
FFFFADH
FFFFAEH
#29(1DH)
EI2OS
△
#20(14H)
*1:16 ビットデッドタイマ 0, 1, 2 アンダフローの割込み制御レジスタと同じ値(レジスタ番号とアドレス)が
16 ビットリロードタイマ 0 アンダフローに割当てられています。
*2:DTTI の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が多機能タイマの DTP, 外部割込みチャ
ネル 0, 1 検出 , 16 ビットアウトプウトコンペア 3 に割当てられています。
■ 多機能タイマの EI2OS 機能
多機能タイマは EI2OS と連係する回路を持っているので , 割込みが発生すると EI2OS
を起動できます。
ただし , EI2OS は , 割込み制御レジスタ(ICR)を共用するほかのリソースが割込みを
使用しない場合に限り使用可能です。たとえば , 16 ビットフリーランタイマのコンペ
アクリアが EI2OS を使用している場合 , 16 ビットインプットキャプチャチャネル 0, 1
割込みを禁止しなければなりません。
333
第 14 章 多機能タイマ
14.6
多機能タイマの動作
多機能タイマの動作について説明します。
■ 多機能タイマの動作
● 16 ビットフリーランタイマ
16 ビットフリーランタイマは , リセット解除後 , タイマデータレジスタ(TCDTH,
TCDTL)に設定されている値からカウントアップを開始します。カウンタ値は , 16 ビッ
トアウトプウトコンペアと 16 ビットインプットキャプチャの基準時間として使用され
ます。
● 16 ビットアウトプットコンペア
16 ビットアウトプットコンペアは , " 指定されたアウトプットコンペアレジスタに設定
されている値 " と "16 ビットフリーランタイマ値 " の比較に使用します。一致が検出さ
れた場合は , 割込みフラグが設定され , 出力レベルは反転します。
● 16 ビットインプットキャプチャ
16 ビットインプットキャプチャは , 指定された有効なエッジを検出するために使用し
ます。有効なエッジが検出されると , 割込みフラグが設定され , 16 ビットフリーランタ
イマ値が取出され , インプットキャプチャデータレジスタへ格納されます。
● 波形ジェネレータ
波形ジェネレータは , リアルタイム出力(RTO0 ∼ RTO5), 16 ビット PPG タイマ 0, 16
ビットデッドタイマを使用してさまざまな波形(デッドタイムを含む)を生成します。
334
第 14 章 多機能タイマ
14.6.1
16 ビットフリーランタイマの動作
16 ビットフリーランタイマは , リセット完了後 , タイマデータレジスタ(TCDTH,
TCDTL)に設定されている値からカウントアップを開始します。カウンタ値は , 16
ビットアウトプットコンペアと 16 ビットインプットキャプチャの基準時間として使
用されます。
■ タイマクリア
16 ビットフリーランタイマのカウンタ値は , 下記のいずれかの場合にクリアされます。
• アップカウントモード(TCCSL レジスタの MODE:bit4=0)によってコンペアクリア
レジスタとの一致が検出された場合
• 動作中に TCCSL レジスタの SCLR:bit3 に "1" が書き込まれた場合
• 停止中に TCDTH, TCDTL レジスタに "0000H" が書き込まれた場合
• リセットされた場合
リセットされると , カウンタは直ちにクリアされます。ソフトウェアクリアされた場合
またはコンペアクリアレジスタとの一致が発生した場合は , カウンタはカウントタイ
ミングと同期してクリアされます。
図 14.6-1 16 ビットフリーランタイマのクリアタイミング
φ
コンペア
レジスタ値
N
コンペア一致
N
カウンタ値
0000H
■ タイマモード
16 ビットフリーランタイマでは , 以下のどちらかのモードを選択できます。
• アップカウントモード(TCCSL レジスタの MODE:bit4=0)
• アップダウンカウントモード(TCCSL レジスタの MODE:bit4=1)
アップカウントモード時は , カウンタは事前に設定されているタイマデータレジスタ
(TCDTH, TCDTL)からカウントを開始し , カウンタ値がコンペアクリアレジスタ
(CPCLRH, CPCLRL)の値と一致するまでカウントアップし , 次にカウンタは "0000H"
にクリアされ , 次に再びカウントアップします。
アップダウンカウントモード時は , カウンタは事前に設定されているタイマデータレ
ジスタ(TCDTH, TCDTL)からカウントを開始し , カウンタ値がコンペアクリアレジ
スタ(CPCLRH, CPCLRL)の値と一致するまでカウントアップし , 次にカウンタがアッ
プカウントからダウンカウントに変わり , カウンタ値が "0000H" に達するまでカウント
ダウンし , 次に再びカウントアップします。
335
第 14 章 多機能タイマ
モードビット(TCCSL レジスタの MODE:bit4)には , タイマが動作中であろうと停止
していようといつでも値を書き込むことができます。タイマ動作中にこのビットに書
き込まれた値はバッファに入れられ , カウントモードはタイマ値が "0000H" になると変
わります。
図 14.6-2 タイマ動作中にタイマモードを変える
カウンタ値
FFFFH
BFFF H
7FFFH
3FFFH
0000 H
時間
アップカウントモードに変わる
タイマ動作開始
アップダウンカウンタモードに変わる
リセット
コンペアクリア
バッファレジスタ
BFFFH
TCCSL:MODE
■ コンペアクリアバッファ
コンペアクリアレジスタ(CPCLRH, CPCLRL)には , 有効または無効にできるバッファ
機能が存在します。バッファ機能が有効(TCCSL レジスタの BFE:bit6=1)の場合は , コ
ンペアクリアバッファレジスタ(CPCLRBH, CPCLRBL)に書き込まれたデータは , 16
ビットフリーランタイマ値 "0" が検出されると CPCLRH, CPCLRL レジスタに転送され
ます。
バッファ機能が無効
(TCCSLビットのBFE:bit6=0)
の場合は, CPCLRBH, CPCLRBL
レジスタは透過であり , データは CPCLRH, CPCLRL レジスタに直接書き込むことがで
きます。
図 14.6-3 コンペアクリアバッファが無効(TCCSL レジスタの BFE:bit6=0)時の
アップカウントモードによる動作
カウンタ値
FFFFH
BFFF H
7FFFH
3FFFH
0000 H
時間
タイマ動作開始
リセット
ゼロ検出
コンペアクリア
バッファレジスタ値
BFFFH
7FFFH
FFFFH
BFFFH
7FFFH
FFFFH
コンペアクリア
レジスタ値
336
コンペアクリア一致
第 14 章 多機能タイマ
図 14.6-4 コンペアクリアバッファが有効(TCCSL レジスタの BFE:bit6=1)時の
アップカウントモードによる動作
カウンタ値
FFFFH
BFFF H
7FFFH
3FFFH
0000 H
時間
タイマ動作開始
リセット
コンペアクリア
バッファレジスタ値
コンペアクリア
レジスタ値
コンペアクリア一致
ゼロ検出
BFFFH
FFFFH
7FFFH
7FFFH
BFFFH
FFFFH
図 14.6-5 コンペアクリアバッファが有効(TCCSL レジスタの BFE:bit6=1)時の
アップダウンカウントモードによる動作
カウンタ値
コンペアクリア一致
FFFFH
BFFF H
7FFFH
3FFFH
0000 H
時間
タイマ動作開始
ゼロ検出
リセット
コンペアクリア
バッファレジスタ値
コンペアクリア
レジスタ値
BFFFH
BFFFH
FFFFH
7FFFH
7FFFH
FFFFH
337
第 14 章 多機能タイマ
■ タイマ割込み
16 ビットフリーランタイマでは , 以下の 2 つの割込みを生成できます。
• コンペアクリア割込み
• ゼロ検出割込み
コンペアクリア割込みは , タイマ値がコンペアクリアレジスタ(CPCLRH, CPCLRL)
の値と一致すると生成されます。
ゼロ検出割込みは , タイマ値が "0000H" に達すると生成されます。
< 注意事項 >
ソフトウェアクリア(TCCSL レジスタの SCLR:bit3=1)は , ゼロ検出割込みを生成
しません。
図 14.6-6 アップカウントモード(TCCSL レジスタの MODE:bit4=0)で生成された割込み
カウンタ値
N-1
N
0
1
コンペアクリア割込み
ゼロ検出割込み
図 14.6-7 アップダウンカウントモード(TCCSL レジスタの MODE:bit4=1)で生成された割込み
カウンタ値
N-1
N
N-1
0
コンペアクリア割込み
ゼロ検出割込み
■ 割込みマスク機能
TCCSH レジスタの MSI2 ∼ MSI0:bit12 ∼ bit10 を設定すると , 割込み要求をマスクでき
ます。MSI2 ∼ MSI0 ビットは , カウント値が "000B" に達すると値をリロードする 3
ビットリロードダウンカウンタです。カウント値は , MSI2 ∼ MSI0 ビットに直接書き
込むことによってもロードできます。マスクカウントは , MSI2 ∼ MSI0 ビットに設定
された値です。MSI2∼MSI0ビットが"000B"になると, 割込み要因はマスクされません。
割込み要因は , カウントモード(TCCSL レジスタの MODE:bit4)によって異なります。
アップカウントモード時は , コンペアクリア割込みのみをマスクでき , ゼロ検出割込み
は "0" が検出されるたびに生成されます。アップダウンカウントモード時は , ゼロ検出
割込みのみをマスクでき , コンペアクリア割込みはコンペアクリアが検出されるたび
に生成されます。
< 注意事項 >
338
ソフトウェアクリア(TCCSL レジスタの SCLR:bit3=1)は , ゼロ検出割込みを生成
しません。
第 14 章 多機能タイマ
図 14.6-8 アップカウントモードでマスクされるコンペアクリア割込み
コンペアクリア一致
カウンタ値
FFFFH
BFFF H
7FFFH
3FFFH
0000 H
時間
1回目
タイマ動作開始
2回目
3回目
4回目
リセット
ゼロ検出
割込み
ソフトウェア
クリア
TCCSHレジスタ MSI2~0=000B
コンペアクリア
割込み
TCCSHレジスタ MSI2~0=001B
TCCSHレジスタ MSI2~0=010B
(注意事項) ゼロ検出割込みとコンペアクリア割込みの両方はソフトウェアによりクリアされます。
図 14.6-9 アップダウンカウントモードでマスクされるゼロ検出割込み
コンペアクリア一致
カウンタ値
FFFFH
1回目
2回目
3回目
4回目
5回目
6回目
BFFF H
↓
↓
↓
↓
↓
↓
7FFFH
3FFFH
0000 H
時間
タイマ動作開始
1回目
リセット
コンペアクリア
割込み
ゼロ検出 TCCSHレジスタ MSI2~0=000
B
割込み
2回目
3回目
ゼロ検出
4回目
5回目
6回目
ソフトウェア
クリア
TCCSHレジスタ MSI2~0=001B
TCCSHレジスタ MSI2~0=010B
(注意事項) ゼロ検出割込みとコンペアクリア割込みの両方はソフトウェアによりクリアされます。
339
第 14 章 多機能タイマ
■ 選択された外部カウントクロック
16 ビットフリーランタイマは , 入力クロック(内部クロックまたは外部クロック)に
基づいてインクリメントされます。外部クロックが選択されると , 外部クロックモード
(TCCSH レジスタの ECKE:bit15=1)が選択された後 , 16 ビットフリーランタイマは外
部入力の初期値が "1" のとき立上りエッジでカウントアップするかまたは外部入力の
初期値が "0" のとき立下りエッジでカウントアップします。
図 14.6-10 16 ビットフリーランタイマのカウントタイミング
φ
外部クロック入力
TCCSHレジスタ
ECKEビット
カウントクロック
カウンタ値
340
N
N+1
第 14 章 多機能タイマ
16 ビットアウトプットコンペアの動作
14.6.2
アウトプットコンペアは , " 指定されたコンペアレジスタに設定されている値 " と
"16 ビットフリーランタイマの値 " の比較に使用します。一致が検出された場合は ,
割込みフラグが設定され , 出力レベルが反転します。
■ 16 ビットアウトプットコンペアの動作
● コンペア動作は , 各チャネル ( コンペア制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の
CMOD:bit12=0) において実行できます。
図 14.6-11 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を別々に使用した際
の出力波形例(フリーランタイマはアップカウントモード)
カウンタ値
FFFFH
BFFF H
7FFFH
3FFFH
時間
0000 H
リセット
コンペアレジスタ0値
コンペアレジスタ1値
BFFFH
7FFFH
RT0
RT1
コンペア0割込み
コンペア1割込み
341
第 14 章 多機能タイマ
図 14.6-12 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を別々に使用した際
の出力波形例(フリーランタイマはアップダウンカウントモード)
カウンタ値
FFFFH
BFFF H
7FFFH
3FFFH
時間
0000 H
リセット
コンペアレジスタ0値
BFFFH
コンペアレジスタ1値
7FFFH
RT0
RT1
コンペア0割込み
コンペア1割込み
● 出力レベルは , 一対のコンペアレジスタ(コンペア制御レジスタ上位(OCSH1, OCSH3,
OCSH5)の CMOD:bit12=1)を使用して変更できます。
図 14.6-13 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 をペアで使用した際
の出力波形例(フリーランタイマはアップカウントモード)
カウンタ値
FFFFH
BFFF H
7FFFH
3FFFH
時間
0000 H
リセット
コンペアレジスタ0値
BFFFH
コンペアレジスタ1値
7FFFH
RT0
RT1
コンペア0割込み
コンペア1割込み
342
コンペア0に対応
付けられている
コンペア0と1に対応
付けられている
第 14 章 多機能タイマ
図 14.6-14 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を一緒に使用した際
の出力波形例(フリーランタイマはアップダウンカウントモード)
カウンタ値
FFFFH
BFFF H
7FFFH
3FFFH
時間
0000 H
リセット
コンペアレジスタ0値
BFFFH
コンペアレジスタ1値
7FFFH
コンペア0に対応
付けられている
コンペア0と1に対
応付けられている
RT0
RT1
コンペア0割込み
コンペア1割込み
● コンペアバッファが無効になったときの出力レベル
図 14.6-15 コンペアバッファが無効になっているときの出力波形例
(フリーランタイマはアップカウントモード)
カウンタ値
FFFFH
BFFF H
7FFFH
3FFFH
0000 H
時間
タイマの動作開始
リセット
コンペアクリア一致
コンペアクリア一致
コンペアクリア
バッファレジスタ0値
BFFFH
3FFFH
BFFFH
コンペアクリア
レジスタ0値
BFFFH
3FFFH
BFFFH
RT0
割込み
343
第 14 章 多機能タイマ
● コンペアクリア一致発生時にコンペアバッファが選択された際の出力レベル
図 14.6-16 コンペアバッファが有効になったときの出力波形例
(フリーランタイマはアップダウンカウントモード)
カウンタ値
FFFFH
BFFF H
7FFFH
3FFFH
0000 H
リセット
コンペアバッファ
レジスタ0値
コンペア
レジスタ0値
BFFFH
BFFFH
RT0
割込み
344
時間
ゼロ検出
タイマの動作開始
コンペアクリア一致
3FFFH
BFFFH
3FFFH
3FFFH
BFFFH
第 14 章 多機能タイマ
■ 16 ビットアウトプットコンペアタイミング
フリーランタイマがコンペアレジスタ値と一致すると , アウトプットコンペアはコン
ペア一致信号を生成して出力を反転し , 割込みを生成します。コンペア一致が発生する
と , 出力はカウンタのカウントタイミングと同期して反転します。
< 注意事項 >
コンペアレジスタが更新されると , カウンタ値とは比較されません。
図 14.6-17 コンペアレジスタが更新されたときのコンペア動作
カウンタ値
N
コンペア
レジスタ0値
コンペア
レジスタ0書込み
コンペア
レジスタ1値
コンペア
レジスタ1書込み
N+1
N+2
N+3
一致信号は生成されない
N+1
M
L
N+3
コンペア1停止
コンペア0停止
図 14.6-18 コンペア割込みタイミング
φ
カウンタ値
N
N+1
コンペア
レジスタ値
N
コンペア一致
割込み
図 14.6-19 出力端子変更タイミング
カウンタ値
コンペア
レジスタ値
N
N+1
N
N+1
N
コンペア
一致信号
端子出力
345
第 14 章 多機能タイマ
14.6.3
16 ビットインプットキャプチャの動作
インプットキャプチャは , 指定された有効なエッジを検出するために使用します。
有効なエッジが検出されると , 割込みフラグが設定され , 16 ビットフリーランタイ
マの値がキャプチャレジスタへロードされます。
■ 16 ビットインプットキャプチャの動作
図 14.6-20 インプットキャプチャタイミング例
カウンタ値
FFFFH
BFFF H
7FFFH
3FFFH
0000 H
時間
リセット
IN0
IN1
IN例
キャプチャレジスタ0
不定
キャプチャレジスタ1
不定
キャプチャレジスタ例
不定
3FFFH
7FFFH
BFFFH
3FFFH
キャプチャ0での割込み
キャプチャ1での割込み
キャプチャ例での割込み
(注意事項) キャプチャ0 : 立上りエッジ
キャプチャ1 : 立下りエッジ
キャプチャ例: 両方のエッジ
346
割込みは,別の有効な
エッジで生成される
割込みは,ソフトウェアで
クリアされる
第 14 章 多機能タイマ
■ 16 ビットインプットキャプチャ入力タイミング
図 14.6-21 入力信号に対する 16 ビットインプットキャプチャタイミング
φ
マシンクッロク
カウンタ値
インプット
キャプチャ入力
N
N+1
有効なエッジ
キャプチャ信号
キャプチャ
レジスタ号
N+1
割込み
347
第 14 章 多機能タイマ
波形ジェネレータの動作
14.6.4
波形ジェネレータは , リアルタイム出力(RTO0 ∼ RTO5), 16 ビット PPG タイマ
0, 16 ビットデッドタイマ 0, 1, 2 を使用してさまざまな波形(デッドタイムを含
む)を生成できます。
■ RTO0 ∼ RTO5 と GATE の出力状態
表 14.6-1 RTO0 ∼ RTO5/GATE 出力状態とビット設定 (1 / 2)
TMD2
TMD1
TMD0
GTENx
PGENx
RTOx
0
0
0
X
X
リアルタイム出力 RTx(16 ビットアウト
プットコンペア出力)
0
0
1
X
0
リアルタイム出力 RTx(16 ビットアウト
プットコンペア出力)
GATE
常に "0"
(RTx &
GTENx)
*3
0
0
1
0
1
RTx が ”H” の期間に PPG0 のパルスを出力 *1
常に "0"
0
0
1
1
1
RTx が ”H” の期間に GATE 信号により起動さ
れた PPG0 のパルスを出力
(RT0|RT
1|RT2|RT3|
RT4|RT5)
RT0, 1 の立上りエッジにより 16 ビットデッ
ドタイマ 0 を起動し , 16 ビットデッドタイ
マ 0 がアンダフローするまで "H" を出力
X
0
1
0
0
RT2, 3 の立上りエッジにより 16 ビットデッ
ドタイマ 1 を起動し , 16 ビットデッドタイ
マ 1 がアンダフローするまで "H" を出力
タイマ動
作期間中
は "H" を
出力 *4
RT4, 5 の立上りエッジにより 16 ビットデッ
ドタイマ 2 を起動し , 16 ビットデッドタイ
マ 2 がアンダフローするまで "H" を出力
RT0, 1 の立上りエッジにより 16 ビットデッ
ドタイマ 0 を起動し , 16 ビットデッドタイ
マ 0 がアンダフローするまで PPG0 のパル
スを出力 *1
0
0
1
0
1
RT2, 3 の立上りエッジにより 16 ビットデッ
ドタイマ 1 を起動し , 16 ビットデッドタイ
マ 1 がアンダフローするまで PPG0 のパル
スを出力 *1
RT4, 5 の立上りエッジにより 16 ビットデッ
ドタイマ 2 を起動し , 16 ビットデッドタイ
マ 2 がアンダフローするまで PPG0 のパル
スを出力 *1
348
常に "0"
第 14 章 多機能タイマ
表 14.6-1 RTO0 ∼ RTO5/GATE 出力状態とビット設定 (2 / 2)
TMD2
TMD1
TMD0
GTENx
PGENx
1
0
GATE
RT0, 1 の立上りエッジにより 16 ビットデッ
ドタイマ 0 を起動し , 16 ビットデッドタイ
マ 0 がアンダフローするまで GATE 信号に
より起動された PPG0 のパルスを出力
1
0
RTOx
1
RT2, 3 の立上りエッジにより 16 ビットデッ
ドタイマ 1 を起動し , 16 ビットデッドタイ
マ 1 がアンダフローするまで GATE 信号に
より起動された PPG0 のパルスを出力
タイマ動
作期間中
は "H" を
出力 *4
RT4, 5 の立上りエッジにより 16 ビットデッ
ドタイマ 2 を起動し , 16 ビットデッドタイ
マ 2 がアンダフローするまで GATE 信号に
より起動された PPG0 のパルスを出力
RT1 でノンオーバラップ信号を生成 *2
X
1
0
0
X
RT3 でノンオーバラップ信号を生成 *2
常に "0"
RT5 でノンオーバラップ信号を生成 *2
1
1
1
0
X
PPG0 でノンオーバラップ信号を生成
1
1
1
1
X
GATE 信号により起動された PPG0 でノン
オーバラップ信号を生成
その他
常に "0"
常に "0"
(RT0|RT
1|RT2|RT3|
RT4|RT5)
常に "0"
*1: あらかじめ PPG0 を起動しておく必要があります。
*2: ノンオーバラップ信号を生成するには , 必ず RT1, RT3, RT5 に対して 2 チャネルモード(コンペア制御レ
ジスタ上位(OCSH1, OCSH3, OCSH5)の CMOD:bit12=1)を選択してください。
*3:GTENx ビットに "1" を設定した RTx から GATE 信号が生成されます。
*4:GTENx ビットに "1" を設定した RTx によって起動されるタイマの動作期間中に , GATE 信号が生成されま
す。複数の GATEx ビットに "1" を設定した場合 , GATE 信号は各々のタイマ動作期間中の信号を OR した信
号となります。
( 注意事項 )
RTO0, RTO1 は 16 ビットデッドタイマ制御レジスタ下位(DTCR0)の TMD2 ∼ TMD0:bit2 ∼ bit0 により ,
RTO2, RTO3 は(DTCR1)上位レジスタの TMD5 ∼ TMD3:bit10 ∼ bit8 により , RTO4, RTO5 は下位レジス
タ(DTCR2)の TMD8 ∼ TMD6:bit2 ∼ bit0 により制御されます。
349
第 14 章 多機能タイマ
■ PPG0 出力制御
RTO0 ∼ RTO5 端子への PPG0 出力は , PPG 出力制御 / インプットキャプチャ状態制御
レジスタ上位(PICSH01)の PGEN5 ∼ PGEN0:bit15 ∼ bit10 で許可にできます。
■ ゲートトリガされた PPG0 出力
波形ジェネレータではリアルタイム出力 RTO0 ∼ RTO5 により GATE 信号を生成でき ,
16 ビットデッドタイマ 0, 1, 2 では PPG0 カウントをトリガとして動作できます。1 つ
の 16 ビットデッドタイマ 0, 1, 2 で 2 つのリアルタイム出力(RTO0/2/4, RTO1/3/5)が
操作され , 6 つの別々のゲート信号が生成されます。これら 6 つのゲート信号は論理和
がとられて GATE 信号を生成し , PPG0 カウントのトリガとなります。
また , PGEN0 ∼ PGEN5 信号を使用すると , PPG0 のみを使用することで RTO0 ∼ RTO5
端子に 6 つの異なる波形を出力できます。
● GTENx がアクティブであり各 RTx が "H" であるとき(16 ビットデッドタイマ制御レジスタ
(DTCR0 ∼ DTCR2)の TMD8 ∼ TMD0(上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0)が
"001B" または "111B")の GATE 信号生成
図 14.6-22 RTx が "H" であるときの GATE 信号の生成
16ビットフリーランタイマ
FFFFH
BFFF H
カウント値
7FFFH
3FFFH
0000 H
時間
コンペアレジスタ0値
BFFFH
コンペアレジスタ1値
7FFFH
RT0
RT1
GATE0
GATE1
GATE
350
第 14 章 多機能タイマ
● GTENx がアクティブ(DTCR0 ∼ DTCR2 レジスタの TMD8 ∼ TMD0=010B)であるときの
RTx 立上りエッジから 16 ビットデッドタイマ 0, 1, 2 アンダフローまでにおける GATE 信
号の生成
図 14.6-23 RTx 立上りエッジから 16 ビットデッドタイマアンダフローまでにおける
GATE 信号の生成
16ビットフリーランタイマ
FFFFH
BFFF H
カウント値
7FFFH
3FFFH
時間
0000 H
コンペアレジスタ0値
BFFFH
コンペアレジスタ1値
7FFFH
RT0
RT1
GATE0
GATE1
16ビットデッド
タイマ0の時間
16ビットデッド
タイマ0の時間
GATE
< 注意事項 >
各 16 ビットデッドタイマは , 2 つの RT に対して使用されます。すなわち , 16 ビッ
トデッドタイマ 0 は RT0 と RT1 に対して使用され , 16 ビットデッドタイマ 1 は
RT2 と RT3 に対して使用され , 16 ビットデッドタイマ 2 は RT4 と RT5 に対して
使用されます。したがって , RT を使用して , すでに動作中のタイマの起動を試みて
はなりません。このような試みを行った場合は , GATE 信号出力が拡張され , その結
果 , 誤動作が発生する場合があります。
351
第 14 章 多機能タイマ
14.6.4.1
タイマモードの動作
RT0 ∼ RT5 端子の立上がりエッジが検出されると , 16 ビットデッドタイマに値がリ
ロードされて 16 ビットデッドタイマがダウンカウントを開始します。PPG タイマ 0
は 16 ビットデッドタイマでアンダフローが発生するまで RTO0 ∼ RTO5 端子へ出
力し続けます。
■ タイマモードの動作
● RT立上がりエッジから16ビットデッドタイマアンダフローまでにおけるPPG0出力パルス
生成 (DTCR0 ∼ DTCR2 レジスタの TMD8 ∼ TMD0( 上位は bit10 ∼ bit8, 下位は bit2 ∼
bit0)=010B)
図 14.6-24 TMD2 ∼ TMD0( 上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0) が
"010B" のときに生成される波形
レジスタの設定
• TCDTH, TCDTL
: 0000H
• TCCSH, TCCSL
: XXXXXXXXXX0X0XXXB
• CPCLRH, CPCLRL
: XXXXH (サイクルの設定)
• OCCPH, OCCPL0~OCCPL5 : XXXXH (コンペア値)
• OCSL,OCSH0 ~ OCSH5
• PCSR
• PDUT
• PCNT
• PICS01
: XXXXH
: XXXXH
: XXXXH
: XXH (PPG0出力選択)
: -XX0XXXXXXXXXX11B
• DTCR0 ~DTCR2
: 011XX010B
• TMRRH,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定)
• SIGCR
: XXXXXX00B (DTTI入力と16ビットデッドタイマカウントクロック設定)
(注意事項) "X"動作に従って設定しなければならない。
16ビットフリーランタイマ
FFFFH
カウント値 BFFF H
7FFFH
3FFFH
時間
0000 H
PPG0
コンペアレジスタ0値
BFFFH
コンペアレジスタ1値
7FFFH
RT0
RT1
GATE
RT00
RT01
16ビットデッド 16ビットデッド
タイマ0の時間 タイマ0の時間
352
第 14 章 多機能タイマ
< 注意事項 >
各 16 ビットデッドタイマは , 2 つの RT に対して使用されます。すなわち , 16 ビッ
トデッドタイマ 0 は RT0 と RT1 に対して使用され , 16 ビットデッドタイマ 1 は
RT2 と RT3 に対して使用され , 16 ビットデッドタイマ 2 は RT4 と RT5 に対して
使用されます。したがって , RT を使用して , すでに動作中の PPG0 の起動を試みて
はなりません。このような試みを行った場合は , GATE 信号出力が拡張され , その結
果 , 誤動作が発生する場合があります。
353
第 14 章 多機能タイマ
デッドタイムタイマモード時の動作
14.6.4.2
デッドタイムジェネレータは , リアルタイム出力(RT1, RT3, RT5), もしくは
PPG0 タイマパルス出力を入力し , 外部端子(RTO0 ∼ RTO5)へノンオーバラップ
信号(反転信号)を出力します。
■ デッドタイムタイマモード時の動作
● 通常極性の RT1, RT3, RT5 によるノンオーバラップ信号生成(16 ビットデッドタイマ制御レ
ジスタ(DTCR0 ∼ DTCR2)の TMD8 ∼ TMD0(上位は 10 ∼ 8, 下位は 2 ∼ 0)=100B)
DTCR0 ∼ DTCR2 レジスタの DMOD が "0"(通常極性)であるノンオーバラップ信号
を選択すると , 16 ビットデッドタイマレジスタ(TMRRH, L0 ∼ L2)に設定されてい
るノンオーバラップ時間に相当する遅延が適用されます。この遅延は , RT1, RT3, RT5
端子の立上りエッジまたは立下りエッジで適用されます。RT1, RT3, RT5 パルス幅が ,
設定されているノンオーバラップ時間より小さい場合は , 16 ビットデッドタイマはそ
の次の RT エッジの TMRRH, L0 ∼ L2 レジスタ値からダウンカウントを再開します。
図 14.6-25 通常極性の RT1, RT3, RT5 によるノンオーバラップ信号生成
レジスタの設定
• TCDTH, TCDTL
• TCCSH, TCCSL
• OCCPH, OCCPL0 ~ 5
• TMRRH, TMRRL0 ~ 2
• SIGCR
: 0000H
: X--XXXXXX0X0XXXB
: XXXXH (コンペア値)
• CPCLRH, CPCLRL : XXXXH (サイクルの設定)
• OCSH, OCSL0 ~ 5 : -XX1XXXXXXXXXX11B
• DTCR0 ~ 2
: 0XXXX100B
: XXXXH (ノンオーバラップタイミングの設定)
: XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定)
(注意事項) "X"動作に従って設定しなければならない。
16ビットデッドタイマ0
TMRR0設定
カウント値
RT1
RTO0(U)
RTO1(X)
1マシンサイクル
端子名
354
1.5マシンサイクル
出力信号
RTO0 (U)
遅延された信号がRT1立上りエッジで適用される
RTO2 (V)
遅延された信号がRT3立上りエッジで適用される
RTO4 (W)
遅延された信号がRT5立上りエッジで適用される
RTO1 (X)
遅延された反転信号がRT1立下りエッジで適用される
RTO3 (Y)
遅延された反転信号がRT3立下りエッジで適用される
RTO5 (Z)
遅延された反転信号がRT5立下りエッジで適用される
第 14 章 多機能タイマ
● 反転極性の RT1, RT3, RT5 によるノンオーバラップ信号生成(16 ビットデッドタイマ制
御レジスタ(DTCR0, DTCR1, DTCR2)の TMD8 ∼ TMD0(上位は 10 ∼ 8, 下位は 2 ∼
0)=100B)
DTCR0 ∼ DTCR2 レジスタの DMOD(上位は bit15, 下位は bit7)が "1"(反転極性)で
あるノンオーバラップ信号を選択すると , 16 ビットデッドタイマレジスタ(TMRRH,
L0 ∼ L2)に設定されているノンオーバラップ時間に相当する遅延が適用されます。こ
の遅延は , RT1, RT3, RT5 の立上りエッジまたは立下りエッジで適用されます。RT1,
RT3, RT5 パルス幅が , 設定されているノンオーバラップ時間より小さい場合は , 16
ビットデッドタイマはその次の RT エッジの TMRRH, L0 ∼ L2 値からダウンカウント
を再開します。
図 14.6-26 反転極性の RT1, RT3, RT5 によるノンオーバラップ信号生成
レジスタの設定
• TCDTH, TCDTL
• CPCLRH, CPCLRL
: XXXXH (サイクル設定)
• OCSH,OCSL0~ OCSL5: -XX1XXXXXXXXXX11B
• DTCR0 ~ 2
: 0XXXX100B
: 0000H
• TCCSH, TCCSL
: XXXXXXXXXX0X0XXXB
• OCCPH, OCCPL0 ~ OCCPL5: XXXXH (コンペア値)
• TMRRH, TMRRL0 ~ TMRRL2: XXXXH (ノンオーバラップタイミングの設定)
• SIGCR
: XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定)
(注意事項) "X"動作に従って設定しなければならない。
16ビットデッドタイマ0
TMRR0設定
カウント値
RT1
RTO0(U)
RTO1(X)
1マシンサイクル
端子名
1.5マシンサイクル
出力信号
RTO0 (U)
遅延された反転信号がRT1立上りエッジで適用される
RTO2 (V)
遅延された反転信号がRT3立上りエッジで適用される
RTO4 (W)
遅延された反転信号がRT5立上りエッジで適用される
RTO1 (X)
遅延された信号がRT1立下りエッジで適用される
RTO3 (Y)
遅延された信号がRT3立下りエッジで適用される
RTO5 (Z)
遅延された信号がRT5立下りエッジで適用される
355
第 14 章 多機能タイマ
● 通常極性の PPG によるノンオーバラップ信号生成(16 ビットデッドタイマ制御レジスタ
(DTCR0 ∼ DTCR2)の TMD8 ∼ TMD0(上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0)=111B)
DTCR0 ∼ DTCR2 レジスタの DMOD2 ∼ DMOD0(上位は bit15, 下位は bit7)が "0"
(通常極性)であるノンオーバラップ信号を選択すると , 16 ビットデッドタイマレジス
タ(TMRRH, TMRRL0 ∼ TMRRL2)に設定されているノンオーバラップ時間に相当す
る遅延が適用されます。この遅延は , PPG0 タイマパルス信号または反転信号の立上り
エッジで適用されます。PPG タイマパルス幅が , 設定されているノンオーバラップ時
間より小さい場合は , 16 ビットデッドタイマは PPG0 パルスのその次のエッジの
TMRRH, L0 ∼ L2 値からダウンカウントを再開します。
図 14.6-27 通常極性の PPG タイマ 0 によるノンオーバラップ信号生成
レジスタの設定
• TCDTH, TCDTL
:
• TCCSH, TCCSL
:
• CPCLRH, CPCLRL
:
• OCCPH,OCCPL0~OCCPL5 :
0000H
XXXXXXXXXX0X0XXXB
XXXXH (サイクルの設定)
• PCSR : XXXXH
• PDUT : XXXXH
• PCNT : XXXXH
XXXXH (コンペア値)
• OCSH, OCSL0 ~ OCSL5 : -XX1XXXXXXXXXX11B
• DTCR0 ~ DTCR2
: 0XXXX111B
• TMRRH,TMRRL0 ~ TMRRL2: XXXXH (ノンオーバラップタイミングの設定)
• SIGCR
: XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定)
(注意事項) "X"動作に従って設定しなければならない。
16ビットデッドタイマ0
TMRR0設定
カウント値
PPG0
RTO0(U)
RTO1(X)
1マシンサイクル
端子名
356
1.5マシンサイクル
出力信号
RTO0 (U)
遅延された信号がPPG0立上りエッジで適用される
RTO2 (V)
遅延された信号がPPG0立上りエッジで適用される
RTO4 (W)
遅延された信号がPPG0立上りエッジで適用される
RTO1 (X)
遅延された反転信号がPPG0立下りエッジで適用される
RTO3 (Y)
遅延された反転信号がPPG0立下りエッジで適用される
RTO5 (Z)
遅延された反転信号がPPG0立下りエッジで適用される
第 14 章 多機能タイマ
● 反転極性の PPG によるノンオーバラップ信号生成(16 ビットデッドタイマ制御レジスタ
(DTCR0 ∼ DTCR2)の TMD8 ∼ TMD0(上位は 10 ∼ 8, 下位は 2 ∼ 0)=111B)
DTCR0 ∼ DTCR2 ビットの DMOD2 ∼ DMOD0(上位は bit15, 下位は bit7)が "1"(反
転極性)であるノンオーバラップ信号を選択すると , 16 ビットデッドタイマレジスタ
(TMRRH, TMRRL0 ∼ TMRRL2)に設定されているノンオーバラップ時間に相当する
遅延が適用されます。この遅延は , PPG0 タイマパルス信号または反転信号の立上り
エッジで適用されます。PPG0 タイマパルス幅が , 設定されているノンオーバラップ時
間より小さい場合は , 16 ビットデッドタイマは PPG0 パルスのその次のエッジの
TMRRH, TMRRL0 ∼ TMRRL2 値からダウンカウントを再開します。
図 14.6-28 反転極性の PPG タイマ 0 によるノンオーバラップ信号生成
レジスタの設定
• TCDTH, TCDTL
• TCCSH, TCCSL
• CPCLRH, CPCLRL
• OCCPH, OCCPL0 ~ 5
: 0000H
• OCSH, OCSL0 ~ 5
• DTCR0 ~ 2
: -XX1XXXXXXXXXX11B
: XXXXXXXXXX0X0XXXB
: XXXXH (サイクルの設定)
: XXXXH (コンペア値)
• PCSR
• PDUT
: XXXXH
• PCNT
: XXXXH
: XXXXH
: 1XXXX111B
• TMRRH, TMRRL0 ~ 2 : XXXXH (ノンオーバラップタイミングの設定)
• SIGCR
: XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定)
(注意事項) "X"動作に従って設定しなければならない。
16ビットデッドタイマ0
TMRR0設定
カウント値
PPG0
RTO0(U)
RTO1(X)
1マシンサイクル
端子名
1.5マシンサイクル
出力信号
RTO0 (U)
遅延された反転信号がPPG0立上りエッジで適用される
RTO2 (V)
遅延された反転信号がPPG0立上りエッジで適用される
RTO4 (W)
遅延された反転信号がPPG0立上りエッジで適用される
RTO1 (X)
遅延された信号がPPG0立下りエッジで適用される
RTO3 (Y)
遅延された信号がPPG0立下りエッジで適用される
RTO5 (Z)
遅延された信号がPPG0立下りエッジで適用される
357
第 14 章 多機能タイマ
DTTI 端子制御の動作
14.6.4.3
波形制御レジスタ(SIGCR)の DTIE:bit15 に "1" を設定すると , RTO0 ∼ RTO5 出
力を DTTI 端子で制御できます。DTTI 端子の "L" レベルが検出されると , RTO0 ∼
RTO5 出力は , 割込みフラグ(SIGCR レジスタの DTIF:bit14)がクリアされるまで
非動作レベルに固定されます。RTO0 ∼ RTO5 の非動作レベルは , これらの端子を
共用しているポートデータレジスタ(PDR)を使ってソフトウェア的に設定できま
す。
■ DTTI 端子入力の動作
DTTI 端子入力の "L" が検出された場合でも , タイマは波形ジェネレータが動作してい
る間は動作を継続しますが , 波形は外部端子 RTO0 ∼ RTO5 へは出力されません。
図 14.6-29 DTTI 入力が有効のときの動作
レジスタの設定
•
•
•
•
•
•
TCDTH,
TCCSH,
OCCPH,
PDRx
TMRRH,
SIGCR
TCDTL
: 0000H
• CPCLRH, CPCLRL
: XXXXH (サイクルの設定)
TCCSL
: XXXXXXXXXX0X0XXXB
• OCSH, OCSL0 ~ 5
: -XX1XXXXXXXXXX11B
OCCPL0 ~ 5 : XXXXH (コンペア値)
• DTCR0 ~ 2
: 0XXXX100B
: XXXXXX00B (非動作レベルの設定)
TMRRL0 ~ 2 : XXXXH (ノンオーバラップタイミングの設定)
: 1XXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定)
(注意事項) "X"動作に従って設定しなければならない。
16ビットフリーランタイマ
FFFFH
カウント値
BFFF H
7FFFH
3FFFH
時間
0000 H
コンペアレジスタ0値
BFFFH
コンペアレジスタ1値
7FFFH
RT1
RT00
RT01
DTTIO
DTIF
出力非動作
ソフトウェアクリア
358
第 14 章 多機能タイマ
■ DTTI 端子ノイズキャンセル機能
波形制御レジスタ(SIGCR)の NRSL:bit13 に "1" を設定すると , DTTI 端子入力のノイ
ズキャンセル機能が有効になります。ノイズキャンセル機能が有効になると , 出力端子
(RTO0 ∼ RTO5)を非動作レベルに固定するために要する時間が 4, 8, 16 または 32 マ
シンサイクル(SIGCR レジスタの NWS1, NWS0:bit9, bit8 で選択)だけ遅延します。
ノイズキャンセル回路はリソースを使用するので , 発振が停止するモード(停止モード
など)時において DTTI 入力が有効になった場合でも入力は無効になります。
■ DTTI 割込み
DTTI の "L" レベルが検出されると , ノイズキャンセル時間が経過した後で DTTI 割込
みフラグ(SIGCR レジスタの DTIF:bit14)に "1" が設定され , 割込み要求は割込みコン
トローラへ送信されます。
図 14.6-30 DTTI 割込みタイミング
DTTI
SIGCRレジスタ
DTIFビット
SIGCRレジスタのNWS1,0ビットで
制御せれるノイズキャンセル時間
SIGCRレジスタのDTIFビットに
ソフトウェアで"0"を書込む
< 注意事項 >
• ノイズキャンセル時間内に SIGCR レジスタの NWS1, NWS0 ビットの値が変化
した場合は , さらに大きな(NWS1, NWS0)ノイズサイクル値が有効になりま
す。
• SIGCR レジスタの DTIF:bit14 は , ソフトウェアでのみクリアできます。
359
第 14 章 多機能タイマ
14.7
多機能タイマ使用上の注意
多機能タイマ使用上の注意を以下に示します。
■ 16 ビットフリーランタイマ使用上の注意
● プログラムによる設定上の注意
• リセットを実行すると , タイマが有効(TCCSL レジスタの STOP:bit5=0)になった
後 , その次のカウントクロックでタイマ値が "0000H" になり , ゼロ検出割込みフラグ
に "1" が設定されます。
• タイマモードビット(TCCSL レジスタの MODE:bit4)はバッファを持っているので ,
その次のカウントサイクルでタイマモードの変更は有効になります。ゼロ検出割込
みは , タイマモードがアップカウントモードからアップダウンカウントモードに変
わると必ず生成されます。
• ソフトウェアクリア(TCCSL レジスタの SCLR:bit3=1)はタイマを初期化します
が , ゼロ検出割込みを生成しません。
● 割込みの注意
• タイマ状態制御レジスタ上位(TCCSH)の IRQZF:bit14 に "1" を設定し , 次に割込
み要求を許可にすると(TCCSH レジスタの IRQZE:bit13=1), 制御は割込み処理か
ら戻ることができません。ZIRQF:bit14 は , 必ずクリアしてください。
• タイマ状態制御レジスタ上位(TCCSH)の ICLRbit9 に "1" を設定し , 次に割込み要
求を許可にすると(TCCSH レジスタの ICRE:bit8=1), 制御は割込み処理から戻るこ
とができません。ICLR:bit9 は , 必ずクリアしてください。
• 16 ビットフリーランタイマは割込みベクトルをほかのリソースと共用しますので ,
割込みを使用する場合は , 割込み処理ルーチンで割込み要因を注意深くチェックし
なければなりません。
• また , 16 ビットフリーランタイマで EI2OS を使用する場合は , 共用リソース割込み
を禁止にしなければなりません。
■ 16 ビットアウトプットコンペア使用上の注意
● 割込みの注意
• コンペア制御レジスタ下位(OCSL0, OCSL2, OCSL4)の IOP1, IOP0:bit7, bit6 に "11B"
を設定し , 次に割込み要求を許可にすると(OCSL レジスタの IOE1, IOE0:bit6,
bit5=11B), 制御は割込み処理から戻ることができません。IOP0, IOP1 ビットは , 必
ずクリアしてください。
• 16 ビットアウトプットコンペアは , 割込みベクトルをほかのリソースと共用するの
で , 割込みを使用する場合は , 割込み処理ルーチンで割込み要因を注意深くチェッ
クしなければなりません。
• また , 16 ビットアウトプットコンペアで EI2OS を使用する場合は , 共用リソース割
込みを禁止にしなければなりません。
360
第 14 章 多機能タイマ
■ 16 ビットインプットキャプチャ使用上の注意
● 割込みの注意
• インプットキャプチャ状態制御レジスタ下位(PICSL01, ICSL23)の ICP3 ∼ ICP0
(共に bit7, bit6)に "1" を設定し , 次に割込み要求を許可にすると(PICSL01, ICSL23
レジスタの ICE3 ∼ ICE0(共に bit5, bit4)=11B), 制御は割込み処理から戻ることが
できません。ICP3 ∼ ICP0(共に bit7, bit6)は , 必ずクリアしてください。
• インプットキャプチャ端子(IN)レベルが , ICP3 ∼ ICP0 ビットが設定されてから割
込みルーチンが処理されるまでの間に切り換わると , 有効エッジ指示ビット
(ICSH23
レジスタの IEI3, IEI2:bit9, bit8 または PICSH01 レジスタの IEI1, IEI0:bit9, bit8)は , 検
出された最新のエッジを示します。
• 16 ビットインプットキャプチャは割込みベクトルをほかのリソースと共用するの
で , 割込みを使用する場合は , 割込み処理ルーチンで割込み要因を注意深くチェッ
クしなければなりません。
• また , 16 ビットインプットキャプチャで EI2OS を使用する場合は , 共用リソース割
込みを禁止にしなければなりません。
■ 波形ジェネレータ使用上の注意
● プログラムによる設定上の注意
• 波形ジェネレータが動作中(DTCR0 ∼ DTCR2 レジスタの TMD2 ∼ TMD0,
に , 16 ビッ
TMD5 ∼ TMD3, TMD8 ∼ TMD6 が "001B", "010B", "100B" または "111B")
トデッドタイマ制御レジスタ(DTCR0 ∼ DTCR2)の TMD8, TMD5, TMD2(上位
は bit10, 下位は bit2), TMD7, TMD4, TMD1(上位は bit9, 下位は bit1), TMD6,
TMD3, TMD0(上位は bit8, 下位は bit0)ビット値を変更する場合は , トリガソース
および 16 ビットデッドタイマがカウント中でないことを必ず確認してください。こ
の操作を行わない場合は , 以前のトリガでスケジュールされた出力が原因となり予
期しない波形が RTO 端子から出力されます。ただし , RTO 出力は , タイマでアンダ
フローが発生したり , 新しいトリガソースで再トリガされたりすると , 正常動作に
戻ります。
• トリガソースとは , DTCR0, ∼ DTCR2 レジスタの TMD8 ∼ TMD0(上位は bit10 ∼
bit8, 下位は bit2 ∼ bit0)
が "001B" の場合は "RT の H レベル " であり , TMD8 ∼ TMD0
ビットが "010B" の場合は "RT の立上りエッジ " であり , TMD8 ∼ TMD0 ビットが
"100B" の場合は "RT の立上りエッジまたは立下りエッジ " であり , TMD8 ∼ TMD0
ビットが "111B" の場合は "PPG0 の立上りエッジまたは立下りエッジ " です。
たとえば , TMD8 ∼ TMD0 ビットが "100B" から "111B" へ変更すると , 下記の手順を
実行できます。
1. 16 ビットデッドタイマレジスタ(TMRRH, L0 ∼ L2)を "0001H" のような非常に小
さな値を設定する。
2. RT1, RT3, RT5 の出力を "L" または "H" に設定し , タイマ 0, 1, 2 でアンダフローが
発生するまで待つ。
3. モードビット(TMD8 ∼ TMD0)および対応する設定を変更する。
4. 修正された出力波形が 1 マシンサイクル後 RTO 端子に現れる。
361
第 14 章 多機能タイマ
• タイマがカウント中に 16 ビットデッドタイマレジスタ(TMRRH, L0 ∼ L2)に値
が書き込まれると , この新しい値は次のタイマトリガ時に有効になります。タイマ
レジスタへアクセスする場合は , 必ずワード転送命令(MOVW A, dir など)をご使
用ください。
• タイマがカウントしていない場合のみ , 波形制御レジスタ(SIGCR)の DCK2 ∼
DCK0:bit12 ∼ bit10 を変更してください。
• ノイズキャンセル機能が無効になった場合のみ ,
波形制御レジスタ(SIGCR)の
NWS1, NWS0:bit9, bit8 を変更してください。
● 割込みの注意
• 16 ビットデッドタイマ制御レジスタ(DTCR0 ∼ DTCR2)の TMIF2 ∼ TMIF0(上
位は bit12, 下位は bit4)に "1" を設定し , 次に割込み要求を許可にすると(DTCR0 ∼
DTCR 2 レジスタの TMIE2 ∼ TMIE0(上位は bit11, 下位は bit3=1), 制御は割込み処
理から戻ることができません。TMIF ビットは , 必ずクリアしてください。
• 波形制御レジスタ(SIGCR)の DTIF:bit14 に "1" を設定すると , 制御は割込み処理
から戻ることができません。DTIF ビットは , 必ずクリアしてください。
• 波形ジェネレータは割込みベクトルをほかのリソースと共用するので , 割込みを使
用する場合は , 割込み処理ルーチンで割込み要因を注意深くチェックしなければな
りません。
• また , 波形ジェネレータで EI2OS を使用する場合は , 共用リソース割込みをディス
エーブルにしなければなりません。
362
第 14 章 多機能タイマ
14.8
多機能タイマのプログラム例
多機能タイマのプログラム例を示します。
■ 16 ビットフリーランタイマのプログラム例
● 処理
• 4ms コンペアクリア割込みは 16 ビットフリーランタイマ 0 により生成します。
• 本タイマはアップダウンモード時にコンペアクリアタイマの再生成のために使用
します。
• EI2OS は使用しません。
• 16MHz はマシンクロック用 , 62.5ms はカウントクロック用です。
● コーディング例
ICR11
EQU
0000BBH
;16 ビットフリーランタイマ用割込み制御レジスタ
TCCSL
EQU
00005EH
; タイマ制御状態レジスタ
CPCLRBH EQU
00005BH
; コンペアクリアバッファレジスタ
ICLR
EQU
TCCSL:9
; 割込み要求フラグビット
;--------- メインプログラム ------------------------------------------CODE
CSEG
START:
;
:
; スタックポインタ(SP)が既に初期化されているものと仮
定
AND
CCR,#0BFH; 割込み禁止
MOV
I:ICR11,#00H; 割込みレベル 0(最強)
MOVW I:CPCLRBH,#0FFFFH;16 ビットフリーランタイマをアップカウントか
らダウ
; ンカウントへ変更するためにコンペアクリア値を設定
MOVW I:TCCSL,#0110H ; アップダウンモード , 62.5ms カウントクロックを設定
; コンペアクリア割込みを許可
; 割込みマスクを禁止
; 割込みフラグと有効タイマをクリア
MOV
ILM,#07H ;PS 中の ILM をレベル 7 に設定
OR
CCR,#40H ; 割込み許可
LOOP:
MOV
A,#00H
; 無限ループ
MOV
A,#01H
;
BRA
LOOP
;
;--------- 割込みプログラム ------------------------------------------WARI:
CLRB I:ICLR
; 割込み要求フラグをクリア
;
:
;
ユーザ処理
;
:
RETI
; 割込みから復帰
CODE
ENDS
363
第 14 章 多機能タイマ
;--------- ベクタ設定 -----------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FF74H
; 割込み #34(22H)用ベクタを設定
VECT
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH
START
00H
; リセットベクタを設定
; シングルチップモードの設定
START
■ 16 ビットアウトプットコンペアのプログラム例
● 処理
• 16 ビットフリーランタイマのカウント値がアウトプットコンペア用と一致したと
き , アウトプットコンペア一致が生成します。
• 16 ビットフリーランタイマがアップカウントモード時に使用します。
• EI2OS は使用しません。
• 16MHz はマシンクロック用 , 62.5ms は 16 ビットフリーランタイマのカウントクロッ
ク用です。
● コーディング例
ICR00
EQU
0000B0H
; アウトプットコンペア 0 用割込みカウントレジスタ
TCCSL
EQU
00005EH
; タイマ制御状態レジスタ
CPCLRBH EQU
00005BH
; コンペアクリアバッファレジスタ
OCCPL0 EQU
000070H
; アウトプットコンペアレジスタ 0
OCCPL1 EQU
000072H
; アウトプットコンペアレジスタ 1
OCSL01 EQU
00007CH
; コンペア制御レジスタ
IOP
EQU
OCS01:6
; 割込み要求フラグビット
;--------- メインプログラム ------------------------------------------CODE
CSEG
START:
; :
; スタックポインタ (SP) が既に初期化されているものと仮定
AND
CCR,#0BFH
; 割込み禁止
MOV
I:ICR00,#00H
; 割込みレベル 0(最強)
MOVW I:TCCSL,#0000H ;16 ビットフリーランタイマを有効
; アップカウントモードを設定
MOVW I:OCCPL0,#0BFFFH; アウトプットコンペアレジスタ 0 を設定
MOVW I:OCCPL1,#07FFFH; アウトプットコンペアレジスタ 1 を設定
MOVW I:OCSL01,#0C1FH; アウトプットコンペア出力を有効
; コンペア一致割込み 0 を有効
; 割込みフラグと有効アウトプットコンペアをクリア
MOV
ILM,#07H
;PS 中の ILM をレベル 7 に設定
OR
CCR,#40H
; 割込み許可
LOOP:
MOV
A,#00H
; 無限ループ
MOV
A,#01H
;
BRA
LOOP
;
;--------- 割込みプログラム ------------------------------------------WARI:
CLRB I:IOP
; 割込みレジスタフラグをクリア
;
:
;
ユーザ処理
;
:
364
第 14 章 多機能タイマ
; 割込みから復帰
RETI
CODE
ENDS
;--------- ベクタ設定 -----------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FFCCH
; 割込み #12(0CH)用ベクタの設定
VECT
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH
START
00H
; リセットベクタの設定
; シングルチップモードの設定
START
365
第 14 章 多機能タイマ
366
第 15 章
マルチパルスジェネレータ
マルチパルスジェネレータの機能と動作について
説明します(MB90467 では , 未搭載となります)。
15.1 マルチパルスジェネレータの概要
15.2 マルチパルスジェネレータのブロックダイヤグラム
15.3 マルチパルスジェネレータの端子
15.4 マルチパルスジェネレータのレジスタ
15.5 マルチパルスジェネレータの割込み
15.6 マルチパルスジェネレータの動作
15.7 マルチパルスジェネレータ使用上の注意
15.8 マルチパルスジェネレータのプログラム例
367
第 15 章 マルチパルスジェネレータ
15.1
マルチパルスジェネレータの概要
マルチパルスジェネレータは , 16 ビット PPG タイマ , 16 ビットリロードタイマ , 波
形シーケンサから構成されています。波形シーケンサを使用すると , 16 ビット PPG
タイマ出力信号をマルチパルスジェネレータの入力信号(SNI2 ∼ SNI0)に従って
マルチパルスジェネレータ出力(OPT5 ∼ OPT0)へ送出できます。また , OPT5 ∼
OPT0 出力信号は , 緊急の場合は DTTI 入力(DTTI1)を使用してハードウェア的に
終了させることができます。OPT5 ∼ OPT0 出力信号は , 望ましくないグリッチを除
去するために PPG 信号と同期します。
なお , 16 ビットリロードタイマと 16 ビット PPG タイマについての詳細は , 「第 12
章 16 ビットリロードタイマ」と「第 13 章 16 ビット PPG タイマ」のそれぞれを
ご参照ください。
■ 波形シーケンサの機能
● 出力信号制御
波形シーケンサを使用すると , マルチパルスジェネレータ出力(OPT5 ∼ OPT0)にお
いて 16 ビット PPG 波形出力と DC チョッパ波形出力を生成できます。
• マルチパルスジェネレータの位置検出入力(SNI2 ∼ SNI0)により有効エッジが検
出された場合または 16 ビットリロードタイマでアンダフローが発生した場合また
は OPDRH, OPDRL レジスタへ書込みされた場合に , 出力データバッファレジスタ
(OPDBR0 ∼ OPDBRB)の い ず れ か の デ ー タ が 出 力 デ ー タ レ ジ ス タ(OPDRH,
OPDRL)へロードされます。
• 出力データレジスタ(OPDRH, OPDRL)は , OPT 出力端子(OPT5 ∼ OPT0)へ出
力される 16 ビット PPG タイマ出力を決定します。異なる複数の出力データバッファ
レジスタ(OPDBR0 ∼ OPDBRB)のデータを出力データレジスタ(OPDRH, OPDRL)
へロードすると , OPT 出力端子(OPT5 ∼ OPT0)からさまざまな組合わせの波形を
出力することが可能になります。
したがって , 16 ビット PPG タイマ出力は , 出力データレジスタ(OPDRH, OPDRL)
および 12 個の出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)に設定されて
いるシーケンスに従って , マルチパルスジェネレータ出力への信号送出を制御した
り , 出力先を任意の OPT 出力から別の OPT 出力に切り換えたりすることができま
す。また , 16 ビットリロードタイマは , OPT 出力切換え時に遅延を挿入することも
できます。
• OPDBR0 ∼ OPDBRB レジスタから OPDRH, OPDRL レジスタへのデータ転送の組
合わせを , 表 15.1-1 に示します。
368
第 15 章 マルチパルスジェネレータ
表 15.1-1 OPDBR0 ∼ OPDBRB レジスタから OPDRH, OPDRL レジスタへのデータ転送
組合せ
OPDBR0 ∼ OPDBRB から OPDRH, OPDRL へのデータ転送
1
OPDBR0 への書込みがソフトウェアで行われた後の OPDBR0 から OPDRH, OPDRL へのデータ転送
2
16 ビットリロードタイマ 0 のアンダフローにより起動する
3
位置検出入力端子(SNI2 ∼ SNI0)により起動する
4
16 ビットリロードタイマ 0 のアンダフローにより起動する
16 ビットタイマは , 位置検出比較回路で開始する
5
16 ビットリロードタイマ 0 のアンダフローかまたは位置検出入力により起動する
• 波形シーケンサは, 位置を検出できなかった場合にモータの速度を測定したり, OPT
出力を禁止にしたりするために使用できる 16 ビットタイマを内蔵しています。
• DTTI 端子入力(DTTI1)による強制的停止制御
- 外部端子は , 発振が停止している場合でもクロックレスで入力可能な DTTI 端子
入力で制御できます(端子レベルは , 各端子またはソフトウェアで設定できま
す)。DTTI 入力には , 選択可能なノイズフィルタが存在します。DTTI1 端子のノ
イズフィルタのノイズ幅を表 15.1-2 に示します。
表 15.1-2 ノイズフィルタのノイズ幅
選択
DTTI 端子と SNI2 ∼ SNI0 端子のノイズ幅
1
4 マシンサイクルノイズを除去する
2
8 マシンサイクルノイズを除去する
3
16 マシンサイクルノイズを除去する
4
32 マシンサイクルノイズを除去する
● 出力信号と PPG との間の同期化
シーケンサ状態遷移時点におけるショートパルス(またはグリッチ)の発生を回避す
るには , 書込みタイミング(WTO)を遅延させ , PPG 出力波形のその次のエッジと同
期化させる必要があります。詳細は , 図 15.1-1 と図 15.1-2 をご参照ください。この機
能は , ソフトウェアで有効または無効にできます。入力制御レジスタ(IPCUR)の
WTS1:bit15 と WTS0:bit14 は , この機能を無効にしたり同期化対象の PPG エッジの極性
を選択したりするために使用します。
369
第 15 章 マルチパルスジェネレータ
図 15.1-1 PPG 立上がりエッジの同期化
PPG
非同期状態変化
WTS1,0=00B
OP5
グリッチ
OP4
同期状態変化
WTS1,0=01B
OP5'
OP4'
たとえばリロードタイマ0の
アンダフローなどが原因で
シーケンサの状態が変化する。
図 15.1-2 PPG 立下がりエッジの同期化
PPG
非同期状態変化
WTS1,0=00B
グリッチ
OP5
OP4
同期状態変化
WTS1,0=10B
OP5'
OP4'
たとえばリロードタイマ0の
アンダフローなどが原因で
シーケンサの状態が変化する。
< 注意事項 >
370
PPG 同期モードからほかの PPG 同期モードへの変化(例 : 立上りエッジ同期か
ら立下り同期 , あるいはその逆)は , 禁止です。非同期モードはこのような変化
に対して遷移しなければなりません。
第 15 章 マルチパルスジェネレータ
● 入力位置検出制御
マルチパルスジェネレータ入力端子(SNI2 ∼ SNI0)の入力信号は , 直流モータのロー
タ位置を検出するために使用します。SNI2 ∼ SNI0 の各入力端子には , ノイズフィルタ
が存在します。このノイズフィルタのノイズ幅を表 15.1-2 に示します。入力位置検出
回路の条件を以下に示します。
• SNI2 ∼ SNI0 の各入力では , 3 種類のエッジのいずれかを選択できます。すなわち ,
立上りエッジ , 立下りエッジまたは両エッジを選択できます。
• SNI2 ∼ SNI0 入力のレベルは , 出力データレジスタ上位(OPDRH)の RDA2 ∼
RDA0:bit14 ∼ bit12 と比較されます。
上記の条件が満たされると , OPDBR0 ∼ OPDBRB レジスタと OPDRH, OPDRL レジス
タの間におけるデータ転送用書込みタイミング信号が生成されます。
また , 各入力(SNI2 ∼ SNI0)のエッジ検出を無効または有効にできます。
371
第 15 章 マルチパルスジェネレータ
15.2
マルチパルスジェネレータのブロックダイヤグラム
マルチパルスジェネレータのブロックダイヤグラムを図 15.2-1 に示し , 波形シーケ
ンサのブロックダイヤグラムを図 15.2-2 に示します。
■ マルチパルスジェネレータのブロックダイヤグラム
内部データバス
図 15.2-1 マルチパルスジェネレータのブロックダイヤグラム
INT2/DTTI
端子
DTTI
OPT5
端子 OPT5
SNI2
端子
SNI2
OPT4
端子 OPT4
SNI1
端子
SNI1
OPT3
端子 OPT3
SNI0
端子
SNI0
OPT2
端子 OPT2
INT5/TINO
Pin
端子
TINO
OPT1
端子 OPT1
OPT0
端子 OPT0
割込み #22
割込み #22
割込み #26
割込み #26
割込み #28
割込み #28
波形シーケンサ
16ビットPPGタイマ1
16ビットリロードタイマ0
PPG1
TOUT
TIN
PPG1
WINO
TINOO
端子 INT6/T00
● 16 ビット PPG タイマ 1
16 ビット PPG タイマ 1 は , 波形シーケンサの PPG 信号を供給するために使用します。
16 ビット PPG タイマ 1 についての詳細は , 「第 13 章 16 ビット PPG タイマ」をご参
照ください。
● 16 ビットリロードタイマ 0
16 ビットリロードタイマ 0 は , 波形シーケンサのインタバルタイマとして使用します。
16 ビットリロードタイマ 0 についての詳細は , 「第 12 章 16 ビットリロードタイマ」
をご参照ください。
● 波形シーケンサ
波形シーケンサは , さまざまな波形を生成できるマルチパルスジェネレータの心臓部
です。波形シーケンサのブロックダイヤグラムを図 15.2-2 に示します。
372
第 15 章 マルチパルスジェネレータ
■ 波形シーケンサのブロックダイヤグラム
図 15.2-2 波形シーケンサのブロックダイヤグラム
割込み
#26
書込みタイミング割込み
割込み #22
位置検出割込み
OPCURレジスタ
PDIRT
DTIE DTIF NRSL OPS2 OPS1 OPS0 WTIF WTIE PDIF PDIE OPE5 OPE4 OPE3 OPE2 OPE1 OPE0
同期化回路
PPG1から
WTS1
WTS0
OPDBRO~Bレジスタ
端子 OPT0
端子 OPT2
出力制御回路
端子 OPT3
OPx1/OPx0
端子 OPT4
端子 OPT5
INT2/DTTI1
端子
Pin
ノイズ
フィルタ
DTTI制御回路
3
RDA2~0
D1
D0
3
コンペアクリア
割込み
BNKF
デコーダ
内部データバス
出力データバッファレジスタx12
OPDRLレジスタ
端子 OPT1
端子 INT5/TINO
WT0
16ビットタイマ
WTIN1
CCIRT
SNIO
端子
WT O
データ書込み制御ユニット
SNI1
位置検出回路
OPS2
OPS1
OPS0
3
セレクタ
端子
SNI2
端子
TINO0
WTIN0
TINO0
WTIN0
WTIN1
WTIN1
比較回路
WTS1
WTS0 CPIF CPIE CPD2 CPD1 CPD0 CMPE CPE1 CPE0 SNC2 SNC1 SNC0 SEE2 SEE1 SEE0
コンペア一致割込み
IPCURレジスタ
S21
S20
S11
NCCRレジスタ
S10
S01
S00
D1
D0
PDIRT
割込み #28
373
第 15 章 マルチパルスジェネレータ
● 16 ビットタイマ
16 ビットタイマは , モータ速度を検査するインターバルタイマとして使用します。ま
た直流センサレスモータを制御するときの異常検出タイマとしても使用します。16
ビットタイマの詳細を図 15.2-3 に示します。
● 比較回路
比較回路は , モータ方向を変更する際に出力データレジスタ上位(OPDRH)の RDA2 ∼
RDA0:bit14 ∼ bit12 を入力制御レジスタ上位(IPCUR)の CPD2 ∼ CPD0:bit11 ∼ bit9
と比較するために使用します。比較の結果 , 一致が検出されると , コンペア一致割込み
が生成されます。
● データ書込み制御ユニット
データ書込み制御ユニットは , 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)
から出力データレジスタ(OPDRH, OPDRL)へのデータ転送用書込み信号(WTO)を
生成するために使用します。データ書込み制御ユニットの詳細を図 15.2-4 に示します。
● デコーダ
デコーダは , 出力データレジスタにロードされる出力データバッファレジスタ
(OPDBR0 ∼ OPDBRB)を選択するために使用する出力データレジスタ(OPDRH,
OPDRL)をデコードするために使用します。
● DTTI 制御
DTTI 制御は , 緊急の場合に DTTI1 入力のレベル "0" がトリガとなりマルチパルスジェ
ネレータ出力を停止するために使用します。
● ノイズフィルタ
ノイズフィルタは , 入力信号(4 種類のサンプリングクロックの中から選択される)の
ノイズを除去するために使用します。
● 出力制御ユニット
出力制御ユニットは , マルチパルスジェネレータ出力端子(OPT5 ∼ OPT0)への PPG
信号を有効または無効にするために使用します。
● 位置検出回路
位置検出回路は , 位置入力端子(SNI2 ∼ SNI0)のエッジ / レベルを検出するために使
用します。位置検出回路の詳細を図 15.2-5 に示します。
● 同期回路
同期回路は , OPT5 ∼ OPT0 出力を PPG 信号と同期化するために使用します。
● ノイズキャンセル制御レジスタ(NCCR)
ノイズキャンセル制御レジスタ(NCCR)は , 4 種類のサンプリングクロックの中から
いずれかを選択するために使用します(選択されたサンプリングクロックは , ノイズ
フィルタでノイズの除去に使用されます)。
374
第 15 章 マルチパルスジェネレータ
● 出力制御レジスタ(OPCUR)
出力制御レジスタ(OPCUR)は , 書込みタイミング割込みフラグを有効にし , 位置検
出割込みフラグを有効にし , データ転送方式を設定し , OPT5 ∼ OPT0 端子と DTTI1 端
子の制御を設定します。
● 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)
出力データバッファレジスタは , 12 個のレジスタ(OPDBR0 ∼ OPDBRB)から構成
されています。BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 で指定される OPDBRx
レジスタ値は , データ書込み制御ユニットで生成される書込み信号の立上りエッジで
OPDRH, OPDRL レジスタへロードされます。
● 出力データレジスタ(OPDRH, L)
出力データレジスタ(OPDRH, L)は , OPT5 ∼ OPT0 端子への出力データを格納する
ために使用します。
■ 16 ビットタイマのブロックダイヤグラム
図 15.2-3 16 ビットタイマのブロックダイヤグラム
コンペアクリア割込み(CCIRT)
φ
TCSR
TCLR
MODE
ICLR
ICRE
TMEN
CLK2
CLK1
CLK0
プリスケーラ
クロック
RST
RST
CLK
Q D
C
T[15:0]
内部データバス
16ビットアップカウンタ
16ビットコンペア
クリアレジスタ
コンペア回路
WTO
WTIN1
16ビットタイマバッファ
レジスタ
LD
● 16 ビットアップカウンタ
16 ビットアップカウンタは , 16 ビットアップカウンタのカウント値とコンペアクリア
レジスタの間で一致が検出されると , クリアされます。
375
第 15 章 マルチパルスジェネレータ
● コンペア回路
コンペア回路は , 16 ビットアップカウンタのカウント値とコンペアクリアレジスタの
データを比較するために使用します。
● コンペアクリアレジスタ(CPCRH, CPCRL)
コンペアクリアレジスタ(CPCRH, CPCRL)は , 16 ビットアップカウンタのカウント
値と比較する 16 ビットのデータを格納するために使用します。
● タイマバッファレジスタ(TMBRH, TMBRL)
タイマバッファレジスタ(TMBRH, TMBRL)は , 書込みタイミング割込みまたは位置
検出割込みが発生したときの 16 ビットアップカウンタのカウント値を格納するために
使用します。
● タイマ状態制御レジスタ(TCSR)
タイマ状態制御レジスタ(TCSR)は , クロック周波数や割込み有効 / 禁止などの , 16
ビットタイマの動作を制御するために使用します。
■ データ書込み制御ユニットのブロックダイヤグラム
図 15.2-4 データ書込み制御ユニットのブロックダイヤグラム
16ビットリロードタイマから書込み
1サイクル遅延回路
16ビットリロードタイマ0から
WTINO
TOUT
立下りエッジ検出器
セレクタ1
WT0
立上り/立下り
エッジ検出器
16ビットリロードタイマ0へ
TIN
TIN00
セレクタ0
端子 P15/INT5/TIN0
位置検出回路から
WTIN1
WTIN1
デコーダ
OPS2
OPS1
OPS0
● 1 サイクル遅延回路
1 サイクル遅延回路は , 出力データバッファレジスタ 0(OPDBR0)へ書込みされたと
きにトリガ信号を 1 マシンサイクル遅延させるために使用します。
● 立下りエッジ検出器
立下りエッジ検出器は , 16 ビットリロードタイマ 0 が出力(TOUT)する立下りエッジ
を検出するために使用します。
376
第 15 章 マルチパルスジェネレータ
● 立上り / 立下りエッジ検出器
立上り / 立下りエッジ検出器は , 16 ビットリロードタイマ 0 が出力(TOUT)する立上
り / 立下りエッジを検出するために使用します。
● セレクタ 0
セレクタ 0 は , 16 ビットリロードタイマ 0 のカウントを有効にするために位置検出回
路の WTIN1 か , あるいは外部端子(INT5/TIN0)を選択するために使用します。
● セレクタ 1
セレクタ 1 は , 書込みタイミング信号(WTO)を生成するために 16 ビットリロードタ
イマ 0 からの OPDBR0 書込みまたは TOUT または位置検出回路の WTIN1 を選択する
ために使用します。
■ 位置検出回路のブロックダイヤグラム
図 15.2-5 位置検出回路のブロックダイヤグラム
RDA2
RDA1
RDA0
比較回路
SNI0
ノイズ
フィルタ回路
エッジ検出回路0
SEE0
CPE1
CPE0
SNI1
エッジ検出回路1
ノイズ
フィルタ回路
ノイズ
フィルタ回路
WTIN1
SEE1
CPE1
CPE0
SNI2
セレクタ
CMPE
エッジ検出回路2
CPE1
CPE0
SEE2
● 比較回路
比較回路は, 位置検出入力(SNI2∼SNI0)
のレベルを出力データレジスタ上位(OPDRH)
の RDA2 ∼ RDA0:bit14 ∼ bit12 と比較するために使用します。セレクタが選択された
場合は , 一致が検出されるとデータ書込みタイミング出力信号が生成されます。
377
第 15 章 マルチパルスジェネレータ
● エッジ検出回路 0, 1, 2
エッジ検出回路 0, 1, 2 は同じ機能回路です。
エッジ検出回路は , 位置入力(SNI2 ∼ SNI0)のエッジを 3 種類のエッジ設定と比較す
るために使用します。セレクタが選択された場合は , SNI2 ∼ SNI0 入力のいずれかから
有効エッジが検出されると , データ書込みタイミング出力信号が生成されます。
● ノイズフィルタ
ノイズフィルタは , 入力信号(4 種類のサンプリングクロックの中から選択される)の
ノイズを除去するために使用します。
● セレクタ
セレクタは , データ書込み制御ユニットへのデータ書込みタイミング出力信号を生成
するために , エッジ検出回路または比較回路を選択します。
378
第 15 章 マルチパルスジェネレータ
15.3
マルチパルスジェネレータの端子
マルチパルスジェネレータの端子について説明します。また端子のブロックダイヤ
グラムも示します。
■ マルチパルスジェネレータの端子
マルチパルスジェネレータは , P00/OPT0 ∼ P05/OPT5, P43/SNI0 ∼ P45/SNI2, P12/INT2/
DTTI1 および P15/INT5/TIN0 を使用します。
● P00/OPT0 ∼ P05/OPT5 端子
P00/OPT0 ∼ P05/OPT5 端子は , 汎用入出力ポート(P00 ∼ P05)またはマルチパルス
ジェネレータの波形出力として機能できます。
波形出力ビットを許可(OPCLR レジスタの OPE5 ∼ OPE0:bit5 ∼ bit0=11111B)にする
と , P00/OPT0 ∼ P05/OPT5 端子は , ポート方向レジスタ(DDR0 レジスタの bit5 ∼ bit0)
の値とは無関係に自動的に出力端子として設定され , OPT5 ∼ OPT0 端子として機能し
ます。
● P43/SNI0 ∼ P45/SNI2 端子
P43/SNI0 ∼ P45/SNI2 端子は , 汎用入出力ポート(P43 ∼ P45)またはマルチパルスジェ
ネレータの位置検出入力として機能できます。
P43/SNI0 ∼ P45/SNI2 端子は , SNI2 ∼ 0 端子として使用する場合は , ポート方向レジス
タで入力ポートとして設定(DDR4 レジスタの bit5 ∼ bit3=000B)してください。
● P12/INT2/DTTI1 端子
P12/INT2/DTTI1 端子は , 汎用入出力ポート(P12), 外部割込み(INT2)またはマルチ
パルスジェネレータの DTTI1 入力として機能できます。
P12/INT2/DTTI1 端子は , DTTI1 端子として使用する場合は , ポート方向レジスタで入
力ポートとして設定(DDR1 レジスタの bit1=0)してください。
● P15/INT5/TIN0 端子
P15/INT5/TIN0 端子は , 汎用入出力ポート(P15), 外部割込み(INT5)またはマルチパ
ルスジェネレータの 16 ビットリロードタイマ 0 入力として機能できます。
P15/INT5/TIN0 端子は , TIN0 端子として使用する場合は , ポート方向レジスタで入力
ポートとして設定(DDR1 レジスタの bit5=0)してください。
379
第 15 章 マルチパルスジェネレータ
■ マルチパルスジェネレータ端子のブロックダイヤグラム
図 15.3-1 P00/OPT0 ∼ P05/OPT5 端子のブロックダイヤグラム
RDR
内部データバス
リソース入力
リソース出力
リソース出力許可信号
ポートデータレジスタ(PDR)
プルアップ
抵抗
約50kΩ
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
図 15.3-2 P12/INT2/DTTI1 端子および P15/INT5/TIN0 端子のブロックダイヤグラム
RDR
内部データバス
リソース入力
リソース出力
ポートデータレジスタ(PDR)
リソース出力許可信号
プルアップ
抵抗
約50kΩ
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
図 15.3-3 P43/SNI0 ∼ P45/SNI2 端子のブロックダイヤグラム
リソース出力
リソース入力
リソース出力許可信号
ポートデータレジスタ(PDR)
内部データバス
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
380
スタンバイ制御信号(SPL=1)
第 15 章 マルチパルスジェネレータ
15.4
マルチパルスジェネレータのレジスタ
マルチパルスジェネレータのレジスタについて説明します。
■ マルチパルスジェネレータのレジスタ
図 15.4-1 マルチパルスジェネレータのレジスタ
出力制御レジスタ(上位)
bit
リード/ライト
15
_
DTIE
14
13
12
11
10
9
8
DTIF
NRSL
OPS2
OPS1
OPS0
WTIF
WTI E
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
初期値
OPCUR
出力制御レジスタ(下位)
7
6
5
PDIF
PDIE
OPE5
R/W
R/W
0
0
bit
リード/ライト
初期値
4
3
2
1
0
OPE4
OPE3
OPE2
OPE1
OPE0
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
OPCLR
出力データレジスタ(上位)
bit 15
_
BNKF
14
13
12
11
10
9
8
RDA2
RDA1
RDA0
OP51
OP50
OP41
OP40
リード/ライト
R
R
R
R
R
R
R
R
初期値
0
0
0
0
X
X
X
X
OPDRH
出力データレジスタ(下位)
bit 7
6
5
4
3
2
1
0
OP31
OP30
OP21
OP20
OP11
OP10
リード/ライト
R
R
R
R
R
R
R
R
初期値
X
X
X
X
X
X
X
X
OP01 OP00
OPDRL
( 続く )
381
第 15 章 マルチパルスジェネレータ
出力データバッファレジスタ(上位)
bit
リード/ライト
初期値
15
_
BNKF
14
13
12
11
10
9
8
RDA2
RDA1
RDA0
OP51
OP50
OP41
OP40
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
OPDBR0~B
出力データバッファレジスタ(下位)
bit
7
6
5
4
3
2
1
0
OP31
OP30
OP21
OP20
OP11
OP10
OP01 OP00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
リード/ライト
初期値
OPDBR0~B
入力制御レジスタ(上位)
bit 15
リード/ライト
初期値
14
13
12
11
10
9
8
WTS1
WTS0
CPIF
CPIE
CPD2
CPD1
CPD0
CMPE
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
IPCUR
入力制御レジスタ(下位)
bit 7
リード/ライト
初期値
6
5
4
3
2
1
0
CPE1
CPE0
SNC2
SNC1
SNC0
SEE2
SEE1
SEE0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
IPCLR
( 続く )
382
第 15 章 マルチパルスジェネレータ
( 続き )
コンペアクリアレジスタ(上位)
bit
15
_
CL15
14
13
12
11
10
9
8
C L14
CL13
CL12
CL11
CL10
C L09
CL08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
X
X
リード/ライト
初期値
CPCRH
コンペアクリアレジスタ(下位)
7
6
5
4
3
C L07
CL06
CL05
CL04
CL03
CL02
C L01
CL00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
X
X
bit
リード/ライト
初期値
2
1
0
CPCRL
タイマバッファレジスタ(上位)
bit
15
14
13
12
11
10
9
8
T15
T14
T13
T12
T11
T10
T09
T08
リード/ライト
R
R
R
R
R
R
R
R
初期値
0
0
0
0
0
0
0
0
TMBRH
タイマバッファレジスタ(下位)
7
6
5
4
3
2
1
0
T07
T06
T05
T04
T03
T02
T01
T00
リード/ライト
R
R
R
R
R
R
R
R
初期値
0
0
0
0
0
0
0
0
bit
TMBRL
ノイズキャンセル制御レジスタ
bit
リード/ライト
初期値
15
14
13
12
11
10
9
8
S21
S20
S11
S10
S01
S00
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
タイマ状態制御レジスタ
bit
リード/ライト
初期値
7
6
5
4
3
TCLR
MODE
ICLR
ICRE
R/W
R/W
R/W
0
0
0
NCCR
2
1
0
TMEN
CLK2
CLK1
CLK0
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
TCSR
383
第 15 章 マルチパルスジェネレータ
出力制御レジスタ上位 , 下位(OPCUR, OPCLR)
15.4.1
出力制御レジスタ(OPCUR, OPCLR)は , 書込みタイミング割込みフラグを有効に
し , 位置検出割込みフラグを有効にし , データ転送方式を設定し , OPT5 ∼ OPT0 端
子と DTTI1 端子の制御を設定します。
■ 出力制御レジスタ , 上位(OPCUR)
図 15.4-2 出力制御レジスタ , 上位(OPCUR)
bit
15
14
13
DTIE
DTIF
NRSL
R/W
R/W
R/W
12
11
10
9
OPS2
OPS1
OPS0
WTIF
WTIE
R/W
R/W
R/W
R/W
R/W
WTIE
OPS1
1
割込みを許可する
384
読出し
書込み
有効なエッジが検出されてない このビットはクリアされる
1
有効なエッジが検出された
このビットは影響を受けない
OPS0
データ転送方式選択ビット
OPDBR0への書込みがソフトウェア的に行れた後,
OPDBROからOPDRH,Lへデータが転送される
16ビットリロードタイマ0のアンダフローがトリガ
となり,OPDBROからOPDRH,Lへデータを転送
位置検出入力がトリガとなり,OPDBROからOPDRH,Lへ
データを転送
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
16ビットリロードタイマ0のアンダフローで生成され
る書込み信号がトリガとなり,OPDBROからOPDRH,Lへ
データを転送。16ビットタイマは,位置検出比較回路
で開始される。
16ビットリロードタイマ0のアンダフローまたは位置
検出入力で生成される書込み信号がトリガとなり,
OPDBRO~BからOPDRH,Lへデータを転送
ワンショット位置検出またはタイマアンダフロー
ワンショット位置検出
ワンショット位置検出およびタイマアンダフロー
NRSL
ノイズフィルタ有効ビット
0
DTTI入力のノイズフィルタを無効にする
1
DTTI入力のノイズフィルタを有効にする
DTIF
R/W :リード/ライト
:初期値
書込みタイミング割込み要求フラグビット
0
0
1
書込みタイミング割込み許可ビット
割込みを禁止する
0
1
初期値
00000000B
0
WTIF
OPS2
8
DTTI割込み要求フラグビット
書込み
読出し
0
有効なエッジが検出されてない このビットはクリアされる
1
有効なエッジが検出された
このビットは影響を受けない
DTIE
DTTI制御有効ビット
0
DTTI入力の制御を無効にする
1
DTTI入力の制御を有効にする
第 15 章 マルチパルスジェネレータ
表 15.4-1 出力制御レジスタ , 上位(OPCUR)
ビット名
bit15
bit14
DTIE:
DTTI 制御有効
ビット
DTIF:
DTTI 割込み要
求フラグビッ
ト
機能
•
このビットは , DTTI 端子による OPT5 ∼ OPT0 端子の出力レベル制御を可能
にします。ソフトウェアは , PORTx の PDRx の各 OPTx 端子に対してインア
クティブレベルを設定できます。
•
このビットは , DTTI 入力割込み要求フラグです。このビットは , DTTI の立
下がりエッジが検出され , DTTI 制御有効ビット(DTIE)に "1" が設定され
ていると必ず設定されます。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 :
割込みが生成されます。このビットは影響を受けません。
リードモディファイライト動作時は必ず "1" が読み出されます。
•
•
•
•
•
bit13
NRSL:
ノイズフィル
タ有効ビット
•
bit12
∼
bit10
bit9
bit8
OPS2 ∼ OPS0:
データ転送方
式選択ビット
WTIF:
書込みタイミ
ング割込み要
求フラグビッ
ト
WTIE:
書込みタイミ
ング割込み許
可ビット
このビットは , DTTI 端子入力が有効のときにノイズ除去機能を選択します。
ノイズ除去回路は , アクティブレベルが入力されたとき内部 n- ビットカウン
トを開始します("n" の値は , ノイズキャンセルレジスタ(NCCR)の D1,
D0:bit10, bit9 の設定に基づいて 2, 3, 4 または 5 をとることができます)。カウ
ンタでオーバフローが発生するまでアクティブレベルが保持されると , 回路
は DTTI 端子からの入力を受け付けます。したがって , 除去可能なノイズの
パルス幅は約 2n マシンサイクルです。
ノイズキャンセル回路が有効の場合でも , 入力は内部クロックが停止してい
るモード(ストップモードなど)時は無効になります。
•
•
OPTx 端子出力タイミング制御選択ビット。
これらのビットは , OPDRH, OPDRL レジスタ書込みタイミング制御動作
モードを選択します。データは , 選択された動作モード時に制御される書込
みタイミングで出力データバッファレジスタから出力データレジスタへ転送
されます。
•
このビットは , 書込み信号により設定される出力タイミングスイッチ割込み
要求フラグです。出力データレジスタ上位(OPDRH)の BNKF:bit15 と
RDA2 ∼ RDA0:bit14 ∼ bit12 で指定される OPDBRx レジスタのデータは , 書
込み信号の立上りエッジで OPDRH, OPDRL へ転送されます。このとき , 本
ビットは "1" に設定されます。
このビットに "1" が設定され , かつ書込みタイミング割込み許可ビット
(WTIE)にも "1" が設定していると , 割込みが生成されます。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 : このビットは影響を受けません。
リードモディファイライト動作時は , 必ず "1" が読み出されます。
•
•
•
•
•
このビットに "1" を設定し , かつ書込みタイミング割込み要求フラグビット
(WTIF)に "1" が設定されると , 割込みが生成されます。
385
第 15 章 マルチパルスジェネレータ
■ 出力制御レジスタ , 下位(OPCLR)
図 15.4-3 出力制御レジスタ , 下位(OPCLR)
bit
7
6
5
4
3
2
1
0
PDIF
PDIE
OPE5
OPE4
OPE3
OPE2
OPE1
OPE0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
OPE0
OPT0出力許可ビット
0
OPT0端子出力を禁止する(初期値)
1
OPT0端子出力を許可する
OPE1
OPT1出力許可ビット
0
OPT1端子出力を禁止する(初期値)
1
OPT1端子出力を許可する
OPE2
OPT2出力許可ビット
0
OPT2端子出力を禁止する(初期値)
1
OPT2端子出力を許可する
OPE3
OPT3出力許可ビット
0
OPT3端子出力を禁止する(初期値)
1
OPT3端子出力を許可する
OPE4
OPT4出力許可ビット
0
OPT4端子出力を禁止する(初期値)
1
OPT4端子出力を許可する
OPE5
OPT5出力許可ビット
0
OPT5端子出力を禁止する(初期値)
1
OPT5端子出力を許可する
PDIE
位置検出割込み許可ビット
0
割込みを禁止する(初期値)
1
割込みを許可する
PDIF
位置検出割込み要求フラグビット
読出し
R/W :リード/ライト
:初期値
386
書込み
0
有効なエッジが検出されてない
このビットはクリアされる
1
有効なエッジが検出された
このビットは影響を受けない
第 15 章 マルチパルスジェネレータ
表 15.4-2 出力制御レジスタ , 下位(OPCLR)
ビット名
機能
•
bit7
PDIF:
位置検出割込
み要求フラグ
ビット
•
•
•
•
このビットは , 入力制御レジスタ上位(IPCUR)の CMPE:bit8 に "0" を設定し ,
SNI2 ∼ SNI0 端子が出力データレジスタ上位(OPDRH)の RDA2 ∼
RDA0:bit14 ∼ bit12 と比較され一致するかまたは CMPE ビットに "1" を設定
していて , 有効なエッジが SNIx 端子で検出されると , "1" が設定されます。
このビットに "1" が設定され , かつ位置検出割込み許可ビット(PDIE)に
"1" を設定していると , 割込みが生成されます。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 : このビットは影響を受けません。
リードモディファイライト動作時は , 必ず "1" が読み出されます。
PDIE:
位置検出割込
み許可ビット
•
bit6
このビットに "1" を設定し , かつ位置検出割込み要求フラグビット(PDIF)
に "1" が設定されると , 割込みが生成されます。
bit5
∼
bit0
OPE5 ∼ OPE0:
OPT5 ∼ OPE0
出力許可ビッ
ト
•
これらのビットが設定されると , OPT5 ∼ OPT0 端子への出力は許可になり
ます。
387
第 15 章 マルチパルスジェネレータ
出力データレジスタ上位 , 下位(OPDRH, OPDRL)
15.4.2
出力データレジスタは , OPT5 ∼ OPT0 端子への出力データを格納します。
■ 出力データレジスタ , 上位(OPDRH)
図 15.4-4 出力データレジスタ , 上位(OPDRH)
bit
15
14
13
12
11
10
9
8
BNKF
RDA2
RDA1
RDA0
OP51
OP50
OP41
OP40
R
R
R
R
R
R
R
R
OP41
X :不定
R :リードオンリ
:初期値
388
初期値
00000000B
OP40
OPT4出力波形選択ビット
0
0
OPT4端子は"L"レベルを出力する
0
1
OPT4端子はPPGタイマの出力を出力する
1
0
OPT4端子はPPGタイマの反転出力を出力する
1
1
OPT4端子は"H"レベルを出力する
OP51
OP50
OPT5出力波形選択ビット
0
0
OPT5端子は"L"レベルを出力する
0
1
OPT5端子はPPGタイマの出力を出力する
1
0
OPT5端子はPPGタイマの反転出力を出力する
1
1
OPT5端子は"H"レベルを出力する
OPDBRレジスタ選択ビット
BNKF
RDA2
RDA1
RDA0
0
0
0
0
OPDBR0のデータがDPDRH,Lへロードされる
0
0
0
1
OPDBR1のデータがDPDRH,Lへロードされる
0
0
1
0
OPDBR2のデータがDPDRH,Lへロードされる
0
0
1
1
OPDBR3のデータがDPDRH,Lへロードされる
0
1
0
0
OPDBR4のデータがDPDRH,Lへロードされる
0
1
0
1
OPDBR5のデータがDPDRH,Lへロードされる
0
1
1
0
OPDBR6のデータがDPDRH,Lへロードされる
0
1
1
1
OPDBR7のデータがDPDRH,Lへロードされる
1
0
0
0
OPDBR8のデータがDPDRH,Lへロードされる
1
0
0
1
OPDBR9のデータがDPDRH,Lへロードされる
1
0
1
0
OPDBRAのデータがDPDRH,Lへロードされる
1
0
1
1
OPDBRBのデータがDPDRH,Lへロードされる
その他の値
禁止
第 15 章 マルチパルスジェネレータ
表 15.4-3 出力データレジスタ , 上位(OPDRH)
ビット名
機能
BNKF,
RDA2 ∼ RDA0:
OPDBR0 ∼
OPDBRB レジ
スタ選択ビット
•
bit15
∼
bit12
これらのビットは , OPDBR0 ∼ OPDBRB レジスタのアドレスを示します。
また OPDRH レジスタにロードされる出力データバッファレジスタ値を決
定します。
bit11,
bit10
OP51, OP50:
OPT5 出力波形
選択ビット
•
これらのビットは , OPT5 端子に出力される出力波形の種類を選択します。
bit9,
bit8
OP41, OP40:
OPT4 出力波形
選択ビット
•
これらのビットは , OPT4 端子に出力される出力波形の種類を選択します。
389
第 15 章 マルチパルスジェネレータ
■ 出力データレジスタ , 下位(OPDRL)
図 15.4-5 出力データレジスタ , 下位(OPDRL)
bit 7
6
5
4
3
2
1
OP31
OP30
OP21
OP20
OP11
OP10
OP01
OP00
R
R
R
R
R
R
R
R
OP01
X :不定
R :リードオンリ
:初期値
0
OP00
初期値
XXXXXXXXB
OPT0出力波形選択ビット
0
0
OPT0端子は"L"レベルを出力する
0
1
OPT0端子はPPGタイマの出力を出力する
1
0
OPT0端子はPPGタイマの反転出力を出力する
1
1
OPT0端子は"H"レベルを出力する
OP11
OP10
OPT1出力波形選択ビット
0
0
OPT1端子は"L"レベルを出力する
0
1
OPT1端子はPPGタイマの出力を出力する
1
0
OPT1端子はPPGタイマの反転出力を出力する
1
1
OPT1端子は"H"レベルを出力する
OP21
OP20
OPT2出力波形選択ビット
0
0
OPT2端子は"L"レベルを出力する
0
1
OPT2端子はPPGタイマの出力を出力する
1
0
OPT2端子はPPGタイマの反転出力を出力する
1
1
OPT2端子は"H"レベルを出力する
OP31
OP30
OPT3出力波形選択ビット
0
0
OPT3端子は"L"レベルを出力する
0
1
OPT3端子はPPGタイマの出力を出力する
1
0
OPT3端子はPPGタイマの反転出力を出力する
1
1
OPT3端子は"H"レベルを出力する
表 15.4-4 出力データレジスタ , 下位(OPDRL)
ビット名
390
機能
bit7,
bit6
OP31, OP30:
OPT3 出力波
形選択ビット
•
これらのビットは , OPT3 端子に出力される出力波形の種類を選択します。
bit5,
bit4
OP21, OP20:
OPT2 出力波
形選択ビット
•
これらのビットは , OPT2 端子に出力される出力波形の種類を選択します。
bit3,
bit2
OP11, OP10:
OPT1 出力波
形選択ビット
•
これらのビットは , OPT1 端子に出力される出力波形の種類を選択します。
bit1,
bit0
OP01, OP00:
OPT0 出力波
形選択ビット
•
これらのビットは , OPT0 端子に出力される出力波形の種類を選択します。
第 15 章 マルチパルスジェネレータ
15.4.3
出力データバッファレジスタ
(OPDBR0 ∼ OPDBRB)
出力データバッファレジスタは , 12 個のレジスタ(OPDBR0 ∼ OPDBRB)から構
成されています。本レジスタ上位の BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼
bit12 で指定される OPDBRx レジスタ値は , データ書込み制御ユニットで生成され
る書込み信号の立上りエッジで OPDRH, OPDRL レジスタへロードされます。
■ 出力データバッファレジスタ , 上位(OPDBR0 ∼ OPDBRB)
図 15.4-6 出力データバッファレジスタ , 上位(OPDBR0 ∼ OPDBRB)
bit
15
14
13
12
11
BNKF
RDA2
RDA1
RDA0
OP51
R/W
R/W
R/W
R/W
R/W
R/W :リード/ライト
:初期値
10
9
8
OP50
OP41
OP40
R/W
R/W
R/W
初期値
00000000B
OPT4出力波形選択ット
OP41
OP40
0
0
OPT4端子は"L"を出力する
0
1
OPT4端子はPPGタイマを出力する
1
0
OPT4端子はPPGタイマ反転出力を出力する
1
1
OPT4端子は"H"を出力する
OP51
OP50
OPT5出力波形選択ット
0
0
OPT5端子は"L"を出力する
0
1
OPT5端子はPPGタイマを出力する
1
0
OPT5端子はPPGタイマ反転出力を出力する
1
1
OPT5端子は"H"を出力する
BNKF
RDA2
RDA1
RDA0
OPDBR0~Bレジスタ選択ビット
0
0
0
0
DPDRH,LへOPDBR0を次にロードする
0
0
0
1
DPDRH,LへOPDBR1を次にロードする
0
0
1
0
DPDRH,LへOPDBR2を次にロードする
0
0
1
1
DPDRH,LへOPDBR3を次にロードする
0
1
0
0
DPDRH,LへOPDBR4を次にロードする
0
1
0
1
DPDRH,LへOPDBR5を次にロードする
0
1
1
0
DPDRH,LへOPDBR6を次にロードする
0
1
1
1
DPDRH,LへOPDBR7を次にロードする
1
0
0
0
DPDRH,LへOPDBR8を次にロードする
1
0
0
1
DPDRH,LへOPDBR9を次にロードする
1
0
1
0
DPDRH,LへOPDBRAを次にロードする
1
0
1
1
DPDRH,LへOPDBRBを次にロードする
その他の値
禁止
391
第 15 章 マルチパルスジェネレータ
表 15.4-5 出力データバッファレジスタ , 上位(OPDBR0 ∼ OPDBRB)
ビット名
機能
BNKF,
RDA2 ∼ RDA0:
OPDBR0 ∼
OPDBRB レジ
スタ選択ビット
•
bit15
∼
bit12
これらのビットは , OPDBR0 ∼ OPDBRB レジスタのアドレスを示します。
また OPDRH レジスタへロードされる出力データバッファレジスタ値を決
定します。
bit11,
bit10
OP51, OP50:
OPT5 出力波形
選択ビット
•
これらのビットは , OPDRH レジスタへロードされた後に OPT5 端子へ出力
される出力波形の種類を選択します。
bit9,
bit8
OP41, OP40:
OPT4 出力波形
選択ビット
•
これらのビットは , OPDRH レジスタへロードされた後に OPT4 端子へ出力
される出力波形の種類を選択します。
392
第 15 章 マルチパルスジェネレータ
■ 出力データバッファレジスタ , 下位(OPDBR0 ∼ OPDBRB)
図 15.4-7 出力データバッファレジスタ , 下位(OPDBR0 ∼ OPDBRB)
bit
7
6
5
4
3
2
1
OP31
OP30
OP21
OP20
OP11
OP10
OP01
OP00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
OP01
R/W :リード/ライト
:初期値
0
初期値
00000000B
OP00
OPT0出力波形選択ビット
0
0
OPT0端子は"L"を出力する
0
1
OPT0端子はPPGタイマ出力を出力する
1
0
OPT0端子はPPGタイマ反転出力を出力する
1
1
OPT0端子は"H"を出力する
OP11
OP10
OPT1出力波形選択ビット
0
0
OPT1端子は"L"を出力する
0
1
OPT1端子はPPGタイマ出力を出力する
1
0
OPT1端子はPPGタイマ反転出力を出力する
1
1
OPT1端子は"H"を出力する
OP21
OP20
OPT2出力波形選択ビット
0
0
OPT2端子は"L"を出力する
0
1
OPT2端子はPPGタイマ出力を出力する
1
0
OPT2端子はPPGタイマ反転出力を出力する
1
1
OPT2端子は"H"を出力する
OP31
OP30
OPT3出力波形選択ビット
0
0
OPT3端子は"L"を出力する
0
1
OPT3端子はPPGタイマ出力を出力する
1
0
OPT3端子はPPGタイマ反転出力を出力する
1
1
OPT3端子は"H"を出力する
表 15.4-6 出力データバッファレジスタ , 下位(OPDBR0 ∼ OPDBRB)
ビット名
機能
bit7,
bit6
OP31, OP30:
OPT3 出力波
形選択ビット
•
これらのビットは , OPDRL レジスタへロードされた後に OPT3 端子へ出力さ
れる出力波形の種類を選択します。
bit5,
bit4
OP21, OP20:
OPT2 出力波
形選択ビット
•
これらのビットは , OPDRL レジスタへロードされた後に OPT2 端子へ出力さ
れる出力波形の種類を選択します。
bit3,
bit2
OP11, OP10:
OPT1 出力波
形選択ビット
•
これらのビットは , OPDRL レジスタへロードされた後に OPT1 端子へ出力さ
れる出力波形の種類を選択します。
bit1,
bit0
OP01, OP00:
OPT0 出力波
形選択ビット
•
これらのビットは , OPDRL レジスタへロードされた後に OPT0 端子へ出力さ
れる出力波形の種類を選択します。
393
第 15 章 マルチパルスジェネレータ
入力制御レジスタ上位 , 下位(IPCUR, IPCLR)
15.4.4
入力制御レジスタ上位 , 下位(IPCUR, IPCLR)は , 位置検出入力を制御するレジス
タです。
■ 入力制御レジスタ , 上位(IPCUR)
図 15.4-8 入力制御レジスタ , 上位(IPCUR)
bit
15
14
13
12
11
10
9
8
WTS1
WTS0
CPIF
CPIE
CPD2
CPD1
CPD0
CMPE
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
CMPE
位置検出コンペア有効ビット
0
コンペア動作を無効にする(初期値)
1
コンペア動作を有効にする
CPD2
CPD1
CPD0
コンペアビット
0
0
0
RDA2-0=000Bのとき,コンペア一致が発生
0
0
1
RDA2-0=001Bのとき,コンペア一致が発生
0
1
0
RDA2-0=010Bのとき,コンペア一致が発生
0
1
1
RDA2-0=011Bのとき,コンペア一致が発生
1
0
0
RDA2-0=100Bのとき,コンペア一致が発生
1
0
1
RDA2-0=101Bのとき,コンペア一致が発生
1
1
0
RDA2-0=110Bのとき,コンペア一致が発生
1
1
1
RDA2-0=111Bのとき,コンペア一致が発生
CPIE
コンペア割込み要求許可ビット
0
割込みを禁止する(初期値)
1
割込みを許可する
コンペア割込み要求フラグビット
CPIF
0
1
WTS1
R/W :リード/ライト
:初期値
394
WTS0
読出し
書込み
有効なエッジが検出されてない
有効なエッジが検出された
このビットはクリアされる
このビットは影響を受けない
書込みタイミングとPPG同期化選択ビット
0
0
同期なし(初期値)
0
1
立上りエッジで同期をとる(↑)
1
0
立下りエッジで同期をとる(↓)
1
1
両エッジで同期をとる(↑&↓)
第 15 章 マルチパルスジェネレータ
表 15.4-7 入力制御レジスタ , 上位(IPCUR)
ビット名
bit15,
bit14
bit13
WTS1, WTS0:
書込みタイミ
ングと PPG
エッジ同期化
選択ビット
CPIF:
コンペア割込
み要求フラグ
ビット
機能
•
これらのビットは , 書込みタイミングと同期化させるための " 次の PPG 信号
エッジ " を選択します。
•
SNI2 ∼ SNI0 端子が CPD2 ∼ CPD0 と比較され一致すると , このビットに
"1" が設定されます。
コンペア割込み要求許可ビット(CPIE)に "1" を設定していると , 割込みが
生成されます。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 : このビットは影響を受けません。
リードモディファイライト動作時は , 必ず "1" が読み出されます。
•
•
•
•
•
bit12
CPIE:
コンペア割込
み要求許可
ビット
このビットに "1" を設定し , かつコンペア割込み要求フラグ(CPIF)に "1"
が設定されると , 割込みが生成されます。
bit11
∼
bit9
CPD2 ∼
CPD0:
コンペアビッ
ト
•
これらのビットは , 出力データレジスタ上位(OPDRH)の RDA2 ∼
RDA0:bit14 ∼ bit12 と比較されます。これらのビットの値が RDA2 ∼ RDA0
ビットの値と一致すると , コンペア割込み要求フラグビット(CPIF)に "1"
が設定されます。
•
このビットは , 位置検出の比較動作を有効にします。
bit8
CMPE:
位置検出コン
ペア有効ビッ
ト
395
第 15 章 マルチパルスジェネレータ
■ 入力制御レジスタ , 下位(IPCLR)
図 15.4-9 入力制御レジスタ , 下位(IPCLR)
bit
7
6
CPE1
CPE0
R/W
R/W
R/W :リード/ライト
:初期値
396
5
4
3
2
1
0
SNC2
SNC1
SNC0
SEE2
SEE1
SEE0
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
SEE0
SNI0有効ビット
0
SNI0エッジ検出を無効にする(初期値)
1
SNI0エッジ検出を有効にする
SEE1
SNI1有効ビット
0
SNI1エッジ検出を無効にする(初期値)
1
SNI1エッジ検出を有効にする
SEE2
SNI2有効ビット
0
SNI2エッジ検出を無効にする(初期値)
1
SNI2エッジ検出を有効にする
SNC0
SNI0のノイズフィルタ有効ビット
0
SNI0入力のノイズ除去回路を無効にする
1
SNI0入力のノイズ除去回路を有効にする
SNC1
SNI1のノイズフィルタ有効ビット
0
SNI1入力のノイズ除去回路を無効にする
1
SNI1入力のノイズ除去回路を有効にする
SNC2
SNI2のノイズフィルタ有効ビット
0
SNI2入力のノイズ除去回路を無効にする
1
SNI2入力のノイズ除去回路を有効にする
CPE1
CPE0
エッジ選択ビット
0
0
エッジ検出なし(停止状態)(初期値)
0
1
立上りエッジ検出(↑)
1
0
立下りエッジ検出(↓)
1
1
両エッジ検出(↑&↓)
第 15 章 マルチパルスジェネレータ
表 15.4-8 入力制御レジスタ , 下位(IPCLR)
ビット名
bit7,
bit6
CPE1, CPE0:
エッジ選択
ビット
機能
•
これらのビットは , 位置検出の入力エッジ極性を選択します。位置検出は ,
これらのビットに設定された入力エッジ極性に従って動作します。
これらのビットは , SNI2 ∼ SNI0 端子入力が有効のときにノイズ除去機能を
選択します。
• ノイズ除去回路は , アクティブレベルが入力されたとき内部 n- ビットカウン
トを開始します("n" の値はノイズキャンセルレジスタ(NCCR)の S21/S20,
S11/S10, S01/S00 ビットの設定に基づいて 2, 3, 4 または 5 をとることができ
ます)。カウンタでオーバフローが発生するまでアクティブレベルが保持さ
れると , 回路は SNI2 ∼ SNI0 端子からの入力を受付けます。したがって , 除
去可能なノイズのパルス幅は約 2n マシンサイクルです。
( 注意事項 )
ノイズ除去回路が有効の場合でも , 入力は内部クロックが停止しているモー
ド(ストップモードなど)時は無効です。
•
bit5
∼
bit3
SNC2 ∼
SNC0:
SNI2 ∼ SNI0
のノイズフィ
ルタ有効ビッ
ト
bit2
∼
bit0
SEE2 ∼ SEE0:
SNI2 ∼ SNI0
の有効ビット
•
•
これらのビットに "1" を設定した場合 :
SNI2 ∼ SNI0 端子のエッジ検出は有効になります。
これらのビットは , 入力制御レジスタ上位(IPCUR)の CMPE:bit8 に "1" を
設定する前に設定してください。
397
第 15 章 マルチパルスジェネレータ
15.4.5
コンペアクリアレジスタ上位 , 下位
(CPCRH, CPCRL)
コンペアクリアレジスタ上位 , 下位(CPCRH, CPCRL)は , 16 ビットのレジスタで
す。このレジスタが 16 ビットタイマのカウント値と一致すると , 16 ビットタイマは
"0000H" にリセットされます。
■ コンペアクリアレジスタ上位 , 下位(CPCRH, CPCRL)
コンペアクリアレジスタは 16 ビットのレジスタです。16 ビットタイマのカウント値と
比較されます。このレジスタの初期値は不定なので , 動作を開始する前にこのレジスタ
に値を設定しなければなりません。
< 注意事項 >
このレジスタへアクセスする場合は , ワードアクセス命令をご使用ください。
このレジスタが16ビットタイマのカウント値と一致すると, 16ビットタイマは"0000H"
にリセットされ , コンペアクリア割込み要求フラグ(ICLR)が設定されます。また , 割
込み動作が許可されているときは , 割込み要求が生成されます。
< 注意事項 >
コンペアクリアレジスタ上位 , 下位(CPCRH, CPCRL)にタイマカウンタ値と同
じ値がロードされると , 比較動作は次回この状態が発生するまで行われません。
図 15.4-10 コンペアクリアレジスタ上位 , 下位(CPCRH, CPCRL)
コンペアクリアレジスタ(上位)
リード/ライト
初期値
bit 15
_
CL15
14
13
12
11
10
9
8
C L14
CL13
CL12
CL11
CL10
C L09
CL08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
X
X
コンペアクリアレジスタ(下位)
7
bit
リード/ライト
初期値
398
2
1
CPCRH
6
5
4
3
0
C L07
CL06
CL05
CL04
CL03
CL02
C L01
CL00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
X
X
CPCRL
第 15 章 マルチパルスジェネレータ
15.4.6
タイマバッファレジスタ上位 , 下位
(TMBRH, TMBRL)
タイマバッファレジスタ上位 , 下位(TMBRH, TMBRL)は , 16 ビットタイマのカウ
ント値を読み出すために使用します。
■ タイマバッファレジスタ上位 , 下位(TMBRH, TMBRL)
タイマバッファレジスタは , 書込みタイミングまたは位置検出トリガが生成された時
点の 16 ビットタイマのカウント値を格納します。この後 , カウンタは "0000H" にクリ
アされます。
< 注意事項 >
タイマバッファレジスタへアクセスする場合は , ワードアクセス命令をご使用くだ
さい。
図 15.4-11 タイマバッファレジスタ上位 , 下位(TMBRH, TMBRL)
タイマバッファレジスタ(上位)
bit 15
14
13
12
11
10
9
8
T15
T14
T13
T12
T11
T10
T09
T08
リード/ライト
R
R
R
R
R
R
R
R
初期値
0
0
0
0
0
0
0
0
タイマバッファレジスタ(下位)
bit 7
リード/ライト
初期値
TMBRH
6
5
4
3
2
1
0
T07
T06
T05
T04
T03
T02
T01
T00
R
R
R
R
R
R
R
R
0
0
0
0
0
0
0
0
TMBRL
399
第 15 章 マルチパルスジェネレータ
ノイズキャンセル制御レジスタ(NCCR)
15.4.7
ノイズキャンセル制御レジスタ(NCCR)は , DTTI 端子および SNIx 端子の除去す
るノイズパルス幅を制御するために使用します。
■ ノイズキャンセル制御レジスタ(NCCR)
図 15.4-12 ノイズキャンセル制御レジスタ(NCCR)
bit
7
6
S21
S20
R/W
R/W
R/W :リード/ライト
:初期値
400
5
4
3
2
1
0
S11
S10
S01
S00
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
D1
D0
DTTI1ノイズ幅選択ビット
0
0
4マシンサイクルノイズを除去する
0
1
8マシンサイクルノイズを除去する
1
0
16マシンサイクルノイズを除去する
1
1
32マシンサイクルノイズを除去する
S01
S00
SNI0ノイズ幅選択ビット
0
0
4マシンサイクルノイズを除去する
0
1
8マシンサイクルノイズを除去する
1
0
16マシンサイクルノイズを除去する
1
1
32マシンサイクルノイズを除去する
S11
S10
SNI1ノイズ幅選択ビット
0
0
4マシンサイクルノイズを除去する
0
1
8マシンサイクルノイズを除去する
1
0
16マシンサイクルノイズを除去する
1
1
32マシンサイクルノイズを除去する
S21
S20
SNI2ノイズ幅選択ビット
0
0
4マシンサイクルノイズを除去する
0
1
8マシンサイクルノイズを除去する
1
0
16マシンサイクルノイズを除去する
1
1
32マシンサイクルノイズを除去する
第 15 章 マルチパルスジェネレータ
表 15.4-9 ノイズキャンセル制御レジスタ(NCCR)
ビット名
機 能
bit7,
bit6
S21, S20:
ノイズ幅選択
ビット
•
これらのビットは , SNI2 端子の除去対象ノイズパルス幅を指定します。
bit5,
bit4
S11, S10:
ノイズ幅選択
ビット
•
これらのビットは , SNI1 端子の除去対象ノイズパルス幅を指定します。
bit3,
bit2
S01, S00:
ノイズ幅選択
ビット
•
これらのビットは , SNI0 端子の除去対象ノイズパルス幅を指定します。
bit1,
bit0
D1, D0:
ノイズ幅選択
ビット
•
これらのビットは , DTTI1 端子の除去対象ノイズパルス幅を指定します。
401
第 15 章 マルチパルスジェネレータ
15.4.8
タイマ状態制御レジスタ(TCSR)
タイマ状態制御レジスタ(TCSR)は , 16 ビットタイマの動作を制御するために使
用します。
■ タイマ状態制御レジスタ(TCSR)
図 15.4-13 タイマ状態制御レジスタ(TCSR)
bit
7
6
5
4
3
2
1
0
TCLR
MODE
ICLR
ICRE
TMEN
CLK2
CLK1
CLK0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CLK2
CLK1
CLK0
0
0
0
0
初期値
00000000B
クロック周波数選択ビット
カウント
クロック
φ =16MHz
φ =8MHz
φ =4MHz
φ =1MHz
0
φ
62.5ns
125ns
0.25µs
1µs
0
1
φ/2
125ns
0.25µs
0.5µs
2µs
1
0
φ/4
0.25µs
0.5µs
1µs
4µs
0
1
1
φ/8
0.5µs
1µs
2µs
8µs
1
0
0
φ/16
1µs
2µs
4µs
16µs
1
0
1
φ/32
2µs
4µs
8µs
32µs
1
1
0
φ/64
4µs
8µs
16µs
64µs
1
1
1
φ/128
8µs
16µs
32µs
128µs
φ:マシンサイクル
タイマ有効ビット
TMEN
0
カウントを無効にする(初期値)
1
カウントを有効にする
ICRE
コンペアクリア割込み要求許可ビット
0
割込みを禁止にする
1
割込みを許可する
コンペアクリア割込み要求フラグビット
ICLR
読出し
書込み
0
割込み要求なし
このビットはクリアされる
1
割込み要求あり
このビットは影響を受けない
MODE
タイマリセット状態ビット
0
書込みタイミングがトリガとなりタイマをリセットする
1
位置検出トリガによりタイマをリセットする
タイマクリアビット
TCLR
R/W :リード/ライト
:初期値
402
0
1
読出し
必ず"0"が読み出される
書込み
このビットは影響を受けない
タイマは"0000H"に初期化される
第 15 章 マルチパルスジェネレータ
表 15.4-10 タイマ状態制御レジスタ(TCSR)
ビット名
bit7
TCLR:
タイマクリア
ビット
機 能
•
•
•
読出し値は必ず "0" です。
このビットに "0" を設定した場合 : このビットは影響を受けません。
このビットに "1" を設定した場合 : タイマは "0000H" へ初期化されます。
このビットは , 16 ビットタイマのリセット状態を設定します。
このビットに "0" を設定した場合 :
16 ビットタイマは書込みタイミング信号でリセットされます。
• このビットに "1" を設定した場合 :
16 ビットタイマは位置検出信号でリセットされます。
( 注意事項 )
タイマ値のリセットは , タイマ値が変更された時点で行われます。
•
•
bit6
MODE:
タイマリセッ
ト状態ビット
•
bit5
bit4
ICLR:
コンペアクリ
ア割込み要求
フラグビット
ICRE:
コンペアクリ
ア割込み要求
許可ビット
•
•
•
•
•
コンペアクリアレジスタと 16 ビットフリーランタイマ値が一致すると , タ
イマがクリアされ , このビットには "1" が設定されます。
コンペアクリア割込み要求許可ビット(ICRE)に "1" が設定されると , 割込
みが生成されます。
このビットに "0" を設定した場合 : このビットはクリアされます。
このビットに "1" を設定した場合 : このビットは影響を受けません。
リードモディファイライト動作時は , 必ず "1" が読み出されます。
このビットに "1" を設定した場合 : コンペアクリア割込み要求フラグビット
(ICLR)に "1" が設定されると , 割込みが生成されます。
このビットは , 16 ビットタイマのカウントを有効または無効にします。
このビットに "0" を設定した場合 :
16 ビットタイマのカウントは無効になります。
• このビットに "1" を設定した場合 :
16 ビットタイマのカウントは有効になります。
( 注意事項 )
16 ビットタイマが無効の場合は , 出力コンペア動作も無効になります。
•
•
bit3
TMEN:
タイマ有効
ビット
bit2
∼
bit0
CLK2 ∼
CLK0:
クロック周波
数選択ビット
これらのビットは , 16 ビットフリーランタイマのカウントクロックを選択し
ます。
( 注意事項 )
これらのビットが更新されるとクロックが直ちに変更されるので , これらの
ビットはタイマ停止状態の間に変更することを推奨します。
•
403
第 15 章 マルチパルスジェネレータ
15.5
マルチパルスジェネレータの割込み
マルチパルスジェネレータは , 以下の場合に割込み要求を生成できます。
• 書込みタイミング出力がデータ書込み制御ユニットで生成されます。
• 有効な位置検出入力が検出されます。
• 入力制御レジスタ上位(IPCUR)の CPD2 ∼ CPD0:bit11 ∼ bit9 と出力データレ
ジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 の間でコンペア一致が検
出されます。
• 16 ビットタイマでコンペアクリアが生成されます。
• DTTI が信号レベル low に変化します。
■ マルチパルス割込み
マルチパルスジェネレータは , 以下の 5 つの割込み要因を持っています。
• 書込みタイミング割込み
• コンペアクリア割込み
• 位置検出割込み
• コンペア一致割込み
• DTTI 割込み
書込みタイミング割込みはコンペアクリア割込みと共有し , 位置検出割込みはコンペ
ア一致割込みと共有しています。
● 書込みタイミング割込み
出力制御レジスタ上位(OPCUR)の WTIE:bit8 に "1" を設定し , かつ書込みタイミング
がデータ書込み制御回路で出力されると , この書込みタイミング割込みが生成され , 12
個の出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)のいずれかから出力データ
レジスタ(OPDRH, OPDRL)へデータが転送されます。
この割込みが生成されると , 出力制御レジスタ上位(OPCUR)の書込みタイミング割
込み要求フラグビット(WTIF:bit9)に "1" が設定されます。
● コンペアクリア割込み
タイマ状態制御レジスタ(TCSR)の ICRE:bit4 に "1" を設定し , かつ 16 ビットタイマ
でアンダフローが発生すると , コンペアクリア割込みが生成されます。
この割込みが生成されると , タイマ状態制御レジスタ(TCSR)のコンペアクリア割込
み要求フラグビット(ICLR:bit5)に "1" が設定されます。
404
第 15 章 マルチパルスジェネレータ
● 位置検出タイミング割込み
出力制御レジスタ下位(OPCLR)の PDIE:bit6 に "1" を設定し , かつ書込みタイミング
が位置検出回路で出力されると , この位置検出割込みが生成され , 12 個の出力データ
バッファレジスタ(OPDBR0 ∼ OPDBRB)
のいずれかから出力データレジスタ
(OPDRH,
OPDRL)へデータが転送されます。この書込みタイミングは , 位置入力(SNI2 ∼ SNI0)
のレベルと出力データレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 の間で
コンペア一致が検出された場合または 3 つの異なるエッジ設定のいずれかを持ってい
る位置入力(SNI2 ∼ SNI0)でエッジが検出された場合 , 出力できます。
この割込みが生成されると , 出力制御レジスタ下位(OPCLR)の位置検出割込み要求
フラグビット(PDIF:bit7)に "1" が設定されます。
● コンペア一致割込み
入力制御レジスタ上位(IPCUR)の CPIE:bit12 に "1" を設定し , かつ出力データレジス
タ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 と入力制御レジスタ上位(IPCUR)
の CPD2 ∼ CPD0:bit11 ∼ bit9 の間で一致が検出されると , このコンペア一致割込みが
生成されます。
この割込みが生成されると , 入力制御レジスタ上位(IPCUR)のコンペア一致割込み要
求フラグビット(CPIF:bit13)に "1" が設定されます。
● DTTI 割込み
出力制御レジスタ上位(OPCUR)の DTIE:bit15 に "1" を設定し , かつ DTTI1 端子で low
入力が検出されると , この DTTI 割込みが生成されます。
この割込みが生成されると , 出力制御レジスタ上位(OPCUR)の DTTI 割込み要求フ
ラグビット(DTIF:bit14)に "1" が設定されます。
■ マルチパルスジェネレータの割込み要因
割込み #22: この割込みは , DTTI 割込みが発生すると生成されます。
DTTI 割込みは , DTTI1 端子において low レベル入力が検出され , かつ出力制御レジス
タ上位(OPCUR)の DTIE:bit15 に "1" を設定していると生成されます。
割込み #26: この割込みは , 位置検出割込みまたはコンペア一致割込みが発生すると生
成されます。
書込みタイミング信号がデータ書込み制御回路から生成されたとき , 出力制御レジス
タ上位(OPCUR)の WTIE:bit8 に "1" を設定していれば , 書込みタイミング割込みは生
成されます。
割込み #28: この割込みは , 位置検出割込みまたはコンペア一致割込みが発生すると生
成されます。
SNI2 ∼ SNI0 における有効エッジが検出されたとき , 出力制御レジスタ下位(OPCLR)
の PDIE:bit6 に "1" を設定していれば , 位置検出割込みは生成されます。
SNI2 ∼ SNI0 入力が出力データレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12
と一致したとき , 入力制御レジスタ上位(IPCUR)の CPIE:bit12 に "1" を設定していれ
ば , コンペア一致割込みが生成されます。
405
第 15 章 マルチパルスジェネレータ
■ マルチパルスジェネレータの割込みと EI2OS
表 15.5-1 マルチパルスジェネレータの割込みと EI2OS
割込み要因
割込み
番号
割込み制御レジスタ
ベクトルテーブルアドレス
EI2OS
レジスタ名
アドレス
下位
上位
バンク
DTTI1
#22
(16H)
ICR05
0000B5H
FFFFACH
FFFFADH
FFFFAEH
×
書込みタイミングまた
はコンペアクリア
#26
(1AH)
ICR07
0000B7H
FFFF94H
FFFF95H
FFFF96H
○
位置検出またはコンペ
ア一致
#28
(1CH)
ICR08
0000B8H
FFFF8CH
FFFF8DH
FFFF8EH
○
○ :EI2OS をサポートしています
■ マルチパルスジェネレータの EI2OS 機能
マルチパルスジェネレータは , 書込みタイミング割込み , コンペアクリア割込み , 位置
検出割込みまたはコンペア一致割込みが生成されると起動可能な EI2OS 操作回路を
持っています。
ただし , EI2OS は , 割込み制御レジスタ(ICR)を共用するほかのリリースが割込みを
使用しない場合に限り使用可能です。たとえば , EI2OS を起動するために書込みタイミ
ング割込みまたはコンペアクリア割込みを使用している場合 , DTP/ 外部割込みチャネ
ル 4, 5 の検出は無効にしなければなりません。
406
第 15 章 マルチパルスジェネレータ
15.6
マルチパルスジェネレータの動作
マルチパルスジェネレータの動作について説明します。OPTx 端子は , 出力データレ
ジスタ上位 , 下位(OPDRH, OPDRL)の OPx1, OPx0:bit11 ∼ bit0 の設定に従って ,
対応する種類の波形("H", "L" または PPG 出力)を出力します。表 15.6-1 をご参照
ください。
■ 出力データレジスタのブロックダイヤグラム
図 15.6-1 出力データレジスタのブロックダイヤグラム
位置検出回路
16ビットPPGタイマ1
出力データレジスタ
OPT5
出力制御回路
OP51/OP50
OP41/OP40
OP31/OP30
OP21/OP20
OP11/OP10
OP01/OP00
OPT4
OPT3
OPT2
OPT1
OPT0
DTTI1
デコーダ
出力データバッファレジスタx12
データ書込み制御ユニット
16ビットリロードタイマ0
BNKF/RDA2
RDA1/RDA0
407
第 15 章 マルチパルスジェネレータ
■ 出力データレジスタ上位 , 下位 (OPDRH, OPDRL)
出力データレジスタ (OPDRH, OPDRL) の値は , データ書込み制御ユニットで生成され
た書込みタイミング信号 (WTO) に従って出力データバッファレジスタ (OPDBR0 ∼
OPDBRB) から受取られます。また , OPTx 出力波形は更新されます。さらに , 出力レベ
ルは DTTI 端子入力により強制的に固定できます。
表 15.6-1 出力データレジスタ上位 , 下位(OPDRH, OPDRL)
OPx1/OPx0 設定
OPTx 出力
OPx1, OPx0 =0, 0
low レベル
OPx1, OPx0 =0, 1
16 ビット PPG タイマ出力
OPx1, OPx0 =1, 0
16 ビット PPG タイマ反転出力
OPx1, OPx0 = 1, 1
high レベル
OPTx 出力波形タイミングダイヤグラムを図 15.6-2 に示します。動作についての説明は
次項をご参照ください。
● OPTx 出力波形タイミングダイヤグラム (WTS1, WTS0:bit15, bit14=00B)
図 15.6-2 OPTx 出力波形タイミングダイヤグラム(WTS1, WTS0:bit15, bit14=00B)
WT0
OPx1
OPx0
(OPDRH)
00
01
11
10
PPG
OPTx
"L"出力
408
PPG 出力
"H"出力
PPG反転出力
第 15 章 マルチパルスジェネレータ
15.6.1
位置検出の動作
位置検出回路の動作について説明します。有効な位置が検出されており , かつ出力
制御レジスタ下位(OPCLR)の PDIE:bit7 に "1" を設定している場合 , データ書込
みタイミング出力(WTIN1)はデータ書込み制御ユニットに対して生成され , 位置
検出割込みが生成されます。
■ 位置検出の動作
WTIN1 信号は , 以下の条件が満たされると位置検出回路で生成されます。
• SNI2 ∼ SNI0 端子と出力データバッファレジスタ上位(OPDBR0 ∼ OPDBRB)の
RDA2 ∼ RDA0:bit14 ∼ bit12 の間でコンペア一致が検出されたとき(このコンペア
一致のトリガは , SNI2 ∼ SNI0 端子の有効エッジ)
。
• 対応する入力制御レジスタ下位(IPCLR)の SEEx:bit2, bit1 または 0 により有効に
される SNIx 端子において有効エッジが検出されたとき。
入力制御レジスタ上位(IPCUR)の CMPE:bit8 に "0" を設定すると , SEE2 ∼ SEE0:bit2 ∼
bit0 により有効にされた SNIx 端子のエッジ検出のみが位置検出のエッジ検出動作とな
ります。たとえば , SEE0:bit0 のみに "1" が設定され , SNI0 端子への入力エッジが有効
な場合 , 有効エッジが SNI0 端子で検出された場合のみデータ書込み出力信号が生成さ
れます。CMPE:bit8=0 のときのエッジ検出タイミングダイヤグラムを図 15.6-3 に示し
ます。
入力制御レジスタ上位(IPCUR)の CMPE:bit8 に "1" を設定すると , SNI2 ∼ SNI0 端子
は出力データレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 と比較されます。
この比較は , SNI2 ∼ SNI0 端子のエッジ変化がトリガとなります。CMPE:bit8=1 のとき
のエッジ検出タイミングダイヤグラムを図 15.6-4 に示します。
● エッジ検出タイミングダイヤグラム(CMPE:bit8=0)
図 15.6-3 エッジ検出タイミングダイヤグラム(CMPE:bit8=0)
CMPE
CPE1~
CPE0
01
10
11
SNI2
SNI1
SNI0
WTIN1
立上りエッジ検出
立下りエッジ検出
両エッジ検出
409
第 15 章 マルチパルスジェネレータ
● 両エッジ検出と SNIx/RDAx 比較タイミングダイヤグラム(CMPE:bit8=1)
図 15.6-4 両エッジ検出と SNIx/RDAx 比較タイミングダイヤグラム(CMPE:bit8=1)
CMPE
CPE1~
CPE0
RDA2~
RDA0
(OPDRH)
11
110
01 0
001
SNI2
SNI1
SNI0
WTIN1
コンペア一致
コンペア一致
コンペア一致
■ WTIN1 出力状態とレジスタ設定
表 15.6-2 WTIN1 出力状態とレジスタ設定
CMPE
CPE1
CPE0
SEEx
0
0
0
0
出力なし(初期値)
0
X
X
0
出力なし
0
0
0
1
出力なし
0
0
1
1
SNIx 立上りエッジを検出する
0
1
0
1
SNIx 立上りエッジを検出する
0
1
1
1
SNIx 両エッジを検出する
1
0
0
X
設定禁止
1
0
1
X
SNIx 立上りエッジと SNIx/RDAx コンペア一致を検出する
1
1
0
X
SNIx 立下りエッジと SNIx/RDAx コンペア一致を検出する
1
1
1
X
SNIx 両エッジと SNIx/RDAx コンペア一致を検出する
WTIN1 出力状態
( 注意事項 )
CMPE:bit8=1 のとき , SEEx には "0" を設定してください(SEEx に "1" を設定することは推奨しません)。
410
第 15 章 マルチパルスジェネレータ
15.6.2
データ書込み制御ユニットの動作
データ書込み制御ユニットは , 出力データバッファレジスタ (OPDBR0 ∼ OPDBRB)
から出力データレジスタ(OPDRH, OPDRL)へデータを転送するために必要となる
書込みタイミング出力(WTO)を生成します。
■ データ書込み制御ユニットの動作
書込みタイミング出力(WTO)は , 以下の場合に生成できます。
• 出力データバッファレジスタ OPDBR0 への書込みがソフトウェア的に行われる。
• 16 ビットリロードタイマ 0 のアンダフローがトリガとなる。
• 16 ビットリロードタイマ 0 のアンダフローがトリガとなる(16 ビットタイマは位
置検出比較回路で起動される)。
• 位置検出入力(SNI2 ∼ SNI0)がトリガとなる(16 ビットリロードタイマ 0 は遅延
を発生させる)。
• 16 ビットリロードタイマ 0 のアンダフローがトリガとなるかまたは位置検出入力が
トリガとなる。
WTO の生成要因は , 出力制御レジスタ上位(OPCUR)の OPS2 ∼ OPS0:bit12 ∼ bit10
の値を設定することで定義されます。
● OPS2 ∼ OPS0:bit12 ∼ bit10=000B の場合における出力データバッファレジスタ(OPDBR0)
の信号フローダイヤグラム
図 15.6-5 OPDBR0 の信号フローダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=000B)
TIN
TIN00
TOUT
WTIN0
TIN0
端子 TIN0
WTO
書込み
タイミング
出力
16ビットリロードタイマ0
OPDBR0 への書込み信号
SNI2~SIN0 端子
位置検出
OPDBR0W
WTIN1
データ書込み制御ユニット
書込みタイミング出力信号は , 値が OPDBR0 レジスタに書き込まれるたびにデータ書
込み制御ユニットから生成され , また OPDBR0 のデータは 1 サイクル後に出力データ
レジスタ(OPDRH, OPDRL)へ転送されます。
411
第 15 章 マルチパルスジェネレータ
● OPDRH レジスタ書込みタイミングダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=000B)
図 15.6-6 OPDRH レジスタ書込みタイミングダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=000B)
000
OPS2~0
RDA2~0
(OPDRH)
10 1
001
OPDBROW
OPDBR1W
OPDBRO[0]
OPDBR1[0]
WTO
OP00
● リロードタイマ 0 のアンダフローの信号フローダイヤグラム (OPS2 ∼ OPS0:bit12 ∼
bit10=001B)
図 15.6-7 リロードタイマ 0 のアンダフローの信号フローダイヤグラム
(OPS2 ∼ OPS0:bit12 ∼ bit10=001B)
TIN
TIN00
TOUT
WTIN0
TIN0
端子 TIN0
WTO
書込み
タイミング
出力
16ビットリロードタイマ0
OPDBR0 への書込み信号
SNI2~SNI0 端子
位置検出
OPDBR0W
WTIN1
データ書込み制御ユニット
16 ビットリロードタイマ 0 は , この設定で書込み信号を生成するために TIN 入力とソ
フトウェアの両方で起動できます。書込み信号は , 16 ビットリロードタイマ 0 のアン
ダフローで制御されます。
412
第 15 章 マルチパルスジェネレータ
● 位置検出の信号フローダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=010B または 110B)
図 15.6-8 位置検出の信号フローダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=010B または 110B)
TIN
TIN00
TOUT
WTIN0
TIN0
端子 TIN0
WTO
書込み
タイミング
出力
16ビットリロードタイマ0
OPDBR0 への書込み信号
位置検出
SNI2~SNI0 端子
OPDBR0W
WTIN1
データ書込み制御ユニット
書込み信号は , コンペア一致で生成されるかまたは位置検出の有効エッジ入力で生成
されます。
● リロードタイマ 0 と位置検出の信号フローダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=011B
または 111B)
図 15.6-9 リロードタイマ 0 と位置検出の信号フローダイヤグラム
(OPS2 ∼ OPS0:bit12 ∼ bit10=011B または 111B)
TIN
TIN00
TOUT
WTIN0
TIN0
端子 TIN0
WTO
書込み
タイミング
出力
16ビットリロードタイマ0
OPDBR0 への書込み信号
SNI2~SNI0 端子
位置検出
OPDBR0W
WTIN1
データ書込み制御ユニット
この設定の場合 , 16 ビットリロードタイマ 0 はコンペア一致で起動されるかまたは位
置検出回路の有効エッジ入力で起動されます。この後 , 16 ビットリロードタイマ 0 で
アンダフローが発生するたびに書込み信号が生成されます。コンペア一致は , SNIx 端
子の有効エッジの変化がトリガとなります。
413
第 15 章 マルチパルスジェネレータ
● リロードタイマ 0 または位置検出の信号フローダイヤグラム (OPS2 ∼ OPS0:bit12 ∼
bit10=100B または 101B)
図 15.6-10 リロードタイマ 0 または位置検出の信号フローダイヤグラム
(OPS2 ∼ OPS0:bit12 ∼ bit10=100B または 101B)
TIN
TIN00
TOUT
WTIN0
TIN0
端子 TIN0
WTO
書込み
タイミング
出力
16ビットリロードタイマ0
OPDBR0 への書込み信号
OPDBR0W
SNI2~SNI0
位置検出
端子
WTIN1
データ書込み制御ユニット
この設定の場合 , 書込み信号はコンペア一致で生成されるかまたは位置検出の有効
エッジ入力で生成されるかまたは 16 ビットリロードタイマ 0 でアンダフローが発生す
るたびに生成されます。コンペア一致は , SNIx 端子の有効エッジの変化がトリガとな
ります。
● 出力データレジスタ(OPDRH)書込みタイミングダイヤグラム
(OPS2 ∼ OPS0:bit12 ∼ bit10=001B, 010B, 011B, 100B, 101B, 110B または 111B)
図 15.6-11 出力データレジスタ(OPDRH)書込みタイミングダイヤグラム
(OPS2 ∼ OPS0:bit12 ∼ bit10=001B, 010B, 011B, 100B, 101B, 110B または 111B)
"001B","010B","011B"または"100B"
OPS2~0
BNKF,
RDA2~0
(OPDRH)
OPDBR1[0]
OPDBR4[0]
OPDBR7[0]
WTO
OP00
414
000 1
010 0
0111
第 15 章 マルチパルスジェネレータ
15.6.3
出力データバッファレジスタの動作
出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)は , 12 個のレジスタから構
成されています。出力データレジスタ(OPDRH, OPDRL)ヘさまざまな OPDBR0 ∼
OPDBRB レジスタの値をロードすると , マルチパルスジェネレータ出力(OPT5 ∼
OPT0)からさまざまな種類の波形が出力されます。
■ 出力データバッファレジスタの動作
出力データレジスタ上位(OPDRH)の BNKF:bit15 および RDA2 ∼ 0:bit14 ∼ bit12 に
よりアドレスが指定される出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)の
データは , データ書込み制御ユニットで生成される書込みタイミングで出力データレ
ジスタ(OPDRH, OPDRL)へ転送されます。
出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)の BNKF:bit15 および RDA2 ∼
RDA0:bit14 ∼ bit12 は出力データレジスタ(OPDRH, OPDRL)へのデータ転送順序を
決定し , OPx1/OPx0: bit11 ∼ bit0 は出力波形の形状を決定します。出力波形は , 書込み
タイミング(WTO)が生成されるごとに自動的に更新されます。
出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)の設定例を表 15.6-3 に示します。
表 15.6-3 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)( 1 / 2 )
No.
0
1
2
3
4
5
6
7
8
9
A
B
BNKF
0
0
0
0
0
1
0
X
X
0
1
1
RDA2
1
1
0
0
1
0
0
X
X
1
0
0
RDA1
0
0
1
0
0
1
1
X
X
0
1
0
RDA0
0
1
1
1
0
0
0
X
X
0
1
1
OP51
0
0
0
1
0
0
0
X
X
0
0
1
OP50
0
0
1
1
0
0
0
X
X
0
1
1
OP41
1
0
0
0
0
1
0
X
X
0
0
0
OP40
1
1
0
0
0
1
0
X
X
1
0
0
OP31
0
0
0
0
0
0
1
X
X
0
0
0
OP30
0
0
0
0
1
0
1
X
X
0
0
0
OP21
0
0
0
0
1
0
0
X
X
0
0
0
OP20
1
0
0
0
1
1
0
X
X
0
0
0
OP11
0
0
1
0
0
0
0
X
X
0
1
0
OP10
0
0
1
0
0
0
1
X
X
0
1
0
OP01
0
1
0
0
0
0
0
X
X
1
0
0
OP00
0
1
0
1
0
0
0
X
X
1
0
1
OPBDR 番号の
シーケンス
4
5
3
1
6
A
2
X
X
4
B
9
415
第 15 章 マルチパルスジェネレータ
表 15.6-3 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)( 2 / 2 )
No.
0
1
2
3
4
5
6
7
8
9
A
B
OPT5 出力
L
L
PPG
H
L
L
L
X
X
L
PPG
H
OPT4 出力
H
PPG
L
L
L
H
L
X
X
PPG
L
L
OPT3 出力
L
L
L
L
PPG
L
H
X
X
L
L
L
OPT2 出力
PPG
L
L
L
H
PPG
L
X
X
L
L
L
OPT1 出力
L
L
H
L
L
L
PPG
X
X
L
H
L
OPT0 出力
L
H
L
PPG
L
L
L
X
X
H
L
PPG
出力データバッファレジスタ 0(OPDBR0)を , 表 15.6-3 のように設定すると , 出力デー
タレジスタ(OPDRH, L)の値は初期化されます。以下のシーケンスは , 生成される書
込みタイミングに従って動作を開始します。
No.4 → No.6 → No.2 → No.3 → No.1 → No.5 → No.A → No.B → No.9 →(No.4 に戻って
リサイクル)
データは , 出力データレジスタ(OPDRH, OPDRL)へ順次転送されます。出力データ
バッファレジスタ(OPDBR0 ∼ OPDBRB)は , なにも設定されていない場合(たとえ
ば , 表 15.6-3 の No.7 および No.8)は使用されません。
416
第 15 章 マルチパルスジェネレータ
15.6.4
出力データレジスタへのデータ転送動作
出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)から出力データレジスタ
(OPDRH, OPDRL)へ自動でデータを転送をする際には , 8 つの方式(以降の小項で
説明)を使用できます。各方式は , 出力制御レジスタ(OPCUR)の OPS2 ∼
OPS0:bit12 ∼ bit10 を設定することによって選択します。
■ 出力データレジスタへのデータ転送動作
出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)から出力データレジスタ
(OPDRH,
OPDRL)へのデータ転送には , 以下に示す 8 つの方式を使用できます。
• OPDBR0 書込み
• 16 ビットリロードタイマアンダフロー
• 位置検出
• 位置検出と 16 ビットリロードタイマアンダフロー
• 位置検出または 16 ビットリロードタイマアンダフロー
• ワンショット位置検出
• ワンショット位置検出と 16 ビットリロードタイマアンダフロー
• ワンショット位置検出または 16 ビットリロードタイマアンダフロー
出力データレジスタ上位(OPDRH)の BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12
により選択された出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)値は , データ
書込み制御回路において書込み信号が生成されると , 出力データレジスタ(OPDRH,
OPDRL)へ転送されます。ただし , OPS2 ∼ OPS0=000B の場合は , BNKF:bit15 および
RDA2 ∼ RDA0:bit14 ∼ bit12 の値とは無関係に , 必ず OPDBR0 の値が出力データレジ
スタ(OPDRH, OPDRL)へ転送されます。OPDBR0 ∼ OPDBRB レジスタと OPDRH,
OPDRL レジスタの間の構造を図 15.6-12 に示します。
< 注意事項 >
データ転送方式を変更すると , 次に選択されるデータバッファレジスタは , 必ず
データ出力レジスタ上位(OPDRH)の BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼
bit12 で指定されます。これは , BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 が
無視される "OPDBR0 書込み " 方式には適用されません。出力データレジスタへア
クセスする場合は , ワードアクセス命令をご使用ください。
417
第 15 章 マルチパルスジェネレータ
RDA1
RDA0
OPS2
OPS1
OPS0
BNKF
RDA2
図 15.6-12 OPDBR0 ∼ OPDBRB レジスタと OPDRH, OPDRL レジスタの間の構造
OPDBR0
WT0
OPDBR1
OPDBR2
OPDBR3
OPDBR4
OPDBR5
OPDBR6
OPDBR7
OPDBR8
OPDBR9
OPDBRA
OPDBRB
418
セレクタ1~12
OPDRH,OPDRL
出力制御回路へ
第 15 章 マルチパルスジェネレータ
15.6.4.1
"OPDBR0 書込み " 方式
"OPDBR0 書込み " 方式の転送時における出力端子(OPTx)のタイミング更新を図
15.6-13 に示します。
■ "OPDBR0 書込み " 方式
< 注意事項 >
この動作時は , 出力データバッファレジスタ 0 に対してワードアクセス命令をご使
用ください。下位レジスタまたは上位レジスタへバイトアクセスしても転送動作は
開始しません。この方式は , リロードタイマ 0 を自由に使用できます。
● "OPDBR0 書込み " 方式で生成されるタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=000B)
図 15.6-13 "OPDBR0 書込み " 方式で生成されるタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=000B)
RDA2~
RDA0
(OPDRH)
000
001
110
OPDBR0W
OPDBR1W
OPDBR2W
WTO
OP01,
OP00
(OPDRL)
00
01
11
PPG
OPT0
419
第 15 章 マルチパルスジェネレータ
15.6.4.2
"16 ビットリロードタイマアンダフロー " 方式
"16 ビットリロードタイマアンダフロー " 方式の転送時における出力端子(OPTx)
のタイミング更新を図 15.6-14 および図 15.6-15 に示します。
■ "16 ビットリロードタイマアンダフロー " 方式
● "16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング
図 15.6-14 "16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング
BNKF,
RDA2,
RDA1,
RDA0
No.0
No.4
No.6
No.2
No.3
No.1
N o .5
N o.A
010 0
0110
00 10
00 11
000 1
0101
1010
10 11
OPT5
OPT4
OPT3
OPT2
OPT1
OPT0
タイマが起動する
16ビットリロードタイマ0でアンダフローが発生する
出力データレジスタ上位(OPDRH)の BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12
により指定される出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)から出力デー
タレジスタ(OPDRH, OPDRL)へのデータ転送は , 図 15.6-15 に示されているように 16
ビットリロードタイマ 0 のアンダフローが生成されるたびに自動的に更新されます。
この方式を使用するには , リロードタイマを " リロードモード " で使用しなければなり
ません。リロードタイマを起動するには , ソフトウェアトリガを使用しなければなりま
せん。前もって更新時間を設定し , 連続的制御動作を実行するには , 16 ビットリロード
タイマ 0 を使用しなければなりません。
420
第 15 章 マルチパルスジェネレータ
● "16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング(OPS2 ∼
OPS0:bit12 ∼ bit10=001B)
図 15.6-15 "16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング
(OPS2 ∼ OPS0:bit12 ∼ bit10=001B)
16ビットリロード
タイマ0
カウンタ動作
RDA2~
RDA0
(OPDRH)
10 0
110
10 1
011
00 1
00
01
11
00
10
WTINO
(TOUT)
WTO
OP01,
OP00
(OPDRL)
PPG
OPT0
421
第 15 章 マルチパルスジェネレータ
15.6.4.3
" 位置検出 " 方式
" 位置検出 " 方式の転送時における入力端子(SNIx)がトリガとなる出力タイミン
グ更新を図 15.6-16 および図 15.6-17 に示します。
■ " 位置検出 " 方式
● " 位置検出 " 方式で生成されるタイミング
図 15.6-16 " 位置検出 " 方式で生成されるタイミング
BNKF,
RDA2,
RDA1,
RDA0
No.0
No.4
No.6
No.2
No.3
No.1
N o .5
N o.A
010 0
0110
00 10
00 11
000 1
0101
1010
101 1
OPT5
OPT4
OPT3
OPT2
OPT1
OPT0
書込み信号は,RDA2~0:ビット14~12とSNI2~0端子の間でコンペア一致が検出された
場合またはSNI2~0端子で有効エッジ入力が検出された場合に生成されます。
比較は,入力エッジ位置検出入力端子(SNIx)がトリガとなります。
SNI2
SNI1
SNI0
比較は , 各位置検出において SNI2 端子と出力データレジスタ上位(OPDRH)の
RDA2:bit14 の間 , SNI1 端子と RDA1:bit13 の間および SNI0 端子と RDA0:bit12 の間で
行われます。OPTx 出力波形は , 図 15.6-17 のように SNIx 端子の有効エッジ入力に従っ
て更新されます。BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 で指定された出力
データバッファレジスタ(OPDBR0 ∼ OPDBRB)
データは出力データレジスタ
(OPDRH,
422
第 15 章 マルチパルスジェネレータ
OPDRL)へ転送され , 出力データは SNI2 ∼ SNI0 端子と RDA2 ∼ RDA0:bit14 ∼ bit12
値の間でコンペア一致が検出されると自動的に更新されます。
この方式時は , リロードタイマ 0 を自由に使用できます。
● " 位置検出 " 方式で生成されるタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=010B)
図 15.6-17 " 位置検出 " 方式で生成されるタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=010B)
SNI2
SNI1
SNI0
RDA2~
RDA0
(OPDRH)
10 0
110
101
011
00 1
01
11
00
10
WTIN1
WTO
OP01,
OP00
(OPDRL)
00
11
PPG
OPT0
423
第 15 章 マルチパルスジェネレータ
15.6.4.4
" 位置検出と 16 ビットリロードタイマアンダフ
ロー " 方式
" 位置検出と 16 ビットリロードタイマアンダフロー " 方式の転送時における出力タ
イミング更新を図 15.6-18 および図 15.6-19 に示します。
■ " 位置検出と 16 ビットリロードタイマアンダフロー " 方式
● " 位置検出と 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング
図 15.6-18 " 位置検出と 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング
BNKF,
RDA2,
RDA1,
RDA0
No.0
No.4
No.6
No.2
No.3
No.1
N o .5
N o.A
010 0
0110
00 10
00 11
000 1
0101
1010
101 1
OPT5
OPT4
OPT3
OPT2
OPT1
OPT0
書込み信号は,16ビットリロードタイマ0のアンダフローで生成される
16ビットリロードタイマ0の設定時間
SNI2
SNI1
SNI0
位置検出での比較は , SNIx 端子と出力データレジスタ上位(OPDRH)の RDAx:bit14,
bit13 または bit12 の間で行われます(すなわち , SNI2 端子と RDA2:bit14 の間 , SNI1 端
子と RDA1:bit13 の間および SNI0 端子と RDA0:bit12 の間で行われます)。コンペア一
致が検出されると , 16 ビットリロードタイマ 0 が起動します。書込み信号は , 16 ビッ
トリロードタイマ 0 のアンダフローで生成されます。
SNIx 端子の有効エッジ入力に従って出力される OPTx 端子出力波形は , 図 15.6-19 に示
424
第 15 章 マルチパルスジェネレータ
されているとおりです。16 ビットリロードタイマ 0 は , SNI2 ∼ SNI0 端子と出力デー
タレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 値の間でコンペア一致が検
出されると起動します。RDA2 ∼ RDA0:bit14 ∼ bit12 で指定された出力データバッファ
レジスタ(OPDBR0 ∼ OPDBRB)から出力データレジスタ(OPDRH, OPDRL)への
データ転送は , 16 ビットリロードタイマ 0 のアンダフローがトリガとなります。出力
データの動作は自動的に更新されます。
この方式を使用するには , リロードタイマは " ワンショットモード " で使用しなければ
なりません。TIN0O は , 2 マシンサイクルより長くなければなりません。
● " 位置検出と 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング
(OPS2 ∼ OPS0:bit12 ∼ bit10=011B)
図 15.6-19 " 位置検出と 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング
(OPS2 ∼ OPS0:bit12 ∼ bit10=011B)
SNI2
SNI1
SNI0
TIN00
(TIN)
リロード
タイマ0
カウンタ動作
RDA2~
RDA0
(OPDRH)
10 0
110
010
011
00 1
01
11
00
10
WTINO
(TOUT)
WTO
OP01,
OP00
(OPDRL)
00
11
PPG
OPT0
425
第 15 章 マルチパルスジェネレータ
15.6.4.5
" 位置検出または 16 ビットリロードタイマアンダ
フロー " 方式
" 位置検出または 16 ビットリロードタイマアンダフロー " 方式の転送時における出
力タイミング更新を図 15.6-20 および図 15.6-21 に示します。この方式は , 出力制御
レジスタ上位(OPCUR)の OPS2 ∼ OPS0:bit12 ∼ bit10=100B を設定することに
より選択されます。
■ " 位置検出または 16 ビットリロードタイマアンダフロー " 方式
● " 位置検出または 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング
図 15.6-20 " 位置検出または 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング
BNKF,
RDA2,
RDA1,
RDA0
No.0
No.4
No.6
No.2
0100
0110
00 10
00 11
No.3
0001
No.1
N o .5
N o.A
0101
1010
101 1
OPT5
OPT4
OPT3
OPT2
OPT1
OPT0
タイマが
起動する
16ビットリロードタイマ0でアンダフローが発生する
SNI2
SNI1
SNI0
書込み信号は,RDA2~RDA0:bit14~bit12とSNI2~SNI0端子の間でコンペア一致が検出された場合またはSNI2~SNI0
端子で有効エッジ入力が検出された場合に生成されます。比較は,入力エッジ位置検出入力端子(SNIx)がトリガとなります。
426
第 15 章 マルチパルスジェネレータ
● " 位置検出または 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング
(OPS2 ∼ OPS0:bit12 ∼ bit10=100B)
図 15.6-21 " 位置検出または 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング
(OPS2 ∼ OPS0:bit12 ∼ bit10=100B)
SNI2
SNI1
SNI0
TIN00
(TIN)
リロード
タイマ0
カウンタ動作
RDA2~
RDA0
(OPDRH)
10 0
110
010
011
00 1
01
11
00
10
WTINO
(TOUT)
WTO
OP01,
OP00
(OPDRL)
00
11
PPG
OPT0
427
第 15 章 マルチパルスジェネレータ
15.6.4.6
" ワンショット位置検出 " 方式
" ワンショット位置検出 " 方式の転送時における入力端子(SNIx)がトリガとなる
出力タイミング更新を図 15.6-22 に示します。
■ " ワンショット位置検出 " 方式
最初の有効位置が検出されてから動作モードが変更されるまでに位置検出が認識され
ない点を除き , " 位置検出 " 方式の動作と同じです。OPTx 出力波形をに示します。
この方式時は , リロードタイマ 0 を自由に使用できます。
● " ワンショット位置検出 " 方式で生成されるタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=110B)
図 15.6-22 " ワンショット位置検出 " 方式で生成されるタイミング
(OPS2 ∼ OPS0:bit12 ∼ bit10=110B)
SNI2
SNI1
SNI0
RDA2~
RDA0
(OPDRH)
10 0
110
00
01
WTIN1
WTO
OP01,
OP00
(OPDRL)
11
PPG
OPT0
OPS2~
OPS0
428
110
01 0
第 15 章 マルチパルスジェネレータ
15.6.4.7
" ワンショット位置検出と 16 ビットリロードタイ
マアンダフロー " 方式
" ワンショット位置検出と 16 ビットリロードタイマアンダフロー " 方式の転送時に
おける出力タイミング更新を図 15.6-23 に示します。
■ " ワンショット位置検出と 16 ビットリロードタイマアンダフロー " 方式
最初の有効位置が検出されてから動作モードが変更されるまでに位置検出が認識され
ない点を除き , " 位置検出と 16 ビットリロードタイマアンダフロー " 方式の動作と同
じです。OPTx 端子出力波形を図 15.6-23 に示します。
この方式を使用するには , リロードタイマは " ワンショットモード " で使用しなければ
なりません。TIN0O は , 2 マシンサイクルより長くなければなりません。
● " ワンショット位置検出と 16 ビットリロードタイマアンダフロー" 方式で生成されるタイミ
ング(OPS2 ∼ OPS0:bit12 ∼ bit10=111B)
図 15.6-23 " ワンショット位置検出と 16 ビットリロードタイマアンダフロー " 方式で生成される
タイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=111B)
SNI2
SNI1
SNI0
TIN00
(TIN)
リロード
タイマ0
カウンタ動作
RDA2~
RDA0
(OPDRH)
10 0
110
WTINO
(TOUT)
WTO
OP01,
OP00
(OPDRL)
00
11
01
PPG
OPT0
OPS2~
OPS0
111
011
429
第 15 章 マルチパルスジェネレータ
15.6.4.8
" ワンショット位置検出または 16 ビットリロード
タイマアンダフロー " 方式
" ワンショット位置検出または 16 ビットリロードタイマアンダフロー " 方式転送時
における出力タイミング更新を図 15.6-24 に示します。この方式は , 出力制御レジス
タ上位(OPCUR)の OPS2 ∼ OPS0:bit12 ∼ bit10=101B の設定により選択されま
す。
■ " ワンショット位置検出または 16 ビットリロードタイマアンダフロー " 方式
最初の有効位置が検出されてから動作モードが変更されるまでに位置検出が認識され
ない点を除き " 位置検出または 16 ビットリロードタイマアンダフロー " 方式の転送動
作と同じです。OPTx 端子出力波形を図 15.6-24 に示します。
● " ワンショット位置検出または 16 ビットリロードタイマアンダフロー" 方式で生成されるタ
イミング(OPS2 ∼ OPS0:bit12 ∼ bit10=101B)
図 15.6-24 " ワンショット位置検出または 16 ビットリロードタイマアンダフロー " 方式で生成され
るタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=101B)
SNI2
SNI1
SNI0
WTIN1
リロード
タイマ0
カウンタ動作
RDA2~
RDA0
(OPDRH)
101
110
00
01
WTINO
(TOUT)
WTO
OP01,
OP00
(OPDRL)
11
PPG
OPT0
OPS2~
OPS0
430
101
100
第 15 章 マルチパルスジェネレータ
15.6.5
DTTI 入力制御の動作
DTTI 入力制御回路の動作について説明します。
■ DTTI 入力制御の動作
DTTI 回路は , PORTx となる OPTx 端子への PDRx(PORTx データレジスタ)値の出力
を制御します(OPTx 端子は出力制御レジスタ下位(OPCLR)の OPEx:bit4 ∼ bit1 また
は 0 に "1" を設定すると選択されます)。
動作モードは , 出力制御レジスタ上位
(OPCUR)
の DTIE:bit15 に "1" を設定すると有効になります。
< 注意事項 >
DTTI 回路が有効になる前に , OPTx 端子となる PORTx がポート方向レジスタによ
り出力ポートとして設定されていることを確認してください。
出力制御レジスタ上位(OPCUR)の DTIF:bit14 に "1" が設定されると , OPT5 ∼ OPT0
端子の波形出力は DTTI 端子の有効レベルで有効になります。DTTI 端子が low 入力レ
ベルに設定されると , OPTx 出力はインアクティブレベルに固定されます。ソフトウェ
アは , PORTx の PDRx に対する各 OPTx 端子をインアクティブレベルに設定できます。
OPTx 端子は , PORTx の PDRx に書き込まれたデータで動作します。
出力が DTTI 端子の入力によりインアクティブレベルに固定されている間でもタイマ
は動作を継続しており , 位置検出機能は停止せず , かつ出力データバッファレジスタ
(OPDBR0 ∼ OPDBRB)から出力データレジスタ(OPDRH, OPDRL)へのデータ転送
は継続され , 波形が生成されます。しかし, OPT5 ∼ OPT0 端子へ波形は出力されません。
DTTI 回路のブロックダイヤグラムを図 15.6-25 に示し , タイマ状態制御レジスタ
(TCSR)の D1, D0:bit9, bit8 に "00B" が設定されているときの DTTI 回路のタイミング
ダイヤグラムを図 15.6-26 に示します。
● DTTI 回路のブロックダイヤグラム
図 15.6-25 DTTI 回路のブロックダイヤグラム
DTTI端子
入力有効/無効セレクタ
DTIE
D1
D0
NRSL
Nサイクル遅延回路
"N"は,ノイズキャンセルレジスタ
(NCCR)のD1,D0:bit9,bit8の設定に
基づいて4,8,16または32をとるこ
とができる。
ノイズキャンセルセレクタ
DTIF
DTTI割込み/制御ジェネレータ
DTISP
431
第 15 章 マルチパルスジェネレータ
● DTTI 回路のタイミングダイヤグラム(D1, D0:bit9, bit8=00B)
図 15.6-26 DTTI 回路のタイミングダイヤグラム(D1, D0:bit9, bit8=00B)
φ
DTTI1
*
DTIE
NRSL
DTIF
DTISP
DTTI1
DTI E
NRSL
DTI F
*
DTISP
4マシンサイクル
* : DTIFは,"0"を書込むとlowになります。
< 注意事項 >
432
認識された状態の DTTI1(ノイズ除去後)から DTISP への時間が 2 サイクル必要
とするのはワーストなケースであり , 1 サイクルを必要とするのがベストなケース
です。
第 15 章 マルチパルスジェネレータ
■ DTTI と OPTx 出力の関係
表 15.6-4 DTTI と OPTx 出力の関係
NRSL
DTIE
DTTI1
X
0
X
DTTI は OPTx に影響を与えません(初期値)。
0
1
0
DTTI が有効になります。ノイズフィルタは有効になりません。DTTI
端子の "L" は , PDRx が設定されているインアクティブレベルの出力を
トリガとします。DTTI 割込みが生成されます。
0
1
1
DTTI は OPTx に影響を与えません。
1
1
0
DTTI が有効になります。ノイズフィルタは有効になります。DTTI 端
子の "L" は , PDRx が設定されているインアクティブレベルの出力をト
リガとします。DTTI 割込みが生成されます。
1
1
1
DTTI は OPTx に影響を与えません。
機 能
433
第 15 章 マルチパルスジェネレータ
15.6.6
ノイズ除去機能の動作
SNIx 端子および DTTI 端子のノイズ除去機能について説明します。
■ ノイズ除去機能の動作
● DTTI 端子のノイズ除去機能
出力制御レジスタ上位(OPCUR)の NRSL:bit13 に "1" を設定すると , DTTI 端子入力
のノイズ除去機能を使用できます。ノイズ除去機能が起動すると , ノイズ除去回路は ,
出力端子をインアクティブレベルに固定するタイミングを約 4, 8, 16 または 32 マシン
サイクルだけ遅延させます。ノイズ除去回路は内部クロックを使用するので , DTTI 入
力が有効になった場合でも , 入力は発振が停止するモード(ストップモードなど)時に
は無効になります。
● SNI2 ∼ SNI0 端子のノイズ除去機能
入力制御レジスタ下位(IPCLR)の SNC2 ∼ SNC0:bit5 ∼ bit3 に "1" を設定すると , SNI2 ∼
SNI0 端子入力のノイズ除去機能を使用できます。ノイズ除去機能が選択されると , ノ
イズ除去回路は入力を約 4 マシンサイクルだけ遅延させます。ノイズ除去回路は内部
クロックを使用するので , SNIx 入力が有効になった場合でも , 入力は発振が停止する
モード(ストップモードなど)時は無効になります。
● 設定可能なノイズ除去回路
除去されるノイズのパルス幅は , 4, 8, 16 または 32 マシンサイクル未満になるように設
定することが可能です。すなわち , 16 MHz マシンクロック時は , 回路は 0.25ms ∼ 2 ms
の幅のパルスをフィルタリングできます。SNIx 端子と DTTI 端子のノイズ除去回路を
設定するための制御は分離されています。ノイズキャンセル制御レジスタを図 15.4-12 に
示します。
434
第 15 章 マルチパルスジェネレータ
15.6.7
16 ビットタイマの動作
16 ビットタイマはバッファ機能とコンペアクリア機能を持っており , モータ速度検
査タイマや異常検出タイマとして使用します。16 ビットタイマは , リセットが完了
しカウント有効ビットが設定された後 , カウンタ値 "0000H" からカウントアップを
開始します。
■ 16 ビットタイマの動作
カウンタ値は , 以下のイベントが発生した場合にクリアされます。
• オーバフローが発生した場合。
• コンペアクリアレジスタ(CPCRH, CPCRL)と一致した場合。
• 動作中にタイマ状態制御レジスタ(TCSR)の TCLR:bit7 に "1" が設定された場合。
• 書込みタイミング信号が生成され , タイマ状態制御レジスタ(TCSR)の MODE:bit6
に "0" が設定された場合。
• 位置検出信号が生成され , タイマ状態制御レジスタ(TCSR)の MODE:bit6 に "1" が
設定された場合。
• リセットされた場合。
割込みは , コンペアクリアレジスタとの一致でカウンタがクリアされると , 生成されま
す。
< 注意事項 >
コンペアクリアレジスタやタイマバッファレジスタへアクセスする場合は , ワード
アクセス命令をご使用ください。
図 15.6-27 オーバフローによるカウンタクリア
カウンタ値
オーバフロー
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
割込み
図 15.6-28 コンペアクリアレジスタとの一致によるカウンタクリア
カウンタ値
FFFFH
BFFFH
一致
一致
7FFFH
3FFFH
0000H
時間
リセット
コンペアクリア
レジスタ値
BFFFH
割込み
435
第 15 章 マルチパルスジェネレータ
■ 16 ビットタイマのタイミング
16ビットタイマは, プリスケーラクロックに基づいてインクリメントされ, 立上りエッ
ジでカウントアップします。
< 注意事項 >
プリスケーラクロックが変化する前に , タイマ状態制御レジスタ(TCSR)の
TMEN:bit3 に "0" を設定してタイマカウンタを無効にしなければなりません。
図 15.6-29 16 ビットタイマカウントのタイミング
CPUクロック
プリスケーラ
クロック
カウンタ値
N
N+1
N+2
N+3
N+4
カウンタは , リセットが発生した場合 , ソフトウェアクリア(TCLR)が発生した場合 ,
コンペアクリアレジスタとの一致が発生した場合または書込みタイミング信号か位置
検出信号が生成された場合 , 直ちにクリアできます。カウンタは , リセットが発生した
場合は直ちにクリアされ , コンペアクリアレジスタとの一致が発生した場合 , ソフト
ウェアクリア(TCLR)が発生した場合または書込みタイミング信号か位置検出信号が
生成された場合は , カウントタイミングと同期してクリアされます。
図 15.6-30 16 ビットタイマクリアのタイミング
φ
コンペア
レジスタ値
N
プリスケーラ
クロック
コンペア一致
カウンタ値
436
N-1
N
0000H
0001H
0002H
第 15 章 マルチパルスジェネレータ
■ 16 ビットタイマバッファ動作のタイミングダイヤグラム
図 15.6-31 16 ビットタイマバッファ動作のタイミングダイヤグラム
CPUクロック
CLK
カウンタ値
タイマバッファ
MODE
0000H
0001H
0002H
XXXXH
0000H
0001H
0002H
0002H
0または1
ロードバッファ
TMEN
WTO
WTIN1
タイマリセット
437
第 15 章 マルチパルスジェネレータ
■ マルチパルスジェネレータの 16 ビットタイマの使用
16 ビットタイマは , 書込みタイミング割込みフラグまたは位置検出割込みフラグが設
定されるとリセットされます(どちらを設定するかは , タイマ状態制御レジスタ
(TCSR)の MODE:bit6 で選択可能)
。
16 ビットタイマは , タイマ状態制御レジスタ(TCSR)の TMEN:bit3 で起動または停止
できます。タイマオーバフロー割込みは存在しません。16 ビットタイマは , 再起動さ
れるたびに現カウンタ値がバッファにラッチされ , 速度が計算されます。
カウンタ値がコンペアクリアレジスタ(CPCRH, CPCRL)と一致すると , タイマはリ
セットされます。
< 注意事項 >
コンペアクリアレジスタ(CPCRH, CPCRL)にタイマカウンタ値と同じ値がロー
ドされると , 比較動作は次回これと同じイベントが発生するまで行われません。
コンペアクリア割込みは同じ割込みベクタを書込みタイミング割込みと共用しますが,
コンペア一致割込みは同じ割込みベクタを位置検出割込みと共用します。
■ マルチパルスジェネレータの 16 ビットタイマの動作ダイヤグラム
図 15.6-32 マルチパルスジェネレータの 16 ビットタイマの動作ダイヤグラム
コンペア
クリアレジスタ(CPCRH,CPCRL)
望む位置検出信号がタイム
アウトが発生するまで現れ
ない状態は,異常が発生し
ていることを意味します。
カウンタ値
現カウンタ値がバッファ
にラッチされます。
タイマがリセットされます(このリセットは書込み
タイミングまたは位置検出がトリガとなります)。
438
タイマがリセットされます(このリセットは書込み
タイミングまたは位置検出がトリガとなります)。
第 15 章 マルチパルスジェネレータ
15.7
マルチパルスジェネレータ使用上の注意
マルチパルスジェネレータ使用上の注意を以下に示します。
■ 波形シーケンサ使用上の注意
● 設定プログラム使用上の注意
• ある PPG 同期モードから別の PPG 同期モードへの切換え(たとえば , 立上りエッジ
同期(IPCUR レジスタの WTS1, WTS0:bit15, bit14=01B)から立下りエッジ同期
(IPCUR レジスタの WTS1, WTS0:bit15, bit14=10B) への切換えまたはその逆への切換
え)は , 禁止されています。同期モード(IPCUR レジスタの WTS1, WTS0:bit15,
bit14=00B)は , このような切換えにおける通過点であってはなりません。
• データ転送方式を変更すると , 選択される次のデータバッファレジスタは , 必ず出
力データレジスタ上位(OPDRH)の BNKF, RDA2 ∼ RDA0:bit15 ∼ bit12 で指定さ
れます。これは , OPDBR0 書込み方式 (OPCUR レジスタの OPS2 ∼ OPS0:bit12 ∼ bit10 =
000B)には適用されません。OPDBR0 書込み方式では , BNKF, RDA2 ∼ RDA0:bit12 ∼
bit10 は無視されます。
• 出力データレジスタ(OPDRH, OPDRL)へアクセスする際には , ワードアクセスを
ご使用ください。
• データ転送に OPDBR0 書込み方式(OPCUR レジスタの OPS2 ∼ OPS0:bit12 ∼
bit10=000B)を使用する場合 , 出力データバッファレジスタ 0 へのアクセスは , ワー
ドアクセスをご使用ください。出力データバッファレジスタ(下位レジスタまたは
上位レジスタ)へバイトアクセスしても , 転送動作は開始しません。
• 16 ビットリロードタイマアンダフロー転送方式 (OPCUR レジスタの OPS2 ∼ OPS0:
bit12 ∼ bit10=010B) を使用するには , 16 ビットリロードタイマは " リロードモード "
で使用しなければなりません。16 ビットリロードタイマを起動するには , ソフト
ウェアトリガを使用する必要があります。16 ビットリロードタイマは , 更新時間の
事前設定および連続制御動作を実行するために必要となります。
• " 位置検出と 16 ビットリロードタイマアンダフロー" 方式 (OPCUR レジスタの OPS2 ∼
OPS0:bit12 ∼ bit10=011B または 111B)を使用するには , 16 ビットリロードタイマは
" ワンショットモード " でなければなりません。TIN0 は , 2 マシンサイクルより長く
なければなりません。
• DTTI1 入力制御回路が有効になる(OPCUR レジスタの DTIE:bit15=1)前に , OPTx
と多重化されている PORTx がポート方向レジスタ(DDRx)で出力ポートとして設
定されていることを確認してください。
• DTTI1 入力制御回路は内部クロックを使用するので , 入力は無効となります。発振
が停止するストップモードなどで DTTI1 入力が有効になった(OPCUR レジスタの
DTIE:bit15=1)場合でも , 無効となります。
• ワーストの場合は , DTTI1 信号が認識されてから DTISP 信号が有効になるまでに 2
マシンサイクルを要します。ベストの場合は , 1 マシンサイクルを要します。
• ノイズ除去機能が無効になっている(OPCUR レジスタの NRSL:bit13=0)場合は , 必
ずノイズキャンセル制御レジスタ(NCCR)の D1, D0:bit7, bit8 を書換えてください。
439
第 15 章 マルチパルスジェネレータ
• ノイズ除去機能が無効になっている
(IPCLRレジスタのSNC2∼SNC0:bit5∼bit3=000B)
場合は , 必ずノイズキャンセル制御レジスタ(NCCR)の S21, S20, S11, S10, S01, S00:
bit15 ∼ bit10 を書換えてください。
● 割込みに関する注意
• 出力制御レジスタ上位(OPCUR)の DTIF:bit14 が "1" に設定されたままになってい
ると , 割込み処理から復帰できません。DTIF:bit14 は必ずクリアしてください。
• 出力制御レジスタ上位(OPCUR)の WTIF:bit14 が "1" に設定されたままになってい
ると , 割込み処理から復帰できません。WTIF:bit14 は必ずクリアしてください。
• 出力制御レジスタ下位(OPCLR)の PDIF:bit7 が "1" に設定されたままになってい
ると , 割込み処理から復帰できません。PDIF:bit7 は必ずクリアしてください。
• 入力制御上位レジスタ(IPCUR)の CPIF:bit13 が "1" に設定されたままになってい
ると , 割込み処理から復帰できません。CPIF:bit13 は必ずクリアしてください。
• 上記割込みは割込みベクタをほかのリソースと共用するので , 割込みが使用されて
いる場合は , 割込み要因を割込み処理ルーチンで注意深く確認しなければなりませ
ん。
• また , これらの割込みで EI2OS を使用している場合は , 共用されるリソース割込み
は禁止しなければなりません。
■ 16 ビットタイマ使用上の注意
● 設定プログラム使用上の注意
• コンペアクリアレジスタ(CPCRH, CPCRL)およびタイマバッファレジスタ(TMBRH,
TMBRL)へアクセスする際には , ワードアクセスをご使用ください。
• プリスケーラクロックを切り換える場合は, タイマ状態制御レジスタ
(TCSR)
のTMEN:
bit3 に "0" を設定することによって前もってタイマカウンタを無効にしておかなけ
ればなりません。タイマ制御状態レジスタの CLK2 ∼ CLK0:bit2 ∼ bit6 の書換えは ,
タイマがカウントしていない間に行ってください。
• コンペアクリアレジスタ(CPCRH, CPCRL)にタイマカウンタ値と同じ値がロード
された場合は , 比較動作は次の同じタイマカウンタ値まで行われません。
● 割込みに関する注意
• タイマ制御状態レジスタ(TCSR)の ICLR:bit5 に "1" が設定されており , かつ割込
み要求が許可になっている(TCSR レジスタの ICRE:bit4=1)と , 制御は割込み処理
から復帰できません。ICLR ビットは必ずクリアしてください。
• 16 ビットタイマは割込みベクタをほかのリソースと共用するので , 割込みが使用さ
れている場合は , 割込み要因を割込み処理ルーチンで注意深く確認しなければなり
ません。
• また , 16 ビットタイマで EI2OS を使用している場合は , 共用されるリソース割込み
は禁止にしなければなりません。
440
第 15 章 マルチパルスジェネレータ
15.8
マルチパルスジェネレータのプログラム例
マルチパルスジェネレータのプログラム例を示します。
■ マルチパルスジェネレータのプログラム例
● 処理
• タイミング割込みが生成されたとき , PPG の出力は OPT0 へ , PPG の反転割込みは
OPT1 へ指示されます。
• OPDBR0 書込みモードは , アウトプットデータレジスタ(OPDRH, OPDRL)へデー
タを転送するために使用されます。
• 16 ビット PPG タイマは PWM において使用され , かつソフトウエアトリガにより開
始します。
• EI2OS は使用しません。
• 16MHz はマシンクロック用 , 62.5ns は 16 ビット PPG タイマのカウントクロック用
です。
● コーディング用
ICR07
EQU
0000B7H
; 波形シーケンサ用割込み制御レジスタ
PCSR1
EQU
000042H
;PPG 周期設定レジスタ
PDUT1
EQU
000044H
;PPG デューティ設定レジスタ
PCNT1
EQU
000046H
;PPG 制御状態レジスタ
OPCLR
EQU
00008AH
; 出力制御レジスタ
OPDBR0 EQU
003FE0H
; 出力データバッファレジスタ
WTIF
EQU
OPCR:9
; 割込み要求フラグビット
;---------- メインプログラム -----------------------------------------CODE
CSEG
START
; :
; スタックポインタ (SP) が既に初期化されているものと仮定
AND
CCR,#0BFH
; 割込み禁止
MOV
I:ICR01,#00H
; 割込みレベル 0(最強)
MOVW I:PCSR0,#0064H ;PPG 出力の周期を設定
MOVW I:PDUT0,#003CH ;PPG 出力のデューティ比の設定
MOVW I:PCNT0,#01100000000000110B
MOVW
MOVW
MOV
OR
; 正常極性における PPG 出力を許可
;16 ビット PPG タイマを有効 , 62.5ns クロック
; ソフトウェアトリガ PPG
;PWM モードを選択
; 割込みフラグをクリア , カウンタ開始
I:OPCR, #0103H ;OPT0 と OPT1 出力を許可
; データ転送用 OPDBR0 書込みモードを選択
; 書込みタイミング割込みを許可
; 割込みフラグをクリア
I:OPDBR0,#0009H ;PPG 出力の OPT0 端子を設定
; 反転 PPG 出力の OPT1 を設定
; データ転送開始
ILM,#07H
;PS の ILM をレベル 7 に設定
CCR,#40H
; 割込み許可
441
第 15 章 マルチパルスジェネレータ
MOV
A,#00H
; 無限ループ
MOV
A,#01H
;
BRA
LOOP
;
;---------- 割込みプログラム -----------------------------------------WARI:
CLRB I:WTIF
; 割込み要求フラグをクリア
; :
; ユーザ処理
; :
RETI
; 割込みから復帰
LOOP:
CODE
ENDS
;---------- ベクタ設定 ----------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FF94H
; 割込み #26(1AH)用ベクタをクリア
VECT
442
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH
START
00H
START
; リセットベクタを設定
; シングルチップモードを設定
第 16 章
PWC タイマ
PWC タイマの機能と動作について説明します
(MB90467 では , PWC タイマ ch.0 未搭載となり
ます)。
16.1 PWC タイマの概要
16.2 PWC タイマのブロックダイヤグラム
16.3 PWC タイマの端子
16.4 PWC タイマのレジスタ
16.5 PWC タイマの割込み
16.6 PWC タイマの動作
16.7 PWC タイマ使用上の注意
16.8 PWC タイマのプログラム例
443
第 16 章 PWC タイマ
16.1
PWC タイマの概要
PWC(パルス幅測定)タイマはリロード機能を備えた多機能 16 ビットアップカウ
ンタであり , 入力信号のパルス幅を算出する機能も備えています。
PWC タイマは , 16 ビットカウンタ , 入力パルス分周器 , 分周比制御レジスタ , カウ
ント入力端子 , パルス出力端子および 16 ビット制御レジスタから構成されていま
す。
■ PWC タイマの特性
MB90460/465 シリーズは 2 つの PWC タイマチャネルを装備しており , PWC タイマは
以下の特性を備えています。
● タイマ機能
• 指定された時間間隔で割込み要求が生成されます。
• タイマ周期と同期したパルス信号を生成できます。
• 3 つの内部クロックからカウンタクロックを選択できます。
● パルス幅測定機能
• 外部パルス入力イベント間の時間を測定できます。
• 3 つの内部クロックからカウンタクロックを選択できます。
• カウントモード
• H パルス幅(立上りエッジから立下りエッジまでの幅), L パルス幅(立下りエッジ
から立上りエッジまでの幅)
• 立上りエッジ周期(立上りエッジから立上りエッジまでの周期), 立下りエッジ周
期(立下りエッジから立下りエッジまでの周期)
• 中間エッジカウント(立上りエッジから立下りエッジまでのカウントまたは立下り
エッジから立上りエッジまでのカウント)
• 6 ビット入力分周器を使用して入力パルスを 22, 24, 26 または 28 で分周して周期を
測定します。
• カウント完了時に割込み要求が生成されます。
• 単一カウントまたは連続カウントを選択できます。
■ PWC タイマの動作
PWC タイマは , 16 ビットアップカウントタイマを中核とした多機能タイマであり , カ
ウント入力端子と 8 ビット入力分周器を備えています。PWC タイマは 2 つの主要機能
(タイマ機能とパルス幅測定機能)を備えており , これらの機能はそれぞれ 2 種類のカ
ウントクロックを選択できます。
444
第 16 章 PWC タイマ
PWC タイマのブロックダイヤグラム
16.2
PWC タイマのブロックダイヤグラムを示します。
■ PWC タイマのブロックダイヤグラム
図 16.2-1 PWC タイマのブロックダイヤグラム
PWC読出し
エラー検出
ERR
16
PWC
16
16
オーバフロー
書込み許可
リロード
PWO0
PWO1
F.F .
データ転送
16
クロック
オーバフロー
22
16ビットアップカウントタイマ
23
内部データバス
タイマクリア
カウント有効
カウントビット出力
フラグ設定
制御回路
開始エッジ
選択
アカウント
終了エッジ
カウント開始
エッジ
内部クロック
(マシンクロック/4)
終了エッジ
選択
分周器ON/OFF
PWI0
PWI1
カウンと終了割込み要求
15
CK S1,0 分周器クリア
エッジ
検出
オーバフロー割込み要求
PWCS
Clo ck
クロック
分周器
ERR
8ビット
分周器
CKS1
CKS0
分周比選択
2
DIVR
445
第 16 章 PWC タイマ
PWC タイマの端子
16.3
PWC タイマの端子について説明します。また端子のブロックダイヤグラムも示しま
す。
■ PWC タイマの端子
PWC タイマの端子は , 汎用入出力ポートと共用されます。端子機能と I/O 形式および
PWC タイマを使用するために必要な設定を表 16.3-1 に示します。
表 16.3-1 16 ビット PWC タイマの端子
端子名
端子機能
P06/PWI0*
ポート 0 入出力 ,
タイマ入力
P07/PWO0*
ポート 0 入出力 ,
タイマ出力
プルアップ
オプション
I/O 形式
待機制御
入力ポートの設定
(DDR0:bit6=0)
タイマ有効の設定
(PWCSL0:MOD2 ∼
MOD0 が "0" ではな
い)
選択可能
P22/PWI1
ポート 2 入出力 ,
タイマ入力
P23/PWO1
ポート 2 入出力 ,
タイマ出力
設 定
CMOS 出力 ,
CMOS ヒステ
リシス入力
使用可能
入力ポートの設定
(DDR2:bit2=0)
タイマ有効の設定
(PWCSL1:MOD2 ∼
MOD0 が "0" ではな
い)
提供なし
*:MB90467 では , リソースが搭載されていないため , 削除となります。
■ PWC0 タイマ端子のブロックダイヤグラム
PWC0 タイマ端子のブロックダイヤグラムを図 16.3-1 に示します。
図 16.3-1 PWC0 タイマ端子のブロックダイヤグラム
RDR
リソース出力
内部データバス
ポートデータレジスタ(PDR)
リソース入力
リソース出力許可信号
プルアップ
抵抗
約50kΩ
PDR読出し
出力ラッチ
PDR書込み
端子
ポートデータ方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
446
第 16 章 PWC タイマ
■ PWC1 タイマ端子のブロックダイヤグラム
PWC1 タイマ端子のブロックダイヤグラムを図 16.3-2 に示します。
図 16.3-2 PWC1 タイマ端子のブロックダイヤグラム
リソース出力
リソース入力
リソース出力許可信号
内部データバス
ポートデータレジスタ(PDR)
PDR読出し
出力ラッチ
PDR書込み
端子
ポートデータ方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
スタンバイ制御信号(SPL=1)
447
第 16 章 PWC タイマ
16.4
PWC タイマのレジスタ
PWC タイマのレジスタを以下に示します。
■ PWC タイマのレジスタ
図 16.4-1 PWC タイマのレジスタ
PWC状態制御レジスタ(上位)
bit 15
_
STRT
リード/ライト
初期値
14
13
12
11
10
9
8
STOP
EDIR
EDIE
OVIR
OVIE
ERR
POUT
R/W
R/W
R
R/W
R/W
R/W
R
R/W
0
0
0
0
0
0
0
0
PWC状態制御レジスタ(下位)
bit 7
6
5
4
PWCSH0,PWCSH1
3
2
1
0
CKS1
CKS0 未使用 未使用
S/C
MOD2
MOD1
MOD0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
リード/ライト
初期値
PWCSL0,PWCSL1
PWCデータバッファレジスタ(上位)
bit 15
リード/ライト
初期値
14
13
12
11
10
9
8
PW15
PW14
PW13
PW12
PW11
PW10
PW09
PW08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
X
X
PWCH0,PWCH1
PWCデータバッファレジスタ(下位)
bit 7
リード/ライト
初期値
6
5
4
3
2
1
0
PW07
PW06
PW05
PW04
PW03
PW02
PW01
PW00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
X
X
PWCL0,PWCL1
分周比制御レジスタ
448
bit 7
6
5
4
3
2
1
0
-
-
-
-
-
-
DIV1
DIV0
リード/ライト
-
-
-
-
-
-
R/W
R/W
初期値
-
-
-
-
-
-
0
0
DIV0,DIV1
第 16 章 PWC タイマ
PWC 状態制御レジスタ
(PWCSH0, PWCSH1, PWCSL0, PWCSL1)
16.4.1
PWC 状態制御レジスタ(PWCSH0, PWCSH1, PWCSL0, PWCSL1)は , PWC タイ
マの動作を制御し , PWC タイマの状態を読み出します。
■ PWC 状態制御レジスタ , 上位バイト(PWCSH0, PWCSH1)
図 16.4-2 PWC 状態制御レジスタ , 上位バイト(PWCSH0, PWCSH1)
bit
15
14
13
12
11
10
9
8
STRT
STOP
EDIR
EDIE
OVIR
OVIE
ERR
POUT
R/W
R/W
R
R/W
R/W
R/W
R
R/W
POUT
パレス出力ビット
0
前の値が"1"の場合,タイマでオーバフローが発生した時"0"になる
1
前の値が"0"の場合,タイマでオーバフローが発生した時"1"になる
ERR
エラーフラグビット
0
カウント結果は上書きされない
1
前の値が読出される前にカウント結果が上書きされます
OVIE
オーバフロー割込み許可ビット
0
オーバフロー割込み要求を禁止にする
1
オーバフロー割込み要求を許可する
オーバフロー割込み要求ビット
OVIR
読出し
0
タイマオーバフローは発生していない
1
タイマオーバフローが発生した
書込み
このビットは
クリアされます
このビットは
影響を受けない
EDIE
測定終了割込み許可ビット
0
測定終了割込み要求を禁止する
1
測定終了割込み要求を許可する
EDIR
測定終了割込み要求フラグビット
0
パレス幅の測定が終了していない
1
パレス幅の測定が終了した
STRT
X :不定
R/W :リード/ライト
:初期値
- :未使用
初期値
00000000B
STOP
0
0
0
1
1
0
1
1
動作状態指示
読出し
書込み
タイマが停止する(タイマが
起動しないまたはカウント 機能なし。動作は影響受けない
が終了する) タイマが起動または再起動する
無意味
(カウントが有効になる)
タイマ動作が停止する
無意味
(カウントが無効になる)
機能なし。動作は影響受けない
タイマカウントが行進中
449
第 16 章 PWC タイマ
表 16.4-1 PWC 状態制御レジスタ , 上位バイト(PWCSH0, PWCSH1)( 1 / 2 )
ビット名
機 能
•
bit15,
bit14
bit13
STRT, STOP:
起動 / 停止
ビット
EDIR:
測定終了割込
み要求フラグ
ビット
•
•
•
•
STRT, STOP ビットを書き込んでタイマを起動 , 停止する場合 , ビット操作命
令(ビットクリア命令など)を使用できます。ただし , 動作状態(タイマが
動作中であるといったことなどを必ず示す)の読出しに , ビット操作命令は
使用できません。
•
•
このビットは , パルス幅測定モードによる測定が終了したことを示します。
パルス幅測定が終了すると , このビットは設定されます(PWC0, PWC1 には
測定結果が入ります)。
PWC データバッファレジスタ内の測定結果や PWC0, PWC1 を読み出したと
き , このビットは自動的にクリアされます。
タイマモード時はこのビットは意味を持ちません。
このビットは読出し専用ビットであり , 書き込んでも意味がありません。
•
•
•
•
bit12
EDIE:
測定終了割込
み許可ビット
•
•
•
•
bit11
OVIR:
オーバフロー
割込み要求
ビット
bit10
OVIE:
オーバフロー
割込み要求
ビット
このビットは , パルス幅カウントモード時の測定終了割込み要求を制御する
ために使用します。
このビットが "1" で , かつ EDIR ビットに "1" が設定されたとき , 測定終了割
込み要求が CPU に対して生成されます。
タイマモード時はこのビットには必ず "0" が設定されます。
このビットは , 16 ビットアップカウントタイマのオーバフローを発生させる
タイミングを指定するために使用します。動作はすべてのモードに影響を与
えます。
タイマオーバフローが("FFFFH" から "0000H" の範囲において)発生する
と , このビットは設定されます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト動作時は , 必ず "1" が読み出されます。
( 注意事項 )
H/L パルス幅カウントモード時は , このビットを使用してパルス幅時間を測
定してはいけません。
このビットは , タイマオーバフロー割込み要求を許可するために使用しま
す。
• このビットが "1" で , かつ OVIR に "1" が設定されたとき , 測定終了割込み要
求が CPU に対して生成されます。
( 注意事項 )
H/L パルス幅カウントモード時は , このビットに "0" を設定してください。
•
450
これらのビットは , 16 ビットアップカウントタイマを起動 , 再起動および停
止するために使用します。
これらのビットを読み出すと , タイマ動作状態がわかります。
これらのビットは , 読み / 書き可能です。これらのビットの意味は , これら
のビットを読み出すか書き込むかに依存します。
リードモディファイライト動作時は , 必ず "11B" が読み出されます。
第 16 章 PWC タイマ
表 16.4-1 PWC 状態制御レジスタ , 上位バイト(PWCSH0, PWCSH1)( 2 / 2 )
ビット名
機 能
•
bit9
ERR:
エラーフラグ
ビット
•
•
•
•
•
•
bit8
POUP:
パルス出力
ビット
•
このビットは , パルス幅カウントモードで連続カウントするために使用しま
す。このフラグは , 前のカウント結果が PWC レジスタから読み出される前
に次のカウント動作が完了していることを示します。この状態が発生すると ,
PWC レジスタは新しいカウント結果で上書きされ , 前のカウント結果は失
われます。カウント動作は , このビット値とは無関係に継続します。
このビットは読出し専用ビットであり , このビットへ値を書き込んでも値は
変化しません。
読み出されていない現カウント結果が次のカウント結果で上書きされると ,
このビットが設定されます。
PWC データバッファレジスタ内の測定結果や PWC0, PWC1 を読み出したと
き , このビットは自動的にクリアされます。
タイマモード時 16 ビットアップカウントタイマオーバフローが発生すると ,
このビットは反転します。
パルス幅カウントモード時は , このビットは意味を持ちません。
このビットは , 読み / 書き可能です。ただし , このビットへの書込みは , タイ
マが停止した場合に限り可能です。タイマ動作中(STRT:bit15 と STOP:bit14
の両方に "1" が設定されます)にこのビットに値を書き込んでも , このビッ
ト値は変化しません。
このビット値が "0" であり , かつタイマオーバフローが "FFFFH" から
"0000H" の範囲において発生した場合またはタイマが停止しこのビットに
•
"1" が書き込まれた場合 , このビットは設定されます。
このビット値が "0" であり , かつタイマオーバフローが "FFFFH" から
"0000H" の範囲において発生した場合またはタイマが停止しこのビットに
"0" が書き込まれた場合 , このビットはクリアされます。このビットは , リ
セットでもクリアされます。
451
第 16 章 PWC タイマ
■ PWC 状態制御レジスタ , 下位バイト(PWCSL0, PWCSL1)
図 16.4-3 PWC 状態制御レジスタ , 下位バイト(PWCSL0, PWCSL1)
bit
7
6
CKS1
R/W
5
4
3
2
1
0
CKS0
S/C
MOD2
MOD1
MOD0
R/W
R/W
R/W
R/W
R/W
MOD1
MOD0
動作モード選択&カウントエッジ選択
0
0
0
タイマモード,パレス出力なし
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
MOD2
S/C
452
タイマモード,パレス出力あり
(PWOタイマ端子が有効):リロードモードのみ
全エッジ間パレス幅測定モード
(立上りエッジから立下りエッジまでの幅または
立下りエッジから立上りエッジまでの幅)*
分周周期測定モード
(入力分周器が使用された場合)*
立上りエッジ間周期測定モード
(立上りエッジから次の立上りエッジまでの周期)*
Hパレス幅測定モード
(立上りエッジから立下りエッジまでの幅)*
Lパレス幅測定モード
(立下りエッジから立上りエッジまでの幅)*
立下りエッジ間周期測定モード
(立下りエッジから次の立上りエッジまでの周期)*
カウントモード選択
0
単一測定モード
1
連続測定モード
CKS1
X :不定
R/W :リード/ライト
:初期値
- :未使用
初期値
00000000B
タイマモード
リロードなし
(ワンショット)
リロードあり
(リロードタイマ)
バッファレジスタが有効
パレス幅カウントモード
単一測定後に停止
連続測定:バッファ
レジスタが有効
CKS0
カウントクロック選択
0
0
4分周されたマシンクロック
(16MHzマシンクロックの場合,0.25μs)
0
1
1
0
1
1
16分周されたマシンクロック
(16MHzマシンクロックの場合,1.0μs)
32分周されたマシンクロック
(16MHzマシンクロックの場合,2.0μs)
設定禁止(出力は不定)
第 16 章 PWC タイマ
表 16.4-2 PWC 状態制御レジスタ , 下位バイト(PWCSL0, PWCSL1)
ビット名
bit7,
bit6
CLK1, CLK0:
クロック選択
ビット
bit5,
bit4
未使用ビット
bit3
S/C:
単一 / 連続
ビット
機 能
•
•
トは , 読み / 書き可能です。ただし , "11B" は設定できません。
( 注意事項 )
タイマ起動後にこの設定を変更することは禁止されています。これらのビッ
トへの書込みは , タイマ起動前またはタイマ停止後に行ってください。
•
このビットは , カウントモードを選択するために使用します。
リセットにより , このビットは "0" に初期化されます。このビットは , 読み /
書き可能です。
( 注意事項 )
タイマ起動後にこの設定を変更することは禁止されています。このビットへ
の書込みは , タイマ起動前またはタイマ停止後に行ってください。
•
MOD2, MOD1,
MOD0:
動作モード
ビット
これらのビットは , 未使用ビットです。必ず "00B" を書き込んでください。
•
•
•
bit2
∼
bit0
CKS1, 0 ビットは , 内部カウントクロックを選択するために使用します。
リセットにより , これらのビットは "00B" に初期化されます。これらのビッ
これらのビットに値を設定すると , 動作モードの選択およびパルス幅カウン
トに適したパルスエッジの選択が可能になります。
リセットにより , これらのビットは "000B" に初期化されます。これらのビッ
トは , 読み / 書き可能です。
( 注意事項 )
タイマ起動後にこの設定を変更することは禁止されています。これらのビッ
トへの書込みは , タイマ起動前またはタイマ停止後に行ってください。
• 連続測定モードを * マーク(前ページ)が付いた設定に対して設定すると ,
エッジ総数が算出され , 内部カウントクロックの分周器はカウント終了時に
クリアされません。ほかのすべてのモード時は , 内部カウントクロックの分
周器はカウント終了時にクリアされます。
453
第 16 章 PWC タイマ
PWC データバッファレジスタ
(PWCH0, PWCH1, PWCL0, PWCL1)
16.4.2
PWC データバッファレジスタ(PWCH0, PWCH1, PWCL0, PWCL1)は , PWC タ
イマの動作モードに依存する機能を備えています。
■ PWC データバッファレジスタ(PWCH0, PWCH1, PWCL0, PWCL1)
図 16.4-4 PWC データバッファレジスタ(PWCH0, PWCH1, PWCL0, PWCL1)
PWCデータバッファレジスタ(上位)
bit
リード/ライト
15
14
13
12
11
PW15
PW14
PW13
PW12
PW11
R/W
R/W
R/W
R/W
X
X
X
X
初期値
10
9
8
PW10
PW09
PW08
R/W
R/W
R/W
R/W
X
X
X
X
PWCH0,PWCH1
PWCデータバッファレジスタ(下位)
bit
リード/ライト
初期値
7
6
5
4
3
2
1
0
PW07
PW06
PW05
PW04
PW03
PW02
PW01
PW00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
X
X
PWCL0,PWCL1
● タイマモード
リロードタイマ動作モード(PWCSL0, PWCSL1 レジスタの S/C:bit3=1)時は , このレ
ジスタはリロード値を格納します。このレジスタは , 読み / 書き可能です。
単一タイマ動作モード(PWCSL0, PWCSL1 レジスタの S/C:bit3=0)時は , このレジス
タへ直接アクセスすると , アップカウントタイマがアクセスされます。このモード時は ,
このレジスタは読み / 書き可能です。ただし , このレジスタへの書込みは , タイマが停
止した場合にのみ行われます。このレジスタの読出しは常に可能であり , 読出し値は現
タイマ値です。
● パルス幅測定モード(読出し専用)
連続測定モード(PWCSL0, PWCSL1 レジスタの S/C:bit3=1)時は , このレジスタはバッ
ファレジスタとして機能し , 前のカウント結果を格納します。このレジスタは読出し専
用レジスタであり , 値を書き込んでもレジスタ値は変化しません。
単一測定モード(PWCSL0, PWCSL1 レジスタの S/C:bit3=0)時は , このレジスタへ直
接アクセスすると , アップカウントタイマがアクセスされます。このモード時も , この
レジスタは読出し専用レジスタであり , 値を書き込んでもレジスタ値は変化しません。
このレジスタの読出しは常に可能で , 読出し値は現タイマ値です。カウントが実行され
ると , レジスタはカウント結果を格納します。
< 注意事項 >
454
このレジスタへアクセスする場合は , 必ずワード転送命令をご使用ください。リ
セットで , このレジスタは "0000H" に初期化されます。
第 16 章 PWC タイマ
分周比制御レジスタ(DIV0, DIV1)
16.4.3
分周比制御レジスタ(DIV0, DIV1)は , 分周周期測定モード(PWCSL0, PWCSL1
レジスタの MOD2 ∼ MOD0:bit2 ∼ bit0=011B)時に使用します。このレジスタは ,
ほかのモード時は意味を持ちません。
■ 分周比制御レジスタ(DIV0, DIV1)
図 16.4-5 分周比制御レジスタ(DIV0, DIV1)
7
bit
6
5
4
3
X :不定
R/W :リード/ライト
:初期値
- :未使用
2
1
0
DIV1
DIV0
R/W
R/W
初期値
------00B
DIV1
DIV0
分周比の選択
0
0
2
2 =4分周
0
1
24=16分周
1
0
26=64分周
1
1
8
2 =256分周
表 16.4-3 分周比制御レジスタ(DIV0, DIV1)
ビット名
bit7,
∼
bit2
bit1,
bit0
未使用ビット
DIV1, DIV0:
分周比選択
ビット
機 能
•
•
読出し値は不定です。
これらのビットへ値を書き込んでも動作は影響を受けません。
•
分周範囲管理モード時は , このレジスタは測定端子からのパルス入力を分周
するためおよび分周後の 1 周期幅を測定するために使用します。
リセットされると , これらのビットは "00B" に初期化されます。これらの
•
ビットは , 読み / 書き可能です。
( 注意事項 )
タイマ起動後にこの設定は変更できません。これらのビットへの書込みは ,
タイマ起動前またはタイマ停止後に行ってください。
455
第 16 章 PWC タイマ
16.5
PWC タイマの割込み
PWC タイマは , カウンタオーバフローが発生した場合またはパルス幅測定モード時
に測定が終了した場合 , 割込み要求を生成できます。PWC タイマはまた , 拡張イン
テリジェント I/O サービス(EI2OS)とも連係しています。
■ PWC タイマの割込み
PWC タイマの割込み制御ビットと割込み要因を表 16.5-1 に示します。
表 16.5-1 PWC タイマの割込み制御ビットと割込み要因
PWC タイマ 0
PWC タイマ 1
割込み要求フラグ
ビット
PWCSH0:OVIR
(bit11)
PWCSH0:EDIR
(bit13)
PWCSH1:OVIR
(bit11)
PWCSH1:EDIR
(bit13)
割込み要求許可
ビット
PWCSH0:OVIE
(bit10)
PWCSH0:EDIE
(bit12)
PWCSH1:OVIE
(bit10)
PWCSH1:EDIE
(bit12)
割込み要因
16 ビットアップカ
ウンタのオーバフ
ロー
パルス幅測定モー
ド時の測定終了
16 ビットアップカ
ウンタのオーバフ
ロー
パルス幅測定モー
ド時の測定終了
PWC タイマでは PWC 状態制御レジスタ上位(PWCSH)の OVIR:bit11 は , アップカウ
ンタでオーバフローが("FFFFH" から "0000H" の範囲において)発生すると , "1" が設
定されます。この状態において割込み要求が許可(PWCSH レジスタの OVIE:bit10=1)
になると , 割込み要求が割込みコントローラへ出力されます。
PWC 状態制御レジスタ(PWCSH)の EDIR:bit13 は , パルス幅測定モード時の測定が
終了すると "1" がセットされます。この状態において割込み要求が許可(PWCSH レジ
スタの EDIE:bit12=1)になると , 割込み要求が割込みコントローラへ出力されます。
■ PWC タイマ割込みと EI2OS
PWC タイマ割込みと EI2OS を表 16.5-2 に示します。
表 16.5-2 PWC タイマ割込みと EI2OS
チャネル
割込み
番号
割込み制御レジスタ
ベクトルテーブルアドレス
EI2OS
レジスタ名
アドレス
下位
中位
上位
PWC タイマ 0*1
#13(0DH)
ICR01
0000B1H
FFFFC8H
FFFFC9H
FFFFCAH
PWC タイマ 1*2
#24(18H)
ICR06
0000B6H
FFFF9CH
FFFF9DH
FFFF9EH
○
*1:16 ビット PPG タイマ 0 の割込み番号と同じ番号が PWC タイマ 0 に割当てられます。
*2: アウトプットコンペア ch.5 一致の割込み番号と同じ番号が PWC タイマ 1 に割当てられます。
456
第 16 章 PWC タイマ
■ PWC タイマの EI2OS 機能
PWC タイマは EI2OS と連係する回路を持っているので , カウンタは , オーバフローま
たは測定終了が発生すると EI2OS を起動できます。
ただし , EI2OS は , 割込み制御レジスタ(ICR)を共用するほかのリソースが割込みを
使用しない場合に限り使用可能です。たとえば , PWC タイマ "0" が EI2OS を使用して
いる場合 , 16 ビット PPG タイマ "0" の割込みは禁止にしなければなりません。
457
第 16 章 PWC タイマ
PWC タイマの動作
16.6
PWC タイマは , 16 ビットアップカウントタイマを中核とした多機能タイマであり ,
カウント入力端子と 8 ビット入力分周器を備えています。PWC タイマは 2 つの主要
機能(タイマ機能とパルス幅測定機能)を備えており , これらの機能はそれぞれ 2
種類のカウントクロックを選択できます。
■ タイマ機能
タイマ機能は , 単一モードまたはリロードモード時の動作選択を有効にするアップカ
ウントタイマです。
タイマが起動すると , 各カウントクロックでタイマはカウントします。
"FFFFH" から "0000H" の範囲においてオーバフローが発生すると , 割込み要求が送出さ
れます。
オーバフローが発生すると , 以下のイベントが発生します。
● 単一モード
カウントは停止します(図 16.6-1 を参照)
。
図 16.6-1 タイマの動作(単一モード)
タイマカウント値
オーバフロー
オーバフロー
FFFFH
(再起動は無効)
PWCへの
書込み
0000H
タイマ起動
OVIRフラグ設定,タイマ停止
458
タイマ起動
OVIRフラグ設定,タイマ停止
時間
第 16 章 PWC タイマ
● リロードモード
リロードレジスタの値がタイマにリロードされ , カウントが再起動します(図 16.6-2 を
参照)。
図 16.6-2 タイマの動作(リロードモード)
オーバフロー
オーバフロー
オーバフロー
オーバフロー
オーバフロー
タイマカウント値
FFFFH
(再起動は無効)
PWC書込み値
リロード
リロード
リロード
リロード
0000H
PWCへの書込み
リロード
再起動
リロード
リロード
タイマ停止
タイマ起動
OVIRフラグ設定
時間
POUTビット
タイマが"L"レベルで起動された場合,タイマが再起動されてもレベルは切り換えられません
(オーバフロー発生時を除く)。
459
第 16 章 PWC タイマ
■ パルス幅測定機能
パルス幅測定機能は , 入力パルスに関係する " 指定されたイベント間 " の時間を算出し
ます。
この機能がアクティブになると , 指定されたカウント開始エッジが入力された後にカ
ウントが開始します。カウンタが "0000H" にクリアされると , カウントは開始エッジ検
出時に開始され , 次に停止エッジが検出されます。この期間中のカウント値は , パルス
幅としてレジスタに保持されます。
割込み要求は , 測定終了時またはオーバフロー発生時に生成できます。測定が完了する
と , 以下のイベントが発生します。
● 単一測定モード
動作が停止します(図 16.6-3 を参照)。
図 16.6-3 パルス幅測定動作(単一測定モード , H 幅測定モード)
(実線はタイマカウント値を示す)
PWC入力測定パレス
タイマカウント値
FFFFH
タイマ
クリア
0000H
測定開始
タイマ
停止
タイマ
起動
EDIRフラグ設定(測定終了)
時間
● 連続測定モード
タイマ値がバッファレジスタへ転送され , 次のエッジが入力されるまでタイマはフ
リーラン状態になります(図 16.6-4 を参照)。
図 16.6-4 パルス幅測定動作(連続測定モード , H 幅測定モード)
(実線はタイマカウント値を示す)
PWC入力測定パレス
タイマカウント値
タイマ
クリア
タイマ
クリア
0000H
測定開始
PWCへのデータ
転送
PWCへのデータ
転送
FFFFH
タイマ
起動
OVIRフラグ タイマ
設定
起動
EDIRフラグ設定
OVIRフラグ
設定
EDIRフラグ設定
(測定終了)
時間
*
*:この期間中のタイマ値は保証されません(タイマオーバフローが発生すると,
OVIRが設定されることがあります)。
460
第 16 章 PWC タイマ
動作モードの選択
16.6.1
動作モードとカウントモードは , PWCSL0, PWCSL1 レジスタの設定に従って選択
されます。
■ 動作モードの選択
以下のレジスタは , 動作モードとカウントモードの選択を設定するために使用されま
す。
● 動作モードの設定 :PWCSL0, PWCSL1 レジスタの MOD2 ∼ MOD0:bit2 ∼ bit0
カウント動作の制御を指定するには , タイマモードまたはパルス幅測定モードを選択
してください。
● カウントモードの設定 :PWCSL0, PWCSL1 レジスタの S/C:bit3
単一測定 , 連続測定 , リロード動作またはワンショット動作を選択してください。
動作モードビットで選択された動作モードを表 16.6-1 に示します。
表 16.6-1 動作モードの選択
S/C
MOD2
MOD1
MOD0
ワンショットタイマ
0
0
0
0
リロードタイマ
1
0
0
0/1
設定禁止
0
0
0
1
単一測定 : バッファは無効
0
0
1
0
連続測定 : バッファは有効
1
0
1
0
分周カウント :4 分周から 256
分周まで
単一測定 : バッファは無効
0
0
1
1
連続測定 : バッファは有効
1
0
1
1
立上りエッジから次の立上り
エッジまで : 立上りエッジか
ら次の立上りエッジまでの周
期測定
単一測定 : バッファは無効
0
1
0
0
連続測定 : バッファは有効
1
1
0
0
立上りエッジから立下りエッ
ジまで :H パルス幅測定
単一測定 : バッファは無効
0
1
0
1
連続測定 : バッファは有効
1
1
0
1
立下りエッジから立上りエッ
ジまで :L パルス幅測定
単一測定 : バッファは無効
0
1
1
0
単一測定 : バッファは無効
1
1
1
0
単一測定 : バッファは無効
0
1
1
1
連続測定 : バッファは有効
1
1
1
1
動作モード
タイマ
立上りエッジから立下りエッ
ジまでまたは立下りエッジか
ら立上りエッジまで : 全エッ
ジ間測定
パルス幅
測定
立下りエッジから次の立下り
エッジまで : 立下りエッジか
ら次の立下りエッジまでの周
期測定
リセットされると , ワンショットタイマが初期値として選択されます。
< 注意事項 >
タイマを起動する場合は , 必ず前もって動作モードを選択してください。
461
第 16 章 PWC タイマ
16.6.2
タイマとパルス幅測定の起動 / 停止と , タイマクリア
タイマとパルス幅測定を強制的に起動 , 再起動または停止するには , PWCSH0,
PWCSH1 レジスタ STRT:bit15 と STOP:bit14 を使用してください。
16 ビットアップカウントタイマは , リセット時 , 測定開始エッジ検出時またはパル
ス幅測定モード時のカウント開始時に "0000H" にクリアされます。
■ タイマとパルス幅測定の起動 / 停止
STRT:bit15 に "0" を書き込むと , 動作が起動または再起動され , STOP:bit14 に "0" を書
き込むと , 動作が停止します。ただし , これら 2 つのビットに書き込まれる値が同じで
ある限り , これらのビットは動作を実行しません。ビット操作命令以外の命令(バイト
命令またはワード命令)を使用した場合は , 値の書込みは以下のビット組合せに対して
のみ行われます。
表 16.6-2 パルス幅測定動作(単一測定モード , H 幅測定モード)
STRT
STOP
タイマまたはパルス幅測定を起動 / 再起動する
0
1
タイマまたはパルス幅測定を停止する
1
0
機 能
ビット操作命令のクリアビット命令を使用する場合 , ハードウェアは自動的に上記の
値の組合せを書き込みます。ユーザは , どの値を書き込むべきかについて意識する必要
はありません。
● 起動後の動作
タイマモード
: カウント動作を直ちに開始します。
パルス幅測定モード : 測定は , 測定開始エッジが入力された後に開始します。測定開始
エッジが検出されると , 16 ビットアップカウントタイマは
"0000H" にクリアされ , カウントを開始します。
● タイマの再起動
タイマモードまたはパルス幅測定モード時にタイマを起動し , その後にタイマ動作が
継続されている間にタイマを再起動する(PWCSH0, PWCSH1 レジスタの STRT:bit15
に "0" を書き込む)ことを , " タイマ再起動 " とよびます。再起動中に実行される動作
は , 以下に示すモードによって異なります。
ワンショットモード
: 動作は影響を受けません。
リロードタイマモード : リロードが実行され , 動作は継続します。オーバフロー発生時
にタイマが再起動されると , オーバフローフラグ(PWCSH0,
PWCSH1 レ ジ ス タ の OVIR:bit11)が 設 定 さ れ , PWCSH0,
PWCSH1 レジスタの POUT:bit8 が反転されます。
462
第 16 章 PWC タイマ
パルス幅測定モード
: 測定開始エッジ待ち状態時は , 動作は影響を受けません。測定
中 , カウントは停止され , タイマ状態は " 測定開始エッジ待ち "
状態へ戻ります。測定終了時にタイマが再起動されると , 測
定終了フラグ(PWCSH0, PWCSH1 レジスタの EDIR:bit13)が
設定され , 連続測定モード時に測定結果はが PWC へ転送され
ます。
● タイマの停止
ワンショットタイマモードまたは単一測定モード時は , 測定はタイマオーバフロー発
生時またはカウント終了時に自動的に停止します。ユーザは , タイマが停止したか否か
を意識する必要はありません。ただし , ほかのモード時は , タイマは停止しなければな
りません。これは , タイマが自動的に停止する前にタイマを停止する場合も含みます。
● 動作状態の検査
すでに述べた STRT ビットと STOP ビットは , 読出し中 , タイマの動作状態を示すビッ
トとして機能します。動作状態指示ビットの機能をに示します。
表 16.6-3 動作状態指示ビットの機能
STRT
STOP
動作状態
0
0
タイマは停止している(測定開始エッジ待ち状態を除く)。
これらのビットは , タイマが起動されていないか , あるいは測定が
終了していることを示します。
1
1
測定開始エッジ待ち状態またはタイマカウント動作
読出し中 , STRT ビットと STOP ビットは両方とも同じ値となります。ただし , リード
モディファイライト命令を使用しての読出し中は , これらのビットの値は常に "11B" で
す。リードモディファイライト命令を使用して , これらのビットの値を読出してはいけ
ません。
■ タイマクリア
以下の場合 , 16 ビットアップカウントタイマは "0000H" にクリアされます。
• リセット時
• パルス幅測定モード時にカウント開始エッジが検出された後でカウントが開始し
たとき
463
第 16 章 PWC タイマ
16.6.3
タイマモード時の動作
タイマモードには , ワンショット動作モードとリロード動作モードがあります。
■ ワンショット動作モード
このモード時にタイマが起動すると , カウンタはカウントクロックごとにインクリメ
ントされます。タイマは , オーバフローが "FFFFH" から "0000H" の範囲において発生す
ると , 自動的に停止します。
タイマが起動される前にPWCが設定されると, カウントはこの設定値から開始します。
オーバフローが発生すると , 設定値が削除され , 現カウント値が PWC に残ります。
オーバフローが発生すると , PWCSH0, PWCSH1 レジスタの POUT:bit8)は反転します。
■ リロード動作モード
このモード時にタイマが起動すると , PWC のリロード値がタイマへ設定され , カウン
タがカウントクロックごとにインクリメントされます。タイマが "FFFFH" から "0000H"
までをカウントしている間にオーバフローが発生すると , PWC のリロード値がタイマ
へ再び設定され , PWCSH0, PWCSH1 レジスタの POUT:bit8 が反転し , カウント動作が
反復します。タイマは , PWCSH0, PWCSH1 レジスタの STOP:bit14(タイマを停止する)
に値が書き込まれるかリセットが発生するまで停止しません。ポートビットは , パルス
出力モードが指定されると , PWO 端子に出力されます。
タイマが起動される前にPWCに設定されたリロード値は, カウント時に格納されます。
タイマが起動または再起動し , オーバフローが発生すると , タイマにリロード値が必ず
設定されます。カウント時に設定された値が変更されると , 新しいリロード値は , 次の
オーバフローが発生したときかまたはタイマが再起動されたときに有効になります。
■ タイマ値とリロード値
ワンショット動作モード時は , PWC レジスタへ直接アクセスすると , アップカウント
タイマがアクセスされます。PWC に値が書き込まれると , この値はタイマへ直接書き
込まれます。カウント動作時に PWC が読み出されると , 現タイマ値が読み出されます。
タイマが起動される前に値が PWC に設定されると , タイマは指定された値からカウン
トを開始します。
リロード動作モード時は , アップカウントタイマへアクセスすることはできず , PWC
はリロードレジスタ(リロード値を格納する)として機能します。タイマが起動また
は再起動し , オーバフローが発生すると , PWC に書き込まれた値は必ずタイマへ設定
されます。PWC が読み出されると , 格納されたリロード値が読み出されます。
PWC 値とタイマ値は , リロードモード時に停止された後でタイマがワンショットモー
ドで設定されると , 不定となります。したがって , 値は必ずタイマを使用する前に設定
してください。
PWC 値は , ワンショット動作モード時に強制停止された後でタイマがリロードモード
で設定されると , 不定となります。したがって , 値は必ずタイマを使用する前に設定し
てください。
464
第 16 章 PWC タイマ
■ 割込み要求の生成
タイマモード時の動作時に , オーバフローが発生すると , 割込み要求が生成されます。
タイマカウントのインクリメントによりオーバフローが発生すると , オーバフローフ
ラグが設定され , オーバフロー割込み要求がイネーブルになり , 割込み要求が生成され
ます。
■ タイマ周期
PWC に "0000H" が設定された後にタイマがワンショットモードで起動された場合 , カ
ウントが "65536" を超えると , タイマオーバフローが発生し , カウントは停止します。
以下の公式では , タイマが起動されてから停止されるまでの時間を計算します。
T1=(65536-n1)×t
{
T1・・・・・・タイマが起動されてから停止されるまでの時間(µs)
n1・・・・・・タイマ起動時にPWCに設定されたタイマ値
t・・・・・・・カウントクロック周期(µs)
PWC に "0000H" が設定された後にタイマが起動されると , カウントが "65536" を超え
るたびにタイマオーバフローが発生します。以下の公式では , リロード周期と PWO 端
子出力パルス周期を計算します。
TR=(65536-NR)×t
{
TR・・・・・・リロード周期(オーバフロー周期)(µs)
TPOUT・・・・PWO端子出力パルス周期(µs)
NR・・・・・・PWCに格納されたリロード値(µs)
t・・・・・・・タイマが起動されてから停止されるまでの時間(µs)
■ カウントクロック周期と最大周期
タイマモード時は , PWC に "0000H" が設定されると , 最大周期を発生します。
内部動作周波数 16 MHz(表中では φ で示されています)に対応するカウントクロック
周期とタイマ最大周期を表 16.6-4 に示します。
表 16.6-4 カウントクロック周期と最大周期
カウントクロック選択
カウントクロック周期
タイマ最大周期
CKS1, CKS0:bit7,
bit6=00B の場合(φ /4)
CKS1, CKS0:bit7,
bit 6=00B の場合(φ /16)
CKS1, CKS0:bit7,
bit6=00B の場合(φ /32)
0.25µs
1µs
2µs
16.38ms
65.5ms
131.1ms
465
第 16 章 PWC タイマ
■ タイマモード動作のフローチャート
図 16.6-5 タイマモード動作のフローチャート
設定
カウントクロックを選択する
動作モードとタイマモードを選択する
割込みフラグをクリアする
割込みを許可する
パルス出力初期値を設定する
PWCに値を設定する
再起動する
STRTビットで起動する
リロード動作モード
単一動作モード
タイマにPWC値をリロードする
カウントを
開始する
カウントを
開始する
加 算
加 算
オーバフローが発生する
オーバフローが発生する
OVIRフラグを設定する
OVIRフラグを設定する
POUTビット値を反転させる
POUTビット値を反転させる
カウントを停止する
動作を停止する
466
第 16 章 PWC タイマ
16.6.4
パルス幅測定モード時の動作
パルス幅を測定するための信号が PWI 端子から入力されます。
パルス幅測定モードには , 1 回のみカウントする単一測定モードと , パルス幅が連続
的に測定される連続測定モードがあります。
■ 単一測定モードと連続測定モード
単一測定モードと連続測定モードの違いを以下に示します。
● 単一測定モード
先頭のカウント終了エッジが入力されると , タイマはカウントを停止し , PWCSH0, 1 レ
ジスタの測定終了割込み要求フラグビット(EDIR:bit13)が設定され , 以降は測定しま
せん。ただし , タイマの再起動も指定されると , タイマ状態は測定開始エッジ待ち状態
に変化します。
● 連続測定モード
[H/L パルス幅測定モード ]
カウント終了エッジが入力されると , PWCSH0, 1 レジスタの測定終了割込み要求フラ
グビット(EDIR:bit13)が設定され , タイマカウント結果が PWC に転送され , タイマ
はフリーラン状態でカウントのインクリメントを継続できます。次のカウント開始
エッジが入力されると , タイマは "0000H" にクリアされ , パルス幅カウントを開始しま
す。
カウント終了エッジが入力され , タイマがフリーラン状態になると , タイマオーバフ
ローが発生してオーバフロー割込み要求ビット(OVIR:bit11)が設定されることがあ
ります。H/L パルス幅測定モード時は , OVIR:bit11 を使用してパルス幅時間を測定して
はいけません。
[ 全エッジ間パルス幅測定モード , 分周周期測定モード , 立上りエッジ間周期測定モー
ド , 立下りエッジ間周期測定モード ]
カウント終了エッジ(カウント開始エッジ)が入力されると , PWCSH0, PWCSH1 レジ
スタの測定終了割込み要求フラグビット(EDIR:bit13)が設定され , タイマカウント結
果が PWC へ転送され , タイマは "0000H" にクリアされ , カウントは再び開始します。
■ 測定結果データ
測定結果 , タイマ値 , PWC 機能に対する処理は , 単一測定モードと連続測定モード時で
は以下のように異なります。
● 単一測定モード
タイマ動作時に PWC が読み出されると , 現タイマ値が読み出されます。
測定終了後に PWC が読み出されると , 測定結果が読み出されます。
467
第 16 章 PWC タイマ
● 連続測定モード
測定終了時にタイマ測定結果が PWC へ転送されます。
PWC 読出し時には , 前の測定結果が読み出されます。測定が進行中の場合は , 前の測
定結果が PWC に格納されます。測定時には , タイマ値を読み出すことはできません。
連続測定モード時は , 既存の値は新しい測定結果で上書きされます。ただし , 次の測定
が完了する前に前の測定結果を読み出さない場合は除きます。この場合は , PWCSH0,
PWCSH1 レジスタのエラーフラグビット(ERR:bit9)が設定されます。PWC が読み出
されると , エラーフラグビット(ERR:bit9)は自動的にクリアされます。
■ 最小入力パルス幅
以下の最小入力パルス幅よりも長いパルスをパルス幅カウント入力端子(PWI)へ入
力しなければなりません。
パルス幅 :2 マシンサイクル(内部動作周波数 16MHz の場合は 0.125μs 以上)
ただし , 上記の仕様よりも短い入力パルスも有効パルスとして認識できます。
■ パルス幅 / 周期の算出
測定オブジェクトのパルス幅またはパルス周期は , 以下のように , カウント終了時に
PWC から読み出されたカウント結果に基づいて算出されます。
TW=n×t/Div(μs)
{
TW・・・・・・測定されたパルス幅またはパルス周期(μs)
n・・・・・・・PWCに格納されている測定結果
t・・・・・・・カウントクロック周期(μs)
Div・・・・・分周比レジスタ(DIV0,1)に設定されている分周比
(値"1"は分周カウントモード以外のモードで使用されます)
■ パルス幅 / 周期測定範囲
測定可能なパルス幅 / 周期の範囲は , 入力分周器のカウントクロックと分周比によって
異なります。
内部動作周波数 16MHz 時の(φ で示されます)測定範囲を表 16.6-5 に示します。
表 16.6-5 パルス幅測定範囲
分周比
分周なし
DIV0,
DIV1
PWCSL0, PWCSL1 レジス
タ CKS1, CKS0=00B
PWCSL0, PWCSL1 レジス
タ CKS1, CKS0=01B
( φ/4)
(φ/16)
-
0.125μs ∼ 16.38ms[0.25μs]
0.125μs ∼ 65.5ms[1.0μs]
0.125μs ∼ 131ms[2μs]
PWCSL0, PWCSL1 レジスタ
CKS1, CKS0=10B(φ/32)
4 分周
00B
0.125μs ∼ 4.10ms[62.5ns]
0.125μs ∼ 16.38ms[0.25μs]
0.125μs ∼ 32.75ms[500ns]
16 分周
01B
0.125μs ∼ 1024μs[15.6ns]
0.125μs ∼ 4.10ms[62.5ns]
0.125μs ∼ 8.19ms[125ns]
64 分周
00B
0.125μs ∼ 256μs[3.91ns]
0.125μs ∼ 1024μs[15.6ns]
0.125μs ∼ 2.048ms[31.25ns]
256 分周
11B
0.125μs ∼ 64μs[0.98ns]
0.125μs ∼ 256μs[3.91ns]
0.125μs ∼ 512μs[7.81ns]
[ ] 内の数字はビット当りの分解能を示します。
468
第 16 章 PWC タイマ
■ 割込み要求の生成
パルス幅測定モード時は , 以下の 2 つの割込み要求を生成できます。
● タイマオーバフロー割込み要求
カウント時にオーバフローが発生すると , オーバフロー割込み要求ビットが設定され
ます。オーバフロー割込み要求が許可になると , 割込み要求が生成されます。
● 測定終了割込み要求
測定終了エッジが検出されると , PWCSH0, PWCSH1 レジスタの測定終了割込み要求フ
ラグビット(EDIR:bit13)が設定されます。測定終了割込みが許可になると , 割込み要
求が生成されます。
測定終了割込み要求フラグビット(EDIR:bit13)は , PWC が読み出されると自動的に
クリアされます。
■ 測定モードと測定動作
測定モード時における動作を表 16.6-6 に示します。
表 16.6-6 測定モード時における動作 ( 1 / 2 )
測定モード
MOD2
MOD1
MOD0
H パルス幅
測定
1
0
1
L パルス幅
測定
測定動作
W
測定開始
W
測定終了
開始
測定終了
H周期幅が測定されます。
測定開始:立上りエッジが検出されたとき
測定終了:立上りエッジが検出されたとき
1
1
0
W
測定開始
t
W
測定終了
開始
測定終了
L周期幅が測定されます。
測定開始:立下りエッジが検出されたとき
測定終了:立下りエッジが検出されたとき
W
測定開始
立上り
エッジ間
周期測定
1
0
0
W
測定終了
開始
W
終了
開始
終了
立上りエッジ間時間が測定されます。
測定開始:立上りエッジが検出されたとき
測定終了:立上りエッジが検出されたとき
469
第 16 章 PWC タイマ
表 16.6-6 測定モード時における動作 ( 2 / 2 )
測定モード
立下り
エッジ間
周期測定
MOD2
MOD1
MOD0
測定動作
W
測定開始
1
1
W
測定終了
開始
1
W
終了
開始
終了
立下りエッジ間時間が測定されます。
測定開始:立下りエッジが検出されたとき
測定終了:立下りエッジが検出されたとき
W
測定開始
全エッジ間
パルス幅
測定
0
1
W
測定終了
開始
0
W
終了
開始
終了
連続入力エッジ間の幅が測定されます。
測定開始:エッジが検出されたとき
測定終了:エッジが検出されたとき
φ
W
測定開始
分周周期
測定
0
1
W
測定終了
開始
1
W
終了
(上記の例では4分周されている)
入力パルスは分周比レジスタ(DIV0,1)に設定されてい
る分周比で分周され,測定周期が求められます。
測定開始:動作が起動された後,立下りエッジが検出
されたとき
測定終了:分周信号の1周期が終了したとき
W: 測定されるパルス幅
すべてのモードにおいて , 測定が開始されてから測定開始エッジが入力されるまでの
間 , タイマはカウントを開始しません。測定開始エッジが入力されると , タイマは
"0000H" にクリアされ , カウントは測定終了エッジが入力されるまでカウントクロック
ごとにインクリメントされます。
測定終了エッジが入力されると , 以下の動作が実行されます。
• PWCSH0, PWCSH1 レジスタの測定終了割込み要求フラグビット(EDIR:bit13)が設
定されます。
• タイマがカウント動作を停止します(タイマが測定終了エッジ入力時と同時に再起
動された場合または H/L パルス幅測定の連続測定モードが使用された場合は除きま
す)。
• 連続測定モード : タイマ値(測定結果)が PWC へ転送されます。
• 単一測定モード : 測定が終了します(タイマが測定終了エッジ入力時と同時に再起
動された場合は除く)
。
470
第 16 章 PWC タイマ
連続測定モードで全エッジ間パルス幅測定 , 周期測定 , 立下りエッジ間周期測定または
立上りエッジ間周期測定が行われる場合 , 終了エッジが次の測定開始エッジになりま
す。
■ パルス幅測定動作のフローチャート
図 16.6-6 パルス幅測定モード動作のフローチャート
設定
カウントクロックを選択する
動作モードとタイマモードを選択する
割込みフラグをクリアする
割込みを許可する
STRTビットで起動する
再起動する
連続測定モード
カウント開始エッジを検出する
単一動作モード
カウント開始エッジを検出する
タイマを
クリアする
タイマを
クリアする
カウントを
開始する
カウントを
開始する
加 算
加 算
オーバフローが
発生する
オーバフローが
発生する
カウント終了エッジを検出する
EDIRフラグを設定する
カウント終了エッジを検出する
EDIRフラグを設定する
カウントを停止する*
カウントを停止する*
PWCへタイマ値を転送する
動作を停止する
*:H/Lパレス幅測定の連続測定モードは除く。
471
第 16 章 PWC タイマ
16.7
PWC タイマ使用上の注意
PWC タイマ使用上の注意を以下に示します。
■ PWC タイマ使用上の注意
● プログラムで設定する際の注意
• 以下の PWCSH0, PWCSH1 と PWCSL0, PWCSL1 レジスタのビット値は , タイマ動作
時に変更することは禁止されています。これらのビット値の変更は , タイマが起動
される前かまたは動作が停止された後でのみ行われます。
• [bit7, bit6] CKS1, CKS0: カウントクロック選択ビット
• [bit3] S/C: 測定モード(単一または連続)選択ビット
• bit2 ∼ bit0] MOD2, MOD1, MOD0: 動作モード & 測定エッジ選択ビット
• タイマ動作時にパルス出力ビット(POUT:bit8)に値が書き込まれても , このビット
の値は変化しませんので注意してください。
• タイマ動作時における DIVR 値の変更は禁止されています。DIV0, DIV1 レジスタ値
の変更は , タイマが起動される前かまたは動作が停止された後で行ってください。
• PWC 状態制御レジスタ下位(PWCSL0, PWCSL1)のカウントクロック選択ビット
(CKS1, CKS0:bit7, bit6)に "11B" を設定することは禁止されています。
• PWC 値とタイマ値は , タイマがワンショットモードで設定されたときまたは動作が
リロードタイマモードで終了した後に決定されます。したがって , これらの値の設
定は必ずタイマを使用した後で行ってください。
• PWC 値は , 動作がワンショットモードで停止された後にタイマがリロードタイマ
モードで設定されると不定となります。したがって , PWC 値は必ずタイマを使用す
る前に設定してください。
• モードをパルス幅測定モードからタイマモードへ変更する場合は , PWC への値は必
ずタイマが起動される前に設定してください。
• パルス幅測定モード時に分周周期測定モードを使用すると , 入力パルスは分周され
ます。カウント結果から算出されたパルス幅は平均値になるので注意してくださ
い。
• パルス幅測定モード時に連続測定が実行されている間 , 内部カウントクロックの分
周回路はクリアされず , カウントクロックよりも小さいエッジ数がカウント結果に
加算されます。
● プログラムで状態を検査する際の注意
• タイマモード時は, PWCSH0, PWCSH1レジスタの測定終了割込み要求フラグビット
(EDIR:bit13)の値は意味がありません。したがって , PWCSH0, PWCSH1 レジスタ
の測定終了割込み許可ビット(EDIE:bit12)には必ず "0" を設定してください。
• PWC 状態制御レジスタ上位(PWCSH0, PWCSH1)の STRT:bit15 と STOP:bit14 の動
作は , 読出し時と書込み時では異なります(「16.4.1 PWC 状態制御レジスタ
(PWCSH0, PWCSH1, PWCSL0, PWCSL1)」を参照)。リードモディファイライト命
令では , これらのビットからは必ず "11B" が読み出されます。したがって , ビット操
472
第 16 章 PWC タイマ
作命令を使用して動作状態を読み出すことはできません。
ただし , ビット操作命令(ビットクリア命令)は , STRT:bit15 または STOP:bit14 に
値を書き込むことによってタイマを起動または停止する際には使用できます。
• パルス幅測定モード時は , 測定開始エッジが検出されると , タイマはクリアされま
す。また , 前のタイマデータは意味がありません。
● パルス幅測定入力端子に入力されるパルスに関する注意
• 最小パルス幅は , マシンサイクルを 2 分周した幅です(内部動作周波数が 16MHz の
場合は 0.125μs 以上)。
• 最大入力周波数は , マシンサイクルを 4 分周した幅です(内部動作周波数が 16MHz
の場合は 4MHz 未満)。
• 上記よりも小さいパルス幅または上記よりも大きい周波数が入力されると , タイマ
動作は保証されません。上記の制約を超える入力信号のノイズは , 低減させなけれ
ばなりません。
● 動作時のタイマ再起動に関する注意
• リロードタイマモード時にオーバフローが発生すると , タイマが再起動しますが ,
オーバフロー割込み要求ビット(OVIR:bit11)が設定され , POUT:bit8 が反転します
(すなわち , 通常のオーバフローの場合と同じ動作です)。
• ワンショットパルス幅測定モード時に終了エッジが検出されると , タイマが再起動
し , 測定開始エッジ待ち状態になりますが , 測定終了割込み要求ビット(EDIR:bit13)
も設定されます。
• 連続パルス幅測定モード時に測定終了エッジが検出されると , タイマが再起動し ,
測定開始エッジ待ち状態になり , 測定終了割込み要求フラグビット(EDIR:bit13)が
設定され , 測定結果が PWC へ転送されます。
• 動作時にタイマを再起動する場合は , 割込み生成およびほかの制御用フラグビット
(OVIR:bit11, EDIR:bit13)の動作に注意してください。
● 割込みについての注意
• PWC 状態制御レジスタ(PWCSH0, PWCSH1)の OVIR:bit11 に "1" を設定し , 次に
割込み要求を許可にすると(PWCSH0, PWCSH1 レジスタの OVIE:bit10=1), 制御は
割込み処理から戻ることができません。OVIR:bit11 は , 必ずクリアしてください。
• PWC 状態制御レジスタ(PWCSH0, PWCSH1)の EDIR:bit13 に "1" を設定し , 次に
割込み要求を許可にすると(PWCSH0, PWCSH1 レジスタの EDIE:bit12=1), 制御は
割込み処理から戻ることができません。OVIR:bit11 は , 必ずクリアしてください。
• PWC タイマは割込みベクトルをほかのリソースと共用するので , 割込みを使用する
場合は , 割込み処理ルーチンで割込み要因を注意深くチェックしなければなりませ
ん。
• また , PWC タイマで EI2OS を使用する場合は , 共用リソース割込みを禁止しなけれ
ばなりません。
473
第 16 章 PWC タイマ
16.8
PWC タイマのプログラム例
PWC タイマのプログラム例を示します。
■ PWC タイマのプログラム例
● 処理
• 30.6Hz の出力 PWO0 は PWC タイマ 0 により生成します。
• PWC はオーバフロー割込みの繰返し生成のためにリロードタイマモード時におい
て使用します。
• EI2OS は使用しません。
• 16MHz はマシンクロック用 , 0.25μs はカウントクロック用です。
● コーディング例
ICR01
EQU
0000B1H
;PWC タイマ用割込み制御レジスタ
PWCS0
EQU
000008H
;PWC 制御状態レジスタ
PWC0
EQU
00000AH
;PWC データバッファレジスタ
OVIR
EQU
PWCS0:11 ; 割込み要求フラグビット
;---------- メインプログラム -----------------------------------------CODE
CSEG
START:
; :
; スタックポインタ(SP)が既に初期化されているものと仮定
AND
CCR,#0BFH
; 割込み禁止
MOV
I:ICR01,#00H
; 割込みレベル 0(最強)
MOVW I:PSC0,#0FF00H ; リロード値を設定
MOVW I:PWCSL0,#4409H ; リロードタイマモードと 0.25μs クロックを設定
; 有効 PWC 出力
; オーバフロー割込みを設定
; 割込みフラグをクリア , PWC タイマ開始
MOV
ILM,#07H
;PS 内の ILM をレベル 7 に設定
OR
CCR,#40H
; 割込み許可
LOOP:
MOV
A,#00H
; 無限ループ
MOV
A,#01H
;
BRA
LOOP
;
;---------- 割込みプログラム -----------------------------------------WARI:
CLRB I:OVIR
; 割込み要求フラグをクリア
; :
;
ユーザ処理
; :
RETI
; 割込みから復帰
CODE
474
ENDS
第 16 章 PWC タイマ
;---------- ベクタ設定 ----------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FFC8H
; 割込み #13(0DH)用ベクタを設定
VECT
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH
START
00H
; リセットベクタを設定
; シングルチップモードを設定
START
475
第 16 章 PWC タイマ
476
第 17 章
UART
UART の機能と動作について説明します。
17.1 UART の概要
17.2 UART のブロックダイヤグラム
17.3 UART の構成
17.4 UART の割込み
17.5 UART のボーレート
17.6 UART の動作説明
17.7 UART 使用上の注意
17.8 UART のプログラム例
477
第 17 章 UART
17.1
UART の概要
UART は , 外部装置と同期通信または非同期通信を行うための汎用のシリアルデータ
通信インタフェースです。
• クロック同期 , クロック非同期の双方向通信機能を備えています。
• マスタ / スレーブ型通信機能(マルチプロセッサモード)を備えています(マス
タ側のみ使用可能)。
• 送信完了 , 受信完了および受信エラー検出で , 割込み要求を発生できます。
• 拡張インテリジェント I/O サービス EI2OS に対応しています。
■ UART の機能
UARTは, 外部装置とシリアルデータを送受信するための汎用シリアルデータ通信イン
タフェースであり , 表 17.1-1 の機能を備えています。
表 17.1-1 UART の機能
機能
データバッファ
全二重ダブルバッファ
•
転送モード
•
クロック同期(スタート / ストップビットなし , パリティビットな
し)
クロック非同期(調歩周期)
•
•
•
専用ボーレートジェネレータを内蔵 , 8 種類の値を選択可
外部クロック入力可
内部タイマ(16 ビットリロードタイマ 0)から供給されるクロック
を利用可
データ長
•
•
7 ビット(非同期ノーマルモードのみ)
8 ビット
信号方式
NRZ(Non Return to Zero)方式
ボーレート
受信エラー検出
割込み要求
•
•
•
フレーミングエラー
オーバランエラー
パリティエラー(動作モード 1(マルチプロセッサモード)時は検
出不可)
•
•
•
受信割込み(受信完了 , 受信エラー検出)
送信割込み(送信完了)
送受信とも拡張インテリジェント I/O サービス(EI2OS)に対応
マスタ / スレーブ型通信機能
1(マスタ)対 n(スレーブ)間の通信が可能(マスタとしてのみ使用
(非同期マルチプロセッサモード時) できます)
< 注意事項 >
478
クロック同期転送時にスタートビット / ストップビットは付加されず , データのみ
を転送します。
第 17 章 UART
表 17.1-2 UART の動作モード
データ長
動作モード
同期方式
パリティなし
0
非同期モード
(ノーマルモード)
1
マルチプロセッサモード
2
クロック同期モード
7 ビットまたは 8 ビット
8 ビット +
ストップビット長
パリティあり
非同期
1 ビットまたは 2 ビット *2
1 ビット *1
−
非同期
8 ビット
−
クロック同
期
なし
− : 設定不可
*1:"+1" は通信制御に使用するアドレス / データ選択ビット(SCR0, SCR1 レジスタの A/D:bit11 )です。
*2: 受信時のストップビットは 1 ビットのみを検出します。
479
第 17 章 UART
17.2
UART のブロックダイヤグラム
UART は , 以下のブロックで構成されています。
■ UART のブロックダイヤグラム
図 17.2-1 UART のブロックダイヤグラム
制御バス
専用ボーレート
ジェネレータ
16ビット
リロードタイマ
受信割込み
要求出力
送信割込み
要求出力
送信クロック
クロック
セレクタ
受信クロック
端子
受信制御回路
SCK0,SCK1
端子
SIN0,SIN1
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
受信用
シフトレジスタ
送信用
シフトレジスタ
受信終了
シリアル入力
データレジスタ0,1
シリアル出力
データレジスタ0,1
受信状態判定回路
端子
SOT0,SOT1
送信開始
EI2OS用受信エラー
発生信号
(CPUへ)
内部データバス
通信プリ
スケーラ
制御レジ
スタ
480
MD
DIV2
DIV1
DIV0
シリアル
モード
レジスタ
0,1
MD1
MD0
CS2
CS1
CS0
RST
SCKE
SOE
シリアル
制御
レジスタ
0,1
PEN
P
SBL
CL
A/D
REC
RXE
TXE
シリアル
ステータス
レジスタ
0,1
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
第 17 章 UART
● ブロックダイヤグラム中の端子などの詳細
UART の実際の端子名および割込み要求番号は以下のとおりです。
• SIN0 端子 :P40/SIN0
• SIN1 端子 :P60/SIN1
• SCK0 端子 :P42/SCK0
• SCK1 端子 :P62/SCK1
• SOT0 端子 :P41/SOT0
• SOT1 端子 :P61/SOT1
• 送信割込み番号 0:#40(28H)
• 受信割込み番号 0:#39(27H)
• 送信割込み番号 1:#38(26H)
• 受信割込み番号 1:#37(25H)
● クロックセレクタ
専用ボーレートジェネレータ , 外部入力クロック , 内部タイマ(16 ビットリロードタイ
マ)から供給されるクロックからの送受信クロックを選択してください。
● 受信制御回路
受信制御回路は , 受信ビットカウンタ , スタートビット検出回路 , 受信パリティカウン
タで構成されます。受信ビットカウンタは受信データをカウントして , 指定されたデー
タ長の 1 フレームのデータ受信を完了すると , 受信割込み要求を出力します。
スタートビット検出回路は , シリアル入力信号からスタートビットを検出し , 受信デー
タをシリアル入力データレジスタへ指定された転送速度に応じて 1 ビットずつシフト
しながらシリアル入力データレジスタ(SIDR0, SIDR1)へ書き込みます。受信パリティ
カウンタは , 受信データのパリティビットを検出します。
● 送信制御回路
送信制御回路は , 送信ビットカウンタ , 送信スタート回路 , 送信パリティカウンタで構
成されます。送信ビットカウンタは送信データをカウントして , 指定されたデータ長の
1 フレームのデータ送信を完了すると , 送信割込み要求を出力します。送信スタート回
路は , シリアル出力データレジスタ(SODR0, SODR1)への書込みにより送信を開始し
ます。送信パリティカウンタは , " パリティあり " の場合にパリティビットを生成しま
す。
● 受信用シフトレジスタ
SIN 端子から入力された受信データを , 1 ビットずつシフトしながら取込み , 受信が終
了すると , シリアル入力データレジスタ(SIDR0, SIDR1)へ受信データを転送します。
● 送信用シフトレジスタ
シリアル出力データレジスタ(SODR0, SODR1)に書き込まれたデータを送信用シフ
トレジスタ自身へ転送し , 1 ビットずつシフトしながら SOT 端子へ出力します。
481
第 17 章 UART
● シリアルモードレジスタ 0, 1(SMR0, SMR1)
このレジスタは , 以下の動作を行います。
• 動作モードの選択
• クロック入力ソース(ボーレート)の選択
• 専用ボーレートジェネレータのセットアップ
• 専用ボーレートジェネレータを使用したときのクロック速度(クロック分周値)の
選択
• シリアルデータおよびクロック端子出力の許可または禁止を設定
• UART の初期化
● シリアル制御レジスタ 0, 1(SCR0, SCR1)
このレジスタは , 以下の動作を行います。
• パリティの有無の設定
• パリティの種類の選択
• ストップビット長の設定
• データ長の設定
• 動作モード 1(非同期マルチプロセッサ)時におけるフレームデータ形式の選択
• エラーフラグのクリア
• 送信の許可または禁止の設定
• 受信の許可または禁止の設定
● シリアルステータスレジスタ 0, 1(SSR0, SSR1)
送受信やエラーの状態を確認し , 送受信割込み要求の許可または禁止を設定します。
● シリアル入力データレジスタ 0, 1(SIDR0,SIDR 1)
受信データを保持します。シリアル入力データは変換されてこのレジスタに格納され
ます。
● シリアル出力データレジスタ 0, 1(SODR0, SODR1)
送信データを設定します。このレジスタに書き込まれたデータは , シリアル変換されて
出力されます。
● 通信プリスケーラ制御レジスタ(CDCR)
ボーレートジェネレータのボーレートを設定するレジスタです。通信プリスケーラの
起動 / 停止 , マシンクロックの分周比を設定します。
482
第 17 章 UART
17.3
UART の構成
UART の端子 , 割込み要因 , レジスタの一覧および詳細を記載します。
■ UART の端子
UART で使用する端子は , 汎用入出力ポートと共用します。
端子の機能と UART で使用する場合の設定を表 17.3-1 に示します。
表 17.3-1 UART の端子
端子名
SOT
SCK
SIN
端子機能
汎用入出力ポート /
シリアルデータ出力
汎用入出力ポート /
シリアルクロック入出力
汎用入出力ポート /
シリアルデータ入力
UART の使用に必要な設定
出力許可に設定
(SMR0, SMR1 レジスタの SOE:bit0=1)
クロック入力時はポート方向レジスタ
(DDR)で入力ポートに設定
クロック出力時は出力許可に設定
(SMR0, SMR1 レジスタの SCKE:bit1=1)
ポート方向レジスタ(DDR)で入力ポー
トに設定
■ UART の端子のブロックダイヤグラム
< 参照 >
端子のブロックダイヤグラムは , 「第 9 章 I/O ポート」をご参照ください。
483
第 17 章 UART
■ UART のレジスタ一覧
図 17.3-1 UART のレジスタと初期値の一覧
15
14
13
12
11
10
9
8
0
0
0
0
0
1
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
シリアルステータスレジスタ0,1(SSR0,SSR1)
0
0
0
0
1
0
0
0
bit
シリアル入力データレジスタ0,1(SIDR0,SIDR1)
/シリアル出力データレジスタ0,1(SODR0,SODR1)
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
bit
シリアル制御レジスタ0,1(SCR0,SCR1)
bit
シリアルモードレジスタ0,1(SMR0,SMR1)
bit
(注意事項) 読出しの場合はSIDR0,SIDR1として機能し,書込みの場合はSODR0,SODR1として機能します。
bit
通信プリスケーラコントロールレジスタ0,1
(CDCR0,CDCR1)
15
14
13
12
11
10
9
8
0
X
X
X
0
0
0
0
X:不定
■ UART での割込み要求の発生
● 受信割込み
• 受信データがシリアル入力データレジスタ(SIDR0, SIDR1)へロードされると , シ
リ ア ル ス テ ー タ ス レ ジ ス タ(SSR0,SSR1)の 受 信 デ ー タ ロ ー ド フ ラ グ ビ ッ ト
(RDRF:bit12)
に "1" が設定されます。
受信割込みが許可されている場合は
(RIE:bit9=1)
,
割込みコントローラへ受信割込み要求を発生します。
• フレーミングエラー , オーバランエラーまたはパリティエラーのいずれかが発生する
と , 発生したエラーに応じてシリアルステータスレジスタ(SSR0, SSR1)のフレーミ
ングエラーフラグビット(FRE:bit13), オーバランエラーフラグビット(ORE:bit14),
パリティエラーフラグビット(PE:bit15)に "1" が設定されます。受信割込みが許可
されている場合は(RIE:bit9=1), 割込みコントローラへ受信割込み要求を発生しま
す。
● 送信割込み
送信データがシリアル出力データレジスタ(SODR0, SODR1)から送信用シフトレジ
スタに転送されると , シリアルステータスレジスタ(SSR0, SSR1)の送信データエン
プティフラグビットビット(TDRE:bit11)に "1" が設定されます。送信割込みが許可さ
れている場合は(TIE:bit8=1), 割込みコントローラへ割込み要求を発生します。
484
第 17 章 UART
シリアル制御レジスタ 0, 1(SCR0, SCR1)
17.3.1
シリアル制御レジスタ 0, 1(SCR0, SCR1)は , パリティビットの設定 , ストップ
ビット長やデータ長の選択 , 動作モード 1(非同期マルチプロセッサモード)時のフ
レームデータ形式の選択 , 受信エラーフラグのクリア , 送受信の許可または禁止を設
定します。
■ シリアル制御レジスタ 0, 1(SCR0, SCR1)
図 17.3-2 シリアル制御レジスタ 0, 1(SCR0, SCR1)
bit
15
11
10
R/W R/W R/W R/W R/W
W
14
13
12
9
8
初期値
00000100B
R/W R/W
bit8
TXE
0
1
bit9
RXE
0
1
送信許可ビット
送信禁止
送信許可
受信許可ビット
受信禁止
受信許可
bit10
受信エラーフラグクリアビット
REC
PE,ORE,FREビットをクリア
0
1
影響なし
bit11
アドレス/データ選択ビット
A/D
データフレーム
0
1
アドレスフレーム
bit12
CL
7ビット
0
1
8ビット
bit13
SBL
1ビット長
0
1
2ビット長
データ長選択ビット
ストップビット長選択ビット
bit14
P
0
1
R/W
W
:リード/ライト
:ライトオンリ
:初期値
パリティ選択ビット
"パリティあり"のとき(PEN=1)のみ有効
偶数パリティ
奇数パリティ
bit15
PEN
パリティなし
0
1
パリティあり
パリティ付加許可ビット
485
第 17 章 UART
表 17.3-2 シリアル制御レジスタ 0, 1(SCR0, SCR1)の機能
ビット名
機能
bit15
PEN:
パリティ付加
許可ビット
パリティビットの付加(送信時)と検出(受信時)を行うかどうかを設定しま
す。
( 注意事項 )
動作モード 1, 2(マルチプロセッサモード , 同期モード)の場合はパリティ
ビットは付加できません。必ず "0" を設定してください。
bit14
P:
パリティ選択
ビット
" パリティビットあり "( PEN=1)を設定した場合 , 奇数パリティか偶数パリ
ティのいずれかを設定してください。
bit13
SBL:
ストップビッ
ト長選択ビッ
ト
動作モード 0, 1(マルチプロセッサモード , 同期モード)の場合のストップビッ
ト(送信データのフレームエンドマーク)のビット長を設定します。
( 注意事項 )
受信時は , 常にストップビットの 1 ビット目だけを検出します。
bit12
CL:
データ長選択
ビット
送受信データのデータ長を設定します。
( 注意事項 )
"7 ビット " を選択できるのは , 動作モード 0(非同期ノーマルモード)の場
合のみです。動作モード 1, 2(非同期マルチプロセッサモード , クロック同
期モード)の場合は , 必ず "8 ビット " を設定してください。
bit11
A/D:
アドレス /
データ選択
ビット
動作モード 1(非同期マルチプロセッサモード)の場合に , 送受信するフレーム
のデータ形式を設定します。
このビットに "0" を設定した場合 :" データフレーム " が設定されます。
このビットに "1" を設定した場合 :" アドレスフレーム " が設定されます。
bit10
REC:
受信エラーフ
ラグクリア
ビット
シリアルステータスレジスタ(SSR0, SSR1)の受信エラーフラグ(bit15 ∼
bit13: PE, ORE, FRE)を "0" にクリアします。
このビットに "0" を設定した場合 :PE, ORE, FRE ビットがクリアされます。
このビットに "1" を設定した場合 : 影響しません。
リードした場合 : 常に "1" が読み出されます。
( 注意事項 )
受信割込みを " 許可 " に設定していれば(RIE:bit9=1), PE, ORE, FRE ビット
のいずれかに "1" が設定されている場合のみ , REC:bit10 に "0" を設定してく
ださい。
bit9
RXE:
受信許可ビッ
ト
UART の受信を許可または禁止します。
このビットに "0" を設定した場合 : 受信は禁止されます。
このビットに "1" を設定した場合 : 受信は許可されます。
( 注意事項 )
受信中に受信を " 禁止 " に設定した場合は , 受信中のデータをシリアル入力
データレジスタに格納した後に受信が停止します。
bit8
TXE:
送信許可ビッ
ト
UART の送信を許可または禁止します。
このビットに "0" を設定した場合 : 送信は禁止されます。
このビットに "1" を設定した場合 : 送信は許可されます。
( 注意事項 )
送信中に送信を禁止に設定した場合は , シリアル出力データレジスタ
(SODR0, SODR1)のデータの送信が完了した後に送信が停止します。
"0" を設定する場合は , シリアル出力データレジスタ(SODR0, SODR1)に
データを書き込んだ後に非同期モードの場合であればボーレートの 1/16 時
間 , 同期モードの場合であればボーレートと同じ時間以上待ってから設定し
てください。
486
第 17 章 UART
シリアルモードレジスタ 0, 1(SMR0, SMR1)
17.3.2
シリアルモードレジスタ 0, 1(SMR0, SMR1)は , 動作モードおよびボーレートク
ロックの選択 , シリアルデータとクロックの端子への出力の許可または禁止を設定
します。
■ シリアルモードレジスタ 0, 1(SMR0, SMR1)
図 17.3-3 シリアルモードレジスタ 0, 1(SMR0, SMR1)
bit
7
6
5
4
3
2
1
0
初期値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
シリアルデータ出力許可ビット(SOT0,1端子)
SOE
汎用入出力ポートとする
0
UARTのシリアルデータの出力とする
1
bit1
シリアルクロック入出力許可ビット(SCK0,1端子)
SCKE
汎用入出力ポートまたはUARTのクロック入力端子とする
0
1
UARTのシリアルクロック出力端子とする
bit2
RST UART初期化ビット
0
影響なし
1
UARTのすべてのレジスタを初期化
bit5
CS2
bit4
CS1
bit3
CS0
"000B"~"101B"
内部タイマ(16ビットリロードタイマ0)
"110B"
によるボーレート
"111B"
R/W
:リード/ライト
:初期値
クロック入力ソース選択ビット
専用ボーレートジェネレータによるボーレート
外部クロックによるボーレート bit7
bit6
MD1
MD0
0
0
0
非同期モード(ノーマルモード)
0
1
1
マルチプロセッサモード
1
0
2
同期モード
1
1
ー
設定禁止
動作モード選択ビット
モードNo.
動作モード
487
第 17 章 UART
表 17.3-3 シリアルモードレジスタ 0, 1(SMR0, SMR1)の機能
ビット名
機能
bit7,
bit6
MD0, MD1:
動作モード選
択ビット
UART の動作モードを設定します。
( 注意事項 )
1)動作モード 1(非同期マルチプロセッサモード)では , マスタスレーブ型
通信の , マスタとしてのみ使用できます。動作モード 1 は 9 ビット目のア
ドレス / データビットを受信できないので , スレーブとしては使用できま
せん。
2)動作モード 1(非同期マルチプロセッサモード)では , パリティチェック
機能は使用できないので , パリティ付加許可ビットには " パリティなし "
(SCR0, SCR1 レジスタの PEN:bit15=0)を設定してください。
bit5
∼
bit3
CS0 ∼ CS2:
クロック入力
ソース選択
ビット
ボーレートのクロック入力ソースを設定します。
• クロック入力ソースは , 外部クロック(SCK0, SCK1 端子), 内部タイマ(16
ビットリロードタイマ), 専用ボーレートジェネレータから選択します。
• ボーレートジェネレータを選択する場合は , ボーレートを設定してくださ
い。
bit2
RST:
UART 初期化
ビット
UART のすべてのレジスタを初期化します。
このビットに "0" を設定した場合 : 動作に影響ありません。
このビットに "1" を設定した場合 :UART のすべてのレジスタを初期化します。
bit1
SCKE:
シリアルク
ロック入出力
許可ビット
シリアルクロックの入出力を切り換えます。
このビットに "0" を設定した場合 :
" 汎用入出力ポート " または " シリアルクロック入力端子 " が設定されま
す。
このビットに "1" を設定した場合 :
" シリアルクロック出力端子 " が設定されます。
( 注意事項 )
1)SCK0, SCK1 端子をシリアルクロック入力として使用する場合は , ポート
方向レジスタ(DDR)で端子を " 入力ポート " に設定してください。ま
た , クロック入力ソース選択ビットによって外部クロックを選択(CS2 ∼
CS0:bit5 ∼ bit3=111B)してください。
2)シリアルクロック出力として使用する場合は , クロック入力ソース選択
ビットを外部クロック以外(CS2 ∼ CS0:bit5 ∼ bit3=111B 以外)に設定
してください。
bit0
488
SOE:
シリアルデー
タ出力許可
ビット
シリアルデータの出力を許可または禁止します。
このビットに "0" を設定した場合 :" 汎用入出力ポート " が設定されます。
このビットに "1" を設定した場合 :" シリアルデータ出力端子 " が設定されま
す。
第 17 章 UART
シリアルステータスレジスタ 0, 1(SSR0, SSR1)
17.3.3
シリアルステータスレジスタ 0, 1(SSR0, SSR1)は , 送受信やエラー状態の確認 ,
割込みの許可または禁止を設定します。
■ シリアルステータスレジスタ 0, 1(SSR0, SSR1)
図 17.3-4 シリアルステータスレジスタ 0, 1(SSR0, SSR1)
bit 15
14
13
12
11
10
R
R
R
R
R
R/W R/W R/W
9
8
初期値
00001000B
bit8
TIE
0
1
bit9
RIE
0
1
送信割込み発生許可ビット
送信割込み発生を禁止
送信割込み発生を許可
受信割込み発生許可ビット
受信割込み発生を禁止
受信割込み発生を許可
bit10
転送方向選択ビット
BDS
0
LSBファースト(最下位ビットから転送)
1
MSBファースト(最上位ビットから転送)
bit11
送信データ書込みフラグビット
TDRE
0
送信データあり(送信データの書込み禁止)
1
送信データなし(送信データの書込み許可)
bit12
受信データロードフラグビット
RDRF
受信データなし
0
受信データあり
1
bit13
フレーミングエラーフラグビット
FRE
フレーミングエラーなし
0
フレーミングエラーあり
1
bit14
オーバランエラーフラグビット
ORE
オーバランエラーなし
0
1
オーバランエラーあり
R/W
R
:リード/ライト
:リードオンリ
bit15
パリティエラーフラグビット
PE
パリティエラーなし
0
1
パリティエラーあり
:初期値
489
第 17 章 UART
表 17.3-4 シリアルステータスレジスタ 0, 1(SSR0, SSR1)の機能 ( 1 / 2 )
ビット名
機能
bit15
PE:
パリティエ
ラーフラグ
ビット
受信データのパリティエラーを検出します。
• パリティエラーが発生すると "1" が設定されます。
• 受信エラーフラグクリアビット(SCR0, SCR1 レジスタの REC:bit10)に "0"
を書き込むとクリアされます。
• 受信割込みが許可されている場合は(RIE:bit9=1), パリティエラーが発生す
ると受信割込み要求を発生します。
• パリティエラーフラグビットが設定された場合は(PE:bit15=1), シリアル入
力データレジスタ 0, 1(SIDR0, SIDR1)のデータは無効です。
bit14
ORE:
オーバランエ
ラーフラグ
ビット
受信時のオーバランエラーを検出します。
• オーバランエラーが発生すると "1" が設定されます。
• 受信エラーフラグクリアビット(SCR0, SCR1 レジスタの REC:bit10)に "0"
を書き込むとクリアされます。
• 受信割込みが許可されている場合は(RIE:bit9=1), オーバランエラーが発生
すると受信割込み要求を発生します。
• オーバランエラーフラグビットがセットされた場合は(ORE:bit14=1), シリ
アル入力データレジスタ 0, 1(SIDR0, SIDR1)のデータは無効です。
bit13
FRE:
フレーミング
エラーフラグ
ビット
受信データのフレーミングエラーを検出します。
• フレーミングエラーが発生すると "1" が設定されます。
• 受信エラーフラグクリアビット(SCR0, SCR1 レジスタの REC:bit10)に "0"
を書き込むとクリアされます。
• 受信割込みの発生が許可されている場合は(bit9: RIE=1), フレーミングエ
ラーが発生すると受信割込み要求を発生します。
• フレーミングエラーフラグビットがセット(FRE:bit13=1)された場合
は , シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)のデータは無効です。
bit12
RDRF:
受信データ
ロードフラグ
ビット
シリアル入力データレジスタ 0, 1 の状態を示します。
• シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)へ受信データがロードさ
れると , "1" が設定されます。
• シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)のデータを読み出すと
"0" にクリアされます。
• 受信割込みを許可した場合は(RIE:bit9=1), 受信データがシリアル入力デー
タレジスタ 1(SIDR1)へロードされると , 受信割込み要求が発生します。
bit11
TDRE:
送信データ書
込みフラグ
ビット
シリアル出力データレジスタ 0, 1 の状態を示します。
• シリアル出力データレジスタ 0, 1(SODR0, SODR1)へ送信データを書き込
むと , "0" にクリアされます。
• 送信用シフトレジスタにデータがロードされ送信が開始されると "1" が設定
されます。
• 送信割込みを許可した場合は(TIE:bit8=1), シリアル出力データレジスタ 0,
1(SODR0, SODR1)に書き込まれたデータが送信用シフトレジスタへロー
ドされる(TDRE:bit11=1)と送信割込み要求を発生します。
bit10
BDS:
転送方向選択
ビット
シリアルデータの転送方向を設定します。
このビットに "0" を設定した場合 :
最下位ビット側から転送します(LSB ファースト)。
このビットに "1" を設定した場合 :
最上位ビット側から転送します(MSB ファースト)。
( 注意事項 )
シリアルデータレジスタへの読出しおよび書込み時にデータの上位側と下位
側を入換えるため , シリアルアウトプットデータレジスタ(SODR0, SODR1)
にデータを書き込んだ後に , 転送方向選択ビット(BDS)を書き換えた場合
は , 書き込まれたデータは無効になります。
490
第 17 章 UART
表 17.3-4 シリアルステータスレジスタ 0, 1(SSR0, SSR1)の機能 ( 2 / 2 )
ビット名
機能
bit9
RIE:
受信割込み発
生許可ビット
受信割込みを許可または禁止します。
このビットに "1" を設定した場合 :
シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)に受信データがロー
ドされるか(RDRF:bit12=1), 受信エラーが発生すると(PE:bit15=1 また
ORE:bit14=1 また FRE:bit13=1), 受信割込み要求が発生します。
bit8
TIE:
送信割込み発
生許可ビット
送信割込みを許可または禁止します。
このビットに "1" を設定した場合 :
シリアル出力データレジスタ 0, 1(SODR0, SODR1)に書き込まれた
データが送信用シフトレジスタへロードされると(TDRE:bit11=1), 送
信割込み要求を発生します。
491
第 17 章 UART
17.3.4
シリアル入力データレジスタ 0, 1(SIDR0, SIDR1),
シリアル出力データレジスタ 0, 1(SODR0, SODR1)
シリアル入力データレジスタとシリアル出力データレジスタは同一アドレスに配置
されています。読み出した場合は , シリアルデータ入力用レジスタとして機能し , 書
き込んだ場合は , シリアルデータ出力用レジスタとして機能します。
■ シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)
図 17.3-5 シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)
bit 7
6
5
4
3
2
1
bit 0
D7
D6
D5
D4
D3
D2
D1
D0
R
R
R
R
R
R
R
R
初期値
XXXXXXXXB
R :リードオンリ
X :不定
シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)は , シリアルデータ受信用のデータ
バッファレジスタです。
• シリアルデータ入力端子(SIN0, SIN1)に送られてきたシリアルデータ信号はシフ
トレジスタで変換されて , シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)へ格
納されます。
• データ長が 7 ビットの場合は , 上位 1 ビット(SIDR0, SIDR1:D7)は無効データとな
ります。
• 受信データが , シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)へ格納されると ,
受信データロードフラグビット(SSR0, SSR1 レジスタの RDRF:bit12)に "1" が設定
されます。受信割込みが許可されている場合は(SSR0, SSR1 レジスタの RIE:bit9=1)
割込みコントローラへ受信割込み要求を発生します。
• シリアル入力データレジスタ 0, 1(SIDR0,SIDR1)は , 受信データロードフラグビッ
ト(SSR0, SSR1 レジスタの RDRF:bit12)が "1" の状態で読み出してください。受信
データロードフラグビット(SSR0, SSR1 レジスタの RDRF:bit12)は , シリアル入力
データレジスタ 0, 1(SIDR0, SIDR1)を読み出すと , 自動的に "0" にクリアされます。
• 受信エラーが発生(SSR0, SSR1 レジスタの PE, ORE, FRE:bit15 ∼ bit13 のいずれか
が "1")した場合 , シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)の受信データ
は無効となります。
492
第 17 章 UART
■ シリアル出力データレジスタ 0, 1(SODR0, SODR1)
図 17.3-6 シリアル出力データレジスタ 0, 1(SODR0, SODR1)
bit 7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
W
W
W
W
W
W
W
W
初期値
XXXXXXXXB
W :ライトオンリ
X :不定
シリアル出力データレジスタ 0, 1(SODR0, SODR1)は , シリアルデータ送信用のデー
タバッファレジスタです。
• 送信動作が許可されている場合に(SCR0, SCR1 レジスタの TXE:bit8=1), 送信する
データをシリアル出力データレジスタ 0, 1(SODR0, SODR1)へ書き込むと , 送信
データが送信用シフトレジスタに転送され , シリアルデータに変換されて , シリア
ルデータ出力端子(SOT0, SOT1 端子)から送出されます。
• データ長が 7 ビットの場合 , 上位 1 ビット(SODR0, SODR1 レジスタの D7:bit7)は
無効データとなります。
• 送信データ書込みフラグ(SSR0, SSR1 レジスタの TDRE:bit11)は , 送信データがシ
リアル出力データレジスタ 0, 1(SODR0, SODR1)へ書き込まれると , "0" にクリア
されます。
• 送信用シフトレジスタへの転送が終了すると , "1" が設定されます。
• 送信データ書込みフラグ(SSR0, SSR1 レジスタの TDRE:bit11)が "1" の場合は , 次
の送信用データを書き込むことができます。送信割込みが許可(SSR0, SSR1 レジス
タの TIE:bit8=1)されている場合は , 割込みコントローラへ送信割込み要求を発生し
ます。次の送信データの書込みは , 送信データ書込みフラグ(SCR0, SCR1 レジスタ
の TDRE:bit11)が "1" の状態で行ってください。
< 注意事項 >
シリアル出力データレジスタは書込み専用のレジスタであり , シリアル入力データ
レジスタは読出し専用のレジスタです。2 つのレジスタは同一アドレスに配置され
ているため書込み値と読出し値が異なります。したがって , INC/DEC 命令などの
リードモディファイライト(RMW)命令は使用できません。
493
第 17 章 UART
通信プリスケーラ制御レジスタ(CDCR0, CDCR1)
17.3.5
通信プリスケーラ制御レジスタ 0, 1(CDCR0, CDCR1)は , UART の専用ボーレー
トジェネレータのボーレートを設定します。
• 通信プリスケーラの起動または停止
• マシンクロックの分周比の設定
■ 通信プリスケーラ制御レジスタ 0, 1(CDCR0, CDCR1)
図 17.3-7 通信プリスケーラ制御レジスタ 0, 1(CDCR0, CDCR1)
bit 15
14
13
12
11
10
9
8
初期値
0XXX0000B
R/W
-
-
-
R/W R/W R/W R/W
bit10 bit9 bit8
DIV2 DIV1 DIV0
通信プリスケーラ分周比(div)ビット
0
0
0
1分周
0
0
1
2分周
0
1
0
3分周
0
1
1
4分周
1
0
0
5分周
1
0
1
6分周
1
1
0
7分周
1
1
1
8分周
bit11
予約
0
予約ビット
必ず"0"を設定してください
bit15
MD
R/W :リード/ライト
X
:不定
- :未定義
:初期値
通信プリスケーラ制御ビット
0
通信プリスケーラ動作停止
1
通信プリスケーラ動作許可
表 17.3-5 通信プリスケーラ制御レジスタ 0, 1(CDCR0, CDCR1)の機能
ビット名
機 能
bit15
MD:
通信プリス
ケーラ制御
ビット
bit14
∼
bit12
未定義ビット
bit11
予約 :
予約ビット
•
bit10
∼
bit8
DIV2 ∼ DIV0:
通信プリス
ケーラ分周比
ビット
• マシンクロックの分周比を設定します。
( 注意事項 )
分周比を変更する場合は , クロック周波数を安定させるために , 次の通信を
開始するまで最低でも分周クロックの 2 周期分の時間をあけてください。
494
通信プリスケーラの動作を許可または停止します。
このビットに "0" を設定した場合 : 停止します。
このビットに "1" を設定した場合 : 許可します。
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
必ず "0" を設定してください。
第 17 章 UART
17.4
UART の割込み
UART の割込みには , 受信割込みと送信割込みがあり , 以下に示す要因で割込み要求
を発生できます。
• 受信データがシリアル入力データレジスタ 0, 1(SIDR0, SIDR1)にロードされた
場合
• 受信エラー(パリティエラー , オーバランエラー , フレーミングエラー)が発生し
た場合
• 送信データがシリアル出力データレジスタ 0, 1(SODR0, SODR1)から送信用シ
フトレジスタへ転送された場合
なお , それぞれの拡張インテリジェント I/O サービス(EI2OS)に対応しています。
■ UART の割込み
UART の割込み制御ビットと割込み要因を表 17.4-1 に示します。
表 17.4-1 UART の割込み制御ビットと割込み要因
送受信
受信
送信
割込み要求
フラグビット
動作モード
割込み要因
0
1
2
SSR0,
SSR1:RDRF
○
○
○
受信データをシリアル入
力データレジスタ 0, 1
(SIDR0, SIDR1)へロー
ド
SSR0,
SSR1:ORE
○
○
○
オーバランエラー発生
SSR0,
SSR1:FRE
○
○
×
フレーミングエラー発生
SSR0,
SSR1:PE
○
×
×
パリティエラー発生
○
シリアル出力データレジ
スタ 0, 1(SODR0,SODR
1)から送信データ転送
終了
SSR0,
SSR1:TDRE
○
○
割込み要因
許可ビット
割込み要求フラグの
クリア
受信データの読出し
SSR0, SSR1:
RIE
SSR0,SSR1:
TIE
受信エラーフラグク
リアビット(SCR0,
SCR1 レジスタの
REC: bit10)への
"0" 書込み
送信データの書込み
○:有
×:無
495
第 17 章 UART
● 受信割込み
受信割込みが許可されている場合に(SSR0, SSR1 レジスタの RIE:bit9=1), データ受信
完了(SSR0, SSR1 レジスタの RDRF:bit12=1), オーバランエラー(SSR0, SSR1 レジス
タの ORE:bit14=1), フレーミングエラー(SSR0, SSR1 レジスタの FRE:bit13=1), パリ
ティエラー(SSR0, SSR1 レジスタの PE:bit15=1)のいずれかが発生すると割込みコン
トローラへ受信割込み要求を発生します。
受信データロードフラグ(SSR0, SSR1 レジスタの RDRF:bit12)は , シリアル入力デー
タレジスタ 0, 1(SIDR0, SIDR1)を読み出すと , 自動的に "0" にクリアされます。各受
信エラーフラグ(SSR0, SSR1 レジスタの PE, ORE, FRE:bit15 ∼ bit13)は受信エラーフ
ラグクリアビット(SCR0, SCR1 レジスタの REC:bit10)に "0" を書き込めば , すべて
"0" にクリアされます。
< 注意事項 >
受信エラー(パリティエラー , オーバランエラー , フレーミングエラー)が発生し
た場合は , 必要に応じてエラーを処理した後 , 受信エラーフラグクリアビット
(SCR0, SCR1 レジスタの REC:bit10)に "0" を書き込み , 各受信エラーフラグをク
リアしてください。
● 送信割込み
送信データがシリアル出力データレジスタ 0, 1(SODR0, SODR1)から送信用シフトレ
ジスタへ送信されると , 送信データ書込みフラグビット(SSR0, SSR1 レジスタの
TDRE:bit11)に "1" が設定されます。
送信割込みが許可されている場合は(SSR0, SSR1 レジスタの TIE:bit8=1), 割込みコン
トローラへ送信割込み要求を発生します。
■ UART の割込みと EI2OS
< 参照 >
割込み番号 , 割込み制御レジスタ , 割込みベクタアドレスについては , 「第 7 章 割
込み」をご参照ください。
■ UART の EI2OS 機能
UART は EI2OS 機能に対応しています。受信および送信の各割込みで別々に EI2OS を
起動できます。
● 受信時
ほかのリソースの状態に関係なく , EI2OS を使用できます。
● 送信時
割込み制御レジスタ(ICR13, 14)を , UART の送信割込みと共有しているので , UART
の受信で割込みを使用しない場合に , EI2OS を起動できます。
496
第 17 章 UART
17.4.1
受信割込み発生とフラグ設定のタイミング
受信時の割込みとしては , 受信完了(SSR0,SSR 1 レジスタの RDRF:bit12)および
受信エラーの発生(SSR0, SSR1 レジスタの PE, ORE, FRE:bit15 ∼ bit13)があり
ます。
■ 受信割込み発生とフラグ設定のタイミング
● 受信データロードフラグと各受信エラーフラグの設定
データを受信する場合は , ストップビットの検出(動作モード 0, 1: 非同期ノーマルモー
ド , 非同期マルチプロセッサモード)またはデータの最終ビット(SIDR0, SIDR1 レジ
スタの D7:bit7)の検出(動作モード 2: クロック同期モード)によって , 受信データが
シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)へ格納されます。受信エラーが発
生した場合はエラーフラグ(SSR0, SSR1 レジスタの PE, ORE, FRE:bit15 ∼ bit13)が設
定され , 受信データロードフラグ(SSR0, SSR1 レジスタの RDRF:bit12)が設定されま
す。各動作モードともいずれかのエラーフラグが設定された場合は , 受信したシリアル
入力データレジスタ 0, 1(SIDR0, SIDR1)の受信データは無効です。
動作モード 0(非同期ノーマルモード)時
ストップビットの検出時に , 受信データロードフラグビット(SSR0, SSR1 レジスタの
RDRF:bit12)が設定されます。受信エラーが発生すると , エラーフラグ(SSR0, SSR1
レジスタの PE, ORE, FRE:bit15 ∼ bit13)が設定されます。
動作モード 1(非同期マルチプロセッサモード)時
ストップビットを検出すると , 受信データロードフラグビット(SSR0, SSR1 レジスタ
の RDRF:bit12 )がセットされます。受信エラーが発生すると , エラーフラグ(SSR0,
SSR1 レジスタの ORE, FRE:bit14, bit13)が設定されます。パリティエラー(SSR0, SSR1
レジスタの PE:bit15)は検出できません。
動作モード 2(クロック同期モード)時
受信データの最終ビット(SIDR0, SIDR1 レジスタの D7:bit7)を検出すると , 受信デー
タロードフラグビット(SSR0, SSR1 レジスタの RDRF:bit12)に "1" が設定されます。
受信エラーが発生すると , エラーフラグ(SSR0, SSR1 レジスタの ORE:bit14)が設定さ
れます。パリティエラー(SSR0, SSR1 レジスタの PE:bit15)およびフレーミングエラー
(SSR0, SSR1 レジスタの FRE:bit13)は検出できません。
受信動作とフラグセットのタイミングを , 図 17.4-1 に示します。
497
第 17 章 UART
図 17.4-1 受信動作とフラグ設定のタイミング
受信データ
(動作モード0)
ST
D0
D1
D5
D6
D7
SP
受信データ
(動作モード1)
ST
D0
D1
D6
D7
A/D
SP
D0
D1
D4
D5
D6
D7
受信データ
(動作モード2)
SSR0,SSR1:PE,ORE,FRE*
SSR0,SSR1:RDRF
受信割込み発生
* :PEフラグは動作モード1では検出できません
PE,FREフラグは動作モード2では検出できません
ST :スタートビット
SP :ストップビット
A/D :動作モード2のアドレス/データ選択ビット ● 受信割込み要求発生のタイミング
受信割込みが許可されている場合に(SSR0, SSR1 レジスタの RIE:bit9=1), 受信データ
ロードフラグ(SSR0, SSR1 レジスタの RDRF:bit12), パリティエラーフラグ(SSR0,
SSR1レジスタのPE:bit15), オーバランエラーフラグ(SSR0, SSR1レジスタのORE:bit14),
フレーミングエラーフラグ(SSR0, SSR1 レジスタの FRE:bit13)のいずれかが設定され
ると , 割込みコントローラへ受信割込み要求を発生します。
498
第 17 章 UART
送信割込み発生とフラグ設定のタイミング
17.4.2
送信割込みは , シリアル出力データレジスタ 0, 1(SODR0, SODR1)が空になり ,
次の送信データの書込みが可能な状態になると発生します。
■ 送信割込み発生とフラグ設定のタイミング
● 送信データエンプティフラグビットの設定とクリア
送信データ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)は , シリアル出
力データレジスタ 0, 1(SODR0, SODR1)に書き込まれた送信データが , 送信用シフト
レジスタへロードされ , 次のデータが書込み可能な状態になると設定されます。シリア
ル出力データレジスタ 0, 1(SODR0, SODR1)に次の送信データを書き込むと送信デー
タ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)は "0" にクリアされます。
送信動作とフラグセットのタイミングを図 17.4-2 に示します。
図 17.4-2 送信動作とフラグ設定のタイミング
[動作モード0,1]
送信割込要求
送信割込発生
SODR0,SODR1書込み
SSR0,SSR1:TDRE
SOT0,SOT1出力
[動作モード2]
ST
D0 D1 D2
D3 D4
送信割込発生
D5 D6
D7 SP SP
A/D
ST D0 D1
D2 D3
D3 D4 D5
D6 D7
送信割込発生
SODR0,SODR1書込み
SSR0,SSR1:TDRE
SOT0,SOT1出力
D0
D1 D2 D3
D4 D5
D6 D7
D0
D1 D2
ST :スタートビット
D0~D7:データビット
SP :ストップビット
A/D :アドレス/データ選択ビット
● 送信割込み要求発生のタイミング
送信割込みが許可(SSR0, SSR1 レジスタの TIE:bit8=1)されている場合に , 送信データ
書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)が設定されると割込みコン
トローラへ送信割込み要求を発生します。
< 注意事項 >
送信中に送信を禁止(SCR0, SCR1 レジスタの TXE:bit8=0, かつ動作モード 1(非同
期マルチプロセッサモード)時の場合 , 受信禁止(RXE:bit9 も含む)すると , 送信
データ書込みフラグビットが設定され(SSR0, SSR1 レジスタの TDRF:bit11=1),
送信用シフトレジスタのシフト動作が停止してから UART の通信が禁止されます。
送信が停止する前にシリアル出力データレジスタ 0, 1(SODR0, SODR1)に書き込
まれていた送信データは送信されます。
499
第 17 章 UART
17.5
UART のボーレート
UART の送受信クロックとしては , 以下のいずれかを選択します。
• 専用ボーレートジェネレータ
• 内部クロック(16 ビットリロードタイマ出力)
• 外部クロック(SCK0, SCK1 端子入力のクロック)
■ UART のボーレートの選択
UART のボーレート選択回路は , 図 17.5-1 のように構成されています。クロック入力
ソースは以下の 3 種類の中から選択できます。
● 専用ボーレートジェネレータによるボーレート
• UART に内蔵されている専用ボーレートジェネレータをクロック入力ソースとして
使用する場合は , 使用するボーレートに応じてシリアルモードレジスタ(SMR0,
SMR1)の CS2 ∼ CS0:bit5 ∼ bit3 に "000B" ∼ "101B" を設定してください。6 種類の
ボーレートから選択できます。
● 内部タイマによるボーレート
• 16 ビットリロードタイマから供給される内部クロックを , クロック入力ソースとし
て使用する場合は , シリアルモードレジスタ(SMR0, SMR1)の CS2 ∼ CS0:bit5 ∼
bit3 に "10B" を設定してください。
• ボーレートは , クロック同期の場合は "16 ビットリロードタイマから供給されるク
ロックのまま ", 非同期の場合は " 供給されるクロックを 16 分周した値 " になります。
• 16 ビットリロードタイマの設定値によって , 自由にボーレートを設定できます。
● 外部クロックによるボーレート
• UART のクロック入力端子(SCK0,SCK 1)から入力した外部クロックを , クロック
入力ソースとして使用する場合は , シリアルモードレジスタ(SMR0, SMR1)の CS2 ∼
CS0: bit5 ∼ bit3 に "111B" を設定してください。
• ボーレートは , クロック同期の場合は " 外部から供給されるクロック " のまま , ク
ロック非同期の場合は " 入力されたクロックを 16 分周した値 " になります。
500
第 17 章 UART
図 17.5-1 UART のボーレート選択回路
SMR0,SMR1:CS2~CS0
(クロック入力ソース選択ビット)
クロックセレクタ
CS2~CS0=000B~101B
[専用ボーレートジェネレータ]
φ
φ/1,φ/2,φ/3,φ/4,
φ/5,φ/6,φ/7,φ/8
通信プリスケーラ
(CDCR0,CDCR1:MD0,DIV2~DIV0)
[内部タイマ]
TMCSR0,TMCSR1:CSL1,CSL0
クロックセレクタ
φ
分周回路
【クロック同期】
1/1, 1/2, 1/4, 1/8,
1/16,1/32分周の
いずれかを選択
【非同期】
内部固定分周比を選択
CS2~CS0=110B
ダウン UF
カウンタ
1/1【クロック同期】
1/16【非同期】
ボーレート
φ/21 φ/23 φ/25
プリスケーラ
16ビットリロードタイマ0
CS2~CS0=111B
[外部クロック]
SCK0,SCK1
端子
φ :マシンクロック
UF:アンダフロー
1/1【クロック同期】
1/16【非同期】
SMR0,SMR1:MD1,MD0
(動作モード選択ビット)
501
第 17 章 UART
17.5.1
専用ボーレートジェネレータによるボーレート
UART の送受信クロックとして , 専用ボーレートジェネレータの出力クロックを選択
した場合のボーレートの設定を示します。
■ 専用ボーレートジェネレータによるボーレート
クロック入力ソース選択ビット(SMR0, SMR1 レジスタの CS2 ∼ CS0:bit5 ∼ bit3)に
"000B"∼"101B"を設定することによって, 専用ボーレートジェネレータによるボーレー
トが設定できます。
専用ボーレートジェネレータで送受信クロックを生成する場合は , マシンクロック周
波数が通信プリスケーラで分周された後 , クロックセレクタで選択されたクロック入
力ソースに対して分周比を選択して , ボーレートを決定します。
通信プリスケーラによるマシンクロックの分周比は , 非同期とクロック同期ともに共
通ですが , ボーレート決定の分周比は , 非同期とクロック同期とで異なります。
専用ボーレートジェネレータによるボーレート選択回路を図 17.5-2 に示します。
図 17.5-2 専用ボーレートジェネレータによるボーレート選択回路
SMR0,SMR1:CS2~CS0
(クロック入力ソース選択ビット)
クロックセレクタ
φ
φ/1,φ/2,φ/3,φ/4,
φ/5,φ/6,φ/7,φ/8
通信プリスケーラ
(CDCR0,CDCR1:MD0,DIV2~DIV0)
分周回路
【クロック同期】
1/1,1/2,1/4,1/8,1/16,1/32
分周のいずれかを選択
【非同期】
内部固定分周比を選択
ボーレート
SMR0,SMR1:MD1,MD0
(動作モード選択ビット)
φ:マシンクロック
● ボーレート計算式
非同期ボーレート = φ × div ×(非同期転送クロック分周比)
クロック同期ボーレート = φ × div ×(クロック同期転送クロック分周比)
φ : マシンクロック
div: 通信プリスケーラ分周比
502
第 17 章 UART
● 通信プリスケーラによる分周比(非同期 , クロック同期に共通)
マシンクロックの分周比は , 通信プリスケーラレジスタの分周比選択ビット(CDCR0,
CDCR1 レジスタの DIV2 ∼ DIV0:bit10 ∼ bit8)で設定します。
表 17.5-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: 通信プリスケーラ分周比
● ボーレート(非同期)
非同期モードのボーレートは , 通信プリスケーラの出力クロックを使用して生成され
ます。分周比は , クロック入力ソース選択ビット(SMR0, SMR1 レジスタの CS2 ∼ CS0:
bit5 ∼ bit3)で設定してください。
表 17.5-2 ボーレート(非同期)
CS2
CS1
CS0
非同期(スタート / ストップ同期)
0
0
0
76, 923bps
(φ /div)/(8 × 13 × 2)
0
0
1
38, 461bps
(φ /div)/(8 × 13 × 4)
0
1
0
19, 230bps
(φ /div)/(8 × 13 × 8)
0
1
1
9, 615bps
(φ /div)/(8 × 13 × 16)
1
0
0
500kbps
(φ /div)/(8 × 2 × 2)
1
0
1
250kbps
(φ /div)/(8 × 2 × 4)
算出式
φ : マシンクロック周波数
div: 通信プリスケーラ分周比
503
第 17 章 UART
● ボーレート(同期)
同期モードのボーレートは , 通信プリスケーラの出力クロックを 1, 2, 4, 8, 16, 32 分
周して生成されます。分周比は , クロック入力ソース選択ビット(SMR0, SMR1 レジス
タの CS2 ∼ CS0:bit5 ∼ bit3)で設定してください。
表 17.5-3 ボーレート(クロック同期)
CS2
CS1
CS0
CLK 同期
0
0
0
2Mbps
(φ /div)/1
0
0
1
1Mbps
(φ /div)/2
0
1
0
500kbps
(φ /div)/4
0
1
1
250kbps
(φ /div)/8
1
0
0
125kbps
(φ /div)/16
1
0
1
62.5kbps
(φ /div)/32
φ : マシンクロック周波数
div: 通信プリスケーラ分周比
504
算出式
第 17 章 UART
17.5.2
内部タイマ(16 ビットリロードタイマ)によるボー
レート
UART のクロック入力ソースとして , 16 ビットリロードタイマ 0 から供給される内
部クロックを選択する場合の設定とボーレートの計算式を示します。
■ 内部タイマ(16 ビットリロードタイマ出力)によるボーレート
クロック入力ソース選択ビット(SMR0, SMR1 レジスタの CS2 ∼ CS0:bit5 ∼ bit3)に
"110B" を設定することによって , 内部タイマ(16 ビットリロードタイマ出力)による
ボーレートを設定できます。ボーレートは , 16 ビットリロードタイマのカウントクロッ
ク分周比とリロード値を選択することによって自由に設定できます。
内部タイマによるボーレートの選択回路を図 17.5-3 に示します。
• クロック入力ソースとして内部タイマ(16 ビットリロードタイマ)を選択した(SMR0 ,
SMR1 レジスタの CS2 ∼ CS0:bit5 ∼ bit3)場合 , 16 ビットリロードタイマ出力端子
(TOT)は内部接続されているので , 外部クロック入力端子(SCK)に外部接続する
必要はありません。
• 16 ビットリロードタイマ出力端子(TOT)は , ほかで使用していなければ汎用入出
力ポートとして使用できます。
図 17.5-3 内部タイマ(16 ビットリロードタイマ出力)によるボーレート選択回路
SMR0,SMR1:CS2~CS0=110B
(クロック入力ソース選択ビット)
クロックセレクタ
16ビットリロードタイマ出力
(カウントクロック分周比と
リロード値によって周波数指定)
1/1【クロック同期】
1/16 【非同期】
ボーレート
SMR0,SMR1:MD1,MD0
(動作モード選択ビット)
505
第 17 章 UART
● ボーレート計算式
非同期ボーレート=
クロック同期ボーレート=
φ/N
bps
16×2×(n+1)
φ/N
bps
2×(n+1)
φ: マシンクロック周波数
N:16 ビットリロードタイマのプリスケーラによる分周比(21, 23, 25)
n:16 ビットリロードタイマのリロード値(0 ∼ 65535)
● ボーレートとリロードレジスタ設定値の設定例(マシンクロック周波数 :7.3728MHz の場
合)
表 17.5-4 ボーレートとリロード値
リロード値
ボーレート
(bps)
非同期(調歩同期)
クロック同期
N=23(マシンク
N=21(マシンク
N=23(マシンク
N=21(マシンク
ロックの 2 分周) ロックの 8 分周) ロックの 2 分周) ロックの 8 分周)
38, 400
2
−
47
11
19, 200
5
−
95
23
9, 600
11
2
191
47
4, 800
23
5
383
95
2, 400
47
11
767
191
1, 200
95
23
1, 535
383
600
191
47
3, 071
767
300
383
95
6, 143
1, 535
N :16 ビットリロードタイマのプリスケーラによる分周比
− : 設定不可
506
第 17 章 UART
17.5.3
外部クロックによるボーレート
UART の送受信クロックとして外部クロックを選択した場合の設定について説明し
ます。
■ 外部クロックによるボーレート
外部クロック入力によるボーレートを選択する場合は , 以下の設定が必要です。
• シリアルモードレジスタのクロック入力ソース選択ビット(SMR0, SMR1 レジスタの
CS2 ∼ CS0:bit5 ∼ bit3)に "111B" を設定します。
• SCK0, SCK1 端子をポート方向レジスタ(DDR)で入力ポートに設定します。
• シリアルクロック入出力許可ビットを(SMR0, SMR1 レジスタの SCKE:bit1)に "0"
を設定します。
• SCK0, SCK1 端子から入力された外部クロックをもとに , ボーレートを設定します。
内部の分周比は固定されているので , ボーレートを変更する場合は外部の入力ク
ロックで変更する必要があります。
図 17.5-4 外部クロックによるボーレート選択回路
SMR0,SMR1:CS2~CS0=111B
(クロック入力ソース選択ビット)
クロックセレクタ
SCK0,SCK1
1/1【クロック同期】
1/16【非同期】
端子
ボーレート
SMR0,SMR1:MD1,MD0
(動作モード選択ビット)
● ボーレート計算式
非同期ボーレート = f/16 bps
クロック同期ボーレート = f bps
f: 外部クロック周波数(f は最大で 2MHz)
507
第 17 章 UART
17.6
UART の動作説明
UART 機能には , 双方向シリアル通信機能(動作モード 0, 2: 非同期ノーマルモード ,
クロック同期モード)と , マスタ / スレーブ型接続の通信機能(動作モード 1: 非同
期マルチプロセッサモード)があります。
■ UART の動作
● 動作モード
UART の動作モードは 3 種類があり , CPU 間の接続方式やデータ通信方式を設定でき
ます。
UART の動作モードを , 表 17.6-1 に示します。
表 17.6-1 UART の動作モード
データ長
動作モード
同期方式
パリティなし
0
非同期モード
(ノーマルモード)
1
マルチプロセッサモード
2
クロック同期モード
ストップビット長
パリティあり
7 ビットまたは 8 ビット
非同期
1 ビットまたは 2 ビット *2
8 ビット +
1 ビット *1
−
非同期
8 ビット
−
クロック同
期
なし
− : 設定不可
*1:"+1" は通信制御に使用するアドレス / データ選択ビット(SCR0, 1 レジスタの A/D:bit11 )です。
*2: 受信時のストップビットは 1 ビットのみを検出します。
< 注意事項 >
UART の動作モード 1(非同期マルチプロセッサモード)は , マスタ / スレーブ型接
続時のマスタ時のみ使用できます。
● CPU 間接続方式
CPU 間接続方式としては , 1 対 1 接続とマスタ / スレーブ型接続のどちらかを選択でき
ます。いずれの方式でも , データ長 , パリティ有無 , 同期方式は , すべての CPU 間で統
一しておく必要があります。動作モードは以下のように選択します。
• 1 対 1 接続では , 2 つの CPU 間で動作モード 0, 2(ノーマルモード , クロック同期
モード)のいずれか同じ方式を採用する必要があります。非同期方式では動作モー
ド 1: 非同期マルチプロセッサモード(SMR0, SMR1 レジスタの MD1, MD0:bit7, bit6=
00B)を , クロック同期方式では動作モード 2: クロック同期モード(SMR0, SMR1 レ
ジスタの MD1, MD0:bit7, bit6=10B)を設定してください。
• マスタ / スレーブ型接続では , 動作モード 1: 非同期マルチプロセッサモード(SMR0,
SMR1 レジスタの MD1, MD0:bit7, bit6=01B)を設定します。動作モード 1( 非同期マ
ルチプロセッサモード)を設定した場合は , マスタとして使用してください。なお ,
この接続時は , パリティなしとデータ長(8 ビット)を設定してください。
508
第 17 章 UART
● 同期方式
非同期方式(調歩同期)またはクロック同期方式を選択します。
● 信号方式
UART は , NRZ(Non Return to Zero)形式のデータだけを扱えます。
● 送受信動作の開始
• シリアル制御レジスタの送信動作許可ビット(SCR0, SCR1 レジスタの TXE:bit8)に
"1" を設定すると , 送信動作を開始します。
• シリアル制御レジスタの受信動作許可ビット(SCR0, SCR1 レジスタの RXE:bit9)に
"1" を設定すると , 受信動作を開始します。
● 送受信動作の停止
• シリアル制御レジスタの送信動作許可ビット(SCR0, SCR1 レジスタの TXE:bit8)に
"0" を設定すると , 送信動作を停止します。
• シリアル制御レジスタの受信動作許可ビット(SCR0, SCR1 レジスタの RXE:bit9)に
"0" を設定すると , 受信動作を停止します。
● 送受信中の停止
• 受信中(受信用シフトレジスタへのデータ入力中)に受信動作を禁止(SCR0, SCR1
レジスタの RXE:bit9=0)した場合は , 受信中のフレームの受信を完了して , シリア
ル入力データレジスタ 0, 1(SIDR0, SIDR1)へ受信データを格納してから受信動作
を停止します。
• 送信中(送信用シフトレジスタからのデータが出力中)に送信動作を禁止(SCR0,
SCR1レジスタのTXE:bit8=0)した場合は, シリアル出力データレジスタ0, 1(SODR0,
SODR1)から送信用シフトレジスタへ 1 フレームの送信が完了してから送信動作を
停止します。
509
第 17 章 UART
非同期モード(動作モード 0, 1)時の動作
17.6.1
UART を動作モード 0(非同期ノーマルモード)または動作モード 1(非同期マルチ
プロセッサモード)で使用する場合は , 通信方式は非同期となります。
■ 非同期モードでの動作
● 送受信データフォーマット
送受信は , 必ずスタートビット("L" レベル)から始まり , 指定されたデータビット長
の送受信は LSB ファーストで行われ , ストップビット("H" レベル)で終了します。
• 動作モード 0(非同期ノーマルモード)時は , データ長として 7 ビットまたは 8 ビッ
トを選択します。パリティビットは , あり / なしを選択できます。
• 動作モード 1(非同期マルチプロセッサモード)時は , データ長は 8 ビットに固定
されます。パリティビットは付加されません。9 ビット目に , アドレス / データビッ
ト(SCR0, SCR1 レジスタの A/D:bit11)が付加されます。
非同期モードの送受信データフォーマットを図 17.6-1 に示します。
図 17.6-1 送受信データフォーマット(動作モード 0, 1)
[動作モード0]
ST
D0
D1
D2
D3
D4
D5
D7
D8
SP
ST
D0
D1
D2
D3
D4
D5
D7
D8
SP
SP
Pなし
ST
D0
D1
D2
D3
D4
D5
D7
D8
P
SP
ST
D0
D1
D2
D3
D4
D5
D7
D8
P
SP
ST
D0
D1
D2
D3
D4
D5
D7
SP
ST
D0
D1
D2
D3
D4
D5
D7
SP
データ
8ビット
SP
Pあり
SP
Pなし
ST
D0
D1
D2
D3
D4
D5
D7
P
SP
ST
D0
D1
D2
D3
D4
D5
D7
P
SP
D1
D2
D3
D4
D5
D7
D8
A/D
データ
7ビット
SP
Pあり
[動作モード1]
ST
ST
D0
D0
D1
D2
ST :スタートビット
SP :ストップビット
P :パリティビット
A/D :アドレス/データビット
510
D3
D4
D5
D7
D8
A/D
SP
SP
SP
データ
8ビット
第 17 章 UART
● 送信動作
• 送信データは , 送信データ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)
に "1" が設定されている状態で , シリアル出力データレジスタ 0, (
1 SODR0, SODR1)
へ書き込みます。
• 送信データを書き込み , シリアル制御レジスタの送信動作許可ビット(SCR0, SCR1
レジスタの TXE:bit8)に "1" を設定すると , 送信を開始します。
• 送信データをシリアル出力データレジスタ 0, 1(SODR0, SODR1)へ書き込むと , 送
信データ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)は , 一度 "0" に
クリアされます。
• 送信データをシリアル出力データレジスタ 0, 1(SODR0, SODR1)から送信用シフ
トレジスタへ書き込むと , 送信データ書込みフラグビット(SSR0, SSR1 レジスタの
TDRE:bit11)には再度 "1" が設定されます。
• 送信割込み許可ビット(SSR0, SSR1 レジスタの TIE:bit8)に "1" を設定していた場
合は , 送信データ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)に "1"
が設定されると , 送信割込み要求を発生します。割込み処理において , 次の送信デー
タをシリアル出力データレジスタ 0, 1(SODR0, SODR1)へ書き込むことができます。
● 受信動作
• 受信動作は , 受信動作の許可が設定されている場合は(SCR0, SCR1 レジスタの
RXE:bit9=1), 常に行われています。
• UART は受信データのスタートビットを検出すると , シリアル制御レジスタ 0, 1
(SCR0, SCR1)に設定しているデータフォーマットに従って , 1 フレームのデータ
を受信しシリアル入力データレジスタ 0, 1(SIDR0, SIDR1)にへ格納します。
• 1 フレームのデータの受信が完了すると , 受信データロードフラグビット(SSR0,
SSR1 レジスタの RDRF:bit12)に "1" が設定されます。
• 受信データを読み出す場合は , 1 フレームデータの受信完了後に , シリアルステータ
スレジスタ 0, 1(SSR0, SSR1)のエラーフラグの状態を確認し , 正常に受信してい
れば , シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)から受信データを読み出
してください。受信エラーが発生している場合は , エラー処理を実行してください。
• 受信データを読み出すと , 受信データロードフラグビット(SSR0, SSR1 レジスタの
RDRF:bit12)は "0" にクリアされます。
● スタートビット検出方法
スタートビットを検出するには , 以下のように設定してください。
• 通信期間直前は通信線を必ず "H"( マークレベルを付加 ) にしてください。
• 通信線が "H"( マークレベル ) の期間に , 受信許可 (RXE=H) にしてください。
• 非通信期間中 ( マークレベルを除く ) は , 受信許可 (RXE=H) にしないでください。
正しいデータが受信できません。
• ストップビット検出後 (RDRF フラグが "1" にセットされた後 ), 通信線が "H" ( マー
クレベル ) の間に受信禁止 (RXE=L) にしてください。
511
第 17 章 UART
図 17.6-2 正常動作例
通信期間
非通信期間
マークレベル
SIN
スタートビット
ST
非通信期間
ストップビット
データ
D0
D1
D3
D2
D4
D5
D6
D7
SP
D7
SP
(01010101B送信)
RXE
受信クロック
サンプリングクロック
●受信クロック(8パルス)
マイコン側の認識
(01010101B受信)
ST
●受信クロックを16分周してサンプリングクロックを生成
D0
D1
D3
D2
D4
D5
D6
以下の例のようなタイミングで受信許可に設定しますとマイコン側で入力データ
(SIN) が正しく認識されませんので注意してください。
• 通信線が "L" の期間に , 受信許可 (RXE=H) に設定した場合の動作例
図 17.6-3 異常動作例
通信期間
非通信期間
マークレベル スタートビット
SIN
(01010101B送信)
RXE
非通信期間
ストップビット
データ
ST
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
SP
SP
受信クロック
サンプリングクロック
ST認識
マイコン側の認識
(10101010B受信)
PE,ORE,FRE
●受信エラー発生
● ストップビット
1 ビットまたは 2 ビット長を選択できます。受信側では , 常に最初の 1 ビットだけを検
出します。
● エラー検出
• 動作モード 0(非同期ノーマルモード)時は , パリティエラー , オーバランエラー ,
フレームエラーを検出できます。
• 動作モード 1(非同期マルチプロセッサモード)時は , オーバランエラーとフレー
ムエラーを検出できます。パリティエラーは検出できません。
512
第 17 章 UART
● パリティビット
パリティビットの付加は , 動作モード 0(非同期ノーマルモード)の場合のみ設定でき
ます。パリティ付加許可ビット (SCR0, SCR1 レジスタの PEN:bit15) でパリティの有無
を , パリティ選択ビット(SCR0, SCR1 レジスタの P:bit14)で偶数パリティ / 奇数パリ
ティを設定できます。
動作モード 1(非同期マルチプロセッサモード)時は , パリティビットは付加できませ
ん。
パリティビット有効時の送受信データを図 17.6-4 に示します。
図 17.6-4 パリティビット有効時の送受信データ
受信の場合
SIN0,SIN1
ST
SP
1
送信の場合
SOT0,SOT1
1
1
0
0
1
0
1
ST
1
送信の場合
SOT0,SOT1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
SP
偶数パリティでの送信
(SCR0,SCR1:PEN=1,P=0)
SP
奇数パリティでの送信
(SCR0,SCR1:PEN=1,P=1)
0
ST
1
偶数パリティでの受信で
パリティエラーが発生
(SCR0,SCR1:PEN=1,P=0)
1
データ
パリティ
ST:スタートビット
SP:ストップビット
(注意事項) 動作モード1では,パリティビットは設定できません。
513
第 17 章 UART
17.6.2
クロック同期モード(動作モード 2)時の動作
UART を動作モード 2 で使用する場合は , クロック同期方式で通信を行います。
■ クロック同期モードでの動作
● 送受信データフォーマット
クロック同期モード時は , 8 ビットのデータを LSB ファーストで送受信します。送受
信データには , スタートビット , ストップビットは付加されません。
クロック同期モードの送受信データフォーマットを図 17.6-5 に示します。
図 17.6-5 送受信データフォーマット(動作モード 2)
シリアルクロックを出力して送信する場合
マークレベル
SCK0,SCK1出力
SOT0,SOT1
(LSB)
1
0
1
1
0
0
1
0
(MSB)
送信データ
送信データ書込み
TXE
シリアルクロックを入力して受信する場合
マークレベル
SCK0,SCK1入力
SIN0,SIN1
(LSB)
1
0
1
1
0
0
1
0
(MSB)
受信データ
RXE
受信データ読出し
● クロック供給
クロック同期方式では , 送受信を行うフレームのビット数に等しい数のクロックの供
給が必要になります。
• 内部クロック(専用ボーレートジェネレータまたは内部タイマ)を選択している場
合(SMR0, SMR1 レジスタの CS2 ∼ CS0:bit5 ∼ bit3=000B ∼ 101B または 110B)は ,
データを送信するとデータ受信用同期クロックが自動的に生成されます。
• 外部クロックを選択している場合(SMR0, SMR1 レジスタの CS2 ∼ CS0:bit5 ∼
bit3=111B)は , UART のシリアル出力データレジスタ 0, 1(SODR0, SODR1)に送信
データがあること(SSR0, SSR1 レジスタの TDRE:bit11=0)を確認してから , 正確に
1 バイト分のクロックを外部から供給する必要があります。また , 送信前と送信後は ,
必ずマークレベル("H" レベル)に戻る必要があります。
514
第 17 章 UART
● エラー検出
オーバランエラーのみ検出できます。パリティエラー, フレーミングエラーは検出でき
ません。
● レジスタの設定
クロック同期モード(動作モード 2)を使用し , 送信側から受信側へシリアルデータを
送る場合の制御レジスタは表 17.6-2 のように設定します。
表 17.6-2 制御レジスタの設定
設定内容
レジスタ名
ビット名
送信側(シリアルクロックを出力)
クロック同期モードを設定(MD1, MD0=10B)
MD1, MD0
シリアルモー
ドレジスタ 0, 1
(SMR0, SMR1)
CS2, CS1,
CS0
シリアル制御
レジスタ 0, 1
(SCR0, SCR1)
シリアルス
テータスレジ
スタ 0, 1
(SSR0, SSR1)
クロック入力ソースを設定
• 専用ボーレートジェネレータ
(CS2 ∼ CS0=000B ∼ 101B)
•
内部タイマ
(CS2 ∼ CS0=110B)
SCKE
シリアルクロック出力を設定
(SCKE=1)
SOE
シリアルデータ出力端子に設定
(SOE=1)
PEN
CL
REC
受信側(シリアルクロックを入力)
クロック入力ソースを設定
• 外部クロック
(CS2 ∼ CS0=111B)
シリアルクロック入力を設定
(SCKE=0)
汎用入出力ポートに設定(SOE=0)
パリティビットを付加しない(PEN=0)
データ長 8 ビット(CL=1)
エラーフラグの初期化(REC=0)
TXE
送信動作を許可(TXE=1)
送信動作を禁止(TXE=0)
RXE
受信動作を禁止(RXE=0)
受信動作を許可(RXE=1)
TIE
送信割込みを許可(TIE=1)
送信割込みを禁止(TIE=0)
RIE
受信割込みを禁止(RIE=0)
受信割込みを許可(RIE=1)
● 通信開始
シリアル出力データレジスタ 0, 1(SODR0, SODR1)に送信データを書き込むと , 通信
が開始します。受信のみ行う場合でも通信を開始するには , 必ず仮の送信データをシリ
アル出力データレジスタ 0, 1(SODR0, SODR1)へ書き込む必要があります。
● 通信終了
1 つのフレームのデータ送受信が終了すると , 受信データロードフラグビット(SSR0,
SSR1 レジスタの RDRF:bit12)に "1" が設定されます。データを受信した場合は , オー
バランエラーフラグビット(SSR0, SSR1 レジスタの ORE:bit14)をチェックし , 通信が
正常に行われたかどうかを判断してください。
515
第 17 章 UART
双方向通信機能(動作モード 0, 2)
17.6.3
動作モード 0, 2(非同期ノーマルモード , クロック同期モード)時は , 1 対 1 接続の
シリアル双方向通信ができます。同期方式は , 動作モード 0(非同期ノーマルモー
ド)の場合は非同期 , 動作モード 2(クロック同期モード)の場合はクロック同期と
なります。
■ 双方向通信機能
UART を動作モード 0, 2(非同期ノーマルモード , クロック同期モード)で使用するた
めには , 図 17.6-6 の設定が必要です。
図 17.6-6 UART の動作モード 0, 2(非同期ノーマルモード , クロック同期モード)の設定
bit15 14
SCR0,SCR1,SMR0,SMR1 PEN
動作モード0
動作モード2
P
◎ ◎
0 ×
13
12
11
10
9 bit8
bit7 6
5
4
3
2
1
bit0
SBL CL
AD REC RXE TXE MD1 MD0 CS2 CS1 CS0 予約 SCKE SOE
◎
×
×
×
◎
1
0
0
◎
◎
◎
◎
SSR0,SSR1,
PE ORE FRE RDRF TDRE - RIE TIE
SIDR0,SIDR1/SODR0,SODR1
動作モード0
◎ ◎ ◎ ◎ ◎
◎ ◎
動作モード2
× ◎ × ◎ ◎
◎ ◎
0
1
0
0
◎
◎
◎
◎
◎
◎
0
0
◎
◎
◎
◎
送信データを設定(ライトした場合)
/受信データを保持(リードした場合)
DDRポート方向レジスタ
-
◎
×
1
0
:未定義ビット
:使用ビット
:未使用ビット
:"1"を設定
:"0"を設定
SIN0,SIN1入力端子やSCK0,SCK1入力端子
として使用する端子に対応する
ビットに"0"を設定
● CPU 間の接続
2 つの CPU を接続します。
図 17.6-7 UART の双方向通信の接続例
SOT
SOT
SIN
SCK
CPU-1
516
SIN
出力
入力
SCK
CPU-2
第 17 章 UART
● 通信手順
通信は , 送信データが準備できたときに任意のタイミングで送信側から開始します。送
信側はシリアル出力データレジスタ(SODR0, SODR1)に送信データを設定し , シリア
ル制御レジスタの送信動作許可ビット(SCR0, SCR1 レジスタの TXE:bit8)に "1" を設
定して , 送信を開始してください。
正常に受信したことを送信側に示すために , 受信データを送信側に転送する例を , 図
17.6-8 に示します。
図 17.6-8 双方向通信フローの例
(送信側)
(受信側)
スタート
スタート
動作モード設定
(0,2いずれか)
動作モード設定
(送信側と合わす)
SODRに1バイトデータを
セットして通信
データ送信
NO
受信データあり
YES
NO
受信データあり
受信データ読出し
と処理
YES
受信データ読出し
と処理
データ送信
1バイトデータ送信
517
第 17 章 UART
17.6.4
マスタ / スレーブ型通信機能(マルチプロセッサモー
ド時)
動作モード 1(非同期マルチプロセッサモード)時は , 複数 CPU のマスタ / スレー
ブ型接続による通信が可能です。ただし , マスタ側でのみ使用できます。
■ マスタ / スレーブ型通信機能
UART を動作モード 1(非同期マルチプロセッサモード)で使用するためには , 図 17.6-9
の設定が必要です。
図 17.6-9 UART の動作モード 1(非同期マルチプロセッサモード)の設定
bit15 14
13
12
11
10
9 bit8
bit7 6
5
4
3
2
1
bit0
SCR0,SCR1,SMR0,SMR1 PEN
P
SBL CL
AD REC RXE TXE MD1 MD0 CS2 CS1 CS0 予約 SCKE SOE
0
×
◎
◎
1
0
◎
◎
0
SSR0,SSR1,
SIDR0,SIDR1/SODR0,SODR1 PE ORE FRE RDRF TDRE - RIE TIE
× ◎ ◎ ◎ ◎
◎ ◎
1
◎
◎
◎
0
0
◎
送信データを設定(ライトした場合)
/受信データを保持(リードした場合)
DDRポート方向レジスタ
-
◎
×
1
0
:未定義ビット
:使用ビット
:未使用ビット
:"1"を設定
:"0"を設定
SIN0,SIN1入力端子やSCK0,SCK1入力端子
として使用する端子に対応する
ビットに"0"を設定
● CPU 間の接続
2 本の共通通信ラインに 1 つのマスタ CPU と , 複数のスレーブ CPU を接続して , 通信
システムを構成します。UART は , マスタ CPU としてのみ使用できます。
図 17.6-10 UART のマスタ / スレーブ型通信の接続例
SOT0,1
SIN0,1
マスタCPU
SOT
SIN
スレーブCPU #0
518
SOT
SIN
スレーブCPU #1
第 17 章 UART
● 機能選択
マスタ / スレーブ型通信では , 動作モードとデータ転送方式を選択してください。
動作モード 1(非同期マルチプロセッサモード)時は , パリティチェック機能は使用で
きないので , パリティ付加許可ビット(SCR0, SCR1 レジスタの PEN:bit15)には "0" を
設定してください。
表 17.6-3 マスタ / スレーブ型通信機能の選択
動作モード
データ
マスタ CPU
同期方式
ストップビット
なし
非同期
1 ビット
または
2 ビット
A/D=1
+
8 ビットアドレス
アドレス
送受信
動作モード 1
データ
送受信
パリティ
スレーブ CPU
−
A/D=0
+
8 ビットデータ
519
第 17 章 UART
● 通信手順
通信は , マスタ CPU 側がアドレスデータを送信することによって開始します。
アドレスデータとは , A/D ビットが "1" のデータであり , アドレス / データ選択ビット
(SCR0, SCR1 レジスタの A/D:bit11)の付加によって , 通信先となるスレーブ CPU が
選択されます。各スレーブ CPU はプログラムによりアドレスデータを判断し , 割当て
られたアドレスと一致する場合に , マスタ CPU との通信が開始します。
マスタ / スレーブ型通信のフローチャートを図 17.6-11 に示します。
図 17.6-11 マスタ / スレーブ型通信フローチャート
(マスタCPU)
スタート
動作モード1
(非同期マルチプロ
セッサモード)を選択
D0~D7にスレーブ
CPUを選択する1バイト
データ(アドレスデータ)
をセットして送信
(A/D=1)
A/Dに"0"を設定
受信動作許可
スレーブCPUと通信
通信終了?
NO
YES
ほかの
スレーブCPU
と通信
NO
YES
受信動作禁止
エンド
520
第 17 章 UART
17.7
UART 使用上の注意
UART を使用する場合は , 以下の点に注意してください。
■ UART 使用上の注意
● 送受信の動作許可
UART には , 送信と受信のそれぞれに対して送信動作許可ビット(SCR0, SCR1 レジス
タの TXE:bit8)と受信動作許可ビット(SCR0,SCR 1 レジスタの RXE:bit9)があります。
• リセット後の初期状態では , 送受信とも動作禁止に設定(SCR0, SCR1 レジスタの
TXE: bit8=0, RXE:bit9=0)されているので , 送受信を行う前に動作を許可する必要が
あります。
• 送受信動作を禁止(SCR0, SCR1 レジスタの TXE:bit8=0, RXE:bit9=0)して , 送受信
を中止できます。
● 動作モードの設定
動作モードは , 送受信動作を禁止(SCR0, SCR1 レジスタの TXE:bit8=0, RXE:bit9=0)し
てから設定してください。送受信中に動作モードを切り換えた場合 , 送受信されたデー
タは保証されません。
● クロック同期モード
UART の動作モード 2(クロック同期モード)は , クロック同期方式として設定されま
す。送受信データにスタートビットやストップビットは付加されません。
● 送信割込み許可のタイミング
送信データ書込み許可フラグビット(SSR0, SSR1 レジスタの TDRE:bit11)はリセット
値が "1"(送信データなし , 送信データ書込み許可)にセットされているので , 送信割
込みを許可(SSR0, SSR1 レジスタの TIE:bit8=1)したと同時に , 送信割込み要求が発生
します。必ず , 送信データを準備してから , 送信割込みを許可(SSR0, SSR1 レジスタ
の TIE:bit8=1)してください。
521
第 17 章 UART
17.8
UART のプログラム例
UART のプログラム例を示します。
■ UART のプログラム例
● 処理
シリアル送受信を行うためにUARTの双方向通信機能(ノーマルモード)を使用します。
• 動作モード 0, 非同期モード(ノーマル), 8 ビットデータ長 , 2 ビットストップビッ
ト長およびパリティなしを設定します。
• 通信には P60/SIN1 端子と P61/SOT1 端子を使用します。
• 専用ボーレートジェネレータを使用し , 約 9600bps にボーレートを設定します。
• 文字 13H を SOT1 端子から送信し , 割込みの発生により受信します。
• マシンクロック φ は 16MHz と仮定します。
● コーディング例
ICR13 EQU
0000BDH
;UART 送受信割込み制御レジスタ
DDR6
EQU
000016H
; ポート 6 データ方向レジスタ
CDCR1 EQU
00001BH
; 通信プリスケーラレジスタ 1
SMR1
EQU
000024H
; モード制御レジスタ 1
SCR1
EQU
000025H
; 制御レジスタ 1
SIDR1 EQU
000026H
; 入力データレジスタ 1
SODR1 EQU
000026H
; 出力データレジスタ 1
SSR1
EQU
000027H
; 状態レジスタ 1
REC
EQU
SCR1:2
; 受信エラーフラグクリアビット
;--------- メインプログラム ------------------------------------------CODE
CSEG ABS=0FFH
START:
; :
; スタックポインタ (SP) はすでに初期化されているもにと
; 仮定します
AND
CCR,#0BFH
; 割込みを禁止します
MOV
I:ICR13,#00H
; 割込みレベル 0(優先先が最も給い)
MOV
I:DDR6,#00000000B;SIN1 端子を入力端子として設定します
MOV
I:CDCR1,#080H
; 通信プリスケーラを有効にします
MOV
I:SMR1,#00010001B; 動作モード 0(非同期)
; 専用ボーレートジェネレータ(9615bps)を使用します
; クロックパルス出力を無効にし , データ出力を有効にします
MOV
I:SCR1,#00010011B;N パリティなし , 2 ストップビット
;8 データビットと受信エラーフラグをクリアします
; 送受信動作を有効にします
MOV
I:SSR1,#00000010B; 送信割込みを禁止し , 受信割込みを許可にします
MOV
I:SODR1,#13H
; 送信データを書き込みます
MOV
ILM,#07H
;PS の ILM をレベル 7 に設定します
OR
CCR,#40H
; 割込みを許可します
LOOP: MOV
A,#00H
; 無限プール
MOV
A,#01H
BRA
LOOP
522
第 17 章 UART
;--------- 割込みプログラム ------------------------------------------WARI:
MOV
A,SIDR1
; 受信データを読込みます
CLRB I:REC
; 受信割込み要求フラグをクリアします
;
:
;
ユーザ処理
;
:
RETI
; 割込みから復帰します
CODE
ENDS
;--------- ベクタ設定 -----------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FF68H
; 割込み #37(25H)のベクタを設定します
VECT
DSL
ORG
DSL
DB
ENDS
WARI
0FFDCH
START
00H
; リセットベクタを設定します
; シングルチップモードを設定します
523
第 17 章 UART
524
第 18 章
DTP/ 外部割込み
DTP/ 外部割込みの機能と動作について説明しま
す。
18.1 DTP/ 外部割込みの概要
18.2 DTP/ 外部割込みのブロックダイヤグラム
18.3 DTP/ 外部割込みの構成
18.4 DTP/ 外部割込みの動作説明
18.5 DTP/ 外部割込み使用上の注意
18.6 DTP/ 外部割込み回路のプログラム例
525
第 18 章 DTP/ 外部割込み
18.1
DTP/ 外部割込みの概要
DTP/ 外部割込みは , 外部周辺装置が発生する割込み要求やデータ転送要求を CPU
に伝達することで , 外部割込み要求を発生したり , 拡張インテリジェント I/O サービ
ス(EI2OS)を起動します。
■ DTP/ 外部割込み機能
外部周辺装置から外部割込み入力端子(INT7 ∼ INT0)に入力された割込み要求は , リ
ソースの割込みと同様割込み要求が発生され , 外部割込みを発生したりまたは拡張イ
ンテリジェント I/O サービス(EI2OS)を起動します。
割込み制御レジスタ(ICR)により拡張インテリジェント I/O サービス(EI2OS)を
" 無効 " に設定している場合(ISE=0)は , 外部割込み機能が有効になり , 割込み処理へ
分岐します。
EI2OS を " 有効 " に設定している場合( ISE=1)は , DTP 機能が有効となって , EI2OS
による自動データ転送が行われ , 指定回数のデータ転送終了後に割込み処理へ分岐し
ます。
DTP/ 外部割込みの概要を表 18.1-1 に示します。
表 18.1-1 DTP/ 外部割込みの概要
外部割込み
DTP 機能
8 本(P10/INT0/DTT10 ∼ P16/INT6, P63/INT7)
入力端子
検出レベル設定レジスタ(ELVR)にて , 端子ごとにレベルまたはエッジを設定
割込み要因
"H" レベル /"L" レベル / 立上りエッジ /
立下りエッジの入力
"H" レベル /"L" レベルの入力
割込み番号
#20(14H), #22(16H), #25(19H), #27(1BH)
割込み制御
DTP/ 外部割込み許可レジスタ(ENIR)による , 割込み要求出力の許可または禁止
割込みフラグ
DTP/ 外部割込み要因レジスタ(EIRR)による , 割込み要因の保持
処理選択
処理
526
EI2OS を " 無効 " に設定(ICR:ISE=0)
EI2OS を " 有効 " に設定(ICR:ISE=1)
外部割込み処理へ分岐
EI2OS によるデータ自動転送を指定回数処理
後 , 割込み処理へ分岐
第 18 章 DTP/ 外部割込み
DTP/ 外部割込みのブロックダイヤグラム
18.2
DTP/ 外部割込みのブロックダイヤグラムを以下に示します。
■ DTP/ 外部割込みのブロックダイヤグラム
図 18.2-1 DTP/ 外部割込みのブロックダイヤグラム
検出レベル設定レジスタ(ELVR)
LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4
端子
レベルおよび
エッジセレクタ
INT7
端子
レベルおよび
エッジセレクタ
レベルおよび
エッジセレクタ
端子
レベルおよび
エッジセレクタ
部
デ
ー
タ
バ
ス
内
INT2
レベルおよび
エッジセレクタ
INT5
端子
端子
INT3
INT6
端子
LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0
端子
レベルおよび
エッジセレクタ
INT1
レベルおよび
エッジセレクタ
INT4
端子
レベルおよび
エッジセレクタ
INT0
DTP/外部割込み入力検出回路
ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0
割込み要求
信号
DTP/外部割込み要因
レジスタ(EIRR)
割込み要求
信号
EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 DTP/外部割込み許可
レジスタ(ENIR)
527
第 18 章 DTP/ 外部割込み
● DTP/ 外部割込み入力検出回路
外部周辺装置が発生する割込み要求またはデータ転送要求を検出します。
検出レベル設定レジスタで設定したレベルまたはエッジを検出したい端子に対応する
割込み要求フラグに "1" を設定してください(EIRR: ER)
。
● 検出レベル設定レジスタ(ELVRH, ELVRL)
検出レベル設定レジスタには , DTP/ 外部割込みの要因発生の条件となる , 外部周辺装
置からの入力信号のレベルまたはエッジを設定します。
● DTP/ 外部割込み要因レジスタ(EIRR)
DTP/ 外部割込みの要因を保持するレジスタです。
DTP/ 外部割込み端子に有効な信号が入力された場合 , 対応する DTP/ 外部割込み要求
フラグビットに "1" が設定されます。
● DTP/ 外部割込み許可レジスタ(ENIR)
DTP/ 外部割込み許可レジスタ(ENIR)は , 外部周辺装置の DTP/ 外部割込み要求の
" 許可 " または " 禁止 " を設定します。
■ 端子の詳細と割込み番号
DTP/ 外部割込みで使用する端子と割込みの詳細を表 18.2-1 に示します。
表 18.2-1 DTP/ 外部割込みで使用する端子と割込み番号
チャネル
割込み
番号
割込み制御レジスタ
ベクトルテーブルアドレス
レジスタ名
アドレス
下位
中位
上位
INT0/INT1
#20(14H)
ICR04
0000B4H
FFFFACH
FFFFADH
FFFFAEH
INT2/INT3
#22(16H)
ICR05
0000B5H
FFFFA4H
FFFFA5H
FFFFA6H
INT4/INT5
#25(19H)
ICR07
0000B7H
FFFF98H
FFFF99H
FFFF9AH
INT6/INT7
#27(1BH)
ICR08
0000B8H
FFFF90H
FFFF91H
FFFF92H
○ :EI2OS 割込みクリア信号で割込み要求フラグがクリアされると , 使用できます。
528
EI2OS
○
第 18 章 DTP/ 外部割込み
DTP/ 外部割込みの構成
18.3
DTP/ 外部割込みの端子 , 割込み要因 , レジスタの一覧および詳細を記述します。
■ DTP/ 外部割込みの端子
DTP/ 外部割込みで使用する端子は , 汎用入出力ポートと兼用です。
端子の機能と , DTP/ 外部割込みで使用する場合の設定を , 表 18.3-1 に示します。
表 18.3-1 DTP/ 外部割込みの端子
端子名
端子機能
DTP/ 外部割込みの使用に必要な端子の設定
INT0
INT1
INT2
汎用入出力ポート /
DTP 外部割込み入力
INT3
ポート方向レジスタ(DDR)により
" 入力ポート " に設定
INT4
INT5
INT6
汎用入出力ポート /
DTP 外部割込み入力 /
アドレスバス出力
INT7
■ 端子のブロックダイヤグラム
< 参照 >
端子のブロックダイヤグラムは , 「第 9 章 I/O ポート」をご参照ください。
■ DTP/ 外部割込みのレジスタと初期値の一覧
図 18.3-1 DTP/ 外部割込みのレジスタと初期値の一覧
bit
DTP/外部割込要因レジスタ(EIRR)
bit
DTP/外部割込許可レジスタ(ENIR)
bit
検出レベル設定レジスタ:上位(ELVRH)
bit
検出レベル設定レジスタ:下位(ELVRL)
15
14
13
12
11
10
9
8
X
X
X
X
X
X
X
X
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
X :不定
529
第 18 章 DTP/ 外部割込み
DTP/ 外部割込み要因レジスタ(EIRR)
18.3.1
DTP/ 外部割込みの要因を保持するレジスタです。DTP/ 外部割込み端子に有効な信
号が入力された場合 , 対応する割込み要求フラグビットに "1" が設定されます。
■ DTP/ 外部割込み要因レジスタ(EIRR)
図 18.3-2 DTP/ 外部割込み要因レジスタ(EIRR)
bit
15
13
14
12
11
10
9
8
初期値
XXXXXXXXB
R/W R/W
R/W R/W R/W R/W R/W R/W
bit15~bit8
ER7~ER0
R/W:リード/ライト
X :不定
0
1
DTP/外部割込要求フラグビット
リードした場合
ライトした場合
DTP/外部割込み入力なし ERビットをクリア
DTP/外部割込み入力あり 影響なし
表 18.3-2 DTP/ 外部割込み要因レジスタ(EIRR)の機能
ビット名
bit15
∼
bit8
ER0 ∼ ER7:
DTP/ 外部割込
み要求フラグ
ビット
< 注意事項 >
530
機 能
DTP/ 外部割込み端子に , 検出レベル設定レジスタ(ELVRH, L)の検出条件選
択ビット(LBx, LAx)で設定したエッジまたはレベル信号が入力された場合 ,
"1" が設定されます。
これらのビットに "1" を設定した場合 :
DTP/ 外部割込み要求許可ビット(EN)に "1" を設定している場合は , 対
応する DTP/ 外部割込みチャネルの割込み要求が発生します。
これらのビットに "0" を設定した場合 : クリアされます。
これらのビットに "1" を設定した場合 : 影響しません。
( 注意事項 )
複数の DTP/ 外部割込み要求が許可されている場合(ENIR: EN=1)は , 割込
みを受付けたチャネルのビットだけをクリアしてください(EIRR: ERx=0)。
( 参考 )
拡張インテリジェント I/O サービス(EI2OS)が起動された場合は , 1 つの
データ転送が終了した時点で , 対応する割込み要求フラグビットが自動的に
クリアされます(EIRR: ERx=0)。
• DTP/ 外部割込み要求フラグビット (EIRR:ER) の値は , 対応する DTP/ 外部割込
み要求許可ビット (ENIR:EN) が "1" に設定されているときのみ有効です。DTP/
外部割込みが許可されていない状態 (ENIR:EN=0) では , DTP/ 外部割込み要因の
有無にかかわらず DTP/ 外部割込み要因ビットがセットされる可能性がありま
す。
• DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割込み要
求フラグビット (EIRR:ER) をクリアしてください。
第 18 章 DTP/ 外部割込み
DTP/ 外部割込み許可レジスタ(ENIR)
18.3.2
DTP/ 外部割込み許可レジスタ(ENIR)は , 外部割込み端子(INT7 ∼ INT0)ごとに
外部割込み要求の " 許可 " または " 禁止 " を設定します。
■ DTP/ 外部割込み許可レジスタ(ENIR)
図 18.3-3 DTP/ 外部割込み許可レジスタ(ENIR)
bit
7
5
6
4
3
2
1
0
初期値
00000000B
R/W R/W
R/W R/W R/W R/W R/W R/W
bit7~bit0
EN7~EN0
R/W
:リード/ライト :初期値
0
1
DTP/外部割込み要求許可ビット
DTP/外部割込み禁止
DTP/外部割込み許可
表 18.3-3 DTP/ 外部割込み許可レジスタ(ENIR)の機能
ビット名
bit7
∼
bit0
EN7 ∼ EN0:
DTP/ 外部割込
み要求許可
ビット
< 注意事項 >
機 能
DTP/ 外部割込み端子に対して , DTP/ 外部割込み要求の " 許可 " または " 禁止 "
を設定します。
DTP/ 外部割込み要求許可ビット(ENx)に "1" を設定している場合に DTP/ 外
部割込み要因レジスタ(EIRR)の DTP/ 外部割込み要求フラグビット(ERx)
に "1" が設定されると , 対応する DTP/ 外部割込み端子の割込み要求が発生しま
す。
( 参考 )
DTP/ 外部割込み要求許可ビットの設定にかかわらず , DTP/ 外部割込み端子
の状態は ポートデータレジスタ(PDR)により , 直接読み出せます。
DTP/ 外部割込み許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割込み要求フ
ラグビット (EIRR:ER) をクリアしてください。
531
第 18 章 DTP/ 外部割込み
表 18.3-4 DTP/ 外部割込み端子と割込み要求フラグビット , 割込み許可ビットの対応
532
DTP/ 外部割込み端子
DTP/ 外部割込み要求
フラグビット
DTP/ 外部割込み要求
許可ビット
INT0
ER0
EN0
INT1
ER1
EN1
INT2
ER2
EN2
INT3
ER3
EN3
INT4
ER4
EN4
INT5
ER5
EN5
INT6
ER6
EN6
INT7
ER7
EN7
第 18 章 DTP/ 外部割込み
検出レベル設定レジスタ , 上位(ELVRH)
18.3.3
検出レベル設定レジスタ(上位)は , DTP/ 外部割込み端子のうちの INT7 ∼ INT4 に
対して , 割込み要因となる入力信号レベルまたはエッジを設定します。
■ 検出レベル設定レジスタ , 上位(ELVRH)
図 18.3-4 検出レベル設定レジスタ , 上位(ELVRH)
bit
15
14
13
12
11
10
9
8
初期値
00000000B
R/W R/W
R/W R/W R/W R/W R/W R/W
R/W :リード/ライト :初期値
bit15~bit8
LB7,LA7
LB6,LA6
検出条件選択ビット
LB5,LA5
LB4,LA4
0
0
"L"レベル検出
0
1
"H"レベル検出
1
0
立上りエッジ検出
1
1
立下りエッジ検出
表 18.3-5 検出レベル設定レジスタ , 上位(ELVRH)の機能
ビット名
bit15
∼
bit8
機 能
LB4, LA4 ∼
LB7, LA7:
検出条件選択
ビット
DTP/ 外部割込み端子に対して , 割込み要因の発生条件となる , 外部周辺装置か
らの入力信号のレベルまたはエッジを設定します。
• 外部割込みの場合は 2 種類のレベルまたは 2 種類のエッジから , EI2OS の場
合は 2 種類のレベルから選択してください。
( 参考 )
設定した検出信号が , DTP/ 外部割込み端子に入力されると , DTP/ 外部割込
み要求を " 禁止 " に設定していても(ENIR:ENx=0), DTP/ 外部割込み要求
フラグビットには "1" が設定されます。
表 18.3-6 検出レベル設定レジスタ : 上位と各チャネルの対応
DTP/ 外部割込み端子
ビット名
INT4
LB4, LA4
INT5
LB5, LA5
INT6
LB6, LA6
INT7
LB7, LA7
533
第 18 章 DTP/ 外部割込み
検出レベル設定レジスタ , 下位(ELVRL)
18.3.4
検出レベル設定レジスタ(下位)は , DTP/ 外部割込み端子のうちの INT3 ∼ INT0 に
対して , 割込み要因となる入力信号レベルまたはエッジを設定します。
■ 検出レベル設定レジスタ , 下位(ELVRL)
図 18.3-5 検出レベル設定レジスタ , 下位(ELVRL)
bit
7
6
5
4
3
2
1
0
初期値
00000000B
R/W R/W
R/W R/W R/W R/W R/W R/W
bit7~bit0
LB3,LA3
LB2,LA2
LB1,LA1
LB0,LA0
R/W :リード/ライト :初期値
0
0
1
1
0
1
0
1
検出条件選択ビット
"L"レベル検出
"H"レベル検出
立上りエッジ検出
立下りエッジ検出
表 18.3-7 検出レベル設定レジスタ , 下位(ELVRL)の機能
ビット名
bit7
∼
bit0
機 能
LB0, LA0 ∼
LB3, LA3:
検出条件選択
ビット
DTP/ 外部割込み端子に対して , 割込み要因の発生条件となる , 外部周辺装置か
らの入力信号のレベルまたはエッジを設定します。
• 外部割込みの場合は 2 種類のレベルまたは 2 種類のエッジから , EI2OS の場
合は 2 種類のレベルから選択してください。
( 参考 )
設定した検出信号が , DTP/ 外部割込み端子に入力されると , DTP/ 外部割込
み要求を " 禁止 " に設定していても(ENIR:ENx=0), DTP/ 外部割込み要求
フラグビットには "1" が設定されます。
表 18.3-8 検出レベル設定レジスタ : 下位と各チャネルの対応
534
DTP/ 外部割込み端子
ビット名
INT0
LB0, LA0
INT1
LB1, LA1
INT2
LB2, LA2
INT3
LB3, LA3
第 18 章 DTP/ 外部割込み
DTP/ 外部割込みの動作説明
18.4
DTP/ 外部割込みには , 外部割込み機能と DTP 機能があります。各機能の設定と動
作について説明します。
■ DTP/ 外部割込みの設定
DTP/ 外部割込みを使用するには , 図 18.4-1 の設定が必要です。
図 18.4-1 DTP/ 外部割込みの設定
bit
15 14
割込み制御
ICS3 ICS2
レジスタ(ICR)
外部割込みの場合 - -
DTPの場合 ◎ ◎
13
12
11
10
9
8
7
6
5
4
3
2
1
0
ICS1 ICS0 ISE IL2 IL1 IL0 ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 IL0
-
◎
-
◎
0
1
◎
◎
◎
◎
◎
◎
- -
◎ ◎
-
◎
-
◎
0
1
◎
◎
◎
◎
◎
◎
EIRR/ENIR ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0
◎ ◎
◎
◎
◎ ◎
◎
◎
○ ○
○
○
○ ○
○
○
ELVRH,L LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0
◎ ◎
◎
◎
◎ ◎
◎
DDR6
◎
◎ ◎
◎
◎
◎ ◎
◎
◎
P63
△
DTP/外部割込入力に使用する端子に対応するビットに"0"を設定
DDR1
-
◎
○
0
1
:未定義ビット
:使用ビット
:使用する端子に対応するビットに"1"を設定
:"0"を設定
:"1"を設定
● 設定の手順
DTP/ 外部割込みを使用する場合は , 以下の手順で各レジスタを設定してください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2. DTP/ 外部割込み許可レジスタ(ENIR)のビットの内 , 使用する DTP/ 外部割込み
チャネルに対応する割込み要求許可ビット(ENx)に "0" を設定します。
3. 検出レベル設定レジスタ(ELVRH, L)のビットの内 , 使用する DTP/ 外部端子に対
応する検出条件選択ビット(LAx, LBx)により , 検出するエッジまたはレベルを設
定します。
4. DTP/ 外部割込み要因レジスタ(EIRR)のビットの内 , 使用する DTP/ 外部割込み
チャネルに対応する割込み要求フラグビット(ERx)に "0" を設定します。
5. DTP/ 外部割込み許可レジスタ(ENIR)のビットの内 , 使用する DTP/ 外部割込み
チャネルに対応する割込み要求許可ビット(ENx)に "1" を設定します。
535
第 18 章 DTP/ 外部割込み
• DTP/ 外部割込みのレジスタは , 外部割込み要求を " 禁止 "(ENIR:ENx=0)に設定し
てから行ってください。
• DTP/ 外部割込み要求を " 許可 "(ENIR:ENx=1)する場合は , 先に DTP/ 外部割込み
要因レジスタ(EIRR)のビットの内 , 対応する DTP/ 外部割込み要求フラグビット
をクリア(ERx=0)する必要があります。これは , レジスタ設定時に誤って割込み
要求が発生するのを防ぐためです。
● 外部割込み機能と DTP 機能の選択
外部割込み機能と DTP 機能のどちらが実行されるかは , 対応する割込み制御レジスタ
(ICR)の EI2OS 許可ビット(ISE:bit11)の設定によって決定されます。
ISE ビットに "1" を設定した場合は , 拡張インテリジェント I/O サービス(EI2OS)が許
可され , DTP 機能が実行されます。
ISEビットに"0"を設定した場合は, EI2OSは禁止され, 外部割込み機能が実行されます。
< 注意事項 >
• 1 つの割込み制御レジスタに割当てられている割込み要求は , すべて割込みレベ
ル(IL2 ∼ IL0)が同じになります。
• 1 つの割込み制御レジスタに複数の割込み要求が割当てられている場合 , そのう
ちの 1 つが EI2OS を使用すると , ほかの割込み要求は使用できません。
■ DTP/ 外部割込み動作
DTP/ 外部割込みの制御ビットと割込み要因を , 表 18.4-1 に示します。
表 18.4-1 DTP/ 外部割込みの制御ビットと割込み要因
DTP/ 外部割込み
割込み要求フラグビット
EIRR:ER7 ∼ ER0
割込み要求許可ビット
ENIR:EN7 ∼ EN0
割込み要因
INT7 ∼ INT0 端子への , 有効エッジ / レベルの入力
DTP/ 外部割込みの割込み要求が割込みコントローラに対して出力された場合 , 割込み
制御レジスタ(ICR)の EI2OS 許可ビット(ISE:bit11)に "0" を設定している場合は ,
割込み処理が実行されます。"1" を設定している場合は , 拡張インテリジェント I/O サー
ビス(EI2OS)が実行されます。
DTP/ 外部割込みの動作を図 18.4-2 に示します。
536
第 18 章 DTP/ 外部割込み
図 18.4-2 DTP/ 外部割込みの動作
DTP/外部割込み回路
ほかの要求 割込みコントローラ
ELVRH,L
ICR YY
EIRR
CMP
ICR
XX
ENIR
CPU
IL
CMP
割込み処理
ILM
要因
EI2OS起動
DTP/外部割込み
要求発生
メモリ リソースデータ転送
ディスクリプタ更新
割込みコントローラ
受付け判定
ディスクリプタ
データカウンタ
CPU割込み
受付け判定
=0
割込み処理
≠0
再設定または停止
割込み処理
マイクロプログラム
起動
ICR:ISE
DTP処理から復帰
EI2OS処理(DTP処理)
から復帰
1
0
外部割込みを起動
処理と,割込みフラグクリア
外部割込みから復帰
537
第 18 章 DTP/ 外部割込み
18.4.1
外部割込み機能
DTP/ 外部割込み機能は , DTP/ 外部割込み端子における信号(エッジまたはレベル)
検出により , 割込み要求を発生します。
■ 外部割込み機能
DTP/ 外部割込み端子において , 検出レベル設定レジスタ(ELVRH, L)で設定した信号
(エッジまたはレベル)が検出されると , DTP/ 外部割込み要因レジスタ(EIRR)の割
込み要求フラグビット(ERx)に "1" がセットされます。
割込み要求フラグビット(ERx)に "1" がセットされた場合に , DTP/ 外部割込み許可レ
ジスタ(ENIR)の割込み要求許可ビットを " 許可 "(ENx=1)に設定していると , 割込
みコントローラに対して割込み要求が発生します。
割込みコントローラが , ほかの割込み要求よりも割込み優先順位が高いと判定した場
合は , 割込み処理を開始します。
CPU は , プロセッサステータス(PS)内のインタラプトレベルマスクビット(ILM)と
割込み要求のレベル(ICR:IL)を比較し , 割込み要求レベルが ILM より高く , かつ割込
み許可ビットが " 許可 " に設定されていた場合は(PS:CCR:I=1), 現在実行中の命令の
終了後に割込み処理を実行し , 割込み処理へ分岐します。
割込み処理ルーチン内で , DTP/ 外部割込み要因レジスタ(EIRR)のビットの内 , 対応
する DTP/ 外部割込み要求フラグビット(ERx)に "0" を設定し , DTP/ 外部割込み要求
をクリアしてください。
< 注意事項 >
538
• DTP/ 外部割込み要因レジスタ(EIRR)の DTP/ 外部割込み要求フラグビット
(ERx)は , DTP/ 外部割込み許可レジスタ(ENIR)の対応する DTP/ 外部割込み
要求許可ビット(ENx)の設定にかかわらず , DTP/ 外部割込み起動要因が発生
すると "1" が設定されます。
• 割込み処理が起動された場合は , 起動要因となった DTP/ 外部割込み要求フラグ
ビット(ERx)をクリアしてください。DTP/ 外部割込み要求フラグビット
(ERx)が "1" のままでは割込みから復帰できません。クリアする場合は , 受け付
けられている DTP/ 外部割込み要因以外のフラグビットをクリアしないように注
意してください。
第 18 章 DTP/ 外部割込み
DTP 機能
18.4.2
DTP/ 外部割込みは , 外部周辺装置からの信号を DTP/ 外部割込み端子において検出
し , 拡張インテリジェント I/O サービス(EI2OS)を起動します。
■ DTP 機能
DTP/ 外部割込み機能の検出レベル設定レジスタ(ELVRH, L)で設定した信号レベル
を検出することにより , 拡張インテリジェント I/O サービス(EI2OS)を起動します。
EI2OS の動作が " 許可 "(ICR レジスタの ISE:bit11=1)されていれば , 割込み要求が受
付けられた時点で EI2OS を起動し , データ転送を開始します。
1 つのデータ転送が終了するとディスクリプタの更新などが行われ , DTP/ 外部割込み
要因レジスタ(EIRR)の DTP/ 外部割込み要求フラグビット(ERx)がクリアされて ,
DTP/ 外部割込み端子からの次の要求に備えます。
EI2OS による転送がすべて終了すると , 割込み処理へ分岐します。
図 18.4-3 外部周辺装置とのインタフェース例
"H"レベル要求(ELVR:LB0,LA0=01B)
INT0端子への入力
(DTP/DTP外部要因)
CPU内部動作
ディスクリプタ
選択,読出し
外部接続の
周辺装置
ディスクリプタ
更新
内部データバス
リード/
ライト動作*2
データ転送要求
DTP/外部割込み
要因*1
INT
DTP/外部
割込み回路
割込み要求
CPU
(EI2OS)
内部メモリ
*1:転送開始後,3マシンサイクル以内に取下げる
*2:拡張インテリジェントI/Oサービスが"リソース→内部メモリ転送"の場合
539
第 18 章 DTP/ 外部割込み
DTP/ 外部割込み使用上の注意
18.5
DTP/ 外部割込みを使用する際は , 以下の点にご注意ください。
■ DTP/ 外部割込み使用上の注意
● DTP 機能を使用する場合の外部接続する周辺装置の条件
DTP 機能を使用する場合は , 転送により自動的にデータ転送要求をクリアしてくださ
い。
転送動作を開始してから 3 マシンサイクル以内に転送要求信号を無効にしてください。
有効にしたままの場合 , DTP/ 外部割込みは , 次の転送要求が発生したものとして , 再度
データ転送動作を行います。
● 外部割込みの入力極性
検出レベル設定レジスタでエッジ検出を設定している場合は , エッジを検出するため
のパルス幅は最小 3 マシンサイクルが必要です。
要求入力レベルがレベル設定の場合 , パルス幅はデータシートに記載されている最小
パルス幅以上の期間を必要とします。また割込み入力端子がアクティブレベルを保持
しつづけている限りは , DTP/ 外部割込み要因レジスタをクリアしても , 割込みコント
ローラへの割込み要求は発生し続けます。
検出レベル設定レジスタ(ELVRH, L)でレベル検出を設定している場合は , 割込み要
因となるレベルが入力されると , DTP/ 外部割込み要因レジスタ(EIRR)の割込み要求
フラグビット (EIRR:ERx) に "1" が設定され , 図 18.5-1 に示すように , 要因が保持され
ます。
割込み要求フラグビット (EIRR:ERx) に要因が保持された場合は , DTP/ 外部割込み要因
が取下げられても , 割込み要求許可状態(ENIR:ENx=1)であれば , 割込みコントロー
ラへの要求はアクティブのままです。割込みコントローラへの要求を取下げるには
DTP/ 外部割込み要因レジスタ(EIRR)の割込み要求フラグビット(EIRR:ERx)をク
リアする必要があります。
図 18.5-1 レベル検出が設定されている場合の割込み要求フラグビット (EIRR:ERx) のクリア
DTP/外部
割込み要因
DTP/割込み入力
検出回路
割込み要求フラグビット
(EIRR:ERx)
許可ゲート
クリアしない限り要因を保持し続ける
540
割込み
コントローラへ
(割込み要求)
第 18 章 DTP/ 外部割込み
図 18.5-2 割込み要求許可の場合の DTP/ 外部割込み要因と割込み要求
DTP/外部割込み要因
("H"レベル検出の場合)
割込み要因の取下げ
割込みコントローラ
への割込み要求
割込み要求フラグビット(EIRR:ERx)
のクリアによって無効となる
● 割込みに関する注意
外部割込み機能を使用している場合は , DTP/ 外部割込み要因レジスタ(EIRR)の DTP/
外部割込み要求フラグビット(ERx)に "1" が設定され , DTP/ 外部割込み要求を
" 許可 " に設定した状態(ENIR:ENx=1)では , 割込み処理から復帰できません。割込
み処理ルーチン内で必ず DTP/ 外部割込み要因レジスタ(EIRR)の DTP/ 外部割込み要
求フラグビット(ERx)に "0" を設定してください。
検出レベル設定レジスタ(ELVRH, L)でレベル検出を設定している場合は , 割込み要
因となるレベルが入力されたままであれば , DTP/ 外部割込み要因レジスタ(EIRR)の
DTP/ 外部割込み要求フラグビット(ERx)をクリアしても , すぐに再セットされます。
必要に応じて DTP/ 外部割込み要求を禁止するか(ENIR:ENx=0), 割込み要因を解消し
てください。
541
第 18 章 DTP/ 外部割込み
18.6
DTP/ 外部割込み回路のプログラム例
DTP/ 外部割込み機能のプログラム例を示します。
■ DTP/ 外部割込み機能のプログラム例
● 処理仕様
INT0 端子に入力されるパルスの立上りエッジを検出して外部割込みを発生します。
● コーディング例
ICR04
DDR6
DDR1
ENIR
EIRR
ELVRL
ELVRH
ER0
EN0
;
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0000B4H
000016H
000011H
000030H
000031H
000032H
000033H
EIRR:0
ENIR:0
;DTP/ 外部割込み制御レジスタ
; ポート 6 方向レジスタ
; ポート 1 方向レジスタ
;DTP/ 外部割込み許可レジスタ
;DTP/ 外部割込み要因レジスタ
; 検出レベル設定レジスタ :L
; 検出レベル設定レジスタ :H
;INT0 割込み要求フラグビット
;INT0 割込み要求許可ビット
;--------- メインプログラム ------------------------------------------CODE
CSEG
START:
LOOP:
MOV
AND
MOV
CLRB
MOV
CLRB
SETB
MOV
OR
MOV
MOV
BRA
; スタックポインタ(SP)などは初期化済みとする
I:DDR1,#00000000B;DDR1 を " 入力ポート " に設定
CCR,#0BFH ; 割込み禁止
I:ICR04,#00H ; 割込みレベル 0(最強), EI2OS 禁止
I:EN0
;ENIR で INT0 を禁止
I:ELVRL,#00000010B;INT0 は , 立上がりエッジ選択
I:ER0
;EIRR で INT0 の割込み要求フラグクリア
I:EN0
;ENIR で INT0 の割込み要求許可
ILM,#07H
;PS 内の ILM をレベル7に設定
CCR,#40H
; 割込み許可
A,#00H
; 無限ループ
A,#01H
;
LOOP
;
;--------- 割込みプログラム ------------------------------------------WARI:
;
CODE
CLRB I:ER0
・
ユーザ処理
・
RETI
ENDS
; 割込み要求フラグをクリア
; 割込み処理からの復帰
;--------- ベクタ設定 -----------------------------------------------VECT
CSEG ABS=0FFH
VECT
542
ORG
DSL
00FFACH
WARI
; 割込み番号 #20(14H)にベクタを設定
ORG
DSL
00FFDCH
START
; リセットベクタ設定
DB
ENDS
END
00H
; シングルチップモードに設定
START
第 18 章 DTP/ 外部割込み
■ DTP 機能のプログラム例
● 処理仕様
INT0 端子に入力される信号の "H" レベルを検出して , 拡張インテリジェント I/O サー
ビス(EI2OS)のチャネル 0 を起動します。
DTP 処理(EI2OS)で RAM 上のデータをポート 0 へ出力します。
● コーディング例
ICR04
DDR0
DDR1
ENIR
EIRR
ELVRL
ELVRH
ER0
EN0
;
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0000B4H
000010H
000011H
000030H
000031H
000032H
000033H
EIRR:0
ENIR:0
;DTP/ 外部割込み制御レジスタ
; ポート 0 方向レジスタ
; ポート 1 方向レジスタ
;DTP/ 外部割込み許可レジスタ
;DTP/ 外部割込み要因レジスタ
; 検出レベル設定レジスタ :L
; 検出レベル設定レジスタ :H
;INT0 割込み要求フラグビット
;INT0 割込み要求許可ビット
BAPL
BAPM
BAPH
ISCS
IOAL
IOAH
DCTL
DCTH
;
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
000100H
000101H
000102H
000103H
000104H
000105H
000106H
000107H
; バッファアドレスポインタ下位
; バッファアドレスポインタ中位
; バッファアドレスポインタ上位
;EI2OS ステータスレジスタ
;I/O アドレスレジスタ下位
;I/O アドレスレジスタ上位
; データカウンタ下位
; データカウンタ上位
;--------- メインプログラム ------------------------------------------CODE
CSEG
START:
MOV
MOV
AND
MOV
MOV
MOV
MOV
; スタックポインタ(SP)などは初期化済みとする
I:DDR0,#11111111B;DDR0 で " 出力ポート " に設定
I:DDR1,#00000000B;DDR1 で " 入力ポート " に設定
CCR,#0BFH
; 割込み禁止
I:ICR04,#08H
; 割込みレベル 0(最強)EI2OS 許可 チャネル 0
BAPL,#00H
; 出力データの格納先アドレスの設定
BAPM,#06H
;(600H ∼ 60AH を使用)
BAPH,#00H
MOV
ISCS,#12H
MOV
MOV
MOV
MOV
IOAL,#00H
IOAH,#00H
DCTL,#0AH
DCTH,#00H
; バイト転送 , バッファアドレス+ 1,
;I/O アドレス固定 , メモリ→ I/O へ転送
; 転送先アドレスポインタとして
; ポート 0(PDR0)を設定
; 転送回数を 10 回に設定
;
CLRB
MOV
CLRB
SETB
MOV
OR
LOOP:
I:EN0
;ENIR で INT0 を禁止
I:ELVRL,#00000001B;INT0 は , "H" レベル検出を設定
I:ER0
;EIRR で INT0 の割込み要求フラグクリア
I:EN0
;ENIR で INT0 の割込み要求許可
ILM,#07H
;PS 内の ILM をレベル7に設定
CCR,#40H
; 割込み許可
MOV
A,#00H
; 無限ループ
MOV
A,#01H
;
BRA
LOOP
;
543
第 18 章 DTP/ 外部割込み
;--------- 割込みプログラム ------------------------------------------WARI:
CLRB I:ER0
;INT0 割込み要求フラグをクリア
;
; 要求があればチャネルを切り換え , 転送アドレスを変更
・
ユーザ処理
;EI2OS の終了などの処理を再指定。処理を終了するために
,
; 割込みは禁止であること
・
RETI
; 割込み処理からの復帰
CODE
ENDS
;--------- ベクタ設定 -----------------------------------------------VECT
CSEG ABS=0FFH
ORG
00FFACH
; 割込み番号 #20(14H)にベクタを設定
VECT
544
DSL
ORG
DSL
DB
ENDS
END
WARI
00FFDCH
START
00H
START
; リセットベクタ設定
; シングルチップモードに設定
第 19 章
遅延割込み発生モジュール
遅延割込み発生モジュールの機能と動作について
説明します。
19.1 遅延割込み発生モジュールの概要
19.2 遅延割込み発生モジュールのブロックダイヤグラム
19.3 遅延割込み発生モジュールの構成
19.4 遅延割込み発生モジュールの動作説明
19.5 遅延割込み発生モジュール使用上の注意
19.6 遅延割込み発生モジュールのプログラム例
545
第 19 章 遅延割込み発生モジュール
19.1
遅延割込み発生モジュールの概要
遅延割込み発生モジュールは , タスク切換え用の割込みを発生するためのモジュー
ルです。
ソフトウェアによってハードウェア割込み要求を発生させることができます。
■ 遅延割込み発生モジュールの概要
遅延割込み発生モジュールを使用することにより , ソフトウェアによってハードウェ
ア割込み要求を発生または解除できます。
表 19.1-1 に , 遅延割込み発生モジュールの概要を示します。
表 19.1-1 遅延割込み発生モジュールの概要
機能と制御
割込み要因
遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に "1" を設定す
ることにより割込み要求を発生
遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に "0" を設定す
ることにより割込み要求を解除
割込み番号
#42(2AH)
割込み制御
レジスタによる許可設定はありません。
割込みフラグ
EI2OS
546
遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に保持されてい
ます。
拡張インテリジェント I/O サービスには対応していません。
第 19 章 遅延割込み発生モジュール
19.2
遅延割込み発生モジュールのブロックダイヤグラム
遅延割込み発生モジュールは , 以下のブロックで構成されています。
• 割込み要求ラッチ
• 遅延割込み要求発生 / 解除レジスタ(DIRR)
■ 遅延割込み発生モジュールのブロックダイヤグラム
図 19.2-1 遅延割込み発生モジュールのブロックダイヤグラム
内部データバス
-
-
-
-
-
-
-
R0
遅延割込み要求発生/解除レジスタ(DIRR)
S
R
割込み要求
ラッチ
割込み要求
信号
-:未定義
● 割込み要求ラッチ
遅延割込み要求発生 / 解除レジスタ(DIRR)の設定内容(遅延割込み要求の発生また
は解除)を保持するラッチです。
● 遅延割込み要求発生 / 解除レジスタ(DIRR)
遅延割込み要求を発生または解除します。
■ 割込み番号
遅延割込み発生モジュールで使用する割込み番号を以下に示します。
• 割込み番号 #42(2AH)
547
第 19 章 遅延割込み発生モジュール
19.3
遅延割込み発生モジュールの構成
遅延割込み発生モジュールのレジスタ一覧および詳細を記述します。
■ レジスタと初期値の一覧
図 19.3-1 遅延割込み発生モジュールのレジスタと初期値の一覧
bit
遅延割込み要求発生/解除レジスタ(DIRR)
X :不定
548
15
14
13
12
11
10
9
8
X
X
X
X
X
X
X
0
第 19 章 遅延割込み発生モジュール
遅延割込み要求発生 / 解除レジスタ(DIRR)
19.3.1
遅延割込み要求発生 / 解除レジスタ(DIRR)は , 遅延割込み要求を発生または解除
します。
■ 遅延割込み要求発生 / 解除レジスタ(DIRR)
図 19.3-2 遅延割込み要求発生 / 解除レジスタ(DIRR)
bit
15
14
13
12
11
10
9
8
初期値
XXXXXXX0B
-
-
-
-
-
-
-
R/W
bit8
- :未定義
R/W :リード/ライト
:初期値
R0
0
1
遅延割込み要求発生ビット
遅延割込み要求を解除
遅延割込み要求を発生
表 19.3-1 遅延割込み要求発生 / 解除レジスタ(DIRR)の機能
ビット名
機 能
bit15
∼
bit9
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit8
R0:
遅延割込み要
求発生ビット
遅延割込み要求を発生または解除します。
このビットに "0" を設定した場合 : 遅延割込み要求を解除します。
このビットに "1" を設定した場合 : 遅延割込み要求を発生します。
549
第 19 章 遅延割込み発生モジュール
19.4
遅延割込み発生モジュールの動作説明
遅延割込み発生モジュールには , ソフトウェアによって割込み要求を発生または解
除する機能があります。
■ 遅延割込み発生モジュールの動作説明
遅延割込み発生モジュールを使用するには , 図 19.4-1 の設定が必要です。
図 19.4-1 遅延割込み発生モジュールの設定
bit 15
14
13
12
11
10
9
8
-
-
-
-
-
-
-
R0
DIRR
◎
- :未定義ビット
◎ :使用ビット
遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に "1" を設定した場合 , 割込み
要求を発生します。割込み要求の許可ビットはありません。
● 遅延割込み発生モジュールの動作
遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に "1" を設定した場合 , 割込み
要求ラッチが "1" に設定され , 割込みコントローラに対して割込み要求を発生します。
要求された割込みに対して割込みコントローラが , ほかの割込み要求よりも割込み優
先順位が高いと判定した場合は , CPU に対して割込み要求が発生します。
CPU 側は , プロセッサステータス(PS)内のインタラプトレベルマスクビット(ILM)
と割込み要求のレベル(ICR: IL)を比較し , 割込み要求レベルが ILM より高かった場合
は , 現在実行中の命令の終了後に , 遅延割込み処理を実行します。
割込み処理ルーチン内で , ユーザプログラムによって R0:bit8 に "0" を設定することで
割込み要求を解除し , タスクを切り換えます。
図 19.4-2 に遅延割込み発生モジュールの動作を示します。
図 19.4-2 遅延割込み発生モジュールの動作
遅延割込み発生モジュール
ほかの要求
割込みコントローラ
DIRR
ICR YY
IL
CMP
CMP
ICR XX
550
CPU
ILM
割込み
処理
第 19 章 遅延割込み発生モジュール
19.5
遅延割込み発生モジュール使用上の注意
遅延割込み発生モジュールを使用する場合は , 以下の点に注意してください。
■ 遅延割込み発生モジュール使用上の注意
割込み処理ルーチン内で遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に "0"
を設定せずに , 割込み処理から復帰した場合は , 再度割込み処理を起動します。
遅延割込み発生モジュールにおける割込みは , ソフトウェア割込みとは異なり , 遅延が
伴います。
551
第 19 章 遅延割込み発生モジュール
19.6
遅延割込み発生モジュールのプログラム例
遅延割込み発生モジュールのプログラム例を示します。
■ 遅延割込み発生モジュールのプログラム例
● 処理仕様
メインプログラムで遅延割込み要因発生 / 解除レジスタ(DIRR)の R0:bit8 に "1" を設
定し , 遅延割込み要求を発生させ , タスク切換えを処理します。
● コーディング例
ICR15
EQU
0000BFH ; 割込み制御レジスタ
DIRR
EQU
00009FH ; 遅延割込み要求発生 / 解除レジスタ
DIRR_R0 EQU
DIRR:0
; 遅延割込み要求発生ビット
;--------- メインプログラム ------------------------------------------CODE
CSEG
START:
; スタックポインタ(SP)などは初期化済みとする
AND
CCR,#0BFH
; 割込み禁止
MOV
I:ICR15,#00H ; 割込みレベル 0(最強)
MOV
ILM,#07H
;PS 内の ILM をレベル 7 に設定
OR
CCR,#40H
; 割込み許可
SETB
I:DIRR_R0
; 遅延割込み要求発生
LOOP
MOV
A,#00H
; 無限ループ
MOV
A,#01H
BRA
LOOP
;--------- 割込みプログラム ------------------------------------------WARI:
CLRB
I:DIRR_R0
; 割込み要求フラグをクリア
:
; ユーザ処理
; :
RETI
; 割込みから復帰
CODE
ENDS
;--------- ベクタ設定 -----------------------------------------------VECT
CSEG
ABS=0FFH
ORG
0FF54H
; 割込み #42(2AH)にベクタを設定
VECT
552
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH
START
00H
START
; リセットベクタ設定
; シングルチップモードに設定
第 20 章
8/10 ビット A/D コンバータ
8/10 ビット A/D コンバータの機能と動作について
説明します。
20.1 8/10 ビット A/D コンバータの概要
20.2 8/10 ビット A/D コンバータのブロックダイヤグラム
20.3 8/10 ビット A/D コンバータの端子
20.4 8/10 ビット A/D コンバータのレジスタ構成
20.5 8/10 ビット A/D コンバータの割込み
20.6 8/10 ビット A/D コンバータの動作
20.7 8/10 ビット A/D コンバータ使用上の注意
20.8 8/10 ビット A/D コンバータのプログラム例 1 (EI2OS
を使用した場合の単発変換モード)
20.9 8/10 ビット A/D コンバータのプログラム例 2 (EI2OS
を使用した場合の連続変換モード)
20.10 8/10 ビット A/D コンバータのプログラム例 3 (EI2OS
を使用した場合の停止変換モード)
553
第 20 章 8/10 ビット A/D コンバータ
20.1
8/10 ビット A/D コンバータの概要
8/10 ビット A/D コンバータは , RC 逐次比較変換方式によりアナログ入力電圧を 10
ビットまたは 8 ビットのディジタル値へ変換します。入力信号は , アナログ入力端
子の 8 チャネルから選択します。変換はソフトウェア , 16 ビットリロードタイマ 1
出力(立上りエッジ)および 16 ビットフリーランタイマゼロ検出エッジにより起動
できます。
■ 8/10 ビット A/D コンバータの機能
8/10 ビット A/D コンバータは , アナログ入力端子へのアナログ電圧入力(入力電圧)を
ディジタル値へ変換します。8/10 ビット A/D コンバータの特長は , 以下のとおりです。
• 最小変換時間は , 6.13µs(この値は , マシンクロックが 16MHz の場合の値であり , サ
ンプリング時間を含んでいます)。
• 最小サンプリング時間は , 3.75µs(この値は , マシンクロックが 16MHz の場合の値
です)。
• サンプルホールド回路における RC 逐次比較変換方式。
• 10 ビットまたは 8 ビットの分解能を選択可能。
• プログラムによるアナログ入力端子に対するチャネル(最高 8 チャネル可能)選択
可能。
• A/D 変換終了時に , 割込み要求の生成と EI2OS の起動可能。
• 割込み許可時 , 変換データ保護機能は連続変換によるデータ消失の発生を完全に防
止。
• 変換は , ソフトウェア , 16 ビットリロードタイマ 1 出力(立上りエッジ)および 16
ビットフリーランタイマゼロ検出エッジにより起動。
3 つの異なる変換モードを表 20.1-1 に示します。
表 20.1-1 8/10 ビット A/D コンバータの変換モード
単一変換
スキャン変換
単発変換モード
設定したチャネル(1 チャネル)の入力を 1
回変換後終了。
2 つ以上の連続したチャネル(最大 8 チャ
ネル)の入力を 1 回だけ変換後終了。
連続変換モード
設定したチャネル(1 チャネル)の入力を
繰返し変換。
2 つ以上の連続したチャネル(最大 8 チャ
ネル)の入力を繰返し変換。
停止変換モード
設定したチャネル(1 チャネル)を 1 回変
換実行後 , 一時停止し , 次の起動がかかるま
で待機。
2 つ以上の連続したチャネル(最大 8 チャ
ネル)を 1 回変換実行後 , 一時停止し , 次の
起動がかかるまで待機。
554
第 20 章 8/10 ビット A/D コンバータ
■ 8/10 ビット A/D コンバータ割込みと EI2OS
表 20.1-2 8/10 ビット A/D コンバータ割込みと EI2OS
割込み制御レジスタ
ベクトルテーブルアドレス
EI2OS
割込み番号
#11(0BH)
レジスタ名
アドレス
下位
上位
バンク
ICR00
0000B0H
FFFFD0H
FFFFD1H
FFFFD2H
○
○ :EI2OS 割込みクリア信号により割込み要求フラグがクリアされると , 使用可能。
555
第 20 章 8/10 ビット A/D コンバータ
20.2
8/10 ビット A/D コンバータのブロックダイヤグラム
8/10 ビット A/D コンバータは , 9 ブロックから構成されています。ブロックダイヤ
グラムを図 20.2-1 に示します。
■ 8/10 ビット A/D コンバータのブロックダイヤグラム
図 20.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム
D/Aコンバータ
AN0
AN1
AN2
AN3
AN4
AN5
AN6
AN7
入力回路
MPX
順次コンペアレジスタ
コンパレータ
内部データバス
AVCC AVR AVSS
デコーダ
サンプルホールド回路
データレジスタ
ADCR0,ADCR1
A/D制御レジスタ0
A/D制御レジスタ1 ADCS0,
ADCS1
16ビットリロードタイマ1
16ビットフリーランタイマ0検出
φ
動作クロック
プリスケーラ
φ:マシンクロック
● A/D 制御ステータスレジスタ(ADCS0, ADCS1)
このレジスタは , A/D 変換モードの設定と A/D 変換開始 / 終了チャネルの設定を行う機
能があります。
● A/D データレジスタ(ADCR0, ADCR1)
このレジスタは , A/D 変換起動要因の設定 , 割込みの許可 / 禁止の設定 , 割込み要求の
確認 , A/D 変換の停止中 / 動作中の確認を行う機能があります。
556
第 20 章 8/10 ビット A/D コンバータ
● クロックセレクタ
クロックセレクタは , A/D 変換を起動するためのクロックを選択します。16 ビットリ
ロードタイマチャネル 1 出力か 16 ビットフリーランタイマゼロ検出のいずれかを起動
クロックとして使用できます。
● デコーダ
この回路は , A/D 制御ステータスレジスタ(ADCS0)の ANE2 ∼ ANE0:bit2 ∼ bit0 と
ANS2 ∼ ANS0:bit5 ∼ bit3 の設定値に基づいて , 使用するアナログ入力端子を選択しま
す。
● アナログチャネルセレクタ
この回路は , 使用するピンを 8 つのアナログ入力端子の中から選択します。
● サンプルホールド回路
この回路は , アナログチャネルセレクタで選択されたチャネルの入力電圧を保持しま
す。この回路は , A/D 変換が起動された直後に得た入力電圧をサンプリングし , 保持す
ることで A/D 変換中(コンペア中)は , A/D 変換における入力電圧変動の影響を受け
なくします。
● D/A コンバータ
この回路は , サンプルホールド回路で保持されている入力電圧と , 比較される基準電圧
を生成します。
● コンパレータ
この回路は , サンプルホールド回路で保持されている入力電圧を D/A コンバータの出
力電圧と比較し , どちらが大きいかを判断します。
● 制御回路
この回路は , コンパレータで生成された信号に基づいて A/D 変換値を決定します。A/D
変換が完了すると , この回路は A/D データレジスタ(ADCR0, ADCR1)に変換結果を
格納し , 割込み要求を生成します。
557
第 20 章 8/10 ビット A/D コンバータ
20.3
8/10 ビット A/D コンバータの端子
8/10 ビット A/D コンバータの端子について説明します。また , 端子のブロックダイ
ヤグラムも示します。
■ 8/10 ビット A/D コンバータの端子
A/D コンバータの端子は , 汎用端子としても使用されます。端子機能 , I/O 形式および
8/10 ビット A/D コンバータを使用するために必要な設定値を表 20.3-1 に示します。
表 20.3-1 8/10 ビット A/D コンバータの端子
機 能
端子名
チャネル 0
P50/AN0
チャネル 1
P51/AN1
チャネル 2
P52/AN2
チャネル 3
P53/AN3
チャネル 4
P54/AN4
チャネル 5
P55/AN5
チャネル 6
P56/AN6
チャネル 7
P57/AN7
558
端子機能
ポート 5 入出
力またはアナ
ログ入力
入力信号種別
CMOS 出力 /
CMOS ヒステリ
シス入力または
アナログ入力
プルアップ
設定
なし
スタンバイ
制御
端子を使用するために
必要な設定値
なし
ポート 5 を入力ポートと
して設定します
(DDR5:bit0 ∼ bit7=0)。
ポート 5 をアナログ入力
ポートとして設定します
(ADER:bit0 ∼ bit7=
11111111B)。
第 20 章 8/10 ビット A/D コンバータ
■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム
図 20.3-1 P50/AN0 ∼ P57/AN7 端子のブロックダイヤグラム
ADER
アナログ入力
内部データバス
ポートデータレジスタ(PDR)
PDR読出し
出力ラッチ
PDR書込み
端子
ポート方向レジスタ(DDR)
方向ラッチ
DDR書込み
DDR読出し
< 注意事項 >
スタンバイ制御信号(SPL=1)
• 端子を入力ポートとして使用する場合は , DDR5 レジスタの対応するビットに
"0" を設定し , アナログ入力許可(ADER)の対応するビットに "0" を設定してく
ださい。
• 端子をアナログ入力端子として使用する場合は , アナログ入力許可(ADER)レ
ジスタの対応するビットに "1" を設定してください。PDR5 レジスタから読み出
される値は "0" です。
559
第 20 章 8/10 ビット A/D コンバータ
20.4
8/10 ビット A/D コンバータのレジスタ構成
8/10 ビット A/D コンバータのレジスタ構成を示します。
■ 8/10 ビット A/D コンバータのレジスタ構成
図 20.4-1 8/10 ビット A/D コンバータのレジスタ構成
アナログ入力許可レジスタ
7
6
5
4
3
1
0
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
15
14
13
12
11
10
9
8
BUSY
INT
INTE
PAUS
STS1
STS0
STRT
RESV
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
W
0
R/W
0
6
5
4
3
2
1
0
MD1
MD0
ANS2
ANS1
ANS0
ANE2
ANE1
ANE0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
15
14
13
12
11
9
8
S10
ST1
ST0
CT1
CT0
D9
D8
R/W
0
W
0
W
1
W
0
W
1
R
X
R
X
bit
リード/ライト
初期値
2
ADER
A/D制御ステータスレジスタ1
bit
リード/ライト
初期値
ADCS1
A/D制御ステータスレジスタ0
7
bit
リード/ライト
初期値
ADCS0
A/Dデータレジスタ1
bit
リード/ライト
初期値
10
ADCR1
A/Dデータレジスタ0
bit
リード/ライト
初期値
560
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R
X
R
X
R
X
R
X
R
X
R
X
R
X
R
X
ADCR0
第 20 章 8/10 ビット A/D コンバータ
A/D 制御ステータスレジスタ 1(ADCS1)
20.4.1
A/D 制御ステータスレジスタ 1(ADCS1)は , A/D 変換起動要因の設定 , 割込みの許
可 / 禁止 , 割込み要求の確認および A/D 変換の停止中 / 動作中の確認を行う機能があ
ります。
■ A/D 制御ステータスレジスタ 1(ADCS1)
図 20.4-2 A/D 制御ステータスレジスタ 1(ADCS1)
bit
15
14
BUSY
INT
R/W
R/W
13
12
11
10
9
8
INTE PAUS STS1 STS0 STRT RESV
R/W
R/W
R/W
R/W
W
7
0
初期値
(ADCS0)
00000000B
R/W
予約
予約ビット
このビットには必ず"0"を書込んでください
STRT
A/D変換起動ビット
(ソフトウェアにより起動される(ADC2:EXT=0)場合にのみ有効)
A/D変換機能が起動しません
A/D変換機能が起動します
0
1
STS1 STS0
0
0
ソフトウェアにより起動します
0
1
外部トリガまたはソフトウェアにより起動します
1
0
1
1
タイマまたはソフトウェアにより起動します
外部トリガ,タイマまたはソフトウェア
により起動します
PAUS
停止フラグビット
(EI2OSが使用されている場合にのみ有効)
A/D変換が停止しません
A/D変換が停止します
0
1
INTE
1
0
割込み要求出力が禁止になります
1
割込み要求出力が禁止になります
読出し
書込み
A/D変換が完了していません
A/D変換が完了しました
BUSY
0
R/W : リード/ライト
W : ライトオンリ
: 初期値
割込み要求許可ビット
割込み要求フラグビット
INT
0
A/D起動要因ビット
1
このビットはクリアされます
影響なし
変換中ビット
読出し
A/D変換が停止されています
A/D変換が進行中です
書込み
A/D変換が停止されます
影響なし
561
第 20 章 8/10 ビット A/D コンバータ
表 20.4-1 A/D 制御ステータスレジスタ 1(ADCS1)の各ビットの機能説明 ( 1 / 2 )
ビット名
機 能
BUSY:
変換中ビット
このビットは , A/D コンバータの動作状態を示します。
このビットの読出し値が "0" の場合 , A/D 変換は停止されています。"1" の場
合 , A/D 変換動作中を示します。
• このビットに "0" を設定した場合 :A/D 変換は停止します。
• このビットに "1" を設定した場合 : このビットの値は変化せず , 動作に影響
しません。
( 注意事項 )
強制停止(BUSY=0)とソフトウェアによる起動(STRT=1)を同時に設定
しないでください。
bit14
INT:
割込み要求フ
ラグビット
A/D データレジスタに A/D 変換データが格納されると , このビットに "1" が
設定されます。
• 割込み要求許可ビット(INTE)に "1" が設定されている場合に "1" がセット
されると , 割込み要求が生成されます。EI2OS が許可になっている場合は ,
EI2OS が起動します。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットの値は変化せず , 動作に影響
しません。
• EI2OS が起動すると , このビットはクリアされます。
( 注意事項 )
このビットに "0" を書き込むことによってこのビットをクリアする処理は ,
A/D コンバータが動作していないときにのみ行ってください。
bit13
INTE:
割込み要求許
可ビット
•
•
bit15
•
•
•
•
このビットは , CPU への割込み出力を許可または禁止します。
このビットに "1" を設定した場合 :
割込み要求フラグビット(INT)に "1" がセットされると割込み要求が
生成されます。
EI2OS を使用する場合は "1" を設定してください。
A/D 変換が一時停止すると , このビットには "1" が設定されます。
この A/D コンバータは , A/D データレジスタを 1 つしか備えていません。し
たがって , 連続変換モード時は , CPU が前の変換結果を読み出す前に新しい
変換結果が書き込まれると , 前の変換結果は失われます。連続変換モードが
選択されると , 変換が完了するたびに EI2OS が自動的に変換結果をメモリへ
転送するようにしてください。このビットはまた , 次の変換を開始する前に ,
変換データ転送の完了を複数の割込みが発生するのを防止します。変換が完
了すると , このビットには "1" が設定されます。この状態は , EI2OS がデータ
レジスタのデータを転送し終えるまで保持されます。
• このビットに "1" を設定した場合 :
A/D 変換は停止します。したがって , 変換データを格納できません。
EI2OS が変換データの転送を完了すると , A/D コンバータは自動的に変
換を再開します。
( 注意事項 )
このビットは , EI2OS が使用されている場合にのみ有効です。
•
•
bit12
bit11,
bit10
562
PAUS:
停止フラグ
ビット
STS1, STS0:
A/D 起動要因
ビット
これらのビットは , A/D 変換の起動方法を選択します。
複数の起動要因が兼用されている場合 , 最初に発生した起動要因により起動
されます。
( 注意事項 )
A/D 変換時におけるこれらのビットの設定変更後直ちに有効になるので , 対
応する起動要因が存在しない間にのみ行ってください。
•
•
第 20 章 8/10 ビット A/D コンバータ
表 20.4-1 A/D 制御ステータスレジスタ 1(ADCS1)の各ビットの機能説明 ( 2 / 2 )
ビット名
bit9
STRT:
A/D 変換起動
ビット
bit8
予約 :
予約ビット
機 能
• このビットを使用すると , ソフトウェアは A/D 変換を起動できます。
• このビットに "1" を設定した場合 :A/D 変換を起動できます。
• このビットは , 停止変換モード時に変換の再起動はできません。
• バイト/ワード命令では "1" が読み出されます。
• リードモディファイライト系命令では "0" が読み出されます。
( 注意事項 )
強制停止(BUSY=0)とソフトウェアによる起動(STRT=1)を同時に設定
しないでください。
このビットには必ず "0" を書き込んでください。
563
第 20 章 8/10 ビット A/D コンバータ
20.4.2
A/D 制御ステータスレジスタ 0(ADCS0)
A/D 制御ステータスレジスタ 0(ADCS0)は , 変換モードと A/D 変換チャネルを選
択します。
■ A/D 制御ステータスレジスタ 0(ADCS0)
図 20.4-3 A/D 制御ステータスレジスタ 0(ADCS0)
bit
8
15
(ADCS:H)
7
6
5
4
3
2
1
0
MD1
MD0
ANS2 ANS1
ANS0 ANE2 ANE1 ANE0
R/W
R/W
R/W
R/W
R/W
ANE2 ANE1 ANE0
R/W
R/W
初期値
00000000B
R/W
A/D変換終了チャネル選択ビット
0
0
0
AN0端子
0
0
1
AN1端子
0
1
0
AN2端子
0
1
1
AN3端子
1
0
0
AN4端子
1
0
1
AN5端子
1
1
0
AN6端子
1
1
1
AN7端子
A/D変換開始チャネル選択ビット
ANS2 ANS1 ANS0
0
0
R/W :リード/ライト
:初期値
564
停止
0
AN0端子
0
0
1
AN1端子
0
1
0
AN2端子
0
1
1
AN3端子
1
0
0
AN4端子
1
0
1
AN5端子
1
1
0
AN6端子
1
1
1
AN7端子
変換時の読出し
停止変換モードにおける
停止時の読出し
変換中の
チャネル番号
直前に変換した
チャネル番号
MD1
MD0
0
0
単発変換モード1
(動作中に再起動できます)
0
1
単発変換モード2
(動作中に再起動できません)
1
0
1
1
A/D変換モード選択ビット
連続変換モード
(動作中に再起動できません)
停止変換モード
(動作中に再起動できません)
第 20 章 8/10 ビット A/D コンバータ
表 20.4-2 A/D 制御ステータスレジスタ 0(ADCS0)の各ビットの機能説明 ( 1 / 2 )
ビット名
機 能
これらのビットは , A/D 変換機能の変換モードを選択します。
MD1, MD0 ビットの値により , 単発変換モード 1, 単発変換モード 2, 連続変換
モードおよび停止変換モードの 4 つのモードを選択できます。
• 各モードにおける動作を以下に説明します。
単発変換モード 1:
ANS2 ∼ ANS0:bit5 ∼ bit3 で設定されたチャネルから ANE2 ∼ ANE0:bit2 ∼
bit0 で設定されたチャネルへの A/D 変換が 1 回のみ行われます。
動作中 , 再起動ができます。
単発変換モード 2:
ANS2 ∼ ANS0:bit5 ∼ bit3 で設定されたチャネルから ANE2 ∼ ANE0:bit2 ∼
bit0 で設定されたチャネルへの A/D 変換が 1 回のみ行われます。
動作中 , 再起動はできません。
連続変換モード :
ANS2 ∼ ANS0:bit5 ∼ bit3 で設定されたチャネルから ANE2 ∼ ANE0:bit2 ∼
bit0 で設定されたチャネルへの A/D 変換が繰返し行われます。この連続変換
は , A/D 制御ステータスレジスタ 1(ADCS1)の BUSY:bit15 で停止されるま
で継続します。
動作中 , 再起動はできません。
停止変換モード :
ANS2 ∼ ANS0:bit5 ∼ bit3 で設定されたチャネルから ANE2 ∼ ANE0:bit2 ∼
bit0 で設定されたチャネルへの A/D 変換が繰返し行われますが , 各チャネル
の変換が完了するたびに一時停止が発生します。この連続変換は , A/D 制御
ステータスレジスタ 1(ADCS1)の BUSY:bit15 で停止されるまで継続しま
す。
動作中 , 再起動はできません。
一時停止が発生しているとき , A/D 制御ステータスレジスタ 1(ADCS1)の
STS1, STS0:bit11, bit10 で選択された起動要因が生成されると , 変換は再起動
されます。
( 注意事項 )
単発変換モード 1, 単発変換モード 2, 連続変換モードおよび停止変換モード
時は , 16 ビットフリーランタイマゼロ検出 , 16 ビットリロードタイマ 1, ソ
フトウェアすべての変換の再起動はできません。
•
•
bit8,
bit7
MD1, MD0:
A/D 変換モー
ド選択ビット
565
第 20 章 8/10 ビット A/D コンバータ
表 20.4-2 A/D 制御ステータスレジスタ 0(ADCS0)の各ビットの機能説明 ( 2 / 2 )
ビット名
機 能
•
•
•
•
bit5
∼
bit3
ANS2, ANS1,
ANS0:
A/D 変換開始
チャネル選択
ビット
•
( 注意事項 )
• A/D 変換開始チャネル選択ビット (ANS2, ANS1, ANS0) を設定した後に ,
サンプリング時間選択ビット (ST1, ST0), コンペア時間選択ビット (CT1,
CT0) および A/D 変換終了チャネル選択ビット (ANE2, ANE1, ANE0) を
リードモディファイライト系命令で設定しないでください。
• ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換
チャネルが読み出されるため , ANS2, ANS1, ANS0 ビット設定後に ST1,
ST0 ビット , CT1, CT0 ビットおよび ANE2, ANE1, ANE0 ビットをリード
モディファイライト系命令で設定した場合 , ANS2, ANS1, ANS0 ビットの
値が書き換わる可能性があります。
•
•
bit2
∼
bit0
566
ANE2, ANE1,
ANE0:
A/D 変換終了
チャネル選択
ビット
これらのビットは , A/D 変換開始チャネルの設定および変換中のチャネル番
号を表示します。
A/D 変換を起動すると , これらのビットで指定されたチャネルから変換を開
始します。
A/D 変換時 , これらのビットは変換チャネル番号を表示します。停止変換
モードにおける一時停止時 , これらのビットは直前の変換チャネル番号を表
示します。
本ビットの読出し値は , 本ビットに値を設定した場合でも ,A/D 変換が開始
されるまでは , 設定した値ではなく , 前回に A/D 変換したチャネル番号が読
み出されます。
リセット時は ,"000B" に初期化されます。
•
これらのビットは , A/D 変換終了チャネルを設定します。
A/D 変換は , 起動されると , これらのビットで指定されたチャネルに対して
まで行います。
これらのビットが , ANS2 ∼ ANS0 で指定されたチャネルを指定すると , その
チャネルのみを A/D 変換します。連続変換モードまたは停止変換モード時
は , ANS2 ∼ ANS0:bit5 ∼ bit3 で指定された開始チャネルの A/D 変換は ,
ANE2 ∼ ANE0 で指定されたチャネルの A/D 変換後に行われます。開始チャ
ネルの番号が終了チャネルの番号より大きい場合 , A/D 変換は , 開始チャネ
ル , AN7, AN0, 終了チャネルの順序で行います。
第 20 章 8/10 ビット A/D コンバータ
A/D データレジスタ(ADCR0, ADCR1)
20.4.3
A/D データレジスタ(ADCR0, ADCR1)は , A/D 変換結果の格納および A/D 変換分
解能の選択を行います。
■ A/D データレジスタ(ADCR0, ADCR1)
図 20.4-4 A/D データレジスタ(ADCR0, 1)
bit
000037H
000036H
15
14
13
12
11
10
9
8
S10
ST1
ST0
CT1
CT0
-
D9
R/W
W
W
W
W
-
R
7
6
5
4
3
2
1
0
初期値
D8
D7
D6
D5
D4
D3
D2
D1
D0
R
R
R
R
R
R
R
R
R
00101-XX
XXXXXXXXB
A/Dデータビット
D9~D0
変換データ
CT1 CT0
0
0
1
0
0
1
1
1
比較時間設定ビット
44マシンサイクル (5.50µ[email protected])
66マシンサイクル (4.12µ[email protected])
88マシンサイクル (5.50µ[email protected])
176マシンサイクル (11.0µ[email protected])
ST1 ST0
0
0
1
0
0
1
1
1
サンプリング時間設定ビット
20マシンサイクル (2.5µ[email protected])
32マシンサイクル (2.0µ[email protected])
48マシンサイクル (3.0µ[email protected])
128マシンサイクル (8.0µ[email protected])
S10
0
1
A/D変換分解能選択ビット
10ビット分解能モード(D9~D0)
8ビット分解能モード(D7~D0)
567
第 20 章 8/10 ビット A/D コンバータ
表 20.4-3 A/D データレジスタ(ADCR0, ADCR1)の各ビットの機能説明
ビット名
bit15
bit14,
bit13
機 能
S10:
A/D 変換分解
能選択ビット
ST1, ST0:
サンプリング
時間設定ビッ
ト
• このビットは , A/D 変換の分解能を設定します。
• このビットに "0" を設定した場合 :10 ビット分解能が設定されます。
• このビットに "1" を設定した場合 :8 ビット分解能が設定されます。
( 注意事項 )
分解能によって使用される A/D データビットが異なります。
これらのビットは , A/D 変換のサンプリング時間を設定します。
A/D 変換が起動されると , このビットで設定されている時間にアナログ入力
が取込まれます。
( 注意事項 )
16MHz 動作時にこれらのビットに "00B"(8MHz)を設定すると , アナログ
•
•
電圧の取込みを正常に行えないことがあります。
これらのビットは , A/D 変換の比較時間を設定します。
アナログ入力が取込まれた後(サンプリング時間経過後), これらのビット
で指定されている時間が経過後に , 変換結果データが確定され , このレジス
タの D9 ∼ D0:bit9 ∼ bit0 に格納されます。
( 注意事項 )
16MHz 動作時にこれらのビットに "00B"(8MHz)を設定すると , 正常なア
•
•
bit12,
bit11
CT1, CT0:
比較時間設定
ビット
ナログ変換値が得られない場合があります。
bit10
読出し値は不定です。
このビットへの書込みは , 動作に影響しません。
未使用ビット
•
•
D9 ∼ D0:
A/D データ
ビット
変換が終了するたびに , これらのビットに A/D 変換結果が格納され , レジス
タが書換えられます。
• 通常 , 最終の変換値が格納されます。
• このレジスタの初期値は不定です。
( 注意事項 )
変換データ保護機能があります(「20.6 8/10 ビット A/D コンバータの動作」
を参照)。A/D 変換中にこれらのビットへはデータを書き込まないでくださ
い。
•
bit9
∼
bit0
• S10:bit15 を書換える場合は , 必ず A/D 変換動作前に A/D 変換動作を停止させてから
書き換えてください。
変換開始後にこのビットを書換えると , ADCR レジスタのデー
タは不定となります。
• 10 ビットモード時に ADCR1, ADCR0 レジスタのデータを読み出す場合は , ワード
転送命令(MOVW A, 0036H など)を使用してください。
568
第 20 章 8/10 ビット A/D コンバータ
20.5
8/10 ビット A/D コンバータの割込み
8/10 ビット A/D コンバータは , A/D データレジスタに A/D 変換結果が格納されると ,
割込み要求を生成できます。拡張インテリジェント I/O サービス(EI2OS)にも対応
しています。
■ 8/10 ビット A/D コンバータの割込み
8/10 ビット A/D コンバータの割込み制御ビットと割込み要因を表 20.5-1 に示します。
表 20.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因
8/10 ビット A/D コンバータ
割込み要求フラグビット
ADCS1:INT:bit14
割込み要求許可ビット
ADCS1:INTE:bit13
割込み要因
A/D データレジスタへの A/D 変換結果の書込み
A/D 変換が行われ , A/D 変換結果が A/D データレジスタ(ADCR)へ書き込まれると ,
A/D 制御ステータスレジスタ(ADCS1)の INT:bit14 に "1" が設定されます。このとき ,
割込み要求が許可になっている(ADCS1 レジスタの INTE:bit13=1)場合 , 割込みコン
トローラに割込み要求が出力されます。
■ 8/10 ビット A/D コンバータの割込みと EI2OS
表 20.5-2 8/10 ビット A/D コンバータの割込みと EI2OS
割込み制御レジスタ
ベクタテーブルアドレス
EI2OS
割込み番号
#11(0BH)
レジスタ名
アドレス
下位
上位
バンク
ICR00
0000B0H
FFFFD0H
FFFFD1H
FFFFD2H
○
○ : 使用可能
■ 8/10 ビット A/D コンバータの EI2OS 機能
8/10 ビット A/D コンバータは , EI2OS 機能を使用して A/D 変換結果をメモリへ転送で
きます。転送が行われると , 変換データ保護機能は , A/D 変換データがメモリへ転送さ
れるまで A/D 変換を停止し , ADCS1 レジスタの INT:bit14 をクリアします。変換デー
タ保護機能は , データ欠落の発生を完全に防止できます。
569
第 20 章 8/10 ビット A/D コンバータ
20.6
8/10 ビット A/D コンバータの動作
8/10 ビット A/D コンバータは , 3 つの変換モード(単発変換モード , 連続変換モー
ド , 停止変換モード)を備えています。各モードでの動作について説明します。
■ 単発変換モード時の動作
単発変換モード時は , A/D 制御ステータスレジスタ 0(ADCS0)の ANS2 ∼ ANS0:bit5 ∼
bit3 で指定されたチャネルから ADCS0 レジスタの ANE2 ∼ ANE0:bit2 ∼ bit0 で指定さ
れたチャネルまでのアナログ入力が順次変換されます。ANE2 ∼ ANE0:bit2 ∼ bit0 で指
定された終了チャネルまですべてのチャネルの変換が完了すると, A/D変換が停止しま
す。開始チャネルと終了チャネルが同じ(ANS2 ∼ ANS0=ANE2 ∼ ANE0)場合は ,
ANS2 ∼ ANS0 ビットで指定されたチャネルのみを変換します。
単発変換モード時の動作に必要な設定値を図 20.6-1 に示します。
図 20.6-1 単発変換モード時の設定
bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADCS
BUSY
INT
INTE PAUS
STS1 STS0 STRT RESV
ADCR
S10
ST1
ST0
CT0
CT1
MD1
MD0
ANS2
ANS1 ANS0 ANE2 ANE1
ANE0
変換データが保持されます
-
ADER
: 使用ビット
: 使用する端子に対応するビットに"1"を設定
0 : "0"を設定
(注意事項) ADERの各々のビット値が"0"の場合は,各々のビットに対応するポート5は入力禁止となり,"1"の場合は
入力許可となります。
単発変換モード時の変換順序の例を以下に示します。
• ANS=000B, ANE=011B:AN0 → AN1 → AN2 → AN3 → End
• ANS=110B, ANE=010B:AN6 → AN7 → AN0 → AN1 → AN2 → End
• ANS=011B, ANE=011B:AN3 → End
570
第 20 章 8/10 ビット A/D コンバータ
■ 連続変換モード時の動作
連続変換モード時は , ANS2 ∼ ANS0:bit5 ∼ bit3 で指定されたチャネルから ANE2 ∼
ANE0:bit2 ∼ bit0 で指定されたチャネルまでのアナログ入力を順次 A/D 変換します。
ANE2 ∼ ANE0:bit2 ∼ bit0 で指定された終了チャネルの変換が完了すると , A/D 変換は ,
ANS2 ∼ ANS0:bit5 ∼ bit3 で指定されたチャネルから再開されます。開始チャネルと終
了チャネルが同じ(ANS2 ∼ ANS0=ANE2 ∼ ANE0)場合は , ANS2 ∼ ANS0:bit5 ∼ bit3
で指定されたチャネルの変換が繰返されます。
連続変換モード時の動作に必要な設定値を図 20.6-2 に示します。
図 20.6-2 連続変換モード時の設定
bit 15
ADCS
BUSY
14
INT
13
12
11
10
INTE PAUS STS1 STS0
9
8
STRT RESV
7
6
MD1
MD0
5
4
ANS2 ANS1
3
2
1
0
ANS0 ANE2 ANE1 ANE0
1
ADCR
S10
ST1
ST0
CT1
CT0
-
変換データが保持されます
ADER
: 使用ビット
: 使用する端子に対応するビットに"1"を設定
1 : "1"を設定
0 : "0"を設定
(注意事項) ADERの各々のビット値が"0"の場合は,各々のビットに対応するポート5は入力禁止となり,"1"の場合は
入力許可となります。
連続変換モード時の変換順序の例を以下に示します。
• 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 → 繰返し
571
第 20 章 8/10 ビット A/D コンバータ
■ 停止変換モード時の動作
停止変換モード時は , ANS2 ∼ ANS0:bit5 ∼ bit3 で指定されたチャネルから ANE2 ∼
ANE0:bit2 ∼ bit0 で指定されたチャネルまでのアナログ入力を順次 A/D 変換しますが ,
各チャネルの変換が完了するたびに一時停止が発生します。ANE2 ∼ ANE0:bit5 ∼ bit3
で指定された終了チャネルの変換が完了すると , A/D 変換は , 一時停止後 , ANS2 ∼
ANS0:bit5 ∼ bit3 で指定されたチャネルから再開されます。開始チャネルと終了チャネ
ルが同じ(ANS2 ∼ ANS0=ANE2 ∼ ANE0)場合は , ANS ビットで指定されたチャネル
の変換が繰返されます。一時停止時に A/D を再起動する場合には , STS1, STS0=bit11,
bit10 で指定された起動要因を生成してください。
停止変換モード時の動作に必要な設定値を図 20.6-3 に示します。
図 20.6-3 停止変換モード時の設定
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADCS
ADCR
BUSY
S10
INT
ST1
INTE PAUS STS1 STS0
ST0
CT1
CT0
STRT RESV
MD1
MD0
1
1
ANS2 ANS1
ANS0 ANE2 ANE1 ANE0
変換データが保持されます
-
ADER
: 使用ビット
: 使用する端子に対応するビットに"1"を設定
1 : "1"を設定
0 : "0"を設定
(注意事項) ADERの各々のビット値が"0"の場合は,各々のビットに対応するポート5は入力禁止となり,"1"の場合は
入力許可となります。
停止変換モード時の変換順序の例を以下に示します。
• ANS=000B, ANE=011B:AN0 → 一時停止 → AN1 → 一時停止 → AN2 → 一時停止 →
AN0 → 反復
• ANS=110B, ANE=001B:AN6 → Pause → AN7 → 一時停止 → AN0 → 一時停止 →
AN1 → AN6 → 反復
• ANS=011B, ANE=011B:AN3 → 一時停止 → AN3 → 一時停止 → 繰返し
572
第 20 章 8/10 ビット A/D コンバータ
20.6.1
EI2OS を使用した場合の変換動作
8/10 ビット A/D コンバータは , EI2OS を使用して A/D 変換結果をメモリへ転送でき
ます。
■ EI2OS を使用した場合の変換動作
EI2OS を使用した場合の動作フローを図 20.6-4 に示します。
図 20.6-4 EI2OS を使用した場合の動作フローの例
A/D変換を起動
サンプルホールド
EI2OSを起動
データを転送
変換開始
変換終了
データ転送は
指定回数*だけ
繰返されたか?
割込み出力
YES
割込み処理
NO
割込みクリア
*:繰返しの回数は,EI2OSの設定に基づいて決定されます。
EI2OS を使用した場合は , 変換データ保護機能が , 連続変換モード時でもデータ欠落の
発生を完全に防止します。したがって , メモリへの複数データ項目の転送を安全に行え
ます。
573
第 20 章 8/10 ビット A/D コンバータ
20.6.2
A/D 変換データ保護機能
割込み許可状態で A/D 変換を行うと , A/D 変換データ保護機能が動作します。
■ A/D 変換データ保護機能
A/D コンバータは , 変換データを保持するデータレジスタを 1 つしか備えていません。
1 つの A/D 変換が完了すると , このデータレジスタのデータは書き換えられます。
次の変換データが格納