9.3MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通マイクロエレクトロニクス
CONTROLLER MANUAL
CM44-10113-4
F2MC-16LX
16 ビット・マイクロコントローラ
MB90420G/425G Series
ハードウェアマニュアル
F2MC-16LX
16 ビット・マイクロコントローラ
MB90420G/425G Series
ハードウェアマニュアル
富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。
ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。
開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。
「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック
項目をリストにしたものです。
http://edevice.fujitsu.com/micom/jp-support/
富士通マイクロエレクトロニクス株式会社
はじめに
■ 本書の目的と対象読者
MB90420G/425Gシリーズは , ASIC (Application Specific IC) 対応が可能な 16 ビットワン
チップマイクロコントローラである F2MC-16LX ファミリの汎用品の一つとして開発
された製品です。
本書は , 実際にこの半導体を使って製品を設計する技術者の方を対象に , MB90420G/
425G シリーズの機能や動作について記載しています。
製品をご使用になる前に , 本書をご一読ください。
■ 商標
F2MC は FUJITSU Flexible Microcontroller の略で , 富士通マイクロエレクトロニクス株
式会社の商標です。
Embedded Algorithm は , Advanced Micro Devices, Inc. の商標です。
その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録
商標です。
i
■ 本書の全体構成
本書は,以下に示す 26 の章および付録から構成されています。
第 1 章 概要
この章では , MB90420G/425G シリーズの特長と基本的な仕様について説明します。
第 2 章 CPU
この章では , F2MC-16LX CPU について説明します。
第 3 章 割込み
この章では , 割込みと拡張インテリジェント I/O サービス (EI2OS) について説明し
ます。
第 4 章 リセット
この章では , リセットについて説明します。
第 5 章 クロック
この章では , クロックについて説明します。
第 6 章 低消費電力モード
この章では , 低消費電力モードについて説明します。
第 7 章 モード設定
この章では , 動作モードとメモリアクセスモードについて説明します。
第 8 章 I/O ポート
この章では , I/O ポートの機能と動作について説明します。
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
この章では , ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロッ
ク用 ) の機能と動作について説明します。
第 10 章 インプットキャプチャ
この章では , インプットキャプチャの動作について説明します。
第 11 章 16 ビットリロードタイマ
この章では , 16 ビットリロードタイマの機能と動作について説明します。
第 12 章 リアルタイム時計タイマ
この章では , リアルタイム時計タイマの機能と動作について説明します。
第 13 章 PPG タイマ
この章では , PPG タイマについて説明します。
第 14 章 遅延割込み発生モジュール
この章では , 遅延割込み発生モジュールの機能と動作について説明します。
第 15 章 DTP/ 外部割込み回路
この章では , DTP/ 外部割込み回路の機能と動作について説明します。
第 16 章 8/10 ビット A/D コンバータ
この章では , 8/10 ビット A/D コンバータの機能と動作について説明します。
第 17 章 UART
この章では , UART の機能と動作について説明します。
ii
第 18 章 CAN コントローラ
この章では , CAN コントローラの概要と機能について説明します。
第 19 章 LCD コントローラ / ドライバ
この章では , LCD コントローラ / ドライバの機能と動作について説明します。
第 20 章 低電圧 /CPU 動作 検出リセット回路
この章では , 低電圧 /CPU 動作検出リセット回路の機能と動作について説明します。
第 21 章 ステッピングモータ コントローラ
この章では , ステッピングモータコントローラの機能と動作について説明します。
第 22 章 サウンドジェネレータ
この章では , サウンドジェネレータの機能と動作について説明します。
第 23 章 アドレス一致検出機能
この章では , アドレス一致検出機能の機能と動作について説明します。
第 24 章 ROM ミラー機能 選択モジュール
この章では , ROM ミラー機能選択モジュールについて説明します。
第 25 章 1M ビットフラッシュメモリ
この章では , 1M ビットフラッシュメモリの機能や動作について説明します。
フラッシュメモリへのデータ書込み / 消去の方法には , 下記の 3 とおりの方法があ
ります。
・パラレルライタ
・シリアル専用ライタ
・プログラム実行による書込み / 消去
ここでは , " プログラム実行による書込み / 消去 " について解説します。
第 26 章 シリアル書込み接続例
この章では , 横河ディジタルコンピュータ株式会社製 AF220/AF210/AF120/AF110
フラッシュマイコンプログラマを用いた場合のシリアル書込みの接続例について
説明します。
付録
付録では , I/O マップおよび命令を示します。
iii
•
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ
い。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ
たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ
ては , 当社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し
たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性
が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。
ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ
い。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関
連法規等の規制をご確認の上 , 必要な手続きをおとりください。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。
Copyright ©2007-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved.
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
第2章
概要 ............................................................................................................ 1
製品概要 ................................................................................................................................. 2
特長 ........................................................................................................................................ 4
ブロックダイヤグラム............................................................................................................ 6
外形寸法図.............................................................................................................................. 7
端子配列図.............................................................................................................................. 9
端子機能説明 ........................................................................................................................ 11
入出力回路形式 .................................................................................................................... 14
デバイスの取扱いに関する注意事項 .................................................................................... 16
CPU.......................................................................................................... 19
2.1 CPU の概要 .......................................................................................................................... 20
2.2 メモリ空間............................................................................................................................ 21
2.3 メモリマップ ........................................................................................................................ 23
2.4 アドレッシング .................................................................................................................... 25
2.4.1
リニア方式によるアドレス指定 ................................................................................. 26
2.4.2
バンク方式によるアドレス指定 ................................................................................. 27
2.5 多バイト長データのメモリ上の配置 .................................................................................... 29
2.6 レジスタ ............................................................................................................................... 31
2.7 専用レジスタ ........................................................................................................................ 32
2.7.1
アキュムレータ (A)..................................................................................................... 34
2.7.2
スタックポインタ (USP, SSP)................................................................................... 37
2.7.3
プロセッサステータス (PS) ....................................................................................... 39
2.7.4
プログラムカウンタ (PC)........................................................................................... 43
2.7.5
ダイレクトページレジスタ (DPR) ............................................................................. 44
2.7.6
バンクレジスタ (PCB, DTB, USB, SSB, ADB) .......................................................... 45
2.8 汎用レジスタ ........................................................................................................................ 46
2.9 プリフィックスコード.......................................................................................................... 48
第3章
割込み ...................................................................................................... 53
3.1 割込みの概要 ........................................................................................................................ 54
3.2 割込み要因と割込みベクタ................................................................................................... 56
3.3 割込み制御レジスタと周辺機能 ........................................................................................... 58
3.3.1
割込み制御レジスタ (ICR00 ~ ICR15) ...................................................................... 59
3.3.2
割込み制御レジスタの機能 ........................................................................................ 61
3.4 ハードウェア割込み ............................................................................................................. 64
3.4.1
ハードウェア割込みの動作 ........................................................................................ 67
3.4.2
ハードウェア割込みの動作フロー.............................................................................. 69
3.4.3
ハードウェア割込み使用手順..................................................................................... 70
3.4.4
多重割込み ................................................................................................................. 71
3.4.5
ハードウェア割込み処理時間..................................................................................... 73
3.5 ソフトウェア割込み ............................................................................................................. 74
3.6 拡張インテリジェント I/O サービス (EI2OS) による割込み................................................. 76
3.6.1
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) ......................... 78
3.6.2
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の各レジスタ... 79
v
3.6.3
拡張インテリジェント I/O サービス (EI2OS) の動作 ................................................. 82
3.6.4
拡張インテリジェント I/O サービス (EI2OS) の使用手順 .......................................... 83
3.6.5
拡張インテリジェント I/O サービス (EI2OS) 処理時間.............................................. 84
3.7 未定義命令の実行による例外処理割込み ............................................................................. 86
3.8 割込み処理のスタック動作................................................................................................... 87
3.9 割込み処理のプログラム例................................................................................................... 89
第4章
4.1
4.2
4.3
4.4
4.5
4.6
第5章
5.1
5.2
5.3
5.4
5.5
5.6
第6章
リセット................................................................................................... 93
リセットの概要 .................................................................................................................... 94
リセット要因と発振安定待ち時間........................................................................................ 97
外部リセット端子 ................................................................................................................. 99
リセット動作 ...................................................................................................................... 100
リセット要因ビット ........................................................................................................... 102
リセットによる各端子の状態 ............................................................................................. 105
クロック................................................................................................. 107
クロックの概要 .................................................................................................................. 108
クロック発生部のブロックダイヤグラム ........................................................................... 110
クロック選択レジスタ (CKSCR)........................................................................................ 112
クロックモード .................................................................................................................. 115
発振安定待ち時間 ............................................................................................................... 119
振動子と外部クロックの接続 ............................................................................................. 120
低消費電力モード .................................................................................. 121
6.1 低消費電力モードの概要 .................................................................................................... 122
6.2 低消費電力制御回路のブロックダイヤグラム.................................................................... 125
6.3 低消費電力モード制御レジスタ (LPMCR) ......................................................................... 127
6.4 CPU 間欠動作モード .......................................................................................................... 130
6.5 スタンバイモード ............................................................................................................... 131
6.5.1
スリープモード ........................................................................................................ 132
6.5.2
タイムベースタイマモード ...................................................................................... 134
6.5.3
時計モード ............................................................................................................... 136
6.5.4
ストップモード ........................................................................................................ 138
6.6 状態遷移図.......................................................................................................................... 141
6.7 スタンバイモード , リセット時の端子状態 ........................................................................ 143
6.8 低消費電力モード使用上の注意 ......................................................................................... 145
第7章
7.1
7.2
7.3
第8章
モード設定 ............................................................................................. 149
モード設定.......................................................................................................................... 150
モード端子 (MD2 ~ MD0).................................................................................................. 151
モードデータ ...................................................................................................................... 152
I/O ポート............................................................................................... 155
8.1 I/O ポート ........................................................................................................................... 156
8.2 レジスタと外部兼用端子の割当て...................................................................................... 158
8.3 ポート 0 .............................................................................................................................. 159
8.3.1
ポート 0 のレジスタ (PDR0, DDR0) ........................................................................ 161
8.3.2
ポート 0 の動作説明 ................................................................................................. 162
8.4 ポート 1 .............................................................................................................................. 164
vi
8.4.1
ポート 1 のレジスタ (PDR1, DDR1) ........................................................................ 166
8.4.2
ポート 1 の動作説明 ................................................................................................. 167
8.5 ポート 3 .............................................................................................................................. 169
8.5.1
ポート 3 のレジスタ (PDR3, DDR3) ........................................................................ 171
8.5.2
ポート 3 の動作説明 ................................................................................................. 172
8.6 ポート 4 .............................................................................................................................. 174
8.6.1
ポート 4 のレジスタ (PDR4, DDR4) ........................................................................ 176
8.6.2
ポート 4 の動作説明 ................................................................................................. 177
8.7 ポート 5 .............................................................................................................................. 179
8.7.1
ポート 5 のレジスタ (PDR5, DDR5) ........................................................................ 181
8.7.2
ポート 5 の動作説明 ................................................................................................. 182
8.8 ポート 6 .............................................................................................................................. 184
8.8.1
ポート 6 のレジスタ (PDR6, DDR6, ADER) ............................................................ 186
8.8.2
ポート 6 の動作説明 ................................................................................................. 187
8.9 ポート 7 .............................................................................................................................. 189
8.9.1
ポート 7 のレジスタ (PDR7, DDR7) ........................................................................ 191
8.9.2
ポート 7 の動作説明 ................................................................................................. 192
8.10 ポート 8 .............................................................................................................................. 194
8.10.1
ポート 8 のレジスタ (PDR8, DDR8) ........................................................................ 196
8.10.2
ポート 8 の動作説明 ................................................................................................. 197
8.11 ポート 9 .............................................................................................................................. 199
8.11.1
ポート 9 のレジスタ (PDR9, DDR9) ........................................................................ 201
ポート 9 の動作説明 ................................................................................................. 202
8.11.2
8.12 I/O ポートのプログラム例 .................................................................................................. 204
第9章
ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ
( サブクロック用 ) ........................................................................ 205
9.1 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマの概要 ..................................... 206
9.2 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム ........ 207
9.3 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧....................... 208
9.3.1
ウォッチドッグタイマ制御レジスタ (WDTC).......................................................... 209
9.3.2
タイムベースタイマ制御レジスタ (TBTC)............................................................... 211
9.3.3
時計タイマ制御レジスタ (WTC) .............................................................................. 213
9.4 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマの動作 ..................................... 215
9.4.1
ウォッチドッグタイマの動作................................................................................... 216
9.4.2
タイムベースタイマの動作 ...................................................................................... 218
9.4.3
時計タイマの動作..................................................................................................... 221
9.5 ウォッチドッグタイマ / タイムベースタイマの使用上の注意 ........................................... 222
9.6 ウォッチドッグタイマ / タイムベースタイマのプログラム例 ........................................... 225
第 10 章
インプットキャプチャ ........................................................................... 227
10.1 インプットキャプチャの概要 ............................................................................................. 228
10.2 インプットキャプチャのブロックダイヤグラム ................................................................ 229
10.3 インプットキャプチャのレジスタ一覧............................................................................... 230
10.3.1
インプットキャプチャのレジスタ詳細説明 ............................................................. 232
10.3.2
16 ビットフリーランタイマのレジスタ詳細説明..................................................... 234
10.4 動作説明 ............................................................................................................................. 238
10.4.1
16 ビットインプットキャプチャ.............................................................................. 239
10.4.2
16 ビットフリーランタイマ部 ................................................................................. 240
vii
第 11 章
16 ビットリロードタイマ ...................................................................... 243
11.1 16 ビットリロードタイマの概要 ........................................................................................ 244
11.2 16 ビットリロードタイマの構成 ........................................................................................ 246
11.3 16 ビットリロードタイマの端子 ........................................................................................ 248
11.4 16 ビットリロードタイマのレジスタ................................................................................. 249
11.4.1
タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H) .................. 250
11.4.2
タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L).................... 252
11.4.3
16 ビットタイマレジスタ (TMR0, TMR1)................................................................ 254
11.4.4
16 ビットリロードレジスタ (TMRLR0/TMRLR1) .................................................... 255
11.5 16 ビットリロードタイマの割込み .................................................................................... 256
11.6 16 ビットリロードタイマの動作説明................................................................................. 257
11.6.1
内部クロックモード ( リロードモード )................................................................... 259
11.6.2
内部クロックモード ( ワンショットモード )............................................................ 261
11.6.3
イベントカウントモード .......................................................................................... 263
11.7 16 ビットリロードタイマの使用上の注意.......................................................................... 265
11.8 16 ビットリロードタイマのプログラム例.......................................................................... 266
第 12 章
リアルタイム時計タイマ........................................................................ 269
12.1 リアルタイム時計タイマの概要 ......................................................................................... 270
12.2 リアルタイム時計タイマのレジスタ .................................................................................. 271
12.2.1
リアルタイム時計タイマ制御レジスタ .................................................................... 273
12.2.2
サブ秒データレジスタ ............................................................................................. 275
12.2.3
秒 / 分 / 時間データレジスタ .................................................................................... 276
第 13 章
PPG タイマ ............................................................................................ 277
13.1 PPG タイマの概要.............................................................................................................. 278
13.2 PPG タイマのブロックダイヤグラム................................................................................. 280
13.3 PPG タイマのレジスタ ...................................................................................................... 281
13.3.1
PPG タイマのレジスタ詳細説明 .............................................................................. 283
13.4 PPG タイマの動作説明 ...................................................................................................... 288
第 14 章
遅延割込み発生モジュール .................................................................... 291
14.1 遅延割込み発生モジュールの概要...................................................................................... 292
14.2 遅延割込み発生モジュールの動作...................................................................................... 293
第 15 章
DTP/ 外部割込み回路 ............................................................................. 295
15.1 DTP/ 外部割込み回路の概要............................................................................................... 296
15.2 DTP/ 外部割込み回路の構成............................................................................................... 298
15.3 DTP/ 外部割込み回路の端子............................................................................................... 300
15.4 DTP/ 外部割込み回路のレジスタ ....................................................................................... 301
15.4.1
DTP/ 割込み要因レジスタ (EIRR) ............................................................................ 302
15.4.2
DTP/ 割込み許可レジスタ (ENIR) ............................................................................ 303
15.4.3
要求レベル設定レジスタ (ELVRH/ELVRL) .............................................................. 304
15.5 DTP/ 外部割込み回路の動作説明 ....................................................................................... 306
15.5.1
外部割込み機能 ........................................................................................................ 309
15.5.2
DTP 機能 .................................................................................................................. 310
15.6 DTP/ 外部割込み回路の使用上の注意 ................................................................................ 311
15.7 DTP/ 外部割込み回路のプログラム例 ................................................................................ 313
viii
第 16 章
8/10 ビット A/D コンバータ................................................................... 317
16.1 8/10 ビット A/D コンバータの概要 .................................................................................... 318
16.2 8/10 ビット A/D コンバータの構成 .................................................................................... 319
16.3 8/10 ビット A/D コンバータの端子 .................................................................................... 321
16.4 8/10 ビット A/D コンバータのレジスタ ............................................................................. 323
16.4.1
A/D 制御ステータスレジスタ上位 (ADCSH)............................................................ 324
16.4.2
A/D 制御ステータスレジスタ下位 (ADCSL) ............................................................ 326
16.4.3
A/D データレジスタ (ADCRH/ADCRL) .................................................................... 328
16.5 8/10 ビット A/D コンバータの割込み................................................................................. 330
16.6 8/10 ビット A/D コンバータの動作 .................................................................................... 331
16.6.1
EI2OS を使用した変換動作 ...................................................................................... 334
16.6.2
A/D 変換データ保護機能 .......................................................................................... 335
16.7 8/10 ビット A/D コンバータ使用上の注意.......................................................................... 337
16.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発モードの EI2OS 起動例 ) ................ 338
16.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続モードの EI2OS 起動例 ) ................ 340
16.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止モードの EI2OS 起動例 ) ................ 342
第 17 章
UART ..................................................................................................... 345
17.1 UART の概要 ...................................................................................................................... 346
17.2 UART の構成 ...................................................................................................................... 348
17.3 UART の端子 ...................................................................................................................... 351
17.4 UART のレジスタ ............................................................................................................... 352
17.4.1
シリアル制御レジスタ (SCR0/SCR1) ...................................................................... 353
17.4.2
シリアルモードレジスタ (SMR0/SMR1).................................................................. 355
17.4.3
シリアルステータスレジスタ (SSR0/SSR1)............................................................ 357
17.4.4
シリアル入力データレジスタ (SIDR0/SIDR1) ,
シリアル出力データレジスタ (SODR0/SODR1)........................................................... 359
17.4.5
通信プリスケーラ制御レジスタ (CDCR0/CDCR1) .................................................. 361
17.5 UART の割込み................................................................................................................... 363
17.5.1
受信割込み発生とフラグセットのタイミング.......................................................... 365
17.5.2
送信割込み発生とフラグセットのタイミング.......................................................... 366
17.6 UART のボーレート ........................................................................................................... 367
17.6.1
専用ボーレートジェネレータによるボーレート ...................................................... 369
17.6.2
内部タイマ (16 ビットリロードタイマ ) によるボーレート..................................... 371
17.6.3
外部クロックによるボーレート ............................................................................... 373
17.7 UART の動作 ...................................................................................................................... 374
17.7.1
非同期モード ( 動作モード 0, 1) の動作 ................................................................... 376
17.7.2
同期モード ( 動作モード 2) の動作........................................................................... 379
17.7.3
双方向通信機能 ( ノーマルモード ) .......................................................................... 381
17.7.4
マスタ / スレーブ型通信機能 ( マルチプロセッサモード )....................................... 383
17.8 UART 使用上の注意 ........................................................................................................... 386
17.9 UART のプログラム例........................................................................................................ 387
第 18 章
CAN コントローラ ................................................................................. 389
18.1 CAN コントローラの特長................................................................................................... 390
18.2 CAN コントローラのブロックダイヤグラム ...................................................................... 391
18.3 CAN コントローラのレジスタ分類 .................................................................................... 392
18.3.1
制御ステータスレジスタ (CSR) ............................................................................... 398
18.3.2
ラストイベント表示レジスタ (LEIR) ....................................................................... 403
ix
18.3.3
受信および送信エラーカウンタ (RTEC) .................................................................. 405
18.3.4
ビットタイミングレジスタ (BTR)............................................................................ 406
18.3.5
メッセージバッファ有効レジスタ (BVALR) ............................................................ 409
18.3.6
IDE レジスタ (IDER) ................................................................................................ 410
18.3.7
送信要求レジスタ (TREQR)..................................................................................... 411
18.3.8
送信 RTR レジスタ (TRTRR) ................................................................................... 412
18.3.9
リモートフレーム受信待機レジスタ (RFWTR)........................................................ 413
18.3.10
送信解除レジスタ (TCANR) ..................................................................................... 414
18.3.11
送信完了レジスタ (TCR) .......................................................................................... 415
18.3.12
送信割込み許可レジスタ (TIER) .............................................................................. 416
18.3.13
受信完了レジスタ (RCR).......................................................................................... 417
18.3.14
リモート要求受信レジスタ (RRTRR) ...................................................................... 418
18.3.15
受信オーバランレジスタ (ROVRR).......................................................................... 419
18.3.16
受信割込み許可レジスタ (RIER) .............................................................................. 420
18.3.17
アクセプタンスマスク選択レジスタ (AMSR) .......................................................... 421
18.3.18
アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) ..................................... 423
18.3.19
メッセージバッファ ................................................................................................. 425
18.3.20
ID レジスタ x (x=0 ~ 15) (IDRx).............................................................................. 426
18.3.21
DLC レジスタ x (x=0 ~ 15) (DLCRx)....................................................................... 429
18.3.22
データレジスタ x (x=0 ~ 15) (DTRx) ...................................................................... 430
18.3.23
CAN ウェイクアップ制御レジスタ (CWUCR) ......................................................... 432
18.4 CAN コントローラの送信................................................................................................... 433
18.5 CAN コントローラの受信................................................................................................... 436
18.6 CAN コントローラの使用方法............................................................................................ 440
18.7 メッセージバッファ (x) による送信方法 ............................................................................ 442
18.8 メッセージバッファ (x) による受信方法 ............................................................................ 444
18.9 マルチレベルメッセージバッファの構成の決定 ................................................................ 445
18.10 CAN ウェイクアップ機能................................................................................................... 447
18.11 CAN コントローラの使用上の注意 .................................................................................... 448
18.12 CAN プログラム例.............................................................................................................. 450
第 19 章
LCD コントローラ / ドライバ ................................................................ 453
19.1 LCD コントローラ / ドライバの概要 .................................................................................. 454
19.2 LCD コントローラ / ドライバの構成 .................................................................................. 455
19.2.1
LCD コントローラ / ドライバの内部分割抵抗 ......................................................... 457
19.2.2
LCD コントローラ / ドライバの外部分割抵抗 ......................................................... 459
19.3 LCD コントローラ / ドライバの端子 .................................................................................. 461
19.4 LCD コントローラ / ドライバのレジスタ........................................................................... 463
19.4.1
LCD 制御レジスタ下位 (LCRL) ................................................................................ 464
19.4.2
LCD 制御レジスタ上位 (LCRH) ............................................................................... 466
19.5 LCD コントローラ / ドライバの表示用 RAM...................................................................... 468
19.6 LCD コントローラ / ドライバの動作 .................................................................................. 470
19.6.1
LCD コントローラ / ドライバ動作時の出力波形 (1/2 デューティ ).......................... 472
19.6.2
LCD コントローラ / ドライバ動作時の出力波形 (1/3 デューティ ).......................... 475
19.6.3
LCD コントローラ / ドライバ動作時の出力波形 (1/4 デューティ ).......................... 478
第 20 章
低電圧 /CPU 動作検出リセット回路 ...................................................... 481
20.1 低電圧 /CPU 動作検出リセット回路の概要........................................................................ 482
20.2 低電圧 /CPU 動作検出リセット回路の構成........................................................................ 484
x
20.3
20.4
20.5
20.6
低電圧 /CPU 動作検出リセット回路のレジスタ................................................................. 486
低電圧 /CPU 動作検出リセット回路の動作........................................................................ 488
低電圧 /CPU 動作検出リセット回路の使用上の注意 ......................................................... 489
低電圧 /CPU 動作検出リセット回路のプログラム例 ......................................................... 490
第 21 章
ステッピングモータコントローラ ......................................................... 491
21.1 ステッピングモータコントローラの概要 ........................................................................... 492
21.2 ステッピングモータコントローラのレジスタ.................................................................... 493
21.2.1
PWM 制御レジスタ (PWC0 ~ PWC3)..................................................................... 495
21.2.2
PWM1, PWM2 コンペアレジスタ (PWC10 ~ PWC13, PWC20 ~ PWC23)........... 496
21.2.3
PWM1, PWM2 選択レジスタ (PWS10 ~ PWS13, PWS20 ~ PWS23)................... 498
21.3 ステッピングモータコントローラの動作 ........................................................................... 500
21.4 ステッピングモータコントローラの使用上の注意............................................................. 502
第 22 章
サウンドジェネレータ ........................................................................... 503
22.1 サウンドジェネレータの概要 ............................................................................................. 504
22.2 サウンドジェネレータのレジスタ...................................................................................... 505
22.2.1
サウンド制御レジスタ (SGCRH, SGCRL)............................................................... 506
22.2.2
周波数データレジスタ (SGFR) ................................................................................ 508
22.2.3
振幅データレジスタ (SGAR).................................................................................... 509
22.2.4
デクリメントグレードレジスタ (SGDR) ................................................................. 510
22.2.5
トーンカウントレジスタ (SGTR)............................................................................. 511
第 23 章
アドレス一致検出機能 ........................................................................... 513
23.1 アドレス一致検出機能の概要 ............................................................................................. 514
23.2 アドレス一致検出機能の応用例 ......................................................................................... 517
23.2.1
プログラムミスの修正例 .......................................................................................... 518
23.2.2
修正処理例 ............................................................................................................... 519
第 24 章
ROM ミラー機能選択モジュール........................................................... 521
24.1 ROM ミラー機能選択モジュールの概要 ............................................................................ 522
24.2 ROM ミラー機能選択レジスタ (ROMM) ............................................................................ 523
第 25 章
1M ビットフラッシュメモリ.................................................................. 525
25.1 1M ビットフラッシュメモリの概要 ................................................................................... 526
25.2 フラッシュメモリ全体のブロックダイヤグラムとセクタ構成........................................... 527
25.3 書込み / 消去モード ............................................................................................................ 529
25.4 フラッシュメモリコントロールステータスレジスタ (FMCS) ........................................... 531
25.5 フラッシュメモリ自動アルゴリズム起動方法.................................................................... 533
25.6 自動アルゴリズム実行状態の確認...................................................................................... 534
25.6.1
データポーリングフラグ (DQ7) ............................................................................... 535
25.6.2
トグルビットフラグ (DQ6) ...................................................................................... 536
25.6.3
タイミングリミット超過フラグ (DQ5) .................................................................... 537
25.6.4
セクタ消去タイマフラグ (DQ3) ............................................................................... 538
25.7 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 539
25.7.1
フラッシュメモリを読出し / リセット状態にする ................................................... 540
25.7.2
フラッシュメモリへデータを書き込む .................................................................... 541
25.7.3
フラッシュメモリの全データを消去する ( チップ消去 ).......................................... 543
25.7.4
フラッシュメモリの任意のデータを消去する ( セクタ消去 ) .................................. 544
xi
25.7.5
フラッシュメモリのセクタ消去を一時停止する ...................................................... 546
25.7.6
フラッシュメモリのセクタ消去を再開する ............................................................. 547
25.8 フラッシュメモリの使用上の注意...................................................................................... 548
25.9 1M ビットフラッシュメモリのプログラム例 ..................................................................... 549
第 26 章
26.1
26.2
26.3
26.4
基本構成 ............................................................................................................................. 556
発振クロック周波数とシリアルクロック入力周波数 ......................................................... 558
フラッシュマイコンプログラマのシステム構成 ................................................................ 559
シリアル書込み接続例........................................................................................................ 560
付録
付録 A
付録 B
索引
シリアル書込み接続例 ........................................................................... 555
................................................................................................................569
I/O マップ ....................................................................................................................... 570
命令 ................................................................................................................................ 576
................................................................................................................637
xii
本版での主な変更内容
ページ
変更内容 ( 詳細は本文を参照してください。)
576 ∼ 636 「付録 B 命令」全体を変更
変更箇所は , 本文中のページ左側の│によって示しています。
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容 ( 詳細は本文を参照してください。)
型格を削除
(MB90F423GB, MB90F428GB, MB90423GB, MB90427GB, MB90428GB)
―
2
14, 15
用語を統一
(ELVR → ELVRH/ELVRL)
(PCNTH0 − 2 → PCNTH0 ∼ PCNTH2)
(PPG 制御ステータスレジスタ下位:PCNTH0-2 → PCNTL0 ∼ PCNTL2)
(PPG ダウンカウンタレジスタ上位 / 下位:PDCRH0-2 → PDCR0 ∼ PDCR2)
(PPG 周期設定レジスタ上位 / 下位:PCSRH0-2 → PCSR0 ∼ PCSR2)
(PPG デューティ設定レジスタ上位:PDUTH0-2 → PDUT0 ∼ PDUT2)
(PPG デューティ設定レジスタ下位:PDUTL0-2 → PDUT0 ∼ PDUT2)
( アディショナルバンクレジスタ→アディショナルデータバンクレジスタ )
( プログラムバンクレジスタ (PCB) → プログラムカウンタバンクレジスタ (PCB))
(16 ビットタイマレジスタ (TMR0/1L,TMR0/1H) → 16 ビットタイマレジスタ (TMR0, TMR1))
(16 ビットリロードレジスタ (TMRLR0/1L,TMRLR0/1H) → 16 ビットリロードレジス
タ (TMRLR0, TMRLR1))
( タイマコントロールステータスレジスタ (TMCSR0/1L,TMCSR0/1H) →タイマコント
ロールステータスレジスタ (TMCSR0L, TMCSR1L/TMCSR0H, TMCSR1H))
表 1.1-1 MB90420G シリーズ製品概要 を変更
(*1:開発中 の記述を削除 )
表 1.1-2 MB90425G シリーズ製品概要 を変更
(*1:開発中 の記述を削除 )
表 1.7-1 端子機能説明の分類 E, F, G, H の図 を変更
18
■ プルアップ / プルダウン抵抗 を変更
( 内部プルアップ / プルダウン抵抗 → 内部プルアップ / プルダウン抵抗オプション )
■ LCD 未使用時の端子処理について を追加
30
図 2.5-3 スタック上の多バイト長データの配置 を変更
(*:PUSHW 命令実行後のスタックの状態を削除 )
61
図 3.3-3 割込み制御レジスタ (ICR) の構成 を変更
( アクセスを追加 )
80
図 3.6-5 EI2OS ステータスレジスタ (ISCS) の構成の IOA 更新 / 固定選択ビット を変更
( バッファアドレスポインタ → I/O レジスタアドレスポインタ )
94
表 4.1-1 リセット要因のウォッチドッグタイマの発振安定待ちの欄 を変更
( あり → なし )
97
表 4.2-1 リセット要因と発振安定待ち時間のウォッチドッグの発振安定待ち時間の欄
を変更
( あり :WS1,WS0 ビットは "11" に初期化されます。→ なし : ただし WS1, WS0 ビット
は "11B" に初期化されます。)
xiii
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容 ( 詳細は本文を参照してください。)
111
● 発振安定待ち時間セレクタ を変更
( ストップモードの解除時およびウォッチドッグリセット時の,発振クロックの発振
安定待ち時間を選択する回路です。→ ストップモードの解除時の , 発振クロックの発
振安定待ち時間を選択する回路です。)
112
図 5.3-1 クロック選択レジスタ (CKSCR) の構成の bit14 のアクセスを変更
(R → R/W)
113
表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明の bit11 の機能の欄 を
変更
(・メインクロックモード時に CKSCR レジスタの SCS ビットが "1" の場合に "0" を設
定した場合は , サブクロックに同期をとって ( 約 130µs), メインクロックモードからサ
ブクロックモードに切り換わります。の記述を追加 )
115
● メインクロックモードからサブクロックモードへの移行 を変更
116, 124
<注意事項> を変更
( 切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換えを
行った場合 , 切り換わらない場合があります。の記述を追加 )
117
図 5.4-1 マシンクロック選択の状態遷移図 を変更
127
図 6.3-1 低消費電力モード制御レジスタ (LPMCR) の構成の bit7, bit6, bit4 のアクセスを
変更
(W → R/W)
129
■ 低消費電力モード制御レジスタへのアクセス を変更
表 6.3-2 低消費電力モードへ遷移する場合に使用する命令一覧 を変更
141
図 6.6-1 状態遷移図 を変更
( タイムベースタイマモード → メインタイムベースタイマモード )
( タイムベースタイマモード → PLL タイムベースタイマモード )
( メインクロック発振安定待ち → PLL クロック発振安定待ち )
142
表 6.6-1 低消費電力モードの動作状態 を変更
( タイムベースタイマ → PLL タイムベースタイマ )
( タイムベースタイマ → メインタイムベースタイマ )
143
表 6.7-1 シングルチップモード時の各端子状態 を変更
146
■ クロックモードの切換え を変更
( 切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換えを
行った場合 , 切り換わらない場合があります。の記述を追加 )
147
■ スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセ
スする際の注意事項 を追加
151
表 7.2-1 モード端子の設定 を変更
157
表 8.1-1 各ポートの機能一覧のポート 0, ポート 1 の行 を変更
173, 178,
183, 188,
193, 198,
203
208
● ストップ , タイムベースタイマモード時の動作 を変更
((LPMCSR の SPL) → (LPMCR の SPL))
図 9.3-1 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧 を変更
( 読出し / 書込みを変更 )
xiv
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容 ( 詳細は本文を参照してください。)
211
図 9.3-3 タイムベースタイマ制御レジスタ (TBTC) のビット構成の bit2 の読出し / 書込
みを変更
(W → R/W)
213
図 9.3-4 時計タイマ制御レジスタのビット構成の bit3 の読出し / 書込み を変更
(W → R/W)
213
【bit7】WDCS を変更
( サブクロックモードの場合 , 必ず "0" に設定して , 時計タイマの出力を選択してくだ
さい。"1" に設定した状態で , サブクロックモードへ移行した場合 , ウォッチドッグタ
イマは停止します。の記述を追加 )
221
■ ウォッチドッグタイマの動作クロックの設定 を追加
223
● タイムベースタイマのクリアによる影響 を変更
(• ウォッチドッグタイマを使用しているとき の記述を削除 )
229
図 10.2-1 ブロックダイヤグラム を変更
(MSI3 ∼ 0 → MSI2 ∼ MSI0)
230
図 10.3-1 16 ビットフリーランタイマ部のレジスタ一覧 を変更
(TCCS → TCCSH)
(TCCS → TCCSL)
235
■ コンペアクリアレジスタ (CPCLR) を変更
236
【bit9】:ICLR を変更
( コンペア一致し,カウンタクリアされた場合に → コンペア一致した場合に )
237
■ タイマコントロールステータスレジスタ (TCCSH, TCCSL)
【bit4】:MODE を変更
((bit3:CLR) → (bit3:SCLR))
( コンペアクリアレジスタ → コンペアクリアレジスタ (CPCLR))
【bit3】:SCLR を変更
( <注意事項> を追加 )
239
図 10.4-2 入力信号に対するキャプチャタイミング を変更
(N-1 → N+1)
240
■ 16 ビットフリーランタイマの動作説明 を変更
(・動作中に TCCS レジスタの SCLR ビットへの "1" 書込み → ・動作中に TCCSH,
TCCSL レジスタの SCLR ビットへの "1" 書込み )
( 割込みは,オーバフローが発生したとき,コンペアクリアレジスタ値とコンペア
マッチしてカウンタがクリアされたとき発生することができます→ 割込みは , オーバ
フローが発生したとき , コンペアクリアレジスタ値とフリーランタイマがコンペア
マッチしたときに発生します )
248
表 11.3-1 16 ビットリロードタイマの端子の端子名 P11/TOT0/WOT の端子の使用に必要
な設定 を変更
( タイマ出力許可に設定 (TMCSR0L:OUTE=1) サウンドジェネレータ出力禁止 →
TOT0 使用時にリアルタイム時計タイマ出力禁止 (WTCRL:OE=1))
266
【コーディング例】を変更
(MOVW I:TMRLR, #30D4H → MOVW I:TMRLR, #30D3H)
xv
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容 ( 詳細は本文を参照してください。)
271
12.2 リアルタイム時計タイマのレジスタの要約 を変更
(・リアルタイム時計タイマコントロールレジスタ (WTCR) →・リアルタイム時計タイ
マ制御レジスタ (WTCRL, WTCRH))
288
図 13.4-1 PWM 動作再起動禁止のタイミング を変更
( ①= T( n - 1 ) µs → ①= T( n + 1 ) µs)
( ②= T( m - 1 ) µs → ②= T( m + 1 ) µs)
288, 289
図 13.4-2, 図 13.4-3, 図 13.4-4 を変更
( ① , ② , T, m, n の意味についての記述を追加 )
302
( 注意事項 ) を変更
303
( 注意事項 ) を変更
306
■ DTP/ 外部割込み回路の設定 を変更
(1) 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに設
定する。の記述を追加 )
325
表 16.4-1 A/D 制御ステータスレジスタ上位 (ADCSH) の各ビットの機能説明
bit9 の機能の欄 を変更
(・バイト / ワード命令では "1" が読み出されます。
・リードモディファイライト系命令では "0" が読み出されます。の記述を追加 )
327
表 16.4-2 A/D 制御ステータスレジスタ下位 (ADCSL) の各ビットの機能説明
bit5 ∼ bit3 の機能の欄 を変更
(・本ビットに値を設定した場合でも , A/D 変換が開始されるまでは , 設定した値では
なく , 前回に A/D 変換したチャネル番号が読み出されます。リセット時は , "000B" に
初期化されます。の記述を追加 )
bit2 ∼ bit0 の機能の欄 を変更
(( 注意事項 ) を追加 )
354
表 17.4-1 シリアル制御レジスタ (SCR0/SCR1) の各ビットの機能説明
bit10 の機能の欄の ( 注意事項 ) を変更
(FRE,DRE,PE → FRE, ORE, PE)
bit9, bit8 の機能の欄 を変更
( 動作モード 2 ( 同期 ) 時は , RXE または TXE のどちらか一方を "1" に設定すると送
信・受信動作共に許可されます。の記述を追加 )
356
表 17.4-2 シリアルモードレジスタ (SMR0/SMR1) の各ビットの機能説明のbit5, bit4, bit3
を変更
(( 注意事項 ) を追加 )
358
表 17.4-3 シリアルステータスレジスタ (SSR0/SSR1) の各ビットの機能説明
bit15, bit14, bit13 の機能の欄 を変更
( シリアルモードレジスタ (SMR) → シリアル制御レジスタ (SCR))
bit10 の機能の欄の ( 注意事項 ) を変更
(SDR レジスタ → SIDR, SODR レジスタ )
361
362
【bit15】MD (Machine clock Devide mode select) を変更
(MS ビット → MD ビット )
<注意事項> を変更
xvi
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容 ( 詳細は本文を参照してください。)
369
表 17.6-2 同期ボーレート分周比の選択 を変更
( 表の内容を変更 )
( ただし,φ はマシンサイクル,φ=16MHz,div=1 で算出しています。→ ただし , φ はマ
シンサイクル , φ=16MHz, div=2 で算出しています。)
370
表 17.6-3 非同期ボーレート分周比の選択 を変更
(SCKI の列 を削除 )
● 内部タイマ を変更
( <注意事項> を変更 )
372
<注意事項> を追加
379
図 17.7-5 転送データフォーマット ( 動作モード 2) を変更
380
<注意事項> を追加
386
● クロック同期モード時のクロック設定 を追加
393
表 18.3-2 メッセージバッファコントロールレジスタの一覧の略称 TCR のアクセス を
変更
((R/W) → (W))
395
表 18.3-3 メッセージバッファ (ID レジスタ ) の一覧の略称 IDR8,IDR15 のアドレス を
変更
(003A43H, 003B43H のアドレスを追加 )
(003A5FH, 003B5FH のアドレスを追加 )
398
18.3.1 制御ステータスレジスタ (CSR) の要約 を変更
400
<注意事項> を変更
(for(i=0;(i<=500)||(IO_CANCT0.CSR.bit.HALT==0);i++); →
for(i=0;(i<=500)&&(IO_CANCT0.CSR.bit.HALT==0);i++);)
408
● 設定例の④ を変更
424
図 18.3-21 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成 を変更
(AMR0 → AMR1)
442
● 送信データ長コードの設定 を変更
(DLC3 ∼ DLC0 → ID3 ∼ ID0)
446
図 18.9-1 マルチレベルメッセージバッファの動作例 を変更
(AMS0 → AMR0)
456
● 表示用 RAM を変更
( セグメント出力端子より → 表示用 RAM への書換えと同時に )
463
図 19.4-1 LCD コントローラ / ドライバに関連するレジスタのビット構成の LCRH (LCD
制御レジスタ上位 ) を変更
464
■ LCD 制御レジスタ下位 (LCRL) のビット構成 を変更
( 図 19.4-2 LCD 制御レジスタ下位 (LCRL) のビット構成 を変更 )
465
表 19.4-1 LCD 制御レジスタ下位 (LCRL) の各ビットの機能説明の bit6 のビット名およ
び機能の欄 を変更
( 時計モード時動作許可ビット → タイムベースタイマモード時動作許可ビット )
( 時計モード時 → タイムベースタイマモード時 )
466
図 19.4-3 LCD 制御レジスタ上位 (LCRH) のビット構成 を変更
xvii
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容 ( 詳細は本文を参照してください。)
467
表 19.4-2 LCD 制御レジスタ上位 (LCRH) の各ビットの機能説明の bit12 のビット名お
よび機能の欄 を変更
470
図 19.6-1 LCD コントローラ / ドライバの設定の LCRH のビット構成図を変更
(bit12: 予約 → DTCH)
482
■ 低電圧検出リセット回路 を変更
( 内部リセットが発生している期間は,本回路のリセット出力は抑止されます。の記述
を削除 )
483
■ CPU 動作検出リセット回路 を変更
(• パワーオンリセット の記述を追加 )
526
図 25.1-1 フラッシュメモリコントロールステータスレジスタ (FMCS) のビット構成の
bit4 の読出し / 書込み を変更
(R/W → R)
533
( 注意事項 ) を変更
(・PA: 書込みアドレス,偶数アドレスのみ指定可 → ・PA: 書込みアドレス )
537
● 書込み / チップセクタ消去時 を変更
( まれに "1" が書き込めたように , 正常終了する場合もあります。の記述を追加 )
541
● アドレス指定方法 を変更
( 書込みデータサイクルの中で指定する書込みアドレスは,偶数アドレスのみが使用
できます。奇数アドレスを指定すると,正しく書き込むことができません。すなわち,
偶数アドレスへのワードデータ単位での書込みが必要となります。の記述を削除 )
545
図 25.7-2 フラッシュメモリのセクタ消去手順の例 を変更
546
■ フラッシュメモリのセクタ消去を一時停止する を変更
( 最大 15µs → 最大 20µs)
( セクタ消去一時停止コマンドは , セクタ消去コマンドあるいはセクタ消去再開コマン
ド発行後 , 20µs 以上後に行ってください。の記述を追加 )
表 26.1-1 使用する端子の機能の VCC の補足欄 を変更
557
( 書込み電圧 (VCC=5.0V ± 10%) をユーザシステムから供給する場合には,フラッシュ
マイコンプログラマとの接続は必要ありません。→書込み電圧 (VCC=5.0V ± 10 %))
570 ∼ 572
付表 A-1I/O マップ
下記レジスタ略称のレジスタ を変更
(WTCRL, WTCRH, SGDR, IPCP0, IPCP1, ROMM, LPMCR, WDTC, FMCS)
下記レジスタ略称のアクセス を変更
(ADCSH, ADCRL, ADCRH, SCR0, SIDR0/SODR0, SSR0, SCR1, SIDR1/SODR1, SSR1,
TMR0/TMRLR0, TMR1/TMRLR1, SGCRH, LVRC, WDTC, WTC, FMCS)
601
表 B.8-1 転送系命令 ( バイト ) 41 命令 を変更
(MOV @AL,AH/MOV @A,T → MOV @AL,AH)
602
表 B.8-2 転送系命令 ( ワード・ロングワード ) 38 命令 を変更
(MOVW @AL,AH/MOVW @A,T → MOVW @AL,AH)
613
表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命令 を変更
(SWAPW/XCHW A,T → SWAPW)
変更箇所は , 本文中のページ左側の│によって示しています。
xviii
第1章
概要
この章では , MB90420G/425G シリーズの特長と基
本的な仕様について説明します。
1.1 製品概要
1.2 特長
1.3 ブロックダイヤグラム
1.4 外形寸法図
1.5 端子配列図
1.6 端子機能説明
1.7 入出力回路形式
1.8 デバイスの取扱いに関する注意事項
1
第 1 章 概要
製品概要
1.1
MB90420G/425G シリーズの製品概要を示します。
■ 製品概要
表 1.1-1 に MB90420G シリーズの製品概要を , 表 1.1-2 に MB90425G シリーズの製品概
要を示します。
表 1.1-1 MB90420G シリーズ製品概要
特長
MB90V420G
品種構成
評価用品
MB90F423GA
MB90F423GC
MB90423GA
MB90423GC
マスク ROM 品
フラッシュメモリ品
F2MC-16LX CPU
CPU
2 系統
クロック
1 系統
2 系統
1 系統
2 系統
オンチップ PLL クロック逓倍方式 ( × 1, × 2, × 3, × 4, PLL 停止時 1/2)
最小命令実行時間 62.5ns (4MHz 原発振 4 逓倍 )
システム
クロック
外部
ROM
フラッシュ ROM 128K バイト
RAM
6K バイト
CAN インタ
フェース
2 チャネル
マスク ROM 128K バイト
低電圧 /CPU 動作
検出リセット
なし
パッケージ
PGA-256
QFP100, LQFP100
エミュレータ
専用電源 *
なし
-
あり
なし
あり
なし
*:エミュレーションポッド MB2145-507 を使用する際のディップスイッチ S2 の設定です。
詳細につきましては , 『MB2145-507 ハードウェアマニュアル (2.7 エミュレータ専用電源 )』を参照し
てください。
表 1.1-2 MB90425G シリーズ製品概要
特長
品種構成
MB90F428GA
MB90F428GC
1 系統
マスク ROM 品
2 系統
1 系統
2 系統
1 系統
2 系統
フラッシュ ROM 128K バイト
マスク ROM 64K バイト
マスク ROM 128K バイト
6K バイト
4K バイト
6K バイト
CAN インタ
フェース
2
MB90428GC
オンチップ PLL クロック逓倍方式 ( × 1, × 2, × 3, × 4, PLL 停止時 1/2)
最小命令実行時間 62.5ns (4MHz 原発振 4 逓倍 )
RAM
低電圧 /CPU 動作
検出リセット
MB90428GA
F2MC-16LX CPU
システム
クロック
ROM
MB90427GC
フラッシュメモリ品
CPU
クロック
MB90427GA
1 チャネル
あり
なし
あり
なし
パッケージ
QFP100, LQFP100
エミュレータ
専用電源
-
あり
なし
第 1 章 概要
<注意事項>
• 評価用品は , MB90420G/425G シリーズ共通で MB90V420G がご使用いただけます。
• MB90V420G を除く MB90420G/425G シリーズでは , リセット後の端子初期状態が P70 ~
P77, P80 ~ P87 で出力 "L" となります。MB90V420G のみ P70 ~ P77, P80 ~ P87 の
リセット後の端子初期状態は , ハイインピーダンスになります。
3
第 1 章 概要
特長
1.2
MB90420G/425G シリーズの特長を示します。
■ 特長
表 1.2-1 に MB90420G/425G シリーズの特長を示します。
表 1.2-1 MB90420G/425G シリーズの特長 (1 / 2)
機能
特長
16 ビットインプット
キャプチャ
(4 チャネル )
立上りエッジ , 立下りエッジまたはその両方を検出します。
16 ビットキャプチャレジスタ× 4 本
端子入力のエッジ検出で , 16 ビットフリーランタイマのカウンタ値をラッチし , 割込み
要求を発生します。
16 ビットリロード
タイマ (2 チャネル )
16 ビットリロードタイマ動作 ( トグル出力 , ワンショット出力選択可 )
イベントカウント機能の選択が可能です。
時計タイマ
( メインクロック )
発振クロックで直接動作します。
発振偏差の修正に対応しています。
読出し / 書込み可能な秒 / 分 / 時レジスタ
信号割込み
16 ビット PPG
(3 チャネル )
出力端子× 3 本 , 外部トリガ入力端子× 1 本
動作クロック周波数 :fcp, fcp/22, fcp/24, fcp/26
遅延割込み
タスク切換え用の割込みを発生します。
ソフトウェアで CPU に対して割込み要求の発生 / 取消しが可能です。
外部割込み
(8 チャネル )
8 チャネル独立
割込み要因 :L → H エッジ /H → L エッジ /L レベル /H レベルの選択が可能です。
A/D コンバータ
10 ビットまたは 8 ビットの分解能× 8 チャネル ( 入力マルチプレックス )
変換時間 :6.13 μs 以下 (fcp=16MHz 時 )
外部トリガ起動可 (P50/INT0/ADTG)
内部タイマによる起動可 (16 ビットリロードタイマ 1)
UART (2 チャネル )
全二重ダブルバッファ方式
非同期 / 同期転送 ( スタート / ストップビット付き ) をサポートします。
内部タイマをクロックとして選択できます (16 ビットリロードタイマ 0)。
非同期 : 4808bps, 5208bps, 9615bps, 10417bps, 19230bps, 38460bps, 62500bps, 500000bps
同期 : 500Kbps, 1Mbps, 2Mbps (fcp=16MHz 時 )
CAN インタフェース
*1
CAN 仕様バージョン 2.0 パート A およびパート B に準拠します。
エラー時に自動再送します。
リモートフレームに応答して自動転送します。
データおよび ID 用の順位付けされた 16 個のメッセージバッファの複数メッセージを
サポートします。
受入れフィルタの柔軟な構成 :
全ビットコンペア / 全ビットマスク /2 個の部分ビットマスク
最高 1Mbps までサポートします。
CAN WAKEUP 機能 (RX をデバイス内部で INT0 に接続 )
LCD コントローラ /
セグメントドライバおよびコモンドライバは , LCD パネル ( 液晶表示 ) を直接駆動する
ドライバ (1 チャネル ) ことができます。
低電圧 /CPU 動作検出
リセット *2
低電圧検出時自動リセット
CPU 動作検出機能
ステッピングモータ
コントローラ
(4 チャネル )
各チャネルに対する高電流出力× 4 本
各チャネルに対する同期化済み 8/10 ビット PWM × 2 本
4
第 1 章 概要
表 1.2-1 MB90420G/425G シリーズの特長 (2 / 2)
機能
特長
サウンド
ジェネレータ
8 ビット PWM 信号は , 8 ビットリロードカウンタからのトーン周波数とミックスされ
ます。
PWM 周波数 :62.5kHz, 31.2kHz, 15.6kHz, 7.8kHz (fcp=16MHz 時 )
トーン周波数 :PWM 周波数 /2/ ( リロード値 +1)
入出力ポート
プッシュプル出力とシュミットトリガ入力
入力 / 出力または周辺信号として , ビット単位でプログラム可能です。
フラッシュメモリ
自動プログラミング , Embedded AlgorithmTM, 書込み / 消去 / 消去一時停止 / 消去再開コ
マンドをサポートします。
アルゴリズムの完了を示すフラグ
ミナトエレクトロニクス製のフラッシュライタ
ブートブロック構成
各ブロックで消去を実行可能です。
外部プログラミング電圧によるブロック保護
*1: MB90420G シリーズは , 2 チャネル搭載 , MB90425G シリーズは , 1 チャネル搭載しています。
*2: MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA のみ搭載しています。MB90F423GC,
MB90F428GC, MB90423GC, MB90427GC, MB90428GC, MB90V420G には , 搭載していません。
5
第 1 章 概要
1.3
ブロックダイヤグラム
MB90420G/425G シリーズのブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 1.3-1 に MB90420G/425G シリーズのブロックダイヤグラムを示します。
図 1.3-1 ブロックダイヤグラム
X0,X1
X0A,X1A
RST
クロック
制御回路
CPU
2
F MC-16LXコア
割込み
コントローラ
ROM
P57/SGA
P56/SGO/FRCK
P55/RX0
P54/TX0
P53/INT3
P52/INT2(/TX1)
P51/INT1(/RX1)
P50/INT0/ADTG
サウンド
ジェネレータ
CANコントローラ
ポート5
外部割込み(8ch)
P00/SIN0/INT4
P01/SOT0/INT5
P02/SCK0/INT6
P03/SIN1/INT7
P04/SOT1
P05/SCK1/TRG
P06/PPG0/TOT1
P07/PPG1/TIN1
低電圧/CPU動作
検出リセット
ポート 8
ステッピング
モータ
コントローラ
0/1/2/3
UART0/1
プリスケーラ0/1
ポート0
PPG0/1/2
P10/PPG2
P11/TOT0/WOT
P12/TIN0/IN3
P13/IN2
P14/IN1
P15/IN0
F2MC-16LX BUS
RAM
ポート7
P77/PWM2M1
P76/PWM2P1
P75/PWM1M1
P74/PWM1P1
P73/PWM2M0
P72/PWM2P0
P71/PWM1M0
P70/PWM1P0
ポート6
A/Dコンバータ
(8ch)
ポート1
P67~P60/
AN7~AN0
AVCC/AVSS
AVRH
ポート9
P91,P90/
SEG23,SEG22
ポート4
P47~P40/
SEG21~SEG14
ポート3
P37,P36/
SEG13,SEG12
リロードタイマ0/1
時計タイマ(メイン)
ICU0/1/2/3
フリーランタイマ
P87/PWM2M3
P86/PWM2P3
P85/PWM1M3
P84/PWM1P3
P83/PWM2M2
P82/PWM2P2
P81/PWM1M2
P80/PWM1P2
LCDコントローラ/
ドライバ
SEG11~SEG0
COM3~COM0
V3~V0
※評価用デバイス(MB90V420G)の仕様
内蔵ROMはありません。
内蔵RAMは6Kバイトとなります。
<注意事項>
CAN インタフェースは , MB90420G シリーズは , 2 チャネル搭載 , MB90425G シリーズ
は , 1 チャネル搭載しています。
低 電 圧 /CPU 動 作 検 出 リ セ ッ ト は , MB90F423GA, MB90F428GA, MB90423GA,
MB90427GA, MB90428GA の み 搭 載 し て い ま す。MB90F423GC, MB90F428GC,
MB90423GC, MB90427GC, MB90428GC, MB90V420G には , 搭載していません。
6
第 1 章 概要
外形寸法図
1.4
MB90420G/425G シリーズには , 2 種類のパッケージが用意されています。
なお , 本外形寸法図は参考用です。正式版については , 別途ご相談ください。
■ パッケージ外形寸法図 (QFP100)
図 1.4-1 パッケージ外形寸法図 (QFP100)
プラスチック・QFP, 100ピン
リードピッチ
0.65mm
パッケージ幅×
パッケージ長さ
14.00×20.00mm
リード形状
ガルウィング
封止方法
プラスチックモールド
3.35mm MAX
取付け高さ
コード(参考)
P-QFP100-14×20-0.65
(FPT-100P-M06)
プラスチック・QFP, 100ピン
(FPT-100P-M06)
注1)*印寸法はレジン残りを含まず。
注2)端子幅および端子厚さはメッキ厚を含む。
注3)端子幅はタイバ切断残りを含まず。
23.90±0.40(.941±.016)
* 20.00±0.20(.787±.008)
80
51
81
50
0.10(.004)
17.90±0.40
(.705±.016)
*14.00±0.20
(.551±.008)
INDEX
Details of "A" part
100
0.25(.010)
+0.35
3.00 -0.20
+.014
.118 -.008
(Mounting height)
0~8°
31
1
30
0.65(.026)
0.32±0.05
(.013±.002)
0.13(.005)M
0.17±0.06
(.007±.002)
"A"
C
2002 FUJITSU LIMITED F100008S-c-5-5
0.80±0.20
(.031±.008)
0.88±0.15
(.035±.006)
0.25±0.20
(.010±.008)
(Stand off)
単位:mm (inches)
注意:括弧内の値は参考値です。
最新の外形寸法図については、下記の URL にてご確認ください。
http://edevice.fujitsu.com/jp/dataseet/jf-ovpklv.html
7
第 1 章 概要
■ パッケージ外形寸法図 (LQFP100)
図 1.4-2 パッケージ外形寸法図 (LQFP100)
プラスチック・LQFP, 100ピン
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
14.0×14.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
1.70mm MAX
取付け高さ
(FPT-100P-M05)
質量
0.65g
コード(参考)
P-LFQFP100-14×14-0.50
プラスチック・LQFP, 100ピン
(FPT-100P-M05)
注1)*印寸法はレジン残りを含まず。
注 2)端子幅および端子厚さはメッキ厚を含む。
注3)端子幅はタイバ切断残りを含まず。
16.00±0.20(.630±.008)SQ
* 14.00±0.10(.551±.004)SQ
75
51
76
50
0.08(.003)
Details of "A" part
+0.20
100
26
"A"
1
25
0.50(.020)
C
0.20±0.05
(.008±.002)
0.08(.003)M
0.145±0.055
(.0057±.0022)
2003 FUJITSU LIMITED F100007S-c-4-6
最新の外形寸法図については、下記の URL にてご確認ください。
http://edevice.fujitsu.com/jp/dataseet/jf-ovpklv.html
8
+.008
1.50 -0.10 .059 -.004
(Mounting height)
INDEX
~8°
0°
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
0.10±0.10
(.004±.004)
(Stand off)
0.25(.010)
単位:mm (inches)
注意:括弧内の値は参考値です。
第 1 章 概要
1.5
端子配列図
MB90420G/425G シリーズの端子配列図を示します。
■ 端子配列図 (QFP100)
図 1.5-1 にプラスチック QFP100 タイプの端子配列図を示します。
図 1.5-1 端子配列図 (QFP100)
Vss
X0
X1
Vcc
P00/SIN0/INT4
P01/SOT0/INT5
P02/SCK0/INT6
P03/SIN1/INT7
P04/SOT1
P05/SCK1/TRG
P06/PPG0/TOT1
P07/PPG1/TIN1
P10/PPG2
P11/TOT0/WOT
P12/TIN0/IN3
P13/IN2
P14/IN1
P15/IN0
COM0
COM1
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
COM2
COM3
SEG0
SEG1
SEG2
SEG3
SEG4
SEG5
SEG6
SEG7
Vss
SEG8
SEG9
SEG10
SEG11
P36/SEG12
P37/SEG13
P40/SEG14
P41/SEG15
P42/SEG16
P43/SEG17
P44/SEG18
Vcc
P45/SEG19
P46/SEG20
P47/SEG21
C
P90/SEG22
P91/SEG23
V0
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
MB90420G/425Gシリーズ
TOP VIEW
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
X0A
X1A
P57/SGA
RST
P56/SGO/FRCK
P55/RX0
P54/TX0
DVss
P87/PWM2M3
P86/PWM2P3
P85/PWM1M3
P84/PWM1P3
DVcc
P83/PWM2M2
P82/PWM2P2
P81/PWM1M2
P80/PWM1P2
DVss
P77/PWM2M1
P76/PWM2P1
P75/PWM1M1
P74/PWM1P1
DVcc
P73/PWM2M0
P72/PWM2P0
P71/PWM1M0
P70/PWM1P0
DVss
P53/INT3
MD2
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
MD1
MD0
P52/INT2(/TX1)
P51/INT1(/RX1)
P67/AN7
P66/AN6
P65/AN5
P64/AN4
Vss
P63/AN3
P62/AN2
P61/AN1
P60/AN0
AVss
P50/INT0/ADTG
AVRH
AVcc
V3
V2
V1
9
第 1 章 概要
■ 端子配列図 (LQFP100)
図 1.5-2 にプラスチック LQFP100 タイプの端子配列図を示します。
図 1.5-2 端子配列図 (LQFP100)
P57/SGA
X1A
X0A
Vss
X0
X1
Vcc
P00/SIN0/INT4
P01/SOT0/INT5
P02/SCK0/INT6
P03/SIN1/INT7
P04/SOT1
P05/SCK1/TRG
P06/PPG0/TOT1
P07/PPG1/TIN1
P10/PPG2
P11/TOT0/WOT
P12/TIN0/IN3
P13/IN2
P14/IN1
P15/IN0
COM0
COM1
COM2
COM3
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
SEG0
SEG1
SEG2
SEG3
SEG4
SEG5
SEG6
SEG7
Vss
SEG8
SEG9
SEG10
SEG11
P36/SEG12
P37/SEG13
P40/SEG14
P41/SEG15
P42/SEG16
P43/SEG17
P44/SEG18
Vcc
P45/SEG19
P46/SEG20
P47/SEG21
C
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
MB90420G/425Gシリーズ
TOP VIEW
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
P53/INT3
MD2
MD1
MD0
P52/INT2(/TX1)
P51/INT1(/RX1)
P67/AN7
P66/AN6
P65/AN5
P64/AN4
Vss
P63/AN3
P62/AN2
P61/AN1
P60/AN0
AVss
P50/INT0/ADTG
AVRH
AVcc
V3
V2
V1
V0
P91/SEG23
P90/SEG22
10
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
RST
P56/SGO/FRCK
P55/RX0
P54/TX0
DVss
P87/PWM2M3
P86/PWM2P3
P85/PWM1M3
P84/PWM1P3
DVcc
P83/PWM2M2
P82/PWM2P2
P81/PWM1M2
P80/PWM1P2
DVss
P77/PWM2M1
P76/PWM2P1
P75/PWM1M1
P74/PWM1P1
DVcc
P73/PWM2M0
P72/PWM2P0
P71/PWM1M0
P70/PWM1P0
DVss
第 1 章 概要
端子機能説明
1.6
MB90420G/425G シリーズの端子機能説明を示します。
■ 端子機能説明
表 1.6-1 に MB90420G/425G シリーズの端子機能説明を示します。
表 1.6-1 端子機能説明 (1 / 3)
端子番号
端子名
入出力
回路形式 *5
機能
LQFP
80
81
78
77
75
QFP
82
83
80
79
77
83
85
84
86
85
87
86
88
87
89
88
90
89
91
90
92
91
93
92
94
93
95
94 ~ 96
96 ~ 98
97 ~ 100
99, 100,
1, 2
COM0 ~ COM3
I
LCD コントローラ / ドライバのコモン出力端子です。
1 ~ 8,
10 ~ 13
3 ~ 10,
12 ~ 15
SEG0 ~ SEG11
I
LCD コントローラ / ドライバのセグメント出力端子で
す。
X0
X1
X0A
X1A
RST
P00
SIN0
INT4
P01
SOT0
INT5
P02
SCK0
INT6
P03
SIN1
INT7
P04
SOT1
P05
SCK1
TRG
P06
PPG0
TOT1
P07
PPG1
TIN1
P10
PPG2
P11
TOT0
WOT
P12
TIN0
IN3
P13 ~ P15
IN2 ~ IN0
A
A
B
G
G
G
G
G
G
G
G
G
G
G
G
高速発振入力端子です。
高速発振出力端子です。
低速発振入力端子です。*1
低速発振出力端子です。*2
リセット入力端子です。
汎用入出力ポートです。
UART ch.0 のシリアルデータ入力端子です。
INT4 の外部割込み入力端子です。
汎用入出力ポートです。
UART ch.0 のシリアルデータ出力端子です。
INT5 の外部割込み入力端子です。
汎用入出力ポートです。
UART ch.0 のシリアルクロック入出力端子です。
INT6 の外部割込み入力端子です。
汎用入出力ポートです。
UART ch.1 のシリアルデータ入力端子です。
INT7 の外部割込み入力端子です。
汎用入出力ポートです。
UART ch.1 のシリアルデータ出力端子です。
汎用入出力ポートです。
UART ch.1 のシリアルクロック入出力端子です。
16 ビット PPG ch.0 ~ ch.2 の外部トリガ入力端子です。
汎用入出力ポートです。
16 ビット PPG ch.0 の出力端子です。
16 ビットリロードタイマ ch.1 の TOT 出力端子です。
汎用入出力ポートです。
16 ビット PPG ch.1 の出力端子です。
16 ビットリロードタイマ ch.1 の TIN 入力端子です。
汎用入出力ポートです。
16 ビット PPG ch.2 の出力端子です。
汎用入出力ポートです。
16 ビットリロードタイマ ch.0 の TOT 出力端子です。
時計タイマの WOT 出力端子です。
汎用入出力ポートです。
16 ビットリロードタイマ ch.0 の TIN 入力端子です。
インプットキャプチャ ch.3 のトリガ入力端子です。
汎用入出力ポートです。
インプットキャプチャ ch.0 ~ ch.2 のトリガ入力端子です。
11
第 1 章 概要
表 1.6-1 端子機能説明 (2 / 3)
端子番号
LQFP
QFP
14, 15
16, 17
16 ~ 20,
22 ~ 24
18 ~ 22,
24 ~ 26
26, 27
28, 29
34
36
36 ~ 39,
41 ~ 44
38 ~ 41,
43 ~ 46
45
端子名
入出力
回路形式 *5
P36, P37
46
SEG12, SEG13
P40 ~ P47
SEG14 ~
SEG21
P909, P91
SEG22, SEG23
E
E
E
47
P50
INT0
ADTG
P60 ~ P67
AN0 ~ AN7
P51
INT1
G
48
(RX1) *3
P52
INT2
G
G
F
*3
67 ~ 70
69 ~ 72
72
74
73
75
74
76
76
78
28 ~ 31
30 ~ 33
(TX1)
P53
INT3
P70 ~ P73
PWM1P0
PWM1M0
PWM2P0
PWM2M0
P74 ~ P77
PWM1P1
PWM1M1
PWM2P1
PWM2M1
P80 ~ P83
PWM1P2
PWM1M2
PWM2P2
PWM2M2
P84 ~ P87
PWM1P3
PWM1M3
PWM2P3
PWM2M3
P54
TX0
P55
RX0
P56
SGO
FRCK
P57
SGA
V0 ~ V3
56, 66
58, 68
DVCC
50
52
52 ~ 55
54 ~ 57
57 ~ 60
62 ~ 65
12
59 ~ 62
64 ~ 67
G
H
機能
汎用入出力ポートです。
LCD コントローラ / ドライバのセグメント出力端子で
す。
汎用入出力ポートです。
LCD コントローラ / ドライバのセグメント出力端子で
す。
汎用入出力ポートです。
LCD コントローラ / ドライバのセグメント出力端子で
す。
汎用入出力ポートです。
INT0 の外部割込み入力端子です。
A/D コンバータの外部トリガ入力端子です。
汎用入出力ポートです。
A/D コンバータの入力端子です。
汎用入出力ポートです。
INT1 の外部割込み入力端子です。
CAN インタフェース 1 の RX 入力端子です。
汎用入出力ポートです。
INT2 の外部割込み入力端子です。
CAN インタフェース 1 の TX 出力端子です。
汎用入出力ポートです。
INT3 の外部割込み入力端子です。
汎用入出力ポートです。
ステッピングモータコントローラ ch.0 の出力端子です。
汎用入出力ポートです。
H
ステッピングモータコントローラ ch.1 の出力端子です。
汎用入出力ポートです。
H
ステッピングモータコントローラ ch.2 の出力端子です。
汎用入出力ポートです。
H
G
G
G
G
-
ステッピングモータコントローラ ch.3 の出力端子です。
汎用入出力ポートです。
CAN インタフェース 0 の TX 出力端子です。
汎用入出力ポートです。
CAN インタフェース 0 の RX 入力端子です。
汎用入出力ポートです。
サウンドジェネレータの SGO 出力端子です。
フリーランタイマのクロック入力端子です。
汎用入出力ポートです。
サウンドジェネレータの SGA 出力端子です。
LCD コントローラ / ドライバの基準電源端子です。
高電流出力バッファの専用電源入力端子です ( 端子番号
54 ~ 57, 59 ~ 62, 64 ~ 67, 69 ~ 72) 。
第 1 章 概要
表 1.6-1 端子機能説明 (3 / 3)
端子番号
端子名
入出力
回路形式 *5
53, 63, 73
DVSS
-
32
35
34
37
AVCC
AVSS
-
33
35
AVRH
-
47
48
49
50
MD0
MD1
C
49
51
MD2
C/D*4
25
27
C
-
VCC
VSS
-
LQFP
QFP
51, 61, 71
機能
高電流出力バッファの専用 GND 電源端子です ( 端子番
号 54 ~ 57, 59 ~ 62, 64 ~ 67, 69 ~ 72) 。
A/D コンバータの専用電源入力端子です。
A/D コンバータの専用 GND 電源端子です。
A/D コンバータの Vref+ 入力端子です。Vref- は AVSS 固
定です。
テストモード用入力端子です。VCC に接続してくださ
い。
テストモード用入力端子です。VSS に接続してくださ
い。
外部コンデンサ用の端子です。0.1μF のコンデンサを ,
この端子と VSS に接続してください。
電源入力端子です。
GND 電源端子です。
*1:MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA では , プルダウン処理してください。
*2:MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA では , 開放にしてください。
*3: MB90420G シリーズのみの機能です。
*4: MASK 品の場合は D に , フラッシュメモリ品の場合は C になります。
*5: 入出力回路形式については ,「1.7 入出力回路形式」を参照してください。
21, 82
9, 40, 79
23, 84
11, 42, 81
13
第 1 章 概要
入出力回路形式
1.7
各端子の入出力回路形式を示します。
■ 入出力回路形式
表 1.7-1 に各端子の入出力回路形式を示します。
表 1.7-1 端子機能説明 (1 / 2)
分類
回路
備考
・発振帰還抵抗 約 1MΩ
(X0, X1: メイン )
・発振帰還抵抗 約 10MΩ
(X0A, X1A: サブ )
X1/X1A
A
X0/X0A
スタンバイ制御信号
・プルアップ抵抗付き 約 50kΩ
・ヒステリシス入力
B
ヒステリシス入力
・ヒステリシス入力
C
ヒステリシス入力
ヒステリシス入力
・プルダウン抵抗付き 約 50kΩ
・ヒステリシス入力
D
・CMOS 出力
・LCDC 出力
・ヒステリシス入力
E
LCDC出力
ヒステリシス入力
スタンバイ制御信号
14
第 1 章 概要
表 1.7-1 端子機能説明 (2 / 2)
分類
回路
備考
・CMOS 出力
・ヒステリシス入力
・アナログ入力
F
アナログ入力
ヒステリシス入力
スタンバイ制御信号
・CMOS 出力
・ヒステリシス入力
G
ヒステリシス入力
スタンバイ制御信号
・CMOS 高電流出力
・ヒステリシス入力
高電流
H
ヒステリシス入力
スタンバイ制御信号
・LCDC 出力
I
LCDC出力
15
第 1 章 概要
1.8
デバイスの取扱いに関する注意事項
デバイスを取り扱う際には , 以下の項目に関して特に注意が必要です。
• 最大定格電圧の厳守 ( ラッチアップの防止 )
• 供給電圧の安定化
• 電源投入時
• 未使用端子の処理
• A/D コンバータの電源端子処理
• 外部クロック使用時
• 電源端子
• A/D コンバータの電源アナログ入力の投入順序
• 高電流出力バッファ端子用電源 (DVCC, DVSS) の取扱い
•
•
•
•
プルアップ / プルダウン抵抗
サブクロックモードを使用しない場合の注意
PLL クロックモード動作中の注意について
LCD 未使用時の端子処理について
■ 最大定格電圧の厳守 ( ラッチアップの防止 )
MB90420G/425G シリーズの入力端子と出力端子に VCC より高い電圧および VSS より
低い電圧を印加しないでください。また , VCC と VSS との間に定格を超える電圧を印
加しないでください。定格を超える電圧を印加すると , ラッチアップ現象が発生するこ
とがあります。ラッチアップが起きると電源電流が激増し , 素子が熱破壊する恐れがあ
ります。使用に際して , 最大定格を超えることのないよう十分注意してください。
また , アナログ電源 (AVCC, AVRH) とアナログ入力と , 高電流出力バッファ端子用電源
(DVCC) を電源投入する場合および切断をする場合は , デジタル電源 (VCC) を超えない
ようにしてください。
デジタル電源 (VCC) 投入後のアナログ電源 (AVCC, AVRH) と高電流出力バッファ端子
用電源 (DVCC) の投入順序は問いません。
■ 供給電圧の安定化
電源電圧の急激な変化があると誤動作することがありますので , VCC 電源電圧を安定
させてください。安定化の基準は , 商用周波数 (50 ~ 60Hz) での VCC リプル変動 (P-P
値 ) は , VCC 電源電圧値の 10 % 以下 , 電源の切換え変化は , 過渡変動率が 0.1V/ms 以下
になるように , 電圧変動を抑えてください。
■ 電源投入時
内蔵している降圧回路の誤動作を防ぐために , 電源投入時の電圧立上げ時間は 50 μs
(0.2V ~ 2.7V の間 ) 以上としてください。
■ 未使用端子の処理
入力端子を使用しない場合に開放のままにしておくと , 外来ノイズにより誤動作の原
因となりますので, 2kΩ以上の抵抗を介して, プルアップまたはプルダウンの処置をし
てください。
また , 使用していない出力端子がある場合は , 出力状態に設定して開放とするか , 入力
状態に設定して入力端子と同じ処理をしてください。
16
第 1 章 概要
■ A/D コンバータの電源端子処理
A/D コンバータを使用しない場合は , AVCC=VCC, AVSS=AVRH=VSS となるよう接続し
てください。
■ 外部クロックを使用する場合
外部クロックを使用する場合においても , パワーオンリセット , サブクロックモードお
よびストップモードから復帰する場合には , 発振安定待ち時間を確保します。外部ク
ロックを使用する場合には , 図 1.8-1 に示すように , X0 端子のみを駆動し , X1 端子は
開放としてください。
図 1.8-1 外部クロック使用例
X0
~
開放
X1
MB90420G/425Gシリーズ
■ 電源端子
ラッチアップを防止するために , 複数ある VCC, VSS 電源端子はデバイス内部で接続し
ています。しかし , 不要輻射の低減 , グランドレベルの上昇によるストローブ信号の誤
動作防止 , 総出力電流規格を守るなどのために , 必ず VCC, VSS 電源端子は , 外部で同一
電源へ接続してください ( 図 1.8-2 を参照 )。
図 1.8-2 電源入力端子 (VCC/VSS)
Vcc
Vss
Vss
Vcc
Vss
Vcc
Vcc
Vss
Vss
Vcc
また , 電流供給源から低いインピーダンスで , デバイスの VCC, VSS 電源端子に接続し
てください。
デバイスの VCC と VSS との間に 1.0 μF 程度のバイパスコンデンサを , VCC,
VSS 電源端子近くで接続することで対処できます。
17
第 1 章 概要
■ A/D コンバータの電源アナログ入力の投入順序
A/D コンバータの電源端子 (AVCC, AVRH) およびアナログ入力端子 (AN0 ~ AN7) への
電圧印加は , 必ずデジタル電源 (VCC) の投入後に行ってください。デバイス電源切断時
は A/D コンバータの電源およびアナログ入力電源を切断した後で , デジタル電源 (VCC)
を切断してください。その際 , AVRH は AVCC を超えないようにしてください。アナ
ログ入力と兼用している端子を入力ポートとして使用する場合は, 入力電圧がAVCC を
超えないようにしてください ( アナログ電源とデジタル電源に電源電圧を同時に印加・
切断することは問題ありません ) 。
■ 高電流出力バッファ端子用電源 (DVCC, DVSS) の取扱い
高電流出力バッファ端子用電源 (DVCC, DVSS) の印加は , 必ずデジタル電源 (VCC) の投
入後に行ってください。また , デジタル電源 (VCC) は高電流出力バッファ端子用電源切
断の後で切断してください ( 高電流出力バッファ端子用電源とデジタル電源を同時に
投入・切断をすることは問題ありません ) 。
高電流出力バッファ端子を汎用ポートとして使用する場合も , 高電流出力バッファ端
子用電源 (DVCC, DVSS) を印加してください。
■ プルアップ / プルダウン抵抗
MB90420G/425G シリーズは , 内部プルアップ / プルダウン抵抗オプションをサポート
していません。必要であれば , 外部構成部品を使用してください。
■ サブクロックモードを使用しない場合の注意
X0A, X1A 端子に発振器を接続しない場合は , X0A 端子にプルダウンの処理をし , X1A
端子はオープンにしてください。
■ PLL クロックモード動作中の注意について
本マイコンで PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ
ク入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を
継続し続ける場合があります。この動作は保証外の動作です。
■ LCD 未使用時の端子処理について
COM0 ~ COM3 端子と SEG0 ~ SEG11 端子は開放としてください。
V0 ~ V3 端子は 2kΩ 以上の抵抗を介してプルアップまたはプルダウンの処理をしてく
ださい。
18
第2章
CPU
この章では , F2MC-16LX CPU について説明しま
す。
2.1 CPU の概要
2.2 メモリ空間
2.3 メモリマップ
2.4 アドレッシング
2.5 多バイト長データのメモリ上の配置
2.6 レジスタ
2.7 専用レジスタ
2.8 汎用レジスタ
2.9 プリフィックスコード
19
第 2 章 CPU
2.1
CPU の概要
F2MC-16LX CPU コアは , 民生用・車載用機器などの高速リアルタイム処理が要求さ
れる用途向けに設計された 16 ビット CPU です。F2MC-16LX の命令セットはコン
トローラ用途向けに設計されており , 各種制御の高速・高効率処理が可能です。
■ CPU の特長
F2MC-16LX CPU コアは , 16 ビットデータは勿論 , 内部 32 ビットアキュムレータを搭
載しているため 32 ビット処理も可能です。メモリ空間は , 最大 16M バイト , リニア方
式およびバンク方式のいずれかにてアクセス可能です。また , 命令体系は F2MC-8L の
A-T アーキテクチャをベースに , 高級言語対応命令の追加・アドレッシングモードの拡
張・乗除算命令の強化・ビット処理の充実化により命令が強化されています。次に ,
F2MC-16LX CPU の特長を示します。
● 最小命令実行時間
62.5ns (4MHz 発振・4 逓倍 )
● 最大メモリ空間
16M バイト , リニア / バンク方式にてアクセス
● コントローラ用途に最適化された命令体系
• 豊富なデータタイプ : ビット / バイト / ワード / ロングワード
• 拡張されたアドレッシングモード :23 種類
• 32 ビットアキュムレータの採用による高精度演算 (32 ビット長 ) の強化符号付き乗
除算・拡張 RETI 命令
● 強力な割込み機能
8 つのプライオリティレベル ( プログラマブル )
● CPU に依存しない自動転送機能
最大 16 チャネルまでの拡張インテリジェント I/O サービス
● 高級言語 (C 言語 ) / マルチタスクに対応をとった命令体系
システムスタックポイントの採用 / 命令セットの対称性 / バレルシフト命令
● 実行速度の向上
4 バイトのキュー
<注意事項>
MB90420G/425G シリーズでは , シングルチップモードのみの使用となるため , 内蔵
ROM, 内蔵 RAM, 内蔵周辺の空間しかアクセスできません。
20
第 2 章 CPU
2.2
メモリ空間
F2MC-16LX CPU には 16M バイトのメモリ空間があります。F2MC-16LX CPU が管
理するデータ , プログラムおよび I/O は , すべてこの 16M バイトの中に配置されま
す。メモリ空間の一部は , 拡張インテリジェント I/O サービス (EI2OS) ディスクリプ
タ , 汎用レジスタおよびベクタテーブルなどの特定用途に使用されます。
■ メモリ空間
データ , プログラムおよび I/O は , すべて F2MC-16LX CPU が持つ 16M バイトのメモリ
空間のいずれかに配置され , CPU は 24 ビットのアドレスバスでこれらのアドレスを示
し , 各周辺機能をアクセスすることができます。
図 2.2-1 に , F2MC-16LX システムとメモリマップの関係例を示します。
図 2.2-1 F2MC-16LX システムとメモリマップの関係例
F2MC-16LX デバイス
FFFFFFH
ベクトルテーブル領域
ROM領域
FFFC00H
プログラム
FF0000H
内
100000H
部
010000H
*1
プログラム領域
外部領域*4
F2MC-16LX
CPU
データ
004000H
002000H
000D00H
EI2OS
000380H
000180H
バ
ス
000100H
割込み
周辺回路
汎用ポート
0000C0H
0000B0H
000020H
000000H
*2
ROM領域
(FFバンクのイメージ)
外部領域*4
*3
データ領域
汎用レジスタ
RAM領域
EI2OS
ディスクリプタ領域
外部領域*4
割込み制御レジスタ領域
周辺機能制御レジスタ領域
I/O領域
I/Oポート制御レジスタ領域
*1:品種によって,内蔵ROMの容量が異なります。
*2:品種によって,イメージでアクセスできる領域が異なります。
*3:品種によって,内蔵RAMの容量が異なります。
*4:シングルチップモード時には,アクセスなしとなります。
21
第 2 章 CPU
■ ROM 領域
● ベクタテーブル領域 ( アドレス :FFFC00H ~ FFFFFFH)
• ベクタコール命令 , 割込みベクタおよびリセットベクタのベクタテーブルとして使
用します。
• ROM 領域の最上位に割り当てられており , それぞれのベクタテーブルのアドレス
に , 対応する処理ルーチンの開始アドレスをデータとして設定します。
● プログラム領域 ( アドレス : ~ FFFBFFH)
• 内部プログラム領域として , ROM が内蔵されています。
• 内部 ROM 容量は , 品種によって異なります。
■ RAM 領域
● データ領域 ( アドレス : 000100H ~ )
• 内部データ領域として , スタティック RAM が内蔵されています。
• 内部 RAM 容量は , 品種によって異なります。
● 汎用レジスタ領域 ( アドレス : 000180H ~ 00037FH)
• 8 ビット , 16 ビット , 32 ビットの演算や転送に使用する , 補助的なレジスタを配置
します。
• RAM 領域の一部に割り当てられており , 通常の RAM として使用することもできま
す。
• 汎用レジスタとして使用すると , 汎用レジスタアドレッシングによって , 短い命令
で高速にアクセスできます。
● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ領域
( アドレス : 000100H ~ 00017FH)
• 転送モード , I/O のアドレス , 転送数およびバッファアドレスを保持します。
• RAM 領域の一部に割り当てられており , 通常の RAM として使用することもできま
す。
■ I/O 領域
● 割込み制御レジスタ領域 ( アドレス :0000B0H ~ 0000BFH)
割込み制御レジスタ (ICR00~ICR15) は, 割込み機能を持つすべての周辺機能に対応し,
割込みレベルの設定および拡張インテリジェント I/O サービス (EI2OS) の制御をしま
す。
● 周辺機能制御レジスタ領域 ( アドレス :000020H ~ 0000AFH)
内蔵する周辺機能の制御およびデータの入出力をします。
● I/O ポート制御レジスタ領域 ( アドレス :000000H ~ 00001FH)
I/O ポートの制御およびデータの入出力をします。
22
第 2 章 CPU
2.3
メモリマップ
MB90420G/425G シリーズの品種ごとのメモリマップを示します。
■ メモリマップ
図 2.3-1 に , MB90420G/425G シリーズのメモリマップを示します。
図 2.3-1 メモリマップ
シングルチップモード
(ROMミラー機能あり)
000000H
周辺領域
0000C0H
000100H
レジスタ
RAM領域
アドレス#2
003900H
周辺領域
004000H
ROM領域
(FFバンクの
イメージ)
010000H
アドレス#1
ROM領域
FFFFFFH
: 内部アクセスメモリ
: アクセス禁止
品
種
アドレス #1
アドレス #2
MB90423GA/GC
FE0000H
001900H
MB90427GA/GC
FF0000H
001100H
MB90428GA/GC
FE0000H
001900H
MB90F423GA/GC
FE0000H
001900H
MB90F428GA/GC
FE0000H
001900H
MB90V420G
FE0000H*
001900H
*: MB90V420G には ROM は内蔵されていません。ツール側での ROM デコード領域とお考え
ください。
23
第 2 章 CPU
<注意事項>
• ROM ミラー機能なしを選択した場合は「第 24 章 ROM ミラー機能 選択モジュール」
を参照してください。
• 00 バンクの上位に FF バンクの ROM データがイメージで見えるようになっています
が , これは C コンパイラのスモールモデルを有効に生かすためです。FF バンクの下位
16 ビットアドレスは同じになるようにしてありますので , ポインタで far 指定を宣言し
なくとも ROM 内のテーブルを参照することができます。例えば , 00C000H をアクセ
スした場合に , 実際には FFC000H の ROM の内容がアクセスされることになります。
ここで FF バンクの ROM 領域は 48KB を超えますので , 00 バンクのイメージにすべて
の領域を見せることができません。したがって , FF4000H ~ FFFFFFH の ROM データ
は 004000H ~ 00FFFFH にイメージとして見えますので , ROM データテーブルは
FF4000H ~ FFFFFFH の領域に格納してください。
24
第 2 章 CPU
2.4
アドレッシング
アドレス生成方式には , リニア方式とバンク方式があります。
リニア方式は , 24 ビットアドレスのすべてを命令により直接指定する方法です。
バンク方式は , 上位 8 ビットアドレスを用途に応じたバンクレジスタにより指定し ,
下位 16 ビットアドレスを命令により指定する方法です。
F2MC-16LX シリーズは , 基本的にはバンクアドレッシングとなります。
■ リニアアドレッシングとバンクアドレッシング
リニア方式のアドレッシングは , 16M バイトの空間を連続したアドレス空間としてア
クセスする方式です。バンク方式は , 16M バイトの空間を 64K バイトごとの 256 バン
クに分割し , 管理する方式です。
リニア方式とバンク方式のメモリ管理の概要を , 図 2.4-1 に示します。
図 2.4-1 リニア方式とバンク方式のメモリ管理
リニア方式
FFFFFFH
バンク方式
FFFFFFH
FF0000H
FEFFFFH
FE0000H
FDFFFFH
FD0000H
123456H
FFバンク
64Kバイト
FEバンク
FDバンク
123456H
12バンク
04FFFFH
040000H
03FFFFH
030000H
02FFFFH
020000H
01FFFFH
010000H
00FFFFH
000000 H F
000000H
123456H
すべて命令で指定
04バンク
03バンク
02バンク
01バンク
00バンク
123456H
命令で指定
用途に応じたバンクレジスタで指定
25
第 2 章 CPU
2.4.1
リニア方式によるアドレス指定
リニア方式によるアドレス指定には , オペランドで直接 24 ビットのアドレスを指定
する方法と , 32 ビットの汎用レジスタの下位 24 ビットをアドレスとして引用する方
法があります。
■ 24 ビットオペランド指定
図 2.4-2 リニア方式 (24 ビットオペランド指定 ) の例
JMPP 123456H
旧プログラムカウンタ
+プログラムバンク
17
452D
17452DH
新プログラムカウンタ
+プログラムバンク
12
3456
123456H
JMPP 123456H
次の命令
■ 32 ビットレジスタ間接指定
図 2.4-3 リニア方式 (32 ビットレジスタ間接指定 ) の例
MOV A,@RL1+7
旧AL
090700H
XXXX
3AH
+7
新AL
003A
RL1
(上位8ビットは無視)
RL1:32ビット(ロングワード)汎用レジスタ
26
240906F9H
第 2 章 CPU
2.4.2
バンク方式によるアドレス指定
バンク方式は , 16M バイトのメモリ空間を 64K バイトごとの 256 バンクに分割し ,
バンクレジスタで各空間に対応するバンクアドレスを指定します。アドレスの上位
8 ビットをバンクアドレス指定により決定し , 下位 16 ビットは命令で指定します。
バンクレジスタには , 用途別に次の 5 種類があります。
• プログラムカウンタバンクレジスタ (PCB)
• データバンクレジスタ (DTB)
• ユーザスタックバンクレジスタ (USB)
• システムスタックバンクレジスタ (SSB)
• アディショナルデータバンクレジスタ (ADB)
■ バンクレジスタとアクセス空間
表 2.4-1 に , 各バンクレジスタのアクセス空間と主な用途を示します。
アクセス空間
プログラムカウンタバンク
レジスタ (PCB)
プログラム (PC)
空間
命令コード , ベクトルテーブル , 即値
データなどを格納します。
FFH
データバンクレジスタ (DTB)
データ (DT)
空間
読み書き可能なデータの格納や , 内外周
辺の制御レジスタ / データレジスタのア
クセスを行います。
00H
スタック (SP)
空間
PUSH/POP 命令や , 割込みのレジスタ退
避などのスタックアクセスに用いられる
領域です。コンディションレジスタ内の
スタックフラグ (CCR の S) が , "1" のと
き SSB を , "0" のとき USB を使用しま
す。
アディショナル
(AD) 空間
データ (DT) 空間に入りきらなかった
データなどを格納します。
ユーザスタックバンクレジスタ
(USB)
システムスタックバンクレジスタ
(SSB) *
アディショナルデータバンク
レジスタ (ADB)
主な用途
リセット時
初期値
バンクレジスタ名
00H
00H
00H
*: 割込み時のスタックには , 必ず SSB が使用されます。
27
第 2 章 CPU
図 2.4-4 に , バンクに分割されたメモリ空間と各レジスタの関係を示します。詳細は ,
「2.7.6 バンクレジスタ (PCB, DTB, USB, SSB, ADB)」を参照してください。
図 2.4-4 各バンクレジスタの物理アドレス
FFFFFFH
FF0000H
プログラム
空間
FFH
:PCB(プログラムカウンタバンクレジスタ)
0FFFFFH
物
0F0000H
アディショナル
空間
理
0DFFFFH
ア
0D0000H
ド
ユーザ
スタック空間
0FH :ADB(アディショナルデータバンクレジスタ)
0DH
:USB(ユーザスタックバンクレジスタ)
0BH
:DTB(データバンクレジスタ)
レ
0BFFFFH
データ空間
ス
0B0000H
07FFFFH
070000H
システム
スタック空間
07H :SSB(システムスタックバンクレジスタ)
000000H
■ バンクアドレッシングとデフォルト空間
各命令には , 命令のコード効率を向上するため , アドレス指定方式ごとに , 表 2.4-2 に
示すようなデフォルト空間が決められています。デフォルト以外の空間を使用したい
ときは , 各バンクに対応しているプリフィックスコードを命令に先行して指定するこ
とで , そのプリフィックスコードに対応した任意のバンク空間をアクセスすることが
できます。プリフィックスコードの詳細は , 「2.9 プリフィックスコード」を参照して
ください。
デフォルト空間
アドレッシング
プログラム空間
PC 間接 , プログラムアクセス , 分岐系
データ空間
@RW0, @RW1, @RW4, @RW5 を用いたアドレッシング , @A, addr16, dir
スタック空間
PUSHW, POPW, @RW3, @RW7 を用いたアドレッシング
アディショナル空間
@RW2, @RW6 を用いたアドレッシング
28
第 2 章 CPU
2.5
多バイト長データのメモリ上の配置
多バイト長データは , 下位アドレスから順にメモリへ書き込まれます。32 ビット長
データであれば , 下位 16 ビットが先に転送され , 続いて上位 16 ビットが転送され
ます。なお , 下位データの書込み直後にリセット信号を入力すると , 上位データが書
き込まれないことがあります。
■ RAM 上の多バイト長データの配置
図 2.5-1 に, メモリ上における多バイト長データの構成を示します。
データは下位8ビッ
トが n 番地に , 以下 n + 1 番地 , n + 2 番地 , n + 3 番地の順に配置されます。
図 2.5-1 RAM 上の多バイト長データの配置
MSB
H
01010101B
LSB
11001100B
11111111B
00010100B
01010101B
11001100B
11111111B
n番地
00010100B
L
MSB:Most Significant Bit
LSB:Least Significant Bit
■ 多バイト長オペランドの配置
図 2.5-2 に , メモリ上における多バイト長オペランドの構成を示します。
図 2.5-2 多バイト長オペランドの配置
JMPP 123456H
H
JMPP 1 2 3 4 5 6H
12H
34H
56H
n番地
63H
L
29
第 2 章 CPU
■ スタック上の多バイト長データの配置
図 2.5-3 に , スタック上における多バイト長データの構成を示します。
図 2.5-3 スタック上の多バイト長データの配置
PUSHW RW1,RW3
H
PUSHW RW1
RW3
(35A4 H)(6DF0H)
SP
6DH
F0H
35H
A4H
n番地
L
RW1:35A4H
RW3:6DF0H
■ 多バイト長データのアクセス
アクセスはすべてバンク内を基本にして行われますので , 多バイト長のデータをアク
セスする命令では , "FFFFH" 番地の次のアドレスは同じバンクの "0000H" 番地になり
ます。図 2.5-4 に , 多バイト長データのアクセス命令の実行例を示します。
図 2.5-4 多バイト長データのアクセス命令実行例
H
実行前のAL
80FFFFH
01H
800000H
・
・
・
23H
L
30
? ?
? ?
MOVW A, 080FFFFH
実行後のAL
23H
01H
第 2 章 CPU
2.6
レジスタ
F2MC-16LX のレジスタは大別して , CPU 内部の専用レジスタと , 内蔵 RAM 上の汎
用レジスタの 2 種類に分けられます。
■ 専用レジスタと汎用レジスタ
専用レジスタは , CPU 内部の専用ハードウェアで , 使用する用途が CPU のアーキテク
チャ上で限定されているものです。汎用レジスタは , CPU のアドレス空間上に RAM と
共存します。アドレス指定なしでアクセスできるという点では専用レジスタと同じで
すが , 通常のメモリと同じく , 使用する用途をユーザが指定することができるもので
す。デバイス内の専用レジスタと汎用レジスタの配置を , 図 2.6-1 に示します。
図 2.6-1 専用レジスタと汎用レジスタ
CPU
RAM
専用レジスタ
RAM
アキュムレータ
汎用レジスタ
ユーザスタックポインタ
システムスタックポインタ
プロセッサステータス
内
プログラムカウンタ
部
ダイレクトページレジスタ
バ
プログラムカウンタバンクレジスタ
ス
データバンクレジスタ
ユーザスタックバンクレジスタ
システムスタックバンクレジスタ
アディショナルデータバンクレジスタ
31
第 2 章 CPU
2.7
専用レジスタ
CPU 内の専用レジスタは , 次の 11 種類のレジスタで構成されています。
• アキュムレータ (A)
• ユーザスタックポインタ (USP)
• システムスタックポインタ (SSP)
• プロセッサステータス (PS)
• プログラムカウンタ (PC)
• ダイレクトページレジスタ (DPR)
• プログラムカウンタバンクレジスタ (PCB) • データバンクレジスタ (DTB)
• ユーザスタックバンクレジスタ (USB)
• システムスタックバンクレジスタ (SSB)
• アディショナルデータバンクレジスタ (ADB)
■ 専用レジスタの構成
図 2.7-1 に , 専用レジスタの構成を , 表 2.7-1 に , 専用レジスタの初期値を示します。
図 2.7-1 専用レジスタの構成
AH
AL
:アキュムレータ(A)
演算結果の格納などに使用される,16ビット×2本のレジスタです。
連続して32ビットレジスタとしても,使用可能です。
USP
:ユーザスタックポインタ(USP)
ユーザスタックアドレスを示す,16ビットのポインタです。
SSP
:システムスタックポインタ(SSP)
システムスタックアドレスを示す,16ビットのポインタです。
PS
:プロセッサステータス(PS)
システムの状態を示す,16ビットのレジスタです。
PC
:プログラムカウンタ(PC)
現在の命令格納位置を示す,16ビットのレジスタです。
DPR
:ダイレクトページレジスタ(DPR)
短縮直接アドレッシング時のオペランドアドレスのbit8~15を
指定します。8ビットのレジスタです。
PCB
:プログラムカウンタバンクレジスタ(PCB)
プログラム空間を示す,8ビットのレジスタです。
DTB
:データバンクレジスタ(DTB)
データ空間を示す,8ビットのレジスタです。
USB
:ユーザスタックバンクレジスタ(USB)
ユーザスタック空間を示す,8ビットのレジスタです。
SSB
:システムスタックバンクレジスタ(SSB)
システムスタック空間を示す,8ビットのレジスタです。
ADB
8ビット
:アディショナルデータバンクレジスタ(ADB)
アディショナル空間を示す,8ビットのレジスタです。
16ビット
32ビット
32
第 2 章 CPU
専用レジスタ
初期値
アキュムレータ (A)
不定
ユーザスタックポインタ (USP)
不定
システムスタックポインタ (SSP)
不定
bit15 ~ bit13 bit12
プロセッサステータス (PS)
PS
ILM
0
0
0
0
bit8 bit7
~
RP
0 0 0 0 - 0
~
bit0
CCR
1
x
x
x
x
x
-: 未定義
X: 不定
プログラムカウンタ (PC)
ダイレクトページレジスタ (DPR)
プログラムカウンタバンク
レジスタ (PCB)
リセットベクトル中の値 (FFFFDCH, FFFFDDH の内容 )
01H
リセットベクトル中の値 (FFFFDEH の内容 )
データバンクレジスタ (DTB)
00H
ユーザスタックバンクレジスタ
(USB)
00H
システムスタックバンクレジスタ
(SSB)
00H
アディショナルデータバンク
レジスタ (ADB)
00H
<注意事項>
上記の初期値は , デバイスの初期値であり , ICE ( エミュレータなど ) では異なります。
33
第 2 章 CPU
2.7.1
アキュムレータ (A)
アキュムレータ (A) は , 2 つの 16 ビット長の演算用レジスタ (AH および AL) から構
成され , 演算結果やデータの一時記憶などに使用されるレジスタです。
A レジスタは , 32/16/8 ビットのレジスタとして使用でき , メモリやほかのレジスタ
との間 , または AH-AL レジスタ間で , 各種の演算ができます。また , ワード長以下
のデータを AL レジスタへ転送すると , 転送前の AL レジスタ中のデータが自動的に
AH レジスタに転送されるデータ保持機能があります ( 一部データ保持しない命令が
あります ) 。
■ アキュムレータ (A)
● アキュムレータへのデータ転送
アキュムレータは , 32 ビット ( ロングワード ) , 16 ビット ( ワード ) , 8 ビット ( バイト )
の各データを処理することができます。一部例外的に 4 ビットデータ転送命令 (MOVN)
もありますが , 8 ビットデータと同様に説明します。
• 32ビットデータ処理のときは, AHレジスタとALレジスタが連結して使用されます。
• 16 ビットデータや 8 ビットデータのときは , AL レジスタだけが使用されます
• ALレジスタへのバイト長以下のデータの転送時には, データは符号拡張またはゼロ
拡張され , 16 ビット長となり AL レジスタへ格納されます。また , AL レジスタ中の
データは , ワード長としてもバイト長としても扱えます。
アキュムレータへのデータ転送の様子を図 2.7-2 に示します。また , 具体的な転送例を
図 2.7-3 ~図 2.7-6 に示します。
図 2.7-2 アキュムレータへのデータ転送
32ビット
AH
AL
32ビットデータ転送
データ転送 データ転送
AH
16ビットデータ転送
AL
データ退避
データ転送
AH
8ビットデータ転送
AL
データ退避
00HもしくはFFH* データ転送
(ゼロ拡張または符号拡張)
*: 4ビット転送命令のときは000HまたはFFFHとなります。
34
第 2 章 CPU
● アキュムレータのバイト処理算術演算
バイト処理の算術演算命令を AL レジスタに対して実行すると , 演算前の AL レジスタ
の上位 8 ビットは無視され , 演算結果の上位 8 ビットはすべて "0" になります。
● アキュムレータの初期値
リセット後の初期値は不定です。
図 2.7-3 アキュムレータ (A) の AL-AH 間の転送例 (8 ビット即値 , ゼロ拡張 )
MOV A,3000H
(3000H番地の内容をゼロ拡張し,ALレジスタに格納する命令)
MSB
実行前
AH
AL
XXXXH
2456H
2456H
LSB
88H
77H
B5H
DTB
実行後
B53000H
メモリ空間
X
MSB
LSB
DTB
0088H
:不定
:Most Significant Bit
:Least Significant Bi
:データバンクレジスタ
図 2.7-4 アキュムレータ (A) の AL-AH 間の転送例 (8 ビット即値 , 符号拡張 )
MOVW A,3000H
(3000H番地の内容をALレジスタに格納する命令)
MSB
実行前
AH
AL
XXXXH
2456H
DTB
実行後
2456H
B53000H
メモリ空間
LSB
88H
77H
B5H
X
MSB
LSB
DTB
7788H
:不定
:Most Significant Bit
:Least Significant Bi
:データバンクレジスタ
図 2.7-5 アキュムレータ (A) への 32 ビットデータ転送例 ( レジスタ間接 )
(RW1の内容+8ビット長オフセットの結果を番地としてロングワード
長読出しを行い,その内容をAレジスタに格納する命令)
MOVL A,@RW1+6
実行前
AH
XXXXH
DTB
実行後
8F74H
MSB
AL
XXXXH
2B52H
A6153EH
8FH
2BH
74H
52H
RW1
15H
38H
A61540H
A6H
メモリ空間
LSB
+6
X
MSB
LSB
DTB
:不定
:Most Significant Bit
:Least Significant Bit
:データバンクレジスタ
35
第 2 章 CPU
図 2.7-6 アキュムレータ (A) の AL-AH 間の転送例 (16 ビット , レジスタ間接 )
(RW1の内容+8ビット長オフセットの結果を番地としてワード長
読出しを行い,その内容をAレジスタに格納する命令)
MOVW A,@RW1+6
AH
実行前
XXXXH
1234H
DTB
実行後
1234H
MSB
AL
2B52H
A6H
A61540H
A6153EH
8FH
2BH
74H
52H
RW1
15H
38H
LSB
+6
X
MSB
LSB
DTB
36
メモリ空間
:不定
:Most Significant Bit
:Least Significant Bit
:データバンクレジスタ
第 2 章 CPU
スタックポインタ (USP, SSP)
2.7.2
スタックポインタには , ユーザスタックポインタ (USP) とシステムスタックポイン
タ (SSP) があり , いずれも PUSH 命令 , POP 命令およびサブルーチンを実行すると
きの , データの退避先や復帰先のメモリアドレスを示すレジスタです。スタックア
ドレスの上位 8 ビットは , ユーザスタックバンクレジスタ (USB) またはシステムス
タックバンクレジスタ (SSB) で指定されます。
コンディションコードレジスタ (CCR) の S フラグが "0" のときは , USP および
USB レジスタが有効になります。S フラグが "1" のときは , SSP および SSB レジ
スタが有効になります。
■ スタックの選択
F2MC-16LX では , システムスタックとユーザスタックの 2 種類のスタックが使用でき
ます。スタックのアドレスは , プロセッサステータス (PS:CCR) 内の S フラグによって ,
表 2.7-2 のように決定されます。
スタックアドレス
S フラグ
0
1
上位 8 ビット
下位 16 ビット
ユーザスタックバンクレジスタ (USB)
ユーザスタックポインタ (USP)
システムスタックバンクレジスタ (SSB)
システムスタックポインタ (SSP)
: 初期値
リセットによって, Sフラグは"1"に初期化されるため, デフォルトではシステムスタッ
クが使用されます。通常 , 割込みルーチンでのスタック操作には , システムスタックが
用いられ , 割込みルーチン以外のスタック操作にはユーザスタックが用いられます。特
にスタック空間を分ける必要がなければ , システムスタックだけを使用してください。
<注意事項>
割込みが受け付けられると S フラグが "1" にセットされるため , 割込み時は必ずシステム
スタックが使用されます。
37
第 2 章 CPU
図 2.7-7 に , システムスタックを使ったスタック操作例について示します。
図 2.7-7 スタック操作命令とスタックポインタ
Sフラグが"0"のときのPUSHW A
実行前
AL
A624H
Sフラグ 0
実行後
AL
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フラグ 1
実行後
AL
A624H
Sフラグ 1
X
MSB
LSB
USB
C6H
USP
F328H
SSB
56H
SSP
1234H
USB
C6H
USP
F328H
SSB
56H
SSP
1232H
:不定
:Most Significant Bit
:Least Significant Bit
LSB
561232H
XXH
XXH
561232H
A6H
24H
Sフラグが"1"であるため
システムスタックを使用
<注意事項>
スタックポインタに設定する値は , 原則として偶数アドレスを使用してください。奇数ア
ドレスを設定すると , ワードアクセスが 2 回に分割され効率が低下します。
USP レジスタおよび SSP レジスタのリセット後の初期値は不定です。
■ システムスタックポインタ (SSP)
システムスタックポインタ (SSP) を使用するときは , プロセッサステータス (PS) 中の
コンディションコードレジスタ (CCR) 内の S フラグを "1" に設定します。この場合 , ス
タック操作を行うときに使用されるアドレスの上位8ビットは, システムスタックバン
クレジスタ (SSB) により示されます。
■ ユーザスタックポインタ (USP)
ユーザスタックポインタ (USP) を使用するときは , プロセッサステータス (PS) 中のコ
ンディションコードレジスタ (CCR) 内の S フラグを "0" に設定します。この場合 , ス
タック操作を行うときに使用されるアドレスの上位8ビットは, ユーザスタックバンク
レジスタ (USB) により示されます。
38
第 2 章 CPU
2.7.3
プロセッサステータス (PS)
プロセッサステータス (PS) は , CPU を制御するビットと CPU の状態を示す各種
ビットから構成されています。
■ プロセッサステータス (PS) のビット構成
PS レジスタは , 次の 3 つのレジスタで構成されています。
• インタラプトレベルマスクレジスタ (ILM)
• レジスタバンクポインタ (RP)
• コンディションコードレジスタ (CCR)
図 2.7-8 に , プロセッサステータス (PS) のビット構成を示します。
図 2.7-8 プロセッサステータス (PS) のビット構成
ILM
RP
CCR
bit15 bit14 bit13 bit12 bit11 bit10 bit9
PS ILM2 ILM1 ILM0 B4
B3
B2
B1
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
B0
-
I
0
S
1
T
N
Z
V
C
X
X
X
X
X
- :未定義
X :不定
● インタラプトレベルマスクレジスタ (ILM)
CPU が現在受け付けている割込みのレベルを示し , 各周辺機能の割込み要求に対応し
て設定されている , 割込み制御レジスタの割込みレベル設定ビット (ICR:IL0 ~ IL2) の
値と比較されます。
● レジスタバンクポインタ (RP)
RAM 領域の中で , 汎用レジスタとして使用するメモリブロック ( レジスタバンク ) の
先頭アドレスを指定するポインタです。
汎用レジスタは全部で 32 バンクあり , RP に 0 ~ 31 の値をセットしてバンクを指定し
ます。
● コンディションコードレジスタ (CCR)
命令の実行結果や割込みの発生などによって , セット ("1") またはリセット ("0") され
る , 各種フラグから構成されています。
39
第 2 章 CPU
■ コンディションコードレジスタ (PS:CCR)
コンディションコードレジスタ (CCR) は , 演算結果や転送データの内容を示すビット
と割込み要求の受付けを制御するビットによって構成されている 8 ビットレジスタで
す。
図 2.7-9 に , CCR レジスタのビット構成を示します。命令実行時のコンディションコー
ドレジスタ (CCR) の状態については , 『プログラミングマニュアル』を参照してくだ
さい。
図 2.7-9 コンディションコードレジスタ (CCR) のビット構成
ILM
RP
CCR
bit15 bit14 bit13 bit12 bit11 bit10 bit9
PS ILM2 ILM1 ILM0 B4
- :未定義
X :不定
B3
B2
B1
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CCR 初期値
B0
-
I
S
T
N
Z
V
C
-01XXXXXB
-
0
1
X
X
X
X
X
割込み許可フラグ
スタックフラグ
スティッキィフラグ
ネガティブフラグ
ゼロフラグ
オーバフローフラグ
キャリフラグ
● 割込み許可フラグ (I)
ソフトウェア割込み以外のすべての割込み要求に対し , I フラグが "1" のときは割込み
が許可され , "0" のときは割込みが禁止されます。リセットによりクリアされます。
● スタックフラグ (S)
スタック操作に用いられるポインタを示すフラグです。S フラグが "0" のときはユーザ
スタックポインタ (USP) が有効になり , "1" のときはシステムスタックポインタ (SSP)
が有効になります。割込み受付け時およびリセット時にセットされます。
● スティッキィビットフラグ (T)
論理右シフト命令または算術右シフト命令を実行したときに , キャリからシフトアウ
トされたデータに 1 つ以上 "1" があれば "1" となり , それ以外は "0" となります。シフ
ト量がゼロの場合も "0" となります。
● ネガティブフラグ (N)
演算結果の最上位ビットが"1"のとき"1"にセットされ, "0"のとき"0"にクリアされます。
● ゼロフラグ (Z)
演算結果のビットがすべて "0" であれば "1" にセットされ , それ以外は "0" にクリアさ
れます。
● オーバフローフラグ (V)
演算の実行により , 符号付き数値としてオーバフローが生じると "1" にセットされ , 生
じないと "0" にクリアされます。
● キャリフラグ (C)
演算の実行により , 最上位ビットからの桁上りまたは最上位ビットへの桁下りが生じ
ると "1" にセットされ , 生じないと "0" にクリアされます。
40
第 2 章 CPU
■ レジスタバンクポインタ (PS:RP)
レジスタバンクポインタ (RP) は , 現在使用している汎用レジスタバンクの先頭アドレ
スを示すレジスタで , 汎用レジスタアドレッシング時の実アドレス変換に使用されま
す。
図 2.7-10 に , レジスタバンクポインタ (RP) のレジスタのビット構成を示します。
図 2.7-10 レジスタバンクポインタ (RP) のビット構成
ILM
RP
CCR
bit15 bit14 bit13 bit12 bit11 bit10 bit9
PS ILM2 ILM1 ILM0 B4
B3
B2
B1
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
B0
-
I
S
T
N
Z
V
C
-
0
1
X
X
X
X
X
RP 初期値
00000B
- :未定義
X :不定
■ 汎用レジスタ領域とレジスタバンクポインタ
レジスタバンクポインタは , F2MC-16LX の持つ汎用レジスタと , それが存在する内部
RAM のアドレスとの関係を示すポインタです。RP の内容と実アドレスの関係は , 図
2.7-11 に示す変換規則になっています。
図 2.7-11 汎用レジスタ領域の物理アドレス変換規則
変換式 [ 000180H +(RP)× 10H ]
RP=10H の場合
000370H
レジスタバンク31
:
:
000280H
レジスタバンク16
:
:
000180H
レジスタバンク 0
• RP は , "00H ~ 1FH" までの値をとることができます。そのため , レジスタバンクの
先頭アドレスは , "000180H ~ 00037FH" の範囲に設定できます。
• アセンブラ命令では , RP に転送する 8 ビットの即値転送命令を使用できますが , 実
際に使用されるのはそのデータの下位 5 ビットだけです。
• リセット後の RP レジスタの初期値は "00H" になります。
41
第 2 章 CPU
■ インタラプトレベルマスクレジスタ (PS:ILM)
インタラプトレベルマスクレジスタ (ILM) は , CPU が受け付ける割込みのレベルを示
す , 3 ビットのレジスタです。
図 2.7-12 に , インタラプトレベルマスクレジスタ (ILM) のビット構成を示します。割
込みの詳細は , 「第 3 章 割込み」を参照してください。
図 2.7-12 インタラプトレベルマスクレジスタ (ILM) のビット構成
ILM
RP
CCR
bit15 bit14 bit13 bit12 bit11 bit10 bit9
PS ILM2 ILM1 ILM0 B4
B3
B2
B1
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
B0
-
I
S
T
N
Z
V
-
0
1
X
X
X
X
bit0 ILM 初期値
000B
C
X
- :未定義
X :不定
インタラプトレベルマスクレジスタ (ILM) は , CPU が現在受け付けている割込みレベ
ルを示し , 各周辺機能の割込み要求に対応して設定されている割込み制御レジスタ
(ICR00 ~ ICR15) の IL0 ~ IL2 ビットの値と比較されます。割込み許可フラグが許可
(CCR:I=1) の状態で , このビットが示す値より小さい値 ( 割込みレベル ) の割込み要求
があった場合にのみ , CPU は割込み処理を行います。
• 割込みが受け付けられると , その割込みレベル値がインタラプトレベルマスクレジ
スタ (ILM) にセットされ , これ以降の同じかそれより弱いレベルの割込みは受け付
けられなくなります。
• インタラプトレベルマスクレジスタ (ILM) は , リセットによりすべて "0" に初期化
されるため , 割込みレベルは最強に設定されており , 割込み禁止の状態になります。
• アセンブラ命令では , インタラプトレベルマスクレジスタ (ILM) に転送する 8 ビッ
トの即値転送命令を使用できますが , 実際に使用されるのはそのデータの下位 3
ビットだけです。
42
ILM2
ILM1
ILM0
割込みレベル
割込みレベル高低
0
0
0
0
高 ( 割込み禁止 )
0
0
1
1
0
1
0
2
0
1
1
3
1
0
0
4
1
0
1
5
1
1
0
6
1
1
1
7
低
第 2 章 CPU
プログラムカウンタ (PC)
2.7.4
プログラムカウンタ (PC) は , CPU が次に実行する命令コードのメモリアドレスの下
位 16 ビットを示す , 16 ビットカウンタです。
■ プログラムカウンタ (PC)
CPU が , 次に実行する命令コードを格納しているアドレスは , 上位 8 ビットをプログラ
ムカウンタバンクレジスタ (PCB) で指定し , 下位 16 ビットをプログラムカウンタ (PC)
で指定します。実際のアドレスは , 図 2.7-13 のように , 24 ビットに合成して使用しま
す。PC は条件分岐命令 , サブルーチンコール命令 , 割込み , リセットなどで内容が更新
されます。また , オペランドを読み出すときのベースポインタとしても使用できます。
図 2.7-13 プログラムカウンタ (PC)
上位8ビット
PCB
FEH
下位16ビット
PC
ABCDH
FEABCDH
次に実行する命令
<注意事項>
PC, PCB ともにプログラム (MOV PC, #FF など ) で直接書き換えることはできません。
43
第 2 章 CPU
2.7.5
ダイレクトページレジスタ (DPR)
ダイレクトページレジスタ (DPR) は , 短縮直接アドレス指定方式の命令実行時に ,
オペランドアドレスの bit8 ~ bit15 (addr8 ~ addr15) を指定する 8 ビットレジスタ
です。
■ ダイレクトページレジスタ (DPR)
DPR は , 図 2.7-14 に示すように短縮直接アドレス指定方式の命令実行時に , オペラン
ドアドレスの bit8 ~ bit15 (addr8 ~ addr15) を指定します。DPR は 8 ビット長であり ,
リセットで "01H" に初期化されます。また , 命令によって , 読出しと書込みができます。
図 2.7-14 ダイレクトページレジスタ (DPR) による物理アドレスの生成
DTBレジスタ
A A A A A A A A
DPRレジスタ
B B B B B B B B
24ビット
MSB
物理アドレス
A A A A A A A A
bit24
命令中の直接アドレス
C C C C C C C C
LSB
B B B B B B B B
bit16 bit15
C C C C C C C C
bit8 bit7
bit0
MSB:Most Significant Bit
LSB:Least Significant Bit
ダイレクトページレジスタ (DPR) の設定とデータアクセスの例を図 2.7-15 に示しま
す。
図 2.7-15 ダイレクトページレジスタ (DPR) の設定とデータアクセス例
MOV S:56H, #5AH
命令実行結果
上位8ビット 下位8ビット
DTBレジスタ
12H
123458H
5AH
123456H
DPRレジスタ
34H
MSB : Most Significant Bit
LSB : Least Significant Bit
44
123454H
MSB
LSB
第 2 章 CPU
バンクレジスタ (PCB, DTB, USB, SSB, ADB)
2.7.6
バンクレジスタは , バンク方式アドレッシングの最上位 8 ビットアドレスを指定す
るレジスタで , 次の 5 つのレジスタで構成されます。
• プログラムカウンタバンクレジスタ (PCB)
• データバンクレジスタ (DTB)
• ユーザスタックバンクレジスタ (USB)
• システムスタックバンクレジスタ (SSB)
• アディショナルデータバンクレジスタ (ADB)
各バンクレジスタは , それぞれプログラム空間 , データ空間 , ユーザスタック空間 ,
システムスタック空間およびアディショナル空間の配置される , メモリバンクを示
します。
■ バンクレジスタ (PCB, DTB, USB, SSB, ADB)
● プログラムカウンタバンクレジスタ (PCB)
PCB は , プログラム (PC) 空間を指定するバンクレジスタです。16M バイト全空間に分
岐する , JMPP, CALLP, RETP および RETI 命令実行時 , ソフトウェア割込み命令実行時 ,
ハードウェア割込み時および例外発生時に PCB は書き換わります。
● データバンクレジスタ (DTB)
DTB は , データ (DT) 空間を指定するバンクレジスタです。
● ユーザスタックバンクレジスタ (USB) / システムスタックバンクレジスタ (SSB)
USB および SSB は , スタック (SP) 空間を指定するバンクレジスタです。USB と SSB
のどちらが使用されるかは , プロセッサステータス (PS:CCR) 内の S フラグの値に依存
します。詳細は , 「2.7.2 スタックポインタ (USP, SSP)」を参照してください。
● アディショナルデータバンクレジスタ (ADB)
ADB は , アディショナル (AD) 空間を指定するバンクレジスタです。
● 各バンクの設定とデータアクセス
すべてのバンクレジスタは , バイト長であり , リセットにより PCB は "FFH" に初期化
され , そのほかは "00H" に初期化されます。PCB は , 読出しはできますが書込みはでき
ません。PCB 以外のバンクレジスタは , 読み書き可能です。
<注意事項>
ただし , MB90420G/425G シリーズは , デバイスに内蔵されるメモリ空間までのサポート
になります。
各レジスタの動作については , 「2.4.2 バンク方式によるアドレス指定」を参照してくだ
さい。
45
第 2 章 CPU
2.8
汎用レジスタ
汎用レジスタは , "000180H" ~ "00037FH" の RAM 上に存在し , 16 ビット× 8 本を
1 バンクとして割り当てたメモリブロックです。汎用の 8 ビットレジスタ ( バイトレ
ジスタ R0 ~ R7) , 16 ビットレジスタ ( ワードレジスタ RW0 ~ RW7) または 32
ビットレジスタ ( ロングワードレジスタ RL0 ~ RL7) として使用できます。
汎用レジスタは , 短い命令で高速に RAM をアクセスすることができます。レジスタ
バンクでブロック化されているために , 内容の保護や機能単位の分割が容易です。
また , ロングワードレジスタとして使用するときは , 全空間を直接アクセスするリニ
アポインタとしても使用できます。
■ 汎用レジスタの構成
汎用レジスタは , "000180H" ~ "00037FH" の RAM 上に全部で 32 バンク存在し , レジス
タバンクポインタ (RP) で使用するバンクを指定します。また , RP を読み出すと現在使
用中のバンクがわかります。RP は , 各バンクの先頭アドレスを次式のように決定しま
す。
汎用レジスタの先頭アドレス =000180H + RP × 10H
図 2.8-1 に , 汎用レジスタバンクのメモリ空間内の配置と構成を示します。
図 2.8-1 汎用レジスタバンクのメモリ空間内の配置と構成
内蔵RAM
000380H
000370H
000360H
0002E0H
0002D0H
0002C0H
0002B0H
0001B0H
0001A0H
000190H
000180H
:
レジスタバンク31
バイト
アドレス
レジスタバンク30
02CEH
:
:
:
02CCH
レジスタバンク21
02C8H
バイト
アドレス
R6
R4
R2
R0
02CAH
R7
02CFH
RW7
R5
R3
R1
02CDH
RW6
02CBH
RW5
RW4
02C9H
レジスタバンク20
02C6H
RW3
02C7H
レジスタバンク19
02C4H
02C5H
:
:
:
:
:
02C2H
RW2
RW1
RW0
レジスタバンク 2
レジスタバンク 1
レジスタバンク 0
:
RP
14H
02C0H
LSB
16ビット
02C3H
02C1H
MSB
変換式[000180H +RP × 10H]
R0
RW0
RL0
MSB
LSB
~ R7 :バイトレジスタ
~ RW7 :ワードレジスタ
~ RL3 :ロングワードレジスタ
: Most Significant Bit
: Least Significant Bit
<注意事項>
レジスタバンクポインタ (RP) は , リセット後 "00H" に初期化されます。
46
RL3
RL2
RL1
RL0
第 2 章 CPU
■ レジスタバンク
レジスタバンクは汎用レジスタ ( バイトレジスタ R0 ~ R7, ワードレジスタ RW0 ~
RW7, ロングワードレジスタ RL0 ~ RL3) として , 各種演算やポインタに使用できます。
ロングワードレジスタは , メモリの全空間を直接アクセスするリニアポインタとして
も使用できます。レジスタバンクのレジスタの内容は , 通常の RAM と同様に , リセッ
トでは初期化されず , リセット前の状態が保持されます。ただし , パワーオン時は不定
となります。表 2.8-1 に , 汎用レジスタの代表的な機能を示します。
レジスタ名
機 能
R0 ~ R7
各種命令のオペランドとして使用
( 注意事項 ) R0 はバレルシフトのカウンタおよびノーマライズ ( 正規化 ) 命
令のカウンタとしても使用
RW0 ~ RW7
ポインタとして使用
各種命令のオペランドとして使用
( 注意事項 ) RW0 はストリング命令のカウンタとしても使用
RL0 ~ RL3
ロングポインタとして使用
各種命令のオペランドとして使用
47
第 2 章 CPU
2.9
プリフィックスコード
命令の前にプリフィックスコードを置くことにより , その命令の動作の一部を変更
することができます。プリフィックスコードには次の 3 種類があります。
• バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)
• コモンレジスタバンクプリフィックス (CMR)
• フラグ変化抑止プリフィックス (NCC)
■ プリフィックスコード
● バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)
命令の前にバンクセレクトプリフィックスを置くと , その命令がアクセスするメモリ
空間を , アドレス指定方式と無関係に任意に選択できます。
● コモンレジスタバンクプリフィックス (CMR)
レジスタバンクをアクセスする命令の前に , コモンレジスタバンクプリフィックスを
置くと , 現在のレジスタバンクポインタ (RP) の値に関係なく , その命令のレジスタア
クセスをすべて "000180H" ~ "00018FH" にあるコモンバンク (RP=0 のときに選択され
るレジスタバンク ) に変更できます。
● フラグ変化抑止プリフィックス (NCC)
フラグ変化を抑止したい命令の前に , フラグ変化抑止プリフィックスコードを置くと ,
命令の実行に伴うフラグ変化を抑止できます。
■ バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)
データアクセスの際に使用されるメモリ空間は , アドレス指定方式ごとに定められて
います。命令の前にバンクセレクトプリフィックスを置くと , その命令がアクセスする
メモリ空間を , アドレス指定方式と無関係に任意に選択できます。バンクセレクトプリ
フィックスと , 対応するメモリ空間を表 2.9-1 に示します。
バンクセレクト
プリフィックス
選択される空間
PCB
プログラム空間
DTB
データ空間
ADB
アディショナル空間
SPB
コンディションコードレジスタ (CCR) の S フラグの値が "0" のとき
ユーザスタック空間が , "1" のときシステムスタック空間が用いられ
ます。
バンクセレクトプリフィックスを使用した場合 , 一部の命令では例外的な動作を行い
ます。表 2.9-2 に , バンクセレクトプリフィックスの影響を受けない命令を , 表 2.9-3 に
バンクセレクトプリフィックス使用時に注意すべき命令を示します。
48
第 2 章 CPU
命令の種類
命令
MOVS
SCEQ
FILS
ストリング命令
スタック操作
命令
PUSHW
I/O アクセス命令
MOV
MOVW
MOV
MOV
MOVB
SETB
BBC
WBTC
割込み復帰命令
RETI
バンクセレクトプリフィックスの効果
MOVSW
SCWEQ
FILSW
プリフィックスの有無にかかわらず , オ
ペランドで指定されたバンクレジスタが
使用されます。
POPW
プリフィックスの有無にかかわらず , S フ
ラグが "0" のときはユーザスタックバン
ク (USB) が , S フラグが "1" のときはシス
テムスタックバンク (SSB) が使用されま
す。
A, io
A, io
io, A
io, #imm8
A, io:bp
io:bp
io:bp, rel
io, bp
命令の種類
MOVX
A, io
MOVW
MOVW
MOVB
CLRB
BBS
WBTS
io, A
io, #imm16
io:bp, A
io:bp
io:bp, rel
io:bp
プリフィックスの有無にかかわらず , I/O
空間 ("000000H" ~ "0000FFH") がアクセス
されます。
プリフィックスの有無にかかわらず , シ
ステムスタックバンク (SSB) が使用され
ます。
命令
説明
フラグ変更命令
AND CCR, #imm8
OR CCR, #imm8
プリフィックスの効果が次の命令までおよ
びます。
ILM 設定命令
MOV ILM, #imm8
プリフィックスの効果が次の命令までおよ
びます。
PS 復帰命令
POPW PS
PS 復帰命令に対してはバンクセレクトプ
リフィックスを付加しないでください。
■ コモンレジスタバンクプリフィックス (CMR)
複数のタスク間でのデータ交換を容易にするためには , そのときのレジスタバンクポ
インタ (RP) がどのような値でも , 比較的簡単に , ある定められた同一のレジスタバン
クをアクセスする手段が必要です。そのために , F2MC -16LX では , 各タスクで共通に
使用できるレジスタバンクを用意しています。これをコモンバンクといいます。コモ
ンバンクは , "000180H" ~ "00018FH" 番地にあります。
レジスタバンクをアクセスする命令の前に , コモンレジスタバンクプリフィックス
(CMR) を置くと , 現在のレジスタバンクポインタ (RP) の値に関係なく , その命令のレ
ジスタアクセスを , すべて "000180H" ~ "00018FH" にあるコモンバンク (RP=0 のときに
選択されるレジスタバンク ) に変更できます。ただし , 表 2.9-4 に示す命令に対しては
注意が必要です。
49
第 2 章 CPU
命令の種類
命令
説明
ストリング命令
MOVS
SCEQ
FILS
MOVSW
SCWEQ
FILSW
フラグ変更命令
AND CCR, #imm8 OR CCR, #imm8
プリフィックスの効果が , 次の命令までおよ
びます。
PS 復帰命令
POPW PS
プリフィックスの効果が , 次の命令までおよ
びます。
ILM 設定命令
MOV ILM, #imm8
プリフィックスの効果が , 次の命令までおよ
びます。
ストリング命令に対しては , CMR プリ
フィックスを付加しないでください。
■ フラグ変化抑止プリフィックス (NCC)
不要なフラグ変化を抑止するために , フラグ変化抑止プリフィックス (NCC) を用いま
す。フラグ変化を抑止したい命令の前に , NCC プリフィックスを置くと , 命令の実行
に伴うフラグ変化を抑止できます。変化が抑止されるフラグには T, N, Z, V, C があり
ます。ただし , 表 2.9-5 に示す命令に対しては注意が必要です。
命令の種類
命令
ストリング命令
MOVS
SCEQ
FILS
フラグ変更命令
AND CCR, #imm8
OR CCR, #imm8
プリフィックスの有無にかかわらず , コンディショ
ンコードレジスタ (CCR) は命令の仕様どおりに変化
します。プリフィックスの効果が , 次の命令までおよ
びます。
PS 復帰命令
POPW PS
プリフィックスの有無にかかわらず , コンディショ
ンコードレジスタ (CCR) は命令の仕様どおりに変化
します。プリフィックスの効果が , 次の命令までおよ
びます。
ILM 設定命令
MOV ILM, #imm8
プリフィックスの効果が , 次の命令までおよびます。
割込み命令
割込み復帰命令
INT #vct8
INT adder16
RETI
プリフィックスの有無にかかわらず , コンディショ
ンコードレジスタ (CCR) は命令の仕様どおりに変化
します。
コンテキスト
スイッチ命令
JCTX @ A
50
MOVSW
SCWEQ
FILSW
説明
INT9
INTP addr24
ストリング命令に対しては , NCC プリフィックスを
付加しないでください。
プリフィックスの有無にかかわらず , コンディショ
ンコードレジスタ (CCR) は命令の仕様どおりに変化
します。
第 2 章 CPU
■ プリフィックスコードに関する制約
プリフィックスコードの使用には , 次の 3 つの制約があります。
• プリフィックスコードや割込み / ホールド抑止命令の実行中は , 割込み / ホールド要
求を受け付けない。
• 割込み / ホールド命令の前にプリフィックスコードを置いた場合 , プリフィックス
コードの効果が遅延する。
• 競合するプリフィックスコードが連続した場合 , 最後のものが有効となる。
表 2.9-6 にプリフィックスコードと割込み / ホールド抑止命令を示します。
プリフィックス
コード
割込みやホールド要求
を受け付けない命令
PCB
DTB
ADB
SPB
CMR
NCC
割込み / ホールド抑止命令
( プリフィックスコードの効果を遅延させる命令 )
MOV
OR
AND
POPW
LM, #imm8
CCR, #imm8
CCR, #imm8
PS
● 割込み / ホールドの抑止
図 2.9-1 に示すように , プリフィックスコードや割込み / ホールド命令の実行中は , 割
込みやホールド要求が発生しても , 受け付けません。この場合 , 割込み / ホールド処理
が行われるのは , プリフィックスコードや割込み / ホールド抑止命令以降 , 初めてこれ
以外の命令が実行された後になります。
図 2.9-1 割込み / ホールドの抑止
割込み/ホールド抑止命令
・・・・・・・・・・・・・・・
(a)
・・・
(a) 普通の命令
割込み要求発生
割込み受付け
51
第 2 章 CPU
● プリフィックスコードの効果遅延
図 2.9-2 に示すように , 割込み / ホールド抑止命令の前にプリフィックスコードを置い
た場合 , プリフィックスコードの効果は , 割込み / ホールド抑止命令後の最初の命令に
対して有効となります。
図 2.9-2 割込み / ホールド抑止命令とプリフィックスコード
割込み/ホールド抑止命令
MOV A,FFH
NCC
・・・・
MOV ILM,#imm8
ADD A,01H
CCR:XXX10XXB
CCR:XXX10XXB
NCCによりCCRは変化しません
● プリフィックスコードの連続
図 2.9-3 に示すように , 競合するプリフィックスコード (PCB, ADB, DTB, SPB) が連続
していた場合 , 最後のものが有効になります。
図 2.9-3 プリフィックスコードの連続
プリフィックスコード
・・・
ADB
DTB
PCB
ADD A,01H
・・・
プリフィックスコードは
PCBが有効になります。
52
第3章
割込み
この章では , 割込みと拡張インテリジェント I/O
サービス (EI2OS) について説明します。
3.1 割込みの概要
3.2 割込み要因と割込みベクタ
3.3 割込み制御レジスタと周辺機能
3.4 ハードウェア割込み
3.5 ソフトウェア割込み
3.6 拡張インテリジェント I/O サービス (EI2OS) による割込
み
3.7 未定義命令の実行による例外処理割込み
3.8 割込み処理のスタック動作
3.9 割込み処理のプログラム例
53
第 3 章 割込み
3.1
割込みの概要
F2MC-16LX にはイベントなどが発生した場合 , 現在実行中の処理を中断して , 別に
定義したプログラムへ制御を移す 4 つの割込み機能があります。
• ハードウェア割込み
• ソフトウェア割込み
• 拡張インテリジェント I/O サービス (EI2OS) による割込み
• 例外処理
■ 割込みの種類と機能
● ハードウェア割込み
周辺機能からの割込み要求に対して , ユーザの定義した割込み処理用プログラムへ制
御を移行する機能です。
● ソフトウェア割込み
ソフトウェア割込み専用の命令 (INT 命令など ) の実行によって , ユーザの定義した割
込み処理用プログラムへ制御を移行する機能です。
● 拡張インテリジェント I/O サービス (EI2OS) による割込み
EI2OS は周辺機能とメモリ間の自動データ転送機能です。従来 , 割込み処理プログラム
で行っていたデータ転送を DMA ( ダイレクトメモリアクセス ) のように行うことがで
きます。指定回数のデータ転送処理が終了すると , 自動的に割込み処理プログラムを実
行します。
EI2OS による割込みは , ハードウェア割込みの一種です。
● 例外処理
例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項 ( 未定義命令
の実行 ) が発生したことを検出した段階で , 通常処理を中断して行われます。ソフト
ウェア割込み命令の "INT10" と等価です。
54
第 3 章 割込み
■ 割込み動作
4 種類の割込み機能の , 起動および復帰処理を図 3.1-1 に示します。
図 3.1-1 割込み動作の概略フロー
START
メインプログラム
YES
有効な
ハードウェア割込み
要求あり
ストリング系 *
命令実行中
NO
割込み起動/復帰処理
YES
EI2OSか?
次の命令の取込みと
デコード
EI2OS
NO
YES
INT命令か?
NO
EI2OS処理
ソフトウェア
割込み/
例外処理
システムスタックへ
専用レジスタ退避
ハードウェア割込み
受付け禁止(I=0)
ハードウェア
割込み
YES
システムスタックへ
専用レジスタ退避
指定回数終了か?
または,周辺機能からの
終了要求があるか?
NO
CPU割込み処理レベル
(ILM)更新
YES
RETI命令か?
NO
通常命令実行
NO
割込み
復帰処理
システムスタックから
専用レジスタが復帰し,
割込みルーチン呼出し
前のルーチンへ復帰
割込みベクタを
読み出してPC,PCB
を更新し,割込み
ルーチンへ分岐
ストリング系*
命令の繰返し完了
YES
PC更新で次命令へ
ポインタ移動
* :ストリング系命令の実行中は,1ステップごとに割込み判定を行います。
55
第 3 章 割込み
割込み要因と割込みベクタ
3.2
F2MC-16LX には , 256 種類の割込み要因に対応する機能があり , メモリの最上位ア
ドレスに 256 組の割込みベクタテーブルを割り当てています。この割込みベクタは
すべての割込みで共有します。
ソフトウェア割込みは , このすべての割込み (INT0 ~ INT256) を使用することがで
きますが , 一部の割込みベクタはハードウェア割込みや例外処理割込みで共有され
ています。また , ハードウェア割込みでは , 各周辺機能に対し , 割込みベクタと割込
み制御レジスタ (ICR) が固定されています。
■ 割込みベクタ
割込み処理の際に参照する割込みベクタテーブルは , メモリ領域の最上位アドレス
("FFFC00H" ~ "FFFFFFH") に割り当てられています。また , 割込みベクタは , EI2OS, 例
外処理 , ハードウェア割込みおよびソフトウェア割込みで , 同じ領域を共有していま
す。割込み番号と割込みベクタの割当てを表 3.2-1 に示します。
表 3.2-1 割込みベクタ一覧表
ソフトウェア
割込み命令
ベクタ
アドレス L
ベクタ
アドレス M
ベクタ
アドレス H
モードデータ
割込み No
ハードウェア割込み
INT0
FFFFFCH
FFFFFDH
FFFFFEH
未使用
#0
なし
:
:
:
:
:
:
:
INT7
FFFFE0H
FFFFE1H
FFFFE2H
未使用
#7
なし
INT8
FFFFDCH
FFFFDDH
FFFFDEH
FFFFDFH
#8
(RESET ベクタ )
INT9
FFFFD8H
FFFFD9H
FFFFDAH
未使用
#9
なし
INT10
FFFFD4H
FFFFD5H
FFFFD6H
未使用
#10
<例外処理>
INT11
FFFFD0H
FFFFD1H
FFFFD2H
未使用
#11
ハードウェア割込み #0
INT12
FFFFCCH
FFFFCDH
FFFFCEH
未使用
#12
ハードウェア割込み #1
INT13
FFFFC8H
FFFFC9H
FFFFCAH
未使用
#13
ハードウェア割込み #2
INT14
FFFFC4H
FFFFC5H
FFFFC6H
未使用
#14
ハードウェア割込み #3
:
:
:
:
:
:
:
INT254
FFFC04H
FFFC05H
FFFC06H
未使用
#254
なし
INT255
FFFC00H
FFFC01H
FFFC02H
未使用
#255
なし
<参考>
使われない割込みベクタも , 例外処理などのアドレスに設定することを推奨します。
56
第 3 章 割込み
■ 割込み要因と割込みベクタ・割込み制御レジスタ
表 3.2-2 に , ソフトウェア割込みを除く割込み要因と , 割込みベクタ , 割込み制御レジ
スタの関係を示します。
表 3.2-2 割込み要因と割込みベクタ・割込み制御レジスタ
割込み要因
EI2OS
対応
割込みベクタ
割込み制御レジスタ
ICR
アドレス
*2
高い
×
-
-
×
#09
09H
FFFFD8H
-
-
例外処理
CAN0 RX
×
#10
0AH
FFFFD4H
-
-
×
#11
0BH
FFFFD0H
CAN0 TX/NS
×
#12
0CH
FFFFCCH
ICR00
0000B0H * 1
CAN1 RX
×
#13
0DH
FFFFC8H
CAN1 TX/NS
×
#14
0EH
FFFFC4H
ICR01
0000B1H * 1
インプットキャプチャ 0
△
#15
0FH
FFFFC0H
ICR02
0000B2H * 1
ICR03
0000B3H * 1
ICR04
0000B4H * 1
ICR05
0000B5H * 1
ICR06
0000B6H * 1
ICR07
0000B7H * 1
ICR08
0000B8H * 1
ICR09
0000B9H * 1
ICR10
0000BAH * 1
ICR11
0000BBH * 1
ICR12
0000BCH * 1
ICR13
0000BDH * 1
ICR14
0000BEH * 1
ICR15
0000BFH * 1
リセット
INT9 命令
優先度
アドレス
FFFFDCH
番号
08H
#08
DTP/ 外部割込み・ch.0 検出時
△
#16
10H
FFFFBCH
リロードタイマ 0
△
#17
11H
FFFFB8H
FFFFB4H
DTP/ 外部割込み・ch.1 検出時
△
#18
12H
インプットキャプチャ 1
△
#19
13H
FFFFB0H
FFFFACH
DTP/ 外部割込み・ch.2 検出時
△
#20
14H
インプットキャプチャ 2
△
#21
15H
FFFFA8H
DTP/ 外部割込み・ch.3 検出時
△
#22
16H
FFFFA4H
インプットキャプチャ 3
△
#23
17H
FFFFA0H
DTP/ 外部割込み・ch.4/ch.5 検出時
△
#24
18H
FFFF9CH
PPG タイマ 0
△
#25
19H
FFFF98H
DTP/ 外部割込み・ch.6/ch.7 検出時
△
#26
1AH
FFFF94H
PPG タイマ 1
△
#27
1BH
FFFF90H
リロードタイマ 1
△
#28
1CH
FFFF8CH
PPG タイマ 2
○
#29
1DH
FFFF88H
リアルタイム時計タイマ
×
#30
1EH
FFFF84H
フリーランタイマオーバフロー
A/D コンバータ変換終了
×
#31
1FH
FFFF80H
○
#32
20H
FFFF7CH
フリーランタイマクリア
×
#33
21H
FFFF78H
FFFF74H
サウンドジェネレータ
×
#34
22H
タイムベースタイマ
時計タイマ ( サブクロック )
×
#35
23H
FFFF70H
×
#36
24H
FFFF6CH
UART1・受信
◎
#37
25H
FFFF68H
UART1・送信
△
#38
26H
FFFF64H
UART0・受信
◎
#39
27H
FFFF60H
UART0・送信
△
#40
28H
FFFF5CH
フラッシュメモリステータス
×
#41
29H
FFFF58H
遅延割込み発生モジュール
×
#42
2AH
FFFF54H
低い
◎ : 使用可能 , EI2OS 停止機能付き , ○ : 使用可能 , × : 使用不可 ,
△ : ICR を共有する割込み要因を使用しないとき使用可能
*1: ・ ICR レジスタを共用している周辺機能は , 割込みレベルが同一になります。
・ ICR レジスタを共用している周辺機能で拡張インテリジェント I/O サービスを使用する場合は , どちらか
一方しか利用できません。
・ ICR レジスタを共用している周辺機能の場合 , 片方で拡張インテリジェント I/O サービスを指定すると ,
もう一方での割込みの使用はできなくなります。
*2: 同時に同じレベルの割込みが発生した場合の優先度です。
57
第 3 章 割込み
3.3
割込み制御レジスタと周辺機能
割込み制御レジスタ (ICR00 ~ ICR15) は , 割込みコントローラ内にあり , 割込み機
能を持つすべての周辺機能に対応して存在します。このレジスタは , 割込みと拡張
インテリジェント I/O サービス (EI2OS) の制御を行います。
■ 割込み制御レジスタ一覧
表 3.3-1 に , 割込み制御レジスタと対応する周辺機能の一覧を示します。
表 3.3-1 割込み制御レジスタ一覧
アドレス
レジスタ
略称
対応する周辺機能
0000B0H
割込み制御レジスタ 00
ICR00
CAN0
0000B1H
割込み制御レジスタ 01
ICR01
CAN1
0000B2H
割込み制御レジスタ 02
ICR02
インプットキャプチャ 0, DTP/ 外部割込み 0
0000B3H
割込み制御レジスタ 03
ICR03
リロードタイマ 0, DTP/ 外部割込み 1
0000B4H
割込み制御レジスタ 04
ICR04
インプットキャプチャ 1, DTP/ 外部割込み 2
0000B5H
割込み制御レジスタ 05
ICR05
インプットキャプチャ 2, DTP/ 外部割込み 3
0000B6H
割込み制御レジスタ 06
ICR06
インプットキャプチャ 3, DTP/ 外部割込み 4/5
0000B7H
割込み制御レジスタ 07
ICR07
PPG タイマ 0, DTP/ 外部割込み 6/7
0000B8H
割込み制御レジスタ 08
ICR08
PPG タイマ 1, リロードタイマ 1
0000B9H
割込み制御レジスタ 09
ICR09
PPG タイマ 2, 時計タイマ ( メインクロック )
0000BAH
割込み制御レジスタ 10
ICR10
フリーランタイマ , A/D コンバータ
0000BBH
割込み制御レジスタ 11
ICR11
フリーランタイマ , サウンドジェネレータ
0000BCH
割込み制御レジスタ 12
ICR12
タイムベースタイマ , 時計タイマ ( サブクロック )
0000BDH
割込み制御レジスタ 13
ICR13
UART1
0000BEH
割込み制御レジスタ 14
ICR14
UART0
0000BFH
割込み制御レジスタ 15
ICR15
フラッシュメモリ , 遅延割込み発生モジュール
■ 割込み制御レジスタの機能
割込み制御レジスタ (ICR) には , それぞれ次に示す 4 つの機能があります。
• 対応する周辺機能の割込みレベルの設定
• 対応する周辺機能の割込みを通常割込みにするか , 拡張インテリジェント I/O サー
ビスにするかの選択
• 拡張インテリジェント I/O サービス (EI2OS) のチャネルの選択
• 拡張インテリジェント I/O サービス (EI2OS) のステータスの表示
割込み制御レジスタ (ICR) は , 次項の図 3.3-1 と図 3.3-2 に示すように , 書込み時と読出
し時で一部機能が異なります。
<注意事項>
割込み制御レジスタ (ICR) に対するリードモディファイライト系命令でのアクセスは , 誤
動作を引き起こしますので行わないでください。
58
第 3 章 割込み
割込み制御レジスタ (ICR00 ~ ICR15)
3.3.1
割込み制御レジスタは , 割込み機能を持つすべての周辺機能に対応し , 割込み要求発
生時の処理を制御します。このレジスタは書込み時と読出し時では , 一部の機能が
異なります。
■ 割込み制御レジスタ (ICR00 ~ ICR15)
図 3.3-1 割込み制御レジスタ (ICR00 ~ ICR15) 書込み時
書込み時
アドレス
~
0000B0H
0000BFH
MSB
ICS3 ICS2 ICS1 ICS0
ISE
IL2
IL1
LSB
初期値
IL0
00000111B
IL2 IL1 IL0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
割込みレベル設定ビット
割込みレベル0(最強)
割込みレベル7(割込みなし)
EI2OS許可ビット
ISE
0
割込み発生時に割込みシーケンスを起動
1
割込み発生時にEI2OSを起動
ICS3 ICS2 ICS1 ICS0
MSB
LSB
:Most Singnificant Bit
:Least Singnificant Bit
:初期値
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
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
59
第 3 章 割込み
図 3.3-2 割込み制御レジスタ (ICR00 ~ ICR15) 読出し時
アドレス
MSB
~
読出し時
-
0000B0H
0000BFH
-
S1
S0
ISE
IL2
IL1
LSB
初期値
IL0
--000111B
割込みレベル設定ビット
IL2 IL1 IL0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
割込みレベル0(最強)
割込みレベル7(割込みなし)
EI2OS許可ビット
ISE
0
割込み発生時に割込みシーケンスを起動
1
割込み発生時にEI2OSを起動
S1
MSB :Most Singnificant Bit
LSB :Least Singnificant Bit
- :未定義
:初期値
60
EI2OSステータス
S0
0
0
EI2
0
1
カウント終了による停止状態
1
0
リザーブ
1
1
周辺機能からの要求による停止状態
OS動作中あるいは非起動時
第 3 章 割込み
3.3.2
割込み制御レジスタの機能
割込み制御レジスタ (ICR00 ~ ICR15) は , 次に示す 4 つの機能を持つビットで構成
されています。
• 割込みレベル設定ビット (IL2 ~ IL0)
• 拡張インテリジェント I/O サービス (EI2OS) 許可ビット (ISE)
• 拡張インテリジェント I/O サービス (EI2OS) チャネル選択ビット (ICS3 ~ ICS0)
• 拡張インテリジェント I/O サービス (EI2OS) ステータス (S1, S0)
■ 割込み制御レジスタ (ICR) の構成
図 3.3-3 に , 割込み制御レジスタ (ICR) のビット構成図を示します。
図 3.3-3 割込み制御レジスタ (ICR) の構成
割込み制御レジスタ (ICR) 書込み時
アドレス
0000B0H ~ 0000BFH
bit7
bit6
bit5
bit4
bit
bit2
bit1
bit0
ICS3
W
ICS2
W
ICS1
W
ICS0
W
ISE
R/W
IL2
R/W
IL1
R/W
IL0
R/W
初期値
00000111B
割込み制御レジスタ (ICR) 読出し時
アドレス
bit7
bit6
bit5
bit4
bit
bit2
bit1
bit0
0000B0H ~ 0000BFH
-
-
S1
R
S0
R
ISE
R/W
IL2
R/W
IL1
R/W
IL0
R/W
初期値
--000111B
R/W :リード / ライト可能
R :リードオンリ
W :ライトオンリ
:未使用
ICS3 ~ ICS0 ビットは , 拡張インテリジェント I/O サービス (EI2OS) を起動する場合だ
け有効となります。EI2OS を起動する場合は ISE ビットを "1" に設定し , 起動しない場
合は ISE ビットを "0" に設定してください。EI2OS を起動しない場合は , ICS3 ~ ICS0
を設定しなくてもかまいません。
ICS1 と ICS0 は書込み時だけ , S1 と S0 は読出し時だけ , それぞれ有効です。
61
第 3 章 割込み
■ 割込み制御レジスタの機能
● 割込みレベル設定ビット (IL2 ~ IL0)
対応する周辺機能の割込みレベルを指定します。リセットによりレベル 7 ( 割込みなし )
に初期化されます。割込みレベル設定ビットと各割込みレベルとの関係を , 表 3.3-2 に示
します。
表 3.3-2 割込みレベル設定ビットと割込みレベルの対応
IL2
IL1
IL0
割込みレベル
0
0
0
0 ( 最高割込み )
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
6 ( 最低割込み )
1
1
1
7 ( 割込みなし )
● 拡張インテリジェント I/O サービス (EI2OS) 許可ビット (ISE)
割込み要求の発生時にこのビットが "1" であると EI2OS が起動され , "0" の場合は割込
みシーケンスが起動されます。また , EI2OS の終了条件が成立 (S1, S0 ビットが "00B" 以
外 ) した場合 , ISE ビットはクリアされます。対応する周辺機能に EI2OS の機能がない
場合には , ソフトウェアで ISE ビットを "0" にしておく必要があります。ISE ビットは
リセットで "0" に初期化されます。
● 拡張インテリジェント I/O サービス (EI2OS) チャネル選択ビット (ICS3 ~ ICS0)
書込み専用のビットで , EI2OS のチャネルを指定します。ここで設定された値によって ,
EI2OS ディスクリプタのアドレスが決定します。ICS ビットはリセットで , "0000B" に初
期化されます。表 3.3-3 に EI2OS チャネル選択ビットとディスクリプタアドレスの対応
を示します。
表 3.3-3 EI2OS チャネル選択ビットとディスクリプタアドレスの対応
62
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
第 3 章 割込み
● 拡張インテリジェント I/O サービス (EI2OS) ステータスビット (S1, S0)
読出し専用のビットです。EI2OS 終了時にこの値を調べると , 動作状態や終了状態を判
別することができます。リセットで "00B" に初期化されます。表 3.3-4 に , S0, S1 ビッ
トと EI2OS ステータスの関係について示します。
表 3.3-4 EI2OS ステータスビットと EI2OS ステータスの関係
EI2OS ステータス
S1
S0
0
0
EI2OS 動作中あるいは非起動時
0
1
カウント終了による停止状態
1
0
リザーブ
1
1
周辺機能からの要求による停止状態
63
第 3 章 割込み
3.4
ハードウェア割込み
ハードウェア割込みは , 周辺機能からの割込み要求信号に対応して , CPU がそれま
で実行していたプログラムの実行を一時中断し , ユーザの定義した割込み処理用プ
ログラムに制御を移行する機能です。また , 拡張インテリジェント I/O サービス
(EI2OS) や外部割込みなどもハードウェア割込みの一種として実行されます。
■ ハードウェア割込みの機能
● ハードウェア割込みの機能
ハードウェア割込みは , 周辺機能が出力する割込み要求信号の割込みレベルと , CPUの
プロセッサステータス (PS) 内のインタラプトレベルマスクレジスタ (ILM) の比較お
よびプロセッサステータス (PS) 内の I フラグの内容をハードウェアで参照し , 割込み
が受け付けられるかどうかを判定します。
ハードウェア割込みが受け付けられると , 自動的に CPU 内部のレジスタ類をシステム
スタックへ退避し , インタラプトレベルマスクレジスタ (ILM) に現在要求している割
込みレベルを格納した後 , 対応する割込みベクタへ分岐します。
● 多重割込み
ハードウェア割込みは多重に起動できます。
● 拡張インテリジェント I/O サービス (EI2OS)
EI2OS は , メモリ -I/O 間の自動転送機能ですが , 指定回数の転送完了時に , ハードウェ
ア割込みが起動されます。なお , EI2OS は多重に起動されることはなく , ある EI2OS の
処理中は , ほかの割込み要求および EI2OS 要求はすべて保留されます。
● 外部割込み
外部割込み ( ウェイクアップ割込みを含む ) は , 周辺機能 ( 割込み要求検出回路 ) を通
じて , ハードウェア割込みとして受け付けられます。
● 割込みベクタ
割込み処理の際に参照する割込みベクタテーブルは, メモリの"FFFC00H"~"FFFFFFH"
に割り当ててあり , ソフトウェア割込みと共用しています。
割込み番号と割込みベクタの割当てについては , 「3.2 割込み要因と割込みベクタ」を
参照してください。
64
第 3 章 割込み
■ ハードウェア割込みの構造
ハードウェア割込みに関連する機構は , 表 3.4-1 に示す 4 つの部分に分かれて存在しま
す。ハードウェア割込みを使用する場合はあらかじめ , プログラムでこの 4 箇所を設定
する必要があります。
表 3.4-1 ハードウェア割込みに関連する機構
ハードウェア割込みに関する機構
周辺機能
割込み許可ビット , 割込み要求ビット
メモリ上の
FFFC00H ~
FFFFFFH
周辺機能からの割込み要求の制御
割込みレベルの設定および EI2OS の制御
割込みコントローラ 割込み制御レジスタ (ICR)
CPU
機 能
割込み許可フラグ (I)
割込み許可状態の識別
インタラプトレベルマスクレジスタ (ILM)
要求割込みレベルと現割込みレベルの比較
マイクロコード
割込み処理ルーチンの実行
割込みベクタテーブル
割込み処理時の分岐先アドレスを格納
■ ハードウェア割込み抑止
ハードウェア割込みは , 以下の条件の場合 , 割込み要求の受付けが抑止されます。
● 周辺機能制御レジスタ領域への書込み中のハードウェア割込み抑止
周辺機能制御レジスタ領域への書込み中はハードウェア割込み要求を受け付けません。
これは各周辺機能の割込み制御レジスタ関係の書換えを行っている最中の割込み要求
に対して , CPU が割込み関係で誤動作を起こすことを避けるためです。周辺機能制御レ
ジスタ領域とは , 000000H ~ 0000FFH の I/O アドレッシング領域のことではなく , 周辺
機能制御レジスタの制御レジスタおよびデータレジスタに割り当てられている領域の
ことを示します。
図 3.4-1 に , 周辺機能制御レジスタ領域への書込み中のハードウェア割込み動作につい
て示します。
図 3.4-1 周辺機能制御レジスタ領域への書込み中のハードウェア割込み要求
周辺機能制御レジスタ領域への書込み命令
・・・・・
MOV A,#08
MOV io,A
ここで割込み
要求発生
MOV A,2000H
割込みに
分岐しない
割込み処理
割込みに
分岐する
65
第 3 章 割込み
● 割込み抑止命令のハードウェア割込み抑止
表 3.4-2 に示す 10 種類のハードウェア割込み抑止命令は , ハードウェア割込み要求の
有無を検出せず , 割込み要求を無視します。これらの命令を実行中に有効なハードウェ
ア割込み要求が発生しても , 割込み処理は , この命令以降 , 初めてこれ以外の種類の命
令が実行された後になります。
表 3.4-2 ハードウェア割込み抑止命令
プリフィックス
コード
割込みやホールド要求
を受け付けない命令
PCB
DTB
ADB
SPB
CMR
NCC
割込み / ホールド抑止命令
( プリフィックスコードの効果を遅延させる命令 )
MOV
OR
AND
POPW
ILM, #imm8
CCR, #imm8
CCR, #imm8
PS
● ソフトウェア割込み実行中のハードウェア割込み抑止
ソフトウェア割込みを起動すると , I フラグを "0" にクリアするために , 他の割込み要
求は受け付けられません。
66
第 3 章 割込み
3.4.1
ハードウェア割込みの動作
ハードウェア割込み要求発生から , 割込み処理完了までの動作について説明します。
■ ハードウェア割込みの起動
● 周辺機能の動作 ( 割込み要求の発生 )
ハードウェア割込み要求の機能を持つ周辺機能は , 割込み要求のあり / なしを示す「割
込み要求フラグ」と , CPU への割込み要求の許可 / 禁止を選択する「割込み許可フラ
グ」を持っています。割込み要求フラグは周辺機能固有のイベントの発生によりセッ
トされ , 割込み許可フラグが「許可」であった場合に , 割込みコントローラへ割込み要
求を発生します。
● 割込みコントローラの動作 ( 割込み要求の制御 )
割込みコントローラは , 同時に受け取った割込み要求の割込みレベル (IL) どうしを比
較し , 最も高いレベルの要求 (IL の値の最も小さいもの ) を採択して CPU へ通知しま
す。同一レベルの要求が複数あった場合には , 割込み番号が小さいものを優先します。
● CPU の動作 ( 割込み要求の受付けと割込み処理 )
CPU は受け取った割込みレベル (ICR:IL2 ~ IL0) とインタラプトレベルマスクレジスタ
(ILM) とを比較し , IL < ILM で , なおかつ割込みが許可 (PS レジスタ内の I ビットが
"1") されている場合に , 現在実行中の命令が終了後 , 割込み処理マイクロコードを起動
します。割込み処理マイクロコードの先頭で , 割込み制御レジスタ (ICR) の ISE ビット
を参照し , ISE が "0" であれば引き続き割込み処理を実行します (ISE が "1" の場合は
EI2OS を起動 ) 。
割込み処理では , まず , システムスタック (SSB と SSP の示すシステムスタック空間 )
へ専用レジスタ (A, DPR, ADB, DTB, PCB, PC, PS の 12 バイト ) の内容を退避します。
次に , 割込みベクタのプログラムカウンタ (PCB, PC) へのロード , ILM の更新 , スタッ
クフラグ (S) の設定 (CCR の S フラグを "1" とし , システムスタックを有効にする ) を
行います。
■ ハードウェア割込みからの復帰
割込み処理プログラムの中で , 割込み要因となった周辺機能の割込み要求フラグをク
リアして , RETI 命令を実行すると , システムスタックに退避している 12 バイトデータ
を専用レジスタに戻し , 割込み分岐前に実行していた処理に復帰します。割込み要求フ
ラグをクリアすることで , 周辺機能が割込みコントローラへ出力していた割込み要求
は自動的に取り下げられます。
67
第 3 章 割込み
■ ハードウェア割込みの動作
図 3.4-2 に , ハードウェア割込みの発生から割込み処理完了までの動作を示します。
図 3.4-2 ハードウェア割込みの動作
内部データバス
PS
PS,PC・・
マイクロコード
(7)
IR
(6)
F2 MC-16LX CPU
I
ILM
チェック
(5)
比較器
(4)
(3)
ほかの周辺機能
・
・
・
割込み要求を発生した周辺機能
許可FF
(8)
要因FF
(1)
AND
レベル
比較器
割込み
レベルIL
(2)
割込みコントローラ
RAM
IL
PS
I ILM
IR
FF
:割込み制御レジスタ(ICR)の割込みレベル設定ビット
:プロセッサステータス
:割込み許可フラグ
:インタラプトレベルマスクレジスタ
:インストラクションレジスタ
:フリップフロップ
(1) 周辺機能の内部で割込み要因が発生します。
(2) 周辺機能内の割込み許可ビットを参照し , 割込み許可になっていれば , 周辺から割
込みコントローラへ割込み要求を発生します。
(3) 割込み要求を受け取った割込みコントローラは, 同時に要求のあった割込みの優先
順位を判定したうえで , 該当する割込み要求に対応する割込みレベル (IL) を CPU
へ転送します。
(4) CPU は , 割込みコントローラから要求のあった割込みレベル (IL) を , インタラプト
レベルマスクレジスタ (ILM) と比較します。
(5) 比較した結果が現在の割込み処理レベルより優先順位が高い場合, コンディション
コードレジスタ (CCR) の I フラグの内容をチェックします。
(6) (5) のチェックの結果 , I フラグが割込み許可 (I ビットが "1") の場合 , 現在実行中の
命令の実行が終了するまで待ち , 終了し次第 ILM に要求されたレベル (IL) を設定
します。
(7) レジスタを退避し , 割込み処理ルーチンへ分岐します。
(8) ユーザの割込み処理ルーチン内のソフトウェアによって , (1) で発生した割込み要
因をクリアし , RETI 命令を実行することで割込み処理が終了します。
68
第 3 章 割込み
3.4.2
ハードウェア割込みの動作フロー
周辺機能から割込み要求が発生すると , 割込みコントローラは割込みレベルを CPU
に伝達し , CPU が割込みを受け付けられる状態であれば , 現在実行中の命令を一時中
断して割込み処理ルーチンを実行または , 拡張インテリジェント I/O サービス (EI2OS)
を起動します。また , INT 命令によるソフトウェア割込みが発生した場合は , CPU の
状態にかかわらず割込み処理ルーチンを実行します。INT 命令によるソフトウェア割
込みが発生した場合は , ハードウェア割込みは禁止されます。
■ ハードウェア割込みの動作フロー
図 3.4-3 に , ハードウェア割込みの動作フローを示します。
図 3.4-3 ハードウェア割込みの動作フロー
START
メインプログラム
I&IF&IE=1
AND
ILM>IL
ストリング系*
命令実行中
NO
YES
割込み起動/復帰処理
YES
ISE=1
次の命令の取込みと
デコード
EI2OS
NO
YES
INT命令か?
NO
EI2OS処理
ソフトウェア
割込み/
例外処理
システムスタックへ
専用レジスタ退避
I←0
(ハードウェア割込みの禁止)
ハードウェア
割込み
YES
システムスタックへ
専用レジスタ退避
指定回数終了か?
または,周辺機能からの
終了要求があるか?
NO
ILM←IL
(受け付けられた割込み
要求の割込みレベルを
ILMに転送)
YES
RETI命令か?
NO
通常命令実行
(割込み処理を含む)
NO
割込み
復帰処理 S←1
(システムスタックを
有効にする)
システムスタックから
専用レジスタが復帰し,
割込みルーチン呼出し
前のルーチンへ復帰
PCB,PC←割込みベクタ
(割込み処理ルーチンへ
分岐)
ストリング系*
命令の繰返し完了
YES
PC更新で次命令へ
ポインタ移動
* :ストリング系命令の実行中は,1ステップごとに
割込み判定を行います。
I :コンディションコードレジスタ(CCR)の
割込み許可フラグ
IF :周辺機能の割込み要求フラグ
IE :周辺機能の割込み許可フラグ
ILM :インタラプトレベルマスクレジスタ(PS中の)
ISE :割込み制御レジスタ(ICR)のEI2OS許可フラグ
IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット
S
:コンディションコードレジスタ(CCR)の
スタックフラグ
PCB :プログラムカウンタバンクレジスタ
PC :プログラムカウンタ
69
第 3 章 割込み
3.4.3
ハードウェア割込み使用手順
ハードウェア割込みを使用するには , システムスタック領域 , 周辺機能および割込み
制御レジスタ (ICR) などの設定が必要です。
■ ハードウェア割込み使用手順
ハードウェア割込み使用手順の一例を , 図 3.4-4 に示します。
図 3.4-4 ハードウェア割込み使用手順
スタート
(1) システムスタック領域の設定
割込み処理プログラム
(2)
周辺機能の初期設定
(3) 割込みコントローラ内の
ICRの設定
(4) 周辺機能の動作開始設定
割込み許可ビットを許可
に設定
(5)
スタック処理
(8) 周辺機能への割込み
割込みベクトルへ分岐
に対する処理(割込み処
理ルーチンの実行)
(7)
ハードウェア
による処理
(9)
割込み要因のクリア
PS内のILM,Iの設定
(10) 割込み復帰命令(RETI)
メインプログラム
(6)
割込み要求発生
メインプログラム
(1) システムスタック領域を設定します。
(2) 割込み要求を発生可能な周辺機能の初期設定をします。
(3) 割込みコントローラ内の割込み制御レジスタ (ICR) を設定します。
(4) 周辺機能を動作開始状態にし , 割込み許可ビットを許可に設定します。
(5) 割込みレベルマスクレジスタ (ILM) および割込み許可フラグ (I) を割込み受付け可
能に設定します。
(6) 周辺機能の割込み発生で , ハードウェア割込み要求が発生します。
(7) 割込み処理ハードウェアで , レジスタの退避が行われ , 割込み処理プログラムに分
岐します。
(8) 割込み処理プログラムで , 割込み発生に対する周辺機能への処理を行います。
(9) 周辺機能の割込み要求を解除します。
(10) 割込み復帰命令を実行し , 分岐前のプログラムに復帰します。
70
第 3 章 割込み
多重割込み
3.4.4
ハードウェア割込みでは , 周辺機能からの複数の割込み要求に対して , 割込み制御レ
ジスタ (ICR) の割込みレベル設定ビット (IL0, IL1, IL2) に異なる割込みレベルを設定
することで , 多重割込みを実現できます。ただし , 拡張インテリジェント I/O サービ
スの多重起動はできません。
■ 多重割込み動作
割込み処理ルーチン実行中, より高いレベルの割込み要求が発生すると, 現在の割込み処
理を中断し , より強い割込み要求を受け付けます。高いレベルの割込みが終了すると , 元
の割込み処理に戻ります。割込みレベルは 0 ~ 7 まで設定できますが , レベル 7 に設定
した場合は CPU は割込み要求を受け付けません。
割込み処理実行中に , その割込みと同等かより低いレベルの割込み処理が発生した場
合 , I フラグか ILM を変更しないかぎり現在の割込みが終了するまで新しい割込み要求
は保留されます。また , 割込み処理ルーチン内でコンディションコードレジスタ (CCR)
の I フラグを割込み禁止 (CCR の I が "0") にするか , インタラプトレベルマスクレジス
タ (ILM) を割込み禁止 (ILM が "000") に設定すると割込み中の多重割込みの起動を一
時的に禁止することができます。
<注意事項>
拡張インテリジェント I/O サービス (EI2OS) は多重起動できません。拡張インテリジェン
ト I/O サービス (EI2OS) の処理中は , ほかの割込み要求および拡張インテリジェント I/
O サービス要求はすべて保留されます。
71
第 3 章 割込み
■ 多重割込みの例
多重割込み処理の例として, A/Dコンバータよりタイマ割込みを優先させる場合を想定
し , A/D コンバータの割込みレベルを 2 に , タイマ割込みレベルを "1" に設定します。
上記設定の場合 , A/D コンバータの割込み処理中にタイマ割込みが発生すると , 図 3.4-5
のような処理を行います。
図 3.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) と同じ値 ( 例では 2) になりま
す。この場合 , レベル 1 またはレベル 0 の割込み要求が発生すると , この割込み処理を
優先して行います。
● 割込み処理の終了
割込み処理が終了して復帰命令 (RETI) を実行すると , スタック内に退避した専用レジ
スタ (A, DPR, ADB, DTB, PCB, PC, PS) の値が復帰し , インタラプトレベルマスクレジ
スタ (ILM) は中断前の値となります。
72
第 3 章 割込み
3.4.5
ハードウェア割込み処理時間
ハードウェア割込み要求が発生して割込み処理ルーチンが実行されるまでには , 現
在実行中の命令が終了するまでの時間と , 割込みハンドリング時間が必要です。
■ ハードウェア割込み処理時間
割込み要求が発生してから割込みが受け付けられて , 割込み処理ルーチンが実行され
るまでには, 割込み要求サンプル待ち時間と割込みハンドリング時間 (割込み処理準備
に要する時間 ) が必要です。図 3.4-6 に , 割込み処理時間を示します。
図 3.4-6 割込み処理時間
通常命令実行
CPUの動作
割込み要求
サンプル待ち時間
割込み待ち時間
割込みハンドリング
割込み処理ルーチン
割込みハンドリング時間
(θマシンサイクル)*
割込み要求発生
:命令最終サイクル,ここで割込み要求をサンプルする。
* :1マシンサイクルは,マシンクロック(φ)の1クロック周期に相当します。
● 割込み要求サンプル待ち時間
割込み要求が発生してから現在実行中の命令が終了するまでの時間を指します。割込
み要求が発生しているかどうかは , 各命令の最後のサイクルで割込み要求をサンプリ
ングして判断します。そのため , 各命令の実行中は CPU が割込み要求を認識すること
ができず , 待ち時間が発生します。
なお , 割込み要求サンプル待ち時間は , 最も実行サイクルの長い POPW RW0, •••RW7 命
令 (45 マシンサイクル ) 開始直後に割込み要求が発生した場合 , 最大となります。
● 割込みハンドリング時間 (θ マシンサイクル )
CPU は , 割込み要求を受け付けてから , 専用レジスタのシステムスタックへの退避およ
び割込みベクタの取込みなどを行うため , θ マシンサイクルの割込みハンドリング時
間を必要とします。割込みハンドリング時間は , 以下の式によって求められます。
割込み起動時 : θ=24 + 6 × Z マシンサイクル
割込み復帰時 : θ=11 + 6 × Z マシンサイクル (RETI 命令 )
割込みハンドリング時間は , スタックポインタの指しているアドレスによって異なり
ます。表 3.4-3 に割込みハンドリング時間の補正値 (Z) を示します。
1 マシンサイクルは , マシンクロック (φ) の 1 クロック周期に相当します。
表 3.4-3 割込みハンドリング時間の補正値 (Z)
スタックポインタが指しているアドレス
補正値 (Z)
外部 8 ビットの場合
+4
外部 偶数アドレスの場合
+1
外部 奇数アドレスの場合
+4
内部 偶数アドレスの場合
0
内部 奇数アドレスの場合
+2
73
第 3 章 割込み
3.5
ソフトウェア割込み
ソフトウェア割込みは , ソフトウェア割込み命令 (INT 命令 ) を実行すると , CPU が
それまで実行していたプログラムからユーザの定義した割込み処理用プログラムへ
制御を移行する機能です。ソフトウェア割込みの実行中はハードウェア割込みは停
止します。
■ ソフトウェア割込みの起動
● ソフトウェア割込みの起動
ソフトウェア割込みの起動には , INT 命令を使用します。ソフトウェア割込み要求には
割込み要求フラグおよび許可フラグはなく, INT命令を実行すると常に割込み要求が発
生します。
● ハードウェア割込みの抑止
INT命令には割込みレベルがないので, インタラプトレベルマスクレジスタ (ILM) の更
新は行われません。INT 命令実行中は , コンディションコードレジスタ (CCR) の I フラ
グを "0" に設定し , ハードウェア割込みをマスクします。ソフトウェア割込み処理中も
ハードウェア割込みを許可する場合は , ソフトウェア割込み処理ルーチンの中で I フラ
グを "1" に設定してください
● ソフトウェア割込みの動作
CPU が INT 命令を取り込み実行すると , ソフトウェア割込み処理用マイクロコードを
起動します。このマイクロコードにより , CPU 内部のレジスタ類をシステムスタック
に退避し , ハードウェア割込みをマスク (CCR の I フラグを "0") した後 , 対応する割込
みベクタへ分岐します。
割込み番号と割込みベクタの割当てについては , 「3.2 割込み要因と割込みベクタ」を
参照してください。
■ ソフトウェア割込みからの復帰
割込み処理プログラムの中で割込み復帰命令 (RETI 命令 ) を実行すると , システムス
タックに退避している 12 バイトデータを専用レジスタに戻して , 割込み分岐前に実行
していた処理に復帰します。
74
第 3 章 割込み
■ ソフトウェア割込みの動作
図 3.5-1 に , ソフトウェア割込みの発生から割込み処理完了までの動作を示します。
図 3.5-1 ソフトウェア割込みの動作
内部データバス
PS,PC…
(2)マイクロコード
(1) PS
I
S
IR
キュー
フェッチ
RAM
PS :プロセッサステータス
I :割込み許可フラグ
S :スタックフラグ
IR :インストラクションレジスタ
(1) ソフトウェア割込み命令を実行します。
(2) ソフトウェア割込み命令に対応したマイクロコードに従って専用レジスタを退避
するなどの必要な処理を行った後 , 分岐処理を行います。
(3) ユーザの割込み処理ルーチン内の RETI 命令で割込み処理が終了します。
■ ソフトウェア割込みに関する注意事項
プログラムカウンタバンクレジスタ (PCB) が "FFH" である場合 , CALLV 命令のベクタ
領域は INT #vct8 命令のテーブルと重なります。ソフトウェアを作成する際に , CALLV
命令と INT #vct8 命令のアドレスの重複に注意してください。
75
第 3 章 割込み
3.6
拡張インテリジェント I/O サービス (EI2OS) による割
込み
拡張インテリジェント I/O サービス (EI2OS) は , 周辺機能 (I/O) とメモリとの間で自
動データ転送を行う機能で , データ転送終了時にハードウェア割込みが発生します。
■ 拡張インテリジェント I/O サービス (EI2OS)
拡張インテリジェント I/O サービスは , ハードウェア割込みの一種です。これは , 周辺
機能 (I/O) とメモリとの間で自動データ転送を行う機能です。従来は割込み処理プログ
ラムで行っていた周辺機能 (I/O) とのデータのやりとりを DMA ( ダイレクトメモリア
クセス) のように行い, 終了時に終了条件を設定した後自動的に割込み処理ルーチンへ
分岐します。ユーザは , EI2OS 起動時と終了時のみプログラムを作成することになり ,
途中のデータ転送プログラムは不要となります。
● 拡張インテリジェント I/O サービス (EI2OS) の利点
割込み処理ルーチンで行っていたデータ転送と比べると , 次のような利点があります。
• 転送プログラムを作成する必要がないため , プログラム全体のサイズを小さくでき
る。
• 周辺機能 (I/O) の状態によって転送を停止できるので , 不要なデータを転送する必
要がない。
• バッファアドレスのインクリメントおよび更新なしを選択できます。
• I/O レジスタアドレスのインクリメントおよび更新なしを選択できます。
● 拡張インテリジェント I/O サービス (EI2OS) の終了割込み
EI2OS によるデータ転送が終了すると , 終了条件を割込み制御レジスタ (ICR) の S1, S0
ビットに設定し , 自動的に割込み処理ルーチンへ分岐します。
割込み処理プログラムで , EI2OS ステータス (ICR の S1, S0 ビット ) をチェックするこ
とによって , EI2OS の終了要因を判断することができます。
割込み番号や割込みベクタは , 各周辺で固定されています。詳細は「3.2 割込み要因と
割込みベクタ」を参照ください。
● 割込み制御レジスタ (ICR)
割込みコントローラ内にあり , EI2OS の起動 , EI2OS のチャネル指定および EI2OS 終了
時の状態表示を行います。
● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD)
RAM 上の 000100H ~ 00017FH にあり , 転送モード , I/O のアドレスや転送数 , バッファ
アドレスを保持する 8 バイトデータで , 16 チャネル分あります。割込み制御レジスタ
(ICR) でチャネルを指定します。
<注意事項>
拡張インテリジェント I/O サービス (EI2OS) が動作している場合 , CPU のプログラム実行
は止まります。
76
第 3 章 割込み
■ 拡張インテリジェント I/O サービス (EI2OS) の動作
図 3.6-1 に , EI2OS の動作を示します。
図 3.6-1 拡張インテリジェント I/O サービス (EI2OS) の動作
メモリ空間
by IOA
I/O
レジスタ
I/Oレジスタ
周辺機能(I/O)
(5)
CPU
割込み要求
(3)
ISD
by ICS
(2)
(3)
(1)
割込み制御レジスタ(ICR)
割込みコントローラ
by BAP
(4)
ISD
IOA
BAP
ICS
DCT
バッファ
by DCT
:EI2OSディスクリプタ
:I/Oアドレスポインタ
:バッファアドレスポインタ
:割込み制御レジスタ(ICR)のEI2OSチャネル選択ビット
:データカウンタ
(1) I/O が転送を要求します。
(2) 割込みコントローラがディスクリプタを選択します。
(3) 転送元や転送先をディスクリプタから読み出します。
(4) I/O とメモリ間で転送が行われます。
(5) 割込み要因は自動的にクリアされます。
77
第 3 章 割込み
3.6.1
拡張インテリジェント I/O サービス (EI2OS)
ディスクリプタ (ISD)
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) は , 内部 RAM の
"000100H" ~ "00017FH" に存在し , 8 バイト× 16 チャネルで構成されています。
■ 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成
ISD は , 8 バイト× 16 チャネルで構成されており , 各 ISD は図 3.6-2 のような構造に
なっています。チャネル番号と ISD のアドレスの対応は , 表 3.6-1 のとおりです。
図 3.6-2 EI2OS ディスクリプタ (ISD) の構成
MSB
LSB
データカウンタ上位8ビット(DCTH)
H
データカウンタ下位8ビット(DCTL)
I/Oレジスタアドレスポインタ上位8ビット(IOAH)
I/Oレジスタアドレスポインタ下位8ビット(IOAL)
EI2OSステータスレジスタ(ISCS)
バッファアドレスポインタ上位8ビット(BAPH)
バッファアドレスポインタ中位8ビット(BAPM)
ISD先頭アドレス
(000100H+8×ICS)
バッファアドレスポインタ下位8ビット(BAPL)
表 3.6-1 チャネル番号とディスクリプタアドレスの対応
チャネル
78
ディスクリプタアドレス
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
第 3 章 割込み
3.6.2
拡張インテリジェント I/O サービス (EI2OS)
ディスクリプタ (ISD) の各レジスタ
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) は , 次のレジスタ
から構成されています。
• データカウンタ (DCT)
• I/O レジスタアドレスポインタ (IOA)
• 拡張インテリジェント I/O サービス (EI2OS) ステータスレジスタ (ISCS)
• バッファアドレスポインタ (BAP)
各レジスタの初期値は , リセット時には不定となるので注意してください。
■ データカウンタ (DCT)
データカウンタ (DCT) は , 16 ビット長のレジスタで , 転送データ数に対応したカウン
タとなります。各データの転送後に , カウンタは 1 デクリメント ( 減値 ) します。この
カウンタがゼロになると EI2OS の動作は終了します。データカウンタ (DCT) で指定で
きる最大転送数は , 65,536 個 (64K バイト ) です。図 3.6-3 に , DCT の構成を示します。
図 3.6-3 データカウンタ (DCT) の構成
DCTH
DCTL
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
初期値
DCT B15 B14 B13 B12 B11 B10 B09 B08 B07 B06 B05 B04 B03 B02 B01 B00 XXXXXXXXXXXXXXXXB
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
R/W:リード / ライト可能
X :不定
■ I/O レジスタアドレスポインタ (IOA)
I/O レジスタアドレスポインタ (IOA) は , 16 ビット長のレジスタで , バッファとのデー
タ転送を行う , I/O レジスタの下位アドレス (A15 ~ A0) を示します。上位アドレス (A23 ~
A16) はすべて "0" であり , 000000H から 00FFFFH 番地までの任意の I/O をアドレスで
指定できます。図 3.6-4 に , IOA の構成を示します。
図 3.6-4 I/O レジスタアドレスポインタ (IOA) の構成
IOAH
IOAL
初期値
IOA A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00 XXXXXXXXXXXXXXXXB
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
R/W:リード / ライト可能
X :不定
79
第 3 章 割込み
■ 拡張インテリジェント I/O サービス (EI2OS) ステータスレジスタ (ISCS)
拡張インテリジェント I/O サービス (ISCS) は , 8 ビット長で , バッファアドレスポイン
タと I/O レジスタアドレスポインタの更新 / 固定 , 転送データ形式 ( バイト / ワード ) ,
転送方向を示します。図 3.6-5 に , ISCS の構成を示します。
図 3.6-5 EI2OS ステータスレジスタ (ISCS) の構成
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
RESV RESV RESV
R/W
R/W
R/W
IF
BW
BF
DIR
SE
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
EI2OS終了制御ビット
SE
0
周辺機能からの要求で終了しない
1
周辺機能からの要求で終了する
データ転送方向指定ビット
DIR
0
I/Oレジスタアドレスポインタ→バッファアドレスポインタ
1
バッファアドレスポインタ→I/Oレジスタアドレスポインタ
BAP更新/固定選択ビット
BF
0
データ転送後バッファアドレスポインタは更新されます。*1
1
データ転送後バッファアドレスポインタは更新されません。
BW
転送データ長指定ビット
0
バイト
1
ワード
IF
IOA更新/固定選択ビット
データ転送後I/Oレジスタアドレスポインタは更新されます。
1
データ転送後I/Oレジスタアドレスポインタは更新されません。
RESV
予約ビット
これらのビットには必ず"0"を書き込んでください
R/W:リード/ライト可能
X :不定
*1:バッファアドレスポインタは,下位16ビットだけ変化し,インクリメントだけ可能です。
*2:アドレスポインタは,インクリメントだけ可能です。
80
*2
0
第 3 章 割込み
■ バッファアドレスポインタ (BAP)
バッファアドレスポインタ (BAP) は , 24 ビットのレジスタで , EI2OS による次回の転送
で使用するアドレスを保持します。BAP は , EI2OS の各チャネルに対してそれぞれ独
立に存在するので , EI2OS の各チャネルは , 16M バイトの任意のアドレスと I/O の間で
データを転送できます。EI2OS ステータスレジスタ (ISCS) の BF ビット (EI2OS ステー
タスレジスタの BAP 更新 / 固定選択ビット ) で " 更新あり " とした場合 , BAP は下位
16 ビット (BAPM, BAPL) だけ変化し , 上位 8 ビット (BAPH) は変化しません。
バッファアドレスポインタ (BAP) で指定できる領域は , 000000H ~ FFFFFFH です。
図 3.6-6 に , バッファアドレスポインタ (BAP) の構成を示します。
図 3.6-6 バッファアドレスポインタ (BAP) の構成
BAP
bit23 ~ bit16
BAPH
(R/W)
bit15 ~ bit8
BAPM
(R/W)
bit7 ~ bit0
BAPL
(R/W)
初期値
XXXXXXB
R/W:リード / ライト可能
X :不定
81
第 3 章 割込み
3.6.3
拡張インテリジェント I/O サービス (EI2OS) の動作
周辺機能から割込み要求が発生し , 対応する割込み制御レジスタ (ICR) で EI2OS の
起動が設定されていると , CPU は EI2OS によるデータ転送を行います。指定回数の
データ転送が終了すると , 自動的にハードウェア割込み処理を行います。
■ 拡張インテリジェント I/O サービス (EI2OS) の処理手順
図 3.6-7 に , CPU 内部のマイクロコードによる , EI2OS の動作フローを示します。
図 3.6-7 拡張インテリジェント I/O サービス (EI2OS) の動作フロー
周辺機能より
割込み要求発生
ISE=1
NO
YES
割込みシーケンス
ISD/ISCSリード
周辺機能から
の終了要求
YES
DIR=1
YES
NO
IOAで示されるデータ
(データ転送)
BAPで示されるメモリ
IF=0
BAPで示されるデータ
(データ転送)
IOAで示されるメモリ
YES
NO
BF=0
DCT=00
NO
YES
周辺機能割込み要求
のクリア
CPU動作復帰
ISD :EI OSディスクリプタ
ISCS :EI2OSステータスレジスタ
IF
:EI2OSステータスレジスタ(ISCS)の
IOA更新/固定選択ビット
BW
:EI2OSステータスレジスタ(ISCS)の
転送データ長指定ビット
BF
:EI2OSステータスレジスタ(ISCS)の
BAP更新/固定選択ビット
DIR :EI2OSステータスレジスタ(ISCS)の
データ転送方向指定ビット
SE
:EI2OSステータスレジスタ(ISCS)の
EI2OS終了制御ビット
82
IOA更新
更新値は
BWによる
BAP更新
(-1)
S1, S0に"00B"をセット
2
更新値は
BWによる
YES
NO
DCTデクリメント
YES
SE=1
NO
NO
EI2OS終了処理
S1, S0に"01B"をセット
S1, S0に"11B"をセット
ISEを"0"にクリア
割込みシーケンス
DCT :データカウンタ
IOA :I/Oレジスタアドレスポインタ
BAP :バッファアドレスポインタ
ISE :割込み制御レジスタ(ICR)のEI2OS許可ビット
S1,S0:割込み制御レジスタ(ICR)のEI2OSステータス
第 3 章 割込み
拡張インテリジェント I/O サービス (EI2OS)
の使用手順
3.6.4
拡張インテリジェント I/O サービス (EI2OS) を使用するには , システムスタック領域 ,
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ , 周辺機能および割込み制
御レジスタ (ICR) などの設定が必要です。
■ 拡張インテリジェント I/O サービス (EI2OS) の使用手順
図 3.6-8 に , 拡張インテリジェント I/O サービス (EI2OS) 使用手順を示します。
図 3.6-8 拡張インテリジェント I/O サービス (EI2OS) 使用手順
ソフトウェアによる処理
ハードウェアによる処理
開 始
システムスタック領域の設定
初
期
設
定
EI2OSディスクリプタの設定
周辺機能の初期設定
割込み制御レジスタ
(ICR)の設定
内蔵リソースの動作開始
設定割込み許可ビットの
設定
PS内のILM, Iの設定
S1,S0="00"
(割込み要求)and(ISE=1)
ユーザプログラムの実行
データ転送
NO
カウントアウトまたは
リソースからの終了要求に
よる割込みへ分岐の判定
(割込みベクトルへ分岐)
拡張インテリジェントI/O
サービスの再設定
(チャネルの切換えなど)
YES
S1,S0="01"or
S1,S0="11"
バッファ中のデータの処理
RETI
ISE :割込み制御レジスタ(ICR)のEI2OSの許可ビット
S1,S0 :割込み制御レジスタ(ICR)のEI2OSステータス
83
第 3 章 割込み
3.6.5
拡張インテリジェント I/O サービス (EI2OS)
処理時間
拡張インテリジェント I/O サービス (EI2OS) の処理に必要な時間は次の要因によっ
て変化します。
• EI2OS ステータスレジスタ (ISCS) の設定
• I/O レジスタアドレスポインタ (IOA) の示すアドレス ( 領域 )
• バッファアドレスポインタ (BAP) の示すアドレス ( 領域 )
• 外部アクセス時の外部データバス幅
• 転送データのデータ長
また , EI2OS によるデータ転送終了時には , ハードウェア割込みが起動するため , 割
込みハンドリング時間が加算されます。
■ 拡張インテリジェント I/O サービス (EI2OS) 処理時間 (1 回の転送時間 )
● データ転送継続時
データ転送継続時のEI2OS処理時間は, EI2OSステータスレジスタ (ISCS) の設定によっ
て , 表 3.6-2 のようになります。
表 3.6-2 拡張インテリジェント I/O サービス実行時間
EI2OS 終了制御ビット (SE) の設定
周辺からの終了要求により終了
IOA 更新 / 固定選択ビット (IF) の設定
BAP アドレス更新 / 固定
選択ビット (BF) の設定
周辺からの終了要求を無視
固定
更新
固定
更新
固定
32
34
33
35
更新
34
36
35
37
単位 : マシンサイクル (1 マシンサイクルは , マシンクロック (φ) の 1 クロック周期に相当します。)
さらに , 表 3.6-3 に示すように , EI2OS 実行時の条件によって補正が必要です。
表 3.6-3 EI2OS 実行時間のデータ転送の補正値
内部アクセス
I/O レジスタアドレスポインタ
内部アクセス
バッファアドレスポインタ
外部アクセス
B : バイトデータ転送
8 : 外部バス幅 8 ビット・ワード転送
偶 : 偶数アドレス・ワード転送
奇 : 奇数アドレス・ワード転送
84
外部アクセス
B/ 偶
奇
B/ 偶
8/ 奇
B/ 偶
0
+2
+1
+4
奇
+2
+4
+3
+6
B/ 偶
+1
+3
+2
+5
8/ 奇
+4
+6
+5
+8
第 3 章 割込み
● データカウンタ (DCT) のカウント終了時 ( 最終回のデータ転送時 )
EI2OS によるデータ転送終了時には , ハードウェア割込みが起動するため , 割込みハン
ドリング時間が加算されます。カウント終了時の EI2OS の処理時間は , 次の式で算出
されます。
カウント終了時の EI2OS 処理時間 =
データ転送時の EI2OS 処理時間+ (21+6 × Z) マシンサイクル
↑
割込みハンドリング時間
1 マシンサイクルは , マシンクロック (φ) の 1 クロック周期に相当します。
割込みハンドリング時間は , スタックポインタの指しているアドレスによって異なり
ます。表 3.6-4 に , 割込みハンドリング時間の補正値 (Z) を示します。
表 3.6-4 割込みハンドリング時間の補正値 (Z)
スタックポインタが指しているアドレス
補正値 (Z)
外部 8 ビットの場合
+4
外部 偶数アドレスの場合
+1
外部 奇数アドレスの場合
+4
内部 偶数アドレスの場合
0
内部 奇数アドレスの場合
+2
● 周辺機能 (I/O) からの終了要求による終了時
周辺機能 (I/O) からの終了要求で , EI2OS によるデータ転送を途中で終了した場合
(ICR:S1, S0=11) , データ転送は行わず , ハードウェア割込みを起動します。この場合の
EI2OS 処理時間は次の式で算出されます。式中の Z は , 割込みハンドリング時間の補正
値 ( 表 3.6-4 を参照 ) です。
途中終了時の EI2OS 処理時間 =36 + 6 × Z マシンサイクル
1 マシンサイクルは , マシンクロック (φ) の 1 クロック周期に相当します。
85
第 3 章 割込み
3.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 が未定義命令を指しているために , 再度 ,
例外処理に入ります。ソフトウェアリセットするなどの対策をしてください。
86
第 3 章 割込み
割込み処理のスタック動作
3.8
割込みが受け付けられると , 割込み処理に分岐する前に , 専用レジスタの内容をシス
テムスタックに自動的に退避します。割込み処理終了時のスタックからの復帰も自
動的に行われます。
■ 割込み処理開始時のスタック動作
割込みが受け付けられると , CPU は現在の専用レジスタ類の内容を , 次に示す順番で ,
自動的にシステムスタックに退避させます。
1) アキュムレータ (A)
2) ダイレクトページレジスタ (DPR)
3) アディショナルデータバンクレジスタ (ADB)
4) データバンクレジスタ (DTB)
5) プログラムカウンタバンクレジスタ (PCB)
6) プログラムカウンタ (PC)
7) プロセッサステータス (PS)
図 3.8-1 に , 割込み処理開始時のスタック動作を示します。
図 3.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
SP
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
H
SSP
08F2H
A
0000H
08FEH
AH
AL
DPR
01H
ADB
00H
DTB
00H
PCB
FFH
L
バイト
PC
803FH
PS
20E0H
08F2H
メモリ
SP
00H
00H
08H
FEH
01H
00H
00H
FFH
80H
3FH
20H
E0H
バイト
AH
AL
DPR
ADB
DTB
PCB
PC
PS
更新後
のSP
■ 割込み処理復帰時のスタック動作
割込み処理終了時に割込み復帰命令 (RETI) を実行すると , 割込み処理開始時と反対の
順番で PS, PC, PCB, DTB, ADB, DPR, A の値がスタックから復帰し , 専用レジスタは割
込み開始直前の状態に戻ります。
87
第 3 章 割込み
■ スタック領域
● スタック領域の確保
スタック領域は , 割込み処理の他にサブルーチンコール命令 (CALL) やベクタコール
命令 (CALLV) を実行する場合のプログラムカウンタ (PC) の退避 / 復帰や , PUSHW,
POPW 命令による一時的なレジスタ類の退避 / 復帰にも使われます。スタック領域は ,
データ領域とともに RAM 上に確保します。
図 3.8-2 にスタック領域を示します。
図 3.8-2 スタック領域
ベクタテーブル
(リセット・割込み ベクタコール命令)
FFFFFFH
FFFC00H
ROM領域
FF0000H
*1
~
~
000D00H
~
~
*2
内蔵RAM領域
スタック領域
000380H
汎用レジスタ
バンク領域
000180H
000100H
0000C0H
000000H
内蔵I/O領域
*1:品種によって,内蔵ROM容量が異なります。
*2:品種によって,内蔵RAM容量が異なります。
<注意事項>
• スタックポインタ (SSP, USP) にアドレスを設定する場合, 原則として偶数アドレスを
設定してください。
• システムスタック領域 , ユーザスタック領域およびデータ領域は , お互いに重なり合わ
ないように配置してください。
● システムスタックとユーザスタック
割込み処理では , システムスタック領域を使用します。割込み発生時にユーザスタック
領域を使用していても , 強制的にシステムスタックに切り換えられます。このため ,
ユーザスタック領域を主に使用するシステムであっても , システムスタック領域を正
しく設定しておく必要があります。特に , スタック空間を分ける必要がなければ , シス
テムスタックだけを使用してください。
88
第 3 章 割込み
3.9
割込み処理のプログラム例
割込み処理のプログラム例を示します。
■ 割込み処理のプログラム例
外部割込み 0 (INT0) を利用した割込みプログラムの一例です。
以下にプログラムのコーディング例を示します。
【コーディング例】
DDR1
ENIR
EIRR
ELVR
ICR00
STACK
EQU
000011H
; ポート 1 方向レジスタ
EQU
000030H
; DTP/ 割込み許可レジスタ
EQU
000031H
; DTP/ 割込み要因レジスタ
EQU
000032H
; 要求レベル設定レジスタ
EQU
0000B0H
; 割込み制御レジスタ 00
SSEG
; スタック
RW
100
STACK_T RW
1
STACK
ENDS
;---------- メインプログラム --------------------------------------------------CODE
CSEG
START:
MOV
RP, #0
; 汎用レジスタは先頭バンクを使用
MOV
ILM, #07H ; PS 内 ILM をレベル 7 に設定
MOV
A, #!STACK_T ; システムスタックの設定
MOV
SSB, A MOVW
A, #STACK_T
; スタックポインタの設定 , この場合は
MOVW
SP, A
; S フラグ= 1 のため SSP にセットされる
MOV
DDR1, #00000000B ; P10/INT0 端子を入力に設定
AND
CCR, #0E0H ; PS 内 CCR のビット 0 ~ 4 をクリア
OR
CCR, #40H ; PS 内 CCR の I フラグをセットして割込み許可
MOV
I:ICR00, #00H
; 割込みレベル 0( 最強 ) とする
MOV
I:ELVR, #00000001B ; INT0 を H レベル要求とする
MOV
I:EIRR, #00H
; INT0 の割込み要因をクリア
MOV
I:ENIR, #01H
; INT0 の入力許可
:
LOOP:
NOP
; ダミーループ
NOP
NOP
NOP
BRA
LOOP
; 無条件ジャンプ
;---------- 割込みプログラム ------------------------------------------------ED_INT1:
MOV
I:EIRR, #00H
; INT0 の新規受付け禁止
NOP
NOP
NOP
89
第 3 章 割込み
NOP
NOP
NOP
RETI
; 割込みから復帰
CODE
ENDS
;---------- ベクタ設定 ------------------------------------------------------VECT
CSEG
ABS=0FFH
ORG
0FFD0H
; 割込み #11(0BH) にベクタを設定
DSL
ED_INT1
ORG
0FFDCH
; リセットベクタ設定
DSL
START
DB
00H ; シングルチップモードに設定
VECT
ENDS
END
START
90
第 3 章 割込み
■ 拡張インテリジェント I/O サービス (EI2OS) のプログラム例処理仕様
1) INT0 端子に入力される信号の "H" レベルを検出して拡張インテリジェント I/O サー
ビス (EI2OS) を起動します。
2) INT0 端子に "H" レベルが入力されると , EI2OS が起動されポート 0 のデータをメモ
リの "3000H" 番地に転送します。
3) 転送データバイト数は 100 バイトで , 100 バイト転送後 , EI2OS 転送終了による割込
みが発生します。
以下にプログラムのコーディング例を示します。
【コーディング例】
BAPL
BAPM
BAPH
.SECTION
.ORG
.RES.B
.ORG
.RES.B
.RES.B
.RES.B
.ORG
.RES.B
.ORG
.RES.B
.RES.B
.RES.B
IO,IO, LOCATE=0x000000
0011H
01H
; ポート 1 方向レジスタ
0030H
01H
; DTP/ 割込み許可レジスタ
01H
; DTP/ 割込み要因レジスタ
01H
; 要求レベル設定レジスタ
00B0H
01H
; 割込み制御レジスタ 00
0100H
01H
; バッファアドレスポインタ下位
01H
; バッファアドレスポインタ中位
01H
; バッファアドレスポインタ上位
ISCS
IOAL
IOAH
DCTL
DCTH
.RES.B
.RES.B
.RES.B
.RES.B
.RES.B
01H
01H
01H
01H
01H
DDR1
ENIR
EIRR
ELVR
ICR00
;
;
;
;
;
EI2OS ステータス
I/O アドレスポインタ下位
I/O アドレスポインタ上位
データカウンタ下位
データカウンタ上位
.SECTION STACK,STACK ; スタック
.RES.B
0FEH
STACKT .RES.B
01H
;---------- メインプログラム ------------------------------------------------.SECTION
PROG,CODE
START:
AND
CCR, #0BFH
; PS 内 CCR の I フラグをクリアして割込み禁止
MOV
RP, #00
; レジスタバンクポインタを設定
MOV
A, #bnksym STACKT
; システムスタックの設定
MOV
SSB, A
MOVW
A, #STACKT
; スタックポインタの設定 , この場合は
MOVW
SP, A
; S フラグが "1" のため SSP にセットされる
MOV
I:DDR1, #00000000B
;P10/INT0 端子を入力に設定
MOV
BAPL, #00H
; バッファアドレスをセット (003000H)
MOV
BAPM, #30H
MOV
BAPH, #00H
MOV
ISCS, #00010001B
91
第 3 章 割込み
MOV
MOV
MOV
MOV
MOV
;
;
;
;
;
I/O アドレス更新なし , バイト転送 , バッファ
アドレス更新あり
I/O →バッファへ転送 , 周辺機能 ( リソース )
による終了あり
転送元アドレスをセット ( ポート 0:000000H)
IOAL, #00H
IOAH, #00H
DCTL, #064H ; 転送バイト数をセット (100 バイト )
DCTH,
#00H
I:ICR00, #00001000B
; EI2OS ch.0, EI2OS 許可 ,
; 割込みレベル 0( 最高レベル )
I:ELVR, #00000001B; INT0 を "H" レベル要求とする
I:EIRR, #00H ; INT0 の割込み要因クリア
I:ENIR, #01H ; INT0 の割込み許可
ILM,
#07H ; PS 内 ILM をレベル 7 に設定
CCR,
#0E0H ; PS 内 CCR のビット 0 ~ 4 をクリア
CCR,
#040H ; PS 内 CCR の I フラグをセットして割込み許可
MOV
MOV
MOV
MOV
AND
OR
:
LOOP:
BRA
LOOP ; 無限ループ
;---------- 割込みプログラム ------------------------------------------------WARI
CLRB
EIRR:0
; DTP/ 割込み要求フラグのクリア
:
ユーザ処理
; EI2OS の終了要因をチェック ,
:
; バッファ中のデータの処理 , EI2OS の
; 再設定など
RETI
---------- ベクタ設定 -------------------------------------------------------.SECTION VECT,CODE, LOCATE=0xFFFF54
.ORG
0FFFFD0H
; 割込み #25(19H) にベクタを設定
.DATA.E
WARI
.ORG
0FFFFDCH
; リセットベクタ設定
.DATA.E
START
;
.DATA.B
00H
; モードデータ設定
.END
92
START
第4章
リセット
この章では , リセットについて説明します。
4.1 リセットの概要
4.2 リセット要因と発振安定待ち時間
4.3 外部リセット端子
4.4 リセット動作
4.5 リセット要因ビット
4.6 リセットによる各端子の状態
93
第 4 章 リセット
リセットの概要
4.1
リセット要因が発生すると , CPU は直ちに現在実行中の処理を中断し , リセット解
除待ち状態になります。リセット解除後は , リセットベクタで示されたアドレスか
ら処理を開始します。
リセットには , 次の 6 つの要因があります。
• 電源投入 ( パワーオン )
• RST 端子からの外部リセット要求
• ソフトウェアリセット要求
• ウォッチドッグタイマのオーバフロー
• 電源電圧の低下検出
• CPU 動作検出機能カウンタのオーバフロー
■ リセット要因
リセット要因について表 4.1-1 に示します。
表 4.1-1 リセット要因
リセット
発生要因
マシンクロック
ウォッチドッグ
タイマ
発振安定
待ち
パワーオン
電源投入時
メインクロック
(MCLK)
停止
あり
外部端子
RST 端子への "L" レベル入力
メインクロック
(MCLK)
停止
なし
ソフトウェア
低消費電力モード制御レジスタ
(LPMCR) の内部リセット信号発生
ビット (RST) に "0" を書き込む
メインクロック
(MCLK)
停止
なし
ウォッチドッグタイマ
ウォッチドッグタイマオーバフ
ロー
メインクロック
(MCLK)
停止
なし
低電圧検出*
電源電圧の低電圧検出時
メインクロック
(MCLK)
停止
あり
CPU 動作検出機能*
CPU 動作検出機能カウンタのオー
バフロー
メインクロック
(MCLK)
停止
なし
MCLK: メインクロック ( 発振クロックの 2 分周クロック )
*: MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA のみ , 本要因でリセットがかかります。
● パワーオンリセット
パワーオンリセットは , 電源投入時に発生するリセットです。発振安定待ち時間は 218
発振クロックサイクル (218/HCLK) 固定です。発振安定待ち時間が経過した後 , リセッ
ト動作を行います。
● 外部リセット
外部リセットは , 外部リセット端子 (RST 端子 ) に "L" レベルを入力することでリセッ
トを発生します。RST 端子への "L" レベル入力時間は , 16 マシンサイクル (16/φ) 以上
必要です。外部リセットでは , 発振安定待ち時間を確保しません。
94
第 4 章 リセット
<注意事項>
RST端子によるリセット要求の発生の場合に限り, 書込み動作中 (転送系命令実行中MOV
など) にリセット要因が発生した場合, 命令の終了後にリセット解除待ち状態になります。
そのため , 書込み中にリセットが入力されても , 正常に書込みを終了します。
ただし , ストリング系命令 (MOVS など ) は , 指定したカウンタ分の転送が完了する前に
リセットを受け付けるので , すべてのデータが転送されることは保証されません。
● ソフトウェアリセット
ソフトウェアリセットは , 低消費電力モード制御レジスタ (LPMCR) の内部リセット信
号発生ビット (RST) に "0" を書き込むことによって , 内部リセットを発生します。ソフ
トウェアリセットでは , 発振安定待ち時間を取りません。
● ウォッチドッグリセット
ウォッチドッグリセットは , ウォッチドッグタイマの起動後 , 定められた時間内に
ウォッチドッグタイマ制御レジスタ (WDTC) のウォッチドッグ制御ビット (WTE) に
"0" の書込みがない場合 , ウォッチドッグタイマのオーバフローによってリセットを発
生します。ウォッチドッグリセットは発振安定待ち時間を取りません。
● 低電圧検出リセット
低電圧検出リセットは , 電源電圧が所定の値より低くなった場合に発生するリセット
です。発振安定待ち時間は 218 発振クロックサイクル (218/HCLK) 固定です。発振安定
待ち時間が経過した後 , リセット動作を行います。
低 電圧 /CPU 動 作 検出 リ セッ ト 回路 搭 載品 で ある MB90F423GA,
MB90F428GA,
MB90423GA, MB90427GA, MB90428GA のみ該当し , 電源投入から常に機能します。
● CPU 動作検出リセット
CPU 動作検出リセットは , 電源投入後 , 定められた時間内に低電圧 /CPU 動作検出リ
セット制御レジスタ (LVRC) の CPU 動作検出回路クリアビット (CL) に "0" の書込みが
ない場合 , CPU 動作検出機能カウンタのオーバフローによってリセットを発生します。
低 電圧 /CPU 動 作 検出 リ セッ ト 回路 搭 載品 で ある MB90F423GA,
MB90F428GA,
MB90423GA, MB90427GA, MB90428GA のみ該当し , 電源投入から常に機能します。
クロックの定義
HCLK : 発振クロック周波数
MCLK : メインクロック周波数
SCLK
φ
1/φ
: サブクロック周波数
: マシンクロック周波数 (CPU 動作クロック )
: マシンサイクル (CPU 動作クロック周期 )
詳細は , 「5.1 クロックの概要」を参照してください。
95
第 4 章 リセット
<注意事項>
ストップモードまたはサブクロックモードでリセットが発生した場合は , 217/HCLK ( 約
32.77ms, HCLK=4MHz 発振使用時 ) の発振安定待ち時間を確保します。
詳細は , 「5.1 クロックの概要」を参照してください。
96
第 4 章 リセット
リセット要因と発振安定待ち時間
4.2
MB90420G/425G シリーズには , 6 種類のリセット要因があり , リセット時の発振安
定待ち時間がリセット要因によってそれぞれ異なります。
■ リセット要因と発振安定待ち時間
表 4.2-1 にリセット要因と発振安定待ち時間について示します。
表 4.2-1 リセット要因と発振安定待ち時間
リセット
発振安定待ち時間
( ) 内は発振クロック周波数 4MHz 時
リセット要因
パワーオン
電源立上げ
218/HCLK ( 約 65.536 ms)
( 注意事項 )
降圧回路の安定時間を含む。
ウォッチドッグ
ウォッチドッグタイマの
オーバフロー
なし : ただし WS1, WS0 ビットは "11B" に初期化されます。
外部
RST 端子からの "L" 入力
なし : ただし WS1, WS0 ビットは "11B" に初期化されます。
低電圧検出*
低電源電圧の検出
217/HCLK ( 約 32.768 ms)
CPU 動作検出*
CPU 動作検出タイマの
オーバフロー
なし : ただし WS1, WS0 ビットは "11B" に初期化されます。
ソフトウェア
低消費電力モード制御レジス
タ (LPMCR) の RST ビットへ
の "0" 書込み
なし : ただし WS1, WS0 ビットは "11B" に初期化されます。
*
HCLK
WS1, WS0
: MB90F423GA, MB90F428GA, MB90423GA, MB90427GA, MB90428GA のみ , 本要因でリセットが
かかります。
: 発振クロック周波数
: クロック選択レジスタ CKSCR の発振安定待ち時間選択ビット
図 4.2-1 に , パワーオンリセット時の発振安定待ち時間について示します。
図 4.2-1 パワーオンリセット時の発振安定待ち時間
Vcc
217/HCLK
217/HCLK
CLK
CPU動作
降圧回路の
安定待ち時間
発振安定
待ち時間
HCLK:発振クロック周波数
97
第 4 章 リセット
表 4.2-2 クロック選択レジスタ (CKSCR) の設定による発振安定待ち時間
WS1
WS0
発振安定待ち時間 ( ) 内は発振クロック周波数 4MHz 時
0
0
210/HCLK ( 約 0.256ms)
0
1
213/HCLK ( 約 2.05ms)
1
0
215/HCLK ( 約 8.19ms)
1
1
217/HCLK ( 約 32.77ms)
HCLK: 発振クロック周波数
<注意事項>
セラミックや水晶などの振動子は , 発振を開始してから固有の振動数に安定するまで , 一
般に数 ms から十数 ms の発振安定待ち時間が必要です。そのため , 使用する振動子に合
わせた値を設定してください。詳細は , 「5.1 クロックの概要」を参照してください。
■ 発振安定待ちリセット状態
電源投入時のリセット , ストップモードおよびサブクロックモード中のリセットに対
するリセット動作は , タイムベースタイマによって作られる発振安定待ち時間が経過
してからとなります。このとき , 外部リセット入力が解除されていない場合は , 外部リ
セット解除後にリセット動作を行います。
98
第 4 章 リセット
4.3
外部リセット端子
外部リセット端子 (RST 端子 ) は , リセット入力専用端子で , "L" レベルの入力に
よって内部リセットを発生します。MB90420G/425G シリーズは , CPU 動作クロッ
クに同期してリセットがかかりますが , 外部端子のみ非同期でリセットがかかりま
す。
■ 外部リセット端子のブロックダイヤグラム
図 4.3-1 内部リセットのブロックダイヤグラム
CPU動作クロック
(PLL逓倍回路,HCLKの2分周)
RST
P-ch
同期化回路
端子
N-ch 入力バッファ
クロック同期
内部リセット信号
HCLK:発振クロック
<注意事項>
書込み動作中のリセットによるメモリ破壊を防ぐため, RST端子入力の受付けをメモリが
破壊されないサイクルで行います。
また , 内部回路の初期化には , クロックが必要です。特に外部クロックで動作させる場合
は , リセット入力時にクロックを入力する必要があります。
99
第 4 章 リセット
4.4
リセット動作
リセットが解除されると , モード端子の設定でモードデータとリセットベクタの読
出し先を選択し , モードフェッチを行います。このモードフェッチで , CPU の動作
モードとリセット動作終了後の実行開始アドレスが決定されます。電源投入時 , サ
ブクロックモードおよびストップモードからのリセットによる復帰では , 発振安定
待ち時間が経過してからモードフェッチを行います。
■ リセット動作の概要
図 4.4-1 に , リセット動作フローを示します。
図 4.4-1 リセット動作フロー
パワーオンリセット
ストップモード
サブクロックモード
低電圧検出リセット
外部リセット
ソフトウェアリセット
ウォッチドッグタイマリセット
CPU動作検出リセット
リセット中
発振安定待ちリセット状態
モードフェッチ
(リセット動作)
モードデータ取込み
リセットベクタ取込み
通常動作
(RUN状態)
リセットベクタが示す
アドレスから命令コードを
取り込み命令を実行
■ モード端子
モード端子 (MD0 ~ MD2) は , リセットベクタとモードデータの取込み方法を指定しま
す。リセットベクタとモードデータの取込みは , リセットシーケンスで行います。モー
ド端子の詳細は , 「7.2 モード端子 (MD2 ~ MD0)」を参照してください。
■ モードフェッチ
リセットが解除されると , CPU は , リセットベクタとモードデータを CPU コア内の該
当 レジ ス タ内 に ハー ド ウェ ア 転送 し ます。リ セッ ト ベク タ とモ ー ドデ ー タは ,
"FFFFDCH" ~ "FFFFDFH" の 4 バイトに割り当てられています。CPU は , リセット解除
で直ちにこれらのアドレスをバスに出力し , リセットベクタとモードデータを取り込
みます。このモードフェッチで , CPU はリセットベクタが指すアドレスから処理を開
始します。
100
第 4 章 リセット
図 4.4-2 に , リセットベクタとモードデータの転送を示します。
図 4.4-2 リセットベクタとモードデータの転送
2
メモリ空間
F MC-16LX CPUコア
モード
レジスタ
FFFFDFH
モードデータ
FFFFDEH
リセットベクタビット23~16
FFFFDDH
リセットベクタビット15~8
FFFFDCH
リセットベクタビット7~0
マイクロ ROM
リセット
シーケンス
PCB
PC
● モードデータ ( アドレス :FFFFDFH)
モードレジスタの内容を変更できるのはリセット動作だけで , モードレジスタの設定
はリセット動作以降に有効となります。モードデータの詳細は , 「7.3 モードデータ」
を参照してください。
● リセットベクタ ( アドレス :FFFFDCH ~ FFFFDEH)
リセット動作終了後の実行開始アドレスを書き込んでおきます。この内容のアドレス
から実行を開始します。
101
第 4 章 リセット
リセット要因ビット
4.5
リセット発生要因は , ウォッチドッグタイマ制御レジスタ (WDTC) および低電圧 /
CPU 動作検出リセット制御レジスタ (LVRC) を読み出すことで識別することができ
ます。
■ リセット要因ビット
図 4.5-1 に示すように , それぞれのリセット要因には対応したフリップフロップがあり
ます。これらの内容は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すと得
られます。リセット解除後にリセット発生要因を識別する必要がある場合には , ウォッ
チドッグタイマ制御レジスタ (WDTC) の読出し値をソフトウェアで処理した上で , 適
切なプログラムへ分岐するようにしてください。
図 4.5-1 リセット要因ビットブロックダイヤグラム
CPU動作検出
リセット
要求検出回路
RST端子
HSTX=内部"H"固定
(ハードウェアスタンバイモードなし)
RST
電源電圧低下
電源投入
パワーオン
発生検出回路
ハードウェア
スタンバイ
解除検出回路
低電圧
検出回路
定期的なクリアなし ビットセット
RSTX=L
LPMCR,RST
ビット書込み
検出回路
ウォッチドッグ
タイマリセット
発生検出回路
外部リセット
要求検出回路
クリア
ウォッチドッグ
タイマ制御
レジスタ
(WDTC)
S
R
F/F
Q
S
F/F
Q
R
S
R
F/F
Q
S
F/F
Q
R
S
F/F
Q
R
遅延回路
ウォッチドッグ
タイマ
制御レジスタ
(WDTC)読出し
内部データバス
S :Set
R :Reset
Q :Out put
F/F:Flip Flop
102
第 4 章 リセット
■ リセット要因ビットとリセット要因の対応
リセット要因ビットの構成 ( ウォッチドッグタイマ制御レジスタ ) の構成を , 図 4.5-2
に , リセット要因ビットの内容とリセット要因の対応を表 4.5-1 に示します。詳細は ,
「9.3.1 ウォッチドッグタイマ制御レジスタ (WDTC)」を参照してください。
図 4.5-2 リセット要因ビットの構成 ( ウォッチドッグタイマ制御レジスタ )
ウォッチドッグタイマ制御レジスタ (WDTC)
アドレス
0000A8H
bit15 - - - - bit8
(TBTC)
bit7
PONR
R
bit6
-
bit5
bit4
WRST EAST
R
R
bit3
SRST
R
bit2
WTE
W
bit1
WT1
W
初期値
X-XXX111B
bit0
WT0
W
R :リードオンリ
W:ライトオンリ
X :不定
表 4.5-1 リセット要因ビットの内容とリセット要因の対応
リセット要因
PONR
WRST
ERST
SRST
1
X
X
X
△
1
△
△
CPU 動作検出リセット要求の発生* 2
△
△
1
△
ソフトウェアリセット要求の発生
△
△
△
1
パワーオンリセット要求の発生 ,
低電圧検出リセット要求の発生* 1
ウォッチドッグタイマオーバフローによるリセッ
ト要求の発生
RST 端子からの外部リセット要求 ,
△ : 前の状態を保持
X : 不定
*1 : 低電圧検出リセット要求の発生の場合は , 低電圧 /CPU 動作検出リセット制御レジスタ
(LVRC) の LVRF ビットも "1" になります。
*2 : CPU 動作検出リセット要求の発生の場合は , 低電圧 /CPU 動作検出リセット制御レジスタ
(LVRC) の CPUF ビットも "1" になります。
103
第 4 章 リセット
■ リセット要因ビットの状態
図 4.5-3 リセット要因ビットの状態
(3)
(4)
(2)
ビットのクリア 低電圧が検出されたとき ビットのクリア
(1)
電源投入時
Vcc=4V
Vcc
(1)
(2)
(3)
(4)
PONR ビット
( 電源投入または LVRF = 1)
1
→
0
→
1
→
0
ERST ビット
( 外部リセット入力 , CPU 動作検
出)
0
→
0
→
0
→
0
1
または
0
→
0
→
1
→
0
LVRF ビット *
( 低電圧検出 , 4V ± 0.3V)
*:LVRF ビットは低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) 内にあります。
1) 電源投入時
電源が投入されると , パワーオンリセットビット (PONR) と LVRF ビットは "1" に
セットされます。しかし , 通常のスタートアップによらないで電源が投入された場
合は , LVRF ビットが "0" にセットされることがあります。
2) ビットのクリア (WDTC レジスタの読出しと , LVRF ビットへの "0" 書込みにより ,
ビットがクリアされます。)
3) 低電圧 (4V ± 0.3V) が検出されたとき
低電圧 (4V ± 0.3V) が検出されたとき , LVRF ビットと PONR ビットは "1" にセット
されます。
4) ビットのクリア (WDTC レジスタの読出しと , LVRF ビットへの "0" 書込みにより ,
ビットがクリアされます。)
■ リセット要因ビットの注意事項
● 複数のリセット要因が発生した場合
リセット要因が複数発生する場合は , ウォッチドッグタイマ制御レジスタ (WDTC) の
対応するそれぞれのリセット要因ビットが "1" にセットされます。例えば , RST 端子か
らの外部リセット要求の発生とウォッチドッグタイマのオーバフローが同時に発生し
た場合 , ERST ビットと WRST ビットの両方が "1" になります。
● リセット要因ビットのクリア
リセット要因ビットは , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出したと
きのみクリアされます。それぞれのリセット要因に対応するビットに生じたフラグは ,
その後ほかの要因でリセットが発生してもクリアされず , "1" のままとなります。
104
第 4 章 リセット
4.6
リセットによる各端子の状態
リセットによる各端子の状態について説明します。
■ リセット中の端子の状態
リセット中の端子の状態は , モード端子 (MD2 ~ MD0="011") の設定によって決定され
ます。
リセット中の各端子の状態は , 「6.7 スタンバイモード , リセット時の端子状態」を参
照してください。
● 内部ベクタモード設定時
I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し
先は内部 ROM になります。
■ モードデータ読出し後の端子の状態
モードデータ読出し後の端子の状態は , モードデータ (M1, M0="00") によって決定さ
れます。
● シングルチップモード選択時 (M1, M0=00B)
I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し
先は内部 ROM になります。
<注意事項>
リセット要因が発生したときハイインピーダンスとなる端子は , その端子に接続した機器
が誤動作しないように配慮してください。
105
第 4 章 リセット
106
第5章
クロック
この章では , クロックについて説明します。
5.1 クロックの概要
5.2 クロック発生部のブロックダイヤグラム
5.3 クロック選択レジスタ (CKSCR)
5.4 クロックモード
5.5 発振安定待ち時間
5.6 振動子と外部クロックの接続
107
第 5 章 クロック
5.1
クロックの概要
クロック発生部は , CPU や周辺機能の動作クロックである内部クロックの動作を制
御します。この内部クロックのことをマシンクロックとよび , その 1 周期をマシン
サイクルといいます。また , 原発振によるクロックを発振クロックとよび , 内部の
PLL 発振によるクロックを PLL クロックといいます。
■ クロックの概要
クロック発生部は発振回路を内蔵しており , 外部に振動子を接続することによって , 発
振クロックを発生します。外部で生成したクロックを入力して , 発振クロックにするこ
ともできます。また , PLL クロック逓倍回路を内蔵しており , 発振クロックの逓倍ク
ロックを 4 種類発生できます。クロック発生部では , 発振安定待ち時間の制御 , PLL ク
ロック逓倍制御およびクロックセレクタでのクロックの切換えによる , 内部クロック
の動作制御を行います。
● 発振クロック (HCLK)
X0, X1 端子に振動子を取り付けて発生させるか , または外部から入力したクロックの
ことです。
● サブクロック (SCLK)
X0A, X1A 端子に振動子を取り付けて発生させるか , または外部から入力したクロック
の 4 分周クロックをいいます。
サブクロックは , 時計タイマの入力クロックおよびサブクロックモード時の低速マシ
ンクロックとなります。
● メインクロック (MCLK)
発振クロックの 2 分周クロックです。タイムベースタイマとクロックセレクタへの入
力クロックとなります。
● PLL クロック (PCLK)
発振クロックを , 内蔵の PLL クロック逓倍回路により逓倍したクロックです。4 種類
の逓倍クロックを選択できるようになっています。
● マシンクロック (φ)
CPU と周辺機能の動作クロックです。このクロックの 1 周期を , マシンサイクル (1/φ)
としています。メインクロック ( 発振クロックの 2 分周クロック ) と , 4 種類の逓倍ク
ロックの中から 1 種類を選択できるようになっています。
<注意事項>
動作電圧が 5V のとき , 発振クロックは 4MHz の発振が可能ですが , CPU および周辺機能
は最大動作周波数が 16MHz です。最大動作周波数を超える逓倍率を指定した場合 , デバ
イスは正常に動作しません。例えば , 原発振が 16MHz で発振している場合には , 1 逓倍だ
け指定が可能です。
PLL クロック逓倍回路の発振範囲は 3 ~ 16MHz ですが , この範囲は動作電圧および逓倍
数の選択によって変化します。詳細は『データシート』を参照してください。
108
第 5 章 クロック
■ クロック供給マップ
CPU や周辺機能の動作クロックとして , クロック発生部で生成したマシンクロックを
供給しています。このため CPU と周辺機能の動作は , メインクロックと PLL クロック
の切換え ( クロックモード ) や PLL クロック逓倍率切換えの影響を受けます。一部の
周辺機能へは , タイムベースタイマの分周出力が供給されており , 各周辺で , その動作
クロックを選択できるようになっています。図 5.1-1 に , クロック供給マップを示しま
す。
図 5.1-1 クロック供給マップ
周辺機能
低電圧検出回路/
CPU動作検出回路
4
ウォッチドッグ
タイマ
16ビット
PPGタイマ0/1/2
クロック発生部
X0A
端子
X1A
端子
サウンド
ジェネレータ
1 2 3 4
クロック
発生回路
PLL逓倍回路
X0
4分周
端子
X1
端子
CANコントローラ
0(/1)
タイムベースタイマ
クロック
発生回路
SCLK
(サブ
クロック)
(発振
クロック)
PCLK
(PLLクロック)
クロックセレクタ
2分周
HCLK
MCLK
(メイン
クロック)
LCDコントローラ/
ドライバ
φ
(マシン
クロック)
UART0/1
CPU
TRG
端子
PPG0~PPG2
端子
RX0(,1)
端子
TX0(,1)
端子
SGA,SGO
端子
V0~V3
端子
COM0~COM3
SEG0~SEG23
端子
SCK0,SCK1
端子
SIN0,SIN1
端子
SOT0,SOT1
端子
プリスケーラ0,1
TIN0,TIN1
端子
16ビット
リロードタイマ0/1 TOT0,TOT1
端子
リアルタイム時計
タイマ
外部割込み
WOT
端子
INT0~INT7
端子
16ビット
フリーランタイマ
16ビット インプット
キャプチャ0/1/2/3
10ビット
A/Dコンバータ
HCLK:発振クロック
SCLK:サブクロック
MCLK:メインクロック
PCLK:PLLクロック
φ :マシンクロック
ステッピングモータ
コントローラ
0/1/2/3
4
発振安定待ち制御
IN0~IN3
端子
AN0~AN7
端子
ADTG
端子
PWM1P0~PWM1P3
端子
PWM1M0~PWM1M3
端子
PWM2P0~PWM2P3
端子
PWM2M0~PWM2M3
端子
109
第 5 章 クロック
5.2
クロック発生部のブロックダイヤグラム
クロック発生部は , 次の 5 つのブロックで構成されています。
• システムクロック発生回路
• PLL 逓倍回路
• クロックセレクタ
• クロック選択レジスタ (CKSCR)
• 発振安定待ち時間セレクタ
■ クロック発生部のブロックダイヤグラム
図 5.2-1 に , クロック発生部のブロックダイヤグラムを示します。
なお , 図 5.2-1 には スタンバイ制御回路 , タイムベースタイマの回路も含まれていま
す。
図 5.2-1 クロック発生部のブロックダイヤグラム
低消費電力モード制御レジスタ(LPMCR)
STP
RST
SLP
SPL
RST
TMD
CG1
CG0 予約
端子
端子ハイイン
ピーダンス
制御回路
端子ハイ
インピーダンス制御
内部リセット
発生回路
内部リセット
CPU間欠動作
セレクタ
間欠サイクル選択
CPUクロック
制御回路
2
ストップ,スリープ信号
スタンバイ
制御回路
割込み解除
CPUクロック
ストップ信号
周辺クロック
制御回路
マシンクロック
周辺クロック
発振安定待ち解除
クロック
発生部
発振安定
待ち時間
セレクタ
クロックセレクタ
4分周
SCLK
2
2
サブ
クロック
発生回路
PLL逓倍回路
システム
クロック
発生回路
X0A 端子
X1A 端子
X0 端子
SCM
MCM
WS1
WS0
SCS
MCS
CS1
CS0
クロック選択レジスタ(CKSCR)
HCLK
2分周
MCLK
1024分周
2分周
4分周
4分周
4分周
2分周
タイムベースタイマ
X1 端子
ウォッチドッグタイマへ
HCLK: 発振クロック
MCLK: メインクロック
SCLK: サブクロック
110
第 5 章 クロック
● システムクロック発生回路
外部に接続した振動子によって発振クロック (HCLK) を発生します。外部クロックを
入力することもできます。
● サブクロック発生回路
外部に接続した振動子によってサブクロック (SCLK) を発生します。外部クロックを入
力することもできます。
● PLL 逓倍回路
PLL 発振で発振クロックを逓倍し , CPU クロックセレクタへ供給します。
● クロックセレクタ
メインクロックと 4 種類の PLL クロックとから , CPU 系クロック制御回路および周辺
系クロック制御回路へ供給されるクロックを選択します。
● クロック選択レジスタ (CKSCR)
発振クロックと PLL クロックの切換え , 発振安定待ち時間の選択および PLL クロック
の逓倍率の選択などを行います。
● 発振安定待ち時間セレクタ
ストップモードの解除時の , 発振クロックの発振安定待ち時間を選択する回路です。
4 種類のタイムベースタイマ出力を選択します。
111
第 5 章 クロック
5.3
クロック選択レジスタ (CKSCR)
クロック選択レジスタ (CKSCR) は , メインクロックと PLL クロックの切換え , 発振
安定待ち時間の選択および PLL クロックの逓倍率の選択などを行うレジスタです。
■ クロック選択レジスタ (CKSCR) の構成
図 5.3-1 に , クロック選択レジスタ (CKSCR) の構成を , 表 5.3-1 に , クロック選択レジ
スタ (CKSCR) の各ビットの機能について説明します。
図 5.3-1 クロック選択レジスタ (CKSCR) の構成
アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7
0000A1H
SCM
MCM
WS1
WS0
SCS
MCS
CS1
CS0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CS1 CS0
0
1×HCLK( 4MHz)
1
2×HCLK( 8MHz)
1
0
3×HCLK(12MHz)
1
1
4×HCLK(16MHz)
11111100B
マシンクロック選択ビット
0
PLLクロック選択
1
メインクロック選択
0
マシンクロック選択ビット
(サブクロックまたはメインクロック)
サブクロック選択 *2
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)*1
マシンクロック表示ビット
MCM
0
PLLクロックで動作中
1
メインクロックで動作中
0
マシンクロック表示ビット
(サブクロックまたはメインクロック)
サブクロックで動作中 *2
1
メインクロックで動作中
SCM
:発振クロック
:リード/ライト可能
:リードオンリ
:初期値
初期値
逓倍率選択ビット
( )内は発振クロック4MHz時
0
SCS
HCLK
R/W
R
(LPMCR)
0
MCS
bit0
*1:パワーオンリセット時は218/HCLK(約65.54ms)になります。
*2:MB90420G/425Gシリーズでは,サブクロックは選択できません。
SCSビットに"0"を設定した場合,リセットを発生し ます。
<注意事項>
マシンクロック選択ビットは , リセットによりメインクロック選択に初期化されます。
112
第 5 章 クロック
表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (1 / 2)
ビット名
bit15
bit14
機 能
SCM:
マシンクロック
表示ビット
( サブクロックまたは
メインクロック )
・マシンクロックとして , メインクロックまたはサブクロックのどちらが
選択されているかを表示するビットです。
・このビットが "0" のときサブクロックが選択されていることを示し , "1"
のときメインクロックが選択されていることを示します。
・SCS=0 で , かつ SCM=1 ならば , メインクロックからサブクロックへの移
行期間中であることを表します。また , SCS=1 で , かつ SCM=0 ならば ,
サブクロックからメインクロックへの移行期間中であることを表しま
す。
MCM:
マシンクロック
表示ビット
・マシンクロックとして , メインクロックまたは PLL クロックのどちらが
選択されているかを表示するビットです。
・このビットが "0" のとき PLL クロックが選択されていることを示し , "1"
のときメインクロックが選択されていることを示します。
・MCS が "0" で , かつ MCM が "1" ならば , PLL クロック発振安定待ち時間
中であることを示します。
・ストップモード解除時 , サブクロックモードからメインクロックモード
への移行時およびサブクロックから PLL クロックモードへの移行時の発
振クロックの発振安定待ち時間を選択します。
・すべてのリセット要因で "11B" に初期化されます。
( 注意事項 ) 発振安定待ち時間は , 使用する振動子に合わせて適切な値を設
定する必要があります。「4.2 リセット要因と発振安定待ち時
間」を参照してください。"00B" の設定は , メインクロック
bit13,
bit12
bit11
WS1, WS0:
発振安定待ち
時間選択ビット
SCS:
マシンクロック
選択ビット
( サブクロックまたは
メインクロック )
モード時のみ設定してください。
メインクロックモードから PLL クロックモードに切り換えた
場合の発振安定待ち時間は , 214/HCLK で固定です。
サブクロックモードから PLL クロックモードに切り換えた場
合および PLL ストップモードから PLL クロックモードに復帰
する場合の発振安定待ち時間は , 本ビットに設定された値に従
います。PLL クロック発振安定待ち時間は 214/HCLK 以上必
要ですので , サブクロックモードから PLL クロックモードに
切り換える場合および PLL ストップモードに移行する場合 ,
本ビットには , "10B" または "11B" を設定してください。
・マシンクロックとして , メインクロックまたはサブクロックのどちらを
選択するかを指定するビットです。
・このビットが "0" のときに "1" を書き込むと , メインクロックの発振安定
待ち時間が発生するために , 自動的にタイムベースタイマがクリアされ
ます。
・サブクロック選択時の動作クロックは , サブクロックの 4 分周を使用し
ます ( サブ発振 32kHz 時 , マシンクロックは 8kHz になります ) 。
・SCS, MCS がともに "0" のときは , SCS が優先され , サブクロックが選択
されます。
すべてのリセット要因で "1" に初期化されます。
・メインクロックモード時に CKSCR レジスタの SCS ビットが "1" の場合
に "0" を設定した場合は , サブクロックに同期をとって ( 約 130μs), メイ
ンクロックモードからサブクロックモードに切り換わります。
113
第 5 章 クロック
表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (2 / 2)
ビット名
bit10
bit9,
bit8
MCS:
マシンクロック
選択ビット
CS1, CS0:
逓倍率選択
ビット
HCLK:発振クロック周波数
114
機 能
・マシンクロックとして , メインクロックまたは PLL クロックのどちらを
選択するかを指定するビットです。
・このビットが "0" のとき PLL クロックを選択し , "1" のときメインクロッ
クを選択します。
・このビットが "1" のときに "0" を書き込むと , PLL クロックの発振安定待
ち時間が発生するために , 自動的にタイムベースタイマがクリアされ ,
さらにタイムベースタイマ制御レジスタ (TBTC) の TBOF ビットもクリ
アされます。
・メインクロックモードから PLL クロックモードに切り換えた場合の発振
安定待ち時間は , 214/HCLK で固定です ( 発振クロック周波数 4MHz 時 ,
発振安定待ち時間は約 4.1ms になります ) 。サブクロックモードから
PLL クロックモードに切り換えた場合の発振安定待ち時間は , 発振安定
待ち時間選択ビット (CKSCR:WS1, WS0) に設定された値に従います。
・メインクロック選択時の動作クロックは , 発振クロックを 2 分周したク
ロックとなります ( 発振クロック周波数 4MHz 時 , 動作クロックは 2MHz
になります ) 。
・すべてのリセット要因で "1" に初期化されます。
( 注意事項 ) MCS ビットが "1" のときに "0" を書き込む場合には , タイム
ベースタイマ制御レジスタ (TBTC) の TBIE ビットまたはイン
タラプトレベルレジスタ (ILM) によりタイムベースタイマ割
込みがマスクされている状態で行うようにしてください。
・PLL クロックの逓倍率を選択するビットです。
・4 種類の逓倍率から選択できます。
・すべてのリセット要因で "00B" に初期化されます。
( 注意事項 ) MCS ビットまたは MCM ビットが "0" のときには , 書込みが
抑止されます。いったん , MCS ビットを "1" にした ( メインク
ロックモード ) 後に , CS1, CS0 ビットを書き換えてください。
第 5 章 クロック
5.4
クロックモード
クロックモードには , メインクロックモードと PLL クロックモード , サブクロック
モードがあります。
■ メインクロックモード , PLL クロックモード , サブクロックモード
● メインクロックモード
メインクロックモードは , CPU および周辺機能の動作クロックとして発振クロックを
2 分周したクロックを使用し , PLL クロックを停止させます。
● PLL クロックモード
PLL クロックモードは , CPU および周辺機能の動作クロックとして PLL クロックを使
用します。PLL クロックの逓倍率は , クロック選択レジスタ (CKSCR:CS1, CS0) によ
り選択できます。
● サブクロックモード
サブクロックモードは , CPU および周辺機能の動作クロックとしてサブクロックを 4
分周したクロックを使用し , メインクロックおよび PLL クロックを停止させます。
<注意事項>
サブ ク ロッ ク モー ド は , MB90F423GC, MB90F428GC, MB90423GC, MB90427GC,
MB90428GC のみ使用できます。
■ クロックモードの移行
クロック選択レジスタ (CKSCR) の MCS ビット , SCS ビットへの書込み動作により , ク
ロックモードは , メインクロックモード , PLL クロックモード , サブクロックモードに
移行します。
● メインクロックモードから PLL クロックモードへの移行
メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "1"
から "0" に書き換えた場合には , PLL クロックの発振安定待ち時間 (214/HCLK) 後に , メ
インクロックから PLL クロックに切り換わります。
● PLL クロックモードからメインクロックモードへの移行
PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "0" か
ら "1" に書き換えた場合には , PLL クロックとメインクロックのエッジが一致するタイ
ミング (1 ~ 8PLL クロック後 ) で PLL クロックからメインクロックに切り換わります。
● メインクロックモードからサブクロックモードへの移行
メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "1"
から"0"に書き換えた場合には, サブクロックに同期をとって (約130μs) , メインクロッ
クからサブクロックに切り換わります。
115
第 5 章 クロック
● サブクロックモードからメインクロックモードへの移行
サブクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "0" か
ら "1" に書き換えた場合には , メインクロックの発振安定待ち時間後に , サブクロック
からメインクロックに切り換わります。発振安定待ち時間は , クロック選択レジスタ
(CKSCR) の WS1, WS0 ビットにより選択します。
● PLL クロックモードからサブクロックモードへの移行
PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "1" か
ら "0" に書き換えた場合には , PLL クロックからサブクロックに切り換わります。
● サブクロックモードから PLL クロックモードへの移行
サブクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "0" か
ら "1" に書き換えた場合には , メインクロックの発振安定待ち時間後に , サブクロック
から PLL クロックに切り換わります。発振安定待ち時間は , クロック選択レジスタ
(CKSCR) の WS1, WS0 ビットにより選択します。
<注意事項>
• クロック選択レジスタ (CKSCR) の MCS ビット , SCS ビットを書き換えても即座にマ
シンクロックの切換えが行われません。マシンクロックに依存する周辺機能を操作す
る場合には , クロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参
照してマシンクロックの切換えが行われたことを確認した後に , 周辺機能の操作を
行ってください。
SCS ビット , MCS ビットがともに "0" の場合は , SCS が優先され , サブクロックモー
ドになります。
• クロックモードを切り換えた場合 , 切換えが完了するまでは , ほかのクロックモードお
よび低消費電力モードへの切換えを行わないでください。切換えの完了はクロック選
択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照して確認してください。
切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換えを
行った場合 , 切り換わらない場合があります。
■ PLL クロック逓倍率の選択
クロック選択レジスタ (CKSCR) の CS1, CS0 ビットに "00B" ~ "11B" を書き込むことに
より , 1 ~ 4 逓倍の 4 種類の PLL クロック逓倍率を選択できます。
■ マシンクロック
PLL 逓倍回路から出力される PLL クロック , 原発振の 2 分周クロック , サブクロック
の 4 分周クロックが , マシンクロックとなります。このマシンクロックが CPU および
周辺機能に供給されます。メインクロック , PLL クロック , サブクロックは , クロック
選択レジスタ (CKSCR) の MCS ビットまたは SCS ビットへの書込みにより , いずれか
を選択できます。
図 5.4-1 に , マシンクロックの切換えによる状態遷移を示します。
116
第 5 章 クロック
図 5.4-1 マシンクロック選択の状態遷移図
メイン
MCS = 1
MCM = 1
SCS = 1
SCM = 1
CS1,CS0 = xx (11)
(16)
(1)
(8)
メイン→サブ
MCS = 1
MCM = 1
SCS = 0
SCM = 1
CS1,CS0 = xx
(3)
(4)
(7)
(10)
(7)
メイン→PLLx
MCS = 0
MCM = 1
SCS = 1
SCM = 1
CS1,CS0 = xx
(8)
サブ→メイン
MCS = 1
MCM = 1
SCS = 1
SCM = 0
CS1,CS0 = xx
(4)
(3)
サブ→PLLx
MCS = 0
MCM = 1
SCS = 1
SCM = 0
CS1,CS0 = xx
(9)
サブ
MCS = 1
MCM = 1
SCS = 0
SCM = 0
CS1,CS0 = xx
(17)
(5)
(6)
(2)
PLLx→メイン
MCS = 1
MCM = 0
(1)
SCS = 1
SCM = 1
CS1,CS0 = xx
(12) PLL1逓倍
MCS = 0
MCM = 0
SCS = 1
SCM = 1
CS1,CS0 = 00
(2)
(13)
(14)
(15)
(12)
(9)
PLLx→サブ
MCS = 1
(5) MCM = 0
SCS = 0
SCM = 1
CS1,CS0 = xx
(6)
PLL2逓倍
(13)
MCS = 0
MCM = 0
SCS = 1
SCM = 1
CS1,CS0 = 01
PLL3逓倍
(14)
MCS = 0
MCM = 0
SCS = 1
SCM = 1
CS1,CS0 = 10
PLL4逓倍
(15)
MCS = 0
MCM = 0
SCS = 1
SCM = 1
CS1,CS0 = 11
(1) MCSビット"0"ライト
(2) MCSビット"1"ライト(すべてのリセットを含む)
(3) SCSビット"0"ライト
(4) SCSビット"1"ライト
(5) MCSビット"0"ライト,SCSビット"1"ライト
(6) MCSビット"1"ライト,SCSビット"0"ライト
(7) メインクロックとサブクロックの同期タイミング
(8) メインクロックとPLLクロックの同期タイミング
(9) PLLクロックとサブクロックの同期タイミング
(10)メインクロックからサブクロックへの移行期間終了
(11)サブクロックからメインクロックへの移行期間終了
(12)PLLクロック発振安定待ち終了,CS1,CS0=00
(13)PLLクロック発振安定待ち終了,CS1,CS0=01
(14)PLLクロック発振安定待ち終了,CS1,CS0=10
(15)PLLクロック発振安定待ち終了,CS1,CS0=11
(16)PLLクロックからメインクロックへの移行期間終了
(17)PLLクロックからサブクロックへの移行期間終了
MCS
:クロック選択レジスタ(CKSCR)のマシンクロック選択ビット
MCM
:クロック選択レジスタ(CKSCR)のマシンクロック表示ビット
SCS
:クロック選択レジスタ(CKSCR)のマシンクロック選択ビット
SCM
:クロック選択レジスタ(CKSCR)のマシンクロック表示ビット
CS1,CS0:クロック選択レジスタ(CKSCR)の逓倍率選択ビット
(サブ)
(サブ)
117
第 5 章 クロック
<注意事項>
マシンクロックの初期値はメインクロック (CKSCR:MCS=1, SCS=1) です。
SCS, MCS ともに "0" のときは SCS が優先され , サブクロックが選択されます。
サブクロックモードから PLL クロックモードに切り換える場合は , CKSCR レジスタの発
振安定待ち時間選択ビット (WS1, WS0) は "10B" または "11B" を設定してください。
118
第 5 章 クロック
発振安定待ち時間
5.5
電源投入時 , ストップモード解除時 , サブクロックからメインクロック , サブクロッ
クから PLL クロックへ切り換える場合は , 発振クロックの発振が停止しているため ,
発振開始後 , 発振安定待ち時間をとる必要があります。また , メインクロックから
PLL クロック , メインクロックからサブクロックへ切換え時も , 発振安定待ち時間が
必要となります。
■ 発振安定待ち時間
セラミックや水晶などの振動子は , 発振を開始してから固有の振動数 ( 発振周波数 ) で
安定して発振するまでに , 一般的に数 ms から数十 ms の時間が必要です。このため , 発
振開始直後は CPU の動作を禁止し , 発振安定待ち時間が経過して十分発振が安定した
時点で CPU にクロックを供給するようにします。振動子の種類 ( 水晶 , セラミックな
ど) によって発振が安定するまでの時間が異なるため, 使用する振動子に合わせて適切
な発振安定待ち時間を選択する必要があります。発振安定待ち時間は , クロック選択レ
ジスタ (CKSCR) の設定で選択できます。
メインクロックから PLL クロック , メインクロックからサブクロック , サブクロック
からメインクロック , サブクロックから PLL クロックに切り換えた場合 , 発振安定待
ち時間の間 , CPU は切換え前のクロックで動作しています。発振安定待ち時間が経過
すると , 各クロックモードに切り換わります。
図 5.5-1 に , 発振開始直後の動作を示します。
図 5.5-1 発振開始直後の動作
振動子の発振時間
発振安定待ち時間
通常動作開始または
PLLクロック/サブクロック
への切換え
X1
発振開始
発振安定
119
第 5 章 クロック
5.6
振動子と外部クロックの接続
MB90420G/425G シリーズは , システムクロック発生回路を内蔵しており , 外部に振
動子を接続してクロック発生させます。また , 外部で生成したクロックを入力する
こともできます。
■ 振動子と外部クロックの接続
● 水晶振動子またはセラミック振動子の接続例
水晶振動子またはセラミック振動子は , 図 5.6-1 の例で示すように接続してください。
図 5.6-1 水晶振動子またはセラミック振動子の接続例
X0(X0A)
MB90420G/425G シリーズ
X1(X1A)
● 外部クロックの接続例
図 5.6-2 の例で示すように , 外部クロックは , X0 (X0A) 端子に接続し , X1 (X1A) 端子は
開放にしてください。
図 5.6-2 外部クロックの接続例
X0(X0A)
MB90420G/425G シリーズ
~
開放
120
X1(X1A)
第6章
低消費電力モード
この章では , 低消費電力モードについて説明しま
す。
6.1 低消費電力モードの概要
6.2 低消費電力制御回路のブロックダイヤグラム
6.3 低消費電力モード制御レジスタ (LPMCR)
6.4 CPU 間欠動作モード
6.5 スタンバイモード
6.6 状態遷移図
6.7 スタンバイモード , リセット時の端子状態
6.8 低消費電力モード使用上の注意
121
第 6 章 低消費電力モード
低消費電力モードの概要
6.1
動作クロックの選択とクロックの動作制御による , 次のような CPU 動作モードを備
えています。
• クロックモード (PLL クロック , メインクロック , サブクロックの各モード )
• CPU 間欠動作モード (PLL クロック間欠動作 , メインクロック間欠動作 , サブク
ロック間欠動作の各モード )
• スタンバイモード ( スリープ , タイムベースタイマ , 時計 , ストップの各モード )
■ CPU 動作モードと消費電流
CPU 動作モードと消費電流の関係を図 6.1-1 に示します。
図 6.1-1 CPU 動作モードと消費電流
消費電流
数10mA
CPU
動作モード
PLLクロックモード
4逓倍クロック
3逓倍クロック
2逓倍クロック
1逓倍クロック
PLLクロック間欠動作モード
4逓倍クロック
3逓倍クロック
2逓倍クロック
1逓倍クロック
メインクロックモード(1/2クロックモード)
メインクロック間欠動作モード
サブクロックモード
サブクロック間欠動作モード
数mA
スタンバイモード
スリープモード
タイムベースタイマモード
時計モード
数mA
低消費電力モード
ストップモード
図は,各種モードのイメージを示したもので,実際の消費電流とは異なる部分があります。
122
第 6 章 低消費電力モード
■ クロックモード
● PLL クロックモード
発振クロック (HCLK) の PLL 逓倍クロックで CPU および周辺機能を動作させるモード
です。
● メインクロックモード
発振クロック (HCLK) の 2 分周クロックで CPU および周辺機能を動作させるモードで
す。メインクロックモードでは , PLL 逓倍回路が停止します。
● サブクロックモード
サブクロック (SCLK) の 4 分周クロックで CPU および周辺機能を動作させるモードで
す。サブクロックモードでは , メインクロックおよび PLL 逓倍回路が停止します。
<参考>
クロックモードについては , 「5.4 クロックモード」を参照してください。
■ CPU 間欠動作モード
周辺機能には高速クロックを供給したまま CPU を間欠動作させ , 消費電力を低減する
モードです。CPU 間欠動作モードは , CPU がレジスタ , 内蔵メモリ , 周辺機能および外
部アクセスを行う場合 , CPU にだけ間欠クロックを入力するモードです。
123
第 6 章 低消費電力モード
■ スタンバイモード
スタンバイモードは, 低消費電力制御回路によるCPUへのクロックの供給停止 (スリー
プモード ) や , CPU と周辺機能へのクロックの供給停止 ( タイムベースタイマモード )
または発振クロックの停止 ( ストップモード ) によって消費電力を低減します。
● PLL スリープモード
PLL スリープモードは , PLL クロックモードにおいて CPU の動作クロックを停止させ
るモードで , CPU 以外は PLL クロックで動作します。
● メインスリープモード
メインスリープモードは , メインクロックモードにおいて CPU の動作クロックを停止
させるモードで , CPU 以外はメインクロックで動作します。
● サブスリープモード
サブスリープモードは , サブクロックモードにおいて CPU の動作クロックを停止させ
るモードで , CPU 以外はサブクロックの 4 分周クロックで動作します。
● タイムベースタイマモード
タイムベースタイマモードは発振クロックとタイムベースタイマ以外の動作を停止さ
せるモードで , タイムベースタイマと時計タイマ以外の機能が停止します。
● 時計モード
時計タイマのみを動作させるモードです。サブクロックのみ動作し , メインクロックお
よび PLL 逓倍回路が停止します。
● ストップモード
ストップモードは原発振を停止させるモードで , すべての機能が停止します。
<注意事項>
ストップモードでは発振クロックが停止するため , 最も低消費電力でデータを保持するこ
とができます。
クロックモードを切り換えた場合, 切換えが完了するまでは, ほかのクロッ
クモードおよび低消費電力モードへの切換えを行わないでください。切換えの完了はク
ロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照して確認してく
ださい。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換
えを行った場合 , 切り換わらない場合があります。
124
第 6 章 低消費電力モード
6.2
低消費電力制御回路のブロックダイヤグラム
低消費電力制御回路は , 次の 7 つのブロックで構成されています。
• CPU 間欠動作セレクタ
• スタンバイ制御回路
• CPU クロック制御回路
• 周辺クロック制御回路
• 端子ハイインピーダンス制御回路
• 内部リセット発生回路
• 低消費電力モード制御レジスタ (LPMCR)
■ 低消費電力制御回路のブロックダイヤグラム
図 6.2-1 に , 低消費電力制御回路のブロックダイヤグラムを示します。
図 6.2-1 低消費電力制御回路のブロックダイヤグラム
低消費電力モード制御レジスタ(LPMCR)
STP
RST
SLP
SPL
RST
TMD
CG1
CG0
予約
端子
端子ハイ
インピーダンス
制御回路
端子Hi-Z制御
内部リセット
発生回路
内部リセット
CPU間欠動作
セレクタ
間欠サイクル選択
CPUクロック
制御回路
2
ストップ,スリープ信号
スタンバイ
制御回路
割込み解除
CPUクロック
ストップ信号
マシンクロック
周辺クロック
制御回路
周辺クロック
発振安定待ち解除
クロック発生部
クロックセレクタ
発振安定
待ち時間
セレクタ
2
2
PLL逓倍回路
SCM
MCM
WS1
WS0
SCS
MCS
CS1
CS0
クロック選択レジスタ(CKSCR)
X0 端子
X1 端子
HCLK
2分周
4分周
4分周
4分周
2分周
タイムベースタイマ
4分周
サブ
クロック
発生回路
1024分周
MCLK
システム
クロック
発生回路
X0A 端子
X1A 端子
2分周
ウォッチドッグタイマへ
SCLK
HCLK: 発振クロック
MCLK: メインクロック
SCLK: サブクロック
125
第 6 章 低消費電力モード
● CPU 間欠動作セレクタ
CPU 間欠動作モードにおける , 一時停止クロック数を選択します。
● スタンバイ制御回路
CPU クロック制御回路および周辺クロック制御回路を制御し , 低消費電力モードへの
移行および解除を行います。
● CPU クロック制御回路
CPU および周辺クロック制御回路周辺機能に供給するクロックを制御する回路です。
● 周辺クロック制御回路
周辺機能に供給するクロックを制御する回路です。
● 端子ハイインピーダンス制御回路
タイムベースタイマモードおよびストップモードにおいて , 外部端子をハイインピー
ダンスにする回路です。プルアップオプションの選択された端子に対しては , ストップ
モードではプルアップ抵抗を切り離します。
● 内部リセット発生回路
内部リセット信号を発生させる回路です。
● 低消費電力モード制御レジスタ (LPMCR)
スタンバイモードへの移行 / 解除および CPU 間欠動作機能の設定などを行うレジスタ
です。
126
第 6 章 低消費電力モード
低消費電力モード制御レジスタ (LPMCR)
6.3
低消費電力モード制御レジスタ (LPMCR) は , 低消費電力モードへの移行 / 解除およ
び CPU 間欠動作モードにおける CPU クロック一時停止サイクル数の設定などを行
うレジスタです。
■ 低消費電力モード制御レジスタ (LPMCR)
図 6.3-1 に 低消費電力モード制御レジスタ (LPMCR) の構成を , 表 6.3-1 に各ビットの
機能を示します。
図 6.3-1 低消費電力モード制御レジスタ (LPMCR) の構成
アドレス bit15
0000A0H
bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
(CKSCR)
STP
R/W
SLP
SPL
RST
TMD
CG1
CG0
R/W
R/W
R/W
R/W
R/W
R/W
初期値
予約 00011000B
R/W
予約ビット
予約
書込み/読出しは動作に影響しません。
CG1 CG0 CPUクロック一時停止サイクル数選択ビット
0
0
0
1
8クロック(CPUクロック:周辺クロック=1:約3,4)
1
0
16クロック(CPUクロック:周辺クロック=1:約5,6)
1
1
32クロック(CPUクロック:周辺クロック=1:約9,10)
TMD
タイムベースタイマモードに移行
1
変化なし,ほかへの影響なし
RST
内部リセット信号発生ビット
0
3マシンサイクルの内部リセット信号を発生
1
変化なし,ほかへの影響なし
端子状態指定ビット
(時計・タイムベースタイマ・ストップモード時)
0
保持
1
ハイインピーダンス
SLP
:リード/ライト可能
:初期値
時計・タイムベースタイマモードビット
0
SPL
R/W
0クロック(CPUクロック=周辺クロック)
スリープモードビット
0
変化なし,ほかへの影響なし
1
スリープモードに移行
STP
0
1
ストップモードビット
変化なし,ほかへの影響なし
ストップモードに移行
127
第 6 章 低消費電力モード
表 6.3-1 低消費電力モード制御レジスタ (LPMCR) の各ビットの機能説明
ビット名
機 能
STP:
ストップモードビット
・ストップモードへの移行を指示するビットです。
・このビットに "1" を書き込むと , ストップモードへ移行します。
・このビットに "0" を書き込んでも意味を持ちません。
・リセット , タイムベースタイマ解除またはストップ解除で "0" にクリア
されます。
・このビットを読み出すと , 常に "0" が読み出されます。
bit6
SLP:
スリープモードビット
・スリープモードへの移行を指示するビットです。
・このビットに "1" を書き込むとスリープモードに移行します。
・このビットに "0" を書き込んでも意味を持ちません。
・リセット , スリープ解除またはストップ解除で "0" にクリアされます。
STP ビットと SLP ビットに同時に "1" を書き込んだ場合 , ストップモー
ドに移行します。
・このビットを読み出すと , 常に "0" が読み出されます。
bit5
SPL:
端子状態指定
ビット ( 時計・
タイムベースタイマ・
ストップモード時 )
・このビットはタイムベースタイマモードまたはストップモードの場合だ
け有効です。
・このビットが "0" の場合 , 外部端子のレベルを保持します。
・このビットが "1" の場合 , 外部端子をハイインピーダンスにします。
・リセットで "0" に初期化されます。
bit4
RST:
内部リセット
信号発生ビット
・このビットに "0" を書き込むと 3 マシンサイクルの内部リセット信号を
発生します。
・このビットに "1" を書き込んでも意味を持ちません。
・このビットを読み出すと , 常に "1" が読み出されます。
bit3
・時計モード , タイムベースタイマモードへの移行を指示するビットです。
・メインクロックモードまたは PLL クロックモードにおいて , このビット
に "0" を書き込むことにより , タイムベースタイマモードに移行します。
TMD:
時計・タイムベースタイマ ・サブクロック時に , このビットに "0" を書き込むことにより時計モード
モードビット
に移行します。
・リセットまたは割込み要求発生で "1" に初期化させます。
・このビットを読み出すと , 常に "1" が読み出されます。
bit7
bit2,
bit1
CG1, CG0:
CPU クロック一時停止
サイクル数選択ビット
・CPU 間欠動作機能の CPU クロックの一時停止サイクル数を設定する
ビットです。
・一命令ごとに指定サイクル数 CPU クロック供給を停止します。
・4 種類のクロック数から選択できます。
・リセットで "00B" に初期化されます。
bit0
予約:
予約ビット
書込み / 読出しは意味を持ちません。
<注意事項>
ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼用
している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した
後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" または TMD ビットを
"0" に設定してください。対象となる端子を以下に示します。
対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/
TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT
128
第 6 章 低消費電力モード
■ 低消費電力モード制御レジスタへのアクセス
低消費電力モード制御レジスタへの書込みで , 低消費電力モード ( ストップモード , ス
リープモード , タイムベースタイマモード , 時計モード ) へ遷移しますが , 低消費電力
モードへの遷移に使用する命令は表 6.3-2 の命令を使用してください。
表 6.3-2 の命令による低消費電力モード遷移命令の直後には , 必ず下記
内の命
令列を配置してください。
; 表 6.3-2 の低消費電力モード遷移命令
MOV LPMCR, #H’xx
NOP
NOP
JMP $+3
; 次の命令へのジャンプ
MOV A, #H’10
; 任意の命令
内の命令列以外が配置されるとスタンバイモード解除後の動作は保証されま
せん。
C 言語を使用して低消費電力モード制御レジスタをアクセスする場合は ,「6.8 低消費
電力モード使用上の注意」
「■ スタンバイモード遷移のための低消費電力モード制御レ
ジスタ (LPMCR) へアクセスする際の注意事項」を参照してください。
低消費電力モード制御レジスタ (LPMCR) にワード単位で書込みを行う場合は , 偶数ア
ドレスで書込みを行ってください。奇数アドレスで書込みを行うと , 誤動作の原因とな
ることがあります。
表 6.3-1 に示す以外の機能を制御する場合には , どの命令を使用してもかまいません。
● STP, SLP, TMD ビットの優先順位
ストップモード要求とスリープモード要求およびタイムベースタイマモード要求を同
時に行った場合は , 次の優先順位で要求を処理します。
ストップモード要求>タイムベースタイマモード要求>スリープモード要求
表 6.3-2 低消費電力モードへ遷移する場合に使用する命令一覧
MOV io,#imm8
MOV io,A
MOV @RLi+disp8,A
MOVW io,#imm16
MOVW io,A
MOVW @RLi+disp8,A
SETB io:bp
CLRB io:bp
MOV dir,#imm8
MOV dir,A
MOV eam,#imm8
MOV addr16,A
MOV eam,Ri
MOV eam,A
MOVW dir,#imm16
MOVW dir,A
MOVW eam,#imm16
MOVW addr16,A
MOVW eam,RWi
MOVW eam,A
SETB dir:bp
CLRB dir:bp
SETB addr16:bp
CLRB addr16:bp
129
第 6 章 低消費電力モード
6.4
CPU 間欠動作モード
CPU 間欠動作モードは , 外部バスや周辺機能を高速動作させたまま CPU を間欠動作
させることで , 消費電力を低減するモードです。
■ CPU 間欠動作モード
CPU 間欠動作モードは , レジスタ , 内蔵メモリ (ROM, RAM) , I/O, 周辺機能および外部
バスアクセスを行う場合 , CPU に供給するクロックを一命令実行ごとに一定期間停止
させ , 内部バスサイクルの起動を遅らせるモードです。周辺機能に高速の周辺クロック
を供給したまま , CPU の実行速度を下げると , 低消費電力で処理できます。
低消費電力モード制御レジスタ (LPMCR の CG1, CG0) で , CPU に供給するクロックの
一時停止サイクル数を選択します。
外部バス動作そのものは , 周辺機能と同じクロックを使用します。
CPU 間欠動作モードを使用した場合の命令実行時間の算出は , レジスタ , 内蔵メモリ ,
内蔵周辺機能および外部バスアクセスを行う場合の命令実行回数に , 一時停止サイク
ル数をかけた補正値を通常の実行時間に加えることで 求めることができます。図 6.4-1
に CPU 間欠動作時のクロックを示します。
図 6.4-1 CPU 間欠動作時のクロック
周辺クロック
CPUクロック
一時停止サイクル
1命令実行
サイクル
内部バス起動
130
第 6 章 低消費電力モード
スタンバイモード
6.5
スタンバイモードには , スリープ (PLL スリープ , メインスリープ , サブスリープ ) ,
時計 , ストップの各モードがあります。
■ スタンバイモードの動作状態
表 6.5-1 に , スタンバイモードの動作状態を示します。
表 6.5-1 スタンバイモードの動作状態
スタンバイモード
PLL
スリープモード
スリープ
モード
メイン
スリープモード
移行
メイン
サブ
マシン
条件
クロック クロック クロック
SCS="1"
MCS="0"
SLP="1"
動作
SCS="1"
動作
MCS="0"
SLP="1"
SCS="0"
停止
SLP="1"
CPU
周辺
端子
動作
動作
サブ
スリープモード
タイムベース
SCS="1"
動作
タイマモード
タイム
TMD="0"
(SPL="0")
ベース
*1
動作
停止
タイマ
タイムベース
停止
SCS="1"
モード
タイマモード
TMD="0"
(SPL="1")
SCS="0"
時計モード
停止
(SPL="0")
TMD="0"
*2
時計
停止
SCS="0"
モード
時計モード
(SPL="1")
TMD="0"
停止
ストップモード
STP="1"
ストップ (SPL="0")
停止
停止
モード
ストップモード
STP="1"
(SPL="1")
*1
: タイムベースタイマ , 時計タイマは動作します。
*2
: 時計タイマは動作します。
SPL : 低消費電力モード制御レジスタ (LPMCR) の端子状態指定ビット
SLP : 低消費電力モード制御レジスタ (LPMCR) のスリープビット
STP : 低消費電力モード制御レジスタ (LPMCR) の時計ストップビット
TMD : 低消費電力モード制御レジスタ (LPMCR) の時計・タイムベースタイマモードビット
MCS : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット
SCS : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット ( サブ )
Hi-Z : ハイインピーダンス
解除方法
保持
リセット
割込み
Hi-Z
保持
Hi-Z
保持
Hi-Z
<注意事項>
ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼用
している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した
後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" または TMD ビットを
"0" に設定してください。対象となる端子を以下に示します。
対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/
TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT
131
第 6 章 低消費電力モード
スリープモード
6.5.1
スリープモードは , CPU の動作クロックを停止させるモードで , CPU 以外は動作を
続行します。低消費電力モード制御レジスタ (LPMCR) でスリープモードへの移行を
指示すると , PLL クロックモードを設定している場合は PLL スリープモードへ移行
し , メインクロックモードを設定している場合はメインスリープモードへ , サブク
ロックモードを設定している場合はサブスリープモードへ移行します。
■ スリープモードへの移行
低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1", TMD ビットに "1", STP
ビットに "0" を書き込むと , スリープモードに移行します。スリープモードに移行する
場合 , クロック選択レジスタ (CKSCR) が MCS=0, SCS=1 であれば PLL スリープモード
に , MCS=1, SCS=1 であればメインスリープモードに , SCS=0 であればサブスリープ
モードに移行します。
<注意事項>
SLP ビットと STP ビットに同時に "1" を書き込むと , STP ビットを優先し , ストップモー
ドへ移行します。SLP ビットに "1", TMD ビットに "0" を同時に書き込むと , TMD ビット
を優先し , タイムベースタイマモードまたは時計モードに移行します。
● データ保持機能
スリープモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し
ます。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1" を書き込んだ場合に , 割
込み要求が発生している場合はスリープモードに移行しません。そのため , CPU は割
込みを受け付けない状態では次の命令を実行し , 受け付ける状態であれば即座に割込
み処理ルーチンへ分岐します。
● 端子状態
スリープモード中は , 直前の状態を保持します。
■ スリープモードの解除
低消費電力制御回路は , リセット入力または割込みの発生によってスリープモードを
解除します。
● リセットによる復帰
リセットによりメインクロックモードに初期化されます。
132
第 6 章 低消費電力モード
● 割込みによる復帰
スリープモード中に, 周辺回路などから割込みレベルが7より高い割込み要求が発生す
るとスリープモードを解除します。スリープモードの解除後は , 通常の割込み処理と同
じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレ
ベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) の設定によって , 割込み
が受け付けられる場合は , CPU は割込み処理を実行します。割込みが受け付けられな
い場合は , スリープモードを指定した命令の次の命令から処理を続行します。
図 6.5-1 に , 割込み発生によるスリープモードの解除を示します。
図 6.5-1 割込み発生によるスリープモードの解除
周辺機能の割込み
イネーブルフラグ設定
INT発生(IL<7)
スリープ解除しない
NO
スリープ解除しない
YES
YES
I=0
次の命令実行
スリープ解除する
NO
YES
ILM<IL
次の命令実行
NO
割込み実行
<注意事項>
割込み処理を実行する場合 , 通常はスリープモードを指定した命令の次の命令を実行した
後に , 割込み処理に移行します。
図 6.5-2 に , スリープモードの解除 ( 外部リセット ) を示します。
図 6.5-2 スリープモードの解除 ( 外部リセット )
RST端子
スリープモード
メインクロック
発振中
PLLクロック
発振中
CPUクロック
CPU動作
PLLクロック
停止中
スリープモード解除
リセットシーケンス
処理
リセット解除
133
第 6 章 低消費電力モード
タイムベースタイマモード
6.5.2
タイムベースタイマモードは , 原発振とタイムベースタイマ , 時計タイマ以外の動作
を停止させるモードで , タイムベースタイマと時計タイマ以外すべての機能が停止
します。
■ タイムベースタイマモードへの移行
PLL クロックモードまたはメインクロックモードの場合 (CKSCR の SCS=1) に , 低消費
電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込むと , タイムベース
タイマモードに移行します。
● データ保持機能
タイムベースタイマモードでは , アキュムレータなどの専用レジスタと内部 RAM の内
容を保持します。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込んだ場合に , 割
込み要求が発生しているときはタイムベースタイマモードに移行しません。
● 端子状態
タイムベースタイマモード中の外部端子を , 直前の状態に保持するか , ハイインピーダ
ンス状態にするかを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御で
きます。
<注意事項>
タイムベースタイマモード時に , 周辺機能とポートを兼用している端子をハイインピーダ
ンスに設定する場合は , 周辺機能の出力を禁止に設定した後 , 低消費電力モード制御レジ
スタ(LPMCR)のTMDビットを"0"に設定してください。
対象となる端子を以下に示します。
対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/
TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT
134
第 6 章 低消費電力モード
■ タイムベースタイマモードの解除
低消費電力制御回路は , リセット入力または割込みの発生でタイムベースタイマモー
ドを解除します。
● リセットによる復帰
リセットによりメインクロックモードに初期化されます。
● 割込みによる復帰
タイムベースタイマモード中に周辺回路などから割込みレベルが "7" より高い割込み
要求が発生すると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ) , 低消費電
力制御回路はタイムベースタイマモードを解除します。タイムベースタイマモードの
解除後は , 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ
(CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM) および割込み制御レジス
タ (ICR) の設定により割込みが受け付けられる場合は , 割込み処理を実行します。割込
みが受け付けられない場合は , タイムベースタイマモードに入る前の次の命令から処
理を続行します。
<注意事項>
割込み処理を実行する場合 , 通常はタイムベースタイマモードを指定した命令の次の命令
を実行した後に , 割込み処理に移行します。ただし , タイムベースタイマモードへの移行
と外部バスホールド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処
理に移行することがあります。
図 6.5-3 に , タイムベースタイマモードからの復帰動作を示します。
図 6.5-3 タイムベースタイマモードの解除 ( 外部リセット )
RST端子
タイムベース
タイマモード
メインクロック
発振中
PLLクロック
発振安定待ち
CPUクロック
メインクロック
CPU動作
停止中
リセットシーケンス
発振中
PLLクロック
処理
リセット解除
タイムベースタイマモード解除
135
第 6 章 低消費電力モード
時計モード
6.5.3
時計モードは , サブクロックと時計タイマ以外の動作を停止させるモードで , チップ
のほぼ全機能が停止します。
MB90F423GC, MB90F428GC, MB90423GC, MB90427GC, MB90428GC のみで使
用可能なモードです。
■ 時計モードへの移行
サブクロックモード時 (CKSCR:SCS=0) に , 低消費電力モード制御レジスタ (LPMCR)
の TMD ビットに "0" を書き込むことにより , 時計モードに移行します。
● データ保持機能
時計モードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持しま
す。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を設定した場合に , 割
込み要求が発生している場合は時計モードに移行しません。
● 端子状態
時計モード中の外部端子を , 直前の状態に保持するか , ハイインピーダンス状態にする
かを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。
<注意事項>
時計モード時に , 周辺機能とポートを兼用している端子をハイインピーダンスに設定する
場合は , 周辺機能の出力を禁止に設定した後 , 低消費電力モード制御レジスタ (LPMCR) の
TMD ビットを "0" に設定してください。対象となる端子を以下に示します。
対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/
TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT
136
第 6 章 低消費電力モード
■ 時計モードの解除
低消費電力制御回路は , リセット入力または割込みの発生で時計モードを解除します。
● リセットによる復帰
リセット要因による時計モードの解除の場合は , 時計モードを解除した上で , 発振安定
待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過後実行さ
れます。
● 割込みによる復帰
時計モード中に周辺回路などから割込みレベルが "7" より高い割込み要求が発生する
と ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ) , 低消費電力制御回路は時
計モードを解除し , 即座にサブクロックモードに移行します。サブクロックモードに移
行後は , 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ
(CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM) および割込み制御レジス
タ (ICR) を設定して割込みが受け付けられる場合は , 割込み処理を実行します。割込み
が受け付けられない場合は , 時計モードに入る前の次の命令から処理を続行します。
<注意事項>
割込み処理を実行する場合 , 通常は時計モードを指定した命令の次の命令を実行した後に ,
割込み処理に移行します。
図 6.5-4 に , 時計モードの解除 ( 外部リセット ) を示します。
図 6.5-4 時計モードの解除 ( 外部リセット )
RST端子
時計モード
メインクロック
発振安定待ち
PLLクロック
停止中
サブクロック
発振中
CPUクロック
CPU動作
発振中
メインクロック
停止中
リセット
シーケンス
処理
リセット解除
時計モード解除
137
第 6 章 低消費電力モード
ストップモード
6.5.4
ストップモードは , 原発振を停止させるモードで , すべての機能が停止します。した
がって , 最も低消費電力でデータを保持することができます。
■ ストップモードへの移行
低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を書き込むと , ストップ
モードに移行します。
● データ保持機能
ストップモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し
ます。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を設定した場合に , 割込
み要求が発生しているときはストップモードに移行しません。
● 端子状態の設定
ストップモード中の外部端子を , 直前の状態に保持するか , ハイインピーダンス状態に
するかを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。
<注意事項>
ストップモード時に , 周辺機能とポートを兼用している端子をハイインピーダンスに設定
する場合は , 周辺機能の出力を禁止に設定した後 , 低消費電力モード制御レジスタ
(LPMCR) の STP ビットを "1" に設定してください。対象となる端子を以下に示します。
対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/
TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT
138
第 6 章 低消費電力モード
■ ストップモードの解除
低消費電力制御回路は , リセット入力または割込みの発生によりストップモードを解
除します。ストップモードから復帰する場合は , 発振クロック (HCLK) およびサブク
ロック (SCLK) が停止しているため, メインクロック発振安定時間またはサブクロック
発振安定待ち時間を経て , ストップモードが解除されます。
● リセットによる復帰
リセット要因によるストップモード解除の場合は , ストップモードを解除した上で , 発
振安定待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過後
実行されます。
● 割込みによる復帰
ストップモード中に周辺回路などから割込みレベルが "7" より高い割込み要求が発生
すると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ) , 低消費電力制御回路
はストップモードを解除します。ストップモードの解除後は , クロック選択レジスタ
(CKSCR) の WS1, WS0 ビットで指定されたメインクロックの発振安定待ち時間を経過
した後で , 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ
(CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM) および割込み制御レジス
タ (ICR) を設定して割込みが受け付けられる場合は割込み処理を実行します。割込み
が受け付けられない場合は , ストップモードに入る前の次の命令から処理を続行しま
す。
<注意事項>
• 割込み処理を実行する場合 , 通常はストップモードを指定した命令の次の命令を実行
した後に , 割込み処理に移行します。ただし , ストップモードへの移行と外部バスホー
ルド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行す
ることがあります。
• PLL ストップモード中は , メインクロックおよび PLL 逓倍回路が停止しているため ,
PLLストップモードから復帰する場合は , メインクロック発振安定待ち時間および PLL
クロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間
は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設
定された値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待
ち時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットには , 発振安定待ち時
間の長い方に合わせて値を設定してください。ただし , PLL クロック発振安定待ち時間
は 214/HCLK 以上必要ですので , CKSCR:WS1, WS0 ビットには , "10B" または "11B" を
設定してください。
139
第 6 章 低消費電力モード
図 6.5-5 に , ストップモードの解除 ( 外部リセット ) を示します。
図 6.5-5 ストップモードの解除 ( 外部リセット )
RST端子
ストップモード
メインクロック
PLLクロック
発振安定待ち
停止中
CPUクロック
CPU動作
メインクロック
停止中
リセット解除
ストップモード解除
140
発振中
リセット
シーケンス
処理
第 6 章 低消費電力モード
状態遷移図
6.6
図 6.6-1 に , MB90420G/425G シリーズの動作状態の遷移図と , 遷移条件を示しま
す。
■ 状態遷移図
図 6.6-1 状態遷移図
電源投入
パワーオンリセット
電源電圧低下
外部リセット,ウォッチドッグタイマリセット,
CPU動作検出リセット,ソフトウェアリセット
低電圧検出リセット
*
リセット
SCS=1
発振安定待ち終了
SCS=0
発振安定待ち終了
MCS=0
メインクロック
モード
SCS=0
MCS=1
SLP=1
割込み
メインスリープモード
TMD=0
サブクロックモード
PLLクロックモード
割込み
SCS=1
SLP=1
割込み
PLLスリープモード
割込み
TMD=0
メインストップモード
割込み
発振安定待ち終了
メインクロック発振安定待ち
割込み
TMD=0
時計モード
タイマモード
STP=1
STP=1
STP=1
サブスリープモード
PLLタイムベース
メインタイムベース
タイマモード
割込み
SLP=1
PLLストップモード
割込み
発振安定待ち終了
PLLクロック発振安定待ち
サブストップモード
割込み
発振安定待ち終了
サブクロック発振安定待ち
*:MB90F423GC,MB90F428GC,MB90423GC,MB90427GC,MB90428GCのみで使用できるモードです。
141
第 6 章 低消費電力モード
■ 低消費電力モードの動作状態
表 6.6-1 に , 低消費電力モードの動作状態を示します。
表 6.6-1 低消費電力モードの動作状態
動作状態
PLL
メイン
サブ
クロック クロック クロック
動作
PLL
PLL スリープ
PLL タイムベース
タイマ *1
動作
動作
停止
停止
停止
停止
PLL 発振安定待ち
動作
動作
動作
メイン
メインタイムベース
タイマ *2
動作
動作
メインストップ
停止
停止
メイン発振安定待ち
動作
動作
動作
サブ
時計
動作
停止
停止
サブストップ
停止
サブ発振安定待ち
動作
パワーオンリセット
リセット
動作
*1:PLL クロックモード時
*2: メインクロックモード時
142
停止
動作
停止
時計
タイム
ベース
タイマ
動作
動作
クロック
ソース
動作
PLL
クロック
停止
停止
停止
動作
動作
動作
動作
停止
停止
動作
動作
動作
動作
停止
サブスリープ
周辺
動作
PLL ストップ
メインスリープ
CPU
停止
動作
停止
動作
メイン
クロック
停止
サブ
クロック
動作
メイン
クロック
停止
動作
停止
動作
停止
停止
動作
第 6 章 低消費電力モード
6.7
スタンバイモード , リセット時の端子状態
スタンバイモード , リセット時の端子の状態を , メモリアクセスモードごとに示しま
す。
■ シングルチップモード時の端子状態
表 6.7-1 に , シングルチップモード時の各端子状態について示します。
表 6.7-1 シングルチップモード時の各端子状態
スタンバイモード時
品種名
端子名
スリープ時
ストップ / 時計 /
タイムベースタイマ時
SPL=0
SPL=1
P00 ~ P07
P10 ~ P15
P36, P37
MB90V420G
P40 ~ P47
P50 ~ P57
P60 ~ P67
P70 ~ P77
P80 ~ P87
P90 ~ P91
入力不可 *4/ 出力 Hi-Z
直前の状態を
保持 *2
P00 ~ P03
P50 ~ P53
直前の状態を
保持 *2
入力遮断 *3
出力 Hi-Z
入力不可 *3/ 出力 Hi-Z
入力可 *1
( 外部割込み許可時 )
P00 ~ P07
P10 ~ P15
P36, P37
MB90V420G
以外の品種
P40 ~ P47
P50 ~ P57
P60 ~ P67
P70 ~ P77
P80 ~ P87
入力不可 *4/ 出力 Hi-Z
入力不可 *4/ 出力 Hi-Z
直前の状態を
保持 *2
直前の状態を
保持 *2
入力遮断*3/ 出力 Hi-Z
入力遮断 *3/ 出力 Hi-Z
入力遮断 *3 出力 "L"
入力遮断 *3/ 出力 Hi-Z
P90, P91
P00 ~ P03
P50 ~ P53
リセット時
入力可 *1 ( 外部割込み許可時 )
入力不可 *4/ 出力 Hi-Z
*1:入力可とは , 入力機能が可能な状態であることを意味するので , プルアップ , プルダウンオプションを選択
するかまたは外部からの入力が必要です。出力ポートとして使用している場合にはほかのポートと同じで
す。
*2:" 直前の状態を保持 " とは , このモードになる直前に出力していた状態をそのまま保持することを意味しま
す。ただし , 入力状態であった場合は入力不可となるので注意してください。
" 出力していた状態をそのまま保持 " とは , 出力のある内蔵周辺が動作中であればその値を , ポートなどと
して出力している場合にはその値をそれぞれ保持することを意味します。
*3:" 入力遮断状態では , 入力はマスクされ "L" レベルが内部に伝わります。" 出力 Hi-Z" とは端子駆動用トラ
ンジスタを駆動禁止状態にして端子をハイインピーダンスにすることを意味します。
*4:" 入力不可 " とは , 端子からすぐの入力ゲート動作は許可状態にあるが , 内部回路が動作していないので ,
端子への入力値が内部で受け付けられない状態を意味します。
143
第 6 章 低消費電力モード
<注意事項>
ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼用
している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した
後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" または TMD ビットを
"0" に設定してください。対象となる端子を以下に示します。
対象端子:P01/SOT0/INT5, P02/SCK0/INT6, P04/SOT1, P05/SCK1/TRG, P06/PPG0/
TOT1, P07/PPG1/TIN1, P10/PPG2, P11/TOT0/WOT
144
第 6 章 低消費電力モード
6.8
低消費電力モード使用上の注意
低消費電力モードを使用する場合には , 次に示す内容に関して注意が必要です。
• スタンバイモードへの移行と割込み
• スタンバイモードへ移行する場合の注意
• スタンバイモードの割込みによる解除
• ストップモード解除時
• 発振安定待ち時間
• クロックモードの切換え
• スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアク
セスする際の注意事項
■ スタンバイモードへの移行と割込み
周辺機能から CPU に対して割込み要求が発生していると , 低消費電力モード制御レジ
スタ (LPMCR:STP=1, SLP=1) または , (LPMCR:TMD=0) としても無視されるため , 各
スタンバイモードへは移行しません (割込み処理後にも , スタンバイモードへの移行は
しません ) 。この場合 , 割込みレベルが "7" より高ければ , 割込み要求が CPU に受け付
けられるかどうかには関係しません。
また , CPU が割込み処理中であっても , その割込み要求フラグビットがクリアされてお
り , 他に割込み要求がなければ , スタンバイモードへ移行することができます。
■ スタンバイモードへ移行する場合の注意
ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼
用している端子をハイインピーダンスに設定する場合は , 以下の手順に従って設定し
てください。
1) 周辺機能の出力を禁止します。
2) 低消費電力モード制御レジスタ (LPMCR) の SPL ビットを "1", STP ビットを "1"
または TMD ビットを "0" に設定します。
■ スタンバイモードの割込みによる解除
スリープ , タイムベースタイマおよびストップモード中に , 周辺機能などから割込みレ
ベルが 7 より高い割込み要求が発生すると , スタンバイモードは解除されます。これは
CPU が割込みを受け付けるかどうかには関係しません。
スタンバイモード解除後は , 通常の割込み動作として , 割込み要求に対応する割込みレ
ベル設定ビット (ICR:IL2, IL1, IL0) の優先度がインタラプトレベルマスクレジスタ
(ILM) より高く , コンディションコードレジスタの割込み許可フラグが許可 (CCR:I=1)
されている場合は , 割込み処理ルーチンへ分岐します。
割込みが受け付けられない場合は , スタンバイモードを指定した命令の次の命令から
動作を再開します。
割込み処理を実行する場合 , 通常はスタンバイモードを指定した命令の次の命令を実
行した後に , 割込み処理に移行します。
ただし , スタンバイモードに移行した場合の条件によっては , 次の命令を実行する前に
割込み処理に移行することがあります。
復帰直後に割込み処理ルーチンへ分岐させない場合は , スタンバイモード設定の前に
割込み禁止をするなどの対策が必要です。
145
第 6 章 低消費電力モード
■ ストップモード解除時
ストップモードに入る前に , 外部割込みの割込み入力要因の設定に従った入力により ,
解除することができます。入力要因として "H" レベル , "L" レベル , 立上りエッジ , 立
下りエッジが選択できます。
■ 発振安定待ち時間
● 発振クロック発振安定待ち時間
ストップモード中は , 原発振用の発振器が停止しているため , 発振安定待ち時間をとる
必要があります。発振安定待ち時間としては , クロック選択レジスタ (CKSCR) の WS1,
WS0 ビットで選択された時間をとります。WS1, WS0 ビットに "00B" を設定するのは ,
メインクロックモードの場合のみにしてください。
● PLL クロック発振安定待ち時間
メインクロックモード中は , PLL 逓倍回路が停止しているため , PLL クロックモードに
移行する場合は , PLL クロック発振安定待ち時間を確保する必要があります。PLL ク
ロック発振安定待ち時間中はメインクロックで動作します。
メインクロックモードから PLL クロックモードに切り換えた場合の PLL クロック発振
安定待ち時間は , 214/HCLK (HCLK:発振クロック ) 固定されています。
サブクロックモード中は , メインクロックおよび PLL 逓倍回路が停止しているため ,
PLL クロックモードに移行する場合は , メインクロック発振安定待ち時間および PLL
クロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間
は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定
された値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち
時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットには , 発振安定待ち時間
の長い方に合わせて値を設定してください。ただし , PLL クロック発振安定待ち時間
は 214/HCLK 以上必要ですので , CKSCR:WS1, WS0 ビットには , "10B" または "11B" を
設定してください。
PLL ストップモード中は , メインクロックおよび PLL 逓倍回路が停止しているため ,
PLLストップモードから復帰する場合は, メインクロック発振安定待ち時間およびPLL
クロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間
は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定
された値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち
時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットには , 発振安定待ち時間
の長い方に合わせて値を設定してください。ただし , PLL クロック発振安定待ち時間
は 214/HCLK 以上必要ですので , CKSCR:WS1, WS0 ビットには , "10B" または "11B" を
設定してください。
■ クロックモードの切換え
クロックモードを切り換えた場合 , 切換えが完了するまでは , 低消費電力モードへの切
換えおよびほかのクロックモードへの切換えを行わないようにしてください。切換え
の完了はクロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照し
て確認してください。切換えが完了する前に , ほかのクロックモードおよび低消費電力
モードへの切換えを行った場合 , 切り換わらない場合があります。
146
第 6 章 低消費電力モード
■ スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセ
スする際の注意事項
● アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合
• 低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設
定を行う場合は , 表 6.3-2 の命令を使用してください。
• 表 6.3-2 の命令による低消費電力モード遷移命令の直後には , 必ず下記
の命令列を配置してください。
MOV LPMCR, #H’xx
内
; 表 6.3-2 の低消費電力モード遷移命令
NOP
NOP
JMP $+3
; 次の命令へのジャンプ
MOV A, #H’10
; 任意の命令
内の命令列以外が配置されるとスタンバイモード解除後の動作は保証されま
せん。
● C 言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合
低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定
を行う場合は , 以下の (1) から (3) のいずれかの方法でアクセスしてください。
(1) スタンバイモードに遷移させる命令を関数化し, スタンバイモード遷移命令の後に
__wait_nop() のビルトイン関数を 2 個挿入してください。関数内で , スタンバイ復
帰の割込み以外の割込みが発生する可能性がある場合は, コンパイル時に最適化を
実施し ,LINK/UNLINK 命令の発生を抑止してください。
例 時計モードまたはタイムベースタイマモード遷移関数の場合
void enter_watch(){
IO_LPMCR.byte = 0x10; /* LPMCR の TMD ビットに 0 をセット */
__wait_nop();
__wait_nop();
}
(2) スタンバイモードに遷移させる命令を __asm 文で記述し , スタンバイモード遷移命
令の後に 2 個の NOP と JMP 命令を挿入してください。
例 スリープモード遷移の場合
__asm("MOV I:_IO_LPMCR, #H’58);
/* LPMCR の SLP ビットに 1 をセット */
__asm("NOP");
__asm("NOP");
__asm("JMP $+3");
/* 次の命令へのジャンプ */
(3) スタンバイモードに遷移させる命令を #pragma asm ~ #pragma endasm 間に記述し ,
スタンバイモード遷移命令の後に 2 個の NOP と JMP 命令を挿入してください。
例 ストップモード遷移の場合
#pragma asm
MOV I:_IO_LPMCR, #H’98
NOP
/* LPMCR の STP ビットに 1 をセット */
NOP
JMP $+3
#pragma endasm
/* 次の命令へのジャンプ */
147
第 6 章 低消費電力モード
148
第7章
モード設定
この章では , 動作モードとメモリアクセスモードに
ついて説明します。
7.1 モード設定
7.2 モード端子 (MD2 ~ MD0)
7.3 モードデータ
149
第 7 章 モード設定
7.1
モード設定
F2MC-16LX には , アクセス方式 , アクセス領域において , 各種のモードがあります。
リセット時のモード端子の設定と , モードフェッチされたモードデータによって各
モードが設定されます。
■ モード設定
F2MC-16LX では , アクセス方式 , アクセス領域において , 各種のモードがあり , 本モ
ジュールでは図 7.1-1 に示すような分類になっています。
図 7.1-1 モードの分類
動作モード
RUNモード
バスモード
シングルチップモード
Flash書込みモード
■ 動作モード
動作モードとは , デバイスの動作状態を制御するモードを示すもので , モード設定用端
子 (MDx) とモードデータ内の Mx ビットの内容で指定します。動作モードを選択する
ことで , 通常動作を起動することができます。
■ バスモード
バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを示す
もので , モード設定用端子 (MDx) とモードデータ内の Mx ビットの内容で指定します。
モード設定用端子 (MDx) は , リセットベクタおよびモードデータを読み出すときのバ
スモードを指定するもので , モードデータ内の Mx ビットは , 通常動作時のバスモード
を指定するものです。
■ RUN モード
RUN モードは , CPU 動作モードのことをいいます。RUN モードには , メインクロック
モードや PLL クロックモードのほかに , 各種の低消費電力モードがあります。詳細は ,
「第 6 章 低消費電力モード」を参照してください。
150
第 7 章 モード設定
モード端子 (MD2 ~ MD0)
7.2
モード端子は MD2 ~ MD0 の 3 つの外部端子で , リセットベクタとモードデータの
取込み方法を指定します。
■ モード端子 (MD2 ~ MD0)
モード端子で , リセットベクタの読出しを外部データバスとするか , 内部データバスと
するかの選択および外部データバス選択時のバス幅の選択を行います。Flash ROM 内
蔵品の場合は , 内蔵 ROM にプログラムなどを書き込むための Flash ROM 書込みモード
の指定もモード端子で行います。モード端子の設定を表 7.2-1 に示します。
表 7.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 としてください。
<注意事項>
MB90420G/425G シリーズでは , シングルチップモードのみでの使用となりますので ,
MD2, MD1, MD0 は "011" に設定してください。
151
第 7 章 モード設定
7.3
モードデータ
モードデータは , "FFFFDFH" 番地のメモリ上にあり , リセットシーケンス後の動作
を指定します。モードデータは , モードフェッチで CPU に自動的に取り込まれま
す。
■ モードデータ
リセットシーケンス実行中に , "FFFFDFH" 番地のモードデータを CPU コア内のモード
レジスタに取り込みます。CPU は , このモードデータでメモリアクセスモードを設定し
ます。モードレジスタの内容を変更できるのは , リセットシーケンスだけです。また ,
モードデータの設定は , リセットシーケンス以降に有効となります。図 7.3-1 にモード
データの構成を示します。
図 7.3-1 モードデータの構成
bit 7
6
5
4
3
2
1
0
M1
M0
0
0
0
0
0
0
モードデータ
機能拡張ビット(予約領域)
バスモード設定ビット
■ バスモード設定ビット
リセットシーケンス終了後の動作モードの指定を行うビットです。各ビットと機能の
関係は , 表 7.3-1 のようになっています。
表 7.3-1 バスモード設定ビットとその機能
M1
M0
0
0
0
1
1
0
1
1
機
能
シングルチップモード
( 設定禁止 )
<注意事項>
MB90420G/425Gシリーズでは, シングルチップモードのみでの使用となりますので, M1,
M0 は "00" に設定してください。
152
第 7 章 モード設定
シングルチップモード時のアクセス領域と物理アドレスの対応を図 7.3-2 に示します。
図 7.3-2 シングルチップモードによるアクセス領域と物理アドレスの関係
ROM
ROM
← ROMミラー機能を選択した場合
RAM
:アクセスなし
:内部アクセス
アドレスは各品種に依存します。
■ モード端子とモードデータの関係
表 7.3-2 に , モード端子とモードデータの関係を示します。
表 7.3-2 モード端子とモードデータの関係
モード
MD2
MD1
MD0
M1
M0
シングルチップモード
0
1
1
0
0
<注意事項>
MB90420G/425G シリーズはシングルチップモードのみでの使用となります。
153
第 7 章 モード設定
154
第8章
I/O ポート
この章では , I/O ポートの機能と動作について説明
します。
8.1 I/O ポート
8.2 レジスタと外部兼用端子の割当て
8.3 ポート 0
8.4 ポート 1
8.5 ポート 3
8.6 ポート 4
8.7 ポート 5
8.8 ポート 6
8.9 ポート 7
8.10 ポート 8
8.11 ポート 9
8.12 I/O ポートのプログラム例
155
第 8 章 I/O ポート
8.1
I/O ポート
I/O ポートは , 汎用入出力ポート ( パラレル I/O ポート ) として使用できます。ポー
ト数は , MB90420G/425G シリーズでは 9 ポート (58 本 ) あります。各ポートは周辺
機能入出力端子と兼用になっています。
■ I/O ポートの機能
I/O ポートは , ポートデータレジスタ (PDR) によって , CPU からのデータを I/O 端子に
出力したり , I/O 端子に入力された信号を CPU に取り込んだりする機能があります。ま
た , ポートはポート方向レジスタ (DDR) によって , I/O 端子の入出力の方向をビット単
位で任意に設定することができます。以下に各ポートの機能と , 兼用される周辺機能を
示します。
• ポート 0:
汎用入出力ポート / 周辺機能 ( 外部割込み入力端子 /UART/PPG) 兼用
• ポート 1:
汎用入出力ポート / 周辺機能 (PPG/ リロードタイマ / 時計タイマ /ICU) 兼用
• ポート 3:
汎用入出力ポート / 周辺機能 (LCD) 兼用
• ポート 4:
汎用入出力ポート / 周辺機能 (LCD) 兼用
• ポート 5:
汎用入出力ポート / 周辺機能 ( 外部割込み入力端子 /CAN/ サウンドジェネレータ ) 兼
用
• ポート 6:
汎用入出力ポート / 周辺機能 ( アナログ入力端子 ) 兼用
• ポート 7:
汎用入出力ポート / 周辺機能 ( ステッピングモータコントローラ ) 兼用
• ポート 8:
汎用入出力ポート / 周辺機能 ( ステッピングモータコントローラ ) 兼用
• ポート 9:
汎用入出力ポート / 周辺機能 (LCD) 兼用
表 8.1-1 に各ポートの機能一覧を示します。
156
第 8 章 I/O ポート
表 8.1-1 各ポートの機能一覧
ポート名
端子名
入力形式
P00/SIN0/INT4 ~
ポート 0
P07/PPG1/TIN1
ポート 1
ポート 3
ポート 4
ポート 5
ポート 6
ポート 7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
汎用入出力
ポート
P07
P06
P05
P04
P03
P02
P01
P00
PPG1
PPG0
SCK1
SOT1
SIN1
SCK0
SOT0
SIN0
TIN1
TOT1
TRG
-
INT7
INT6
INT5
INT4
-
-
P15
P14
P13
P12
P11
P10
-
-
IN0
IN1
IN2
IN3
WOT
PPG2
-
-
-
-
-
TIN0
TOT0
-
汎用入出力
ポート
P37
P36
-
-
-
-
-
-
周辺機能
CMOS
( ヒステリシス )
(Automotive
レベル *)
周辺機能
SEG13
SEG12
-
-
-
-
-
-
汎用入出力
ポート
P47
P46
P45
P44
P43
P42
P41
P40
周辺機能
SEG21
SEG20
SEG19
SEG18
SEG17
SEG16
SEG15
SEG14
P57
P56
P55
P54
P53
P52
P51
P50
SGA
SG0
RX0
TX0
INT3
INT2
INT1
INT0
-
-
-
-
-
TX1
RX1
-
汎用入出力
ポート
P67
P66
P65
P64
P63
P62
P61
P60
周辺機能
AN7
AN6
AN5
AN4
AN3
AN2
AN1
AN0
汎用入出力
ポート
P77
P76
P75
P74
P73
P72
P71
P70
汎用入出力
CMOS ポート
P50/INT0 ~
P57/SGA
周辺機能
アナログ・CMOS
( ヒステリシス )
(Automotive
レベル *)
P70/PWM1P0 ~
P77/PWM2M1
CMOS
P80/PWM1P2 ~ ( ヒステリシス )
ポート 8
(Automotive
P87/PWM2M3
レベル *)
ポート 9
bit7
汎用入出力
ポート
P40/SEG14 ~
P47/SEG21
P60/AN0 ~
P67/AN7
機能
周辺機能
P10/PPG2 ~
P15/IN0
P36/SEG12 ~
P37/SG13
出力形
式
P90/SEG22 ~
P91/SEG23
周辺機能
汎用入出力
ポート
周辺機能
PWM2M1 PWM2P1 PWM1M1 PWM1P1 PWM2M0 PWM2P0 PWM1M0 PWM1P0
P87
P86
P85
P84
P83
P82
P81
P80
PWM2M3 PWM2P3 PWM1M3 PWM1P3 PWM2M2 PWM2P2 PWM1M2 PWM1P2
汎用入出力
ポート
-
-
-
-
-
-
P91
P90
周辺機能
-
-
-
-
-
-
SEG23
SEG22
*: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」
を参照してください。
<注意事項>
ポート 6 は , アナログ入力端子と兼用になっています。汎用ポートとして使用する場合は ,
必ず対応するアナログ入力許可レジスタ (ADER) のビットに "0" を書き込んでください。リ
セットで ADER のビットは "1" に初期化されます。
157
第 8 章 I/O ポート
8.2
レジスタと外部兼用端子の割当て
I/O ポートの設定に関連するレジスタの一覧を示します。
■ I/O ポートのレジスタ一覧
表 8.2-1 に , 各ポートのレジスタ一覧を示します。
表 8.2-1 各ポートのレジスタ一覧
リード / ライト
アドレス
初期値
ポート 0 データレジスタ (PDR0)
R/W
000000H
XXXXXXXXB
ポート 1 データレジスタ (PDR1)
R/W
000001H
--XXXXXXB
ポート 3 データレジスタ (PDR3)
R/W
000003H
XX------B
ポート 4 データレジスタ (PDR4)
R/W
000004H
XXXXXXXXB
ポート 5 データレジスタ (PDR5)
R/W
000005H
XXXXXXXXB
ポート 6 データレジスタ (PDR6)
R/W
000006H
XXXXXXXXB
ポート 7 データレジスタ (PDR7)
R/W
000007H
XXXXXXXXB
ポート 8 データレジスタ (PDR8)
R/W
000008H
XXXXXXXXB
ポート 9 データレジスタ (PDR9)
R/W
000009H
------XXB
ポート 0 方向レジスタ (DDR0)
R/W
000010H
00000000B
ポート 1 方向レジスタ (DDR1)
R/W
000011H
--000000B
ポート 3 方向レジスタ (DDR3)
R/W
000013H
00------B
ポート 4 方向レジスタ (DDR4)
R/W
000014H
00000000B
ポート 5 方向レジスタ (DDR5)
R/W
000015H
00000000B
ポート 6 方向レジスタ (DDR6)
R/W
000016H
00000000B
ポート 7 方向レジスタ (DDR7)
R/W
000017H
00000000B
ポート 8 方向レジスタ (DDR8)
R/W
000018H
00000000B
ポート 9 方向レジスタ (DDR9)
R/W
000019H
------00B
アナログ入力許可レジスタ (ADER)
R/W
00001AH
11111111B
レジスタ名
R/W:リード / ライト可能
X :不定値
- :未定義
158
第 8 章 I/O ポート
8.3
ポート 0
ポート 0 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と
ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして
の機能を中心に説明します。ポート 0 の構成 , 端子 , 端子のブロックダイヤグラム ,
レジスタを示します。
■ ポート 0 の構成
ポート 0 は , 次の 3 つの要素から構成されます。
• 汎用入出力端子 / 周辺機能入出力端子 (P00/SIN0/INT4 ~ P07/PPG1/TIN1)
• ポート 0 データレジスタ (PDR0)
• ポート 0 方向レジスタ (DDR0)
■ ポート 0 の端子
ポート 0 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし
て使用する場合は , 汎用入出力ポートとしては使用できません。表 8.3-1 に , ポート 0
の端子を示します。
表 8.3-1 ポート 0 の端子
入出力形式
ポート名
端子名
ポート機能
周辺機能
入力
ポート 0
P00/SIN0/INT4
P00
SIN0
P01/SOT0/INT5
P01
SOT0
P02/SCK0/INT6
P02
SCK0
INT6
P03/SIN1/INT7
P03
SIN1
INT7
P04/SOT1
P04
汎用
入出力
SOT1
出力
回路
形式
INT4
UART0
UART1
INT5
外部
割込み
入力
-
PPG
P05/SCK1/TRG
P05
SCK1
TRG
P06/PPG0/TOT1
P06
PPG0
P07/PPG1/TIN1
P07
PPG1
TOT1 リロード
TIN1 タイマ
PPG
CMOS
( ヒステリシス )
CMOS
(Automotive
*
レベル )
G
*: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」
を参照してください。
<注意事項>
回路形式については「1.7 入出力回路形式」を参照してください。
159
第 8 章 I/O ポート
■ ポート 0 の端子のブロックダイヤグラム
図 8.3-1 に , ポート 0 の端子のブロックダイヤグラムを示します。
図 8.3-1 ポート 0 の端子のブロックダイヤグラム
周辺機能入力
PDR
(ポートデータレジスタ)
周辺機能出力
周辺機能出力許可
PDRリード
内部データバス
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御(SPL=1)
■ ポート 0 のレジスタ
ポート 0 のレジスタには , PDR0 および DDR0 があります。各レジスタを構成するビッ
トは , ポート 0 の端子に 1 対 1 で対応しています。表 8.3-2 に , ポート 0 のレジスタと
端子の対応を示します。
表 8.3-2 ポート 0 のレジスタと端子の対応
ポート名
ポート 0
160
関連するレジスタのビットと対応する端子
PDR0, DDR0
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P07
P06
P05
P04
P03
P02
P01
P00
第 8 章 I/O ポート
ポート 0 のレジスタ (PDR0, DDR0)
8.3.1
ポート 0 のレジスタについて説明します。
■ ポート 0 のレジスタの機能
● ポート 0 データレジスタ (PDR0)
PDR0 レジスタは , 端子の状態を示します。
● ポート 0 方向レジスタ (DDR0)
DDR0 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対
応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな
ります。
<注意事項>
• 出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビッ
トが許可されている場合は , DDR0 レジスタの設定値に関係なく , 周辺機能出力端子と
なります。
• 入力端子を持つ周辺機能を使用する場合 , 各周辺機能の入力端子に対応する DDR0 レ
ジスタのビットに "0" を書き込んで , 入力ポートとしてください。
表 8.3-3 ポート 0 のレジスタの機能
レジスタ名
データ
書込み時
0
端子状態が "L"
レベル
出力ラッチに "0" を設定し ,
出力ポート時は端子に "L"
レベルを出力する
1
端子状態が "H"
レベル
出力ラッチに "1" を設定し ,
出力ポート時は端子に "H"
レベルを出力する
0
方向ラッチが "0"
出力バッファを "OFF" し ,
入力ポートにする
1
方向ラッチが "1"
出力バッファを "ON" し ,
出力ポートにする
ポート 0 データ
レジスタ (PDR0)
ポート 0 方向
レジスタ (DDR0)
読出し時
R/W
アドレス
初期値
R/W
000000H
XXXXXXXXB
R/W
000010H
00000000B
R/W:リード / ライト可能
X :不定値
161
第 8 章 I/O ポート
ポート 0 の動作説明
8.3.2
ポート 0 の動作を説明します。
■ ポート 0 の動作
● 出力ポート時の動作
対応する DDR0 レジスタのビットに "1" を書き込むと , 出力ポートになります。
出力ポート時に PDR0 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ
が保持され , そのまま端子に出力されます。
PDR0 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま
す。
<注意事項>
ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使
用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている
ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入
力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して
いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから
DDR レジスタに "1" を書き込んでください。
● 入力ポート時の動作
対応する DDR0 レジスタのビットに "0" を書き込むと , 入力ポートになります。
入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。
PDR0 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが ,
端子には出力されません。
PDR0 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。
● 周辺機能出力時の動作
周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定します。入出力
の切換えは周辺機能の出力許可ビットが優先されるので , DDR0 レジスタが "0" に設定
されているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力になりま
す。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の出力値
を知ることができます。
● 周辺機能入力時の動作
周辺機能入力と兼用のポートでは , 周辺機能の入力には , 常に端子の値が入力されてい
ます。外部からの信号を周辺機能で使用するときは , DDR0 レジスタに "0" を設定し ,
入力ポートとしてください。
162
第 8 章 I/O ポート
● リセット時の動作
CPU がリセットされると , DDR0 レジスタの値は "0" に初期化されます。このため , 出
力バッファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになりま
す。
PDR0 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用
する場合 , PDR0 レジスタに出力データをセットしてから , 対応する DDR0 レジスタを
出力に設定する必要があります。
● ストップ , タイムベースタイマモード時の動作
ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー
ド制御レジスタの端子状態指定ビット (LPMCR の SPL) が "1" にセットされていると ,
端子はハイインピーダンスになります。これは , DDR0 レジスタの値に関係なく , 強制
的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため ,
入力は固定してあります。
表 8.3-4 にポート 0 の端子状態を示します。
表 8.3-4 ポート 0 の端子状態
ストップモード ,
タイムベース
タイマモード
(SPL=1)
端子名
通常動作
スリープモード
ストップモード ,
タイムベース
タイマモード
(SPL=0)
P00/SIN0/INT4 ~
P07/PPG1/TIN1
汎用入出力
ポート
汎用入出力
ポート
汎用入出力
ポート
入力遮断 /
出力 Hi-Z
P00/SIN0/INT4 ~
P03/SIN1/INT7
( 外部割込み設定時 )
汎用入出力
ポート
汎用入出力
ポート
汎用入出力
ポート
入力可能 /
出力 Hi-Z
SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL)
Hi-Z:ハイインピーダンス
<注意事項>
ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼用
している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した
後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" または TMD ビットを
"0" に設定してください。対象となる端子を以下に示します。
対 象 端 子:P01/SOT0/INT5,P02/SCK0/INT6,P04/SOT1,P05/SCK1/TRG,P06/PPG0/
TOT1,P07/PPG1/TIN1
163
第 8 章 I/O ポート
8.4
ポート 1
ポート 1 は , 周辺機能入力兼用の汎用入出力ポートです。各端子は , 周辺機能とポー
トをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとしての
機能を中心に説明します。ポート 1 の構成 , 端子 , 端子のブロックダイヤグラム , レ
ジスタを示します。
■ ポート 1 の構成
ポート 1 は , 次の 3 つの要素から構成されます。
• 汎用入出力端子 / 外部割込み入力端子 (P10/PPG2 ~ P15/IN0)
• ポート 1 データレジスタ (PDR1)
• ポート 1 方向レジスタ (DDR1)
■ ポート 1 の端子
ポート 1 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし
て使用する場合は , 汎用入出力ポートとしては使用できません。表 8.4-1 にポート 1 の
端子を示します。
表 8.4-1 ポート 1 の端子
入出力形式
ポート名
端子名
ポート機能
周辺機能
入力
P10/PPG2
P10
PPG2 PPG
P11/TOT0/WOT P11
ポート 1
P12/TIN0/IN3
P12
P13/IN2
P13
P14/IN1
P14
P15/IN0
P15
汎用
入出力
-
出力
回路
形式
-
TOT0 リロード WOT 時計
タイマ
タイマ
TIN0
IN3
イン
IN2
-
-
プット
IN1
-
-
キャプチャ
IN0
-
-
CMOS
( ヒステリシス )
CMOS
(Automotive
*
レベル )
G
*: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」
を参照してください。
<注意事項>
回路形式については「1.7 入出力回路形式」を参照してください。
164
第 8 章 I/O ポート
■ ポート 1 の端子のブロックダイヤグラム
図 8.4-1 に , ポート 1 の端子のブロックダイヤグラムを示します。
図 8.4-1 ポート 1 の端子のブロックダイヤグラム
周辺機能入力
PDR
(ポートデータレジスタ)
周辺機能出力
周辺機能出力許可
PDRリード
内部データバス
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御(SPL=1)
■ ポート 1 のレジスタ
ポート 1 のレジスタには , PDR1 および DDR1 があります。各レジスタを構成するビッ
トは , ポート 1 の端子に 1 対 1 で対応しています。表 8.4-2 にポート 1 のレジスタと端
子の対応を示します。
表 8.4-2 ポート 1 のレジスタと端子の対応
ポート名
ポート 1
関連するレジスタのビットと対応する端子
PDR1, DDR1
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
-
-
P15
P14
P13
P12
P11
P10
165
第 8 章 I/O ポート
ポート 1 のレジスタ (PDR1, DDR1)
8.4.1
ポート 1 のレジスタについて説明します。
■ ポート 1 のレジスタの機能
● ポート 1 データレジスタ (PDR1)
PDR1 レジスタは , 端子の状態を示します。
● ポート 1 方向レジスタ (DDR1)
DDR1 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対
応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな
ります。
<注意事項>
• 出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビッ
トが許可されている場合は , DDR1 レジスタの設定値に関係なく , 周辺機能出力端子と
なります。
• 入力端子を持つ周辺機能を使用する場合 , 各周辺機能の入力端子に対応する DDR1 レ
ジスタのビットに "0" を書き込んで , 入力ポートとしてください。
表 8.4-3 ポート 1 のレジスタの機能
レジスタ名
データ
R/W:リード / ライト可能
X :不定値
- :未定義
166
書込み時
0
端子状態が
"L" レベル
出力ラッチに "0" を設定し ,
出力ポート時は端子に "L"
レベルを出力する
1
端子状態が
"H" レベル
出力ラッチに "1" を設定し ,
出力ポート時は端子に "H"
レベルを出力する
0
方向ラッチが
"0"
出力バッファを "OFF" し ,
入力ポートにする
1
方向ラッチが
"1"
出力バッファを "ON" し ,
出力ポートにする
ポート 1 データ
レジスタ (PDR1)
ポート 1 方向
レジスタ (DDR1)
読出し時
R/W
アドレス
初期値
R/W
000001H
--XXXXXXB
R/W
000011H
--000000B
第 8 章 I/O ポート
ポート 1 の動作説明
8.4.2
ポート 1 の動作を説明します。
■ ポート 1 の動作
● 出力ポート時の動作
対応する DDR1 レジスタのビットを "1" にすると , 出力ポートになります。
出力ポート時に PDR1 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ
が保持され , そのまま端子に出力されます。
PDR1 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま
す。
<注意事項>
ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使
用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている
ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入
力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して
いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから
DDR レジスタを出力にセットしてください。
● 入力ポート時の動作
対応する DDR1 レジスタのビットに "0" を書き込むと , 入力ポートになります。
入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。
PDR1 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが ,
端子には出力されません。
PDR1 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。
● 周辺機能出力時の動作
周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定を行います。入
出力の切換えは周辺機能の出力許可ビットが優先されるので , DDR1 レジスタに "0" が
書き込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力に
なります。周辺機能の出力を許可したときでも端子の値の読出しは可能なため , 周辺機
能の出力値を読み出すことができます。
● 周辺機能入力時の動作
周辺機能入力と兼用のポートでは , 周辺機能の入力には , 常に端子の値が入力されてい
ます。外部からの信号を周辺機能で使用するときは , DDR1 レジスタに "0" を書き込ん
で , 入力ポートとしてください。
167
第 8 章 I/O ポート
● リセット時の動作
CPU がリセットされると , DDR1 レジスタの値はクリアされます。このため , 出力バッ
ファはすべて "OFF" ( 入力ポート ) となり , また , プルアップ抵抗もカットされるため , 端
子はハイインピーダンスになります。
PDR1 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用
する場合 , PDR1 レジスタに出力データを書き込んでから , 対応する DDR1 レジスタに
"1" を書き込んでください。
● ストップ , タイムベースタイマモード時の動作
ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー
ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると ,
端子はハイインピーダンスになります。これは , DDR1 レジスタの値に関係なく , 強制
的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため ,
入力は固定してあります。
表 8.4-4 に , ポート 1 の端子状態を示します。
表 8.4-4 ポート 1 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベース
タイマモード
(SPL=0)
P10/PPG2 ~
P15/IN0
汎用入出力
ポート
汎用入出力
ポート
汎用入出力
ポート
ストップモード ,
タイムベース
タイマモード
(SPL=1)
入力遮断 /
出力 Hi-Z
SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL)
Hi-Z:ハイインピーダンス
<注意事項>
ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼用
している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した
後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビットを "1" または TMD ビットを
"0" に設定してください。対象となる端子を以下に示します。
対象端子:P10/PPG2,P11/TOT0/WOT
168
第 8 章 I/O ポート
8.5
ポート 3
ポート 3 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と
ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして
の機能を中心に説明します。ポート 3 の構成 , 端子 , 端子のブロックダイヤグラム ,
レジスタを示します。
■ ポート 3 の構成
ポート 3 は , 次の 3 つの要素から構成されます。
• 汎用入出力端子 / 周辺機能入出力端子 (P36/SEG12, P37/SEG13)
• ポート 3 データレジスタ (PDR3)
• ポート 3 方向レジスタ (DDR3)
■ ポート 3 の端子
ポート 3 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし
て使用する場合は , 汎用入出力ポートとしては使用できません。表 8.5-1 に , ポート 3
の端子を示します。
表 8.5-1 ポート 3 の端子
入出力形式
ポート名
端子名
ポート 3
ポート機能
P36/SEG12
P36
P37/SEG13
P37
汎用
入出力
入力
出力
回路
形式
CMOS
( ヒステリシス )
(Automotive レベル *)
CMOS
E
周辺機能
SEG12
SEG13
LCDC
*: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」
を参照してください。
<注意事項>
回路形式については「1.7 入出力回路形式」を参照してください。
169
第 8 章 I/O ポート
■ ポート 3 の端子のブロックダイヤグラム
図 8.5-1 に , ポート 3 の端子のブロックダイヤグラムを示します。
図 8.5-1 ポート 3 の端子のブロックダイヤグラム
周辺機能出力
PDR
(ポートデータレジスタ)
周辺機能出力許可
PDRリード
内部データバス
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御(SPL=1)
またはLCD出力許可
■ ポート 3 のレジスタ
ポート 3 のレジスタには , PDR3 および DDR3 があります。各レジスタを構成するビッ
トは , ポート 3 の端子に 1 対 1 で対応しています。表 8.5-2 にポート 3 のレジスタと端
子の対応を示します。
表 8.5-2 ポート 3 のレジスタと端子の対応
ポート名
ポート 3
170
関連するレジスタのビットと対応する端子
PDR3, DDR3
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P37
P36
-
-
-
-
-
-
第 8 章 I/O ポート
ポート 3 のレジスタ (PDR3, DDR3)
8.5.1
ポート 3 のレジスタについて説明します。
■ ポート 3 のレジスタの機能
● ポート 3 データレジスタ (PDR3)
PDR3 レジスタは , 端子の状態を示します。
● ポート 3 方向レジスタ (DDR3)
DDR3 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対
応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな
ります。
<注意事項>
出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビットが
許可されている場合は , DDR3 レジスタの設定値に関係なく , 周辺機能出力端子となりま
す。
表 8.5-3 ポート 3 のレジスタの機能
レジスタ名
データ
書込み時
端子状態が
"L" レベル
出力ラッチに "0" を設定し ,
出力ポート時は端子に "L"
レベルを出力する
1
端子状態が
"H" レベル
出力ラッチに "1" を設定し ,
出力ポート時は端子に "H"
レベルを出力する
0
方向ラッチ
が "0"
出力バッファを "OFF" し ,
入力ポートにする
1
方向ラッチ
が "1"
出力バッファを "ON" し , 出
力ポートにする
0
ポート 3 データ
レジスタ (PDR3)
ポート 3 方向
レジスタ (DDR3)
読出し時
R/W
アドレス
初期値
R/W
000003H
XX------B
R/W
000013H
00------B
R/W:リード / ライト 可能
X :不定値
- :未定義
171
第 8 章 I/O ポート
ポート 3 の動作説明
8.5.2
ポート 3 の動作を説明します。
■ ポート 3 の動作
● 出力ポート時の動作
対応する DDR3 レジスタのビットに "1" を書き込むと , 出力ポートになります。
出力ポート時に PDR3 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ
が保持され , そのまま端子に出力されます。
PDR3 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま
す。
<注意事項>
ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使
用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている
ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入
力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して
いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから
DDR レジスタを出力にセットしてください。
● 入力ポート時の動作
対応する DDR3 レジスタのビットに "0" を書き込むと , 入力ポートになります。
入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。
PDR3 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが ,
端子には出力されません。
PDR3 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。
● 周辺機能出力時の動作
周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定します。入出力
の切換えは周辺機能の出力許可ビットが優先されるので , DDR3 レジスタに "0" が書き
込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力になり
ます。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の出力
値を知ることができます。
● リセット時の動作
CPU がリセットされると , DDR3 レジスタの値はクリアされます。このため , 出力バッ
ファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになります。
PDR3 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用
する場合 , PDR3 レジスタに出力データを書き込んでから , 対応する DDR3 レジスタに
"1" を書き込んでください。
172
第 8 章 I/O ポート
● ストップ , タイムベースタイマモード時の動作
ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー
ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると ,
端子はハイインピーダンスになります。これは , DDR3 レジスタの値に関係なく , 強制
的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため ,
入力は固定してあります。
表 8.5-4 に , ポート 3 の端子状態を示します。
表 8.5-4 ポート 3 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベース
タイマモード
(SPL=0)
P36/SEG12 ,
P37/SEG13
汎用入出力
ポート
汎用入出力
ポート
汎用入出力
ポート
ストップモード ,
タイムベース
タイマモード
(SPL=1)
入力遮断 /
出力 Hi-Z
SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL)
Hi-Z:ハイインピーダンス
173
第 8 章 I/O ポート
8.6
ポート 4
ポート 4 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と
ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして
の機能を中心に説明します。ポート 4 の構成 , 端子 , 端子のブロックダイヤグラム , レ
ジスタを示します。
■ ポート 4 の構成
ポート 4 は , 次の 3 つの要素から構成されます。
• 汎用入出力端子 / 周辺機能入出力端子 (P40/SEG14 ~ P47/SEG21)
• ポート 4 データレジスタ (PDR4)
• ポート 4 方向レジスタ (DDR4)
■ ポート 4 の端子
ポート 4 の入出力端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力
端子として使用する場合 , 汎用入出力ポートとして使用できません。表 8.6-1 にポート
4 の端子を示します。
表 8.6-1 ポート 4 の端子
入出力形式
ポート名
端子名
ポート機能
入力
ポート 4
P40/SEG14
P40
SEG14
P41/SEG15
P41
SEG15
P42/SEG16
P42
SEG16
P43/SEG17
P43
SEG17
P44/SEG18
P44
P45/SEG19
P45
SEG19
P46/SEG20
P46
SEG20
P47/SEG21
P47
SEG21
汎用
入出力
出力
回路
形式
CMOS
E
周辺機能
SEG18
LCDC
CMOS
( ヒステリシス )
(Automotive
レベル *)
*: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」
を参照してください。
<注意事項>
回路形式については「1.7 入出力回路形式」を参照してください。
174
第 8 章 I/O ポート
■ ポート 4 の端子のブロックダイヤグラム
図 8.6-1 に , ポート 4 の端子のブロックダイヤグラムを示します。
図 8.6-1 ポート 4 の端子のブロックダイヤグラム
周辺機能出力
PDR
(ポートデータレジスタ)
周辺機能出力許可
PDRリード
内部データバス
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御(SPL=1)
またはLCD出力許可
<注意事項>
周辺機能の出力許可ビットを許可すると , DDR4 レジスタの値にかかわらず強制的に周辺
機能の出力端子となります。
■ ポート 4 のレジスタ
ポート 4 のレジスタには , PDR4 および DDR4 があります。各レジスタを構成するビッ
トは , ポート 4 の端子に 1 対 1 で対応しています。表 8.6-2 にポート 4 のレジスタと端
子の対応を示します。
表 8.6-2 ポート 4 のレジスタと端子の対応
ポート名
ポート 4
関連するレジスタのビットと対応する端子
PDR4, DDR4
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P47
P46
P45
P44
P43
P42
P41
P40
175
第 8 章 I/O ポート
ポート 4 のレジスタ (PDR4, DDR4)
8.6.1
ポート 4 のレジスタについて説明します。
■ ポート 4 のレジスタの機能
● ポート 4 データレジスタ (PDR4)
PDR4 レジスタは , 端子の状態を示します。
● ポート 4 方向レジスタ (DDR4)
DDR4 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対
応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな
ります。
<注意事項>
出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビットが
許可されている場合は , DDR4 レジスタの設定値に関係なく , 周辺機能出力端子となりま
す。
表 8.6-3 ポート 4 のレジスタの機能
レジスタ名
データ
R/W:リード / ライト 可能
X :不定値
176
書込み時
0
出力ラッチに "0" を設定し ,
端子状態が
出力ポート時は端子に "L"
"L" レベル
レベルを出力する
1
出力ラッチに "1" を設定し ,
端子状態が
出力ポート時は端子に "H"
"H" レベル
レベルを出力する
0
方向ラッチ 出力バッファを "OFF" し ,
が "0"
入力ポートにする
1
方向ラッチ 出力バッファを "ON" し ,
が "1"
出力ポートにする
ポート 4 データ
レジスタ (PDR4)
ポート 4 方向
レジスタ (DDR4)
読出し時
R/W
アドレス
初期値
R/W
000004H
XXXXXXXXB
R/W
000014H
00000000B
第 8 章 I/O ポート
ポート 4 の動作説明
8.6.2
ポート 4 の動作を説明します。
■ ポート 4 の動作
● 出力ポート時の動作
対応する DDR4 レジスタのビットに "1" を書き込むと , 出力ポートになります。
出力ポート時に PDR4 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ
が保持され , そのまま端子に出力されます。
PDR4 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま
す。
<注意事項>
ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使
用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている
ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入
力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して
いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから
DDR レジスタを出力にセットしてください。
● 入力ポート時の動作
対応する DDR4 レジスタのビットに "0" を書き込むと , 入力ポートになります。
入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。
PDR4 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが ,
端子には出力されません。
PDR4 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。
● 周辺機能出力時の動作
周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定を行います。入
出力の切換えは周辺機能の出力許可ビットが優先されるので , DDR4 レジスタに "0" が
書き込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力に
なります。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の
出力値を知ることができます。
● リセット時の動作
CPU がリセットされると , DDR4 レジスタの値はクリアされます。このため , 出力バッ
ファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになります。
PDR4 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用
する場合 , PDR4 レジスタに出力データを書き込んでから , 対応する DDR4 レジスタに
"1" を書き込んでください。
177
第 8 章 I/O ポート
● ストップ , タイムベースタイマモード時の動作
ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー
ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると ,
端子はハイインピーダンスになります。これは , DDR4 レジスタの値に関係なく , 強制
的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため ,
入力は固定してあります。
表 8.6-4 に , ポート 4 の端子状態を示します。
表 8.6-4 ポート 4 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベース
タイマモード
(SPL=0)
P40/SEG14 ~
P47/SEG21
汎用入出力
ポート
汎用入出力
ポート
汎用入出力
ポート
ストップモード ,
タイムベース
タイマモード
(SPL=1)
入力遮断 /
出力 Hi-Z
SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL)
Hi-Z:ハイインピーダンス
178
第 8 章 I/O ポート
8.7
ポート 5
ポート 5 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と
ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして
の機能を中心に説明します。ポート 5 の構成 , 端子 , 端子のブロックダイヤグラム , レ
ジスタを示します。
■ ポート 5 の構成
ポート 5 は , 次の 3 つの要素から構成されます。
• 汎用入出力端子 / 周辺機能入力端子 (P50/INT0/ADTG ~ P57/SGA)
• ポート 5 データレジスタ (PDR5)
• ポート 5 方向レジスタ (DDR5)
■ ポート 5 の端子
ポート 5 の入出力端子は , 周辺機能入力端子と兼用になっていますので , 周辺機能入出
力端子として使用する場合 , 汎用入出力ポートとして使用できません。表 8.7-1 にポー
ト 5 の端子を示します。
表 8.7-1 ポート 5 の端子
入出力形式
ポート名
端子名
ポート機能
周辺機能
入力
ポート 5
P50/INT0/ADTG P50
INT0
P51/INT1/RX1
P51
INT1
P52/INT2/TX1
P52
INT2
P53/INT3
P53
P54/TX0
P54
P55/RX0
P55
RX0
P56/SGO/FRCK
P56
SGO
P57/SGA
P57
SGA
汎用
入出力
ADTG
外部
割込み
入力
RX1
TX1
A/D コン
バータ
CAN1
INT3
TX0
CAN0
サウン
ドジェ
ネレー
タ
-
出力
回路
形式
-
CMOS
( ヒステリシス )
CMOS
(Automotive レ
ベル *)
G
フリー
FRCK ラン
タイマ
-
*: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」
を参照してください。
<注意事項>
回路形式については「1.7 入出力回路形式」を参照してください。
179
第 8 章 I/O ポート
■ ポート 5 の端子のブロックダイヤグラム
図 8.7-1 に , ポート 5 の端子のブロックダイヤグラムを示します。
図 8.7-1 ポート 5 の端子のブロックダイヤグラム
周辺機能入力
PDR
(ポートデータレジスタ)
周辺機能出力
周辺機能出力許可
PDRリード
内部データバス
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御(SPL=1)
■ ポート 5 のレジスタ
ポート 5 のレジスタには , PDR5 および DDR5 があります。各レジスタを構成するビッ
トは , ポート 5 の端子に 1 対 1 で対応しています。表 8.7-2 に , ポート 5 のレジスタと
端子の対応を示します。
表 8.7-2 ポート 5 のレジスタと端子の対応
ポート名
ポート 5
180
関連するレジスタのビットと対応する端子
PDR5, DDR5
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P57
P56
P55
P54
P53
P52
P51
P50
第 8 章 I/O ポート
ポート 5 のレジスタ (PDR5, DDR5)
8.7.1
ポート 5 のレジスタについて説明します。
■ ポート 5 のレジスタの機能
● ポート 5 データレジスタ (PDR5)
PDR5 レジスタは , 端子の状態を示します。
● ポート 5 方向レジスタ (DDR5)
DDR5 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対
応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな
ります。
<注意事項>
• 出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビッ
トが許可されている場合は , DDR5 レジスタの設定値に関係なく , 周辺機能出力端子と
なります。
• 入力端子を持つ周辺機能を使用する場合 , 各周辺機能の入力端子に対応する DDR5 レ
ジスタのビットに "0" を書き込んで , 入力ポートとしてください。
表 8.7-3 ポート 5 のレジスタの機能
レジスタ名
データ
書込み時
0
端子状態が
"L" レベル
出力ラッチに "0" を設定し ,
出力ポート時は端子に "L"
レベルを出力する
1
端子状態が
"H" レベル
出力ラッチに "1" を設定し ,
出力ポート時は端子に "H"
レベルを出力する
0
方向ラッチが 出力バッファを "OFF" し ,
"0"
入力ポートにする
1
方向ラッチが 出力バッファを "ON" し ,
"1"
出力ポートにする
ポート 5 データ
レジスタ (PDR5)
ポート 5 方向
レジスタ (DDR5)
読出し時
R/W
アドレス
初期値
R/W
000005H
XXXXXXXXB
R/W
000015H
00000000B
R/W:リード / ライト 可能
X :不定値
181
第 8 章 I/O ポート
ポート 5 の動作説明
8.7.2
ポート 5 の動作を説明します。
■ ポート 5 の動作
● 出力ポート時の動作
対応する DDR5 レジスタのビットに "1" を書き込むと , 出力ポートになります。
出力ポート時に PDR5 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ
が保持され , そのまま端子に出力されます。
PDR5 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま
す。
<注意事項>
ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使
用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている
ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入
力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して
いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから
DDR レジスタを出力にセットしてください。
● 入力ポート時の動作
対応する DDR5 レジスタのビットに "0" を書き込むと , 入力ポートになります。
入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。
PDR5 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが ,
端子には出力されません。
PDR5 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。
● 周辺機能出力時の動作
周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定を行います。入
出力の切換えは周辺機能の出力許可ビットが優先されるので , DDR5 レジスタに "0" が
書き込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力に
なります。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の
出力値を知ることができます。
● 周辺機能入力時の動作
周辺機能入力と兼用のポートでは , 周辺機能の入力には , 常に端子の値が入力されてい
ます。外部からの信号を周辺機能で使用するときは , DDR5 レジスタに "0" を設定し ,
入力ポートとしてください。
182
第 8 章 I/O ポート
● リセット時の動作
CPU がリセットされると , DDR5 レジスタの値はクリアされます。このため , 出力バッ
ファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになります。
PDR5 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用
する場合 , PDR5 レジスタに出力データを書き込んでから , 対応する DDR5 レジスタに
"1" を書き込んでください。
● ストップ , タイムベースタイマモード時の動作
ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー
ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると ,
端子はハイインピーダンスになります。これは , DDR5 レジスタの値に関係なく , 強制
的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため ,
入力は固定してあります。
表 8.7-4 に , ポート 5 の端子状態を示します。
表 8.7-4 ポート 5 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベース
タイマモード
(SPL=0)
P50/INT0/ADTG ~
P57/SGA
汎用入出力
ポート
汎用入出力
ポート
汎用入出力
ポート
入力遮断 /
出力 Hi-Z
P50/INT0 ~
P53/INT3
( 外部割込み設定時 )
汎用入出力
ポート
汎用入出力
ポート
汎用入出力
ポート
入力可能 /
出力 Hi-Z
ストップモード ,
タイムベース
タイマモード
(SPL=1)
SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL)
Hi-Z:ハイインピーダンス
183
第 8 章 I/O ポート
8.8
ポート 6
ポート 6 は , A/D コンバータのアナログ入力兼用の汎用入出力ポートです。各端子
は , アナログ入力とポートをビット単位で切り換えて使用できます。ここでは , 汎用
入出力ポートとしての機能を中心に説明します。ポート 6 の構成 , 端子 , 端子のブ
ロックダイヤグラム , レジスタを示します。
■ ポート 6 の構成
ポート 6 は , 次の 4 つの要素から構成されます。
• 汎用入出力端子 / アナログ入力端子 (P60/AN0 ~ P67/AN7)
• ポート 6 データレジスタ (PDR6)
• ポート 6 方向レジスタ (DDR6)
• アナログ入力許可レジスタ (ADER)
■ ポート 6 の端子
ポート 6 の入出力端子は , アナログ入力端子と兼用になっています。アナログ入力を使
用する場合 , 汎用入出力ポートとしては使用できません。また , 汎用ポートとして使用
するときは , アナログ入力端子として使用しないでください。表 8.8-1 に , ポート 6 の
端子を示します。
表 8.8-1 ポート 6 の端子
入出力形式
ポート名
端子名
ポート機能
入力
ポート 6
P60/AN0
P60
AN0
アナログ入力 0
P61/AN1
P61
AN1
アナログ入力 1
P62/AN2
P62
AN2
アナログ入力 2
P63/AN3
P63
AN3
アナログ入力 3
P64/AN4
P64
AN4
アナログ入力 4
P65/AN5
P65
AN5
アナログ入力 5
P66/AN6
P66
AN6
アナログ入力 6
P67/AN7
P67
AN7
アナログ入力 7
汎用
入出力
出力
回路
形式
CMOS
F
周辺機能
CMOS
( ヒステリシス )
(Automotive
レベル *)
*: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」
を参照してください。
<注意事項>
回路形式については「1.7 入出力回路形式」を参照してください。
184
第 8 章 I/O ポート
■ ポート 6 の端子のブロックダイヤグラム
図 8.8-1 に , ポート 6 の端子のブロックダイヤグラムを示します。
図 8.8-1 ポート 6 の端子のブロックダイヤグラム
ADER
PDR
(ポートデータレジスタ)
アナログ入力
PDRリード
内部データバス
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御(SPL=1)
<注意事項>
入力ポートとして使用する端子は , 対応する DDR6 レジスタのビットに "0" を書き込んで ,
かつ , ADER レジスタの対応するビットに "0" を書き込んでください。
アナログ入力端子として使用する端子は , 対応する DDR6 レジスタのビットに "0" を書き
込んで , かつ , ADER レジスタのビットに "1" を書き込んでください。このときの PDR6
レジスタの読出し値は "0" になります。
■ ポート 6 のレジスタ
ポート 6 のレジスタには , PDR6, DDR6 および ADER があります。各レジスタを構成
するビットは , ポート 6 の端子に 1 対 1 で対応しています。表 8.8-2 に , ポート 6 のレ
ジスタと端子の対応を示します。
表 8.8-2 ポート 6 のレジスタと端子の対応
ポート名
ポート 6
関連するレジスタのビットと対応する端子
PDR6, DDR6, ADER
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P67
P66
P65
P64
P63
P62
P61
P60
185
第 8 章 I/O ポート
ポート 6 のレジスタ (PDR6, DDR6, ADER)
8.8.1
ポート 6 のレジスタについて説明します。
■ ポート 6 のレジスタの機能
● ポート 6 データレジスタ (PDR6)
PDR6 レジスタは , 端子の状態を示します。
● ポート 6 方向レジスタ (DDR6)
DDR6 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対
応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな
ります
● ADER レジスタ (ADER)
ADER レジスタは , ビットごとにポートとして使用するか , アナログ入力として使用す
るかを設定します。
端子に対応するビットに "1" を書き込むとアナログ入力になり , "0"
を書き込むと入出力ポートになります。
<注意事項>
• ポート入出力時に , 中間レベルの信号が入力されると入力リーク電流が流れますので ,
アナログ入力を行う端子は, 必ずADERの対応するビットに"1"を書き込んでください。
• リセットにより DDR6 レジスタはクリアされ , ADER レジスタはセットされて , アナロ
グ入力となります。
表 8.8-3 ポート 6 のレジスタの機能
レジスタ名
データ
読出し時
端子状態が
"L" レベル
DDR6 が "0" でハイイン
ピーダンス状態になる
DDR6 が "1" で "L" レベ
ルを出力する
1
端子状態が
"H" レベル
DDR6 が "0" でハイイン
ピーダンス状態になる
DDR6 が "1" で "H" レベ
ルを出力する
0
方向ラッチが
"0"
出力バッファを "OFF" し ,
入力ポートにする
1
方向ラッチが 出力バッファを "ON" し ,
"1"
出力ポートにする
0
ポート入出力モード
1
アナログ入力モード
0
ポート 6 データ
レジスタ (PDR6)
ポート 6 方向
レジスタ (DDR6)
アナログ入力許可
レジスタ (ADER)
R/W:リード / ライト 可能
X :不定値
186
書込み時
R/W
アドレス
初期値
R/W
000006H
XXXXXXXXB
R/W
000016H
00000000B
R/W
00001AH
11111111B
第 8 章 I/O ポート
ポート 6 の動作説明
8.8.2
ポート 6 の動作を説明します。
■ ポート 6 の動作
● 出力ポート時の動作
対応する DDR6 レジスタのビットに "1" を書き込むと , 出力ポートになります。
出力ポート時に PDR6 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ
が保持され , そのまま端子に出力されます。
PDR6 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま
す。
<注意事項>
ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使
用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている
ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入
力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して
いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから
DDR レジスタに "1" を書き込んでください。
● 入力ポート時の動作
対応する DDR6 レジスタのビットに "0" を書き込むと , 入力ポートになります。
入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。
PDR6 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが ,
端子には出力されません。
PDR6 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。
● アナログ入力時の動作
アナログ入力として使用するには, アナログ入力端子に対応するADERレジスタのビッ
トに "1" を書き込んでください。これによって , 汎用ポートとしての動作が禁止され ,
アナログ入力端子として使用できるようになります。この状態で PDR6 をリードする
と , 読出し値は "0" となります。
● リセット時の動作
CPU がリセットされると , DDR6 レジスタの値はクリア , ADER レジスタの値はセット
され , アナログ入力モードとなります。汎用ポートとして使用する場合には , 事前に
ADER レジスタに "0" を書き込んでポート入出力モードにしてください。
187
第 8 章 I/O ポート
● ストップ , タイムベースタイマモード時の動作
ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー
ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると ,
端子はハイインピーダンスになります。これは , 強制的に出力バッファが "OFF" とな
るためです。なお , 入力開放によるリークを防ぐため , 入力は固定してあります。表
8.8-4 にポート 6 の端子状態を示します。
表 8.8-4 ポート 6 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベース
タイマモード
(SPL=0)
P60/AN0 ~
P67/AN7
汎用入出力
ポート
汎用入出力
ポート
汎用入出力
ポート
ストップモード ,
タイムベース
タイマモード
(SPL=1)
入力遮断 / 出力 Hi-Z
SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL)
Hi-Z:ハイインピーダンス
188
第 8 章 I/O ポート
8.9
ポート 7
ポート 7 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と
ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして
の機能を中心に説明します。ポート 7 の構成 , 端子 , 端子のブロックダイヤグラム , レ
ジスタを示します。
■ ポート 7 の構成
ポート 7 は , 次の 3 つの要素から構成されます。
• 汎用入出力端子 / 周辺機能入出力端子 (P70/PWM1P0 ~ P77/PWM2M1)
• ポート 7 データレジスタ (PDR7)
• ポート 7 方向レジスタ (DDR7)
■ ポート 7 の端子
ポート 7 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし
て使用する場合は , 汎用入出力ポートとしては使用できません。表 8.9-1 にポート 7 の
端子を示します。
表 8.9-1 ポート 7 の端子
入出力形式
ポート名
端子名
ポート機能
入力
P70/ PWM1P0
ポート 7
P71/ PWM1M0 P71
PWM1M0
P72/ PWM2P0
PWM2P0
P72
P75/ PWM1M1 P75
PWM2M0 ステッピング
モータコント
PWM1P1
ローラ
PWM1M1
P76/ PWM2P1
PWM2P1
P74/ PWM1P1
P74
P76
P77/ PWM2M1 P77
CMOS
H
PWM1P0
P70
P73/ PWM2M0 P73
出力
回路
形式
周辺機能
汎用
入出力
CMOS
( ヒステリシス )
(Automotive レベル *)
PWM2M1
*: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」
を参照してください。
<注意事項>
回路形式については「1.7 入出力回路形式」を参照してください。
189
第 8 章 I/O ポート
■ ポート 7 の端子のブロックダイヤグラム
図 8.9-1 に , ポート 7 の端子のブロックダイヤグラムを示します。
図 8.9-1 ポート 7 の端子のブロックダイヤグラム
周辺機能出力
PDR
(ポートデータレジスタ)
周辺機能出力許可
PDRリード
内部データバ ス
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御(SPL=1)
RST
周辺機能の出力許可ビットを許可すると, DDR7レジスタの値にかかわらず強制的に周
辺機能の出力端子となります。
■ ポート 7 のレジスタ
ポート 7 のレジスタには , PDR7 および DDR7 があります。各レジスタを構成するビッ
トは , ポート 7 の端子に 1 対 1 で対応しています。表 8.9-2 に , ポート 7 のレジスタと
端子の対応を示します。
表 8.9-2 ポート 7 のレジスタと端子の対応
ポート名
ポート 7
190
関連するレジスタのビットと対応する端子
PDR7, DDR7
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P77
P76
P75
P74
P73
P72
P71
P70
第 8 章 I/O ポート
ポート 7 のレジスタ (PDR7, DDR7)
8.9.1
ポート 7 のレジスタについて説明します。
■ ポート 7 のレジスタの機能
● ポート 7 データレジスタ (PDR7)
PDR7 レジスタは , 端子の状態を示します。
● ポート 7 方向レジスタ (DDR7)
DDR7 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対
応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな
ります。
<注意事項>
出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビットが
許可されている場合は , DDR0 レジスタの設定値に関係なく , 周辺機能出力端子となりま
す。
表 8.9-3 ポート 7 のレジスタの機能
レジスタ名
ポート 7 データ
レジスタ
(PDR7)
ポート 7 方向
レジスタ
(DDR7)
データ
読出し時
書込み時
0
端子状態が
"L" レベル
出力ラッチに "0" を設定
し , 出力ポート時は端子に
"L" レベルを出力する
1
端子状態が
"H" レベル
出力ラッチに "1" を設定
し , 出力ポート時は端子に
"H" レベルを出力する
0
方向ラッチ
が "0"
出力バッファを "OFF" し ,
入力ポートにする
1
方向ラッチ
が "1"
出力バッファを "ON" し ,
出力ポートにする
R/W
アドレス
初期値
R/W
000007H
XXXXXXXXB
R/W
000017H
00000000B
R/W:リード / ライト 可能
X :不定値
191
第 8 章 I/O ポート
ポート 7 の動作説明
8.9.2
ポート 7 の動作を説明します。
■ ポート 7 の動作
● 出力ポート時の動作
対応する DDR7 レジスタのビットに "1" を書き込むと , 出力ポートになります。
出力ポート時に PDR7 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ
が保持され , そのまま端子に出力されます。
PDR7 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま
す。
<注意事項>
ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使
用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている
ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入
力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して
いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから
DDR レジスタを出力にセットしてください。
● 入力ポート時の動作
対応する DDR7 レジスタのビットに "0" を書き込むと , 入力ポートになります。
入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。
PDR7 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが ,
端子には出力されません。
PDR7 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。
● 周辺機能出力時の動作
周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定します。入出力
の切換えは周辺機能の出力許可ビットが優先されるので , DDR7 レジスタが "0" に設定
されているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力になりま
す。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の出力値
を知ることができます。
● リセット時の動作
CPU がリセットされると , DDR7 レジスタの値はクリアされます。このとき , DDR7 レ
ジスタの初期値は "0" ですが , 端子の初期値は "L" 出力になります。
PDR7 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用
する場合 , PDR7 レジスタに出力データを書き込んでから , 対応する DDR7 レジスタに
"1" を書き込んでください。
192
第 8 章 I/O ポート
<注意事項>
• 端子状態は , リセットにより "L" 出力に初期化されますが , この出力は PDR7/DDR7 レ
ジスタに関係なく出力されます。この "L" 出力をクリアしなければ , リソース出力もし
くは汎用ポートとして使用できません。リソース出力もしくは汎用ポートとして使用
する場合 , 事前に必ず DDR7 レジスタ (P70 ~ P77) へ "0" もしくは "1" を書き込んでく
ださい。
• MB90V420G の場合 , CPU がリセットされると端子はハイインピーダンスになります。
● ストップ , タイムベースタイマモード時の動作
ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー
ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると ,
端子はハイインピーダンスになります。これは , DDR7 レジスタの値に関係なく , 強制
的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため ,
入力は固定してあります。
表 8.9-4 に , ポート 7 の端子状態を示します。
表 8.9-4 ポート 7 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベース
タイマモード
(SPL=0)
P70/PWM1P0 ~
P77/PWM2M1
汎用入出力
ポート
汎用入出力
ポート
汎用入出力
ポート
ストップモード ,
タイムベース
タイマモード
(SPL=1)
入力遮断 /
出力 Hi-Z
SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL)
Hi-Z:ハイインピーダンス
193
第 8 章 I/O ポート
8.10
ポート 8
ポート 8 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と
ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして
の機能を中心に説明します。ポート 8 の構成 , 端子 , 端子のブロックダイヤグラム , レ
ジスタを示します。
■ ポート 8 の構成
ポート 8 は , 次の 3 つの要素から構成されます。
• 汎用入出力端子 / 周辺機能入出力端子 (P80/PWM1P2 ~ P87/PWM2M3)
• ポート 8 データレジスタ (PDR8)
• ポート 8 方向レジスタ (DDR8)
■ ポート 8 の端子
ポート 8 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし
て使用する場合は , 汎用入出力ポートとしては使用できません。
表 8.10-1 にポート 8 の
端子を示します。
表 8.10-1 ポート 8 の端子
入出力形式
ポート名
ポート 8
端子名
ポート機能
P80/PWM1P2
P80
PWM1P2
P81/PWM1M2
P81
PWM1M2
P82/PWM2P2
P82
PWM2P2
P83/PWM2M2
P83
PWM2M2
P84/PWM1P3
P84
P85/PWM1M3
P85
PWM1M3
P86/PWM2P3
P86
PWM2P3
P87/PWM2M3
P87
PWM2M3
汎用
入出力
入力
出力
回路
形式
CMOS
( ヒステリシス )
(Automotive
レベル *)
CMOS
H
周辺機能
PWM1P3
ステッピング
モータコント
ローラ
*: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」
を参照してください。
<注意事項>
回路形式については「1.7 入出力回路形式」を参照してください。
194
第 8 章 I/O ポート
■ ポート 8 の端子のブロックダイヤグラム
図 8.10-1 に , ポート 8 の端子のブロックダイヤグラムを示します。
図 8.10-1 ポート 8 の端子のブロックダイヤグラム
周辺機能出力
PDR
(ポートデータレジスタ)
周辺機能出力許可
PDRリード
内部データバス
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御(SPL=1)
RST
周辺機能の出力許可ビットを許可すると, DDR8レジスタの値にかかわらず強制的に周
辺機能の出力端子となります。
■ ポート 8 のレジスタ
ポート 8 のレジスタには , PDR8 および DDR8 があります。各レジスタを構成するビッ
トは , ポート 8 の端子に 1 対 1 で対応しています。表 8.10-2 に , ポート 8 のレジスタと
端子の対応を示します。
表 8.10-2 ポート 8 のレジスタと端子の対応
ポート名
ポート 8
関連するレジスタのビットと対応する端子
PDR8, DDR8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P87
P86
P85
P84
P83
P82
P81
P80
195
第 8 章 I/O ポート
ポート 8 のレジスタ (PDR8, DDR8)
8.10.1
ポート 8 のレジスタについて説明します。
■ ポート 8 のレジスタの機能
● ポート 8 データレジスタ (PDR8)
PDR8 レジスタは , 端子の状態を示します。
● ポート 8 方向レジスタ (DDR8)
DDR8 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対
応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな
ります。
<注意事項>
出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビットが
許可されている場合は , DDR0 レジスタの設定値に関係なく , 周辺機能出力端子となりま
す。
表 8.10-3 ポート 8 のレジスタの機能
レジスタ名
ポート 8 データ
レジスタ
(PDR8)
ポート 8 方向
レジスタ
(DDR8)
データ
読出し時
書込み時
0
端子状態が
"L" レベル
出力ラッチに "0" を設定
し , 出力ポート時は端子に
"L" レベルを出力する
1
端子状態が
"H" レベル
出力ラッチに "1" を設定
し , 出力ポート時は端子に
"H" レベルを出力する
0
方向ラッチ
が "0"
出力バッファを "OFF" し ,
入力ポートにする
1
方向ラッチ
が "1"
出力バッファを "ON" し ,
出力ポートにする
R/W:リード / ライト 可能
X :不定値
196
R/W
アドレス
初期値
R/W
000008H
XXXXXXXXB
R/W
000018H
00000000B
第 8 章 I/O ポート
ポート 8 の動作説明
8.10.2
ポート 8 の動作を説明します。
■ ポート 8 の動作
● 出力ポート時の動作
対応する DDR8 レジスタのビットに "1" を書き込むと , 出力ポートになります。
出力ポート時に PDR8 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ
が保持され , そのまま端子に出力されます。
PDR8 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま
す。
<注意事項>
ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使
用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている
ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入
力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して
いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから
DDR レジスタを出力にセットしてください。
● 入力ポート時の動作
対応する DDR8 レジスタのビットに "0" を書き込むと , 入力ポートになります。
入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。
PDR8 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが ,
端子には出力されません。
PDR8 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。
● 周辺機能出力時の動作
周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定します。入出力
の切換えは周辺機能の出力許可ビットが優先されるので , DDR8 レジスタに "0" が書き
込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力になり
ます。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の出力
値を知ることができます。
● リセット時の動作
CPU がリセットされると , DDR8 レジスタの値はクリアされます。このとき , DDR8 レ
ジスタの初期値は "0" ですが , 端子の初期値は "L" 出力になります。
PDR8 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用
する場合 , PDR8 レジスタに出力データを書き込んでから , 対応する DDR8 レジスタに
"1" を書き込んでください。
197
第 8 章 I/O ポート
<注意事項>
• 端子状態は , リセットにより "L" 出力に初期化されますが , この出力は PDR8/DDR8 レ
ジスタに関係なく出力されます。この "L" 出力をクリアしなければ , リソース出力もし
くは汎用ポートとして使用できません。リソース出力もしくは汎用ポートとして使用
する場合 , 事前に必ず DDR8 レジスタ (P80 ~ P87) へ "0" もしくは "1" を書き込んでく
ださい。
• MB90V420G の場合 , CPU がリセットされると端子はハイインピーダンスになります。
● ストップ , タイムベースタイマモード時の動作
ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー
ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると ,
端子はハイインピーダンスになります。これは , DDR8 レジスタの値に関係なく , 強制
的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため ,
入力は固定してあります。
表 8.10-4 に , ポート 8 の端子状態を示します。
表 8.10-4 ポート 8 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベース
タイマモード
(SPL=0)
P80/PWM1P2 ~
P87/PWM2M3
汎用入出力
ポート
汎用入出力
ポート
汎用入出力
ポート
ストップモード ,
タイムベース
タイマモード
(SPL=1)
入力遮断 /
出力 Hi-Z
SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL)
Hi-Z :ハイインピーダンス
198
第 8 章 I/O ポート
8.11
ポート 9
ポート 9 は , 周辺機能入出力兼用の汎用入出力ポートです。各端子は , 周辺機能と
ポートをビット単位で切り換えて使用できます。ここでは , 汎用入出力ポートとして
の機能を中心に説明します。ポート 9 の構成 , 端子 , 端子のブロックダイヤグラム , レ
ジスタを示します。
■ ポート 9 の構成
ポート 9 は , 次の 3 つの要素から構成されます。
• 汎用入出力端子 / 周辺機能入出力端子 (P90/SEG22, P91/SEG23)
• ポート 9 データレジスタ (PDR9)
• ポート 9 方向レジスタ (DDR9)
■ ポート 9 の端子
ポート 9 端子は , 周辺機能入出力端子と兼用になっています。周辺機能入出力端子とし
て使用する場合は , 汎用入出力ポートとしては使用できません。
表 8.11-1 にポート 9 の
端子を示します。
表 8.11-1 ポート 9 の端子
入出力形式
ポート名
端子名
ポート機能
入力
ポート 9
P90/SEG22
P90
P91/SEG23
P91
汎用
入出力
出力
回路
形式
CMOS
E
周辺機能
SEG22
SEG23
LCD コント
ローラ
CMOS
( ヒステリシス )
(Automotive レベル *)
*: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」
を参照してください。
<注意事項>
回路形式については「1.7 入出力回路形式」を参照してください。
199
第 8 章 I/O ポート
■ ポート 9 の端子のブロックダイヤグラム
図 8.11-1 に , ポート 9 の端子のブロックダイヤグラムを示します。
図 8.11-1 ポート 9 の端子のブロックダイヤグラム
周辺機能出力
PDR
(ポートデータレジスタ)
周辺機能出力許可
PDRリード
内部データバス
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御(SPL=1)
またはLCD出力許可
周辺機能の出力許可ビットを許可すると, DDR9レジスタの値にかかわらず強制的に周
辺機能の出力端子となります。
■ ポート 9 のレジスタ
ポート 9 のレジスタには , PDR9 および DDR9 があります。各レジスタを構成するビッ
トは , ポート 9 の端子に 1 対 1 で対応しています。表 8.11-2 に , ポート 9 のレジスタと
端子の対応を示します。
表 8.11-2 ポート 9 のレジスタと端子の対応
ポート名
ポート 9
200
関連するレジスタのビットと対応する端子
PDR9, DDR9
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
-
-
-
-
-
-
P91
P90
第 8 章 I/O ポート
ポート 9 のレジスタ (PDR9, DDR9)
8.11.1
ポート 9 のレジスタについて説明します。
■ ポート 9 のレジスタの機能
● ポート 9 データレジスタ (PDR9)
PDR9 レジスタは , 端子の状態を示します。
● ポート 9 方向レジスタ (DDR9)
DDR9 レジスタは , ビットごとの端子の入出力方向を設定します。ポート ( 端子 ) に対
応するビットに "1" を書き込むと出力ポートになり , "0" を書き込むと入力ポートにな
ります。
<注意事項>
出力端子を持つ周辺機能を使用する場合 , 端子に対応する各周辺機能の出力許可ビットが
許可されている場合は , DDR0 レジスタの設定値に関係なく , 周辺機能出力端子となりま
す。
表 8.11-3 に , ポート 9 のレジスタの機能を示します。
表 8.11-3 ポート 9 のレジスタの機能
レジスタ名
ポート 9 データ
レジスタ
(PDR9)
ポート 9 方向
レジスタ
(DDR9)
データ
読出し時
書込み時
端子状態が
"L" レベル
出力ラッチに "0" を設定し ,
出力ポート時は端子に "L"
レベルを出力する
1
端子状態が
"H" レベル
出力ラッチに "1" を設定し ,
出力ポート時は端子に "H"
レベルを出力する
0
方向ラッチ
が "0"
出力バッファを "OFF" し ,
入力ポートにする
1
方向ラッチ
が "1"
出力バッファを "ON" し ,
出力ポートにする
0
R/W
アドレス
初期値
R/W
000009H
------XXB
R/W
000019H
------00B
R/W:リード / ライト 可能
X :不定値
- :未定義
201
第 8 章 I/O ポート
ポート 9 の動作説明
8.11.2
ポート 9 の動作を説明します。
■ ポート 9 の動作
● 出力ポート時の動作
対応する DDR9 レジスタのビットに "1" を書き込むと , 出力ポートになります。
出力ポート時に PDR9 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータ
が保持され , そのまま端子に出力されます。
PDR9 レジスタを読み出すと , 端子の値 (PDR 内の出力ラッチと同じ値 ) が読み出せま
す。
<注意事項>
ポートデータレジスタでリードモディファイライト系命令 ( ビットセット命令など ) を使
用すると , 目的とするビットは指定した値となり , DDR レジスタで出力に設定されている
ビットは影響を受けませんが , DDR レジスタで入力に設定されているビットは , 端子の入
力値が出力ラッチに書き込まれ , 出力してしまいます。したがって , 入力として使用して
いたビットを出力に切り換える場合は , PDR レジスタに出力データを書き込んでから
DDR レジスタに "1" を書き込んでください。
● 入力ポート時の動作
対応する DDR9 レジスタのビットに "0" を書き込むと , 入力ポートになります。
入力ポート時は出力バッファが "OFF" となり , 端子はハイインピーダンスになります。
PDR9 レジスタにデータを書き込むと , PDR 内の出力ラッチにデータが保持されますが ,
端子には出力されません。
PDR9 レジスタを読み出すと , 端子のレベル値 ("L" または "H") が読み出せます。
● 周辺機能出力時の動作
周辺機能出力として使用する場合は , 周辺機能の出力許可ビットで設定します。入出力
の切換えは周辺機能の出力許可ビットが優先されるので , DDR9 レジスタに "0" が書き
込まれているビットでも , 各周辺機能の出力が許可されていれば周辺機能出力になり
ます。周辺機能の出力を許可したときでも端子の値を読み出せるので , 周辺機能の出力
値を知ることができます。
● リセット時の動作
CPU がリセットされると , DDR9 レジスタの値はクリアされます。このため , 出力バッ
ファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになります。
PDR9 レジスタは , リセットでは初期化されません。このため , 出力ポートとして使用
する場合 , PDR9 レジスタに出力データを書き込んでから , 対応する DDR9 レジスタに
"1" を書き込んでください。
202
第 8 章 I/O ポート
● ストップ , タイムベースタイマモード時の動作
ストップモードまたはタイムベースタイマモードに移行した時点で , 低消費電力モー
ド制御レジスタの端子状態指定ビット (LPMCR の SPL) に "1" が書き込まれていると ,
端子はハイインピーダンスになります。これは , DDR9 レジスタの値に関係なく , 強制
的に出力バッファが "OFF" となるためです。なお , 入力開放によるリークを防ぐため ,
入力は固定してあります。
表 8.11-4 に , ポート 9 の端子状態を示します。
表 8.11-4 ポート 9 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベース
タイマモード
(SPL=0)
P90/SEG22,
P91/SEG23
汎用入出力
ポート
汎用入出力
ポート
汎用入出力
ポート
ストップモード ,
タイムベース
タイマモード
(SPL=1)
入力遮断 /
出力 Hi-Z
SPL :低消費電力モード制御レジスタの端子状態指定ビット (LPMCR の SPL)
Hi-Z :ハイインピーダンス
203
第 8 章 I/O ポート
8.12
I/O ポートのプログラム例
I/O ポートを使ったプログラム例を示します。
■ I/O ポートのプログラム例
● 処理仕様
ポート 0, 1 で , 7 セグメント (Dp を含めると 8 セグメント ) LED をすべて点灯します。
P00 端子が LED のアノードコモン端子に , P10 ~ P17 端子がセグメント端子に対応し
ます。
図 8.12-1 に , 8 セグメント LED 接続例を示します。
図 8.12-1 8 セグメント LED 接続例
MB90420G/MB90425Gシリーズ
P10
P07
P06
P05
P04
P03
P02
P01
P00
【コーディング例】
PDR0 EQU 000000H
PDR1 EQU 000001H
DDR0 EQU 000010H
DDR1 EQU 000011H
;---------- メインプログラム ------------------------------------------------CODE
CSEG
START:
; 初期設定済み
MOV I:PDR1, #00000000B ; P10 を "L" レベルに設定 , #XXXXXXX0B
MOV I:DDR1, #11111111B ; ポート 1 を全ビット出力に設定
MOV I:PDR0, #11111111B ; ポート 0 は全ビット "1" とする
MOV I:DDR0, #11111111B ; ポート 0 を全ビット出力に設定
CODE
ENDS
;--------------------------------------------------------------------------END START
204
第9章
ウォッチドッグタイマ /
タイムベースタイマ /
時計タイマ
( サブクロック用 )
この章では , ウォッチドッグタイマ / タイムベース
タイマ / 時計タイマ ( サブクロック用 ) の機能と動
作について説明します。
9.1 ウォッチドッグタイマ / タイムベースタイマ /
時計タイマの概要
9.2 ウォッチドッグタイマ / タイムベースタイマ /
時計タイマのブロックダイヤグラム
9.3 ウォッチドッグタイマ / タイムベースタイマ /
時計タイマのレジスタ一覧
9.4 ウォッチドッグタイマ / タイムベースタイマ /
時計タイマの動作
9.5 ウォッチドッグタイマ / タイムベースタイマの
使用上の注意
9.6 ウォッチドッグタイマ / タイムベースタイマの
プログラム例
205
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
9.1
ウォッチドッグタイマ / タイムベースタイマ /
時計タイマの概要
ウォッチドッグタイマ , タイムベースタイマ , 時計タイマの回路構成は , それぞれ以
下のとおりです。
• ウォッチドッグタイマ:ウォッチドッグカウンタ , コントロールレジスタ ,
ウォッチドッグリセット回路
• タイムベースタイマ:18 ビットのタイマ , インターバルな割込みを制御する回路
• 時計タイマ:15 ビットのタイマ , インターバルな割込みを制御する回路
■ ウォッチドッグタイマ機能
ウォッチドッグタイマは , 18 ビットのタイムベースタイマまたは 15 ビットの時計タイ
マの桁上り信号をクロックソースとする 2 ビットのウォッチドッグカウンタ , コント
ロールレジスタ , ウォッチドッグリセット制御部から構成されています。起動後 , 一定
時間内にクリアされないと , CPU をリセットします。
■ タイムベースタイマ機能
タイムベースタイマは , メインクロック ( 発振クロックの 2 分周 ) に同期してカウント
アップする 18 ビットのフリーランカウンタ ( タイムベースカウンタ ) で , 4 種類のイン
ターバル時間を選択できるインターバルタイマ機能があります。また , 発振安定待ち時
間のタイマ出力やウォッチドッグタイマなどの動作クロックを供給する機能もありま
す。なお , タイムベースタイマは , CKSCR 中の MCS ビットおよび SCS ビットと関係
なく , メインクロックを使用します。
■ 時計タイマ機能
時計タイマは , ウォッチドッグタイマのクロックソース , サブクロックの発振安定待ち
時間のためのタイマ , 一定周期で割込みを発生するインターバルタイマの機能があり
ます。なお , 時計タイマは , CKSCR 中の MCS ビットおよび SCS ビットと関係なく , サ
ブクロックを使用します。
206
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
ウォッチドッグタイマ / タイムベースタイマ /
時計タイマのブロックダイヤグラム
9.2
ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラムを
示します。
■ ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム
図 9.2-1 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのブロックダイヤグラム
メインクロック
TBTC
TBC1
セレクタ
TBC0
TBR
TBIE
AND
Q
TBOF
2 11
クロック入力
2 13
15
2
タイムベースタイマ
2 18
TBTRES
211 2 13 2 15 2 18
S
R
タイムベース
割込み
WDTC
2ビットカウンタ
WT1
セレクタ
WT0
CLR
OF
ウォッチドッグ
リセット
CLR 発生回路
WTE
WDGRST
内部リセット
発生回路へ
WTC
2
SCE
AND
Q
SCM
パワーオンリセット,
サブクロック停止
S
R
WTC2
~
F MC-16LXバス WDCS
セレクタ
WTC0
WTR
WTIE
WTOF
時計
割込み
AND
Q
S
R
28
9
210
2 11
2
212
13
214
2 15
2
WTRES
210 2 13 214
215
時計タイマ
クロック入力
サブクロック
WDTC
PONR
パワーオン発生から
-
WRST
ERST
RST端子
SRST
LPMCRレジスタの
RSTビットから
207
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
9.3
ウォッチドッグタイマ / タイムベースタイマ /
時計タイマのレジスタ一覧
ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧について説
明します。
■ ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧
図 9.3-1 にウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧を
示します。
図 9.3-1 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマのレジスタ一覧
ウォッチドッグタイマ制御レジスタ
アドレス:
0000A8H
7
6
PONR
-
読出し / 書込み→
(R)
(-)
(R)
初期値→
(X)
(-)
(X)
5
4
3
2
1
0
SRST
WTE
WT1
WT0
(R)
(R)
(W)
(W)
(W)
(X)
(X)
(1)
(1)
(1)
WRST EAST
←ビット番号
WDTC
タイムベースタイマ制御レジスタ
アドレス:
0000A9H
7
6
5
4
3
2
1
0
予約
-
-
TBIE
TBOF
TBR
TBC1
TBC0
読出し / 書込み→
(-)
(-)
(-)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値→
(1)
(-)
(-)
(0)
(0)
(1)
(0)
(0)
2
1
0
←ビット番号
TBTC
ウォッチドッグタイマ制御レジスタ
アドレス:
0000AAH
208
7
6
5
4
3
WDCS
SCE
WTIE
WTOF
WTR
WTC2 WTC1 WTC0
読出し / 書込み→ (R/W)
(R)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値→
(0)
(0)
(0)
(1)
(0)
(0)
(0)
(1)
←ビット番号
WTC
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
ウォッチドッグタイマ制御レジスタ (WDTC)
9.3.1
ウォッチドッグタイマ制御レジスタ (WDTC) は , ウォッチドッグタイマ起動 , クリ
アおよびリセット要因の表示を行うレジスタです。
■ ウォッチドッグタイマ制御レジスタ (WDTC) のビット構成
図 9.3-2 にウォッチドッグタイマ制御レジスタ (WDTC) のビット構成を示します。
図 9.3-2 ウォッチドッグタイマ制御レジスタ (WDTC) のビット構成
アドレス:
0000A8H
7
6
PONR
-
読出し / 書込み→
(R)
(-)
(R)
初期値→
(X)
(-)
(X)
5
4
3
2
1
0
SRST
WTE
WT1
WT0
(R)
(R)
(W)
(W)
(W)
(X)
(X)
(1)
(1)
(1)
WRST EAST
←ビット番号
WDTC
<注意事項>
リードモディファイライト系命令によるアクセスは誤動作を引き起こしますので , これら
の命令でアクセスしないでください。
【bit7 ,bit5 ~ bit3】PONR, WRST, ERST, SRST
PONR, WRST, ERST, SRST は , リセットの要因を示すフラグです。各リセットにより
表 9.3-1 に示すように設定されます。WDTC レジスタのリード動作後に , 全ビットがク
リアされます。
これらのビットは , 読出し専用のレジスタです。
表 9.3-1 PONR, WRST, ERST, SRST ( リセットの要因ビット )
リセット要因
PONR
WRST
ERST
SRST
パワーオン
1
-
-
ウォッチドッグタイマ
△
-
1
△
△
外部端子 (RST 入力 )
△
△
1
△
RST ビット ( ソフトウェアリセット )
△
△
△
1
△:前の値を保持します。
【bit2】WTE
WTE は , ウォッチドッグタイマが停止状態のときに "0" を書き込むことによりウォッ
チドッグタイマを動作状態にします。2 回目以降の "0" の書込みではウォッチドッグタ
イマのカウンタをクリアします。"1" の書込みは何の操作もしません。
ウォッチドッグタイマは , 各種リセット要因が発生すると停止状態となります。読出し
時は "1" が読み出されます。
209
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
【bit1, bit0】WT1, WT0
WT1, WT0 は , ウォッチドッグタイマのインターバル時間を選択するビットです。
ウォッチドッグタイマ起動時に書き込まれたデータのみが有効です。ウォッチドッグ
起動時以外の書込みデータは無視されます。書込みのみが可能なビットです。
時計タイマ制御レジスタ WTC の WDCS ビットと低消費電力制御回路のクロック選択
レジスタ LPMCR の SCM ビットの論理積 (AND) の結果と , WT1, WT0 の 3 ビットで
ウォッチドッグタイマに入力するクロックを選択します。
すなわち , WDCS を "1" に設定した場合 , マシンクロックとしてメインクロックおよび
PLL クロックを選択しているときにはタイムベースタイマの出力を , サブクロックを
選択しているときには時計タイマの出力を , それぞれウォッチドッグタイマの入力ク
ロックとして選択することができます。
WT1, WT0 ビットによるインターバル時間の設定を , 表 9.3-2 に示します。
表 9.3-2 WT1, WT0 ( インターバル時間選択ビット )
インターバル時間 ( 原発振 4MHz)
WDCS・SCM
WT1
WT0
最小
最大 *
1
0
0
約 3.58ms
約 4.61ms
1
0
1
約 14.33ms
約 18.43ms
1
1
0
約 57.23ms
約 73.73ms
1
1
1
約 458.75ms
約 589.82ms
0
0
0
約 436ms
約 563ms
0
0
1
約 3.50s
約 4.50s
0
1
0
約 7.0s
約 9.0s
0
1
1
約 14.0s
約 18.0s
*:インターバルの最大値は , ウォッチドッグ動作中にタイムベースタイマまたは時計タイマ
がリセットされない場合の値です。
210
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
タイムベースタイマ制御レジスタ (TBTC)
9.3.2
タイムベースタイマ制御レジスタ (TBTC) では , タイムベースタイマの割込みを制御
し , タイムベースカウンタをクリアすることができます。
■ タイムベースタイマ制御レジスタのビット構成 (TBTC)
図 9.3-3 にタイムベースタイマ制御レジスタ (TBTC) のビット構成を示します。
図 9.3-3 タイムベースタイマ制御レジスタ (TBTC) のビット構成
アドレス:
0000A9H
予約
-
読出し / 書込み→
(-)
(-)
初期値→
(1)
(-)
(-)
7
6
5
4
3
2
1
0
-
TBIE
TBOF
TBR
TBC1
TBC0
(-)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(1)
(0)
(0)
←ビット番号
TBTC
【bit15】予約 (Reserved)
bit15 は , 予約ビットです。必ず "1" に設定してください。
【bit12】TBIE
TBIE は , タイムベースタイマによるインターバル割込みを許可するビットです。"1" の
とき割込み許可 , "0" のとき割込みを禁止します。リセットでクリアされます。読み書
き可能なビットです。
【bit11】TBOF
TBOF は , タイムベースタイマの割込み要求フラグです。TBIE ビットが "1" のときに
TBOF が "1" になると , 割込み要求を発生します。TBC1, TBC0 ビットで設定されたイ
ンターバルごとに "1" にセットされます。
TBOF ビットは , 以下の条件でクリアされます。
• "0" の書込み
• メインストップモードへの遷移
• PLL ストップモードへの遷移
• サブクロックモードからメインクロックモードへの遷移
• サブクロックモードから PLL クロックモードへの遷移
• メインクロックモードから PLL クロックモードへの遷移
• TBR ビットへの "0" 書込み
• リセット
"1" の書込みは意味がありません。
リードモディファイライト系命令における読出しの場合には , "1" が読み出されます。
<注意事項>
TBOF ビットをクリアする場合は , TBIE ビットまたはプロセッサステータス (PS) のイン
タラプトレベルマスクレジスタ (ILM) で , タイムベースタイマ割込みを禁止してから行っ
てください。
211
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
【bit10】TBR
TBR は , タイムベースタイマのカウンタを全ビット "0" にクリアするビットです。"0"
を書き込むことによりタイムベースカウンタをクリアします。"1" の書込みは意味があ
りません。読出しの場合には "1" が読み出されます。
【bit9, bit8】TBC1, TBC0
TBC1, TBC0 は , タイムベースタイマのインターバルを設定するビットです。
リセットにより "00B" に初期化されます。読み書き可能なビットです。
表 9.3-3 TBC1, TBC0 のインターバル時間とサイクル数
TBC1 TBC0 原発振 4MHz の場合のインターバル時間
212
1.024 ms
発振クロック ( 原発振 ) サイクル数
212 サイクル
0
0
0
1
4.096 ms
214 サイクル
1
0
16.384 ms
216 サイクル
1
1
131.072 ms
219 サイクル
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
時計タイマ制御レジスタ (WTC)
9.3.3
時計タイマ制御レジスタ (WTC) は , クロック信号の選択 , 割込みやインターバルの
制御 , カウンタのクリアを行います。
時計タイマは , MB90F423GC, MB90F428GC, MB90423GC, MB90427GC,
MB90428GC のみで使用できる機能です。
■ 時計タイマ制御レジスタ (WTC)
図 9.3-4 に時計タイマ制御レジスタ (WTC) のビット構成を示します。
図 9.3-4 時計タイマ制御レジスタのビット構成
アドレス:
0000AAH
7
6
5
4
3
WDCS
SCE
WTIE
WTOF
WTR
WTC2 WTC1 WTC0
読出し / 書込み→ (R/W)
(R)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値→
(0)
(0)
(0)
(1)
(0)
(0)
(0)
(1)
2
1
0
←ビット番号
WTC
【bit7】WDCS
WDCS ビットは , ウォッチドッグタイマのクロックソースを選択するビットです。"0" の
場合 , 時計タイマのクロック出力 , "1" の場合タイムベースタイマのクロック出力を ,
ウォッチドッグタイマのクロックソースとして選択します。
サブクロックモードの場合 , 必ず "0" に設定して , 時計タイマの出力を選択してくださ
い。"1" に設定した状態で , サブクロックモードへ移行した場合 , ウォッチドッグタイ
マは停止します。リセットにより "1" に初期化されます。
<注意事項>
WDCS を変更した場合は , タイムベースタイマと時計タイマが非同期で動作しているため ,
ウォッチドッグカウントが "1" カウント短くなる可能性があります。このため , WDCS を変
更する場合は , クロックモードを変更する直前でウォッチドッグタイマをいったんクリア
してください。
【bit6】SCE
サブクロックの発振安定待ち時間が経過したことを示すビットです。このビットが "0"
のとき , 発振安定時間が現在進行中であることを示しています。発振安定時間は , 214
サイクル ( サブクロック ) 固定です。パワーオンリセット時およびストップ時は "0" に
初期化されます。
【bit5】WTIE
WTIE ビットは , 時計タイマによるインターバル割込みを許可するビットです。この
ビットが "1" のとき割込み許可 , "0" のとき割込みを禁止します。リセットにより "0"
に初期化されます。読み書き可能なビットです。
213
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
【bit4】WTOF
WTOF ビットは , 時計タイマの割込み要求フラグです。WTIE ビットが "1" のとき ,
WTOF を "1" に設定すると割込み要求が発生します。WTOF ビットは , WTC2 ~ WTC0
ビットで設定したインターバルごとに "1" にセットされます。
WTOF ビットは , 以下の条件でクリアされます。
• "0" の書込み
• ストップモードへの遷移
• リセット
"1" の書込みは何の意味も持ちません。
リードモディファイライト系命令による読出しの場合には , 常に "1" が読み出されま
す。
【bit3】WTR
WTR ビットは , 時計タイマのカウンタを全ビット "0" クリアするビットです。WTR
ビットに "0" を書き込むと , クロックカウンタをクリアします。"1" の書込みは何の意
味も持ちません。常に "1" が読み出されます。
【bit2, bit1, bit0】WTC2, WTC1, WTC0
WTC2, WTC1, WTC0 は , 時計タイマのインターバルを設定するビットです。インター
バルの設定を表 9.3-4 に示します。リセットにより WTC2 ~ WTC0 ビットは "000B" に
初期化されます。読み書き可能なビットです。
WTC2 ~ WTC0 ビットを設定する場合は , WTOF ビットも同時に "0" を設定してくだ
さい。
表 9.3-4 時計タイマインターバルの選択
WTC2
WTC1
WTC0
インターバル時間*
0
0
0
31.25 ms
0
0
1
62.5 ms
0
1
0
125 ms
0
1
1
250 ms
1
0
0
500 ms
1
0
1
1.00 s
1
1
0
2.00 s
1
1
1
4.00 s
*:インターバル時間は , サブクロックが 32.768kHz の場合の値です。
214
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
ウォッチドッグタイマ / タイムベースタイマ /
時計タイマの動作
9.4
ウォッチドッグタイマ / タイムベースタイマ / 時計タイマの動作について説明しま
す。
■ 動作
● ウォッチドッグタイマ
ウォッチドッグタイマは , プログラムの暴走などにより , WDTC レジスタの WTE ビッ
トへ "0" の書込みが定められた時間内に行われなかった場合 , ウォッチドッグタイマか
らリセット要求が発生します。
● タイムベースタイマ
タイムベースタイマは , ウォッチドッグタイマのクロックソース , メインクロックおよ
び PLL クロックの発振安定時間待ちのためのタイマ機能のほか , 一定周期で割込みを
発生するインターバル割込み機能があります。
● 時計タイマ
時計タイマには , ウォッチドッグタイマのクロックソース , サブクロックの発振安定時
間待ちのためのタイマ , 一定周期で割込みを発生するインターバル割込み機能があり
ます。
215
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
9.4.1
ウォッチドッグタイマの動作
ウォッチドッグタイマは , プログラムの暴走などにより , WDTC レジスタの WTE
ビットへの "0" の書込みが定められた時間内に行われなかった場合 , ウォッチドッ
グタイマよりリセット要求が発生します。
■ ウォッチドッグタイマの起動方法
ウォッチドッグタイマの起動は , ウォッチドッグタイマの停止中に WDTC レジスタの
WTE ビットに "0" を書き込むことによって行われます。このとき , 同時にウォッチドッ
グタイマのリセット発生のインターバルを WT1, WT0 ビットにより設定します。イン
ターバルの設定は , この起動時のデータのみが有効となります。
■ ウォッチドッグタイマリセットの阻止
ウォッチドッグタイマが起動されると , プログラム中で定期的に 2 ビットのウォッチ
ドッグカウンタをクリアする必要があります。具体的には , WDTC レジスタの WTE
ビットに定期的に "0" を書き込む必要があります。ウォッチドッグカウンタは , タイム
ベースタイマの桁上り信号をクロックソースとする 2 ビットのカウンタにより構成さ
れています。したがって , タイムベースタイマがクリアされると , ウォッチドッグリ
セットの発生時間が設定より長くなることがあります。
図 9.4-1 ウォッチドッグタイマの動作
タイムベース
ウォッチドッグ
00
01
10
00
01
10
11
00
WTEライト
ウォッチドッグ起動
ウォッチドッグクリア
ウォッチドッグリセット
発生
■ ウォッチドッグ停止
ウォッチドッグタイマは , 各種リセット要因により停止します。
■ ウォッチドッグタイマのクリア
ウォッチドッグタイマは , WTE ビットへの書込みによるクリアのほかに , リセットの
発生 , スリープモード / ストップモード / 時計モードへの遷移によってクリアされます。
時計モード中は , ウォッチドッグタイマのカウンタはクリアされ , カウントを停止しま
す。
■ リセット要因の確認
リセット後ウォッチドッグタイマ制御レジスタ (WDTC) の PONR, WRST, ERST, SRST
ビットをチェックすることで , リセット要因を知ることができます。
216
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
■ ウォッチドッグタイマのインターバル時間
図 9.4-2 に , ウォッチドッグタイマのクリアのタイミングとインターバル時間の関係を
示します。インターバル時間は , ウォッチドッグタイマをクリアするタイミングによっ
て変化し , カウントクロック周期の 3.5 ~ 4.5 倍の時間を要します。
図 9.4-2 ウォッチドッグタイマのクリアタイミングとインターバル時間
[WDGタイマブロック図]
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ビットクリア
ウォッチドッグリセット発生
217
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
9.4.2
タイムベースタイマの動作
タイムベースタイマは , ウォッチドッグタイマのクロックソース , メインクロックお
よび PLL クロックの発振安定時間待ちのためのタイマ機能のほか , 一定周期で割込
みを発生するインターバル割込み機能をもっています。
■ タイムベースタイマの動作
タイムベースタイマは , メインクロックをカウントする 18 ビットのカウンタにより構
成され , メインクロックが入力されている間 , 常にカウント動作を続けます。
タイムベースカウンタは , 以下の条件によってクリアされます。
• パワーオンリセット
• メインストップモードへの遷移
• PLL ストップモードへの遷移
• メインクロックモードから PLL クロックモードへの遷移
• サブクロックモードからメインクロックモードへの遷移
• サブクロックモードから PLL クロックモードへの遷移
• TBTC レジスタの TBR ビットへの "0" 書込み
タイムベースタイマの出力を使用している , ウォッチドッグタイマとインターバル割
込み機能は , タイムベースタイマのクリアに影響されます。
■ インターバル割込み機能
タイムベースカウンタの桁上り信号により一定周期で割込みを発生します。TBTC レ
ジスタのTBC1, TBC0ビットで設定されるインターバル時間ごとにTBOFフラグをセッ
トします。このフラグのセットは , 最後にタイムベースタイマがクリアされた時間を基
準にして行われます。
メインクロックモードから PLL クロックモードに遷移した場合は , タイムベースタイ
マは PLL クロックの発振安定待ちのタイマとして使用されるため , いったんタイム
ベースタイマのクリアが行われます。
ストップモードへ遷移すると , タイムベースタイマは復帰時の発振安定時間待ちのタ
イマとして使用されるので TBOF フラグは , モード遷移と同時にクリアされます。
■ タイムベースタイマの割込み
タイムベースタイマカウンタが内部カウントクロックでカウントアップし , 選択され
たインターバルタイマ用のビットがオーバフローすると , 割込み要求フラグビット
(TBTC レジスタの TBOF ビット ) が "1" にセットされます。そのとき , 割込み要求許可
ビットを許可していると (TBTC レジスタの TBIE=1) , CPU に割込み要求 (#35) が発生
します。割込み処理ルーチンで TBOF ビットに "0" を書き込み , 割込み要求をクリアし
てください。なお , TBOF ビットは , TBIE ビットの値に関係なく , 指定したビットが
オーバフローするとセットされます。
TBOF ビットが "1" のとき , TBIE ビットを禁止から許可 ("0" → "1") にすると , 直ちに
割込み要求が発生します。
218
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
<注意事項>
割込み要求フラグビット (TBTC:TBOF) をクリアするときには , TBIE ビットまたはプロ
セッサステータス (PS) のインタラプトレベルマスクレジスタ (ILM) で , タイムベースタ
イマ割込みを禁止してから行ってください。
■ タイムベースタイマの割込みと EI2OS
表 9.4-1 に , タイムベースタイマの割込みと EI2OS を示します。
表 9.4-1 タイムベースタイマの割込みと EI2OS
割込みレベル設定レジスタ
ベクタテーブルのアドレス
割込み番号
#35 (23H)
レジスタ名
アドレス
下位
上位
バンク
ICR12
0000BCH
FFFF70H
FFFF71H
FFFF72H
EI2OS
×
×:使用不可
<注意事項>
• ICR12 はタイムベースタイマ割込みと時計タイマ ( サブクロック用 ) 割込みで共通して
います。
割込みは 2 つの用途に使用できますが , 割込みレベルは同一になります。
• タイムベースタイマでは , 拡張インテリジェント I/O サービス (EI2OS) は使用できませ
ん。
219
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
■ 発振安定待ち時間用タイマ機能
タイムベースタイマは , メインクロックおよび PLL クロックの発振安定待ち時間用のタ
イマとしても使用されます。発振安定待ち時間は , カウンタが "0" ( カウントクリア ) か
らカウントアップし , 発振安定待ち時間用のビットがオーバフローするまでの時間とな
ります。ただし , タイムベースタイマモードから PLL クロックモードへ復帰したときに
は, タイムベースタイマカウンタがクリアされないため, カウント途中からの時間になり
ます。
表 9.4-2 に, タイムベースカウンタのクリアと発振安定待ち時間について示します。
表 9.4-2 タイムベースタイマカウンタのクリア動作と発振安定待ち時間
カウンタ
クリア
TBOF
クリア
TBTC の TBR へ "0" 書込み
○
○
パワーオンリセット
○
○
メインクロック発振安定待ち時間
○
○
メインクロック発振安定待ち時間
サブストップモードの解除
×
×
サブクロック発振安定待ち時間
メインクロックモードから PLL クロック
モードへの移行 (MCS=1 → 0)
○
○
PLL クロック発振安定待ち時間
サブクロックモードからメインクロックモードへ
の移行 (SCS=0 → 1)
○
○
メインクロック発振安定待ち時間
サブクロックモードから PLL クロックモードへの
移行 (MCS=0, SCS=0 → 1)
○
○
メインクロック発振安定待ち時間
タイムベースタイマモードの解除
×
×
なし
スリープモードの解除
×
×
なし
動 作
メインストップモードの解除
PLL ストップモードの解除
○:あり
×:なし
220
発振安定待ち時間
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
時計タイマの動作
9.4.3
時計タイマには , ウォッチドッグタイマのクロックソース , サブクロックの発振安定
時間待ちのためのタイマ , 一定周期で割込みを発生するインターバル割込み機能が
あります。
■ 時計タイマの動作
時計タイマは , サブクロックをカウントクロックとする 15 ビットのカウンタにより構
成されています。サブ原発振クロックが入力されている間 , 常にカウント動作を続けま
す。時計タイマのクリアは , パワーオンリセット , ストップモードへの遷移および WTC
レジスタ中の WTR ビットへの "0" の書込みにより行われます。
<注意事項>
時計タイマカウンタの出力を使用しているウォッチドッグタイマとインターバルタイマ
には , 時計タイマカウンタのクリアの影響があります。
時計タイマ制御レジスタ (WTC) の時計タイマクリアビット (WTR) に "0" を設定して時計
タイマをクリアする場合は , WTC のオーバフロー割込み許可ビット (WTIE) に "0" を設定
し , 時計タイマの割込みを禁止した状態で行ってください。
また , 割込みを許可する前に , WTC のオーバフローフラグビット (WTOF) への "0" 設定に
よる割込み要求のクリアを行ってください。
■ 時計タイマのインターバル割込み機能
インターバル割込み機能は , 時計タイマの桁上り信号により一定周期で割込みを発生
します。WTC レジスタ中の WTC2 ~ WTC0 ビットで設定される通常のインターバル
ごとに WTOF フラグをセットします。このフラグ設定のタイミングは , 最後に時計タ
イマがクリアされた時間を基準にします。
ストップモードに遷移すると , 時計タイマは復帰時の発振安定時間待ちのタイマとし
て使用されるので , WTOF フラグはモード遷移と同時にクリアされます。
■ 時計タイマの割込みと EI2OS
表 9.4-3 に , 時計タイマの割込みと EI2OS を示します。
表 9.4-3 時計タイマの割込みと EI2OS
割込みレベル設定レジスタ
ベクタテーブルのアドレス
割込み番号
#36 (24H)
レジスタ名
アドレス
下位
上位
バンク
ICR12
0000BCH
FFFF6CH
FFFF6DH
FFFF6EH
EI2OS
×
×:使用不可
■ ウォッチドッグタイマの動作クロックの設定
時計タイマ制御レジスタ (WTC) のウォッチドッグクロック選択ビット (WDCS) に
よって , ウォッチドッグタイマのクロックソースを設定できます。
マシンクロックとしてサブクロックを使用する場合は , 必ず WDCS ビットを "0" に設定
して , 時計タイマの出力を選択してください。WDCS ビットを "1" に設定した状態で , サ
ブクロックモードへ移行した場合は , ウォッチドッグタイマは停止します。
221
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
9.5
ウォッチドッグタイマ / タイムベースタイマの
使用上の注意
ウォッチドッグタイマ使用時の注意点 , タイムベースタイマ使用時の割込み要求の
クリアおよびタイムベースタイマのクリアによる , 周辺機能への影響などの注意点
を示します。
■ ウォッチドッグタイマの使用上の注意
● ウォッチドッグタイマの停止
ウォッチドッグタイマはすべてのリセット要因で停止します。
● インターバル時間
インターバル時間は , タイムベースタイマまたは時計タイマの桁上り信号をカウント
クロックとしているため , タイムベースタイマまたは時計タイマをクリアすることに
よって , ウォッチドッグタイマのインターバル時間が設定より長くなることがありま
す。タイムベースタイマは , タイムベースタイマ制御レジスタ (TBTC) のタイムベース
タイマカウンタクリアビット (TBR) への "0" 書込みのほか , メインクロックモードから
PLL クロックモードへの遷移 , サブクロックモードからメインクロックモードへの遷
移 , サブクロックモードから PLL クロックモードへの遷移時にもクリアされますので
ご注意ください。
● インターバル時間の選択
インターバル時間は , ウォッチドッグタイマの起動時に設定が可能です。起動時以外の
書込みデータは無視されます。
● プログラム作成上の注意
メインループの中で , ウォッチドッグタイマを繰り返しクリアするようなプログラム
を作成する場合 , 割込み処理を含めたメインループの処理時間が , ウォッチドッグタイ
マのインターバル時間の最小時間以下となる必要があります。
● タイムベースタイマモード中のウォッチドッグタイマ動作
タイムベースタイマモード中 , タイムベースタイマは動作していますが , ウォッチドッ
グタイマは停止します。
222
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
■ タイムベースタイマの使用上の注意
● 割込み要求のクリア
タイムベースタイマ制御レジスタの TBOF ビットをクリアするときには , TBIE ビット
またはプロセッサステータス (PS) のインタラプトレベルマスクレジスタ (ILM) でタ
イムベースタイマ割込みがマスクされている状態で行うようにしてください。
● タイムベースタイマのクリアによる影響
タイムベースタイマのカウンタのクリアで , 次の動作は影響を受けます。
• タイムベースタイマでインターバルタイマ機能 ( インターバル割込み ) を使用して
いるとき
● 発振安定待ち時間用タイマとしての使用
電源投入時 , メインストップモード中では , メインクロックの原発振が停止しているた
め , 発振器が動作を開始した後タイムベースタイマが供給する動作クロックを使用し
てメインクロックの発振安定待ち時間をとります。メインクロックの発振器 ( クロッ
ク発生部) に接続する振動子の種類によって , 適切な発振安定待ち時間を選択する必要
があります。詳細については , 「5.5 発振安定待ち時間」を参照してください。
● タイムベースタイマからクロックを供給される周辺機能に対する注意
メインクロック原発振が停止するモードでは , カウンタはクリアされ , タイムベースタ
イマは動作を停止します。また , タイムベースタイマから供給されるクロックは , タイ
ムベースタイマのカウンタがクリアされると , 初期状態からの供給となるため , "H" レ
ベルが短くまたは "L" レベルが最大で 1/2 周期長くなることがあります。ウォッチドッ
グタイマ用のクロックも初期状態からの供給となりますが , ウォッチドッグタイマの
カウンタが同時にクリアされるためウォッチドッグタイマは正常な周期で動作しま
す。
223
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
■ タイムベースタイマの動作
次の状態の動作を図 9.5-1 に示します。
• パワーオンリセットが発生したとき
• インターバルタイマ機能の動作中にスリープモードへ移行したとき
• ストップモードへ移行したとき
• カウンタクリアの要求があったとき
ストップモードへの移行でタイムベースタイマはクリアされ , 動作を停止します。ス
トップモードからの復帰時にタイムベースタイマで発振安定待ち時間をカウントしま
す。
図 9.5-1 タイムベースタイマの動作
カウンタ値
3FFFFH
ストップモードへの
移行によるクリア
発振安定待ち
オーバフロー
00000H
CPU動作開始
パワーオンリセット
(オプション)
インターバル周期
(TBTC:TBC1, TBC0=11H)
カウンタクリア
(TBTC:TBR=0)
割込み処理ルーチンでクリア
TBOFビット
TBIEビット
SLPビット
(LPMCRレジスタ)
スリープ
インターバル割込みスリープ解除
ストップ
STPビット
(LPMCRレジスタ)
外部割込みによるストップ解除
タイムベースタイマ制御レジスタのインターバル時間選択ビット(TBTC:TBC1, TBC0)に
"11B"を設定した場合(219/HCLK)。
:発振安定待ち時間を示します。
224
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
9.6
ウォッチドッグタイマ / タイムベースタイマの
プログラム例
ウォッチドッグタイマ / タイムベースタイマのプログラム例を示します。
■ ウォッチドッグタイマのプログラム例
● 処理仕様
メインプログラムのループの中で毎回ウォッチドッグタイマをクリアします。
メインループは, ウォッチドッグタイマの最小インターバル時間内に1周する必要があ
ります。
【コーディング例】
WDTC EQU
0000A8H
; ウォッチドッグタイマ制御レジスタ
WTE
EQU
WDTC:2
; ウォッチドッグ制御ビット
;---------- メインプログラム ------------------------------------------------CODE CSEG
START:
;
:
;スタックポインタ(SP)などは初期化済みとする
WDG_START:
MOV
WDTC, #00000011B ; ウォッチドッグタイマの起動
; インターバル時間 221 ± 218 サイクルを選択
;---------- メインループ ----------------------------------------------------MAIN: CLRB
I:WTE
; ウォッチドッグタイマのクリア
;
:
定期的に 2 ビットのクリア
;
ユーザ処理
;
:
JMP
MAIN
; ウォッチドッグタイマのインターバル時間
; より短い時間でループする
CODE ENDS
;---------- ベクタ設定 ------------------------------------------------------VECT CSEG
ABS=0FFH
ORG
0FFDCH
; リセットベクタ設定
DSL
START
DB
00H
; シングルチップモードに設定
VECT ENDS
END
START
225
第 9 章 ウォッチドッグタイマ / タイムベースタイマ / 時計タイマ ( サブクロック用 )
■ タイムベースタイマのプログラム例
● 処理仕様
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 選択
;PS 内 ILM をレベル 7 に設定
; 割込みイネーブル
; 無限ループ
MOV
ILM, #07H
OR
CCR, #40H
LOOP: MOV
A, #00H
MOV
A, #01H
BRA
LOOP
;---------- 割込みプログラム ------------------------------------------------WARI:
CLRB
I:TBOF
; 割込み要求フラグをクリア
;
:
;
ユーザ処理
;
:
RETI
; 割込みから復帰
CODE ENDS
;---------- ベクタ設定 ------------------------------------------------------VECT CSEG
ABS=0FFH
ORG
0FF70H
; 割込み #35(23H) にベクタを設定
DSL
WARI
ORG
0FFDCH
; リセットベクタ設定
DSL
START
DB
00H
; シングルチップモードに設定
VECT ENDS
END
START
226
第 10 章
インプットキャプチャ
この章では , インプットキャプチャの動作について
説明します。
10.1 インプットキャプチャの概要
10.2 インプットキャプチャのブロックダイヤグラム
10.3 インプットキャプチャのレジスタ一覧
10.4 動作説明
227
第 10 章 インプットキャプチャ
インプットキャプチャの概要
10.1
インプットキャプチャユニットは , 16 ビットフリーランタイマ 1 本 , 16 ビットイン
プットキャプチャ 4 本から構成されています。
■ 構成
● インプットキャプチャ ( × 4)
インプットキャプチャは独立した 4 本の外部入力端子と対応したキャプチャレジスタ ,
コントロールレジスタにより構成されています。外部入力端子から入力された信号の
任意エッジを検出することにより 16 ビットフリーランタイマ値をキャプチャレジスタ
に保持し , 同時に割込みを発生することができます。
外部入力信号の有効エッジ ( 立上りエッジ , 立下りエッジ , 両エッジ ) を選択できます。
4 本のインプットキャプチャは独立して動作ができます。
割込みは , 外部入力信号の有効エッジにより発生させることができます。
● 16 ビットフリーランタイマ ( × 1)
16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロールレジスタ , 16
ビットコンペアクリアレジスタ , プリスケーラから構成されています。本カウンタの出
力値はインプットキャプチャの基本時間 ( ベースタイマ ) として使用されます。
カウンタ動作クロックは 8 種類から選択できます。内部クロックは , φ, φ/2, φ/4, φ/8, φ/
16, φ/32, φ/64, φ/128 の 8 種です (φ:マシンクロック ) 。
割込みはカウンタ値のオーバフロー , コンペアクリアレジスタとのコンペアマッチに
より発生することができます ( コンペアマッチはモード設定が必要です ) 。
カウンタ値は , リセット , ソフトクリア , コンペアクリアレジスタとのコンペアマッチ
により "0000H" に初期化することができます。
228
第 10 章 インプットキャプチャ
10.2
インプットキャプチャのブロックダイヤグラム
インプットキャプチャのブロックダイヤグラムを記載します。
■ ブロックダイヤグラム
図 10.2-1 ブロックダイヤグラム
割込み
φ
#31(1FH)
IVF
IVFE
STOP
MODE
SCLR
CLK2
CLK1
CLK0
分周器
クロック
16ビットフリーランタイマ
16ビットコンペアクリアレジスタ
割込み
コンペア回路
#33(21H)
MSI2~MSI0
ICLR
ICRE
A/D起動
F2MC-16LXバス キャプチャデータレジスタ0/2
エッジ検出
EG11
EG10
EG01
エッジ検出
キャプチャデータレジスタ1/3
ICP0
ICP1
ICE0
IN0/IN2
EG00
IN1/IN3
ICE1
割込み
#19, #23
#15, #21
229
第 10 章 インプットキャプチャ
10.3
インプットキャプチャのレジスタ一覧
インプットキャプチャのレジスタ一覧について説明します。
■ 16 ビットフリーランタイマ部レジスタ一覧
図 10.3-1 に 16 ビットフリーランタイマ部のレジスタ一覧を示します。
図 10.3-1 16 ビットフリーランタイマ部のレジスタ一覧
コンペアクリアレジスタ上位
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
アドレス : 000025H
CL15
CL14
CL13
CL12
CL11
CL10
CL09
CL08
読出し / 書込み→
初期値→
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000024H
CL07
CL06
CL05
CL04
CL03
CL02
CL01
CL00
読出し / 書込み→
初期値→
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
T15
R/W
(0)
T14
R/W
(0)
T13
R/W
(0)
T12
R/W
(0)
T11
R/W
(0)
T10
R/W
(0)
T09
R/W
(0)
T08
R/W
(0)
CPCLR
コンペアクリアレジスタ下位
CPCLR
タイマデータレジスタ上位
アドレス : 000027H
読出し / 書込み→
初期値→
TCDT
タイマデータレジスタ下位
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000026H
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)
bit13
bit12
bit11
bit10
bit9
bit8
TCDT
タイマコントロールステータスレジスタ上位
bit15
アドレス : 000029H
読出し / 書込み→
初期値→
bit14
ECKE
-
-
MSI2
MSI1
MSI0
ICLR
ICRE
R/W
(0)
(-)
(-)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
bit4
bit3
bit2
bit1
bit0
CLK2
R/W
(0)
CLK1
R/W
(0)
CLK0
R/W
(0)
TCCSH
タイマコントロールステータスレジスタ下位
アドレス : 000028H
読出し / 書込み→
初期値→
230
bit7
bit6
IVF
R/W
(0)
IVFE
R/W
(0)
bit5
STOP MODE SCLR
R/W
R/W
R/W
(0)
(0)
(0)
TCCSL
第 10 章 インプットキャプチャ
■ インプットキャプチャ部レジスタ一覧
図 10.3-2 にインプットキャプチャ部のレジスタ一覧を示します。
図 10.3-2 インプットキャプチャ部のレジスタ一覧
インプットキャプチャデータレジスタ上位
アドレス:ch.0
アドレス:ch.1
アドレス:ch.2
アドレス:ch.3
000061 H
000063 H
000065 H
000067 H
bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9
CP15
CP13
CP12
CP11
CP10
CP09
IPCP0~
IPCP3
CP08
R
R
R
R
R
R
R
R
← 読出し/書込み
(X) (X) (X) (X) (X) (X) (X) (X)
← 初期値
インプットキャプチャデータレジスタ下位
アドレス:ch.0
アドレス:ch.1
アドレス:ch.2
アドレス:ch.3
CP14
bit 8
000060 H
000062 H
000064 H
000066 H
bit 7
bit 6
CP07 CP06
bit 5
CP05
CP04
bit 4
CP03
bit 3
bit 2
CP02
bit 1
CP01
CP00
bit 0
IPCP0~
IPCP3
R
R
R
R
R
R
R
R
← 読出し/書込み
(X) (X) (X) (X) (X) (X) (X) (X)
← 初期値
インプットキャプチャコントロールステータスレジスタ上位
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 00006AH
ICP3
ICP2
ICE3
ICE2
EG31
EG30
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)
ICS23
インプットキャプチャコントロールステータスレジスタ下位
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000068H
ICP1
ICP0
ICE1
ICE0
EG11
EG10
EG01
EG00
読出し / 書込み→
初期値→
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
ICS01
231
第 10 章 インプットキャプチャ
10.3.1
インプットキャプチャのレジスタ詳細説明
インプットキャプチャレジスタには次の 2 種類のレジスタがあります。
• インプットキャプチャデータレジスタ (IPCP0 ~ IPCP3)
• インプットキャプチャコントロールステータスレジスタ (ICS01/ICS23)
■ インプットキャプチャデータレジスタ (IPCP0 ~ IPCP3)
IPCP レジスタは , 対応した外部端子入力波形の有効エッジを検出した場合 , 16 ビット
フリーランタイマ値を保持するレジスタです ( ワードアクセスしてください。書込み
はできません ) 。
図 10.3-3 インプットキャプチャデータレジスタ (IPCP0 ~ IPCP3) の構成
インプットキャプチャデータレジスタ上位
アドレス:ch.0
アドレス:ch.1
アドレス:ch.2
アドレス:ch.3
000061H
000063H
000065H
000067H
CP15
CP14
CP13
CP12
CP11
CP10
CP09
bit 8
IPCP0~
IPCP3
CP08
R
R
R
R
R
R
R
R
← 読出し/書込み
(X) (X) (X) (X) (X) (X) (X) (X)
← 初期値
インプットキャプチャデータレジスタ下位
アドレス:ch.0
アドレス:ch.1
アドレス:ch.2
アドレス:ch.3
bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9
000060H
000062H
000064H
000066H
bit 7
CP07 CP06
bit 6
CP05
bit 5
bit 4
CP04
CP03
bit 3
bit 2
CP02
CP01
bit 1
bit 0
CP00
IPCP0~
IPCP3
R
R
R
R
R
R
R
R
← 読出し/書込み
(X) (X) (X) (X) (X) (X) (X) (X)
← 初期値
■ インプットキャプチャコントロールステータスレジスタ (ICS01, ICS23)
図 10.3-4 インプットキャプチャコントロールステータスレジスタ (ICS01, ICS23) の構成
インプットキャプチャコントロールステータスレジスタ上位
アドレス : 00006AH
読出し / 書込み→
初期値→
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ICP3
R/W
(0)
ICP2
R/W
(0)
ICE3
R/W
(0)
ICE2
R/W
(0)
EG31
R/W
(0)
EG30
R/W
(0)
EG21
R/W
(0)
EG20
R/W
(0)
ICS23
インプットキャプチャコントロールステータスレジスタ下位
232
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000068H
ICP1
ICP0
ICE1
ICE0
EG11
EG10
EG01
EG00
読出し / 書込み→
初期値→
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
ICS01
第 10 章 インプットキャプチャ
【bit7, bit6】: ICP3, ICP2, ICP1, ICP0
インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると本
ビットを "1" にセットします。割込み許可ビット (ICE3, ICE2, ICE1, ICE0) がセットさ
れていると有効エッジを検出することにより割込みを発生することができます。本
ビットは , "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リード
モディファイライト系命令では "1" が読み出されます。
0
有効エッジ検出なし ( 初期値 )
1
有効エッジ検出あり
ICPn:n の番号がインプットキャプチャのチャネル番号に対応します。
【bit5, bit4】: ICE3, ICE2, ICE1, ICE0
インプットキャプチャ割込み許可ビットです。ICE ビットが "1" の場合 , 割込みフラグ
(ICP3, ICP2, ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発生し
ます。
0
割込み禁止 ( 初期値 )
1
割込み許可
ICEn:n の番号がインプットキャプチャのチャネル番号に対応します
【bit3-bit0】: EG31/EG30, EG21/EG20, EG11/EG10, EG01/EG00
外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作許可も
兼用しています。
エ ッ ジ 検 出 極 性
EG31
EG30
0
0
エッジ検出なし ( 停止状態 ) ( 初期値 )
0
1
立上りエッジ検出 ↑
1
0
立下りエッジ検出 ↓
1
1
両エッジ検出
↑&↓
EGn1/EGn0:n の番号がインプットキャプチャのチャネル番号に対応します。
233
第 10 章 インプットキャプチャ
10.3.2
16 ビットフリーランタイマのレジスタ詳細説明
16 ビットフリーランタイマのレジスタには , 次の 3 つのレジスタがあります。
• タイマデータレジスタ (TCDT)
• コンペアクリアレジスタ (CPCLR)
• タイマコントロールステータスレジスタ (TCCSH, TCCSL)
■ タイマデータレジスタ (TCDT)
図 10.3-5 タイマデータレジスタ (TCDT) の構成
タイマデータレジスタ上位
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
アドレス : 000027H
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)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
T07
R/W
(0)
T06
R/W
(0)
T05
R/W
(0)
T04
R/W
(0)
T03
R/W
(0)
T02
R/W
(0)
T01
R/W
(0)
T00
R/W
(0)
TCDT
タイマデータレジスタ下位
アドレス : 000026H
読出し / 書込み→
初期値→
TCDT
16 ビットフリーランタイマのカウント値を読み出すことのできるレジスタです。カウ
ンタ値は , リセット時に "0000H" にクリアされます。このレジスタに書き込むことでタ
イマ値を設定できますが , 必ず停止 (STOP=1) 状態で書き込んでください。このレジス
タは , ワードアクセスしてください。16 ビットフリーランタイマの初期化は次の要因
で行われます。
• リセットによる初期化
• タイマコントロール・ステータスレジスタのクリア (CLR) による初期化
• コンペアクリアレジスタ値とタイマカウンタ値の一致による初期化 ( モード設定が
必要です )
■ コンペアクリアレジスタ (CPCLR)
図 10.3-6 コンペアクリアレジスタ (CPCLR) の構成
コンペアクリアレジスタ上位
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
アドレス : 000025H
CL15
CL14
CL13
CL12
CL11
CL10
CL09
CL08
読出し / 書込み→
初期値→
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000024H
CL07
CL06
CL05
CL04
CL03
CL02
CL01
CL00
読出し / 書込み→
初期値→
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
CPCLR
コンペアクリアレジスタ下位
234
CPCLR
第 10 章 インプットキャプチャ
16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。本レジス
タ値は , 初期値不定ですので動作許可する場合は , 値を設定してから動作を許可してく
ださい。本レジスタはワードアクセスしてください。タイマコントロールステータス
レジスタ (TCCSH, TCCSL) の MODE ビットに "1" を設定している場合は , 本レジスタ
値と 16 ビットフリーランタイマ値が一致したとき , 16 ビットフリーランタイマ値を
"0000H" にクリアします。また , 本レジスタ値と 16 ビットフリーランタイマ値が一致
したとき , コンペアクリア割込みフラグをセットします。コンペアクリア割込みフラグ
が "1" のとき , 割込み動作を許可している場合は, CPUに対して割込み要求を行います。
■ タイマコントロールステータスレジスタ (TCCSH, TCCSL)
図 10.3-7 タイマコントロールステータスレジスタ (TCCSH, TCCSL) の構成
タイマコントロールステータスレジスタ上位
アドレス : 000029H
読出し / 書込み→
初期値→
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ECKE
R/W
(0)
(-)
(-)
MSI2
R/W
(0)
MSI1
R/W
(0)
MSI0
R/W
(0)
ICLR
R/W
(0)
ICRE
R/W
(0)
bit4
bit3
bit2
bit1
bit0
CLK2
CLK1
CLK0
R/W
(0)
R/W
(0)
R/W
(0)
TCCS
タイマコントロールステータスレジスタ下位
bit7
bit6
アドレス : 000028H
IVF
IVFE
読出し / 書込み→
初期値→
R/W
(0)
R/W
(0)
bit5
STOP MODE SCLR
R/W
(0)
R/W
(0)
R/W
(0)
TCCS
【bit15】:ECKE
16 ビットフリーランタイマのカウントクロックソースを内部にするか , 外部にするか
を選択するビットです。ECKE ビットに書込み後すぐにクロックは変更されますので
アウトプットコンペア , インプットキャプチャが停止状態で変更してください。
0
内部クロックソースを選択 ( 初期値 )
1
外部端子 (FRCK) よりクロックを入力
<注意事項>
内部クロックを選択した場合は , bit2 ~ bit0 (CLK2 ~ CLK0) にカウントクロックを設定
してください。このカウントクロックがベースクロックとなります。また , FRCK よりク
ロックを入力する場合は , DDR1 の bit7="0" に設定してください。
【bit14, bit13】: 未定義ビットです。
リードした場合は不定値 , ライトした場合は動作に影響しません。
【bit12, bit11, bit10】: MSI2, MSI1, MSI0
コンペアクリア割込みをマスクする回数を設定するビットです。3 ビットのリロードカ
ウンタで構成され , カウンタの値が "000B" になるたびにカウント値をリロードします。
また , 本レジスタ書込み時にもカウンタ値をロードします。マスク回数 = 設定回数とな
ります ( 例:2 回マスクし 3 回目で割込み処理をする場合の設定値 "010B") 。ただし ,
"000B" を設定すると割込み要因はマスクされません。
235
第 10 章 インプットキャプチャ
【bit9】:ICLR
コンペアクリアの割込み要求フラグです。コンペアクリアレジスタ値と 16 ビットフ
リーランタイマ値がコンペア一致した場合に ICLR ビットは "1" にセットされます。割
込み要求許可ビット (bit8:ICRE) がセットされていると割込みが発生します。ICLR ビッ
トは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リードモディ
ファイライト系命令では , 常に "1" が読み出されます。
0
割込み要求なし ( 初期値 )
1
割込み要求あり
【bit8】:ICRE
コンペアクリアの割込み許可ビットです。ICRE ビットが "1" の場合 , 割込みフラグ
(bit9:ICLR) が "1" にセットされると割込みが発生します。
0
割込み禁止 ( 初期値 )
1
割込み許可
【bit7】:IVF
16 ビットフリーランタイマの割込み要求フラグです。16 ビットフリーランタイマが
オーバフローを起こした場合に IVF ビットは "1" にセットされます。割込み要求許可
ビット (bit6:IVFE) がセットされていると割込みが発生します。IVF ビットは "1" 書込
みによりクリアされます。"1" 書込みは意味を持ちません。リードモディファイライト
系命令では , 常に "1" が読み出されます。
0
割込み要求なし ( 初期値 )
1
割込み要求あり
【bit6】:IVFE
16 ビットフリーランタイマの割込み許可ビットです。IVFE ビットが "1" の場合 , 割込
みフラグ (bit7:IVF) が "1" セットされると割込みが発生します。
0
割込み禁止 ( 初期値 )
1
割込み許可
【bit5】:STOP
16 ビットフリーランタイマのカウントを停止するためのビットです。"1" 書込み時に
はタイマのカウントは停止します。"0" 書込み時にタイマのカウントを開始します。
16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。
236
0
カウント許可 ( 動作 ) ( 初期値 )
1
カウント禁止 ( 停止 )
第 10 章 インプットキャプチャ
【bit4】:MODE
16 ビットフリーランタイマの初期化条件を設定します。"0" の場合は , リセットとクリ
アビット (bit3:SCLR) でカウンタ値を初期化できます。"1" の場合は , リセットとクリ
アビット (bit3:SCLR) の他にコンペアクリアレジスタ (CPCLR) の値との一致によりカ
ウンタ値を初期化することができます。
カウンタ値の初期化は , カウント値の変化点で行われます。
0
リセット , クリアビットによる初期化 ( 初期値 )
1
リセット , クリアビット , コンペアクリアレジスタによる初期化
【bit3】:SCLR
動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。"1"
書込み時にカウンタを "0000H" に初期化します。"0" を書き込んでも意味を持ちません。
リード値は , 常に "0" です。
カウンタ値の初期化は , カウント値の変化点で行われます。
タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。
フ ラ グ の 意 味
SCLR
0
意味を持ちません ( 初期値 )
1
カウンタ値を "0000H" に初期化します
<注意事項>
"1" を書き込んだ後 , 次のカウントクロックまでにこのビットへの "0" 書込みを行うと , カ
ウンタ値の初期化は行われません。
【bit2 ~ bit0】: CLK2, CLK1, CLK0
16 ビットフリーランタイマのカウントクロックを選択するビットです。CLK ビットに
書込み後すぐにクロックは変更されますので , アウトプットコンペア , インプットキャ
プチャが停止状態で変更してください。
カウントクロック
φ=16MHz
φ= 8MHz
φ= 4MHz
φ= 1MHz
CLK2
CLK1
CLK0
0
0
0
φ
62.5 ns
125 ns
0
0
1
φ/ 2
125 ns
0.25 μs
0.5 μs
2 μs
0
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
0.25 μs
1 μ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
φ = マシンクロック
237
第 10 章 インプットキャプチャ
動作説明
10.4
インプットキャプチャの動作について説明します。
■ 動作説明
● 16 ビットフリーランタイマ
16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウントを
開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットインプッ
トキャプチャの基準時間となります。
● 16 ビットインプットキャプチャ
16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビットフ
リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することができ
ます。
■ インプットキャプチャの割込みと EI2OS
表 10.4-1 に , インプットキャプチャの割込みと EI2OS を示します。
表 10.4-1 インプットキャプチャの割込みと EI2OS
割込みレベル設定レジスタ
チャネル
ベクタテーブルのアドレス
割込み番号
レジスタ名
アドレス
下位
上位
バンク
EI2OS
インプット
キャプチャ 0
#15 (0FH)
ICR02
0000B2H
FFFFC0H
FFFFC1H
FFFFC2H
△
インプット
キャプチャ 1
#19 (13H)
ICR04
0000B4H
FFFFB0H
FFFFB1H
FFFFB2H
△
インプット
キャプチャ 2
#21 (15H)
ICR05
0000B5H
FFFFA8H
FFFFA9H
FFFFAAH
△
インプット
キャプチャ 3
#23 (17H)
ICR06
0000B6H
FFFFA0H
FFFFA1H
FFFFA2H
△
フリーラン
タイマ
オーバフロー
#31 (1FH)
ICR10
0000BAH
FFFF80H
FFFF81H
FFFF82H
×
フリーラン
タイマクリア
#33 (21H)
ICR11
0000BBH
FFFF78H
FFFF79H
FFFF7AH
×
×:使用不可
△:ICR02, ICR04, ICR05, ICR06 または割込みベクタを共有する割込み要因を使用しない場合 , 使用可能
238
第 10 章 インプットキャプチャ
10.4.1
16 ビットインプットキャプチャ
16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビット
フリーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することが
できます。
■ 16 ビットインプットキャプチャの動作
図 10.4-1 インプットキャプチャの取込みタイミング例
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
IN0
IN1
IN例
不定
データレジスタ0
3FFFH
不定
データレジスタ1
不定
データレジスタ例
キャプチャ0割込み
BFFFH
BFFFH
7FFFH
キャプチャ1割込み
キャプチャ例割込み
キャプチャ0=立上りエッジ
キャプチャ1=立下りエッジ
キャプチャ例=両エッジ(例として)
再度有効エッジにより割込み
ソフトウェアにより割込み
■ 16 ビットインプットキャプチャの入力タイミング
図 10.4-2 入力信号に対するキャプチャタイミング
カウンタ値
インプット
キャプチャ入力
N
N+1
有効エッジ
キャプチャ信号
キャプチャ
レジスタ値
N+1
割込み
239
第 10 章 インプットキャプチャ
10.4.2
16 ビットフリーランタイマ部
16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント
を開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットイン
プットキャプチャの基準時間となります。
■ 16 ビットフリーランタイマの動作説明
カウンタ値は , 次の条件でクリアされます。
• オーバフロー発生時
• コンペアクリアレジスタ値とのコンペアマッチ時 ( モード設定が必要 )
• 動作中に TCCSH, TCCSL レジスタの SCLR ビットへの "1" 書込み
• タイマ停止中の TCDT への "0000H" 書込み
割込みは , オーバフローが発生したとき , コンペアクリアレジスタ値とフリーランタイ
マがコンペアマッチしたときに発生します (コンペアマッチ割込みは , モード設定が必
要です ) 。
図 10.4-3 オーバフローによるカウンタクリア
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
割込み
図 10.4-4 コンペアクリアレジスタ値とコンペアマッチした場合のカウンタクリア
カウンタ値
FFFFH
一致
BFFFH
一致
7FFFH
3FFFH
時間
0000H
リセット
コンペア
レジスタ値
割込み
240
BFFFH
第 10 章 インプットキャプチャ
■ 16 ビットフリーランタイマのクリアタイミング
カウンタのクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行
われます。リセットとソフトウェアでのカウンタクリアは , クリア発生とともに行われ
ますが , コンペアクリアレジスタとの一致によるカウンタクリアはカウントタイミン
グに同期して行われます。
図 10.4-5 フリーランタイマのクリアタイミング
コンペアクリア
レジスタ値
コンペアラッチ
N
N
カウンタ値
0000 H
■ 16 ビットフリーランタイマのカウントタイミング
16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により
カウントアップされます。外部クロック選択時は , 立上りエッジ↑でカウントされま
す。
図 10.4-6 16 ビットフリーランタイマのカウントタイミング
外部クロック入力
カウントクロック
カウンタ値
N
N+1
241
第 10 章 インプットキャプチャ
242
第 11 章
16 ビットリロードタイマ
この章では , 16 ビットリロードタイマの機能と動
作について説明します。
11.1 16 ビットリロードタイマの概要
11.2 16 ビットリロードタイマの構成
11.3 16 ビットリロードタイマの端子
11.4 16 ビットリロードタイマのレジスタ
11.5 16 ビットリロードタイマの割込み
11.6 16 ビットリロードタイマの動作説明
11.7 16 ビットリロードタイマの使用上の注意
11.8 16 ビットリロードタイマのプログラム例
243
第 11 章 16 ビットリロードタイマ
11.1
16 ビットリロードタイマの概要
16 ビットリロードタイマは , 3 種類の内部クロックに同期してカウントダウンする
内部クロックモードと , 外部端子に入力されたパルスの任意エッジを検出してカウ
ントダウンするイベントカウントモードがあり , どちらかの機能を選択できます。
このタイマは , カウンタの値が 0000H から FFFFH になる場合をアンダフローと定義
しています。したがって , 〔リロードレジスタの設定値+ 1〕カウントでアンダフ
ローが発生します。
カウンタ動作としては , アンダフローで , カウント設定値を再ロードしてカウントを
繰り返すリロードモードと , アンダフローでカウントを停止するワンショットモー
ドを選択できます。カウンタのアンダフローで割込みを発生させることができ , 拡
張インテリジェント I/O サービス (EI2OS) にも対応しています。
■ 16 ビットリロードタイマの動作モード
16 ビットリロードタイマの動作モードは , 表 11.1-1 に示すとおりです。
表 11.1-1 16 ビットリロードタイマの動作モード
クロックモード
カウンタ動作
リロードモード
内部クロックモード
イベントカウントモード
( 外部クロックモード )
ワンショットモード
リロードモード
ワンショットモード
16 ビットリロードタイマの動作
ソフトトリガ動作
外部トリガ動作
外部ゲート入力動作
ソフトトリガ動作
■ 内部クロックモード
カウントクロックとして , 3 種類の内部クロックから 1 種類を選択し , 次のいずれかの
動作を選択できます。
● ソフトトリガ動作
タイマコントロールステータスレジスタ (TMCSR0/TMCSR1) の TRG ビットに "1" を書
き込むと , カウント動作を開始します。TRG ビットによるトリガ入力は , 外部トリガ入
力時および外部ゲート入力時にも常に有効です。
● 外部トリガ動作
選択されたエッジ ( 立上り , 立下り , 両エッジ ) が TIN0/TIN1 端子に入力された場合に
カウント動作を開始します。
● 外部ゲート入力動作
選択された信号レベル ("L" または "H") が TIN0/TIN1 端子に入力されている間 , カウン
ト動作を続行します。
244
第 11 章 16 ビットリロードタイマ
■ イベントカウントモード ( 外部クロックモード )
選択された有効エッジ ( 立上り , 立下り , 両エッジ ) が TIN0/TIN1 端子に入力されると ,
そのエッジでカウントダウンする機能です。一定周期の外部クロックを使用した場合
は , インターバルタイマとしても使用できます。
■ カウンタ動作
● リロードモード
カウントダウンで , アンダフロー (0000H → FFFFH) が発生すると , カウント設定値が再
ロードされてカウント動作を継続します。アンダフローで , 割込み要求を発生させるこ
とができるので , インターバルタイマとして使用できます。また , アンダフローごとに
反転するトグル波形を , TOT0/TOT1 端子から出力できます。表 11.1-2 に 16 ビットリ
ロードタイマのインターバル時間を示します。
表 11.1-2 16 ビットリロードタイマのインターバル時間
カウントクロック
カウントクロック周期
内部クロック
外部クロック
インターバル時間
21/φ
(0.125 μs)
0.125 μs ~ 8.192 ms
23/φ
(0.5 μs)
0.5 μs ~ 32.768 ms
25/φ
(2.0 μs)
2.0 μs ~ 131.1 ms
23/φ
以上 (0.5 μs)
0.5 μs 以上
φ:マシンクロック ( ) 内は , マシンクロック 16MHz 動作時の値です。
● ワンショットモード
カウントダウンで , アンダフロー (0000H → FFFFH) が発生すると , カウント動作を停止
します。アンダフローで割込みを発生させることができます。また , カウンタの動作中
は , カウント中を示す矩形波を TOT0, TOT1 端子から出力できます。
<参考>
• 16 ビットリロードタイマは , UART のボーレート作成に使用できます。
• 16 ビットリロードタイマは , A/D コンバータの起動トリガに使用できます。
■ 16 ビットリロードタイマの割込みと EI2OS
表 11.1-3 に , 16 ビットリロードタイマの割込みと EI2OS について示します。
表 11.1-3 16 ビットリロードタイマの割込みと EI2OS
割込み制御レジスタ
チャネル
ベクタテーブルのアドレス
割込み番号
レジスタ名
アドレス
下位
上位
バンク
EI2OS
16 ビットリロード
タイマ 0
#17 (11H)
ICR03
0000B3H
FFFFB8H
FFFFB9H
FFFFBAH
△
16 ビットリロード
タイマ 1
#28 (1CH)
ICR08
0000B8H
FFFF8CH
FFFF8DH
FFFF8EH
△
△:ICR03, ICR08, または割込みベクタを共有する割込み要因を使用しない場合使用可能
245
第 11 章 16 ビットリロードタイマ
11.2
16 ビットリロードタイマの構成
16 ビットリロードタイマは , 次の 7 つのブロックで構成されています。
• カウントクロック生成回路
• リロード制御回路
• 出力制御回路
• 動作制御回路
• 16 ビットタイマレジスタ (TMR0, TMR1)
• 16 ビットリロードレジスタ (TMRLR0, TMRLR1)
• タイマコントロールステータスレジスタ (TMCSR0L, TMCSR1L/TMCSR0H,
TMCSR1H)
■ 16 ビットリロードタイマのブロックダイヤグラム
図 11.2-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。
図 11.2-1 16 ビットリロードタイマのブロックダイヤグラム
内部データバス
TMRLR0*1
<TMRLR1>
16ビットリロードレジスタ
リロード信号
TMR0*1
<TMR1>
リロード
制御回路
UF
16ビットタイマレジスタ(ダウンカウンタ) カウントクロック生成回路
プリ
3
スケーラ
CLK
ゲート
入力
有効
クロック
判定回路
クリア
出力制御回路
クロック
セレクタ
入力制御
回路
P12/TIN0*1
<P07/TIN1>
UART0,UART1へ*1
<A/Dコンバータへ>
CLK
内部
クロック
端子
ウェイト信号
出力信号
反転 生成回路
端子
3
2
セレクト
信号
動作
制御回路
機能選択
-
-
-
-
CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE
タイマコントロールステータスレジスタ(TMCSR0)*1
<TMCSR1>
*1:ch.0とch.1があり,< >内はch.1について示します。
*2:割込み番号
246
P11/TOT0*1
<P06/TOT1>
EN
外部クロック
UF
CNTE
TRG
割込み要求信号
#17(11H)*2
<#28(1CH)>
第 11 章 16 ビットリロードタイマ
● カウントクロック生成回路
マシンクロックまたは外部入力クロックから , 16 ビットリロードタイマのカウントク
ロックを生成します。
● リロード制御回路
タイマ起動時とアンダフロー発生時のリロード動作を制御します。
● 出力制御回路
16 ビットタイマレジスタのアンダフローによる TOT 端子出力の反転制御と , TOT 端子
出力を許可 / 禁止を制御します。
● 動作制御回路
16 ビットリロードタイマの起動 / 停止を制御します。
16 ビットタイマレジスタ (TMR0, TMR1)
16 ビットのダウンカウンタです。読出しをすると , 現在のカウンタ値が読み出されま
す。
● 16 ビットリロードレジスタ (TMRLR0, TMRLR1)
16 ビットリロードタイマのインターバル時間を設定するレジスタです。このレジスタ
の設定値が 16 ビットタイマレジスタにロードされ , カウントダウンされます。
● タイマコントロールステータスレジスタ (TMCSR0L, TMCSR1L/TMCSR0H, TMCSR1H)
16ビットリロードタイマのカウントクロックの選択, 動作モードの選択, 動作条件の設
定 , ソフトウェアによるトリガ起動 , カウント動作の許可 / 禁止 , リロード / ワンショッ
トのモード選択 , 端子出力レベルの選択 , タイマ出力の許可 / 禁止 , 割込み制御および
状態の確認をします。
247
第 11 章 16 ビットリロードタイマ
16 ビットリロードタイマの端子
11.3
16 ビットリロードタイマの端子および端子のブロックダイヤグラムを示します。
■ 16 ビットリロードタイマの端子
16 ビットリロードタイマの端子は , 汎用ポートと兼用になっています。表 11.3-1 に端
子の機能 , 入出力形式および 16 ビットリロードタイマ使用時の設定などを示します。
表 11.3-1 16 ビットリロードタイマの端子
スタンバイ
制御
端子の使用に
必要な設定
端子機能
P12/TIN0/IN3
ポート 1 入出力 /
タイマ入力
入力ポートに設定
(DDR1:bit2=0)
P11/TOT0/WOT
ポート 1 入出力 /
タイマ出力
TOT0 使用時にリアルタ
イム時計タイマ出力禁
止 (WTCRL:OE=1)
P07/PPG1/TIN1
P06/PPG0/TOT1
入出力形式
プルアップ
選択
端子名
CMOS 出力 /
CMOS ヒステリシス
ポート 0 入出力 /
入力
タイマ入力
なし
あり
入力ポートに設定
(DDR0:bit7=0)
PPG1 出力禁止
タイマ出力許可に設定
(TMCSR1L:OUTE=1)
PPG0 出力禁止
ポート 0 入出力 /
タイマ出力
■ 16 ビットリロードタイマの端子のブロックダイヤグラム
図 11.3-1 に , 16 ビットリロードタイマの端子のブロックダイヤグラムを示します。
図 11.3-1 16 ビットリロードタイマの端子のブロックダイヤグラム
周辺機能入力
*
PDR
(ポートデータレジスタ)
周辺機能出力
*
周辺機能出力許可
*
内部データバス
PDRリード
出力ラッチ
P-ch
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
N-ch
DDRライト
スタンバイ制御(SPL=1)
DDRリード
スタンバイ制御:ストップ,時計モードかつSPL=1
*
:周辺機能入出力は周辺機能がある端子だけです。
248
第 11 章 16 ビットリロードタイマ
16 ビットリロードタイマのレジスタ
11.4
16 ビットリロードタイマのレジスタ一覧を示します。
■ 16 ビットリロードタイマのレジスタ一覧
図 11.4-1 に , 16 ビットリロードタイマのレジスタ一覧を示します。
図 11.4-1 16 ビットリロードタイマのレジスタ一覧
アドレス
bit15
bit8
bit7
bit0
16ビットリロード
タイマ0
000051H,000050H
TMCSR0L,TMCSR0H(タイマコントロールステータスレジスタ)
000053H,000052H
TMR0/TMRLR0(16ビットタイマレジスタ/16ビットリロードレジスタ)*
16ビットリロード
タイマ1
000055H,000054H
TMCSR1L,TMCSR1H(タイマコントロールステータスレジスタ)
000057H,000056H
TMR1/TMRLR1(16ビットタイマレジスタ/16ビットリロードレジスタ)*
*
:読出し時は16ビットタイマレジスタ(TMR)として機能し,書込み時は16ビットリロードレジスタ(TMRLR)
として機能します。
249
第 11 章 16 ビットリロードタイマ
タイマコントロールステータスレジスタ上位
(TMCSR0H/TMCSR1H)
11.4.1
タイマコントロールステータスレジスタ (TMCSR0/TMCSR1) の上位 bit11 ~ bit8
と下位 bit7 は , 16 ビットリロードタイマの動作モードの選択 , 動作条件の設定をす
る機能があります。下位 bit7 の MOD0 ビットはここで説明します。
■ タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H)
図 11.4-2 タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H)
アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6
bit0
初期値
TMCSR0
(TMCSR:L)
----0000
B
MOD1
MOD0
-
-
-
-
CSL1
CSL0
MOD2
000051H
TMCSR1
000055H
-
-
-
-
R/W
R/W
R/W
R/W
MOD2
MOD1
MOD0
0
0
0
0
0
1
0
1
0
0
1
1
1
X
0
1
X
1
MOD2
MOD1
MOD0
X
0
0
X
0
1
X
1
0
X
1
1
R/W
動作モード選択ビット
(内部クロックモード時)
入力端子機能
R/W
-
X
φ
250
0
0
0
1
―
立上りエッジ
トリガ入力
立下りエッジ
両エッジ
ゲート入力
"L"レベル
"H"レベル
動作モード選択ビット
(イベントカウントモード時)
入力端子機能
CSL1 CSL0
有効エッジ,レベル
トリガ禁止
有効エッジ
―
―
立上りエッジ
トリガ入力
立下りエッジ
両エッジ
カウントクロック選択ビット
機能
カウントクロック
21/φ(0.125μs)
内部クロックモード
1
0
:リード/ライト可能
:未定義
イベントカウントモード
1
1
:不定
:初期値
:マシンクロック,( )内はマシンクロック16MHz動作時の値です。
23/φ( 0.5μs)
25/φ( 2.0μs)
外部イベント入力
第 11 章 16 ビットリロードタイマ
表 11.4-1 タイマコントロールステータスレジスタ上位 (TMCSR0H/TMCSR1H) の各ビットの
機能説明
ビット名
bit15
~
bit12
未定義ビット
bit11
bit10
CSL1, CSL0:
カウントクロック
選択ビット
機 能
・読出し時の値は不定です。
・書込みは意味を持ちません。
・カウントクロックの選択をします。
・これらのビットが "11B" 以外の場合は , 内部クロックモードとなり , 内部ク
ロックをカウントするモードになります。
・これらのビットが "11B" の場合は , イベントカウントモードとなり , 外部ク
ロックのエッジをカウントするモードになります。
bit9
~
bit7
MOD2, MOD1,
MOD0:
動作モード選択
ビット
<内部クロックモード時>
・MOD2 ビットは , 入力端子の機能を選択するビットです。
・MOD2 ビットが "0" の場合 , 入力端子はトリガ入力端子となり , 有効エッジが
入力されると , リロードレジスタの内容をカウンタへロードし , カウント動
作を継続します。MOD1, MOD0 ビットで有効エッジの種類を選択します。
・MOD2 ビットが "1" の場合 , 入力端子はゲート入力となり , 有効レベルが入力
されている間だけカウントをします。
・MOD1 ビットの設定には影響を受けませんので任意の値 ("0" または "1") を設
定してください。
・MOD0 ビットで有効レベルを選択します。
<イベントカウントモード時>
・MOD2 ビットの設定には影響を受けませんので , 任意の値 ("0" または "1") を
設定してください。
・入力端子は , イベント入力のトリガ入力端子として使用され , MOD1, MOD0
ビットで有効エッジを選択します。
251
第 11 章 16 ビットリロードタイマ
タイマコントロールステータスレジスタ下位
(TMCSR0L/TMCSR1L)
11.4.2
タイマコントロールステータスレジスタ (TMCSR0/TMCSR1) の下位 7 ビットは , 16
ビットリロードタイマの動作条件の設定 , 動作の許可と禁止 , 割込み制御および状態
の確認をする機能があります。
■ タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L)
図 11.4-3 タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L)
*
アドレス bit15
bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
初期値
TMCSR0
00000000B
MOD0 OUTE OUTL RELD INTE
UF CNTE TRG
(TMCSR:H)
000050H
TMCSR1
000054H
R/W
R/W
R/W
TRG
R/W
R/W
R/W
R/W
R/W
ソフトウェアトリガビット
0
変化なし,ほかへの影響なし
1
リロード後,カウント動作開始
カウント許可ビット
CNTE
0
カウント停止
1
カウント許可(起動トリガ待ち)
UF
アンダフロー割込み要求フラグビット
書込み時
読出し時
0
カウンタのアンダフローなし このビットのクリア
1
カウンタのアンダフローあり 変化なし,ほかへの影響なし
割込み要求許可ビット
INTE
0
割込み要求出力禁止
1
割込み要求出力許可
リロード選択ビット
RELD
0
ワンショットモード
1
リロードモード
端子出力レベル選択ビット
OUTL
ワンショットモード時
(RELD=0)
0
カウント中"H"の矩形波
カウント開始時"L"のトグル出力
1
カウント中"L"の矩形波
カウント開始時"H"のトグル出力
OUTE
0
端子機能
汎用ポート
リロードモード時
(RELD=1)
タイマ出力許可ビット
各チャネルに対応するレジスタと端子
TMCSR0
P11
TMCSR1
P06
R/W :リード/ライト可能
TOT0
タイマ出力
TOT1
1
:初期値
* :MOD0(bit7)については「11.4.1 タイマコントロールステータスレジスタ上位(TMCSR0/1H)」
を参照してください。
252
第 11 章 16 ビットリロードタイマ
表 11.4-2 タイマコントロールステータスレジスタ下位 (TMCSR0L/TMCSR1L) の各ビットの機能説明
ビット名
機 能
bit6
OUTE:
タイマ出力許可
ビット
・タイマ出力端子の出力の許可 / 禁止をするビットです。
・このビットが "0" の場合 , 端子は汎用ポートになり , "1" の場合 , 端子はタイ
マ出力端子になります。
・タイマ出力端子の出力波形はリロードモード時トグル出力となり , ワン
ショットモード時はカウント中を示す矩形波出力になります。
bit5
OUTL:
端子出力レベル
選択ビット
・タイマ出力端子の出力レベルを選択するレジスタです。
・このビットが "0" の場合と "1" の場合では , 端子レベルが逆になります。
bit4
RELD:
リロード選択
ビット
・リロード動作を許可するビットです。
・このビットが "1" の場合はリロードモードになり , アンダフローの発生と同
時にリロードレジスタの内容をカウンタにロードして , カウント動作を続け
ます。
・このビットが "0" の場合はワンショットモードとなり , アンダフローの発生
でカウント動作を停止します。
bit3
INTE:
割込み要求許可
ビット
・CPU への割込み要求出力の許可 / 禁止をするビットです。
・このビットと割込み要求フラグビット (UF) が "1" の場合 , 割込み要求を出力
します。
bit2
UF:
アンダフロー
割込み要求
フラグビット
・カウンタのアンダフローの発生で "1" に設定されます。
・書込み時は "0" でクリアされ , "1" では変化せずほかへの影響はありません。
・このビットは EI2OS の発生でもクリアされます。
bit1
CNTE:
カウント許可
ビット
・カウント動作の許可 / 禁止をするビットです。
・このビットに "1" を設定すると , 起動トリガ待ち状態になります。起動トリ
ガの発生で , 実際のカウントを開始します。
TRG:
ソフトウェア
トリガビット
・インターバルタイマ機能またはカウンタ機能をソフトウェアで起動するビッ
トです。
・このビットへの "1" の書込みでソフトウェアトリガがかかり , リロードレジ
スタの値をカウンタにロードしてカウント動作を開始します。"0" の書込み
は意味を持ちません。
・このビットによるトリガ入力は , CNTE=1 の場合 , 動作モードにかかわらず常
に有効です。
bit0
253
第 11 章 16 ビットリロードタイマ
16 ビットタイマレジスタ (TMR0, TMR1)
11.4.3
16 ビットタイマレジスタ (TMR0, TMR1) は , 16 ビットダウンカウンタのカウント値
を常時読み出すことができるレジスタです。
■ 16 ビットタイマレジスタ (TMR0, TMR1)
図 11.4-4 に , 16 ビットタイマレジスタ (TMR0, TMR1) のビット構成を示します。
図 11.4-4 16 ビットタイマレジスタ (TMR0, TMR1) のビット構成
TMR0: 000053H
TMR1: 000057H
TMR0: 000052H
TMR1: 000056H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
D15
R
D14
R
D13
R
D12
R
D11
R
D10
R
D9
R
D8
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
D7
R
D6
R
D5
R
D4
R
D3
R
D2
R
D1
R
D0
R
初期値
XXXXXXXXB
初期値
XXXXXXXXB
R :リードオンリ
X :不定
16 ビットダウンカウンタのカウンタ値を読み出すことができるレジスタです。カウン
タ動作を許可 (TMCSR0/TMCSR1 の CNTE=1) し , カウントを開始すると , 16 ビットリ
ロードレジスタに書き込まれた値が , このレジスタにロードされ , カウントダウンを開
始します。カウンタ停止状態 (TMCSR0/TMCSR1 の CNTE=0) では , このレジスタの値
が保持されます。
<注意事項>
• このレジスタの読出しは , カウンタ動作中でもできますが , 必ずワード転送命令 (MOVW
A, 003AH など ) を使用してください。
• 必ずワードアクセスしてください。
• 16 ビットタイマレジスタ (TMR0, TMR1) は , 読出し専用のレジスタですが , 書込み専
用の 16 ビットリロードレジスタ (TMRLR0/TMRLR1) と同一アドレスに配置されてい
ます。
したがって, 書込みを行うとTMRの値は影響を受けませんが, TMRLR0/TMRLR1
に対して書込みが行われます。
254
第 11 章 16 ビットリロードタイマ
16 ビットリロードレジスタ (TMRLR0/TMRLR1)
11.4.4
16 ビットリロードレジスタ (TMRLR0/TMRLR1) は , 16 ビットダウンカウンタへの
リロード値を設定するレジスタです。このレジスタに書き込まれた値がダウンカウ
ンタにロードされ , カウントダウンされます。
■ 16 ビットリロードレジスタ (TMRLR0/TMRLR1)
図 11.4-5 に , 16 ビットリロードレジスタ (TMRLR0/TMRLR1) のビット構成を示しま
す。
図 11.4-5 16 ビットリロードレジスタ (TMRLR0/TMRLR1) のビット構成
TMRLR0H: 000053H
TMRLR1H: 000057H
TMRLR0L: 000052H
TMRLR1L: 000056H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
D15
R
D14
R
D13
R
D12
R
D11
R
D10
R
D9
R
D8
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
D7
R
D6
R
D5
R
D4
R
D3
R
D2
R
D1
R
D0
R
初期値
XXXXXXXXB
初期値
XXXXXXXXB
R :リードオンリ
X :不定
16 ビットリロードタイマの動作モードに関係なく , カウンタ動作を禁止 (TMCSR0/
TMCSR1のCNTE=0) している状態で, このレジスタにカウンタの初期値を設定します。
カウンタ動作を許可 (TMCSR0/TMCSR1 の CNTE=1) し , カウンタを起動すると , この
レジスタに書き込まれた値からカウントダウンを開始します。
16 ビットリロードレジスタ (TMRLR0/TMRLR1) に設定した値は , リロードモードの場
合 , アンダフローの発生でカウンタにリロードされ , カウントダウンを続行します。ワ
ンショットモードの場合 , アンダフローの発生でカウンタは "FFFFH" で停止します。
<注意事項>
• このレジスタへの書込みは , カウンタ停止 (TMCSR0/TMCSR1 の CNTE=0) の状態で
行ってください。また , 必ずワード転送命令 (MOVW 003AH, A など ) で書き込んでく
ださい。
• 必ずワードアクセスしてください。
• 16 ビットリロードレジスタ (TMRLR0/TMRLR1) は , 機能的には書込み専用のレジスタ
ですが , 読出し専用の 16 ビットタイマレジスタ (TMR0, TMR1) と同一アドレスに配置
されています。したがって , 読出し値は TMR0, TMR1 の値となるため , INC/DEC 命令
などリードモディファイライト (RMW) 動作をする命令は使用できません。
255
第 11 章 16 ビットリロードタイマ
11.5
16 ビットリロードタイマの割込み
16 ビットリロードタイマは , カウンタのアンダフローで割込み要求を発生させるこ
とができます。また , 拡張インテリジェント I/O サービス (EI2OS) にも対応していま
す。
■ 16 ビットリロードタイマの割込み
16 ビットリロードタイマの割込み制御ビットと割込み要因は , 表 11.5-1 のようになっ
ています。
表 11.5-1 16 ビットリロードタイマの割込み制御ビットと割込み要因
16 ビットリロードタイマ
割込み要求フラグビット
TMCSR0/TMCSR1:UF
割込み要求許可ビット
TMCSR0/TMCSR1:INTE
割込み要因
16 ビットダウンカウンタ
(TMR0, TMR1) のアンダフロー
16 ビットリロードタイマでは , ダウンカウンタのアンダフロー (0000H → FFFFH) で , タ
イマコントロールステータスレジスタ (TMCSR0L/TMCSR1L, TMCSR0H/TMCSR1H)
の UF ビットが "1" にセットされます。割込み要求が許可 (TMCSR0/TMCSR1 の INTE=1)
されていると , 割込みコントローラに割込み要求を出力します。
■ 16 ビットリロードタイマの割込みと EI2OS
表 11.5-2 に , 16 ビットリロードタイマの割込みと EI2OS を示します。
表 11.5-2 16 ビットリロードタイマの割込みと EI2OS
チャネル
割込み番号
割込み制御レジスタ
ベクタテーブルのアドレス
レジスタ名
アドレス
下位
上位
バンク
EI2OS
16 ビットリロード
タイマ 0
#17 (11H)
ICR03
0000B3H
FFFFB8H
FFFFB9H
FFFFBAH
△
16 ビットリロード
タイマ 1
#28 (1CH)
ICR08
0000B8H
FFFF8CH
FFFF8DH
FFFF8EH
△
△:ICR03, ICR08 または , 割込みベクタを共有する割込み要因を使用しない場合使用可能
■ 16 ビットリロードタイマの EI2OS 機能
16 ビットリロードタイマは EI2OS 対応の回路を持っています。このためカウンタのア
ンダフローで EI2OS を起動させることができます。ただし , EI2OS は , 割込み制御レジ
スタ (ICR) を共有するほかの周辺機能が割込みを使用しない場合にだけ使用可能で
す。16 ビットリロードタイマ 0 で EI2OS を使用する場合には , DTP/ 外部割込み 1 を ,
16 ビットリロードタイマ 1 で EI2OS を使用する場合には , PPG タイマ 1 の割込みを禁
止する必要があります。
256
第 11 章 16 ビットリロードタイマ
16 ビットリロードタイマの動作説明
11.6
16 ビットリロードタイマの設定とカウンタの動作状態について説明します。
■ 16 ビットリロードタイマの設定
● 内部クロックモードの設定
インターバルタイマとして動作させるには , 図 11.6-1 の設定が必要です。
図 11.6-1 内部クロックモードの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
TMCSR
-
-
-
-
bit3
bit2
CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE
UF
"11B" 以外
◎
bit8
◎
bit7
◎
bit6
◎
bit5
bit4
◎
◎
◎
◎
bit1
bit0
CNTE TRG
1
◎
bit1
bit0
カウンタの初期値 ( リロード値 ) を設定
TMRLR
◎:使用ビット
1 :"1" を設定
● イベントカウントモードの設定
イベントカウンタとして動作させるには , 図 11.6-2 の設定が必要です。
図 11.6-2 イベントカウンタモードの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
TMCSR
-
-
-
-
bit3
bit2
CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE
UF
1
TMRLR
1
◎
bit8
◎
bit7
◎
bit6
◎
bit5
bit4
◎
◎
◎
◎
CNTE TRG
1
◎
カウンタの初期値 ( リロード値 ) を設定
DDR1
△
DDR0
△
◎:使用ビット
1 :"1" を設定
△ :使用する端子に対応するビットに "0" を設定
257
第 11 章 16 ビットリロードタイマ
■ カウンタの動作状態
カウンタの状態は , タイマコントロールステータスレジスタ (TMCSR0L/TMCSR1L,
TMCSR0H/TMCSR1H) の CNTE ビットと内部信号の WAIT 信号で決まります。設定可
能な状態として , 停止状態 (STOP 状態 ) , 起動トリガ待ち状態 (WAIT 状態 ) , 動作状態
(RUN 状態 ) があります。カウンタ状態遷移図を , 図 11.6-3 に示します。
図 11.6-3 カウンタ状態遷移図
STOP状態
CNTE=0, WAIT=1
TIN端子 :入力禁止
TO端子 :汎用ポート
リセット
カウンタ :停止時の値を保持
リセット直後は不定
CNTE=0
CNTE=0
CNTE=1
TRG=0
WAIT状態
CNTE=1, WAIT=1
TIN端子:トリガ入力のみ有効
TO端子 :初期値出力
カウンタ:停止時の値を保持
リセット直後ロードするまでは不定
TRG=1
(ソフトトリガ)
TINから外部トリガ
CNTE=1
TRG=1
UF=1&
RELD=0
(ワンショット
モード)
LOAD
RUN状態
CNTE=1, WAIT=0
TIN端子 :TIN端子として機能
TO端子
:TO端子として機能
カウンタ
UF=1&
RELD=1
(リロードモード)
CNTE=1, WAIT=0
リロードレジスタの内容をカウンタへロード
:動作
TRG=1
(ソフトトリガ)
ロード終了
:ハードウェアによる状態遷移
WAIT
TRG
CNTE
UF
RELD
258
:レジスタアクセスによる状態遷移
:WAIT信号(内部信号)
:タイマコントロールステータスレジスタ(TMCSR)のソフトウェアトリガビット
:タイマコントロールステータスレジスタ(TMCSR)のカウント許可ビット
:タイマコントロールステータスレジスタ(TMCSR)のアンダフロー割込み要求フラグビット
:タイマコントロールステータスレジスタ(TMCSR)のリロード選択ビット
第 11 章 16 ビットリロードタイマ
内部クロックモード ( リロードモード )
11.6.1
内部カウントクロックに同期して , 16 ビットカウンタをカウントダウンし , カウン
タのアンダフローで CPU に割込み要求を発生します。また , タイマ出力端子からト
グル波形を出力できます。
■ 内部クロックモード ( リロードモード ) の動作
カウント動作を許可 (TMCSR0/TMCSR1 の CNTE=1) し , ソフトウェアトリガビット
(TMCSR の TRG) または外部トリガでタイマ起動すると , 16 ビットリロードレジスタ
(TMRLR0/TMRLR1) の値をカウンタにロードして , カウント動作を開始します。カウ
ント許可ビットとソフトウェアトリガビットを同時に "1" にセットすると , カウント許
可と同時にカウントを開始します。
カウンタ値がアンダフロー (0000H → FFFFH) すると , 16 ビットリロードレジスタ
(TMRLR0/TMRLR1) の値をカウンタにロードして , カウント動作を継続します。この
とき , アンダフロー割込み要求フラグビット (UF) を "1" にセットし , 割込み要求許可
ビット (INTE) が "1" であれば割込み要求を発生します。
また , TOT 端子からはアンダフローごとに反転するトグル波形を出力できます。
● ソフトウェアトリガ動作
タイマコントロールステータスレジスタ (TMCSR0L/TMCSR1L, TMCSR0H/TMCSR1H)
の TRG ビットに "1" を書き込むとカウンタを起動します。図 11.6-4 に , リロードモー
ド時のソフトウェアトリガ動作を示します。
図 11.6-4 リロードモード時のソフトウェアトリガ動作
カウント
クロック
カウンタ
リロード
データ
-1
0000H
リロード
データ
-1
0000H
リロード
データ
-1
0000H
リロード
データ
-1
データロード信号
UFビット
CNTEビット
TRGビット
*
T
TO端子
*
T :マシンサイクル
:トリガ入力からリロードデータロードまで1Tの時間がかかります。
259
第 11 章 16 ビットリロードタイマ
● 外部トリガ動作
有効エッジ ( 立上り , 立下り , 両エッジ選択可能 ) が TIN 端子に入力されると , カウン
タを起動します。図 11.6-5 に , リロードモード時の外部トリガ動作を示します。
図 11.6-5 リロードモード時の外部トリガ動作
カウント
クロック
リロード
データ
カウンタ
-1
0000H
リロード
データ
-1
0000H
リロード
データ
-1
0000H
リロード
データ
-1
データロード信号
UFビット
CNTEビット
TIN端子
2T~2.5T
TO端子
*
T :マシンサイクル
:外部トリガ入力からリロードデータロードまで,2T~2.5Tの時間がかかります。
*
<注意事項>
TIN 端子へ入力するトリガパルス幅は , 2/φ 以上としてください。
● ゲート入力動作
有効レベル ("H" レベル , "L" レベル選択可能 ) が TIN 端子に入力されている間 , カウン
ト動作をします。図 11.6-6 に , リロードモード時のゲート入力動作を示します。
図 11.6-6 リロードモード時のゲート入力動作
カウント
クロック
カウンタ
リロードデータ
-1
-1
-1
0000H
リロード
データ
-1
-1
データロード信号
UFビット
CNTEビット
TRGビット
*
T
TIN端子
TO端子
*
T :マシンサイクル
:トリガ入力からリロードデータロードまで1Tの時間がかかります。
<注意事項>
TIN0/TIN1 端子へ入力するゲート入力のパルス幅は , 2/φ 以上としてください。
260
第 11 章 16 ビットリロードタイマ
内部クロックモード ( ワンショットモード )
11.6.2
内部カウントクロックに同期して , 16 ビットカウンタをカウントダウンし , カウン
タのアンダフローで CPU に割込み要求を発生します。また , TOT0/TOT1 端子から
カウント中を示す矩形波を出力できます。
■ 内部クロックモード ( ワンショットモード ) の動作
カウント動作を許可 (TMCSR0/TMCSR1 の CNTE=1) し , ソフトウェアトリガビット
(TMCSR0/TMCSR1 の TRG) または外部トリガでタイマ起動すると , カウント動作を開
始します。カウント許可ビットとソフトウェアトリガビットを同時に "1" にセットす
ると , カウント許可と同時にカウントを開始します。カウンタ値がアンダフロー (0000H
→ FFFFH) すると , "FFFFH" の状態でカウンタを停止します。このとき , アンダフロー
割込み要求フラグビット (UF) を "1" にセットし , 割込み要求許可ビット (INTE) が "1"
であれば割込み要求を発生します。
また , TOT 端子からはカウント中を示す矩形波を出力できます。
● ソフトウェアトリガ動作
タイマコントロールステータスレジスタ (TMCSR0L/TMCSR1L, TMCSR0H/TMCSR1H)
の TRG ビットに "1" を書き込むことで , カウンタを起動します。図 11.6-7 に , ワン
ショットモード時のソフトウェアトリガ動作を示します。
図 11.6-7 ワンショットモード時のソフトウェアトリガ動作
カウント
クロック
リロード
データ
カウンタ
-1
0000H FFFFH
リロード
データ
リロード
データ
-1
0000H FFFFH
データロード信号
UFビット
CNTEビット
TRGビット
*
T
TO端子
*
起動トリガ入力待ち
T :マシンサイクル
:トリガ入力からリロードデータロードまで1Tの時間がかかります。
261
第 11 章 16 ビットリロードタイマ
● 外部トリガ動作
有効エッジ ( 立上り , 立下り , 両エッジ選択可能 ) が TIN0/TIN1 端子に入力されると , カ
ウンタを起動します。図 11.6-8 に , ワンショットモード時の外部トリガ動作を示します。
図 11.6-8 ワンショットモード時の外部トリガ動作
カウント
クロック
カウンタ
リロード
データ
-1
0000H FFFFH
リロード
データ
-1
0000H FFFFH
データロード信号
UFビット
CNTEビット
TIN端子
*
2T~2.5T
TO端子
起動トリガ入力待ち
T :マシンサイクル
:外部トリガ入力からリロードデータロードまで,2T~2.5Tの時間がかかります。
*
<注意事項>
TIN 端子へ入力するトリガパルス幅は , 2/φ 以上としてください。
● ゲート入力動作
有効レベル ("H" レベル , "L" レベル選択可能 ) が TIN 端子に入力されている間 , カウン
ト動作を行います。図 11.6-9 に , ワンショットモード時のゲート入力動作を示します。
図 11.6-9 ワンショットモード時のゲート入力動作
カウント
クロック
リロード
データ
カウンタ
-1
0000H FFFFH
リロード
データ
-1
0000H FFFFH
データロード信号
UFビット
CNTEビット
TRGビット
T
*
TO端子
起動トリガ入力待ち
*
T :マシンサイクル
:トリガ入力からリロードデータロードまで1Tの時間がかかります。
<注意事項>
TIN 端子へ入力するゲート入力のパルス幅は , 2/φ 以上としてください。
262
第 11 章 16 ビットリロードタイマ
イベントカウントモード
11.6.3
TIN 端子からの入力エッジをカウントして , 16 ビットカウンタをカウントダウンし ,
カウンタのアンダフローで CPU に割込み要求を発生します。また , TOT0/TOT1 端
子からトグル波形または矩形波を出力できます。
■ イベントカウントモード
カウント動作を許可 (TMCSR0/TMCSR1 の CNTE=1) し , カウンタを起動 (TMCSR0/
TMCSR1 の TRG=1) すると , 16 ビットリロードレジスタ (TMRLR0/TMRLR1) の値がカ
ウンタにロードされ , TIN0/TIN1 端子に入力されたパルス ( 外部カウントクロック ) の
有効エッジ ( 立上り , 立下り , 両エッジ選択可能 ) を検出するたびにカウントダウンし
ます。カウント許可ビットとソフトウェアトリガビットを同時に "1" にセットすると ,
カウント許可と同時にカウントを開始します。
● リロードモード時の動作
カウンタ値がアンダフロー (0000H → FFFFH) すると , 16 ビットリロードレジスタ
(TMRLR0/TMRLR1) の値をカウンタにロードして , カウント動作を継続します。この
とき , アンダフロー割込み要求フラグビット (UF) を "1" にセットし , 割込み要求許可
ビット (TMCSR0/TMCSR1 の INTE) が "1" であれば割込み要求を発生します。また ,
TOT0/TOT1 端子からは , アンダフローごとに反転するトグル波形を出力できます。リ
ロードモード時のカウント動作を図 11.6-10 に示します。
図 11.6-10 リロードモード時のカウント動作
TIN端子
リロード
データ
カウンタ
-1
0000H
リロード
データ
-1
0000H
リロード
データ
-1
0000H
リロード
データ
-1
データロード信号
UFビット
CNTEビット
TRGビット
T
*
TO端子
*
T :マシンサイクル
:トリガ入力からリロードデータロードまで1Tの時間がかかります。
<注意事項>
TIN0/TIN1 端子へ入力されるクロックの "H" 幅および "L" 幅は , 4/φ 以上としてください。
263
第 11 章 16 ビットリロードタイマ
● ワンショットモード時の動作
カウンタ値がアンダフロー (0000H → FFFFH) すると , "FFFFH" の状態でカウンタを停止
します。このとき , アンダフロー要求フラグビット (UF) が "1" にセットされ , 割込み要
求出力許可ビット (INTE) が "1" であれば割込み要求を発生します。また , TOT0/TOT1
端子からは , カウント中を示す矩形波を出力できます。ワンショットモード時のカウン
タ動作を , 図 11.6-11 に示します。
図 11.6-11 ワンショットモード時のカウンタ動作
TIN端子
リロード
データ
カウンタ
-1
0000H FFFFH
リロード
データ
-1
0000H FFFFH
データロード信号
UFビット
CNTEビット
TRGビット
*
T
TO端子
*
起動トリガ入力待ち
T :マシンサイクル
:トリガ入力からリロードデータロードまで1Tの時間がかかります。
<注意事項>
TIN0/TIN1 端子へ入力されるクロックの "H" 幅および "L" 幅は , 4/φ 以上としてください。
264
第 11 章 16 ビットリロードタイマ
11.7
16 ビットリロードタイマの使用上の注意
16 ビットリロードタイマを使用する場合の注意点を示します。
■ 16 ビットリロードタイマの使用上の注意
● プログラムで設定する場合の注意
16 ビットリロードレジスタ (TMRLR0/TMRLR1) への書込みは , カウンタ動作停止
(TMCSR0/TMCSR1 の CNTE=0) の状態で行ってください。また , 16 ビットタイマレジ
スタ (TMR0, TMR1) の読出しは , カウンタ動作中でもできますが , 必ずワード転送命令
(MOVW A, dir など ) を使用してください。
タイマコントロールステータスレジスタ (TMCSR0L/TMCSR1L, TMCSR0H/TMCSR1H)
の CSL1, CSL0 ビットの変更は , カウンタ停止 (TMCSR0/TMCSR1 の CNTE=0) の状態
で行ってください。
● 割込みに関連する注意
タイマコントロールステータスレジスタ (TMCSR0L/TMCSR1L, TMCSR0H/TMCSR1H)
の UF ビットが "1" で , 割込み要求許可 (TMCSR0/TMCSR1 の INTE=1) された状態では ,
割込み処理から復帰できません。UF ビットは必ずクリアしてください。
16ビットリロードタイマは , 時計タイマと割込みベクタを共有しているため, 割込みを
使用する場合には , 割込み処理ルーチンで , 割込み要因をチェックするなどの注意が必
要です。
また , 16 ビットリロードタイマで EI2OS を使用する場合 , 時計タイマは , 割込みを禁止
する必要があります。
265
第 11 章 16 ビットリロードタイマ
11.8
16 ビットリロードタイマのプログラム例
16 ビットリロードタイマの内部クロックモードとイベントカウントモードのプログ
ラム例を示します。
■ 内部クロックモードのプログラム例
● 処理仕様
16 ビットリロードタイマで , 25ms のインターバルタイマ割込みを発生します。
リロードモードで使用し , 繰り返し割込みを発生させます。
外部トリガ入力は使用せず , ソフトウェアトリガで , タイマを起動します。
EI2OS は使用しません。
マシンクロック 16MHz, カウントクロック 2 μs とします。
【コーディング例】
ICR03 EQU
0000B3H
; 割込み制御レジスタ 03
TMCSR EQU
000050H
; タイマコントロールステータスレジスタ
TMR
EQU
000052H
;16 ビットタイマレジスタ
TMRLR EQU
000052H
;16 ビットリロードレジスタ
UF
EQU
TMCSR:2
; 割込み要求フラグビット
CNTE
EQU
TMCSR:1
; カウンタ動作許可ビット
TRG
EQU
TMCSR:0
; ソフトウェアトリガビット
;---------- メインプログラム ------------------------------------------------CODE
CSEG
START:
;
:
; スタックポインタ (SP) などは初期化済みとする
AND
CCR, #0BFH
; 割込みディセーブル
MOV
I:ICR03, #00H
; 割込みレベル 0( 最強 )
CLRB I:CNTE
; カウンタを一時停止
MOVW I:TMRLR, #30D3H ;25ms タイマのデータを設定
MOVW I:TMCSR, #00001000000011011B
; インターバルタイマ動作 , クロック 2 μs
; 外部トリガ禁止 , 外部出力禁止 ,
; リロードモード選択 , 割込み許可
; 割込みフラグクリア , カウンタスタート
MOV
ILM, #07H
;PS 内 ILM をレベル 7 に設定
OR
CCR, #40H
; 割込みイネーブル
LOOP: MOV
A, #00H
; 無限ループ
MOV
A, #01H
;
BRA
LOOP
;
;---------- 割込みプログラム ------------------------------------------------WARI:
CLRB I:UF
; 割込み要求フラグをクリア
;
:
;
ユーザ処理 ;
:
RETI
; 割込みから復帰
266
第 11 章 16 ビットリロードタイマ
CODE ENDS
;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS=0FFH
ORG
0FFB8H
; 割込み #17(11H) にベクタを設定
DSL
ORG
VECT
WARI
0FFDCH
DSL
START
DB
00H
ENDS
END
START
; リセットベクタ設定
; シングルチップモードに設定
■ イベントカウントモードのプログラム例
● 処理仕様
16 ビットリロードタイマ / カウンタで , 外部イベント入力端子に入力される , パルスの
立上りエッジを 10000 回カウントすると割込みを発生します。
ワンショットモードで動作させます。
外部トリガ入力は , 立上りエッジを選択します。
EI2OS は使用しません。
【コーディング例】
ICR03 EQU
0000B3H
;16 ビットリロードタイマ用割込み制御レジスタ
TMCSR EQU
000050H
; タイマコントロールステータスレジスタ
TMR
EQU
000052H
;16 ビットタイマレジスタ
TMRLR EQU
000052H
;16 ビットリロードレジスタ
DDR1 EQU
000011H
; ポートデータレジスタ
UF
EQU
TMCSR:2
; 割込み要求フラグビット
CNTE EQU
TMCSR:1
; カウンタ動作許可ビット
TRG
EQU
TMCSR:0
; ソフトウェアトリガビット
;---------- メインプログラム ------------------------------------------------CSEG
START:
;
:
; スタックポインタ (SP) などは初期化済みとする
AND
CCR, #0BFH
; 割込みディセーブル
MOV
I:ICR09, #00H
; 割込みレベル 0( 最強 )
MOV
I:DDR1, #00H
;P12/TIN0 端子を入力に設定
CLRB I:CNTE
; カウンタを一時停止
MOVW I:TMRLR, #2710H ; リロード値 10000 回の設定
MOVW I:TMCSR, #0000110010001011B
; カウンタ動作 , 外部トリガ , 立上りエッジ ,
; 外部出力禁止
; ワンショットモード選択 , 割込み許可
; 割込みフラグクリア , カウンタスタート
MOV
ILM, #07H
;PS 内 ILM をレベル 7 に設定
OR
CCR, #40H
; 割込みイネーブル
LOOP: MOV
A, #00H
; 無限ループ
MOV
A, #01H
;
BRA
LOOP
;
267
第 11 章 16 ビットリロードタイマ
;---------- 割込みプログラム ------------------------------------------------WARI:
CLRB I:UF
; 割込み要求フラグをクリア
;
:
;
ユーザ処理
;
:
RETI
; 割込みから復帰
CODE ENDS
;---------- ベクタ設定 ------------------------------------------------------VECT CSEG ABS=0FFH
ORG
0FF84H
; 割込み #30(1EH) にベクタを設定
DSL
ORG
DSL
DB
VECT
END
268
WARI
0FFDCH
START
00H
ENDS
START
; リセットベクタ設定
; シングルチップモードに設定
第 12 章
リアルタイム時計タイマ
この章では , リアルタイム時計タイマの機能と動作
について説明します。
12.1 リアルタイム時計タイマの概要
12.2 リアルタイム時計タイマのレジスタ
269
第 12 章 リアルタイム時計タイマ
12.1
リアルタイム時計タイマの概要
リアルタイム時計タイマは , リアルタイム時計タイマ制御レジスタ , サブ秒データレ
ジスタ , 秒 / 分 / 時間データレジスタ , 1/2 クロック分周器 , 21 ビットプリスケーラ
および秒 / 分 / 時間カウンタから構成されています。MCU の発振周波数は , 所定の
リアルタイム時計タイマの動作を行うために , 4MHz であることが前提になっていま
す。リアルタイム時計タイマは , リアルワールドタイマとして動作してリアルワー
ルド時間情報を提供します。
■ リアルタイム時計タイマのブロックダイヤグラム
図 12.1-1 に , リアルタイム時計タイマのブロックダイヤグラムを示します。
図 12.1-1 リアルタイム時計タイマのブロックダイヤグラム
発振クロック
OE
21ビット
プリスケーラ
1/2クロック
分周器
OE
WOT
CO
EN
サブ秒
レジスタ
UPDT
ST
CI
EN
LOAD
秒カウンタ
分カウンタ
CO
時間カウンタ
CO
6ビット
6ビット
CO
5ビット
秒/分/時間 レジスタ
INTE0 INT0
INTE1 INT1
INTE2 INT2
INTE3 INT3
IRQ #30
270
第 12 章 リアルタイム時計タイマ
12.2
リアルタイム時計タイマのレジスタ
リアルタイム時計タイマのレジスタには , 次の 5 種類があります。
• リアルタイム時計タイマ制御レジスタ (WTCRL, WTCRH)
• サブ秒データレジスタ (WTBR)
• 秒データレジスタ (WTSR)
• 分データレジスタ (WTMR)
• 時間データレジスタ (WTHR)
■ リアルタイム時計タイマのレジスタ一覧
図 12.2-1 にリアルタイム時計タイマのレジスタ一覧を示します。
図 12.2-1 リアルタイム時計タイマのレジスタ一覧
リアルタイム時計タイマ制御レジスタ上位
15
14
13
INTE3
INT3
読出し / 書込み→ (R/W)
(0)
初期値→
(R/W)
(0)
アドレス : 000059H
12
11
INTE2
INT2
(R/W)
(0)
(R/W)
(0)
8
←ビット番号
INTE0
INT0
WTCRH
(R/W)
(0)
(R/W)
(0)
10
9
INTE1
INT1
(R/W)
(0)
(R/W)
(0)
リアルタイム時計タイマ制御レジスタ下位
7
アドレス : 000058H
TST2
読出し / 書込み→ (R/W)
(0)
初期値→
6
5
4
3
2
1
0
←ビット番号
TST1
(R/W)
(0)
TST0
(R/W)
(0)
-
-
UPDT
(R/W)
(0)
OE
(R/W)
(0)
ST
(R/W)
(0)
WTCRL
サブ秒データレジスタ
7
6
5
4
3
2
1
0
←ビット番号
アドレス : 00395CH
-
-
-
D20
D19
D18
D17
D16
WTBR
読出し / 書込み→
初期値→
-
-
-
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
←ビット番号
WTBR
サブ秒データレジスタ
アドレス : 00395BH
D15
読出し / 書込み→ (R/W)
(X)
初期値→
D14
D13
D12
D11
D10
D9
D8
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
6
5
4
3
2
1
0
←ビット番号
D6
(R/W)
(X)
D5
(R/W)
(X)
D4
(R/W)
(X)
D3
(R/W)
(X)
D2
(R/W)
(X)
D1
(R/W)
(X)
D0
(R/W)
(X)
WTBR
サブ秒データレジスタ
7
アドレス : 00395AH
D7
読出し / 書込み→ (R/W)
(X)
初期値→
( 続く )
271
第 12 章 リアルタイム時計タイマ
( 続き )
秒データレジスタ
アドレス : 00395DH
読出し / 書込み→
初期値→
15
14
13
12
11
10
9
8
←ビット番号
-
-
S5
(R/W)
(X)
S4
(R/W)
(X)
S3
(R/W)
(X)
S2
(R/W)
(X)
S1
(R/W)
(X)
S0
(R/W)
(X)
WTSR
分データレジスタ
7
6
5
4
3
2
1
0
←ビット番号
アドレス : 00395EH
-
-
M5
M4
M3
M2
M1
M0
WTMR
読出し / 書込み→
初期値→
-
-
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
時間データレジスタ
272
15
14
13
12
11
10
9
8
←ビット番号
アドレス : 00395FH
-
-
-
H4
H3
H2
H1
H0
WTHR
読出し / 書込み→
初期値→
-
-
-
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
第 12 章 リアルタイム時計タイマ
12.2.1
リアルタイム時計タイマ制御レジスタ
リアルタイム時計タイマ制御レジスタは , リアルタイム時計タイマの起動・停止 , 割
込みの制御や外部出力端子の設定などを行います。
■ リアルタイム時計タイマ制御レジスタのビット構成
図 12.2-2 にリアルタイム時計タイマ制御レジスタのビット構成を示します。
図 12.2-2 リアルタイム時計タイマ制御レジスタのビット構成
リアルタイム時計タイマ制御レジスタ上位
15
14
13
INTE3
INT3
読出し / 書込み→ (R/W)
(0)
初期値→
(R/W)
(0)
アドレス : 000059H
12
11
INTE2
INT2
(R/W)
(0)
(R/W)
(0)
8
←ビット番号
INTE0
INT0
WTCRH
(R/W)
(0)
(R/W)
(0)
10
9
INTE1
INT1
(R/W)
(0)
(R/W)
(0)
リアルタイム時計タイマ制御レジスタ下位
7
アドレス : 000058H
TST2
読出し / 書込み→ (R/W)
(0)
初期値→
6
5
4
3
2
1
0
←ビット番号
TST1
(R/W)
(0)
TST0
(R/W)
(0)
-
-
UPDT
(R/W)
(0)
OE
(R/W)
(0)
ST
(R/W)
(0)
WTCRL
【bit15~bit8】
INT3~INT0, INTE3~INTE0:割込みフラグおよび割込みイネーブルフラグ
INT3 ~ INT0 は割込みフラグです。これらのフラグはサブ秒カウンタ , 秒カウンタ , 分
カウンタおよび時間カウンタがそれぞれオーバフローしたときにセットされます。も
し対応する INTE ビットが "1" であるときに INT ビットがセットされたとすれば , リア
ルタイム時計タイマは割込みの信号を発生します。これらのフラグは秒 / 分 / 時間 / 日
ごとに割込みの信号を発生するようになっています。
INT ビットに "0" を書き込むと各フラグはクリアされますが , "1" を書き込んでも効果
はありません。INT ビットに対して何らかのリードモディファイライト系命令を実行
すると "1" が読み出されることになります。
【bit7 ~ bit5】TST2 ~ TST0:テストビット
このビット群はデバイステストのために用意されたものです。ユーザアプリケーショ
ンにおいて , それらは "000B" にセットされなければなりません。
【bit2】UPDT:書換えビット
UPDT ビットは , 秒 / 分 / 時間カウンタ値を変更するために用意されたものです。
カウンタ値を変更するためには変更データを秒 / 分 / 時間レジスタに書き込んでくださ
い。次に UPDT ビットを "1" にセットしてください。レジスタ値は 21 ビットプリス
ケーラからの次の CO 信号時にカウンタにロードされます。UPDT ビットは , カウンタ
値が書き換えられたときに , ハードウェアによりリセットされます。ただし , ソフト
ウェアによるセット動作とハードウェアによるリセット動作が同時に生じた場合には,
UPDT ビットはリセットされません。
UPDT ビットに "0" を書き込んでも効果はなく , リードモディファイライト系命令は "0"
を読み出す結果となります。
273
第 12 章 リアルタイム時計タイマ
<注意事項>
秒カウンタが 59 秒を示しているとき , UPDT ビットをセットしてもカウンタ値は変更さ
れず , このビットはクリアされます。このため , ST ビットによりカウンタ値を変更してく
ださい。
【bit1】OE:出力許可ビット
OE ビットが "1" にセットされたとき , WOT 外部端子はリアルタイム時計タイマ用の出
力として機能します。その他の場合には , 汎用 I/O または他のペリフェラルブロックと
して使用することができます。
【bit0】ST:開始ビット
ST ビットが "1" にセットされたとき , リアルタイム時計タイマは秒 / 分 / 時間値を各レ
ジスタからロードして , その動作を開始します。ST ビットが "0" にリセットされたと
きに , すべてのカウンタおよびプリスケーラは "0" にリセットされて停止します。
274
第 12 章 リアルタイム時計タイマ
12.2.2
サブ秒データレジスタ
サブ秒データレジスタは , 発振クロックを分周する 21 ビットプリスケーラのリロー
ド値を格納します。リロード値は , 通常 21 ビットプリスケーラの出力が正確に 1 秒
周期となるように設定されます。
■ サブ秒データレジスタのビット構成
図 12.2-3 にサブ秒データレジスタのビット構成を示します。
図 12.2-3 サブ秒データレジスタのビット構成
サブ秒データレジスタ
7
6
5
4
3
2
1
0
←ビット番号
アドレス : 00395CH
-
-
-
D20
D19
D18
D17
D16
WTBR
読出し / 書込み→
初期値→
-
-
-
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
サブ秒データレジスタ
アドレス : 00395BH
15
14
13
12
11
10
9
8
←ビット番号
D15
D14
D13
D12
D11
D10
D9
D8
WTBR
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
6
5
4
3
2
1
0
←ビット番号
D6
(R/W)
(X)
D5
(R/W)
(X)
D4
(R/W)
(X)
D3
(R/W)
(X)
D2
(R/W)
(X)
D1
(R/W)
(X)
D0
(R/W)
(X)
WTBR
読出し / 書込み→ (R/W)
(X)
初期値→
サブ秒データレジスタ
7
アドレス : 00395AH
D7
読出し / 書込み→ (R/W)
(X)
初期値→
【bit20 ~ bit0】D20 ~ D0
サブ秒データレジスタは , 21 ビットプリスケーラに対するリロード値を記憶するもの
です。この値は , リロードカウンタが "0" に達した後にリロードされます。すべての 3
バイトを変更するときには , リロード動作が書込み命令どうしの間に実行されないよ
うに注意してください。そうしないと , 21 ビットプリスケーラは新たなデータバイト
と古いデータバイトを組み合せた , 誤った値をロードしてしまいます。通常は , 開始
ビットが "0" の間に , サブ秒レジスタを書き換えることを推奨します。もし , サブ秒レ
ジスタが "0" にセットされると , 21 ビットプリスケーラは全く動作しません。
入力クロック周波数は , 常に発振クロック周波数と等しくなるように設計されており ,
4MHz が意図されています。21 ビットプリスケーラのリロード値は , 典型的には 16 進
数で 1E847F であり , これは "27 × 56-1" に等しくなります。このため , これらの 2 つの
プリスケーラの組合せにより , 厳密に 1 秒のクロック信号が与えられることになりま
す。
275
第 12 章 リアルタイム時計タイマ
12.2.3
秒 / 分 / 時間データレジスタ
秒 / 分 / 時間データレジスタは時間情報を記憶します。それは秒 , 分および時間をバ
イナリで表示します。
これらのレジスタを読み取ると , カウンタ値が単純に戻されます。しかし , これらの
レジスタは書込みを伴うものであり , UPDT ビットが "1" にセットされた後は , 書込
みデータが各カウンタ内にロードされます。
■ 秒 / 分 / 時間データレジスタのビット構成
図 12.2-4 に秒 / 分 / 時間データレジスタのビット構成を示します。
図 12.2-4 秒 / 分 / 時間データレジスタのビット構成
秒データレジスタ
アドレス : 00395DH
読出し / 書込み→
初期値→
15
14
13
12
11
10
9
8
←ビット番号
-
-
S5
(R/W)
(X)
S4
(R/W)
(X)
S3
(R/W)
(X)
S2
(R/W)
(X)
S1
(R/W)
(X)
S0
(R/W)
(X)
WTSR
分データレジスタ
7
6
5
4
3
2
1
0
←ビット番号
アドレス : 00395EH
-
-
M5
M4
M3
M2
M1
M0
WTMR
読出し / 書込み→
初期値→
-
-
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
←ビット番号
WTHR
時間データレジスタ
アドレス : 00395FH
-
-
-
H4
H3
H2
H1
H0
読出し / 書込み→
初期値→
R/W: リード / ライト可
X: 不定値
-
-
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
秒 / 分 / 時間データレジスタには , 3 つのバイトレジスタがあります。レジスタから得
られる値が一貫していることを確認してください。
すなわち , "1 時間 59 分 59 秒 " という値が得られたとすると , それは "0 時間 59 分 59
秒 ", "1 時間 0 分 0 秒 " または "2 時間 0 分 0 秒 " かもしれません。
同様に , MCU の動作クロックが発振クロックの半分の場合 (PLL が停止したとき ) , こ
れらのレジスタからのリード値は誤っている可能性があります。これは , 読出し動作と
カウント動作の同期によるものです。このため , 使用する上では秒割込みで読出し命令
をトリガすることを推奨いたします。
276
第 13 章
PPG タイマ
この章では , PPG タイマについて説明します。
13.1 PPG タイマの概要
13.2 PPG タイマのブロックダイヤグラム
13.3 PPG タイマのレジスタ
13.4 PPG タイマの動作説明
277
第 13 章 PPG タイマ
PPG タイマの概要
13.1
PPG タイマは , プリスケーラ , 16 ビットダウンカウンタ 1 本 , 周期設定用バッファ
付き 16 ビットデータレジスタ , デューティ設定用バッファ付き 16 ビットコンペア
レジスタおよび端子制御部から構成されています。
外部またはソフトウェアトリガに同期させたパルスを出力することができます。出
力するパルスは , 16 ビット 2 個のレジスタ値を書き換えることで , 周期とデュー
ティを任意に変えることができます。
■ 概要
● PWM 機能
トリガに同期させ , 上記レジスタの値を書き換えながらプログラマブルにパルスを出
力することができます。
外付け回路により , D/A コンバータとしても使用できます。
● ワンショット機能
トリガ入力のエッジを検出し , 単一パルスを出力することができます。
● 端子制御
PPG タイマは , 以下の端子制御を行います。
• デューティ一致で , "1" にセット ( 優先 )
• カウンタボローで , "0" にリセット
• 出力値固定モードがあり , オール "L" ( またはオール "H") を簡単に出力可能
• 極性指定可能
● 16 ビットダウンカウンタ
カウンタ動作クロックは , 4 種類から選択できます。内部クロックは , 4 種類あります
(φ, φ/4, φ/16, φ/64)。
φ:マシンクロック
カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化することができます。
● 割込み要求
PPG タイマは , 以下の条件で割込み要求を発生します。
• タイマ起動
• カウンタボロー発生 ( 周期一致 )
• デューティ一致発生
• カウンタボロー発生 ( 周期一致 ) またはデューティ一致発生
• 外部トリガで複数チャネルの同時起動が設定できます。また , 動作中の再起動も設
定可能です。
278
第 13 章 PPG タイマ
■ PPG タイマの割込みと EI2OS
表 13.1-1 に , PPG タイマの割込みと EI2OS を示します。
表 13.1-1 PPG タイマの割込みと EI2OS
割込みレベル設定レジスタ
チャネル
ベクタテーブルのアドレス
割込み番号
レジスタ名
アドレス
下位
上位
バンク
EI2OS
PPG タイマ 0
#25 (19H)
ICR07
0000B7H
FFFF98H
FFFF99H
FFFF9AH
△
PPG タイマ 1
#27 (1BH)
ICR08
0000B8H
FFFF90H
FFFF91H
FFFF92H
△
PPG タイマ 2
#29 (1DH)
ICR09
0000B9H
FFFF88H
FFFF89H
FFFF8AH
○
○ : 使用可能
△ : ICR07, ICR08 または割込みベクタを共有する割込み要因を使用しない場合 , 使用可能
279
第 13 章 PPG タイマ
13.2
PPG タイマのブロックダイヤグラム
PPG タイマのブロックダイヤグラムを記載します。
■ PPG タイマのブロックダイヤグラム
図 13.2-1 に , PPG タイマのブロックダイヤグラムを示します。
図 13.2-1 PPG タイマのブロックダイヤグラム
PDUT
PCSR
プリスケーラ
1/1
1/4
ロード
CK
1/16
CMP
PCNT
1/64
16ビットダウンカウンタ
スタート
ボロー
PPGマスク
マシンクロック
S
Q
PPG出力
R
反転ビット
トリガ入力
P05/SCK1/TRG
エッジ検出
ソフトトリガ
280
割込み選択
イネーブル
割込み IRQ #25,#27,#29
第 13 章 PPG タイマ
13.3
PPG タイマのレジスタ
PPG タイマのレジスタ一覧について記載します。
■ PPG タイマのレジスタ一覧
図 13.3-1 に , PPG タイマのレジスタ一覧を示します。
図 13.3-1 PPG タイマのレジスタ一覧
bit15 bit14 bit13 bit12 bit11 bit10
PPG制御ステータスレジスタ上位
アドレス: ch.0 00002B H
CNTE
アドレス: ch.1 00002D H
アドレス: ch.2 00002F H
R/W
(0)
STGR
MDSE
R/W
(0)
R/W
(0)
bit7
PPG制御ステータスレジスタ下位
アドレス: ch.0 00002A H
EGS1
アドレス: ch.1 00002C H
アドレス: ch.2 00002E H
R/W
(0)
EGS0
]R/W
(0)
bit6
RTRG
R/W
(0)
bit5
CKS1
CKS0
PGMS
R/W
(0)
R/W
(0)
R/W
(0)
bit4
bit3
bit2
IRS0
POEN
OSEL
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R
(1)
R
(1)
bit7
PPGダウンカウンタレジスタ下位
アドレス:ch.0 003920 H
DC07
アドレス:ch.1 003928 H
アドレス:ch.2 003930 H
R
(1)
DC06
] R
(1)
bit6
DC12
2
R
(1)
bit5
DC10
DC09
DC08
R
(1)
R
(1)
R
(1)
R
(1)
bit4
bit3
bit2
DC05
DC04
DC03
DC02
DC01
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
CS15
CS14
CS13
W
(X)
W
(X)
W
(X)
bit7
PPG 周期設定レジスタ下位
アドレス:ch.0 003922 H
アドレス:ch.1 00392A H
アドレス:ch.2 003932 H
CS07
W
(X)
CS06
] W
(X)
bit6
CS05
W
(X)
CS12
2
W
(X)
bit5
CS04
W
(X)
bit9
DC11
bit15 bit14 bit13 bit12 bit11 bit10
PPG 周期設定レジスタ上位
アドレス:ch.0 003923 H
アドレス:ch.1 00392B H
アドレス:ch.2 003933 H
bit1
IRS1
DC13
CS11
CS10
CS09
W
(X)
W
(X)
W
(X)
bit4
CS03
W
(X)
bit3
CS02
W
(X)
bit2
CS01
W
(X)
PCNTH0~
PCNTH2
- ← 読出し/書込み
(-) ← 初期値
IRQF
DC14
bit8
-
IREN
bit15 bit14 bit13 bit12 bit11 bit10
PPGダウンカウンタレジスタ上位
アドレス: ch.0 003921 H
DC15
アドレス: ch.1 003929 H
アドレス: ch.2 003931 H
R
(1)
bit9
bit1
bit0
PCNTL0~
PCNTL2
← 読出し/書込み
← 初期値
bit8
PDCR0~
PDCR2
← 読出し/書込み
← 初期値
bit0
PDCR0~
PDCR2
DC00
R ← 読出し/書込み
(1) ← 初期値
bit9
bit8
PCSR0~
PCSR2
CS08
W ← 読出し/書込み
(X) ← 初期値
bit1
CS00
bit0
PCSR0~
PCSR 2
W ← 読出し/書込み
(X) ← 初期値
(続く)
281
第 13 章 PPG タイマ
( 続き )
bit15 bit14 bit13 bit12 bit11 bit10
PPGデューティ設定レジスタ上位
アドレス: ch.0 003925 H
DU15
アドレス: ch.1 00392D H
アドレス: ch.2 003935 H
W
(X )
DU14
DU13
DU12
DU11
DU10
DU09
DU08
W
(X )
W
(X )
W
(X )
W
(X )
W
(X )
W
(X )
W
(X )
bit7
PPGデューティ設定レジスタ下位
アドレス: ch.0 003924 H
DU07
アドレス: ch.1 00392C H
アドレス: ch.2 003934 H
W
(X )
282
bit9
bit6
bit5
bit4
bit3
bit2
DU06
DU05
DU04
DU03
DU02
DU01
W
(X )
W
(X )
W
(X )
W
(X )
W
(X )
W
(X)
bit1
DU00
bit8
PDUT0~
PDUT2
← 読出し/書込み
← 初期値
bit0
PDUT0~
PDUT2
W ← 読出し/書込み
(X ) ← 初期値
第 13 章 PPG タイマ
13.3.1
PPG タイマのレジスタ詳細説明
PPG タイマには , 次の 4 つのレジスタがあります。
• PPG 制御ステータスレジスタ (PCNTH0 ~ PCNTH2, PCNTL0 ~ PCNTL2)
• PPG ダウンカウンタレジスタ (PDCR0 ~ PDCR2)
• PPG 周期設定レジスタ (PCSR0 ~ PCSR2)
• PPG デューティ設定レジスタ (PDUT0 ~ PDUT2)
■ PPG 制御ステータスレジスタ (PCNTH0 ~ PCNTH2, PCNTL0 ~ PCNTL2)
図 13.3-2 に PPG 制御ステータスレジスタ (PCNT ~ 2) のビット構成を示します。
図 13.3-2 PPG 制御ステータスレジスタ (PCNTH0 ~ PCNTH2, PCNTL0 ~ PCNTL2) のビット構成
bit15 bit14 bit13 bit12 bit11 bit10
PPG制御ステータスレジスタ上位
アドレス: ch.0 00002B H
CNTE
アドレス: ch.1 00002D H
アドレス: ch.2 00002F H
R/W
(0)
STGR
MDSE
R/W
(0)
R/W
(0)
bit7
PPG制御ステータスレジスタ下位
アドレス: ch.0 00002A H
EGS1
アドレス: ch.1 00002C H
アドレス: ch.2 00002E H
R/W
(0)
bit6
RTRG
CKS1
CKS0
PGMS
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
bit5
bit4
bit3
bit2
bit9
bit8
PCNTH0~
PCNTH2
-
- ← 読出し/書込み
(-) ← 初期値
bit1
EGS0
IREN
IRQF
IRS1
IRS0
POEN
OSEL
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
bit0
PCNTL0~
PCNTL2
← 読出し/書込み
← 初期値
【bit15】CNTE: タイマ許可ビット
16 ビットダウンカウンタの動作を許可するビットです。
タイマ許可
CNTE
0
停止 ( 初期値 )
1
許可
【bit14】STGR: ソフトウェアトリガビット
このビットに "1" を書き込むことにより , ソフトウェアトリガがかかります。
STGR ビットの読出し値は常に "0" です。
【bit13】MDSE: モード選択ビット
連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択しま
す。動作中の書換えはできません。
モード選択
MDSE
0
PWM 動作 ( 初期値 )
1
ワンショット動作
283
第 13 章 PPG タイマ
【bit12】RTRG: 再起動許可ビット
ソフトウェアトリガによる再起動を許可するビットです。動作中の書換えはできませ
ん。
再起動許可
RTRG
0
再起動禁止 ( 初期値 )
1
再起動許可
【bit11, bit10】CKS1, CKS0: カウンタクロック選択ビット
16 ビットダウンカウンタのカウントクロックを選択します。動作中の書換えはできま
せん。
周期
CKS1
CKS0
0
0
φ ( 初期値 )
0
1
φ/4
1
0
φ/16
1
1
φ/64
φ:マシンクロック
【bit9】PGMS:PPG 出力マスク選択ビット
このビットに "1" を書き込むことにより , モード設定 , 周期設定値 , デューティ設定値
にかかわらず , PPG 出力を "0" または "1" にマスクすることができます。
PGMS に "1" を書き込んだときの PPG タイマの出力レベルを下表に示します。
PPG 出力
極性
通常極性
"L"
極性反転
"H"
通常極性時にオール "H" または反転極性時にオール "L" を出力したい場合は , 周期設定
レジスタとデューティ設定レジスタに同値を書き込むと , 上記マスク値の反転を出力
することができます。
【bit8】未定義ビットです。
リードした場合は不定値 , ライトした場合は動作に影響しません。
【bit7, bit6】EGS1, EGS0: トリガ入力エッジ選択ビット
どのモードを選択していても , ソフトウェアトリガのビットに "1" を書き込むと , ソフ
トウェアトリガは有効になります。
284
エッジ選択
EGS1
EGS0
0
0
無効 ( 初期値 )
0
1
立上りエッジ
1
0
立下りエッジ
1
1
両エッジ
第 13 章 PPG タイマ
【bit5】IREN: 割込み要求許可ビット
PPG タイマの割込み許可ビットです。IREN ビットが "1" の場合 , 割込みフラグ (bit4 の
IRQF) が "1" にセットされると割込みが発生します。
割込み要求許可
IREN
0
割込み禁止 ( 初期値 )
1
割込み許可
【bit4】IRQF: 割込み要求フラグ
bit5 の IREN が許可されていて bit3, bit2 の IRS1, IRS0 で選択した割込み要因が発生す
ると IRQF ビットがセットされ , CPU に割込み要求を発生します。
IRQF ビットは読出し / 書込みが可能です。クリアは , "0" 書込みのみで行われ , "1" を
書き込んでもビット値は変化しません。リードモディファイライト系命令における読
出し値は , ビット値にかかわらず "1" です。
【bit3, bit2】IRS1, IRS0: 割込み要因選択ビット
bit4 IRQF をセットする要因を選択します。
IRS1
エッジ選択
IRS0
0
0
ソフトウェアトリガまたは有効トリガ入力あり ( 初期値 )
0
1
カウンタボロー ( 周期一致 )
1
0
通常極性 PPG ↑または反転極性 PPG ↓ ( デューティ一致 )
1
1
カウンタボローまたは通常極性 PPG ↑または反転極性 PPG ↓
【bit1】POEN:PPG 出力許可ビット
"1" に設定することにより , PPG 出力が端子から出力されます。
PPG 出力許可
POEN
0
汎用ポート ( 初期値 )
1
PPG 出力端子
【bit0】OSEL:PPG 出力極性指定ビット
PPG 出力の極性を設定します。
PPG 出力極性
OSEL
0
通常極性 ( 初期値 )
1
反転極性
bit9 PGMS との組合せで , 以下のようになります。
PPG 出力
PGMS
OSEL
0
0
通常極性 ( 初期値 )
0
1
反転極性
1
0
出力 "L" 固定
1
1
出力 "H" 固定
285
第 13 章 PPG タイマ
極性
リセット後
通常極性
"L" 出力
反転極性
"H" 出力
デューティ一致
カウンタ一致
■ PPG ダウンカウンタレジスタ (PDCR)
PDCR レジスタは , 16 ビットダウンカウンタの値を読み出すことができます。
PDCR レジスタは , ワードでアクセスしてください。
図 13.3-3 に PPG ダウンカウンタレジスタ (PDCR) のビット構成を示します。
図 13.3-3 PPG ダウンカウンタレジスタ (PDCR) のビット構成
bit15 bit14 bit13 bit12 bit11 bit10
PPGダウンカウンタレジスタ上位
アドレス: ch.0 003921 H
DC15
アドレス: ch.1 003929 H
アドレス: ch.2 003931 H
R
(1)
DC14
DC13
DC12
DC11
DC10
DC09
DC08
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
bit7
PPGダウンカウンタレジスタ下位
アドレス:ch.0 003920 H
DC07
アドレス:ch.1 003928 H
アドレス:ch.2 003930 H
R
(1)
bit9
bit6
bit5
bit4
bit3
bit2
DC06
DC05
DC04
DC03
DC02
DC01
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
bit1
bit8
PDCR0~
PDCR2
← 読出し/書込み
← 初期値
bit0
PDCR0~
PDCR2
DC00
R ← 読出し/書込み
(1) ← 初期値
■ PPG 周期設定レジスタ (PCSR)
PCSR レジスタは , 周期を設定するためのバッファ付きレジスタです。バッファからの
転送は , カウンタボローで行われます。
周期設定レジスタの初期設定時および書換え時は , 周期設定レジスタへ書込み後 , 必ず
デューティ設定レジスタへの書込み動作を行ってください。
PCSR レジスタは , ワードでアクセスしてください。
図 13.3-4 に PPG 周期設定レジスタ (PCSR) のビット構成を示します。
図 13.3-4 PPG 周期設定レジスタ (PCSR) のビット構成
bit15 bit14 bit13 bit12 bit11 bit10
PPG 周期設定レジスタ上位
アドレス:ch.0 003923 H
アドレス:ch.1 00392B H
アドレス:ch.2 003933 H
CS15
CS14
CS13
CS12
CS11
CS10
CS09
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
bit7
PPG 周期設定レジスタ下位
アドレス:ch.0 003922 H
アドレス:ch.1 00392A H
アドレス:ch.2 003932 H
286
bit6
CS07
CS06
CS05
W
(X)
W
(X)
W
(X)
bit5
CS04
W
(X)
bit4
CS03
W
(X)
bit3
CS02
W
(X)
bit2
CS01
W
(X)
bit9
bit8
PCSR0~
PCSR2
CS08
W ← 読出し/書込み
(X) ← 初期値
bit1
CS00
bit0
PCSR0~
PCSR2
W ← 読出し/書込み
(X) ← 初期値
第 13 章 PPG タイマ
■ PPG デューティ設定レジスタ (PDUT)
PDUT レジスタは , デューティを設定するためのバッファ付きレジスタです。バッファ
からの転送は , カウンタボローで行われます。
周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に
オール "H" を , 反転極性時にオール "L" を出力します。
PCSR < PDUT となるような値を設定しないでください。PPG 出力が不定となります。
PDUT レジスタは , ワードでアクセスしてください。
図 13.3-5 に PPG デューティ設定レジスタ (PDUT) のビット構成を示します。
図 13.3-5 PPG デューティ設定レジスタ (PDUT) のビット構成
bit15 bit14 bit13 bit12 bit11 bit10
PPGデューティ設定レジスタ上位
アドレス: ch.0 003925 H
アドレス: ch.1 00392D H
アドレス: ch.2 003935 H
DU15
DU14
DU13
DU12
DU11
DU10
DU09
DU08
W
(X )
W
(X )
W
(X )
W
(X )
W
(X )
W
(X )
W
(X )
W
(X )
bit7
PPGデューティ設定レジスタ下位
アドレス: ch.0 003924 H
アドレス: ch.1 00392C H
アドレス: ch.2 003934 H
bit9
bit6
bit5
bit4
bit3
bit2
DU07
DU06
DU05
DU04
DU03
DU02
DU01
W
(X )
W
(X )
W
(X )
W
(X )
W
(X )
W
(X )
W
(X)
bit1
DU00
bit8
PDUT0~
PDUT2
← 読出し/書込み
← 初期値
bit0
PDUT0~
PDUT2
W ← 読出し/書込み
(X ) ← 初期値
287
第 13 章 PPG タイマ
PPG タイマの動作説明
13.4
PPG タイマの動作について説明します。
■ PWM 動作
PWM 動作では , 起動トリガの検出時より連続してパルスを出力することができます。
出力パルスの周期は , PCSR 値を変えることにより制御することができます。また ,
デューティ比は , PDUT 値を変えることにより制御できます。
● 再起動禁止の場合
図 13.4-1 PWM 動作再起動禁止のタイミング
立上りエッジ検出
トリガは無視されます。
起動
トリガ
m
n
o
PPG
①
②
①= T( n + 1 )μs
T:カウントクロック周期
②= T( m + 1 )μs
m:PCSR値
n:PDUT値
● 再起動許可の場合
図 13.4-2 PWM 動作再起動許可のタイミング
立上りエッジ検出
トリガにより再起動します。
起動
トリガ
m
n
o
PPG
①
②
288
①= T( n + 1 )μs
T:カウントクロック周期
②= T( m + 1 )μs
m:PCSR値
n:PDUT値
第 13 章 PPG タイマ
<注意事項>
• PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってください。
• 起動トリガとして外部 TRG 入力を選択した場合は , 以下の最小パルス幅以上のパルス
を入力してください。
最小パルス幅:2 マシンサイクル以上
ただし, 上記に満たないパルスが入力された場合でも, 有効パルスとして認識する場合
があります。また , MB90420G/425G シリーズは , 外部 TRG 入力にフィルタ機能があ
りませんので , 必要ならば外部にフィルタなどを追加してください。
■ ワンショット動作
ワンショット動作では , トリガにより任意の幅の単一パルスを出力することができま
す。再起動許可の場合は , 動作中に起動トリガを検出するとカウンタをリロードします。
● 再起動禁止の場合
図 13.4-3 ワンショット動作再起動禁止のタイミング
立上りエッジ検出
トリガは無視されます。
起動
トリガ
m
n
o
PPG
①
②
①= T( n + 1 )μs
T:カウントクロック周期
②= T( m + 1 )μs
m:PCSR値
n:PDUT値
● 再起動許可の場合
図 13.4-4 ワンショット動作再起動許可のタイミング
立上りエッジ検出
トリガにより再起動します。
起動
トリガ
m
n
o
PPG
①
②
①= T( n + 1 )μs
T:カウントクロック周期
②= T( m + 1 )μs
m:PCSR値
n:PDUT値
289
第 13 章 PPG タイマ
■ 割込み要因とタイミング
起動トリガがかかってから , カウント値がロードされるまで , 最大 2.5T (T: カウントク
ロック周期 ) を必要とします。
図 13.4-5 割込み出力要因とタイミング
起動
トリガ
→最大2.5T←
ロード
クロック
カウント値
PPG
XXXXH
0003H
0002H
0001H
0000H
0003H
割込み
ソフトウェアトリガ
コンペア一致
ボロー
● PWM 出力オール "L" またはオール "H" の出力方法例
図 13.4-6 PWM 出力オール "L", オール "H" の出力方法例
PPG
デューティ値
を小さくして
いく ⇒ ⇒
↑
ボローによる割込みでPGMS(マスク
⇒ ビット)に"1"を書き込みます。
また、ボローによる割込みでPGMS
(マスクビット)に"0"を書き込めば,
出力することなくPPG波形を出力で
きます。
PPG
デューティ値
を大きくして
いく ⇒ ⇒
290
↑
コンペア一致による割込みでデュー
ティ設定レジスタに周期設定レジス
⇒ タ値と同じ値を書き込みます。
第 14 章
遅延割込み発生モジュール
この章では , 遅延割込み発生モジュールの機能と動
作について説明します。
14.1 遅延割込み発生モジュールの概要
14.2 遅延割込み発生モジュールの動作
291
第 14 章 遅延割込み発生モジュール
14.1
遅延割込み発生モジュールの概要
遅延割込み発生モジュールは , タスク切換え用の割込みを発生するためのモジュー
ルです。遅延割込み発生モジュールを使用することで , ソフトウェアで F2MC-16LX
CPU に対して割込み要求の発生 / 取消しを行うことができます。
■ 遅延割込み発生モジュールのブロックダイヤグラム
図 14.1-1 に , 遅延割込み発生モジュールのブロックダイヤグラムを示します。
図 14.1-1 遅延割込み発生モジュールのブロックダイヤグラム
内部データバス
遅延割込み要因発生/解除
要因ラッチ
■ 遅延割込み発生モジュールのレジスタ一覧
遅延割込み発生モジュール
〔遅延割込み要因発生/解除レジスタ (DIRR:Delayed Interrupt
Request Register) 〕のレジスタ構成は以下のとおりです。
図 14.1-2 遅延割込み発生モジュールのレジスタ構成
bit
DIRR アドレス:0000009FH
15
14
13
12
11
10
9
8
-
-
-
-
-
-
-
R0
R/W
初期値
-------0B
リセット時には要因解除状態になります。
DIRR は遅延割込み要求の発生 / 解除を制御するレジスタで , このレジスタに対して "1"
を書き込んだときには遅延割込みの要求を発生させ , "0" を書き込んだときには遅延割
込みの要求を解除します。リセット時には要因解除状態になります。未定義ビット領
域は "0", "1" どちらの書込みも結構ですが , 将来の拡張を考慮してこのレジスタにアク
セスする際にはセットビット , クリアビット命令を使用することをお勧めします。
■ 遅延割込み発生モジュールの割込みと EI2OS
表 14.1-1 に , 遅延割込み発生モジュールの割込みと EI2OS を示します。
表 14.1-1 遅延割込み発生モジュールの割込みと EI2OS
割込み番号
#42 (2AH)
×:使用不可
292
割込みレベル設定レジスタ
ベクタテーブルのアドレス
レジスタ名
アドレス
下位
上位
バンク
ICR15
0000BFH
FFFF54H
FFFF55H
FFFF56H
EI2OS
×
第 14 章 遅延割込み発生モジュール
14.2
遅延割込み発生モジュールの動作
ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生
モジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求
を発生します。
■ 遅延割込み発生モジュールの動作
ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生モ
ジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求を発
生します。ほかの割込み要求が遅延割込み発生モジュールの割込みより優先順位が低
い , またはほかの割込み要求がない場合に , 割込みコントローラは F2MC-16LX CPU に
対して割込み要求を発生します。F2MC-16LX CPU は自分の内部にある CCR レジスタ
中の ILM ビットと割込み要求を比較し , 要求レベルが ILM ビットより高かった場合に
現在実行中の命令が終了し次第 , ハードウェア割込み処理マイクロプログラムを起動
します。この結果 , 遅延割込み発生モジュールの割込みに対する割込み処理ルーチンが
実行されます。割込み処理ルーチン内で DIRR の該当ビットの "0" を書き込むことで遅
延割込み発生モジュールの割込み要因をクリアし , 合わせてタスクの切換えを行いま
す。
図 14.2-1 に , 遅延割込み発生モジュールの動作を示します。
図 14.2-1 遅延割込み発生モジュールの動作
遅延割込み発生モジュール
遅延割込みコントローラ
WRITE
F2MC-16LX
ほかの要求
ICR yy
ICR yy
CMP
DIRR
CMP
ICR xx
ICR xx
NTA
■ 遅延割込み発生モジュールの使用上の注意
● 遅延割込み要求ラッチ
このラッチは DIRR の該当するビットに "1" を書き込むことでセットされ , 同じビット
に "0" を書き込むことでクリアされます。したがって , ソフトウェアを割込み処理ルー
チン内で要因をクリアするように作成しておかないと , 割込み処理から復帰した途端
に再割込み処理を起動しますので注意してください。
293
第 14 章 遅延割込み発生モジュール
294
第 15 章
DTP/ 外部割込み回路
この章では , DTP/ 外部割込み回路の機能と動作に
ついて説明します。
15.1 DTP/ 外部割込み回路の概要
15.2 DTP/ 外部割込み回路の構成
15.3 DTP/ 外部割込み回路の端子
15.4 DTP/ 外部割込み回路のレジスタ
15.5 DTP/ 外部割込み回路の動作説明
15.6 DTP/ 外部割込み回路の使用上の注意
15.7 DTP/ 外部割込み回路のプログラム例
295
第 15 章 DTP/ 外部割込み回路
15.1
DTP/ 外部割込み回路の概要
DTP (Data Transfer Peripheral) / 外部割込み回路は , 外部接続の周辺装置と F2MC16LX CPU との間にあって , 周辺装置が発生する割込み要求またはデータ転送要求
を CPU に伝達し , 外部割込み要求の発生または拡張インテリジェント I/O サービス
(EI2OS) を起動します。
■ DTP/ 外部割込み機能
DTP/ 外部割込み機能は , DTP/ 外部割込み端子に入力された信号を起動要因とし , 通常
のハードウェア割込みと同じ手順で CPU に受け付けられ , 外部割込みを発生したり ,
拡張インテリジェント I/O サービス (EI2OS) を起動することができます。
割込み要求が CPU に受け付けられた場合 , 対応する拡張インテリジェント I/O サービ
ス (EI2OS) が禁止されていると外部割込み機能として動作し , 割込みルーチンに分岐
します。また , EI2OS が許可されていると DTP 機能として動作し , EI2OS による自動
データ転送をして , 指定回数のデータ転送終了時に割込み処理ルーチンに分岐します。
表 15.1-1 に DTP/ 外部割込みの概要を示します。
表 15.1-1 DTP/ 外部割込みの概要
外部割込み
入力端子
割込み要因
8 本 (P50/INT0/ADTG ~ P53/INT3, P00/SIN0/INT4 ~ P03/SIN1/INT7)
要求レベル設定レジスタ (ELVRH/ELVRL) で検出レベルまたはエッジを端子
ごとに選択
"H" レベル /"L" レベル / 立上り
エッジ / 立下りエッジの入力
"H" レベル /"L" レベルの入力
割込み番号
#16 (10H) , #18 (12H) , #20 (14H) , #22 (16H) , #24 (18H) , #26 (1AH)
割込み制御
DTP/ 割込み許可レジスタ (ENIR) による , 割込み要求出力の許可と禁止
割込みフラグ
DTP/ 割込み要因レジスタ (EIRR) による , 割込み要因の保持
処理選択
EI2OS を禁止に設定
(ICR の ISE=0)
EI2OS を許可に設定
(ICR の ISE=1)
処理
外部割込み処理ルーチンへ分岐
EI2OS によるデータ自動転送 , 指定回数
処理後 , 割込みルーチンへ分岐
ICR:割込み制御レジスタ
296
DTP 機能
第 15 章 DTP/ 外部割込み回路
■ DTP/ 外部割込み回路の割込みと EI2OS
表 15.1-2 に DTP/ 外部割込み回路の割込みと EI2OS を示します。
表 15.1-2 DTP/ 外部割込み回路の割込みと EI2OS
割込み制御レジスタ
チャネル
ベクタテーブルアドレス
割込み番号
レジスタ名
アドレス
下位
上位
バンク
INT0
#16 (10H)
ICR02
0000B2H
INT1
#18 (12H)
ICR03
0000B3H
INT2
#20 (14H)
ICR04
0000B4H
FFFFAC
FFFFAD
H
H
INT3
#22 (16H)
ICR05
0000B5H
FFFFA4H FFFFA5H FFFFA6H
#24 (18H)
ICR06
0000B6H
FFFF9CH FFFF9DH FFFF9EH
#26 (1AH)
ICR07
0000B7H
FFFF94H
INT4
INT5
INT6
INT7
EI2OS
FFFFC0H FFFFC1H FFFFC2H
FFFFB4H FFFFB5H FFFFB6H
FFFF95H
FFFFAEH
△
FFFF96H
△:ICR02 ~ ICR07 レジスタを共有する割込み要求を使用しない場合使用可能
297
第 15 章 DTP/ 外部割込み回路
15.2
DTP/ 外部割込み回路の構成
DTP/ 外部割込み回路は , 次の 4 つのブロックで構成されています。
• DTP/ 割込み入力検出回路
• 外部割込みレベルレジスタ (ELVRH/ELVRL)
• 外部割込み要求レジスタ (EIRR)
• 外部割込み許可レジスタ (ENIR)
■ DTP/ 外部割込み回路のブロックダイヤグラム
図 15.2-1 に DTP/ 外部割込み回路のブロックダイヤグラムを示します。
図 15.2-1 DTP/ 外部割込み回路のブロックダイヤグラム
要求レベル設定レジスタ(ELVR)
LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0
端子
セレクタ
セレクタ
P03/INT7
P50/INT0
端子
セレクタ
セレクタ
P02/INT6
内
端子
端子
P51/INT1
端子
セレクタ
セレクタ
部 P01/INT5
端子
P52/INT2
デ
ー
端子
セレクタ
端子
セレクタ
P53/INT3
P00/INT4
タ
バ
ス
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
割込み要求番号
#16(10H)
#18(12H)
#20(14H)
#22(16H)
#24(18H)
#26(1AH)
EN7
298
EN6
EN5
EN4
EN3
EN2
EN1
EN0
第 15 章 DTP/ 外部割込み回路
● DTP/ 外部割込み入力検出回路
端子入力信号から , 端子ごとに割込み要求レベル設定レジスタ (ELVRH/ELVRL) で選
択されたレベルまたはエッジの検出をして , 有効な信号を検出するとその端子に対応
する DTP/ 外部割込み要因レジスタ (EIRR) の IR ビットを "1" にセットします。
● 要求レベル設定レジスタ (ELVRH/ELVRL)
端子ごとに有効レベルまたはエッジを選択するレジスタです。
● DTP/ 割込み要因レジスタ (EIRR)
DTP/ 外部割込み要因の保持レジスタです。各端子に対応する外部割込み要求フラグ
ビットがあり , 端子に有効な信号の入力があると "1" にセットされます。
● DTP/ 割込み許可レジスタ (ENIR)
端子ごとに , 外部割込みを許可 / 禁止するレジスタです。
299
第 15 章 DTP/ 外部割込み回路
15.3
DTP/ 外部割込み回路の端子
DTP/ 外部割込み回路の端子および端子のブロックダイヤグラムを示します。
■ DTP/ 外部割込み回路の端子
DTP/外部割込み回路の端子は, 汎用ポートおよび他の周辺機能と兼用になっています。
表 15.3-1 に端子の機能 , 入出力形式および DTP/ 外部割込み回路使用時の設定などを示
します。
表 15.3-1 DTP/ 外部割込み回路の端子
端子名
端子機能
入出力形式
プルアップ
抵抗
スタンバイ
制御
端子の使用に
必要な設定
なし
入力ポートに設定
(DDR5 の bit0=0)
入力ポートに設定
(DDR5 の bit1=0)
入力ポートに設定
(DDR5 の bit2=0)
入力ポートに設定
(DDR5 の bit3=0)
入力ポートに設定
(DDR0 の bit0=0)
入力ポートに設定
(DDR0 の bit1=0)
UART0 データ出力禁止
入力ポートに設定
(DDR0 の bit2=0)
UART0 クロック出力禁止
入力ポートに設定
(DDR0 の bit3=0)
P50/INT0/
ADTG
P51/INT1
P52/INT2
ポート 5 入出力 /
外部割込み入力
P53/INT3
CMOS 出力 /
CMOS ヒステ
リシス入力
P00/SIN0/
INT4
P01/SOT0/
INT5
P02/SCK0/
INT6
なし
ポート 0 入出力 /
外部割込み入力
P03/SIN1/
INT7
■ DTP/ 外部割込み回路の端子のブロックダイヤグラム
図 15.3-1 に DTP/ 外部割込み回路の端子のブロックダイヤグラムを示します。
図 15.3-1 DTP/ 外部割込み回路の端子のブロックダイヤグラム
PDR(ポートデータレジスタ)
ー
内
部
デ
タ
バ
ス
PDRリード
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
300
リソース入力(INT)
スタンバイ制御(SPL=1)
第 15 章 DTP/ 外部割込み回路
15.4
DTP/ 外部割込み回路のレジスタ
DTP/ 外部割込み回路のレジスタ一覧を示します。
■ DTP/ 外部割込み回路のレジスタ
DTP/ 外部割込み回路は以下の 3 つのレジスタから構成されます。
• DTP/ 割込み要因レジスタ (EIRR)
• DTP/ 割込み許可レジスタ (ENIR)
• 要求レベル設定レジスタ (ELVRH/ELVRL)
図 15.4-1 に DTP/ 外部割込み回路のレジスタ一覧を示します。
図 15.4-1 DTP/ 外部割込み回路のレジスタ一覧
アドレス
000031H,000030H
000033H,000032H
bit15
bit8
DTP/割込み要因レジスタ(EIRR)
bit7
bit0
DTP/割込み許可レジスタ(ENIR)
要求レベル設定レジスタ(ELVRH/ELVRL)
301
第 15 章 DTP/ 外部割込み回路
DTP/ 割込み要因レジスタ (EIRR)
15.4.1
DTP/ 割込み要因レジスタ (EIRR) は , 割込み要因の保持とクリアをします。
■ DTP/ 割込み要因レジスタ (EIRR)
図 15.4-2 に DTP/ 割込み要因レジスタの構成を , 表 15.4-1 に各ビットの機能を示しま
す。
図 15.4-2 DTP/ 割込み要因レジスタ (EIRR)
アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9
bit8 bit7
000031H
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
ER7 ~
ER0
R/W :リード/ライト可能
:初期値
0
1
bit0
ENIR
初期値
00000000 B
外部割込み要求フラグビット
読出し時
書込み時
DTP/外部割込み入力なし
このビットのクリア
DTP/外部割込み入力あり
変化なし,ほかへの影響なし
表 15.4-1 DTP/ 割込み要因レジスタ (EIRR) の各ビットの機能説明
ビット名
bit15
~
bit8
ER7 ~ ER0:
外部割込み要求
フラグビット
機 能
・DTP/ 外部割込み端子に , 要求レベル設定レジスタ (ELVRH/ELVRL) の LB7, LA7
~ LB0, LA0 ビットで選択されたエッジまたはレベル信号が入力された場合 "1" に
セットされます ( 割込み要因の保持 ) 。
・このビットと対応する DTP/ 割込み許可レジスタ (ENIR) の EN7 ~ EN0 ビットが
"1" の場合 CPU へ割込み要求を出力します。
・書込み時は "0" でクリアされ , "1" ではこのビットに影響を与えず変化しません。
・拡張インテリジェント I/O サービス (EI2OS) が起動された場合 , 1 データの転送が
終了した時点で , 対応する外部割込み要求フラグビットは自動的にクリアされま
す。
( 注意事項 )・リードモディファイライト系命令の読出し時には "1" が読み出されます。
複数の外部割込み要求出力が許可 (ENIR:EN7 ~ EN0=1) されている場合 , CPU が割込みを受け付
けたビット (ER7 ~ ER0 の "1" にセットされているビット ) だけをクリアするようにしてくださ
い。それ以外のビットを無条件にクリアすることは避けてください。初期値は "00H" ですが , DTP/
外部割込み端子の状態によってリセット解除後の値は変化します。
・DTP/ 外部割込み要求フラグビット (EIRR:ER) の値は , 対応する DTP/ 外部割込み許可ビット
(ENIR:EN) が "1" に設定されている時のみ有効です。DTP/ 外部割込みが許可されていない状態
(ENIR:EN=0) では ,DTP/ 外部割込み要因の有無にかかわらず DTP/ 外部割込み要求フラグビットが
リセットされる可能性があります。
・DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割込み要求フラグビット
(EIRR:ER) をクリアしてください。
302
第 15 章 DTP/ 外部割込み回路
15.4.2
DTP/ 割込み許可レジスタ (ENIR)
DTP/ 割込み許可レジスタ (ENIR) は , 割込み要求の CPU への出力許可 / 禁止をしま
す。
■ DTP/ 割込み許可レジスタ (ENIR)
図 15.4-3 に DTP/ 割込み許可レジスタ (ENIR) の構成を , 表 15.4-2 に各ビットの機能を
示します。
また , 表 15.4-3 に DTP/ 割込み要因レジスタ (EIRR) および DTP/ 割込み許可レジスタ
(ENIR) と各チャネルの対応を示します。
図 15.4-3 DTP/ 割込み許可レジスタ (ENIR)
アドレス bit15
000030 H
bit8
EI R R
R/W :リード/ライト可能
bit7
bit6
bit6
bit4
bit3
bit2
bit1
bit0
EN 7 EN 6 EN 5 EN 4 EN 3
EN 2 EN 1 EN 0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W
EN7~EN0
外部割込み要求許可ビット
0
1
外部割込み要求禁止
外部割込み要求許可
: 初期値
表 15.4-2 DTP/ 割込み許可レジスタ (ENIR) の各ビットの機能説明
ビット名
bit7
~
bit0
機 能
EN7 ~ EN0;
外部割込み要求
許可ビット
CPU への割込み要求出力の許可 / 禁止をするビットです。このビットと , 対応する
DTP/ 割込み要因レジスタ (EIRR) の ER7 ~ ER0 のビットが "1" の場合 , CPU へ割込
み要求を出力します。
・外部割込み要求許可ビットの状態にかかわらず , DTP/ 外部割込み端子の状態は
ポートデータレジスタで , 直接読み出せます。
・DTP/ 割込み要因レジスタ (EIRR) の ER7 ~ ER0 のビットは外部割込み要求許可
ビットの値に関係なく , 割込み要因を検出すると "1" にセットされます。
( 注意事項 )・DTP/ 外部割込み端子を使用する場合 , ポート方向レジスタの対応するビットに "0" を書き込み ,
端子を入力に設定してください。
・DTP/ 外部割込みを許可 (ENIR:EN=1) する前に , 対応する DTP/ 外部割込み要求フラグビット
(EIRR:ER) をクリアしてください。
表 15.4-3 DTP/ 割込み制御レジスタ (EIRR, ENIR) と各チャネルの対応
DTP/ 外部割込み端子
割込み番号
外部割込み要求フラグ
ビット
外部割込み要求許可ビット
P03/INT7
#26 (1AH)
ER7
EN7
P02/INT6
#26 (1AH)
ER6
EN6
P01/INT5
#24 (18H)
ER5
EN5
P00/INT4
#24 (18H)
ER4
EN4
P53/INT3
#22 (16H)
ER3
EN3
P52/INT2
#20 (14H)
ER2
EN2
P51/INT1
#18 (12H)
ER1
EN1
P50/INT0
#16 (10H)
ER0
EN0
303
第 15 章 DTP/ 外部割込み回路
15.4.3
要求レベル設定レジスタ (ELVRH/ELVRL)
要求レベル設定レジスタ (ELVRH/ELVRL) は , DTP/ 外部割込み端子に入力される信
号が DTP/ 外部割込み要因であることを検出するための信号のレベルまたはエッジの
種類を端子ごとに選択します。
■ 要求レベル設定レジスタ (ELVRH/ELVRL)
図 15.4-4 に要求レベル設定レジスタ (ELVRH/ELVRL) の構成を , 表 15.4-4 に各ビット
の機能を示します。
また, 表 15.4-5 に要求レベル設定レジスタ (ELVRH/ELVRL) の各ビットと , 各チャネル
の対応を示します。
図 15.4-4 要求レベル設定レジスタ (ELVRH/ELVRL) の構成
アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
000033H
000032H
初期値
LB1 LA1 LB0 LA0
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
00000000B
LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 LB3 LA3 LB2 LA2
LB7~
LB0
LA7~
LA0
0
0
1
1
0
1
0
1
R/W :リード/ライト可能
:初期値
外部割込み要求検出設定ビット
"L"レベル検出
"H"レベル検出
立上りエッジ検出
立下りエッジ検出
表 15.4-4 要求レベル設定レジスタ (ELVRH/ELVRL) の各ビットの機能説明
ビット名
bit15
~
bit0
LB7 ~ LB0,
LA7 ~ LA0:
要求検出
選択ビット
機 能
・DTP/ 外部割込み端子に入力される , DTP/ 外部割込み要因となる信
号のレベルまたはエッジの種類を選択するビットです。
・1 つの端子に , それぞれ 2 ビットずつ割り当てられています。
( 注意事項 ) DTP/ 外部割込み端子に , 選択された検出信号が入力されると , DTP/ 割込み許可レ
ジスタ (ENIR) の設定などに関係なく , 外部割込み要求フラグビットに "1" がセッ
トされます。
表 15.4-5 要求レベル設定レジスタ (ELVRH/ELVRL) の各ビットと各チャネルの対応
DTP/ 外部割込み端子
304
割込み番号
ビット名
P03/INT7
#26 (1AH)
LB7, LA7
P02/INT6
#26 (1AH)
LB6, LA6
P01/INT5
#24 (18H)
LB5, LA5
P00/INT4
#24 (18H)
LB4, LA4
P53/INT3
#22 (16H)
LB3, LA3
第 15 章 DTP/ 外部割込み回路
表 15.4-5 要求レベル設定レジスタ (ELVRH/ELVRL) の各ビットと各チャネルの対応
P52/INT2
#20 (14H)
LB2, LA2
P51/INT1
#18 (12H)
LB1, LA1
P50/INT0
#16 (10H)
LB0, LA0
305
第 15 章 DTP/ 外部割込み回路
15.5
DTP/ 外部割込み回路の動作説明
DTP/ 外部割込み回路には , 外部割込み機能と DTP 機能があります。各機能の設定
と動作について説明します。
■ DTP/ 外部割込み回路の設定
DTP/ 外部割込み回路を動作させるには , 図 15.5-1 の設定が必要です。
図 15.5-1 DTP/ 外部割込み回路
ICR13/ bit15 bit14 bit13 bit12 bit11 bit10 bit9
ICR10/ ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1
ICR80/
0
◆
◆
ICR07/
1
◆
◆
◆
◆
◆
◆
ICR06/
ICR03
bit8
IL0
◆
◆
bit3
bit2
bit1
bit0
ICS3 ICS2 ICS1 ICS0 ISE
bit7
IL2
IL1
IL0
◆
◆
◆
◆
◆
◆
◆
bit6
◆
bit5
◆
bit4
◆
0
1
外部割込み時
DTP 時
EIRR/ ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0
ENIR ◆
◆
◆
◆
◆
◆
◆
◆ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
ELVR
DDR5/0
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
P53
P52
P51
P50
P03
P02
P01
P00
△
△
△
△
△
△
△
△
◆ :使用ビット
◇ :使用する端子の対応数ビットに "1" を設定
△ :使用する端子の対応数ビットに "0" を設定
0 :"0" を設定
1 :"1" を設定
DTP/ 外部割込み回路のレジスタは , 次の手順で設定してください。
1) 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポート
に設定する。
2) DTP/ 割込み許可レジスタ (ENIR) の対象となるビットを禁止状態にする。
3) 要求レベル設定レジスタ (ELVRH/ELVRL) の対象となるビットを設定する。
4) DTP/ 割込み要因レジスタ (EIRR) の対象となるビットをクリアする。
5) DTP/ 割込み許可レジスタ (ENIR) の対象となるビットを許可する。
DTP/ 外部割込み回路のレジスタの設定は , 最初に外部割込み要求出力を禁止 (ENIR の
EN7 ~ EN0=0) してから行います。また , 外部割込み要求出力を許可 (ENIR の EN7 ~
EN0=1) する場合 , 先に対応する割込み要求フラグビットをクリア (EIRR の ER7 ~
ER0=0) する必要があります。
これは , レジスタ設定時に誤って割込み要求が発生するのを避けるためです。
306
第 15 章 DTP/ 外部割込み回路
● 外部割込み機能と DTP 機能の切換え
外部割込み機能と DTP 機能の切換えは , 対応する割込み制御レジスタ (ICR) の ISE ビッ
トの設定で行います。ISE ビットが "1" の場合 , 拡張インテリジェント I/O サービス
(EI2OS) が許可され , DTP 機能として動作します。また , "0" の場合 EI2OS は禁止され ,
外部割込み機能だけの動作となります。
<注意事項>
複数の割込み要求が 1 つの ICR レジスタに割り当てられている場合 , 割込みレベル (IL2 ~
IL0) はすべての割込み要求に共通となります。また , 1 つの割込み要求で EI2OS を使用す
ると , 他の割込み要求は原則として使用できません。
■ DTP/ 外部割込み動作
DTP/ 外部割込み回路の制御ビットと割込み要因は , 表 15.5-1 のようになっています。
表 15.5-1 DTP/ 外部割込み回路の制御ビットと割込み要因
DTP/ 外部割込み回路
割込み要求フラグビット
EIRR:ER7 ~ ER0
割込み要求許可ビット
ENIR:EN7 ~ EN0
割込み要因
INT7 ~ INT0 端子への , 有効エッジ / レベルの入力
DTP/ 外部割込み要求の設定の後 , 対応する端子に要求レベル設定レジスタ (ELVRH/
ELVRL) で設定された要因が入力されると , このリソースは割込みコントローラに対
して , 割込み要求信号を発生します。ISE ビットが "0" の場合は , 割込み処理マイクロ
プログラムを実行し , "1" の場合は , 拡張インテリジェント I/O サービス処理 (DTP 処理 )
マイクロプログラムを実行します。図 15.5-2 に , DTP/ 外部割込み回路の動作フロー
チャートを示します。
307
第 15 章 DTP/ 外部割込み回路
図 15.5-2 DTP/ 外部割込み回路の動作フローチャート
DTP/外部割込み回路
ELVRH/
ELVRL
ほかの要求
割込みコントローラ
ICR
EIRR
CPU
IL
YY
CMP
CMP
ICR
ENIR
ILM
XX
割込み処理
マイクロ
プログラム
要因
DTP処理ルーチン
(EI2OS起動)
DTP/外部割込み
要求発生
メモリ 周辺データ転送
ディスクリプタ更新
割込みコントローラ
受付け判定
ディスクリプタ
データカウンタ
CPU割込み
受付け判定
≠0
0
割込み処理ルーチン
再設定 または 停止
DTP処理からの復帰
割込み処理
マイクロプログラム
起動
ICR:ISE
0
外部割込みルーチンを起動
処理と割込みフラグクリア
外部割込みから復帰
308
CPU処理復帰
1
第 15 章 DTP/ 外部割込み回路
外部割込み機能
15.5.1
DTP/ 外部割込み回路には , 選択した信号レベルの DTP/ 外部割込み端子への入力で
割込み要求を発生させる外部割込み機能があります。
■ 外部割込み機能
DTP/ 外部割込み端子に , 要求レベル設定レジスタ (ELVRH/ELVRL) で選択した信号
( エッジまたはレベル ) が検出されると , DTP/ 割込み要因レジスタ (EIRR) の ER7 ~
ER0 ビットに "1" がセットされます。この場合 , DTP/ 割込み許可レジスタの割込み要
求許可ビットが許可 (ENIR の EN7 ~ EN0=1) されていると , 割込みコントローラに対
して , 割込み要因の発生を通知します。割込みコントローラで , ほかの周辺機能からの
割込み要求に対する割込みレベル (ICR の IL2 ~ IL0) の強弱 , 同時発生時の割込み優先
順位などが判定され, CPUで, インタラプトレベルマスクレジスタ (PS のILM2~ILM0)
と割込みレベルの強弱 , 割込み許可ビット (PS の CCR=1) などが判定されます。割込み
要求が CPU に受け付けられた時点で , CPU の内部動作による割込み処理 ( マイクロプ
ログラム ) を実行し , 割込み処理ルーチンに分岐します。割込み処理ルーチンで対応す
る割込み要求フラグビットに "0" を書き込み , 割込み要求をクリアしてください。
<注意事項>
ER ビットは , 対応する EN ビットの状態に関係なく , DTP/ 外部割込み起動要因が発生す
ると "1" にセットされます。
割込みルーチンが起動された場合は, 起動要因となったERビットをクリアしてください。
ER ビットが "1" のままでは割込みから復帰できません。この場合 , 割込み要因以外のフ
ラグビットを無条件でクリアしないように注意してください。
309
第 15 章 DTP/ 外部割込み回路
DTP 機能
15.5.2
DTP/ 外部割込み回路には , 外部の周辺装置からの信号を DTP/ 外部割込み端子から
検出し , 拡張インテリジェント I/O サービスを起動する DTP 機能があります。
■ DTP 機能の動作説明
DTP 機能は , 外部の周辺装置からのデータ転送要求信号を検出し , メモリと周辺装置の
間で , データを自動転送する機能です。レベル検出の外部割込み機能で拡張インテリ
ジェント I/O サービス (EI2OS) を起動します。CPU に割込み要求が受け付けられるま
では , 外部割込み機能と同様の動作をしますが , EI2OS の動作が許可 (ICR の ISE=1) さ
れていれば , 割込み要求が受け付けられた時点で , EI2OS を起動し , データ転送を開始
します。1 データの転送が終了するとディスクリプタの更新などが行われ , 割込み要求
フラグビットをクリアして , 端子からの次の要求に備えます。EI2OS による転送がすべ
て終了すると , 割込み処理ルーチンに分岐します。
図 15.5-3 にメモリと外部周辺装置とのインタフェース例を示します。
図 15.5-3 外部周辺装置とのインタフェース例
"H"レベル要求(ELVR:LB0,LA0=01B)
INT0端子への入力
(DTP要因)
CPU内部動作
(マイクロプログラム)
ディスクリプタ
選択,読出し
ディスクリプタ
更新
リードアドレス
アドレスバス端子
ライトアドレス
ライトデータ
リードデータ
データバス端子
リード信号
ライト信号
*1
外部接続の
周辺装置
内部データバス
ライト動作*2
レジスタ
データ転送
要求
*1
リード動作
DTP要因*1
INT
DTP/
外部割込み
回路
割込み
要求
CPU
(EI2OS)
内部メモリ
*1 :転送開始後,3マシンクロック以内に取り下げる
*2 :拡張インテリジェントI/Oサービスが「周辺→メモリ転送」のとき
<注意事項>
外部周辺装置は , 最初の転送が開始されてから 3 マシンクロック以内に , データ転送要求
信号 (DTP 要因 ) のレベルだけを取り下げてください。
310
第 15 章 DTP/ 外部割込み回路
15.6
DTP/ 外部割込み回路の使用上の注意
DTP/ 外部割込み回路の入力信号 , スタンバイモードの解除および割込みに関連する
注意を示します。
■ DTP/ 外部割込み回路の使用上の注意
● DTP 機能を用いた場合の外部に接続する周辺装置の条件
DTP 機能がサポートできる外部接続の周辺装置は , 転送が行われると自動的にデータ
転送要求をクリアするものでなければなりません。また , 転送動作を開始してから 3 マ
シンクロック以内に転送要求を取り下げないと , DTP/ 外部割込み回路は次の転送要求
が発生したものとして扱ってしまいます。
● 外部割込み入力極性
要求レベル設定レジスタ (ELVRH/ELVRL) の設定がエッジ検出の場合 , エッジが入力
されたことを検出するためには , パルス幅は最小 3 マシンクロック必要です。
設定がレベル検出の場合 , 割込み要因となるレベルが入力されると , DTP/ 割込み要因
レジスタ (EIRR) 内部の要因 F/F が "1" にセットされ , 図 15.6-1 に示すように , 要因が保
持されます。このため , 要因が取り下げられても , 割込み要求出力許可状態であれば ,
割込みコントローラへの要求はアクティブのままです。割込みコントローラへの要求
を取り下げるには, 外部割込み要求フラグビットをクリアして, 図 15.6-2 に示すように
要因 F/F をクリアする必要があります。
図 15.6-1 レベル設定時の要因保持回路のクリア
DTP/
外部割込み要因
DTP/割込み入力
検出回路
要因FF
(EIRRレジスタ)
許可ゲート
割込み
コントローラへ
(割込み要求)
クリアしない限り要因を保持し続ける
図 15.6-2 割込み要求出力許可時の DTP/ 外部割込み要因と割込み要求の関係
DTP/外部割込み要因
("H"レベル検出時)
割込み要因の取下げ
割込みコントローラ
への割込み要求
要因F/Fのクリアによってインアクティブとなる
311
第 15 章 DTP/ 外部割込み回路
● 割込みに関する注意
外部割込み機能時に外部割込み要求フラグビットが"1"で, 割込み要求出力が許可された
状態では , 割込み処理から復帰できません。割込み処理ルーチン内で外部割込み要求フ
ラグビットのクリアを必ず行ってください。DTP 機能時は , EI2OS で自動的にクリアさ
れます。また , レベル検出時は , 割込み要因となるレベルが入力されたままであれば , 外
部割込み要求フラグビットをクリアしても , すぐに再セットされます。必要に応じて割
込み要求出力を禁止するか , 割込み要因そのものを解消してください。
● CAN WAKEUP 機能
CAN WAKEUP 機能は , INT0 端子を RX 端子と内部で接続を切り換えているため CAN
WAKEUP 機能を使用する場合は , INT0 の機能は使用できません。
312
第 15 章 DTP/ 外部割込み回路
15.7
DTP/ 外部割込み回路のプログラム例
外部割込み機能と DTP 機能のプログラム例を示します。
■ 外部割込み機能のプログラム例
● 処理仕様
INT0 端子に入力されるパルスの立上りエッジを検出して , 外部割込みを発生します。
【コーディング例】
ICR02 EQU
0000B2H
; DTP/ 外部割込み回路用割込み制御レジスタ
DDR5
EQU
000015H
; ポート 5 方向レジスタ
ENIR
EQU
000030H
; DTP/ 割込み許可レジスタ
EIRR
EQU
000031H
; DTP/ 割込み要因レジスタ
ELVRL EQU
000032H
; 要求レベル設定レジスタ
ELVRH EQU
000033H
; 要求レベル設定レジスタ
ER0
EQU
EIRR:0
; INT0 割込みフラグビット
EN0
EQU
ENIR:0
; INT0 割込み許可ビット
;---------- メインプログラム ------------------------------------------------CODE
CSEG
START:
;
:
; スタックポインタ(SP)などは初期化済みとする
MOV
I:DDR5, #00000000B ; DDR5 を入力に設定
AND
CCR, #0BFH
; 割込みディセーブル
MOV
I:ICR02, #00H
; 割込みレベル 0( 最強 ), EI2OS はディセーブル
CLRB EN0
; ENIR で INT0 を禁止
MOV
I:ELVR, #00000010B ; INT0 は立上りエッジ選択
CLRB I:ER0
; EIRR で INT0 の要因クリア
SETB I:EN0
; ENIR で INT0 を許可
MOV
ILM, #07H
; PS 内 ILM をレベル 7 に設定
OR
CCR, #40H
; 割込み許可イネーブル
LOOP: MOV
A, #00H
; 無限ループ
MOV
A, #01H
BRA
LOOP
;---------- 割込みプログラム ------------------------------------------------WARI:
CLRB ER0
; 割込み要求フラグをクリア
;
:
;
ユーザ処理
;
:
RETI
; 割込みから復帰
CODE
ENDS
;---------- ベクタ設定 --------------------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FFC0H
; 割込み #16(10H) にベクタを設定
DSL
ORG
WARI
0FFDCH
; リセットベクタ設定
313
第 15 章 DTP/ 外部割込み回路
VECT
DSL
DB
ENDS
END
START
00H
; シングルチップモードに設定
START
■ DTP 機能のプログラム例
● 処理仕様
INT0 端子に入力される信号の "H" レベルを検出して , 拡張インテリジェント I/O サー
ビス (EI2OS) の ch.0 を起動します。
DTP 処理 (EI2OS) で RAM 上のデータをポート 0 に出力します。
【コーディング例】
ICR02 EQU
0000B2H
; DTP/ 外部割込み回路用割込み制御レジスタ
DDR0
EQU
000010H
; ポート 0 方向レジスタ
DDR5
EQU
000015H
; ポート 5 方向レジスタ
ENIR
EQU
000030H
; DTP/ 割込み許可レジスタ
EIRR
EQU
000031H
; DTP/ 割込み要因レジスタ
ELVRL EQU
000032H
; 要求レベル設定レジスタ
ELVRH EQU
000033H
; 要求レベル設定レジスタ
ER0
EQU
EIRR:0
; INT0 割込みフラグビット
EN0
EQU
ENIR:0
; INT0 割込み許可ビット
BAPL
EQU
000100H
; バッファアドレスポインタ下位
BAPM
EQU
000101H
; バッファアドレスポインタ中位
BAPH
EQU
000102H
; バッファアドレスポインタ上位
ISCS
EQU
000103H
; EI2OS ステータスレジスタ
IOAL
EQU
000104H
; I/O アドレスレジスタ下位
IOAH
EQU
000105H
; I/O アドレスレジスタ上位
DCTL
EQU
000106H
; データカウンタ下位
DCTH
EQU
000107H
; データカウンタ上位
;---------- メインプログラム ------------------------------------------------CODE
CSEG
START:
;
:
; スタックポインタ (SP) などは初期化済みとする
MOV
I:DDR0, #11111111B ; DDR0 を出力に設定
MOV
I:DDR5, #00000000B ; DDR5 を入力に設定
AND
CCR, #0BFH
; 割込みディセーブル
MOV
I:ICR02, #08H
; 割込みレベル 0( 最強 )
; EI2OS イネーブル , ch.0
MOV
BAPL, #00H
; 出力データのアドレスを設定
MOV
BAPM, #06H
;
MOV
BAPH, #00H
;
MOV
ISCS, #12H
; バイト転送 , I/O アドレス固定 ,
; バッファアドレス +1, メモリ→ I/O へ転送
MOV
IOAL, #00H
; 転送先アドレスポインタとして
MOV
IOAH, #00H
; ポート 0(PDR0) を指定
MOV
DCTL, #0AH
; 転送回数 10 回
MOV
DCTH, #00H
;
CLRB I:EN0
; ENIR で INT0 を禁止
314
第 15 章 DTP/ 外部割込み回路
MOV
I:ELVR, #00000001B ; INT0 は "H" レベル選択
CLRB I:ER0
; EIRR で INT0 の要因クリア
SETB I:EN0
; ENIR で INT0 を許可
MOV
ILM, #07H
; PS 内 ILM をレベル 7 に設定
OR
CCR, #40H
; 割込みイネーブル
LOOP: MOV
A, #00H
; 無限ループ
MOV
A, #01H
;
BRA
LOOP
;
;---------- 割込みプログラム ------------------------------------------------WARI:
CLRB I:ER0
; 割込み要求フラグをクリア
;
:
; 必要に応じてチャネル切換え, 転送アドレスの
; 変更
;
ユーザ処理
; EI2OS の終了などの再設定を行う , 終了させる
; 場合は
;
:
; 割込みも禁止すること
RETI
; 割込みから復帰
CODE
ENDS
;---------- ベクタ設定 ------------------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FFC0H
; 割込み #16(10H) にベクタを設定
VECT
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH
START
00H
; リセットベクタ設定
; シングルチップモードに設定
START
315
第 15 章 DTP/ 外部割込み回路
316
第 16 章
8/10 ビット A/D コンバータ
この章では , 8/10 ビット A/D コンバータの機能と
動作について説明します。
16.1 8/10 ビット A/D コンバータの概要
16.2 8/10 ビット A/D コンバータの構成
16.3 8/10 ビット A/D コンバータの端子
16.4 8/10 ビット A/D コンバータのレジスタ
16.5 8/10 ビット A/D コンバータの割込み
16.6 8/10 ビット A/D コンバータの動作
16.7 8/10 ビット A/D コンバータ使用上の注意
16.8 8/10 ビット A/D コンバータのプログラム例 -1
( 単発モードの EI2OS 起動例 )
16.9 8/10 ビット A/D コンバータのプログラム例 -2
( 連続モードの EI2OS 起動例 )
16.10 8/10 ビット A/D コンバータのプログラム例 -3
( 停止モードの EI2OS 起動例 )
317
第 16 章 8/10 ビット A/D コンバータ
16.1
8/10 ビット A/D コンバータの概要
8/10 ビット A/D コンバータには , RC 逐次比較変換方式でアナログ入力電圧を 10
ビットまたは 8 ビットのデジタル値に変換する機能があります。入力信号は , 8 チャ
ネルのアナログ入力端子から選択し , 変換起動は , ソフトウェア , 16 ビットリロード
タイマ 1 および外部端子からのトリガ入力起動の 3 種類から選択できます。
■ 8/10 ビット A/D コンバータの機能
アナログ入力端子に入力されたアナログ電圧 ( 入力電圧 ) をデジタル値に A/D 変換す
る機能があり , 次の特長をもっています。
• 変換時間は , 最少 6.13 μs ( マシンクロック 16MHz の場合 , サンプリング時間を含む )
です。
• サンプリング時間は , 最小 3.75 μs ( マシンクロック 16MHz の場合 ) です。
• 変換方式は , サンプルホールド回路付き RC 逐次変換比較方式です。
• 10 ビットまたは 8 ビットの分解能が選択できます。
• アナログ入力端子は 8 チャネルからプログラムで選択可能です。
• A/D 変換終了時に割込み要求を発生でき , EI2OS を起動することもできます。
• 割込み許可の状態では変換データ保護機能が働くため連続変換してもデータの欠
落がありません。
• 変換の起動要因は , ソフトウェア , 16 ビットリロードタイマ 1 ( 立上りエッジ ) , 外
部からのトリガ入力 ( 立下りエッジ ) から選択できます。
変換モードは , 表 16.1-1 に示すように 3 種類あります。
表 16.1-1 8/10 ビット A/D コンバータの変換モード
変換モード
シングル変換動作
スキャン変換動作
単発変換モード
連続した複数のチャネル ( 最大 8
指定したチャネル (1 チャネルのみ )
チャネルまで指定可能 ) を 1 回変換
を 1 回変換して終了
して終了
連続変換モード
連続した複数のチャネル ( 最大 8
指定したチャネル (1 チャネルのみ )
チャネルまで指定可能 ) を繰り返し
を繰り返し変換
変換
停止変換モード
連続した複数のチャネル ( 最大 8
指定したチャネル (1 チャネルのみ )
チャネルまで指定可能 ) を変換
を 1 回変換したら一時停止し , 次の
ただし , 1 チャネル変換ごとに一時停
起動がかかるまで待機
止し , 次の起動がかかるまで待機
■ 8/10 ビット A/D コンバータの割込みと EI2OS
表 16.1-2 8/10 ビット A/D コンバータの割込みと EI2OS
割込み制御レジスタ
ベクタテーブルアドレス
割込み番号
#32 (20H)
○ : 使用可能
318
レジスタ名
アドレス
下位
上位
バンク
ICR10
0000BAH
FFFF7CH
FFFF7DH
FFFF7EH
EI2OS
○
第 16 章 8/10 ビット A/D コンバータ
16.2
8/10 ビット A/D コンバータの構成
8/10 ビット A/D コンバータは , 次の 8 つの回路ブロックで構成されています。
• A/D 制御ステータスレジスタ (ADCS)
• A/D データレジスタ (ADCR)
• デコーダ
• アナログチャネルセレクタ
• サンプルホールド回路
• D/A コンバータ
• コンパレータ
• コントロール回路
■ 8/10 ビット A/D コンバータのブロックダイヤグラム
図 16.2-1 に 8/10 ビット A/D コンバータのブロックダイヤグラムを示し , 各回路ブロッ
クの概略を説明します。
図 16.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム
AVcc
AVRH
Avss
MPX
入 力 回 路
逐次比較レジスタ
F MC-16LXバス
比較器
サンプル&
ホールド回路
2
AN0
AN1
AN2
AN3
AN4
AN5
AN6
AN7
D/Aコンバータ
デコーダ
A/Dデータレジスタ
ADCRH,L
A/D制御ステータスレジスタ上位
A/D制御ステータスレジスタ下位
16ビット
リロードタイマ1
タイマ起動
P50/ADTG
トリガ起動
ADCSH,L
動作クロック
プリスケーラ
319
第 16 章 8/10 ビット A/D コンバータ
● A/D 制御ステータスレジスタ (ADCS)
ソフトウェアによる起動 , 起動トリガの選択 , 変換モードの選択 , A/D 変換チャネルの
選択 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , 一時停止中および変換中の
表示をします。
● A/D データレジスタ (ADCR)
A/D 変換結果を格納するレジスタで , A/D 変換の分解能を選択する機能もあります。
● デコーダ
A/D 制御ステータスレジスタ (ADCS) の ANE0 ~ ANE2, ANS0 ~ ANS2 ビットの設定
から , 使用するアナログ入力端子を選択する回路です。
● アナログチャネルセレクタ
8 本のアナログ入力端子の中から , 使用する端子を選択する回路です。
● サンプルホールド回路
アナログチャネルセレクタで選択された入力電圧を保持する回路です。A/D 変換を起
動した直後の入力電圧をサンプルホールドすることによって , A/D 変換中 ( 比較中 ) の
入力電圧の変動の影響を受けずに変換できます。
● D/A コンバータ
サンプルホールドされた入力電圧と比較するための基準電圧を発生します。
● コンパレータ
サンプルホールドされた入力電圧と , D/A コンバータの出力電圧を比較し , 大小を判定
します。
● コントロール回路
コンパレータからの大小信号で , A/D 変換値を決定します。A/D 変換が終了すると , 変
換結果を A/D データレジスタ (ADCR) に格納し , 割込み要求を発生します。
320
第 16 章 8/10 ビット A/D コンバータ
16.3
8/10 ビット A/D コンバータの端子
8/10 ビット A/D コンバータの端子および端子のブロックダイヤグラムを示します。
■ 8/10 ビット A/D コンバータの端子
A/D コンバータの端子は , 汎用ポートと兼用になっています。表 16.3-1 に端子の機能 ,
入出力形式 , 8/10 ビット A/D コンバータ使用時の設定などを示します。
表 16.3-1 8/10 ビット A/D コンバータの端子
機 能
端子名
ch.0
P60/AN0
ch.1
P61/AN1
ch.2
P62/AN2
端子機能
入出力形式
ch.6
CMOS 出力 /
P63/AN3 ポート 6 入出力 / CMOS ヒステ
リシス入力 ,
P64/AN4 アナログ入力
または
P65/AN5
アナログ入力
P66/AN6
ch.7
P67/AN7
ch.3
ch.4
ch.5
プルアップ
設定
なし
スタンバイ
制御
端子の使用に必要な
I/O ポートの設定
なし
ポート 6 を入力設定
(DDR6 の bit0 ~ bit7=0)
アナログ入力に設定
(ADER の bit0 ~ bit7=1)
321
第 16 章 8/10 ビット A/D コンバータ
■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム
図 16.3-1 に A/D コンバータの端子のブロックダイヤグラムを示します。
図 16.3-1 P60/AN0 ~ P67/AN7 端子のブロックダイヤグラム
ADER
PDR(ポートデータレジスタ)
アナログ入力
内
PDRリード
部
出力ラッチ
デ
-
PDRライト
タ
端子
DDR(ポート方向レジスタ)
バ
方向ラッチ
DDRライト
ス
DDRリード
スタンバイ制御(SPL=1)
<注意事項>
• 入力ポートとして使用する端子は , 対応する DDR6 レジスタのビットを "0" に設定し ,
かつ外部端子にプルアップ抵抗を付加してください。
また , ADER レジスタの対応するビットを "0" に設定してください。
• アナログ入力端子として使用する端子は , 対応する ADER レジスタのビットを "1" に設
定してください。この場合の PDR6 レジスタの読出し値は "0" になります。
322
第 16 章 8/10 ビット A/D コンバータ
16.4
8/10 ビット A/D コンバータのレジスタ
8/10 ビット A/D コンバータのレジスタ一覧を示します。
■ 8/10 ビット A/D コンバータのレジスタ一覧
図 16.4-1 に 8/10 ビット A/D コンバータのレジスタ一覧を示します。
図 16.4-1 8/10 ビット A/D コンバータのレジスタ一覧
15 14
14 13
13 12
12 11
11 10
10
bit
bit 15
00001A
00001AH H
99
88
77
66
55
44
33
22
11
00
ADER
ADER
000021
000021H/000020
H/000020
HH
ADCSH
ADCSH
ADCSL
ADCSL
000023
000023H/000022
H/000022
HH
ADCRH
ADCRH
ADCRL
ADCRL
323
第 16 章 8/10 ビット A/D コンバータ
16.4.1
A/D 制御ステータスレジスタ上位 (ADCSH)
A/D 制御ステータスレジスタ上位 (ADCSH) には , ソフトウェアによる起動 , 起動ト
リガの選択 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , 一時停止中および
変換中の確認をする機能があります。
■ A/D 制御ステータスレジスタ上位 (ADCSH)
図 16.4-2 に A/D 制御ステータスレジスタ上位 (ADCSH) のビット構成を , 表 16.4-1 に各
ビットの機能を示します。
図 16.4-2 A/D 制御ステータスレジスタ上位 (ADCSH) のビット構成
bit0
初期値
アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7
000021H
(ADCSL)
00000000B
BUSY INT INTE PAUS STS1 STS0 STRT RESV
R/W
R/W
R/W
R/W
R/W
R/W
W
R/W
予約ビット
RESV
このビットへは必ず"0"を書き込んでください。
A/D変換起動ビット
(ソフトウェア起動時のみ有効)
STRT
0
A/D変換機能を起動しない
1
A/D変換機能を起動する
STS1 STS0
0
ソフトウェア起動
0
1
トリガ起動またはソフトウェア起動
1
0
タイマ起動またはソフトウェア起動
1
1
ゼロ検出起動,タイマ起動または
ソフトウェア起動
PAUS
A/D変換動作の一時停止は発生していない
1
A/D変換動作が一時停止中
割込み要求許可ビット
0
割込み要求出力の禁止
1
割込み要求出力の許可
INT
割込み要求フラグビット
読出し時
書込み時
0
A/D変換未終了
このビットのクリア
1
A/D変換終了
変化なし,ほかへの影響なし
BUSY
324
一時停止フラグビット
(EI2OS使用時のみ有効)
0
INTE
R/W :リード/ライト可能
W
:ライトオンリ
- :未定義
:初期値
A/D起動要因選択ビット
0
変換中ビット
読出し時
書込み時
0
A/D変換停止中
A/D変換強制停止
1
A/D変換動作中
変化なし,ほかへの影響なし
第 16 章 8/10 ビット A/D コンバータ
表 16.4-1 A/D 制御ステータスレジスタ上位 (ADCSH) の各ビットの機能説明
ビット名
機 能
BUSY:
変換中ビット
・A/D コンバータの動作表示ビットです。
・読出し時 , このビットが "0" であれば A/D 変換停止中であることを示し , "1" であ
れば A/D 変換動作中であることを示します。
・書込み時 , このビットへの "0" の書込みによって A/D 変換動作は強制的に停止さ
れます。"1" の書込みでは , 変化せず他への影響はありません。
( 注意事項 )
強制停止とソフトウェア起動 (BUSY=0, STRT=1) を同時にしないでください。
bit14
INT:
割込み要求
フラグビット
・A/D 変換によって A/D データレジスタにデータがセットされると , このビットは
"1" にセットされます。
・このビットと割込み要求許可ビット (ADCSH の INTE) が "1" の場合 , 割込み要求
を発生します。EI2OS が許可されていれば EI2OS が起動されます。
・書込み時は , "0" でこのビットがクリアされ , "1" では変化せず他への影響はあり
ません。
・EI2OS の起動でこのビットはクリアされます。
( 注意事項 )
このビットの "0" 書込みによるクリアは , A/D 停止中に行ってください。
bit13
INTE:
割込み要求許可
ビット
・CPU への割込み出力の許可 / 禁止をするビットです。
・このビットと , 割込み要求フラグビット (ADCSH の INT) が "1" の場合 , 割込み要
求を発生します。
・EI2OS 使用時は "1" にセットしてください。
bit12
PAUS:
一時停止フラグ
ビット
・A/D 変換動作が一時停止した場合に "1" にセットされます。
・この A/D コンバータには , A/D データレジスタが 1 つしかないため , 連続変換
モードを使用した場合に旧変換結果の CPU による読出しが完了していなければ ,
新しい変換結果の書込みにより旧変換データは失われてしまいます。したがって ,
連続変換モードを使用する場合は , 基本的には EI2OS を用いて変換終了ごとに変
換結果をメモリに自動的に転送するように設定しておくことが必要です。ただし ,
多重割込みなどで変換データの転送が次の変換に間に合わない場合が想定されま
す。このビットは , その場合の対処として考えられた機能で , 変換終了後にデータ
レジスタの内容を EI2OS で転送するまでの間 , このビットを "1" にセットしてそ
の間は A/D 変換は停止し , 次の変換データを格納しないようになっています。そ
の後 , EI2OS で転送を終了すると A/D コンバータは変換を自動的に再開します。
( 注意事項 )
このビットは , EI2OS を使用した場合だけ有効です。
bit11,
bit10
STS1, STS0:
A/D 起動要因
選択ビット
・A/D 変換の起動要因を選択します。
・起動要因が兼用になっている場合には , 最初に発生した起動要因で起動します。
( 注意事項 )
起動要因は , 書換えと同時に変更されるので , A/D 変換動作中に書き換える場合に
は , 目的とする起動要因がない状態で切り換えてください。
bit9
STRT:
A/D 変換起動
ビット
・A/D 変換動作をソフトウェア的に起動するビットです。
・このビットに "1" を書き込むと A/D 変換が起動します。
・停止変換モードの場合には , このビットによる再起動はかかりません。
・バイト / ワード命令では "1" が読み出されます。
・リードモディファイライト系命令では "0" が読み出されます。
( 注意事項 )
強制停止とソフトウェア起動 (BUSY=0, STRT=1) を同時にしないでください。
bit8
RESV:
予約ビット
( 注意事項 )
このビットへは必ず "0" を書き込んでください。
bit15
325
第 16 章 8/10 ビット A/D コンバータ
A/D 制御ステータスレジスタ下位 (ADCSL)
16.4.2
A/D 制御ステータスレジスタ下位 (ADCSL) には , 変換モードの選択と A/D 変換チャ
ネルの選択をする機能があります。
■ A/D 制御ステータスレジスタ下位 (ADCSL)
図 16.4-3 に A/D 制御ステータスレジスタ下位 (ADCSL) のビット構成を , 表 16.4-2 に各
ビットの機能を示します。
図 16.4-3 A/D 制御ステータスレジスタ下位 (ADCSL) のビット構成
アドレス bit15
000020H
(ADCSH)
bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
初期値
MD1
MD0
ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 00000000B
R/W
R/W
R/W
R/W
R/W
R/W
ANE2 ANE1 ANE0
R/W
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
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
R/W
326
:リード/ライト可能
:初期値
停止中
変換中の
読出し
停止変換モード
で一時停止中
の読出し
変換中の
チャネル
番号
直前に
変換した
チャネル
番号
A/D変換モード選択ビット
0
0
単発変換モード1(動作中の再起動可能)
0
1
単発変換モード2(動作中の再起動不可)
1
0
連続変換モード(動作中の再起動不可)
1
1
停止変換モード(動作中の再起動不可)
第 16 章 8/10 ビット A/D コンバータ
表 16.4-2 A/D 制御ステータスレジスタ下位 (ADCSL) の各ビットの機能説明
ビット名
bit7
bit6
bit5
~
bit3
機 能
・A/D 変換機能時の変換モードを選択するビットです。
・MD1, MD0 の 2 ビット値によって , 単発変換モード 1, 単発変換モード 2, 連続変換
モード , 停止変換モードのいずれかが選択されます。
・それぞれのモードの意味は , 以下のとおりです。
単発変換モード 1:ANS2 ~ ANS0 の設定チャネルから ANE2 ~ ANE0 の設定チャネル
までの A/D 変換を連続して , 1 度だけします。
動作中の再起動が可能です。
単発変換モード 2:ANS2 ~ ANS0 の設定チャネルから ANE2 ~ ANE0 の設定チャネル
までの A/D 変換を連続して , 1 度だけします。
MD1,
動作中の再起動はできません。
MD0:
連続変換モード :ANS2 ~ ANS0 の設定チャネルから ANE2 ~ ANE0 の設定チャネル
A/D 変換モード
までの A/D 変換を連続して , BUSY ビットで強制停止するまで繰り
選択ビット
返し行います。
動作中の再起動はできません。
停止変換モード :ANS2 ~ ANS0 の設定チャネルから ANE2 ~ ANE0 の設定チャネル
までの A/D 変換を 1 チャネルごとに一時停止しながら , BUSY ビッ
トで強制停止するまで繰り返します。動作中の再起動はできません。
一時停止中の再起動は , STS1, STS0 ビットで選択した起動要因の発
生によります。
( 注意事項 )
単発 , 連続 , 停止の各変換モードの再起動不可は外部トリガ , ソフトウェアの起動に適
用されます。
ANS2, ANS1,
ANS0:
A/D 変換開始
チャネル選択
ビット
・A/D 変換の開始チャネルの設定および変換中チャネル番号を確認するビットです。
・A/D 変換を起動するとこれらのビットに書き込まれたチャネルから A/D 変換を開始
します。
・A/D 変換中は , 変換中のチャネル番号が読めます。停止変換モードにおける一時停
止中は , 直前に変換したチャネルの番号が読めます。
・本ビットに値を設定した場合でも , A/D 変換が開始されるまでは , 設定した値ではな
く , 前回に A/D 変換したチャネル番号が読み出されます。リセット時は , "000B" に
初期化されます。
bit2
~
bit0
ANE2, ANE1,
ANE0:
A/D 変換終了
チャネル選択
ビット
・A/D 変換の終了チャネルを設定するビットです。
・A/D 変換を起動すると , これらのビットに書き込まれたチャネルまで A/D 変換を行
います。
・ANS2 ~ ANS0 と同じチャネルを設定すると , そのチャネルのみ変換を行います。
また , 連続変換モードまたは停止変換モードを設定している場合は , これらのビッ
トで設定されたチャネルまでの変換が終わると , ANS2 ~ ANS0 で設定された開始
チャネルに戻ります。設定チャネルが開始チャネル>終了チャネルの場合は , 開始
チャネルから AN7 まで変換し , さらに AN0 から終了チャネルまでを変換し , 1 度目
の変換動作を終了します。
( 注意事項 )
A/D 変換開始チャネル選択ビット (ANS2, ANS1, ANS0) に開始チャネルを設定した後
に , A/D 変換モード選択ビット (MD1, MD0) および A/D 変換終了チャネル選択ビット
(ANE2, ANE1, ANE0) をリードモディファイライト系命令で設定しないでください。
ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでには前回の変換チャネルが
読み出されるため , ANS2, ANS1, ANS0 ビットに開始チャネルを設定した後に MD1,
MD0 ビットおよび ANE2, ANE1, ANE0 ビットをリードモディファイライト系命令で
設定した場合 , ANE2, ANE1, ANE0 ビットの値が書き換わる可能性があります。
327
第 16 章 8/10 ビット A/D コンバータ
A/D データレジスタ (ADCRH/ADCRL)
16.4.3
A/D データレジスタ (ADCRH/ADCRL) は , A/D 変換結果を格納するレジスタで , A/D
変換の分解能を選択する機能もあります。
■ A/D データレジスタ (ADCRH/ADCRL)
図 16.4-4 に A/D データレジスタ (ADCRH/ADCRL) のビット構成を , 表 16.4-3 に各ビッ
トの機能を示します。
図 16.4-4 A/D データレジスタ (ADCRH/ADCRL) のビット構成
bit15 bit14 bit13 bit12 bit11 bit10 bit9
000023H/
000022H
bit8 bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
S10
ST1
ST0
CT1
CT0
-
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
00101XXXB
W
W
W
W
W
-
R
R
R
R
R
R
R
R
R
R
XXXXXXXXB
D0~D9
A/D データビット
変換データ
CT1
CT0
0
0
44 マシンサイクル
0
1
66 マシンサイクル
1
1
0
1
88 マシンサイクル
ST1
ST0
0
0
20 マシンサイクル
0
1
32 マシンサイクル
1
1
0
1
48 マシンサイクル
S10
R
W
-
328
:リードオンリ
:ライトオンリ
:未定義
:初期値
コンペア時間設定ビット
176 マシンサイクル
サンプリング時間設定ビット
128 マシンサイクル
A/D変換分解能選択ビット
0
10ビット分解能モード(D9~D0)
1
8ビット分解能モード(D7~D0)
第 16 章 8/10 ビット A/D コンバータ
表 16.4-3 A/D データレジスタ (ADCRH/ADCRL) の各ビットの機能説明
ビット名
機 能
bit15
・A/D 変換の分解能を選択するビットです。
S10:
・このビットに "0" を書き込むと 10 ビット分解能が選択され , "1" を書き込むと 8
A/D 変換分解能
ビット分解能が選択されます。
( 注意事項 )
選択ビット
分解能によって , 使用されるデータビットが異なります。
bit14
bit13
・A/D 変換時のサンプリング時間を選択するビットです。
・A/D が起動されると , このビットに設定された時間 , アナログ入力が取り込まれま
ST1, ST0:
す。
サンプリング
( 注意事項 )
時間設定ビット
16MHz 動作時に "00"8MHz 用の設定を行うと , 正常なアナログ電圧を取り込めない場
合があります。
bit12
bit11
CT1, CT0:
コンペア時間
設定ビット
bit10
空きビット
bit9
~
bit0
D9 ~ D0:
A/D データ
ビット
・A/D 変換時のコンペア時間を選択するビットです。
・アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , このビットに設定された
時間後に変換結果のデータが確定し , このレジスタの bit9 ~ bit0 に格納されます。
( 注意事項 )
16MHz 動作時に "00"8MHz 用の設定を行うと , 正常なアナログ変換値が得られない場
合があります。
・A/D 変換の結果が格納され , レジスタは 1 回の変換終了ごとに書き換えられます。
・通常は , 最終変換値が格納されます。
本レジスタの初期値は不定です。
( 注意事項 )
変換データ保護機能があります (「16.6 8/10 ビット A/D コンバータの動作」を参照 )。
A/D 変換中に本ビットにデータを書き込まないようにしてください。
<注意事項>
• S10 ビットの書換えは , 必ず変換動作前に A/D 動作が停止した状態で行ってください。
変換後の書換えをした場合 , ADCR の内容は不定となります。
• 10 ビットモードを指定した場合 , ADCR レジスタを読み出すときは , 必ずワード転送
命令 (MOVW A, 0022H など ) を使用してください。
329
第 16 章 8/10 ビット A/D コンバータ
16.5
8/10 ビット A/D コンバータの割込み
8/10 ビット A/D コンバータは , A/D 変換動作で , A/D データレジスタにデータが
セットされることで , 割込み要求を発生させることができます。拡張インテリジェ
ント I/O サービス (EI2OS) にも対応しています。
■ 8/10 ビット A/D コンバータの割込み
8/10ビットA/Dコンバータの割込み制御ビットと割込み要因は, 表 16.5-1 のようになっ
ています。
表 16.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因
8/10 ビット A/D コンバータ
割込み要求フラグビット
ADCSH の INT ビット
割込み要求許可ビット
ADCSH の INTE ビット
割込み要因
A/D 変換結果の A/D データレジスタへの書込み
A/D 変換動作が起動され , A/D 変換結果が A/D データレジスタ (ADCR) にセットされ
ると , A/D 制御ステータスレジスタ上位 (ADCSH) の INT ビットが "1" にセットされま
す。この場合 , 割込み要求が許可 (ADCSH の INTE=1) されていると , 割込みコントロー
ラに割込み要求を出力します。
■ 8/10 ビット A/D コンバータの割込みと EI2OS
表 16.5-2 に 8/10 ビット A/D コンバータの割込みと , EI2OS が使用可能となる割込み制
御レジスタおよびベクタテーブルのアドレスとの対応を示します。
表 16.5-2 8/10 ビット A/D コンバータの割込みと EI2OS
割込み制御レジスタ
ベクタテーブルのアドレス
割込み番号
#32 (20H)
レジスタ名
アドレス
下位
上位
バンク
ICR10
0000BAH
FFFF7CH
FFFF7DH
FFFF7EH
EI2OS
○
○ : 使用可能
■ 8/10 ビット A/D コンバータの EI2OS 機能
8/10 ビット A/D コンバータでは , EI2OS 機能を使用して , A/D 変換結果をメモリに転送
することができます。この場合は変換データ保護機能が働き , A/D 変換データがメモリ
に転送されて INT ビットがクリアされるまで , A/D 変換は一時停止されるので , データ
の欠落を防止することができます。
330
第 16 章 8/10 ビット A/D コンバータ
16.6
8/10 ビット A/D コンバータの動作
8/10 ビット A/D コンバータには , 単発変換モード , 連続変換モード , 停止変換モー
ドの 3 種類のモードがあります。各モードでの動作説明をします。
■ 単発変換モードの動作
単発変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し
ていき , ANE ビットで設定された終了チャネルまで変換が終わると A/D 変換は停止し
ます。開始チャネルと終了チャネルが同じ (ANS=ANE) 場合は ANS ビットで指定した
1 チャネルだけの変換となります。単発変換モードで動作させるには , 図 16.6-1 に示す
設定が必要です。
図 16.6-1 単発変換モードでの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
ADCS BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
0
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
ADCR S10 ST1 ST0 CT1 CT0
◇
◇
◇
◇
◇
変換データを格納
-
ADER
◆
◆
◆
◆
◆
◆
◆
◆
◇ :使用ビット
◆ :使用する端子の対応数ビットに "1" を設定
0 :"0" を設定
単発変換モードでの変換順序の例を以下に示します。
ANS=000B, ANE=011B の場合 :AN0 → AN1 → AN2 → AN3 →終了
ANS=110B, ANE=010B の場合 :AN6 → AN7 → AN0 → AN1 → AN2 →終了
ANS=011B, ANE=011B の場合 :AN3 →終了
331
第 16 章 8/10 ビット A/D コンバータ
■ 連続変換モードの動作
連続変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し
ていき , ANE ビットで設定された終了チャネルまで変換が終わると ANS ビットで設定
されたアナログ入力に戻り , A/D 変換動作を続けます。開始チャネルと終了チャネルが
同じ場合 (ANS=ANE) は ANS で指定したチャネルだけの変換を繰り返します。連続変
換モードで動作させるには , 図 16.6-2 に示す設定が必要です。
図 16.6-2 連続変換モードでの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
ADCS BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
1
0
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
ADCR S10 ST1 ST0 CT1 CT0
◇
◇
◇
◇
◇
変換データを格納
-
ADER
◆
◆
◆
◆
◆
◆
◆
◆
◇:使用ビット
◆:使用する端子の対応数ビットに "1" を設定
1 :"1" を設定
0 :"0" を設定
連続変換モードでの変換順序の例を以下に示します。
ANS=000B, ANE=011B の場合 :AN0 → AN1 → AN2 → AN3 → AN0 →繰返し
ANS=110B, ANE=010B の場合 :AN6 → AN7 → AN0 → AN1 → AN2 → AN6 →繰返し
ANS=011B, ANE=011B の場合 :AN3 → AN3 →繰返し
332
第 16 章 8/10 ビット A/D コンバータ
■ 停止変換モードの動作
停止変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を 1 チャネル
ごとに一時停止しながら変換していき , ANE ビットで設定された終了チャネルまで変
換が終わると ANS ビットで設定されたアナログ入力に戻り , A/D 変換と一時停止の動
作を続けます。開始チャネルと終了チャネルが同じ場合 (ANS=ANE) は ANS ビットで
指定したチャネルだけの変換を繰り返します。一時停止時の変換の再起動は , STS1,
STS0 ビットで指定した起動要因を発生します。停止変換モードで動作させるには , 図
16.6-3 に示す設定が必要です。
図 16.6-3 停止変換モードでの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
ADCS BUSY INT INTE
◇
◇
◇
PAUS STS1 STS0 STRT
◇
◇
ADCR S10 ST1 ST0 CT1 CT0
◇
◇
◇
◇
◇
◇
◇
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
0
1
1
◇
◇
◇
◇
◇
◇
◆
◆
◆
変換データを格納
-
ADER
◆
◆
◆
◆
◆
◇:使用ビット
◆:使用する端子の対応数ビットに "1" を設定
1 :"1" を設定
0 :"0" を設定
停止変換モードでの変換順序の例を以下に示します。
ANS=000B, ANE=011B の場合 :AN0 →一時停止→ AN1 →一時停止→ AN2 →
一時停止→ AN0 →繰返し
ANS=110B, ANE=001B の場合 :AN6 →一時停止→ AN7 →一時停止→ AN0 →
一時停止→ AN1 →一時停止→ AN6 →繰返し
ANS=011B, ANE=011B の場合 :AN3 →一時停止→ AN3 →一時停止→繰返し
333
第 16 章 8/10 ビット A/D コンバータ
16.6.1
EI2OS を使用した変換動作
8/10 ビット A/D コンバータは , EI2OS を使用して A/D 変換結果をメモリに転送する
ことができます。
■ EI2OS を使用した変換動作
EI2OS 使用時の動作フローチャートを図 16.6-4 に示します。
図 16.6-4 EI2OS 使用時の動作フローチャート例
A/D変換起動
サンプルホールド
EI2OS起動
変換
データ転送
変換終了
指定回数終了か*
YES
割込み処理
NO
割込み発生
割込みクリア
*:EI2OSの設定で決まります。
EI2OSを利用すると変換データ保護機能で, 連続変換時にもデータ欠落を起こすことな
く , 複数のデータを確実にメモリに転送することができます。
334
第 16 章 8/10 ビット A/D コンバータ
16.6.2
A/D 変換データ保護機能
割込み許可状態で A/D 変換を実行すると , 変換データ保護機能が働きます。
■ A/D 変換データ保護機能
この A/D コンバータでは , 変換データ格納用のデータレジスタが 1 つしかないので , A/D
変換をすると変換終了時に , データレジスタ内の格納データを書き換えます。そのため ,
変換データのメモリへの転送が間に合わないと , 前回のデータが一部欠落します。この対
策として , 割込み許可 (INTE=1) の場合は , 以下のようにデータ保護機能が働くように
なっています。
● EI2OS を使用しない場合のデータ保護機能
変換データが A/D データレジスタ (ADCR) に格納されると A/D 制御ステータスレジス
タ上位 (ADCSH) の INT ビットが "1" にセットされます。この INT ビットが "1" の間 ,
A/D変換は一時停止状態になります。
割込みルーチン内で, A/Dデータレジスタ (ADCR)
をメモリなどに転送した後 , INT ビットをクリアすると停止状態が解除されます。
● EI2OS を使用する場合のデータ保護機能
EI2OS を使って連続変換を指示すると , 変換終了から EI2OS でデータレジスタの変換
データをメモリに転送完了するまで , A/D 制御ステータスレジスタ上位 (ADCSH) の
PAUS ビットを "1" にセットします。この間 , A/D 変換動作は停止し , 次の変換データ
を格納しないようになっています。メモリへのデータ転送が完了すると , PAUS ビット
は "0" にクリアされ , 変換動作が再開します。図 16.6-5 に EI2OS 使用時のデータ保護機
能フローチャートを示します。
335
第 16 章 8/10 ビット A/D コンバータ
図 16.6-5 EI2OS 使用時のデータ保護機能フローチャート
EI2OS設定
A/D連続変換起動
1回変換終了
データレジスタに格納
EI2OS起動
2回変換終了
EI2OS終了
NO
A/D一時停止
YES
データレジスタに格納
3回目変換
EI2OS起動
続く
すべて変換終了
EI2OS起動
割込み処理ルーチン
続く
データレジスタに格納
A/D初期化または停止
終了
(注意事項)A/Dコンバータ動作停止時のフローは省略
<注意事項>
• 変換データ保護機能は , 割込み許可 (ADCSH の INTE=1) 状態でしか動作しません。
• EI2OS 動作中で , A/D 変換が一時停止している場合に , 割込みを禁止すると A/D 変換が
動作し , 旧データの転送前に新データが書き込まれる場合があります。また , 一時停止
中に再起動がかかった場合も , 旧データは破壊されます。
• 一時停止中に再起動をかけると待機データが壊れます。
336
第 16 章 8/10 ビット A/D コンバータ
16.7
8/10 ビット A/D コンバータ使用上の注意
8/10 ビット A/D コンバータを使用する場合の注意点を示します。
■ 8/10 ビット A/D コンバータ使用上の注意
● アナログ入力端子
A/D入力端子はポート6の入出力端子と兼用になっており, ポート6方向レジスタ (DDR6)
とアナログ入力許可レジスタ (ADER) で切り換えて使用するようになっています。アナ
ログ入力として使用する端子では , DDR6 の対応するビットに "0" を書き込んでポート設
定を入力にした上で , ADER レジスタでアナログ入力モード (ADEx=1) に設定して , ポー
ト側の入力ゲートを固定してください。ポート入力モード (ADEx=0) の状態では中間レ
ベルの信号が入力されると , ゲートに入力リーク電流が流れます。
● 内部タイマ (16 ビットリロードタイマ 1) で使用する場合の注意
A/D コンバータを内部タイマで起動する場合 , A/D 制御ステータスレジスタ上位
(ADCSH) の STS1, STS0 ビットで設定しますが , このとき内部タイマの入力値は , イン
アクティブ側 ( 内部タイマの場合は "L") にしておいてください。アクティブ側にして
おくと , ADCSH レジスタへの書込みと同時に動作し始める場合があります。
● A/D コンバータの電源 , アナログ入力の投入順序
A/D コンバータの電源 (AVCC, AVRH) およびアナログ入力 (AN0 ~ AN7) への印加は ,
必ずデジタル電源 (VCC) の投入後かまたは同時に投入してください。また , 電源切断時
は, A/Dコンバータの電源およびアナログ入力の切断後にデジタル電源 (VCC) を切断す
るかまたは同時に切断してください。
● A/D コンバータの電源電圧について
ラッチアップ防止のため , A/D コンバータの電源 (AVCC) は , デジタル電源 (VCC) の電
圧を超えないようにしてください。
337
第 16 章 8/10 ビット A/D コンバータ
16.8
8/10 ビット A/D コンバータのプログラム例 -1
( 単発モードの EI2OS 起動例 )
単発モードの EI2OS 起動による A/D 変換処理のプログラム例を示します。
■ 単発モードの EI2OS 起動プログラム例
● 処理仕様
アナログ入力 AN1 ~ AN3 まで変換して終了します。
変換データは 200H ~ 205H 番地に順に転送します。
分解能は 10 ビットとします。
起動はソフトウェアで行います。
図 16.8-1 に , EI2OS 起動プログラム ( 単発モード ) のフローチャートを示します。
図 16.8-1 EI2OS 起動プログラム ( 単発モード ) のフローチャート
AN1
割込み
AN2
割込み
EI2OS転送
AN3
割込み
EI2OS転送
終了
割込みシーケンス
起動開始
EI2OS転送
並行処理
【コーディング例】
BAPL
BAPM
BAPH
ISCS
IOAL
IOAH
DCTL
DCTH
DDR6
ADER
ICR10
ADCSL
ADCSH
ADCRL
ADCRH
338
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
000100H
000101H
000102H
000103H
000104H
000105H
000106H
000107H
000016H
00001AH
0000BAH
000020H
000021H
000022H
000023H
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
バッファアドレスポインタ下位
バッファアドレスポインタ中位
バッファアドレスポインタ上位
EI2OS ステータスレジスタ
I/O アドレスレジスタ下位
I/O アドレスレジスタ上位
データカウンタ下位
データカウンタ上位
ポート 6 方向レジスタ
アナログ入力許可レジスタ
A/D コンバータ用割込み制御レジスタ
A/D 制御ステータスレジスタ
A/D データレジスタ
第 16 章 8/10 ビット A/D コンバータ
;---------- メインプログラム ------------------------------------------------CODE
CSEG
START:
; スタックポインタ (SP) などは初期化済みとする
AND
CCR, #0BFH
; 割込みディセーブル
MOV
ICR10, #00H
; 割込みレベル 0( 最強 )
MOV
BAPL, #00H
; 変換データの格納先アドレスの設定
MOV
BAPM, #02H
; (200H ~ 205H を使用 )
MOV
BAPH, #00H
;
MOV
ISCS, #18H
; ワードデータ転送 , 転送後アドレス+ 1,
I/O →メモリに転送
MOV
IOAL, #22H
; 転送元アドレスポインタとして
MOV
IOAH, #00H
; アナログデータレジスタのアドレスをセット
MOV
DCTL, #03H
; EI2OS 転送を 3 回 , 変換回数と同じにする
MOV
DDR6, #11110001B; P61 ~ P63 を入力に設定
MOV
ADER, #00001110B; P61/AN1 ~ P63/AN3 をアナログ入力に設定
MOV
DCTH, #00H
;
MOV
ADCSL, #0BH
; 単発起動 , AN1 ~ AN3 チャネルを変換
MOV
ADCSH, #0A2H
; ソフト起動 , A/D 変換開始 , 割込み許可
MOV
ILM, #07H
; PS 内 ILM をレベル 7 に設定
OR
CCR, #40H
; 割込みイネーブル
LOOP: MOV
A, #00H
; 無限ループ
MOV
A, #01H
BRA
LOOP
;---------- 割込みプログラム ------------------------------------------------ED_INT1:
MOV
I:ADCSH, #00H ; A/D 停止 , 割込みのフラグクリアと禁止
RETI
; 割込みから復帰
CODE ENDS
;---------- ベクタ設定 ------------------------------------------------------VECT CSEG
ABS = 0FFH
ORG
0FF7CH
; 割込み #32(20H) にベクタを設定
DSL
ED_INT1
ORG
0FFDCH
; リセットベクタ設定
DSL
START
DB
00H
; シングルチップモードに設定
VECT ENDS
END
START
339
第 16 章 8/10 ビット A/D コンバータ
16.9
8/10 ビット A/D コンバータのプログラム例 -2
( 連続モードの EI2OS 起動例 )
連続モードの EI2OS 起動による A/D 変換処理のプログラム例を示します。
■ 連続モードの EI2OS 起動プログラム例
● 処理仕様
アナログ入力AN3~AN5の変換を2度行い, 各チャネルの変換データを2つ取得します。
変換データは 600H ~ 60BH 番地に順に転送します。
分解能は 10 ビットとします。
起動は 16 ビットリロードタイマ 1 で行います。
図 16.9-1 に , EI2OS 起動プログラム ( 連続モード ) のフローチャートを示します。
図 16.9-1 EI2OS 起動プログラム ( 連続モード ) のフローチャート
起動開始
AN3
割込み
EI2OS転送
12回転送後
停止
割込みシーケンス
外部エッジ起動
終了
【コーディング例】
BAPL
EQU
000100H
; バッファアドレスポインタ下位
BAPM
EQU
000101H
; バッファアドレスポインタ中位
BAPH
EQU
000102H
; バッファアドレスポインタ上位
ISCS
EQU
000103H
; EI2OS ステータスレジスタ
IOAL
EQU
000104H
; I/O アドレスレジスタ下位
IOAH
EQU
000105H
; I/O アドレスレジスタ上位
DCTL
EQU
000106H
; データカウンタカウンタ下位
DCTH
EQU
000107H
; データカウンタ上位
DDR6
EQU
000016H
; ポート 6 方向レジスタ
ADER
EQU
00001AH
; アナログ入力許可レジスタ
ICR10 EQU
0000BAH
; A/D コンバータ用割込み制御レジスタ
ADCSL EQU
000020H
; A/D 制御ステータスレジスタ
ADCSH EQU
000021H
;
ADCRL EQU
000022H
; A/D データレジスタ
ADCRH EQU
000023H
;
TMCSR1L EQU
000054H
; タイマコントロールステータスレジスタ 1 下位
TMCSR1H EQU
000055H
;
TMRLR1L EQU
000056H
; リロードレジスタ 1
TMRLR1H EQU
000057H
;
;---------- メインプログラム ------------------------------------------------340
第 16 章 8/10 ビット A/D コンバータ
CODE
CSEG
START:
AND
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOVW
CCR, #0BFH
ICR10, #08H
BAPL, #00H
BAPM, #06H
BAPH, #00H
ISCS, #18H
;
;
;
;
;
;
;
;
IOAL, #22H
;
IOAH, #00H
;
DCTL, #06H
;
DDR6, #00000000B ;
ADER, #00111000B ;
DCTH, #00H
;
ADCSL, #9DH
;
ADCSH, #0A8H
;
TMRLR1L, #0320H ;
スタックポインタ (SP) などは初期化済みとする
割込みディセーブル
割込みレベル 0( 最強 ), 割込み許可
変換データの格納先アドレスの設定
(600H ~ 60BH を使用 )
ワードデータ転送 , 転送後アドレス+ 1,
I/O →メモリに転送
転送元アドレスポインタとして
アナログデータレジスタのアドレスをセット
EI2OS 転送を 6 回 , 3 チャネル× 2 回分の転送
P60 ~ P67 を入力に設定
P63/AN3 ~ P65/AN5 をアナログ入力に設定
連続モード , AN3 ~ AN5 チャネルを変換
16 ビットタイマ起動 , A/D 変換開始 , 割込み許可
タイマ値を設定 800(320H) 100 μs
MOV
TMCSR1H, #00H
; クロックソースを 125ns に設定 , 外部トリガ禁止
MOV
TMCSR1L, #12H
; タイマ出力禁止 , 割込み禁止 , リロード許可
MOV
TMSCR1L, #13H
; 16 ビットタイマ起動
MOV
ILM, #07H
; PS 内 ILM をレベル 7 に設定
OR
CCR, #40H
; 割込みイネーブル
LOOP: MOV
A, #00H
; 無限ループ
MOV
A, #01H
BRA
LOOP
;---------- 割込みプログラム ------------------------------------------------ED_INT1:
MOV
I:ADCSH, #80H
; A/D は停止しない , 割込みのフラグクリアと禁止
RETI
; 割込みから復帰
CODE
ENDS
;---------- ベクタ設定 ------------------------------------------------------VECT
CSEG ABS=0FFH
ORG
0FF7CH
; 割込み #32(20H) にベクタを設定
DSL
ED_INT1
ORG
0FFDCH
; リセットベクタ設定
DSL
START
DB
00H
; シングルチップモードに設定
VECT
ENDS
END
START
341
第 16 章 8/10 ビット A/D コンバータ
16.10
8/10 ビット A/D コンバータのプログラム例 -3
( 停止モードの EI2OS 起動例 )
停止モードの EI2OS 起動による A/D 変換処理のプログラム例を示します。
■ 停止モードの EI2OS 起動プログラム例
● 処理仕様
アナログ入力 AN3 を一定期間で 12 回変換します。
変換データは 600H ~ 617H 番地に順に転送します。
分解能は 10 ビットとします。
起動は 16 ビットリロードタイマ 1 で行います。
図 16.10-1 に , EI2OS 起動プログラム ( 停止モード ) のフローチャートを示します。
図 16.10-1 EI2OS 起動プログラム ( 停止モード ) のフローチャート
起動開始
AN3
割込み
EI2OS転送
12回転送後
停止
割込みシーケンス
外部エッジ起動
終了
【コーディング例】
BAPL
EQU
000100H
; バッファアドレスポインタ下位
BAPM
EQU
000101H
; バッファアドレスポインタ中位
BAPH
EQU
000102H
; バッファアドレスポインタ上位
ISCS
EQU
000103H
; EI2OS ステータスレジスタ
IOAL
EQU
000104H
; I/O アドレスレジスタ下位
IOAH
EQU
000105H
; I/O アドレスレジスタ上位
DCTL
EQU
000106H
; データカウンタ下位
DCTH
EQU
000107H
; データカウンタ上位
DDR6
EQU
000016H
; ポート 6 方向レジスタ
ADER
EQU
00001AH
; アナログ入力許可レジスタ
ICR10 EQU
0000B0H
; A/D コンバータ用割込み制御レジスタ
ADCSL EQU
000020H
; A/D 制御ステータスレジスタ
ADCSH EQU
000021H
;
ADCRL EQU
000022H
; A/D データレジスタ
ADCRH EQU
000023H
;
TMCSR1L EQU
000054H
; タイマコントロールステータスレジスタ 1 下位
TMCSR1H EQU
000055H
;
TMRLR1L EQU
000056H
; リロードレジスタ 1
TMRLR1H EQU
000057H
;
;---------- メインプログラム ------------------------------------------------342
第 16 章 8/10 ビット A/D コンバータ
CODE
START:
CSEG
AND
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOVW
; スタックポインタ (SP) などは初期化済みとする
; 割込みディセーブル
; 割込みレベル 0( 最強 )
; 変換データの格納先アドレスの設定
; (600H ~ 617H を使用 )
;
; ワードデータ転送 , 転送後アドレス+ 1,
; I/O →メモリに転送 , リソースの要求で終了
IOAL, #22H
; 転送元アドレスポインタとして
IOAH, #00H
; アナログデータレジスタのアドレスをセット
DCTL, #0CH
; EI2OS 転送を 12 回 , 3 チャネルのみ
DCTH, #00H
;
DDR6, #00000000B ; P60 ~ P67 を入力に設定
ADER, #00001000B ; P63/AN3 をアナログ入力に設定
ADCSL, #0DBH
; 停止モード , AN3 チャネルを変換
ADCSH, #0A8H ; 16 ビットタイマ起動 , A/D 変換開始 , 割込み許可
TMRLR1L, #0320H ; タイマ値を設定 800(320H) 100 μs
CCR, #0BFH
ICR10, #08H
BAPL, #00H
BAPM, #06H
BAPH, #00H
ISCS, #19H
MOV
TMCSR1H, #00H ; クロックソースを 125ns に設定 , 外部トリガ禁止
MOV
TMCSR1L, #12H ; タイマ出力禁止 , 割込み禁止 , リロード許可
MOV
TMSCR1L, #13H ; 16 ビットタイマ起動
MOV
ILM, #07H
; PS 内 ILM をレベル 7 に設定
OR
CCR, #40H
; 割込みイネーブル
LOOP: MOV
A, #00H
; 無限ループ
MOV
A, #01H
BRA
LOOP
;---------- 割込みプログラム ------------------------------------------------ED_INT1:
MOV
I:ADCSH, #80H ; A/D は停止しない , 割込みのフラグクリアと禁止
RETI
; 割込みから復帰
CODE
ENDS
;---------- ベクタ設定 ------------------------------------------------------VECT
CSEG
ABS = 0FFH
ORG
0FF7CH
; 割込み #32(20H) にベクタを設定
DSL
ED_INT1
ORG
0FFDCH
; リセットベクタ設定
DSL
START
DB
00H
; シングルチップモードに設定
VECT
ENDS
END
START
343
第 16 章 8/10 ビット A/D コンバータ
344
第 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 使用上の注意
17.9 UART のプログラム例
345
第 17 章 UART
17.1
UART の概要
UART は , 外部装置と同期通信または非同期通信 ( 調歩同期 ) をするための , 汎用の
シリアルデータ通信インタフェースです。通常の双方向通信機能 ( ノーマルモード )
だけではなく , マスタ / スレーブ型通信機能 ( マルチプロセッサモード : マスタ側だ
けサポート ) があります。
■ UART の機能
● UART の機能
UART は , ほかの CPU や周辺装置とシリアルデータを送受信する汎用シリアルデータ
通信インタフェースで , 表 17.1-1 に示す機能をもっています。
表 17.1-1 UART の機能
機 能
データバッファ
全二重ダブルバッファ
転送モード
・クロック同期 ( スタート / ストップビットなし )
・クロック非同期 ( 調歩周期 )
ボーレート
・専用ボーレートジェネレータあり , 8 種類から選択可能
・外部クロック入力可能
・内部クロック (16 ビットリロードタイマから供給される内部クロック )
を利用可能
データ長
・7 ビット ( 非同期ノーマルモードの場合のみ )
・8 ビット
信号方式
NRZ (Non Return to Zero) 方式
受信エラー検出
・フレーミングエラー
・オーバランエラー
・パリティエラー ( マルチプロセッサモードの場合は不可 )
割込み要求
・受信割込み ( 受信完了 , 受信エラー検出 )
・送信割込み ( 送信完了 )
・送受信とも拡張インテリジェント I/O サービス (EI2OS) の対応あり
マスタ / スレーブ型
通信機能 ( マルチプ
ロセッサモード )
1 ( マスタ ) 対 n ( スレーブ ) 間の通信が可能
( マスタ側だけサポート )
<注意事項>
UART は , クロック同期転送の場合にはスタートビット / ストップビットは付加されず ,
データだけ転送されます。
346
第 17 章 UART
■ UART の動作モード
表 17.1-2 に UART の動作モードを示します。
表 17.1-2 UART の動作モード
データ長
動作モード
ストップ
ビット長
同期方式
パリティなし
パリティあり
7 ビットまたは 8 ビット
0
ノーマルモード
1
マルチプロセッサモード 8 ビット+ 1 * 1
2
ノーマルモード
8 ビット
1 ビット
または
2 ビット* 2
非同期
-
非同期
-
同 期
なし
- : 設定不可
*1: " + 1" は通信制御用に使用されるアドレス / データ選択ビット (A/D) です。
*2: 受信時のストップビットは , 1 ビットのみ検出可能
■ UART に関連する割込みと EI2OS
表 17.3-1 に UART に関する割込みと EI2OS との関係を示します。
表 17.1-3 UART に関連する割込みと EI2OS
割込み制御レジスタ
割込み要因
ベクタテーブルアドレス
割込み番号
レジスタ名
アドレス
下位
上位
バンク
EI2OS
UART1 受信割込み
#37 (25H)
ICR13
0000BDH
FFFF68H
FFFF69H
FFFF6AH
◎
UART1 送信割込み
#38 (26H)
ICR13
0000BDH
FFFF64H
FFFF65H
FFFF66H
△
UART0 受信割込み
#39 (27H)
ICR14
0000BEH
FFFF60H
FFFF61H
FFFF62H
◎
UART0 送信割込み
#40 (28H)
ICR14
0000BEH
FFFF5CH
FFFF5DH
FFFF5EH
△
の受信エラー検出による EI2OS
◎ : UART
停止機能付き
△ : ICR13, ICR14 または割込みベクトルを共有する割込み要因を使用しない場合に使用可能
347
第 17 章 UART
17.2
UART の構成
UART は , 次の 12 の回路ブロックから構成されています。
• クロックセレクタ
• シリアルモードレジスタ (SMR0/SMR1)
• 受信制御回路
• シリアル制御レジスタ (SCR0/SCR1)
• 送信制御回路
• シリアルステータスレジスタ (SSR0/SSR1)
• 受信状態判定回路
• シリアル入力データレジスタ (SIDR0/SIDR1)
• 受信用シフトレジスタ
• シリアル出力データレジスタ (SODR0/SODR1)
• 送信用シフトレジスタ
• 通信プリスケーラ制御レジスタ (CDCR0/CDCR1)
■ UART のブロックダイヤグラム
図 17.2-1 に UART のブロックダイヤグラムを示します。
図 17.2-1 UART のブロックダイヤグラム
コントロールバス
専用ボーレート
ジェネレータ
マシンク
ロック
通信プリスケーラ
制御レジスタ
(CDCR0/1)
受信割込み信号
#39 (27H) *
<#37 (25H)>*
送信クロック
16ビット
リロードタイマ
送信割込み信号
#40 (28H) *
<#38 (26H)>*
クロック
セレクタ 受信
クロック
受信制御回路
端子
P02/SCK0
<P05/SCK1>
端子
P00/SIN0
<P03/SIN1>
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
受信用
シフトレジスタ
送信用
シフトレジスタ
SIDR0/1
受信
終了
SODR0/1
受信状態判定回路
端子
P01/SOT0
<P04/SOT1>
送信開始
EI2OS用受信エラー
発生信号
(CPUへ)
内部データバス
SMR0/1
レジスタ
MD1
MD0
CS2
CS1
CS0
SCKE
SOE
*:割込み番号
348
SCR0/1
レジスタ
PEN
P
SBL
CL
A/D
REC
RXE
TXE
SSR0/1
レジスタ
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
第 17 章 UART
● クロックセレクタ
クロックセレクタは , 専用ボーレートジェネレータ , 外部入力クロック , 内部クロック
(16 ビットリロードタイマから供給されるクロック ) から送受信クロックを選択しま
す。
● 受信制御回路
受信制御回路は , 受信ビットカウンタ , スタートビット検出回路および受信パリティカ
ウンタから構成されています。受信ビットカウンタは , 受信データをカウントして , 設
定したデータ長に応じて 1 データの受信を完了すると , 受信割込み要求を発生します。
スタートビット検出回路は , シリアル入力信号からスタートビットを検出する回路で ,
スタートビットを検出すると設定された転送速度に応じてシフトしながら SIDR レジ
スタにデータを書き込みます。受信パリティカウンタは , 受信データのパリティを計算
します。
● 送信制御回路
送信制御回路は , 送信ビットカウンタ , 送信スタート回路および送信パリティカウンタ
から構成されています。送信ビットカウンタは , 送信データをカウントして , 設定した
データ長に応じて 1 データの送信を完了すると , 送信割込み要求を発生します。送信ス
タート回路は , SODR レジスタの書込みで送信動作を開始します。送信パリティカウン
タは , パリティありの場合 , 送信するデータのパリティビットを生成します。
● 受信用シフトレジスタ
受信用シフトレジスタは , SIN0 端子から入力された受信データを , 1 ビットずつビット
シフトしながら取り込み , 受信を終了すると , SIDR レジスタに受信データを転送しま
す。
● 送信用シフトレジスタ
送信用シフトレジスタは, SODRレジスタに書き込まれたデータを送信用シフトレジス
タに転送し , 1 ビットずつシフトしながら SOT0 端子に出力します。
● シリアルモードレジスタ (SMR0/SMR1)
シリアルモードレジスタは , 動作モードの選択 , クロック入力ソースの選択 , 専用ボー
レートジェネレータの設定, 専用ボーレートジェネレータ使用時のクロックレート (ク
ロック分周値 ) の選択 , シリアルデータの端子への出力許可 / 禁止 , クロックの端子へ
の出力許可 / 禁止を設定します。
● シリアル制御レジスタ (SCR0/SCR1)
シリアル制御レジスタは , パリティの有無の設定 , パリティの選択 , ストップビット長
の設定 , データ長の設定 , モード 1 でのフレームデータ形式の選択 , フラグのクリア ,
送信の許可 / 禁止 , 受信の許可 / 禁止の設定をします。
● シリアルステータスレジスタ (SSR0/SSR1)
シリアルステータスレジスタは , 送受信やエラーの状態の確認と送受信割込み要求の
許可 / 禁止の設定をします。
● シリアル入力データレジスタ (SIDR0/SIDR1)
シリアル入力データレジスタは , 受信データを保持するレジスタです。シリアル入力が
変換されて , このレジスタに格納されます。
349
第 17 章 UART
● シリアル出力データレジスタ (SODR0/SODR1)
シリアル出力データレジスタは , 送信データを設定するレジスタです。このレジスタに
書き込まれたデータが , シリアル変換されて出力されます。
● 通信プリスケーラ制御レジスタ (CDCR0/CDCR1)
専用ボーレートジェネレータのボーレートを設定するレジスタです。通信プリスケー
ラの起動 / 停止 , マシンクロックの分周比を設定します。
350
第 17 章 UART
UART の端子
17.3
UART の端子および端子のブロックダイヤグラムを示します。
■ UART の端子
UART の端子は , 汎用ポートと兼用になっています。表 17.3-1 に端子の機能 , 入出力形
式および UART 使用時の設定などを示します。
表 17.3-1 UART の端子
端子名
端子機能
P00/SIN0/
INT4
P03/SIN1/
INT7
ポート 0 入出力 /
シリアルデータ入力
P01/SOT0/
INT5
P04/SOT1
ポート 0 入出力 /
シリアルデータ出力
P02/SCK0/
INT6
P05/SCK1/
TRG
ポート 0 入出力 /
シリアルクロック
入出力
入出力形式
プルアップ
選択
スタンバイ
制御
端子の使用に
必要な設定
入力ポートに設定
(DDR0 の bit0=0)
(DDR0 の bit3=0)
CMOS 出力 /
CMOS ヒステリ
シス入力
(Automotive
レベル *)
なし
あり
出力許可に設定
(SMR の SOE=1)
クロック入力時入力ポート
に設定 (DDR0 の bit2=0)
(DDR0 の bit5=0)
クロック出力時出力許可に
設定 (SMR の SCKE=1)
*: Automotive レベルは , 入力電圧の規格です。規格値はデータシート「■ 電気的特性 3. 直流規格」
を参照してください。
■ UART の端子のブロックダイヤグラム
図 17.3-1 に UART の端子のブロックダイヤグラムを示します。
図 17.3-1 UART の端子のブロックダイヤグラム
リソース入力*
PDR
(ポートデータレジスタ)
リソース出力*
リソース出力許可*
内部データバス
PDRリード
出力ラッチ
P-ch
P00/SIN0
P01/SOT0
P02/SCK0
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
N-ch
P03/SIN1
P04/SOT1
P05/SCK1
スタンバイ制御(SPL=1)
DDRリード
スタンバイ制御:ストップ,タイムベースタイマモードかつSPL=1,
*:リソース入出力は周辺機能がある端子のみ
351
第 17 章 UART
17.4
UART のレジスタ
UART の各レジスタについて説明します。
■ UART のレジスタ一覧
図 17.4-1 に UART のレジスタ一覧を示します。
図 17.4-1 UART のレジスタ一覧
アドレス
bit15
bit8 bit7
bit0
ch.0:000035 H,34H
SMR(シリアルモードレジスタ)
SCR(シリアル制御レジスタ)
ch.1:000039 H,38H
ch.0:000037 H,36H
SIDR/SODR
ch.1:00003B H,3AH SSR(シリアルステータスレジスタ) (シリアル入力/シリアル出力データレジスタ)
ch.0:00003D H
CDCR(通信プリスケーラ制御レジスタ)
空き
ch.1:00003F H
352
第 17 章 UART
17.4.1
シリアル制御レジスタ (SCR0/SCR1)
シリアル制御レジスタ (SCR0/SCR1) は , パリティの設定 , ストップビット長やデー
タ長の選択 , モード 1 でのフレームデータ形式の選択 , 受信エラーフラグのクリア ,
送受信動作の許可 / 禁止を設定するレジスタです。
■ シリアル制御レジスタ (SCR0/SCR1) のビット構成
図 17.4-2 にシリアル制御レジスタ (SCR0/SCR1) のビット構成を , 表 17.4-1 に各ビット
の機能を示します。
図 17.4-2 シリアル制御レジスタ (SCR0/SCR1) のビット構成
アドレス
ch.0:000035 H
ch.1:000039 H
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7
PEN
P
SBL
CL
A/D
REC
RXE
TXE
R/W
R/W
R/W
R/W
R/W
W
R/W
R/W
(SMR)
TXE
送信動作を禁止
1
送信動作を許可
受信動作許可ビット
0
受信動作を禁止
1
受信動作を許可
REC
受信エラーフラグクリアビット
0
FRE, ORE, PEフラグをクリア
1
変化なし,ほかへの影響なし
A/D
アドレス/データ選択ビット
0
データフレーム
1
アドレスフレーム
CL
データ長選択ビット
0
7ビット
1
8ビット
SBL
ストップビット長選択ビット
0
1ビット長
1
2ビット長
P
パリティ選択ビット
パリティありのとき(PEN=1)のみ有効
0
偶数パリティ
1
奇数パリティ
PEN
00000100B
送信動作許可ビット
0
RXE
R/W :リード/ライト可能
W :ライトオンリ
:初期値
bit0 初期値
パリティ許可ビット
0
パリティなし
1
パリティあり
353
第 17 章 UART
表 17.4-1 シリアル制御レジスタ (SCR0/SCR1) の各ビットの機能説明
ビット名
機 能
シリアルデータの入出力時のパリティビットの付加 ( 送信時 ) および検出 ( 受信時 )
をするかどうかを選択します。
( 注意事項 )
動作モード 1, 2 ではパリティは使用できませんので , このビットは常に "0" に設定
してください。
bit15
PEN:
パリティ許可
ビット
bit14
P:
パリティ選択
ビット
bit13
非同期転送モード時の送信データのフレームエンドマークである , ストップビット
SBL:
のビット長を選択します。
ストップビット長
( 注意事項 )
選択ビット
受信時は , 常にストップビットの 1 ビット目だけを検出します。
bit12
CL:
データ長選択
ビット
送受信データのデータ長を指定します。
( 注意事項 )
7 ビットを選択できるのは , 動作モード 0 ( 非同期 ) だけです。動作モード 1 ( マル
チプロセッサモード ) , 動作モード 2 ( 同期 ) では , 必ず 8 ビット (CL=1) を選択して
ください。
bit11
A/D:
アドレス /
データ選択
ビット
・マルチプロセッサモード ( モード 1) で , 送受信するフレームのデータ形式を指定
します。
・このビットが "0" の場合通常データとなり , "1" の場合アドレスデータとなりま
す。
REC:
受信エラー
フラグクリア
ビット
・シリアルステータスレジスタ (SSR) の FRE, ORE, PE フラグをクリアするビットで
す。
・このビットに "0" を書き込むと , FRE, ORE, PE フラグがクリアされ , "1" の書込み
では , 変化せずほかへの影響はありません。
( 注意事項 )
UART 動作中の受信割込み許可状態では , FRE, ORE, PE フラグのいずれかが "1" で
ある場合のみ , REC ビットをクリアしてください。
RXE:
受信動作許可
ビット
・UART の受信動作を制御します。
・このビットが "0" の場合に受信動作は禁止となり , "1" の場合は受信動作が許可と
なります。
( 注意事項 )
受信中に受信動作を禁止した場合にはそのフレームの受信を完了し , 受信データ
バッファ (SIDR1) に受信データを格納した時点で受信動作を停止します。
動作モード 2 ( 同期 ) 時は , RXE または TXE のどちらか一方を "1" に設定すると送
信・受信動作共に許可されます。
TXE:
送信動作許可
ビット
・UART の送信動作を制御します。
・このビットが "0" の場合に送信動作は禁止となり , "1" の場合は送信動作が許可と
なります。
( 注意事項 )
送信中に送信動作を禁止した場合は , シリアル出力データレジスタ (SODR1) のデー
タの送信が完了した後に送信動作を停止します。
"0" を設定する場合は , シリアル出力データレジスタ (SODR1) にデータを書き込ん
だ後 , 非同期モードの場合 , ボーレートの 1/16 時間 , 同期モードの場合 , ボーレート
と同じ時間以上待ってから設定してください。
動作モード 2 ( 同期 ) 時は , RXE または TXE のどちらか一方を "1" に設定すると送
信・受信動作共に許可されます。
bit10
bit9
bit8
354
パリティあり (PEN=1) の場合 , 奇数パリティ / 偶数パリティを選択します。
第 17 章 UART
17.4.2
シリアルモードレジスタ (SMR0/SMR1)
シリアルモードレジスタ (SMR0/SMR1) は , 動作モードの選択 , ボーレートクロック
の選択 , シリアルデータとクロックの端子への出力許可 / 禁止を設定するレジスタで
す。
■ シリアルモードレジスタ (SMR0/SMR1) のビット構成
図 17.4-3 にシリアルモードレジスタ (SMR0/SMR1) のビット構成を , 表 17.4-2 に各
ビットの機能を示します。
図 17.4-3 シリアルモードレジスタ (SMR0/SMR1) のビット構成
アドレス bit15
ch.0:000034H
ch.1:000038H
bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
(SCR)
MD1
MD0
CS2
CS1
CS0
-
SCKE
SOE
R/W
R/W
R/W
R/W
R/W
-
R/W
R/W
初期値
00000-00B
SOE シリアルデータ出力許可ビット(P37/SOT0,P61/SOT1端子)
0
汎用入出力ポートとする
1
UART0/1のシリアルデータ出力端子とする
SCKE シリアルクロック出力許可ビット(P40/SCK0,P62/SCK1端子)
0
汎用入出力ポートまたはUART0/1のクロック入力端子とする
1
UART0/1のクロック出力端子とする
クロック選択ビット
CS2~CS0
"000B"~"101B"
専用ボーレートジェネレータによるボーレート
内部タイマ(16ビットリロードタイマ0)
"110B"
によるボーレート
外部クロックによるボーレート
"111B"
動作モード選択ビット
MD1 MD0
R/W :リード/ライト可能
:初期値
動作モード
0
0
0
非同期(ノーマルモード)
0
1
1
非同期(マルチプロセッサモード)
1
0
2
同期(ノーマルモード)
1
1
-
設定禁止
355
第 17 章 UART
表 17.4-2 シリアルモードレジスタ (SMR0/SMR1) の各ビットの機能説明
ビット名
bit7
bit6
bit5
bit4
bit3
MD1, MD0:
動作モード選択
ビット
CS2 ~ CS0:
クロック選択
ビット
機 能
これらのビットにより動作モードを選択します。
( 注意事項 )
動作モード 1 ( マルチプロセッサモード ) は , マスタスレーブ型通信のマスタとして
のみ使用できます。UART は , 受信時にアドレス / データ判別機能がないためス
レーブとしては使用できません。
・ボーレートのクロックソースを選択します。専用ボーレートジェネレータを選択
した場合には , 同時にボーレートも決定されます。
・専用ボーレートジェネレータを選択した場合には , 非同期転送モードでは 5 種類 ,
同期転送モードでは 3 種類の計 8 種類のボーレートが選択できます。
・クロック入力は , 外部クロック (SCK0 端子 ) , 16 ビットリロードタイマ , 専用ボー
レートジェネレータから選択できます。
( 注意事項 )
同期転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止です。
1) CS2 ~ CS0 =000B
2) CS2 ~ CS0 =001B かつ , DIV3 ~ DIV0 =0000B
bit2
未定義ビット
読出し時は不定値 , 書込みは意味を持ちません。
・シリアルクロックの入出力を制御するビットです。
・このビットが "0" の場合は P02/SCK0 端子は汎用入出力ポート (P02) またはシリア
ルクロック入力端子となり , "1" の場合はシリアルクロック出力端子となります。
( 注意事項 )
SCKE:
・P02/SCK0 端子をシリアルクロック入力 (SCKE=0) として使用する場合は , P02 を
シリアル
入力ポートに設定してください。また , クロック選択ビットによって外部クロッ
クロック出力
bit1
許可ビット
クを選択 (SMR の CS2 ~ CS0=111B) してください。
(P40/SCK0,
・シリアルクロック出力 (SCKE=1) として使用する場合は , 外部クロック以外 (SMR
P62/SCK1 端子)
の CS2 ~ CS0=111B 以外 ) を選択してください。
( 参考 )
SCK0 端子がシリアルクロック出力 (SCKE=1) の場合は , 汎用入出力ポートの状態に
かかわらず , シリアルクロック出力端子として機能します。
・シリアルデータの出力を許可 / 禁止するビットです。
SOE:
・このビットが "0" の場合 , P01/SOT0 端子は汎用入出力ポートとなり (P01) , "1" の
シリアルデータ
場合はシリアルデータ出力端子 (SOT0) となります。
bit0 出力許可ビット
(
参考
)
(P37/SOT0,
シリアルデータ出力
(SOE=1) の場合は , 汎用入出力ポート (P01) の状態にかかわら
P61/SOT1 端子)
ず , SOT0 端子として機能します。
356
第 17 章 UART
17.4.3
シリアルステータスレジスタ (SSR0/SSR1)
シリアルステータスレジスタ (SSR0/SSR1) は , 送受信やエラーの状態の確認 , 割込
みの許可 / 禁止を設定するレジスタです。
■ シリアルステータスレジスタ (SSR0/SSR1) のビット構成
図 17.4-4 にシリアルステータスレジスタ (SSR0/SSR1) のビット構成を , 表 17.4-3 に各
ビットの機能を示します。
図 17.4-4 シリアルステータスレジスタ (SSR0/SSR1) のビット構成
アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7
ch.0:000037 H
ch.1:00003B H
PE
ORE
R
R
FRE RDRF TDRE
R
R
R
BDS
RIE
TIE
R/W
R/W
R/W
TIE
bit0
(SIDR/SODR)
00001000B
送信割込み要求許可ビット
0
送信割込み要求出力を禁止
1
送信割込み要求出力を許可
RIE
初期値
受信割込み要求許可ビット
0
受信割込み要求出力を禁止
1
受信割込み要求出力を許可
BDS
転送方向選択ビット
0
LSB ファースト(最下位ビットから転送)
1
MSB ファースト(最上位ビットから転送)
TDRE
送信データエンプティフラグビット
0
送信データあり(送信データの書込み禁止)
1
送信データなし(送信データの書込み許可)
RDRF
受信データフルフラグビット
0
受信データなし
1
受信データあり
フレーミングエラーフラグビット
FRE
0 フレーミングエラーなし
1
ORE
フレーミングエラーあり
オーバランエラーフラグビット
0
オーバランエラーなし
1
オーバランエラーあり
PE
パリティエラーフラグビット
0
パリティエラーなし
1
パリティエラーあり
R/W :リード/ライト可能
R :リードオンリ
:初期値
357
第 17 章 UART
表 17.4-3 シリアルステータスレジスタ (SSR0/SSR1) の各ビットの機能説明
ビット名
機 能
bit15
PE:
パリティエラー
フラグビット
・受信時にパリティエラーが発生すると "1" にセットされ , シリアル制御レジスタ
(SCR) の REC ビットに "0" を書き込むとクリアされます。
・このビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。
・このフラグがセットされた場合は , シリアル入力データレジスタ (SIDR) のデータ
は無効です。
bit14
ORE:
オーバラン
エラーフラグ
ビット
・受信時にオーバランが発生すると "1" にセットされ , シリアル制御レジスタ (SCR)
の REC ビットに "0" を書き込むと "0" にクリアされます。
・このビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。
・このフラグがセットされた場合は , シリアル入力データレジスタ (SIDR) のデータ
は無効です。
bit13
FRE:
フレーミング
エラーフラグ
ビット
・受信時にフレーミングエラーが発生すると "1" にセットされ , シリアル制御レジス
タ (SCR) の REC ビットに "0" を書き込むと "0" にクリアされます。
・このビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。
・このフラグがセットされた場合は , シリアル入力データレジスタ (SIDR) のデータ
は無効です。
bit12
・シリアル入力データレジスタ (SIDR) の状態を示すフラグです。
RDRF:
・SIDR に受信データがロードされると , このビットは "1" にセットされ , SIDR を読
受信データ
み出すと "0" にクリアされます。
フルフラグビット
・このビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。
TDRE:
送信データ
エンプティ
フラグビット
・シリアル出力データレジスタ (SODR) の状態を示すフラグです。
・SODR に送信データを書き込むと , このビットは "0" にクリアされます。データが
送信用シフトレジスタにロードされて送信が開始されると "1" にセットされます。
・このビットと TIE ビットが "1" の場合 , 送信割込み要求を出力します。
( 注意事項 )
初期状態では , このビットは "1" (SODR が空 ) にセットされています。
bit10
BDS:
転送方向選択
ビット
・シリアルデータを最下位ビット側から先に転送するか (LSB ファースト , BDS=0) ,
最上位ビット側から先に転送するか (MSB ファースト , BDS=1) を選択するビット
です。
( 注意事項 )
シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側を入れ換
えるため SIDR, SODR レジスタへデータを書き込んだ後 , このビットを書き換える
と , そのデータは無効になります。
bit9
RIE:
受信割込み要求
許可ビット
・CPU への受信割込み要求出力の許可 / 禁止をするビットです。
・このビットと受信データフラグビット (RDRF) が "1" の場合またはこのビットとい
ずれか 1 つ以上のエラーフラグビット (PE, ORE, FRE) が "1" の場合 , 受信割込み要
求を出力します。
bit8
TIE:
送信割込み要求
許可ビット
・CPU への送信割込み要求出力の許可 / 禁止をするビットです。
・このビットと TDRE ビットが "1" の場合 , 送信割込み要求を出力します。
bit11
358
第 17 章 UART
17.4.4
シリアル入力データレジスタ (SIDR0/SIDR1) ,
シリアル出力データレジスタ (SODR0/SODR1)
シリアル入力データレジスタ (SIDR0/SIDR1) はシリアルデータ受信用レジスタ , シ
リアル出力データレジスタ (SODR0/SODR1) はシリアルデータ送信用レジスタで
す。SIDR0/SIDR1 レジスタと SODR0/SODR1 レジスタは , 同一アドレスに配置さ
れています。
■ シリアル入力データレジスタ (SIDR0/SIDR1) のビット構成
図 17.4-5 に , シリアル入力データレジスタのビット構成を示します。
図 17.4-5 シリアル入力データレジスタ (SIDR0/SIDR1) のビット構成
ch.0: 000036H
ch.1: 00003AH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
D7
R
D6
R
D5
R
D4
R
D3
R
D2
R
D1
R
D0
R
初期値
XXXXXXXXB
R :リードオンリ
X :不定
シリアル入力データレジスタ (SIDR0/SIDR1) は , 受信したデータが格納されるレジス
タです。SIN0 端子に送られてきたシリアルデータ信号がシフトレジスタで変換されて
, このレジスタに格納されます。データ長が 7 ビットの場合 , 上位 1 ビット (D7) は無効
データとなります。受信データがこのレジスタに格納されると , 受信データフルフラグ
ビット (SSR の RDRF) が "1" にセットされます。この場合 , 受信割込み要求が許可され
ていれば受信割込みが発生します。
SIDR0/SIDR1 は , シリアルステータスレジスタ (SSR0/SSR1) の RDRF ビットが "1" の場
合に読み出してください。RDRF ビットは , SIDR0/SIDR1 を読み出すと , 自動的に "0"
にクリアされます。なお , 受信エラーが発生 (SSR の PE, ORE, FRE のいずれかが "1")
した場合 , SIDR0/SIDR1 のデータは無効となります。
359
第 17 章 UART
■ シリアル出力データレジスタ (SODR0/SODR1) のビット構成
図 17.4-6 に , シリアル出力データレジスタのビット構成を示します。
図 17.4-6 シリアル出力データレジスタ (SODR0/SODR1) のビット構成
ch.0: 000036H
ch.1: 00003AH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
D7
W
D6
W
D5
W
D4
W
D3
W
D2
W
D1
W
D0
W
初期値
XXXXXXXXB
W:ライトオンリ
X :不定
送信許可状態の場合 , 送信するデータをこのレジスタに書き込むと , 送信データが送信
用シフトレジスタに転送され , シリアルデータに変換されて , シリアルデータ出力端子
(SOT0 端子 ) から送出されます。データ長が 7 ビットの場合 , 上位 1 ビット (D7) は無
効データとなります。
送信データがこのレジスタに書き込まれると , 送信データエンプティフラグ (SSR の
TDRE) が "0" にクリアされ , 送信用シフトレジスタへの転送が終了すると "1" にセット
されます。TDRE ビットが "1" のときは , 次の送信用データを書き込むことができます。
この場合 , 送信割込み要求出力が許可されていると , 送信割込みが発生します。次の送
信データの書込みは , 送信割込みの発生によるかまたは TDRE ビットが "1" の場合にし
てください。
<注意事項>
SODR0/SODR1 は書込みのみのレジスタで, SIDR0/SIDR1 は読出しのみのレジスタです。
この 2 種類のレジスタは同一アドレスに配置されているため , 書込み値と読出し値は異な
ります。そのため , INC/DEC 命令などのリードモディファイライト (RMW) 動作をする命
令は使用できません。
360
第 17 章 UART
17.4.5
通信プリスケーラ制御レジスタ (CDCR0/CDCR1)
通信プリスケーラ制御レジスタ (CDCR0/CDCR1) は , マシンクロックの分周を制御
するレジスタです。
■ 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) のビット構成
UART の動作クロックは , マシンクロックを分周することにより得られます。この通信
プリスケーラによって , 種々のマシンサイクルに対して一定のボーレートが得られる
ように設計されています。本通信プリスケーラ出力は , 拡張 I/O シリアルインタフェー
スの動作クロックにも使われています。CDCR0/CDCR1 のビット構成を図 17.4-7 に示
します。
図 17.4-7 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) のビット構成
ch.0: 00003DH
ch.1: 00003FH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
MD
R/W
-
-
-
DIV3
R/W
DIV2
R/W
DIV1
R/W
DIV0
R/W
初期値
0---0000B
R/W :リード / ライト可能
-
:未定義
【bit15】MD (Machine clock Devide mode select)
MD ビットは , 通信プリスケーラの動作許可ビットです。
0: 通信プリスケーラは停止します。
1: 通信プリスケーラは動作します。
【bit14, bit13, bit12】 未定義ビット
読出し時は不定値 , 書込みは意味を持ちません。
【bit11, bit10, bit9, bit8】DIV3 ~ DIV0 (DIVide 3 ~ 0)
表 17.4-4 に従って , マシンクロックの分周比を決定します。
表 17.4-4 通信プリスケーラ ( マシンクロックの分周比 )
MD
DIV3
DIV2
DIV1
DIV0
Div
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
停止
1
2
3
4
5
6
7
8
361
第 17 章 UART
<注意事項>
分周比を変えた場合は , クロックの安定時間として 2 周期分の時間を置いてから通信を開
始してください。
同期転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止です。
1) CS2 ~ CS0 =000B
2) CS2 ~ CS0 =001B かつ , DIV3 ~ DIV0 =0000B
362
第 17 章 UART
17.5
UART の割込み
UART には , 受信割込みと送信割込みがあり , 次に示す要因で割込み要求を発生させ
ることができます。
• 受信データがシリアル入力データレジスタ (SIDR0/SIDR1) にセットされた場合ま
たは受信エラーが発生した場合。
• 送信データがシリアル出力データレジスタ (SODR0/SODR1) から送信用シフトレ
ジスタに転送された場合。
また , それぞれ拡張インテリジェント I/O サービス (EI2OS) にも対応しています。
■ UART の割込み
UART の割込み制御ビットと割込み要因の関係は , 表 17.5-1 のようになっています。
表 17.5-1 UART の割込み制御ビットと割込み要因の関係
送受信
受信
送信
動作モード
割込み要求
フラグビット
0
1
2
RDRF
○
○
○
受信データをバッファ
(SIDR) へロード
ORE
○
○
○
オーバランエラー発生
FRE
○
○
×
フレーミングエラー発生
PE
○
×
×
パリティエラー発生
TDRE
○
○
○
送信バッファ (SODR) が空
割込み要因
許可ビット
割込み要因
割込み要求フラグの
クリア
受信データの読出し
SSR0/SSR1 の
RIE
SSR0/SSR1 の
TIE
受信エラーフラグ
クリアビット
(SCR0/SCR1:REC) へ
の "0" の書込み
送信データの書込み
○ : 使用ビット
× : 未使用ビット
● 受信割込み
受信モードの場合は , データ受信完了 (SSR0/SSR1 の RDRF) , オーバランエラー発生
(SSR0/SSR1 の ORE) , フレーミングエラー発生 (SSR0/SSR1 の FRE) , パリティエラー発
生 (SSR0/SSR1 の PE) によって , シリアルステータスレジスタ中のそれぞれに対応する
フラグビットが "1" にセットされます。これらのフラグビットのいずれかが "1" のとき
, 受信割込みが許可 (SSR0/SSR1 の RIE=1) されていると , 受信割込み要求を割込みコン
トローラに出力します。
受信データフルフラグ (SSR0/SSR1 の RDRF) は , シリアル入力データレジスタ (SIDR0/
SIDR1) を読み出すと , 自動的に "0" にクリアされます。受信エラーフラグ (SSR0/SSR1
の PE, ORE, FRE) は , シリアル制御レジスタ (SCR0/SCR1) の REC ビットに "0" を書き
込むと , すべて "0" にクリアされます。
● 送信割込み
送信データがシリアル出力データレジスタ (SODR0/SODR1) から転送用シフトレジス
タに転送されると , シリアルステータスレジスタ (SSR0/SSR1) の TDRE ビットが "1" に
セットされます。この場合 , 送信割込みが許可 (SSR0/SSR1 の TIE=1) されていると , 送
信割込み要求を割込みコントローラに出力します。
363
第 17 章 UART
■ UART の割込みと EI2OS
表 17.5-2 に UART に関する割込みと EI2OS との関係を示します。
表 17.5-2 UART の割込みと EI2OS
割込み制御レジスタ
割込み要因
ベクタテーブルアドレス
割込み番号
レジスタ名
アドレス
下位
上位
バンク
EI2OS
UART1 受信割込み
#37 (25H)
ICR13
0000BDH
FFFF68H
FFFF69H
FFFF6AH
◎
UART1 送信割込み
#38 (26H)
ICR13
0000BDH
FFFF64H
FFFF65H
FFFF66H
△
UART0 受信割込み
#39 (27H)
ICR14
0000BEH
FFFF60H
FFFF61H
FFFF62H
◎
UART0 送信割込み
#40 (28H)
ICR14
0000BEH
FFFF5CH
FFFF5DH
FFFF5EH
△
EI2
◎ : UART の受信エラー検出による
OS 停止機能付き
△ : ICR13, ICR14 または割込みベクトルを共有する割込み要因を使用しない場合に使用可能
■ UART の EI2OS 機能
UART は EI2OS 対応の回路を有しています。このため受信 / 送信の各割込みで別々に
EI2OS を起動することができます。
● 受信時
ほかのリソースの状態に関係なく , EI2OS を使用することができます。
● 送信時
UART は , 割込み制御レジスタ (ICR13, ICR14) を UART の受信割込みと共有している
ので , UART の受信で割込みを使用しない場合だけ , EI2OS を起動できます。
364
第 17 章 UART
受信割込み発生とフラグセットのタイミング
17.5.1
受信時の割込みとしては , 受信完了 (SSR0/SSR1 の RDRF) および受信エラーの発
生 (SSR0/SSR1 の PE, ORE, FRE) があります。
■ 受信割込み発生とフラグセットのタイミング
受信時は , ストップビットの検出 ( 動作モード 0, 1 の場合 ) または , データの最終ビッ
ト (D7) の検出 ( 動作モード 2 の場合 ) によって , 受信データがシリアル入力データレ
ジスタ (SIDR0/SIDR1) に格納されます。この場合 , 受信エラーが発生するとエラーフラ
グ (SSR0/SSR1 の PE, ORE, FRE) がセットされ , その後 , 受信データフルフラグ (SSR0/
SSR1 の RDRF) が "1" にセットされます。各モードともいずれかのエラーフラグが "1"
の場合 , SIDR0/SIDR1 の値は無効データとなります。
● 動作モード 0 ( 非同期 , ノーマルモード )
ストップビット検出時に RDRF が "1" にセットされ , 受信エラーがあると , エラーフラ
グ (PE, ORE, FRE) がセットされます。
● 動作モード 1 ( 非同期 , マルチプロセッサモード )
ストップビット検出時に RDRF が "1" にセットされ , 受信エラーがあると , エラーフラ
グ (ORE, FRE) がセットされます。パリティエラーの検出はできません。
● 動作モード 2 ( 同期 , ノーマルモード )
受信データの最終ビット (D7) 検出時に RDRF がセットされ , 受信エラーがあると , エ
ラーフラグ (ORE) がセットされます。パリティエラーおよびフレーミングエラーの検
出はできません。図 17.5-1 に , 受信動作とフラグセットのタイミングについて示しま
す。
図 17.5-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)
PE, ORE, FRE*
RDRF
受信割込み発生
*
:PEフラグはモード1では使用できません
PE, FREフラグはモード2では使用できません
ST :スタートビット
SP :ストップビット
A/D :モード2(マルチプロセッサモード)のアドレス/データ選択ビット
● 受信割込み発生のタイミング
受信割込みが許可 (SSR0/SSR1 の RIE=1) されているときに , RDRF, PE, ORE, FRE のい
ずれかのフラグが "1" にセットされると , その直後に受信割込み要求 (#37, #39) が発生
します。
365
第 17 章 UART
送信割込み発生とフラグセットのタイミング
17.5.2
送信時の割込みは , シリアル出力データレジスタ (SODR0/SODR1) に , 次のデータ
の書込みが可能な状態になると発生します。
■ 送信割込み発生とフラグセットのタイミング
送信データエンプティフラグビット (SSR0/SSR1 の TDRE) は , シリアル出力データレ
ジスタ (SODR0/SODR1) に書き込まれたデータが , 送信用シフトレジスタに転送され ,
次のデータ書込みが可能な状態になると "1" にセットされます。SODR0/SODR1 に送信
データを書き込むと , TDRE は "0" にクリアされます。図 17.5-2 に送信動作とフラグ
セットのタイミングについて示します。
図 17.5-2 送信動作とフラグセットのタイミング
[動作モード0, 1]
送信割込み発生
送信割込み発生
SODR書込み
TDRE
SOT0/1出力
[動作モード2]
ST
D0
D1
D2
D3
D4
送信割込み発生
D5
D6
D7
SP
A/D SP
ST
D0
D1
D2
D3
D3
D4
D5
D6
D7
送信割込み発生
SODR書込み
TDRE
SOT0/1出力
ST
D0~D7
SP
A/D
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
:スタートビット
:データビット
:ストップビット
:アドレス/データ選択ビット
● 送信割込み要求発生のタイミング
送信割込みが許可 (SSR0/SSR1 の TIE=1) され , TDRE フラグが "1" にセットされると ,
その直後に送信割込み要求 (#38, #40) が発生します。
<注意事項>
初期状態において TDRE ビットが "1" となり , 送信割込みを許可 (TIE=1) すると直ちに送
信完了割込みが発生します。TDRE ビットは読出し専用ビットで , クリアする方法はシリ
アル出力データレジスタ (SODR0/SODR1) に新規データを書き込むしかありませんので,
送信割込み許可のタイミングには注意してください。
送信動作中に送信動作を禁止 (SCR:TXE=0, 動作モード 1 での場合 , 受信動作禁止
(SCR:RXE=0) も 含 む ) す る と , 送信 デ ータ エ ンプ テ ィフ ラ グビ ッ トが セ ット さ れ
(SSR:TDRE=1) , 送信用シフトレジスタのシフト動作が停止してから UART の通信動作が
禁止されます。送信が停止する前にシリアル出力データレジスタ (SODR) に書き込まれて
いた送信データは送信されます。
366
第 17 章 UART
17.6
UART のボーレート
UART の送受信クロックは , 次のいずれかを選択できます。
• 専用ボーレートジェネレータ
• 内部クロック (16 ビットリロードタイマ )
• 外部クロック (SCK 端子入力のクロック )
■ UART ボーレート選択
ボーレートは次の 3 種類の中から 1 種類を選択できます。ボーレートの選択回路を図
17.6-1 に示します。
● 専用ボーレートジェネレータによるボーレートの選択
UART は専用ボーレートジェネレータを内蔵しており , シリアルモードレジスタ
(SMR0/SMR1) によって 8 種類のボーレートから 1 種類を選択できます。マシンクロッ
クの周波数とシリアルモードレジスタ (SMR0/SMR1) の BCH, CS2 ~ CS0 ビットによっ
て , 非同期またはクロック同期ボーレートを選択します。
● 内部タイマによるボーレート
16 ビットリロードタイマから供給される内部クロックを , そのまま ( 同期の場合 ) また
は 16 分周 ( 非同期の場合 ) して , ボーレートとして使用します。リロード値の設定で
自由にボーレートを設定できます。
● 外部クロックによるボーレート
UART のクロック入力端子 (SCK0/P02, SCK1/P05) から入力されたクロックを , そのま
ま ( 同期の場合 ) または 16 分周 ( 非同期の場合 ) して , ボーレートとして使用します。
外部で自由にボーレートを設定できます。
367
第 17 章 UART
図 17.6-1 UART ボーレート選択回路
SMR0/1:CS2~0
(クロック選択ビット)
[専用ボーレートジェネレータ]
クロックセレクタ
4
マシンクロック
分周比
プリスケーラ
"000B"~
"101B"のとき
分周回路
(同期)
1~32分周のいずれか
を選択
(非同期)
内部固定分周比を選択
[内部タイマ]
TMCSR0/1:CSL1, CSL0
2
クロックセレクタ
UF
ダウン
カウンタ
"110B"のとき
1/1(同期)
1/16(非同期)
φ/21 φ/23 φ/25
プリスケーラ
16ビットリロードタイマ0
[外部クロック]
"111B"のとき
SCK0,SCK1
端子
1/1(同期)
1/16(非同期)
SMR0/1:MD1
(クロック同期/非同期の選択)
368
ボーレート
第 17 章 UART
17.6.1
専用ボーレートジェネレータによるボーレート
UART の転送クロックとして , 専用ボーレートジェネレータの出力クロックを選択
した場合の設定可能なボーレートを示します。
■ 専用ボーレートジェネレータによるボーレート
専用ボーレートジェネレータで転送クロックを生成する場合は , マシンクロックがマ
シンクロックプリスケーラで分周された後 , クロックセレクタで選択される転送ク
ロック分周比で分周されます。マシンクロック分周比は , 非同期 / 同期共通ですが , 転
送クロック分周比は非同期と同期で , 別々に内部設定された値を選択するようになっ
ています。
したがって , 実際の転送レートは次式で与えられます。
非同期ボーレート =φ × ( プリスケーラ分周比 ) × ( 非同期転送クロック分周比 )
同期ボーレート =φ × ( プリスケーラ分周比 ) × ( 同期転送クロック分周比 )
φ: マシンクロック周波数
● プリスケーラによる分周比 ( 非同期 / 同期共通 )
マシンクロックの分周比は , 表 17.6-1 に示すように CDCR0/CDCR1 レジスタの DIV3 ~
DIV0 ビットで指定します。
表 17.6-1 マシンクロックプリスケーラによる分周比の選択
MD
DIV3
DIV2
DIV1
DIV0
div
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
停止
1
2
3
4
5
6
7
8
● 同期転送クロック分周比
同期ボーレートの分周比は , 表 17.6-2 に示すようにシリアルモードレジスタ (SMR) の
CS2 ~ CS0 ビットで指定します。
表 17.6-2 同期ボーレート分周比の選択
CL2
CS1
CS0
CLK 同期時
算出式
0
0
1
4M
(φ ÷ div) /2
0
1
0
2M
(φ ÷ div) /4
0
1
1
1M
(φ ÷ div) /8
1
0
0
500K
(φ ÷ div) /16
1
0
1
250K
(φ ÷ div) /32
ただし , φ はマシンサイクル , φ=16MHz, div=2 で算出しています。
369
第 17 章 UART
● 非同期転送クロック分周比
非同期ボーレートの分周比は , 表 17.6-3 に示すようにシリアルモードレジスタ
(SMR0/SMR1) の CS2 ~ CS0 ビットで指定します。
表 17.6-3 非同期ボーレート分周比の選択
CL2
CS1
CS0
非同期 ( 調歩同期 )
0
0
0
76923
(φ ÷ div) / (8 × 13 × 2)
(φ ÷ div) / (8 × 13 × 4)
算出式
0
0
1
38461
0
1
0
19230
(φ ÷ div) / (8 × 13 × 8)
0
1
1
9615
(φ ÷ div) / (8 × 13 × 16)
1
0
0
500K
(φ ÷ div) / (8 × 2 × 2)
1
0
1
250K
(φ ÷ div) / (8 × 2 × 4)
ただし , φ はマシンサイクル , φ= 16MHz, div=1 で算出しています。
● 内部タイマ
CS2 ~ CS0 を 110 に設定して内部タイマを選択した場合のボーレートの算出式 ( リロー
ドタイマを使用した場合の例 ) は次式のようになります。
非同期 ( 調歩同期 )
CLK 同期
(φ ÷ N) / (16 × 2 × (n+1) )
(φ ÷ N) / (2 × (n+1) )
N: タイマのカウントクロックソース
n: タイマのリロード値
<注意事項>
モード 2 (CLK 同期モード ) の場合は , 同期ボーレートをマシンクロック周波数の 1/4 以下
としてください。
● 外部クロック
CS2 ~ CS0 を 111 に設定して外部クロックを選択した場合のボーレートは , 外部クロッ
クの周波数を f とすると次のようになります。
非同期 ( 調歩同期 ) f/16
CLK 同期
f’
ただし, fの最大はマシンクロックの1/2まで, f’の最大はマシンクロックの1/8までです。
370
第 17 章 UART
17.6.2
内部タイマ (16 ビットリロードタイマ ) による
ボーレート
UART の転送クロックとして , 16 ビットリロードタイマから供給される内部クロッ
クを選択する場合の設定とボーレートの計算式を示します。
■ 内部タイマ (16 ビットリロードタイマ ) によるボーレート
シリアルモードレジスタ (SMR0/SMR1) の CS2 ~ CS0 ビットに "110B" を書き込むと ,
内部タイマによるボーレートが選択されます。ボーレートは , 16 ビットリロードタイ
マのプリスケーラ分周比とリロード値の選択で自由に設定できます。図 17.6-2 に内部
タイマ (16 ビットリロードタイマ ) によるボーレート選択回路を示します。
図 17.6-2 内部タイマ (16 ビットリロードタイマ ) によるボーレート選択回路
SMR0/1:CS2~0=110B
(内部タイマ選択)
クロックセレクタ
1/1(同期)
1/16(非同期)
16ビットリロードタイマ出力
(プリスケーラ分周値と
リロード値によって周波数指定)
ボーレート
SMR0/1:MD1
(クロック同期/非同期の選択)
● ボーレート計算式
非同期ボーレート =
φ
X (n + 1) × 2 × 16
同期ボーレート =
φ
X (n + 1) × 2
bps
bps
φ: マシンクロック周波数
X:16 ビットリロードタイマのプリスケーラによる分周比 (21, 23, 25)
n:16 ビットリロードタイマのリロード値 (0 ~ 65535)
371
第 17 章 UART
● リロード値の設定例 ( マシンクロック :7.3728MHz の場合 )
表 17.6-4 にボーレートとリロード値の関係を示します。
表 17.6-4 ボーレートとリロード値
リロード値
クロック非同期 ( 調歩同期 )
ボーレート
X=21
( マシンサイクルの
2 分周 )
X=23
( マシンサイクルの
8 分周 )
X=21
( マシンサイクルの
2 分周 )
X=23
( マシンサイクルの
8 分周 )
38400
2
-
47
11
19200
5
95
23
9600
11
-
2
191
47
4800
23
5
383
95
2400
47
11
767
191
1200
95
23
1535
383
600
191
47
3071
767
300
383
95
6143
1535
X : 16 ビットリロードタイマのプリスケーラによる分周比
- : 設定禁止
<注意事項>
クロック同期時 , 以下の設定は禁止です。
X=1, n=0
372
クロック同期
第 17 章 UART
17.6.3
外部クロックによるボーレート
UART の転送クロックとして , 外部クロックを選択する場合の設定とボーレートの
計算式を示します。
■ 外部クロックによるボーレート
● ボーレートの選択
外部クロックによるボーレートを選択するには , 次の 3 つの設定が必要です。
シリアルモードレジスタ (SMR0/SMR1) の CS2 ~ CS0 ビットに "111B" を書き込んで ,
外部クロック入力によるボーレートを選択します。
SCK0/P02, SCK1/P05 端子を入力に設定します (DDR0 の bit2=0, bit5=0) 。
モードレジスタ (SMR0/SMR1) の SCKE ビットに "0" を書き込んで , 端子を外部クロッ
ク入力端子とします。
図 17.6-3 に示すように , SCK0 端子から入力された外部クロックを基に , ボーレートを
選択します。内部の分周比は固定されているので , ボーレートを変更するには外部の入
力クロックの周期を変更する必要があります。
図 17.6-3 外部クロックによるボーレート選択回路
SMR0/1:CS2~0=111B
(外部クロック選択)
クロックセレクタ
SCK0
SCK1
端子
1/1(同期)
1/16(非同期)
ボーレート
SMR0/1:MD1
(クロック同期/非同期選択)
● ボーレート計算式
非同期ボーレート = f/16
同期ボーレート = f
f: 外部クロック周波数 (f は最大で 2MHz)
373
第 17 章 UART
17.7
UART の動作
UART には , 通常の双方向シリアル通信機能 ( 動作モード 0, 2) の他に , マスタ / ス
レーブ型接続の通信機能 ( 動作モード 1) があります。
■ UART の動作
● 動作モード
UART の動作モードにはモード 0 ~ 2 の 3 種類があり , 表 17.7-1 に示すように CPU 間
の接続方式やデータ転送方式で選択することができます。
表 17.7-1 UART の動作モード
データ長
動作モード
パリティなし
0
ノーマルモード
1
マルチプロセッサ
モード
2
ノーマルモード
同期方式
ストップビット長
非同期
1 ビット
または
2 ビット* 2
パリティあり
7 ビットまたは 8 ビット
8 ビット+ 1 * 1
-
非同期
8 ビット
-
同期
なし
-: 設定不可
*1: " + 1" は通信制御用に使用されるアドレス / データ選択ビット (A/D) です。
*2: 受信時のストップビットは 1 ビットのみ検出可
<注意事項>
UART の動作モード 1 は , マスタ / スレーブ型接続におけるマスタの場合だけに使用され
ます。
● CPU 間接続方式
1 対 1 接続 ( ノーマルモード ) とマスタ / スレーブ型接続 ( マルチプロセッサモード ) の
どちらかを選択できます。どちらの方式でも , データ長 , パリティ有無 , 同期方式など
は , すべての CPU で統一しておく必要があり , 動作モードを次のように選択します。
1 対 1 接続では , 2 つの CPU で動作モード 0, 2 のいずれかの同じ方式を採用する必要が
あります。非同期方式では動作モード 0 を , 同期方式では動作モード 2 を選択してくだ
さい。
マスタ / スレーブ型接続では , 動作モード 1 を使用します。動作モード 1 を選択し , マ
スタとして使用してください。なお , この接続ではパリティなしを選択してください。
● 同期方式
動作モードにおいて , 非同期方式 ( 調歩同期 ) またはクロック同期方式のどちらかを選
択できます。
● 信号方式
UART は , NRZ (Non Return to Zero) 形式のデータだけを扱えます。
374
第 17 章 UART
● 動作許可
UART は , 送信 , 受信のそれぞれに対して , TXE ( 送信 ) , RXE ( 受信 ) の動作許可ビッ
トがあり , 送受信動作を制御することができます。動作中に , 動作禁止した場合は , 次
のようになります。
受信中 (受信用シフトレジスタにデータが入力されているとき) に受信動作を禁止した
場合には , そのフレームの受信を完了し , シリアル入力データレジスタ (SIDR0/SIDR1)
に受信データを格納したところで受信動作を停止します。
送信中 (送信用シフトレジスタからデータが出力されている場合) に送信動作を禁止し
た場合は , シリアル出力データレジスタ (SODR0/SODR1) にデータがなくなった後に
送信動作を停止します。
375
第 17 章 UART
17.7.1
非同期モード ( 動作モード 0, 1) の動作
UART を動作モード 0 ( ノーマルモード ) または動作モード 1 ( マルチプロセッサ
モード ) で使用する場合 , 転送方式は非同期となります。
■ 非同期モード ( 動作モード 0, 1) の動作
● 転送データフォーマット
転送データは必ずスタートビット ("L" レベル ) から始まり , 指定されたデータビット
長の転送が行われ , ストップビット ("H" レベル ) で終了します。
動作モード 1 では , データは 8 ビット長固定で , パリティは付加されず , そのかわりに
A/D ( アドレス / データ選択ビット ) が付加されています。
図 17.7-1 に , 転送データフォーマット ( 動作モード 0, 1) を示します。
図 17.7-1 転送データフォーマット ( 動作モード 0, 1)
*
[動作モード0]
ST
D0
D1
D2
D3
D4
D5
D6
D7/P
SP
[動作モード1]
ST
D0
D1
D2
D3
D4
D5
D6
D7
A/D
SP
* :D7(ビット7)……パリティなしのとき
P(パリティ)……パリティありのとき
ST :スタートビット
SP :ストップビット
A/D :動作モード1(マルチプロセッサモード)のアドレス/データ選択ビット
● 送信動作
送信データエンプティフラグビット (SSR0/SSR1 の TDRE) が "1" のとき , シリアル出力
データレジスタ (SODR) に送信データを書き込みます。ここで , 送信動作が許可 (SCR0/
SCR1 の TXE=1) されていると , 送信します。
送信データが送信用シフトレジスタに転送されて送信が開始されると, TDREフラグが
再び "1" にセットされ , 次の送信データをセットできるようになります。このとき , 送
信割込み要求が許可 (SSR0/SSR1 の TIE=1) されていれば , 送信割込み要求を出力して
SODR0/SODR1 に送信データをセットするように要求します。TDRE フラグは , SODR0/
SODR1 に送信データを書き込むと , "0" にクリアされます。
● 受信動作
受信動作が許可 (SCR0/SCR1 の RXE=1) されていると , 常に受信動作が行われていま
す。スタートビットを検出すると , シリアル制御レジスタ (SCR0/SCR1) で決められた
データフォーマットに従って 1 フレームデータの受信が行われます。1 フレームの受信
が終わると , エラーが発生した場合にはエラーフラグがセットされた後 , 受信データフ
ルフラグビット (SSR0/SSR1 の RDRF) が "1" にセットされます。このとき , 受信割込み
要求が許可 (SSR0/SSR1 の RIE=1) されていると受信割込み要求を出力します。シリア
ルステータスレジスタ (SSR0/SSR1) の各フラグを調べ , 正常受信ならシリアル入力
データレジスタ (SIDR0/SIDR1) をリードして , エラーが発生していたらエラー処理を
するようにしてください。RDRF フラグは , SIDR0/SIDR1 から受信データをリードする
と "0" にクリアされます。
376
第 17 章 UART
● スタートビット検出方法
スタートビットを検出するには , 以下のように設定してください。
• 通信期間直前は通信線を必ず "H"( マークレベルを付加 ) にしてください。
• 通信線が "H"( マークレベル ) の期間に , 受信許可 (RXE="H") にしてください。
• 非通信期間中 ( マークレベルを除く ) は , 受信許可 (RXE="H") にしないでください。
正しいデータが受信できません。
• ストップビット検出後 (RDRF フラグが "1" にセットされた後 ), 通信線が "H"( マー
クレベル ) の間に受信禁止 (RXE="L") にしてください。
図 17.7-2 正常動作例
通信期間
非通信期間
マークレベル
SIN
スタート
ビット
ST
非通信期間
ストップ
ビット
データ
D0
D1
D2
D3
D4
D5
D6
D7
SP
D7
SP
(01010101B送信)
RXE
受信クロック
サンプリングクロック
●受信クロック(8パルス)
マイコン側の認識
(01010101B受信)
ST
●受信クロックを16分周してサンプリングクロックを生成
D0
D1
D2
D3
D4
D5
D6
以下の例のようなタイミングで受信許可に設定しますとマイコン側で入力データ
(SIN) が正しく認識されませんので注意してください。
• 通信線が "L" の期間に , 受信許可 (RXE="H") に設定した場合の動作例
図 17.7-3 異常動作例
通信期間
非通信期間
スタート
マークレベル ビット
SIN
(01010101B送信)
RXE
非通信期間
ストップ
ビット
データ
ST
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
SP
SP
受信クロック
サンプリングクロック
マイコン側の認識
(10101010B受信)
ST認識
PE,ORE,FRE
●受信エラー発生
● ストップビット
送信時には 1 ビットまたは 2 ビットを選択できます。ただし , 受信側では , 常に最初の
1 ビットだけを判別します。
● エラー検出
モード 0 では , パリティエラー , オーバランエラー , フレームエラーが検出できます。
モード 1 では , オーバラン , フレームエラーが検出でき , パリティエラーは検出できま
せん。
377
第 17 章 UART
● パリティ 0
パリティは , 動作モード 0 ( 非同期 , ノーマルモード ) の場合にだけ使用できます。シリア
ル制御レジスタ (SCR0/SCR1) のPENビットでパリティの有無を, Pビットで偶数パリティ/
奇数パリティを設定できます。動作モード 1 ( 非同期 , マルチプロセッサモード ) および
動作モード 2 ( 同期 , ノーマルモード ) では , パリティの使用はできません。パリティ有効
時の送受信データを図 17.7-4 に示します。
図 17.7-4 パリティ有効時の送受信データ
SIN0/1
ST
SP
1
SOT0/1
1
1
0
0 0
0
ST
1
SOT0/1
0
0
1
1
0
0 0
0
1
1
データ
0
0 0
SP
偶数パリティの送信
(SCR0/1のP=0)
SP
奇数パリティの送信
(SCR0/1のP=1)
1
ST
1
0
パリティ
ST :スタートビット
SP :ストップビット
(注意事項)動作モード1, 2では,パリティは使用できません。
378
偶数パリティにて受信時
パリティエラー発生
(SCR0/1のP=0)
第 17 章 UART
17.7.2
同期モード ( 動作モード 2) の動作
UART 動作モード 2 ( ノーマルモード ) で使用する場合 , 転送方式はクロック同期と
なります。
■ 同期モード ( 動作モード 2) の動作
● 転送データフォーマット
同期モードでは , 8 ビットデータを転送し , スタートビット , ストップビットは付加さ
れません。図 17.7-5 に転送データフォーマット ( 動作モード 2) を示します。
図 17.7-5 転送データフォーマット ( 動作モード 2)
シリアルクロックを出力して送信する場合
マークレベル
SCK0出力
SOT0, 1
(LSB)
1
0
1
1
0
0
1
(MSB)
送信データ
送信データ書込み
TDRE
TXE
シリアルクロックを入力して受信する場合
マークレベル
SCK0入力
SIN0, 1
(LSB)
1
0
1
1
0
0
1
(MSB)
受信データ
RDRF
RXE
受信データ
読出し
● クロック供給
クロック同期 (I/O拡張シリアル) 方式では, 送受信ビット数に等しい数のクロックの供
給が必要になります。
内部クロック ( 専用ボーレートジェネレータまたは内部タイマ ) を選択している場合は ,
データを送信するとデータ受信用同期クロックが自動的に生成されます。
外部クロックを選択している場合は , 送信側 UART のシリアル出力データレジスタ
(SODR0/SODR1) にデータがあること (SSR0/SSR1 の TDRE=0) を確かめた後 , 正確に 1
バイト分のクロックを外部から供給する必要があります。また , 送信開始前と終了後は
, 必ずマークレベル ("H") にする必要があります。
379
第 17 章 UART
● エラー検出
オーバランエラーだけ検出可能で , パリティエラー, フレーミングエラーは検出できま
せん。
● 初期化
同期モードを使用する場合の , 各制御レジスタの設定値を示します。
• シリアルモードレジスタ (SMR0/SMR1)
- MD1, MD0:"10B"
- CS2, CS1, CS0: クロックセレクタのクロック入力を指定
- SCKE: 専用ボーレートジェネレータまたは内部タイマの場合 "1", クロック出力 ,
外部クロック ( クロック入力 ) の場合 "0"
- SOE: 送信する場合 "1", 受信だけの場合 "0"
• シリアル制御レジスタ (SCR0/SCR1)
- PEN:"0"
- P, SBL, A/D: これらのビットは意味を持ちません
- CL:"1" (8 ビットデータ )
- REC:"0" ( 初期化するため , エラーフラグクリア )
- RXE, TXE: 少なくとも , どちらか一方を "1"
• シリアルステータスレジスタ (SSR0/SSR1)
- RIE: 割込みを使用する場合 "1", 割込みを使用しない場合 "0"
- TIE: 割込みを使用する場合 "1", 割込みを使用しない場合 "0"
● 通信開始
シリアル出力データレジスタ (SODR0/SODR1) への書込みで通信を開始します。受信
する場合でも通信を開始する場合は , 必ず仮のデータを SODR に書き込む必要があり
ますので , 注意してください。
● 通信終了
1 フレームのデータ送受信が終了すると , シリアルステータスレジスタ (SSR0/SSR1) の
RDRFフラグが"1"にセットされます。受信時は, オーバランエラーフラグビット (SSR0/
SSR1 の ORE) をチェックし , 通信が正常に行われたかどうかを判断してください。
<注意事項>
動作モード 2 ( 同期 ) 時は , SCR:RXE ビットまたは SCR:TXE ビットのどちらか一方を "1"
に設定すると , 送信・受信動作が共に許可されます。そのため , 送信と受信が同時に動作
します。
380
第 17 章 UART
17.7.3
双方向通信機能 ( ノーマルモード )
動作モード 0, 2 で , 1 対 1 接続の通常のシリアル双方向通信をすることができます。
同期方式は , 動作モード 0 の場合は非同期 , 動作モード 2 の場合は同期となります。
■ 双方向通信機能
UART をノーマルモード ( 動作モード 0, 2) で動作させるためには , 図 17.7-6 に示す
UART1 の動作モード 0 の設定が必要です。
図 17.7-6 UART1 の動作モード 0 の設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
SCR1, SMR1 PEN P SBL CL AD REC RXE TXE MD1 MD0 CS2 CS1 CS0
- SCKE COE
0
0
0
モード 0 → ◎
◎
◎
◎
×
◎
◎
◎
◎
◎
◎
◎
0
1
0
1
0
モード 2 →
×
×
×
◎
◎
◎
◎
◎
◎
◎
SSR1,
SIDR1/SODR1 PE ORE FRE RDRF TDRE BDS RIE
モード 0 → ◎
モード 2 → ◎
◎
×
◎
◎
◎
×
◎
◎
◎
◎
◎
◎
TIE
変換データを設定 ( 書込み時 ) /
受信データを保持 ( 読出し時 )
◎
◎
DDR0
△
△
◎:使用ビット
×:未使用ビット
1 :"1" を設定
0 :"0" を設定
△:端子の入力を使用する場合 "0" を設定
● CPU 間接続
双方向通信では , 図 17.7-7 に示すように , 2 つの CPU を相互に接続します。
図 17.7-7 UART1 の双方向通信の接続例
SOT1
SOT1
SIN1
SCK1
CPU-1
SIN1
出力
入力
SCK1
CPU-2
381
第 17 章 UART
● 通信手順
通信は , 任意なタイミングで , 送信データが準備できたときに送信側から開始します。
受信側で送信データを受け取ると定期的に , ANS ( 本例では 1 バイトごと ) を返します。
図 17.7-8 に双方向通信フローチャートの例を示します。
図 17.7-8 双方向通信フローチャートの例
(送信側)
(受信側)
スタート
スタート
動作モード設定
("0", "2"いずれか)
動作モード設定
(送信側と合わす)
SODRに1バイトデータを
セットして通信
データ送信
受信データあり
NO
YES
NO
受信データあり
受信データ読出しと処理
YES
データ送信
受信データ読出しと処理
382
(ANS)
1バイトデータ送信
第 17 章 UART
17.7.4
マスタ / スレーブ型通信機能
( マルチプロセッサモード )
UART は , 複数 CPU のマスタ / スレーブ型接続による通信が可能であり , 動作モー
ド 1 を使用します。ただし , UART はマスタとしてだけ使用可能です。
■ マスタ / スレーブ型通信機能
UART をマルチプロセッサモード ( 動作モード 1) で動作させるためには , 図 17.7-9 に
示す設定が必要です。
図 17.7-9 UART の動作モード 1 の設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
SCR1, SMR1 PEN P SBL CL AD REC RXE TXE MD1 MD0 CS2 CS1 CS0
- SCKE COE
0
1
0
0
1
0
×
◎
◎
◎
◎
◎
◎
◎
◎
SSR1,
SIDR1/SODR1 PE ORE FRE RDRF TDRE BDS RIE
×
◎
◎
◎
◎
◎
TIE
◎
送信データを設定 ( 書込み時 ) /
受信データを保持 ( 読出し時 )
◎
DDR0
△
△
◎:使用ビット
×:未使用ビット
1 :"1" を設定
0 :"0" を設定
△:端子の入力を使用する場合 "0" を設定
● CPU 間接続
マスタ / スレーブ型通信では , 図 17.7-10 に示すように , 2 本の共通通信ラインに 1 つの
マスタ CPU と , 複数のスレーブ CPU を接続して , 通信システムを構成します。UART1
は , マスタ CPU としてだけ使用可能です。
図 17.7-10 UART のマスタ / スレーブ型通信の接続例
SOT1
SIN1
マスタCPU
SOT
SIN
スレーブCPU #0
SOT
SIN
スレーブCPU #1
383
第 17 章 UART
● 機能選択
マスタ / スレーブ型通信では , 表 17.7-2 に示すように , 動作モードとデータ転送方式を
選択してください。
表 17.7-2 マスタ / スレーブ型通信機能の選択
動作モード
マスタ CPU スレーブ CPU
アドレス
送受信
モード 1
データ
送受信
-
データ
A/D=1
+
8 ビットアドレス
A/D=0
+
8 ビットデータ
パリティ
同期方式
ストップビット
なし
非同期
1 ビット
または
2 ビット
● 通信手順
通信はマスタ CPU がアドレスデータを送信することによって始まります。アドレス
データとは A/D ビットを "1" としたデータで , 通信先となるスレーブ CPU を選択しま
す。各スレーブ CPU はプログラムでアドレスデータを判断し , 割り当てられたアドレ
スと一致した場合に , マスタ CPU との通信 ( 通常データ ) をします。
図 17.7-11 に , マスタ / スレーブ型通信フローチャートを示します。
384
第 17 章 UART
図 17.7-11 マスタ / スレーブ型通信フローチャート
(マスタCPU)
スタート
動作モードを"1"とする
SIN端子をシリアルデータ
入力に設定
D0~D7にスレーブ
CPUを選択する1バイト
データ(アドレスデータ)
をセットして送信
(A/D=1)
A/Dに"0"をセット
受信動作許可
スレーブCPUと通信
通信終了?
NO
YES
ほかの
スレーブCPU
と通信
NO
YES
受信動作禁止
エンド
385
第 17 章 UART
17.8
UART 使用上の注意
UART を使用する場合の注意点を示します。
■ UART 使用上の注意
● 動作許可
UARTには , 送信, 受信のそれぞれに対してシリアル制御レジスタ (SCR0/SCR1) にTXE
( 送信 ) , RXE ( 受信 ) の動作許可ビットがあります。デフォルト ( 初期値 ) では , 送受
信とも動作禁止であるため , 転送前に動作を許可する必要があります。また , 必要に応
じて動作禁止にして , 転送を中止することもできます。
● 通信モードの設定
通信モードの設定は , UART の動作停止中にしてください。送受信中にモード設定をし
た場合 , そのとき送受信されたデータは保証されません。
● 同期モード
UART のクロック同期モード ( 動作モード 2) は , クロック制御 (I/O 拡張シリアル ) 方
式を採用しており , スタートビット , ストップビットはデータに付加されません。
● 送信割込み許可のタイミング
送信データエンプティフラグビット (SSR0/SSR1のTDRE) はデフォルト (初期値) が"1"
( 送信データなし , 送信データ書込み許可 ) であるため , 送信割込み要求を許可 (SSR0/
SSR1 の TIE=1) すると直ちに , 送信割込み要求が発生します。必ず , 送信データを準備
してから , TIE フラグを "1" にしてください。
● マルチプロセッサモードの受信
UARTのマルチプロセッサモードにおいては, 9ビット受信での受信動作はできません。
● クロック同期モード時のクロック設定
クロック同期モード時に専用ボーレートジェネレータを使用する場合 , 以下の設定は
禁止です。
1)CS2 ~ CS0 =000B
2)CS2 ~ CS0 =001B かつ , DIV3 ~ DIV0 =0000B
386
第 17 章 UART
17.9
UART のプログラム例
UART のプログラム例を示します。
■ UART のプログラム例
● 処理仕様
以下に示す仕様を想定したプログラム例を示します。
• UART の双方向通信機能 ( ノーマルモード ) を使用して , シリアル送受信をします。
• 動作モード 0, 非同期 , データ長 8 ビット , ストップビット長 2 ビット , パリティな
しとします。
• 通信には , P00/SIN0, P01/SOT0 端子を使用します。
• 専用ボーレートジェネレータを使用し , ボーレートの設定は , 約 9600bps にします。
• SOT0 端子からキャラクタ "13H" を送出し , 割込みで受信します。
• マシンクロック (φ) は , 16MHz とします。
【コーディング例】
ICR14 EQU 0000BEH
; UART 送受信割込み用制御レジスタ
DDR0 EQU 000010H
; ポート 0 方向レジスタ
SMR
EQU 000034H
; シリアルモードレジスタ
SCR
EQU 000035H
; シリアル制御レジスタ
SIDR EQU 000036H
; シリアル入力データレジスタ
SODR EQU 000036H
; シリアル出力データレジスタ
SSR
EQU 000037H
; シリアルステータスレジスタ
REC
EQU SCR:2
; 受信エラーフラグクリアビット
;---------- メインプログラム ------------------------------------------------CODE CSEG ABS = 0FFH
START:
;
:
; スタックポインタ (SP) などは初期化済みとする
AND CCR, #0BFH
; 割込みディセーブル
MOV I:ICR14, #00H
; 割込みレベル 0( 最強 )
MOV I:DDR0, #00000000B ; SIN0 端子を入力に設定
MOV I:SMR, #00010001B ; 動作モード 0( 非同期 )
; 専用ボーレートジェネレータ使用
; (9615bps 選択 )
; クロック出力禁止 , データ出力許可
MOV I:SCR, #00010011B ; パリティなし , ストップビット 2 ビット
; データ長 8 ビット , 受信エラーフラグクリア
; 送受信動作許可
MOV I:SSR, #00000010B ; 送信割込み禁止 , 受信割込み許可
MOV I:SODR, #13H
; 送信データ書込み
MOV ILM, #07H
; PS 内 ILM をレベル 7 に設定
ORCCR, #40H
; 割込みイネーブル
LOOP: MOV
A, #00H
; 無限ループ
MOV
A, #01H
BRA
LOOP
387
第 17 章 UART
;---------- 割込みプログラム ------------------------------------------------WARI:
MOV
A, SIDR
; 受信データの読出し
CLRB
I:REC
; 受信割込み要求フラグをクリア
;
:
;
ユーザ処理
;
:
RETI
; 割込みから復帰
CODE
ENDS
;---------- ベクタ設定 ------------------------------------------------------VECT
CSEG
ABS=0FFH
ORG
0FF60H
; 割込み #39(27H) にベクタを設定
DSL
WARI
ORG
0FFDCH
; リセットベクタ設定
DSL
START
DB
00H
; シングルチップモードに設定
VECT
ENDS
388
第 18 章
CAN コントローラ
この章では , CAN コントローラの概要と機能につ
いて説明します。
18.1 CAN コントローラの特長
18.2 CAN コントローラのブロックダイヤグラム
18.3 CAN コントローラのレジスタ分類
18.4 CAN コントローラの送信
18.5 CAN コントローラの受信
18.6 CAN コントローラの使用方法
18.7 メッセージバッファ (x) による送信方法
18.8 メッセージバッファ (x) による受信方法
18.9 マルチレベルメッセージバッファの構成の決定
18.10 CAN ウェイクアップ機能
18.11 CAN コントローラの使用上の注意
18.12 CAN プログラム例
389
第 18 章 CAN コントローラ
18.1
CAN コントローラの特長
CAN コントローラは , 16 ビットマイクロコンピュータ (F2MC-16LX) 内に一体化さ
れたモジュールです。CAN ( コントローラエリアネットワーク ) は自動車用コント
ローラ間のシリアル通信用の標準プロトコルで , 工業分野で広く使用されているも
のです。
■ CAN コントローラの特長
CAN コントローラの特長は次のとおりです。
• CAN 仕様バージョン 2.0 パート A および B に適合しています。
標準フレームおよび拡張フレームフォーマットでの送信 / 受信をサポートしていま
す。
• リモートフレームの受信によるデータフレームの送信をサポートしています。
• 16 個の送信 / 受信メッセージバッファ
29 ビットの ID および 8 バイトデータ
マルチレベルメッセージバッファ構造
• フルビット比較 , フルビットマスクおよび部分的ビットマスクフィルタリングをサ
ポートしています。
標準フレームまたは拡張フレームフォーマットのいずれかで 2 個のアクセプタンス
マスクレジスタを提供します。
• ビット速度は , 10kbps ~ 1Mbps でプログラマブルです (1Mbps でご使用の場合 , マ
シンクロックは 8MHz 以上で動作する必要があります ) 。
• CAN ウェイクアップ機能
• MB90420G シリーズは , CAN コントローラを 2 チャネル搭載しています。
MB90425G シリーズは , CAN コントローラを 1 チャネル搭載しています。
390
第 18 章 CAN コントローラ
18.2
CAN コントローラのブロックダイヤグラム
図 18.2-1 に , CAN コントローラのブロックダイヤグラムを示します。
■ CAN コントローラのブロックダイヤグラム
図 18.2-1 CAN コントローラのブロックダイヤグラム
内部データバス
TQ (動作クロック)
プリスケーラ
1~64周波数分割
クロック
ビットタイミング発生
SYNC, TSEG1, TSEG2
PSC
TS1
BTR
TS2
RSJ
TOE
TS
RS
HALT
CSR
NIE
NT
バスステート
マシン
ノードステータス
変化割込み
ノードステータス
変化割込み発生
IDLE, INT, SUSPND,
送信,送信,ERR,OVRLD
NS1,0
エラー
制御
RTEC
送信/受信シーケンサ
BVALR
TREQR
TBFx,クリア
送信バッファx判定
TBFx
TDLC RDLC
TBFx
エラー
フレーム発生
データ アクセプタンス
カウンタ フィルタ制御
過負荷
フレーム
発生
IDSEL
BITER, STFER,
CRCER, FRMER,
ACKER
TCANR
出力
ドライバ
ARBLOST
TX
TRTRR
TCR
TBFx, セット, クリア
ACK発生
CRCER
RBFx, セット
RDLC
受信完了
割込み
受信完了
割込み発生
RIER
RRTRR
CRC発生
TDLC
送信完了
割込み
送信完了
割込み発生
TIER
RCR
スタッ
フィング
送信シフト
レジスタ
RFWTR
STFER
デスタッフィング/
スタッフィング
エラーチェック
受信シフト
レジスタ
RBFx, TBFx, セット, クリア
RBFx,セット
CRC発生/エラーチェック
IDSEL
ROVRR
ARBLOST
AMSR
AMR0
0
1
アクセプタンス
フィルタ
受信バッファx
判定
BITER
ビットエラー
チェック
ACKER
確認エラー
チェック
FRMER
フォームエラー
チェック
AMR1
IDR0~15
DLCR0~15
DTR0~15
RAM
RBFx
RAMアドレス
発生
アービトレーション
チェック
PH1
入力
ラッチ
RX
RBFx, TBFx, RDLC, TDLC, IDSEL
LEIR
IDER
391
第 18 章 CAN コントローラ
CAN コントローラのレジスタ分類
18.3
CAN コントローラのレジスタは , 次の 4 つから構成されます。
• 全体コントロールレジスタ
• メッセージバッファコントロールレジスタ
• メッセージバッファ
• CAN ウェイクアップ制御レジスタ
■ 全体コントロールレジスタ
全体コントロールレジスタには , 次の 4 つがあります。
• 制御ステータスレジスタ (CSR)
• ラストイベント表示レジスタ (LEIR)
• 受信および送信エラーカウンタ (RTEC)
• ビットタイミングレジスタ (BTR)
表 18.3-1 に全体コントロールレジスタの一覧を示します。
表 18.3-1 全体コントロールレジスタの一覧
アドレス
CAN0
CAN1
003C00H
003D00H
003C01H
003D01H
003C02H
003D02H
003C03H
003D03H
003C04H
003D04H
003C05H
003D05H
003C06H
003D06H
003C07H
003D07H
レジスタ
略称
アクセス
初期値
制御ステータスレジスタ
CSR
(R/W, R)
00---000 0----0-1B
ラストイベント表示レジスタ
LEIR
(R/W)
-------- 000-0000B
受信および送信エラーカウンタ
RTEC
(R)
00000000 00000000B
ビットタイミングレジスタ
BTR
(R/W)
-1111111 11111111B
■ メッセージバッファコントロールレジスタ
メッセージバッファコントロールレジスタには , 次の 14 種類のレジスタがあります。
• メッセージバッファ有効レジスタ (BVALR)
• IDE レジスタ (IDER)
• 送信要求レジスタ (TREQR)
• 送信 RTR レジスタ (TRTRR)
• リモートフレーム受信待機レジスタ (RFWTR)
• 送信解除レジスタ (TCANR)
• 送信完了レジスタ (TCR)
• 送信割込み許可レジスタ (TIER)
• 受信完了レジスタ (RCR)
• リモート要求受信レジスタ (RRTRR)
• 受信オーバランレジスタ (ROVRR)
392
第 18 章 CAN コントローラ
• 受信割込み許可レジスタ (RIER)
• アクセプタンスマスク選択レジスタ (AMSR)
• アクセプタンスマスクレジスタ 0 および 1 (AMR0, AMR1)
表 18.3-2 にメッセージバッファコントロールレジスタの一覧を示します。
表 18.3-2 メッセージバッファコントロールレジスタの一覧
アドレス
CAN0
CAN1
000040H
000070H
000041H
000071H
000042H
000072H
000043H
000073H
000044H
000074H
000045H
000075H
000046H
000076H
000047H
000077H
000048H
000078H
000049H
000079H
00004AH
00007AH
00004BH
00007BH
00004CH
00007CH
00004DH
00007DH
00004EH
00007EH
00004FH
00007FH
003C08H
003D08H
003C09H
003D09H
003C0AH
003D0AH
003C0BH
003D0BH
003C0CH
003D0CH
003C0DH
003D0DH
003C0EH
003D0EH
003C0FH
003D0FH
003C10H
003D10H
003C11H
003D11H
003C12H
003D12H
003C13H
003D13H
003C14H
003D14H
003C15H
003D15H
003C16H
003D16H
003C17H
003D17H
003C18H
003D18H
003C19H
003D19H
003C1AH
003D1AH
003C1BH
003D1BH
レジスタ
略称
アクセス
初期値
メッセージバッファ
有効レジスタ
BVALR
(R/W)
00000000 00000000B
送信要求レジスタ
TREQR
(R/W)
00000000 00000000B
送信解除レジスタ
TCANR
(W)
00000000 00000000B
送信完了レジスタ
TCR
(W)
00000000 00000000B
受信完了レジスタ
RCR
(R/W)
00000000 00000000B
リモート要求受信レジスタ
RRTRR
(R/W)
00000000 00000000B
受信オーバランレジスタ
ROVRR
(R/W)
00000000 00000000B
受信割込み許可レジスタ
RIER
(R/W)
00000000 00000000B
IDE レジスタ
IDER
(R/W)
XXXXXXXX XXXXXXXXB
送信 RTR レジスタ
TRTRR
(R/W)
00000000 00000000B
リモートフレーム
受信待機レジスタ
RFWTR
(R/W)
XXXXXXXX XXXXXXXXB
TIER
(R/W)
00000000 00000000B
AMSR
(R/W)
送信割込み許可レジスタ
アクセプタンスマスク選択
レジスタ
XXXXXXXX XXXXXXXXB
XXXXXXXX XXXXXXXXB
XXXXXXXX XXXXXXXXB
アクセプタンスマスク
レジスタ 0
AMR0
アクセプタンスマスク
レジスタ 1
AMR1
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
(R/W)
XXXXX--- XXXXXXXXB
393
第 18 章 CAN コントローラ
■ メッセージバッファ
メッセージバッファには , 次の 3 つがあります。
• ID レジスタ x (x=0 ~ 15) (IDRx)
• DLC レジスタ x (x=0 ~ 15) (DLCRx)
• データレジスタ x (x=0 ~ 15) (DTRx)
表 18.3-3 にメッセージバッファ (ID レジスタ ) の一覧を , 表 18.3-4 にメッセージバッ
ファ (DLC レジスタ ) の一覧を , 表 18.3-5 にメッセージバッファ (DT レジスタ ) の一覧
を示します。
表 18.3-3 メッセージバッファ (ID レジスタ ) の一覧 (1 / 2)
アドレス
CAN0
CAN1
003A00H ~
003A1FH
003B00H ~
003B1FH
003A20H
003B20H
003A21H
003B21H
003A22H
003B22H
003A23H
003B23H
003A24H
003B24H
003A25H
003B25H
003A26H
003B26H
003A27H
003B27H
003A28H
003B28H
003A29H
003B29H
003A2AH
003B2AH
003A2BH
003B2BH
003A2CH
003B2CH
003A2DH
003B2DH
003A2EH
003B2EH
003A2FH
003B2FH
003A30H
003B30H
003A31H
003B31H
003A32H
003B32H
003A33H
003B33H
003A34H
003B34H
003A35H
003B35H
003A36H
003B36H
003A37H
003B37H
003A38H
003B38H
003A39H
003B39H
003A3AH
003B3AH
003A3BH
003B3BH
003A3CH
003B3CH
003A3DH
003B3DH
003A3EH
003B3EH
003A3FH
003B3FH
394
レジスタ
汎用 RAM
略称
アクセス
初期値
--
(R/W)
XXXXXXXXB ~ XXXXXXXXB
IDR0
(R/W)
XXXXXXXX XXXXXXXXB
ID レジスタ 0
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 1
IDR1
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 2
IDR2
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 3
IDR3
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 4
IDR4
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 5
IDR5
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 6
IDR6
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 7
IDR7
(R/W)
XXXXX--- XXXXXXXXB
第 18 章 CAN コントローラ
表 18.3-3 メッセージバッファ (ID レジスタ ) の一覧 (2 / 2)
アドレス
CAN0
CAN1
003A40H
003B40H
003A41H
003B41H
003A42H
003B42H
003A43H
003B43H
003A44H
003B44H
003A45H
003B45H
003A46H
003B46H
003A47H
003B47H
003A48H
003B48H
003A49H
003B49H
003A4AH
003B4AH
003A4BH
003B4BH
003A4CH
003B4CH
003A4DH
003B4DH
003A4EH
003B4EH
003A4FH
003B4FH
003A50H
003B50H
003A51H
003B51H
003A52H
003B52H
003A53H
003B53H
003A54H
003B54H
003A55H
003B55H
003A56H
003B56H
003A57H
003B57H
003A58H
003B58H
003A59H
003B59H
003A5AH
003B5AH
003A5BH
003B5BH
003A5CH
003B5CH
003A5DH
003B5DH
003A5EH
003B5EH
003A5FH
003B5FH
レジスタ
略称
アクセス
IDR8
(R/W)
初期値
XXXXXXXX XXXXXXXXB
ID レジスタ 8
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 9
IDR9
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 10
IDR10
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 11
IDR11
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 12
IDR12
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 13
IDR13
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 14
IDR14
(R/W)
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 15
IDR15
(R/W)
XXXXX--- XXXXXXXXB
395
第 18 章 CAN コントローラ
表 18.3-4 メッセージバッファ (DLC レジスタ ) の一覧
アドレス
CAN0
CAN1
003A60H
003B60H
003A61H
003B61H
003A62H
003B62H
003A63H
003B63H
003A64H
003B64H
003A65H
003B65H
003A66H
003B66H
003A67H
003B67H
003A68H
003B68H
003A69H
003B69H
003A6AH
003B6AH
003A6BH
003B6BH
003A6CH
003B6CH
003A6DH
003B6DH
003A6EH
003B6EH
003A6FH
003B6FH
003A70H
003B70H
003A71H
003B71H
003A72H
003B72H
003A73H
003B73H
003A74H
003B74H
003A75H
003B75H
003A76H
003B76H
003A77H
003B77H
003A78H
003B78H
003A79H
003B79H
003A7AH
003B7AH
003A7BH
003B7BH
003A7CH
003B7CH
003A7DH
003B7DH
003A7EH
003B7EH
003A7FH
003B7FH
396
レジスタ
略称
アクセス
初期値
DLC レジスタ 0
DLCR0
(R/W)
---- XXXXB
DLC レジスタ 1
DLCR1
(R/W)
---- XXXXB
DLC レジスタ 2
DLCR2
(R/W)
---- XXXXB
DLC レジスタ 3
DLCR3
(R/W)
---- XXXXB
DLC レジスタ 4
DLCR4
(R/W)
---- XXXXB
DLC レジスタ 5
DLCR5
(R/W)
---- XXXXB
DLC レジスタ 6
DLCR6
(R/W)
---- XXXXB
DLC レジスタ 7
DLCR7
(R/W)
---- XXXXB
DLC レジスタ 8
DLCR8
(R/W)
---- XXXXB
DLC レジスタ 9
DLCR9
(R/W)
---- XXXXB
DLC レジスタ 10
DLCR10
(R/W)
---- XXXXB
DLC レジスタ 11
DLCR11
(R/W)
---- XXXXB
DLC レジスタ 12
DLCR12
(R/W)
---- XXXXB
DLC レジスタ 13
DLCR13
(R/W)
---- XXXXB
DLC レジスタ 14
DLCR14
(R/W)
---- XXXXB
DLC レジスタ 15
DLCR15
(R/W)
---- XXXXB
第 18 章 CAN コントローラ
表 18.3-5 メッセージバッファ (DT レジスタ ) の一覧
アドレス
レジスタ
略称
アクセス
初期値
003B80H ~
003B87H
データレジスタ 0
DTR0
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003A88H ~
003A8FH
003B88H ~
003B8FH
データレジスタ 1
DTR1
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003A90H ~
003A97H
003B90H ~
003B97H
データレジスタ 2
DTR2
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003A98H ~
003A9FH
003B98H ~
003B9FH
データレジスタ 3
DTR3
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AA0H ~
003AA7H
003BA0H ~
003BA7H
データレジスタ 4
DTR4
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AA8H ~
003AAFH
003BA8H ~
003BAFH
データレジスタ 5
DTR5
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AB0H ~
003AB7H
003BB0H ~
003BB7H
データレジスタ 6
DTR6
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AB8H ~
003ABFH
003BB8H ~
003BBFH
データレジスタ 7
DTR7
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AC0H ~
003AC7H
003BC0H ~
003BC7H
データレジスタ 8
DTR8
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AC8H ~
003ACFH
003BC8H ~
003BCFH
データレジスタ 9
DTR9
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AD0H ~
003AD7H
003BD0H ~
003BD7H
データレジスタ 10
DTR10
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AD8H ~
003ADFH
003BD8H ~
003BDFH
データレジスタ 11
DTR11
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AE0H ~
003AE7H
003BE0H ~
003BE7H
データレジスタ 12
DTR12
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AE8H ~
003AEFH
003BE8H ~
003BEFH
データレジスタ 13
DTR13
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AF0H ~
003AF7H
003BF0H ~
003BF7H
データレジスタ 14
DTR14
(R/W)
XXXXXXXXB ~ XXXXXXXXB
003AF8H ~
003AFFH
003BF8H ~
003BFFH
データレジスタ 15
DTR15
(R/W)
XXXXXXXXB ~ XXXXXXXXB
CAN0
CAN1
003A80H ~
003A87H
■ CAN ウェイクアップ制御レジスタ
CAN ウェイクアップ制御レジスタは , 以下のとおりです。
• CAN ウェイクアップ制御レジスタ (CWUCR)
表 18.3-6 に CAN ウェイクアップ制御レジスタ (CWUCR) の内容を示します。
表 18.3-6 CAN ウェイクアップ制御レジスタ一覧
アドレス
レジスタ
CAN0
CAN1
00003EH
-
CAN ウェイクアップ制御
レジスタ
略号
アクセス
初期値
CWUCR
(R/W)
-------0B
397
第 18 章 CAN コントローラ
18.3.1
制御ステータスレジスタ (CSR)
制御ステータスレジスタ (CSR) の下位 8 ビットに対しては , ビット操作命令 ( リー
ドモディファイライト系命令 ) を実行することは禁止されています。ただし ,
HALT ビットが変化しないタイミング ( マクロの初期化など ) では , ビット操作命令
を使用しても問題ありません。
■ 制御ステータスレジスタ (CSR) のビット構成
図 18.3-1 に制御ステータスレジスタ (CSR) のビット構成を示します。
図 18.3-1 制御ステータスレジスタ (CSR) のビット構成
アドレス:003C01H(CAN0)
bit
15
14
TS
RS
-
-
読出し / 書込み→
初期値→
(R)
(0)
(R)
(0)
(-)
(-)
(-)
(-)
7
6
5
4
(-)
(-)
(-)
(-)
(-)
(-)
アドレス:003D01H(CAN1)
アドレス:003C00H(CAN0)
アドレス:003D00H(CAN1)
bit
TOE
読出し / 書込み→ (R/W)
(0)
初期値→
13
12
11
10
9
8
-
NT
NS1
NS0
(-)
(-)
(R/W)
(0)
(R)
(0)
(R)
(0)
3
2
1
0
(-)
(-)
NIE
(R/W)
(0)
(-)
(-)
HALT
(R/W)
(1)
【bit15】TS: 送信ステータスビット
このビットは , メッセージが送信中であるかどうかを示します。
• 0: メッセージは送信されていません。
• 1: メッセージが送信されています。
このビットは , エラーフレームおよびオーバロードフレームが送信されている間も "0"
です。
【bit14】RS: 受信ステータスビット
このビットは , メッセージが受信されているかどうかを示します。
• 0: メッセージは受信されていません。
• 1: メッセージが受信されています。
メッセージがバス上にある間 , このビットは "1" になります。このため , このビットは
メッセージが送信されている間も "1" になります。このビットは必ずしも , 受信メッ
セージがアクセプタンスフィルタを通って通過したかどうかを示すものではありませ
ん。
結果として , このビットが "0" のときはバス動作は停止している (HALT=0) か , バスは
インターミッション / バスアイドルにあるまたはエラー/ オーバロードフレームがバス
上にあることを意味します。
【bit10】NT: ノードステータス遷移フラグ
もし , ノードステータスがインクリメントに変化しまたはバスオフからエラーアク
ティブに変化してもこのビットは "1" になります。
すなわち NT ビットは , ノードステータスが以下のように変化したときに "1" にセット
されます。括弧内の数字は NS1 ビットおよび NS0 ビットの値を示します。
• エラーアクティブ ("00") からワーニング ("01") に
398
第 18 章 CAN コントローラ
• ワーニング ("01") からエラーパッシブ ("10") に
• エラーパッシブ ("10") からバスオフ ("11") に
• バスオフ ("11") からエラーアクティブ ("00") に
ノードステータス遷移割込み許可ビット (NIE) が "1" のときに , 割込みが発生します。
"0" を書き込むと , NT ビットが "0" にセットされます。NT ビットに "1" を書き込んで
も無視されます。リードモディファイライト系命令が実行されたときに "1" が読み出
されます。
【bit9, bit8】NS1, NS0: ノードステータスの bit1 および bit0
NS1, NS0 ビットは , 現在のノードステータスを表します。
この関係を表 18.3-7 に示します。
表 18.3-7 NS1 および NS0 とノードステータスの対応
ノードステータス
NS1
NS0
0
0
エラーアクティブ
0
1
ワーニング ( エラーアクティブ )
1
0
エラーパッシブ
1
1
バスオフ
<注意事項>
ワーニング ( エラーアクティブ ) は , ノードステータスに対する CAN 仕様 2.0B における
エラーアクティブに含まれますが , 送信エラーカウンタまたは受信エラーカウンタが 96
を超えたことを表します。ノードステータスの変化図を図 18.3-2 に示します。
図 18.3-2 ノードステータス遷移図
ハードウェアリセット
REC≧96
または
TEC≧96
REC≧128
または
TEC≧128
エラー
パッシブ
ワーニング
エラー
アクティブ
REC<96
または
TEC<96
REC: 受信エラーカウンタ
TEC: 送信エラーカウンタ
レジスタ(CSR)のHALTビットに"0"が
書き込まれた後,連続的な11ビット
"H"レベル(リセッシブビット)が
受信入力端子(RX)に128回入力。
REC<128
または
TEC<128
バスオフ
TEC>=256
399
第 18 章 CAN コントローラ
【bit7】TOE: 送信出力許可ビット
TOE ビットに "1" を書き込むと , 汎用ポート端子を CAN コントローラの送信端子に切
り換えます。
• 0: 汎用ポート端子
• 1:CAN コントローラの送信端子
【bit2】NIE: ノードステータス遷移割込み許可ビット
NIE ビットは , ノードステータス遷移割込み (NT=1 の場合 ) を許可または禁止します。
• 0: ノードステータス遷移割込みを禁止する
• 1: ノードステータス遷移割込みを許可する
【bit0】HALT: バス動作停止ビット
HALT ビットはバス動作停止をセットまたは解除し , またはそのステートを表示しま
す。
バスの停止状態はこのビットを読み出すことによって確認できます。
書込み時
0: バス動作中
1: バス動作停止
読出し時
0: バス動作停止を解除
1: バス動作停止をセット
<注意事項>
バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になっているこ
とを確認後 , "0" を書き込んでください。
プログラム例 :
switch(IO_CANCT0.CSR.bit.NS)
{
case0:/*error active*/
break;
case1:/*warning*/
break;
case2:/*error passive*/
break;
default:/*bus off*/
for(i=0;(i<=500)&&(IO_CANCT0.CSR.bit.HALT==0);i++);
IO_CANCT0.CSR.word=0x0084;/*HALT=0*/
break;
}
変数 i はフェイルセーフのために使用しています。
400
第 18 章 CAN コントローラ
■ バス動作停止ビット (HALT=1)
バス動作停止ビットは , バス動作停止をセットまたは解除し , またはそのステートを表
示します。
● バス動作停止をセットする条件 (HALT=1)
バス動作停止をセットする条件 (HALT=1) として , 次の 3 つがあります。
• ハードウェアリセットの後
• ノードステータスがバスオフに変化したとき
• HALT への "1" の書込み
<注意事項>
• バス動作は , F2MC-16LX が低消費電力消費モード ( 停止モード , クロックモードおよび
ハードウェアスタンバイモード ) に遷移する前に HALT に "1" を書き込むことにより , 停
止しなければなりません。HALT に "1" が書き込まれるときに , 送信が進行中であれば
送信が終了した後にバス動作は停止します (HALT=1) 。HALT に "1" が書き込まれると
きに , 受信が進行中であればバス動作は直ちに停止します (HALT=1) 。もし , 受信され
たメッセージがメッセージバッファ (x) に格納中であれば , メッセージを格納した後に ,
バス動作は停止します (HALT=1) 。
• バス動作が停止したかどうかは , 常に HALT ビットを読み出してチェックしてくださ
い。
● バス動作停止を解除する条件 (HALT=0)
HALT ビットへ "0" を書き込むことにより , バス動作停止が解除されます。
<注意事項>
• ハードウェアリセット後または HALT に "1" を書き込むことによってバス動作停止と
なった状態の解除は , HALT に "0" が書き込まれて受信入力端子 (RX) に継続的な 11
ビットの "H" レベル ( リセッシブビット ) が入力された後に行われます。
• ノードステータスがバスオフに変化したことによってバス動作停止となった状態の解
除は , HALT に "0" が書き込まれて受信入力端子 (RX) に継続的な 11 ビットの "H" レベ
ル ( リセッシブビット ) が 128 回入力された後に行われます。
次に送信および受信エラーカウンタの両者の値が "0" に達して , ノードステータスはエ
ラーアクティブに変化します。
• バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になっている
ことを確認後 , "0" を書き込んでください。
401
第 18 章 CAN コントローラ
■ バス動作停止間の状態 (HALT=1)
バス動作が停止している間の状態は以下のとおりです。
• バスは , 送信および受信などの動作を一切行いません。
• 送信出力端子 (TX) は , "H" レベル ( リセッシブビット ) を出力します。
• ほかのレジスタおよびエラーカウンタの値は変化しません。
<注意事項>
ビットタイミングレジスタ (BTR) は , バス動作停止 (HALT=1) の間にセットしなければ
なりません。
402
第 18 章 CAN コントローラ
18.3.2
ラストイベント表示レジスタ (LEIR)
ラストイベント表示レジスタ (LEIR) は , ラストイベントを示します。
NTE, TCE および RCE は排他的なものです。ラストイベントのビットが "1" にセッ
トされたとき , ほかのビットは "0" にセットされます。
■ ラストイベント表示レジスタ (LEIR) のビット構成
図 18.3-3 にラストイベント表示レジスタ (LEIR) のビット構成を示します。
図 18.3-3 ラストイベント表示レジスタ (LEIR) のビット構成
アドレス:003C02H(CAN0)
bit
アドレス:003D02H(CAN1)
7
NTE
読出し / 書込み→ (R/W)
(0)
初期値→
アドレス:003C03H(CAN0)
アドレス:003D03H(CAN1)
bit
6
5
4
TCE
RCE
-
(R/W)
(0)
(R/W)
(0)
(-)
(-)
7
6
5
4
NTE
TCE
RCE
-
(R/W)
(0)
(R/W)
(0)
(-)
(-)
読出し / 書込み→ (R/W)
(0)
初期値→
3
2
1
0
MBP3 MBP2
MBP1 MBP0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
3
2
1
0
MBP3 MBP2
MBP1 MBP0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
【bit7】NTE: ノードステータス遷移イベントビット
NTE ビットが "1" のときは , ノードステータス遷移がラストイベントであることを
表します。
NTE ビットは , 制御ステータスレジスタ (CSR) の NT ビットと同時に "1" にセット
されます。
NTE ビットは , CSR のノードステータス遷移割込み許可ビット (NIE) のセッティン
グとは無関係に "1" にセットされます。
NTE ビットに "0" を書き込むと , NTE ビットは "0" にセットされます。NTE ビット
に "1" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは , "1" が読み出されます。
【bit6】TCE: 送信完了イベントビット
TCE ビットが "1" のときは , 送信完了がラストイベントであることを表します。
TCE ビットは, 送信完了レジスタ (TCR) のビットのいずれか1 つと同時に"1"にセッ
トされます。また , TCE ビットは送信割込み許可レジスタ (TIER) のビットのセッ
ティングとは無関係に "1" にセットされます。
TCE ビットに "0" を書き込むと , TCE ビットは "0" にセットされます。TCE ビット
に "1" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは , "1" が読み出されます。
このビットが "1" にセットされたとき , MBP3 ~ MBP0 ビットは , 送信動作を完了し
たメッセージバッファの番号を示すために使用されます。
403
第 18 章 CAN コントローラ
【bit5】RCE: 受信完了イベントビット
RCE ビットが "1" のときは , 受信完了がラストイベントであることを表します。
RCE ビットは , 受信完了レジスタ (RCR) のビットのいずれか 1 つと同時に "1" に
セットされます。また , RCE ビットは受信割込み許可レジスタ (RIER) のビットの
セッティングとは無関係に "1" にセットされます。
RCE ビットに "0" を書き込むと , RCE ビットは "0" にセットされます。RCE ビット
に "1" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは , "1" が読み出されます。
RCE ビットが "1" にセットされたとき , MBP3 ~ MBP0 ビットは , 受信動作を完了
したメッセージバッファの番号を示すために使用されます。
【bit3 ~ bit0】MBP3 ~ MBP0: メッセージバッファポインタビット
TCE または RCE ビットが "1" にセットされたときに , MBP3 ~ MBP0 ビットは対応
するメッセージバッファ (0 ~ 15) の番号を示します。
NTE ビットが "1" にセットされると , MBP3 ~ MBP0 ビットは意味を持ちません。
MBP3 ~ MBP0 ビットに "0" を書き込むと , MBP3 ~ MBP0 ビットは "0" にセットさ
れます。MBP3 ~ MBP0 ビットに "1" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは , "1" が読み出されます。
もし , LEIR が CAN 割込みハンドラ内でアクセスされたとしても , 割込みを引き起
こしたイベントは , 必ずしも LEIR により表されるものと同じではありません。割
込みハンドラ内で , LEIR アクセスに対する割込みが要求された時点でほかの CAN
イベントが発生する可能性があります。
404
第 18 章 CAN コントローラ
18.3.3
受信および送信エラーカウンタ (RTEC)
受信および送信エラーカウンタ (RTEC) は , CAN 仕様で定められる送信エラーカウ
ントおよび受信エラーカウントを示します。このレジスタは読出し専用です。
■ 受信エラーカウンタおよび送信エラーカウンタ (RTEC) のビット構成
図 18.3-4 に受信エラーカウンタおよび送信エラーカウンタ (RTEC) のビット構成を示
します。
図 18.3-4 受信エラーカウンタおよび送信エラーカウンタ (RTEC) のビット構成
アドレス:003C05H(CAN0)
bit
アドレス:003D05H(CAN1)
読出し / 書込み→
初期値→
アドレス:003C04H(CAN0)
bit
アドレス:003D04H(CAN1)
読出し / 書込み→
初期値→
15
14
13
12
11
10
9
8
TEC7
(R)
(0)
TEC6
(R)
(0)
TEC5
(R)
(0)
TEC4
(R)
(0)
TEC3
(R)
(0)
TEC2
(R)
(0)
TEC1
(R)
(0)
TEC0
(R)
(0)
7
6
5
4
3
2
1
0
REC7
REC6
REC5
REC4
REC3
REC2
REC1
REC0
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
【bit15 ~ bit8】TEC7 ~ TEC0: 送信エラーカウンタ
TEC7 ~ TEC0 は送信エラーカウンタです。
TEC7 ~ TEC0 は , カウンタ値が 256 より大きい場合 0 ~ 7 を示します。以降のイン
クリメントは , カウンタ値にカウントされません。この場合 , バスオフがノードス
テータスで示されます ( 制御ステータスレジスタ CSR の NS1 および NS0=11) 。
【bit7 ~ bit0】REC7 ~ REC0: 受信エラーカウンタ
REC7 ~ REC0 は受信エラーカウンタです。
REC7 ~ REC0 は , カウンタ値が 256 より大きい場合に 0 ~ 7 を示します。以降の
インクリメントは , カウンタ値にカウントされません。この場合 , エラーパッシブ
がノードステータスで示されます ( 制御ステータスレジスタ CSR の NS1 および
NS0=10) 。
405
第 18 章 CAN コントローラ
ビットタイミングレジスタ (BTR)
18.3.4
ビットタイミングレジスタ (BTR) はプリスケーラおよびビットタイミングを設定す
るレジスタです。
■ ビットタイミングレジスタ (BTR) のビット構成
図 18.3-5 にビットタイミングレジスタ (BTR) のビット構成を示します。
図 18.3-5 ビットタイミングレジスタ (BTR) のビット構成
アドレス:003C07H(CAN0)
bit
15
14
13
12
11
10
9
8
-
TS2.2
TS2.1
TS2.0
TS1.3
TS1.2
TS1.1
TS1.0
(-)
(-)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
7
6
5
4
3
2
1
0
RSJ1
RSJ0
PSC5
PSC4
PSC3
PSC2
PSC1
PSC0
読出し / 書込み→ (R/W)
(1)
初期値→
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
アドレス:003D07H(CAN1)
読出し / 書込み→
初期値→
アドレス:003C06H(CAN0)
アドレス:003D06H(CAN1)
bit
<注意事項>
BTR レジスタは , バス動作停止 (HALT=1) の間にセットしなければなりません。
【bit14 ~ bit12】TS2.2 ~ TS2.0: タイムセグメント 2 設定ビット 2 ~ 0
TS2.2 ~ TS2.0 ビットは , 単位時間 (TQ) を [ (TS2.2 ~ TS2.0) +1] で分周して , タイム
セグメント 2 (TSEG2) を決定します。タイムセグメント 2 は , CAN 仕様における
フェーズバッファセグメント 2 (PHASE_SEG2) に等しいものです。
【bit11 ~ bit8】TS1.3 ~ TS1.0: タイムセグメント 1 設定ビット 3 ~ 0
TS1.3 ~ TS1.0 ビットは , 単位時間 (TQ) を [ (TS1.3 ~ TS1.0) +1] で分周して , タイム
セグメント 1 (TSEG1) を決定します。タイムセグメント 1 は , CAN 仕様におけるプ
ロ パゲ ー ショ ン セグ メ ント (PROP_SEG) +フ ェ ーズ バ ッフ ァ セグ メ ント 1
(PHASE_SEG1) に等しいものです。
【bit7, bit6】RSJ1, RSJ0: 再同期ジャンプ幅設定ビット 1, 0
RSJ1, RSJ0 ビットは , 単位時間 (TQ) を [ (RSJ1, RSJ0) +1] で分周して , 再同期ジャン
プ幅を決定させます。
【bit5 ~ bit0】PSC5 ~ PSC0: プリスケーラ設定ビット 5 ~ 0
PSC5 ~ PSC0 ビットは , 入力クロックを [ (PSC5 ~ PSC0) +1] で分周して , CAN コ
ントローラの単位時間 (TQ) を決定します。
CAN 仕様および CAN コントローラのそれぞれにおけるビット時間セグメントは ,
図 18.3-6 および図 18.3-7 に示されています。
406
第 18 章 CAN コントローラ
図 18.3-6 CAN 仕様におけるビット時間セグメント
ノミナルビット時間
SYNC_SEG
PROP_SEG
PHASE_SEG1
PHASE_SEG2
サンプルポイント
図 18.3-7 CAN コントローラにおけるビット時間セグメント
ノミナルビット時間
SYNC_SEG
TSEG1
PHASE_SEG2
サンプルポイント
入 力ク ロ ック (CLK) , 単 位 時間 (TQ) , ビ ッ トタ イ ム (BT) , 同期 セ グメ ン ト
(SYNC_SEG) , タイムセグメント 1, 2 (TSEG1, TSEG2) および再同期ジャンプ幅
[ (RSJ1+RSJ0) +1] 周波数分割としたときの PSC=PSC5 ~ PSC0, TSI=TS1.3 ~ TS1.0,
TS2=TS2.2 ~ TS1.0, RSJ=RSJ1 および RSJ0 の間の関係は次に示すとおりです。
TQ
= (PSC+1) × CLK
BT
=SYNC_SEG + TSEG1 + TSEG2
= (1 + (TS1+1) + (TS2+1) ) × TQ
= (3 + TS1+TS2) × TQ
RSJW = (RSJ + 1) × TQ
正しく動作を行うためには , 以下の条件を満足しなければなりません。
BT
≧ 8TQ
TSEG2 ≧ RSJW
TSEG2 ≧ 2TQ
PSC=0 の場合
TSEG1 ≧ 5TQ
PSC ≧ 1 の場合
TSEG1 ≧ 2TQ
TSEG1 ≧ RSJW
ビットタイミングレジスタの設定例を以下に示します。
407
第 18 章 CAN コントローラ
■ ビットタイミングレジスタの設定例
以下にビットタイミングレジスタの設定例を示します。
● 使用条件
• 通信速度 (BT) :100kbps (10 μs)
• 1TQ:0.5 μs (1BT の 1/20 とする )
• 再同期ジャンプ幅 (RSJW) :4TQ
• 遅延時間 :50ns
• 内部動作周波数 :16MHz (0.0625 μs)
● 設定例
以下の手順によって , 各ビットの設定値を決定します。
① TQ= (PSC+1) × CLK
0.5= (PSC+1) × 0.0625
PSC=0.5/0.0625-1=7
したがって , PSC5 ~ PSC0 の設定値は , 次のようになります。
PSC5 ~ PSC0=000111B
② RSJW= (RSJ+1) × TQ
4TQ= (RSJ+1) × TQ
RSJ=4-1=3
したがって , RSJ1, RSJ0 の設定値は , 次のようになります。
RSJ1, RSJ0=11B
③ TSEG2 ≧ RSJW
(TS2+1) × TQ ≧ 4TQ
TS2 ≧ 4-1 ≧ 3
したがって , TS2.2 ~ TS2.0 の設定値は , 次のようになります。
TS2.2 ~ TS2.0 ≧ 011B
④ TSEG1 ≧ Delay time + RSJW
(TS1+1) × TQ ≧ 50ns × 2 + 4TQ
TS1 ≧ 100ns / 0.5μs +3
したがって , TS1.3 ~ TS1.0 の設定値は , 次のようになります。
TS1.3 ~ TS1.0 ≧ 0100B
通信速度 100Kbps という条件から③ , ④は , 以下の組合せとなります。
- TS1.3 ~ TS1.0=1010B TS2.2 ~ TS2.0=111B
- TS1.3 ~ TS1.0=1011B TS2.2 ~ TS2.0=110B
- TS1.3 ~ TS1.0=1100B TS2.2 ~ TS2.0=101B
- TS1.3 ~ TS1.0=1101B TS2.2 ~ TS2.0=100B
- TS1.3 ~ TS1.0=1110B TS2.2 ~ TS2.0=011B
408
第 18 章 CAN コントローラ
18.3.5
メッセージバッファ有効レジスタ (BVALR)
メッセージバッファ有効レジスタ (BVALR) は , メッセージバッファ (x) の有効性を
設定し , そのステートを表示するレジスタです。
■ メッセージバッファ有効レジスタ (BVALR) のビット構成
図 18.3-8 にメッセージバッファ有効レジスタ (BVALR) のビット構成を示します。
図 18.3-8 メッセージバッファ有効レジスタ (BVALR) のビット構成
アドレス:000041H(CAN0)
bit
アドレス:000071H(CAN1)
15
13
12
11
10
BVAL15 BVAL14 BVAL13 BVAL12 BVAL11 BVAL10
読出し / 書込み→ (R/W)
(0)
初期値→
アドレス:000040H(CAN0)
14
bit
7
9
8
BVAL9 BVAL8
(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
0
アドレス:000070H(CAN1)
BVAL7 BVAL6 BVAL5 BVAL4 BVAL3 BVAL2 BVAL1 BVAL0
読出し / 書込み→ (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
メッセージバッファ有効レジスタ (BVALR) は 16 ビットから構成され , 各ビットは 16
箇所あるメッセージバッファの有効 / 無効を設定します。
• 0: メッセージバッファ (x) 無効
• 1: メッセージバッファ (x) 有効
メッセージバッファ (x) が無効 ("0") に設定されると , メッセージを送信または受信し
ません。
もし , バッファが送信動作中に無効 ("0") に設定されると , 送信が完了またはエラーに
より終了した後で無効 (BVALx=0) になります。
また , バッファが受信動作中に無効 ("0") に設定された場合は , 直ちに無効 (BVALx=0) に
なります。
このとき, 受信メッセージがメッセージバッファ (x) に格納されていると, メッ
セージバッファ (x) はメッセージを格納した後に無効となります。
<注意事項>
• x はメッセージバッファの番号を示します (x=0 ~ 15) 。
• ビット (BVALx) に"0"を書き込むことによってメッセージバッファ (x) を無効とした場
合は , ビット操作命令の実行はそのビットが "0" にセットされるまで禁止されます。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が
"0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で ,
メッセージバッファを無効 (BVALR:BVAL0 ~ BVAL15=0) にする場合は「18.11
,
CAN
コントローラの使用上の注意」に従ってください。
409
第 18 章 CAN コントローラ
IDE レジスタ (IDER)
18.3.6
IDE レジスタは , 送信 / 受信の間にメッセージバッファ (x) により使用されるフレー
ムフォーマットを設定します。
■ IDE レジスタ (IDER) のビット構成
図 18.3-9 に IDE レジスタ (IDER) のビット構成を示します。
図 18.3-9 IDE レジスタ (IDER) のビット構成
アドレス:003C09H(CAN0)
bit
アドレス:003D09H(CAN1)
15
アドレス:003D08H(CAN1)
13
12
11
10
IDE15 IDE14 IDE13 IDE12 IDE11 IDE10
読出し / 書込み→ (R/W)
(X)
初期値→
アドレス:003C08H(CAN0)
14
bit
7
9
8
IDE9
IDE8
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
6
5
4
3
2
1
0
IDE7
IDE6
IDE5
IDE4
IDE3
IDE2
IDE1
IDE0
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
IDEレジスタ (IDER) は16 ビットから構成され , 各ビットは16 箇所あるメッセージバッ
ファが使用するフレームフォーマットを設定します。
• 0: メッセージバッファ (x) に対して標準フレームフォーマット (ID11 ビット ) が使用
されます。
• 1: メッセージバッファ (x) に対して拡張フレームフォーマット (ID29 ビット ) が使用
されます。
<注意事項>
• このレジスタは , メッセージバッファ (x) が無効のときに ( メッセージバッファ有効レ
ジ スタ の BVALx (BVALR) =0) に 設 定し な けれ ば なり ま せん。バ ッフ ァ が有 効 の
(BVALx=1) ときに設定すると受信メッセージを不必要に格納する可能性があります。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が
"0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で ,
メッセージバッファを無効 (BVALR:BVAL0 ~ BVAL15=0) にする場合は「18.11
,
CAN
コントローラの使用上の注意」に従ってください。
410
第 18 章 CAN コントローラ
18.3.7
送信要求レジスタ (TREQR)
送信要求レジスタ (TREQR) は , メッセージバッファ (x) に対する送信要求を設定し ,
その状態を表示します。
■ 送信要求レジスタ (TREQR) のビット構成
図 18.3-10 に送信要求レジスタ (TREQR) のビット構成を示します。
図 18.3-10 送信要求レジスタ (TREQR) のビット構成
アドレス:000043H(CAN0)
bit
アドレス:000073H(CAN1)
15
14
13
12
11
10
TREQ15 TREQ14 TREQ13 TREQ12 TREQ11 TREQ10
9
8
TREQ9
TREQ8
(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
TREQ7
TREQ6
TREQ5
TREQ4
TREQ3
TREQ2
TREQ1
TREQ0
読出し / 書込み→ (R/W)
(0)
初期値→
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
読出し / 書込み→ (R/W)
(0)
初期値→
アドレス:000042H(CAN0)
アドレス:000072H(CAN1)
bit
TREQx に "1" が書き込まれたとき , メッセージバッファ (x) に対する送信を開始しま
す。リモートフレーム受信待機レジスタ (RFWTR) *1 の RFWTx が "0" のときは , 送信
を直ちに開始します。RFWTx=1 のときは , リモートフレームが受信される ( リモート
要求受信レジスタ (RRTRR) *1 が "1" になる ) まで待機した後に , 送信を開始します。も
し, TREQxに"1"が書き込まれるときにRRTRxが既に"1"になっていた場合は, RFWTx=1
であっても送信を直ちに開始します。*2
*1: TRTRR および RFWTR に関しては「18.3.8 送信 RTR レジスタ (TRTRR)」および
「18.3.9 リモートフレーム受信待機レジスタ (RFWTR)」を参照してください。
*2: 送信の解除に関しては「18.3.10 送信解除レジスタ (TCANR)」および「18.3.11 送
信完了レジスタ (TCR)」を参照してください。
TREQx に "0" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは "0" が読み出されます。
送信動作の完了時における ("0" への ) クリアおよび "1" の書込みによる設定が同時に
生じた場合は , クリア動作が優先されます。
1 つ以上のビットに "1" が書き込まれた場合は , 下位番号のメッセージバッファ (x) か
ら開始して送信が行われます。
TREQx は , 送信が待ち状態中は "1" で , 送信が完了または解除されたときに "0" になり
ます。
411
第 18 章 CAN コントローラ
18.3.8
送信 RTR レジスタ (TRTRR)
送信 RTR レジスタ (TRTRR) は , メッセージバッファ (x) による送信 RTR ( リモー
ト送信要求 ) ビットを設定するレジスタです。
■ 送信 RTR レジスタ (TRTRR) のビット構成
図 18.3-11 に送信 RTR レジスタ (TRTRR) のビット構成を示します。
図 18.3-11 送信 RTR レジスタ (TRTRR) のビット構成
アドレス:003C0BH(CAN0)
bit
15
14
13
12
11
10
TRTR15
TRTR14
TRTR13
TRTR12
TRTR11
TRTR10
TRTR9
TRTR8
読出し / 書込み→ (R/W)
(0)
初期値→
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
アドレス:003D0BH(CAN1)
アドレス:003C0AH(CAN0)
8
7
6
5
4
3
2
1
0
TRTR7
TRTR6
TRTR5
TRTR4
TRTR3
TRTR2
TRTR1
TRTR0
読出し / 書込み→ (R/W)
(0)
初期値→
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
アドレス:003D0AH(CAN1)
bit
9
送信 RTR レジスタ (TRTRR) は 16 ビットから構成され , 各ビットは 16 箇所あるメッ
セージバッファのリモート送信要求を設定します。
• 0: データフレームが送信されます。
• 1: リモートフレームが送信されます。
412
第 18 章 CAN コントローラ
リモートフレーム受信待機レジスタ (RFWTR)
18.3.9
リモートフレーム受信待機レジスタ (RFWTR) は , データフレーム送信に対する要求
が設定された ( 送信要求レジスタ (TREQR) の TREQx が "1" で , 送信 RTR レジスタ
(TRTRR) の TRTRx が "0" である ) ときに , 送信を開始する条件を設定します。
■ リモートフレーム受信待機レジスタ (RFWTR) のビット構成
図 18.3-12 にリモートフレーム受信待機レジスタ (RFWTR) のビット構成を示します。
図 18.3-12 リモートフレーム受信待機レジスタ (RFWTR) のビット構成
アドレス:003C0DH(CAN0)
bit
15
14
13
12
11
10
9
8
RFWT15
RFWT14
RFWT13
RFWT12
RFWT11
RFWT10
RFWT9
RFWT8
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
7
6
5
4
3
2
1
0
RFWT7
RFWT6
RFWT5
RFWT4
RFWT3
RFWT2
RFWT1
RFWT0
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
アドレス:003D0DH(CAN1)
アドレス:003C0CH(CAN0)
アドレス:003D0CH(CAN1)
bit
リモートフレーム受信待機レジスタ (RFWTR) は , 16 ビットから構成され , 各ビットは
メッセージバッファがデータフレーム送信に設定されているときの , 送信開始条件を
設定します。
• 0: 直ちに送信を開始します。
• 1: リモートフレーム受信 ( リモート要求受信レジスタ (RRTRR) が "1" になる ) まで
待機した後に , 送信を開始します。
<注意事項>
• 送信に対する要求が設定されたときに , RRTRx が既に "1" の場合は送信を直ちに開始
します。
• リモートフレーム送信に対しては , RFWTx を "1" にセットしないでください。
413
第 18 章 CAN コントローラ
18.3.10
送信解除レジスタ (TCANR)
送信解除レジスタ (TCANR) は , TCANx に "1" が書き込まれたときに , メッセージ
バッファ (x) への送信に対する待ち状態中の要求を解除します。
解除の完了時に送信要求レジスタ (TREQR) の TREQx は "0" になります。TCANx
に "0" を書き込んでも無視されます。
送信解除レジスタ (TCANR) は書込み専用レジスタで , その読出し値は常に "0" で
す。
■ 送信解除レジスタ (TCANR) のビット構成
図 18.3-13 に送信解除レジスタ (TCANR) のビット構成を示します。
図 18.3-13 送信解除レジスタ (TCANR) のビット構成
アドレス:000045H(CAN0)
bit
アドレス:000075H(CAN1)
読出し / 書込み→
初期値→
アドレス:000044H(CAN0)
bit
アドレス:000074H(CAN1)
読出し / 書込み→
初期値→
414
15
14
13
12
11
10
TCAN15 TCAN14 TCAN13 TCAN12 TCAN11 TCAN10
9
8
TCAN9
TCAN8
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
7
6
5
4
3
2
1
0
TCAN7
TCAN6
TCAN5
TCAN4
TCAN3
TCAN2
TCAN1
TCAN0
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
第 18 章 CAN コントローラ
送信完了レジスタ (TCR)
18.3.11
メッセージバッファ (x) による送信が完了すると , 対応する TCx が "1" になります。
送信完了割込み許可レジスタ (TIER) の TIEx が "1" の場合は , 割込みが発生します。
■ 送信完了レジスタ (TCR) のビット構成
図 18.3-14 に送信完了レジスタ (TCR) のビット構成を示します。
図 18.3-14 送信完了レジスタ (TCR) のビット構成
アドレス:000047H(CAN0)
bit
アドレス:000077H(CAN1)
読出し / 書込み→
初期値→
アドレス:000046H(CAN0)
bit
アドレス:000076H(CAN1)
読出し / 書込み→
初期値→
15
14
13
12
11
10
9
8
TC15
TC14
TC13
TC12
TC11
TC10
TC9
TC8
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
7
6
5
4
3
2
1
0
TC7
(W)
(0)
TC6
(W)
(0)
TC5
(W)
(0)
TC4
(W)
(0)
TC3
(W)
(0)
TC2
(W)
(0)
TC1
(W)
(0)
TC0
(W)
(0)
TCx=0 となる条件は以下のとおりです。
• TCx に "0" を書き込む。
• 送信要求レジスタ (TREQR) の TREQx に "1" を書き込む。
送信完了の後で TCx に "0" を書き込むと , それを "0" にセットします。TCx に "1" を
書き込んでも無視されます。リードモディファイライト系命令が実行されたときは ,
"1" が読み出されます。
<注意事項>
送信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じた場合は ,
"1" への設定が優先します。
415
第 18 章 CAN コントローラ
18.3.12
送信割込み許可レジスタ (TIER)
送信割込み許可レジスタ (TIER) は , メッセージバッファ (x) による送信割込みを許
可または禁止します。送信割込みは , 送信完了時 ( 送信完了レジスタ (TCR) の TCx
が "1" になったとき ) に発生します。
■ 送信割込み許可レジスタ (TIER) のビット構成
図 18.3-15 に送信割込み許可レジスタ (TIER) のビット構成を示します。
図 18.3-15 送信割込み許可レジスタ (TIER) のビット構成
アドレス:003C0FH(CAN0)
bit
15
14
13
12
11
10
9
8
TIE15
TIE14
TIE13
TIE12
TIE11
TIE10
TIE9
TIE8
読出し / 書込み→ (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
0
アドレス:003D0FH(CAN1)
アドレス:003C0EH(CAN0)
アドレス:003D0EH(CAN1)
bit
7
TIE7
TIE6
TIE5
TIE4
TIE3
TIE2
TIE1
TIE0
読出し / 書込み→ (R/W)
(0)
初期値→
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
送信割込み許可レジスタ (TIER) は16ビットから構成され, 各ビットは16箇所あるメッ
セージバッファの送信割込みの禁止 / 許可を設定します。
• 0: 送信割込みは禁止されます。
• 1: 送信割込みは許可されます。
416
第 18 章 CAN コントローラ
受信完了レジスタ (RCR)
18.3.13
受信メッセージのメッセージバッファ (x) への格納が完了すると , RCx が "1" にな
ります。
受信完了割込み許可レジスタの RIEx が "1" の場合は , 割込みが発生します。
■ 受信完了レジスタ (RCR) のビット構成
図 18.3-16 に受信完了レジスタ (RCR) のビット構成を示します。
図 18.3-16 受信完了レジスタ (RCR) のビット構成
アドレス:000049H(CAN0)
bit
15
アドレス:000079H(CAN1)
RC15
(R/W)
読出し / 書込み→
(0)
初期値→
アドレス:000048H(CAN0)
アドレス:000078H(CAN1)
bit
14
13
12
11
10
9
8
RC14
(R/W)
(0)
RC13
(R/W)
(0)
RC12
(R/W)
(0)
RC11
(R/W)
(0)
RC10
(R/W)
(0)
RC9
(R/W)
(0)
RC8
(R/W)
(0)
7
6
5
4
3
2
1
0
RC7
RC6
RC5
RC4
RC3
RC2
RC1
RC0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
読出し / 書込み→ (R/W)
(0)
初期値→
RCx=0 となる条件は以下のとおりです。
• RCx に "0" を書き込んでください。
• 受信メッセージの処理完了後に , RCx に "1" を書き込んでください。RCx に "1" を
書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは , "1" が読み出されます。
<注意事項>
受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じた場合は ,
"1" への設定が優先します。
417
第 18 章 CAN コントローラ
リモート要求受信レジスタ (RRTRR)
18.3.14
受信されたリモートフレームがメッセージバッファ (x) 内に格納されると , RRTRx
は (RCx 設定が "1" になると同時に ) "1" になります。
■ リモート要求受信レジスタ (RRTRR) のビット構成
図 18.3-17 にリモート要求受信レジスタ (RRTRR) のビット構成を示します。
図 18.3-17 リモート要求受信レジスタ (RRTRR) のビット構成
アドレス:00004BH(CAN0)
bit
アドレス:00007BH(CAN1)
15
13
12
11
10
RRTR15 RRTR14 RRTR13 RRTR12 RRTR11 RRTR10
読出し / 書込み→ (R/W)
(0)
初期値→
アドレス:00004AH(CAN0)
14
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
8
RRTR9
RRTR8
(R/W)
(0)
(R/W)
(0)
7
6
5
4
3
2
1
0
RRTR7
RRTR6
RRTR5
RRTR4
RRTR3
RRTR2
RRTR1
RRTR0
読出し / 書込み→ (R/W)
(0)
初期値→
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
アドレス:00007AH(CAN1)
bit
(R/W)
(0)
9
RRTRx=0 となる条件は以下のとおりです。
• RRTRx に "0" を書き込んでください。
• 受信されたデータフレームがメッセージバッファ (x) に格納された後 (RCx 設定が
"1" になるのと同時 ) 。
• メッセージバッファ (x) による送信が完了した後 ( 送信完了レジスタ (TCR) の TCx
は "1") 。
RRTRx に "1" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは , "1" が読み出されます。
<注意事項>
"1" への設定と "0" の書込みによるクリアが同時に生じたときは , "1" への設定が優先しま
す。
418
第 18 章 CAN コントローラ
18.3.15
受信オーバランレジスタ (ROVRR)
メッセージバッファ (x) 内への受信メッセージの格納完了時に受信完了レジスタ
(RCR) が既に "1" の場合 , ROVRx は "1" になり受信がオーバランしたことを表しま
す。
■ 受信オーバランレジスタ (ROVRR) のビット構成
図 18.3-18 に受信オーバランレジスタ (ROVRR) のビット構成を示します。
図 18.3-18 受信オーバランレジスタ (ROVRR) のビット構成
アドレス:00004DH(CAN0)
bit
15
14
13
12
11
10
9
8
ROVR15
ROVR14
ROVR13
ROVR12
ROVR11
ROVR10
ROVR9
ROVR8
読出し / 書込み→ (R/W)
(0)
初期値→
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
アドレス:00007DH(CAN1)
アドレス:00004CH(CAN0)
7
6
5
4
3
2
1
0
ROVR7
ROVR6
ROVR5
ROVR4
ROVR3
ROVR2
ROVR1
ROVR0
読出し / 書込み→ (R/W)
(0)
初期値→
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
アドレス:00007CH(CAN1)
bit
ROVRx に "0" を書き込むと , ROVRx=0 になります。ROVRx に "1" を書き込んでも無
視されます。受信がオーバランしたことをチェックした後で ROVRx に "0" を書き込む
と , それを "0" に設定します。
リードモディファイライト系命令が実行されたときは "1" がリードされます。
<注意事項>
"1" への設定と "0" の書込みによるクリアが同時に生じたときは , "1" への設定が優先しま
す。
419
第 18 章 CAN コントローラ
18.3.16
受信割込み許可レジスタ (RIER)
受信割込み許可レジスタ (RIER) は , メッセージバッファ (x) による受信割込みを許
可または禁止します。
受信割込みは , 受信完了時 ( 受信完了レジスタ (RCR) の RCx が "1" であるとき ) に
発生します。
■ 受信割込み許可レジスタ (RIER) のビット構成
図 18.3-19 に受信割込み許可レジスタ (RIER) のビット構成を示します。
図 18.3-19 受信割込み許可レジスタ (RIER) のビット構成
アドレス:00004FH(CAN0)
bit
アドレス:00007FH(CAN1)
15
13
12
11
10
RIE15 RIE14 RIE13 RIE12 RIE11 RIE10
読出し / 書込み→ (R/W)
(0)
初期値→
アドレス:00004EH(CAN0)
14
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
8
RIE9
RIE8
(R/W)
(0)
(R/W)
(0)
7
6
5
4
3
2
1
0
RIE7
RIE6
RIE5
RIE4
RIE3
RIE2
RIE1
RIE0
読出し / 書込み→ (R/W)
(0)
初期値→
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
アドレス:00007EH(CAN1)
bit
(R/W)
(0)
9
受信割込み許可レジスタ (RIER) は16ビットから構成され, 各ビットは16箇所あるメッ
セージバッファの受信割込みの禁止 / 許可を設定します。
• 0: 受信割込みは禁止されます。
• 1: 受信割込みは許可されます。
420
第 18 章 CAN コントローラ
18.3.17
アクセプタンスマスク選択レジスタ (AMSR)
アクセプタンスマスク選択レジスタ (AMSR) は , 受信メッセージ ID とメッセージ
バッファ (x) ID の比較に対するマスク ( アクセプタンスマスク ) を選択します。
■ アクセプタンスマスク選択レジスタ (AMSR) のビット構成
図 18.3-20 にアクセプタンスマスク選択レジスタ (AMSR) のビット構成を示します。
表 18.3-8 に示すように, 2 ビットの組合せによって対応するメッセージバッファのアク
セプタンスマスクを選択します。
図 18.3-20 アクセプタンスマスク選択レジスタ (AMSR) のビット構成
アドレス:003C10H(CAN0)
bit
7
6
5
4
3
2
1
0
AMS3.1
AMS3.1
AMS2.1
AMS2.0
AMS1.1
AMS1.0
AMS0.1
AMS0.0
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
AMS7.1
AMS7.1
AMS6.1
AMS6.0
AMS5.1
AMS5.0
AMS4.1
AMS4.0
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
アドレス:003D10H(CAN1)
アドレス:003C11H(CAN0)
bit
アドレス:003D11H(CAN1)
アドレス:003C12H(CAN0)
bit
7
6
5
4
3
2
1
0
AMS11.1
AMS11.1
AMS10.1
AMS10.0
AMS1.1
AMS9.0
AMS9.1
AMS9.0
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
AMS15.1
AMS15.1
AMS14.1
AMS14.0
AMS13.1
AMS13.0
AMS12.1
AMS12.0
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
アドレス:003D12H(CAN1)
アドレス:003C13H(CAN0)
bit
アドレス:003D13H(CAN1)
表 18.3-8 アクセプタンスマスクの選択
アクセプタンスマスク
AMSx.1
AMSx.0
0
0
フルビット比較
0
1
フルビットマスク
1
0
アクセプタンスマスクレジスタ 0 (AMR0)
1
1
アクセプタンスマスクレジスタ 1 (AMR1)
421
第 18 章 CAN コントローラ
<注意事項>
• AMSx.1 および AMSx.0 はメッセージバッファ (x) が無効である ( メッセージバッファ
有効レジスタ (BVALR) の BVALx が "0" である ) ときに設定しなければなりません。
バッファが有効 (BVALx=1) なときに設定すると , 不要な受信メッセージが格納される
可能性があります。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が
"0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で ,
メッセージバッファを無効 (BVALR:BVAL0 ~ BVAL15=0) にする場合は「18.11
,
CAN
コントローラの使用上の注意」に従ってください。
422
第 18 章 CAN コントローラ
18.3.18
アクセプタンスマスクレジスタ 0 および 1
(AMR0/AMR1)
AMR0 および AMR1 の 2 つのアクセプタンスマスクレジスタがあり , 両者ともに標
準フレームフォーマットまたは拡張フレームフォーマットのいずれかで利用できま
す。
AM28 ~ AM18 (11 ビット ) は , 標準フレームフォーマットにおけるアクセプタンス
マスクに使用され , AM28 ~ AM0 (29 ビット ) は拡張フォーマットでアクセプタン
スマスクに使用されます。
■ アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成
図 18.3-21 にアクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成を
示します。
図 18.3-21 アクセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1) のビット構成
AMR0 BYTE0
bit
7
6
5
4
3
2
1
0
AM28
AM27
AM26
AM25
AM24
AM23
AM22
AM22
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
AM20
AM19
AM18
AM17
AM16
AM15
AM14
AM13
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
7
6
5
4
3
2
1
0
AM12
AM11
AM10
AM9
AM8
AM7
AM6
AM5
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
AM4
AM3
AM2
AM1
AM0
-
-
-
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(-)
(R/W)
(-)
(R/W)
(-)
アドレス:003C14H(CAN0)
アドレス:003D14H(CAN1)
AMR0 BYTE1
bit
アドレス:003C15H(CAN0)
アドレス:003D15H(CAN1)
AMR0 BYTE2
bit
アドレス:003C16H(CAN0)
アドレス:003D16H(CAN1)
AMR0 BYTE3
bit
アドレス:003C17H(CAN0)
アドレス:003D17H(CAN1)
( 続く )
423
第 18 章 CAN コントローラ
( 続き )
AMR1 BYTE0
bit
7
6
5
4
3
2
1
0
AM28
AM27
AM26
AM25
AM24
AM23
AM22
AM22
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
AM20
AM19
AM18
AM17
AM16
AM15
AM14
AM13
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
7
6
5
4
3
2
1
0
AM12
AM11
AM10
AM9
AM8
AM7
AM6
AM5
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
AM4
AM3
AM2
AM1
AM0
-
-
-
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(-)
(R/W)
(-)
(R/W)
(-)
アドレス:003C18H(CAN0)
アドレス:003D18H(CAN1)
AMR1 BYTE1
bit
アドレス:003C19H(CAN0)
アドレス:003D19H(CAN1)
AMR1 BYTE2
bit
アドレス:003C1AH(CAN0)
アドレス:003D1AH(CAN1)
AMR1 BYTE3
bit
アドレス:003C1BH(CAN0)
アドレス:003D1BH(CAN1)
● 0: 比較
このビットに対応するアクセプタンスコード ( 受信メッセージ ID と比較するための ID
レジスタ IDRx) を受信メッセージ ID のビットと比較します。一致しなければメッセー
ジは受信されません。
● 1: マスク
このビットに対応するアクセプタンスコード ID レジスタ (IDRx) をマスクします。受
信メッセージ ID のビットとの比較は行われません。
<注意事項>
• AMR0 および AMR1 は , AMR0 および AMR1 を選択するメッセージバッファ (x) のす
べてが無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") であるとき
に , 設定しなければなりません。メッセージバッファが有効 (BVALx=1) であるときに
設定すると , 不必要な受信メッセージが格納される可能性があります。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が
"0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で ,
メッセージバッファを無効 (BVALR:BVAL0 ~ BVAL15=0) にする場合は「18.11
,
CAN
コントローラの使用上の注意」に従ってください。
424
第 18 章 CAN コントローラ
メッセージバッファ
18.3.19
メッセージバッファは 16 個あり , 1 つのメッセージバッファ x (x=0 ~ 15) は ID レ
ジスタ (IDRx) , DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) から構成され
ています。
■ メッセージバッファ
メッセージバッファ (x) は , 送信および受信の両方に使用されます。
下位番号のメッセージバッファの方が高い優先順位を割り当てられています。
送信時に送信要求が1つ以上のメッセージバッファに対して出されたときには, 最下位
番号のメッセージバッファから開始して送信が行われます (「18.4 CAN コントローラ
の送信」を参照 ) 。
受信時に , 1 つ以上のメッセージバッファのアクセプタンスフィルタ ( 受信メッセージ
のアクセプタンスマスク ID とメッセージバッファとを比較する機構 ) を受信メッセー
ジ ID が通過するときに , 受信メッセージは最下位番号のメッセージバッファ内に格納
されます (「18.5 CAN コントローラの受信」を参照 ) 。
同一のアクセプタンスフィルタが 1 つ以上のメッセージバッファ内に設定されたとき
に , メッセージバッファはマルチレベルメッセージバッファとして使用することがで
きます。これにより , 受信時間に対する余裕が与えられます (「18.8 メッセージバッ
ファ (x) による受信方法」を参照 ) 。
<注意事項>
• メッセージバッファおよび汎用 RAM 領域への書込み動作は , ワード単位で偶数アドレ
スに対して行わなければなりません。バイト単位で書込み動作を行うと , 下位バイトへ
の書込み時に上位バイトに不定データを書き込んでしまいます。
• メッセージバッファ有効レジスタ (BVALR) の BVALx ビットが "0" ( 無効 ) であるとき
に , メッセージバッファ x (IDRx, DLCRx および DTRx) は汎用 RAM として使用するこ
とができます。ただし , CAN コントローラが送受信動作中は , メッセージバッファを
使用するので , CPU のアクセスが最大で 64 マシンサイクル待たされることがありま
す。これは , 汎用 RAM 領域 (CAN0: アドレス 003A00H ~ 003A1FH およびアドレス
003B00H ~ 003B1FH) についても同様です。
425
第 18 章 CAN コントローラ
18.3.20
ID レジスタ x (x=0 ~ 15) (IDRx)
ID レジスタ x (x=0 ~ 15) (IDRx) は , メッセージバッファ (x) に対する ID レジスタ
です。
■ ID レジスタ x (x=0 ~ 15) (IDRx) のビット構成
図 18.3-22 に ID レジスタ x (x=0 ~ 15) (IDRx) のビット構成を示します。
図 18.3-22 ID レジスタ x (x=0 ~ 15) (IDRx) のビット構成
BYTE0
bit
7
6
5
4
3
2
1
0
ID28
ID27
ID26
ID25
ID24
ID23
ID22
ID22
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
ID20
ID19
ID18
ID17
ID16
ID15
ID14
ID13
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
7
6
5
4
3
2
1
0
ID12
ID11
ID10
ID9
ID8
ID7
ID6
ID5
読出し / 書込み→ (R/W)
(X)
初期値→
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
ID4
ID3
ID2
ID1
ID0
-
-
-
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(-)
(R/W)
(-)
(R/W)
(-)
アドレス:003A20H+4x(CAN0)
アドレス:003B20H+4x(CAN1)
BYTE1
bit
アドレス:003A21H+4x(CAN0)
アドレス:003B21H+4x(CAN1)
BYTE2
bit
アドレス:003A22H+4x(CAN0)
アドレス:003B22H+4x(CAN1)
BYTE3
bit
アドレス:003A23H+4x(CAN0)
アドレス:003B23H+4x(CAN1)
読出し / 書込み→ (R/W)
(X)
初期値→
標準フレームフォーマット (IDE レジスタ (IDER) の IDEx=0) でメッセージバッファ (x)
を使用しているときは , ID28 ~ ID18 の 11 ビットを使用してください。拡張フレーム
フォーマット (IDEx=1) でバッファを使用しているときは , ID28 ~ ID0 の 29 ビットを
使用してください。
ID28 ~ ID0 の機能は次のとおりです。
• アクセプタンスコード設定 ( 受信メッセージ ID との比較用の ID)
• 送信メッセージ ID の設定
標準フレームフォーマットでは , ID28 ~ ID22 のビットのすべてに "1" をセットする
ことは禁止されています。
• 受信メッセージ ID の格納
受信メッセージ ID は , アクセプタンスマスクでマスクされているビットにも格納さ
れます。標準フレームフォーマットでは , ID17 ~ ID0 は不定値 ( 前回受信したメッ
セージの一部 ) が格納されます。
426
第 18 章 CAN コントローラ
<注意事項>
• ID レジスタへの書込み動作は , ワード単位で行わなければなりません。バイト単位で
書込み動作を行うと , 下位バイトへの書込み時に上位バイトに不定データを書き込ん
でしまいます。上位バイトへの書込みは無視されます。
• ID レジスタは , メッセージバッファ (x) が無効 ( メッセージバッファ有効レジスタ
(BVALR) の BVALx が 0) であるときに設定されなければなりません。バッファが有効
(BVALx=1) であるときに設定すると , 不必要な受信メッセージが格納されてしまいま
す。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が
"0" で ,CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で ,
メッセージバッファを無効 (BVALR:BVAL0 ~ BVAL15=0) にする場合は「18.11
,
CAN
コントローラの使用上の注意」に従ってください。
■ ID レジスタの設定例
標準フレームフォーマットおよび拡張フレームフォーマットにおける ID レジスタの設
定例を表 18.3-9 および表 18.3-10 に示します。
表 18.3-9 標準フレームフォーマットにおける ID レジスタの設定例
ID (Dec)
ID (Hex)
BYTE0
BYTE1
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
A
00
00
00
00
00
00
00
01
01
01
20
40
60
80
A0
C0
E0
00
20
40
・
・
30
31
32
・
・
1E
1F
20
03
03
03
・
・
100
101
・
・
064
065
0C
0C
・
・
200
80
A0
・
・
0C8
19
・
・
2043
2044
2045
2046
2047
C0
C1
C2
00
・
・
7FB
7FC
7FD
7FE
7FF
FF
FF
FF
FF
FF
06
80
A0
C0
E0
427
第 18 章 CAN コントローラ
表 18.3-10 拡張フレームフォーマットにおける ID レジスタの設定例
ID (Dec)
ID (Hex)
BYTE0
BYTE1
BYTE0
BYTE1
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
A
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
08
10
18
20
28
30
38
40
48
50
00
00
01
F0
F8
00
03
03
20
28
06
40
・
・
30
31
32
・
・
1E
1F
20
00
00
00
00
00
00
・
・
100
101
・
・
064
065
00
00
00
00
・
・
200
・
・
0C8
00
00
・
・
・
・
2043
2044
2045
2046
2047
7FB
7FC
7FD
7FE
7FF
00
00
00
00
00
00
00
00
00
00
3F
3F
3F
3F
3F
D8
E0
E8
F0
F8
8190
8191
8192
1FFE
1FFF
2000
00
00
00
00
00
01
FF
FF
00
F0
F8
00
FC
FD
FD
FE
FE
FF
FF
80
00
80
00
80
00
80
・
・
536870905
536870906
536870907
536870908
536870909
536870910
536870911
428
・
・
1FFFFFF9
1FFFFFFA
1FFFFFFB
1FFFFFFC
1FFFFFFD
1FFFFFFE
1FFFFFFF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
第 18 章 CAN コントローラ
DLC レジスタ x (x=0 ~ 15) (DLCRx)
18.3.21
DLC レジスタ x (x=0 ~ 15) (DLCRx) は , メッセージバッファ x に対する DLC を格
納します。
■ DLC レジスタ x (x=0 ~ 15) (DLCRx) のビット構成
図 18.3-23 に DLC レジスタ x (x=0 ~ 15) (DLCRx) のビット構成を示します。
図 18.3-23 DLC レジスタ x (x=0 ~ 15) (DLCRx) のビット構成
アドレス:003A60H+2x(CAN0)
bit
7
6
5
4
3
2
1
0
読出し / 書込み→
初期値→
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
ID3
(R/W)
(X)
ID2
(R/W)
(X)
ID1
(R/W)
(X)
ID0
(R/W)
(X)
アドレス:003B60H+2x(CAN1)
● 送信
• データフレームが送信する ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0") ときに ,
送信メッセージのデータ長 ( バイト単位 ) を設定します。
• リモートフレームが送信する (TRTRx=1) ときに , 要求メッセージのデータ長 ( バイ
ト単位 ) を設定します。
<注意事項>
0000 ~ 1000 (0 ~ 8 バイト ) 以外の設定は禁止されています。
● 受信
• データフレームが受信された ( リモートフレーム要求受信レジスタ (RRTRR) の
RRTRx が "0") ときに , 受信メッセージのデータ長 ( バイト単位 ) を格納します。
• リモートフレームが受信された (RRTRx=1) ときに , 要求メッセージのデータ長 ( バ
イト単位 ) を格納します。
<注意事項>
DLC レジスタへの書込み動作は , ワード単位で行わなければなりません。バイト単位で書
込み動作をすると , 下位バイトへの書込み時に上位バイトに不定データを書き込んでいま
す。上位バイトへの書込みは無視されます。
429
第 18 章 CAN コントローラ
18.3.22
データレジスタ x (x=0 ~ 15) (DTRx)
データレジスタ x (x=0 ~ 15) (DTRx) は , メッセージバッファ (x) に対するデータレ
ジスタです。
データレジスタ x (x=0 ~ 15) (DTRx) はデータフレームの送信および受信のみ使用
されるレジスタで , リモートフレームの送信および受信には使用されません。
■ データレジスタ x (x=0 ~ 15) (DTRx) のビット構成
図 18.3-24 にデータレジスタ x (x=0 ~ 15) (DTRx) のビット構成を示します。
図 18.3-24 データレジスタ x (x=0 ~ 15) (DTRx) のビット構成
BYTE0
bit
アドレス:003A80H+8x(CAN0)
アドレス:003B80H+8x(CAN1)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
読出し / 書込み→ (R/W)
(X)
初期値→
BYTE1
bit
アドレス:003A81H+8x(CAN0)
アドレス:003B81H+8x(CAN1)
読出し / 書込み→ (R/W)
(X)
初期値→
BYTE2
bit
アドレス:003A82H+8x(CAN0)
アドレス:003B82H+8x(CAN1)
読出し / 書込み→ (R/W)
(X)
初期値→
BYTE3
bit
アドレス:003A83H+8x(CAN0)
アドレス:003B83H+8x(CAN1)
読出し / 書込み→ (R/W)
(X)
初期値→
BYTE4
bit
アドレス:003A84H+8x(CAN0)
アドレス:003B84H+8x(CAN1)
読出し / 書込み→ (R/W)
(X)
初期値→
BYTE5
bit
アドレス:003A85H+8x(CAN0)
アドレス:003B85H+8x(CAN1)
読出し / 書込み→ (R/W)
(X)
初期値→
( 続く )
430
第 18 章 CAN コントローラ
( 続き )
BYTE6
bit
アドレス:003A86H+8x(CAN0)
アドレス:003B86H+8x(CAN1)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(-)
(R/W)
(-)
(R/W)
(-)
読出し / 書込み→ (R/W)
(X)
初期値→
BYTE7
bit
アドレス:003A87H+8x(CAN0)
アドレス:003B87H+8x(CAN1)
読出し / 書込み→ (R/W)
(X)
初期値→
● 送信メッセージデータ (0 ~ 8 バイトのいずれか ) の設定。
データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で送信されます。
● 受信メッセージデータ
データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で格納されます。
受信メッセージデータが8バイトより少なくても, データが格納されるデータレジスタ
(DTRx) の残りのバイトは不定となります。
<注意事項>
データレジスタへの書込み動作は , ワード単位で行わなければなりません。バイト単位で
書込み動作をすると , 下位バイトへの書込み時に上位バイトに不定データを書き込んでし
まいます。上位バイトへの書込みは無視されます。
431
第 18 章 CAN コントローラ
18.3.23
CAN ウェイクアップ制御レジスタ (CWUCR)
CAN ウェイクアップ制御レジスタ (CWUCR) は , RX 端子の INT 端子への内部接続
を制御するレジスタです。
■ CAN ウェイクアップ制御レジスタ (CWUCR) のビット構成
図 18.3-25 に CAN ウェイクアップ制御レジスタ (CWUCR) のビット構成を示します。
図 18.3-25 CAN ウェイクアップ制御レジスタ (CWUCR) のビット構成
CWUCR
bit
7
6
5
4
3
2
1
0
アドレス:003EH
-
-
-
-
-
-
-
CWU
読出し / 書込み→
初期値→
(R/W)
(-)
(R/W)
(-)
(R/W)
(-)
(R/W)
(-)
(R/W)
(-)
(R/W)
(-)
(R/W)
(-)
(R/W)
(0)
【bit0】CWU:CAN ウェイクアップ制御ビット
CWU ビットは , RX 端子の INT 端子への内部接続を制御します。
• 0:RX 端子と INT 端子は , 内部接続されません。INT 端子は , 通常の外部割込み端子
として機能します。
• 1:RX 端子と INT 端子を内部接続します。INT 端子は , 外部割込み機能が使用できな
くなります。
432
第 18 章 CAN コントローラ
18.4
CAN コントローラの送信
CAN コントローラでは , 送信要求レジスタ (TREQR) の TREQx に "1" が書き込まれ
たときに , メッセージバッファ (x) による送信が開始します。このときに TREQx は
"1" になり , 送信完了レジスタ (TCR) の TCx は "0" になります。
■ CAN コントローラの送信の開始
リモートフレーム受信待機レジスタ (RFWTR) の RFWTx が "0" になると , 直ちに送信
を開始します。RFWTx が "1" の場合は , リモートフレームが受信される ( リモート要
求受信レジスタ (RRTRR) の RRTRx が "1" になる ) まで待機した後に , 送信が開始され
ます。
送信に対する要求が , 1 つ以上のメッセージバッファに対して出された (1 つ以上の
TREQx が "1") 場合には , 最下位番号のメッセージバッファから開始して送信が行われ
ます。
CAN バスに対するメッセージ送信 ( 送信出力端子 TX によるもの ) は , バスがアイドル
のときに開始します。
送信 RTR レジスタ (TRTRR) の TRTRx が "0" の場合は , データフレームが送信されま
す。TRTRx が "1" の場合は , リモートフレームが送信されます。
送信に関して , メッセージバッファが CAN バス上のほかの CAN コントローラと競合
してアービトレーションが不調に終わった場合または送信中にエラーが生じた場合に
は , メッセージバッファはバスがアイドルとなるまで待機し , それが成功するまで再送
信を反復します。
■ CAN コントローラの送信要求の解除
● 送信解除レジスタ (TCANR) による解除
送信待ち状態中に , 送信を実行しなかったメッセージバッファ (x) に対する送信要求は ,
送信解除レジスタ (TCANR) の TCANx に "1" を書き込むことにより解除することができ
ます。解除の完了時に , TREQx は "0" になります。
● 受信メッセージの格納による解除
送信要求にもかかわらず , 送信を実行しなかったメッセージバッファ (x) も受信を行い
ます。
データフレームの送信に対する要求にもかかわらず , メッセージバッファ (x) が送信を
実行していなかった場合でも (TRTRx=0 または TREQx=1) , アクセプタンスフィルタを
通過した受信データフレームを格納した後には, 送信要求が解除されます (TREQx=0) 。
リモートフレームを格納することでは, 送信要求は解除されません (TREQx=1はそのま
まです ) 。
リモートフレームの送信に対する要求にもかかわらずメッセージバッファ (x) が送信
を実行していなかった場合でも (TRTRx=1 または TREQx=1) , アクセプタンスフィルタ
を通過した受信リモートフレームを格納した後には送信要求が解除されます
(TREQx=0) 。データフレームまたはリモートフレームのいずれを格納しても送信要求
は解除されます。
■ CAN コントローラの送信の完了
送信が成功したときに RRTRx および TREQx は "0" になり , 送信完了レジスタ (TCR)
の TCx は "1" になります。送信完了割込みが許可されている場合には ( 送信完了割込
み許可レジスタ (TIER) の TIEx は "1" の場合 ) , 割込みが発生します。
433
第 18 章 CAN コントローラ
■ CAN 送信設定フローチャート
図 18.4-1 に CAN 送信設定のフローチャートを示します。
図 18.4-1 CAN 送信設定のフローチャート
START
ビットタイミングの設定
フレームフォーマットの設定
IDの設定
アクセプタンスフィルタの設定
ビットタイミングレジスタ(BTR)
IDEレジスタ(IDER)
IDレジスタ(IDR)
アクセプタンスマスク選択レジスタ(AMSR)
アクセプタンスマスクレジスタ(AMR0,1)
使用するメッセージバッファを選択する
メッセージバッファ有効レジスタ(BVALR)
送信完了割込みの設定
送信完了割込み許可レジスタTIER
データフレーム
リモートフレーム
フレームタイプ
の選択
フレームタイプの設定
送信RTRレジスタ(TRTRR=0)
フレームタイプの設定送信
RTRレジスタ(TRTRR=1)
送信データ長の設定
DLCレジスタ(DLCR)
要求データ長の設定
DLCレジスタ(DLCR)
データレジスタに送信データを格納
データレジスタ(DTR)
する
リモートフレーム
受信待ち
しない
リモートフレーム受信待ち
RFWTR=0
リモートフレーム受信待ち
RFWTR=1
バス動作停止の解除HALT=1
メッセージ送信 データフレームの送信要求の設定
データフレーム送信TREQR
N:0
リモートフレーム受信待ち
送信成功?
通信エラー
TCR
N
送信キャンセル?
Y:1
Y
送信要求のキャンセル
送信TCANRレジスタ
TREQR
1
0
1
TCR
0
送信完了
END
434
送信キャンセル
第 18 章 CAN コントローラ
■ CAN コントローラの送信フローチャート
図 18.4-2 に , CAN コントローラの送信フローチャートを示します。
図 18.4-2 CAN コントローラの送信フローチャート
送信要求
(TREQx := 1)
TCx := 0
0
TREQx?
1
0
RFWTx?
1
0
RRTRx?
1
上記条件を満足するほかのメッセージ
バッファがある場合,その中で最下
位番号メッセージバッファを選択
NO
バスは使用され
ていないか?
YES
0
1
TRTRx?
データフレームが送信される
リモートフレームが送信される
NO
送信は成功したか?
YES
TCANx?
RRTRx := 0
TREQx := 0
TCx
:= 1
TIEx ?
0
1
TREQx := 0
1
0
送信完了割込みが発生
送信の終了
435
第 18 章 CAN コントローラ
18.5
CAN コントローラの受信
CAN バス上でデータフレームまたはリモートフレームの開始 (SOF) が検出されたと
きに受信は開始します。
■ アクセプタンスフィルタリング
標準フレームフォーマットの受信メッセージは , 標準フレームフォーマットに設定さ
れたメッセージバッファ (x) (IDE レジスタ (IDER) の IDEx は "0") と比較されます。拡
張フレームフォーマットの受信メッセージは , 拡張フレームフォーマットに設定され
たメッセージバッファ (x) (IDEx は "1") と比較されます。
もし , 受信メッセージ ID とアクセプタンスコード ( 受信メッセージ ID との比較のため
の ID レジスタ (IDRx) ) との比較の後に , アクセプタンスマスクにより比較すべきビッ
トセットのすべてが一致すれば , 受信メッセージはメッセージバッファ (x) のアクセプ
タンスフィルタを通過します。
■ 受信メッセージの格納
受信動作が成功したときに , 受信メッセージはアクセプタンスフィルタを通過した ID
を含め , メッセージバッファ (x) に格納されます。
データフレームを受信したときに , 受信メッセージは ID レジスタ (IDRx) , DLC レジス
タ (DLCRx) およびデータレジスタ (DTRx) に格納されます。
受信メッセージデータが 8 バイトより少なくても , データは DTRx の残りのバイトに格
納され , その値は不定となります。
リモートフレームを受信したときに , 受信メッセージは IDRx および DLCRx のみに格
納されて , DTRx はそのままです。
アクセプタンスフィルタを通過した ID を含む 1 つ以上のメッセージバッファがあった
場合には , 受信メッセージが格納されるべきメッセージバッファx は , 次の規則により
決定されます。
メッセージバッファx (x=0 ~ 15) の優先順位は , その番号が低いほど高くなります。す
なわち , メッセージバッファ 0 が最高の優先度を与えられ , メッセージバッファ 15 は
最低の優先度が与えられます。
受信メッセージを格納する上では , 基本的に受信完了レジスタ (RCR) の RCx ビットが
"0" に設定されたメッセージバッファが優先されます。
もしアクセプタンスマスク選択レジスタ (AMSR) の各ビットが全ビット比較 (AMSx.1
および AMSx.0 ビット ) が "00" に設定されたメッセージバッファに設定されていれば
RCR の RCx ビットの値にかかわらず , 受信メッセージは格納されます。
もし , RCR の RCx ビットが "0" のバッファと AMSR のビットが全ビット比較に設定さ
れているバッファが複数ある場合 , 受信メッセージは最下位番号 ( 最優先 ) のメッセー
ジバッファx に格納されます。上記のメッセージバッファがない場合は , 受信メッセー
ジは下位番号メッセージバッファ x に格納されます。
図 18.5-1 には , 受信メッセージを格納すべきメッセージバッファ x を決定するための
フローチャートが示されています。メッセージバッファは , バッファ番号順に , AMSR
の各ビットが全ビット比較にセットされたメッセージバッファ , AMR0 または AMR1
を使用しているメッセージバッファおよび AMSR の各ビットが全ビットマスクにセッ
トされたメッセージバッファの順番に設定されることを推奨します。
436
第 18 章 CAN コントローラ
図 18.5-1 受信メッセージを格納するメッセージバッファ (x) を決定するフローチャート
開始
RCxが0にセットされているか,AMSx.1
およびAMSx.0が00にセットされている
メッセージバッファが見つかったか。
メッセージバッファの中から
最下位番号のメッセージバッファ
を選択
RCxに0が設定されている,または
AMSx.1およびAMSx.0に00が
設定されているメッセージバッファ
の中から最下位番号の
メッセージバッファを選択
終了
■ 受信オーバラン
受信メッセージが格納されるべきメッセージバッファ x に対応する受信完了レジスタ
(RCR) の RCx ビットが , 既に "1" にセットされていてメッセージバッファ x への受信
メッセージの格納が完了したときに , 受信オーバランレジスタ (ROVRR) の ROVRx
ビットが "1" にセットされて受信オーバランが表示されます。
■ データフレームおよびリモートフレームの受信に対する処理
● データフレームの受信に対する処理
データフレームを受信すると , リモート要求受信レジスタ (RRTRR) の RRTRx が "0" に
なります。
送信要求レジスタ (TREQR) の TREQx は , 受信メッセージを格納する直前に "0" になり
ます。送信を実行しなかったメッセージバッファ (x) に対する送信要求は , 解除されま
す。データフレームまたはリモートフレームのいずれの送信に対する要求も解除され
ます。
● リモートフレームの受信に対する処理
リモートフレームを受信すると , RRTRx が "1" になります。
送信 RTR レジスタ (TRTRR) の TRTRx が "1" の場合に , TREQx は "0" になります。こ
の結果 , 送信を実行しなかったメッセージバッファへのリモートフレームの送信に対
する要求は解除されます。
<注意事項>
• データフレーム送信に対する要求は解除されません。
• 送信要求の解除に関しては「18.4 CAN コントローラの送信」を参照してください。
437
第 18 章 CAN コントローラ
■ 受信完了
受信完了レジスタ (RCR) の RCx は , 受信メッセージを格納した後に "1" になります。
受信割込みが許可されていると ( 受信割込み許可レジスタ (RIER) の RIEx が "1") , 割込
みが発生します。
<注意事項>
この CAN コントローラは , それ自身が送信したメッセージを受信することはありません。
■ CAN 受信設定のフローチャート
図 18.5-2 に CAN 受信設定のフローチャートを示します。
図 18.5-2 CAN 受信設定のフローチャート
START
ビットタイミングの設定
フレームフォーマットの設定
IDの設定
アクセプタンスフィルタの設定
ビットタイミングレジスタ(BTR)
IDEレジスタ(IDER)
IDレジスタ(IDR)
アクセプタンスマスク選択レジスタ(AMSR)
アクセプタンスマスクレジスタ(AMR0,1)
使用するメッセージバッファを選択する
メッセージバッファ有効レジスタ(BVALR)
受信完了割込みの設定
受信完了割込み許可レジスタ(RIE)
バス動作停止の解除HALT=1
N
メッセージが受信されたか
RCR=1 ?
Y
メッセージ格納処理
受信完了割込みなどにて処理
受信バイト数読出し
受信オーバーランフラグクリア
ROVRR=0
受信メッセージの読出し
受信オーバーラン?
ROVRR=0 ?
N
Y
受信完了割込みフラグクリア
RCR=0
END
438
第 18 章 CAN コントローラ
■ CAN コントローラの受信フローチャート
図 18.5-3 に , CAN コントローラの受信フローチャートを示します。
図 18.5-3 CAN コントローラの受信フローチャート
データフレームまたは,リモー
トフレームの開始(SOF)の検出
NO
受容フィルタをパスするメッセージ
バッファ"x"はあるか?
YES
NO
受信は成功したか?
YES
受信メッセージを記憶するメッセー
ジバッファ"x"を決定
受信メッセージをメッセージ
バッファ"x"に記憶
1
RCx?
0
データフレーム
ROVRx := 1
リモートフレーム
受信メッセージは?
RRTRx := 0
RRTRx := 1
1
TRTRx?
0
TREQx := 0
RCx := 1
RIEx ?
0
1
受信割込みが発生
受信の終了
439
第 18 章 CAN コントローラ
18.6
CAN コントローラの使用方法
CAN コントローラでは , 次のような設定が必要です。
• ビットタイミングの設定
• フレームフォーマットの設定
• ID の設定
• アクセプタンスフィルタの設定
• 低電力消費モードの設定
■ ビットタイミングの設定
ビットタイミングレジスタ (BTR) は, バス動作停止 (制御ステータスレジスタ (CSR) の
バス動作停止ビット (HALT) が "1") の間に設定しなければなりません。
設定完了の後に , HALT に "0" を書き込んでバス動作停止を解除してください。
■ フレームフォーマットの設定
メッセージバッファ (x) により , 使用されるフレームフォーマットを設定してくださ
い。標準フレームフォーマットを使用するときには , IDE レジスタ (IDER) の IDEx を
"0" に設定してください。拡張フレームフォーマットを使用するときには , IDEx を "1"
に設定してください。
この設定は , メッセージバッファ (x) が無効 ( メッセージバッファ有効レジスタ
(BVALR) の BVALx が "0") のと き に行 わ なけ れ ばな り ませ ん。バッ フ ァが 有 効
(BVALx=1) のときに設定すると , 不必要な受信メッセージが格納される可能性があり
ます。
■ ID の設定
メッセージバッファ (x) の ID を , ID レジスタ (IDRx) の ID28 ~ ID0 に設定してくださ
い。メッセージバッファ (x) の ID は , 標準フレームフォーマットでは ID17 ~ ID0 に設
定する必要はありません。
メッセージバッファ (x) の ID は , 送信の場合は送信メッセー
ジとして使用され , 受信の場合はアクセプタンスコードとして使用されます。
この設定は , メッセージバッファ (x) が無効 ( メッセージバッファ有効レジスタ
(BVALR) の BVALx が "0") のと き に行 わ なけ れ ばな り ませ ん。バッ フ ァが 有 効
(BVALx=1) のときに設定すると , 不必要な受信メッセージが格納される可能性があり
ます。
440
第 18 章 CAN コントローラ
■ アクセプタンスフィルタの設定
メッセージバッファ (x) のアクセプタンスフィルタは, アクセプタンスコードおよびア
クセプタンスマスク設定により設定されます。それはアクセプタンスメッセージバッ
ファ (x) が無効 ( メッセージバッファ許可レジスタ (BVALR) の BVALx が "0") のとき
に設定しなければなりません。バッファが有効 (BVALx=1) のときに設定すると , 不必
要な受信メッセージが格納される可能性があります。
各メッセージバッファ (x) で使用されたアクセプタンスマスクを , アクセプタンスマス
ク選択レジスタ (AMSR) により設定してください。アクセプタンスマスクレジスタ
(AMR0 および AMR1) も , 使用する場合には , 設定しなければなりません ( 設定の詳細
に関しては「18.3.17 アクセプタンスマスク選択レジスタ (AMSR)」および「18.3.18 ア
クセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1)」を参照 ) 。
アクセプタンスマスクは , 不必要な受信メッセージが格納されたときでも送信要求が
解除されないように , 設定しなければなりません。例えば , それは同一の ID のメッセー
ジのみを送信する場合であれば , フルビット比較に設定しなければなりません。
■ 低電力消費モードの設定
F2MC-16LX を低電力消費モード ( 停止 , 時計など ) に設定するには , 制御ステータスレ
ジスタ (CSR) のバス動作停止ビット (HALT) に "1" を書き込んでから , バス動作が停止
したか (HALT=1) をチェックしてください。
441
第 18 章 CAN コントローラ
18.7
メッセージバッファ (x) による送信方法
ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ
タンスフィルタの設定が完了した後で , BVALx を "1" に設定してメッセージバッ
ファ (x) を有効にしてください。
■ メッセージバッファ (x) による送信方法
● 送信データ長コードの設定
送信データ長コード ( バイト単位 ) を DLC レジスタ (DLCRx) の ID3 ~ ID0 に設定して
ください。
データフレーム送信 ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0" のとき ) に対して
は , 送信メッセージのデータ長を設定してください。
リモートフレーム送信 (TRTRx=1 のとき ) に対しては , 要求メッセージのデータ長 ( バ
イト単位 ) を設定してください。
0000 ~ 1000 (0 ~ 8 バイト ) 以外の設定は禁止されています。
● 送信データの設定 ( データフレームの送信に対してのみ )
データフレーム送信 ( 送信レジスタ (TRTRR) の TRTRx が "0" のとき ) に対しては , デー
タを送信バイト数分データレジスタ (DTRx) に設定してください。
送信データは , 送信要求レジスタ (TREQR) の TREQx ビットを "0" に設定して , 再書込
みしなければなりません。
メッセージバッファ有効レジスタ (BVALR) の BVALx ビットを "0" に設定する必要は
ありません。BVALx ビットを "0" に設定すると , リモートフレーム受信を喪失する可
能性があります。
● 送信 RTR レジスタの設定
データフレーム送信に対しては , 送信 RTR レジスタ (TRTRR) の TRTRx を "0" に設定
してください。
リモートフレーム送信に対しては , TRTRx を "1" に設定してください。
● 送信開始条件の設定 ( データフレームの送信のみ )
データフレーム送信に対する要求が設定された直後に送信を開始するためには , リ
モートフレーム受信待機レジスタ (RFWTR) の RFWTx を "0" に設定してください ( 送
信要求レジスタ (TREQR) の TREQx は "1" で , 送信 RTR レジスタ (TRTRR) の TRTRx
は "0" です ) 。
データフレーム送信に対する要求が設定され (TREQx=1 および TRTRx=0) た後にリ
モートフレームを受信する ( リモート要求受信レジスタ (RRTRR) の RRTRx が "1" にな
る ) まで待機した後に送信を開始するには , RFWTx を "1" に設定してください。
RFWTx が "1" に設定されると , リモートフレーム送信を行うことはできません。
442
第 18 章 CAN コントローラ
● 送信完了割込みの設定
送信完了割込みを発生する場合には , 送信完了割込み許可レジスタ (TIER) の TIEx を
"1" に設定してください。
送信完了割込みを発生させない場合には , TIEx を "0" に設定してください。
● 送信要求の設定
送信要求を行うには, 送信要求レジスタ (TREQR) のTREQxを"1"に設定してください。
● 送信要求の解除
メッセージバッファ (x) に対する送信の要求を解除するときには , 送信キャンセルレジ
スタ (TCANR) の TCANx に "1" を書き込んでください。
TREQx をチェックしてください。TREQx=0 のときには , 送信解除が終了したか , 送信
が完了しています。送信完了レジスタ (TCR) の TCx をチェックしてください。TCx=0
のときには送信解除は終了しています。TCx=1 ならば , 送信が完了しています。
● 送信完了の処理
送信が成功すると , 送信完了レジスタ (TCR) の TCx は "1" になります。
もし , 送信完了割込みが許可されていれば ( 送信完了割込み許可レジスタ (TIER) の
TIEx が "1") , 割込みが発生します。
送信完了をチェックした後に , TCx に "0" を書き込んでそれを "0" に設定してください。
これにより , 送信完了割込みが解除されます。
次の場合には , 待ち状態中の送信要求はメッセージの受信および格納により解除され
ます。
• データフレームの受信によるデータフレーム送信の要求
• データフレームの受信によるリモートフレーム送信の要求
• リモートフレームの受信によるリモートフレーム送信の要求
データフレーム送信に対する要求は , リモートフレームの受信および格納によっては
解除されません。ただし , ID および DLC は , 受信したリモートフレームの ID および
DLC により変更されます。送信されるべきデータフレームの ID および DLC は , 受信
したリモートフレームの値になることに注意してください。
443
第 18 章 CAN コントローラ
18.8
メッセージバッファ (x) による受信方法
ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ
タンスフィルタの設定の後で , 以下の設定をしてください。
■ メッセージバッファ (x) による受信方法
● 受信割込み設定
受信割込みを許可するには , 受信割込み許可レジスタ (RIER) の RIEx を "1" に設定して
ください。
受信割込みを禁止するには , RIEx を "0" に設定してください。
● 受信開始
設定の後で受信を開始するときには , メッセージバッファ有効レジスタ (BVALR) の
BVALx を "1" に設定して , メッセージバッファ (x) を有効にしてください。
● 受信完了の処理
アクセプタンスフィルタへの通過の後に受信が成功すると , 受信メッセージはメッ
セージバッファ (x) に格納されて , 受信完了レジスタ (RCR) の RCx が "1" になります。
データフレーム受信に関しては , リモート要求受信レジスタ (RRTRR) の RRTRx が "0"
になります。リモートフレーム受信に関しては , RRTRx が "1" になります。
受信割込みが許可されると ( 受信割込み許可レジスタ (RIER) の RIEx が "1") , 割込みが
発生します。
受信完了をチェックした後 (RCx=1) で , 受信メッセージを処理してください。
受信メッセージの処理を完了した後は , 受信オーバランレジスタ (ROVRR) の ROVRx
をチェックしてください。
ROVRx=0 なら処理された受信メッセージは有効です。CRx に "0" を書き込んで , それ
を "0" に設定し ( 受信完了割込みも解除されます ) 受信を終了します。
ROVRx=1 なら受信オーバランが生じ , 処理された受信メッセージに新たな受信メッ
セージが上書きされている可能性があります。この場合には , ROVRx ビットに "0" を
書き込んで , それを "0" に設定した後で受信メッセージを再処理しなければなりませ
ん。
図 18.8-1 に , 受信割込み処理の例を示します。
図 18.8-1 受信割込み処理の例
RCx=1で割込み
受信メッセージ読取り
A := ROVRx
ROVRx := 0
A = 0?
YES
RCx := 0
終了
444
NO
第 18 章 CAN コントローラ
18.9
マルチレベルメッセージバッファの構成の決定
受信が頻繁に行われる場合または不特定多数のメッセージを受信する場合 , すなわ
ちメッセージを処理する時間が不十分なときは , 1 つ以上のメッセージバッファを組
み合せてマルチレベルメッセージバッファとすることにより , CPU による受信メッ
セージの処理に対して余裕を与えてください。
■ マルチレベルメッセージバッファの構成の決定
マルチレベルメッセージバッファを用意するには , 組み合せられた各メッセージバッ
ファに同じアクセプタンスフィルタを設定しなければなりません。
アクセプタンスマスク選択レジスタ (AMSR) の各ビットが , 全ビット比較 ( (AMSx.1,
AMSx.0) = (0, 0) ) に設定されている場合には, メッセージバッファをマルチレベルメッ
セージ構成とすることはできません。これは , 全ビット比較では , 受信完了レジスタ
(RCR) のRCxビットの値のいかんにかかわらず受信メッセージが格納されることから,
1 つ以上のメッセージバッファに対して全ビット比較および同一アクセプタンスコー
ド (ID レジスタ (IDRx) ) が指定されたとしても , 受信メッセージが常に下位番号の ( 優
先度の低い ) メッセージバッファに格納されるからです。このため , 全ビット比較およ
び同一アクセプタンスコードを1つ以上のメッセージバッファに指定してはなりません。
図 18.9-1 は , マルチレベルメッセージバッファの動作例を示します。
445
第 18 章 CAN コントローラ
図 18.9-1 マルチレベルメッセージバッファの動作例
:初期化
AMS15, AMS14, AMS13
AMSR
10 10 10
...
AM28~AM18
AMR0選択
AMR0
ID28~ID18
0000 1111
1111 111
111
0000
RC15, RC14, RC13
IDE
...
メッセージバッファ 13
0101 0000 000
0
...
メッセージバッファ 14
0101 0000 000
0
...
メッセージバッファ 15
0101 0000 000
0
RCR
ROVRR
0
0
0
...
0
0
0
...
ROVR15, ROVR14, ROVR13
マスク
メッセージ受信中:受信メッセージはメッセージバッファ13に記憶されます。
IDE
ID28~ID18
メッセージ受信中
0101 1111 000
0
...
メッセージバッファ 13
0101 1111 000
0
...
RCR
0
0
1
...
メッセージバッファ 14
0101 0000 000
0
...
ROVRR
0
0
0
...
0
...
メッセージバッファ 15
0101 0000 000
メッセージ受信中:受信メッセージはメッセージバッファ14に記憶されます。
メッセージ受信中
0101 1111 001
0
...
メッセージバッファ 13
0101 1111 000
0
...
RCR
0
1
1
...
メッセージバッファ 14
0101 1111 001
0
...
ROVRR
0
0
0
...
0
...
メッセージバッファ 15
0101 0000 000
メッセージ受信中:受信メッセージはメッセージバッファ15に記憶されます。
メッセージ受信中
0101 1111 010
0
...
メッセージバッファ 13
0101 1111 000
0
...
RCR
1
1
1
...
メッセージバッファ 14
0101 1111 001
0
...
ROVRR
0
0
0
...
メッセージバッファ 15
0101 1111 010
0
...
メッセージ受信中:オーバランが発生した場合(ROVR=13),受信メッセージはメッセージバッファ13に
記憶されます。
メッセージ受信中
0101 1111 011
0
...
メッセージバッファ 13
0101 1111 011
0
...
メッセージバッファ 14
0101 1111 001
0
...
メッセージバッファ 15
0101 1111 010
0
...
RCR
1
1
1
...
ROVRR
0
0
1
...
<注意事項>
4 個のメッセージが , 同一のアクセプタンスフィルタ設定によりメッセージバッファ 13,
14 および 15 に受信されます。
446
第 18 章 CAN コントローラ
18.10
CAN ウェイクアップ機能
CAN の RX 端子と外部割込み端子を接続することによって , CAN の受信動作でウェ
イクアップすることができます。
■ CAN ウェイクアップ機能で使用する端子について
RX0 端子と INT0 端子を内部で接続することにより , ウェイクアップ機能を提供しま
す。この場合 , INT 端子の外部割込み機能は使用できなくなります。
RX1 端子と INT1 端子は端子を共有しているので , 端子の切換えを行うことなくウェイ
クアップ機能を使用することができます。
表 18.10-1 に CAN ウェイクアップ機能と RX 端子および INT 端子の関係を示します。
表 18.10-1 CAN ウェイクアップ機能と RX 端子および INT 端子
RX 端子
割込み機能
CAN0
RX0
INT0
CAN1
RX1
INT1
■ CAN ウェイクアップ機能について
CAN の受信データによりスリープモード , タイムベースタイマモード , 時計モード , ス
トップモードの各モードから復帰することができます。
<注意事項>
CAN0 側でウェイクアップ機能を使用する場合は , スリープモード , タイムベースタイマ
モード , 時計モード , ストップモードの各モードに移行する前に CAN ウェイクアップ制
御レジスタの設定と , 外部割込みの設定を行っておく必要があります。
CAN1 側でウェイクアップ機能を使用する場合も , スリープモード , タイムベースタイマ
モード , 時計モード , ストップモードの各モードに移行する前に外部割込みの設定は行っ
ておく必要がありますが , CAN ウェイクアップ制御レジスタの設定は必要ありません。
■ CAN ウェイクアップ機能 端子切換え回路のブロックダイヤグラム
図 18.10-1 CAN ウェイクアップ機能 端子切換え回路のブロックダイヤグラム
P55/RX
1
セレクタ
端子
P50/INT0/ADTG
INT0
端子
003EH
-
0
-
-
-
-
-
-
CWU
CAN WAKE UP 制御レジスタ (CWUCR)
447
第 18 章 CAN コントローラ
18.11
CAN コントローラの使用上の注意
CAN コントローラを使用する場合は , 以下の点に注意してください。
■ BVAL ビットによるメッセージバッファ禁止時の注意
メッセージバッファの内容の読出しや書込みの処理を行うために BVAL ビットを用い
てメッセージバッファを禁止する , CAN コントローラの送受信が正常に行われない可
能性があります。本注意事項は , この現象を回避する方法を説明しています。
● 発生条件
以下の 2 つの条件を同時に満たす場合に , CAN コントローラの送受信が正常に行われ
ない可能性があります。
• CAN コントローラが CAN 通信に参加している状態 , つまり HALT ビットの読出し
値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な
状態。
• BVAL ビットの設定でメッセージバッファを禁止して , メッセージバッファの内容
へ読出しや書込みの処理を行う。
● 処置
受信メッセージバッファの構成を変更する場合の操作
CAN 通信が確立されている間 (HALT ビットの読出し値が "0" で , CAN コントロー
ラが CAN バスの通信に参加しており送受信が可能な状態 ) で , ID レジスタや AMS
レジスタ , AMR0/AMR1 レジスタの設定変更により , メッセージバッファの構成の
変更を行う場合は , 以下のいずれかの手段を使用してください。
• HALT ビットの使用
HALT ビットに "1" を書込み , その後このビットが "1" になったことを確認してから
ID/AMS/AMR0/AMR1 レジスタの設定を変更してください。
• メッセージバッファ 0 を使用しない
メッセージバッファ 0 を送信にも受信にも使用しないでください。すなわち , メッ
セージバッファを禁止し (BVAL0=0), 受信割込みを禁止 (RIE0=0), 送信要求を行わな
い (TREQ0=0) でください。
受信メッセージの処理を行う場合の操作
次に来るメッセージによる上書き動作の防止のために , BVAL ビットによる受信禁
止を行わないでください。メッセージの上書き有無の確認は , ROVR ビットを用い
てください。詳細は , 「18.3.15 受信オーバランレジスタ (ROVRR)」および「18.8
メッセージバッファ (x) による受信方法」を参照してください。
送信要求の抑止をする場合の操作
送信要求を抑止ないし中止する場合は , BVAL ビットを使用せず , TCAN ビットを
用いてください。
448
第 18 章 CAN コントローラ
送信メッセージを構成する場合の操作
送信メッセージの構成を行うために , ID レジスタや IDE レジスタの設定を行う場合 ,
BVAL ビットを使用してメッセージバッファを禁止してください。この際 , 送信要求
ビットを読み出して "0" であること (TREQ=0) を確認するか , 送信完了ビットにより
送信が完了したこと (TC=1) を確認した後で , BVAL ビットによる禁止処理 (BVAL=0)
を行ってください。
449
第 18 章 CAN コントローラ
18.12
CAN プログラム例
CAN のプログラム例を示します。
■ CAN 送受信のプログラム例
● 処理仕様
CAN0 のバッファ 5 をデータフレーム送信 , バッファ 0 を受信に設定します。
• フレームフォーマットの設定を標準フレームフォーマットにします。
• ID の設定 : バッファ 0 ID=0, バッファ 5 ID=5
• ビットレートを 100Kbps ( 内部動作周波数 f=16MHz)
• アクセプタンスマスク ( フルビット比較 )
• バスにエントリした後 (HALT=0) , データ A0A0H を送信します。
• 送信完了割込みルーチン内で送信要求 (TREQx=1) を出し , 同じデータを送信します
(TREQx を送信開始に設定すると , 送信完了割込みフラグはクリアされます ) 。
• 受信割込みルーチンでは , 受信割込みフラグをクリアします。
【コーディング例】
:
:
:
// データフォーマット設定 (CAN 初期化 )
MOVW IDER0, #0000H
; フレームフォーマット設定 (0: 標準 , 1: 拡張 )
MOVW BTR0, #05CC7H
; ビットレート設定 100Kbps( 内部動作周波数 f=16MHz)
MOVW BVALR0, #21H
; メッセージバッファ 5, 0 有効
MOVW IDR51, #0A000H
; データフレーム 5ID 設定 (ID=0005)
MOVW IDR01, #2000H
; データフレーム 0ID 設定 (ID=0001)
MOVW AMSR00, #0000H
; アクセプタンスマスク選択レジスタ ( フルビット比較 )
// 送信設定
MOVW DLCR5, #02H
MOVW RFWTR0, #0000H
MOVW TRTRR0, #0000H
MOVW
TIER0, #0020H
// 受信設定
MOVW RIER0, #0001H
; 転送データ長設定 (00H 0 バイト長 08H 8 バイト長 )
; リモートフレーム受信待機レジスタ
; リモート送信要求 (0: データ送信 , 1: リモートフレーム
送信 )
; 送信割込み許可レジスタ
; 受信割込み許可レジスタ
// バス動作開始
MOV
CSR00, #80H
;
sthlt BBS CSR00:0,sthlt;
// 送信データセット
MOVW DTR50, #0A0A0H
;
MOVW TREQR0, #0020H
;
:
450
制御ステータスレジスタ (HALT=0)
HALT=0 待ち
メッセージバッファ 5 のデータレジスタに A0A0H を書く
送信要求レジスタ (1: 送信開始 0: 送信停止 )
第 18 章 CAN コントローラ
:
:
// 受信完了割込み
CAN0RX MOVW RCR0, #0000H
RETI
; 受信完了レジスタ
// 送信完了割込み
CAN0TX MOVW TREQR0, #0020H ; 送信要求レジスタ (1: 送信開始 , 0: 送信停止 )
RETI
:
:
:
451
第 18 章 CAN コントローラ
452
第 19 章
LCD コントローラ / ドライバ
この章では , LCD コントローラ / ドライバの機能と
動作について説明します。
19.1 LCD コントローラ / ドライバの概要
19.2 LCD コントローラ / ドライバの構成
19.3 LCD コントローラ / ドライバの端子
19.4 LCD コントローラ / ドライバのレジスタ
19.5 LCD コントローラ / ドライバの表示用 RAM
19.6 LCD コントローラ / ドライバの動作
453
第 19 章 LCD コントローラ / ドライバ
19.1
LCD コントローラ / ドライバの概要
LCD コントローラ / ドライバは , 16 × 8 ビットの表示データメモリを内蔵し , 4 本
のコモン出力と 24 本のセグメント出力によって LCD 表示の制御を行います。3 種
類のデューティ出力が選択でき , LCD パネル ( 液晶表示器 ) を直接駆動できます。
■ LCD コントローラ / ドライバの機能
LCD コントローラ / ドライバは , 表示データメモリ ( 表示用 RAM) の内容をセグメント
出力とコモン出力によって LCD パネル ( 液晶表示器 ) を直接表示する機能があります。
• LCD 駆動電圧分割抵抗を内蔵しています。また , 外部分割抵抗を接続できます。
• 最大で4本のコモン出力 (COM0~COM3) と24本のセグメント出力 (SEG0~SEG23)
が使用できます。
• 16 バイトの表示データメモリ ( 表示用 RAM) を内蔵しています。
• デューティは, 1/2, 1/3, 1/4を選択できます (バイアスの設定によって制限されます) 。
• LCD を直接駆動できます。
表 19.1-1 に , 使用できるバイアスデューティの組合せを示します。
表 19.1-1 バイアスデューティの組合せ表
バイアス
1/2 デューティ
1/3 デューティ
1/4 デューティ
1/2 バイアス
○
×
×
1/3 バイアス
×
○
○
○ : 推奨モード
× : 使用禁止
<注意事項>
SEG12 ~ SEG23 端子は , LCRH の設定で汎用ポートを選択した場合 , セグメント出力と
しては使用できません。
454
第 19 章 LCD コントローラ / ドライバ
LCD コントローラ / ドライバの構成
19.2
LCD コントローラ / ドライバは , 次の 8 つのブロックで構成されており , 機能的には
表示用 RAM の内容に従って , セグメント信号とコモン信号を発生するコントローラ
部と , LCD を駆動するためのドライバ部に分けられます。
• LCD 制御レジスタ (LCRL/LCRH)
• 表示用 RAM
• プリスケーラ
• タイミングコントローラ
• 交流化回路
• コモンドライバ
• セグメントドライバ
• 分割抵抗
■ LCD コントローラ / ドライバのブロックダイヤグラム
図 19.2-1 に LCD コントローラ / ドライバのブロックダイヤグラムを示します。
図 19.2-1 LCD コントローラ / ドライバのブロックダイヤグラム
V0 V1 V2 V3
LCD制御レジスタ下位
(LCRL)
分割抵抗
部
デ
ー
タ
バ
ス
内
4
タイムベース
タイマ出力
プリス
タイミング
ケーラ
コントローラ
交
流
化
コ
モ
ン
ド
ラ
イ
バ
COM0
COM1
COM2
COM3
セ
グ
メ
ン
ト
ド
ラ
イ
バ
SEG0
SEG1
SEG2
SEG3
SEG4
~
SEG18
SEG19
SEG20
SEG21
SEG22
SEG23
回
路
表示用RAM
24
16×8ビット
LCD制御レジスタ上位
(LCRH)
コントローラ
ドライバ
455
第 19 章 LCD コントローラ / ドライバ
● LCD 制御レジスタ下位 (LCRL)
LCD 駆動電源制御 , 表示 / 表示ブランキングの選択 , 表示モードの選択 , LCD クロック
の周期選択を行います。
● LCD 制御レジスタ上位 (LCRH)
セグメント出力と汎用ポートとの切り換え行うレジスタです。
● 表示用 RAM
セグメント出力信号発生用の 16 × 8 ビットの RAM です。この RAM の内容は , コモ
ン信号の選択タイミングに同期して自動的に読み出され , 表示用 RAM への書換えと同
時に出力されます。
● プリスケーラ
4 種類の周波数から選択された設定によって , フレーム周波数を発生します。
● タイミングコントローラ
フレーム周波数と LCRL レジスタの設定を基に , コモン信号 , セグメント信号の制御を
行います。
● 交流化回路
タイミングコントローラの信号から , LCD を駆動するための交流波形を生成します。
● コモンドライバ
LCD のコモン端子のドライバです。
● セグメントドライバ
LCD のセグメント端子のドライバです。
● 分割抵抗
LCD 駆動電圧を分割して発生させるための抵抗です。分割抵抗は , 外付けすることも
できます。
■ LCD コントローラ / ドライバの電源電圧
LCD ドライバの電源電圧は , 内蔵の分割抵抗を使用するか , または V0 ~ V3 端子に分
割抵抗を接続することにより設定します。
456
第 19 章 LCD コントローラ / ドライバ
19.2.1
LCD コントローラ / ドライバの内部分割抵抗
LCD ドライバの電源電圧は , V0 ~ V3 端子に接続された外部分割抵抗または内部分
割抵抗によってつくられます。
■ LCD コントローラ / ドライバの内部分割抵抗
LCD コントローラ / ドライバには , 内部分割抵抗が内蔵されています。また , LCD 駆
動用電源端子 (V0 ~ V3) に外部分割抵抗を接続することもできます。
内部分割抵抗と外部分割抵抗の選択は , LCD 制御レジスタの駆動電源制御ビット
(LCRL の VSEL) で行います。VSEL ビットを "1" にすることにより内部分割抵抗が通
電状態になるので , 外部分割抵抗を接続せずに , 内部分割抵抗を使用する場合は "1" に
設定してください。
LCD コントローラ許可は , LCD 動作停止 (LCRL の MS1, MS0=00B) のときに非アクティ
ブになります。
図 19.2-2 に内部分割抵抗の等価回路を示します。
図 19.2-2 内部分割抵抗の等価回路
Vcc
V3
V3
R
P-ch
Nch
V2
V2
P-ch
N-ch
V1
V1
P-ch
V0
R
R
N-ch
LCDコント
ローラ許可
V0
N-ch
VSEL
V 0~V 3:V0~V3端子の電圧値
457
第 19 章 LCD コントローラ / ドライバ
■ 内部分割抵抗の使用
内部分割抵抗を使用した場合でも , VCC 端子と V3 端子との間には , 外部に抵抗を接続
してください。図 19.2-3 に内部分割抵抗を使用する時の状態を示します。
1/2 バイアス設定を行う場合は , V2 端子と V1 端子を短絡してください。
図 19.2-3 内部分割抵抗を使用時の状態
Vcc
Vcc
VR
VR
V3
V3
V3
V2
R
V2
V3
R
V2
V2
短絡する
R
V1
V1
V1
R
V0
LCDコントローラ
許可
V0
V0
LCDコントローラ
許可
Q1
1/2バイアス
R
V1
R
V0
Q1
1/3バイアス
V0~V3:V0~V3端子の電圧値
■ 内部分割抵抗使用時の輝度調整
内部分割抵抗を使用して輝度があがらない場合には , 図 19.2-4 に示すように , 外部
(VCC ~ V3 端子間 ) に VR ( 可変抵抗 ) を接続して V3 の電圧を調節してください。
図 19.2-4 内部分割抵抗を使用時の輝度調節
Vcc
V3
V3
V2
V1
V0
LCDコントローラ
許可
R
V2
R
V1
R
V0
Q1
輝度調整をしたい場合
V0~V3:V0~V3端子の電圧値
458
VR
第 19 章 LCD コントローラ / ドライバ
19.2.2
LCD コントローラ / ドライバの外部分割抵抗
外部分割抵抗または内部分割抵抗を使用して , LCD 駆動電圧を発生します。
VCC 端子と V3 端子との間に可変抵抗を接続することで , 輝度を調節することができ
ます。
■ LCD コントローラ / ドライバの外部分割抵抗
LCD 駆動電源端子 (V0 ~ V3) に外部分割抵抗を接続して使用することができます。バ
イアス方式に対応した外部分割抵抗の接続および LCD 駆動電圧を図 19.2-5 , 表 19.2-1 に
示します。
図 19.2-5 外部分割抵抗の接続例
Vcc
Vcc
VR
V3
V3
R
R
V2
V2
VLCD
V1
V1
R
V0
VR
V0
R
VLCD
R
V0=Vss
V0=Vss
1/3バイアス
1/2バイアス
表 19.2-1 LCD 駆動電圧の設定
V3
V2
V1
V0
1/2 バイアス
VLCD
1/2VLCD
1/2VLCD
VSS
1/3 バイアス
VLCD
2/3VLCD
1/3VLCD
VSS
V0 ~ V3:V0 ~ V3 端子の電圧
VLCD:LCD の動作電圧
459
第 19 章 LCD コントローラ / ドライバ
■ 外部分割抵抗の使用
V0 端子は内部でトランジスタを通して VSS (GND) へ接続されているので , 外部分割抵
抗を使用する場合 , 分割抵抗の VSS 側を V0 端子のみに接続することにより , LCD コン
トローラ停止時に抵抗へ流れる電流を遮断することができます。
図 19.2-6 に外部分割抵抗使用時の状態を示します。
図 19.2-6 外部分割抵抗使用時の状態
Vcc
VR
V3
V3
V2
R
V2
V1
R
V1
V0
R
V0
RX
RX
RX
V0=Vss
LCDコントローラ許可
Q1
• 内部分割抵抗の影響を受けずに外部抵抗を接続するには , LCD 制御レジスタの駆動
電圧制御ビット (LCRL の VSEL) に "0" を書き込み , 内部分割抵抗全体を切り離す必
要があります。
• 内部分割抵抗を切り離した状態で, LCD制御レジスタの表示モード選択ビット (LCRL
の MS1, MS0) に "00B" 以外を書き込むと , LCDC 許可トランジスタ (Q1) が "ON" となっ
て外部分割抵抗に電流が流れます。
• 表示モード選択ビット (MS1, MS0) に "00B" を書き込むと , LCDC 許可トランジスタ
(Q1) が "OFF" となって外部分割抵抗に電流が流れなくなります。
<注意事項>
外部に接続する RX は , 使用する LCD により異なるので , 適切な値を選択してください。
460
第 19 章 LCD コントローラ / ドライバ
19.3
LCD コントローラ / ドライバの端子
LCD コントローラ / ドライバに関連する端子 , 端子のブロックダイヤグラムを示し
ます。
■ LCD コントローラ / ドライバに関連する端子
LCDコントローラ/ドライバに関連する端子は, 4本のコモン出力端子 (COM0~COM3),
24 本のセグメント出力端子 (SEG0 ~ SEG23) , 4 本の LCD 駆動用電源端子 (V0 ~ V3)
です。
● COM0 ~ COM3 端子
COM0 ~ COM3 端子は , LCD コモン出力端子です。
● SEG0 ~ SEG11, P36/SEG12, P37/SEG13, P40/SEG14 ~ P47/SEG21, P90/SEG22, P91/
SEG23 端子
SEG0 ~ SEG11 端子は , LCD セグメント出力端子です。
P36/SEG12 ~ P37/SEG13, P40/SEG14 ~ P47/SEG21, P90/SEG22 ~ P91/SEG23 端子は , 汎
用入出力ポート (P36, P37, P40 ~ P47, P90, P91) と LCD セグメント出力端子 (SEG12,
SEG13, SEG14 ~ SEG21, SEG22, SEG23) としての機能を兼用しています。切換えは ,
LCRH レジスタの設定によって行います。
● V0 ~ V3 端子
V0 ~ V3 端子は , LCD 駆動用電源端子 (V0 ~ V3) です。
461
第 19 章 LCD コントローラ / ドライバ
■ LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム
図 19.3-1 に LCD コントローラ / ドライバに関連する端子のブロックダイヤグラムを示
します。
図 19.3-1 LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム
セグメント出力兼用端子の場合
コモン・セグメント制御信号
P-ch
LCD駆動電圧(V3またはV2)
N-ch
LCRH 設定
リセット・動作停止信号
P-ch
LCD駆動電圧(V1またはV0)
N-ch
コモンセグメント制御信号
ストップモード(SPL=1)
またはLCD許可
PDR(ポートデータレジスタ)
内部データバス
PDRリード
PDRリード(ビット操作命令時)
出力ラッチ
P-ch
PDRライト
端子
DDR
DDRライト
(ポート方向レジスタ)
ストップモード(SPL=1)またはLCD許可
SP:低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビットです。
V0~V3:V0~V3端子の電圧値
462
N-ch
P36/SEG12~P37/SEG13
P40/SEG14~P47/SEG21
P90/SEG22~P91/SEG23
第 19 章 LCD コントローラ / ドライバ
19.4
LCD コントローラ / ドライバのレジスタ
LCD コントローラ / ドライバに関連するレジスタを示します。
■ LCD コントローラ / ドライバに関連するレジスタのビット構成
図 19.4-1 に LCD コントローラ/ ドライバに関連するレジスタのビット構成を示します。
図 19.4-1 LCD コントローラ / ドライバに関連するレジスタのビット構成
LCRL (LCD 制御レジスタ下位 )
アドレス
00006CH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CSS
R/W
LCEN
R/W
VSEL
R/W
BK
R/W
MS1
R/W
MS0
R/W
FP1
R/W
FP0
R/W
bit12
bit11
bit10
bit9
bit8
DTCH SEG3
R/W
R/W
SEG2
R/W
SEG1
R/W
SEG0
R/W
初期値
00010000B
LCRH (LCD 制御レジスタ上位 )
アドレス
00006DH
bit15
bit14
bit13
予約
R/W
SEG5
R/W
SEG4
R/W
初期値
00000000B
463
第 19 章 LCD コントローラ / ドライバ
LCD 制御レジスタ下位 (LCRL)
19.4.1
LCD 制御レジスタ下位 (LCRL) は , 駆動電源の制御 , 表示ブランキング , 表示モード
の選択を行うレジスタです。
■ LCD 制御レジスタ下位 (LCRL) のビット構成
図 19.4-2 に LCD 制御レジスタ下位 (LCRL) のビット構成を示します。
図 19.4-2 LCD 制御レジスタ下位 (LCRL) のビット構成
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00006C
CSS
LCEN
VSEL
BK
MS1
MS0
FP1
FP0
00010000
R/W
R/W
R/W
R/W
R/W
R/W
R/W
H
R/W
FP1 FP0
0
0
B
フレーム周期選択ビット
F C/(2
13×
N)
0
1
F C/(2
14×
N)
1
0
1
1
F C/(2
F C/(2
15×
N)
N)
16×
N:時分割数
F C:原発振
MS1 MS0
0
LCD動作停止
0
1
1/2デューティ出力モード(時分割数N=2)
1
0
1/3デューティ出力モード(時分割数N=3)
1
1
1/4デューティ出力モード(時分割数N=4)
表示ブランキング選択ビット
BK
0
表示
1
表示ブランキング
VSEL
外部分割抵抗を使用する
1
内部分割抵抗を使用する
タイムベースタイマモード時動作許可ビット
0
タイムベースタイマモード時動作を停止します
1
タイムベースタイマモード時動作を停止しません
CSS
464
LCD駆動電源制御ビット
0
LCEN
R/W :リード/ライト可能
:初期値
表示モード選択ビット
0
クロック選択ビット
0
メインクロックを選択します
1
サブクロックを選択します
第 19 章 LCD コントローラ / ドライバ
表 19.4-1 LCD 制御レジスタ下位 (LCRL) の各ビットの機能説明
ビット名
bit7
bit6
bit5
bit4
CSS:
クロック
選択ビット
LCEN:
タイムベース
タイマモード
時動作許可
ビット
VSEL:
LCD 駆動電源
制御ビット
BK:
表示ブランキ
ング選択
ビット
機 能
フレーム周期発生用クロックの選択ビットです。
このビットが "0" のときメインクロックが選択され , "1" のときサブクロックが選択さ
れます。
タイムベースタイマモード時の動作許可ビットです。
タイムベースタイマモード時 , このビットが "0" のとき停止し , "1" のとき動作します。
内部分割抵抗に通電するかどうかを選択するビットです。
このビットが "0" のとき内部分割抵抗は遮断され , "1" のとき導通します。外部分割抵
抗を接続する場合は , このビットを "0" にする必要があります。
LCD の表示 / 非表示を選択します。
表示部ブランキング ( 非表示 , BK=1) では , セグメント出力は非選択波形 ( 表示条件と
ならない波形 ) となります。
出力波形のデューティを 3 種類の中から選択します。
選択したデューティ出力モードに対応して , 使用するコモン端子が決まります。
これらのビットが "0" のときは , LCD コントローラ / ドライバは表示動作を停止しま
す。
( 注意事項 )
選択したフレーム周期発生用クロックがストップモードへの移行などで停止する場合
は , あらかじめ表示動作を停止してください。
bit3
bit2
MS1, MS0:
表示モード
選択ビット
bit1
bit0
LCD 表示のフレーム周期を 4 種類の中から選択します。
FP1, FP0:
( 注意事項 )
フレーム周期 使用する LCD モジュールに応じて最適フレーム周波数を計算して , レジスタの設定を
選択ビット
してください。
フレーム周波数は , 原発振の周波数の影響を受けます。
465
第 19 章 LCD コントローラ / ドライバ
19.4.2
LCD 制御レジスタ上位 (LCRH)
セグメント出力と汎用ポートとの切換えを行うレジスタです。
■ LCD 制御レジスタ上位 (LCRH) のビット構成
図 19.4-3 に LCD 制御のレジスタ上位 (LCRH) のビット構成を示します。
図 19.4-3 LCD 制御レジスタ上位 (LCRH) のビット構成
アドレス
006D
H
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
予約 SEG5 SEG4
R/W
R/W
R/W
DTCH SEG3 SEG2 SEG1 SEG0
R/W
R/W
R/W
R/W
初期値
00000000
B
R/W
DTCH
バイアス切換えビット
0
1/3バイアス
1
1/2バイアス
セグメント出力
SEG5
SEG4
SEG3
SEG2
SEG1
SEG0
0
0
0
0
0
0
SEG0~SEG11
P36,P37,P40~P47,P90,P91
0
0
0
0
0
1
SEG0~SEG15
P42~P47,P90,P91
0
0
0
0
1
1
SEG0~SEG19
P46,P47,P90,P91
0
0
0
1
1
1
SEG0~SEG20
P47,P90,P91
0
0
1
1
1
1
SEG0~SEG21
P90,P91
0
1
1
1
1
1
SEG0~SEG22
P91
1
1
1
1
1
1
SEG0~SEG23
セグメント出力
予約
必ず"0"を設定してください。
R/W :リード/ライト可能
:初期値
466
予約ビット
汎用ポート
なし
第 19 章 LCD コントローラ / ドライバ
表 19.4-2 LCD 制御レジスタ上位 (LCRH) の各ビットの機能説明
ビット名
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
機 能
予約 : 予約ビット 必ず "0" を設定してください。
SEG5:
セグメント
端子切換え
ビット
SEG4:
セグメント
端子切換え
ビット
P91/SEG23 端子をセグメント出力として使用するか , 汎用ポートとして使用するか
を切り換えます。
P90/SEG22 端子をセグメント出力として使用するか , 汎用ポートとして使用するか
を切り換えます。
DTCH:
バイアス
切換えビット
バイアス切換えビットです。
1/3 バイアスを使用する場合は , "0" を設定してください。
1/2 バイアスを使用する場合は , "1" を設定してください。
SEG3:
セグメント
端子切換え
ビット
SEG2:
セグメント
端子切換え
ビット
SEG1:
セグメント
端子切換え
ビット
SEG0:
セグメント
端子切換え
ビット
P47/SEG21 端子をセグメント出力として使用するか , 汎用ポートとして使用するか
を切り換えます。
P46/SEG20 端子をセグメント出力として使用するか , 汎用ポートとして使用するか
を切り換えます。
P42/SEG16 ~ P45/SEG19 端子をセグメント出力として使用するか , 汎用ポートとし
て使用するかを切り換えます。
P36/SEG12, P37/SEG13, P40/SEG14, P41/SEG15 端子をセグメント出力として使用す
るか , 汎用ポートとして使用するかを切り換えます。
467
第 19 章 LCD コントローラ / ドライバ
19.5
LCD コントローラ / ドライバの表示用 RAM
表示用 RAM は , セグメント出力信号発生用の 16 × 8 ビットの表示用データメモリ
です。
■ 表示用 RAM と出力端子
この RAM の内容は , コモン信号の選択タイミングに同期して自動的に読み出され , セ
グメント出力端子より出力されます。
各ビットの内容が "1" であれば選択電圧に変換 (LCD は表示 ) され , "0" であれば非選
択電圧に変換 (LCD は非表示 ) されて出力されます。
LCD 表示動作は CPU の動作とは無関係に行われるので , 表示用 RAM に対しては任意
のタイミングで読出し / 書込みができます。
SEG0 ~ SEG23 端子のうち , LCRH レジスタでセグメント出力に指定されなかった端子
は汎用ポートとして , また対応する RAM は通常の RAM として使用することができま
す ( 表 19.5-1 ) 。
表 19.5-2 にデューティとコモン出力および表示用 RAM の使用ビットの関係を示しま
す。
図 19.5-1 に表示用 RAM とコモン出力端子およびセグメント出力端子の対応を示しま
す。
図 19.5-1 表示用 RAM とコモン出力端子およびセグメント出力端子の対応
アドレス
3960H
3961H
3962H
3963H
3964H
3965H
3966H
3967H
3968H
3969H
396AH
396BH
468
bit3
bit7
bit11
bit15
bit3
bit7
bit11
bit15
bit3
bit7
bit11
bit15
bit3
bit7
bit11
bit15
bit3
bit7
bit11
bit15
bit3
bit7
bit11
bit15
COM3
bit2
bit6
bit10
bit14
bit2
bit6
bit10
bit14
bit2
bit6
bit10
bit14
bit2
bit6
bit10
bit14
bit2
bit6
bit10
bit14
bit2
bit6
bit10
bit14
COM2
bit1
bit5
bit9
bit13
bit1
bit5
bit9
bit13
bit1
bit5
bit9
bit13
bit1
bit5
bit9
bit13
bit1
bit5
bit9
bit13
bit1
bit5
bit9
bit13
COM1
bit0
bit4
bit8
bit12
bit0
bit4
bit8
bit12
bit0
bit4
bit8
bit12
bit0
bit4
bit8
bit12
bit0
bit4
bit8
bit12
bit0
bit4
bit8
bit12
COM0
SEG0
SEG1
SEG2
SEG3
SEG4
SEG5
SEG6
SEG7
SEG8
SEG9
SEG10
SEG11
SEG12
SEG13
SEG14
SEG15
SEG16
SEG17
SEG18
SEG19
SEG20
SEG21
SEG22
SEG23
第 19 章 LCD コントローラ / ドライバ
表 19.5-1 セグメント出力端子と表示用 RAM の関係および兼用端子
LCRH レジスタの
SEG5 ~ SEG0 ビット値
使用するセグメント
表示用として
使用される RAM 領域
00_0000B
SEG0 ~ SEG11 (12 本 )
3960H ~ 3965H
P36, P37, P40 ~ P47, P90, P91
00_0001B
SEG0 ~ SEG15 (16 本 )
3960H ~ 3967H
P42 ~ P47, P90, P91
00_0011B
SEG0 ~ SEG19 (20 本 )
3960H ~ 3969H
P46, P47, P90, P91
00_0111B
SEG0 ~ SEG20 (21 本 )
3960H ~ 396AH
P47, P90, P91
00_1111B
SEG0 ~ SEG21 (22 本 )
3960H ~ 396AH
P90, P91
01_1111B
SEG0 ~ SEG22 (23 本 )
3960H ~ 396BH
P91
11_1111B
SEG0 ~ SEG23 (24 本 )
3960H ~ 396BH
なし
汎用ポートに
使用できる端子
( 注意事項 ) 表示用として使用されない RAM 領域は , 通常の RAM として使用できます。バイトアクセスのみ可
能です。
表 19.5-2 デューティとコモン出力および表示用 RAM の使用ビットの関係
使用される各表示用データのビット
デューティ
設定値
使用されるコモン出力
1/2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
COM0, COM1 (2 本 )
-
-
○
○
-
-
○
○
1/3
COM0 ~ COM2 (3 本 )
-
○
○
○
-
○
○
○
1/4
COM0 ~ COM3 (4 本 )
○
○
○
○
○
○
○
○
○ : 使われる
- : 使われない
469
第 19 章 LCD コントローラ / ドライバ
19.6
LCD コントローラ / ドライバの動作
LCD コントローラ / ドライバは , LCD 表示に必要な制御および駆動を行います。
■ LCD コントローラ / ドライバの動作
LCD 表示をするためには , 図 19.6-1 に示す設定が必要です。
図 19.6-1 LCD コントローラ / ドライバの設定
LCRL
LCRH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CSS
◎
LCEN
◎
VSEL
◎
BK
◎
MS1
MS0
FP1
◎
FP0
◎
予約
0
SEG5
◎
SEG4
◎
SEG1
◎
SEG0
◎
表示用 RAM
3960H ~ 396BH
00 以外
DTCH SEG3
◎
◎
表示データ
SEG2
◎
◎:使用ビット
0 :"0" を設定
以上の設定が行われ , 選択したフレーム周期発生用クロックが発振していれば , 表示用
RAM の内容に従って , コモン / セグメント出力端子 (COM0 ~ COM3, SEG0 ~ SEG23)
に LCD パネルの駆動波形を出力します。
LCD 表示動作中であっても , フレーム周期発生用クロックは切り換えることができま
す。ただし , 切換え時に表示がちらつく可能性がありますので , ブランキング (LCRL の
BK=1) などで表示を一時的に停止させてから , クロックを切り換えるようにしてくだ
さい。
表示駆動出力はバイアスおよびデューティの設定によって選択される 2 フレーム交流
化波形です。
1/2 デューティの場合の COM2, COM3 端子の出力は , 非選択レベルの出力波形となり
ます。同様に , 1/3 デューティの場合の COM3 端子の出力は , 非選択レベルの出力波形
となります。
LCD 表示動作を停止 (LCRL の MS1, MS0=00B) した場合およびリセット中は , コモン /
セグメント出力端子は , 共に "L" レベルになります。
<注意事項>
LCD 表示動作中に , 選択したフレーム周期発生用クロックが停止すると , 交流化回路が停
止するため液晶素子に直接電流が印加されます。この場合 , あらかじめ LCD 表示動作を
停止させておく必要があります。原発振クロックが停止する条件は , スタンバイモードの
選択によります。
470
第 19 章 LCD コントローラ / ドライバ
■ LCD の駆動波形
LCDはその性質上, 直流駆動を行うと液晶表示素子に化学変化が生じ, 素子が劣化して
しまいます。このため , LCD コントローラ / ドライバは交流化回路を内蔵し , 2 フレー
ム交流化波形で , LCD を駆動します。出力波形には次の 3 種類があります。
• 1/2 バイアス , 1/2 デューティ出力波形
• 1/3 バイアス , 1/3 デューティ出力波形
• 1/3 バイアス , 1/4 デューティ出力波形
471
第 19 章 LCD コントローラ / ドライバ
19.6.1
LCD コントローラ / ドライバ動作時の出力波形
(1/2 デューティ )
表示駆動出力は , マルチプレックス駆動方式の 2 フレーム交流化波形です。
1/2 デューティのとき表示に使用されるのは , COM0, COM1 のみです。COM2,
COM3 は使用されません。
■ 1/2 バイアス・1/2 デューティ出力波形
表示は , コモン出力とセグメント出力の電位差が最大となる液晶素子が "ON" となりま
す。
表示用 RAM の内容が表 19.6-1 のときの出力波形を図 19.6-2 に示します。
表 19.6-1 表示用 RAM の内容例
表示用 RAM の内容
セグメント
COM3
COM2
COM1
COM0
SEGn
-
-
0
0
SEGn+1
-
-
0
1
-: 使用されない
472
第 19 章 LCD コントローラ / ドライバ
図 19.6-2 1/2 バイアス , 1/2 デューティ出力波形例
COM0
V3
V2=V1
V0=Vss
COM1
V3
V2=V1
V0=Vss
COM2
V3
V2=V1
V0=Vss
COM3
V3
V2=V1
V0=Vss
SEGn
V3
V2=V1
V0=Vss
SEGn+1
V3
V2=V1
V0=Vss
V3(ON)
V2
Vss
-V2
-V3(ON)
COM0とSEGn
の電位差
V3(ON)
V2
Vss
-V2
-V3(ON)
COM1とSEGn
の電位差
V3(ON)
V2
Vss
-V2
-V3(ON)
COM0とSEGn+1
の電位差
V3(ON)
V2
Vss
-V2
-V3(ON)
COM1とSEGn+1
の電位差
1フレーム
1周期
V0~V3:V0~V3端子の電圧値
473
第 19 章 LCD コントローラ / ドライバ
■ LCD パネルの結線例と表示データ例 (1/2 デューティ駆動方式 )
図 19.6-3 LCD パネルの表示データ例
*6
*0
SEGn+3
COM1
*1
SEGn+1
*5
*2
*3
*4
SEGn+2
COM0
アドレス COM3
n H
bit3
bit7
n+1H
例)5を表示する場合
*7
SEGn
COM2
COM1
bit2 bit1
*1
COM0
bit0
*0
SEGn
bit6 bit5*3 bit4*2 SEGn+1
bit3
bit2 bit1*5 bit0*4 SEGn+2
bit7
bit6 bit5*7 bit4*6 SEGn+3
3961H
COM2
COM1
COM0
―
1
1
SEG0
―
―
1
0
SEG1
―
―
1
0
SEG2
―
―
0
1
SEG3
0:OFF
1:ON
COM1
0
1
1
1
0
0
1
1
1
1
0
1
― ― 1
― ― 1
1 ― ― 1
1 ― ― 0
0
― ― 1
― ― 1
0 ― ― 1
1 ― ― 1
0
― ― 0
― ― 1
0 ― ― 1
0 ― ― 1
1
― ― 1
― ― 0
0 ― ― 1
1 ― ― 1
1
― ― 1
― ― 0
― ― 0
1 ― ― 1
1 ― ― 1
1
0 ― ― 0
1 ― ― 1
1
1 ― ― 1
1 ― ― 1
1
0 ― ― 1
1 ― ― 1
1
SEG0
SEG1
SEG2
SEG3
SEG4
SEG5
SEG6
SEG7
SEG8
SEG9
SEG10
SEG11
―
―
―
―
―
―
―
―
―
―
―
―
3965H
0
3964H
0 ― ― 0
0 ― ― 1
3963H
COM0
1
1
1
1
0
0
1
0
0
1
1
1
― ― 0
― ― 1
3962H
1
3961H
1 ― ― 0
1 ― ― 1
3960H
― ― 1
― ― 1
COM2
―
―
―
―
―
―
―
―
―
―
―
―
0~9までのデータ対応例
LCD
の表示 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
〔セグメントNo.〕 COM3
〔表示用RAM〕
〔アドレス〕
*0~*7:表示用RAMとの対応を示します。
bit2, 3, 6, 7は未使用
〔LCDパネル〕
アドレス COM3
3960H ―
― ― 1
― ― 1
― ― 1
― ― 1
― ― 1
474
1
1
1
1
1
1
1
1
1
1
第 19 章 LCD コントローラ / ドライバ
19.6.2
LCD コントローラ / ドライバ動作時の出力波形
(1/3 デューティ )
1/3 デューティのとき表示に使用されるのは , COM0, COM1 および COM2 です。
COM3 は使用されません。
■ 1/3 バイアス , 1/3 デューティ出力波形
表示は , コモン出力とセグメント出力の電位差が最大となる液晶素子が "ON" となりま
す。
表示用 RAM の内容が表 19.6-2 に示すときの出力波形を図 19.6-4 に示します。
表 19.6-2 表示用 RAM の内容例
表示用 RAM の内容
セグメント
COM3
COM2
COM1
COM0
SEGn
-
1
0
0
SEGn+1
-
1
0
1
-: 使用されない
475
第 19 章 LCD コントローラ / ドライバ
図 19.6-4 1/3 バイアス , 1/3 デューティ出力波形例
COM0
V3
V2
V1
V0=Vss
COM1
V3
V2
V1
V0=Vss
COM2
V3
V2
V1
V0=Vss
COM3
V3
V2
V1
V0=Vss
SEGn
V3
V2
V1
V0=Vss
V3
V2
V1
V0=Vss
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
SEGn+1
COM0とSEGnの
電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM1とSEGnの
電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM2とSEGnの
電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM0とSEGn+1
の電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM1とSEGn+1
の電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM2とSEGn+1
の電位差
1フレーム
V0~V3:V0~V3端子の電圧値
476
1周期
第 19 章 LCD コントローラ / ドライバ
■ LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 )
図 19.6-5 LCD パネルの表示データ例
例)5を表示する場合
*3
*0
*6
COM0
*4
*7
SEGn
COM1
*1
COM2
n+1H
COM1
*8
アドレス COM3
3960H ―
SEGn+2
SEGn+1
COM2
アドレス COM3
n H
bit3
*5
COM0
bit2*2 bit1*1 bit0*0 SEGn
bit7
bit6
*5
bit3
bit2
*8
bit5
*4
bit1
*7
3961H
bit4
*3
SEGn+1
bit0
*6
SEGn+2
3962H
3964H
1
0
―
SEG8
1
3963H
1
1
1
―
SEG7
0
1
―
SEG6
0
3962H
1
1
1
―
SEG5
0
0
―
SEG4
0
3961H
0
0
0
―
SEG3
1
1
―
1
SEG2
1
0
1
―
SEG1
1
1
―
0
〔アドレス〕
COM1
COM0
0
0
1
SEG0
―
1
1
1
SEG1
―
0
1
0
SEG2
―
0
0
1
SEG3
―
1
1
1
SEG4
―
0
1
0
SEG5
bit0から
の場合
bit4から
の場合
0:OFF
1:ON
SEG0
COM0
COM1
COM2
〔セグメントNo.〕
COM3
〔表示用RAM〕
〔LCDパネル〕
3960H
*0~*8:表示用RAMとの対応を示します。
bit3, bit7および*2は未使用
COM2
0~9までの表示データ例
LCD
の表示 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
― 1 0 1 ― 0 1 1
― 0 1 1 ― 1 1 1
― 1 1 1 ― 1 0 1
― 0 0 0 ― 0 0 0
― 0 0 0 ― 1 1 1
― 1 1 1 ― 0 0 0
― 1 1 1 ― 0 1 0
― 0 1 0 ― 1 0 1
― 1 0 1 ― 1 1 1
― 1 1 1 ― 0 0 0
― 0 0 0 ― 1 1 1
― 1 1 1 ― 1 1 1
― 0 1 0 ― 0 0 1
― 0 0 1 ― 1 1 1
― 1 1 1 ― 0 1 0
― 1 1 1 ― 0 0 1
― 0 0 1 ― 1 1 0
― 1 1 0 ― 1 1 1
― 1 1 1 ― 0 1 1
― 0 1 1 ― 1 1 0
― 1 1 0 ― 1 1 1
― 0 0 1 ― 0 0 1
― 0 0 1 ― 1 1 1
― 1 1 1 ― 0 0 1
― 1 1 1 ― 0 1 1
― 0 1 1 ― 1 1 1
― 1 1 1 ― 1 1 1
― 1 1 1 ― 0 0 1
― 0 0 1 ― 1 1 1
― 1 1 1 ― 1 1 1
:bit4から始まる場合のデータ
:bit0から始まる場合のデータ
1/3デューティは3バイトで2桁の表示を行う
ため,データの配列は第1バイトbit0からと
第2バイトbit4からの2とおりのデータがあります。
477
第 19 章 LCD コントローラ / ドライバ
19.6.3
LCD コントローラ / ドライバ動作時の出力波形
(1/4 デューティ )
1/4 デューティのときは表示用に , COM0, COM1, COM2 および COM3 のすべてが
使用されます。
■ 1/3 バイアス , 1/4 デューティ出力波形
表示は , コモン出力とセグメント出力の電位差が最大となる液晶素子が "ON" となりま
す。
表示用 RAM の内容が表 19.6-3 に示すときの出力波形を図 19.6-6 に示します。
表 19.6-3 表示用 RAM の内容例
表示用 RAM の内容
セグメント
COM3
478
COM2
COM1
COM0
SEGn
0
1
0
0
SEGn+1
0
1
0
1
第 19 章 LCD コントローラ / ドライバ
図 19.6-6 1/3 バイアス , 1/4 デューティ出力波形例
COM0
V3
V2
V1
V0=Vss
COM1
V3
V2
V1
V0=Vss
COM2
V3
V2
V1
V0=Vss
COM3
V3
V2
V1
V0=Vss
SEGn
V3
V2
V1
V0=Vss
V3
V2
V1
V0=Vss
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
SEGn+1
COM0とSEGnの
電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM1とSEGnの
電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM2とSEGnの
電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM3とSEGnの
電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM0とSEGn+1
の電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM1とSEGn+1
の電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM2とSEGn+1
の電位差
V3(ON)
V2
V1
Vss
-V1
-V2
-V3(ON)
COM3とSEGn+1
の電位差
1フレーム
V0~V3:V0~V3端子の電圧値
1周期
479
第 19 章 LCD コントローラ / ドライバ
■ LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 )
図 19.6-7 LCD パネルの表示データ例
例)5を表示する場合
*0
COM3
COM0
*4
*7
SEGn
*5
COM1
*1
*3
*2
*6
COM2
SEGn+1
アドレス COM3 COM2 COM1 COM0
n H bit3*3 bit2*2 bit1*1 bit0*0 SEGn
アドレス COM3
3960H
1
COM0
0
1
SEG0
0
1
1
SEG1
0:OFF
1:ON
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
3963H
0~9までの表示データ例
LCD
の表示 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
SEG7
0
0
1
1
SEG6
3962H
1
1
1
1
SEG5
0
1
1
0
SEG4
3961H
0
0
1
1
SEG3
0
0
0
1
SEG2
3960H
1
0
1
1
SEG1
1
1
〔アドレス〕
1
1
SEG0
COM0
COM1
COM2
COM3
〔セグメントNo.〕
〔表示用RAM〕
〔LCDパネル〕
480
COM1
1
0
bit7*7 bit6*6 bit5*5 bit4*4 SEGn+1
*0~*7:表示用RAMとの対応を示します。
COM2
第 20 章
低電圧 /CPU 動作
検出リセット回路
この章では , 低電圧 /CPU 動作検出リセット回路の
機能と動作について説明します。
20.1 低電圧 /CPU 動作検出リセット回路の概要
20.2 低電圧 /CPU 動作検出リセット回路の構成
20.3 低電圧 /CPU 動作検出リセット回路のレジスタ
20.4 低電圧 /CPU 動作検出リセット回路の動作
20.5 低電圧 /CPU 動作検出リセット回路の使用上の注意
20.6 低電圧 /CPU 動作検出リセット回路のプログラム例
481
第 20 章 低電圧 /CPU 動作 検出リセット回路
20.1
低電圧 /CPU 動作検出リセット回路の概要
低電圧検出リセット回路は , 電源電圧を監視し , 検出電圧値より電源電圧が下がった
ことを検出する機能をもっています。低電圧を検出したときに , 内部リセットを発
生します。
CPU 動作検出リセット回路は , 原発振をカウントクロックとする 20 ビットのカウン
タで , 起動後 , 一定時間内にクリアされない場合 , 内部リセットを発生します。
■ 低電圧検出リセット回路
表 20.1-1 に低電圧 /CPU 動作検出リセット回路の検出電圧を示します。
表 20.1-1 低電圧 /CPU 動作検出リセット回路の検出電圧
検出電圧
4.0V ± 0.3V
低電圧を検出すると , 低電圧検出フラグ (LVRC の LVRF) が "1" にセットされ , 内部リ
セットが出力されます。
STOP モード時も動作を続けるので , 低電圧を検出すると内部リセットを発生し , STOP
モードを解除します。
内部 RAM 書込み期間は , 書込み終了後に低電圧リセットが発生します。
482
第 20 章 低電圧 /CPU 動作 検出リセット回路
■ CPU 動作検出リセット回路
CPU 動作検出リセット回路は , プログラム暴走対策用のカウンタです。電源投入後自
動で起動します。起動後は , 一定時間内で定期的にクリアし続ける必要があります。プ
ログラムが無限ループに陥るなどして , 一定時間以上クリアされない場合 , 内部リセッ
トを発生します。CPU 動作検出回路で発生する内部リセットは , 5 マシンサイクル分の
幅です。
表 20.1-2 CPU 動作検出リセット回路のインターバル時間
インターバル時間
220/Fc ( 約 262ms)
( 注意事項 ) ( ) 内は , 発振クロック 4MHz 動作時のインターバル時間です。
CPU が動作を停止するモードでは , 本回路は停止します。
本回路のカウンタのクリア条件を以下に示します。
• LVRC レジスタの CL ビットへの "0" 書込み
• 内部リセット
• 発振クロック停止
• スリープモードへの遷移
• タイムベースタイマモード , 時計モードへの遷移
• パワーオンリセット
483
第 20 章 低電圧 /CPU 動作 検出リセット回路
20.2
低電圧 /CPU 動作検出リセット回路の構成
低電圧 /CPU 動作検出リセット回路は , 次の 3 つのブロックで構成されています。
• CPU 動作検出回路
• 電圧比較回路
• 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC)
■ 低電圧 /CPU 動作検出リセット回路のブロックダイヤグラム
図 20.2-1 に低電圧 /CPU 動作検出リセット回路のブロックダイヤグラムを示します。
図 20.2-1 低電圧 /CPU 動作検出リセット回路のブロックダイヤグラム
VCC
電圧比較回路
+
VSS
定電圧源
CPU動作検出回路
内部リセット
発振
クロック
F/F
カウンタ
オーバフロー
クリア
ノイズキャンセラ
予約 予約 予約 予約
CL
LVRF
予約 CPUF
低電圧/CPU動作検出リセット制御レジスタ(LVRC)
内部データバス
484
第 20 章 低電圧 /CPU 動作 検出リセット回路
● CPU 動作検出回路
プログラム暴走対策用のカウンタです。起動後は , 一定時間内で定期的にクリアし続け
る必要があります。
● 電圧比較回路
検出電圧と電源電圧を比較して , 低電圧を検出すると出力を "H" にします。
電源投入後は , 常に動作しています。
● 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC)
低電圧/CPU動作検出リセットフラグ, CPU動作検出機能のカウンタクリアを行います。
● 低電圧 /CPU 動作検出リセット回路のリセット要因
電源電圧が検出電圧よりも低下したときに , 内部リセットを発生します。
CPU 動作検出回路のカウンタが , 一定時間以内にクリアされなかった場合に , 内部リ
セットを発生します。
485
第 20 章 低電圧 /CPU 動作 検出リセット回路
20.3
低電圧 /CPU 動作検出リセット回路のレジスタ
低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) は , 低電圧 /CPU 動作検出リ
セットフラグ , CPU 動作検出回路のカウンタクリアなどを行うレジスタです。
■ 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) のビット構成
図 20.3-1 に低電圧/CPU動作検出リセット制御レジスタ (LVRC) のビット構成を示しま
す。
図 20.3-1 低電圧 /CPU 動作検出リセット制御レジスタ (LVRC) のビット構成
アドレス
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
00006E
予約 予約 予約 予約
CL LVRF
予約 CPUF
R/W
W
R/W
H
R/W
R/W
R/W
CPUF
0
1
LVRF
0
1
R/W
初期値
00111000
B
R/W
CPU動作検出フラグビット
書込み時
読出し時
このビットのクリア
オーバフローしていない
オーバフローした
変化なし,ほかへの影響なし
低電圧検出フラグビット
書込み時
読出し時
電圧低下を検出していない このビットのクリア
変化なし,ほかへの影響なし
電圧低下を検出した
CPU動作検出クリアビット
CL
0 カウンタをクリアします
1 変化なし,ほかへの影響なし
予約
予約ビット
このビットへは必ず"1"を書き込んでください
予約
予約ビット
このビットへは必ず"0"を書き込んでください
R/W :リード/ライト可能
W
:ライトオンリ
:初期値
486
第 20 章 低電圧 /CPU 動作 検出リセット回路
表 20.3-1 低電圧 /CPU 動作検出リセット制御レジスタの各ビットの機能説明
ビット名
機 能
bit7
bit6
予約:
予約ビット
このビットへは , 必ず "0" を書き込んでください。
bit5
bit4
予約:
予約ビット
このビットへは , 必ず "1" を書き込んでください。
bit3
CL:
CPU 動作検出
クリアビット
CPU 動作検出回路のカウンタをクリアするビットです。
このビットに "0" を書き込むと , CPU 動作検出回路のカウンタがクリアされます。
bit2
LVRF:
低電圧検出
フラグビット
電源電圧の低下が検出されると , このビットが "1" にセットされます。
書込み時は "0" でクリアされ , "1" ではこのビットに影響を与えず , 変化しません。
内部リセットでは初期化されず , 外部リセット入力で初期化されます。
bit1
予約:
予約ビット
このビットへは , 必ず "0" を書き込んでください。
bit0
CPUF:
CPU 動作検出
フラグビット
CPU 動作検出機能のカウンタがオーバフローすると , このビットが "1" にセットされ
ます。
書込み時は "0" でクリアされ , "1" ではこのビットに影響を与えず , 変化しません。
内部リセットでは初期化されず , 外部リセット入力で初期化されます。
487
第 20 章 低電圧 /CPU 動作 検出リセット回路
20.4
低電圧 /CPU 動作検出リセット回路の動作
電源電圧を監視し , 設定値よりも電源電圧が低下したときに内部リセットを発生し
ます。CPU 動作検出機能では , 一定間隔でカウンタがクリアされないと , 内部リ
セットを発生します。低電圧または CPU の暴走を検出して内部リセットが発生した
場合 , レジスタの内容は保証できません。低電圧リセット解除後は , 動作安定待ち時
間経過後 , リセットシーケンスを実行した後にリセットベクタで指定されたアドレ
スからプログラムが再スタートします。
■ 低電圧検出リセット回路の動作
低電圧検出リセット回路は , リセット解除後 , 動作安定待ち時間を取らずに低電圧検出
動作を開始します。
■ CPU 動作検出リセット回路の動作
CPU 動作検出リセット回路は , リセット解除後 , 動作安定待ち時間を取らずに , CPU 動
作検出動作を開始します。
<注意事項>
低電圧リセット回路は常に動作していますので , スリープ , ストップモード時においても ,
電流を消費します。
488
第 20 章 低電圧 /CPU 動作 検出リセット回路
20.5
低電圧 /CPU 動作検出リセット回路の使用上の注意
低電圧 /CPU 動作検出リセット回路を使用するにあたっての注意点を示します。
■ 低電圧検出リセット回路の使用上の注意
● プログラムでの動作停止不可
低電圧検出リセット回路は , 電源投入後 , 動作安定待ち時間を経過すると連続で動作し
ます。ソフトウェアでの動作停止はできません。
● STOP モード時の動作
低電圧検出リセットは , STOP モード時も動作を続けます。STOP モード中に低電圧を
検出するとリセットが発生し , STOP モードは解除されます。
■ CPU 動作検出リセット回路の使用上の注意
● プログラムでの動作停止不可
CPU 動作検出リセット回路は , 電源投入後 , 連続で動作します。ソフトウェアでの動作
停止はできません。
● CPU 動作検出機能のリセット発生抑止
CPU 動作検出機能は , 一定時間ごとにカウンタをクリアする必要があります。
LVRC レ
ジスタの CL ビットに "0" を書き込むことによってカウンタをクリアし , リセット発生
を抑止することができます。
● カウンタの停止とクリア
CPU 動作検出機能は , CPU が動作を停止するモードではカウンタをクリアし , 動作を
停止します。
● サブ発振モード時の動作
CPU 動作検出機能は , サブ発振モードでは動作を停止しますので , ウォッチドッグリ
セット機能を併用してください。
489
第 20 章 低電圧 /CPU 動作 検出リセット回路
20.6
低電圧 /CPU 動作検出リセット回路のプログラム例
低電圧 /CPU 動作検出リセット回路のプログラム例を示します。
■ 低電圧 /CPU 動作検出リセット回路のプログラム例
● 処理仕様
CPU 動作検出機能のカウンタをクリアします。
【コーディング例】
LVRC
; 低電圧 /CPU 動作検出リセット制御レジスタの
アドレス
;---------- メインプログラム ----------------------------------------------------CSEG
;【CODE SEGMENT】
:
MOV
LVRC, #00110101B
; CPU 動作検出機能のカウンタをクリア
:
END
490
EQU
006EH
第 21 章
ステッピングモータ
コントローラ
この章では , ステッピングモータコントローラの機
能と動作について説明します。
21.1 ステッピングモータコントローラの概要
21.2 ステッピングモータコントローラのレジスタ
21.3 ステッピングモータコントローラの動作
21.4 ステッピングモータコントローラの使用上の注意
491
第 21 章 ステッピングモータ コントローラ
21.1
ステッピングモータコントローラの概要
ステッピングモータコントローラは , 2 個の PWM パルス発生器 , 4 個のモータドライ
バおよびセレクタロジックから構成されています。
4 個のモータドライバは高出力駆動能力があり , 2 個のモータコイルの端部 4 個に直接
に接続することができます。PWM パルス発生器とセレクタロジックを組み合せて ,
モータの回転を制御するように設計されています。同期機構により , 2 個の PWM の同
期作動が確かなものとなります。
■ ステッピングモータコントローラのブロックダイヤグラム
図 21.1-1 に , ステッピングモータコントローラのブロックダイヤグラムを示します。
図 21.1-1 ステッピングモータコントローラのブロックダイヤグラム
マシンクロック
OE1
プリスケーラ
CK
PWM1Pn
PWM1パルス発生器
EN
P1
出力許可
セレクタ
PWM1Mn
PWM
P0
PWM1コンペアレジスタ
PWM1選択レジスタ
OE2
SC
CK
CE
EN
出力許可
PWM2Pn
PWM2パルス発生器
セレクタ
PWM2Mn
PWM
ロード
PWM2コンペアレジスタ
492
BS
PWM2選択レジスタ
n : 0~3
第 21 章 ステッピングモータ コントローラ
21.2
ステッピングモータコントローラのレジスタ
ステッピングモータコントローラのレジスタには , 次の 5 種類があります。
• PWM 制御レジスタ
• PWM1 コンペアレジスタ
• PWM2 コンペアレジスタ
• PWM1 選択レジスタ
• PWM2 選択レジスタ
■ ステッピングモータコントローラのレジスタ
図 21.2-1 にステッピングモータコントローラのレジスタを示します。
図 21.2-1 ステッピングモータコントローラのレジスタ
PWM 制御レジスタ (PWC0, PWC1, PWC2, PWC3)
アドレス
000080H, 000082H
000084H, 000086H
bit
7
OE2
R/W
0
6
OE1
R/W
0
5
P1
R/W
0
4
P0
R/W
0
3
CE
R/W
0
2
SC
R/W
0
1
-
0
TST
R/W
0
PWM1 コンペアレジスタ (PWC10, PWC11, PWC12, PWC13)
アドレス
003980H, 003988H
003990H, 003998H
bit
7
D7
R/W
X
6
D6
R/W
X
5
D5
R/W
X
4
D4
R/W
X
3
D3
R/W
X
2
D2
R/W
X
1
D1
R/W
X
0
D0
R/W
X
アドレス
003981H, 003989H
003991H, 003999H
bit
15
14
13
12
11
10
9
8
-
-
-
-
-
-
D9
R/W
X
D8
R/W
X
PWM2 コンペアレジスタ (PWC20, PWC21, PWC22, PWC23)
bit
アドレス
003982H, 00398AH
003992H, 00399AH
bit
アドレス
003983H, 00398BH
003993H, 00399BH
7
6
5
4
3
2
1
0
D7
R/W
X
D6
R/W
X
D5
R/W
X
D4
R/W
X
D3
R/W
X
D2
R/W
X
D1
R/W
X
D0
R/W
X
15
14
13
12
11
10
9
8
-
-
-
-
-
-
D9
R/W
X
D8
R/W
X
( 続く )
493
第 21 章 ステッピングモータ コントローラ
( 続き )
PWM1 選択レジスタ (PWS10, PWS11, PWS12, PWS13)
アドレス
003984H, 00398CH
003994H, 00399CH
bit
7
-
6
-
5
P2
R/W
0
4
P1
R/W
0
3
P0
R/W
0
2
M2
R/W
0
1
M1
R/W
0
0
M0
R/W
0
3
P0
R/W
0
2
M2
R/W
0
1
M1
R/W
0
0
M0
R/W
0
PWM2 選択レジスタ (PWS20, PWS21, PWS22, PWS23)
アドレス
003985H, 00398DH
003995H, 00399DH
494
bit
7
-
6
BS
R/W
0
5
P2
R/W
0
4
P1
R/W
0
第 21 章 ステッピングモータ コントローラ
21.2.1
PWM 制御レジスタ (PWC0 ~ PWC3)
PWM 制御レジスタは , ステッピングモータコントローラの起動・停止 , 割込みの制
御や外部出力端子などの設定を行います。
■ PWM 制御レジスタ (PWC0 ~ PWC3) のビット構成
図 21.2-2 に PWM 制御レジスタのビット構成を示します。
図 21.2-2 PWM 制御レジスタのビット構成
アドレス
000080H, 000082H
000084H, 000086H
bit
7
6
5
4
3
2
1
0
OE2
R/W
0
OE1
R/W
0
P1
R/W
0
P0
R/W
0
CE
R/W
0
SC
R/W
0
-
TST
R/W
0
【bit7】OE2:出力許可ビット
OE2 ビットが "1" にセットされた場合 , 外部端子は PWM2P0, PWM2P1, PWM2P2,
PWM2P3 および PWM2M0, PWM2M1, PWM2M2, PWM2M3 として割り当てられま
す。"0" の場合には , 汎用 I/O として使用することができます。
【bit6】OE1:出力許可ビット
OE1 ビットが "1" にセットされた場合 , 外部端子は PWM1P0, PWM1P1, PWM1P2,
PWM1P3 および PWM1M0, PWM1M1, PWM1M2, PWM1M3 として割り当てられま
す。"0" の場合には , 汎用 I/O として使用することができます。
【bit5, bit4】P1, P0:動作クロック選択ビット
P1, P0 ビットは , PWM パルス発生器に対するクロック入力信号を指定します。
クロック入力
P1
P0
0
0
マシンクロック
0
1
1/2 マシンクロック
1
0
1/4 マシンクロック
1
1
1/8 マシンクロック
【bit3】CE:カウント許可ビット
CE ビットは , PWM パルス発生器の動作を許可します。CE ビットが "1" にセットさ
れたとき , PWM パルス発生器はそれらの動作を開始します。PWM2 パルス発生器
は , PWM1 パルス発生器の 1 マシンクロックサイクル後にスタートすることに注意
してください。これは出力ドライバからのスイッチングノイズを減少させるのを助
けるものです。
CE ビットに "0" を設定すると , PWM パルス発生器は , 初期化されて停止します。
【bit2】SC:8/10 ビット切換えビット
SC ビットが "1" にセットされたとき , PWM は 10 ビットで動作します。"0" にセッ
トされたとき , PWM は 8 ビットで動作します。
【bit0】TST:テストビット
TST ビットはデバイステスト用のものです。ユーザアプリケーションにおいて , TST
ビットは常に "0" にセットしなければなりません。
495
第 21 章 ステッピングモータ コントローラ
21.2.2
PWM1, PWM2 コンペアレジスタ
(PWC10 ~ PWC13, PWC20 ~ PWC23)
PWM1, PWM2 の 2 つの 8 (10) ビットコンペアレジスタの内容は , PWM パルスの幅
を決定するものです。記憶された "00H" ("000H") の値は PWM のデューティが 0%
であることを表し , "FFH" ("3FFH") は 99.6% (99.9%) のデューティを表します。
■ PWM1, PWM2コンペアレジスタ(PWC10~PWC13, PWC20~PWC23)のビット構成
PWM1, PWM2 コンペアレジスタは , 任意の時点でアクセスすることができます。変更
された値は PWM2 選択レジスタの BS ビットが "1" にセットされた後 , 現在の PWM サ
イクルの終わりにパルス幅に反映されます。
本レジスタは , 必ずワードアクセスしてください。
図 21.2-3 に PWM1, PWM2 コンペアレジスタのビット構成を , 図 21.2-4 に PWM パルス
幅の設定を示します。
図 21.2-3 PWM1, PWM2 コンペアレジスタのビット構成
PWM1 コンペアレジスタ
アドレス
bit
003980H
003981H
003988H
003989H
003990H
003991H
003998H
003999H
7
D7
R/W
X
6
D6
R/W
X
5
D5
R/W
X
4
D4
R/W
X
3
D3
R/W
X
2
D2
R/W
X
bit
15
14
13
12
11
10
9
8
-
-
-
-
-
-
D9
R/W
X
D8
R/W
X
bit
7
D7
R/W
X
6
D6
R/W
X
5
D5
R/W
X
4
D4
R/W
X
3
D3
R/W
X
2
D2
R/W
X
1
D1
R/W
X
0
D0
R/W
X
bit
15
14
13
12
11
10
9
8
-
-
-
-
-
-
D9
R/W
X
D8
R/W
X
1
D1
R/W
X
0
D0
R/W
X
PWM2 コンペアレジスタ
アドレス
003982H
003983H
00398AH
00398BH
003992H
003993H
00399AH
00399BH
496
第 21 章 ステッピングモータ コントローラ
図 21.2-4 PWM パルス幅の設定
レジスタ値
1つのPWMサイクル
256(1024)入力サイクル
000H
80H(200H)
FFH(3FFH)
128(512)入力サイクル
255(1023)入力サイクル
497
第 21 章 ステッピングモータ コントローラ
21.2.3
PWM1, PWM2 選択レジスタ
(PWS10 ~ PWS13, PWS20 ~ PWS23)
PWM1, PWM2 選択レジスタは , ステッピングモータコントローラの外部端子の出力
が "L", "H", PWM パルス , ハイインピーダンスかを選択します。
■ PWM1, PWM2 選択レジスタ (PWS10 ~ PWS13, PWS20 ~ PWS23) のビット構成
図 21.2-5 に PWM1, PWM2 選択レジスタのビット構成を示します。
図 21.2-5 PWM1, PWM2 選択レジスタのビット構成
PWM1 選択レジスタ
bit
アドレス
003984H, 00398CH
003994H, 00399CH
7
-
6
-
5
P2
R/W
0
4
P1
R/W
0
3
P0
R/W
0
2
M2
R/W
0
1
M1
R/W
0
0
M0
R/W
0
PWM2 選択レジスタ
bit
アドレス
003985H, 00398DH
003995H, 00399DH
7
6
5
4
3
2
1
0
-
BS
R/W
0
P2
R/W
0
P1
R/W
0
P0
R/W
0
M2
R/W
0
M1
R/W
0
M0
R/W
0
【bit14】BS:書換えビット
BS ビットは , PWM 出力に対する設定を同期するために用意されています。BS ビッ
トがセットされるまで , 2 個のコンペアレジスタおよび 2 個の選択レジスタに対し
て行われた変更は , 出力信号には反映されません。
BS ビットが "1" にセットされたとき , PWM パルス発生器およびセレクタはレジス
タ内容を現在の PWM サイクルの終わりでロードします。BS ビットは , 次の PWM
サイクルの始めに自動的に "0" にリセットされます。もし , BS ビットがこの自動リ
セットと同時にソフトウェアにより "1" にセットされると , BS ビットは "1" にセッ
トされ , ( すなわち変更されないままであり ) 自動リセットは解除されます。
【bit13 ~ bit11】P2 ~ P0:出力選択ビット
P2 ~ P0 ビットは , PWM2P0 における出力信号を選択するものです。
【bit10 ~ bit8】M2 ~ M0:出力選択ビット
M2 ~ M0 ビットは , PWM2M0 における出力信号を選択するものです。
【bit5 ~ bit3】P2 ~ P0:出力選択ビット
P2 ~ P0 ビットは , PWM1P0 における出力信号を選択するものです。
498
第 21 章 ステッピングモータ コントローラ
【bit2 ~ bit0】M2 ~ M0:出力選択ビット
M2 ~ M0 ビットは , PWM1M0 における出力信号を選択するものです。次の表は ,
出力レベルと選択ビットの間の関係を示すものです。
P2
P1
P0
PWMnP0
M2
M1
M0
0
0
0
0
0
1
PWMnM0
0
"L"
0
0
0
"L"
1
"H"
0
0
1
"H"
1
X
PWM パルス
0
1
X
PWM パルス
X
X
ハイインピーダンス
1
X
X
ハイインピーダンス
499
第 21 章 ステッピングモータ コントローラ
ステッピングモータコントローラの動作
21.3
ステッピングモータコントローラの動作について説明します。
■ ステッピングモータコントローラの動作設定
ステッピングモータコントローラを動作させるには , 図 21.3-1 に示す設定が必要です。
図 21.3-1 ステッピングモータコントローラの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
bit8
PWCn
PWC1n
PWC2n
-
-
-
-
-
-
×
×
×
×
×
×
-
-
-
-
-
-
×
×
×
×
×
×
bit6
bit5
bit4
bit3
bit2
bit1
bit0
OE2 OE1
◎
◎
P1
◎
P0
◎
CE
1
SC
◎
×
TST
0
M1
◎
M0
◎
PWM1 の "H" 幅 ( コンペア値 ) を設定
PWM2 の "H" 幅 ( コンペア値 ) を設定
PWS1n
PWS2n
bit7
×
-
×
BS
◎
P2
◎
P1
◎
P0
◎
M2
◎
M1
◎
M0
◎
×
P2
◎
P1
◎
P0
◎
◎:使用ビット
1 :"1" を設定
n :チャネル No.
M2
◎
×:未使用ビット
0 :"0" を設定
● PWM パルス発生回路の動作
カウンタを起動 (PWCn の CE=1) すると , 選択したカウントクロックの立上りで , "00H"
からカウントアップを始めます。PWM 出力波形は , カウンタ値が PWM コンペアレジ
スタに設定した値と一致するまで "H" で , その後カウンタ値がオーバフロー (FFH →
00H) するまで "L" となります。
図 21.3-2 に PWM 発生回路が生成する PWM 波形を示します。
図 21.3-2 PWM1, PWM2 波形出力例
コンペアレジスタ値"00H"/"000H"のとき(デューティ比0%)
000H
カウンタ値00H
PWM波形
3FFH 000H
FFH 00H
H
L
コンペアレジスタ値"80H"/"200H"のとき(デューティ比50%)
200H
000H
3FFH 000H
カウンタ値00H
80H
FFH 00H
PWM波形
H
L
コンペアレジスタ値"FFH"/"3FFH"のとき(デューティ比99.6%/99.9%)
000H
3FFH 000H
カウンタ値00H
FFH 00H
H
PWM波形
L
1カウント分
500
第 21 章 ステッピングモータ コントローラ
● モータドライブ信号の選択
ステッピングモータコントローラ関連の各端子に出力するモータドライブ信号は ,
PWM 選択レジスタの設定により , 端子ごとに 4 種類の信号から選択することができま
す。
表 21.3-1 にモータドライブ信号の選択と PWM 選択レジスタ 1, PWM 選択レジスタ 2 の
設定について示します。
これらの設定を行った後 , PWM 選択レジスタ 2 の BS ビットに "1" を書き込むと , 現在
の PWM サイクルの終了時に設定値が有効となります。この BS ビットは , 次の PWM
サイクルの先頭で自動的にクリアされます。BS ビットへの書込みと PWM サイクルの
先頭で BS ビットクリアが同時のときは , BS ビットへの書込みが優先され , BS ビット
クリアは取り消されます。
表 21.3-1 モータドライブ信号の選択と PWM 選択レジスタ 1, PWM 選択レジスタ 2
の設定
P2, P1, P0 ビット
PWM1P 出力
PWM2P 出力
M2, M1, M0 ビット
PWM1M 出力
PWM2M 出力
000B
"L"
000B
"L"
001B
"H"
001B
"H"
01XB
PWM パルス
01XB
PWM パルス
1XXB
ハイインピーダンス
1XXB
ハイインピーダンス
501
第 21 章 ステッピングモータ コントローラ
21.4
ステッピングモータコントローラの使用上の注意
ステッピングモータコントローラを使用するにあたっての注意点を示します。
■ PWM 設定値変更時の注意
PWM コンペアレジスタ 1 (PWC1n) , PWM コンペアレジスタ 2 (PWC2n) , PWM 選択レ
ジスタ 1 (PWS1n) および PWM 選択レジスタ 2 (PWS2n) は常時アクセス可能ですが ,
PWM の "H" 幅設定を変更するまたは PWM 出力を変更するためには , これらのレジス
タに設定値を書き込んだ後 ( または同時に ) , PWM 選択レジスタ 2 の BS ビットに "1"
を書き込む必要があります。
BS ビットが "1" にセットされると , 現在の PWM サイクルの終了時に新しい設定値が
有効になり , BS ビットは自動的にクリアされます。
また , BS ビットへの "1" 書込みと , PWM サイクル終了時の BS ビットのリセットが同
時に行われた場合は , "1" 書込みが優先され , BS ビットのリセットはキャンセルされま
す。
■ PWM 出力許可時の注意
PWM 出力を許可する前には , 必ず使用する端子の DDR7/DDR8 レジスタへの書込みを
行ってください。MB90V420G 以外の品種では , DDR7/DDR8 レジスタへの書込みを行
わない場合 , 端子出力は "L" になります。
詳細は「8.9.2 ポート 7 の動作説明」および「8.10.2 ポート 8 の動作説明」を参照して
ください。
502
第 22 章
サウンドジェネレータ
この章では , サウンドジェネレータの機能と動作に
ついて説明します。
22.1 サウンドジェネレータの概要
22.2 サウンドジェネレータのレジスタ
503
第 22 章 サウンドジェネレータ
22.1
サウンドジェネレータの概要
サウンドジェネレータは , サウンド制御レジスタ , 周波数データレジスタ , 振幅デー
タレジスタ , デクリメントグレードレジスタ , トーンカウントレジスタ , PWM パル
ス発生器 , 周波数カウンタ , デクリメントカウンタおよびトーンパルスカウンタから
構成されています。
■ サウンドジェネレータのブロックダイヤグラム
図 22.1-1 に , サウンドジェネレータのブロックダイヤグラムを示します。
図 22.1-1 サウンドジェネレータのブロックダイヤグラム
クロック入力
プリスケーラ
S1
S0
8ビットPWM
CO
パルス発生器 EN
PWM
CI
リロード
振幅データ
レジスタ
トグル
フリップフロップ
Q
D
EN
周波数
カウンタ CO
EN
リロード
1/d
周波数データ
レジスタ
DEC
DEC
デクリメント CI
カウンタ CO
EN
SGA
OE1
デクリメント
グレードレジスタ
混合
TONE
OE1
SGO
OE2
OE2
トーンパルス CI
カウンタ CO
EN
トーンカウント
レジスタ
INTE
INT
ST
IRQ #34
504
第 22 章 サウンドジェネレータ
22.2
サウンドジェネレータのレジスタ
サウンドジェネレータのレジスタには , 次の種類があります。
• サウンド制御レジスタ (SGCR)
• 周波数データレジスタ (SGFR)
• 振幅データレジスタ (SGAR)
• デクリメントグレードレジスタ (SGDR)
• トーンカウントレジスタ (SGTR)
■ サウンドジェネレータのレジスタ
図 22.2-1 にサウンドジェネレータのレジスタを示します。
図 22.2-1 サウンドジェネレータのレジスタ
サウンド制御レジスタ上位
bit
15
アドレス : 00005BH
TST
読出し / 書込み→ (R/W)
(0)
初期値→
14
13
12
11
10
9
8
-
-
-
-
-
BUSY
(R)
(0)
DEC
(R/W)
(0)
SGCRH
サウンド制御レジスタ下位
bit
アドレス : 00005AH
7
6
5
4
3
2
1
0
S1
S0
TONE
OE2
OE1
INTE
INT
ST
(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
読出し / 書込み→ (R/W)
(0)
初期値→
SGCRL
振幅データレジスタ
bit
15
アドレス : 00005DH
D7
読出し / 書込み→ (R/W)
(0)
初期値→
D6
D5
D4
D3
D2
D1
D0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
SGAR
周波数データレジスタ
bit
7
アドレス : 00005CH
D7
読出し / 書込み→ (R/W)
(X)
初期値→
6
5
4
3
2
1
0
D6
(R/W)
(X)
D5
(R/W)
(X)
D4
(R/W)
(X)
D3
(R/W)
(X)
D2
(R/W)
(X)
D1
(R/W)
(X)
D0
(R/W)
(X)
14
13
12
11
10
9
8
SGFR
トーンカウントレジスタ
bit
15
アドレス : 00005FH
D7
読出し / 書込み→ (R/W)
(X)
初期値→
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
SGTR
デクリメントグレードレジスタ
bit
アドレス : 00005EH
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
読出し / 書込み→ (R/W)
(X)
初期値→
SGDR
505
第 22 章 サウンドジェネレータ
22.2.1
サウンド制御レジスタ (SGCRH, SGCRL)
サウンド制御レジスタは , サウンドジェネレータの割込み制御や外部出力端子など
の設定を行い , 動作状態の制御を行います。
■ サウンド制御レジスタ (SGCRH, SGCRL) のビット構成
図 22.2-2 にサウンド制御レジスタのビット構成を示します。
図 22.2-2 サウンド制御レジスタのビット構成
サウンド制御レジスタ上位
bit
アドレス : 00005BH
15
14
13
12
11
10
9
8
TST
-
-
-
-
-
BUSY
DEC
-
-
-
-
-
(R)
(0)
(R/W)
(0)
6
5
4
3
2
1
0
S0
TONE
OE2
OE1
INTE
INT
ST
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
読出し / 書込み→ (R/W)
(0)
初期値→
SGCRH
サウンド制御レジスタ下位
bit
アドレス : 00005AH
7
S1
読出し / 書込み→ (R/W)
(0)
初期値→
SGCRL
【bit15】TST:テストビット
このビットは , デバイステストのために用意されたものです。ユーザアプリケー
ションにおいては , "0" にセットしてください。
【bit9】BUSY:ビジービット
このビットは , サウンドジェネレータが動作しているかどうかを表示するもので
す。このビットは , ST ビットが "1" にセットされると同時に "1" にセットされます。
また , ST ビットが "0" にリセットされ , 1 つのトーンサイクルの終わりに動作が完
了したときに , "0" にリセットされます。このビットに書込み命令を実行しても効果
はありません。
【bit8】DEC:自動デクリメント許可ビット
DEC ビットは , デクリメントグレードレジスタと組み合わされたサウンドの自動デ
グラデーションのために用意されたものです。
このビットが "1" にセットされると , デクリメントグレードレジスタによって指定
されたトグルフリップフロップからのトーンパルスの個数が , デクリメントカウン
タのカウントごとに , 振幅データレジスタに記憶された値は 1 だけデクリメントさ
れます。
506
第 22 章 サウンドジェネレータ
【bit7, bit6】S1, S0:動作クロック選択ビット
このビット群はサウンドジェネレータに対するクロック入力信号を指定するもの
です。
クロック入力
S1
S0
0
0
マシンクロック
0
1
1/2 マシンクロック
1
0
1/4 マシンクロック
1
1
1/8 マシンクロック
【bit5】TONE:トーン出力ビット
このビットが "1" にセットされたとき , SGO 信号はトグルフリップフロップから単
純な矩形波形 (トーンパルス) になります。その他の場合には, トーンパルスとPWM
パルスとの混合 (AND ロジック ) 信号となります。
【bit4】OE2:サウンド出力許可ビット
このビットが "1" にセットされたとき , 外部端子は SGO 出力として割り当てられま
す。その他の場合には , 端子は汎用に使用することができます。
【bit3】OE1:振幅出力許可ビット
このビットが "1" にセットされたとき , 外部端子は SGA 出力として割り当てられま
す。その他の場合には , 端子は汎用に使用することができます。
SGA 信号は PWM パルス発生器からの PWM パルスで , サウンドの振幅を表してい
ます。
【bit2】INTE:割込み許可ビット
このビットは , サウンドジェネレータの割込み信号を許可するものです。このビッ
トが "1" で , INT ビットが "1" にセットされたとき , サウンドジェネレータは割込み
を信号で知らせます。
【bit1】INT:割込みビット
トーンカウントレジスタおよびデクリメントグレードレジスタにより指定された
トーンパルスの個数が , トーンパルスカウンタによってカウントされたときに , こ
のビットが "1" にセットされます。
このビットは "0" を書き込むことによって , "0" にリセットされます。"1" を書き込
んでも効果はなく , リードモディファイライト系命令では常に "1" を読み取る結果
となります。
【bit0】ST:開始ビット
このビットは , サウンドジェネレータの動作を開始させるためのものです。この
ビットが "1" の間 , サウンドジェネレータはその動作を行います。
このビットが "0" にリセットされたとき , サウンドジェネレータは現在のトーンサ
イクルの終わりにその動作を停止します。BUSY ビットは , サウンドジェネレータ
が完全に停止したかどうかを表示します。
507
第 22 章 サウンドジェネレータ
周波数データレジスタ (SGFR)
22.2.2
周波数データレジスタは , 周波数カウンタに対するリロード値を記憶します。記憶
された値はサウンド ( またはトグルフリップフロップからのトーン信号 ) の周波数を
表します。レジスタ値は , トグル信号の推移ごとにカウンタ内にリロードされます。
■ 周波数データレジスタ (SGFR)
図 22.2-3 に周波数データレジスタのビット構成を, 図 22.2-4 に, レジスタ値とトーン信
号との関係を示します。
図 22.2-3 周波数データレジスタのビット構成
周波数データレジスタ
bit
アドレス : 00005CH
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
読出し / 書込み→ (R/W)
(X)
初期値→
SGFR
図 22.2-4 レジスタ値とトーン信号との間の関係
1つのトーンサイクル
トーン信号
(レジスタ値+1)× (レジスタ値+1)×
1PMWサイクル
1PMWサイクル
<注意事項>
動作中にレジスタ値を変更すると , 変更のタイミングによっては 50% のデューティサイ
クルが変わることがあります。
508
第 22 章 サウンドジェネレータ
22.2.3
振幅データレジスタ (SGAR)
振幅データレジスタは , PWM パルス発生器に対するリロード値を記憶します。レジ
スタ値はサウンドの振幅を表し , トーンサイクルが終わるごとに PWM パルス発生器
にリロードされます。
■ 振幅データレジスタ (SGAR)
図 22.2-5 に振幅データレジスタのビット構成を示します。x
図 22.2-5 振幅データレジスタのビット構成
振幅データレジスタ
bit
15
14
13
12
11
10
9
8
アドレス : 00005DH
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
読出し / 書込み→ (R/W)
(0)
初期値→
SGAR
DEC ビットが "1" で , デクリメントカウンタがそのリロード値に達したとき , このレジ
スタ値は 1 だけデクリメントされますが , レジスタ値が "00" に達したときには , さら
なるデクリメントは行われません。ただし , サウンドジェネレータは , ST ビットがク
リアされるまでその動作を継続します。
図 22.2-6 は , レジスタ値と PWM パルスとの間の関係を示しています。
図 22.2-6 レジスタ値と PWM パルスとの間の関係
レジスタ値
1つのPMWサイクル
256入力クロックサイクル
00H
1つの入力クロックサイクル
80H
129入力クロックサイクル
FEH
256入力クロックサイクル
FFH
256入力クロックサイクル
レジスタ値が "FF" にセットされたときに , PWM 信号は常に "1" となります。
509
第 22 章 サウンドジェネレータ
22.2.4
デクリメントグレードレジスタ (SGDR)
デクリメントグレードレジスタは , デクリメントカウンタに対するリロード値を記
憶するものです。これらは振幅データレジスタ内の記憶値を , 自動的にデクリメン
トするために用意されたものです。
■ デクリメントグレードレジスタ (SGDR)
図 22.2-7 にデクリメントグレードレジスタのビット構成を示します。
図 22.2-7 デクリメントグレードレジスタのビット構成
デクリメントグレードレジスタ
bit
アドレス : 00005EH
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
読出し / 書込み→ (R/W)
(X)
初期値→
SGDR
DEC ビットが "1" で , デクリメントカウンタがトーンパルスをリロード値までカウン
トしたとき, 振幅データレジスタはトーンサイクルの終わりに1だけデクリメントされ
ます。
この動作により CPU の介在の回数を少なくして , サウンドの自動的なデグラデーショ
ンが実現されます。
このレジスタによって指定されたトーンパルスの数は , " レジスタ値+ 1" であること
に注意してください。デクリメントグレードレジスタが "00" にセットされたときに ,
デクリメント動作がトーンサイクルごとに行われます。
510
第 22 章 サウンドジェネレータ
22.2.5
トーンカウントレジスタ (SGTR)
トーンカウントレジスタは , トーンパルスカウンタに対するリロード値を記憶する
ものです。トーンパルスカウンタは , トーンパルスの数 ( またはデクリメント動作の
回数 ) を蓄積してそれがリロード値に達したときに , INT ビットをセットします。そ
れらは割込みの頻度を減少することを目的としています。
■ トーンカウントレジスタ (SGTR)
図 22.2-8 にトーンカウントレジスタのビット構成を示します。
図 22.2-8 トーンカウントレジスタのビット構成
トーンカウントレジスタ
bit
15
アドレス : 00005FH
D7
読出し / 書込み→ (R/W)
(X)
初期値→
14
13
12
11
10
9
8
D6
(R/W)
(X)
D5
(R/W)
(X)
D4
(R/W)
(X)
D3
(R/W)
(X)
D2
(R/W)
(X)
D1
(R/W)
(X)
D0
(R/W)
(X)
SGTR
トーンパルスカウンタのカウント入力は , デクリメントカウンタからのキャリアウト
信号に接続されています。
トーンカウントレジスタが "00" にセットされたときに , トー
ンパルスカウンタはデクリメントカウンタからのキャリアウトごとに INT ビットを
セットします。このため , 蓄積されたトーンパルスの数は ,
( ( デクリメントグレードレジスタ ) + 1) × ( ( トーンカウントレジスタ ) + 1)
となります。
すなわち , 両レジスタが "00" にセットされたときに , INT ビットはトーンサイクルごと
にセットされます。
511
第 22 章 サウンドジェネレータ
512
第 23 章
アドレス一致検出機能
この章では , アドレス一致検出機能の機能と動作に
ついて説明します。
23.1 アドレス一致検出機能の概要
23.2 アドレス一致検出機能の応用例
513
第 23 章 アドレス一致検出機能
23.1
アドレス一致検出機能の概要
アドレスの設定がアドレス検出レジスタと同じであれば , INT9 命令が実行されます。
INT9 割込みサービスルーチンを処理すると , アドレス一致検出機能を実現できます。
それぞれに比較許可ビットを持つ 2 つのアドレス検出レジスタがあり , アドレス検
出レジスタとプログラムカウンタが一致し , 比較許可ビットが "1" である場合に ,
CPU により INT9 命令の実行が強制されます。
■ アドレス一致検出機能のブロックダイヤグラム
図 23.1-1 に , アドレス一致検出機能のブロックダイヤグラムを示します。
図 23.1-1 アドレス一致検出機能のブロックダイヤグラム
比較
アドレス
ラッチ
アドレス検出レジスタ
F2MC-16LX
許可ビット
CPUコア
F2MC-16LXバス
■ アドレス一致検出機能のレジスタ構成
図 23.1-2 にアドレス一致検出機能のレジスタ構成を示します。
図 23.1-2 アドレス一致検出機能のレジスタ構成
byte
byte
PADR0 アドレス : 001FF2H/001FF1H/001FF0H
-
-
PADR1 アドレス : 001FF5H/001FF4H/001FF3H
-
-
bit
PACSR アドレス : 00009EH
514
byte
アクセス
初期値
XXXXXXXXB
R/W
R/W
XXXXXXXXB
7
6
5
4
3
2
1
0
-
-
予約
R/W
予約
R/W
AD0E
-
予約
R/W
AD1E
予約
R/W
R/W
R/W
初期値
--000000B
第 23 章 アドレス一致検出機能
■ プログラムアドレス検出レジスタ (PADR0/PADR1)
プログラムカウンタと比較するアドレスを保持するレジスタです。一致し , 対応する
PACSR の割込み許可ビットが "1" のとき , このモジュールから CPU に INT9 命令の実
行が要請されます。
対応する割込み許可ビットが "0" のときは , 何も行いません。
図 23.1-3 にプログラムアドレス検出レジスタの構成を示します。
図 23.1-3 プログラムアドレス検出レジスタの構成
byte
byte
PADR0 アドレス : 001FF2H/001FF1H/001FF0H
-
-
PADR1 アドレス : 001FF5H/001FF4H/001FF3H
-
-
byte
アクセス
初期値
XXXXXXXXB
R/W
XXXXXXXXB
R/W
PACSR との対応は以下のとおりとなります。
プログラムアドレス検出レジスタ
割込み許可ビット
PADR0
AD0E
PADR1
AD1E
■ プログラムアドレス検出コントロールレジスタ (PACSR)
プログラムアドレス検出コントロールレジスタ (PACSR) は , アドレス検出機能の動作
を制御し , その状態を示します。
図 23.1-4 にプログラムアドレス検出コントロールレジスタ (PACSR) のビット構成を示
します。
図 23.1-4 プログラムアドレス検出コントロールレジスタ (PACSR) のビット構成
bit
7
6
5
4
3
2
1
0
読出し / 書込み→
初期値→
(-)
(-)
(-)
(-)
予約
(R/W)
(0)
予約
(R/W)
(0)
AD1E
(R/W)
(0)
予約
(R/W)
(0)
AD0E
(R/W)
(0)
予約
(R/W)
(0)
PACSR アドレス : 00009EH
【bit7, bit6】 未定義ビット
読出し時は不定値 , 書込みは意味を持ちません。
【bit5, bit4】 予約ビット
必ず "0" を書き込んでください。
【bit3】AD1E(Compare Enable 1)
PADR1 の動作許可ビットです。
このビットが "1" のとき , PADR1 レジスタとアドレスを比較し , 一致した場合に
INT9 命令を CPU に送ります。
【bit2】 予約ビット
必ず "0" を書き込んでください。
515
第 23 章 アドレス一致検出機能
【bit1】AD0E (Compare Enable 0)
PADR0 の動作許可ビットです。
このビットが "1" のとき , PADR0 レジスタとプログラムカウンタを比較し , 一致し
た場合に INT9 命令を CPU に送ります。
【bit0】 予約ビット
必ず "0" を書き込んでください。
■ アドレス一致検出機能の動作
プログラムカウンタがプログラムアドレス検出レジスタと同じアドレスであれば ,
INT9 命令が実行されます。INT9 割込みサービスルーチンを処理すると , アドレス一致
検出機能を実現できます。
それぞれに比較許可ビットを持つ2本のアドレス検出レジスタがあり, アドレス検出レ
ジスタとプログラムカウンタが一致し , 比較許可ビットが "1" のときに , CPU により
INT9 命令の実行が強制されます。
<注意事項>
アドレス検出レジスタとプログラムカウンタが一致した場合 , 内部データバスの内容が
"01H" に換えられ , INT9 命令が実行されます。アドレス検出レジスタの内容の変更は , 比
較許可ビットを "0" にした状態で行ってください。比較許可ビットが "0" の状態で変更す
ると , エラーが発生する可能性があります。
アドレス一致検出機能は , 内蔵 ROM のアドレスに対してのみ有効です。外部メモリ領域
のアドレスを設定しても , INT9 命令は実行されません。
516
第 23 章 アドレス一致検出機能
23.2
アドレス一致検出機能の応用例
アドレス一致検出機能は , 外部に E2PROM を設け修正に関する情報とパッチプログ
ラムを格納することにより実現できます。CPU はアドレス一致検出機能に E2PROM
に格納された修正の情報を元に修正が必要なアドレスを設定しパッチプログラムを
RAM に転送します。アドレスの一致検出による INT9 命令の実行でパッチプログラ
ムに処理を移すことが可能です。
■ システム構成
図 23.2-1 にシステム構成例を示します。
図 23.2-1 システム構成例
E2PROM
MCU
F2MC-16LX
R
プルアップ抵抗
コネクタ(UART)
SIN
■ E2PROM メモリマップ
E2PROM メモリマップを表 23.2-1 に示します。
表 23.2-1 E2PROM メモリマップ
アドレス
意味
0000H
修正プログラム No.0 バイト数 ("0" のとき ROM 修正なし )
0001H
プログラムアドレス No.0 bit7 ~ bit0
0002H
プログラムアドレス No.0 bit15 ~ bit8
0003H
プログラムアドレス No.0 bit24 ~ bit16
0004H
修正プログラム No.1 バイト数 ("0" のとき ROM 修正なし )
0005H
プログラムアドレス No.1 bit7 ~ bit0
0006H
プログラムアドレス No.1 bit15 ~ bit8
0007H
プログラムアドレス No.1 bit24 ~ bit16
0010H ~
修正プログラム No.0/1 本体
<注意事項>
E2PROM の初期状態は , すべて "0" とします。
517
第 23 章 アドレス一致検出機能
23.2.1
プログラムミスの修正例
コネクタ (UART) を通して , MCU にパッチプログラムの本体 , およびプログラムア
ドレスを転送します。MCU は , その情報を E2PROM に書き込みます。
■ プログラムミスが発生した場合
図 23.2-2 に , プログラムミスが発生した場合のアドレス一致検出機能処理例を示しま
す。
図 23.2-2 アドレス一致検出機能処理例
MB90420G/425Gシリーズ
FFFFFFH
③
異常プログラム
ROM
外付けE2PROM
PC
①
発生アドレス
∥
アドレス一致
検出機能用
レジスタ設定
○プログラムバイト数
○割込み発生アドレス
○修正プログラム
UARTを使用してデータ転送
②
RAM
000000H
518
修正プログラム
第 23 章 アドレス一致検出機能
23.2.2
修正処理例
MCU は , リセット後 E2PROM の値を読み出し , パッチプログラムのバイト数が "0"
でないときは , パッチプログラムの本体を読み出して RAM に書き出します。プログ
ラムアドレスを PADR0/PADR1 のいずれかに設定して , 動作を許可します。RAM に
書かれたプログラムの先頭番地は , 各アドレス検出レジスタに定められた RAM に保
存します。
この場合 , INT9 サービスルーチンは , このユーザ定義の番地を探して修正プログラ
ムにジャンプします。
■ アドレス一致検出機能処理のフローチャート
図 23.2-3 にアドレス一致検出機能処理のフローチャートを示します。
図 23.2-3 アドレス一致検出機能処理フローチャート
リセット
INT 9
E2PROMの00Hを読み出す
YES
0000H(E2PROM)=0
NO
修正プログラムへ
JMP 000400H
アドレスを読み出す
0001H~0003H(E2PROM)
↓MOV
PADR0(MCU)
修正プログラム実行
000400H~000480H
修正プログラムを読み出す
0010H~0090H(E2PROM)
↓MOV
000400H~000480H(MCU)
修正プログラム終了
JMP FF0050H
コンペア処理をイネーブル
MOV PACSR,#02H
通常プログラム実行
PC=PADR0
NO
YES
INT 9
519
第 23 章 アドレス一致検出機能
図 23.2-4 アドレス一致検出機能処理図
FFFFFFH
ROM
FF0050H
FF0000H
E2PROM
FFFFH
MB90420G/425Gシリーズ
異常プログラム
FE0000H
0090H
修正プログラム
0010H
001100H
スタック領域
0003H
0002H
0001H
0000H
プログラムアドレス下位:00
プログラムアドレス中位:00
プログラムアドレス上位:00
修正プログラムバイト数:80
000480H
RAM
000400H
000100H
000000H
RAM領域
パッチプログラム
RAM/レジスタ領域
I/O領域
■ INT9 割込み
割込みルーチン中では , どのアドレス検出で割込みがかかったかをスタックに退避さ
れた PC の値より判断し , 対応するプログラムへ分岐します。割込みでスタックされた
情報は廃棄します。
520
第 24 章
ROM ミラー機能
選択モジュール
この章では , ROM ミラー機能選択モジュールにつ
いて説明します。
24.1 ROM ミラー機能選択モジュールの概要
24.2 ROM ミラー機能選択レジスタ (ROMM)
521
第 24 章 ROM ミラー機能 選択モジュール
24.1
ROM ミラー機能選択モジュールの概要
ROM ミラー機能選択モジュールは , ROM が配置されている FF バンクが 00 バンク
でみることを , レジスタの設定で選択することができます。
■ ROM ミラー機能選択モジュールのレジスタ
図 24.1-1 に ROM ミラー機能選択モジュールのレジスタのビット構成を示します。
図 24.1-1 ROM ミラー機能選択モジュールのレジスタのビット構成
bit
アドレス : 00006FH
読出し / 書込み→
初期値→
15
14
13
12
11
10
9
8
-
-
-
-
-
-
-
MI
(W)
(1)
ROMM
■ ROM ミラー機能選択モジュールのブロックダイヤグラム
図 24.1-2 に ROM ミラー機能選択モジュールのブロックダイヤグラムを示します。
図 24.1-2 ROM ミラー機能選択モジュールのブロックダイヤグラム
内部データバス
ROMミラー機能選択レジスタ
アドレス領域
FFバンク
ROM
522
00バンク
第 24 章 ROM ミラー機能 選択モジュール
24.2
ROM ミラー機能選択レジスタ (ROMM)
ROM ミラー機能選択レジスタ (ROMM) は , アドレス 004000H ~ 00FFFFH 番地の
使用中にアクセスしないでください。
■ ROM ミラー機能選択レジスタ (ROMM)
図 24.2-1 に ROM ミラー機能選択レジスタ (ROMM) のビット構成を示します。
図 24.2-1 ROM ミラー機能選択レジスタ (ROMM) のビット構成
bit
アドレス : 00006FH
読出し / 書込み→
初期値→
15
14
13
12
11
10
9
8
-
-
-
-
-
-
-
MI
(W)
(1)
ROMM
【bit8】MI
"1" を書込み時には , FF バンクの ROM のデータが 00 バンクでも読み出せるように
なります。"0" を書込み時には , 00 バンクではこの機能は働きません。
このビットは , 書込みのみ可能です。
<注意事項>
ROM ミラー機能を起動している場合 , 00 バンクの "004000H ~ 00FFFFH" 番地へ , "FF4000H ~
FFFFFFH" 番地がミラーされますので , "FF3FFFH" 番地以下の ROM アドレスでは , ROM
のミラー機能を設定しても 00 バンクにミラーされません。
■ メモリ空間
図 24.2-2 にメモリ空間を示します。
図 24.2-2 メモリ空間
ROM領域
ROM領域
ROM領域
RAM領域
RAM領域
I/O領域
I/O領域
内部領域
523
第 24 章 ROM ミラー機能 選択モジュール
524
第 25 章
1M ビットフラッシュメモリ
この章では , 1M ビットフラッシュメモリの機能や
動作について説明します。
フラッシュメモリへのデータ書込み / 消去の方法に
は , 下記の 3 とおりの方法があります。
• パラレルライタ
• シリアル専用ライタ
• プログラム実行による書込み / 消去
ここでは , " プログラム実行による書込み / 消去 "
について解説します。
25.1 1M ビットフラッシュメモリの概要
25.2 フラッシュメモリ全体のブロックダイヤグラムとセク
タ構成
25.3 書込み / 消去モード
25.4 フラッシュメモリコントロールステータスレジスタ
(FMCS)
25.5 フラッシュメモリ自動アルゴリズム起動方法
25.6 自動アルゴリズム実行状態の確認
25.7 フラッシュメモリ書込み / 消去の詳細説明
25.8 フラッシュメモリの使用上の注意
25.9 1M ビットフラッシュメモリのプログラム例
525
第 25 章 1M ビットフラッシュメモリ
25.1
1M ビットフラッシュメモリの概要
1M ビットフラッシュメモリは , CPU メモリマップ上の FE ~ FF バンクに配置され ,
フラッシュメモリインタフェース回路の機能により , マスク ROM と同様に CPU から
の読出しアクセスおよびプログラムアクセスが可能です。フラッシュメモリへの書込
み / 消去は , フラッシュメモリインタフェース回路を介して , CPU からの命令実行に
より行えます。このため , 内蔵 CPU の制御による実装状態での書換えが可能となり ,
プログラムおよびデータの改善が効率よく行えます。
なお , イネーブルセクタプロテクトなどのセレクタオペレーションは使用できません。
■ 1M ビットフラッシュメモリの特長
• 128K ワード× 8 ビット /64K ワード× 16 ビット (16K+8K+8K+32K+64K) セクタ構成
• 自動プログラムアルゴリズム (Embedded AlgorithmTM*:MBM29F400TA と同様 )
• 消去一時停止 / 消去再開機能の搭載
• データポーリング , トグルビットによる書込み / 消去完了検出
• CPU 割込みによる書込み / 消去の完了検出
• 書込み / 消去回数 ( 最小 ) 10,000 回
• JEDEC 標準型コマンドと互換
• セクタごとの消去が可能 ( セクタ組合せ自由 )
• セクタ保護機能
• 一時的セクタ保護解除機能
• オートマチックスリープモード機能
• フラッシュメモリインタフェース回路搭載により , フラッシュメモリの書込み / 消
去がライタによる外部端子からの制御およびCPUによる内部バスからの制御のいず
れかを選択可能
* : Embedded Algorithm は Advanced Micro Devices 社の商標です。
■ フラッシュメモリ書込み / 消去の方法
フラッシュメモリは , 書込み / 消去と読出しを同時に行うことはできません。すなわち ,
フラッシュメモリにデータ書込み/消去動作を行う際には, フラッシュメモリ上にあるプ
ログラムを RAM にいったんコピーし , RAM 実行することによってフラッシュメモリか
らプログラムアクセスをせず , 書込み動作だけを行うことが可能となります。
■ フラッシュメモリのレジスタ
図 25.1-1 にフラッシュメモリコントロールステータスレジスタ (FMCS) のビット構成
を示します。
図 25.1-1 フラッシュメモリコントロールステータスレジスタ (FMCS) のビット構成
bit
アドレス : 0000AEH
読出し / 書込み→
初期値→
526
7
6
5
4
3
2
1
0
INTE
RDYINT
WE
RDY
LPM1
(R/W)
(0)
(R/W)
(0)
(R)
(1)
予約
(W)
(0)
LPM0
(R/W)
(0)
予約
(R/W)
(0)
(W)
(0)
(W)
(0)
第 25 章 1M ビットフラッシュメモリ
25.2
フラッシュメモリ全体のブロックダイヤグラムとセク
タ構成
フラッシュメモリインタフェース回路付きのフラッシュメモリの全体ブロックダイ
ヤグラム , フラッシュメモリのセクタ構成について説明します。
■ フラッシュメモリ全体のブロックダイヤグラム
図 25.2-1 にフラッシュメモリ全体のブロックダイヤグラムを示します。
図 25.2-1 フラッシュメモリ全体のブロックダイヤグラム
フラッシュメモリ
インタフェース回路
ポート0
ポート3
ポート4
COM2~COM3
SEG0~SEG11
BYTE
F2MC-16LX
バス
INT
1Mビットフラッシュメモリ
BYTE
CE
CE
OE
OE
WE
WE
AQ0~AQ18
AQ0~AQ17
AQ-1
DQ0~AQ15
DQ0~DQ15
RY/BY
RY/BY
RESET
ライトイネーブル
割込み信号(対CPU)
外部リセット信号
RY/BY ライト
イネーブル信号
527
第 25 章 1M ビットフラッシュメモリ
■ 1M ビットフラッシュメモリのセクタ構成
図 25.2-2 に , 1M ビットフラッシュメモリのセクタ構成を示します。図中アドレスには ,
各セクタの上位アドレスと下位アドレスを示します。
CPU からアクセスする場合 , FE バンクレジスタに SA0, FF バンクレジスタに SA1 ~
SA6 が配置されています。
図 25.2-2 1M ビットフラッシュメモリのセクタ構成
フラッシュメモリ
CPUアドレス
ライタアドレス*
FFFFFFH
7FFFFH
FFC000H
FFBFFFH
7C000H
7BFFFH
SA4(16Kバイト)
SA3( 8Kバイト)
FFA000H
7A000H
FF9FFFH
79FFFH
FF8000H
FF7FFFH
78000H
77FFFH
FF0000H
FEFFFFH
70000H
6FFFFH
FE0000H
60000H
SA2( 8Kバイト)
SA1(32Kバイト)
SA0(64Kバイト)
*:ライタアドレスとは,フラッシュメモリにパラレルライタで
データ書込みを行う際,CPUアドレスに対して相当するアドレ
スです。汎用ライタを使用して書込み/消去を行う際は,この
アドレスで書込み/消去を実行します。
528
第 25 章 1M ビットフラッシュメモリ
25.3
書込み / 消去モード
フラッシュメモリのアクセスは , フラッシュメモリモードとその他モードの 2 つの
異なる方法で行われます。フラッシュメモリモードでは , 外部端子から直接書込み /
消去ができ , その他モードでは , 内部バスを介して CPU から書込み / 消去ができま
す。モードの選択は , モード外部端子で行います。
■ フラッシュメモリモード
リセット信号が発生中にモード端子を "111" にセットすると , CPU が停止します。フ
ラッシュメモリインタフェース回路は直接ポート0, 2, 3, 4に接続されているので, 外部
端子から直接制御することができます。このモードでは , MCU が外部端子中の標準フ
ラッシュメモリと同様の動作を行い , フラッシュメモリプログラマを使用して書込み /
消去ができます。
フラッシュメモリモードでは , フラッシュメモリ自動アルゴリズムでサポートされる
すべての動作を使用できます。
■ その他モード
フラッシュメモリは , CPU メモリ空間の FE, FF バンクに配置されており , 通常のマス
ク ROM と同様にフラッシュメモリインタフェース回路を介して , CPU から読出しアク
セスおよびプログラムアクセスすることができます。
フラッシュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して ,
CPU からの命令で実行されます。このため , このモードでは MCU が対象ボードにはん
だ付けされていても再書込みが可能です。
これらのモードでは , セクタプロテクト動作を実行することはできません。
529
第 25 章 1M ビットフラッシュメモリ
■ フラッシュメモリの制御信号
表 25.3-1 に , フラッシュメモリモードでのフラッシュメモリ制御信号を示します。
フラッシュメモリ制御信号と MBM29F400TA の外部端子にはほぼ 1 対 1 の対応関係が
存在します。セクタプロテクト動作で必要となる VID (12V) 端子は , MBM29F400TA に
おける A9, RESET, OE の代わりに , MD0, MD1, MD2 となります。
MB90F428G/MB90F423Gのメモリ容量はMBM29F400TAの4分の1ですので, MBM29F400TA
のアドレス信号 A17 と A16 に対応する AQ18 と AQ17 端子は冗長となります。これら
は常に "1" にセットしてください。
フラッシュメモリモードでは , 外部データバス幅は 8 ビットに制限されており , 1 バイ
トのアクセスしか許可されません。DQ15 ~ DQ8 はサポートされていません。BYTE
端子は常に "0" にセットしてください。
表 25.3-1 フラッシュ制御信号
MB90F428G/MB90F423G
通常機能
フラッシュメモリ
モード
MBM29F400TA
端子番号
1~8
COM2, COM3,
SEG0 ~ SEG5
AQ0 ~ AQ7
A-1, A0 ~ A6
9
SEG6
AQ16
A15
10
SEG7
CE
CE
12
SEG8
OE
OE
13
SEG9
WE
WE
14, 15
SEG10, SEG11
AQ17, AQ18
A16, A17
16
P36
BYTE
BYTE
17
P37
RY/BY
RY/BY
18 ~ 22
P40 ~ P44
AQ8 ~ AQ12
A7 ~ A11
24 ~ 26
P45 ~ P47
AQ13 ~ AQ15
A12 ~ A14
49
MD0
MD0
A9 (VID)
50
MD1
MD1
RESET (VID)
51
MD2
MD2
OE (VID)
85 ~ 92
P00 ~ P07
DQ0 ~ DQ7
DQ0 ~ DQ7
77
RST
RESET
RESET
未サポート
530
DQ8 ~ DQ15
第 25 章 1M ビットフラッシュメモリ
25.4
フラッシュメモリコントロールステータスレジスタ
(FMCS)
フラッシュメモリコントロールステータスレジスタ (FMCS) は , フラッシュメモリ
インタフェース回路にあるレジスタで , フラッシュメモリの書込み / 消去の際に使用
します。
■ フラッシュメモリコントロールステータスレジスタ (FMCS)
図 25.4-1 にフラッシュメモリコントロールステータスレジスタ (FMCS) のビット構成
を示します。
図 25.4-1 フラッシュメモリコントロールステータスレジスタ (FMCS) のビット構成
bit
アドレス : 0000AEH
読出し / 書込み→
初期値→
7
6
5
4
3
2
1
0
INTE
(R/W)
(0)
RDYINT
WE
(R/W)
(0)
RDY
(R)
(1)
予約
(W)
(0)
LPM1
(W)
(0)
予約
(W)
(0)
LPM0
(R/W)
(0)
(R/W)
(0)
【bit7】INTE (INTerrupt Enable)
フラッシュメモリの書込み / 消去の終了で , CPU に割込みを発生させるビットです。
INTE ビットが "1" でかつ RDYINT ビットが "1" のときに , CPU へ割込みが発生し
ます。INTE ビットが "0" であれば , 割込みは発生しません。
• 0: 書込み / 消去終了での割込み禁止
• 1: 書込み / 消去終了での割込み許可
【bit6】RDYINT (ReaDY INTerrupt)
フラッシュメモリの動作状態を表すビットです。
フラッシュメモリの書込み / 消去が終わって "1" となります。フラッシュメモリ書
込み / 消去後 , このビットが "0" の間は , フラッシュメモリへの書込み / 消去はでき
ません。書込み / 消去が終了して "1" になった後は , フラッシュメモリへの書込み /
消去が可能になります。
"0" 書込みによって "0" にクリアされ , "1" の書込みは無視されます。フラッシュメ
モリ自動アルゴリズム (「25.5 フラッシュメモリ自動アルゴリズム起動方法」を参
照 ) 終了タイミングで , "1" にセットされます。リードモディファイライト (RMW)
命令使用時は , 必ず "1" が読めます。
• 0: 書込み / 消去動作実行中
• 1: 書込み / 消去動作終了 ( 割込み要求発生 )
【bit5】WE (Write Enable)
フラッシュメモリ領域への書込みイネーブルビットです。
このビットが "1" のとき , FE ~ FF バンクへのコマンドシーケンス (「25.5 フラッ
シュメモリ自動アルゴリズム起動方法」を参照 ) 発行後の書込みは , フラッシュメ
モリ領域への書込みになります。本ビットが "0" のとき , 書込み / 消去の信号は発生
されません。このビットは , フラッシュメモリの書込み / 消去のコマンドを起動す
る際に使用します。
書込み / 消去をしないときは , 誤ってフラッシュメモリにデータを書き込まないよ
531
第 25 章 1M ビットフラッシュメモリ
う , 常に "0" に設定することを推奨します。
• 0: フラッシュメモリ書込み / 消去禁止
• 1: フラッシュメモリ書込み / 消去許可
【bit4】RDY (ReadDY)
フラッシュメモリの書込み / 消去許可ビットです。
このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。なお ,
この状態でも読出し / リセットコマンド , セクタ消去一時停止は受け付けられます。
• 0: 書込み / 消去動作実行中
• 1: 書込み / 消去動作終了 ( 次データ書込み / 消去許可 )
【bit3, bit1】予約ビット
試験用予約ビットです。通常使用時は , 必ず "0" に設定してください。
【bit2, bit0】LPM1, LPM0 (Low Power Mode)
フラッシュメモリアクセス時のフラッシュメモリ本体の消費電流を制御します。た
だし , CPU からフラッシュメモリへのアクセスタイムが設定により大きく異なりま
すので , CPU の動作周波数により設定値を選択してください。
• 01: 低電力消費モード ( 内部動作周波数 4MHz 以下で動作 )
• 10: 低電力消費モード ( 内部動作周波数 8MHz 以下で動作 )
• 11: 低電力消費モード ( 内部動作周波数 10MHz 以下で動作 )
• 00: 通常消費電力モード ( 内部動作周波数 16MHz 以下で動作 )
<注意事項>
RDYINT ビットと RDY ビットは同時には変化しません。どちらか片方のビットで判定す
るよう , プログラムを作成してください。
■ 自動アルゴリズム終了タイミング
図 25.4-2 に自動アルゴリズム終了タイミングと RDYINT および RDY ビットの関係を
示します。
図 25.4-2 自動アルゴリズム終了タイミングと RDYINT および RDY ビットの関係
自動アルゴリズム
終了タイミング
RDYINTビット
RDYビット
1マシンサイクル
532
第 25 章 1M ビットフラッシュメモリ
フラッシュメモリ自動アルゴリズム起動方法
25.5
フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット ,
書込み , セクタ消去 , チップ消去の 4 種類があります。セクタ消去については , 一時
停止と再開の制御が可能です。
■ コマンドシーケンス表
表 25.5-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま
す。コマンドレジスタに書き込むデータはすべてバイトですが , ワードアクセスで書き
込むようにしてください。このときの上位バイト分のデータは無視されます。
表 25.5-1 コマンドシーケンス表
バス
コマンド ライト
シーケンス アク
セス
読出し /
リセット *
1st バスライト
サイクル
2nd バスライト
サイクル
3rd バスライト
サイクル
4th バスライト
サイクル
5th バスライト
サイクル
6th バスライト
サイクル
アド
レス
アド
レス
アド
レス
アド
レス
データ
アド
レス
データ
アド
レス
データ
データ
データ
データ
1
FxXXXX
XXF0
-
-
-
-
-
-
-
-
-
-
4
FxAAAA
XXAA
Fx5554
XX55
FxAAAA
XXF0
RA
RD
-
-
-
-
PD
(word)
-
-
-
-
XXAA
Fx5554
XX55
FxAAAA
XX10
XX55
SA
(even)
XX30
書込み
プログラム
4
FxAAAA
XXAA
Fx5554
XX55
FxAAAA
XXA0
PA
(even)
チップ消去
6
FxAAAA
XXAA
Fx5554
XX55
FxAAAA
XX80
FxAAAA
セクタ消去
6
FxAAAA
XXAA
Fx5554
XX55
FxAAAA
XX80
FxAAAA
XXAA
Fx5554
セクタ消去一時停止
Address"FxXXXX"Data (xxB0H) の入力で , セクタ消去中の消去一時停
止
セクタ消去再開
Address"FxXXXX"Data (xx30H) の入力で , セクタ消去中の消去一時停
止後 , 消去開始
( 注意事項 )
・表中のアドレス Fx は , FF, FE を意味します。それぞれの操作時にはアクセス対象バンクの値としてください。
・表中のアドレスは , CPU メモリマップ上の値です。アドレスおよびデータはすべて 16 進数表記しています。ただし , "X" は任意の値です。
・RA: 読出しアドレス
・PA: 書込みアドレス
・SA: セクタアドレス , 「25.2 フラッシュメモリ全体のブロックダイヤグラムとセクタ構成」「■ 1M ビットフラッシュメモリのセクタ構成」を
参照してください。
・RD: 読出しデータ
・PD: 書込みデータ , ワードデータのみ指定可
*:2 種類の読出し / リセットコマンドは , どちらもフラッシュメモリを読出しモードにリセットすることができます。
533
第 25 章 1M ビットフラッシュメモリ
25.6
自動アルゴリズム実行状態の確認
フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ
ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアを持ち
ます。この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内
蔵フラッシュメモリの動作状態の確認ができます。
■ ハードウェアシーケンスフラグ
ハードウェアシーケンスフラグは , DQ7, DQ6, DQ5, DQ3 の 4 ビットの出力で構成され
ます。それぞれがデータポーリングフラグ (DQ7) , トグルビットフラグ (DQ6) , タイミ
ングリミット超過フラグ (DQ5) , セクタ消去タイマフラグ (DQ3) の機能を持ちます。こ
れにより , 書込み / チップセクタ消去終了 , 消去コード書込みが有効かの確認をするこ
とができます。
ハードウェアシーケンスフラグを参照するには , コマンドシーケンス ( 表 25.5-1 を参照 )
設定後にフラッシュメモリ内部の対象セクタのアドレスに読出しアクセスすることで参
照できます。表 25.6-1 にハードウェアシーケンスフラグのビット割当てを示します。
表 25.6-1 ハードウェアシーケンスフラグのビット割当て
ビット No.
ハードウェア
シーケンスフラグ
7
6
5
4
3
2
1
0
DQ7
DQ6
DQ5
-
DQ3
-
-
-
自動書込み / チップセクタ消去が実行中であるかの判断は , ハードウェアシーケンスフ
ラグを確認するか , フラッシュメモリコントロールステータスレジスタ (FMCS) の
RDY ビットを確認することで , 書込みが終了しているかを知ることができ , 書込み / 消
去終了後は , 読出し / リセット状態に戻ります。実際にプログラムを作成する際には ,
いずれかのフラグで自動書込み / 消去終了を確認後に , データの読出しなどの次処理を
行ってください。また , 2 回目以降のセクタ消去コード書込みが有効であるかも , ハー
ドウェアシーケンスフラグによって確認することができます。次項に各ハードウェア
シーケンスフラグについて説明します。表 25.6-2 に , ハードウェアシーケンスフラグ
機能の一覧を示します。
表 25.6-2 ハードウェアシーケンスフラグ機能一覧
状態
書込み動作→書込み完了
( 書込みアドレス指定時 )
正常動作時
の状態変化
異常動作
534
チップセクタ消去動作
→消去完了
セクタ消去ウェイト→消去開始
消去動作→セクタ消去一時停止
( 消去中のセクタ )
セクタ消去一時停止→消去再開
( 消去中のセクタ )
セクタ消去一時停止中
( 消去中でないセクタ )
書込み動作
チップセクタ消去動作
DQ7
DQ6
DQ5
DQ3
DQ7
→
DATA:7
Toggle
→
DATA:6
Toggle
→ Stop
Toggle
Toggle
→1
1
→ Toggle
0
→
DATA:5
0
→
DATA:3
0→1
1
0
0→1
0
1→0
0
0→1
DATA:7
DATA:6
DATA:5
DATA:3
DQ7
0
Toggle
1
0
Toggle
1
1
0→1
0
0→1
1→0
第 25 章 1M ビットフラッシュメモリ
データポーリングフラグ (DQ7)
25.6.1
データポーリングフラグ (DQ7) は , 自動アルゴリズム実行が進行中または終了状態
であることをデータポーリング機能によって知らせるためのフラグです。
■ データポーリングフラグ (DQ7)
表 25.6-3 , 表 25.6-4 に , データポーリングフラグの状態遷移を示します。
表 25.6-3 データポーリングフラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
書込み動作
→完了
チップセク
タ消去
→完了
DQ7
DQ7 → DATA:7
0→1
セクタ消去
セクタ消去
セクタ消去
セクタ消去一時停止
一時停止中
ウェイト →消去一時停止消
→再開
消去中でない
→開始
去中のセクタ
消去中のセクタ
セクタ
0
0→1
1→0
DATA:7
表 25.6-4 データポーリングフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップセクタ
消去動作
DQ7
DQ7
0
● 書込み動作時
自動書込みアルゴリズム実行中に読出しアクセスすると , フラッシュメモリはアドレ
スの指し示す番地によらず, 最後に書き込まれたデータのビット7の反転データを出力
します。自動書込みアルゴリズム終了時に読出しアクセスすると , フラッシュメモリは
アドレスの指し示す番地の読出し値のビット 7 を出力します。
● チップ / セクタ消去動作時
チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去しているセク
タから , チップ消去時はアドレスの指し示す番地に関係なく読出しアクセスすると , フ
ラッシュメモリは "0" を出力します。同様に , 終了時には "1" を出力します。
● セクタ消去一時停止時
セクタ消去一時停止時に読出しアクセスすると , フラッシュメモリはアドレスの指し
示す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければアドレス
の指し示す番地の読出し値のビット 7 (DATA:7) を出力します。トグルビットフラグ
(DQ6) とともに参照することで , 現在セクタ一時停止状態であるか , どのセクタが消去
中であるかの判定が可能です。
<注意事項>
自動アルゴリズム起動時は , 指定したアドレスへの読出しアクセスは無視されます。デー
タの読出しは , データポーリングフラグ (DQ7) の終了を受けて , ほかのビットの出力が可
能となります。このため , 自動アルゴリズム終了後のデータの読出しは , データポーリン
グ終了を確認した読出しアクセスの次に行うようにしてください。
535
第 25 章 1M ビットフラッシュメモリ
25.6.2
トグルビットフラグ (DQ6)
トグルビットフラグ (DQ6) は , データポーリングフラグ (DQ7) と同様に , 主に自動
アルゴリズム実行が進行中または終了状態であることをトグルビット機能によって
知らせるためのフラグです。
■ トグルビットフラグ (DQ6)
表 25.6-5 と表 25.6-6 に , トグルビットフラグの状態遷移を示します。
表 25.6-5 トグルビットフラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
書込み動作
→完了
チップセク
タ消去
→完了
セクタ消去
ウェイト
→開始
セクタ消去
→消去一時停止
消去中のセクタ
セクタ消去一時停止
→再開
消去中のセクタ
セクタ消去
一時停止中
消去中でない
セクタ
DQ6
Toggle
→ DATA:6
Toggle
→ Stop
Toggle
Toggle → 1
1 → Toggle
DATA:6
表 25.6-6 トグルビットフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップセクタ
消去動作
DQ6
Toggle
Toggle
● 書込み / チップセクタ消去時
自動書込みアルゴリズムおよびチップセクタ消去アルゴリズム実行中に , 連続した読
出しアクセスを行うと , フラッシュメモリはアドレスの指し示す番地によらず , 読出し
ごとに "1" と "0" を交互に出力するトグル状態を出力します。自動書込みアルゴリズム
およびチップ / セクタ消去アルゴリズム終了時に連続した読出しアクセスを行うとフ
ラッシュメモリはビット6のトグル動作を止め, アドレスの指し示す番地の読出し値の
ビット 6 (DATA:6) を出力します。
● セクタ消去一時停止時
セクタ消去一時停止時に読出しアクセスすると , フラッシュメモリはアドレスの指し
示す番地が消去中のセクタに属するならば , "1" を出力します。消去中のセクタに属さ
なければ , アドレスの指し示す番地の読出し値のビット 6 (DATA:6) を出力します。
<参考>
書込みの際 , 書き込もうとしているセクタが書換え保護されているセクタの場合は , 約 2
μs のトグル動作をした後 , データを書き換えることなくトグル動作を終わります。
消去の際 , 選択されたすべてのセクタが書換え保護されている場合 , トグルビットは約
100 μs のトグル動作をし , その後データを書き換えないで読出し / リセット状態に戻りま
す。
536
第 25 章 1M ビットフラッシュメモリ
25.6.3
タイミングリミット超過フラグ (DQ5)
タイミングリミット超過フラグ (DQ5) は , 自動アルゴリズムの実行がフラッシュメ
モリ内部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラ
グです。
■ タイミングリミット超過フラグ (DQ5)
表 25.6-7 と表 25.6-8 に , タイミングリミット超過フラグの状態遷移を示します。
表 25.6-7 タイミングリミット超過フラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
書込み動作
→完了
チップセク
タ消去
→完了
セクタ消去
ウェイト
→開始
セクタ消去
→消去一時停止
消去中のセクタ
セクタ消去一時
停止
→再開
消去中のセクタ
セクタ消去
一時停止中
消去中でない
セクタ
DQ5
0 → DATA:5
0→1
0
0
0
DATA:5
表 25.6-8 タイミングリミット超過フラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップセクタ
消去動作
DQ5
1
1
● 書込み / チップセクタ消去時
書込みまたはチップセクタ消去自動アルゴリズム起動後に読出しアクセスすると , 規
定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えてしまってい
る場合は "1" を出力します。これは , 自動アルゴリズムが実行中か終了状態にあるかと
は無関係なので , 書込み / 消去が成功したか失敗したかの判定が可能です。すなわち ,
このフラグが "1" を出力したとき , データポーリング機能またはトグルビット機能によ
り自動アルゴリズムがまだ実行中であれば , 書込みが失敗していると判断することが
できます。
例えば , "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうとする
と , フェイルが発生します。この場合フラッシュメモリはロックされ , 自動アルゴリズ
ムは終了しません。まれに "1" が書き込めたように , 正常終了する場合もあります。し
たがって , データポーリングフラグ (DQ7) から有効なデータが出力されません。また ,
トグルビットフラグ (DQ6) はトグル動作を止めずタイムリミットを超え , タイミング
リミット超過フラグ (DQ5) は "1" を出力します。この状態は , フラッシュメモリが不良
なのではなく , 正しく使用されなかったということを表しています。この状態が発生し
たときは , リセットコマンドを実行してください。
537
第 25 章 1M ビットフラッシュメモリ
25.6.4
セクタ消去タイマフラグ (DQ3)
セクタ消去タイマフラグは , セクタ消去コマンド起動後 , セクタ消去ウェイト期間中
であるか否かを知らせるフラグです。
■ セクタ消去タイマフラグ (DQ3)
表 25.6-9 と表 25.6-10 に , セクタ消去タイマフラグの状態遷移を示します。
表 25.6-9 セクタ消去タイマフラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
書込み動作
→完了
チップセク
タ消去
→完了
セクタ消去
ウェイト
→開始
セクタ消去
→消去一時停止
消去中のセクタ
セクタ消去一時
停止
→再開
消去中のセクタ
セクタ消去
一時停止中
消去中でない
セクタ
DQ3
0 → DATA:3
1
0→1
1→0
0→1
DATA:3
表 25.6-10 セクタ消去タイマフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップセクタ
消去動作
DQ3
0
1
● セクタ消去動作時
セクタ消去コマンド起動後に読出しアクセスすると , フラッシュメモリはコマンドを
発行したセクタのアドレス信号の指し示す番地によらず , セクタ消去ウェイト期間中
であれば "0" を , セクタ消去ウェイト期間を超えてしまっている場合は "1" を出力しま
す。
データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示して
いる場合 , このフラグが "1" であれば内部で制御される消去が始まっています。続けて
のセクタ消去コードの書込みまたは消去一時停止以外のコマンドは , 消去が終了され
るまで無視されます。
このフラグが "0" であれば , フラッシュメモリは追加のセクタ消去コードの書込みを
受け付けます。このことを確認するために , 引き続くセクタ消去コードの書込みに先
立ち , このフラグの状態をチェックすることを推奨します。もし , 2 回目の状態チェッ
クで "1" であったなら , 追加セクタの消去コードは受け付けられていない可能性があ
ります。
● セクタ消去一時停止時
セクタ消去一時停止中に読出しアクセスすると , フラッシュメモリはアドレスの指し
示す番地が , 消去中のセクタに属するならば "1" を出力します。消去中のセクタに属さ
ないのであれば , アドレスの指し示す番地の読出し値のビット 3 (DATA:3) を出力しま
す。
538
第 25 章 1M ビットフラッシュメモリ
25.7
フラッシュメモリ書込み / 消去の詳細説明
自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ
ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止およびセクタ消去再開の
それぞれの動作を行う手順を説明します。
■ フラッシュメモリ書込み / 消去の詳細
フラッシュメモリは , 読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去
一時停止およびセクタ消去再開の動作がコマンドシーケンス (表 25.5-1 を参照) のバス
への書込みサイクルを行うことで自動アルゴリズムを実行することができます。それ
ぞれのバスへの書込みサイクルは必ず続けて行う必要があります。また , 自動アルゴリ
ズムはデータポーリング機能などで終了時を知ることができます。正常終了後は , 読出
し / リセット状態に戻ります。
各動作について , 次項より下記の順に示します。
• 読出し / リセット状態にする
• データを書き込む
• 全データを消去する ( チップ全消去 )
• 任意のデータを消去する ( セクタ消去 )
• セクタ消去を一時停止する
• セクタ消去を再開する
539
第 25 章 1M ビットフラッシュメモリ
25.7.1
フラッシュメモリを読出し / リセット状態にする
読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす
る手順について説明します。
■ フラッシュメモリを読出し / リセット状態にする
フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 ( 表 25.51 を参照 ) の読出し / リセットコマンドを , フラッシュメモリ内の対象セクタに続けて
送ることで実行できます。
読出し / リセットコマンドには , 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー
ケンスがありますが , これらの本質的な違いはありません。
読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの
正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ
マンドの入力待ち状態です。
読出し / リセット状態では , 通常の読出しアクセスでデータを読み出すことができま
す。マスク ROM と同様に , CPU からのプログラムアクセスが可能です。通常読出しで
のデータ読出しに , このコマンドは必要ありません , 何らかの理由でコマンドが正常に
終了しなかったときなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを
使用します。
540
第 25 章 1M ビットフラッシュメモリ
25.7.2
フラッシュメモリへデータを書き込む
書込みコマンドを発行し , フラッシュメモリへデータを書き込む手順について説明
します。
■ フラッシュメモリへデータを書き込む
フラッシュメモリのデータ書込み自動アルゴリズムを起動するには , コマンドシーケ
ンス表 ( 表 25.5-1 を参照 ) の書込みコマンドを , フラッシュメモリ内の対象セクタに続
けて送ることで実行できます。4 サイクル目に目的のアドレスへのデータ書込みが終了
した時点で , 自動アルゴリズムが起動され , 自動書込みが開始します。
● アドレス指定方法
書込みはどのようなアドレスの順番でも , また , セクタの境界を超えても可能ですが ,
1 回の書込みコマンドによって書き込まれるデータは , 1 ワードのみです。
● データ書込み上の注意
書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー
タ"1"を書き込むと, データポーリングアルゴリズム (DQ7) またはトグル動作 (DQ6) が
終了せず , フラッシュメモリ素子が不良と判定されて , 書込み規定時間を超えタイミン
グリミット超過フラグ (DQ5) がエラーと判定するかまたは見かけ上データ "1" が書き
込まれたように見えるかのどちらかとなります。しかし , 読出し / リセット状態でデー
タを読み出すと , データは "0" のままです。消去動作のみが "0" データを "1" にするこ
とができます。
自動書込み実行中は , すべてのコマンドが無視されます。書込み中にハードウェアリ
セットが起動されると , 書き込んでいるアドレスのデータは保証されませんので注意
が必要です。
■ フラッシュメモリ書込み手順
図 25.7-1 にフラッシュメモリ書込みの手順の例を示します。ハードウェアシーケンス
フラグ (「25.6 自動アルゴリズム実行状態の確認」を参照 ) を用いることでフラッシュ
メモリ内部の自動アルゴリズムの状態判定が可能です。ここでは , 書込み終了の確認に
データポーリングフラグ (DQ7) を用いています。
フラグチェックのために読み出すデータは , 最後に書込みを行ったアドレスからの読
出しとなります。
データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に変
わるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であっても , データポー
リングフラグビット (DQ7) は再チェックする必要があります。
トグルビットフラグ (DQ6) でも同様に , タイミングリミット超過フラグビット (DQ5)
が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (DQ6) を再
チェックする必要があります。
541
第 25 章 1M ビットフラッシュメモリ
図 25.7-1 フラッシュメモリ書込み手順の例
書込み開始
FMCS:WE(bit5)
フラッシュメモリ
書込み許可
書込みコマンドシーケンス
① FxAAAA←XXAA
② Fx5554←XX55
③ FxAAAA←XXA0
④ 書込みアドレス←書込みデータ
内部アドレスリード
データポーリング
(DQ7)
次アドレス
Data
Data
0
タイミングリミット
(DQ5)
1
内部アドレスリード
Data
データポーリング
(DQ7)
Data
書込みエラー
最終アドレス
N
Y
FMCS:WE(bit5)
フラッシュメモリ
書込み禁止
ハードウェアシーケンス
フラグによる確認
書込み完了
542
第 25 章 1M ビットフラッシュメモリ
25.7.3
フラッシュメモリの全データを消去する
( チップ消去 )
チップ消去コマンドを発行し , フラッシュメモリの全データを消去する手順につい
て説明します。
■ フラッシュメモリのデータを消去する ( チップ消去 )
フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表 ( 表
25.5-1 を参照 ) のチップ消去コマンドを , フラッシュメモリ内の対象セクタに送ること
で実行できます。
チップ消去コマンドは , 6 回のバス動作で行われます。6 サイクル目の書込みが完了し
た時点で , チップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッ
シュメモリに書き込む必要はありません。自動消去アルゴリズム実行中には , フラッ
シュメモリはすべてのセルを消去する前に自動的に "0" を書き込んで検証します。
543
第 25 章 1M ビットフラッシュメモリ
25.7.4
フラッシュメモリの任意のデータを消去する
( セクタ消去 )
セクタ消去コマンドを発行し , フラッシュメモリの任意のデータを消去する ( セクタ
消去 ) 手順について説明します。セクタごとの消去ができ , 複数のセクタを同時に指
定することもできます。
■ フラッシュメモリの任意のデータを消去する ( セクタ消去 )
フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表 ( 表 25.5-1
を参照 ) のセクタ消去コマンドを , フラッシュメモリ内の対象セクタに続けて送ることで
実行できます。
● セクタ指定方法
セクタ消去コマンドは , 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内
のアクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) を書き込むこと
により 50 μs のセクタ消去ウェイトが開始します。複数のセクタ消去を行う場合は , 上
記の処理に引き続き, 消去する目的のセクタ内のアドレスに消去コード (30H) を書き込
みます。
● 複数のセクタを指定するときの注意
最後のセクタ消去コードの書込みから50 μsのセクタ消去ウェイト期間終了により消去
が開始します。すなわち , 複数のセクタを同時に消去する場合は , 次の消去セクタのア
ドレスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50 μs 以内に入力
する必要があり , それ以降では受け付けられないことがあります。引き続くセクタ消去
コードの書込みが有効かどうかはセクタ消去タイマ ( ハードウェアシーケンスフラグ
DQ3) によって調べることができます。なお , このとき , セクタ消去タイマを読み出す
アドレスは , 消去しようとしているセクタを指すようにします。
■ フラッシュメモリのセクタ消去手順
ハードウェアシーケンスフラグ (「25.6 自動アルゴリズム実行状態の確認」を参照 )
を用いることでフラッシュメモリ内部の自動アルゴリズムの状態判定ができます。
図 25.7-2 にフラッシュメモリセクタ消去の手順の例を示します。ここでは , 消去終了
の確認にトグルビットフラグ (DQ6) を用いています。
フラグチェックのために読み出すデータは , 消去しようとしているセクタからの読出
しとなりますので注意が必要です。
トグルビットフラグ (DQ6) は , タイミングリミット超過フラグ (DQ5) が "1" に変わる
と同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (DQ5) が "1"
であっても , トグルビットフラグ (DQ6) は再チェックする必要があります。
データポーリングフラグ (DQ7) でも同様に , タイミングリミット超過フラグ (DQ5) と
同時に変わるので , データポーリングフラグを再チェックする必要があります。
544
第 25 章 1M ビットフラッシュメモリ
図 25.7-2 フラッシュメモリのセクタ消去手順の例
消去開始
FMCS:WE(bit5)
フラッシュメモリ消去許可
消去コマンドシーケンス
① FxAAAA←XXAA
② Fx5554←XX55
③ FxAAAA←XX80
④ FxAAAA←XXAA
⑤ Fx5554←XX55
⑥消去セクタへコード入力(30H)
YES
消去セクタがほかにあるか
NO
内部アドレスリード1
内部アドレスリード2
次セクタ
NO
YES
トグルビット(DQ6)
データ1(DQ6)=データ2(DQ6)
セクタ消去終了
YES
NO
0
タイミングリミット
(DQ5)
1
内部アドレスリード1
内部アドレスリード2
NO
トグルビット(DQ6)
データ1(DQ6)=データ2(DQ6)
YES
消去エラー
最終セクタ
NO
YES
FMCS:WE(bit5)
フラッシュメモリ消去禁止
消去完了
ハードウェアシーケンス
フラグによる確認
545
第 25 章 1M ビットフラッシュメモリ
25.7.5
フラッシュメモリのセクタ消去を一時停止する
セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を
行う手順について説明します。消去中でないセクタから , データを読み出すことが
可能です。
■ フラッシュメモリのセクタ消去を一時停止する
フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表 ( 表 25.5-1
を参照) のセクタ消去一時停止コマンドを, フラッシュメモリ内に送ることで実行でき
ます。
セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でないセク
タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で , 書込
みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で ,
チップ消去中や書込み動作中は無視されます。
セクタ消去の一時停止は , 消去一時停止コード (B0H) を書き込むことで実施されます
が , このときアドレスはフラッシュメモリ内の任意のアドレスを指すようにします。消
去一時停止での再度の消去一時停止コマンドは無視されます。
セクタ消去ウェイト期間中に, セクタ消去一時停止コマンドが入力されると, 直ちにセ
クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消
去ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大
20 μs の時間の後 , 消去一時停止状態に入ります。セクタ消去一時停止コマンドは , セ
クタ消去コマンドあるいはセクタ消去再開コマンド発行後 , 20 μs 以上後に行ってくだ
さい。
546
第 25 章 1M ビットフラッシュメモリ
25.7.6
フラッシュメモリのセクタ消去を再開する
セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリのセクタ消去を
再開する手順について説明します。
■ フラッシュメモリのセクタ消去を再開する
一時停止したセクタ消去を再開させるには , コマンドシーケンス表 ( 表 25.5-1 を参照 )
のセクタ消去再開コマンドを , フラッシュメモリ内に送ることで実行できます。
セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止
状態から , セクタ消去を再開するためのコマンドです。このコマンドは , 消去再開コー
ド (30H) を書き込むことで実施されますが , このときのアドレスは , フラッシュメモリ
領域内の任意のアドレスを指すようにします。
なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。
547
第 25 章 1M ビットフラッシュメモリ
25.8
フラッシュメモリの使用上の注意
フラッシュメモリの使用上に関する注意を以下に示します。
■ フラッシュメモリの使用上の注意
● ハードウェアリセット (RST) の入力
読出し中で自動アルゴリズムが起動していないときに , ハードウェアリセットを入力
するには , "L" レベル幅として最低 500ns をとる必要があります。
この場合 , ハードウェ
アリセット起動後フラッシュメモリからデータを読み出すまでに , 最低 500ns が必要と
なります。同様に , 書込み / 消去中で自動アルゴリズムが起動しているときに , ハード
ウェアリセットを入力するには , "L" レベル幅として最低 50ns をとる必要があります。
この場合 , フラッシュメモリを初期化するために実行中の動作を停止した後データを
読み出すまでに , 20 μs が必要となります。
書込み中にハードウェアリセットすると , 書き込まれているデータは不定となります。
消去中にハードウェアリセットすると , 消去されているセクタは使用不可となる可能
性があります。
● ソフトウェアリセット , ウォッチドッグタイマリセット , ハードウェアスタンバイの取消し
CPU アクセスでフラッシュメモリを書込み / 消去時に , 自動アルゴリズムがアクティブ
状態のときリセット条件が発生した場合 , CPU が暴走する可能性があります。それは ,
これらのリセット条件により , フラッシュメモリユニットが初期化されずに自動アル
ゴリズムが続行し , リセット離脱後に CPU がシーケンスを開始したときフラッシュメ
モリユニットが読出し状態になることが妨げられる可能性があるためです。これらの
リセット条件は , フラッシュメモリの書込み / 消去中に禁止されている必要がありま
す。
● フラッシュメモリへのプログラムアクセス
自動アルゴリズム動作中は , フラッシュメモリへの読出しアクセスは禁止されます。
CPU のメモリアクセスモードが内蔵 ROM モードにセットされている場合 , プログラム
領域を RAM などの別の領域に切り換えた後 , 書込み / 消去を開始する必要があります。
この場合 , 割込みベクタを含むセクタ (SA6) が消去されると , 書込み / 消去割込み処理
を実行できません。
同じ理由で , 自動アルゴリズム動作中は , フラッシュメモリ以外のその他すべての割込
みソースは無効となります。
● ホールド機能
CPU がホールド要求を受け付けたとき , フラッシュメモリユニットの書込み信号 WE
は歪曲され , 不正な書込みによる不正な書込み / 消去が可能になります。ホールド要求
の受付けが許可 (EPCR の HDE ビットが "1" をセット ) されたとき , コントロールス
テータスレジスタ (FMCS) の WE ビットが必ず "0" になっているようにしてください。
● 拡張インテリジェント I/O サービス (EI2OS)
フラッシュメモリインタフェース回路から CPU に発行された書込み / 消去割込みは ,
EI2OS には受付け不可であり , 使用できません。
● VID の適用
セクタプロテクト動作に必要な VID の適用は , 供給電圧が "ON" のとき常に開始し , 終
了する必要があります。
548
第 25 章 1M ビットフラッシュメモリ
25.9
1M ビットフラッシュメモリのプログラム例
ここでは , 1M ビットフラッシュメモリのプログラム例を掲載します。
■ 1M ビットフラッシュメモリのプログラム例
NAME
FLASHWE
TITLE
FLASHWE
;--------------------------------------------------------------------------;1Mbit-FLASH サンプルプログラム
;
;1: FLASH にあるプログラム ( アドレス FFBC00H セクタ SA3) を RAM( アドレス 000700H) に
;
転送する。
;2: RAM 上でプログラムを実行する。
;3: PDR1 の値を FLASH( アドレス FE0000H セクタ SA0) に書き込む。
;4: 書き込んだ値 ( アドレス FE0000H セクタ SA0) を読み出し PDR2 に出力する。
;5: 書き込んだセクタ (SA0) を消去する。
;6: 消去データ確認の出力条件
;
・RAM 転送バイト数 : 100H(256B)
;
・書込み , 消去の終了判定
;
DQ5( タイミングリミット超過フラグ ) での判定
;
DQ6( トグルビットフラグ ) での判定
;
RDY(FMCS) での判定
;
・エラー時の処理
;
P00 ~ P07 に Hi を出力する。
;
リセットコマンド発行
;------------------------------------------------------------------------------;
RESOUS IOSEG
ABS=00
;"RESOUS"I/O セグメントの定義
ORG
0000H
PDR0
RB
1
PDR1
RB
1
PDR2
RB
1
PDR3
RB
1
ORG
0010H
DDR0
RB
1
DDR1
RB
1
DDR2
RB
1
DDR3
RB
1
ORG
00A1H
CKSCR
RB
1
ORG
00AEH
FMCS
RB
1
ORG
006FH
ROMM
RB
1
RESOUS ENDS
;
SSTA
SSEG
549
第 25 章 1M ビットフラッシュメモリ
STA_T
SSTA
;
DATA
RW
RW
ENDS
0127H
1
DSEG
ABS=0FFH
;FLASH コマンドアドレス
ORG
5554H
COMADR2 RW
1
ORG
0AAAAH
COMADR1 RW
1
DATA
ENDS
;/////////////////////////////////////////////////////////////
; メインプログラム (FFA000H)
;/////////////////////////////////////////////////////////////
CODE
CSEG
START:
;/////////////////////////////////////////////////////
; 初期化
;/////////////////////////////////////////////////////
MOV
CKSCR, #0BAH
;3 逓倍に設定
MOV
RP, #0
MOV
A, #!STA_T
MOV
SSB, A
MOVW
A, #STA_T
MOVW
SP, A
MOV
ROMM, #00H
; ミラー OFF
MOV
PDR0, #00H
; エラー確認用
MOV
DDR0, #0FFH
MOV
PDR1, #00H
; データ入力用ポート
MOV
DDR1, #00H
MOV
PDR2, #00H
; データ出力用ポート
MOV
DDR2, #0FFH
;//////////////////////////////////////////////////////////////
;RAM(700H 番地 ) に "FLASH 書込み消去プログラム (FFBCOOH)" を転送する
;//////////////////////////////////////////////////////////////
MOVW
A, #0700H
; 転送先 RAM 領域
MOVW
A, #0BC00H
; 転送元アドレス ( プログラムのある位置 )
MOVW
RW0, #100H
; 転送するバイト数
MOVS
ADB, PCB
;FFBC00H から 000700H へ 100H 転送
CALLP
000700H
; 転送したプログラムのあるアドレスへジャンプ
;/////////////////////////////////////////////////////
; データ出力
;/////////////////////////////////////////////////////
OUT
MOV
A, #0FEH
MOV
ADB, A
MOVW
RW2, #0000H
MOVW
A, @RW2+00
MOV
PDR2, A
END
JMP
*
CODE
ENDS
550
第 25 章 1M ビットフラッシュメモリ
RAMPRG
;////////////////////////////////////////////////////////////
;FLASH 書込み消去プログラム (SA3)
;////////////////////////////////////////////////////////////
CSEG
ABS=0FFH
ORG
0BC00H
;////////////////////////////////////////////
; 初期化
;////////////////////////////////////////////
MOVW
RW0, #0500H
;RW0:入力データ確保用RAM空間
00:0500~
MOVW
RW2, #0000H
;RW2:フラッシュメモリ書込みアドレス FD:0000~
MOV
A, #00H
;DTB 変更
MOV
DTB, A
;@RW0 用バンク指定
MOV
A, #0FEH
;ADB 変更 1
MOV
ADB, A
; 書込みモード指定アドレス用バンク指定
MOV
PDR3, #00H
; スイッチ初期化
MOV
DDR3, #00H
;
WAIT1
BBC
PDR3:0, WAIT1
;PDR3:0 Hi で書込みスタート
;
;////////////////////////////////////////////////
; 書込み (SA0)
;////////////////////////////////////////////////
MOV
A, PDR1
MOVW
@RW0+00, A
;RAM に PDR1 データを確保
MOV
FMCS, #20H
; 書込みモード設定
MOVW
ADB:COMADR1, #00AAH
; フラッシュ書込みコマンド 1
MOVW
ADB:COMADR2, #0055H
; フラッシュ書込みコマンド 2
MOVW
ADB:COMADR1, #00A0H
; フラッシュ書込みコマンド 3
;
MOVW
A, @RW0+00
; 入力データ (RW0) をフラッシュメモリ (RW2)
MOVW
@RW2+00, A
WRITE
; 待ち時間チェック
;///////////////////////////////////////////////////////////////////
; タイムリミット超過チェック - フラグが立ちトグル動作中であるとき ERROR
;///////////////////////////////////////////////////////////////////
MOVW
A, @RW2+00
AND
A, #20H
;DQ5 タイムリミットチェック
BZ
NTOW
; タイムリミットオーバー
MOVW
A, @RW2+00
;AH
MOVW
A, @RW2+00
;AL
XORW
A
;AH AL の XOR( 値が違えば 1)
AND
A, #40H
;DQ6 トグルビットは違っているか
BNZ
ERROR
; 違えば ERROR へ
;///////////////////////////////////////
; 書込み終了チェック (FMCS-RDY)
;///////////////////////////////////////
NTOW
MOVW
A, FMCS
AND
A, #10H
;FMCS RDY ビット (4bit) 抽出
BZ
WRITE
; 書込み終了か ?
551
第 25 章 1M ビットフラッシュメモリ
MOV
FMCS, #00H
; 書込みモード解除
;/////////////////////////////////////////////////////
; 書込みデータ出力
;/////////////////////////////////////////////////////
MOVW
RW2, #0000H
; 書込みデータ出力
MOVW
A, @RW2+00
MOV
PDR2, A
;
WAIT2
BBC
PDR3:1, WAIT2
;PDR3:1 Hi でセクタ消去スタート
;
;/////////////////////////////////////////////
; セクタ消去 (SA0)
;/////////////////////////////////////////////
MOV
@RW2+00, #0000H
; アドレス初期化
MOV
FMCS, #20H
; 消去モード設定
MOVW
ADB:COMADR1, #00AAH
; フラッシュ消去コマンド 1
MOVW
ADB:COMADR2, #0055H
; フラッシュ消去コマンド 2
MOVW
ADB:COMADR1, #0080H
; フラッシュ消去コマンド 3
MOVW
ADB:COMADR1, #00AAH
; フラッシュ消去コマンド 4
MOVW
ADB:COMADR2, #0055H
; フラッシュ消去コマンド 5
MOV
@RW2+00, #0030H
; 消すセクタに消去コマンド発行 6
ELS
; 待ち時間チェック
;///////////////////////////////////////////////////////////////////
; タイムリミット超過チェック - フラグが立ちトグル動作中であるとき ERROR
;///////////////////////////////////////////////////////////////////
MOVW
A, @RW2+00
AND
A, #20H
;DQ5 タイムリミットチェック
BZ
NTOE
; タイムリミットオーバー
MOVW
A, @RW2+00
;AH
書込み動作中は , DQ6 から
MOVW
A, @RW2+00
;AL
読出しごと Hi Low が交互出力される
XORW
A
;AH と AL の XOR(DQ6 の値が違えば 1 書込み動作
; 中である )
AND
A, #40H
;DQ6 トグルビットは Hi か
BNZ
ERROR
;Hi なら ERROR へ
;///////////////////////////////////////
; 消去終了チェック (FMCS-RDY)
;///////////////////////////////////////
NTOE
MOVW
A, FMCS
;
AND
A, #10H
;FMCS RDY ビット (4bit) 抽出
BZ
ELS
; セクタ消去終了か ?
MOV
FMCS, #00H
;FLASH 消去モード解除
RETP
; メインプログラムに戻る
;//////////////////////////////////////////////
; エラー
;//////////////////////////////////////////////
ERROR
MOV
FMCS, #00H
;FLASH モード解除
MOV
PDR0, #0FFH
; エラー処理の確認
MOV
ADB:COMADR1, #0F0H
; リセットコマンド ( 読出しが可能になる )
RETP
; メインプログラムに戻る
552
第 25 章 1M ビットフラッシュメモリ
RAMPRG ENDS
;/////////////////////////////////////////////
VECT
CSEG
ABS=0FFH
ORG
0FFDCH
DSL
START
DB
00H
VECT
ENDS
;
END
START
553
第 25 章 1M ビットフラッシュメモリ
554
第 26 章
シリアル書込み接続例
この章では , 横河ディジタルコンピュータ株式会社
製 AF220/AF210/AF120/AF110 フラッシュマイコ
ンプログラマを用いた場合のシリアル書込みの接
続例について説明します。
26.1 基本構成
26.2 発振クロック周波数とシリアルクロック入力周波数
26.3 フラッシュマイコンプログラマのシステム構成
26.4 シリアル書込み接続例
555
第 26 章 シリアル書込み接続例
26.1
基本構成
MB90F428G/MB90F423G では , フラッシュ ROM のシリアルオンボード書込み ( 富
士通標準 ) をサポートしています。その仕様について以下に説明します。
■ 基本構成
図 26.1-1 にシリアル書込み接続例の基本構成を示します。
富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ株式会社製
フラッシュマイコンプログラマを使用します。
図 26.1-1 シリアル書込み接続例の基本構成
ホストインタフェースケーブル(AZ221)
汎用共通ケーブル(AZ210)
RS232C
フラッシュ
マイコン
プログラマ
+
メモリカード
CLK同期シリアル
MB90F428G/
MB90F423G
ユーザシステム
スタンドアロンで動作可能
フラッシュマイコンプログラマ (AF220/AF210/AF120/AF110) の機能・操作方法 , およ
び接続用汎用共通ケーブル (AZ210), コネクタについては , 横河ディジタルコンピュー
タ株式会社にお問い合わせください。
556
第 26 章 シリアル書込み接続例
■ 富士通標準シリアルオンボード書込みに使用する端子
表 26.1-1 に使用する端子の機能を示します。
表 26.1-1 使用する端子の機能
端 子
機 能
補足説明
モード端子
MD2=1, MD1=1, MD0=0 に設定することで , シリアル書込みモー
ドになります。
X0, X1
発振用端子
シリアル書込みモード時に , CPU 内部動作クロックは PLL ク
ロック 1 逓倍になりますので , 内部動作クロック周波数は , 発振
クロック周波数と同様になります。したがって , シリアル書込み
をする場合 , 高速発振入力端子に入力可能な周波数は 1MHz ~
16MHz となります。
P00, P01
書込みプログラム起動端子
P00 に "L" レベル , P01 に "H" レベルを入力してください。
MD2, MD1,
MD0
RST
リセット端子
SIN1
シリアルデータ入力端子
-
SOT1
シリアルデータ出力端子
SCK1
シリアルクロック入力端子
VCC
電源電圧供給端子
書込み電圧 (VCC=5.0V ± 10 %)
VSS
GND 端子
フラッシュマイコンプログラマの GND と共通にします。
UART1 を CLK 同期モードとして使用します。
図 26.1-2 端子制御回路
AF220/AF210/AF120/AF110
書込み制御端子
MB90F428G/MB90F423G
書込み制御端子
10kΩ
AF220/AF210/AF120/AF110
/TICS端子
ユーザ回路
<注意事項>
• P00, SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 図 26.1-2 の端
子制御回路が必要となります。
• フラッシュマイコンプログラマの/TICS信号により , シリアル書込み中はユーザ回路を
切り離すことができます。接続例を参照してください。
557
第 26 章 シリアル書込み接続例
26.2
発振クロック周波数とシリアルクロック入力周波数
MB90F428G/MB90F423G の入力可能なシリアルクロック周波数は , 以下の計算式に
よって求められます。したがって , ご使用の発振クロック周波数によって , シリアル
クロック入力周波数をフラッシュマイコンプログラマの設定によって変更してくだ
さい。
■ 入力可能なシリアルクロック周波数
入力可能なシリアルクロック周波数は , 次式によって計算されます。
表 26.2-1 に計算例を示します。
入力可能なシリアルクロック周波数= 0.125 ×発振クロック周波数
表 26.2-1 シリアルクロック周波数計算例
発振クロック
周波数
マイコンの入力可能な最大
シリアルクロック周波数
AF220/AF210/AF120/AF110
の設定可能な最大シリアル
クロック周波数
AF200 の設定可能な最大
シリアルクロック周波数
4MHz
500kHz
500kHz
500kHz
558
第 26 章 シリアル書込み接続例
26.3
フラッシュマイコンプログラマのシステム構成
横河ディジタルコンピュータ株式会社製のフラッシュマイコンプログラマのシステ
ム構成を示します。
■ フラッシュマイコンプログラマのシステム構成
表 26.3-1 にフラッシュマイコンプログラマのシステム構成を示します。
表 26.3-1 フラッシュマイコンプログラマのシステム構成
型 格
AF220/AC4P
本 AF210/AC4P
体 AF120/AC4P
AF110/AC4P
機 能
イーサネットインタフェース内蔵モデル
/100V ~ 220V 電源アダプタ
スタンダードモデル
/100V ~ 220V 電源アダプタ
単キー イーサネットインタフェース内蔵モデル
/100V ~ 220V 電源アダプタ
単キーモデル
/100V ~ 220V 電源アダプタ
AZ221
ライタ専用 PC/AT 用 RS232C ケーブル
AZ210
標準ターゲットプローブ (a) 長さ:1 m
FF201
富士通製 F2MC-16LX フラッシュマイコン用コントロールモジュール
AZ290
リモートコントローラ
/P2
2MB PC Card (Option) フラッシュメモリ容量 ~ 128KB 対応
/P4
4MB PC Card (Option) フラッシュメモリ容量 ~ 512KB 対応
問い合わせ先:横河ディジタルコンピュータ株式会社 電話:042-333-6224
<注意事項>
AF200フラッシュマイコンプログラマについては終息製品ですが, コントロールモジュー
ル FF201 を用いることで対応できます。シリアル書込み接続例に関しても , 「26.4 シリ
アル書込み接続例」に示す接続例で対応できます。
559
第 26 章 シリアル書込み接続例
26.4
シリアル書込み接続例
各種モードにおけるシリアル書込み接続例を示します。
■ シリアル書込み接続例
以下の 4 つの接続例を示します。
• シングルチップモード時の接続例
( ユーザ電源使用時 )
• シングルチップモード時の接続例
( フラッシュマイコンプログラマから電源供給時 )
• フラッシュマイコンプログラマとの最小限の接続例
( ユーザ電源使用時 )
• フラッシュマイコンプログラマとの最小限の接続例
( フラッシュマイコンプログラマから電源供給時 )
560
第 26 章 シリアル書込み接続例
■ シングルチップモード時の接続例 ( ユーザ電源使用時 )
ユーザシステムにおいて , シングルチップモードに設定されているモード端子 MD2,
MD0 には , AF220/AF210/AF120/AF110 の TAUX3, TMODE より MD2=1, MD0=0 が入力
さ れ , シリ ア ル書 込 みモ ー ド にな り ます ( シ リア ル 書込 み モー ド:MD2, MD1,
MD0=110)。
図 26.4-1 MB90F428G/MB90F423G シングルチップモード時シリアル書込み接続例
( ユーザ電源使用時 )
AF220/AF210/AF120/AF110
フラッシュマイコン
プログラマ
TAUX3
ユーザシステム
コネクタ
DX10-28S
(19)
MB90F428G/MB90F423G
MD2
MD1
TMODE
MD0
X0
(12)
4MHz
X1
TAUX
(23)
/TICS
(10)
P00
ユーザ
/TRES
(5)
RST
ユーザ
TTXD
TRXD
TCK
(13)
(27)
(6)
TVcc
(2)
GND
P01
SIN1
SOT1
SCK1
Vcc
ユーザ電源
(7,8,
14,15,
21,22,
1,28)
3,4,9,11,16,17,18,
20,24,25,26ピン
はOPEN
DX10-28S:ライトアングルタイプ
14ピン
Vss
1ピン
DX10-28S
28ピン
15ピン
コネクタ(ヒロセ電機製)のピン配列
561
第 26 章 シリアル書込み接続例
図 26.4-2 端子制御回路
AF220/AF210/AF120/AF110
書込み制御端子
AF220/AF210/AF120/AF110
/TICS端子
MB90F428G/MB90F423G
書込み制御端子
10kΩ
ユーザ回路
<注意事項>
• SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , P00 と同様 , 図
26.4-2 の端子制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信
号により , シリアル書込み中はユーザ回路を切り離すことができます )。
• AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってください。
562
第 26 章 シリアル書込み接続例
■ シングルチップモード時の接続例(フラッシュマイコンプログラマから電源供給時)
ユーザシステムにおいて , シングルチップモードに設定されているモード端子 MD2,
MD0 には , AF220/AF210/AF120/AF110 の TAUX3, TMODE より MD2=1, MD0=0 が入力
さ れ , シリ ア ル書 込 みモ ー ド にな り ます ( シ リア ル 書込 み モー ド:MD2, MD1,
MD0=110)。
図 26.4-3 MB90F428G/MB90F423G シングルチップモード時シリアル書込み接続例
( フラッシュマイコンプログラマから電源供給時 )
AF2 20/AF210/AF120/AF110
フラッシュマイコン
プログラマ
TAUX3
ユーザシステム
コネクタ
DX10-28S
MB90F428G/MB90F423G
(19)
MD2
MD1
TMODE
MD0
X0
(12)
4MHz
X1
TAUX
(23)
/TICS
(10)
P00
ユーザ
/TRES
(5)
RST
P01
ユーザ
TTXD
TRXD
TCK
TVcc
Vcc
TVPP1
GND
SIN1
SOT1
SCK1
(13)
(27)
(6)
(2)
(3)
(16)
(7,8,
14,15,
21,22,
1,28)
4,9,11,17,18,
20,24,25,26ピン
はOPEN
Vcc
ユーザ電源
14ピン
1ピン
DX10 -28S
28ピン
DX10-28S:ライトアングルタイプ
Vss
15ピン
コネクタ(ヒロセ電機製)のピン配列
563
第 26 章 シリアル書込み接続例
図 26.4-4 端子制御回路
AF220/AF210/AF120/AF110
書込み制御端子
AF220/AF210/AF120/AF110
/TICS端子
MB90F428G/MB90F423G
書込み制御端子
10kΩ
ユーザ回路
<注意事項>
• SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , P00 と同様 , 図
26.4-4 の端子制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信
号により , シリアル書込み中はユーザ回路を切り離すことができます )。
• AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってください。
• 書込み電源を AF220/AF210/AF120/AF110 から供給するときは , ユーザ電源と短絡し
ないでください。
564
第 26 章 シリアル書込み接続例
■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 )
シリアル書込み時に , 各端子 (MD2, MD0, P00) を下記のように設定すると , MD2, MD0,
P00 とフラッシュマイコンプログラマとの接続は必要ありません。
図 26.4-5 MB90F428G/MB90F423G フラッシュマイコンプログラマとの最小限の接
続例 ( ユーザ電源使用時 )
AF220/AF210/AF120/AF110
フラッシュ マイコン
プログラマ
MB90F428G/MB90F423G
ユーザシステム
シリアル書換え時 1
MD2
シリアル書換え時 1
MD1
MD0
シリアル書換え時 0
X0
4MHz
X1
シリアル書換え時 0
P00
ユーザ回路
P01
シリアル書換え時 1
ユーザ回路
コネクタ
DX10-28S
/TRES
(5)
RST
TTXD
(13)
SIN1
TRXD
(27)
SOT1
TCK
TVcc
(6)
SCK1
(2)
Vcc
GND
(7,8,
14,15,
21,22,
1,28)
ユーザ電源
14ピン
3,4,9,10,11,12,16,17,
18,19,20,23,24,25,26
ピンはOPEN
1ピン
DX10-28S
28ピン
DX10-28S:ライトアングルタイプ
Vss
15ピン
コネクタ(ヒロセ電機製)のピン配列
565
第 26 章 シリアル書込み接続例
図 26.4-6 端子制御回路
AF220/AF210/AF120/AF110
書込み制御端子
AF220/AF210/AF120/AF110
/TICS端子
MB90F428G/MB90F423G
書込み制御端子
10kΩ
ユーザ回路
<注意事項>
• SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 図 26.4-6 の端子制
御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリア
ル書込み中はユーザ回路を切り離すことができます )。
• AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってください。
566
第 26 章 シリアル書込み接続例
■ フラッシュマイコンプログラマとの最小限の接続例 ( フラッシュマイコンプログラ
マから電源供給時 )
シリアル書込み時に , 各端子 (MD2, MD0, P00) を下記のように設定すると , MD2, MD0,
P00 とフラッシュマイコンプログラマとの接続は必要ありません。
図 26.4-7 MB90F428G/MB90F423G フラッシュマイコンプログラマとの最小限の接
続例 ( フラッシュマイコンプログラマから電源供給時 )
AF220/AF210/AF120/AF110
フラッシュマイコン
ユーザシステム
プログラマ
MB90F428G/MB90F423G
シリアル書換え時1
MD2
シリアル書換え時1
MD1
MD0
シリアル書換え時 0
X0
4MHz
X1
P00
シリアル書換え時 0
ユーザ回路
P01
シリアル書換え時 1
ユーザ回路
コネクタ
DX10-28S
/TRES
TTXD
TRXD
TCK
TVcc
Vcc
TVPP1
GND
(5)
(13)
(27)
(6)
(2)
(3)
(16)
RST
SIN1
SOT1
SCK1
Vcc
(7,8,
14,15,
21,22,
1,28)
ユーザ電源
Vss
4,9,10,11,12,17,18,
19,20,23,24,25,26ピン
はOPEN
14ピン
DX10-28S
28ピン
DX10-28S:ライトアングルタイプ
1ピン
15ピン
コネクタ(ヒロセ電機製)のピン配列
567
第 26 章 シリアル書込み接続例
図 26.4-8 端子制御回路
AF220/AF210/AF120/AF110
書込み制御端子
AF220/AF210/AF120/AF110
/TICS端子
MB90F428G/MB90F423G
書込み制御端子
10kΩ
ユーザ回路
<注意事項>
• SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 図 26.4-8 の端子制
御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリア
ル書込み中はユーザ回路を切り離すことができます )。
• AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってください。
• 書込み電源を AF220/AF210/AF120/AF110 から供給するときは , ユーザ電源と短絡し
ないでください。
568
付録
付録では , I/O マップおよび命令を示します。
付録 A I/O マップ
付録 B 命令
569
付録
付録 A
I/O マップ
各周辺機能のレジスタに割り当てられるアドレスを記載します。
■ I/O マップ
付表 A-1 に , 各周辺機能のレジスタに割り当てられるアドレスを示します。
付表 A-1I/O マップ (1 / 6)
アドレス
000000H
000001H
000002H
000003H
000004H
000005H
000006H
000007H
000008H
000009H
00000AH
~
00000FH
000010H
000011H
000012H
000013H
000014H
000015H
000016H
000017H
000018H
000019H
00001AH
00001BH
~
00001FH
000020H
000021H
000022H
000023H
000024H
000025H
000026H
000027H
000028H
000029H
00002AH
00002BH
570
レジスタ
ポート 0 データレジスタ
ポート 1 データレジスタ
ポート 3 データレジスタ
ポート 4 データレジスタ
ポート 5 データレジスタ
ポート 6 データレジスタ
ポート 7 データレジスタ
ポート 8 データレジスタ
ポート 9 データレジスタ
略称
PDR0
PDR1
アクセス
周辺
R/W
ポート 0
R/W
ポート 1
使用禁止
PDR3
R/W
ポート 3
PDR4
R/W
ポート 4
PDR5
R/W
ポート 5
PDR6
R/W
ポート 6
PDR7
R/W
ポート 7
PDR8
R/W
ポート 8
PDR9
R/W
ポート 9
初期値
XXXXXXXXB
--XXXXXXB
XX------B
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
------XXB
使用禁止
ポート 0 方向レジスタ
ポート 1 方向レジスタ
使用禁止
ポート 3 方向レジスタ
ポート 4 方向レジスタ
ポート 5 方向レジスタ
ポート 6 方向レジスタ
ポート 7 方向レジスタ
ポート 8 方向レジスタ
ポート 9 方向レジスタ
アナログ入力許可
DDR0
DDR1
R/W
R/W
ポート 0
ポート 1
00000000B
--000000B
DDR3
DDR4
DDR5
DDR6
DDR7
DDR8
DDR9
ADER
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
ポート 3
ポート 4
ポート 5
ポート 6
ポート 7
ポート 8
ポート 9
ポート 6, A/D
00------B
00000000B
00000000B
00000000B
00000000B
00000000B
------00B
11111111B
使用禁止
A/D 制御ステータスレジスタ下位
A/D 制御ステータスレジスタ上位
A/D データレジスタ下位
A/D データレジスタ上位
ADCSL
ADCSH
ADCRL
ADCRH
R/W
W, R/W
R, W
R
コンペアクリアレジスタ
CPCLR
R/W
タイマデータレジスタ
TCDT
R/W
TCCSL
R/W
TCCSH
R/W
PCNTL0
PCNTH0
R/W
R/W
タイマコントロールステータス
レジスタ下位
タイマコントロールステータス
レジスタ上位
PPG0 制御ステータスレジスタ下位
PPG0 制御ステータスレジスタ上位
A/D コンバータ
16 ビット
フリーランタイマ
00000000B
00000000B
XXXXXXXXB
00101XXXB
XXXXXXXXB
XXXXXXXXB
00000000B
00000000B
00000000B
0--00000B
16 ビット PPG0
00000000B
0000000-B
付録 A I/O マップ
付表 A-1I/O マップ (2 / 6)
アドレス
00002CH
00002DH
00002EH
00002FH
000030H
000031H
000032H
000033H
000034H
000035H
000036H
000037H
000038H
000039H
00003AH
00003BH
00003CH
00003DH
00003EH
00003FH
000040H
レジスタ
PPG1 制御ステータスレジスタ下位
PPG1 制御ステータスレジスタ上位
PPG2 制御ステータスレジスタ下位
PPG2 制御ステータスレジスタ上位
外部割込み許可
外部割込み要求
外部割込みレベル下位
外部割込みレベル上位
シリアルモードレジスタ 0
シリアル制御レジスタ 0
シリアル入力データレジスタ 0/
シリアル出力データレジスタ 0
シリアルステータスレジスタ 0
シリアルモードレジスタ 1
シリアル制御レジスタ 1
シリアル入力データレジスタ 1/
シリアル出力データレジスタ 1
シリアルステータスレジスタ 1
使用禁止
通信プリスケーラ制御レジスタ 0
CAN ウェイクアップ制御レジスタ
通信プリスケーラ制御レジスタ 1
略称
PCNTL1
PCNTH1
PCNTL2
PCNTH2
ENIR
EIRR
ELVRL
ELVRH
SMR0
SCR0
SIDR0/
SODR0
SSR0
SMR1
SCR1
SIDR1/
SODR1
SSR1
CDCR0
CWUCR
CDCR1
アクセス
周辺
R/W
16 ビット PPG1
R/W
R/W
16 ビット PPG2
R/W
R/W
R/W
DTP/ 外部割込み
R/W
R/W
R/W
W, R/W
UART0
R
R, R/W
R/W
W, R/W
R
XXXXXXXXB
00001000B
00000-00B
00000100B
UART1
R, R/W
R/W
R/W
R/W
初期値
00000000B
0000000-B
00000000B
0000000-B
00000000B
00000000B
00000000B
00000000B
00000-00B
00000100B
XXXXXXXXB
00001000B
プリスケーラ
CAN
プリスケーラ
0---0000B
-------0B
0---0000B
CAN インタフェース 0 用に予約済。
『CAN コントローラハードウェアマニュアル』を参照。
~
00004FH
TMCSR0
000050H タイマコントロールステータス
R/W
00000000B
L
レジスタ 0 下位
TMCSR0
16 ビット
000051H タイマコントロールステータス
R/W
----0000B
H
レジスタ 0 上位
リロードタイマ 0
000052H 16 ビットタイマレジスタ 0/
XXXXXXXXB
TMR0/
R
TMRLR0
000053H リロードレジスタ 0
XXXXXXXXB
TMCSR1
000054H タイマコントロールステータス
R/W
00000000B
L
レジスタ 1 下位
TMCSR1
16 ビット
000055H タイマコントロールステータス
R/W
----0000B
H
レジスタ 1 上位
リロードタイマ 1
000056H 16 ビットタイマレジスタ 1/
XXXXXXXXB
TMR1/
R
000057H リロードレジスタ 1
TMRLR1
XXXXXXXXB
000058H リアルタイム時計タイマ制御レジスタ WTCRL
R/W
000--000B
時計タイマ
下位
( メインクロック )
000059H リアルタイム時計タイマ制御レジスタ WTCRH
R/W
00000000B
上位
00005AH サウンド制御レジスタ下位
SGCRL
R/W
00000000B
00005BH サウンド制御レジスタ上位
SGCRH
R, R/W
0-----00B
00005CH 周波数データレジスタ
SGFR
R/W
XXXXXXXXB
サウンド
00005DH 振幅データレジスタ
SGAR
R/W
00000000B
ジェネレータ
00005EH デクリメントグレードレジスタ
SGDR
R/W
XXXXXXXXB
00005FH トーンカウントレジスタ
SGTR
R/W
XXXXXXXXB
000060H インプットキャプチャデータ
XXXXXXXXB
IPCP0
R
000061H レジスタ 0
XXXXXXXXB
インプット
000062H インプットキャプチャデータ
キャプチャ 0/1
XXXXXXXXB
IPCP1
R
000063H レジスタ 1
XXXXXXXXB
571
付録
付表 A-1I/O マップ (3 / 6)
アドレス
000064H
000065H
000066H
000067H
レジスタ
インプットキャプチャデータ
レジスタ 2
インプットキャプチャデータ
レジスタ 3
000068H インプットキャプチャコントロール
ステータス 0/1
000069H
00006AH インプットキャプチャコントロール
ステータス 2/3
00006BH
00006CH LCD 制御レジスタ下位
00006DH LCD 制御レジスタ上位
略称
アクセス
IPCP2
R
IPCP3
R
ICS01
R/W
周辺
インプット
キャプチャ 2/3
初期値
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
インプットキャプ
チャ 0/1
00000000B
インプットキャプ
チャ 2/3
00000000B
使用禁止
ICS23
R/W
使用禁止
LCRL
R/W
LCRH
R/W
LCD コント
ローラ / ドライバ
低電圧 /CPU 動作
検出リセット
ROM ミラー
00010000B
00000000B
00006EH 低電圧 /CPU 動作検出リセット制御
LVRC
W, R/W
00111000B
レジスタ
00006FH ROM ミラー機能選択レジスタ
ROMM
W
-------1B
000070H
CAN インタフェース 1 用に予約済。
『CAN コントローラハードウェアマニュアル』を参照。
~
00007FH
000080H PWM 制御レジスタ 0
PWC0
R/W
ステッピングモー
タコントローラ 0
000000-0B
PWC1
R/W
ステッピングモー
タコントローラ 1
000000-0B
PWC2
R/W
ステッピングモー
タコントローラ 2
000000-0B
PWC3
R/W
ステッピングモー
タコントローラ 3
000000-0B
000081H 使用禁止
000082H PWM 制御レジスタ 1
000083H 使用禁止
000084H PWM 制御 ⁄
レジスタ 2
000085H 使用禁止
000086H PWM 制御レジスタ 3
000087H
~
00009DH
00009EH プログラムアドレス検出コントールレ
ジスタ
00009FH 遅延割込み / リリース
0000A0H 低消費電力モード制御レジスタ
0000A1H クロック選択
0000A2H
~
0000A7H
使用禁止
PACSR
R/W
DIRR
LPMCR
CKSCR
R/W
R/W
R/W
アドレス一致検出
機能
遅延割込み
低消費電力制御回
路
--000000B
-------0B
00011000B
11111100B
使用禁止
0000A8H ウォッチドッグタイマ制御レジスタ
WDTC
0000A9H タイムベースタイマ制御レジスタ
TBTC
0000AAH 時計タイマ制御レジスタ
WTC
ウォッチドッグタ
イマ
タイムベースタイ
R/W
マ
時計タイマ
R, W, R/W
( サブクロック )
R, W
X-XXX111B
1--00100B
10001000B
0000ABH
~
0000ADH
0000AEH フラッシュメモリコントロール
ステータスレジスタ
0000AFH
572
使用禁止
FMCS
R, W, R/W フラッシュ I/F
使用禁止
00010000B
付録 A I/O マップ
付表 A-1I/O マップ (4 / 6)
アドレス
0000B0H
0000B1H
0000B2H
0000B3H
0000B4H
0000B5H
0000B6H
0000B7H
0000B8H
0000B9H
0000BAH
0000BBH
0000BCH
0000BDH
0000BEH
0000BFH
0000C0H
レジスタ
割込み制御レジスタ 00
割込み制御レジスタ 01
割込み制御レジスタ 02
割込み制御レジスタ 03
割込み制御レジスタ 04
割込み制御レジスタ 05
割込み制御レジスタ 06
割込み制御レジスタ 07
割込み制御レジスタ 08
割込み制御レジスタ 09
割込み制御レジスタ 10
割込み制御レジスタ 11
割込み制御レジスタ 12
割込み制御レジスタ 13
割込み制御レジスタ 14
割込み制御レジスタ 15
~
0000FFH
アクセス
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
周辺
割込み
コントローラ
割込み
コントローラ
初期値
00000111B
00000111B
00000111B
00000111B
00000111B
00000111B
00000111B
00000111B
00000111B
00000111B
00000111B
00000111B
00000111B
00000111B
00000111B
00000111B
使用禁止
001FF0H プログラムアドレス検出レジスタ 0 下
位
001FF1H プログラムアドレス検出レジスタ 0 中
位
001FF2H プログラムアドレス検出レジスタ 0 上
位
001FF3H プログラムアドレス検出レジスタ 1 下
位
001FF4H プログラムアドレス検出レジスタ 1 中
位
001FF5H プログラムアドレス検出レジスタ 1 上
位
003900H
~
00391FH
003920H
003921H
003922H
003923H
003924H
003925H
003926H,
003927H
003928H
003929H
00392AH
00392BH
00392CH
00392DH
00392EH,
00392FH
略称
ICR00
ICR01
ICR02
ICR03
ICR04
ICR05
ICR06
ICR07
ICR08
ICR09
ICR10
ICR11
ICR12
ICR13
ICR14
ICR15
PADR0
R/W
XXXXXXXXB
PADR0
R/W
XXXXXXXXB
PADR0
R/W
PADR1
R/W
PADR1
R/W
XXXXXXXXB
PADR1
R/W
XXXXXXXXB
アドレス一致検出
機能
XXXXXXXXB
XXXXXXXXB
使用禁止
PPG0 ダウンカウンタレジスタ
PDCR0
R
PPG0 周期設定レジスタ
PCSR0
W
PPG0 デューティ設定レジスタ
PDUT0
W
16 ビット PPG0
11111111B
11111111B
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
16 ビット PPG1
11111111B
11111111B
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
使用禁止
PPG1 ダウンカウンタレジスタ
PDCR1
R
PPG1 周期設定レジスタ
PCSR1
W
PPG1 デューティ設定レジスタ
PDUT1
W
使用禁止
573
付録
付表 A-1I/O マップ (5 / 6)
アドレス
レジスタ
003930H
PPG2 ダウンカウンタレジスタ
003931H
003932H
PPG2 周期設定レジスタ
003933H
003934H
PPG2 デューティ設定レジスタ
003935H
003936H
~
003959H
00395AH
00395BH
00395CH
00395DH
00395EH
00395FH
003960H
574
アクセス
PDCR2
R
PCSR2
W
PDUT2
W
周辺
16 ビット PPG2
初期値
11111111B
11111111B
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
使用禁止
サブ秒データレジスタ
WTBR
R/W
秒データレジスタ
分データレジスタ
時間データレジスタ
WTSR
WTMR
WTHR
R/W
R/W
R/W
VRAM
R/W
LCD 表示用 RAM
~
00396BH
00396CH
~
00397FH
003980H
003981H
003982H
003983H
003984H
003985H
003986H,
003987H
003988H
003989H
00398AH
00398BH
00398CH
00398DH
00398EH,
00398FH
003990H
003991H
003992H
003993H
003994H
003995H
003996H,
003997H
003998H
003999H
00399AH
00399BH
00399CH
00399DH
略称
時計タイマ
( メインクロック )
XXXXXXXXB
XXXXXXXXB
---XXXXXB
--XXXXXXB
--XXXXXXB
---XXXXXB
LCD コントローラ
/ ドライバ
XXXXXXXXB
ステッピングモー
タコントローラ 0
XXXXXXXXB
------XXB
XXXXXXXXB
------XXB
--000000B
-0000000B
ステッピングモー
タコントローラ 1
XXXXXXXXB
------XXB
XXXXXXXXB
------XXB
--000000B
-0000000B
ステッピングモー
タコントローラ 2
XXXXXXXXB
------XXB
XXXXXXXXB
------XXB
--000000B
-0000000B
ステッピングモー
タコントローラ 3
XXXXXXXXB
------XXB
XXXXXXXXB
------XXB
--000000B
-0000000B
使用禁止
PWM1 コンペアレジスタ 0
PWC10
R/W
PWM2 コンペアレジスタ 0
PWC20
R/W
PWM1 選択レジスタ 0
PWM2 選択レジスタ 0
PWS10
PWS20
R/W
R/W
使用禁止
PWM1 コンペアレジスタ 1
PWC11
R/W
PWM2 コンペアレジスタ 1
PWC21
R/W
PWM1 選択レジスタ 1
PWM2 選択レジスタ 1
PWS11
PWS21
R/W
R/W
使用禁止
PWM1 コンペアレジスタ 2
PWC12
R/W
PWM2 コンペアレジスタ 2
PWC22
R/W
PWM1 選択レジスタ 2
PWM2 選択レジスタ 2
PWS12
PWS22
R/W
R/W
使用禁止
PWM1 コンペアレジスタ 3
PWC13
R/W
PWM2 コンペアレジスタ 3
PWC23
PWM1 選択レジスタ 3
PWM2 選択レジスタ 3
PWS13
PWS23
R/W
R/W
R/W
付録 A I/O マップ
付表 A-1I/O マップ (6 / 6)
アドレス
00399EH
レジスタ
~
0039FFH
003A00H
略称
アクセス
周辺
初期値
使用禁止
CAN インタフェース 0 用に予約済。
『CAN コントローラハードウェアマニュアル』参照。
~
003AFFH
003B00H
CAN インタフェース 1 用に予約済。
『CAN コントローラハードウェアマニュアル』参照。
~
003BFFH
003C00H
CAN インタフェース 0 用に予約済。
『CAN コントローラハードウェアマニュアル』参照。
~
003CFFH
003D00H
CAN インタフェース 1 用に予約済。
『CAN コントローラハードウェアマニュアル』参照。
~
003DFFH
003E00H
~
003EFFH
使用禁止
・初期値 "-" は未定義ビットを表し , "X" は値が不定であることを示します。
・表にリストされていない 0000H ~ 00FFH の範囲のアドレスは , MCU の主要機能のために予約されています。
これらの予約済アドレスへの読出しアクセスの結果は "X" になり , 書込みアクセスは禁止です。
● 書込み / 読出しについての説明
R/W :リード / ライト可能
R
:リードオンリ
W
:ライトオンリ
● 初期値についての説明
0 :このビットの初期値は "0" です。
1 :このビットの初期値は "1" です。
X :このビットの初期値は不定です。
575
付録
付録 B
命令
F2MC-16LX に使用している命令について説明します。
B.1 命令の種類
B.2 アドレッシング
B.3 直接アドレッシング
B.4 間接アドレッシング
B.5 実行サイクル数
B.6 実効アドレスフィールド
B.7 命令一覧表の読み方
B.8 F2MC-16LX 命令一覧表
B.9 命令マップ
管理番号 : CM44-00202-1
576
付録 B 命令
B.1
命令の種類
F2MC-16LX には , 以下に示す 351 種類の命令があります。
■ 命令の種類
• 転送系命令 ( バイト ) 41 命令
• 転送系命令 ( ワード , ロングワード ) 38 命令
• 加減算命令 ( バイト , ワード , ロングワード ) 42 命令
• 増減算命令 ( バイト , ワード , ロングワード ) 12 命令
• 比較命令 ( バイト , ワード , ロングワード ) 11 命令
• 符号なし乗除算命令 ( ワード , ロングワード ) 11 命令
• 符号付き乗除算命令 ( ワード , ロングワード ) 11 命令
• 論理演算命令 ( バイト , ワード ) 39 命令
• 論理演算命令 ( ロングワード ) 6 命令
• 符号反転命令 ( バイト , ワード ) 6 命令
• ノーマライズ命令 ( ロングワード ) 1 命令
• シフト命令 ( バイト , ワード , ロングワード ) 18 命令
• 分岐命令 50 命令 ( 分岐命令 1: 31 命令 , 分岐命令 2: 19 命令 )
• アキュムレータ操作命令 ( バイト , ワード ) 6 命令
• その他制御命令 ( バイト , ワード , ロングワード ) 28 命令
• ビット操作命令 21 命令
• ストリング命令 10 命令
577
付録
B.2
アドレッシング
F2MC-16LX では , 命令の実効アドレスフィールドまたは命令コード自体 ( インプラ
イド ) でアドレス形式が決定されます。命令コード自体でアドレス形式が決定する
場合は , 使用する命令コードに合わせてアドレスを指定します。命令によっては , 数
種類のアドレス指定方式から設定できるものがあります。
■ アドレッシング
F2MC-16LX には , 以下に示す 23 種類のアドレッシングがあります。
• 即値 (#imm)
• レジスタ直接
• 直接分岐アドレス (addr16)
• 物理直接分岐アドレス (addr24)
• I/O 直接 (io)
• 短縮直接アドレス (dir)
• 直接アドレス (addr16)
• I/O 直接ビットアドレス (io: bp)
• 短縮直接ビットアドレス (dir: bp)
• 直接ビットアドレス (addr16: bp)
• ベクタアドレス (#vct)
• レジスタ間接 (@RWj j=0 ~ 3)
• ポストインクリメント付レジスタ間接 (@RWj+ j=0 ~ 3)
• ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ~ 7, @RWj+disp16 j=0 ~ 3)
• ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ~ 3)
• ディスプレースメント付プログラムカウンタ間接 (@PC+disp16)
• ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7)
• プログラムカウンタ相対分岐アドレス (rel)
• レジスタリスト (rlst)
• アキュムレータ間接 (@A)
• アキュムレータ間接分岐アドレス (@A)
• 間接指定分岐アドレス (@ear)
• 間接指定分岐アドレス (@eam)
578
付録 B 命令
■ 実効アドレスフィールド
実効アドレスフィールドで指定される , アドレス形式を表 B.2-1 に示します。
表 B.2-1 実効アドレスフィールド
コード
表記
アドレス形式
00
R0
RW0
RL0
01
R1
RW1
(RL0)
02
R2
RW2
RL1
03
R3
RW3
(RL1)
04
R4
RW4
RL2
05
R5
RW5
(RL2)
06
R6
RW6
RL3
07
R7
RW7
(RL3)
08
@RW0
09
@RW1
レジスタ直接
ea は左から順に
バイト
ワード
ロングワード
の型に対応する。
デフォルトバンク
なし
DTB
DTB
レジスタ間接
0A
@RW2
ADB
0B
@RW3
SPB
0C
@RW0+
DTB
0D
@RW1+
0E
@RW2+
0F
@RW3+
SPB
10
@RW0+disp8
DTB
11
@RW1+disp8
DTB
12
@RW2+disp8
ADB
13
@RW3+disp8
14
@RW4+disp8
15
@RW5+disp8
DTB
16
@RW6+disp8
ADB
17
@RW7+disp8
SPB
18
@RW0+disp16
DTB
19
@RW1+disp16
1A
@RW2+disp16
IB
@RW3+disp16
1C
@RW0+RW7
インデックス付レジスタ間接
DTB
1D
@RW1+RW7
インデックス付レジスタ間接
DTB
1E
@PC+disp16
16 ビットディスプレースメント付 PC 間接
PCB
1F
addr16
直接アドレス
DTB
ポストインクリメント付
レジスタ間接
8 ビットディスプレースメント付
レジスタ間接
16 ビットディスプレースメント付
レジスタ間接
DTB
ADB
SPB
DTB
DTB
ADB
SPB
579
付録
B.3
直接アドレッシング
直接アドレッシングでは , オペランド値 , レジスタおよびアドレスを直接指定しま
す。
■ 直接アドレッシング
● 即値 (#imm)
オペランドの値を直接指定します。(#imm4/#imm8/#imm16/#imm32) 。
図 B.3-1 に例を示します。
図 B.3-1 即値 (#imm) 例
MOVW A, #01212H (A にオペランドの値を格納する命令 )
実行前
A 2233
4455
実行後
A 4455
1 2 1 2 ( 命令によっては AL → AH に転送が行われる )
● レジスタ直接
オペランドとして , 直接レジスタを指定します。指定できるレジスタを表 B.3-1 に示し
ます。
表 B.3-1 レジスタ直接
汎用レジスタ
専用レジスタ
*:
580
バイト
R0, R1, R2, R3, R4, R5, R6, R7
ワード
RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7
ロングワード
RL0, RL1, RL2, RL3
アキュムレータ
A, AL
ポインタ
SP *
バンク
PCB, DTB, USB, SSB, ADB
ページ
DPR
制御
PS, CCR, RP, ILM
SP は , コンディションコードレジスタ (CCR) 中の S フラグビットの値に応じてユーザス
タックポインタ (USP) またはシステムスタックポインタ (SSP) のどちらか一方が選択さ
れ , 使用されます。分岐系の命令ではプログラムカウンタ (PC) は命令のオペランドには
記述されることなく指定されます。
付録 B 命令
図 B.3-2 に例を示します。
図 B.3-2 レジスタ直接例
MOV R0, A ( 汎用レジスタ R0 に A の下位 8 ビットを転送する命令 )
実行前
A 0716
2534
メモリ空間
R0
実行後
A 0716
2564
??
メモリ空間
R0
34
● 直接分岐アドレス (addr16)
分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント
のデータ長は 16 ビットで , 論理空間内での分岐先を示します。無条件分岐命令 , サブ
ルーチンコール命令およびソフトウェア割込み命令に使用します。アドレスの bit23 ~
bit16 はプログラムカウンタバンクレジスタ (PCB) で指定されます。図 B.3-3 に例を示
します。
図 B.3-3 直接分岐アドレス (addr16) 例
JMP 3B20H ( バンク内で直接分岐アドレス指定で , 無条件分岐を行う命令 )
実行前
PC 3 C 2 0
メモリ空間
PCB 4 F
4F3B20H 次の命令
実行後
PC 3 B 2 0
PCB 4 F
4F3C20H
62
4F3C21H
20
4F3C22H
3B
JMP 3B20H
581
付録
● 物理直接分岐ア