8.9MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通マイクロエレクトロニクス
CONTROLLER MANUAL
CM44-10122-4
F2MC-16LX
16 ビット・マイクロコントローラ
MB90390 Series
ハードウェアマニュアル
F2MC-16LX
16 ビット・マイクロコントローラ
MB90390 Series
ハードウェアマニュアル
富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。
ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。
開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。
「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック
項目をリストにしたものです。
http://edevice.fujitsu.com/micom/jp-support/
富士通マイクロエレクトロニクス株式会社
はじめに
■ 本書の目的と対象読者
富士通マイクロエレクトロニクス製品につきまして , 平素より格別のご愛読を賜り厚
くお礼申し上げます。
MB90390 シリーズは , ASIC (Application Specific IC) 対応が可能なオリジナル 16 ビッ
ト・ワンチップマイクロコントローラである F2MC®-16LX ファミリの汎用品の一つと
して開発された製品です。
本書は , 実際にこの半導体を使って製品を設計する技術者の方を対象に , MB90390 シ
リーズの機能や動作について記載しています。本書をご一読ください。
■ 商標
F2MCは, FUJITSU Flexible Microcontrollerの略で富士通マイクロエレクトロニクス株式
会社の商標です。
Controller Area Network (CAN) はロバート・ボッシュ GmbH の特許です。
Embedded Algorithm は Advanced Micro Devices, Inc. の商標です。
その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録
商標です。
■ ライセンス
本製品には,お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使
用されることを条件に,Philips 社 I2C 特許がライセンスされております。
Purchase of Fujitsu I2C components conveys a license under the Philips I2C Patent Rights to
use, these components in an I2C system provided that the system conforms to the I2C Standard
Specification as defined by Philips.
i
■ 本書の全体構成
本書は , 以下に示す 29 の章および付録から構成されています。
第 1 章 概要
MB90390 シリーズの特長や基本的な仕様について説明します。
第 2 章 CPU
CPU の機能と動作について説明します。
第 3 章 割込み
MB90390 シリーズの割込みと拡張インテリジェント I/O サービス (EI2OS) の機能と
動作について説明します。
第 4 章 遅延割込み
遅延割込みの機能と動作について説明します。
第 5 章 クロック
クロックについて説明します。
第 6 章 クロックモジュレータ
クロックモジュレータの概要 , 特長 , レジスタの構成 , 動作について説明します。
第 7 章 リセット
リセットについて説明します。
第 8 章 低消費電力モード
低消費電力モードについて説明します。
第 9 章 メモリアクセスモード
メモリアクセスモードの機能と動作について説明します。
第 10 章 I/O ポート
I/O ポートの機能と動作について説明します。
第 11 章 タイムベースタイマ
タイムベースタイマの機能と動作について説明します。
第 12 章 ウォッチドッグタイマ
ウォッチドッグタイマの機能と動作について説明します。
第 13 章 16 ビット入出力タイマ
16 ビット入出力タイマの機能と動作について説明します。
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
16 ビットリロードタイマ ( イベントカウント機能付き ) の機能と動作について説明
します。
第 15 章 時計タイマ
時計タイマの機能と動作について説明します。
第 16 章 8/16 ビット PPG
8/16 ビット PPG の機能と概要について説明します。
第 17 章 DTP/ 外部割込み
DTP/ 外部割込みの機能と動作について説明します。
ii
第 18 章 8/10 ビット A/D コンバータ
MB90390 シリーズの 8/10 ビット A/D コンバータの機能と動作について説明します。
第 19 章 UART0, UART1
UART0, UART1 の機能と動作について説明します。
第 20 章 UART2, UART3
UART2, UART3 の機能と動作について説明します。
第 21 章 400 kHz I2C インタフェース
I2C インタフェースの概要 , レジスタの構成 / 機能および I2C インタフェースの動作
について説明します。
第 22 章 シリアル I/O
シリアル I/O の機能と動作について説明します。
第 23 章 CAN コントローラ
CAN コントローラの機能と概要について説明します。
第 24 章 ステッピングモータ コントローラ
ステッピングモータコントローラの機能と動作について説明します。
第 25 章 サウンドジェネレータ
サウンドジェネレータの機能と動作について説明します。
第 26 章 アドレス一致検出機能
アドレス一致検出の機能と動作について説明します。
第 27 章 ROM ミラー機能選択 モジュール
ROM ミラー機能選択モジュールについて説明します。
第 28 章 3M ビット フラッシュメモリ
3M ビットフラッシュメモリの機能や動作について説明します。
第 29 章 シリアル書込み接続例
F2MC-16LX MB90F394H(A) フラッシュマイコンのプログラマを用いたシリアル書
込み接続例について説明します。
付録
I/O マップ , F2MC-16LX の命令などを示します。
iii
•
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ
い。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ
たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ
ては , 当社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し
たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性
が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。
ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ
い。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関
連法規等の規制をご確認の上 , 必要な手続きをおとりください。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。
Copyright ©2007-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved.
iv
目次
第1章
概要 .......................................................................................................... 1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
製品概要 ............................................................................................................................... 2
特長 ...................................................................................................................................... 3
MB90V390H のブロックダイヤグラム ................................................................................. 6
MB90V390HA/MB90V390HB のブロックダイヤグラム ....................................................... 7
MB90394HA/MB90F394H(A) のブロックダイヤグラム ....................................................... 8
端子配列図 ............................................................................................................................ 9
パッケージ外形寸法図 ........................................................................................................ 12
端子機能説明 ...................................................................................................................... 13
入出力回路形式 .................................................................................................................. 18
デバイスの取扱い ............................................................................................................... 20
第2章
CPU ........................................................................................................ 23
2.1 CPU の概要 ........................................................................................................................
2.2 メモリ空間 ..........................................................................................................................
2.3 メモリ空間マップ ...............................................................................................................
2.4 リニア方式によるアドレス指定 .........................................................................................
2.5 バンク方式によるアドレス指定 .........................................................................................
2.6 メモリ空間における多バイト長データ ...............................................................................
2.7 レジスタ .............................................................................................................................
2.7.1
アキュムレータ (A) ...................................................................................................
2.7.2
ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) .....................
2.7.3
プロセッサステータス (PS) .....................................................................................
2.7.4
プログラムカウンタ (PC) .........................................................................................
2.8 レジスタバンク ..................................................................................................................
2.9 プレフィックスコード ........................................................................................................
2.10 割込み抑止命令 ..................................................................................................................
2.11 "「DIV A, Ri」", "「DIVW A, RWi」" 命令の使用上の注意 .................................................
第3章
24
25
28
30
31
33
34
36
37
38
41
42
44
46
47
割込み .................................................................................................... 49
3.1 割込みの概要 ......................................................................................................................
3.2 割込みベクタ ......................................................................................................................
3.3 割込み制御レジスタ (ICR) ..................................................................................................
3.4 割込みフロー ......................................................................................................................
3.5 ハードウェア割込み ...........................................................................................................
3.5.1
ハードウェア割込みの動作 ......................................................................................
3.5.2
ハードウェア割込みの発生と解除 ............................................................................
3.5.3
多重割込み ...............................................................................................................
3.6 ソフトウェア割込み ...........................................................................................................
3.7 拡張インテリジェント I/O サービス (EI2OS) .....................................................................
3.7.1
拡張インテリジェント I/O サービスディスクリプタ (ISD) ......................................
3.7.2
EI2OS ステータスレジスタ (ISCS) ..........................................................................
3.8 拡張インテリジェント I/O サービス (EI2OS) の動作フローと使用手順 .............................
3.9 例外 ....................................................................................................................................
v
50
53
55
58
60
61
62
64
65
67
69
71
73
76
第4章
4.1
4.2
4.3
第5章
遅延割込み ............................................................................................. 77
遅延割込みモジュールの概要 ............................................................................................. 78
遅延割込みのレジスタ ........................................................................................................ 79
遅延割込みの動作 ............................................................................................................... 80
クロック ................................................................................................. 81
5.1 クロックの概要 ..................................................................................................................
5.2 クロック発生部のブロックダイヤグラム ...........................................................................
5.3 クロック選択レジスタ ........................................................................................................
5.3.1
クロック選択レジスタ (CKSCR) ..............................................................................
5.3.2
PLL および特殊構成制御レジスタ (PSCCR) ...........................................................
5.4 クロックモード ..................................................................................................................
5.5 発振安定待ち時間 ...............................................................................................................
5.6 振動子と外部クロックの接続 .............................................................................................
5.7 メインクロック HCLK, HCLKX の出力 ..............................................................................
第6章
クロックモジュレータ ........................................................................... 99
6.1 クロックモジュレータの概要 ...........................................................................................
6.2 クロックモジュレータのレジスタ説明 .............................................................................
6.3 クロックモジュレータのクロック変調レジスタ ..............................................................
6.3.1
クロックモジュレータ制御レジスタ (CMCR) ........................................................
6.3.2
クロック変調パラメータレジスタ (CMPR) ............................................................
6.4 クロックモジュレータの使用上の注意 .............................................................................
第7章
7.1
7.2
7.3
7.4
7.5
7.6
第8章
9.1
9.2
9.3
100
101
102
103
108
114
リセット ............................................................................................... 119
リセットの概要 ................................................................................................................
リセット要因と発振安定待ち時間 ....................................................................................
外部リセット端子 .............................................................................................................
リセット動作 ....................................................................................................................
リセット要因ビット .........................................................................................................
リセットによる各端子の状態 ...........................................................................................
120
122
123
124
126
128
低消費電力モード ................................................................................ 129
8.1 低消費電力モードの概要 ..................................................................................................
8.2 低消費電力制御回路のブロックダイヤグラム ..................................................................
8.3 低消費電力モード制御レジスタ (LPMCR) .......................................................................
8.4 CPU 間欠動作モード ........................................................................................................
8.5 スタンバイモード .............................................................................................................
8.5.1
スリープモード ......................................................................................................
8.5.2
タイムベースタイマモード ....................................................................................
8.5.3
ストップモード ......................................................................................................
8.6 状態遷移図 ........................................................................................................................
8.7 スタンバイモードとリセット時の端子状態 .....................................................................
8.8 低消費電力モード使用上の注意 .......................................................................................
第9章
82
84
86
87
90
92
95
96
97
130
133
135
139
140
141
143
145
147
149
150
メモリアクセスモード ......................................................................... 153
メモリアクセスモードの概要 ........................................................................................... 154
メモリアクセスモードのモード端子 ................................................................................ 155
メモリアクセスモードのモードデータ ............................................................................. 156
vi
第 10 章
I/O ポート ............................................................................................. 159
10.1 I/O ポート .........................................................................................................................
10.2 I/O ポートのレジスタ .......................................................................................................
10.2.1
ポートデータレジスタ ...........................................................................................
10.2.2
データ方向レジスタ ...............................................................................................
10.2.3
アナログ入力許可レジスタ ....................................................................................
10.2.4
入力レベル選択レジスタ ........................................................................................
第 11 章
160
161
162
164
165
166
タイムベースタイマ ............................................................................. 167
11.1 タイムベースタイマの概要 ............................................................................................... 168
11.2 タイムベースタイマ制御レジスタ .................................................................................... 169
11.3 タイムベースタイマの動作 ............................................................................................... 171
第 12 章
ウォッチドッグタイマ ......................................................................... 173
12.1 ウォッチドッグタイマの概要 ........................................................................................... 174
12.2 ウォッチドッグタイマの動作 ........................................................................................... 177
第 13 章
16 ビット入出力タイマ ........................................................................ 181
13.1 16 ビット入出力タイマの概要 ..........................................................................................
13.2 16 ビット入出力タイマのレジスタ ..................................................................................
13.3 16 ビットフリーランタイマ .............................................................................................
13.3.1
タイマデータレジスタ ...........................................................................................
13.3.2
タイマ制御ステータスレジスタ .............................................................................
13.3.3
16 ビットフリーランタイマの動作 ........................................................................
13.4 アウトプットコンペア ......................................................................................................
13.4.1
アウトプットコンペアのレジスタ ..........................................................................
13.4.2
アウトプットコンペア制御ステータスレジスタ ....................................................
13.4.3
16 ビットアウトプットコンペアの動作 .................................................................
13.5 インプットキャプチャ ......................................................................................................
13.5.1
インプットキャプチャのレジスタ ..........................................................................
13.5.2
16 ビットインプットキャプチャの動作 .................................................................
第 14 章
16 ビットリロードタイマ ( イベントカウント機能付き ) .................... 213
14.1 16 ビットリロードタイマ ( イベントカウント機能付き ) の概要 .....................................
14.2 16 ビットリロードタイマのレジスタ ...............................................................................
14.2.1
タイマ制御ステータスレジスタ (TMCSR) .............................................................
14.2.2
16 ビットタイマレジスタ (TMR)/16 ビットリロードレジスタ (TMRLR) の
レジスタ配置 ...............................................................................................................
14.3 16 ビットリロードタイマの内部 / 外部クロック動作 ......................................................
14.4 16 ビットリロードタイマのアンダフロー動作 ................................................................
14.5 16 ビットリロードタイマの出力端子機能 ........................................................................
14.6 カウンタの動作状態 .........................................................................................................
第 15 章
182
184
186
187
188
191
193
194
195
200
205
206
211
214
216
217
220
221
223
224
225
時計タイマ ........................................................................................... 227
15.1 時計タイマの概要 .............................................................................................................
15.2 時計タイマのレジスタ ......................................................................................................
15.2.1
タイマ制御レジスタ ...............................................................................................
15.2.2
サブ秒レジスタ ......................................................................................................
15.2.3
秒 / 分 / 時間レジスタ .............................................................................................
vii
228
229
230
234
235
第 16 章
8/16 ビット PPG .................................................................................. 237
16.1 8/16 ビット PPG の概要 ...................................................................................................
16.2 8/16 ビット PPG のブロックダイヤグラム ......................................................................
16.3 8/16 ビット PPG のレジスタ ............................................................................................
16.3.1
PPG0 動作モード制御レジスタ (PPGC0) ..............................................................
16.3.2
PPG1 動作モード制御レジスタ (PPGC1) ..............................................................
16.3.3
PPG0/1 クロック選択レジスタ (PPG01) ...............................................................
16.3.4
リロードレジスタ (PRLL, PRLH) ...........................................................................
16.4 8/16 ビット PPG の動作 ...................................................................................................
16.5 8/16 ビット PPG のカウントクロックの選択 ..................................................................
16.6 8/16 ビット PPG のパルスの端子出力の制御 ..................................................................
16.7 8/16 ビット PPG の割込み ...............................................................................................
16.8 8/16 ビット PPG の各ハードウェアの初期値 ..................................................................
第 17 章
17.1
17.2
17.3
17.4
17.5
DTP/ 外部割込み .................................................................................. 259
DTP/ 外部割込みの概要 ....................................................................................................
DTP/ 外部割込みのレジスタ .............................................................................................
DTP/ 外部割込みの動作 ....................................................................................................
DTP 要求と外部割込み要求の切換え ...............................................................................
DTP/ 外部割込み使用上の注意 .........................................................................................
第 18 章
260
262
264
266
267
8/10 ビット A/D コンバータ ................................................................. 269
18.1 8/10 ビット A/D コンバータの概要 ..................................................................................
18.2 8/10 ビット A/D コンバータの構成 ..................................................................................
18.3 8/10 ビット A/D コンバータの端子 ..................................................................................
18.4 8/10 ビット A/D コンバータのレジスタ ...........................................................................
18.4.1
アナログ入力許可 /A/D コンバータ選択レジスタ ..................................................
18.4.2
A/D 制御ステータスレジスタ 1 (ADCS1) ...............................................................
18.4.3
A/D 制御ステータスレジスタ 0(ADCS0) ................................................................
18.4.4
A/D データレジスタ (ADCR0, ADCR1) ..................................................................
18.5 8/10 ビット A/D コンバータの割込み ...............................................................................
18.6 8/10 ビット A/D コンバータの動作 ..................................................................................
18.6.1
A/D 変換の EI2OS 使用 ...........................................................................................
18.6.2
A/D 変換データ保護機能 ........................................................................................
18.7 A/D コンバータ使用上の注意 ...........................................................................................
18.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発変換モードの EI2OS 起動例 ) .......
18.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続変換モードの EI2OS 起動例 ) .......
18.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止変換モードの EI2OS 起動例 ) .......
第 19 章
238
239
243
244
246
248
250
251
254
255
256
257
270
272
274
276
277
278
280
283
285
286
288
289
291
292
295
298
UART0, UART1 ................................................................................... 301
19.1 UART0, UART1 の特長 ....................................................................................................
19.2 UART のブロックダイヤグラム .......................................................................................
19.3 UART のレジスタ .............................................................................................................
19.3.1
シリアルモード制御レジスタ (UMC) .....................................................................
19.3.2
ステータスレジスタ (USR) ....................................................................................
19.3.3
インプットデータレジスタ (UIDR) とアウトプットデータレジスタ (UODR) .......
19.3.4
レート・データレジスタ (URD) .............................................................................
19.4 UART0, UART1 の動作 ....................................................................................................
19.5 ボーレート ........................................................................................................................
viii
302
303
304
305
307
310
311
313
314
19.6 内部クロックおよび外部クロック ....................................................................................
19.7 転送データフォーマット ..................................................................................................
19.8 パリティビット ................................................................................................................
19.9 割込み生成とフラグのセットタイミング .........................................................................
19.9.1
受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング ............
19.9.2
受信動作時 ( モード 2) のフラグのセットタイミング ............................................
19.9.3
送信動作時のフラグのセットタイミング ...............................................................
19.9.4
送受信動作時のステータスフラグ ..........................................................................
19.10 UART0, UART1 の応用例 .................................................................................................
第 20 章
UART2, UART3 ................................................................................... 327
20.1 UART2, UART3 の概要 ....................................................................................................
20.2 UART2, UART3 の構成 ....................................................................................................
20.3 UART2, UART3 の端子 ....................................................................................................
20.4 UART2, UART3 のレジスタ .............................................................................................
20.4.1
シリアル制御レジスタ (SCR2/SCR3) ....................................................................
20.4.2
シリアルモードレジスタ (SMR2/SMR3) ................................................................
20.4.3
シリアルステータスレジスタ (SSR2/SSR3) ..........................................................
20.4.4
受信データレジスタ / 送信データレジスタ
(RDR2/RDR3 および TDR2/TDR3) .............................................................................
20.4.5
拡張ステータス制御レジスタ (ESCR2/ESCR3) ....................................................
20.4.6
拡張通信制御レジスタ (ECCR2/ECCR3) ...............................................................
20.4.7
ボーレートジェネレータレジスタ 0, 1 (BGR02/BGR03,BGR12/BGR13) .............
20.5 UART2, UART3 の割込み .................................................................................................
20.5.1
受信割込み発生とフラグセットのタイミング ........................................................
20.5.2
送信割込み発生とフラグセットのタイミング ........................................................
20.6 UART2, UART3 のボーレート ..........................................................................................
20.6.1
ボーレート設定 ......................................................................................................
20.6.2
リロードカウンタ ...................................................................................................
20.7 UART2, UART3 の動作 ....................................................................................................
20.7.1
非同期モード ( 動作モード 0, 1) の動作 .................................................................
20.7.2
同期モード ( 動作モード 2) の動作 .........................................................................
20.7.3
LIN 機能 ( 動作モード 3) の動作 .............................................................................
20.7.4
シリアル端子直接アクセス ....................................................................................
20.7.5
双方向通信機能 ( ノーマルモード ) ........................................................................
20.7.6
マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) .....................................
20.7.7
LIN 通信機能 ...........................................................................................................
20.7.8
UART2,UART3 の LIN 通信フローチャート例 ( 動作モード 3) ..............................
20.8 UART2, UART3 使用上の注意 ..........................................................................................
第 21 章
317
318
319
320
321
322
323
324
325
328
331
336
338
339
342
344
347
349
352
354
355
359
361
363
365
368
370
372
376
380
384
385
387
390
391
393
400 kHz I2C インタフェース ................................................................ 397
21.1 I2C インタフェースの概要 ................................................................................................
21.2 I2C インタフェースのレジスタ ........................................................................................
21.2.1
I2C バスステータスレジスタ (IBSR) ......................................................................
21.2.2
I2C バス制御レジスタ (IBCR) .................................................................................
21.2.3
I2C10 ビットスレーブアドレスレジスタ (ITBA) ....................................................
21.2.4
I2C10 ビットアドレスマスクレジスタ (ITMK) .......................................................
21.2.5
I2C7 ビットスレーブアドレスレジスタ (ISBA) ......................................................
21.2.6
I2C データレジスタ (IDAR) ....................................................................................
ix
398
400
402
405
414
415
417
419
21.2.7
I2C クロック制御レジスタ (ICCR) .........................................................................
21.2.8
ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR) .......................
21.3 I2C インタフェースの動作 ................................................................................................
21.4 プログラミングフローチャート .......................................................................................
第 22 章
シリアル I/O ......................................................................................... 431
22.1 シリアル I/O の概要 ..........................................................................................................
22.2 シリアル I/O のレジスタ ...................................................................................................
22.2.1
シリアルモード制御ステータスレジスタ (SMCS) .................................................
22.2.2
シリアルシフトデータレジスタ (SDR) ..................................................................
22.3 シリアル I/O プリスケーラ (CDCR) .................................................................................
22.4 シリアル I/O の動作 ..........................................................................................................
22.4.1
シフトクロック ......................................................................................................
22.4.2
シリアル I/O の動作状態 ........................................................................................
22.4.3
シフト動作のスタート / ストップタイミング ........................................................
22.4.4
拡張シリアル I/O インタフェースの割込み機能 .....................................................
第 23 章
420
424
425
428
432
433
434
438
439
440
441
442
444
447
CAN コントローラ ............................................................................... 449
23.1 CAN コントローラの特長 .................................................................................................
23.2 CAN コントローラのブロックダイヤグラム ....................................................................
23.3 全体制御レジスタの一覧 ..................................................................................................
23.4 メッセージバッファ (ID レジスタ ) の一覧 ......................................................................
23.5 メッセージバッファ (DLC/ データレジスタ ) の一覧 .......................................................
23.6 CAN コントローラのレジスタ分類 ..................................................................................
23.6.1
制御ステータスレジスタ (CSR) .............................................................................
23.6.2
バス動作停止ビット (HALT=1) ...............................................................................
23.6.3
ラストイベント表示レジスタ (LEIR) .....................................................................
23.6.4
受信および送信エラーカウンタ (RTEC) ................................................................
23.6.5
ビットタイミングレジスタ (BTR) ..........................................................................
23.6.6
メッセージバッファ有効レジスタ (BVALR) ..........................................................
23.6.7
IDE レジスタ (IDER) ..............................................................................................
23.6.8
送信要求レジスタ (TREQR) ...................................................................................
23.6.9
送信 RTR レジスタ (TRTRR) .................................................................................
23.6.10
リモートフレーム受信待機レジスタ (RFWTR) ......................................................
23.6.11
送信解除レジスタ (TCANR) ...................................................................................
23.6.12
送信完了レジスタ (TCR) ........................................................................................
23.6.13
送信割込み許可レジスタ (TIER) ............................................................................
23.6.14
受信完了レジスタ (RCR) ........................................................................................
23.6.15
リモート要求受信レジスタ (RRTRR) ....................................................................
23.6.16
受信オーバランレジスタ (ROVRR) ........................................................................
23.6.17
受信割込み許可レジスタ (RIER) ............................................................................
23.6.18
アクセプタンスマスク選択レジスタ (AMSR) ........................................................
23.6.19
アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) ....................................
23.6.20
メッセージバッファ ...............................................................................................
23.6.21
ID レジスタ x (x=0 ~ 15) (IDRx) ............................................................................
23.6.22
DLC レジスタ x (x=0 ~ 15) (DLCRx) .....................................................................
23.6.23
データレジスタ x (x=0 ~ 15) (DTRx) ....................................................................
23.7 CAN コントローラの送信 .................................................................................................
23.8 CAN コントローラの受信 .................................................................................................
x
450
451
452
454
456
458
459
464
466
468
469
471
472
473
474
475
476
477
478
479
480
481
482
483
485
487
488
490
491
493
495
23.9
23.10
23.11
23.12
23.13
23.14
23.15
23.16
CAN コントローラの受信フローチャート ........................................................................
CAN コントローラの使用方法 ..........................................................................................
メッセージバッファ (x) による送信方法 ..........................................................................
メッセージバッファ (x) による受信方法 ..........................................................................
マルチレベルメッセージバッファの構成の決定 ..............................................................
CAN1, CAN3 RX/TX 端子のリダイレクト設定 ................................................................
CAN ダイレクトモードレジスタ ......................................................................................
CAN コントローラの使用上の注意 ..................................................................................
第 24 章
ステッピングモータコントローラ ....................................................... 513
24.1 ステッピングモータコントローラの概要 .........................................................................
24.2 ステッピングモータコントローラのレジスタ ..................................................................
24.2.1
PWM 制御 0 レジスタ ............................................................................................
24.2.2
PWM1 および PWM2 コンペアレジスタ ................................................................
24.2.3
PWM1 および PWM2 選択レジスタ .......................................................................
24.3 ステッピングモータコントローラ使用上の注意 ..............................................................
第 25 章
26.1
26.2
26.3
26.4
526
527
528
532
533
534
535
アドレス一致検出機能 ......................................................................... 537
アドレス一致検出機能の概要 ...........................................................................................
アドレス一致検出機能のレジスタ ....................................................................................
アドレス一致検出機能の動作 ...........................................................................................
アドレス一致検出機能の使用例 .......................................................................................
第 27 章
514
515
516
518
519
523
サウンドジェネレータ ......................................................................... 525
25.1 サウンドジェネレータの概要 ...........................................................................................
25.2 サウンドジェネレータのレジスタ ....................................................................................
25.2.1
サウンドジェネレータ制御レジスタ ......................................................................
25.2.2
周波数データレジスタ ...........................................................................................
25.2.3
振幅データレジスタ ...............................................................................................
25.2.4
デクリメントグレードレジスタ .............................................................................
25.2.5
トーンカウントレジスタ ........................................................................................
第 26 章
498
499
501
503
505
507
509
510
538
539
541
542
ROM ミラー機能選択モジュール ......................................................... 545
27.1 ROM ミラー機能選択モジュールの概要 .......................................................................... 546
27.2 ROM ミラー機能選択レジスタ (ROMM) .......................................................................... 547
第 28 章
3M ビットフラッシュメモリ ................................................................ 549
28.1 3M ビットフラッシュメモリの概要 .................................................................................
28.2 フラッシュメモリ全体のブロックダイヤグラムとフラッシュメモリのセクタ構成 ........
28.3 書込み / 消去モード ..........................................................................................................
28.4 フラッシュメモリ制御ステータスレジスタ (FMCS) ........................................................
28.5 フラッシュメモリ自動アルゴリズム起動方法 ..................................................................
28.6 自動アルゴリズム実行状態の確認 ....................................................................................
28.6.1
データポーリングフラグ (DQ7) .............................................................................
28.6.2
トグルビットフラグ (DQ6) ....................................................................................
28.6.3
タイミングリミット超過フラグ (DQ5) ..................................................................
28.6.4
セクタ消去タイマフラグ (DQ3) .............................................................................
28.6.5
トグルビット 2 フラグ (DQ2) .................................................................................
28.7 フラッシュメモリ書込み / 消去の詳細説明 ......................................................................
xi
550
551
553
555
557
559
561
562
563
564
565
566
28.7.1
読出し / リセット状態にする ..................................................................................
28.7.2
データの書込み ......................................................................................................
28.7.3
全データの消去 ( チップ消去 ) ...............................................................................
28.7.4
任意データの消去 ( セクタ消去 ) ............................................................................
28.7.5
セクタ消去の一時停止 ...........................................................................................
28.7.6
セクタ消去の再開 ...................................................................................................
28.8 3M ビットフラッシュメモリ使用上の注意 .......................................................................
28.9 フラッシュメモリにおけるリセットベクタアドレス .......................................................
28.10 3M ビットフラッシュメモリのプログラム例 ...................................................................
第 29 章
29.1
29.2
29.3
29.4
29.5
付録 A
付録 B
B.1
B.2
B.3
B.4
B.5
B.6
B.7
B.8
B.9
付録 C
付録 D
索引
シリアル書込み接続例 ......................................................................... 581
MB90F394H(A) シリアル書込み接続の基本構成 .............................................................
シリアル書込み接続例 ......................................................................................................
シリアル書込み接続例 ( ライタから電源供給時 ) .............................................................
フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) .....................
フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 ) ..............
付録
567
568
570
571
573
574
575
576
577
582
586
588
590
592
.............................................................................................................. 595
I/O マップ ....................................................................................................................
命令 .............................................................................................................................
命令の種類 ................................................................................................................
アドレッシング .........................................................................................................
直接アドレッシング ..................................................................................................
間接アドレッシング ..................................................................................................
実行サイクル数 .........................................................................................................
実効アドレスフィールド ..........................................................................................
命令一覧表の読み方 ..................................................................................................
F2MC-16LX 命令一覧表 ............................................................................................
命令マップ ................................................................................................................
フラッシュメモリモードのタイミングダイヤグラム ..................................................
割込みベクタ一覧表 ....................................................................................................
596
611
612
613
615
622
629
631
633
636
650
672
677
.............................................................................................................. 681
xii
本版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
611 ∼ 671 「付録 B 命令」全体を変更
変更箇所は , 本文中のページ左側の│によって示しています。
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
以下の型格を追加
(MB90V390HA, MB90V390HB, MB90394HA, MB90F394HA)
-
レジスタ名称、端子名称を変更
( プログラムバンクレジスタ (PCB) → プログラムカウンタバンクレジスタ (PCB))
( アディショナルバンクレジスタ (ADB) → アディショナルデータバンクレジスタ
(ADB))
(ESCR3 → ESCR2/ESCR3)
(SIN3 → SIN2/SIN3)
(SOT3 → SOT2/SOT3)
(SMR3 → SMR2,SMR3)
(ECCR3 → ECCR2/ECCR3)
(BGR0/1 → BGR02/BGR03,BGR12/BGR13)
(SSR3 → SSR2/SSR3)
(RDR3 → RDR2/RDR3)
(SCR3 → SCR2/SCR3)
(TDR3 → TDR2/TDR3)
(SCK3 → SCK2/SCK3)
(UODR0, 1, 2 → UODR0, UODR1)
(UIDR0, 1, 2 → UIDR0, UIDR1)
機能名を変更
(UART0, 1, 2 → UART0, UART1)
(UART3 → UART2, UART3)
(UART3 同期クロックモード → UART2, UART3 同期クロックモード )
3
表 1.2-1 MB90390 シリーズの特長 (1 / 3) を変更
(MB90V390H の UART:3ch → 2 チャネル )
( 時計タイマ:「発振偏差の修正に対応」を削除 )
(16 ビット入出力タイマ:fsys/22, fsys/24, fsys/26, fsys/28 → fsys/21, fsys/22, fsys/23, fsys/
24, fsys/25, fsys/26, fsys/27)
4
表 1.2-1 MB90390 シリーズの特長 (2 / 3) を変更
( クロックモジュレータを追加 )
5
表 1.2-1 MB90390 シリーズの特長 (3 / 3) を変更
( フラッシュメモリを変更 )
(* の記述を追加 )
6
図 1.3-1 MB90V390H のブロックダイヤグラムを変更
(AN[14*:0] → AN[14:0])
xiii
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
8
図 1.5-1 MB90394HA/MB90F394H(A) のブロックダイヤグラムを変更
(10 ビット A/D コンバータ 8ch → 10 ビット A/D コンバータ 15 チャネル )
(AN[7:0] → AN[14:0])
9
図 1.6-1 MB90V390H の端子配列図を変更
(P44/SPB → P44)
(PGA-299 → LQFP-120 プローブケーブルヘッダ部における端子配列図 )
11
図 1.6-3 MB90394HA/MB90F394H(A) の端子配列図を変更
(P42 → P42/SDA*)
(P43 → P43/SCL*)
(* : I2C は MB90F394H(A) では使用できません。の記述を追加 )
13
表 1.8-1 端子機能説明 (1 / 5)
端子番号 98 の端子名を変更
(P00 ∼ P05 → P05)
15
表 1.8-1 端子機能説明 (3 / 5)
端子番号 48 を変更
(AN8* → AN8)
端子番号 49 を変更
(AN9 * → AN9)
端子番号 50 を変更
(AN10* → AN10)
端子番号 51 を変更
(AN11* → AN11)
端子番号 52 を変更
(AN12* → AN12)
16
表 1.8-1 端子機能説明 (4 / 5)
端子番号 53 を変更
(AN13 * → AN13)
端子番号 54 を変更
(AN14* → AN14)
18
表 1.9-1 入出力回路形式 (1 / 2) の分類 D の備考を変更
(( 注意事項 ) 入力特性は端子やデバイスにより異なります。データシートを参照して
ください。の記述を追加 )
19
表 1.9-1 入出力回路形式 (2 / 2) の分類 E の備考を変更
(( 注意事項 ) 入力特性は端子やデバイスにより異なります。データシートを参照して
ください。の記述を追加 )
20
● ラッチアップの防止を変更
( 同様の理由により , アナログ電源電圧 (AVCC, AVRH) がデジタル電源電圧を超える
ことのないよう十分注意してください。の記述を追加 )
21
● 電源入力端子 (VCC/VSS) を変更
xiv
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
22
● 水晶発振回路についてを変更
( 各商品において , ご使用される発振子メーカに発振評価依頼をしてください。
の記述を追加 )
● A/D コンバータの電源 , アナログ入力の投入順序についてを変更
(( アナログ電源とディジタル電源を同時に投入 , 遮断することは問題ありません。) を
削除 )
● 初期化についてを削除
24
● 最小命令実行時間を変更
(50ns (5MHz 発振 , 4 逓倍 ) → 42ns (4MHz 発振 , 6 逓倍 ))
28
■ メモリ空間マップを変更
(FF4000H ∼ FFFFFFH → "FF4000H"/"FF8000H"* ∼ "FFFFFFH")
(FF0000H ∼ FF3FFFH → "FF0000H" ∼ "FF3FFFH"/"FF7FFFH"*)
( <注意事項>を追加 )
42
47, 48
51
53, 54
表 2.8-1 各レジスタの機能を変更
(RO0 → R0)
(RWO0 → RW0)
2.11 "「DIV A, Ri」", "「DIVW A, RWi」" 命令の使用上の注意を追加
図 3.1-2 ソフトウェア割込みの概要を変更
(ILM : 割込みレベルマスクレジスタ → S : スタックフラグ )
表 3.2-1 割込みベクタを変更
(*2 および *3 を追加 )
(*2: MB90V390HA/MB90V390HB の ( ) 内の割込みを共有します。の記述を追加 )
(*3: MB90394HA の ( ) 内の割込みを共有します。の記述を追加 )
55
<注意事項>を変更
(*"1" は常に読出しです。の記述を削除 )
( <補足>を追加 )
59
図 3.4-2 割込み処理中のレジスタ退避を変更
(DPB → DTB)
63
表 3.5-1 割込み処理時のサイクル数の補正値を変更
64
図 3.5-2 スタック内に退避されたレジスタを変更
(DPB → DTB)
66
図 3.6-1 ソフトウェア割込みの発生と解除までを変更
(ILM : 割込みレベルマスクレジスタ → S : スタックフラグ )
74
● データ転送継続時 ( 停止条件が成立しない場合 ) を変更
((「図 3.8-1 拡張インテリジェント I/O サービス (EI2OS) の動作フロー」+「表 3.8-2
EI2OS の実行時間のデータ転送の補正値」) マシンサイクル → ( 表 3.8-1 + 表 3.8-2 ) マ
シンサイクル )
80
図 4.3-1 遅延割込み発生を変更
(ICRyy → ICRxx)
82
■ クロックの概要 , ● PLL クロック (PCLK) および● マシンクロック (φ) を変更
(4 種類 → 6 種類 )
<注意事項>を変更
xv
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
83
図 5.1-1 クロック供給マップ を変更
(PLL 逓倍回路に「6」「8」を追加 )
84
図 5.2-1 クロック発生部のブロックダイヤグラムを変更
(「PLL および特殊構成制御レジスタ (PSCCR):bit8)」,「CS2」,「クロックセレクタ」
を追加 )
85
● クロックセレクタを変更
(4 種類 → 6 種類 )
87
図 5.3-2 クロック選択レジスタ (CKSCR) の構成を変更
88
表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (1 / 2)
bit14 の機能を変更
(• 書込みは , 影響しません。の記述を追加 )
bit13,bit12 の機能の ( 注意事項 ) を変更
("00B" の設定は , メインクロックモード時のみ設定してください。→ "00B" と "01B" の
設定は , メインクロックモード時のみ設定してください。)
89
90, 91
92
93, 94
表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (2 / 2)
bit9,bit8 の機能を変更
5.3.2 PLL および特殊構成制御レジスタ (PSCCR) を追加
● PLL クロックモードを変更
■ PLL クロック逓倍率の選択を変更
図 5.4-1 マシンクロック選択の状態遷移図 , および図の説明を変更
97
5.7 メインクロック HCLK, HCLKX の出力を追加
99
第 6 章 クロックモジュレータ
( 注意事項 ) を追加
100
■ 周波数変調モードの変調度と周波数分解能
説明文を変更
104
表 6.3-1 クロックモジュレータ制御レジスタの各ビットの機能 (1 / 3)
bit7 の機能を変更
106
表 6.3-1 クロックモジュレータ制御レジスタの各ビットの機能 (3 / 3)
bit1, bit0 の機能を変更
(6 ms → 6 μs)
bit1 の機能を変更
((PLL lock time must be elapsed) → (PLL ロック時間が経過していなければなりません ))
107
表 6.3-2 モジュレータステータスを変更
( モジュレータパワーオン待機モジュレータスタートアップタイム (> 6 ms) →
モジュレータパワーオン待機モジュレータスタートアップタイム (> 6 μs))
108
図 6.3-3 クロック変調パラメータレジスタ (CMPR) を変更
(CMPRL ( 上位 ) → CMPRH ( 上位 ))
(XX0000010 B → XX000010B)
116
■ 周波数変調モードの変調パラメータの 5. を変更
120
● パワーオンリセットを変更
xvi
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
121
● 外部リセットを変更
125
● リセットベクタ ( アドレス :FFFFDCH ∼ FFFFDEH)
<注意事項>を追加
128
■ リセット中の端子の状態を変更
( リセット中の各端子の状態は , 「5.7 スタンバイモード , ホールド , リセット時の端子
状態」を参照してください。の記述を削除 )
130
図 8.1-1 CPU 動作モードと消費電流を変更
133
図 8.2-1 低消費電力制御回路のブロックダイヤグラムを変更
(「PLL 制御レジスタ (PSCCR):bit8)」
、「CS2」、「クロックセレクタ」を追加 )
137
■ 低消費電力モード制御レジスタへのアクセスを変更
( スタンバイモード遷移命令 → 低消費電力モード遷移命令 )
( スタンバイモード解除後の動作 → 低消費電力モード解除後の動作 )
140
<注意事項>を変更
( ストップモード , ウォッチモード , またはタイムベースタイマモード → ストップ
モード またはタイムベースタイマモード )
144
■ タイムベースタイマモードの解除
● リセットによる復帰の<注意事項>を変更
(RST 信号を 50μs → RST 信号を 100μs)
145
■ ストップモードの解除
● リセットによる復帰に<注意事項>を追加
147
図 8.6-1 状態遷移図を変更
( メインクロック発振安定待ち → PLL クロック発振安定待ち )
149
8.7 スタンバイモードとリセット時の端子状態を追加
151, 152
● アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスす
る場合を変更
( スタンバイモード遷移命令 → 低消費電力モード遷移命令 )
( スタンバイモード解除後の動作 → 低消費電力モード解除後の動作 )
● C 言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合を
変更
( 例 ( 時計モードまたはタイムベースタイマモード遷移関数の場合 ) → 例 ( タイム
ベースタイマモード遷移関数の場合 ))
(void enter_watch(){ → void enter_timebase(){)
165
■ アナログ入力許可レジスタ
<注意事項>を変更
(ANIN 0 ∼ 7 → AN0 ∼ AN7)
(ANIN 8 ∼ 14 → AN8 ∼ AN14)
174
図 12.1-1 ウォッチドッグタイマのブロックダイヤグラムを変更
xvii
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
175
■ ウォッチドッグタイマ制御レジスタ (WDTC)
[bit7, bit5 ∼ bit3] PONR, WRST, ERST, SRST を変更
(【bit7 ∼ 3】PONR, STBR, WRST, ERST, SRST → [bit7, bit5 ∼ bit3] PONR, WRST,
ERST, SRST)
[bit2] WTE を変更
( また , "0" の書込みはウォッチドッグカウンタをクリアします。の記述を追加 )
177
■ ウォッチドッグタイマの状態遷移図を追加
178
■ ウォッチドッグカウンタを変更
■ ウォッチドッグ停止を変更
■ ウォッチドッグ不活性化を追加
■ ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグ
タイマの動作を追加
179
■ リセット時のウォッチドッグタイマの動作を追加
182
■ 16 ビットフリーランタイマを変更
( ● カウンタ動作クロックは 4 種類から選択可能 → ● カウンタ動作クロックは
8 種類から選択可能 )
● カウンタ動作クロックは 8 種類から選択可能を変更
( 内部クロック 4 種類 : φ/4,φ/16,φ/64,φ/256 (φ: マシンクロック ) → 内部クロック 8
種類 : φ, φ/2,φ/4, φ/8,φ/16, φ/32, φ/64, φ/128 (φ: マシンクロック ))
183
■ インプットキャプチャ ( モジュールごとに 2 チャネル ) を変更
( インプットキャプチャ 0 (ch. IN0, IN1) はフリーランタイマ 0 に , インプットキャプ
チャ 1 およびインプットキャプチャ 2 (ch.IN2, IN3, IN4, IN5) はフリーランタイマ 1 に
割り当てられています。の記述を追加 )
186
13.3 16 ビットフリーランタイマの要約を変更
( カウントクロックは 4 種類から選択可能 → カウントクロックは 8 種類から選択可能
)
(( フリーランタイマ 0) またはコンペアレジスタ 4 ( フリーランタイマ 1) の記述を追加
)
図 13.3-1 16 ビットフリーランタイマのブロックダイヤグラム を変更
(CLK2 を追加 )
187
■ タイマデータレジスタを変更
189
表 13.3-1 フリーランタイマの制御ステータスレジスタ ( 下位 )
bit4 の機能を変更
bit3 の機能の ( 注意事項 ) を変更
191
■ 16 ビットフリーランタイマの動作を変更
xviii
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
192
■ アウトプットコンペアレジスタ 0 (4) 値とコンペアマッチしたときのカウンタクリ
アおよび図 13.3-6 アウトプットコンペアレジスタ 0 (4) 値とコンペアマッチしたとき
のカウンタクリアを変更
( アウトプットコンペアレジスタ 0 値 → アウトプットコンペアレジスタ 0 (4) 値 )
■ 16 ビットフリーランタイマのタイミングおよび図 13.3-7 16 ビットフリーランタイ
マのクリアタイミング ( コンペアレジスタ 0/4 との一致 ) を変更
( コンペアレジスタ 0 → コンペアレジスタ 0/4)
( リセット , ソフト , アウトプットコンペアレジスタ 0 → リセット , ソフトウェア , ア
ウトプットコンペアレジスタ 0 (4))
( アウトプットコンペアレジスタ 0 → アウトプットコンペアレジスタ 0 (4))
193
■ アウトプットコンペアを変更
(• 共通周波数を使用する場合は , 各 2 フリーランタイマには 3 パルス幅の変調信号が
有効です。→ • 各 2 フリーランタイマには 3 パルス幅の変調信号が有効です。)
209
表 13.5-3 インプットキャプチャエッジレジスタビット ( 上位・下位 ) (1 / 2)
bit2 を変更
224
図 14.5-1 16 ビットリロードタイマの出力端子機能 (1) を変更
図 14.5-2 16 ビットリロードタイマの出力端子機能 (2) を変更
225
図 14.6-1 カウンタの状態遷移を変更
229
図 15.2-1 時計タイマのレジスタ
WTCR を変更
(0 0 0 - - 0 0 0 → 000XX000)
WTSR を変更
(bit13 を - → R/W)
(- - - X X X X X → XXXXXXXX)
WTBR1 を変更
(D18 → D16)
(- - X X X X X X → XXXXXXXX)
WTHR を変更
(- - - X X X X X → XXXXXXXX)
WTMR を変更
(- - X X X X X X → XXXXXXXX)
<注意事項>を変更
( 時計タイマ制御レジスタ (WTC) → タイマ制御レジスタ (WTCR))
233
表 15.2-2 タイマ制御レジスタ ( 上位 ) を変更
235
図 15.2-5 秒 / 分 / 時間レジスタの構成を変更
(00354CH の記述を削除 )
(bit13 を - → R/W)
238
● 16 ビット PPG 出力動作モードを変更
(PPG0+PPG1, PPG2+PPG3, PPG4+PPG5, PPG6+PPG7, PPG8+PPG9, PPGA+PPGB の組合
せで使用します。の記述を追加 )
239
図 16.2-1 8/16 ビット PPG(ch.0) のブロックダイヤグラムを変更
(PRLBH0 → PRLL0)
(( テンポラリバッファ ) の記述を追加 )
xix
< 参考 > 2 版→ 3 版での主な変更内容
ページ
240
239 ∼ 242
変更内容(詳細は本文を参照してください。)
図 16.2-2 8/16 ビット PPG(ch.1) のブロックダイヤグラムを変更
(PRLBH1 → PRLL1)
(( テンポラリバッファ ) の記述を追加 )
16.2 8/16 ビット PPG のブロックダイヤグラムを変更
( ● ブロックダイヤグラム中の端子などの詳細を追加 )
( ● PPG1 動作モード制御レジスタ (PPGC1) を追加 )
( ● PPG0/1 カウントクロック選択レジスタ (PPG01) を追加 )
( ● PPG1 リロードレジスタ (PRLH1, PRLL1) を追加 )
( ● PPG1 ダウンカウンタ (PCNT1) を追加 )
( ● PPG1 テンポラリバッファ (PRLBH1) を追加 )
( ● リロードレジスタ L/H セレクタを追加 )
( ● カウントクロックセレクタを追加 )
( ● PPG 出力制御回路を追加 )
243
■ 8/16 ビット PPG のレジスタ
PPGCn を変更
((0)(-)(0)(0)(0)(-)(-)(1) → (0)(X)(0)(0)(0)(X)(X)(1))
PPGCm を変更
((0)(-)(0)(0)(0)(0)(0)(1) → (0)(X)(0)(0)(0)(0)(0)(1))
PPGnm を変更
((0)(0)(0)(0)(0)(0)(-)(-) → (0)(0)(0)(0)(0)(0)(X)(X))
248
図 16.3-3 PPG0/1 クロック選択レジスタ (PPG01) の構成
PCM1 および PCS1 の「タイムベースタイマからのクロック入力」の値を変更
(0 → 1)
249
表 16.3-3 クロック選択レジスタの構成 (PPG01) のビット機能説明
PCS1 および PCM1 の「タイムベースタイマからのクロック入力」の値を変更
(0 → 1)
250
■ リロードレジスタ (PRLL, PRLH)
PRLLn のアドレスを変更
(ch6 00350BH → ch.6 00350CH)
254
■ 8/16 ビット PPG のカウントクロックの選択
<注意事項>を追加
262
■ 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ )
<注意事項>を追加
263
■ 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ )
<注意事項>を変更
( 逓倍外部割込み出力 → 複数の外部割込み出力 )
( 新たに 2 つの注意事項を追加 )
267
● DTP/ 外部割込みの動作手順を変更
(1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。の記述を追加 )
● 外部割込み要求レベルを変更
( パルス幅は最小 3 マシンサイクル必要とします。→ データシートに記載されている
最小パルス幅以上の期間が必要です。)
xx
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
270
■ 8/10 ビット A/D コンバータの機能を変更
( マシンクロック周波数 20MHz の場合 → ある一定のマシンクロック周波数のみが使
用可能な場合 )
(16 ビットフリーランタイマのゼロ検出エッジから設定できます。→ 外部トリガ
ADTG から設定できます。)
274
<注意事項>を変更
(ANIN0 ∼ 7 → AN0 ∼ AN7)
(ANIN8 ∼ 14 → AN8 ∼ AN14)
275
<注意事項>を変更
( ポート方向レジスタ (DD6/DDRB) → ポート方向レジスタ (DDR6/DDRB))
277
図 18.4-2 アナログ入力許可 /A/D コンバータ選択レジスタの上位ビット (ADER1) の構
成
A/D コンバータ入力選択ビットを変更
(ANIN0 ∼ 7 → AN0 ∼ AN7)
(ANIN8 ∼ 14 → AN8 ∼ AN14)
279
表 18.4-1 A/D 制御ステータスレジスタ 1(ADCS1) の各ビットの機能説明
bit12 の機能を変更
282
表 18.4-2 A/D 制御ステータスレジスタ 0 (ADCS0) の各ビットの機能説明 (2 / 2)
bit5,bit4,bit3 の機能を変更
(( 注意事項 ) を追加 )
図 18.4-6 A/D データレジスタ (ADCR0, ADCR1)
アドレスを変更
(000037H(下位)→ 000037H(上位))
(000036H(上位)→ 000036H(下位))
283
コンペア時間設定ビットを変更
(66 マシンサイクル (16MHz の場合 , 4.12μs) → 66 マシンサイクル (20MHz の場合 ,
3.3μs))
(88 マシンサイクル (16MHz の場合 , 5.50μs) → 88 マシンサイクル (24MHz の場合 ,
3.67μs))
(176 マシンサイクル (16MHz の場合 , 11.0μs) → 176 マシンサイクル (24MHz の場合 ,
7.33μs))
サンプリング時間設定ビットを変更
(32 マシンサイクル (16MHz の場合 , 2.0μs) → 32 マシンサイクル (20MHz の場合 ,
1.6μs))
(48 マシンサイクル (16MHz の場合 , 3.0μs) → 48 マシンサイクル (24MHz の場合 ,
2.0μs))
(128 マシンサイクル (16MHz の場合 , 8.0μs) → 128 マシンサイクル (24MHz の場合 ,
5.33μs))
284
表 18.4-3 A/D データレジスタ 0 (ADCR0) の各ビットの機能説明
bit14,bit13 および bit12,bit11 の機能の ( 注意事項 ) を変更
( マシンクロック周波数 16 (20)MHz の場合に , → マシンクロック周波数 16 (20,
24)MHz の場合に ,)
289
● EI2OS を使用しているときのデータ保護機能を変更
xxi
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
302
19.1 UART0, UART1 の特長の要約を変更
(UART1 と UART2 は , UART0 と同じ機能を持ちます。の記述を削除 )
303
図 19.2-1 UART0, UART1 のブロックダイヤグラムを変更
(( 注意事項 ) このダイヤグラムは ,UART0,UART1 については有効です。の記述を追加
)
■ UART のレジスタ
シリアルモード制御レジスタを変更
(UMC2 の記述を削除 )
(ch.2 000028H の記述を削除 )
304
ステータスレジスタを変更
(USR2 の記述を削除 )
(ch.2 000029H の記述を削除 )
インプットデータレジスタ / アウトプットデータレジスタを変更
(UIDR2 および UODR2 の記述を削除 )
(ch.2 00002AH の記述を削除 )
レート・データレジスタを変更
(URD2 の記述を削除 )
(ch.2 00002BH の記述を削除 )
305
図 19.3-1 シリアルモード制御レジスタ (UMC) の構成を変更
(UMC2 の記述を削除 )
(000028H の記述を削除 )
シリアル出力イネーブルを変更
(SOT0,1,2 → SOT0, SOT1)
動作モード設定を変更
306
表 19.3-1 シリアル制御レジスタビットの機能
bit1 および bit0 の機能を変更
(< 注意事項 > を削除 )
307
図 19.3-2 ステータスレジスタ (USR) の構成を変更
(USR2 の記述を削除 )
(000029H の記述を削除 )
310
図 19.3-3 インプットデータレジスタ (UIDR) とアウトプットデータレジスタ (UODR)
を変更
(00002AH の記述を削除 )
(bit 8 to 0 → bit 7 ∼ bit 0)
311
図 19.3-4 レート・データレジスタ (URD) の構成を変更
(URD2 の記述を削除 )
(00002BH の記述を削除 )
315
■ CLK 非同期ボーレート
<注意事項>を変更
(20MHz の記述を追加 )
318
■ 転送データフォーマットを変更
(UMC0, 1, 2 → UMC0, UMC1)
(SIN0, 1, 2 → SIN0, SIN1)
(SOUT0, 1, 2 → SOUT0, SOUT1)
xxii
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
327
第 20 章 UART2, UART3
( 注意事項 ) を追加
329
表 20.1-1 UART2, UART3 の機能 (2 / 2)
LIN バスオプションの機能を変更
((UART3) / ICU3 (UART2 は MB90V390HA/MB90V390HB のみ ) の記述を追加 )
330
表 20.1-4 UART2, UART3 の割込みと EI2OS を変更
331
■ UART2, UART3 の構成を変更
(• LIN synch break 生成回路の記述を追加 )
336
表 20.3-1 UART2, UART3 の端子を変更
337
■ UART2, UART3 の端子のブロックダイヤグラムを変更
(( 注意事項 ) レジスタと端子番号を除いて , UART2 は UART3 と機能的に同じです。
の記述を追加 )
338
図 20.4-1 UART2, UART3 のレジスタ一覧を変更
339
図 20.4-2 シリアル制御レジスタ (SCR2/SCR3) を変更
(SCR2: 0035D9H の記述を追加 )
342
図 20.4-3 シリアルモードレジスタ (SMR2/SMR3) を変更
(SMR2: 0035D8H の記述を追加 )
344
図 20.4-4 シリアルステータスレジスタ (SSR2/SSR3) を変更
(SSR2: 0035DBH の記述を追加 )
347
図 20.4-5 受信データレジスタ / 送信データレジスタ (RDR2/RDR3 および TDR2/TDR3)
を変更
(RDR2/TDR2: 0035DAH の記述を追加 )
(11111111B [TDR2/TDR3] の記述を追加 )
図 20.4-6 拡張ステータス制御レジスタ (ESCR2/ESCR3) を変更
(ESCR2: 0035DDH の記述を追加 )
349
(00000100B → 00000X00B)
(SIOP の網掛けを削除 )
(LBL1,LBL0 を網掛けに変更 )
350
表 20.4-4 拡張ステータス制御レジスタ (ESCR2/ESCR3) の各ビットの機能説明
bit15 の機能を変更
(LIN synch break 割込みは受信割込みに接続されます。の記述を追加 )
bit14 の機能を変更
bit10 の機能を変更
(• 本ビットの設定値は、シリアル制御レジスタ (SCR) の TXE ビットが "0" の場合のみ
有効です。の記述を追加 )
bit9 の機能を変更
bit8 の機能を変更
( 動作モード 0,1,3 の時は "0" に設定してください。→ MB90V390H/MB90F394H(A):
動作モード 0, 1, 3 のときは "0" に設定してください。 MB90V390HA/MB90V390HB/
MB90394HA:動作モード 0, 1, 3 のときは "0" に固定されます。)
351
表 20.4-5 SOPE と SIOP の相互作用説明を変更
xxiii
< 参考 > 2 版→ 3 版での主な変更内容
ページ
352
変更内容(詳細は本文を参照してください。)
図 20.4-7 拡張通信制御レジスタ (ECCR2/ECCR3) を変更
(ECCR2: 0035DCH の記述を追加 )
(000000XXB → X0000XXXB)
353
表 20.4-6 拡張通信制御レジスタ (ECCR2/ECCR3) の各ビットの機能説明
bit5 の機能を変更
bit4 の機能を変更
354
■ ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のビット構成を
変更
図 20.4-8 ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のビット構
成を変更
(BGR02: 0035DEH および BGR12: 0035DFH の記述を追加 )
355
表 20.5-1 LIN-UART2,UART3 の割込み制御ビットと割込み要因
RDRF, ORE, FRE および PE の割込み要求フラグのクリアを変更
( 受信データの読出し → 受信データの読出し MB90V390H/MB90F394H(A):LIN synch
break 検出 (LBD= 1))
( 受信エラーフラグクリアビット (SCR3:CRE) への "1" の書込み → 受信エラーフラグ
クリアビット (SCR2/SCR3:CRE) への "1" 書込み MB90V390H/MB90F394H(A):LIN
synch break 検出 (LBD= 1).)
インプットキャプチャの行を変更
(ICP0/1/4/5 → ICP1/ICP3/ICP5)
(ICS01/45 → ICS01/ICS23/ICS45)
(ICE0/1/4/5 → ICE1/ICE3/ICE5)
356
● 受信割込みを変更
357
● LIN synch break 割込みを変更
● LIN synch field エッジ検出割込みを変更
358
表 20.5-2 LIN-UART2,UART3 の割込みと EI2OS を変更
● UART2 受信の場合を変更
● UART2 送信の場合を変更
359
図 20.5-1 受信動作とフラグセットのタイミング
<注意事項>を変更
( 図 20.5-1 はモード 0 における → 図 20.5-1 はモード 0 およびモード 3 における )
361
図 20.5-3 送信動作とフラグセットのタイミングを変更
( モード 0,1 または 3:TDR 書込み → モード 0, 1, 2 (SSM=1) または 3:TDR2/TDR3 書
込み )
363
● 外部クロック (1 対 1 モード ) によるボーレートを変更
( マシンクロックの 4 分周以下のボーレートを外部で設定できます。の記述を追加 )
368
■ リロードカウンタの再スタートを変更
(• グローバル MCU リセットの記述を追加 )
371
■ 同期方式を変更
372
図 20.7-1 送受信データフォーマット ( 動作モード 0, 1) を変更
373
● 送受信データフォーマットを変更
377
● クロックの供給を変更
xxiv
< 参考 > 2 版→ 3 版での主な変更内容
ページ
380
381, 382
変更内容(詳細は本文を参照してください。)
● LIN マスタとしての UART2, UART3 動作を変更
表 20.7-2 LIN break 長を変更
(LBL0 → LBL1)
(LBL1 → LBL0)
● LIN スレーブとしての動作を変更
● LIN Synch Break 検出割込みとフラグを変更
図 20.7-7 LIN synch break 検出とフラグセットのタイミングを変更
385
図 20.7-10 UART2,UART3 の動作モード 0, 2 の設定
EXT のモード 0 を変更
( ◎ → 0)
SCKE のモード 0 を変更
( ◎ → 0)
CCO のモード 0 を変更
(0 → X)
SCES のモード 0 を変更
(0 → +)
387
図 20.7-13 UART2,UART3 の動作モード 1 の設定
EXT のモード 1 を変更
( ◎ → 0)
SCKE のモード 1 を変更
( ◎ → 0)
CCO のモード 1 を変更
(0 → X)
SCES のモード 1 を変更
(0 → +)
389
図 20.7-15 マスタ / スレーブ型通信フローチャートを変更
(SOT3 端子をシリアルデータ出力に設定 → SOT2/SOT3 端子をポート入力に設定 )
390
図 20.7-16 UART2,UART3 の動作モード 3(LIN) 設定を変更
EXT のモード 3 を変更
( ◎ → 0)
SCKE のモード 3 を変更
( ◎ → 0)
CCO のモード 3 を変更
(0 → X)
SCES のモード 3 を変更
(0 → +)
392
図 20.7-19 UART2, UART3 の LIN スレーブフローチャートを変更
393
● 通信モードの設定を変更
( 送受信中にモード設定をした場合,そのとき送受信されたデータは保証されません。
→ 送受信中にモード設定をした場合 , 送受信は停止し , そのとき送受信されたデータ
は保証されません。)
● スタートビット同期を追加
xxv
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
394
● LIN 動作モード 3 の使用
<注意事項>を追加
● バスアイドル機能を変更
( バスアイドル機能は同期モード 2 では使用できません。→ バスアイドル機能は同期
モード 2 および SSM=0 では使用できません。)
395
● A/D ビット ( シリアル制御レジスタ (SCR2/SCR3):アドレス / データ形式選択ビッ
ト ) を変更
● UART2,UART3 ソフトウェアリセットを変更
( シリアル制御レジスタ (SCR3) の TXE ビットが "0" の時に , → シリアル制御レジス
タ (SCR2/SCR3) の TXE ビットが "1" のときに ,)
● LIN Synch field 待ち状態を変更
397
第 21 章 400 kHz I2C インタフェース
( 注意事項 ) を追加
400, 401
■ I2C インタフェースのレジスタ一覧を変更
(ITBA → ITBAH)
(ITBA → ITBAL)
(ITMK → ITMKH)
(ITMK → ITMKL)
( ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR) の図を追加 )
403
表 21.2-1 I2C バスステータスレジスタ (IBSR) の機能 (1 / 2)
bit4 の機能を変更
( このビットは , ビット ( アクノリッジビット ) の待機中に → このビットは , bit9( アク
ノリッジビット ) の待機中に )
404
表 21.2-1 I2C バスステータスレジスタ (IBSR) の機能 (2 / 2)
bit0 の機能を変更
(SCC ビットに 0 が書込まれる → SCC ビットに "1" が書き込まれる )
408
表 21.2-2 バス制御レジスタ (IBCR) の内容の機能 (2 / 3)
bit12 の機能を変更
( 次の割込み時にデータバイト (IBSR の AAS = 1) 送信が → 次の割込み時にデータバ
イト (IBSR の AL=1) 送信が )
bit10 の機能を変更
410
<注意事項>を変更
(• MB90F394H(A) と MB90V390H 以外のデバイスを使用する場合の注意を追加 )
414
表 21.2-3 各 10 ビットスレーブアドレスレジスタ (ITBA) の機能
bit9 ∼ bit0 のビット名を変更
(TBA9 ∼ 0 → TA9 ∼ TA0)
415
■ I2C10 ビットアドレスマスクレジスタ (ITMK) を変更
(ITMK → ITMKH)
(ITMK → ITMKL)
418
表 21.2-6 各 7 ビットスレーブアドレスマスクレジスタの機能
bit14 ∼ bit8 のビット名を変更
(SMK → SM6 ∼ SM0)
xxvi
< 参考 > 2 版→ 3 版での主な変更内容
ページ
421
変更内容(詳細は本文を参照してください。)
表 21.2-8 クロック制御レジスタの各ビット機能 (1 / 2)
bit14 の機能を変更
bit13 の機能を変更
(( 注意事項 ) を変更 )
■ クロックプリスケーラ設定を変更
(INFCR:SEL[1:0]=01B の記述を追加 )
423
表 21.2-10 共通マシンクロック周波数を変更
(400 K ビット ( ノイズフィルタ許可 )n ビットレート [K ビット ] → 400 K ビット ( ノイ
ズフィルタ許可 , INFCR:SEL[1:0]=01B)n ビットレート [K ビット ])
424
21.2.8 ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR) を追加
425
■ スタートコンディションを変更
((BB=0 in IBSR=U, MSS=0 in IBCR=0) → (IBSR の BB=0, IBCR の MSS=0))
437
表 22.2-2 シリアルシフトクロックモードの設定を変更
(φ=24MHz div=6 の列を追加 )
447
図 22.4-8 拡張シリアル I/O インタフェースの割込み信号出力タイミングを変更
460
461
469
表 23.6-1 制御ステータスレジスタ ( 下位 ) の各ビット機能を変更
bit0 の機能を変更
(0: ストップモード外でのバス動作 → "0": バス動作が停止していない状態)
(1: ストップモードでのバス動作 → "1": バス動作が停止状態 )
(for ( i=0; ( i <= 500 ) || → for ( i=0; ( i <= 500 ) && )
図 23.6-2 制御ステータスレジスタ ( 上位バイト ) の構成
NS1 および NS0 のバスオフの値を変更
(00 → 11)
図 23.6-6 ビットタイミングレジスタ (BTR) の構成
アドレスを変更
(001C07H → 003707H)
(001D07H → 003907H)
(001C06H → 003706H)
(001D06H → 003906H)
510 ∼ 512
23.16 CAN コントローラの使用上の注意を変更
( ■ BVAL ビットによるメッセージバッファ禁止時の注意 → ■ BVAL ビットによる
メッセージバッファ禁止時の注意 (-H 品 , MB90F394H, MB90V390H など ))
( ■ BVAL ビットによるメッセージバッファ禁止時の注意 (-H 品以外 , MB90V390 な
ど ) を追加 )
523
24.3 ステッピングモータコントローラ使用上の注意を追加
539
26.2 アドレス一致検出機能のレジスタの要約を変更
(• プログラムアドレス検出レジスタ (PADR0/PADR5) → • プログラムアドレス検出レ
ジスタ (PADR0, PADR1, PADR3 ∼ PADR5))
543
図 26.4-2 プログラムパッチ処理例を変更
545
第 27 章 ROM ミラー機能選択モジュール
( 注意事項 ) を削除
xxvii
< 参考 > 2 版→ 3 版での主な変更内容
ページ
547
変更内容(詳細は本文を参照してください。)
表 27.2-1 ROM ミラーレジスタの各ビット機能
bit9 の機能の ( 注意事項 ) を変更
( 他のデバイスは選択可能です。→ MB90394HA および MB90F394H(A) では選択可能
です。)
<注意事項>を変更
(FF4000H ∼ FFFFFFH → "FF4000H"/"FF8000H" ∼ "FFFFFFH")
(004000H ∼ 00FFFFH → "004000H"/"008000H" ∼ "00FFFFH")
(FF0000H ∼ FF3FFFH → "FF0000H" ∼ "FF3FFFH"/"FF7FFFH")
550
28.1 3M ビットフラッシュメモリの概要の要約を変更
(CPU メモリマップ上の FC ∼ FF バンク → CPU メモリマップ上の F8/F9 ∼ FF バンク
)
551
図 28.2-1 フラッシュメモリ全体のブロックダイヤグラムを変更
(AQ0 ∼ AQ17 AQ-1 → AQ0 ∼ AQ18)
553, 554
■ その他モードを変更
(CPU メモリ空間の FC/F9 ∼ FF バンク → CPU メモリ空間の F8/F9 ∼ FF バンク )
<注意事項>を追加
■ フラッシュメモリの制御信号
<注意事項>を追加
556
[bit5] WE( 書込み許可 ) を変更
(FC/F9 ∼ FF バンク → F8(F9) ∼ FF バンク )
[bit4] RDY( レディ ) を変更
( セクタ消去一時停止等のサスペンドコマンドは受け付けられます。→ セクタ消去一
時停止コマンドは受け付けられます。)
558
表 28.5-2 自動選択時のアドレス設定を変更
(AQ13 ∼ AQ17(AQ18) → AQ13 ∼ AQ18)
563
● 書込み / チップ・セクタ消去時を変更
( まれに "1" が書き込めたように正常終了する場合もあります。の記述を追加 )
573
■ フラッシュメモリセクタ消去の一時停止を変更
( 最大 15μs の時間の後 , → 最大 20μs の時間の後 ,)
( セクタ消去一時停止コマンドは , セクタ消去コマンドあるいはセクタ消去再開コマ
ンド発行後 , 20μs 以上後に行ってください。の記述を追加 )
574
■ フラッシュメモリセクタ消去の再開を変更
575
● ハードウェアリセット (RST) の入力を変更
● フラッシュメモリへのプログラムアクセスを変更
583
表 29.1-1 富士通標準シリアルオンボード書込みに使用する端子
X0, X1 の補足説明を変更
P00, P01 の補足説明を変更
VCC の補足説明を変更
596
表 A-1 I/O マップ (1 / 6)
アドレス 00000DH のレジスタを変更
( アナログ入力許可 1/ADC 選択 → アナログ入力許可 1)
xxviii
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
表 A-1 I/O マップ (2 / 6)
アドレス 000028H ∼ 00002BH を変更
597
(UART2 → 予約 )
アドレス 00002FH のレジスタおよび略称を変更
( シリアル IO プリスケーラ / エッジセレクタ → シリアル I/O プリスケーラ )
(SES → CDCR)
アドレス 000030H のレジスタを変更
( 外部割込み要求 → 割込み /DTP 許可レジスタ )
表 A-1 I/O マップ (3 / 6)
アドレス 00003BH のレジスタおよび周辺を変更
598
(ROM コレクション制御ステータス 1 → プログラムアドレス検出制御 / ステータスレ
ジスタ 1)
(ROM コレクション 1 → プログラムアドレス検出 1)
アドレス 00003EH のレジスタを変更
(PPG2, PPG3 出力端子制御レジスタ → PPG2/PPG3 クロック制御レジスタ )
599
表 A-1 I/O マップ (4 / 6)
アドレス 00005FH の初期値を変更
(0XXXXXX0B → 0XXXXX00B)
表 A-1 I/O マップ (5 / 6)
アドレス 00006FH の初期値を変更
(XXXXXXX1B → XXXXXX+*1B)
600
アドレス 00009EH のレジスタおよび周辺を変更
(ROM コレクション制御 / ステータス 0 → プログラムアドレス検出制御ステータスレ
ジスタ 0)
(ROM コレクション 0 → プログラムアドレス検出 0)
* の記述を追加
表 A-2 I/O マップ (35XX アドレス ) (2 / 9)
アドレス 00351AH の初期値を変更
(11111111B の記述を追加 )
603
アドレス 00351CH の初期値を変更
(000000XXB → X0000XXXB)
アドレス 00351DH の初期値を変更
(00000100B → 00000X00B)
表 A-2 I/O マップ (35XX アドレス ) (3 / 9)
アドレス 00352EH のアービトレーションを変更
(TCCS0 → TCCSL0)
アドレス 00352FH のアービトレーションを変更
604
(TCCS0 → TCCSH0)
アドレス 00353EH のアービトレーションを変更
(TCCS1 → TCCSL1)
アドレス 00353FH のアービトレーションを変更
(TCCS1 → TCCSH1)
xxix
< 参考 > 2 版→ 3 版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
表 A-2 I/O マップ (35XX アドレス ) (4 / 9)
アドレス 00354AH のアービトレーションを変更
605
(WTBR → WTBR(0))
アドレス 00354BH のアービトレーションを変更
(WTBR → WTBR(0))
アドレス 00354CH のアービトレーションを変更
(WTBR → WTBR(1))
607
608
表 A-2 I/O マップ (35XX アドレス ) (6 / 9)
アドレス 00356FH のレジスタを変更
(CAN RX/TX リダイレクトレジスタ → CAN2 RX/TX 端子選択レジスタ )
アドレス 0035A9H の行を変更
表 A-2 I/O マップ (35XX アドレス ) (7 / 9)
アドレス 0035CFH の行を変更
アドレス 0035D0H ∼ 0035DFH の行を変更
表 A-2 I/O マップ (35XX アドレス ) (8 / 9)
アドレス 0035E0H ∼ 0035E5H のレジスタおよび周辺を変更
609
(ROM コレクションアドレス 0 → プログラムアドレス検出レジスタ 0)
(ROM コレクションアドレス 1 → プログラムアドレス検出レジスタ 1)
(ROM コレクション 0 → アドレス一致検出 0)
アドレス 0035F0H ∼ 0035F8H のレジスタおよび周辺を変更
(ROM コレクションアドレス 3 → プログラムアドレス検出レジスタ 3)
(ROM コレクションアドレス 4 → プログラムアドレス検出レジスタ 4)
(ROM コレクションアドレス 5 → プログラムアドレス検出レジスタ 5)
(ROM コレクション 1 → アドレス一致検出 1)
610
表 A-2 I/O マップ (35XX アドレス )
* 1 および * 2 を追加
633
表 B.8-1 転送命令 ( バイト ) [41 命令 ] を変更
(MOV @AL,AH / MOV @A,T → MOV @AL,AH)
634
表 B.8-2 転送命令 ( バイト ) [38 命令 ] を変更
(MOVW @AL,AH / MOVW @A,T → MOVW @AL,AH)
645
表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) [6 命令 ] を変更
(SWAPW / XCHW A,T → SWAPW)
675
表 D-1 割込みベクタ一覧表 (2 / 2)
INT39 および INT40 のハードウェア割込みを変更
(UART2RX/(UART3RX) → UART3 RX/(UART2 RX))
(UART2TX/(UART3TX) → UART3 TX/(UART2 TX))
677
表 D-2 割込み要因と割込みベクタ・割込み制御レジスタ (2 / 2)
割込みベクタ番号 #39 および #40 の割込み要因を変更
(UART2RX/(UART3RX) → UART3 RX/(UART2 RX))
(UART2TX/(UART3TX) → UART3 TX/(UART2 TX))
変更箇所は , 本文中のページ左側の│によって示しています。
xxx
第1章
概要
MB90390 シリーズの特長や基本的な仕様について
説明します。
1.1 製品概要
1.2 特長
1.3 MB90V390H のブロックダイヤグラム
1.4 MB90V390HA/MB90V390HB のブロックダイヤグラム
1.5 MB90394HA/MB90F394H(A) のブロックダイヤグラム
1.6 端子配列図
1.7 パッケージ外形寸法図
1.8 端子機能説明
1.9 入出力回路形式
1.10 デバイスの取扱い
1
第 1 章 概要
1.1
製品概要
表 1.1-1 に , MB90390 シリーズの製品概要を示します。
■ 製品概要
表 1.1-1 製品概要
2
特長
MB90V390H
MB90V390HA
MB90V390HB
MB90394HA
MB90F394H(A)
品種構成
評価用品
ROM バージョン
フラッシュメモリ品
CPU
F2MC-16LX CPU
システムクロック
オンチップ PLL クロック逓倍方式 ( × 1, × 2, × 3, × 4, × 6, PLL 停止時 1/2)
最小命令実行時間 42ns (4 MHz 原発振 4 逓倍 )
ROM/ フラッシュ
メモリ
外部
ROM メモリ
384K バイト
RAM
MB90V390H: 16K バイト
MB90V390HA:
30K バイト
MB90V390HB:
30K バイト
10K バイト
パッケージ
PGA-299
ブートブロック
フラッシュメモリ
384K バイト
ハードワイヤード
リセットベクタ付き
10K バイト
LQFP-120
第 1 章 概要
特長
1.2
表 1.2-1 に , MB90390 シリーズの特長を示します。
■ 特長
表 1.2-1 MB90390 シリーズの特長 (1 / 3)
特長
MB90V390H
MB90V390HA
MB90V390HB
MB90394HA
MB90F394H(A)
2 チャネル
UART
全二重ダブルバッファ方式
非同期 / 同期転送 ( スタート / ストップビット付き ) をサポートします。
ボーレート 4808/9615/10417/19230/38460/62500/500000bps ( 非同期 )
システムクロック =24 MHz 時 500k/1M/2Mbps ( 同期 )
UART (SCI / LIN)
2 チャネル
1 チャネル
1 チャネル (MB90V390H)
I2C (400kbps)
1 チャネル
SPB
1 チャネル
シリアル I/O
MSB または LSB から転送開始可能です。
内部クロック同期転送および外部クロック同期転送をサポートします。
ポジティブエッジとネガティブエッジクロック同期をサポートします。
ボーレートシステムクロック =24 MHz 時 31.25k/62.5k/125k/500k/1Mbps
-
15 本の入力チャネル
A/D コンバータ
10 ビットまたは 8 ビットの分解能
変換時間 :4.9μs
16 ビットリロード 動作クロック周波数 fsys/21, fsys/23, fsys/25 (fsys= システムクロック周波数 )
タイマ
外部イベントカウント機能をサポートします。
(2 チャネル )
時計タイマ
水晶発振クロックで直接動作します。
読出し / 書込み可能な秒 / 分 / 時レジスタ
信号割込み
16 ビット入出力
タイマ
(2 チャネル )
オーバフロー時に割込み信号を出力します。
アウトプットコンペア (ch.0) との照合時にタイマクリアをサポートします。
動作クロック周波数 fsys/21, fsys/22, fsys/23, fsys/24, fsys/25, fsys/26, fsys/27
(fsys= システムクロック周波数 )
入出力タイマ 0 ( クロック入力 FRCK0) は , ICU0/ICU1,OCU0/OCU1/OCU2/OCU3
に対応
入出力タイマ 1 ( クロック入力 FRCK1) は , ICU2/ICU3/ICU4/ICU5,OCU4/OCU5/
OCU6/OCU7 に対応
16 ビット
アウトプット
コンペア
(8 チャネル )
16 ビット入出力タイマとの照合時に , 割込み信号を出力します。
16 ビットキャプチャレジスタ× 8 本
1 対のコンペアレジスタを出力信号生成に使用可能です。
OCU6/OCU7 出力は ICU3/ICU5 入力と共有
3
第 1 章 概要
表 1.2-1 MB90390 シリーズの特長 (2 / 3)
特長
16 ビット
インプット
キャプチャ
(6 チャネル )
MB90V390H
MB90V390HA
MB90V390HB
MB90394HA
MB90F394H(A)
立上りエッジ , 立下りエッジまたはその両方を検出します。
16 ビットキャプチャレジスタ× 6 本
外部イベント時に割込み信号を出力します。
ICU3/ICU5 入力は OCU6/OCU7 出力と共有
8 ビットと 16 ビットの動作モードをサポートします。
8 ビットリロードカウンタ× 12 本
"L" パルス幅用の 8 ビットリロードレジスタ× 12 本
8/16 ビット PPG
( プログラマブル "H" パルス幅用の 8 ビットリロードレジスタ× 12 本
1 対の 8 ビットリロードカウンタを 1 本の 16 ビットリロードカウンタとして ,
パルス発生部 )
または 8 ビットプリスケーラと 8 ビットリロードカウンタとして構成可能です。
(6 チャネル )
動作クロック周波数 fsys, fsys/21, fsys/22, fsys/23, fsys/24 または
[email protected]=5MHz (fsys= システムクロック周波数 , fosc= 発振クロック周波数 )
5 チャネル
CAN
インタフェース
2 チャネル
CAN 仕様バージョン 2.0 パート A およびパート B に準拠します。
エラー時に自動再送します。
リモートフレームに応答して自動転送します。
データおよび ID 用の順位付けされた 16 個のメッセージバッファ複数メッセー
ジをサポートします。
アクセプタンスフィルタの柔軟な構成 : 全ビットコンペア / 全ビットマスク /2 個
の部分ビットマスク
最高 1Mbps までサポートします。
ステッピング
モータ
コントローラ
(6 チャネル )
各チャネルに対する高電流出力× 4 本
各チャネルに対する同期化済み 8 ビット PWM × 2 本
外部割込み
(8 チャネル )
立上りエッジ , 立下りエッジ , "H" レベル , "L" レベルで起動可能
サウンド
ジェネレータ
8 ビット PWM 信号は , 8 ビットリロードカウンタからのトーン周波数とミック
スされます。
PWM 周波数システムクロック =16MHz 時 62.5kHz, 31.2kHz, 15.6kHz, 7.8kHz
トーン周波数 PWM 周波数 /2/ ( リロード値 +1)
入出力ポート
ほとんど , 全外部端子を汎用入出力として使用可能です。
すべてのプッシュプル出力
入力 / 出力または周辺信号として , ビット単位でプログラム可能です。
CMOS ヒステリシス入力あるいは Automotive 入力としてポート単位でソフト
ウェアにて選択可能
クロック
モジュレータ
電磁波放射低減用スペクトラム分散クロックモジュレータ
周波数 , 位相変調モード
MB90F394H:周波数変調を使用しないでください。
MB90F394H, MB90V390H, MB90V390HA:
CAN メッセージバッファ RAM とクロックモジュレータを同時に使用しないで
ください。
4
第 1 章 概要
表 1.2-1 MB90390 シリーズの特長 (3 / 3)
特長
フラッシュメモリ
MB90V390H
MB90V390HA
MB90V390HB
MB90394HA
-
MB90F394H(A)
自動プログラミング , Embedded
AlgorithmTM
書込み / 消去 / 消去一時停止 / 消去
再開コマンドをサポート
アルゴリズム完了を示すフラグ
消去サイクル数:10,000 回
データ保持期間:20 年間 *
フラッシュメモリの固定ブートセ
クタを示すためにハード
ワイヤードリセットが使用可能
ブートブロック構成
各ブロックで消去を実行可能
外部プログラミング電圧によるブ
ロック保護
* : テクノロジ信頼性評価結果からの換算値です ( アレニウスの式を使用し , 高温加速試験結果を平均温度
+ 85 ℃ へ換算しています ) 。
5
第 1 章 概要
MB90V390H のブロックダイヤグラム
1.3
図 1.3-1 に , MB90V390H のブロックダイヤグラムを示します。
■ MB90V390H のブロックダイヤグラム
図 1.3-1 MB90V390H のブロックダイヤグラム
X0,X1
RST
クロック
コントローラ
F2MC-16LX
CPU
RAM
16K バイト
I/O タイマ 0
FRCK0
インプット
キャプチャ
6 チャネル
IN[5:0]
アウトプット
コンペア
8 チャネル
プリスケーラ
x4*
プリスケーラ
SOT4
SCK4
SIN4
10 ビット
A/D
コンバータ
15 チャネル
TIN[1:0]
TOT[1:0]
16 ビット
リロード
タイマ
2 チャネル
SPB*
6
シリアル I/O
AV CC
AV SS
AN[14:0]
AVRH
AVRL
ADTG
WOT
8/16 ビット
PPG
6 チャネル
UART
4*チャネル
F2MC-16LX Bus
SOT[3*:0]
SCK[3*:0]
SIN[3*:0]
I/O タイマ 1
OUT[7:0]
FRCK1
PPG0[5:0]
PPG1[5:0]
CAN
5*チャネル
RX[4:0]
TX[4:0]
SMC
6チャネル
PWM1M[5:0]
PWM1P[5:0]
PWM2M[5:0]
PWM2P[5:0]
DV CC[3:0]
DV SS[3:0]
外部割込み
INT[7:0]
サウンド
ジェネレータ
SGO
SGA
I2C
インタ
フェース *
SDA*
SCL*
時計
タイマ
SPB
インタ
フェース *
*:すべての MB90390 シリーズで有効ではあ
りません。
第 1 章 概要
1.4
MB90V390HA/MB90V390HB のブロックダイヤグラム
図 1.4-1 に , MB90V390HA/MB90V390HB のブロックダイヤグラムを示します。
■ MB90V390HA/MB90V390HB のブロックダイヤグラム
図 1.4-1 MB90V390HA/MB90V390HB のブロックダイヤグラム
X0,X1
RST
クロック
コントローラ
F2MC-16LX
CPU
RAM
30K バイト
I/O タイマ 0
FRCK0
インプット
キャプチャ
6 チャネル
IN[5:0]
アウトプット
コンペア
8 チャネル
プリスケーラ
x4*
プリスケーラ
SOT4
SCK4
SIN4
シリアル I/O
AV CC
AV SS
AN[14:0]
AVRH
AVRL
ADTG
10 ビット
A/D
コンバータ
15 チャネル
TIN[1:0]
TOT[1:0]
16 ビット
リロード
タイマ
2 チャネル
WOT
8/16 ビット
PPG
6 チャネル
UART
4*チャネル
F2MC-16LX Bus
SOT[3*:0]
SCK[3*:0]
SIN[3*:0]
I/O タイマ 1
OUT[7:0]
FRCK1
PPG0[5:0]
PPG1[5:0]
CAN
5*チャネル
RX[4:0]
TX[4:0]
SMC
6チャネル
PWM1M[5:0]
PWM1P[5:0]
PWM2M[5:0]
PWM2P[5:0]
DV CC[3:0]
DV SS[3:0]
外部割込み
INT[7:0]
サウンド
ジェネレータ
SGO
SGA
I2C
インタ
フェース *
SDA*
SCL*
時計
タイマ
*:すべての MB90390 シリーズで有効ではあ
りません。
7
第 1 章 概要
1.5
MB90394HA/MB90F394H(A) のブロックダイヤグラム
図 1.5-1 に , MB90394HA/MB90F394H(A) のブロックダイヤグラムを示します。
■ MB90394HA/MB90F394H(A) のブロックダイヤグラム
図 1.5-1 MB90394HA/MB90F394H(A) のブロックダイヤグラム
X0,X1
RST
クロック
コントローラ
F2MC-16LX
CPU
RAM
10K バイト
RAM /Flash
384K バイト
I/O タイマ 0
FRCK0
インプット
キャプチャ
6 チャネル
IN[5:0]
アウトプット
コンペア
8 チャネル
プリスケーラ
x3
プリスケーラ
SOT4
SCK4
SIN4
シリアル I/O
AV CC
AV SS
AN[14:0]
AVRH
AVRL
ADTG
10 ビット
A/D
コンバータ
15 チャネル
TIN[1:0]
TOT[1:0]
16 ビット
リロード
タイマ
2 チャネル
WOT
8/16 ビット
PPG
6 チャネル
UART
3チャネル
F2MC-16LX Bus
SOT[4,3,1,0]
SCK[4,3,1,0]
SIN[4,3,1,0]
I/O タイマ 1
OUT[7:0]
FRCK1
PPG0[5:0]
PPG1[5:0]
CAN
2チャネル
RX[1:0]
TX[1:0]
SMC
6チャネル
PWM1M[5:0]
PWM1P[5:0]
PWM2M[5:0]
PWM2P[5:0]
DV CC[3:0]
DV SS[3:0]
外部割込み
INT[7:0]
サウンド
ジェネレータ
SGO
SGA
I2C インタ
フェース *
SDA
SCL
時計タイマ
*:I2C インタフェースは MB90F394H(A) で有効ではありません。
8
第 1 章 概要
1.6
端子配列図
MB90390 シリーズの端子配列図を示します。
■ MB90V390H の端子配列図
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
1
90
2
89
3
88
4
87
5
86
6
85
7
84
8
83
9
82
10
81
11
80
MB90V390H
Pin Assignment
12
13
79
78
14
77
15
76
16
75
17
74
18
73
72
19
LQFP-120プローブケーブル
ヘッダ部における
端子配列図
20
21
22
23
24
71
70
69
68
67
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
RST
MD0
MD1
MD2
DVSS
DVCC
PA7/PWM2M5
PA6/PWM2P5
PA5/PWM1M5
PA4/PWM1P5
PA3/PWM2M4
PA2/PWM2P4
PA1/PWM1M4
PA0/PWM1P4
DVSS
DVCC
P87/PWM2M3
P86/PWM2P3
P85/PWM1M3
P84/PWM1P3
P83/PWM2M2
P82/PWM2P2
P81/PWM1M2
P80/PWM1P2
DVSS
DVCC
P77/PWM2M1
P76/PWM2P1
P75/PWM1M1
P74/PWM1P1
P93/SIN3
P94/SCK3
P95/SOT3
P96/WOT
AVCC
AVRH
AVRL
AVSS
P60/AN0
P61/AN1
P62/AN2
P63/AN3
P64/AN4
P65/AN5
P66/AN6
P67/AN7
VSS
PB0/PPG02/TX3/AN8
PB1/PPG03/RX3/AN9
PB2/PPG04/TX4/AN10
PB3/PPG05/RX4/AN11
PB4/SIN4/AN12
PB5/SCK4/AN13
PB6/SOT4/AN14
DVCC
DVSS
P70/PWM1P0
P71/PWM1M0
P72/PWM2P0
P73/PWM2M0
38
61
37
62
30
36
63
29
35
64
28
34
65
27
33
66
26
32
25
31
P30/RX0
P31/TX0
P32/TIN1
P33/TOT1
P34/SOT0
P35/SCK0
P36/SIN0
P37/SIN1
P40/SCK1
P41/SOT1
P42/SDA
P43/SCL
P44
P45/ADTG
VCC
VSS
C
P46/INT0
P47/INT1
P50/PPG10
P51/PPG11
P52/PPG12
P53/PPG13
P54/PPG14
P55/PPG15
P56/PPG00/RX2
P57/PPG01/TX2
P90/SIN2
P91/SCK2
P92/SOT2
119
120
P27/INT7
P26/INT6
P25/INT5
P24/INT4
P23/INT3
P22/INT2
P21/RX1
P20/TX1
P17/SGA
P16/SGO
P15/TOT0
P14/TIN0
X0
X1
VSS
VCC
P13/OUT5
P12/OUT4
P11/OUT3
P10/OUT2
P07/OUT1
P06/OUT0
P05/IN5/OUT7
P04/IN4
P03/IN3/OUT6
P02/IN2
P01/IN1
P00/IN0
P97/FRCK1/HCLKX
PB7/FRCK0/HCLK
図 1.6-1 MB90V390H の端子配列図
( 注意事項 ) MB90V390H 以外では使用できない端子機能があります。
9
第 1 章 概要
■ MB90V390HA/MB90V390HB の端子配列図
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
1
90
2
89
3
88
4
87
5
86
6
85
7
84
8
83
9
82
81
10
11
80
MB90V390HA/HB
Pin Assignment
12
13
79
78
14
77
15
76
16
75
17
74
18
73
72
19
LQFP-120プローブケーブル
ヘッダ部における
端子配列図
20
21
22
23
24
71
70
69
68
67
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
P93/SIN3
P94/SCK3
P95/SOT3
P96/WOT
AVCC
AVRH
AVRL
AVSS
P60/AN0
P61/AN1
P62/AN2
P63/AN3
P64/AN4
P65/AN5
P66/AN6
P67/AN7
VSS
PB0/PPG02/TX3/AN8
PB1/PPG03/RX3/AN9
PB2/PPG04/TX4/AN10
PB3/PPG05/RX4/AN11
PB4/SIN4/AN12
PB5/SCK4/AN13
PB6/SOT4/AN14
DVCC
DVSS
P70/PWM1P0
P71/PWM1M0
P72/PWM2P0
P73/PWM2M0
38
61
37
62
30
36
63
29
35
64
28
34
65
27
33
66
26
32
25
31
P30/RX0
P31/TX0
P32/TIN1
P33/TOT1
P34/SOT0
P35/SCK0
P36/SIN0
P37/SIN1
P40/SCK1
P41/SOT1
P42/SDA
P43/SCL
P44
P45/ADTG
VCC
VSS
C
P46/INT0
P47/INT1
P50/PPG10
P51/PPG11
P52/PPG12
P53/PPG13
P54/PPG14
P55/PPG15
P56/PPG00/RX2
P57/PPG01/TX2
P90/SIN2
P91/SCK2
P92/SOT2
119
120
P27/INT7
P26/INT6
P25/INT5
P24/INT4
P23/INT3
P22/INT2
P21/RX1
P20/TX1
P17/SGA
P16/SGO
P15/TOT0
P14/TIN0
X0
X1
VSS
VCC
P13/OUT5
P12/OUT4
P11/OUT3
P10/OUT2
P07/OUT1
P06/OUT0
P05/IN5/OUT7
P04/IN4
P03/IN3/OUT6
P02/IN2
P01/IN1
P00/IN0
P97/FRCK1/HCLKX
PB7/FRCK0/HCLK
図 1.6-2 MB90V390HA/MB90V390HB の端子配列図
( 注意事項 ) MB90V390H 以外では使用できない端子機能があります。
10
RST
MD0
MD1
MD2
DVSS
DVCC
PA7/PWM2M5
PA6/PWM2P5
PA5/PWM1M5
PA4/PWM1P5
PA3/PWM2M4
PA2/PWM2P4
PA1/PWM1M4
PA0/PWM1P4
DVSS
DVCC
P87/PWM2M3
P86/PWM2P3
P85/PWM1M3
P84/PWM1P3
P83/PWM2M2
P82/PWM2P2
P81/PWM1M2
P80/PWM1P2
DVSS
DVCC
P77/PWM2M1
P76/PWM2P1
P75/PWM1M1
P74/PWM1P1
第 1 章 概要
■ MB90394HA/MB90F394H(A) の端子配列図
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
1
90
2
89
3
88
4
87
5
86
6
85
7
84
8
83
9
82
10
81
11
80
MB90394HA/MB90F394H(A)
Pin Assignment
12
13
14
79
78
77
15
76
16
75
17
74
18
73
19
72
20
71
LQFP-120
21
70
60
59
58
57
56
55
54
53
52
51
50
49
48
47
45
46
44
43
42
RST
MD0
MD1
MD2
DVSS
DVCC
PA7/PWM2M5
PA6/PWM2P5
PA5/PWM1M5
PA4/PWM1P5
PA3/PWM2M4
PA2/PWM2P4
PA1/PWM1M4
PA0/PWM1P4
DVSS
DVCC
P87/PWM2M3
P86/PWM2P3
P85/PWM1M3
P84/PWM1P3
P83/PWM2M2
P82/PWM2P2
P81/PWM1M2
P80/PWM1P2
DVSS
DVCC
P77/PWM2M1
P76/PWM2P1
P75/PWM1M1
P74/PWM1P1
P93/SIN3
P94/SCK3
P95/SOT3
P96/WOT
AVCC
AVRH
AVRL
AVSS
P60/AN0
P61/AN1
P62/AN2
P63/AN3
P64/AN4
P65/AN5
P66/AN6
P67/AN7
VSS
PB0/PPG02
PB1/PPG03
PB2/PPG04
PB3/PPG05
PB4/SIN4
PB5/SCK4
PB6/SOT4
DVCC
DVSS
P70/PWM1P0
P71/PWM1M0
P72/PWM2P0
P73/PWM2M0
41
61
40
62
30
39
63
29
38
64
28
37
65
27
36
66
26
35
67
25
34
68
24
33
69
23
32
22
31
P30/RX0
P31/TX0
P32/TIN1
P33/TOT1
P34/SOT0
P35/SCK0
P36/SIN0
P37/SIN1
P40/SCK1
P41/SOT1
P42
P42/SDA*
P43/SCL*
P43
P44
P45/ADTG
VCC
VSS
C
P46/INT0
P47/INT1
P50/PPG10
P51/PPG11
P52/PPG12
P53/PPG13
P54/PPG14
P55/PPG15
P56/PPG00
P57/PPG01
P90
P91
P92
119
120
P27/INT7
P26/INT6
P25/INT5
P24/INT4
P23/INT3
P22/INT2
P21/RX1
P20/TX1
P17/SGA
P16/SGO
P15/TOT0
P14/TIN0
X0
X1
VSS
VCC
P13/OUT5
P12/OUT4
P11/OUT3
P10/OUT2
P07/OUT1
P06/OUT0
P05/IN5/OUT7
P04/IN4
P03/IN3/OUT6
P02/IN2
P01/IN1
P00/IN0
P97/FRCK1/HCLKX
PB7/FRCK0/HCLK
図 1.6-3 MB90394HA/MB90F394H(A) の端子配列図
* : I2C は MB90F394H(A) では使用できません。
11
第 1 章 概要
パッケージ外形寸法図
1.7
図 1.7-1 に , MB90390 シリーズのパッケージ外形寸法図を示します。
なお , 本外形寸法は参考用です。正式版については , 別途ご相談ください。
■ パッケージ外形寸法図
図 1.7-1 パッケージ外形寸法図
プラスチック・LQFP, 120 ピン
(FPT-120P-M21)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
16.0 × 16.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
0.88g
コード(参考)
P-LFQFP120-16×16-0.50
プラスチック・LQFP, 120 ピン
(FPT-120P-M21)
注 1)* 印寸法はレジン残りを含む。
レンジ残りは、片側 +0.25(.010)MAX。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
18.00±0.20(.709±.008)SQ
+0.40
* 16.00 –0.10 .630 +.016
–.004 SQ
90
61
91
60
0.08(.003)
Details of "A" part
+0.20
1.50 –0.10
+.008
(Mounting height)
.059 –.004
INDEX
0~8°
120
LEAD No.
1
30
0.50(.020)
C
"A"
31
0.22±0.05
(.009±.002)
0.08(.003)
M
0.145
.006
+0.05
–0.03
+.002
–.001
2002 FUJITSU LIMITED F120033S-c-4-4
最新の外形寸法図については , 下記の URL で確認してください。
http://edevice.fujitsu.com/jp/datasheet/jf-ovpklv.html
12
0.60±0.15
(.024±.006)
0.10±0.05
(.004±.002)
(Stand off)
0.25(.010)
単位:mm (inches)
注意:括弧内の値は参考値です。
第 1 章 概要
端子機能説明
1.8
表 1.8-1 に , MB90390 シリーズの端子機能説明を示します。
■ 端子機能説明
表 1.8-1 端子機能説明 (1 / 5)
端子番号
端子名
107
X1
108
X0
90
RST
93 ~ 95
P00 ~ P02
IN0 ~ IN2
入出力
回路形式
A
B
D
IN3
D
P04
IN4
D
IN5
D
99 ~ 104
D
OUT0 ~ OUT5
109
110
111
112
113
114
115 ~ 120
1
P14
TIN0
P15
TOT0
P16
SGO
P17
SGA
P20
TX1
P21
RX1
P22 ~ P27
INT2 ~ INT7
P30
RX0
汎用入出力ポートです。
インプットキャプチャ 0 ~ 2 の入力端子です。
インプットキャプチャ 3 の入力端子です。
汎用入出力ポートです。
インプットキャプチャ 4 の入力端子です。
インプットキャプチャ 5 の入力端子です。
アウトプットコンペア 7 の出力端子です。
OUT7
P06 , P07,
P10 ~ P13
リセット入力端子です。
汎用入出力ポートです。
P05
98
発振入力端子です。
アウトプットコンペア 6 の出力端子です。
OUT6
97
発振出力端子です。
汎用入出力ポートです。
P03
96
機能
汎用入出力ポートです。
アウトプットコンペアの出力端子です。
D
D
D
D
D
D
D
D
汎用入出力ポートです。
16 ビット リロードタイマ 0 の TIN0 入力端子です。
汎用入出力ポートです。
16 ビット リロードタイマ 0 の TOT0 出力端子です。
汎用入出力ポートです。
サウンドジェネレータの SGO 出力端子です。
汎用入出力ポートです。
サウンドジェネレータの SGA 出力端子です。
汎用入出力ポートです。
CAN インタフェース 1 の TX 出力端子です。
汎用入出力ポートです。
CAN インタフェース 1 の RX 入力端子です。
汎用入出力ポートです。
INT2 ~ INT7 の外部割込み入力端子です。
汎用入出力ポートです。
CAN インタフェース 0 の RX 入力端子です。
13
第 1 章 概要
表 1.8-1 端子機能説明 (2 / 5)
端子番号
2
3
4
5
6
7
8
9
10
端子名
P31
入出力
回路形式
D
TX0
P32
D
TIN1
P33
TOT1
P34
SOT0
P35
SCK0
P36
D
D
D
D
SIN0
P37
D
SIN1
P40
SCK1
P41
SOT1
D
D
P42
11
SDA
*
D
P43
12
SCL *
D
14
18 , 19
SPB *
P45
ADTG
P46 , P47
INT0, INT1
D
D
D
P50 ~ P55
20 ~ 25
PPG10 ~
PPG15
27
PPG00
汎用入出力ポートです。
16 ビット リロードタイマ 1 の TIN1 入力端子です。
汎用入出力ポートです。
16 ビット リロードタイマ 1 の TOT1 出力端子です。
汎用入出力ポートです。
UART0 の SOT 出力端子です。
汎用入出力ポートです。
UART0 の SCK 入出力端子です。
汎用入出力ポートです。
UART0 の SIN 入力端子です。
汎用入出力ポートです。
UART1 の SIN 入力端子です。
汎用入出力ポートです。
UART1 の SCK 入出力端子です。
汎用入出力ポートです。
UART1 の SOT 出力端子です。
汎用入出力ポートです。
I2C インタフェースのシリアルデータ入出力端子です。
汎用入出力ポートです。
I2C インタフェースのシリアルクロック入出力端子です。
シリアルペリフェラルバスインタフェースのシリアル入
出力端子です。
汎用入出力ポートです。
A/D コンバータの外部トリガ入力端子です。
汎用入出力ポートです。
INT0, INT1 の外部割込み入力端子です。
PPG タイマ 10 ~ 15 の出力端子です。
汎用入出力ポートです。
D
PPG タイマ 00 の出力端子です。
RX2*
CAN インタフェース 2 の RX 入力端子です。
P57
汎用入出力ポートです。
PPG01
TX2*
14
CAN インタフェース 0 の TX 出力端子です。
汎用入出力ポートです。
D
P56
26
汎用入出力ポートです。
汎用入出力ポートです。
P44
13
機能
D
PPG タイマ 01 の出力端子です。
CAN インタフェース 2 の TX 出力端子です。
第 1 章 概要
表 1.8-1 端子機能説明 (3 / 5)
端子番号
端子名
入出力
回路形式
P90
28
SIN2
*
D
P91
29
SCK2*
D
P92
30
SOT2
31
32
33
34
39 ~ 46
*
P93
D
D
SIN3
P94
SCK3
P95
SOT3
P96
WOT
P60 ~ P67
AN0 ~ AN7
D
D
D
E
TX3*
E
UART2 の SCK 入出力端子です。
汎用入出力ポートです。
UART2 の SOT 出力端子です。
汎用入出力ポートです。
UART3 の SIN 入力端子です ( 高速 UART)。
汎用入出力ポートです。
UART3 の SCK 入出力端子です ( 高速 UART)。
汎用入出力ポートです。
UART3 の SOT 出力端子です ( 高速 UART)。
汎用入出力ポートです。
時計タイマの WOT 出力端子です。
汎用入出力ポートです。
A/D コンバータの入力端子です。
CAN インタフェース 3 の TX 出力端子です。
A/D コンバータの入力端子です。
PB1
汎用入出力ポートです。
PPG タイマ 03 の出力端子です。
RX3*
E
CAN インタフェース 3 の RX 入力端子です。
AN9
A/D コンバータの入力端子です。
PB2
汎用入出力ポートです。
PPG タイマ 04 の出力端子です。
PPG04
TX4 *
E
CAN インタフェース 4 の TX 出力端子です。
AN10
A/D コンバータの入力端子です。
PB3
汎用入出力ポートです。
PPG タイマ 05 の出力端子です。
PPG05
51
RX4
52
汎用入出力ポートです。
AN8
PPG03
50
UART2 の SIN 入力端子です。
PPG タイマ 02 の出力端子です。
PPG02
49
汎用入出力ポートです。
汎用入出力ポートです。
PB0
48
機能
*
E
CAN インタフェース 4 の RX 入力端子です。
AN11
A/D コンバータの入力端子です。
PB4
汎用入出力ポートです。
SIN4
AN12
E
シリアル I/O の SIN 入力端子です。
A/D コンバータの入力端子です。
15
第 1 章 概要
表 1.8-1 端子機能説明 (4 / 5)
端子番号
端子名
入出力
回路形式
汎用入出力ポートです。
PB5
53
54
57 ~ 60
SCK4
E
A/D コンバータの入力端子です。
PB6
汎用入出力ポートです。
SOT4
E
A/D コンバータの入力端子です。
P70 ~ P73
汎用入出力ポートです。
PWM1P0,
PWM1M0,
PWM2P0,
PWM2M0
F
PWM1P1,
PWM1M1,
PWM2P1,
PWM2M1
PWM1P2,
PWM1M2,
PWM2P2,
PWM2M2
PWM1P3,
PWM1M3,
PWM2P3,
PWM2M3
F
PWM1P4,
PWM1M4,
PWM2P4,
PWM2M4
F
PWM1P5,
PWM1M5,
PWM2P5,
PWM2M5
F
92
FRCK0
F
ステッピングモータコントローラ ch.4 の出力端子です。
汎用入出力ポートです。
F
ステッピングモータコントローラ ch.5 の出力端子です。
汎用入出力ポートです。
D
16 ビット I/O タイマ 0 の FRCK0 入力端子です。
HCLK
発振クロック出力端子です。
P97
汎用入出力ポートです。
FRCK1
HCLKX
16
ステッピングモータコントローラ ch.3 の出力端子です。
汎用入出力ポートです。
PB7
91
ステッピングモータコントローラ ch.2 の出力端子です。
汎用入出力ポートです。
PA4 ~ PA7
81 ~ 84
ステッピングモータコントローラ ch.1 の出力端子です。
汎用入出力ポートです。
PA0 ~ PA3
77 ~ 80
ステッピングモータコントローラ ch.0 の出力端子です。
汎用入出力ポートです。
P84 ~ P87
71 ~ 74
シリアル I/O の SOT 出力端子です。
AN14
P80 ~ P83
67 ~ 70
シリアル I/O の SCK 入出力端子です。
AN13
P74 ~ P77
61 ~ 64
機能
D
16 ビット I/O タイマ 1 の FRCK1 入力端子です。
反転発振クロック出力端子です。
第 1 章 概要
表 1.8-1 端子機能説明 (5 / 5)
端子番号
端子名
入出力
回路形式
機能
55, 65, 75,
85
DVCC
-
高電流出力バッファの専用電源入力端子です
( 端子番号 57 ~ 84) 。
56, 66, 76,
86
DVSS
-
高電流出力バッファの専用 GND 電源端子です
( 端子番号 57 ~ 84) 。
35
AVCC
-
A/D コンバータの専用電源 (5V) 入力端子です。
36
AVRH
-
A/D コンバータの VrefH 入力端子です。
37
AVRL
-
A/D コンバータの VrefL 入力端子です。
38
AVSS
-
A/D コンバータの専用電源 (0V) 端子です。
MD1, MD0
C
動作モード指定用入力端子です。VCC あるいは VSS に直
87
MD2
G
動作モード指定用入力端子です。VCC あるいは VSS に直
15, 105
VCC
-
電源 (5V) 入力端子です。
16, 47, 106
VSS
-
(0V) 入力端子です。
C
-
電源安定化の容量端子です。0.1 μF 以上のセラミックコ
ンデンサに接続してください。
88, 89
17
接つないで使用してください。
接つないで使用してください。
*: 製品によって使用できない端子機能があります。
17
第 1 章 概要
1.9
入出力回路形式
表 1.9-1 に , 入出力回路形式を示します。
■ 入出力回路形式
表 1.9-1 入出力回路形式 (1 / 2)
分類
回路
備考
• 発振帰還抵抗:約 1MΩ
A
X1
クロック入力
P-ch
N-ch
X0
スタンバイ制御信号
• プルアップ抵抗付き CMOS
ヒステリシス入力
• プルアップ抵抗 : 約 50kΩ
B
VCC
R(プルアップ)
R
CMOS
ヒステリシス入力
C
R
CMOS
ヒステリシス入力
D
VCC
P-ch
N-ch
R
R
CMOS
ヒステリシス入力
Automotive
18
• EVA:CMOS ヒステリシス入
力端子
• Flash:CMOS 入力端子
• CMOS 出力
• CMOS ヒステリシス入力
• Automotive 入力
( 注意事項 )
入力特性は端子やデバイス
により異なります。
データシートを参照してく
ださい。
第 1 章 概要
表 1.9-1 入出力回路形式 (2 / 2)
分類
回路
備考
• CMOS 出力
• CMOS ヒステリシス入力
• Automotive 入力
• アナログ入力
( 注意事項 )
入力特性は端子やデバイス
により異なります。
データシートを参照してく
ださい。
E
VCC
P-ch
N-ch
P-ch
アナログ入力
N-ch
R
CMOS
ヒステリシス入力
R
Automotive
• CMOS 高電流出力
• CMOS ヒステリシス入力
• Automotive 入力
F
VCC
P-ch
高電流出力
N-ch
R
CMOS
ヒステリシス入力
R
Automotive
G
R
CMOS
ヒステリシス入力
R(プルダウン)
• EVA: プルダウン抵抗付き
CMOS ヒステリシス入力
プルダウン抵抗 : 約 50kΩ
• Flash:CMOS 入力
プルダウン抵抗なし
19
第 1 章 概要
1.10
デバイスの取扱い
デバイスを取り扱う際には , 次の 11 の点について特にご注意ください。
• ラッチアップの防止
• 未使用端子の処理
• 供給電圧の安定化
• 外部クロックの使用
• 電源入力端子 (VCC/VSS)
•
•
•
•
•
•
プルアップ / プルダウン抵抗
水晶発振回路について
A/D コンバータの電源 , アナログ入力の投入順序について
A/D コンバータ未使用時の端子処理について
電源投入時の注意点
PLL クロックモード動作中の注意について
■ デバイスの取扱い
● ラッチアップの防止
CMOS IC チップでは, 以下のような状態でラッチアップ現象を生じることがあります。
• 入力端子や出力端子に VCC より高い電圧あるいは VSS より低い電圧が印加された場
合
• VCC と VSS との間に定格を超える電圧が印加された場合
• VCC 電圧の前に AVCC 電源を印加された場合
ラッチアップ現象が発生すると電源電流が激増し , デバイスの熱破壊に至る場合があ
りますので , 使用に際しては最大定格を超えることのないよう十分注意してください。
同様の理由により, アナログ電源電圧(AVCC, AVRH)がデジタル電源電圧を超えること
のないよう十分注意してください。
● 未使用端子の処理
使用していない入力端子を開放のままにした場合 , 誤動作およびラッチアップによる
永久破壊の原因となることがありますので, 2kΩ以上の抵抗を介してプルアップまたは
プルダウンの処置をしてください。また , 使用していない入出力端子がある場合は , 出
力状態に設定して開放するか , 入力状態に設定して入力端子と同じ処置をしてくださ
い。
● 供給電圧の安定化
VCC 電源電圧の動作保証内においても, 電源電圧の急激な変化があると誤動作を起こす場
合がありますので , VCC 電源電圧を安定させてください。
安定化の基準としては , 商用周波数 (50 /60 Hz) での VCC リプル変動 (peak to peak 値 ) は ,
標準 VCC 電源電圧値の 10% 以下に , また , 電源の切換え時などの瞬時変化においては , 過
度変動率が 0.1V/ms 以下になるように電源電圧を抑えてください。
20
第 1 章 概要
● 外部クロックの使用
外部クロックを使用するには , X0 端子を駆動して X1 端子は開放してください。
図 1.10-1 に , 外部クロックの使用方法を示します。
図 1.10-1 外部クロックの使用方法
MB90390 シリーズ
MB90590
Series
X0
開放
X1
● 電源入力端子 (VCC/VSS)
• VCC, VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止する
ために , 同電位にすべき端子はデバイス内部で接続してあります。
不要輻射の低減 , グランドレベルの上昇によるストローブ信号の誤動作防止 , 総出
力電流規格を守るなどのために , 必ず VCC 端子 , VSS 端子を外部で電源 , およびグラ
ンドに接続してください。
• 電流供給源からできる限り低インピーダンスでこのデバイスの VCC 端子 , VSS 端子
に接続するように配慮してください。
• 電源ノイズ対策として , このデバイスの VCC 端子と VSS 端子の近くで , VCC 端子と
VSS 端子との間に 0.1 µF 程度のコンデンサをバイパスコンデンサとして接続するこ
とをお薦めします。
図 1.10-2 電源入力端子 (VCC/VSS)
Vcc
Vss
Vcc
Vss
Vss
Vcc
MB90390
シリーズ
Vcc
Vss
Vss
Vcc
● プルアップ / プルダウン抵抗
MB90390 シリーズは , 内部プルアップ / プルダウン抵抗オプションをサポートしてい
ません。必要に応じて外部構成部品を使用してください。
21
第 1 章 概要
● 水晶発振回路について
X0, X1 端子の近辺のノイズはこのデバイスの誤動作の原因となります。X0, X1 端子お
よび水晶振動子 (またはセラミック振動子) さらにグランドへのバイパスコンデンサは
できる限り近くになるように , また , その配線はほかの配線とできる限り交差しないよ
うにプリント基板を設計してください。また , X0, X1 端子の回りをグランドで囲むよ
うなプリント基板アートワークは , 安定した動作を期待できますので強くお薦めしま
す。
各商品において , ご使用される発振子メーカに発振評価依頼をしてください。
● A/D コンバータの電源 , アナログ入力の投入順序について
A/D コンバータの電源 (AVCC, AVRH, AVRL) およびアナログ入力 (AN0 ~ AN14) の印
加は , 必ずデジタル電源 (VCC) の投入後に行ってください。また , 電源切断時は A/D コ
ンバータの電源およびアナログ入力の遮断の後で , デジタル電源の遮断を行ってくだ
さい。その際 , 電圧は AVRH, AV CC を超えないように投入・切断を行ってください。
● A/D コンバータ未使用時の端子処理について
A/D コンバータを使用しないときは , AVCC=VCC, AVSS=AVRH=AVRL=VSS に接続して
ください。
● 電源投入時の注意点
内部に内蔵している降圧回路の誤動作を防ぐために , 電源投入時における電圧の立上
り時間は 50μs (0.2V ~ 2.7V の間 ) 以上を確保してください。
● PLL クロックモード動作中の注意について
本マイコンで PLL クロックを選択しているときに発振子が外れたりまたはクロック入
力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を継続
し続ける場合があります。この動作は保証外です。
22
第2章
CPU
CPU の機能と動作について説明します。
2.1 CPU の概要
2.2 メモリ空間
2.3 メモリ空間マップ
2.4 リニア方式によるアドレス指定
2.5 バンク方式によるアドレス指定
2.6 メモリ空間における多バイト長データ
2.7 レジスタ
2.8 レジスタバンク
2.9 プレフィックスコード
2.10 割込み抑止命令
2.11 "「DIV A, Ri」", "「DIVW A, RWi」" 命令の使用上の
注意
23
第 2 章 CPU
2.1
CPU の概要
F2MC-16LX CPU コアは , 民生用・車載用機器などの高速リアルタイム処理が要求さ
れる用途向けに設計された 16 ビット CPU です。F2MC-16LX の命令セットはコン
トローラ用途向けに設計されており , 各種制御の高速・高効率処理が可能です。
■ CPU の概要
F2MC-16LX CPU コアは 16 ビットデータ処理は勿論 , 内部に 32 ビットアキュムレータ
を塔載しているため 32 ビットデータ処理も可能です。メモリ空間は最大 16M バイト
( 拡張可能 ) , リニア方式およびバンク方式のいずれかにてアクセス可能です。また , 命
令体系は F2MC-8L の A-T アーキテクチャをベースに高級言語対応命令の追加・アド
レッシングモードの拡張・乗除算命令の強化・ビット処理の充実化により命令が強化
されています。
以下に , F2MC-16LX CPU の特長を示します。
● 最小命令実行時間
42ns (4MHz 発振 , 6 逓倍 )
● 最大メモリ空間
16M バイト , リニア / バンク方式にてアクセス
● コントローラ用途に最適化された命令体系
• 豊富なデータタイプビット / バイト / ワード / ロングワード
• 拡張されたアドレッシングモード 23 種類
• 32 ビットアキュムレータの採用による高精度演算 (32 ビット長 ) の強化
● 強力な割込み機能
8 つのプライオリティレベル ( プログラマブル )
● CPU に依存しない自動転送機能
最大 16 チャネルまでの拡張インテリジェント I/O サービス
● 高級言語 (C 言語 ) / マルチタスクに対応した命令体系
システムスタックポイントの採用 / 命令セットの対称性 / バレルシフト命令
● 実行速度の向上
4 バイトのキュー
24
第 2 章 CPU
2.2
メモリ空間
F2MC-16LX CPU が管理するデータ・プログラム・I/O はすべて F2MC-16LX CPU が
持つ 16M バイトのメモリ空間のいずれかに配置されます。CPU は 24 ビットのアド
レスバスでこれらのアドレスを示すことにより , 各リソースをアクセスできます。
■ CPU メモリ空間の概要
データ・プログラム・I/O はすべて F2MC-16LX CPU が持つ 16M バイトのメモリ空間
のいずれかに配置されます。CPU は 24 ビットのアドレスバスでこれらのアドレスを示
すことにより , 各リソースをアクセスできます。
図 2.2-1 に , F2MC-16LX システムとメモリマップの関係例を示します。
図 2.2-1 F2MC-16LX システムとメモリマップの関係例
F2MC-16LX
デバイス
FFFFFFH
FFFC00H
プログラム
FF0000H *1
ベクタテーブル領域
ROM 領域
プログラム領域
内部データバス
100000H
010000H
008000 /
004000H *2
020000H
外部領域 *4
ROM ミラー領域
(FF バンクのイメージ )
外部領域 *4
000D00H *3
F2MC-16LX
データ
CPU
EI2OS
000380H
000180H
000100H
0000C0H
割込み
データ領域
汎用レジスタ
EI2OS ディスク
リプタ領域
外部領域 *4
割込み制御レジスタ領域
0000B0H
リソース
リソース制御レジスタ領域
000020H
汎用ポート
RAM 領域
000000H
I/O 領域
I/O ポート制御レジスタ
領域
*1:品種によって , 内蔵 ROM の容量が異なります。
*2:品種によって , イメージでアクセスできる領域が異なります (「第 27 章 ROM ミラー機能選択 モジュール」を参照 )。
*3:品種によって , 内蔵 RAM の容量が異なります。
*4:シングルチップモード時には , アクセスできません。
25
第 2 章 CPU
■ ROM 領域
● ベクタテーブル領域 ( アドレス : FFFC00H ~ FFFFFFH)
ベクタコール命令 , 割込みベクタおよびリセットベクタの各々のベクタテーブルとし
て使用します。
ROM 領域の最上位に割り当てられており , 対応する処理ルーチンの開始アドレスをベ
クタコール命令 , 割込みベクタおよびリセットベクタのベクタテーブルのアドレスに
データとして設定します。
● プログラム領域 ( アドレス:" ~ FFFBFFH")
ROM が内部プログラム領域として内蔵されています。内蔵容量は , 品種によって異な
ります。
■ RAM 領域
● データ領域 ( アドレス : 000100H ~ 0010FFH (4K バイト用 ))
スタティック RAM が内部データ領域として内蔵されています。
内蔵 RAM 容量は品種によって異なります。
● 汎用レジスタ領域 ( アドレス : 000180H ~ 00037FH)
8 ビット , 16 ビット , 32 ビットの演算や転送に使用する汎用レジスタが配置されていま
す。
この領域は RAM 領域の一部として割り当てられているため , 通常の RAM として使用
できます。
汎用レジスタとして使用した場合 , 汎用レジスタアドレス指定は短い命令による高速
アクセスを可能とします。
● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ領域 ( アドレス : 000100H ~
00017FH)
拡張インテリジェント I/O サービス (EI2OS) の転送モード , I/O のアドレス , 転送数およ
びバッファアドレスを設定します。
この領域は RAM 領域の一部として割り当てられているため , 通常の RAM として使用
できます。
■ I/O 領域
● 割込み制御レジスタ ( アドレス : 0000B0H ~ 0000BFH)
割込み制御レジスタ (ICR00~ICR15) は, 割込み機能を持つすべてのリソースに対応し
ています。これらのレジスタは割込みレベルと拡張インテリジェント I/O サービス
(EI2OS) を設定しています。
● リソース制御レジスタ領域 ( アドレス : 000020H ~ 0000AFH)
これらのレジスタはリソースを制御し , かつデータを入出力します。
● I/O ポート制御レジスタ領域 ( アドレス : 000000H ~ 00001FH)
これらのレジスタは I/O ポートを制御し , かつデータを入出力します。
26
第 2 章 CPU
■ アドレス作成の方式
F2MC-16LX のアドレス指定には , 以下に示す 2 つの方式があります。
● リニア方式
24 ビットアドレスすべてを命令により指定する方式
● バンク方式
アドレス上位 8 ビットを用途に応じたバンクレジスタで , アドレス下位 16 ビットを命
令により指定する方式
27
第 2 章 CPU
2.3
メモリ空間マップ
図 2.3-1 に , MB90390 シリーズのメモリ空間マップを示します。
■ メモリ空間マップ
図 2.3-1 に示すように , バンク 00 の上位部分は FF バンク ROM のイメージであり , C コ
ンパイラのスモールモデルを有効にします。下位 16 ビットも同様なため , ポインタ宣
言内の far 仕様を使用せずに ROM 内のテーブルを参照できます。例えば , "00C000H"
にアクセスしようとすると, ROM内の"FFC000H"の値にアクセスすることになります。
バンク FF 内の ROM 領域は 48K バイト (MB90V390H/MB90V390HA/MB90V390HB で
は各32Kバイト)を超え, バンク00内にその全体イメージを表示することはできません。
MB90394HA および MB90F394H(A) では , "FF4000H"/"FF8000H"* ~ "FFFFFFH" の間の
イメージはバンク 00 内で可視ですが , "FF0000H" ~ "FF3FFFH"/"FF7FFFH"* の間のイ
メージはバンク FF 内でしか可視でありません。
MB90V390H/MB90V390HA/MB90V390HB では , "FF8000H" ~ "FFFFFFH" の間のイメー
ジはバンク 00 内で可視ですが , "FF0000H" ~ "FF7FFFH" の間のイメージはバンク FF 内
でしか可視できません。
<注意事項>
ROM レジスタの MS ビットで選択できます (「27.2 ROM ミラー機能選択レジスタ
(ROMM)」を 参照 )。
28
第 2 章 CPU
図 2.3-1 メモリ空間マップ
MB90394HA/
F394H(A)
FFFFFFH
FF0000H
FEFFFFH
FE0000H
FDFFFF H
MB90V390HA/HB
ROM (FF バンク )
FFFFFFH
ROM (FE バンク )
FF0000H
FEFFFFH
ROM (FD バンク )
FE0000H
FDFFFF H
FD0000H
FCFFFF H
FD0000H
FCFFFF H
FC0000H
FBFFFFH
ROM (FB バンク )
FC0000H
FBFFFFH
ROM (FA バンク )
FB0000H
FA F F F F H
ROM (F9 バンク )
FA 0 0 0 0 H
F9FFFFH
FB0000H
FA F F F F H
FA 0 0 0 0 H
F9FFFFH
F90000H
F90000H
F8FFFFH
ROM (FF バンク )
ROM (FE バンク )
ROM (FD バンク )
ROM (FC バンク )
ROM (FB バンク )
ROM (FA バンク )
ROM (F9 バンク )
ROM (F8 バンク )
F80000H
00FFFFH
004000H
or
008000H
ROM (FF バンク
のイメージ )
003FFFH
周辺
MB90V390H
FFFFFFH
FF0000H
FEFFFFH
ROM (FE バンク )
FE0000H
FDFFFF H
ROM (FD バンク )
FD0000H
FCFFFF H
ROM (FC バンク )
FC0000H
FBFFFFH
ROM (FB バンク )
FB0000H
FA F F F F H
FA 0 0 0 0 H
F9FFFFH
F90000H
F8FFFFH
RAM 6K バイト
00FFFFH
ROM (FF バンク
のイメージ )
00FFFFH
RAM 12K バイト
0050FFH
004100H
008000H
003500H
003500H
0028FFH
0030FFH
0030FFH
0000BFH
000000H
RAM 12K バイト
0000BFH
000000H
ROM (FF バンク
のイメージ )
RAM 4K バイト
RAM 12K バイト
000100H
000100H
周辺
ROM (F8 バンク )
周辺
周辺
003500H
000100H
ROM (F9 バンク )
003FFFH
003FFFH
RAM 10K バイト
ROM (FA バンク )
F80000H
8017FFH
800000H
008000H
0070FFH
004100H
ROM (FF バンク )
周辺
0000BFH
000000H
周辺
29
第 2 章 CPU
リニア方式によるアドレス指定
2.4
リニア方式には以下に示す 2 つの方式があります。
• 24 ビットオペランド指定……オペランドにて直接 24 ビットのアドレスを指定する方式
• 32 ビットレジスタ間接指定……32 ビットの汎用レジスタの内容の下位 24 ビットをアド
レスとして引用する方式
■ 24 ビットオペランド指定
図 2.4-1 に , 24 ビットオペランド指定の例を , 図 2.4-2 に , 32 ビットレジスタ間接指定
の例を示します。
図 2.4-1 リニア方式 (24 ビットオペランド指定 ) の例
JMPP 123456H
17452DH
旧プログラムカウンタ
+プログラムバンク
17
452D
JMPP 123456H
123456H
新プログラムカウンタ
+プログラムバンク
12
次の命令
3456
図 2.4-2 リニア方式 (32 ビットレジスタ間接指定 ) の例
MOV
A, @RL1+7
旧AL
090700H
XXXXH
3A
+7
RL1
(上位8ビットは無視)
新AL
30
003AH
240906F9
第 2 章 CPU
2.5
バンク方式によるアドレス指定
バンク方式は 16M バイトの空間を 64K バイトごとの 256 個のバンクに分割し , 以下
に示す 5 つのバンクレジスタで各空間に対応するバンクを指定します。
• プログラムカウンタバンクレジスタ (PCB)
• データバンクレジスタ (DTB)
• ユーザスタックバンクレジスタ (USB)
• システムスタックバンクレジスタ (SSB)
• アディショナルデータバンクレジスタ (ADB)
■ バンク方式によるアドレス指定
● プログラムカウンタバンクレジスタ (PCB) による指定
プログラムカウンタバンクレジスタ (PCB) によって指定される 64K バイトのバンクを
プログラム (PC) 空間とよび , 主として命令コードやベクタテーブル , 即値データなど
が存在します。
● データバンクレジスタ (DTB) による指定
データバンクレジスタ (DTB) によって指定される 64K バイトのバンクをデータ (DT) 空
間とよび , 主として読み書き可能なデータや内外リソースの制御 / データレジスタなど
が存在します。
● ユーザスタックバンクレジスタ (USB)・システムスタックバンクレジスタ (SSB) による指定
ユーザスタックバンクレジスタ (USB) またはシステムスタックバンクレジスタ (SSB)
によって指定される 64K バイトのバンクをスタック (SP) 空間とよび , プッシュ / ポッ
プ命令や割込みのレジスタ退避などの際にスタックアクセスが生じたときにアクセス
される領域です。どちらの空間が使用されるかはコンディションコードレジスタ中の
S フラグの値に依存します。
● アディショナルデータバンクレジスタ (ADB) による指定
アディショナルデータバンクレジスタ (ADB) によって指定される 64K バイトのバンク
をアディショナル (AD) 空間とよび , 主として DT 空間に入りきらなかったデータなど
が存在します。
表 2.5-1 に示すように , 各アドレッシングモードで使用されるデフォルト空間が命令の
コード効率を向上するために事前に決められています。また , あるアドレッシングを用
いたときにデフォルト以外の空間を使用したいときは , 各バンクに対応しているプレ
フィックスコードを命令に先行して指定することにより , そのプレフィックスコード
に対応した任意のバンク空間をアクセスできます。
DTB, USB, SSB, ADB はリセットにより "00H" に初期化され , PCB はリセットベクタに
より指定された値に初期化されます。リセット後 , DT, SP, AD の各空間はバンク "00H"
(000000H ~ 00FFFFH) に配置され , PC 空間はリセットベクタにより指定されたバンク
に配置されます。
31
第 2 章 CPU
表 2.5-1 デフォルト空間
デフォルト空間
アドレッシング
プログラム空間
PC 間接 , プログラムアクセス , 分岐系
データ空間
@RW0,@RW1,@RW4,@RW5 を用いたアドレッシング , @A, addr16, dir
スタック空間
PUSHW, POPW,@RW3,@RW7 を用いたアドレッシング
アディショナル空間
@RW2,@RW6 を用いたアドレッシング
図 2.5-1 に , レジスタバンクに分割されたメモリ空間の例を示します。
図 2.5-1 各空間の物理アドレス
FFFFFFH
FF0000H
プログラム空間
FFH
: PCB (プログラムカウンタバンクレジスタ)
B3H
: ADB (アディショナルデータバンクレジスタ)
92H
: USB (ユーザスタックバンクレジスタ)
68H
: DTB (データバンクレジスタ)
4BH
: SSB (システムスタックバンクレジスタ)
B3FFFFH
アディショナル空間
B30000H
物理アドレス
92FFFFH
ユーザスタック空間
920000H
68FFFFH
680000H
データ空間
4BFFFFH
システムスタック空間
4B0000H
000000H
32
第 2 章 CPU
メモリ空間における多バイト長データ
2.6
メモリへの書込みはアドレスの低い方から順に行われます。したがって , 32 ビット
長データであれば下位 16 ビットが先に転送され , 続いて上位 16 ビットが転送され
ます。
なお , 下位データの書込み直後にリセット信号を入力すると上位データが書き込ま
れないことがあります。
■ メモリ空間における多バイト長データの配置
図 2.6-1 に , メモリにおける多バイト長データの構成を示します。データは下位 8 ビッ
トが n 番地に , 以下 n+1 番地 , n+2 番地 , n+3 番地・・・の順に配置されます。
図 2.6-1 メモリにおける多バイト長データの配置の例
MSB
"H"
LSB
01010101B
11001100B
11111111B
00010100B
01010101B
11001100B
11111111B
n番地
00010100B
"L"
■ 多バイト長データのアクセス
アクセスはすべてバンク内を基本にして行われますので , 多バイト長のデータをアク
セスする命令では , "FFFFH" 番地の次のアドレスは同じバンクの "0000H" 番地になりま
す。図 2.6-2 に , 多バイト長データのアクセス命令の例を示します。
図 2.6-2 MOVW A, 080FFFFH の実行
"H"
80FFFFH
実行前のAL
??
??
実行後のAL
23H
01H
01H
·
·
·
800000H
23H
"L"
33
第 2 章 CPU
2.7
レジスタ
F2MC-16LX のレジスタは大別して , 専用レジスタと汎用レジスタの 2 種類に分ける
ことができます。
専用レジスタは , CPU の内部に専用ハードウェアとして存在し , 使用する用途が
CPU のアーキテクチャ上で限定されています。
汎用レジスタは , 通常のメモリと同じく , 使用する用途をユーザが指定できるもので
す。CPU のアドレス空間上に RAM と共存し , アドレスを指定しないでアクセスで
きるという点では専用レジスタと同じです。
■ 専用レジスタ
F2MC-16LX CPU コアの専用レジスタを以下に示します。
• アキュムレータ (A=AH:AL)……16 ビット× 2 本のアキュムレータ ( 合計 32 ビット
のアキュムレータとしても使用可能 ) 。
• ユーザスタックポインタ (USP)……ユーザスタック領域を示す 16 ビットのポインタ
• システムスタックポインタ (SSP)……システムスタック領域を示す 16 ビットのポイ
ンタ
• プロセッサステータス (PS)……システムの状態を示す 16 ビットのレジスタ
• プログラムカウンタ (PC)……プログラムが格納されているアドレスを持つ 16 ビッ
トのレジスタ
• プログラムカウンタバンクレジスタ (PCB)……PC 空間を示す 8 ビットのレジスタ
• データバンクレジスタ (DTB)……DT 空間を示す 8 ビットのレジスタ
• ユーザスタックバンクレジスタ (USB)……ユーザスタック空間を示す 8 ビットのレ
ジスタ
• システムスタックバンクレジスタ (SSB)……システムスタック空間を示す 8 ビット
のレジスタ
• アディショナルデータバンクレジスタ(ADB)……AD空間を示す8ビットのレジスタ
• ダイレクトページレジスタ (DPR)……ダイレクトページを示す 8 ビットのレジスタ
図 2.7-1 に , 専用レジスタの構成を示します。
34
第 2 章 CPU
図 2.7-1 専用レジスタ
AH
AL
アキュムレータ
USP
ユーザスタックポインタ
SSP
システムスタックポインタ
PS
プロセッサステータス
PC
プログラムカウンタ
DPR
ダイレクトページレジスタ
PCB
プログラムカウンタバンクレジスタ
DTB
データバンクレジスタ
USB
ユーザスタックバンクレジスタ
SSB
システムスタックバンクレジスタ
ADB
アディショナルデータバンクレジスタ
8ビット
16ビット
32ビット
■ 汎用レジスタ
図 2.7-2 に示すように , F2MC-16LX の汎用レジスタは主記憶の "000180H" ~ "00037FH"
( 最大の場合 ) に存在し , レジスタバンクポインタ (RP) によって先に述べたアドレスの
どの部分が現在使用中のレジスタバンクであるかを指定します。各バンクには以下に
示す 3 種類のレジスタが存在します。これらは独立ではなく , 以下に示すような関係が
あります。
• R0 ~ R7
:8 ビットの汎用レジスタ
• RW0 ~ RW7
:16 ビットの汎用レジスタ
• RL0 ~ RL3
:32 ビットの汎用レジスタ
図 2.7-2 汎用レジスタ
MSB
LSB
16ビット
000180H+RP×10H
RW0
下位
RL0
汎用レジスタの先頭アドレス
RW1
RW2
RL1
RW3
R1
R0
RW4
R3
R2
RW5
R5
R4
RW6
R7
R6
RW7
RL2
RL3
上位
バイトレジスタとワードレジスタの上位 / 下位バイトの関係は
RW(i+4)=R(i × 2+1) × 256+R(i × 2)[i=0 ~ 3]
という式で表すことができ , RLi の上位・下位と RW の関係は
RL(i)=RW(i × 2+1) × 65536+RW(i × 2)[i=0 ~ 3]
という式で表すことができます。
35
第 2 章 CPU
2.7.1
アキュムレータ (A)
アキュムレータ (A) レジスタは , 2 つの 16 ビット長の演算用レジスタ AH および AL
で構成され , 演算などを行った際の結果やデータ転送の一時記憶などに使用されま
す。
■ アキュムレータ (A)
アキュムレータ (A) レジスタでは , 図 2.7-3 に示すように , 32 ビットデータ処理時は AH
と AL を連結して使用します。また , 図 2.7-4 に示すように , 16 ビットデータ処理のワー
ド処理や 8 ビットデータ処理のバイト処理のときは AL のみが使用されます。A レジ
スタ中のデータはメモリ / レジスタ (Ri, RWi, RLi) 中のデータと各種演算ができ , F2MC8L のときと同様 , F2MC-16LX でも基本的にワード長以下のデータを AL へ転送すると ,
転送前の AL 中のデータが自動的に AH に転送される ( データ保持機能 ) ので , データ
保持機能と AL-AH 間演算にて各種処理効率を上げることが可能になります。
AL へのバイト長以下のデータの転送時は , データは符号拡張またはゼロ拡張され 16
ビット長となり AL へ格納されます。AL 中のデータは , ワード長としてもバイト長と
しても扱えます。AL にバイト処理の算術演算命令を実行すると , 演算前の AL の上位
8 ビットは無視され演算結果の上位 8 ビットはすべて "0" になります。A レジスタは ,
リセットでは初期化されず , リセット直後は不定値になります。
図 2.7-3 32 ビットデータ転送例
MOVL A,@R W1+6
実行前のA
MSB LSB
XXXXH
XXXXH
DTB
実行後のA
8F74H
A6H
A61540H
8FH
74H
A6153EH
2BH
52H
15H
38H
+6
RW1
2B52H
AH AL
図 2.7-4 AL-AH 転送例
MSB
MOVW A,@R W1+6
実行前のA
XXXXH
1234H
DTB
実行後のA
36
1234H
A6H
1234H
LSB
A61540H
8FH
74H
A6153EH
2BH
52H
15H
38H
+6
RW1
第 2 章 CPU
ユーザスタックポインタ (USP) とシステムスタック
ポインタ (SSP)
2.7.2
ユーザスタックポインタ (USP) およびシステムスタックポインタ (SSP) は 16 ビッ
トのレジスタであり , プッシュ / ポップ命令およびサブルーチン実行時のデータ退避 /
復帰のメモリアドレスを示します。
■ ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP)
図 2.7-5 に示すように , ユーザスタックポインタ (USP) とシステムスタックポインタ
(SSP) は , スタック系の命令により使用されますが , プロセッサステータス中の S フラ
グが "0" のときは , USP レジスタが有効になり , S フラグが "1" のときは SSP レジスタ
が有効になります。また , 割込みが受け付けられると S フラグがセットされるため , 割
込み時のレジスタ退避は必ず SSP の示すメモリ中に行われます。割込みルーチンでの
スタック処理は SSP で , 割込みルーチン以外のスタック処理は USP が用いられます。
スタック空間を分ける必要のない場合は SSP だけをお使いください。
スタック時のアドレスの上位 8 ビットは , SSP → SSB, USP → USB により示されます。
また , USP および SSP は , リセットでは初期化されず不定値になります。
図 2.7-5 スタック操作命令とスタックポインタ
Sフラグが"O"のときのPUSHW Aの例
実行前
AL
Sフラグ
実行後
AL
MSB
A624H
USB
C6H
0
SSB
56H
A624H
USB
C6H
0
SSB
56H
USP
SSP
USP
SSP
F328H
C6F326H
LSB
XXH
XXH
1234H
F326H
Sフラグが"0"であるため
システムスタックを使用
1234H
C6F326H
A6H
24H
F328H
561232H
XXH
XXH
561232H
A6H
24H
Sフラグが"1"のときのPUSHW Aの例
AL
A624H
1
AL
A624H
1
USB
C6H
SSB
56H
USB
C6H
SSB
56H
USP
SSP
USP
SSP
1234H
F328H
1232H
Sフラグが"1"であるため
システムスタックを使用
<注意事項>
スタックポインタに設定すべき値は , 原則として偶数アドレスを使用してください。
37
第 2 章 CPU
2.7.3
プロセッサステータス (PS)
プロセッサステータス (PS) は , CPU の動作制御を行うビットと CPU の状態を示す
ビットより構成されています。
■ プロセッサステータス (PS)
図 2.7-6 に示すように , プロセッサステータス (PS) の上位バイトはレジスタバンクの先
頭アドレスを示すインタラプトレベルマスクレジスタ (ILM) およびレジスタバンクポ
インタ (RP) より構成され , PS の下位バイトは命令実行結果および割込み発生などによ
りセット / リセットされる各種フラグより構成されているコンディションコードレジ
スタ (CCR) より構成されています。
図 2.7-6 プロセッサステータス (PS) の構造
bit 15
PS
13 12
8 7
ILM
0
RP
CCR
■ コンディションコードレジスタ (CCR)
図 2.7-7 に , コンディションコードレジスタ (CCR) の構成を示します。
図 2.7-7 コンディションコードレジスタ (CCR) の構成
bit
7
6
5
3
4
2
1
0
初期値
-
-
I
0
S
1
T
*
N
*
Z
*
V
*
C
*
CCR
* : 不定値
● 割込み許可フラグ (I)
ソフトウェアインタラプト以外のすべての割込み要求に対し I が "1" のときは割込みが
許可 , "0" のときは割込みはマスク。リセット時クリア。
● スタックフラグ (S)
S が "0" のときはスタック操作用ポインタとして USP が有効 , "1" のときは SSP が有効
になります。割込み受付け時およびリセット時にセット。
● スティッキィビットフラグ (T)
論理右 / 算術右シフト命令を実行後にキャリよりシフトアウトされたデータに 1 つ以
上 "1" があったら "1", それ以外は "0"。シフト量がゼロの場合も "0"。
● ネガティブフラグ (N)
演算結果の MSB が "1" なら N フラグはセット , それ以外はクリア。
● ゼロフラグ (Z)
演算結果がすべて "0" ならセット , それ以外はクリア。
38
第 2 章 CPU
● オーバフローフラグ (V)
演算の実行により符号付き数値としてオーバフローが生じるとセット , 生じないとク
リア。
● キャリフラグ (C)
演算の実行により MSB より桁上り / 桁下りが生じるとセット , 生じないとクリア。
■ レジスタバンクポインタ (RP)
図 2.7-8 に示すように , レジスタバンクポインタ (RP) は , F2MC-16LX の持つ汎用レジ
スタとそれが存在する内部 RAM のアドレスとの関係を示すレジスタで , 現在使用中の
レジスタバンクの先頭のメモリアドレスを [000180H+(RP) × 10H] という変換式で示し
ます。RP は 5 ビットにより構成されており "00H" ~ "1FH" までの値をとることができ ,
"000180H" ~ "00037FH" のメモリ中にレジスタバンクを配置できます。
ただし , この範囲内であっても内部 RAM でなければ汎用レジスタとして使用すること
はできません。RP はリセットによりすべて "0" に初期化されます。命令上では RP に
8 ビットの即値が転送できますが , 実際に使用されるのはそのデータの下位 5 ビットの
みです。
図 2.7-8 レジスタバンクポインタ (RP)
初期値
B4
0
B3
0
B2
0
B1
0
B0
0
RP
■ インタラプトレベルマスクレジスタ (ILM)
図 2.7-9 に示すように , インタラプトレベルマスクレジスタ (ILM) は 3 ビットから構成
されており , CPU の割込みマスクのレベルを示します。この 3 ビットにより示される
レベルより強いレベルの割込み要求のみが受け付けられます。表 2.7-1 に示すように ,
レベルの強弱は "0" が最強で , "7" が最弱と定義されています。したがって , 割込みが
受け付けられるには , 現状の ILM の保持値より小さい値の要求でなければなりません。
割込みが受け付けられるとその割込みのレベル値が ILM にセットされ , これ以降の同
じかそれより低い優先順位の割込みは受け付けられなくなります。ILM はリセットに
よりすべて "0" に初期化されます。命令上では ILM に 8 ビットの即値が転送できますが ,
実際に使用されるのはそのデータの下位 3 ビットのみです。
図 2.7-9 インタラプトレベルマスクレジスタ (ILM)
初期値
ILM2
0
ILM1
0
ILM0
0
ILM
39
第 2 章 CPU
表 2.7-1 インタラプトレベルマスクレジスタ (ILM) で示されるレベルの強弱
40
ILM2
ILM1
ILM0
レベル値
許可される割込みレベル
0
0
0
0
割込み禁止
0
0
1
1
0 のみ
0
1
0
2
1 より小さい値のレベル
0
1
1
3
2 より小さい値のレベル
1
0
0
4
3 より小さい値のレベル
1
0
1
5
4 より小さい値のレベル
1
1
0
6
5 より小さい値のレベル
1
1
1
7
6 より小さい値のレベル
第 2 章 CPU
2.7.4
プログラムカウンタ (PC)
プログラムカウンタ (PC) は , 16 ビットのカウンタであり , CPU が実行すべき命令
コードのメモリアドレスの下位 16 ビットを示します。上位 8 ビットアドレスは
PCB により示されます。PC は条件分岐命令 , サブルーチンコール命令 , 割込み , リ
セットなどにより内容が更新されます。また , オペランドアクセス時のベースポイ
ンタとして使用することもできます。
■ プログラムカウンタ (PC)
図 2.7-10 に , プログラムカウンタを示します。
図 2.7-10 プログラムカウンタ
PCB
FEH
PC
ABCDH
次に実行する命令
FEABCDH
41
第 2 章 CPU
2.8
レジスタバンク
レジスタバンクは 8 ワードで構成され , バイトレジスタ R0 ~ R7, ワードレジスタ
RW0 ~ RW7, ロングワードレジスタ RL0 ~ RL3 の汎用レジスタとして各種演算 ,
ポインタとして各種命令に使用できます。
■ レジスタバンク
表 2.8-1 に , 各レジスタの機能を , 表 2.8-2 に各レジスタの関係を示します。
レジスタバンクの内容は , 通常の RAM 同様にリセットでは初期化されず , リセット前
の状態が保持されます。ただし , パワーオン時は不定値になります。
表 2.8-1 各レジスタの機能
R0 ~ R7
各種命令のオペランドとして使用
( 注意事項 ) R0 はバレルシフトのカウンタおよびノーマライズ
命令のカウンタとしても使用
RW0 ~ RW7
ポインタ , 各種命令のオペランドとして使用
( 注意事項 ) RW0 はストリング命令のカウンタとしても使用
RL0 ~ RL3
ロングポインタ , 各種命令のオペランドとして使用
表 2.8-2 各レジスタの関係
RW0
RL0
RW1
RW2
RL1
RW3
R0
RW4
R1
RL2
R2
RW5
R3
R4
RW6
R5
RL3
R6
RW7
R7
42
第 2 章 CPU
● ダイレクトページレジスタ (DPR) <初期値 :01H >
ダイレクトページレジスタ (DPR) は , ダイレクトアドレッシングの命令時のオペラン
ドの addr8 ~ addr15 を指定します。図 2.8-1 に示すように , DPR は 8 ビット長であり ,
リセットにより "01H" に初期化されます。
図 2.8-1 ダイレクトアドレッシングによる物理アドレスの生成
DTBレジスタ
DPRレジスタ
命令中のダイレクトアドレス
MSB
LSB
24ビット
物理アドレス
● プログラムカウンタバンクレジスタ (PCB) <初期値 : リセットベクタ中の値>
● データバンクレジスタ (DTB) <初期値 :00H >
● ユーザスタックバンクレジスタ (USB) <初期値 :00H >
● システムスタックバンクレジスタ (SSB) <初期値 :00H >
● アディショナルデータバンクレジスタ (ADB) <初期値 :00H >
各々のバンクレジスタはそれぞれ PC 空間 , DT 空間 , SP 空間 ( ユーザ ) , SP 空間 ( シス
テム ) AD 空間の配置されるメモリバンクを示します。すべてのバンクレジスタはバイ
ト長です。リセットすることで , PCB はリセットベクタにより "00H" に初期化されま
す。PCB 以外のバンクレジスタは読出し / 書込みができます。PCB は読出しは可能で
すが書き込むことはできません。
16M バイト全空間に分岐する JMPP, CALLP, RETP, RETIQ, RETF 命令実行時および割
込み時に PCB は書き換わります。各レジスタの動作は , 「2.2 メモリ空間」を参照し
てください。
43
第 2 章 CPU
2.9
プレフィックスコード
命令の前にプレフィックスコードを置くことで命令動作の一部を変更することが可
能です。プレフィックスコードには , バンクセレクトプレフィックス , コモンレジス
タバンクプレフィックス , フラグ変化抑止プレフィックスの 3 種類があります。
■ バンクセレクトプレフィックス
データアクセスの際に使用されるメモリ空間はアドレッシングごとに定められていま
す。バンクセレクトプレフィックスを命令前に置くことで , 命令によるデータアクセス
のメモリ空間をアドレッシングモードとは無関係に任意に選択することが可能となり
ます。
表 2.9-1 に , バンクセレクトプレフィックスと対応するメモリ空間を示します。
表 2.9-1 バンクセレクトプレフィックス
バンクセレクト
プレフィックス
選択される空間
PCB
PC 空間
DTB
データ空間
ADB
AD 空間
SPB
そのときのスタックフラグの内容により SSP 空間 , USP
空間のどちらかが用いられます。
ただし , 以下に示す命令に対しては注意してください。
● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕
プレフィックスの有無にかかわらず , オペランド指定されたバンクレジスタを使用す
る。
● スタック操作命令〔PUSHW, POPW〕
プレフィックスの有無にかかわらず , S フラグに応じて SSB または USB を使用する。
● I/O アクセス命令
MOV A, io/MOV io, A/MOVX A, io/MOVW A, io/MOVW io, A/MOV io,#imm8
MOVW io,#imm16/MOVB A, io:bp/MOVB io:bp, A/SETB io:bp/CLRB io:bp
BBC io:bp, rel/BBS io:bp, rel/WBTC, WBTS
プレフィックスの有無にかかわらず , バンクの I/O 空間が使用されます。
● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8〕
命令動作は正常ですが , プレフィックスの効果が次の命令まで及びます。
● POPW PS
プレフィックスの有無にかかわらず , S フラグに応じて SSB または USB が使用されま
す。プレフィックスの効果が次の命令まで及びます。
44
第 2 章 CPU
● MOV ILM,#imm8
命令動作は正常ですが , プレフィックスの効果が次の命令まで及びます。
● RETI
プレフィックスの有無にかかわらず , SSB が使用されます。
■ コモンレジスタバンクプレフィックス (CMR)
複数のタスク間でのデータ交換を容易にするためには , そのときの RP がどのような値
でも比較的簡単に定められた同一のレジスタバンクをアクセスする手段が必要です。
コモンレジスタバンクプレフィックス (CMR) をレジスタバンクをアクセスする命令の
前に置くことで , 現在の RP の値とは関係なくその命令のレジスタアクセスをすべて
"000180H" ~ "00018FH" にあるコモンバンク (RP=0 のときに選択されるレジスタバンク )
に変更できます。ただし , 以下に示す命令に対しては注意してください。
● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕
プレフィックスコードを付加したストリング命令実行中に割込み要求が発生すると ,
割込み復帰後のストリング命令に対しては , プレフィックスが無効であるため誤動作
となります。上記のストリング命令に対しては CMR プレフィックスを付加しないでく
ださい。
● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8, POPW PS〕
命令動作は正常ですが , プレフィックスの効果が次の命令まで及びます。
● MOV ILM,#imm8
命令動作は正常ですが , プレフィックスの効果が次の命令まで及びます。
■ フラグ変化抑止プレフィックス (NCC)
フラグ変化を抑止するためには , フラグ変化抑止プレフィックスコード (NCC) を用い
ます。不要フラグ変化を抑止する命令の前に置くことで , 命令実行に伴うフラグ変化を
抑止可能です。ただし , 以下に示す命令に対しては注意してください。
● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕
プレフィックスコードを付加したストリング命令の実行中に割込み要求が発生すると,
割込み復帰後のストリング命令に対してはプレフィックスが無効であるために誤動作
となります。上記のストリング命令には NCC プレフィックスを付加しないでください。
● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8, POPW PS〕
命令動作は正常ですが , プレフィックスの効果が次の命令まで及びます。
● 割込み命令〔INT#vct8, INT9, INTaddr16, INTPaddr24, RETI〕
プレフィックスの有無にかかわらず CCR は命令の仕様どおり変化します。
● [email protected]
プレフィックスの有無にかかわらず CCR は命令の仕様どおり変化します。
● MOV ILM, imm8
命令動作は正常ですが , プレフィックスの効果が次の命令まで及びます。
45
第 2 章 CPU
2.10
割込み抑止命令
以下に示す 10 種類の命令については , 割込み要求はサンプリングされません。
• MOV ILM, #imm8
• AND CCR, #imm8
• PCB
• ADB
• SPB
• CMR
• OR CCR, #imm8
• POPW PS
• NCC
• DTB
■ 割込み抑止命令
図 2.10-1 に示すように , この命令実行中に有効なハードウェア割込み要求が発生して
も , 割込み処理が行われるのは , この命令以降にこの種類以外の命令が実行された後に
なります。
図 2.10-1 割込み抑止命令
割込み抑止命令
• • • • • • • •
(a)
• • •
(a) 普通の命令
割込み要求発生
割込み受付け
■ 割込み抑止命令とプレフィックス命令に関する制約
図 2.10-2 に示すように , 割込み抑止命令の前にプレフィックスコードを付加した場合 ,
プレフィックスコードの効果は , プレフィックスコード後の最初の〔割込み抑止命令以
外の命令〕まで及びます。
図 2.10-2 割込み抑止命令とプレフィックスコード
割込み抑止命令
MOV A, FFH
• • • •
MOV ILM,#imm8
NCC
ADD A,01H
CCR:XXX10XXB
CCR:XXX10XXB
NCCによりCCRは変化しません。
■ プレフィックスコードが連続している場合
図 2.10-3 に示すように, 競合するプレフィックスコードが連続していた場合, 後方のも
のが有効になります。
なお , 競合するプレフィックスコードとはここでいう PCB, ADB, DTB, SPB のことを意
味します。
図 2.10-3 プレフィックスコードの連続
プレフィックスコード
• • • • •
ADB
DTB
PCB
ADD A,01H
• • • • •
プレフィックスコードは
PCBが有効になります。
46
第 2 章 CPU
2.11
"「DIV A, Ri」", "「DIVW A, RWi」" 命令の使用上の
注意
「DIV A, Ri」「DIVW A, RWi」命令を使用する前に , バンクレジスタを "00H" に設定
してください。
■「DIV A, Ri」「DIVW A, RWi」命令使用上の注意
表 2.11-1 「DIV A, Ri」「DIVW A, RWi」命令使用上の注意 (i = 0 ~ 7)
命令
左記命令実行時に
影響を受ける
バンクレジスタ
余りが格納されるアドレス
DIV A, R0
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + 8H : 下位 16 ビット )
DIV A, R1
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + 9H : 下位 16 ビット )
DIV A, R4
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + CH : 下位 16 ビット )
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + DH : 下位 16 ビット )
DIV A, R5
DTB
DIVW A, RW0
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + 0H : 下位 16 ビット )
DIVW A, RW1
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + 2H : 下位 16 ビット )
DIVW A, RW4
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + 8H : 下位 16 ビット )
DIVW A, RW5
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + AH : 下位 16 ビット )
DIV A, R2
(ADB: 上位 8 ビット ) + (0180H + RP × 10H + AH : 下位 16 ビット )
(ADB: 上位 8 ビット ) + (0180H + RP × 10H + EH : 下位 16 ビット )
DIV A, R6
ADB
DIVW A, RW2
(ADB: 上位 8 ビット ) + (0180H + RP × 10H + 4H : 下位 16 ビット )
DIVW A, RW6
(ADB: 上位 8 ビット ) + (0180H + RP × 10H + EH : 下位 16 ビット )
DIV A, R3
(USB *2 : 上位 8 ビット ) + (0180H + RP × 10H + BH : 下位 16 ビット )
DIV A, R7
DIVW A, RW3
USB
SSB *1
DIVW A, RW7
(USB *2 : 上位 8 ビット ) + (0180H + RP × 10H + FH : 下位 16 ビット )
(USB *2 : 上位 8 ビット ) + (0180H + RP × 10H + 6H : 下位 16 ビット )
(USB *2 : 上位 8 ビット ) + (0180H + RP × 10H + EH : 下位 16 ビット )
*1: CCR レジスタの S ビットによる
*2: CCR レジスタの S ビットが "0" の場合
バンクレジスタ (DTB, ADB, USB, SSB) の値が "00H" の場合は , 除算結果の余りは命令
オペランドのレジスタに格納されます。それ以外は , 上位 8 ビットは命令オペランドの
レジスタに対応したバンクレジスタにより指定され , 下位 16 ビットは命令オペランド
のレジスタのアドレスと同じアドレスとなり, 上位8ビットで指定されたバンクのレジ
スタに余りが格納されます。
47
第 2 章 CPU
【例】
DTB = 053H, RP = 03H の場合で
「DIV A, R0」を実行すると , R0 のアドレスでは 0180H
+ RP (03H) × 10H + 08H (R0 相当アドレス ) = 0001B8H です。
ここで , 「DIV A, R0」で指定されるバンクレジスタはデータバンクレジスタ (DTB)
ですので , バンクアドレス "053H" を付加したアドレス "05301B8H" に余りが格納さ
れます。
<注意事項>
バンクレジスタ, RiおよびRWiレジスタについては,「2.7 レジスタ」を参照してください。
■ 注意事項の回避について
「DIV A,Ri」, 「DIVW A,RWi」命令使用上の注意事項を回避してプログラムを開発し
ていただくために, コンパイラでは表 2.11-1 の命令を生成しないように変更し, アセン
ブラでは表 2.11-1 の命令を同等の命令列に置き換える機能が用意されています。
MB90390 シリーズでは , コンパイラおよびアセンブラは以下のものを使用してくださ
い。
● コンパイラ
cc907 の V02L06 以降のバージョンまたは fcc907s の V30L02 以降のバージョン
● アセンブラ
asm907a の V03L04 以降のバージョンまたは fasm907s の V30L04 (Rev. 300004) 以降の
バージョン
48
第3章
割込み
MB90390 シリーズの割込みと拡張インテリジェン
ト I/O サービス (EI2OS) の機能と動作について説明
します。
3.1 割込みの概要
3.2 割込みベクタ
3.3 割込み制御レジスタ (ICR)
3.4 割込みフロー
3.5 ハードウェア割込み
3.6 ソフトウェア割込み
3.7 拡張インテリジェント I/O サービス (EI2OS)
3.8 拡張インテリジェント I/O サービス (EI2OS) の動作
フローと使用手順
3.9 例外
49
第 3 章 割込み
割込みの概要
3.1
F2MC-16LX は , イベントなどの発生により現在実行中の処理を中断して , 別に定義
したプログラムへ制御を移す割込み機能があります。割込み機能は以下の 4 つに分
けることができます。
• ハードウェア割込み……内蔵リソースのイベント発生による割込み処理
• ソフトウェア割込み……ソフトウェアのイベント発生命令による割込み処理
• 拡張インテリジェント I/O サービス (EI2OS)
……内蔵リソースのイベント発生による転送処理
• 例外
……動作例外事項の発生による中断処理
■ ハードウェア割込み
ハードウェア割込みは , 内部リソースからの割込み要求によって起動します。ハード
ウェア割込み要求は , 内部リソース内の割込み要求フラグと割込み許可フラグがセッ
トされた場合に発生します。したがって , ハードウェア要求を発生させるためには , 内
部リソース内に割込み要求フラグと割込み許可フラグがなければなりません。
● 割込みレベルの指定
ハードウェア割込みは , 割込みレベルを指定できます。割込みレベルを指定するには ,
割込みコントローラのレベル設定ビット (IL0, IL1, IL2) を使用します。
● ハードウェア割込み要求マスク
ハードウェア割込み要求は , CPU 内のプロセッサステータスレジスタ (PS) 中の I フラ
グおよび ILM ビット (IL0, IL1, IL2) を使用してマスクできます。マスクのかかってい
ない割込み要求が発生すると , CPU は , PS, PC, PCB, DTB, ADB, DPR, A の各レジスタ
からなる 12 バイトのデータを SSB と SSP レジスタが示すメモリ領域に退避します。
図 3.1-1 ハードウェア割込みの概要
PS
F2MC-16LX バス
レジスタファイル
マイクロコード
⑥
チェック
AND
②
①
割込みレベル
レベル比較器
⑦
比較器
⑤
④
③
周辺
要因FF
PS
I
ILM
IR
ILM
F2MC-16LX・CPU
許可FF
50
IR
I
割込み
IL コントローラ
:
:
:
:
プロセッサステータス
割込み許可フラグ
割込みレベルマスクレジスタ
インストラクションレジスタ
第 3 章 割込み
■ ソフトウェア割込み
ソフトウェア割込みは , CPU がそれまで実行していたプログラムの実行からユーザの
定義した割込み処理用プログラムへ制御を移行する機能です。
ソフトウェア割込みは , INT 命令実行により要求されます。INT 命令により要求される
割込みには , 割込み要求フラグと割込み許可フラグはありません。INT 命令の実行によ
り常に割込み要求が発生します。
INT 命令には , 割込みレベルの割り当てもありません。このため , INT 命令使用時には
ILM の更新は行われません。代わりに , I フラグをクリアして , 継続する割込み要求を
保留状態にします。
図 3.1-2 ソフトウェア割込みの概要
F2MC-16LX バス
①
PS
レジスタファイル
I
②
マイクロコード
F2MC-16LX・CPU
IR
S
Bユニット
キュー
フェッチ
PS
I
S
IR
: プロセッサステータス
: 割込み許可フラグ
: スタックフラグ
: インストラクションレジスタ
Bユニット : バスインタフェース
ユニット
退避
命令系バス
RAM
■ 拡張インテリジェント I/O サービス (EI2OS)
拡張インテリジェント I/O サービスは , 内蔵リソースとメモリの間でデータを自動的に
転送します。この種の処理には , 従来 , 割込み処理プログラムが使用されていましたが ,
EI2OS はデータ転送を DMA ( ダイレクトメモリアクセス ) 的に実行できます。
拡張インテリジェント I/O サービス機能を内部リソースより発生させるためには , 割込
みコントローラの割込み制御レジスタ (ICR) 中に拡張インテリジェント I/O サービス許
可フラグ (ISE) を持っていなければなりません。
拡張インテリジェント I/O サービスは ISE フラグが "1" で割込み要求が発生した場合に
起動されます。
なお , ハードウェア割込み要求によって通常の割込みを発生させるには , ISE フラグを
"0" にセットします。
51
第 3 章 割込み
図 3.1-3 拡張インテリジェント I/O サービス (EI2OS) の概要
メモリ空間
IOA
I/Oレジスタ
I/Oレジスタ
割込み要求
CPU
③
ISD
③
周辺
①
ICS
②
割込み制御レジスタ
割込みコントローラ
① I/Oが転送を要求します。
BAP
④
バッファ
DCT
② 割込みコントローラがディスク
リプタを選択します。
③ 転送元/転送先をディスクリプタ
から読み出します。
④ I/Oとメモリ間で転送が行われ
ます。
■ 例外
例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ
とを検出した段階で , 通常処理から離れて例外処理を行います。一般的に , 例外処理は
予想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時
の復旧ソフトウェアの起動などのみに使用することをお勧めします。
52
第 3 章 割込み
割込みベクタ
3.2
割込みベクタは , ハードウェア割込みとソフトウェア割込みについて同じ領域を使
用します。例えば , 割込み要求番号 INT42 が遅延ハードウェア割込みとソフトウェ
ア割込み INT#42 に使用されます。したがって , 遅延割込みと INT#42 が同じ割込み
処理ルーチンを呼び出します。割込みベクタは , 表 3.2-1 に示すようにアドレス
"FFFC00H" と "FFFFFFH" の間に配置されます。
■ 割込みベクタ
表 3.2-1 割込みベクタ (1 / 2)
割込み
要求
割込み要因
割込み制御
レジスタ
番号
ベクタ
ベクタ
ベクタ
モード
アドレス
アドレス L アドレス H
レジスタ
バンク
アドレス
INT 0 *1
─
─
─
FFFFFCH
FFFFFDH FFFFFEH
未使用
INT 1 *1
─
─
─
FFFFF8H
FFFFF9H
FFFFFAH
未使用
.
.
.
─
─
─
.
.
.
.
.
.
.
.
.
.
.
.
INT 7 *1
─
─
─
FFFFE0H
FFFFE1H
FFFFE2H
未使用
INT 8
リセット
─
─
FFFFDCH FFFFDDH FFFFDEH FFFFDFH
INT 9
INT9 命令
─
─
FFFFD8H
FFFFD9H FFFFDAH
未使用
INT 10
例外
─
─
FFFFD4H
FFFFD5H
FFFFD6H
未使用
INT 11
タイムベースタイマ
0000B0H
FFFFD0H
FFFFD1H
FFFFD2H
未使用
ICR00
FFFFCCH
FFFFCDH FFFFCEH
未使用
FFFFC8H
FFFFC9H FFFFCAH
未使用
FFFFC4H
FFFFC5H
FFFFC6H
未使用
FFFFC0H
FFFFC1H
FFFFC2H
未使用
FFFFBCH
FFFFBDH FFFFBEH
未使用
FFFFB8H
FFFFB9H FFFFBAH
未使用
FFFFB4H
FFFFB5H
FFFFB6H
未使用
FFFFB0H
FFFFB1H
FFFFB2H
未使用
FFFFACH
FFFFADH FFFFAEH
未使用
FFFFA8H
FFFFA9H FFFFAAH
未使用
FFFFA4H
FFFFA5H
FFFFA6H
未使用
FFFFA0H
FFFFA1H
FFFFA2H
未使用
FFFF9CH
FFFF9DH
FFFF9EH
未使用
INT 12
外部割込み INT0 ~ INT7
INT 13
CAN0 RX
ICR01
INT 14
CAN0 TX/NS
INT 15
CAN1 RX
ICR02
INT 16
CAN1 TX/NS
INT 17
PPG0/PPG1 (CAN2 RX)*2
TX/NS)*2
INT 18
PPG2/PPG3 (CAN2
INT 19
PPG4/PPG5 (CAN3 RX)*2
TX/NS)*2
INT 20
PPG6/PPG7 (CAN3
INT 21
PPG8/PPG9 (CAN4 RX)*2
INT 22
PPGA/PPGB (CAN4 TX/NS)*2
INT 23
16 ビット
リロードタイマ 0
INT 24
16 ビット
リロードタイマ 1
ICR03
ICR04
ICR05
ICR06
0000B1H
0000B2H
0000B3H
0000B4H
0000B5H
0000B6H
53
第 3 章 割込み
表 3.2-1 割込みベクタ (2 / 2)
割込み
要求
割込み要因
割込み制御
レジスタ
番号
INT 25
インプット
キャプチャ 0/1
INT 26
アウトプット
コンペア 0/1
INT 27
インプット
キャプチャ 2/3 /
アウトプット
コンペア 6
ICR07
ICR08
ベクタ
ベクタ
ベクタ
モード
アドレス
アドレス L アドレス H
レジスタ
バンク
アドレス
FFFF98H
FFFF99H
FFFF9AH
未使用
FFFF94H
FFFF95H
FFFF96H
未使用
FFFF90H
FFFF91H
FFFF92H
未使用
0000B7H
0000B8H
INT 28
アウトプット
コンペア 2/3
FFFF8CH
FFFF8DH
FFFF8EH
未使用
INT 29
インプット
キャプチャ 4/5 /
アウトプット
コンペア 7
FFFF88H
FFFF89H
FFFF8AH
未使用
FFFF84H
FFFF85H
FFFF86H
未使用
FFFF80H
FFFF81H
FFFF82H
未使用
FFFF7CH
FFFF7DH
FFFF7EH
未使用
FFFF78H
FFFF79H
FFFF7AH
未使用
FFFF74H
FFFF75H
FFFF76H
未使用
FFFF70H
FFFF71H
FFFF72H
未使用
FFFF6CH
FFFF6DH
FFFF6EH
未使用
FFFF68H
FFFF69H
FFFF6AH
未使用
FFFF64H
FFFF65H
FFFF66H
未使用
FFFF60H
FFFF61H
FFFF62H
未使用
FFFF5CH
FFFF5DH
FFFF5EH
未使用
FFFF58H
FFFF59H
FFFF5AH
未使用
FFFF54H
FFFF55H
FFFF56H
未使用
ICR09
INT 30
アウトプット
コンペア 4/5 (I2C)*2*3
INT 31
A/D コンバータ
INT 32
I/O タイマ 0/1 /
時計タイマ
INT 33
シリアル I/O
ICR10
INT 34
サウンドジェネレータ
INT 35
UART0 RX
ICR11
ICR12
INT 36
UART0 TX
INT 37
UART1 RX
ICR13
INT 38
UART1 TX
INT 39
UART3 (/UART2) RX*2
TX*2
INT 40
UART3 (/UART2)
INT 41
フラッシュメモリ
ICR14
ICR15
INT 42
遅延割込み
0000B9H
0000BAH
0000BBH
0000BCH
0000BDH
0000BEH
0000BFH
INT 43
─
─
─
FFFF50H
FFFF51H
FFFF52H
未使用
.
.
.
─
─
─
.
.
.
.
.
.
.
.
.
.
.
.
INT 254
─
─
─
FFFC04H
FFFC05H
FFFC06H
未使用
INT 255
─
─
─
FFFC00H
FFFC01H
FFFC02H
未使用
*1: PCB が "FFH" のとき , CALLV 命令とベクタ領域は同じです。CALLV 命令のベクタ使用時は , 注意が必要です。
*2: MB90V390HA/MB90V390HB の ( ) 内の割込みを共有します。
*3: MB90394HA の ( ) 内の割込みを共有します。
54
第 3 章 割込み
割込み制御レジスタ (ICR)
3.3
割込み制御レジスタは割込みコントローラ内にあり , 割込み機能を持つすべての I/O
に対応して存在します。このレジスタには以下に示す 3 つの機能があります。
• 対応する周辺機器の割込みレベルの設定
• 対応する周辺機器の割込みを通常割込みにするか , 拡張インテリジェント I/O サー
ビスにするかの選択
• 拡張インテリジェント I/O サービスのチャネルの選択
このレジスタに対するリードモディファイライト (RMW) 系命令でのアクセスは誤動
作を引き起こしますので行わないでください。
■ 割込み制御レジスタ (ICR)
図 3.3-1 に , 割込み制御レジスタのビット構成の図を示します。
図 3.3-1 割込み制御レジスタ (ICR)
bit
15/7
14/6
ICS3
ICS2
W
W
13/5
ICS1
or
S1
*
12/4
ICS0
or
S0
*
11/3
10/2
9/1
8/0
ISE
IL2
IL1
IL0
R/W
R/W
R/W
R/W
割込み制御レジスタ
リセット時 00000111B
R/W: リード / ライト可能
W : ライトオンリ
*
: 注意事項参照
<注意事項>
• ICS3 ~ ICS0 は EI2OS を起動する場合のみ有効となります。EI2OS を起動する場合は
ISE を "1" に設定し , 起動しない場合は "0" に設定してください。EI2OS を起動しない
場合 , ICS3 ~ ICS0 は何を設定してもかまいません。
• ICS1 と ICS0 は書込みのみ , S1 と S0 は読出しのみ , それぞれ有効です。
<補足>
拡張インテリジェント I/O サービスチャネルセレクトビット (ICR:ICS3 ~ ICS0) は
書込み時のみ , 拡張インテリジェント I/O サービスステータスビット (ICR:S1,S0) は
読 出 し 時 の み , そ れ ぞ れ 有 効 と な り ま す。読 出 し 時 に は , bit6, bit7/bit14, bit15
(ICS2,ICS3) からは "1" が読み出されます。
[bit10 ~ bit8, bit2 ~ bit0] IL0, IL1, IL2 ( 割込みレベル設定ビット )
割込みレベル設定ビットです。対応する内蔵リソースの割込みレベルを指定しま
す。
読み書きができます。リセットによりレベル 7 ( 割込みなし ) に初期化されます。
表 3.3-1 に , 割込みレベル設定ビットと割込みレベルとの関係を示します。
55
第 3 章 割込み
表 3.3-1 割込みレベル設定ビットと割込みレベル
割込みレベル値
IL2
IL1
IL0
0
0
0
0 ( 最強割込み )
0
0
1
1
0
1
0
2
0
1
1
3
1
0
0
4
1
0
1
5
1
1
0
6 ( 最弱割込み )
1
1
1
7 ( 割込みなし )
[bit11, bit3] ISE ( 拡張インテリジェント I/O サービス許可ビット )
EI2OS 許可ビットです。割込み要求の発生時にこのビットが "1" であると EI2OS が
起動され , "0" のときは割込みシーケンスが起動されます。また , EI2OS が終了 ( カ
ウント終了による場合と内蔵リソースからの要求による場合) したとき, ISEビット
は "0" になります。対応する内蔵リソースに EI2OS の機能がないときには , ソフト
ウェアで ISE を "0" にしておく必要があります。読み書き可能なビットです。
リセットにより "0" に初期化されます。
56
第 3 章 割込み
[bit15 ~ bit12, bit7 ~ bit4] ICS3 ~ ICS0 ( 拡張インテリジェント I/O サービスチャネル
セレクトビット )
EI2OS チャネル選択ビットです。書込み専用のビットで , このビットにより EI2OS
のチャネルを指定します。ここで設定された値によりメモリ上の拡張インテリジェ
ント I/O サービスディスクリプタのアドレスが決定します。ICS はリセットにより
"0000H" に初期化されます。
表 3.3-2 に , ICS, チャネル番号 , ディスクリプタアドレスの対応関係を示します。
表 3.3-2 ICS ビット , チャネル番号 , ディスクリプタアドレス
セレクトされるチャネル ディスクリプタアドレス
ICS3
ICS2
ICS1
ICS0
0
0
0
0
0
000100H
0
0
0
1
1
000108H
0
0
1
0
2
000110H
0
0
1
1
3
000118H
0
1
0
0
4
000120H
0
1
0
1
5
000128H
0
1
1
0
6
000130H
0
1
1
1
7
000138H
1
0
0
0
8
000140H
1
0
0
1
9
000148H
1
0
1
0
10
000150H
1
0
1
1
11
000158H
1
1
0
0
12
000160H
1
1
0
1
13
000168H
1
1
1
0
14
000170H
1
1
1
1
15
000178H
[bit13, bit12, bit5, bit4] S0, S1 ( 拡張インテリジェント I/O サービスステータスビット )
EI2OS 終了ステータスビットです。読出し専用のビットで , EI2OS 終了時にこのビッ
トの値を調べることにより , 終了条件が何であったかを判別できます。
リセットにより "00B" に初期化されます。
表 3.3-3 に , S ビットと終了条件との関係を示します。
表 3.3-3 S ビットと終了条件
終了条件
S1
S0
0
0
EI2OS 動作中または非起動時
0
1
カウント終了による停止状態
1
0
リザーブ
1
1
内蔵リソースからの要求による停止状態
57
第 3 章 割込み
3.4
割込みフロー
図 3.4-1 に , 割込みフローを示します。
■ 割込みフロー
図 3.4-1 割込みフロー
I
ILM
IF
IE
ISE
IL
S
I & IF & IE = 1
AND
ILM > IL
:
:
:
:
:
:
:
CCR中のフラグ
CPUのレベルレジスタ
内蔵リソースの割込み要求
内蔵リソースの割込みイネーブルフラグ
EI2OSのイネーブルフラグ
内蔵リソースの割込み要求レベル
CCR中のフラグ
YES
NO
NO
YES
ISE = 1
次の命令の取込みと
デコード
PS, PC, PCB, DTB, ADB, DPR, Aを
SSPのスタックへ退避
その後,ILM=IL
拡張インテリジェントI/O
サービス処理
YES
INT命令
NO
通常命令実行
NO
ストリング系
命令の繰り返し
完了
YES
PCの更新
58
PS, PC, PCB, DTB, ADB, DPR, Aを
SSPのスタックへ退避
その後,I=O, ILM=IL
S←1
割込みベクトルの取込み
第 3 章 割込み
図 3.4-2 割込み処理中のレジスタ退避
ワード (16ビット)
"H"
MSB
LSB
SSP(割込み発生前のSSPの値)
AH
AL
DPR
ADB
DTB
PCB
PC
PS
"L"
SSP(割込み発生後のSSPの値)
59
第 3 章 割込み
3.5
ハードウェア割込み
ハードウェア割込みは , 内蔵リソースからの割込み要求信号に対応して , CPU がそ
れまで実行していたプログラムの実行を一時中断し , ユーザの定義した割込み処理
用プログラムへ制御を移行する機能です。
■ ハードウェア割込み
ハードウェア割込みの起動は , 割込み要求がもつ割込みレベルと , CPU の PS がもつイ
ンタラプトレベルマスクレジスタ (ILM) の比較および PS 内の I フラグの内容をハード
ウェアで参照した後 , 発生条件と合致すると発生します。
ハードウェア割込みが発生するときに CPU が行う処理には , 以下のものがあります。
• CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへの
退避
• PS レジスタ内の ILM の設定。自動的に現在要求している割込みレベルと同じになる
• 対応する割込みベクタの内容の取込みとそこへの分岐
■ ハードウェア割込みの構造
ハードウェア割込みに関連する機構は , 以下の 3 つの部分に分かれて存在します。
● 内蔵リソース
割込み許可ビット , 割込み要求ビット : リソースからの割込み要求の制御
● 割込みコントローラ
ICR: 割込みのレベル付け , 同時割込み要求の優先度判定
● CPU
I, ILM
:割込み要求レベルと現レベルの比較 , 割込み許可状態の識別
マイクロコード :割込み処理用ステップ
各機構は , 内蔵リソースではリソースの制御レジスタに , 割込みコントローラでは ICR
に , CPU では CCR の内容などとして現れます。ハードウェア割込みを使用する場合に
は , あらかじめソフトウェアでこの 3 箇所の設定を行う必要があります。
割込み処理の際に参照する割込みベクタのテーブルはメモリ領域の "FFFC00H" ~
"FFFFFFH" に割り当ててあり , ソフトウェア割込みと共通で使用しています。表 D-2 に ,
割込み要因と割込みベクタ・割込み制御レジスタを示します。
60
第 3 章 割込み
3.5.1
ハードウェア割込みの動作
ハードウェア割込み要求の機能を持つ内蔵リソースには , 割込みの要求の有無を示
す「割込み要求フラグ」と , CPU への自分の割込み要求をするかしないかを選択す
る「割込み許可フラグ」があります。割込み要求フラグは内蔵リソース固有のイベ
ントの発生によりセットされ , 割込み許可フラグが「許可」であったときに , リソー
スは割込みコントローラへ割込み要求を発生します。
■ ハードウェア割込みの動作
割込みコントローラは , 同時に受け取った各割込み要求に対する ICR 内の割込みレベ
ル (IL) どうしを比較し , 最も高いレベルの要求 (IL の値の最も小さいもの ) を採択して
CPU へ通知します。同一レベルの要求が複数あった場合には , 割込み番号が少ないも
のを優先します。各割込み要求と各 ICR の関係はハードウェアで決まっています。
CPU は受け取った割込みレベル (IL) と PS レジスタ内の ILM とを比較し , 割込みレベ
ル (IL)<(ILM) であり , PS レジスタ内の I ビットが "1" であるときに , 現在実行中の命令
が終了した後で , 割込み処理用マイクロコードを起動します。割込み処理マイクロコー
ドの先頭で割込みコントローラの ICR 中の ISE ビットを参照し , "0" ( すなわち割込み )
であることを確認して割込み処理の本体を起動します。
割込み処理の本体では SSB と SSP の示すメモリ中へ PS と PC, PCB, DTB, ADB, DPR, A
の 12 バイトを退避した後 , 割込みベクタを 3 バイトリードし PC と PCB へロード , PS
中の ILM を受け付けた割込み要求のレベル値に更新 , S フラグを "1" に設定して分岐処
理を行います。その結果 , 次に実行する命令はユーザの定義した割込み処理プログラム
になります。
61
第 3 章 割込み
3.5.2
ハードウェア割込みの発生と解除
図 3.5-1 に , ハードウェア割込みの発生から割込み処理プログラムに割込み要求がな
くなるまでのフローを示します。
■ ハードウェア割込みの発生と解除
図 3.5-1 ハードウェア割込みの発生と解除まで
PS
F2MC-16LX バス
レジスタファイル
マイクロコード
IR
⑥
I
⑤
②
①
割込みレベル
AND
レベル比較器
⑦
プロセッサステータス
割込み許可フラグ
割込みレベルマスクレジスタ
インストラクションレジスタ
④
③
周辺
要因FF
:
:
:
:
比較器
チェック
F2MC-16LX・CPU
許可FF
PS
I
ILM
IR
ILM
IL
割込み
コントローラ
①周辺機器の内部で割込み要因が発生します。
②周辺機器内の割込み許可ビットを参照し割込み許可になっていれば , 周辺機器から
割込みコントローラへ割込み要求を発生します。
③割込み要求を受け取った割込みコントローラは , 同時に要求のあった割込みの優先
順位を判定した上で該当する割込みに対応する割込みレベルを CPU へ転送します。
④ CPU は割込みコントローラから要求のあった割込みレベルをプロセッサステータス
レジスタ内の ILM ビットと比較します。
⑤比較の結果が現在の割込み処理レベルより優先順位が高い場合のみ , 同じプロセッ
サステータスレジスタ内の I フラグの内容をチェックします。
⑥⑤のチェックの結果 , I フラグが割込み許可状態である場合のみ , ILM ビットの内容
を要求されたレベルに設定し, 現在実行中の命令の実行が終了し次第, 割込み処理を
行い , 制御を割込み処理ルーチンへ移します。
⑦ユーザの割込み処理ルーチン内のソフトウェアで①で発生した割込み要因をクリア
することで割込み要求が終了します。
⑥および⑦で , CPU が行う割込み処理の実行時間の計算式を以下に示します。
なお , サイクル数の補正値は , 表 3.5-1 を参照してください。
割込み起動 :24+6 ×サイクル数の補正値
割込み復帰 :15+6 ×サイクル数の補正値 (RETI 命令 )
62
第 3 章 割込み
表 3.5-1 割込み処理時のサイクル数の補正値
スタックポインタが指しているアドレス
補正値 (cycle)
外部 8 ビットの場合
+4
外部 偶数アドレスの場合
+1
外部 奇数アドレスの場合
+4
内部 偶数アドレスの場合
0
内部 奇数アドレスの場合
+2
63
第 3 章 割込み
多重割込み
3.5.3
特殊なケースとして , データの入出力領域への書込み中はハードウェア割込み要求を受
け付けません。MB90390 シリーズでは , アドレス "00H" ~ "BFH", ("3100H" ~
"31FFH", "3300H" ~ "33FFH",) "3500H" ~ "35FFH", "3700H" ~ "37FFH", "3900H" ~
"39FFH", "3B00H" ~ "3BFFH", "3D00H" ~ "3DFFH" および "3F00H" ~ "3FFFH" を内
蔵しています。これは各リソースの割込み制御レジスタ関係の書換えを行っている最
中の割込み要求に対して , CPU が割込み関係で誤動作を起こすことを避けるためです。
また , 割込み処理の実行中に割込みが発生した場合は , 割込みレベルの強い方の処理が
優先されます。
■ 多重割込み
F2MC-16LX CPU は多重割込みをサポートしています。そのため , 割込み処理の実行中
にその割込みのもつ割込みレベルより強いレベルの割込みが発生すると , 現在実行中
の命令を終了した後でそちらに制御が移ります。強いレベルでの割込みが終了すると ,
元の割込み処理に戻ります。割込み処理実行中に , その割込みと同等か , より弱いレベ
ルの割込み処理が発生した場合は , ILM の内容や I フラグの命令による変更を施さない
かぎり現在の割込み処理の終了まで , 新しい割込み要求は保留されます。
なお , 拡張インテリジェント I/O サービスは多重に起動されることはなく , 1 つの拡張
インテリジェント I/O サービスの処理中は , ほかの割込み要求および拡張インテリジェ
ント I/O サービス要求はすべて保留されます。
図 3.5-2 に , スタック内に退避されるレジスタの順番を示します。
図 3.5-2 スタック内に退避されたレジスタ
ワード(16ビット)
MSB
LSB
"H"
SSP(割込み発生前のSSPの値)
AH
AL
DPR
ADB
DTB
PCB
PC
PS
"L"
64
SSP(割込み発生後のSSPの値)
第 3 章 割込み
3.6
ソフトウェア割込み
ソフトウェア割込みは , 専用の命令の実行に対応して , CPU がそれまで実行してい
たプログラムの実行からユーザの定義した割込み処理用プログラムへ制御を移行す
る機能です。ソフトウェア割込みの起動は , ソフトウェア割込み命令の実行で常に
発生します。
■ ソフトウェア割込み
ソフトウェア割込みが発生するときに CPU が行う処理には以下のものがあります。
• CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへの
退避
• PS レジスタに "1" を設定。自動的に割込み禁止になる
• 対応する割込みベクタの内容の取込みとそこへの分岐
ソフトウェア割込みである INT 命令の実行による割込み要求には割込み要求フラグお
よび許可フラグはなく , INT 命令の実行により常に割込み要求が発生します。
INT 命令には割込みレベルはありません。したがって , INT 命令では ILM の更新は行
われず , I フラグに "0" を設定して継続する割込み要求を保留状態にします。
■ ソフトウェア割込みの構造
ソフトウェア割込みに関連する機構は , すべて CPU の内部に存在します。
CPU…………………マイクロコード : 割込み処理用ステップ
■ MB90390 割込みベクタ一覧表
表 D-1 に , MB90390 シリーズの割込みベクタ一覧表を示します。
表 D-1 に示すように , ソフトウェア割込みはハードウェア割込みと同じ割込みベクタ
領域を共有しています。例えば , 割込み要求番号の INT12 は , ソフトウェア割込みの
INT#12 で使用されると同時にハードウェア割込みの外部割込み #0 ~ #7 でも使用され
ます。したがって , 外部割込み #0 と INT#12 は同じ割込み処理ルーチンを呼び出します。
■ ソフトウェア割込みの動作
CPU がソフトウェア割込み命令を取り込み , 実行すると , ソフトウェア割込み処理用マ
イクロコードを起動します。ソフトウェア割込み処理マイクロコードでは SSB と SSP
の示すメモリ中へ PS と PC, PCB, DTB, ADB, DPR, A の 12 バイトを退避した後 , 割込み
ベクタを 3 バイトリードし PC と PCB へ格納 , I フラグを "0" に , S フラグを "1" にして
分岐処理を行います。その結果 , 次に実行する命令はユーザの定義した割込み処理プロ
グラムになります。
図 3.6-1 に , ソフトウェア割込みの発生から割込み処理プログラムに割込み要求がなく
なるまでのフローを示します。
65
第 3 章 割込み
図 3.6-1 ソフトウェア割込みの発生と解除まで
1
PS
F2MC-16LX バス
レジスタファイル
I
2
マイクロコード
Bユニット
IR
キュー
F2MC-16LX・CPU
S
フェッチ
PS
I
S
IR
: プロセッサステータス
: 割込み許可フラグ
: スタックフラグ
: インストラクションレジスタ
Bユニット : バスインタフェース
ユニット
退避
命令系バス
RAM
①ソフトウェア割込み命令を実行します。
②ソフトウェア割込み命令に対応したマイクロコードに従ってレジスタファイル中の
CPU 内専用レジスタの退避を行います。
③ユーザの割込み処理ルーチン内の RETI 命令で割込み処理が終了します。
■ その他
プログラムカウンタバンクレジスタ (PCB) が "FFH" であるとき , CALLV 命令のベクタ
領域は INT#vct8 命令のテーブルと重なります。ソフトウェアを作成する際に同一アド
レスを使用するような CALLV 命令と INT#vct8 命令を使用しないように注意してくだ
さい。
表 D-2 に , MB90390 シリーズの割込み要因 , 割込みベクタ , 割込み制御レジスタの関係
を示します。
66
第 3 章 割込み
3.7
拡張インテリジェント I/O サービス (EI2OS)
拡張インテリジェント I/O サービス (EI2OS) とはハードウェア割込み動作の一種で ,
I/O とメモリとの間での自動データ転送機能を持っています。従来 , 割込み処理プロ
グラムで行っていた I/O とのデータのやりとりを DMA 的に行えます。
■ 拡張インテリジェント I/O サービス (EI2OS)
従来の割込み処理で行っていた方式と比べると以下に示すような利点があります。
• 転送のためのプログラムを記述する必要がないため , プログラムサイズを小さくで
きる
• 転送の際に内部レジスタを使用しないので , レジスタの退避が不要になり転送速度
が速い
• I/O が都合により転送を停止でき , 不要データの転送がない
• バッファアドレスのインクリメント , 更新なしの選択ができる
• I/O レジスタアドレスのインクリメント , 更新なしの選択ができる ( バッファアドレ
ス更新ありの場合 )
また , EI2OS が終了したときには , 終了条件を設定した後に自動的に割込み処理ルーチ
ンへ分岐しますので , ユーザは終了条件の種類を判別できます。
EI2OS を実現するために , 2 箇所の部分にハードウェアが分散して存在し , それぞれの
ブロックの中に以下に示すようなレジスタやディスクリプタがあります。
● 割込み制御レジスタ
割込みコントローラ内にあり , ISD のアドレスを示します。
● 拡張インテリジェント I/O サービスディスクリプタ
RAM 上にあり転送モード , I/O のアドレスや転送数 , バッファアドレスを保持します。
図 3.7-1 に , EI2OS の概要を示します。
67
第 3 章 割込み
図 3.7-1 拡張インテリジェント I/O サービスの概要
メモリ空間
IOA
I/Oレジスタ
CPU
•••••••••••••••
I/Oレジスタ
割込み要求
③
周辺
①
ICS
ISD
③
②
割込み制御レジスタ
割込みコントローラ
BAP
① I/Oが転送を要求します。
④
バッファ
DCT
② 割込みコントローラがディスク
リプタを選択します。
③ 転送元/転送先をディスクリプタ
から読み出します。
④ I/Oとメモリ間で転送が行われ
ます。
<注意事項>
• IOA で指定できる領域は , "000000H" ~ "00FFFFH" です。
• BAP で指定できる領域は , "000000H" ~ "FFFFFFH" です。
• DCT で指定できる最大転送数は , 65536 個です。
■ 拡張インテリジェント I/O サービス (EI2OS) の構造
EI2OS に関連する機構は , 以下の 4 つの部分に分かれて存在します。
• 内蔵リソース ………… 割込み許可ビット , 割込み要求ビット:
リソースからの割込み要求の制御
• 割込みコントローラ … ICR
:割込みのレベル付け , 同時割込み要求の優
先度判定 , EI2OS 動作の選択
• CPU …………………… I, ILM
:割込み要求レベルと現レベルの比較 , 割込
み許可状態の識別マイクロコード :EI2OS
処理用ステップ
• RAM…………………… ディスクリプタ:EI2OS の転送情報を記述する
68
第 3 章 割込み
拡張インテリジェント I/O サービスディスクリプタ
(ISD)
3.7.1
拡張インテリジェント I/O サービスディスクリプタは , 内部 RAM 中の "000100H" ~
"00017FH" に存在し , 以下に示すものから構成されます。
• データ転送の各種制御データ
• ステータスデータ
• バッファアドレスポインタ
■ 拡張インテリジェント I/O サービスディスクリプタ (ISD)
図 3.7-2 に , 拡張インテリジェント I/O サービスディスクリプタの構成を示します。
図 3.7-2 拡張インテリジェント I/O サービスディスクリプタの構成
"H"
データカウンタ上位8ビット(DCTH)
データカウンタ下位8ビット (DCTL)
I/Oアドレスポインタ上位8ビット (IOAH)
I/Oアドレスポインタ下位8ビット (IOAL)
EI2OS ステータス (ISCS)
バッファアドレスポインタ上位8ビット (BAPH)
000100H+8×ICS
バッファアドレスポインタ中位8ビット (BAPM)
ISD先頭アドレス
バッファアドレスポインタ下位8ビット (BAPL)
"L"
■ データカウンタ (DCT)
データカウンタ (DCT) は , 16 ビット長のレジスタで転送データ数に対応したカウンタ
となります。データ転送前 , カウンタは 1 個デクリメントされます。このカウンタが
"0" になると EI2OS は終了します。
図 3.7-3 に , データカウンタの構成を示します。
図 3.7-3 データカウンタの構成
bit 15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
B15 B14 B13 B12 B11 B10 B09 B08 B07 B06 B05 B04 B03 B02 B01 B00
DCT
( リセット時不定 )
69
第 3 章 割込み
■ I/O レジスタアドレスポインタ (IOA)
I/O レジスタアドレスポインタ (IOA) は , 16 ビット長のレジスタで I/O レジスタアドレ
スポインタの 16 ビットによりバッファとデータ転送する I/O レジスタの下位アドレス
(A15 ~ A00) を示します。上位アドレス (A23 ~ A16) はすべて "0" であり , "000000H"
から "00FFFFH" 番地までの任意の I/O を指定できます。図 3.7-4 に , IOA の構成の図を
示します。
図 3.7-4 I/O レジスタアドレスポインタの構成
bit 15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00
IOA
( リセット時不定 )
■ バッファアドレスポインタ (BAP)
24 ビットのレジスタで次に EI2OS による転送で使用するアドレスを保持します。BAP
は EI2OS の各チャネルに対してそれぞれ独立に存在しますので , EI2OS の各チャネルは
16M バイトの任意の空間と転送できます。ISCS の BF ビットが "0" にセットされてい
る場合 ( 更新可能 ) , BAP の下位 16 ビットのみ変化し , BAPH は変化しません。
70
第 3 章 割込み
EI2OS ステータスレジスタ (ISCS)
3.7.2
EI2OS ステータスレジスタ (ISCS) は , 8 ビット長のレジスタでバッファアドレスポ
インタ , I/O レジスタアドレスポインタの更新 / 固定 , 転送データ長 ( バイト /
ワード ) , 転送方向を示します。
■ EI2OS ステータスレジスタ (ISCS)
図 3.7-5 に , ISCS の構成を示します。
図 3.7-5 ISCS の構成
bit 7
予約
6
5
4
3
2
1
0
予約
予約
IF
BW
BF
DIR
SE
ISCS
( リセット時不定 )
<注意事項>
ISCS の bit7 ~ bit5 には必ず "0" を書き込んでください。
以下に各ビットの説明を示します。
[bit4] IF
I/O レジスタアドレスポインタの更新 / 固定を指定します。
0: データ転送後 I/O レジスタアドレスポインタは更新 ( インクリメント ) される。
1: データ転送後 I/O レジスタアドレスポインタは固定される。
<注意事項>
更新 ( インクリメント ) のみ許可されます。
[bit3] BW
転送データ長を指定します。
0: バイト
1: ワード
[bit2] BF
バッファアドレスポインタの更新 / 固定を指定します。
0: データ転送後バッファアドレスポインタは更新 ( インクリメント ) される。
1: データ転送後バッファアドレスポインタは固定される。
<注意事項>
更新する場合 , バッファアドレスポインタは下位 16 ビットのみ変化します。
71
第 3 章 割込み
[bit1] DIR
データの転送方向を指定します。
0:I/O アドレスポインタ→バッファアドレスポインタ
1: バッファアドレスポインタ→ I/O アドレスポインタ
[bit0] SE
内蔵リソースからの要求での拡張インテリジェント I/O サービスの終了を制御しま
す。
0: 内蔵リソースからの要求により終了しない。
1: 内蔵リソースからの要求により終了する。
72
第 3 章 割込み
3.8
拡張インテリジェント I/O サービス (EI2OS) の動作フ
ローと使用手順
図 3.8-1 に , 拡張インテリジェント I/O サービス (EI2OS) の動作フローの図を , 図
3.8-2 に , 使用手順の図を示します。
■ 拡張インテリジェント I/O サービス (EI2OS) の動作フロー
図 3.8-1 拡張インテリジェント I/O サービス (EI2OS) の動作フロー
BAP
IOA
ISD
ISCS
DCT
ISE
S1, SO
内部リソースより
割込み要求発生
ISE = 1
:
:
:
:
:
:
:
バッファアドレスポインタ
I/Oアドレスポインタ
EI2OSディスクリプタ
EI2OSステータス
データカウンタ
EI2OSイネーブルビット
EI2OS終了ステータス
NO
YES
割込みシーケンス
ISD/ISCSを読出し
リソースからの
終了要求
YES
SE = 1
NO
DIR = 1
YES
NO
IOAで示されるデータ
⇓ (データ転送)
BAPで示されるメモリ
IF = 0
BAPで転送されるデータ
⇓ (データ転送)
IOAで示されるメモリ
YES
NO
BF = 0
更新値は,
BWによる
IOA更新
更新値は,
BWによる
BAP更新
YES
NO
DCTデクリメント
DCT = 00B
NO
YES
S1,S0に"01B"をセット
S1,S0に"11B"をセット
S1,S0に"00B"をセット
リソース割込み要求
のクリア
ISEを"0"にクリア
CPU動作復帰
割込みシーケンス
73
第 3 章 割込み
図 3.8-2 拡張インテリジェント I/O サービス (EI2OS) の使用手順フロー
CPUによる処理
EI2OSによる処理
EI2OSの初期化
正常終了
ジョブ実行
(割込み要求)
AND(ISE=1)
データ転送
カウントアウトまたは
リソースからの終了要
求による割込みの発生
拡張インテリジェント
I/Oサービスの設定
(チャネルの切換え)
バッファ中のデータの処理
各フローでの拡張 EI2OS の実行時間を以下に示します。
● データ転送継続時 ( 停止条件が成立しない場合 )
( 表 3.8-1 + 表 3.8-2 ) マシンサイクル
● リソースからの停止要求時
(36+6 ×表 3.8-3 ) マシンサイクル
● カウント終了時
( 表 3.8-1 + 表 3.8-2 + (21+6 ×表 3.8-3 )) マシンサイクル
表 3.8-1 EI2OS の継続時の実行時間
ISCS・SE ビット
"0" に設定
I/O アドレスポインタ
バッファアドレス
ポインタ
"1" に設定
固定
更新
固定
更新
固定
32
34
33
35
更新
34
36
35
37
表 3.8-2 EI2OS の実行時間のデータ転送の補正値
内部アクセス
I/O アドレスポインタ
バッファアドレス
ポインタ
内部
アクセス
B :バイトデータ転送
偶 :偶数アドレス・ワード転送
奇 :奇数アドレス・ワード転送
74
B/ 偶
奇
B/ 偶
0
+2
奇
+2
+4
第 3 章 割込み
表 3.8-3 割込みハンドリング時間の補正値
スタックポインタが指しているアドレス
補正値 (cycle)
外部 8 ビットの場合
+4
外部 偶数アドレスの場合
+1
外部 奇数アドレスの場合
+4
内部 偶数アドレスの場合
0
内部 奇数アドレスの場合
+2
75
第 3 章 割込み
3.9
例外
F2MC-16LX では , 以下の要因により例外が発生して例外処理が行われます。
■ 未定義命令の実行
例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ
とを検出した段階で通常処理から離れて例外処理を行います。一般的に , 例外処理は予
想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時の
復旧ソフトウェアの起動などのみに使用することをお勧めいたします。
■ 未定義命令の実行による例外発生
F2MC-16LX では , 命令マップで定義していないコードはすべて未定義命令として扱い
ます。未定義命令を実行すると , ソフトウェア割込み命令の「INT10」と等価な処理を
行います。すなわち , AL, AH, DPR, DTB, ADB, PCB, PC, PS の内容をシステムスタック
に退避した後に , I フラグを "0" に設定し , S フラグを "1" に設定し , 割込み番号 10 の
ベクタで示されるルーチンへ分岐します。スタックへ退避した PC の値は未定義命令を
格納しているアドレスそのものです。このため , RETI 命令で復帰させることは可能で
すが , 再び例外を発生するため意味がありません。
76
第4章
遅延割込み
遅延割込みの機能と動作について説明します。
4.1 遅延割込みモジュールの概要
4.2 遅延割込みのレジスタ
4.3 遅延割込みの動作
77
第 4 章 遅延割込み
4.1
遅延割込みモジュールの概要
遅延割込み発生モジュールは , タスク切換え用の割込みを発生するためのモジュー
ルです。本モジュールを使用することで , ソフトウェアでの F2MC-16LX CPU に対
する割込み要求を発生 / 取消しができます。
■ 遅延割込みのブロックダイヤグラム
図 4.1-1 に , 遅延割込み発生モジュールのブロックダイヤグラムを示します。
図 4.1-1 遅延割込みのブロックダイヤグラム
F2MC-16LX バス
遅延割込み要因発生/解除デコーダ
要因ラッチ
■ 遅延割込み要求ロックの使用上の注意
このロックは DIRR の該当するビットに "1" を書き込むことでセットされ , 同じビット
に "0" を書き込むことでクリアされます。したがって , 割込み処理ルーチン内で要因を
クリアするようにソフトウェアを作成しておかないと割込み処理から復帰した途端に
再割込み処理を起動することになりますので注意してください。
78
第 4 章 遅延割込み
遅延割込みのレジスタ
4.2
DIRR は遅延割込み要求の発生 / 解除を制御するレジスタで , このレジスタに対して
"1" を書き込んだときには遅延割込みの要求を発生させ , "0" を書き込んだときには
遅延割込みの要求を解除します。リセット時には要因解除状態になります。
■ 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ )
アドレス
00009FH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
-
-
-
-
-
-
-
R0
R/W
初期値
XXXXXXX0B
R/W :リード / ライト可能
X
:不定
:未定義ビット
表 4.2-1 遅延割込み要求発生 / 解除レジスタ (DIRR) の機能
ビット名
bit15
~
bit9
-:
未定義ビット
bit8
R0:
遅延割込み要求
発生ビット
機能
• 読出し:値は不定です。
• 書込み:影響しません。
• 遅延割込み要求を発生または解除します。
• このビットに "0" を設定した場合:遅延割込み要求を解除します。
• このビットに "1" を設定した場合:遅延割込み要求を発生します。
• リセットが指定されると , 割込み発生が解除され , "0" になります。
79
第 4 章 遅延割込み
4.3
遅延割込みの動作
ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生
モジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求
を発生します。
■ 遅延割込み発生
ほかの割込み要求が本割込みより優先順位が低いまたはほかの割込み要求がない場合
に , 割込みコントローラは F2MC-16LX CPU に対して割込み要求を発生します。図 4.31 に示すように , F2MC-16LX CPU は自分の内部にある CCR レジスタ中の ILM ビット
と割込み要求を比較し , 要求レベルが ILM ビットより高かったときに現在実行中の命
令が終了し次第, ハードウェア割込み処理マイクロプログラムを起動します。この結果,
本割込みに対する割込み処理ルーチンが実行されます。
図 4.3-1 遅延割込み発生
遅延割込み発生モジュール割込みコントローラ
F2MC-16LX CPU
書込み
ほかの要求
ICRyy
IL
CMP
CMP
DIRR
ICRxx
ILM
INTA
80
第5章
クロック
クロックについて説明します。
5.1 クロックの概要
5.2 クロック発生部のブロックダイヤグラム
5.3 クロック選択レジスタ
5.4 クロックモード
5.5 発振安定待ち時間
5.6 振動子と外部クロックの接続
5.7 メインクロック HCLK, HCLKX の出力
81
第 5 章 クロック
5.1
クロックの概要
クロック発生部は , CPU や周辺機能の動作クロックである内部クロックの動作を制
御します。この内部クロックのことをマシンクロックとよび , その 1 周期をマシン
サイクルといいます。また , 原発振によるクロックを発振クロックとよび , 内部の
PLL 発振によるクロックを PLL クロックといいます。
■ クロックの概要
クロック発生部は発振回路を内蔵しており , 外部に振動子を接続することによって発
振クロックを発生します。外部で生成したクロックを入力して発振クロックにするこ
ともできます。また , PLL クロック逓倍回路を内蔵しており , 発振クロックの逓倍ク
ロックを 6 種類発生できます。クロック発生部では , 発振安定待ち時間の制御 , PLL ク
ロック逓倍制御およびクロックセレクタでのクロックの切換えによる内部クロックの
動作制御を行います。
● 発振クロック (HCLK)
X0, X1 端子に振動子を取り付けて発生させるか , あるいは外部から入力したクロック
のことです。
● メインクロック (MCLK)
発振クロックの 2 分周クロックです。タイムベースタイマとクロックセレクタへの入
力クロックとなります。
● PLL クロック (PCLK)
発振クロックを内蔵の PLL クロック逓倍回路により逓倍したクロックです。6 種類の
逓倍クロックを選択できるようになっています。
● クロックモジュレータ (CLOMO)
クロックモジュレータはクロック信号のスペクトラムを広い範囲に分散させることで,
周囲への電磁ノイズの影響 (EMI) を減らします。本モジュールには , 1) 位相変調モー
ドと , 2) 周波数変調モードがあります。詳細は「第 6 章 クロックモジュレータ」を参
照してください。
● マシンクロック (φ)
CPU と周辺機能の動作クロックです。このクロックの 1 周期をマシンサイクル (1/φ) と
しています。メインクロック ( 発振クロックの 2 分周クロック ) と , 6 種類の逓倍クロッ
クの中から 1 種類を選択できるようになっています。
<注意事項>
動作電圧が 5 V の場合 , 発振クロック周波数は 3 MHz ~ 8 MHz の範囲で使用できます。
CPU およびソースの最大動作周波数は 24 MHz です。最大動作周波数を超える逓倍率ま
たはクロックモジュレータのピーク周波数を設定した場合 , デバイスは正常に動作しませ
ん。
82
第 5 章 クロック
■ クロック供給マップ
CPU や周辺機能の動作クロックとして , クロック発生部で生成したマシンクロックを
供給しています。このため , CPU と周辺機能の動作は , メインクロックと PLL クロッ
クの切換え ( クロックモード ) や PLL クロック逓倍率切換えの影響を受けます。一部
の周辺機能へは , タイムベースタイマの分周出力が供給されており , 各周辺でその動作
クロックを選択できるようになっています。図 5.1-1 に , クロック供給マップを示しま
す。
図 5.1-1 クロック供給マップ
周辺機能
4
ウォッチドッグタイマ
8/16 ビット PPG
PPG00~PPG05
Pin
PPG10~PPG15
クロック発生ブロック
8/16 ビット PPG
タイムベースタイマ
Pin
RX0~RX4
Pins
1 2 3 4 6 8
CAN0~CAN4
PLL 逓倍回路
PCLK
TX0~TX4
Pins
TIN0/TIN1
16 ビットリロード
タイマ 0/1
クロックセレクタ
クロックモジュレータ
X1
Pin
Pins
SIN0/1(/2)/3
X0
Pin
Pins
TOUT0/TOUT1
システム
クロック
発生回路
Pins ...
クロックセレクタ
2 分周
HCLK
UART0/UART1/
UART2(/UART3)
+
シリアルI/O
MCLK
SOT0/1(/2)/3
Pins ...
SCK0/1(/2)/3
Pins ...
AN0~AN14
10 ビット ADC
(15 チャネル )
Pins ...
SGO
Pin
サウンドジェネレータ
CPU
Pin
16 ビット
フリーランタイマ 0/1
16 ビット入力
キャプチャ
出力コンペア
(8 チャネル )
HCLK :発振クロック
MCLK :メインクロック
PCLK :PLL クロック
φ
:マシンクロック
φc
:CAN0 ~ CAN4 クロック
SGA
FRCK0/FRCK1
Pins
IN0~IN5
Pins ...
OUT0~OUT7
Pins ...
PWM1/2M5~
PWM1/2M0
PWM1/2P5~
PWM1/2P0
Pin
SMC (6チャネル)
...
DV CC, DV SS
Pin
...
3
発振安定待機制御
( 注意事項 ) I2C インタフェースはオプションであり , このダイヤグ
ラムには表示されていません。
83
第 5 章 クロック
クロック発生部のブロックダイヤグラム
5.2
クロック発生部は , 次の 5 つのブロックで構成されています。
• システムクロック発生回路
• PLL 逓倍回路
• クロックセレクタ
• クロック選択レジスタ (CKSCR)
• 発振安定待ち時間セレクタ
■ クロック発生部のブロックダイヤグラム
図 5.2-1 に , クロック発生部のブロックダイヤグラムを示します。
なお , 図 5.2-1 には , スタンバイ制御回路 , タイムベースタイマの回路も含まれていま
す。
図 5.2-1 クロック発生部のブロックダイヤグラム
低消費電力モード制御レジスタ(LPMCR)
STP SLP SPL RST TMD CG1 CG0
端子ハイ
インピーダンス
制御回路
Pin
RST
間欠
サイクル
セレクタ
間欠動作セレクタ
端子ハイ
インピー
ダンス制御
内部リセット
発生回路
内部
リセット
CPU クロック
制御回路
CPU
クロック
ストップ・
スリープ信号
スタンバイ
制御回路
ストップ信号
割込み
クリア
周辺クロック
制御回路
発振安定待ち時間クリア
マシンクロック
クロック
CS2
PLL および
特殊構成
制御レジスタ
(PSCCR):bit8
発振安定
待ち時間
セレクタ
2
セレクタ
2
PLL 逓倍回路
MCM WS1 WS0
-
MCS CS1 CS0
クロック選択レジスタ (CKSCR)
メインクロック
X0
Pin
HCLK
X1
Pin
システムクロック
発生回路
2 分周
1024
分周
2 分周
4 分周
4 分周
4 分周
2 分周
タイムベースタイマ
ウォッチドッグタイマ
(注意事項) このダイヤグラムには, クロックモジュレータは表示されていません。
詳細は「第 6 章 クロックモジュレータ」を参照してください。
84
第 5 章 クロック
● システムクロック発生回路
外部に接続した振動子によって発振クロック (HCLK) を発生します。外部クロックを
入力することもできます。
● PLL 逓倍回路
PLL 発振で発振クロックを逓倍し , CPU クロックセレクタへ供給します。
● クロックセレクタ
メインクロックと 6 種類の PLL クロックから , CPU 系クロック制御回路および周辺系
クロック制御回路へ供給されるクロックを選択します。
● クロック選択レジスタ (CKSCR)
発振クロックと PLL クロックの切換え , 発振安定待ち時間の選択および PLL クロック
の逓倍率の選択などを行います。
● 発振安定待ち時間セレクタ
ストップモード解除時 , サブクロックモードからメインクロックモードへの移行時お
よびサブクロックから PLL クロックモードへの移行時の発振クロックの発振安定待ち
時間を選択する回路です。4 種類のタイムベースタイマ出力を選択します。
85
第 5 章 クロック
5.3
クロック選択レジスタ
クロック選択レジスタの一覧と各レジスタの機能を概略します。
■ クロック選択レジスタ
図 5.3-1 にクロック選択レジスタ(CKSCR)とPLLおよび特殊構成制御レジスタ(PSCCR)
を示します。
図 5.3-1 クロック選択レジスタ
アドレス
0000A1H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
予約
R/W
MCM
R
WS1
R/W
WS0
R/W
予約
R/W
MCS
R/W
CS1
R/W
CS0
R/W
アドレス
0035CFH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
予約
-
予約
-
予約
-
予約
-
予約
W
予約
W
予約
W
CS2
W
R/W
W
R
X
86
: リード / ライト可能
: ライトオンリ
: リードオンリ
: 未定義
: 不定
(CKSCR)
初期値
11111100B
(PSCCR)
初期値
XXXX0000B
第 5 章 クロック
クロック選択レジスタ (CKSCR)
5.3.1
クロック選択レジスタ (CKSCR) は , メインクロックと PLL クロックの切換え , 発振
安定待ち時間の選択および PLL クロックの逓倍率の選択などを行うレジスタです。
■ クロック選択レジスタ (CKSCR)
図 5.3-2 に , クロック選択レジスタ (CKSCR) の構成を , 表 5.3-1 に , クロック選択レジ
スタ (CKSCR) の各ビットの機能について説明します。
図 5.3-2 クロック選択レジスタ (CKSCR) の構成
bit 15
アドレス
0 0 0 0 A 1 H 予約
R/W
14
13
MCM WS1
R
R/W
12
11
10
9
8
WS0
予約
MCS
CS1
CS0
R/W
R/W
R/W
R/W
R/W
0
(LPMCR)
初期値
11111100B
CS2(PLLCレジスタ:bit8)
CS2 CS1 CS0
逓倍率選択ビット
( )内は発振クロック4MHzと5MHz時
0
0
0
1× HCLK (4MHz / 5 MHz)*
0
0
1
2× HCLK (8MHz / 10 MHz)*
0
1
0
3× HCLK (12MHz / 15 MHz)*
0
1
1
4 ×HCLK (16MHz / 20 MHz)*
1
0
0
2 ×HCLK (8MHz / 10 MHz)
1
0
1
4× HCLK (16MHz / 20 MHz)
1
1
1
0
6× HCLK (24MHz / 設定禁止)
禁止
*: 20MHzを超える設定は禁止されています。
1
0
マシンクロック選択ビット
PLLクロック選択
1
メインクロック選択
MCS
WS1 WS0
R/W :リード/ライト可能
R
:リードオンリ
HCLK :発振クロック
:初期値
1
発振安定待ち時間選択ビット
( )内は発振クロック4MHzと5MHz時
0
0
210/ HCLK(約256/204.8μs)
0
1
213/ HCLK (約2.05/1.64ms)
1
0
215/ HCLK (約8.19/6.55ms)
1
1
2 17/ HCLK (約32.77/26.22ms)
MCM
マシンクロック表示ビット
0
PLLクロックで動作中
1
メインクロックで動作中
<注意事項>
マシンクロック選択ビットは , リセットによりメインクロック選択に初期化されます。
87
第 5 章 クロック
表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (1 / 2)
ビット名
bit15
bit14
機
能
予約
必ず "1" を書き込んでください。
MCM:
マシン
クロック
表示ビット
• マシンクロックとして , メインクロックまたは PLL クロックのどちらが
選択されているかを表示するビットです。
• このビットが "0" のとき PLL クロックが選択されていることを示し , "1"
のときメインクロックが選択されていることを示します。
• MCS が "0" で , かつ MCM が "1" ならば , PLL クロック発振安定待ち時
間中であることを示します。
• 書込みは , 影響しません。
• ストップモード解除時 , サブクロックモードからメインクロックモード
への移行時およびサブクロックから PLL クロックモードへの移行時の
発振クロックの発振安定待ち時間を選択します。
• すべてのリセット要因で "11B" に初期化されます。
( 注意事項 )
発振安定待ち時間は , 使用する振動子に合わせて適切な値を設定する必
要があります。「7.2 リセット要因と発振安定待ち時間」を参照してくだ
さい。"00B" と "01B" の設定は , メインクロックモード時のみ設定してく
bit13,
bit12
bit11
WS1, WS0:
発振安定
待ち
時間選択
ビット
予約
ださい。
PLL ストップから PLL クロックモードに復帰する場合の発振安定待ち時
PLL クロックモードに切り換える場合は "10B"
間は , 214/HCLK 以上です。
または "11B" に設定してください。
5MHz 原発振の待ち時間
0
約 256 μs
約 205 μs
0
1
約 2.05 ms
約 1.64 ms
1
0
約 8.19 ms
約 6.56 ms
1
1
約 33.77 ms
約 26.22 ms
WS0
0
必ず "1" を書き込んでください。
HCLK: 発振クロック周波数
88
4MHz 原発振の待ち時間
WS1
第 5 章 クロック
表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (2 / 2)
ビット名
bit10
MCS:
マシン
クロック
選択ビット
機
能
• マシンクロックとして , メインクロックまたは PLL クロックのどちらを
選択するかを指定するビットです。
• このビットが "0" のとき PLL クロックを選択し , "1" のときメインクロッ
クを選択します。
• このビットが "1" のときに "0" を書き込むと , PLL クロックの発振安定
待ち期間が発生するために, 自動的にタイムベースタイマがクリアされ,
さらにタイムベースタイマ制御レジスタ (TBTC) の TBOF ビットもクリ
アされます。
• PLL クロックの発振安定待ち時間は , 214/HCLK ( 発振クロック周波数
4MHz で動作している場合 : 約 4.1ms) 固定です。
• メインクロック選択時の動作クロックは , 発振クロックを 2 分周したク
ロックとなります ( 発振クロック周波数 4MHz 時 , 動作クロックは 2MHz
になります ) 。
• すべてのリセット要因で "1" に初期化されます。
( 注意事項 )
MCS ビットが "1" のときに "0" を書き込む場合には , タイムベースタイ
マ制御レジスタ (TBTC) の TBIE ビットまたはインタラプトレベルレジス
タ (ILM) によりタイムベースタイマ割込みがマスクされている状態で行
うようにしてください。
• これらのビットと PSCCR レジスタの CS2 ビットは PLL クロックの逓倍
率を選択します。
• 6 種類の逓倍率から選択できます。
• すべてのリセット要因で "00B" に初期化されます。
• CS2, CS1, CS0 ビットの推奨設定
bit9,
bit8
CS1, CS0:
逓倍率選択
ビット
PLL クロックの逓倍率
CS2
CS1
CS0
0
0
0
×1
0
0
1
×2
0
1
0
×3
0
1
1
×4
1
0
0
×2
1
0
1
×4
1
1
0
×6
1
1
1
× 8*2
最大 20MHz までの
マシンクロック *1
20MHz 以上の
マシンクロック *1
*1:データシートの交流規格を参照してください。
*2:すべてのデバイスには設定されていません。データシートの交流規
格を参照してください。
( 注意事項 )
MCS ビットまたは MCM ビットが "0" のときには書込みが抑止されます。
いったん , MCS ビットを "1" にした ( メインクロックモード ) 後に CS2,
CS1, CS0 ビットを書き換えてください。
89
第 5 章 クロック
PLL および特殊構成制御レジスタ (PSCCR)
5.3.2
PLL および特殊構成制御レジスタは PLL のクロック逓倍率の選択を追加します。
■ PLL および特殊構成制御レジスタ (PSCCR) の構成
図 5.3-3 に , PLL および特殊構成制御レジスタ (PSCCR) の構成を示します。表 5.3-2 に ,
PLL および特殊構成制御レジスタ (PSCCR) の各ビットの機能について説明します。
図 5.3-3 PLL および特殊構成制御レジスタ (PSCCR) の構成
アドレス
0 0 3 5 C FH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
予約
予約
予約
予約
予約
予約
予約
CS2
-
-
-
-
W
W
W
W
初期値
(PSCCR)
CS2
W
X
-
90
: ライトオンリ
: 不定
: 未定義
: 初期値
XXXX0000 B
付加逓倍選択ビット
0
PLLクロックの逓倍率 x1, x2, x3, x4
1
PLLクロックの逓倍率 x2, x4, x6, x8 (CKSCR
レジスタのCS1とCS0ビットの設定によります)
予約
予約ビット
0
このビットには常に"0"を書き込んでください。
読出し値は常に "X"です。
予約
予約ビット
0
このビットには常に"0"を書き込んでください。
読出し値は常に "X"です。
予約
予約ビット
0
このビットには常に"0"を書き込んでください。
読出し値は常に "X"です。
予約
予約ビット
XXXX
これらのビットには常に"0"を書き込んでくださ
い。読出し値は常に "x"です。
第 5 章 クロック
表 5.3-2 PLL および特殊構成制御レジスタ (PSCCR)
ビット名
機能
bit15
~
bit9
予約 :
予約ビット
• 予約ビットです。
• 常に "0" を書き込んでください。
• これらのビットは常に "X" を読み出します。
bit8
CS2:
逓倍率
選択ビット 2
• このビットとクロック選択レジスタ (CKSCR) の CS1 と CS0 ビットは
PLL クロックの逓倍率を選択します。
• CS2, CS1, CS0 ビットの設定と PLL クロック逓倍率選択の関係につい
ては , 表 5.3-1 を参照してください。
• このビットはすべてのリセット要因により "0" に初期化されます。
• このビットは常に "X" を読み出します。
( 注意事項 )
MCS ビットまたは MCM ビットが "0" のとき , このビットの設定を変更す
ることは禁止されています。MCS ビットを "1" に設定し , MCM ビットが
"1" に設定されるのを待ってからこのビットを変更してください ( メイン
クロックモード )。
<注意事項>
PSCCR レジスタは書込み専用レジスタです。読出し値は書込み値と異なります。した
がって , リードモディファイライト (RMW) 系命令は , INC/DEC 命令などを使用できませ
ん。
91
第 5 章 クロック
5.4
クロックモード
クロックモードには , メインクロックモードと PLL クロックモードがあります。
■ メインクロックモード , PLL クロックモード
● メインクロックモード
メインクロックモードは , CPU および周辺機能の動作クロックとして発振クロックを
2 分周したクロックを使用し , PLL クロックを停止させます。
● PLL クロックモード
PLL クロックモードは , CPU および周辺機能の動作クロックとして PLL クロックを使
用します。PLL クロックの逓倍率は , クロック選択レジスタ (CKSCR:CS1, CS0) と PLL
および特殊構成制御レジスタ (PSCCR:CS2) により選択できます。
■ クロックモードの移行
クロック選択レジスタ (CKSCR) の MCS ビットへの書込み動作により , クロックモー
ドはメインクロックモード , PLL クロックモードに移行します。
● メインクロックモードから PLL クロックモードへの移行
メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "1"
から "0" に書き換えた場合には , PLL クロックの発振安定待ち期間 (214/HCLK) 後にメ
インクロックから PLL クロックに切り換わります。
● PLL クロックモードからメインクロックモードへの移行
PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "0" から
"1" に書き換えた場合には , PLL クロックとメインクロックのエッジが一致するタイミン
グ (1PLL ~ 8PLL クロック後 ) で PLL クロックからメインクロックに切り換わります。
<注意事項>
クロック選択レジスタ (CKSCR) の MCS ビットを書き換えても即座にマシンクロックの
切換えは行われません。マシンクロックに依存する周辺機能を操作する場合には , クロッ
ク選択レジスタ (CKSCR) の MCM ビットを参照してマシンクロックの切換えが行われた
ことを確認したのちに , 周辺機能の操作を行ってください。
クロックモードを切り換えた場合 , 切換えが完了するまではほかのクロックモードおよび
低消費電力モードへは切り換えないようにしてください。
切換えの完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照して確認してくだ
さい。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換え
を行った場合 , 切り換わらない場合があります。
■ PLL クロック逓倍率の選択
クロック選択レジスタ (CKSCR) の CS1, CS0 ビットに "00B" ~ "11B" と PLL および特殊
構成制御レジスタ (PSCCR) の CS2 ビットに "0" または "1" を書き込むことにより , 1 ~
4 逓倍 (CS2=0) と 2 ~ 8 逓倍 (CS2=1) の PLL クロック逓倍率を選択できます。
92
第 5 章 クロック
■ マシンクロック
PLL 逓倍回路から出力される PLL クロック , 原発振の 2 分周クロックがマシンクロッ
クとなります。このマシンクロックが CPU および周辺機能に供給されます。メインク
ロック , PLL クロックは , クロック選択レジスタ (CKSCR) の MCS ビットへの書込みに
より , いずれかを選択できます。
■ クロックモジュレータ
クロックモジュレータについては「第 6 章 クロックモジュレータ」を参照してくださ
い。
図 5.4-1 に , マシンクロックの切換えによる状態遷移を示します。
図 5.4-1 マシンクロック選択の状態遷移図
メイン
MCS = 1
MCM = 1
CS1, CS0 = XX
CS2 = x
(1)
(6)
(8)
(7)
(9)
メイン
PLLx
MCS = 0
MCM = 1
(10)
(11)
(2)
CS1, CS0 = XXB (3)
CS2 = x
(4)
(5)
(7)
(7)
PLL1
メイン
MCS = 1
MCM = 0
PLL1: 逓倍
MCS = 0
MCM = 0
CS1, CS0 = 00B
CS2 = 0
(6) CS1, CS0 = 00B
CS2 = 0
PLL2
メイン
MCS = 1
MCM = 0
PLL2: 逓倍
MCS = 0
MCM = 0
CS1, CS0 = 01B
CS2 = 0
(7)
PLL3
メイン
MCS = 1
MCM = 0
CS1, CS0 = 10B
CS2 = 0
(7)
(6)
PLL4
メイン
MCS = 1
MCM = 0
CS1, CS0 = 11B
CS2 = 0
CS1, CS0 = 11B
CS2 = 0
PLL2A メイン
MCS = 1
MCM = 0
PLL2A: 逓倍
MCS = 0
MCM = 0
CS1, CS0 = 00B
CS2 = 1
(6) CS1, CS0 = 00B
CS2 = 1
PLL4A メイン
MCS = 1
MCM = 0
PLL4A: 逓倍
MCS = 0
MCM = 0
CS1, CS0 = 01B
CS2 = 1
(7)
(7)
(6)
PLL6
メイン
MCS = 1
MCM = 0
CS1, CS0 = 10B
CS2 = 1
CS1, CS0 = 10B
CS2 = 0
PLL4: 逓倍
MCS = 0
MCM = 0
(6)
(7)
CS1, CS0 = 01B
CS2 = 0
PLL3: 逓倍
MCS = 0
MCM = 0
(6)
(7)
PLL6: 逓倍
MCS = 0
MCM = 0
(6)
PLL8
メイン
MCS = 1
MCM = 0
CS1, CS0 = 11B
CS2 = 1
CS1, CS0 = 01B
CS2 = 1
CS1, CS0 = 10B
CS2 = 1
PLL8: 逓倍
MCS = 0
MCM = 0
(6)
CS1, CS0 = 11B
CS2 = 1
93
第 5 章 クロック
(1) MCS ビットに "0" を書き込む
(2) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 00B および CS2= 0
(3) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 01B および CS2= 0
(4) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 10B および CS2= 0
(5) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 11B および CS2= 0
(6) MCS ビットに "1" を書き込む ( ウォッチドッグタイマリセットを含む )
(7) PLL クロックとメインクロックの同期タイミング
(8) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 00B および CS2= 1
(9) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 01B および CS2= 1
(10) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 10B および CS2= 1
(11) PLL クロック発振安定待ち時間終了後 , CS1, CS0 = 11B および CS2= 1
MCS
: クロック選択レジスタ (CKSCR) のマシンクロック選択ビット
MCM
: クロック選択レジスタ (CKSCR) のマシンクロック表示ビット
CS1, CS0 : クロック選択レジスタ (CKSCR) の逓倍率選択ビット
CS2
: PLL および特殊構成制御レジスタ (PSCCR) の逓倍率選択ビット
<注意事項>
マシンクロックの初期値は , メインクロック (CKSCR:MCS = 1) です。
94
第 5 章 クロック
発振安定待ち時間
5.5
電源投入後 , ストップモード解除およびウォッチドッグリセットの場合は発振停止
から動作が開始するため , 発振開始後に発振安定待ち時間が必要です。また , メイン
クロックから PLL クロックへ切り換える場合も , PLL クロックの発振開始後に発振
安定待ち時間が必要です。
■ 発振安定待ち時間
セラミックや水晶などの振動子は , 発振を開始してから固有の振動数 ( 発振周波数 ) で
安定して発振するまでに , 一般的に数 ms から 10ms または 20ms の時間が必要です。こ
のため , 発振開始直後は CPU の動作を禁止し , 発振安定待ち時間が経過して十分発振
が安定した時点で CPU にクロックを供給するようにします。振動子の種類 ( 水晶 , セ
ラミックなど ) によって発振が安定するまでの時間が異なるため, 使用する振動子に合
わせて適切な発振安定待ち時間を選択する必要があります。発振安定待ち時間は , ク
ロック選択レジスタ (CKSCR) の設定で選択できます。
クロックモードをメインクロックから PLL クロックに切り換えた場合 , 発振安定待ち
時間の間 , CPU はメインクロックで動作しています。発振安定待ち時間が経過すると
PLL モードに切り換わります。
図 5.5-1 に , 発振開始直後の動作を示します。
図 5.5-1 発振開始直後の動作
振動子の発振時間
発振安定待ち時間
通常動作開始または
PLLクロックへの切換え
X1
発振開始
発振安定
95
第 5 章 クロック
5.6
振動子と外部クロックの接続
MB90390 シリーズは , システムクロック発生回路を内蔵しており , 外部に振動子を
接続してクロックを発生させます。また , 外部で生成したクロックを入力すること
もできます。
■ 振動子と外部クロックの接続
● 水晶振動子またはセラミック振動子の接続例
水晶振動子またはセラミック振動子は , 図 5.6-1 の例で示すように接続してください。
図 5.6-1 水晶振動子またはセラミック振動子の接続例
MB90390シリーズ
X0
X1
● 外部クロックの接続例
図 5.6-2 の例で示すように , 外部クロックは , X0 端子に接続し , X1 端子は開放にして
ください。
図 5.6-2 外部クロックの接続例
MB90390シリーズ
96
X0
X1
~
開放
第 5 章 クロック
メインクロック HCLK, HCLKX の出力
5.7
メインクロック HCLK, HCLKX の出力制御は , クロック出力許可レジスタを使用し
ます。
■ クロック出力許可レジスタ
図 5.7-1 クロック出力許可レジスタ (CKOE)
bit 15
アドレス
00003FH
-
14
13
12
11
10
-
-
-
-
-
-
-
-
-
-
9
CKXOE CKOE
R/W
XXXXXX00B
R/W
HCLK出力許可
CKOE
HCLK : 発振クロック
HCLKX : 発振クロックの反転
: リード/ライト可能
R/W
: 不定
X
: 未定義
: 初期値
初期値
8
0
HCLK出力は禁止
1
HCLK出力は許可
CKXOE
0
HCLKX出力許可
HCLKX出力は禁止
1
HCLKX出力は許可
表 5.7-1 クロック出力許可レジスタの各ビット機能
ビット名
機能
bit15 ~
bit10
未定義
-
bit9
CKXOE
このビットが "1" に設定されると , P97( 端子番号 92) の HCLKX 出力
は許可されます。
このビットが "0" に設定されると , HCLKX 出力は禁止されます。
bit8
CKOE
このビットが "1" に設定されると , PB7( 端子番号 91) の HCLK 出力
は許可されます。
このビットが "0" に設定されると , HCLK 出力は禁止されます。
97
第 5 章 クロック
98
第6章
クロックモジュレータ
クロックモジュレータの概要 , 特長 , レジスタの構
成 , 動作について説明します。
( 注意事項 )
• MB90F394H では周波数変調モードは使用でき
ません
• MB90F394H, MB90V390H, MB90V390HA では
CAN メッセージバッファ RAM とクロックモ
ジュレータを同時に使用しないでください。
6.1 クロックモジュレータの概要
6.2 クロックモジュレータのレジスタ説明
6.3 クロックモジュレータのクロック変調レジスタ
6.4 クロックモジュレータの使用上の注意
99
第 6 章 クロックモジュレータ
6.1
クロックモジュレータの概要
クロックモジュレータの概要を説明します。
■ クロックモジュレータの概要
クロックモジュレータはクロック信号のスペクトラムを広い範囲に分散させることで
周囲への電磁ノイズへの影響 (EMI) を減らします。
本モジュレータには位相変調モードと周波数変調モードの 2 つのモードがあります。
リファレンスクロックは , ランダム信号で制御される三角波形 , もしくは変調した周波
数によって位相変調されます。
通常 , 周波数変調モードは , 位相変調モードに比べて EMI の動作を改善します。変調
クロックの平均周波数はリファレンスクロック周波数 F0 と同じです。
図 6.1-1 変調クロックの周波数スペクトラム ( 基本のみ )
変調範囲
周波数
Fmin
F0
Fmax
■ 周波数変調モードの変調度と周波数分解能
変調クロックの最大・最小周波数 (Fmax と Fmin) は , 変調度パラメータで明確に定義さ
れています。さらに , 変調範囲の分解能は low (1) から high(7) の 7 段階で選択可能で
す。高分解能とは , 変調クロックスペクトラムにおいて , 不連続周波数の高精度分解を
意味しますが , 変調度は近くなります。
通常 , 最高変調度と最高周波数分解との組合せは , 最大の EMI の減少の原因となりま
す。場合によっては , 低変調度が EMI 動作を改善させることがあります。表 6.3-4 の可
能な設定を参照してください。
100
第 6 章 クロックモジュレータ
6.2
クロックモジュレータのレジスタ説明
クロックモジュレータには以下の 2 つのレジスタがあります。
• クロック変調パラメータレジスタ
• クロックモジュレータ制御レジスタ
■ クロックモジュレータレジスタ
アドレス
0035C0H
0035C2H
bit15
0
クロック変調パラメータレジスタ
CMPR
CMCR
クロックモジュレータ制御レジスタ
101
第 6 章 クロックモジュレータ
クロックモジュレータのクロック変調レジスタ
6.3
以下に , クロック変調レジスタの一覧と各レジスタの機能を説明します。
■ クロック変調レジスタ
図 6.3-1 クロック変調レジスタ
CMPRL ( 下位 )
アドレス
0035C0H
bit 7
MP7
R/W
6
MP6
R/W
5
MP5
R/W
4
MP4
R/W
3
MP3
R/W
2
MP2
R/W
1
MP1
R/W
0
MP0
R/W
初期値
11111101B
bit15
−
−
14
−
−
13
MP13
R/W
12
MP12
R/W
11
MP11
R/W
10
MP10
R/W
9
MP9
R/W
8
MP8
R/W
初期値
XX0000010B
bit 7
6
5
4
3
0
PMOD
予約
予約
予約
−
初期値
0001X000B
R/W
R/W
R/W
R/W
−
CMPRH ( 上位 )
0035C1H
CMCR
0035C2H
R/W
W
R
X
102
: リード / ライト可能
: ライトオンリ
: リードオンリ
: 未定義
: 不定
2
1
FMOD
FMOD
RUN
R
R/W
PDX
R/W
第 6 章 クロックモジュレータ
クロックモジュレータ制御レジスタ (CMCR)
6.3.1
クロックモジュレータ制御レジスタ (CMCR) には次のような機能があります。
• モジュレータをパワーダウンモードに設定
• 位相変調モードもしくは周波数変調モードのモジュレータ許可 / 禁止
• モジュレータステータスの表示
■ クロックモジュレータ制御レジスタ (CMCR)
図 6.3-2 クロックモジュレータ制御レジスタ (CMCR) の構成
bit 7
アドレス
0035C2H
6
5
4
3
PMOD 予約 予約 予約
-
R/W R/W R/W R/W
-
2
1
0
FMOD
FMOD PDX
RUN
R
R/W R/W
CMCR
初期値
0 0 0 1 X 0 0 0B
bit 0
パワーダウンビット
PDX
0
パワーダウンモード
1
パワーアップモード
bit 1
周波数変調許可ビット
FMOD
0
周波数変調禁止
1
周波数変調許可
bit 2
FMOD
RUN
0
1
周波数変調モードのモジュレータステータス
クロック周波数非変調 / 周波数変調
クロック周波数変調
bit 4~bit 6
予約
bit 4
bit 5, bit 6
予約ビット
常に"1"を書き込んでください
常に"0"を書き込んでください
bit 7
位相変調許可ビット
PMOD
R/W
R
X
-
:
:
:
:
リード/ライト可能
リードオンリ
不定
未定義
:
初期値
0
位相変調禁止
1
位相変調許可
クロックモジュレータには 2 つの異なるオペレーションモードがあります。
• 位相変調
• 周波数変調
通常 , 周波数変調は EMI の動作を改善します。
位相変調モードは (PMOD) で制御できます。ほかの追加設定は必要ありません。
残りのビット (FMODRUN, FMOD, PDX) は , 周波数変調モードのステータスを制御も
しくは表示します。周波数変調モードは追加設定 (CMPR レジスタ ) が必要です。
103
第 6 章 クロックモジュレータ
■ クロックモジュレータ制御レジスタの機能
表 6.3-1 クロックモジュレータ制御レジスタの各ビットの機能 (1 / 3)
ビット名
PMOD:
bit7
位相変調
許可ビット
機能
"0": 位相変調不可 ( デフォルト )
"1": 位相変調許可 MCU は変調されたクロックによって動作します。
• モジュレータを位相モードで動作させるためには PMOD が "1" に設定さ
れる必要があります。
位相変調モードとして , モジュレータはパワーダウンモードにとどめな
ければなりません。すなわち , PDX は "0" に設定しなければなりません。
• モジュレータを許可にする前に , PLL クロックが安定している必要があ
ります (PLL 安定待ち時間については「第 5 章 クロック」を参照してく
ださい )。
• 位相変調モードは 15MHz ~ 25MHz の範囲で使用可能です。
• PLL 出力周波数が変わる場合 , または PLL が OFF になる場合 ( 例:パ
ワーダウンモード ) には事前にクロックモジュレータを不可にしてくだ
さい→ PMOD=0 後に NOP が 4 サイクル必要です。
• 位相変調を許可にすると , 直ちに変調されたクロックに切り換わります。
このときグリッジは発生しません。
位相変調開始シーケンスについては使用上の注意を参照してください。
• モジュレータは同時 (PMOD=1, FMOD=1, PDX=1) に , 位相変調モードと
周波数変調モードを設定してはいけません。位相モード (PMOD=1) を有
効にする前に , FMOD, FMODRUN, PDX を必ず "0" にしてください。
• 位相変調モードが許可のとき , FMODRUN ステータスフラグは "0" です。
位相変調の動作状態は PMOD によって参照できます。PMOD=1 であれ
ばクロックは変調されています。
• 位相変調されたクロック信号のパルス幅は± 1.2 ns の範囲で変化します。
例:F0 = 20 MHz, T0 = 50ns
Tmodmin = 50ns - 1.2ns =48.8ns → Fmodmax = 1/48.8 ns = 20.49 MHz
bit6,
bit5
予約ビット
本ビットには常に "0" を書き込んでください。
bit4
予約ビット
本ビットには常に "1" を書き込んでください。
bit3
未定義ビット
104
─
第 6 章 クロックモジュレータ
表 6.3-1 クロックモジュレータ制御レジスタの各ビットの機能 (2 / 3)
ビット名
機能
"0": 非変調 / 位相変調クロックで MCU が動作
"1": 周波数クロックで MCU が動作
• FMODRUN は , 周波数変調モードにおけるモジュレータ出力のステータ
スを表します (FMOD=1)。出力クロックが周波数変調されると ,
FMODRUN は "1" に設定 , さもなければ FMODRUN は "0" に設定されま
す。
• FMODRUN は位相変調クロックを表示しません (PMOD=1)。モジュレー
タが位相変調モードで許可されると , FMODRUN は "0" に設定されます。
• FMOD を "1" に設定することで周波数変調モードが許可された後 , モ
ジュレータは調整されます。この時間の間 , クロックは変調されません。
そのため , 出力クロックが変調されたクロックに移行し , FMODRUN
ビットが "1" に設定される前に , 既に数 μs が経過しています。調整時間
は , 発振周波数によって異なります。( 表を参照 )
bit2
FMODRUN:
周波数変調
モード
ビットの
モジュレータ
ステータス
発振周波数
Fc
調整時間
4 MHz
64.00 μs
5 MHz
51.20 μs
6 MHz
42.67 μs
調整時間 = 256/Fc
• 調整終了後 , 通常動作の間 , クロックは変調されたクロックに移行しま
せん。
• FMOD 信号の周期と非変調クロックへの同期スイッチングのために ,
FMODRUN の "0" への変更と , モジュレータの無効化後での非変調ク
ロックへのクロックスイッチングの遅延を 9 × T0 ( 入力クロック期間 )
以下にしてください。
• FMODRUN ビットは読出しのみ可能です。FMODRUN に書込みしても
影響はありません。
• パラメータレジスタ CMPR を変更する前に , モジュレータは不可でなけ
ればなりません→ FMOD=0, FMODRUN=0。
105
第 6 章 クロックモジュレータ
表 6.3-1 クロックモジュレータ制御レジスタの各ビットの機能 (3 / 3)
ビット名
bit1
bit0
106
機能
FMOD:
周波数変調
許可ビット
"0": 周波数変調不可
"1": 周波数変調許可
( 注意事項 )MB90F394H では、このビットに "1" を設定しないでください。
• モジュレータを周波数モードで動作させるためには FMOD が "1" に設定
される必要があります。
• モジュレータを許可する前に , PLL クロックが安定している必要があり
ます (PLL ロック時間が経過していなければなりません )。
• 周波数変調モードは 15 MHz ~ 25 MHz の範囲で使用可能です。
• 各 PLL 周波数は , 可変長パラメータのセットを提供します。選択設定さ
れた (CMPR レジスタ ) と PLL 周波数は一致します。
CMPR レジスタの記述を参照してください。
• PLL 出力周波数が変わる場合 , または PLL が OFF になる場合 ( 例:パ
ワーダウンモード ) には事前にクロックモジュレータを不可にしてくだ
さい→ FMOD=0, FMODRUN=0。
• モジュレータが許可になる前に , PDX を "1" に設定することによって
パワーダウンからアクティブモードに移行させます。起動の待ち時間
は 6 μs です。推奨起動手順の注意事項を参照してください。
• 周波数変調モードのモジュレータが許可になる前に必ずパラメータレジ
スタ CMPR で適切に設定してください。
• モジュレータは同時 (FMOD=1, PDX=1, PMOD=1) に , 位相変調モードと
周波数変調モードを設定してはいけません。位相モード (FMOD=1,
PDX=1) を有効にする前に , PMOD ビットを必ず "0" にしてください。
• FMOD を "1" に設定することで周波数変調モードが許可された後 , モ
ジュレータは調整されます。この時間の間 , クロックは変調されません。
そのため , 出力クロックは変調されたクロックに直接移行しません。ク
ロックのステータス ( 変調された周波数 / 変調されない周波数 ) は ,
FMODRUN ステータスビットによって表示されます。FMODRUN ビット
の説明を参照してください。
• FMOD 信号の周期と非変調クロックへの同期スイッチングのために ,
FMODRUN の "0" への変更と , モジュレータの無効化後での非変調ク
ロックへのクロックスイッチングの遅延を 9 × T0 ( 入力クロック期間 )
以下にしてください。
• パラメータレジスタ CMPR を変更する前に , モジュレータは不可でなけ
ればなりません→ FMOD=0, FMODRUN=0。
PDX:
パワーダウン
ビット
"0": パワーダウンモード
"1": パワーアップ
• PDX は , モジュレータ用パワーダウン信号です。周波数変調モードが許
可になる前 , このビットは "1" に設定され , 起動待ち時間は 6 μs です。
推奨起動手順の注意事項を参照してください。
• 位相変調モード (PMOD ビット ) のために , このモジュレータはパワーダ
ウンモード中 (PDX=0) 内に必ず含めてください。
• パワーダウンモード (PDX=0) に移行する前に , モジュレータは不可でな
ければなりません FMOD=0, FMODRUN=0。
第 6 章 クロックモジュレータ
表 6.3-2 は , モジュレータステータスの要約表です。
表 6.3-2 モジュレータステータス
PMOD
FMOD
PDX
FMODRUN
( 読出しのみ )
モジュレータ禁止
0
0
0
0
位相変調モードのモジュレータ許可
モジュレータ動作中
1
0
0
0
モジュレータパワーオン
待機モジュレータスタートアップタイム (> 6 μs)
0
0
1
0
周囲変調モードのモジュレータ許可
モジュレータ換算 , 変調停止
0
1
1
0
周波数変調モードでのモジュレータ動作変調はオン
0
1
1
1
その他不可
107
第 6 章 クロックモジュレータ
クロック変調パラメータレジスタ (CMPR)
6.3.2
クロック変調パラメータレジスタ (CMPR) は , 周波数変調モードの変調度を決定し
ます。
■ クロック変調パラメータレジスタ
図 6.3-3 クロック変調パラメータレジスタ (CMPR)
CMPRL ( 下位 )
アドレス
0035C0H
bit7
MP7
R/W
bit6
MP6
R/W
bit5
MP5
R/W
bit4
MP4
R/W
bit3
MP3
R/W
bit2
MP2
R/W
bit15
bit14
bit13
bit12
bit11
bit10
−
−
−
−
MP13
R/W
MP12
R/W
MP11
R/W
MP10
R/W
bit0
MP0
R/W
初期値
11111101B
bit9
bit8
MP9
R/W
MP8
R/W
初期値
XX000010B
bit1
MP1
R/W
CMPRH ( 上位 )
0035C1H
R/W : リード / ライト可能
X
: 不定
−
: 未定義
• 変調パラメータは , 変調クロックの変調度 , 最大 / 最小発生周波数を決定します。最
適な設定のために「6.4 クロックモジュレータの使用上の注意」を参照してくださ
い。
• 変調パラメータの各設定は , 特別な PLL 周波数を参考にしています。PLL 周波数と
選択されたパラメータは一致します。表 6.3-3 を参照してください。
• 変調パラメータは , 周波数変調モードにのみ影響を及ぼします。位相変調モードは ,
変更不可能な固定設定です。
<注意事項>
モジュレータが禁止され , RUN フラグが "0"(FMOD=0, FMODRUN=0) のときのみ , 変調
パラメータが変更されます。
■ クロック変調パラメータレジスタの機能
表 6.3-3 クロック変調パラメータレジスタの各ビットの機能 (CMPR)
ビット名
bit15, bit14
未使用ビット
bit13 ~ bit0
MP13 ~ MP0:
変調
パラメータビット
108
機能
PLL 周波数によって , 次の変調パラメータ設定が可能です。
第 6 章 クロックモジュレータ
F0
: 変調されていない入力クロックの周波数 (PLL 周波数 )
T0:
: 変調されていない入力クロックの周期 (PLL クロック周期 )
resolution
: 変調されたクロック low (1) ~ high (7) における周波数の分解能
Fmin
: 変調されたクロックの周波数で発生する最小周波数
Fmax
: 変調されたクロックの周波数で発生する最大周波数
phase skew
: 変調クロックの最大位相シフトは , 非同期クロックのクロック期間から算
出した非変調リファレンスクロックと関連しています。
例:phase skew=1.44
最悪の場合 , 変調クロックの n 周期のシーケンスは , 非変調リファレンス
クロックの n 周期のシーケンス± 1.44 × T0 となります。
n > 50 周期
phase skew 50
: n ≦ 50 周期
CMPR
: CMPR レジスタのレジスタ設定
n 周期
基準クロック
+ phase skew
n 周期
変調クロック
n 周期
<注意事項>
すべての設定がすべてのデバイスで許可されているわけではありません。
MCU の実際の最大クロック周波数 ( データシートを参照 ) を考慮してください。例
えば , デバイスの最大クロック周波数が 25MHz のとき , F0=15MHz, 分解能 =7, 変調
度 =2 は設定できません。これは , 変調クロックでの最大発生周波数が 28.33 MHz で
あり , 先の 25MHz を超えているためです。
109
第 6 章 クロックモジュレータ
表 6.3-4 はいくつかの MCU クロックと変調パラメータに対し推奨する設定を示しま
す。
表 6.3-4 変調項目設定 (1 / 4)
F0 (MHz)
110
分解能
変調度
Fmin (MHz)
Fmax
(MHz)
+/- phase
skew 50
[periods]
+/- phase
skew Min/Max
[periods]
CMPR
15
1
1
14.09
16.03
0.27
0.72
027FH
15
1
2
13.69
16.58
0.53
1.44
047EH
15
1
3
13.31
17.18
0.8
2.16
067DH
15
1
4
12.95
17.81
1.06
2.88
087CH
15
1
5
12.61
18.50
1.33
3.59
0A7BH
15
1
6
12.29
19.24
1.59
4.31
0C7AH
15
1
7
11.98
20.05
1.86
5.03
0E79H
15
1
8
11.69
20.92
2.13
5.75
1078H
15
1
9
11.41
21.87
2.39
6.47
1277H
15
1
10
11.15
22.92
2.66
7.19
1476H
15
1
11
10.90
24.07
2.92
7.91
1675H
15
1
12
10.65
25.34
3.19
8.63
1874H
15
1
13
10.42
26.75
3.45
9.34
1A73H
15
1
14
10.20
28.33
3.72
10.06
1C72H
15
1
15
9.99
30.11
3.98
10.78
1E71H
15
1
16
9.78
32.12
4.25
11.5
2070H
15
2
1
13.69
16.58
0.39
1.02
02BEH
15
2
2
12.95
17.81
0.78
2.03
04BCH
15
2
3
12.29
19.24
1.17
3.05
06BAH
15
2
4
11.69
20.92
1.56
4.06
08B8H
15
2
5
11.15
22.92
1.95
5.08
0AB6H
15
2
6
10.65
25.34
2.34
6.09
0CB4H
15
2
7
10.20
28.33
2.73
7.11
0EB2H
15
2
8
9.78
32.12
3.13
8.13
10B0H
15
3
1
13.31
17.18
0.78
1.86
02FDH
15
3
2
12.29
19.24
1.56
3.72
04FAH
15
3
3
11.41
21.87
2.34
5.58
06F7H
15
3
4
10.65
25.34
3.13
7.44
08F4H
15
3
5
9.99
30.11
3.91
9.3
0AF1H
15
4
1
12.95
17.81
0.75
2
033CH
15
4
2
11.69
20.92
1.5
4
0538H
15
4
3
10.65
25.34
2.25
6
0734H
15
4
4
9.78
32.12
3
8
0930H
15
5
1
12.61
18.50
1.13
3.94
037BH
15
5
2
11.15
22.92
2.25
7.88
0576H
15
5
3
9.99
30.11
3.38
11.81
0771H
15
6
1
12.29
19.24
1.5
2.67
03BAH
15
6
2
10.65
25.34
3
5.34
05B4H
15
7
1
11.98
20.05
1.81
3.95
03F9H
第 6 章 クロックモジュレータ
表 6.3-4 変調項目設定 (2 / 4)
F0 (MHz)
分解能
変調度
Fmin (MHz)
Fmax
(MHz)
+/- phase
skew 50
[periods]
+/- phase
skew Min/Max
[periods]
CMPR
15
7
2
10.20
28.33
3.63
7.91
05F2H
16
1
1
15.00
17.14
0.27
0.72
027FH
16
1
2
14.58
17.73
0.53
1.44
047EH
16
1
3
14.17
18.37
0.8
2.16
067DH
16
1
4
13.79
19.05
1.06
2.88
087CH
16
1
5
13.43
19.79
1.33
3.59
0A7BH
16
1
6
13.09
20.58
1.59
4.31
0C7AH
16
1
7
12.76
21.45
1.86
5.03
0E79H
16
1
8
12.45
22.38
2.13
5.75
1078H
16
1
9
12.15
23.41
2.39
6.47
1277H
16
1
10
11.87
24.53
2.66
7.19
1476H
16
1
11
11.60
25.76
2.92
7.91
1675H
16
1
12
11.35
27.13
3.19
8.63
1874H
16
1
13
11.10
28.65
3.45
9.34
1A73H
16
1
14
10.86
30.34
3.72
10.06
1C72H
16
1
15
10.64
32.25
3.98
10.78
1E71H
16
2
1
14.58
17.73
0.39
1.02
02BEH
16
2
2
13.79
19.05
0.78
2.03
04BCH
16
2
3
13.09
20.58
1.17
3.05
06BAH
16
2
4
12.45
22.38
1.56
4.06
08B8H
16
2
5
11.87
24.53
1.95
5.08
0AB6H
16
2
6
11.35
27.13
2.34
6.09
0CB4H
16
2
7
10.86
30.34
2.73
7.11
0EB2H
16
3
1
14.17
18.37
0.78
1.86
02FDH
16
3
2
13.09
20.58
1.56
3.72
04FAH
16
3
3
12.15
23.41
2.34
5.58
06F7H
16
3
4
11.35
27.13
3.13
7.44
08F4H
16
3
5
10.64
32.25
3.91
9.3
0AF1H
16
4
1
13.79
19.05
0.75
2
033CH
16
4
2
12.45
22.38
1.5
4
0538H
16
4
3
11.35
27.13
2.25
6
0734H
16
5
1
13.43
19.79
1.13
3.94
037BH
16
5
2
11.87
24.53
2.25
7.88
0576H
16
5
3
10.64
32.25
3.38
11.81
0771H
16
6
1
13.09
20.58
1.5
2.67
03BAH
16
6
2
11.35
27.13
3
5.34
05B4H
16
7
1
12.76
21.45
1.81
3.95
03F9H
16
7
2
10.86
30.34
3.63
7.91
05F2H
20
1
1
18.60
21.63
0.27
0.72
027FH
20
1
2
18.08
22.38
0.53
1.44
047EH
20
1
3
17.58
23.20
0.8
2.16
067DH
20
1
4
17.11
24.07
1.06
2.88
087CH
111
第 6 章 クロックモジュレータ
表 6.3-4 変調項目設定 (3 / 4)
F0 (MHz)
分解能
変調度
Fmin (MHz)
Fmax
(MHz)
+/- phase
skew 50
[periods]
+/- phase
skew Min/Max
[periods]
CMPR
20
1
5
16.66
25.01
1.33
3.59
0A7BH
20
1
6
16.24
26.02
1.59
4.31
0C7AH
20
1
7
15.84
27.13
1.86
5.03
0E79H
20
1
8
15.46
28.33
2.13
5.75
1078H
20
1
9
15.09
29.64
2.39
6.47
1277H
20
1
10
14.74
31.08
2.66
7.19
1476H
20
1
11
14.41
32.67
2.92
7.91
1675H
20
2
1
18.08
22.38
0.39
1.02
02BEH
20
2
2
17.11
24.07
0.78
2.03
04BCH
20
2
3
16.24
26.02
1.17
3.05
06BAH
20
2
4
15.46
28.33
1.56
4.06
08B8H
20
2
5
14.74
31.08
1.95
5.08
0AB6H
20
3
1
17.58
23.20
0.78
1.86
02FDH
20
3
2
16.24
26.02
1.56
3.72
04FAH
20
3
3
15.09
29.64
2.34
5.58
06F7H
20
4
1
17.11
24.07
0.75
2
033CH
20
4
2
15.46
28.33
1.5
4
0538H
112
20
4
3
14.09
34.42
2.25
6
0734H
20
5
1
16.66
25.01
1.13
3.94
037BH
20
5
2
14.74
31.08
2.25
7.88
0576H
20
6
1
16.24
26.02
1.5
2.67
03BAH
20
7
1
15.84
27.13
1.81
3.95
2BF5H
24
1
1
22.14
26.20
0.27
0.72
027FH
24
1
2
21.52
27.13
0.53
1.44
047EH
24
1
3
20.93
28.12
0.8
2.16
067DH
24
1
4
20.38
29.19
1.06
2.88
087CH
24
1
5
19.85
30.34
1.33
3.59
0A7BH
24
1
6
19.35
31.59
1.59
4.31
0C7AH
24
1
7
18.87
32.95
1.86
5.03
0E79H
24
2
1
21.52
27.13
0.39
1.02
02BEH
24
2
2
20.38
29.19
0.78
2.03
04BCH
24
2
3
19.35
31.59
1.17
3.05
06BAH
24
3
1
20.93
28.12
0.78
1.86
02FDH
24
3
2
19.35
31.59
1.56
3.72
04FAH
24
3
3
17.99
36.04
2.34
5.58
06F7H
24
4
1
20.38
29.19
0.75
2
033CH
24
5
1
19.85
30.34
1.13
3.94
037BH
24
6
1
19.35
31.59
1.5
2.67
03BAH
24
7
1
18.87
32.95
1.81
3.95
03F9H
25
1
1
23.01
27.36
0.27
0.72
027FH
25
1
2
22.37
28.33
0.53
1.44
047EH
25
1
3
21.76
29.37
0.8
2.16
067DH
第 6 章 クロックモジュレータ
表 6.3-4 変調項目設定 (4 / 4)
F0 (MHz)
分解能
変調度
Fmin (MHz)
Fmax
(MHz)
+/- phase
skew 50
[periods]
+/- phase
skew Min/Max
[periods]
CMPR
25
1
4
21.19
30.49
1.06
2.88
087CH
25
1
5
20.64
31.70
1.33
3.59
0A7BH
25
1
6
20.12
33.00
1.59
4.31
0C7AH
25
2
1
22.37
28.33
0.39
1.02
02BEH
25
2
2
21.19
30.49
0.78
2.03
04BCH
25
2
3
20.12
33.00
1.17
3.05
06BAH
25
3
1
21.76
29.37
0.78
1.86
02FDH
25
3
2
20.12
33.00
1.56
3.72
04FAH
25
4
1
21.19
30.49
0.75
2
033CH
25
5
1
20.64
31.70
1.13
3.94
037BH
25
6
1
20.12
33.00
1.5
2.67
03BAH
113
第 6 章 クロックモジュレータ
クロックモジュレータの使用上の注意
6.4
位相 , 周波数変調モードのスタート / ストップのシーケンスと周波数変調モードの変
調パラメータについて説明します。
■ 位相変調モードの推奨起動手順
start
1.
PLL を ON
2.
PLL 安定待ち時間待機 (「第 5 章 クロック」の MCM フラグに関する説明を参照し
てください )
3.
位相変調モードを許可 (PMOD=1)
クロックは直ちに位相変調される
... 動作中 ...
stop
4.
位相変調モードを不可 (PMOD=0)
5.
NOP 4 サイクル
6.
PLL 停止 , パワーダウンモードに移行など
<注意事項>
PLL 待ち時間が経過する前にはモジュレータを許可にしないでください。また , 変調動作
中に PLL を停止しないでください。
114
第 6 章 クロックモジュレータ
■ 周波数変調モードの推奨起動手順
start
1.
モジュレータをパワーダウンからパワーアップモード PDX=1 へ移行
2.
PLL を ON
3.
PLL 安定待ち時間待機 (「第 5 章 クロック」の MCM フラグに関する説明を参照し
てください )
同時にモジュレータが起動する
4.
CMPR レジスタを正確に設定する
5.
周波数変調モードを許可 FMOD=1
換算完了後 , クロックは非変調から変調クロックにスイッチし , FMODRUN は "1"
になります。
... 動作中 ...
stop
6.
周波数変換モードを不可 FMOD=0
7.
FMODRUN が "0" に変化するまで待つ
8.
パワーダウンモード PDX=0 に移行
9.
PLL 停止 , パワーダウンモードに移行など
<注意事項>
PLL 待ち時間が経過する前にはモジュレータを許可にしないでください。
また , 変調動作中に PLL を停止しないでください。
115
第 6 章 クロックモジュレータ
■ 周波数変調モードの変調パラメータ
EMI において , 特定分解を設定する特定変調パラメータの推奨値はありません。最適
な設定は , 実際のアプリケーションやシステム全体 , 要求値に依存します。
周波数変調モードでの最適な変調パラメータを決めるため , 下記のようにすることを
推奨します。
1.
必要パフォーマンスに基づく要求 PLL 周波数を決
める。
e.g. 16 MHz
2.
MCU の最大許可クロック周波数を定義する。
e.g. 32 MHz
3.
MCU の最大許可クロック周波数を最大値として ,
最高分解能と最高変調度での設定を選択する。
e.g. 分解能 :7, 変調度 :2, CMPR=05F2H
(Fmax= 30.34 MHz)
4.
EMI 評価を実行する。
5.
EMI 評価が要求を満たさない場合は , 同じ周波数
分解能で変調度を減少する
6.
116
( これにより , 100 MHz 以上の周波数帯域における
ノイズ低減効果は大きくなりますが , 100 MHz 以
下の周波数帯域におけるノイズ低減効果は小さく
なります )。
e.g. 分解能 :7, 変調度 :1, CMPR=03F9H
また , 周波数分解能を減少してください。変調度
が増加する
( これにより ,100 MHz 以上の周波数帯域における
ノイズ低減効果は小さくなりますが , 100 MHz 以
下の周波数帯域におけるノイズ低減効果は大きく
なります )。
または
e.g. 分解能 :5, 変調度 :3, CMPR=0771H
最適な設定が見つかるまで , 新しい設定で 3 を繰
り返す。
第 6 章 クロックモジュレータ
■ 推奨設定
表 6.4-1 に PLL クロック , 最大許容 MCU クロック周波数 , 推奨クロックモジュレータ
設定の例を示します。
表 6.4-1 PLL クロックの例
F0
PLL クロック
周波数
最大許容 MCU
クロック周波数
( データシートを参照 )
クロックモジュレータ設定
分解能
変調度
Fmax
CMPR
15 MHz
20 MHz
6
1
19.24 MHz
03BAH
15 MHz
25 MHz
7
1
20.05 MHz
03F9H
15 MHz
32 MHz
7
2
28.33 MHz
05F2H
16 MHz
20 MHz
5
1
19.79 MHz
037BH
16 MHz
25 MHz
7
1
21.45 MHz
03F9H
16 MHZ
32 MHz
7
2
30.34 MHz
05F2H
20 MHz
25 MHz
4
1
24.07 MHz
033CH
20 MHz
32 MHz
7
1
27.13 MHz
2BF5H
24 MHz
32 MHz
6
1
31.59 MHz
03BAH
25 MHz
32 MHz
5
1
31.70 MHz
037BH
117
第 6 章 クロックモジュレータ
118
第7章
リセット
リセットについて説明します。
7.1 リセットの概要
7.2 リセット要因と発振安定待ち時間
7.3 外部リセット端子
7.4 リセット動作
7.5 リセット要因ビット
7.6 リセットによる各端子の状態
119
第 7 章 リセット
7.1
リセットの概要
リセット要因が発生すると , CPU は直ちに現在実行中の処理を中断し , リセット解
除待ち状態になります。リセット解除後は , リセットベクタで示されたアドレスか
ら処理を開始します。
リセットには , 次の 4 つの要因があります。
• 電源投入 ( パワーオン )
• ウォッチドッグタイマのオーバフロー
• RST 端子からの外部リセット要求
• ソフトウェアリセット要求
■ リセット要因
リセットの要因について 表 7.1-1 に示します。
表 7.1-1 リセット要因
マシンクロック
ウォッチ
ドッグタイマ
発振安定待ち
電源投入時
メインクロック
(MCLK)
停止
あり
RST 端子への "L" レベル入力
メインクロック
(MCLK)
停止
なし
ソフトウェア
低消費電力モード制御レジス
タ (LPMCR) の内部リセット信
号発生ビット (RST) に "0" を書
き込む
メインクロック
(MCLK)
停止
なし
ウォッチ
ドッグタイマ
ウォッチドッグタイマオーバ
フロー
メインクロック
(MCLK)
停止
なし
リセット
パワーオン
外部端子
発生要因
MCLK: メインクロック ( 発振クロックの 2 分周クロック )
● パワーオンリセット
パワーオンリセットは , 電源投入時に発生するリセットです。この場合 , 発振安定待ち
時間は 218HCLK サイクルに固定されています (4MHz 原発振時 , 約 65.54 ms)。発振安
定待ち時間が経過した後 , リセット動作を行います。
120
第 7 章 リセット
● 外部リセット
外部リセットは , 外部リセット端子 (RST 端子 ) に "L" レベルを入力することでリセッ
トを発生します。RST 端子への "L" レベル入力時間は , 16 マシンサイクル (16/φ) 以上
必要です。外部リセットでは , 発振安定待ち時間を確保しません。
MB90390 シリーズでは , 外部リセットは最小 100 μs のメインタイムベースタイマモー
ドからのウェイクアップと最小 100 μs +発振子の発振時間+ 16 マシンサイクルのス
トップモードからのウェイクアップです。データシートの交流規格を参照してくださ
い。
<参考>
RST 端子によるリセット要求の発生の場合に限り , 書込み動作中 ( 転送系命令実行中 MOV
など) にリセット要因が発生した場合, 命令の終了後にリセット解除待ち状態になります。
そのため , 書込み中にリセットが入力されても , 正常に書込みを終了します。ただし , ス
トリング系命令 (MOVS など ) は , 指定したカウンタ分の転送が完了する前にリセットを
受け付けるので , すべてのデータが転送されることは保証されません。
● ソフトウェアリセット
ソフトウェアリセットは , 低消費電力モード制御レジスタ (LPMCR) の内部リセット信
号発生ビット (RST) に "0" を書き込むことによって内部リセットを発生します。ソフ
トウェアリセットでは発振安定待ち時間を確保しません。
● ウォッチドッグリセット
ウォッチドッグリセットは , ウォッチドッグタイマの起動後 , 定められた時間内に
ウォッチドッグタイマ制御レジスタ (WDTC) のウォッチドッグ制御ビット (WTE) に "0"
が書き込まれた場合 , ウォッチドッグタイマのオーバフローによってリセットを発生
します。ウォッチドッグリセットでは , 発振安定待ち時間の確保はクロック選択レジス
タ (CKSCR) で設定されます。
クロックの定義
HCLK
: 発振クロック周波数
MCLK
: メインクロック周波数
φ
: マシンクロック (CPU 動作クロック ) 周波数
1/ φ
: マシンサイクル (CPU 動作クロック周期 ) の詳細は , 「5.1 クロックの概
要」を参照してください。
121
第 7 章 リセット
7.2
リセット要因と発振安定待ち時間
MB90390 シリーズには 4 種類のリセット要因があり , リセット時の発振安定待ち時
間がリセット要因によってそれぞれ異なります。
■ リセット要因と発振安定待ち時間
表 7.2-1 にリセット要因と発振安定待ち時間について示します。
表 7.2-1 リセット要因と発振安定待ち時間
発振安定待ち時間
( ) 内は発振クロック周波数 4MHz 時
リセット
パワーオン
218/HCLK ( 約 65.54ms: 4MHz 時 )
ウォッチドッグ
なし
外部
なし : ただし , WS1, WS0 ビットは "11B" に初期化されます。
ソフトウェア
なし : ただし , WS1, WS0 ビットは "11B" に初期化されます。
HCLK: 発振クロック周波数
WS1, WS0: クロック選択レジスタ (CKSCR) の発振安定待ち時間選択ビット
図 7.2-1 に , パワーオンリセット時の発振安定待ち時間について示します。
図 7.2-1 パワーオンリセット時の発振安定待ち時間
Vcc
217/HCLK
217/HCLK
CLK
CPU動作
降圧回路の
安定待ち時間
HCLK: 発振クロック
発振安定
待ち時間
<注意事項>
セラミックや水晶などの振動子は , 発振を開始してから固有の振動数に安定するまで , 一
般に数 ms から 10ms または 20ms の発振安定待ち時間が必要です。そのため , 使用する
振動子に合わせた値を設定してください。詳細は , 「5.5 発振安定待ち時間」を参照して
ください。
■ 発振安定待ちリセット状態
電源投入時のリセット , ストップモードおよびサブクロックモード中のリセットに対
するリセット動作は , タイムベースタイマによって作られる発振安定待ち時間が経過
してからとなります。このとき , 外部リセット入力が解除されていない場合は , 外部リ
セット解除後にリセット動作を行います。
122
第 7 章 リセット
外部リセット端子
7.3
外部リセット端子 (RST 端子 ) はリセット入力専用端子で , "L" レベルの入力によっ
て内部リセットを発生します。MB90390 シリーズは , CPU 動作クロックに同期して
リセットされます。ただし , I/O ポート端子は非同期時の外部リセット端子 (RST 端
子 ) によって影響を受けます。
■ 外部リセット端子のブロックダイヤグラム
図 7.3-1 外部リセット端子のブロックダイヤグラム
RST
P-ch
Pin
N-ch
CPU 動作クロック
(HCLK 周波数を 2 分周した周波数による PLL 逓倍回路 )
CPU
同期回路
周辺機能
( リソース )
入力バッファ
I/O ポートまたは
外部端子
<注意事項>
書込み動作中のリセットによるメモリ破壊を防ぐため, RST端子入力の受付けをメモリが
破壊されないサイクルで行います。また , 内部回路の初期化にはクロックが必要です。特
に外部クロックで動作させる場合は , リセット入力時にクロックを入力する必要がありま
す。
123
第 7 章 リセット
7.4
リセット動作
リセットが解除されると , モード端子の設定でモードデータとリセットベクタの読
出し先を選択し , モードフェッチを行います。このモードフェッチで CPU の動作
モードとリセット動作終了後の実行開始アドレスが決定されます。電源投入時 , ス
トップモードからのリセットによる復帰では , 発振安定待ち時間が経過してから
モードフェッチを行います。
■ リセット動作の概要
図 7.4-1 に , リセット動作フローを示します。
図 7.4-1 リセット動作フロー
パワーオンリセット
ストップモード
外部リセット
ソフトウェアリセット
ウォッチドッグタイマリセット
リセット中
発振安定待ちリセット状態
モードフェッチ
(リセット動作)
モードデータ取込み
リセットベクタ取込み
通常動作
(RUN状態)
リセットベクタが示す
アドレスから命令コードを
取込み命令を実行
■ モード端子
モード端子 (MD0 ~ MD2) は , リセットベクタとモードデータの取込み方法を指定しま
す。リセットベクタとモードデータの取込みはリセットシーケンスで行います。モー
ド端子の詳細は , 「9.2 メモリアクセスモードのモード端子」を参照してください。
■ モードフェッチ
リセットが解除されると , CPU はリセットベクタとモードデータを CPU コア内の該当レ
ジスタ内にハードウェア転送します。リセットベクタとモードデータは , "FFFFDCH" ~
"FFFFDFH" の 4 バイトに割り当てられています。CPU は , リセット解除で直ちにこれら
のアドレスをバスに出力し , リセットベクタとモードデータを取り込みます。このモー
ドフェッチで , CPU はリセットベクタが指すアドレスから処理を開始します。
図 7.4-2 に , リセットベクタとモードデータの転送を示します。
124
第 7 章 リセット
図 7.4-2 リセットベクタとモードデータの転送
メモリ空間
F 2 MC-16LX CPUコア
モードレジスタ
FFFFDFH
モードデータ
FFFFDEH
リセットベクタビット23~ビット16
FFFFDDH
リセットベクタビット15~ビット8
FFFFDCH
リセットベクタビット7~ビット0
マイクロ ROM
リセットシーケンス
PCB
PC
● モードデータ ( アドレス :FFFFDFH)
モードレジスタの内容を変更できるのはリセット動作だけで , モードレジスタの設定
はリセット動作以降に有効となります。モードデータの詳細は , 「9.3 メモリアクセス
モードのモードデータ」を参照してください。
● リセットベクタ ( アドレス :FFFFDCH ~ FFFFDEH)
リセット動作終了後の実行開始アドレスを書き込んでおきます。この内容のアドレス
から実行を開始します。
<注意事項>
MB90F394H(A) では, リセットベクタとモードデータはハードワイヤードロジックによっ
て異なるあらかじめ決められた値を設定しています。
詳細については , 「28.9 フラッシュメモリにおけるリセットベクタアドレス」を参照し
てください。
125
第 7 章 リセット
7.5
リセット要因ビット
リセット発生要因は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すこと
で識別できます。
■ リセット要因ビット
図 7.5-1 に示すように , それぞれのリセット要因には対応したフリップフロップがあり
ます。これらの内容は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すと得
られます。リセット解除後にリセット発生要因を識別する必要がある場合には , ウォッ
チドッグタイマ制御レジスタ (WDTC) の読出し値をソフトウェアで処理した上で適切
なプログラムへ分岐するようにしてください。
図 7.5-1 リセット要因ビットブロックダイヤグラム
HST="H" 内部固定
( ハードウェアスタンバイなし ) RST 端子
パワーオン
発生検出
回路
ハードウェア
スタンバイ
解除検出回路
外部リセット
要求検出回路
RST ビットセット
定期的なクリアなし
RST="L"
ウォッチ ドッグ
タイマリセット
発生検出回路
LPMCR, RST
ビット書込み
検出回路
クリア
ウォ ッチドッグ
タイマ制御
レジスタ
S
(WDTC)
S
R
F/F
Q
R
S
Q
R
S
Q
R
Q
R
S
F/F
F/F
F/F
F/F
遅延回路
Q
ウォッチドッグ
タイマ
制御レジスタ
(WDTC) 読出し
内部データバス
S : セット
R : リセット
Q : 出力
F/F: フリップフロップ
■ リセット要因ビットとリセット要因の対応
ウォッチドッグタイマ制御レジスタ (WDTC) のリセット要因ビットの構成を , 図 7.5-2
に , リセット要因ビットの内容とリセット要因の対応を 表 7.5-1 に示します。詳細は ,
「12.1 ウォッチドッグタイマの概要」を参照してください。
126
第 7 章 リセット
図 7.5-2 リセット要因ビットの構成 ( ウォッチドッグタイマ制御レジスタ )
ウォッチドッグタイマ制御レジスタ (WDTC)
アドレス
0000A8H
bit15
bit8
(TBTC)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PONR
-
WRST
ERST
SRST
WTE
WT1
WT0
R
-
R
R
R
W
W
W
初期値
X-XXXXXXB
R/W : リード / ライト可能
X:
不定
表 7.5-1 リセット要因ビットの内容とリセット要因の対応
リセット要因
PONR
WRST
ERST
SRST
パワーオンリセット要求の発生
1
X
X
X
ウォッチドッグタイマオーバ
フローによるリセット要求の発生
△
1
△
△
RST 端子からの外部リセット要求
△
△
1
△
ソフトウェアリセット要求の発生
△
△
△
1
△ : 前の状態を保持
X : 不定
■ リセット要因ビットの注意事項
● 複数のリセット要因が発生した場合
リセット要因が複数発生する場合は , ウォッチドッグタイマ制御レジスタ (WDTC) の
対応するそれぞれのリセット要因ビットが "1" にセットされます。例えば , RST 端子か
らの外部リセット要求の発生とウォッチドッグタイマのオーバフローが同時に発生し
た場合 , ERST ビットと WRST ビットの両方が "1" になります。
● パワーオンリセットの場合
パワーオンリセットの場合には , PONR ビットが "1" にセットされますが , PONR ビッ
ト以外のリセット要因ビットは不定となります。このため , PONR ビットが "1" の場合
は, PONRビット以外のリセット要因ビットを無視するようにソフトウェアを作成して
ください。
● リセット要因ビットのクリア
リセット要因ビットは , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出したと
きのみクリアされます。それぞれのリセット要因に対応するビットに生じたフラグは ,
その後 , ほかの要因でリセットが発生してもクリアされず "1" のままとなります。
<注意事項>
パワーオンリセットが発生しない条件で電源を立ち上げた場合には, WDTCレジスタの値
は保証されません。
127
第 7 章 リセット
7.6
リセットによる各端子の状態
リセットによる各端子の状態について説明します。
■ リセット中の端子の状態
リセット中の端子の状態は , モード端子 (MD2 ~ MD0) の設定によって決定されます。
● 内部ベクタモード設定時 (MD2 ~ MD0=011B)
I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し
先は内部 ROM になります。
■ モードデータ読出し後の端子の状態
モードデータ読出し後の端子の状態は , モードデータ (M1, M0=00B) によって決定され
ます。
● シングルチップモード選択時 (M1, M0=00B)
I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し
先は内部 ROM になります。
<注意事項>
リセット要因が発生したときにハイインピーダンスとなる端子は , その端子に接続した機
器が誤動作しないように配慮してください。
128
第8章
低消費電力モード
低消費電力モードについて説明します。
8.1 低消費電力モードの概要
8.2 低消費電力制御回路のブロックダイヤグラム
8.3 低消費電力モード制御レジスタ (LPMCR)
8.4 CPU 間欠動作モード
8.5 スタンバイモード
8.6 状態遷移図
8.7 スタンバイモードとリセット時の端子状態
8.8 低消費電力モード使用上の注意
129
第 8 章 低消費電力モード
低消費電力モードの概要
8.1
動作クロックの選択とクロックの動作制御による次のような CPU 動作モードを備え
ています。
• クロックモード (PLL クロック , メインクロックの各モード )
• CPU 間欠動作モード (PLL クロック間欠動作 , メインクロック間欠動作の各モード )
• スタンバイモード ( スリープ , タイムベースタイマ , ストップの各モード )
■ CPU 動作モードと消費電流
CPU 動作モードと消費電流の関係を 図 8.1-1 に示します。
図 8.1-1 CPU 動作モードと消費電流
消費電流
数十mA
CPU
動作モード
PLLクロックモード
8逓倍クロック
6逓倍クロック
4逓倍クロック
3逓倍クロック
2逓倍クロック
1逓倍クロック
PLLクロック間欠動作モード
8逓倍クロック
6逓倍クロック
4逓倍クロック
3逓倍クロック
2逓倍クロック
1逓倍クロック
メインクロックモード(1/2クロックモード)
メインクロック間欠動作モード
数mA
スタンバイモード
スリープモード
タイムベースタイマモード
数μA
低消費電力モード
ストップモード
(注意事項) この図は,各種モードのイメージを示したもので,実際の消費電流とは異なる部分があります。
130
第 8 章 低消費電力モード
■ クロックモード
● PLL クロックモード
発振クロック (HCLK) の PLL 逓倍クロックで CPU および周辺機能を動作させるモード
です。
● メインクロックモード
発振クロック (HCLK) の 2 分周クロックで CPU および周辺機能を動作させるモードで
す。メインクロックモードでは , PLL 逓倍回路が停止します。
<参考>
クロックモードについては , 「5.4 クロックモード」を参照してください。
■ CPU 間欠動作モード
周辺機能には高速クロックを供給したまま CPU を間欠動作させ , 消費電力を低減する
モードです。CPU 間欠動作モードは , CPU がレジスタ , 内蔵メモリ , 周辺機能および外
部アクセスを行う場合 , CPU にだけ間欠クロックを入力するモードです。
■ スタンバイモード
スタンバイモードは, 低消費電力制御回路によるCPUへのクロックの供給停止 (スリー
プモード ) や , CPU と周辺機能へのクロックの供給停止 ( タイムベースタイマモード ) ,
または発振クロックの停止 ( ストップモード ) によって消費電力を低減します。
● PLL スリープモード
PLL スリープモードは , PLL クロックモードにおいて CPU の動作クロックを停止させ
るモードで , CPU 以外は PLL クロックで動作します。
● メインスリープモード
メインスリープモードは , メインクロックモードにおいて CPU の動作クロックを停止
させるモードで , CPU 以外はメインクロックで動作します。
● タイムベースタイマモード
タイムベースタイマモードは発振クロックとタイムベースタイマ以外の動作を停止さ
せるモードで , タイムベースタイマと時計タイマ以外の機能が停止します。
メインタイムベースタイマモードと PLL タイムベースタイマモードは , ステータスが
異なることに注意してください。状態は , CKSCR の MCS ビットで選択されたクロッ
クによります。図 8.6-1 を参照してください。
PLL タイムベースタイマモードでは , 消費電力が著しく高くなります。詳細は , データ
シートを参照してください。
131
第 8 章 低消費電力モード
● ストップモード
ストップモードは原発振を停止させるモードで , すべての機能が停止します。
<注意事項>
ストップモードでは発振クロックが停止するため , 最も低消費電力でデータを保持できま
す。
クロックモードを切り換えた場合 , 切換えが完了するまではほかのクロックモードおよび
低消費電力モードへは切り換えないようにしてください。
切換えの完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照して確認してくだ
さい。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換え
を行った場合 , 切り換わらない場合があります。
132
第 8 章 低消費電力モード
低消費電力制御回路のブロックダイヤグラム
8.2
低消費電力制御回路は , 次の 7 つのブロックで構成されています。
• CPU 間欠動作セレクタ
• スタンバイ制御回路
• CPU クロック制御回路
• 周辺クロック制御回路
• 端子ハイインピーダンス制御回路
• 内部リセット発生回路
• 低消費電力モード制御レジスタ (LPMCR)
■ 低消費電力制御回路のブロックダイヤグラム
図 8.2-1 に , 低消費電力制御回路のブロックダイヤグラムを示します。
図 8.2-1 低消費電力制御回路のブロックダイヤグラム
低消費電力モード制御レジスタ (LPMCR)
STP SLP SPL RST TMD CG1 CG0
RST
Pin
間欠
サイクル
セレクタ
CPU 間欠動作
セレクタ
端子ハイインピー
ダンス制御回路
端子ハイインピー
ダンス制御
内部リセット
発生回路
内部リセット
CPU クロック
制御回路
CPU クロック
ストップ ,
スリープ信号
スタンバイ
制御回路
ストップ信号
割込み解除
周辺クロック
制御回路
発振安定待ち時間クリア
マシンクロック
発振安定
待ち時間
セレクタ
クロック
2
CS2
セレクタ
PLL 制御
レジスタ
(PSCCR):bit8
周辺クロック
2
PLL 逓倍回路
-
MCM WS1 WS0
-
MCS CS1 CS0
クロック選択レジスタ (CKSCR)
メインクロック
X0
Pin
2 分周
HCLK
X1
Pin
システムクロック
発生回路
1024
分周
2 分周
4 分周
4 分周
4 分周
2 分周
タイムベースタイマ
ウォッチドッグタイマ
133
第 8 章 低消費電力モード
● CPU 間欠動作セレクタ
CPU 間欠動作モードにおける一時停止クロック数を選択します。
● スタンバイ制御回路
CPU クロック制御回路および周辺クロック制御回路を制御し , 低消費電力モードへの
移行および解除を行います。
● CPU クロック制御回路
CPU および周辺クロック制御回路周辺機能に供給するクロックを制御する回路です。
● 周辺クロック制御回路
周辺機能に供給するクロックを制御する回路です。
● 端子ハイインピーダンス制御回路
タイムベースタイマモードおよびストップモードにおいて , 外部端子をハイインピー
ダンスにする回路です。プルアップオプションが選択された端子に対しては , ストップ
モードではプルアップ抵抗を切り離します。
● 内部リセット発生回路
内部リセット信号を発生させる回路です。
● 低消費電力モード制御レジスタ (LPMCR)
スタンバイモードへの移行 / 解除および CPU 間欠動作機能の設定などを行うレジスタ
です。
134
第 8 章 低消費電力モード
低消費電力モード制御レジスタ (LPMCR)
8.3
低消費電力モード制御レジスタ (LPMCR) は , 低消費電力モードへの移行 / 解除およ
び CPU 間欠動作モードにおける CPU クロック一時停止サイクル数の設定などを行
うレジスタです。
■ 低消費電力モード制御レジスタ (LPMCR)
図 8.3-1 に , 低消費電力モード制御レジスタ (LPMCR) の構成を , 表 8.3-1 に各ビットの
機能を示します。
図 8.3-1 低消費電力モード制御レジスタ (LPMCR) の構成
アドレス bit15
0000A0H
bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
(CKSCR)
STP
SLP
SPL
RST
TMD
CG1
CG0
RESV
W
W
R/W
W
R/W
R/W
R/W
R/W
初期値
00011000B
予約ビット
RESV
このビットへは必ず"0"を書き込んでください。
CG1 CG0
CPU一時停止クロック数選択ビット
0
0
0
1
8クロック(CPUクロック:周辺クロック=1:約3~4)
1
0
16クロック(CPUクロック:周辺クロック=1:約5~6)
1
1
32クロック(CPUクロック:周辺クロック=1:約9~10)
0クロック(CPUクロック=周辺クロック)
タイムベースタイマモードビット
TMD
0
タイムベースタイマモードに移行
1
変化なし,ほかへの影響なし
RST
内部リセット信号発生ビット
0
3マシンサイクルの内部リセット信号を発生
1
変化なし,ほかへの影響なし
SPL
0
保持
1
ハイインピーダンス
SLP
R/W
W
:リード/ライト可能
:ライトオンリ
:初期値
端子状態指定ビット
(タイムベースタイマ, ストップモード時)
スリープモードビット
0
変化なし,ほかへの影響なし
1
スリープモードに移行
STP
0
1
ストップモードビット
変化なし,ほかへの影響なし
ストップモードに移行
135
第 8 章 低消費電力モード
表 8.3-1 低消費電力モード制御レジスタ (LPMCR) の各ビットの機能説明
ビット名
機
能
bit7
STP:
ストップモード
ビット
•
•
•
•
•
ストップモードへの移行を指示するビットです。
このビットに "1" を書き込むとストップモードへ移行します。
このビットに "0" を書き込んでも動作に影響しません。
リセット , または割込み要求発生で "0" にクリアされます。
このビットを読み出すと , 常に "0" が読み出されます。
bit6
SLP:
スリープモード
ビット
•
•
•
•
•
スリープモードへの移行を指示するビットです。
このビットに "1" を書き込むとスリープモードに移行します。
このビットに "0" を書き込んでも動作に影響しません。
リセット , または割込み要求発生で "0" にクリアされます。
このビットを読み出すと , 常に "0" が読み出されます。
bit5
SPL:
端子状態指定
ビット ( タイム
ベースタイマ・
ストップモード
時)
• このビットはタイムベースタイマモード , またはストップモードの場合
のみ有効です。
• このビットが "0" の場合 , 外部端子のレベルを保持します。
• このビットが "1" の場合 , 外部端子をハイインピーダンスにします。
• リセットで "0" に初期化されます。
bit4
RST:
内部リセット信
号発生ビット
• このビットに "0" を書き込むと 3 マシンサイクルの内部リセット信号を
発生します。
• このビットに "1" を書き込んでも動作に影響しません。
• このビットを読み出すと , 常に "1" が読み出されます。
bit3
TMD:
タイムベースタ
イマモードビッ
ト
• タイムベースタイマモードへの移行を指示するビットです。
• メインクロックモード , または PLL クロックモードにおいて , このビッ
トに "0" を書き込むことにより , タイムベースタイマモードに移行しま
す。
• リセットまたは割込み要求発生で "1" に初期化されます。
• このビットを読み出すと , 常に "1" が読み出されます。
bit2,
bit1
CG1, CG0:
CPU クロック
一時停止サイク
ル数選択ビット
• CPU 間欠動作機能の CPU クロックの一時停止サイクル数を設定する
ビットです。
• 1 命令ごとに指定サイクル数 CPU クロック供給を停止します。
• 4 種類のクロック数から選択できます。
• リセットで "00B" に初期化されます。
bit0
RESV:
予約ビット
このビットには必ず "0" を書き込んでください。
136
第 8 章 低消費電力モード
■ 低消費電力モード制御レジスタへのアクセス
低消費電力モード制御レジスタへの書込みで , 低消費電力モード ( ストップモード , ス
リープモード , タイムベースタイマモード ) へ遷移しますが , 低消費電力モードへの遷
移に使用する命令は 表 8.3-2 の命令を使用してください。
表 8.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記
内の命令列
を配置してください。
MOV LPMCR, #H’XX
NOP
NOP
JMP $+3
MOV A, #H’10
; 表 8.3-2 の低消費電力モード遷移命令
; 次の命令へのジャンプ
; 任意の命令
内の命令列以外が配置されると低消費電力モード解除後の動作は保証されません。
C 言語を使用して低消費電力モード制御レジスタをアクセスする場合は , 「8.8 低消費
電力モード使用上の注意」の「■スタンバイモード遷移のための低消費電力モード制
御レジスタ (LPMCR) へアクセスする際の注意事項」を参照してください。
表 8.3-2 の命令以外の命令で低消費電力モードへ遷移した場合には , 動作保証ができま
せん。表 8.3-1 に示す以外の機能を制御する場合には , どの命令を使用してもかまいま
せん。
ワード長で低消費電力モード制御レジスタへ書き込む場合には偶数アドレスで書き込
むようにしてください。奇数アドレスで書込みを行うと , 誤動作の原因となる場合があ
ります。
● STP, SLP, TMD ビットの優先順位
ストップモード要求とスリープモード要求およびタイムベースタイマモード要求を同
時に行った場合は , 次の優先順位で要求を処理します。
ストップモード要求 > タイムベースタイマモード要求 > スリープモード要求
<注意事項>
ストップモード , またはタイムベースタイマモードの周辺機能とポートが端子を共有して
いるときに端子をハイインピーダンスにするには , 周辺機能の出力を禁止し , 低消費電力
モード制御レジスタ (LPMCR) の STP ビットを "1" に設定 , もしくは TMD ビットを "0" に
設定する。
以下の端子に適用されます :
P03/IN3/OUT6, P05/IN5/OUT7, P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/
OUT4, P13/OUT5, P15/TOT0, P16/SGO, P17/SGA, P20/TX1, P31/TX0, P33/TOT1, P34/
SOT0, P35/SCK0
137
第 8 章 低消費電力モード
表 8.3-2 低消費電力モードへ遷移する場合に使用する命令一覧
MOV io, #imm8
MOV dir, #imm8
MOV eam,#imm8
MOV eam, Ri
MOV io, A
MOV dir, A
MOV addr16, A
MOV eam, A
MOVW io, #imm16
MOVW dir, #imm16
MOVW eam, #imm16
MOVW eam, RWi
MOVW io, A
MOVW dir, A
MOVW addr16, A
MOVW eam, A
SETB io: bp
SETB dir: bp
SETB addr16: bp
CLRB io: bp
CLRB dir: bp
CLRB addr16: bp
MOV @RLi+disp8, A
MOVW @RLi+disp8, A
138
第 8 章 低消費電力モード
8.4
CPU 間欠動作モード
CPU 間欠動作モードは , 外部バスや周辺機能を高速動作させたまま CPU を間欠動作
させることで , 消費電力を低減するモードです。
■ CPU 間欠動作モード
CPU 間欠動作モードは , レジスタ , 内蔵メモリ (ROM, RAM), I/O, 周辺機能および外部
バスアクセスを行う場合 , CPU に供給するクロックを 1 命令実行ごとに一定期間停止
させ , 内部バスサイクルの起動を遅らせるモードです。周辺機能に高速の周辺クロック
を供給したまま CPU の実行速度を下げると , 低消費電力で処理できます。
低消費電力モード制御レジスタ (LPMCR の CG1, CG0) で , CPU に供給するクロックの
一時停止サイクル数を選択します。
外部バス動作そのものは , 周辺機能と同じクロックを使用します。
CPU 間欠動作モードを使用した場合の命令実行時間の算出は , レジスタ , 内蔵メモリ ,
内蔵周辺機能および外部バスアクセスを行う場合の命令実行回数に一時停止サイクル
数を掛けた補正値を通常の実行時間に加えることで求めることができます。図 8.4-1
に CPU 間欠動作モード時の動作クロックを示します。
図 8.4-1 CPU 間欠動作時のクロック
周辺クロック
CPUクロック
一時停止サイクル
1命令実行
サイクル
内部バス起動
139
第 8 章 低消費電力モード
スタンバイモード
8.5
スタンバイモードには , スリープ (PLL スリープ , メインスリープ ) , ストップの各
モードがあります。
■ スタンバイモードの動作状態
表 8.5-1 に , スタンバイモードの動作状態を示します。
表 8.5-1 スタンバイモードの動作状態
スタンバイモード
スリープ
モード
タイム
ベース
タイマ
モード
ストップ
モード
移行条件
PLL
スリープモード
MCS=0
SLP=1
メインスリープ
モード
MCS=1
SLP=1
タイムベース
タイマモード
(SPL=0)
TMD=0
メイン
クロック
マシン
クロック
動作
動作
TMD=0
ストップモード
(SPL=0)
STP=1
ストップモード
(SPL=1)
STP=1
周辺
端子
動作
動作
解除方法
保持
動作
タイムベース
タイマモード
(SPL=1)
CPU
停止
外部リセット
または
割込み
停止 *
Hi-Z
停止
保持
停止
停止
Hi-Z
*
: タイムベースタイマ , 時計タイマは動作します。
SPL : 低消費電力モード制御レジスタ (LPMCR) の端子状態指定ビット
SLP : 低消費電力モード制御レジスタ (LPMCR) のスリープビット
STP : 低消費電力モード制御レジスタ (LPMCR) の時計ストップビット
TMD : 低消費電力モード制御レジスタ (LPMCR) のタイムベースタイマモードビット
MCS : クロック選択レジスタ (CKSCR) のマシンクロック選択ビット
Hi-Z : ハイインピーダンス
<注意事項>
ストップモード またはタイムベースタイマモードの周辺機能とポートが端子を共有して
いるときに , 端子をハイインピーダンスにするには周辺機能の出力を禁止し , 低消費電力
モード制御レジスタ (LPMCR) の STP ビットを "1" に設定 , もしくは TMD ビットを "0" に
設定してください。
以下の端子に適用されます :
P03/IN3/OUT6, P05/IN5/OUT7, P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/
OUT4, P13/OUT5, P15/TOT0, P16/SGO, P17/SGA, P20/TX1, P31/TX0, P33/TOT1, P34/
SOT0, P35/SCK0
140
第 8 章 低消費電力モード
スリープモード
8.5.1
スリープモードは CPU の動作クロックを停止させるモードで , CPU 以外は動作を続
行します。低消費電力モード制御レジスタ (LPMCR) でスリープモードへの移行を指
示すると , PLL クロックモードを設定している場合は PLL スリープモードへ移行し ,
メインクロックモードを設定している場合はメインスリープモードへ移行します。
■ スリープモードへの移行
低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1", TMD ビットに "1", STP
ビットに "0" を書き込むとスリープモードに移行します。スリープモードに移行する
場合 , クロック選択レジスタ (CKSCR) が MCS=0 であれば PLL スリープモードに ,
MCS=1 であればメインスリープモードに移行します。
<注意事項>
SLP ビットと STP ビットに同時に "1" を書き込むと , STP ビットを優先し , ストップモー
ドへ移行します。SLP ビットに "1", TMD ビットに "0" を同時に書き込むと , TMD ビット
を優先し , タイムベースタイマモードに移行します。
● データ保持機能
スリープモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し
ます。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1" を書き込んだ場合に , 割
込み要求が発生している場合はスリープモードに移行しません。そのため , CPU は割
込みを受け付けない状態では次の命令を実行し , 受け付ける状態であれば即座に割込
み処理ルーチンへ分岐します。
● 端子状態
スリープモード中は , 直前の状態を保持します。
141
第 8 章 低消費電力モード
■ スリープモードの解除
低消費電力制御回路は , リセット入力 , または割込みの発生によってスリープモードを
解除します。
● リセットによる復帰
リセットによりメインクロックモードに初期化されます。
● 割込みによる復帰
スリープモード中に周辺回路などから割込みレベルが 7 より高い割込み要求が発生す
るとスリープモードを解除します。スリープモードの解除後は , 通常の割込み処理と同
じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレ
ベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) の設定によって , 割込みが
受け付けられる場合は , CPU は割込み処理を実行します。割込みが受け付けられない
場合は , スリープモードを指定した命令の次の命令から処理を続行します。
図 8.5-1 に , 割込み発生によるスリープモードの解除を示します。
図 8.5-1 割込み発生によるスリープモードの解除
周辺機能の割込み
イネーブルフラグ設定
INT発生(IL<7)
NO
スリープ解除しない
スリープ解除しない
YES
I=0
YES
次の命令実行
スリープ解除する
NO
ILM<IL
YES
次の命令実行
NO
割込み実行
<注意事項>
割込み処理を実行する場合 , 通常はスリープモードを指定した命令の次の命令を実行した
後に割込み処理に移行します。ただし , スリープモードへの移行と外部バスホールド要求
の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行することがあり
ます。
142
第 8 章 低消費電力モード
8.5.2
タイムベースタイマモード
タイムベースタイマモードは原発振とタイムベースタイマ , 時計タイマ以外の動作
を停止させるモードで , タイムベースタイマと時計タイマ以外のすべての機能が停
止します。
■ タイムベースタイマモードへの移行
PLL クロックモード , またはメインクロックモードの場合に低消費電力モード制御レ
ジスタ (LPMCR) の TMD ビットに "0" を書き込むと , タイムベースタイマモードに移
行します。
メインタイムベースタイマモードと PLL タイマベースタイマモードとの状態の差に注
意してください。
結果としての状態は , CKSCR の MCS ビットにより選択されたクロッ
クに依存します。図 8.6-1 を参照してください。消費電力は PLL タイマベースタイマ
モードで顕著に高くなります。規定値はデータシートを参照してください。
● データ保持機能
タイムベースタイマモードでは , アキュムレータなどの専用レジスタと内部 RAM の内
容を保持します。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込んだ場合に , 割
込み要求が発生しているときはタイムベースタイマモードに移行しません。
● 端子状態
タイムベースタイマモード中の外部端子を直前の状態に保持するか , ハイインピーダ
ンス状態にするかを低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御で
きます。
143
第 8 章 低消費電力モード
■ タイムベースタイマモードの解除
低消費電力制御回路は , リセット入力 , または割込みの発生でタイムベースタイマモー
ドを解除します。
● リセットによる復帰
リセットによりメインクロックモードに初期化されます。
<注意事項>
タイマベースタイマモード中に必ず RST 信号を 100 μs 以上入れてください。
● 割込みによる復帰
割込みレベルが 7 より高い割込み要求が発生すると ( 割込み制御レジスタ ICR:IL2, IL1,
IL0 が "111B" 以外 ) , 低消費電力制御回路はタイムベースタイマモードを解除します。
タイムベースタイマモードの解除後は , 通常の割込み処理と同じ扱いとなります。コン
ディションコードレジスタ(CCR)のIフラグ, インタラプトレベルマスクレジスタ(ILM)
および割込み制御レジスタ (ICR) の設定により割込みが受け付けられる場合は , 割込み
処理を実行します。割込みが受け付けられない場合は , タイムベースタイマモードに入
る前の次の命令から処理を続行します。
<注意事項>
割込み処理を実行する場合 , 通常はタイムベースタイマモードを指定した命令の次の命令
を実行した後に割込み処理に移行します。ただし , タイムベースタイマモードへの移行と
外部バスホールド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理
に移行することがあります。
割込みによるメインタイムベースタイマモードからの起動は , 最大 40 μs の内部の遅延と
なります。タイムベースタイマモードの周辺機能とポートが端子を共有しているときに端
子をハイインピーダンスにするには , 周辺機能の出力を禁止し , 低消費電力モード制御レ
ジスタ (LPMCR) の TMD ビットを "0" に設定してください。
以下の端子に適用されます :
P03/IN3/OUT6, P05/IN5/OUT7, P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/
OUT4, P13/OUT5, P15/TOT0, P16/SGO, P17/SGA, P20/TX1, P31/TX0, P33/TOT1, P34/
SOT0, P35/SCK0
144
第 8 章 低消費電力モード
ストップモード
8.5.3
ストップモードは原発振を停止させるモードで , すべての機能が停止します。した
がって , 最も低消費電力でデータを保持できます。
■ ストップモードへの移行
低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を書き込むとストップ
モードに移行します。
● データ保持機能
ストップモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し
ます。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を設定した場合に , 割込
み要求が発生しているときはストップモードに移行しません。
● 端子状態の設定
ストップモード中の外部端子を直前の状態に保持するか , ハイインピーダンス状態に
するかを低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。
■ ストップモードの解除
低消費電力制御回路は , リセット入力 , または割込みの発生によりストップモードを解
除します。動作クロックの発振はストップモードからの復帰前に停止するので, 低消費
電力制御回路は発振安定待ち状態になり , その後 , ストップモードを解除します。
● リセットによる復帰
リセット要因によるストップモード解除の場合は , ストップモードを解除した上で発
振安定待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過後
に実行されます。
<注意事項>
RST 信号はストップモードで少なくとも 100 μs +発振子の発振時間+ 16 マシンサイクルを
アサートされる必要があります。データシートの交流規格を参照してください。
● 割込みによる復帰
ストップモード中に外部割込みから割込みレベルが 7 より高い割込み要求が発生すると
( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ) , 低消費電力制御回路はストップ
モードを解除します。ストップモードの解除後は , クロック選択レジスタ (CKSCR) の
WS1, WS0ビットで指定されたメインクロックの発振安定待ち時間を経過した後で, 通常
の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ ,
インタラプトレベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) を設定して
割込みが受け付けられる場合は割込み処理を実行します。割込みが受け付けられない場
合は , ストップモードに入る前の次の命令から処理を続行します。
145
第 8 章 低消費電力モード
<注意事項>
割込み処理を実行する場合 , 通常はストップモードを指定した命令の次の命令を実行した
後に割込み処理に移行します。ただし , ストップモードへの移行と外部バスホールド要求
の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行することがあり
ます。
図 8.5-2 に , ストップモードからの復帰動作を示します。
図 8.5-2 ストップモードの解除 ( 外部リセット )
RST端子
ストップモード
メインクロック
発振安定待ち
発振中
発振中
PLLクロック
停止中
停止中
CPUクロック
メインクロック
CPU動作
停止中
リセットシーケンス
処理
リセット解除
ストップモード解除
<注意事項>
• ストップモードの周辺機能やポートによって端子が共用されるときに端子をハイイン
ピーダンスに設定するには , 周辺機能の出力を禁止し , 低消費電力モード制御レジスタ
(LPMCR) の STP ビットを "1" に設定してください。
これは以下の端子に適用します。
P03/IN3/OUT6, P05/IN5/OUT7, P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P12/
OUT4, P13/OUT5, P15/TOT0, P16/SGO, P17/SGA, P20/TX1, P31/TX0, P33/TOT1,
P34/SOT0, P35/SCK0
• PLL ストップモードでは , メインクロックと PLL 乗法回路が停止します。
クロック選択レジスタの発振安定待ち時間選択ビット(CKSCR:WS1, WS0)で指定され
た値により , メインクロック , PLL クロックの発振安定待ち時間は同時にカウントされ
ます。しかし , PLL クロック発振安定待ち時間は , 214/HCLK 以上必要になります。ク
ロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) を "10B" また
は "11B" に設定してください。
146
第 8 章 低消費電力モード
8.6
状態遷移図
図 8.6-1 に , MB90390 シリーズの S 動作状態の遷移図と , 遷移条件を示します。
■ 状態遷移図
図 8.6-1 状態遷移図
外部リセット ,
ウォッチドッグタイマリセット ,
ソフトウェアリセット
電源投入
リセット
パワーオンリセット
発振安定待ち時間終了
MCS=0
PLL クロック
モード
メインクロック
モード
MCS=1
SLP=1
割込み
SLP=1
PLL スリープ
モード
メインスリープ
モード
TMD=0
割込み
TMD=0
STP=1
メインストップ
割込み
割込み
PLL タイムベース
タイマモード
メインタイムベース
タイマモード
STP=1
割込み
発振安定待ち時間終了
メインクロック
発振安定待ち
PLL ストップ
モード
割込み
発振安定待ち時間終了
PLL クロック
発振安定待ち
147
第 8 章 低消費電力モード
■ 低消費電力モードの動作状態
表 8.6-1 に , 低消費電力モードの動作状態を示します。
表 8.6-1 低消費電力モードの動作状態
動作状態
メイン
クロック
PLL
クロック
CPU
周辺
時計
タイムベース
タイマ
動作
動作
クロック
ソース
動作
PLL
動作
PLL スリープ
動作
動作
PLL タイムベース
タイマ
PLL
クロック
停止
PLL ストップ
停止
停止
PLL 発振安定待ち
動作
動作
メイン
停止
停止
停止
動作
動作
動作
動作
動作
動作
メインスリープ
動作
メインタイムベース
タイマ
停止
メインストップ
停止
メイン発振安定待ち
動作
パワーオンリセット
停止
停止
停止
動作
動作
動作 *
動作 *
停止
動作
リセット
メイン
クロック
停止
停止
動作
停止
メイン
クロック
*: リセットフェーズ中では , クロックとほぼ同じ速度で両タイマを駆動できます ( パワーオン直後は別 )。
リセットフェーズの終わりで , タイマ値は初期値にリセットされます。
148
第 8 章 低消費電力モード
スタンバイモードとリセット時の端子状態
8.7
シングルチップモード時のスタンバイモードとリセット時の各入出力端子の状態を
示します。
■ 入出力端子の状態 ( シングルチップモード )
表 8.7-1 にシングルチップモード時の入出力端子の状態を示します。
表 8.7-1 入出力端子の状態 ( シングルチップモード )
スタンバイモード
端子名
ストップ / タイムベースタイマ時
リセット時
スリープ時
SPL = 0
SPL = 1
P00 ~ P07
P10 ~ P17
P20, P21
P30 ~ P37
P40 ~ P45
P50 ~ P57
P60 ~ P67
P70 ~ P77
入力遮断 *4/
直前の状態を
保持 *2
入力遮断 *4/
出力 Hi-Z*5
入力可能 *1/
直前の状態を
保持 *2
入力可能 *1/
出力 Hi-Z*5
影響なし
入力不可 *3/
出力 Hi-Z*5
P80 ~ P87
P90 ~ P97
PA0 ~ PA7
PB0 ~ PB7
P46, P47,
P22 ~ P27
*1: ENIR レジスタの関連するビットが "1" のときにのみ , これらの端子はストップモード / タイム
ベースタイマモード時で入力可能です。
*2: 各スタンバイモードになる直前に出力していた状態をそのまま出力 , または入力であれば入力不可を意味
します。
*3: 入力不可とは , 入力 端子に接地したゲートは機能しているが内部回路が機能していないので , 入力信号内
部回路で受け付けられない状態を意味します。
*4: 入力遮断状態では入力はマスクされ ,"L" レベルが内部に伝わります。
*5: 出力 Hi-Z は端子駆動用トランジスタを駆動禁止状態にして , 端子をハイインピーダンスにすることを意味
します。
149
第 8 章 低消費電力モード
8.8
低消費電力モード使用上の注意
低消費電力モードを使用する場合には , 次の 7 つの内容に関して注意が必要です。
• スタンバイモードへの移行と割込み
• スタンバイモード移行時の注意について
• スタンバイモードの割込みによる解除
• ストップモード解除時
• 発振安定待ち時間
• クロックモードの切換え
• スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアク
セスする際の注意事項
■ スタンバイモードへの移行と割込み
周辺機能から CPU に対して割込み要求が発生していると , 低消費電力モード制御レジ
スタ (LPMCR:STP=1, SLP=1) または (LPMCR:TMD=0) としても無視されるため , 各ス
タンバイモードへは移行しません (割込み処理後にも , スタンバイモードへの移行はし
ません ) 。この場合 , 割込みレベルが 7 より高ければ , 割込み要求が CPU に受け付け
られるかどうかには関係しません。また , CPU が割込み処理中であっても , その割込み
要求フラグビットがクリアされており , ほかに割込み要求がなければスタンバイモー
ドへ移行できます。
■ スタンバイモード移行時の注意について
ストップモードもしくはタイムベースタイマモードの周辺機能とポートが端子を共有
しているときに端子をハイインピーダンスにするには , 以下の項目を実行してくださ
い。
• 周辺機能の出力を禁止する 。
• 低消費電力モード制御レジスタ (LPMCR) では , SPL ビットを "1", STP ビットを "1"
もしくは TMD ビットを "0" に設定する。
■ スタンバイモードの割込みによる解除
スリープ , タイムベースタイマおよびストップモード中に , 周辺機能などから割込みレ
ベルが 7 より高い割込み要求が発生するとスタンバイモードは解除されます。これは
CPU が割込みを受け付けるかどうかには関係しません。
スタンバイモード解除後は , 通常の割込み動作として割込み要求に対応する割込みレ
ベル設定ビット (ICR:IL2, IL1, IL0) の優先度がインタラプトレベルマスクレジスタ
(ILM) より高く , コンディションコードレジスタの割込み許可フラグが許可 (CCR:I=1)
されている場合は割込み処理ルーチンへ分岐します。
割込みが受け付けられない場合は , スタンバイモードを指定した命令の次の命令から
動作を再開します。
割込み処理を実行する場合 , 通常はスタンバイモードを指定した命令の次の命令を実
行した後に割込み処理に移行します。ただし, スタンバイモードに移行した場合の条件
によっては , 次の命令を実行する前に割込み処理に移行することがあります。
150
第 8 章 低消費電力モード
<注意事項>
復帰直後に割込み処理ルーチンへ分岐させない場合は , スタンバイモード設定の前に割込
み禁止をするなどの対策が必要です。
■ ストップモード解除時
ストップモードに入る前に外部割込みの割込み入力要因の設定に従った入力により解
除できます。入力要因として "H" レベル , "L" レベル , 立上りエッジ , 立下りエッジを
選択できます。
■ 発振安定待ち時間
● 発振クロック発振安定待ち時間
ストップモード中は , 原発振用の発振器が停止しているため , 発振安定待ち時間を確保
する必要があります。発振安定待ち時間としては , クロック選択レジスタ (CKSCR) の
WS1, WS0 ビットで選択された時間を確保します。WS1, WS0 ビットに "00B" を設定す
るのは , メインクロックモードの場合のみにしてください。
● PLL クロック発振安定待ち時間
メインクロックモード中は PLL 逓倍回路が停止しているため , PLL クロックモードに
移行する場合は , PLL クロック発振安定待ち時間を確保する必要があります。
PLL ストップモード中はメインクロックおよび PLL 逓倍回路が停止しているため , PLL
ストップモードから復帰する場合は , メインクロック発振安定待ち時間および PLL ク
ロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間は ,
クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定され
た値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち時間
を同時にカウントしますので , CKSCR:WS1, WS0 ビットは発振安定待ち時間の長い方
に合わせて値を設定してください。ただし, PLLクロック発振安定待ち時間は214/HCLK
以上必要になりますので , CKSCR:WS1, WS0 ビットには "10B" または "11B" を設定して
ください。
■ クロックモードの切換え
クロックモードを切り換えた場合 , 切換えが完了するまでは低消費電力モードへの切
換えおよびほかのクロックモードへの切換えを行わないようにしてください。切換え
の完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照して確認してくださ
い。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換え
を行った場合 , 切り換わらない場合があります。
■ スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセ
スする際の注意事項
● アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合
低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を
行う場合は , 表 8.3-2 の命令を使用してください。
151
第 8 章 低消費電力モード
表 8.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記
を配置してください。
MOV LPMCR, #H’XX
内の命令列
; 表 8.3-2 の低消費電力モード遷移命令
NOP
NOP
JMP $+3
; 次の命令へのジャンプ
MOV A, #H’10
; 任意の命令
内の命令列以外が配置されると低消費電力モード解除後の動作は保証されません。
● C 言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合
低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を
行う場合は , 以下の 1 から 3 のいずれかの方法でアクセスしてください。
1. スタンバイモードに遷移させる命令を関数化し , スタンバイモード遷移命令の後に
__wait_nop() のビルトイン関数を 2 個挿入してください。関数内でスタンバイ復帰
の割込み以外の割込みが発生する可能性がある場合は , コンパイル時に最適化を実
施し , LINK/UNLINK 命令の発生を抑止してください。
例 ( タイムベースタイマモード遷移関数の場合 )
void enter_timebase(){
IO_LPMCR.byte = 0x10; /* LPMCR の TMD ビットに "0" をセット */
__wait_nop();
__wait_nop();
}
2. スタンバイモードに遷移させる命令を __asm 文で記述し , スタンバイモード遷移命
令の後に 2 個の NOP と JMP 命令を挿入してください。
例 ( スリープモード遷移の場合 )
__asm("
__asm("
__asm("
MOV I:_IO_LPMCR, #H’58);
NOP");
NOP");
__asm("
JMP $+3");
/* LPMCRのSLPビットに"1"をセット */
/* 次の命令へのジャンプ
*
3. スタンバイモードに遷移させる命令を #pragma asm ~ #pragma endasm 間に記述し ,
スタンバイモード遷移命令の後に 2 個の NOP と JMP 命令を挿入してください。
例 ( ストップモード遷移の場合 )
#pragma asm
MOV I:_IO_LPMCR, #H’98
NOP
NOP
JMP $+3
#pragma endasm
152
/* LPMCR の STP ビットに "1" をセット */
/* 次の命令へのジャンプ
*/
第9章
メモリアクセスモード
メモリアクセスモードの機能と動作について説明
します。
9.1 メモリアクセスモードの概要
9.2 メモリアクセスモードのモード端子
9.3 メモリアクセスモードのモードデータ
153
第 9 章 メモリアクセスモード
9.1
メモリアクセスモードの概要
F2MC-16LX では , アクセス方式 , アクセス領域のそれぞれについて , 次の 2 種類の
メモリアクセスモードがあります。
・動作モード
・バスモード
■ メモリアクセスモード
図 9.1-1 メモリアクセスモード
動作モード
○ RUN
バスモード
シングルチップ
○ フラッシュメモリモード
MB90390 シリーズについては , 外部バス機能はサポートされていません。このため , 本
マニュアルの下記の記述は完全にはサポートされていません。お客様がご使用の際に
は , MB90390 シリーズをシングルチップモードで使用してください。
MB90390 シリーズをシングルチップモードに設定するには , モード入力 (MD2 ~ MD0)
を "011B" にし , モードデータの最大有効 2 ビット (M1, M0) を "00B" にする必要があり
ます。
● 動作モード
動作モードとは , デバイスの動作状態を制御するモードを示すもので , モード設定用端
子 (MDx) とモードデータ内の M1, M0 ビットで指定します。
● バスモード
バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを示す
もので , モード設定用端子 (MDx) とモードデータ内の M1, M0 ビットの内容で指定し
ます。モード設定用端子 (MDx) は , リセットベクタおよびモードデータを読み出すと
きのバスモードを指定するもので , モードデータ内の M1, M0 ビットは通常動作時のバ
スモードを指定するものです。
154
第 9 章 メモリアクセスモード
メモリアクセスモードのモード端子
9.2
MD2 ~ MD0 の 3 本の外部端子の設定の組合せによってモードの指定ができます。
■ モード端子
表 9.2-1 モード端子と設定モードの関係
モード端子設定
モード名
リセット
ベクタ
アクセス領域
外部データ
バス幅
備考
MD2
MD1
MD0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
フラッシュシリアル
書込み *1 *2
―
―
―
1
1
1
フラッシュメモリ
モード *2
―
―
パラレルライタ使用時の
モード
( 設定禁止 ) 予約
内部ベクタモード
内部
( モード
データ )
リセットシーケンス以降
はモードデータで制御
( 設定禁止 ) 予約
*1: フラッシュメモリのシリアル書込みは , モード端子の設定だけでは書込みができません。ほかの端
子設定も必要です。
詳細はフラッシュメモリのシリアルプログラミング接続例を参照してください。
*2: MB90V390H/MB90V390HA/MB90V390HB/MB90394HA は設定禁止です。
155
第 9 章 メモリアクセスモード
9.3
メモリアクセスモードのモードデータ
主記憶 "FFFFDFH" に置く CPU の動作制御用のデータです。リセットシーケンス実
行中にこのデータを取り込み , デバイス内部のモードレジスタに格納します。モー
ドレジスタの内容を変更できるのはリセットシーケンスだけです。
本レジスタによる設定はリセットシーケンス以降に有効となります。
予約ビットは , 必ず "0" を設定してください。
■ モードデータ
図 9.3-1 に , モードデータの設定を示します。
図 9.3-1 モードデータ構成
bit
7
6
5
4
3
2
1
0
モードデータ
M1
M0
0
0
0
0
0
0
機能拡張ビット(予約領域)
バスモード設定ビット
■ バスモード設定ビット
リセットシーケンス終了後の動作モードの指定を行うビットです。表 9.3-1 に , ビット
と機能との関係を示します。
表 9.3-1 バスモード設定ビットと機能
156
M1
M0
0
0
0
1
1
0
1
1
機能
シングルチップモード
( 設定禁止 )
( 設定禁止 )
第 9 章 メモリアクセスモード
図 9.3-2 に , 各バスモードのアクセス領域と物理アドレスとの対応関係を示します。
図 9.3-2 各バスモードのアクセス領域と物理アドレス
FFFFFFH
FF0000H
FEFFFFH
FE0000H
FDFFFFH
FD0000H
FCFFFFH
FC0000H
FBFFFFH
FB0000H
FAFFFF H
FA0000 H
F9FFFFH
ROM (FF バンク )
ROM (FE バンク )
ROM (FD バンク )
ROM (FC バンク )
ROM (FB バンク )
ROM (FA バンク )
ROM (F9 バンク )
F90000H
00FFFFH
008000H
0050FFH
004100H
003FFFH
ROM
(FF バンクの
イメージ )
RAM 4K バイト
周辺
003500H
0030FFH
RAM 12K バイト
000100H
0000BFH
000000H
: アクセス禁止
周辺
: 内部アクセス
<注意事項>
異なるアクセス領域を証明している例です。特殊なデバイスは , このマップと異なること
があります。データシートまたは「2.3 メモリ空間マップ」を参照してください。
157
第 9 章 メモリアクセスモード
■ 推奨設定例
表 9.3-2 に , モード端子とモードデータの推奨設定例を示します。
表 9.3-2 モード端子とモードデータの推奨設定例
設定例
シングルチップ
MD2
MD1
MD0
M1
M0
0
1
1
0
0
<注意事項>
Flash 品については , ハードワイヤードロジックによりモードデータにあらかじめ決めら
れた値が設定されています。詳細については , 「28.9 フラッシュメモリにおけるリセッ
トベクタアドレス」を参照してください。
158
第 10 章
I/O ポート
I/O ポートの機能と動作について説明します。
10.1 I/O ポート
10.2 I/O ポートのレジスタ
159
第 10 章 I/O ポート
10.1
I/O ポート
それぞれのポートの各端子は , 対応する周辺が端子を用いない設定となっていると
き , 1 本ごとに方向レジスタを設定することにより , 入力 , 出力の指定ができます。
入力端子として指定した場合 , 端子の論理レベルが読み出され , 出力端子として指定
した場合 , データレジスタ値が読み出されます。これは , リードモディファイライト
(RMW) 系命令の読出しにも適用されます。
■ I/O ポート
I/O ポートでは , ポート 0 ~ポート 3 についてのみは , 周辺信号の出力を許可する場合 ,
ポート方向レジスタの対応するビットを "1" に設定する必要があります。
周辺回路の出力として使用している場合にデータレジスタを読み出したときは , 方向
レジスタの値に関係なく , 制御出力として出力しているものが読み出されます。
一般的には , ポートを出力に設定する前に , データレジスタの設定にリードモディファ
イライト (RMW) 系命令を使用しないことが推奨されます。それは , リードモディファ
イライト(RMW)系命令によってレジスタ値ではなくポートの論理レベルが読み出され
るからです。
図 10.1-1 に , I/O ポートのブロックダイヤグラムを示します。
図 10.1-1 I/O ポートのブロックダイヤグラム
内部データバス
データレジスタ リード
データレジスタ
データレジスタ ライト
方向レジスタ
方向レジスタ ライト
方向レジスタ リード
160
端子
第 10 章 I/O ポート
10.2
I/O ポートのレジスタ
I/O ポートのレジスタには , 次の 4 種類があります。
• ポートデータレジスタ (PDR0 ~ PDRB)
• ポート方向レジスタ (DDR0 ~ DDRB)
• ポートアナログ入力許可レジスタ (ADER)
• 入力レベル選択レジスタ (ILSR)
■ I/O ポートのレジスタ
図 10.2-1 に , I/O ポートのレジスタを示します。
図 10.2-1 I/O ポートのレジスタ
アドレス
000000H
000001H
000002H
000003H
000004H
000005H
000006H
000007H
000008H
000009H
00000AH
00000BH
bit 7
P07
P17
P27
P37
P47
P57
P67
P77
P87
P97
PA7
PB7
6
P06
P16
P26
P36
P46
P56
P66
P76
P86
P96
PA6
PB6
5
P05
P15
P25
P35
P45
P55
P65
P75
P85
P95
PA5
PB5
4
P04
P14
P24
P34
P44
P54
P64
P74
P84
P94
PA4
PB4
3
P03
P13
P23
P33
P43
P53
P63
P73
P83
P93
PA3
PB3
2
P02
P12
P22
P32
P42
P52
P62
P72
P82
P92
PA2
PB2
1
P01
P11
P21
P31
P41
P51
P61
P71
P81
P91
PA1
PB1
0
P00
P10
P20
P30
P40
P50
P60
P70
P80
P90
PA0
PB0
ポート 0 データレジスタ (PDR0)
ポート 1 データレジスタ (PDR1)
ポート 2 データレジスタ (PDR2)
ポート 3 データレジスタ (PDR3)
ポート 4 データレジスタ (PDR4)
ポート 5 データレジスタ (PDR5)
ポート 6 データレジスタ (PDR6)
ポート 7 データレジスタ (PDR7)
ポート 8 データレジスタ (PDR8)
ポート 9 データレジスタ (PDR9)
ポート A データレジスタ (PDRA)
ポート B データレジスタ (PDRB)
000010H
000011H
000012H
000013H
000014H
000015H
000016H
000017H
000018H
000019H
00001AH
00001BH
D07
D17
D27
D37
D47
D57
D67
D77
D87
D97
DA7
DB7
D06
D16
D26
D36
D46
D56
D66
D76
D86
D96
DA6
DB6
D05
D15
D25
D35
D45
D55
D65
D75
D85
D95
DA5
DB5
D04
D14
D24
D34
D44
D54
D64
D74
D84
D94
DA4
DB4
D03
D13
D23
D33
D43
D53
D63
D73
D83
D93
DA3
DB3
D02
D12
D22
D32
D42
D52
D62
D72
D82
D92
DA2
DB2
D01
D11
D21
D31
D41
D51
D61
D71
D81
D91
DA1
DB1
D00
D10
D20
D30
D40
D50
D60
D70
D80
D90
DA0
DB0
ポート 0 方向レジスタ (DDR0)
ポート 1 方向レジスタ (DDR1)
ポート 2 方向レジスタ (DDR2)
ポート 3 方向レジスタ (DDR3)
ポート 4 方向レジスタ (DDR4)
ポート 5 方向レジスタ (DDR5)
ポート 6 方向レジスタ (DDR6)
ポート 7 方向レジスタ (DDR7)
ポート 8 方向レジスタ (DDR8)
ポート 9 方向レジスタ (DDR9)
ポート A 方向レジスタ (DDRA)
ポート B 方向レジスタ (DDRB)
bit15/7 14/6 13/5 12/4 11/3 10/2
9/1
8/0
00000CH ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0
00000DH ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 ADE8
ポート 6 アナログ入力許可レジスタ (ADER0)
00000EH
00000FH
入力レベル選択レジスタ (ILSR)
入力レベル選択レジスタ (ILSR)
IL7
IL6
IL5
IL4
ILSPB ILI2C ILRX0 ILRX1
IL3
ILB
IL2
ILA
IL1
IL9
IL0
IL8
ポート B アナログ入力許可レジスタ (ADER1)
161
第 10 章 I/O ポート
10.2.1
ポートデータレジスタ
I/O ポートの読出し / 書込みは , メモリへの読出し / 書込みとは多少動作が異なりま
すので注意してください。
[ 入力モード ]
読出し時 : 対応する端子のレベルが読み出されます。
書込み時 : 出力用のラッチに書き込まれます。
[ 出力モード ]
読出し時 : データレジスタラッチの値が読み出されます。
書込み時 : 出力ラッチに書き込まれ , 対応する端子に出力されます。
■ ポートデータレジスタ
図 10.2-2 に , ポートデータレジスタを示します。
図 10.2-2 ポートデータレジスタ
bit 7
アドレス : 000000H P07
6
P06
5
P05
4
P04
3
P03
2
P02
1
P01
0
P00
初期値
アクセス
XXXXXXXXB R/W
PDR1
7
P17
6
P16
5
P15
4
P14
3
P13
2
P12
1
P11
0
P10
XXXXXXXXB
R/W
7
6
5
4
3
2
1
0
アドレス : 000002H
P27
P26
P25
P24
P23
P22
P21
P20
XXXXXXXXB
R/W
PDR3
7
P37
6
P36
5
P35
4
P34
3
P33
2
P32
1
P31
0
P30
XXXXXXXXB
R/W
7
6
5
4
3
2
1
0
P47
P46
P45
P44
P43
P42
P41
P40
XXXXXXXXB
R/W
PDR0
アドレス : 000001H
PDR2
アドレス : 000003H
PDR4
アドレス : 000004H
PDR5
7
6
5
4
3
2
1
0
アドレス : 000005H
P57
P56
P55
P54
P53
P52
P51
P50
XXXXXXXXB
R/W
PDR6
7
P67
6
P66
5
P65
4
P64
3
P63
2
P62
1
P61
0
P60
XXXXXXXXB
R/W
XXXXXXXXB
R/W
XXXXXXXXB
R/W
アドレス : 000006H
PDR7
アドレス : 000007H
PDR8
アドレス : 000008H
PDR9
7
6
5
4
3
2
1
0
P77
P76
P75
P74
P73
P72
P71
P70
7
6
5
4
3
2
1
0
P87
P86
P85
P84
P83
P82
P81
P80
7
6
5
4
3
2
1
0
アドレス : 000009H
P97
P96
P95
P94
P93
P92
P91
P90
XXXXXXXXB
R/W
PDRA
7
PA7
6
PA6
5
PA5
4
PA4
3
PA3
2
PA2
1
PA1
0
PA0
XXXXXXXXB
R/W
7
6
5
4
3
2
1
0
PB6
PB5
PB4
PB3
PB2
PB1
PB0
XXXXXXXXB
R/W
アドレス : 00000AH
PDRB
アドレス : 00000BH PB7
R/W: リード / ライト可能
162
第 10 章 I/O ポート
■ ポートデータレジスタの読出し
ポートデータレジスタを読み出したときに得られる値は , データ方向レジスタの対応
するビットと ( 適切ならば ) 同じ端子に接続されているリソースの状態によります。
可能なケースは以下のとおりです。
DDR 値
リソース
読出し値
0( 入力 )
可能
リソースの値
1( 出力 )
可能
リソースの値
0( 入力 )
不可
端子の値
1( 出力 )
不可
PDR の値
163
第 10 章 I/O ポート
10.2.2
データ方向レジスタ
データ方向レジスタは , 各端子がポートとして機能しているときは , 対応する各端子
を以下のように制御します。
0: 入力モード
1: 出力モード
■ データ方向レジスタ
図 10.2-3 に , データ方向レジスタを示します。
図 10.2-3 データ方向レジスタ
bit 7
DDR0
アドレス : 000010H
DDR1
アドレス : 000011H
DDR2
アドレス : 000012H
DDR3
アドレス : 000013H
DDR4
アドレス : 000014H
DDR5
アドレス : 000015H
DDR6
アドレス : 000016H
DDR7
アドレス : 000017H
DDR8
アドレス : 000018H
DDR9
アドレス : 000019H
DDRA
アドレス : 00001AH
DDRB
アドレス : 00001BH
D07
6
5
4
3
2
1
0
D06
D05
D04
D03
D02
D01
D00
7
6
5
4
3
2
1
0
D17
D16
D15
D14
D13
D12
D11
D10
7
6
5
4
3
2
1
0
D27
D26
D25
D24
D23
D22
D21
D20
7
6
5
4
3
2
1
0
D37
D36
D35
D34
D33
D32
D31
D30
7
6
5
4
3
2
1
0
D47
D46
D45
D44
D43
D42
D41
D40
7
6
5
4
3
2
1
0
D57
D56
D55
D54
D53
D52
D51
D50
7
6
5
4
3
2
1
0
D67
D66
D65
D64
D63
D62
D61
D60
7
6
5
4
3
2
1
0
D77
D76
D75
D74
D73
D72
D71
D70
7
6
5
4
3
2
1
0
D87
D86
D85
D84
D83
D82
D81
D80
7
6
5
4
3
2
1
0
D97
D96
D95
D94
D93
D92
D91
D90
7
6
5
4
3
2
1
0
DA7
DA6
DA5
DA4
DA3
DA2
DA1
DA0
7
6
5
4
3
2
1
0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
初期値
00000000B
アクセス
00000000B
R/W
00000000B
R/W
00000000B
R/W
00000000B
R/W
00000000B
R/W
00000000B
R/W
00000000B
R/W
00000000B
R/W
00000000B
R/W
00000000B
R/W
00000000B
R/W
R/W
R/W: リード / ライト可能
■ データ方向レジスタの読出し
データ方向レジスタは , 一致するリソースの状態から独立して読出しが可能です。しか
し , DDR 値はポートデータレジスタの読出しアクセスの結果に影響を与えます。
164
第 10 章 I/O ポート
アナログ入力許可レジスタ
10.2.3
アナログ入力許可レジスタは , ポート 6 とポート B の各端子を以下のように制御し
ます。
0: ポート入出力モード
1: アナログ入力モード
外部端子を A/D コンバータのアナログ入力として使用している場合 , 対応するビッ
トを "1" に設定する必要があります。
■ アナログ入力許可レジスタ
図 10.2-4 に , アナログ入力許可レジスタを示します。
図 10.2-4 アナログ入力許可レジスタ
13
12
11
10
9
8
アドレス bit15 14
00000DH
ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 ADE8
00000CH
R/W R/W R/W R/W R/W R/W R/W R/W
0
1
1
1
1
1
1
1
初期値
7
6
5
4
3
2
1
0
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
ADER1/
ADER0
R/W R/W R/W R/W R/W R/W R/W R/W
1
1
1
1
1
1
1
1
R/W: リード / ライト可能
<注意事項>
bit15 (ADSEL) が "0" に設定されると , 端子 AN0 ~ AN7 ( ポート P60 ~ P67) は A/D コン
バータ用入力として選択されます。このビットが "1" に設定されると , 端子 AN8 ~ AN14
( ポート PB0 ~ PB6) は A/D コンバータ用入力として選択されます。
165
第 10 章 I/O ポート
10.2.4
入力レベル選択レジスタ
入力レベル選択レジスタにより , Automotive 入力レベルから CMOS ヒステリシス
入力レベルに設定を変更できます。
■ 入力レベル選択レジスタ
入力レベル選択レジスタ (ILSR) はアドレス "0EH" と "0FH" にあります。
図 10.2-5 入力レベル選択レジスタ (ILSR)
13
12
11
10
9
8
アドレス bit15 14
00000FH
ILSPB ILI2C ILRX0 ILRX1
ILB
ILA
IL9
IL8
00000EH
R/W R/W R/W R/W R/W R/W R/W R/W
0
0
0
0
0
0
0
0
初期値
7
6
5
4
3
2
1
0
IL7
IL6
IL5
IL4
IL3
IL2
IL1
IL0
ILSR
R/W R/W R/W R/W R/W R/W R/W R/W
0
0
0
0
0
0
0
0
R/W: リード / ライト可能
[bit15] ILSPB
ILSPB ビットを "0" に設定する場合は , P44/SPB の入力レベルは IL4 (ILSR の 4 ビッ
ト図 ) で選択できます。ILI2C ビットを "1" に設定する場合は , P44/SPB の入力レベ
ルは IL4 ビットで選択されたものの反転になります。初期値は "0" です。このレジ
スタの初期値は "0000H" です。このため , リセット後は全ポート Automotive 入力レ
ベルになります。
[bit14] ILI2C
ILI2C ビットを "0" に設定する場合は , P42/SDA と P43/SCL の入力レベルは IL4 (ILSR
の 4 ビット図 ) で選択できます。ILI2C ビットを "1" に設定する場合は , P42/SDA と
P43/SCL の入力レベルは IL4 ビットで選択されたものの反転になります。初期値は
"0" です。
[bit13] ILRX0
ILRX0 ビットを "0" に設定する場合は , P30/RX0 の入力レベルは IL3 (ILSR の 3 ビッ
ト図 ) で選択できます。ILRX0 ビットを "1" に設定する場合は , P30/RX0 の入力レベ
ルは IL2 ビットで選択されたものの反転になります。初期値は "0" です。
[bit12] ILRX1
ILRX1 ビットを "0" に設定する場合は , P21/RX1 の入力レベルは IL2 (ILSR の 2 ビッ
ト図 ) で選択できます。ILRX1 ビットを "1" に設定する場合は , P21/RX1 の入力レベ
ルは IL2 ビットで選択されたものの反転になります。初期値は "0" です。
[bit11 ~ bit0] ILB ~ IL0
これらのビットは , 対応するポートの入力レベルを選択するビットです。IL0 はポー
ト 0 入力レベルを設定し , ILB はポート B の入力レベルを設定します。
"0" に設定した場合:Automotive 入力レベルになります。
"1" に設定した場合:CMOS ヒステリシス入力レベルになります。
これらのビットの初期値は "0" です。
166
第 11 章
タイムベースタイマ
タイムベースタイマの機能と動作について説明し
ます。
11.1 タイムベースタイマの概要
11.2 タイムベースタイマ制御レジスタ
11.3 タイムベースタイマの動作
167
第 11 章 タイムベースタイマ
11.1
タイムベースタイマの概要
タイムベースタイマは , システムクロックを分周する 18 ビットのタイムベースカウ
ンタと制御レジスタにより構成されます。タイムベースタイマは , タイムベースカ
ウンタの桁上り信号により指定したインターバルで割込みを発生します。
■ タイムベースタイマの概要
パワーオン時 , タイムベースカウンタはストップモードを設定するかまたはソフト
ウェア (TBR ビットへの "0" の書込み ) によりすべてゼロにクリアされます。原発振が
入力されている間 , タイムベースカウンタはインクリメントされます。
タイムベースカウンタは , ウォッチドッグタイマのクロック供給 , 発振安定待ち時間の
ためのタイマとして使用できます。
■ タイムベースタイマのブロックダイヤグラム
図 11.1-1 に , タイムベースタイマのブロックダイヤグラムを示します。
図 11.1-1 タイムベースタイマのブロックダイヤグラム
WTE
出力許可
WT1
WT0
リセット リセット
コントロール
2ビット
カウンタ
セレクタ
タイムベースカウンタ
f/2
パワーオン
リセット
STOPモード
1
1
1
1
1
1
1
1
1
2
211
212
213
214
215
216
217
218
クリア
コントロール
TBOF
セレクタ
TBR
TBC1
TBC0
WS1
WS0
168
1/210 ~ 1/217
セレクタ
TBOF
クリア
EI2OS
タイムベース分周出力
発振安定待ち完了信号
IRQ
第 11 章 タイムベースタイマ
タイムベースタイマ制御レジスタ
11.2
タイムベースタイマ制御レジスタはタイムベースタイマの割込みの制御を行い , タ
イムベースカウンタをクリアできます。
■ タイムベースタイマ制御レジスタ (TBTC)
図 11.2-1 タイムベースタイマ制御レジスタの構成
アドレス
15
14
13
0000A9 H
予約
-
-
R/W
-
- R/W R/W W R/W R/W
12
11
10
9
初期値
8
1XX00100B
TBIE TBOF TBR TBC1 TBC0
bit9
bit8
TBC1
TBC0
0
0
0
1
1
0
1
1
タイムベースタイマインターバル制御
1.024 ms (4 MHz 時 )
4.096 ms (4 MHz 時 )
16.384 ms (4 MHz 時 )
131.072 ms (4 MHz 時 )
bit10
タイムベースタイマリセット
TBR
0
1
読出し時
常に "1"
書込み時
全ビットを "0" にクリア
効果なし
bit11
TBOF
0
1
タイムベースタイマ割込み要求フラグ
読出し時
書込み時
割込みなし
このビットをクリア
効果なし
割込み要求
bit12
TBIE
0
1
タイムベースタイマ割込み許可
割込み禁止
割込み許可
bit13
-
未定義
-
bit14
-
未定義
-
bit15
Reserved
R/W
W
X
-
リード / ライト可能
ライトオンリ ( 読出し値は常に "0")
不定
未定義
: 初期値
:
:
:
:
0
1
予約
-
このビットには常に "1" を書き込んでください
169
第 11 章 タイムベースタイマ
表 11.2-1 タイムベースタイマ制御レジスタのビット機能説明
ビット名
機能
予約済みビットです。TBTC レジスタにデータを書き込むときは , 必ず "1"
を書き込んでください。
bit15
予約ビット
bit14
未定義ビット
-
bit13
未定義ビット
-
bit12
TBIE
タイムベースタイマによるインターバル割込みを許可するビットです。"1"
のとき割込み許可 , "0" のとき割込みを禁止します。リセットにより "0" に
初期化します。読み書き可能なビットです。
TBOF
タイムベースタイマの割込み要求フラグです。TBIE ビットが "1" のときに
TBOF が "1" になると割込み要求を発生します。TBC1, TBC0 ビットで設定
されたインターバルごとに "1" にセットされます。"0" の書込み , ストップ
モードへの遷移およびリセットによりクリアされます。"1" の書込みは意
味がありません。
リードモディファイライト (RMW) 系命令における読出し時には "1" が読め
ます。
bit10
TBR
タイムベースカウンタを全ビット "0" にクリアするビットです。"0" を書き
込むことによりタイムベースカウンタをクリアします。"1" の書込みは意
味がありません。
読出し時は "1" が読めます。
bit9,
bit8
TBC1/TBC0
タイムベースタイマのインターバルを設定するビットです。表 11.2-2 を参
照してください。
bit11
表 11.2-2 タイムベースタイマインターバルの選択
170
TBC1
TBC0
原発振 4MHz 時のインターバル時間
0
0
1.024ms
0
1
4.096ms
1
0
16.384ms
1
1
131.072ms
第 11 章 タイムベースタイマ
11.3
タイムベースタイマの動作
タイムベースタイマには , ウォッチドッグタイマのクロックソース , 発振安定待ち時
間のためのタイマ , 一定周期で割込みを発生するインターバルタイマの機能があり
ます。
■ タイムベースカウンタ
タイムベースカウンタは , 原発振入力を 2 分周して発生させたクロック用の 18 ビット
のカウンタにより構成されます。このクロックは , マシンクロックを発生するために使
用されます。原発振が入力されている間 , タイムベースカウンタはカウント動作を続け
ます。タイムベースカウンタのクリアは , パワーオンリセット , ストップモードへの遷
移または TBTC レジスタ中の TBR ビットへの "0" の書込みにより行われます。
■ インターバル割込み機能
タイムベースカウンタの桁上り信号により一定周期で割込みを発生します。TBTC レ
ジスタ中の TBC1, TBC0 ビットで設定されるインターバル時間ごとに TBOF フラグを
セットします。このフラグの書込みは , 最後にタイムベースタイマがクリアされた時間
を基準にして行われます。
ストップモードに遷移すると , タイムベースタイマは復帰時の発振安定待ち時間のタ
イマとして使用されるので , TBOF フラグはモード遷移と同時にクリアされます。
171
第 11 章 タイムベースタイマ
172
第 12 章
ウォッチドッグタイマ
ウォッチドッグタイマの機能と動作について説明
します。
12.1 ウォッチドッグタイマの概要
12.2 ウォッチドッグタイマの動作
173
第 12 章 ウォッチドッグタイマ
12.1
ウォッチドッグタイマの概要
ウォッチドッグタイマは , 18 ビットのタイムベースカウンタの桁上がり信号をク
ロックソースとする 2 ビットのウォッチドッグカウンタ , 制御レジスタ , ウォッチ
ドッグリセット制御部により構成されています。
■ ウォッチドッグタイマのブロックダイヤグラム
図 12.1-1 に , ウォッチドッグタイマのブロックダイヤグラムを示します。
図 12.1-1 ウォッチドッグタイマのブロックダイヤグラム
ウォッチドッグタイマ制御レジスタ (WDTC)
PONR
WRST ERST SRST WTE WT1 WT0
ウォッチドッグタイマ
2
起動
リセット発生
スリープモード
タイムベースタイマモード
ストップモード
カウント
クロック
セレクタ
カウンタ
クリア
制御回路
終了
リセット発生
ウォッチドッグ
リセット
発生回路
2ビット
カウンタ
内部リセット
発生回路
クリア
4
(タイムベースタイマカウンタ)
メインクロック
(HCLK の2分周)
HCLK : 発振クロック
174
21
22
28
29
210
211 212
213
214
215
216
217 218
第 12 章 ウォッチドッグタイマ
■ ウォッチドッグタイマ制御レジスタ (WDTC)
WDTC
bit7
アドレス : 0000A8H PONR
R
bit6
-
-
bit5
bit4
WRST ERST
R
R
bit3
bit2
bit1
bit0
SRST
R
WTE
W
WT1
W
WT0
W
初期値
XXXXX111B
[bit7, bit5 ~ bit3] PONR, WRST, ERST, SRST
リセットの要因を示すフラグです。各種リセット要因が発生すると , 本ビットは表
12.1-1 のように設定されます。
これらのビットはすべて WDTC の読出し動作後に "0" にクリアされます。読出し専
用のビットです。
表 12.1-1 リセット要因レジスタ
リセット要因
PONR
WRST
ERST
SRST
パワーオン
1
⎯
⎯
⎯
ウォッチドッグタイマ
*
1
*
*
外部端子
*
*
1
*
RST ビット
*
*
*
1
*: 前の値の保持を示します。
[bit2] WTE
ウォッチドッグタイマが停止状態のときに本ビットに "0" を書き込むことにより ,
ウォッチドッグタイマを動作状態にします。また , "0" の書込みはウォッチドッグカ
ウンタをクリアします。"1" の書込みは何の操作もしません。
ウォッチドッグタイマは , パワーオン , ウォッチドッグタイマによるリセットによ
り停止状態となります。読出し時は "1" が読み出されます。
[bit1, bit0] WT1, WT0
ウォッチドッグタイマのインターバル時間を選択するビットです。ウォッチドッグ
タイマ起動時に書き込まれたデータのみが有効です。ウォッチドッグタイマ起動時
以外の書込みデータは無視します。
表 12.1-2 に , インターバル時間の設定を示します。
これらのビットは書込み可能なビットです。
175
第 12 章 ウォッチドッグタイマ
表 12.1-2 ウォッチドッグタイマインターバル選択ビット
インターバル時間 *
WT1
WT0
最小
最大
メインクロック
サイクルカウント
0
0
約 3.58ms
約 4.61ms
214 ± 211 サイクル
0
1
約 14.33ms
約 18.43ms
216 ± 213 サイクル
1
0
約 57.23ms
約 73.73ms
218 ± 215 サイクル
1
1
約 458.7ms
約 589.82ms
221 ± 218 サイクル
*: 原発振 4MHz
<注意事項>
インターバル時間は , カウントクロックとしてタイムベースタイマ , またはクロックタイ
マのキャリ信号を使用します。タイムベースタイマ , またはクロックタイマが解除される
と , ウォッチドッグタイマのインターバル時間は長くなります。
タイムベースタイマは , タイムベースタイマ制御レジスタ (TBTC) の TBR ビットに "0" を
書き込み , メインクロックモードから PLL クロックモードに遷移することでクリアされま
す。
176
第 12 章 ウォッチドッグタイマ
12.2
ウォッチドッグタイマの動作
ウォッチドッグタイマの機能により , プログラムの暴走を検出できます。
プログラムの暴走などにより , 定められた時間内にウォッチドッグタイマのアクセ
スが行われない場合 , ウォッチドッグタイマはシステムをリセットします。
■ ウォッチドッグタイマの状態遷移図
ウォッチドッグタイマには下記の 4 つの状態が存在します。
• 無効
:動作していません。
• 動作
:カウンタクリア状態 ("0") からカウントを開始します。
• 停止
:カウンタクリア状態 ("0") を継続します。
• オーバフロー :ウォッチドッグリセットを発生します。
図 12.2-1 ウォッチドッグタイマ状態遷移図
無効
(初期状態)
WTEビットに
"0"書込み
リセット
リセット
割込みによるストップモード解除
割込みによるタイムベースタイマモード解除
割込みによるスリープモード解除
動作
停止
カウンタクリア状態("0")
からカウント開始
カウンタクリア状態("0")
カウンタ
オーバフロー
ストップモードに移行
タイムベースタイマモードに移行
スリープモードに移行
オーバフロー
常に
ウォッチドッグリセット
を発生
WTEビットに"0"書込み
177
第 12 章 ウォッチドッグタイマ
■ ウォッチドッグタイマの起動方法
ウォッチドッグタイマの起動は , ウォッチドッグタイマの停止中に WDTC レジスタの
WTE ビットに "0" を書き込むことによって行われます。このとき , 同時にウォッチドッ
グタイマのリセット発生のインターバルを WT1, WT0 ビットにより設定します。イン
ターバルの設定は , この起動のときのデータのみが有効となります。
■ ウォッチドッグカウンタ
一度 , ウォッチドッグタイマが起動されると , ウォッチドッグタイマカウンタをプログ
ラム内で定期的にクリアする必要があります。WDTC レジスタの WTE ビットに "0" を
書き込むと , ウォッチドッグカウンタがクリアされます。ウォッチドッグカウンタは ,
タイムベースカウンタの桁上がり信号をクロックソースとする 2 ビットのカウンタに
より構成されています。したがって , タイムベースカウンタがクリアされると , ウォッ
チドッグリセットの発生時間が設定より長くなることがあります。
図 12.2-2 に , ウォッチドッグタイマの動作を示します。
図 12.2-2 ウォッチドッグタイマの動作
タイムベース
ウォッチドッグ
00
01
10
00
01
10
11
00
WTE 書込み
ウォッチドッグ起動
ウォッチドッグクリア
ウォッチドッグリセット
■ ウォッチドッグ停止
ウォッチドッグタイマは , ストップモード , タイムベースタイマモードまたはスリープ
モードに遷移時に 停止します。
■ ウォッチドッグ不活性化
ウォッチドッグタイマは , あらゆる種類のリセットにより不活性化します。
■ ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグ
タイマの動作
ストップモード , タイムベースタイマモードまたはスリープモードに遷移すると ,
ウォッチドッグタイマはクリアされ停止します。CPU がストップモード , タイムベー
スタイマモードまたはスリープモードから復帰すると , ウォッチドッグタイマは , クリ
アされた状態からカウントを再開します。
178
第 12 章 ウォッチドッグタイマ
■ リセット時のウォッチドッグタイマの動作
ウォッチドッグタイマはすべてのリセット要因で無効となります。リセット解除後も
ウォッチドッグタイマは無効状態です ( 表 12.2-1 を参照 )。
表 12.2-1 ウォッチドッグタイマクリア・停止条件
動作モード
リセット
WDTC レジ
スタ WTE=0
ストップ
モード
スリープ
モード
タイムベース
タイマモード
カウンタクリア
遷移時
書込み時
遷移時
遷移時
遷移時
モード中の
ウォッチドッグ
タイマ状態
無効
N/A
停止
( クリア状態
を保持 )
停止
( クリア状態
を保持 )
停止
( クリア状態
を保持 )
モード中の
ウォッチドッグ
リセット
発生しない
N/A
発生しない
発生しない
発生しない
無効
動作
( クリア状態
からカウン
ト開始 )
動作
( クリア状態
からカウン
ト開始 )
動作
( クリア状態
からカウン
ト開始 )
動作
( クリア状態
からカウント
開始 )
モード解除後の
ウォッチドッグ
タイマ状態
( 注意事項 ) ウォッチドッグの前状態は " 動作 " です。
179
第 12 章 ウォッチドッグタイマ
180
第 13 章
16 ビット入出力タイマ
16 ビット入出力タイマの機能と動作について説明
します。
13.1 16 ビット入出力タイマの概要
13.2 16 ビット入出力タイマのレジスタ
13.3 16 ビットフリーランタイマ
13.4 アウトプットコンペア
13.5 インプットキャプチャ
181
第 13 章 16 ビット入出力タイマ
13.1
16 ビット入出力タイマの概要
MB90390 シリーズは , 16 ビットフリーランタイマ 2 本 , アウトプットコンペアモ
ジュール 4 本およびインプットキャプチャ 3 本のモジュールから構成され , 6 個の
入力チャネルおよび 8 個の出力チャネルをサポートしています。以下に , 16 ビット
フリーランタイマ , アウトプットコンペアおよびインプットキャプチャについて説
明します。
■ 16 ビットフリーランタイマ
16 ビットフリーランタイマは 16 ビットのアップカウンタ , 制御レジスタ , プリスケー
ラより構成されています。本タイマカウンタの出力値はインプットキャプチャ, アウト
プットコンペアの基本時間 ( ベースタイマ ) として使用されます。
● カウンタ動作クロックは 8 種類から選択可能
内部クロック 8 種類 : φ, φ/2,φ/4, φ/8,φ/16, φ/32, φ/64, φ/128 (φ: マシンクロック )
● 割込みはカウンタ値のオーバフロー, コンペアレジスタ 0 または 1 とのコンペアマッチによ
り発生可能
● カウンタ値はリセット, ソフトクリア, コンペアレジスタ0 (タイマ0のとき)またはコンペア
レジスタ 4 ( タイマ 1 のとき ) とのコンペアマッチにより "0000H" に初期化可能
■ アウトプットコンペア ( モジュールごとに 2 チャネル )
4 本のアウトプットコンペアは 2 本の 16 ビットコンペアレジスタ , コンペア出力用ラッ
チ , 制御レジスタより構成されています。16 ビットフリーランタイマ値とコンペアレ
ジスタ値が一致したとき出力レベルを反転するとともに割込みを発生できます。
● 各アウトプットコンペアにおいて 2 本のコンペアレジスタを独立して動作
各コンペアレジスタに対応した出力端子と割込みフラグです。
● 2 本のコンペアレジスタをペアにして出力端子を制御可能
コンペアレジスタ 2 本を使用して出力端子を反転します。
● 出力端子の初期値を設定することが可能
● 割込みはコンペア一致により発生可能
182
第 13 章 16 ビット入出力タイマ
■ インプットキャプチャ ( モジュールごとに 2 チャネル )
3本のインプットキャプチャは独立した2本の外部入力端子と対応したキャプチャレジ
スタ , 制御レジスタにより構成されています。インプットキャプチャ 0 (ch. IN0, IN1) は
フリーランタイマ 0 に , インプットキャプチャ 1 およびインプットキャプチャ 2 (ch.
IN2, IN3, IN4, IN5) はフリーランタイマ 1 に割り当てられています。外部入力端子より
入力された信号の任意エッジを検出することにより 16 ビットフリーランタイマ値を
キャプチャレジスタに保持し , 同時に割込みを発生できます。
● 外部入力信号のエッジを選択可能
立上りエッジ , 立下りエッジ , 両エッジから選択可能です。
● 2 本のインプットキャプチャは独立して動作可能
● 割込みは外部入力信号の有効エッジにより発生可能
インプットキャプチャの割込みによりインテリジェント I/O サービスを起動できます。
■ 16 ビット入出力タイマのブロックダイヤグラム
図 13.1-1 に , 16 ビット入出力タイマのブロックダイヤグラムを示します。
図 13.1-1 16 ビット入出力タイマのブロックダイヤグラム
割込み
16 ビットフリーランタイマ
16 ビットタイマ
クリア
各ブロックへ
制御ロジック
FRCK0
FRCK1
アウトプットコンペア
0/2/4/6
バス
コンペアレジスタ 0
T
Q
T
Q
アウトプットコンペア
1/3/5/7
コンペアレジスタ 1
OUT0
OUT2
OUT4
OUT6
OUT1
OUT3
OUT5
OUT7
インプット
キャプチャ 0/2/4
キャプチャレジスタ 0
エッジ選択
IN0
IN2
IN4
エッジ選択
IN1
IN3
IN5
インプット
キャプチャ 1/3/5
キャプチャレジスタ 1
183
第 13 章 16 ビット入出力タイマ
13.2
16 ビット入出力タイマのレジスタ
16 ビット入出力タイマのレジスタには , 次の 3 つがあります。
• 16 ビットフリーランタイマのレジスタ
• 16 ビットアウトプットコンペアのレジスタ
• 16 ビットインプットキャプチャのレジスタ
■ 16 ビットフリーランタイマ 0/1 のレジスタ一覧
アドレス bit15
bit0
00352CH
TCDT0
タイマデータレジスタ 0
00353CH
TCDT1
タイマデータレジスタ 1
00352EH
TCCSH0
TCCSL0
タイマ制御ステータスレジスタ 0
00353EH
TCCSH1
TCCSL1
タイマ制御ステータスレジスタ 1
■ 16 ビットアウトプットコンペアのレジスタ一覧
アドレス bit15
003530H
003532H
OCCP0/OCCP1
アウトプットコンペアレジスタ 0/1
003534H
003536H
OCCP2/OCCP3
アウトプットコンペアレジスタ 2/3
003538H
00353AH
OCCP4/OCCP5
アウトプットコンペアレジスタ 4/5
00356AH
00356CH
OCCP6/OCCP7
アウトプットコンペアレジスタ 6/7
bit0
000058H
000059H
OCS1
OCS0
制御ステータスレジスタ 0/1
00005AH
00005BH
OCS3
OCS2
制御ステータスレジスタ 2/3
00005CH
00005DH
OCS5
OCS4
制御ステータスレジスタ 4/5
003568H
003569H
OCS7
OCS6
制御ステータスレジスタ 6/7
184
第 13 章 16 ビット入出力タイマ
■ 16 ビットインプットキャプチャのレジスタ一覧
アドレス bit15
003520H
003522H
IPCP0/IPCP1
インプットキャプチャデータレジスタ 0/1
003524H
003526H
IPCP2/IPCP3
インプットキャプチャデータレジスタ 2/3
003528H
00352AH
IPCP4/IPCP5
インプットキャプチャデータレジスタ 4/5
bit0
000054H
000055H
ICS0/ICS1
0035C9H
ICS4/ICS5
ICE23
ICE45
インプットキャプチャ制御ステータスレジスタ 4/5
インプットキャプチャエッジレジスタ 0/1
ICE01
0035CAH
0035CBH
インプットキャプチャ制御ステータスレジスタ 2/3
ICS2/ICS3
000056H
インプットキャプチャ制御ステータスレジスタ 0/1
インプットキャプチャエッジレジスタ 2/3
インプットキャプチャエッジレジスタ 4/5
185
第 13 章 16 ビット入出力タイマ
13.3
16 ビットフリーランタイマ
16 ビットフリーランタイマのカウント値はアウトプットコンペア , インプットキャ
プチャの基本時間 ( ベースタイマ ) として使用されます。
• カウントクロックは 8 種類から選択可能
• カウンタオーバフロー割込みを発生可能
• モード設定によりアウトプットコンペアのコンペアレジスタ 0 ( フリーランタイマ
0) またはコンペアレジスタ 4 ( フリーランタイマ 1) の値との一致によるカウンタ
の初期化が可能です。
• 2 つの分割したタイマを利用できます。
■ 16 ビットフリーランタイマのブロックダイヤグラム
図 13.3-1 16 ビットフリーランタイマのブロックダイヤグラム
φ
割込み要求
IVF
IVFE
STOP
MODE
CLR
CLK2
CLK1
CLK0 分周器
FRCK
ス
バ
コンパレータ0/
コンパレータ1
16ビットフリーランタイマ
クロック
T15~T00
カウント値出力
( 注意事項 )
186
この図は , タイマ 1 でも有効。
タイマ 0 は , ICU0/ICU1 および OCU0/OCU1/OCU2/OCU3 に接続
タイマ 1 は , ICU2/ICU3/ICU4/ICU5 および OCU4/OCU5/OCU6/OCU7 に接続
第 13 章 16 ビット入出力タイマ
13.3.1
タイマデータレジスタ
タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出せるレ
ジスタです。カウンタ値はリセット時に "0000B" にクリアされます。このレジスタ
に書き込むことでタイマ値を設定できますが , 必ず停止 (STOP=1) 状態で行ってく
ださい。このレジスタはワードアクセスしてください。
■ タイマデータレジスタ
図 13.3-2 フリーランタイマのタイマデータレジスタ (TCDT0/TCDT1)
アドレス
bit 15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
00352CH
00352DH
00353CH
00353DH
TCDT0/TCDT1
初期値
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
0000000000000000B
bit0~bit7
TCDT0/TCDT1
下位ビット
Tn0
タイマデータレジスタ 0
Tn1
Tn2
タイマデータレジスタ 1
タイマデータレジスタ 2
Tn3
タイマデータレジスタ 3
Tn4
タイマデータレジスタ 4
Tn5
タイマデータレジスタ 5
Tn6
タイマデータレジスタ 6
Tn7
タイマデータレジスタ 7
n = 0, 1
bit8~bit15
TCDT0/TCDT1
Tn8
R/W:リード / ライト可能
上位ビット
タイマデータレジスタ 8
Tn9
タイマデータレジスタ 9
Tn10
タイマデータレジスタ 10
Tn11
タイマデータレジスタ 11
Tn12
タイマデータレジスタ 12
Tn13
タイマデータレジスタ 13
Tn14
タイマデータレジスタ 14
Tn15
タイマデータレジスタ 15
n = 0, 1
16 ビットフリーランタイマの初期化は次の要因で行われます。
• リセットによる初期化
• タイマ制御ステータスレジスタのクリアビット (CLR) による初期化
• フリーランタイマ 0 : アウトプットコンペアのコンペアレジスタ 0 とタイマカウン
タ値の一致による初期化
• フリーランタイマ 1 : アウトプットコンペアのコンペアレジスタ 4 とタイマカウン
タ値の一致による初期化
187
第 13 章 16 ビット入出力タイマ
タイマ制御ステータスレジスタ
13.3.2
タイマ制御ステータスレジスタは , 16 ビットフリーランタイマの動作モードの設定 ,
起動・停止や割込みの制御を行います。
■ タイマ制御ステータスレジスタ ( 下位 )
図 13.3-3 フリーランタイマのタイマ制御ステータスレジスタの構成 (TCCSL0/TCCSL1)
アドレスbit
00352EH
00353EH
7
IVF
6
5
4
3
2
1
0
TCCSL0/TCCSL1
初期値
IVFE STOP MODE CLR CLK2 CLK1 CLK0
0 0 0 0 0 0 0 0B
R/W R/W R/W R/W R/W R/W R/W R/W
bit 2
bit1
CLK2
CLK1
bit 0
0
0
0
0
0
1
/2
0
1
0
/4
0
1
1
/8
1
0
0
/ 16
1
0
1
/ 32
1
1
0
/ 64
1
1
1
/ 128
カウントクロック選択
CLK0
= MCUクロック
bit 3
CLR
0
1
クリアタイマ
書込み時
読出し時
常に "0" を読み出す
影響なし
タイマを"0000B"にクリア
bit 4
MODE
0
1
タイマのリセット条件を設定
リセットまたはクリアビットにより初期化
リセット , クリアビットまたはコンペアレジスタ 0 により初期化
bit 5
STOP
0
1
エッジ選択ビット ( 入力キャプチャ n)
エッジ検索なし ( ストップ )
上昇エッジ検索
bit 6
IVFE
エッジ選択ビット ( 入力キャプチャ n)
0
エッジ検索なし ( ストップ )
1
上昇エッジ検索
bit 7
IVF
R/W
188
:
リード / ライト可能
:
初期値
割込み要求フラグ
書込み時
0
読出し時
割込みなし
このビットをクリア
1
割込み要求
影響なし
第 13 章 16 ビット入出力タイマ
表 13.3-1 フリーランタイマの制御ステータスレジスタ ( 下位 )
ビット名
機能
•
•
•
•
割込み要求フラグビットとクリアビット
"0" 書込み:可能な割込みは削除
"1" 書込み:影響なし
リードモディファイライト (RMW) 系命令をサイクル中は必ず "1" を
書き込んでください。
bit7
IVF:
割込み要求
フラグ
bit6
IVFE:
エッジ選択ビット
( 入力
キャプチャ n)
• 割込み要求許可
• "0" 書込み : 割込み禁止
• "1" 書込み : 割込み許可
bit5
STOP:
エッジ選択ビット
( 入力
キャプチャ n)
• タイマを停止するために使用
• "0" 書込み : カウンタ禁止 ( 動作 )
• "1" 書込み : カウンタ許可 ( 停止 )
bit4
MODE:
タイマの
リセット条件を
設定
• "0": リセットまたはクリアビットで初期化
• "1": フリーランタイマ 0 : リセット , クリアビットまたはコンペアレジス
タ 0 で初期化
フリーランタイマ 1 : リセット , クリアビットまたはコンペアレジ
スタ 4 で初期化
• 16 ビットフリーランタイマを "0000B" 値へ初期化
bit3
CLR:
クリアタイマ
• "0" 書込み : 影響なし
• "1" 書込み : カウンタが初期化されます
( 注意事項 )
• タイマカウンタが停止している間,カウンタ値を初期化するには, "0000B"
をタイマデータレジスタに書き込んでください。
• "1" を書き込んだ後 , 次のカウントクロックまでにこのビットへの "0"
書き込みを行うと , カウンタ値の初期化は行われません。
16 ビットフリーランタイマ用カウントクロックを選択するために使用し
ます。値がこのビットに書き込まれた後 , 直ちにクロックがアップデー
トされます。そのため , このビットに値を書き込む前に入力キャプチャ
動作が停止していることを確認してください。
bit2
~
bit0
CLK2, CLK1,
CLK0:
カウントクロック
選択
CLK2
CLK1
0
0
CLK0 カウント φ= 20 MHz φ= 16 MHz φ= 8 MHz φ= 4 MHz φ= 1 MHz
クロック
0
φ
50 ns
62.5 ns
125 ns
0.25 μs
1 μs
0
0
1
φ/ 2
100 ns
125 ns
0.25 μs
0.5 μs
2 μs
0
1
0
φ/ 4
0.2 μs
0.25 μs
0.5 μs
1 μs
4 μs
0
1
1
φ/ 8
0.4 μs
0.5 μs
1 μs
2 μs
8 μs
1
0
0
φ/ 16
0.8 μs
1 μs
2 μs
4 μs
16 μs
1
0
1
φ/ 32
1.6 μs
2 μs
4 μs
8 μs
32 μs
1
1
0
φ/ 64
3.2 μs
4 μs
8 μs
16 μs
64 μs
1
1
1
φ/ 128
6.4 μs
8 μs
16 μs
32 μs
128 μs
189
第 13 章 16 ビット入出力タイマ
■ タイマ制御ステータスレジスタ ( 上位 )
図 13.3-4 フリーランタイマのタイマ制御ステータスレジスタの構成 (TCCSH0/TCCSH1)
アドレス: bit 15
00352FH
00353FH
14
13
12
11
10
9
8
TCCSH0/TCCSH1
初期値
ECKE
R/W
0xxxxxxx
-
-
-
R/W
:
リード / ライト可能
-
:
未定義
:
初期値
-
-
-
B
ECKE
0
1
外部クロック許可
内部タイムクロック
FRCK からの外部クロック
表 13.3-2 フリーランタイマのタイマ制御ステータスレジスタ ( 上位 )
ビット名
bit15
ECKE:
外部クロック
許可ビット
bit14
~
bit8
未定義ビット
190
機能
このビットは内部タイマクロックと FRCK からの外部クロックの間で
選択されます。
"0" を書込み : 内部クロックを選択
"1" を書込み : 外部クロックを選択
-
第 13 章 16 ビット入出力タイマ
13.3.3
16 ビットフリーランタイマの動作
16 ビットフリーランタイマはリセット解除後にカウンタ値 "0000H" よりカウントを
開始します。このカウンタ値が 16 ビットアウトプットコンペアと 16 ビットイン
プットキャプチャの基準時間となります。
■ 16 ビットフリーランタイマの動作
カウンタ値は , 次の 5 つの条件でクリアされます。
• オーバフローが発生したとき
• アウトプットコンペアレジスタ 0 値 ( フリーランタイマ 0) またはアウトプットコン
ペアレジスタ 4 値 ( フリーランタイマ 1) とコンペアマッチしたとき ( モード設定が
必要 )
• 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき
• 停止中に TCDT レジスタに "0000H" を書き込んだとき
• リセット時
割込みはオーバフローが発生したときと , アウトプットコンペアレジスタ 0 (4) 値とコ
ンペアマッチしたときに発生できます ( コンペアマッチ割込みはモード設定が必要で
す)。
191
第 13 章 16 ビット入出力タイマ
■ オーバフローによるカウンタクリア
図 13.3-5 オーバフローによるカウンタクリア
カウンタ値
オーバフロー
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
割込み
■ アウトプットコンペアレジスタ 0 (4) 値とコンペアマッチしたときのカウンタクリア
図 13.3-6 アウトプットコンペアレジスタ 0 (4) 値とコンペアマッチしたときのカウンタクリア
カウンタ値
FFFFH
一致
BFFFH
一致
7FFFH
3FFFH
時間
0000H
リセット
コンペアレジスタ値
BFFFH
割込み
■ 16 ビットフリーランタイマのタイミング
● 16 ビットフリーランタイマのクリアタイミング ( コンペアレジスタ 0/4 との一致 )
カウンタのクリアはリセット , ソフトウェア , アウトプットコンペアレジスタ 0 (4) と
の一致で行えます。リセットとソフトウェアでのカウンタクリアはクリア発生ととも
に行われますが , アウトプットコンペアレジスタ 0 (4) との一致によるカウンタクリア
はカウントタイミングに同期して行われます。
図 13.3-7 16 ビットフリーランタイマのクリアタイミング ( コンペアレジスタ 0/4 との一致 )
φ
コンペアレジスタ値
N
コンペアマッチ
カウンタ値
192
N
0000H
第 13 章 16 ビット入出力タイマ
13.4
アウトプットコンペア
アウトプットコンペアモジュールは , 2 つの 16 ビットコンペアレジスタ , 2 本のコ
ンペア出力端子および 1 本の制御レジスタから構成されています。アウトプットコ
ンペアレジスタに設定された値と 16 ビットフリーランタイマ値が一致したら , 端子
の出力レベルを反転するとともに割込みを発生できます。
■ アウトプットコンペア
• MB90390 シリーズでは , 4 つの異なるアウトプットコンペアモジュールが使用でき
ます。
• 各モジュールにアウトプットコンペアレジスタは全部で 2 本あり , 独立して動作で
きます。また , 設定により 2 本のアウトプットコンペアレジスタを使い端子の出力
を制御可能です。
• 端子の出力初期値を独立して設定できます。
• 各モジュール用に 1 パルス幅の変調信号が発生できます。
• 各 2 フリーランタイマには 3 パルス幅の変調信号が有効です。
■ アウトプットコンペアのブロックダイヤグラム
図 13.4-1 に , アウトプットコンペアのブロックダイヤグラムを示します。
図 13.4-1 アウトプットコンペアのブロックダイヤグラム
16 ビットタイマカウンタ値 (T15 ~ T00)
T
コンペア制御
Q
OTE0
OUT0
CMP0EXT / CMP4EXT
コンペアレジスタ 0
CMOD1
16 ビットタイマカウンタ値 (T15 ~ T00)
バ
ス
CMOD0
T
コンペア制御
Q
OTE1
OUT1
コンペアレジスタ 1
ICP1
ICP0 ICE1 ICE0
コントローラ
制御ブロック
コンペア 1
割込み
コンペア 0
割込み
( 注意事項 ) 上図は出力コンペアユニット 2/3, 4/5, 6/7 でも有効です。
CMP0EXT/CMP4EXT 信号は , 図 13.4-5 に示します。
193
第 13 章 16 ビット入出力タイマ
アウトプットコンペアのレジスタ
13.4.1
16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。レジ
スタ値は初期値不定ですので設定してから起動許可してください。本レジスタは
ワードアクセスしてください。本レジスタ値と 16 ビットフリーランタイマ値が一致
したとき , コンペア信号が発生してアウトプットコンペア割込みフラグをセットし
ます。また , 出力許可をしている場合はコンペアレジスタに対応した出力レベルを
反転します。
コンペアレジスタに再書込みするために , コンペア割込みルーチンかコンペア動作
以内の範囲で不可となります。同期コンペアマッチとコンペアレジスタの書込みが
発生するように気をつけてください。
■ アウトプットコンペアのアウトプットコンペアレジスタ
図 13.4-2 アウトプットコンペアレジスタ (OCCP) の構成
アドレス:bit 15
003530 H
003531 H
003532 H
003533 H
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
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
003534 H
003535 H
003536 H
003537 H
003538 H
003539 H
00353A H
00353B H
00356A H
00356B H
00356C H
00356E H
OCCP0
OCCP1
:
OCCP7
初期値
XXXXXXXXXXXXXXXX
bit0~bit7
OCCPn
下位ビット
C00
コンペアデータレジスタ 0
C01
コンペアデータレジスタ 1
C02
コンペアデータレジスタ 2
C03
コンペアデータレジスタ 3
C04
コンペアデータレジスタ 4
C05
コンペアデータレジスタ 5
C06
コンペアデータレジスタ 6
C07
コンペアデータレジスタ 7
n = 0, 1, 2, 3, 4, 5, 6, 7
bit8~bit15
R/W:リード / ライト可能
194
OCCPn
上位ビット
C08
コンペアデータレジスタ 8
C09
コンペアデータレジスタ 9
C10
コンペアデータレジスタ 10
C11
コンペアデータレジスタ 11
C12
コンペアデータレジスタ 12
C13
コンペアデータレジスタ 13
C14
コンペアデータレジスタ 14
C15
コンペアデータレジスタ 15
n = 0, 1, 2, 3, 4, 5, 6, 7
B
第 13 章 16 ビット入出力タイマ
13.4.2
アウトプットコンペア制御ステータスレジスタ
制御ステータスレジスタは , アウトプットコンペアの動作モードの設定 , 起動・停止
や割込みの制御 , 外部出力端子の設定を行います。
■ アウトプットコンペア制御ステータスレジスタ ( 下位 )
図 13.4-3 アウトプットコンペア制御ステータスレジスタ (OCS0/OCS2/OCS4/OCS6)
アドレス: bit
7
6
5
4
000058 H ICPm ICPn ICEm ICEn
00005AH
00005CH R/W R/W R/W R/W
003568 H
3
2
1
0
OCS0
OCS4
CSTm CSTn
-
-
R/W R/W
OCS2
OCS6
初期値
0 0 0 0 X X 0 0B
bit 0
ユニット n 用タイマの比較
CSTn
0
ユニット n 用コンペア動作禁止
1
ユニット n 用コンペア動作許可
bit 1
ユニット m 用タイマの比較
CSTm
0
ユニット m 用コンペア動作禁止
1
ユニット m 用コンペア動作許可
bit 4
ユニット n 用コンペア割込み許可
ICEn
0
ユニット n 用出力コンペア割込み禁止
1
ユニット n 用出力コンペア割込み許可
bit 5
ICEm
0
1
ユニット m 用コンペア割込み許可
ユニット m 用出力コンペア割込み禁止
ユニット m 用出力コンペア割込み許可
bit 6
ICPn
0
1
ユニット n 用コンペア一致許可
ユニット n 用コンペア一致なし
ユニット n 用コンペ一致あり
bit 7
R/W
X
-
: リード / ライト可能
: 不定
: 未定義
: 初期値
ICPm
0
1
ユニット m 用コンペア一致許可
ユニット m 用コンペア一致なし
ユニット m 用コンペ一致あり
n = 0, 2, 4, 6 m = 1, 3, 5, 7
195
第 13 章 16 ビット入出力タイマ
表 13.4-1 アウトプットコンペア制御ステータスレジスタ ( 下位 )
ビット名
機能
• アウトプットコンペア割込みフラグとして使用します。コンペアレジ
スタ値が 16 ビットフリーランタイマ値と一致すると , このビットに "1"
が設定されます。割込み要求 (ICEm と ICEn) が許可のとき , ICPm と
ICPn ビットが設定されると アウトプットコンペア割込みが発生しま
す。"0" 書込みで解除されます。
• "0": コンペア一致なし
• "1": コンペア一致あり
• "1" 書込みは影響しません。
• リードモディファイライト (RMW) 系命令では , 必ず "1" を読み出しま
す。
( 注意事項 )
ICPn: アウトプットコンペア n に対応
ICPm: アウトプットコンペア m に対応
bit7
ICPm
bit6
ICPn
bit5
ICEm
bit4
ICEn
bit3,
bit2
未定義
-
bit1
CSTm
bit0
CSTn
• コンペア動作が許可される前に , コンペアレジスタを許可するため
• "0" 書込み : コンペア動作禁止
• "1" 書込み : コンペア動作許可
( 注意事項 )
コンペア動作が許可される前に , 値がコンペアレジスタに書き込まれる
ことを確認してください。
CSTn: アウトプットコンペア n に対応
CSTm: アウトプットコンペア m に対応
アウトプットコンペアは , 1 ビットフリーランタイマクロックに同調す
るため , 16 ビットフリーランタイマが停止するとコンペア動作が止ま
ります。
n = 0, 2, 4, 6
m = 1, 3, 5, 7
196
• アウトプットコンペア割込み許可フラグとして使用します。"1" が書き
込まれて割込みフラグ (ICPm または ICPn) が設定されるときに アウト
プットコンペア割込みが発生します。
• "0" 書込み : アウトプットコンペア割込み禁止
• "1" 書込み : アウトプットコンペア割込み許可
( 注意事項 )
ICEn: アウトプットユニット n に対応
ICEm: アウトプットユニット m に対応
第 13 章 16 ビット入出力タイマ
■ アウトプットコンペア制御ステータスレジスタ ( 上位 )
図 13.4-4 アウトプットコンペア制御ステータスレジスタの構成 (OCS1/OCS3/OCS5/OCS7)
アドレス: bit 15
14
000059 H CMOD1
00005BH
00005DH R/W 003569 H
13
12
11
10
9
8
OCS1
OCS5
CMOD0 OTEm OTEn OTDm OTDn
-
R/W R/W R/W R/W R/W
OCS3
OCS7
初期値
0XX00000B
bit 8
ユニット m 用出力端子レベル選択
OTDn
0
ユニット m 用コンペア端子出力を "0" に設定
1
ユニット m 用コンペア端子出力を "1" に設定
bit 9
ユニット m 用出力端子レベル選択
OTDm
0
ユニット m 用コンペア端子出力を "0" に設定
1
ユニット m 用コンペア端子出力を "1" に設定
bit 10
OTEn
0
1
ユニット n 用出力端子選択
ユニット n の対応端子用汎用ポート
ユニット n 用出力コンペア端子を出力
bit11
OTEm
0
1
R/W
:
X
-
:
:
リード / ライト可能
不定
未定義
:
初期値
ユニット m 用出力端子選択
ユニット m の対応端子用汎用ポート
ユニット m 用出力コンペア端子を出力
bit 15
bit 12
CMOD1
CMOD0
0
0
端子用比較モード定義
表 13.4-3 を参照
n = 0, 2, 4, 6 m = 1, 3, 5, 7
197
第 13 章 16 ビット入出力タイマ
表 13.4-2 アウトプットコンペア制御ステータスレジスタ ( 上位 )
ビット名
bit15, bit12
CMOD0,
CMOD1
bit14, bit13
未使用
bit11
OTEm
bit10
OTEn
bit9
OTDm
bit8
OTDn
n = 0, 2, 4, 6
m = 1, 3, 5, 7
198
機能
端子出力値の動作モードを定義します。定義されたモードによっ
てレベルは異なるコンペアレジスタとの一致を反転させます。表
13.4-3 を参照してください。
-
アウトプットコンペア出力端子を許可するために使用します。初
期値は "0" です。
• "0": 汎用ポート
• "1": アウトプットコンペア端子出力
( 注意事項 )
OTEn : アウトプットコンペア n に対応
OTEm : アウトプットコンペア m に対応
出力として指定する場合 , ポート方向にレジスタの対応する
ビットには必ず "1" を設定してください。
コンペア端子出力が許可のとき , 端子出力レベルを変えるために使
用します。コンペア出力端子の初期値は "0" です。数値が書き込ま
れる前にコンペア動作が停止することを確認してください。読出
し時 , このビットはアウトプットコンペア端子出力を表示します。
• "0" 書込み : コンペア端子出力に "0" を設定
• "1" 書込み : コンペア端子出力に "1" を設定
( 注意事項 )
OTDn : アウトプットコンペア n に対応
OTDm : アウトプットコンペア m に対応
第 13 章 16 ビット入出力タイマ
表 13.4-3 CMOD1, CMOD0 ビットの機能
レジスタ数との一致で反転する端子出力値
OCS1
Register OCCPx
CMOD1
CMOD0
OUT0
x
0
0
1
x
1
0
0/1
OCS3
OUT1
Register OCCPx
CMOD1
CMOD0
OUT2
0
0
2
3
0
1
2
2/3
1
0
0/2
0/3
1
1
0/2
0/2/3
CMOD1
CMOD0
OUT4
OUT5
x
0
4
5
x
1
4
4/5
CMOD1
CMOD0
OUT6
OUT7
0
0
6
7
0
1
6
6/7
OCS5
OUT3
Register OCCPx
OCS7
Register OCCPx
1
0
4/6
4/7
1
1
4/6
4/6/7
図 13.4-5 出力選択のブロックダイヤグラム (OCU モジュール 1)
コンペア制御2
OUT2
CMOD1
CMP0EXT
CMOD0
OUT3
コンペア制御3
CMOD[1:0] = 10B の場合 , OCU モジュール 1 には , 出力コンペアレジスタ 0 での一致
が要求され , モジュール 0 からの比較結果は CMPEXT 信号により内的に運ばれます。
これは , モジュール 0 自身には当てはまりません。ここでは , レジスタとして OCCP0
と OCCP1 以外は使用されません。同じことが OCU モジュール 3 でも当てはまり , モ
ジュール 2 からの結果が CMP4EXT として必要です。
199
第 13 章 16 ビット入出力タイマ
13.4.3
16 ビットアウトプットコンペアの動作
16 ビットアウトプットコンペアは , 設定されたアウトプットコンペアレジスタ値と
16 ビットフリーランタイマとの値を比較して , 一致したら割込み要求フラグをセッ
トするとともに出力レベルを反転できます。CMOD0, CMOD1 ビットは , 各端子に対
応するコンペアレジスタを定義するために使われます。
■ CMOD[1:0] = 00B のときの出力波形例
CMOD[1:0] = 00B のとき , コンペアレジスタに対応する端子の出力レベルはレジスタ値
とのすべての一致を反転させます。各出力レベルは , 1 つのコンペアレジスタで制御さ
れます。
OUT0: レベルは , アウトプットコンペアレジスタ 0 との一致で反転します。
OUT1: レベルは , アウトプットコンペアレジスタ 1 との一致で反転します。
図 13.4-6 コンペアレジスタ 0, 1 を使用したときの出力波形例
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
OCCP0値
BFFFH
OCCP1値
7FFFH
OUT0
OUT1
コンペア 0 割込み
コンペア 1 割込み
( 注意事項 ) この図では , どちらの端子も初期値は "0" です。
200
第 13 章 16 ビット入出力タイマ
■ CMOD[1:0] = 01B のときの 2 コンペアレジスタでのサンプル出力波形
CMOD[1:0] = 01B のとき , コンペアレジスタ 0 (2) と対応する端子の出力レベルはレジ
スタ値が一致するごとに反対になります。これは , CMOD[1:0] = 00B のときでも全く同
じです。しかし , 第 2 端子の出力レベルは , コンペアレジスタ 0 かコンペアレジスタ 1
(3) で示されるほかのエッジでのパルスされた信号を明確にします。逆もまた同様です。
両コンペアレジスタが同じ値をとる場合は , CMOD[1:0] = 00B のケースと同じです。
異なる周波数でのパルス幅変調信号は , フリーランタイマ (TCCSL0/TCCSL1 レジスタ
の MODE ビット ) と対応したコンペアレジスタに基づくリセットオプションを付加し
たモードの共同使用により明示されます。
OUT0 (2):
このレベルはアウトプットコンペアレジスタ 0 (2) との一致によってのみ
反転します。
OUT1 (3):
このレベルはアウトプットコンペアレジスタ 0 (2) かアウトプットコンペ
アレジスタ 1 (3) との一致によって反転します。
OUT4 ~ OUT7 については , アウトプットコンペアレジスタ 4 が上述のアウトプットコ
ンペアレジスタ 0 と同じ役割を果たします。
図 13.4-7 CMOD[1:0] = 01B のときのサンプル出力波形 ( 一致によるタイマリセットなし )
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
OCCP0 値
BFFFH
OCCP1 値
7FFFH
OUT0
OUT1
( 注意事項 ) この図では , 両端子ともに初期値は "0" です。
図 13.4-8 CMOD[1:0] = 01B のときのサンプル出力波形 ( 一致によるタイマリセットあり )
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
OCCP0 値
BFFFH
OCCP1 値
7FFFH
OUT0
OUT1
( 注意事項 ) この図では , 両端子ともに初期値は "0" です。
201
第 13 章 16 ビット入出力タイマ
■ CMOD[1:0] = 10B のときのサンプル出力波形
前述のコンペアレジスタの代わりに , CMOD[1:0] = 10B で示される動作モードは , 各フ
リーランタイマの 3 パルス幅変調信号の使用を試みます。このモードを OCU モジュー
ル 1 に設定する場合 , コンペアレジスタ 0 でのタイマ値の一致により , OUT2 と OUT3
になります。第 3 パルス信号では , OCU モード 0 の CMOD[1:0] ビットは "01B" に設定
してください。
OCS1: CMOD[1:0] = 01B のとき
OUT0: このレベルは , アウトプットコンペアレジスタ 0 との一致によってのみ予約さ
れます。
OUT1: このレベルは , アウトプットコンペアレジスタ 0 またはアウトプットコンペア
レジスタ 1 との一致によって予約されます。
OCS3: CMOD[1:0] = 10B のとき
OUT2: このレベルは , アウトプットコンペアレジスタ 0 またはアウトプットコンペア
レジスタ 2 との一致によって予約されます。
OUT3: このレジスタは , アウトプットコンペアレジスタ 0 またはアウトプットコンペ
アレジスタ 3 との一致によって予約されます。
OUT4 ~ OUT7 については , アウトプットコンペアレジスタ 4 が上述のアウトプットコ
ンペアレジスタ 0 と同じ役割を果たします。
図 13.4-9 OCS1.CMOD[1:0] = 01B, OCS3.CMOD[1:0] = 10B のときのサンプル出力波形
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
OCCP0 値
OCCP1 値
OCCP2 値
OCCP3 値
BFFFH
7FFFH
3FFFH
5FFFH
OUT0
OUT1
OUT2
OUT3
( 注意事項 ) この図では , 全端子ともに初期値は "0" です。タイマリセットはコンペアレジスタ 0 での一致です。
202
第 13 章 16 ビット入出力タイマ
■ CMOD[1:0] = 11B のときのサンプル出力波形
CMOD[1:0] = 11B のとき , OUT3 (OUT7) 端子の出力レベルは , コンペアレジスタ 0, 1, 2,
3 (4, 6, 7) によって予約されます。OUT1 (OUT5) 端子では , この決定は CMOD[1:0] = 01B
と同じです ( 表 13.4-3 を参照 )。
OUT0: このレベルは , コンペアレジスタ 0 との一致によってのみ予約されます。
OUT1: このレベルは , コンペアレジスタ 0 またはコンペアレジスタ 1 との一致によっ
て予約されます。
OUT2: このレベルは , コンペアレジスタ 0 またはコンペアレジスタ 2 との一致によっ
て予約されます。
OUT3: このレベルは , コンペアレジスタ 0, コンペアレジスタ 2 またはコンペアレジス
タ 3 との一致によって予約されます。
OUT4 ~ OUT7 については , コンペアレジスタ 4 が上述のコンペアレジスタ 0 と同じ役
割を果たします。
図 13.4-10 OCS1:CMOD[1:0] = 11B, OCS3:CMOD[1:0] = 11B のときの出力波形
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
OCCP0 値
BFFFH
OCCP1 値
7FFFH
OCCP2 値
3FFFH
OCCP3 値
5FFFH
OUT0
OUT1
OUT2
OUT3
( 注意事項 ) この図では , 全端子ともに初期値は "0" です。タイマリセットはコンペアレジスタ 0 での一致です。
203
第 13 章 16 ビット入出力タイマ
■ アウトプットコンペアのタイミング
アウトプットコンペアは , フリーランタイマと設定したアウトプットコンペアレジス
タの値が一致したときにコンペアマッチ信号が発生して出力値を反転するとともに割
込みを発生できます。コンペアマッチ時の出力反転タイミングはカウンタのカウント
タイミングに同期して行われます。
● コンペアレジスタ書換え時のコンペア動作
アウトプットコンペアレジスタ書換え時のカウンタ値とはコンペアしません。
● アウトプットコンペアの割込みタイミング
図 13.4-11 アウトプットコンペアの割込みタイミング
φ
カウンタ値
N
N+1
コンペア
レジスタ値
N
コンペアマッチ
割込み
● アウトプットコンペアの出力端子変化タイミング
図 13.4-12 アウトプットコンペアの出力端子変化タイミング
カウンタ値
コンペアレジスタ値
コンペアマッチ信号
端子出力
204
NN+1
N+1
N
N
第 13 章 16 ビット入出力タイマ
インプットキャプチャ
13.5
インプットキャプチャには外部から入力された信号の立上りエッジ , 立下りエッジ
または両エッジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに
保持する機能があります。また , エッジ検出時に割込みを発生できます。インプッ
トキャプチャは , インプットキャプチャデータレジスタ , 制御レジスタで構成されて
います。
■ インプットキャプチャ
各インプットキャプチャには , それぞれに対応した外部入力端子があります。
● 外部入力の有効エッジを 3 種類から選択可能です。
表 13.5-1 外部入力の有効エッジ
立上りエッジ
↑
立下りエッジ
↓
両エッジ
↑↓
● 外部入力の有効エッジを検出したときに割込みを発生できます。
■ インプットキャプチャのブロックダイヤグラム
図 13.5-1 に , インプットキャプチャのブロックダイヤグラムを示します。
図 13.5-1 インプットキャプチャの全体ブロックダイヤグラム
フリーランタイマからのカウンタ値
バ
ス
IN0
エッジ検出
キャプチャデータレジスタ 0
EG11 EG10 EG01 EG00
エッジ検出
キャプチャデータレジスタ 0
ICP1
ICP0
ICE1
IEI1
IEI0
IN1
ICE0
割込み
割込み
( 注意事項 ) 上の図は , キャプチャユニット 2/3 とキャプチャユニット 4/5 にも有効です。
205
第 13 章 16 ビット入出力タイマ
インプットキャプチャのレジスタ
13.5.1
インプットキャプチャのレジスタには次の 3 つがあり , 対応した外部端子入力波形
の有効エッジを検出したとき 16 ビットフリーランタイマ値を保持するレジスタで
す ( ワードアクセスしてください。書込みはできません ) 。
• インプットキャプチャデータレジスタ
• インプットキャプチャ制御ステータスレジスタ
• インプットキャプチャエッジレジスタ
■ インプットキャプチャデータレジスタ
図 13.5-2 インプットキャプチャデータレジスタ (IPCP)
bit 15
アドレス
IPCP0:
003520H
R
IPCP1:
003522H
IPCP2:
003524H
IPCP3:
003526H
IPCP4:
003528H
IPCP5:
00352AH
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
IPCP0~IPCP5
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
初期値
XXXXXXXXXXXXXXXXB
IPCPn
下位ビット
CP00
インプットキャプチャデータレジスタ 0
CP01
インプットキャプチャデータレジスタ 1
CP02
インプットキャプチャデータレジスタ 2
CP03
インプットキャプチャデータレジスタ 3
CP04
インプットキャプチャデータレジスタ 4
CP05
インプットキャプチャデータレジスタ 5
CP06
インプットキャプチャデータレジスタ 6
CP07
インプットキャプチャデータレジスタ 7
n = 0,1,2,3,4,5
上位ビット
IPCPn
R:リードオンリ
206
CP08
インプットキャプチャデータレジスタ 8
CP09
インプットキャプチャデータレジスタ 9
CP10
インプットキャプチャデータレジスタ 10
CP11
インプットキャプチャデータレジスタ 11
CP12
インプットキャプチャデータレジスタ 12
CP13
インプットキャプチャデータレジスタ 13
CP14
インプットキャプチャデータレジスタ14
CP15
インプットキャプチャデータレジスタ 15
n = 0,1,2,3,4,5
第 13 章 16 ビット入出力タイマ
■ インプットキャプチャ制御ステータスレジスタ
図 13.5-3 インプットキャプチャ制御ステータスレジスタ (ICS)
bit 15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0
ICS01
000054 H
ICPm ICPn ICEm ICEn EGm1 EGm0 EGn1 EGn0
000055 H
000056 H R/W R/W R/W R/W R/W R/W R/W R/W
ICS23
アドレス
初期値
0 0 0 0 0 0 0 0B
ICS45
bit9/bit1
bit8/bit0
EGn1
EGn0
0
0
0
1
エッジ選択ビット ( 入力キャプチャ n)
エッジ検索なし ( ストップ )
立上りエッジ検索
1
0
立下りエッジ検索
1
1
両エッジ検索
bit11/bit3
bit10/bit2
EGm1
EGm0
0
0
0
1
1
0
1
1
エッジ選択ビット ( 入力キャプチャ m)
エッジ検索なし ( ストップ )
立上りエッジ検索
立下りエッジ検索
両エッジ検索
bit12/bit4
0
エッジ選択ビット ( インプットキャプチャ n)
エッジ検索なし ( ストップ )
1
立上りエッジ検索
ICEn
bit13/bit5
0
エッジ選択ビット ( インプットキャプチャ m)
エッジ検索なし ( ストップ )
1
立上りエッジ検索
ICEm
bit14/bit6
ICPn
割込み要求フラグビット ( インプットキャプチャ n)
読出し時
書込み時
0
有効検出なし
このビットをクリア
1
有効検出あり
影響なし
bit15/bit7
ICPm
R/W
: リード / ライト可能
: 初期値
割込み要求フラグビット ( インプットキャプチャ m)
読出し時
書込み時
0
有効検出なし
このビットをクリア
1
有効検出あり
影響なし
n = 0, 2, 4 m = 1, 3, 5
207
第 13 章 16 ビット入出力タイマ
表 13.5-2 インプットキャプチャ制御ステータスレジスタビット ( 上位・下位 )
ビット名
機能
ICPn+1/3:
割込み要求フラグ
ビット ( インプッ
トキャプチャ n+1/
3)
• インプットキャプチャ n, m 用割込み要求フラグとして使用
します。
• 外部入力端子の有効エッジ決定で "1" が設定されます。
• 割込み許可ビット (ICEn+1/3) が設定されると , 有効エッジ決
定で割込みが発生します。
• "0" 書込みはこのビットを解除します。
• "1" 書込みは影響しません。
• リードモディファイライト (RMW) 系命令では必ず "1" を読
み出します。
bit14, bit6
ICPn/2:
割込み要求フラグ
ビット ( インプッ
トキャプチャ n/2)
• インプットキャプチャ n, m 用割込み要求フラグとして使用
します。
• 外部入力端子の有効エッジ決定で "1" が設定されます。
• 割込み許可ビット (ICEn/2) が設定されると , 有効エッジ決定
で割込みが発生します。
• "0" 書込みはこのビットを解除します。
• "1" 書込みは影響しません。
• リードモディファイライト (RMW) 系命令では必ず "1" を読
み出します。
bit13, bit5
ICEn+1/3:
割込み要求フラグ
ビット ( インプッ
トキャプチャ n+1/
3)
• インプットキャプチャ n+1/3 用のインプットキャプチャ割込
み要求を許可するために使用されます。
• "1" が書き込まれると , 割込みフラグ (ICPn+1/3) が設定され
るときにインプットキャプチャ割込みが発生します。
bit12, bit4
ICEn/2:
割込み要求フラグ
ビット ( インプッ
トキャプチャ n/2)
• インプットキャプチャ n/2 用のインプットキャプチャ割込み
要求を許可するために使用されます。
• "1" が書き込まれると , 割込みフラグ (ICPn/2) が設定される
ときにインプットキャプチャ割込みが発生します。
bit11,
bit10,
bit3, bit2
EG[n+1]1, EG[n+1]0
/ EG31, EG30
• インプットキャプチャ n+1/3 用外部入力の有効エッジ極性を
指定するために使用されます。
• インプットキャプチャ動作を許可するためにも使用されま
す。
bit8, bit9,
bit1, bit0
EGn1, EGn0 / EG21,
EG20
• インプットキャプチャ n/2 用外部入力の有効エッジ極性を指
定するために使用されます。
• インプットキャプチャ動作を許可するためにも使用されま
す。
bit15, bit7
n = 0, 4
208
第 13 章 16 ビット入出力タイマ
■ インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45)
図 13.5-4 インプットキャプチャエッジレジスタ (ICE)
初期値
bit 15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0
アドレス
X X X X X 0* X XB
0035C9 H
0035CA H
0035CB H
-
-
-
-
-
IUCE IEIm
IEIn
R/W R
R
* ICE01 and ICE45 ("X" otherwise)
bit8/bit0
有効エッジ表示ビット ( 入力キャプチャ n)
IEIn
0
立上りエッジ検出
1
立下りエッジ検出
bit9/bit1
0
有効エッジ表示ビット ( 入力キャプチャ m)
立上りエッジ検出
1
立下りエッジ検出
IEIm
:
リード / ライト可能
R
:
リードオンリ
-
:
未定義
:
初期値
R/W
bit10
( 入力キャプチャ 1, 5 のみ )
IUCE
0
1
n = 0, 2, 4
UART3 への入力キャプチャ接続許可
外部入力キャプチャ接続
入力キャプチャへの UART3 接続
m = 1, 3, 5
表 13.5-3 インプットキャプチャエッジレジスタビット ( 上位・下位 ) (1 / 2)
ビット名
bit15 ~ bit11,
bit7 ~ bit3
bit10
bit2
不定
機能
-
IUCE:
UART3 接続
許可への
インプット
キャプチャ
• インプットキャプチャユニット 1, 5 のキャプチャソースを選
択します。UART3-LIN 動作によって使用されます。
• "0" 書込み : キャプチャソースは外部です。
• "1" 書込み : キャプチャソースは UART3 です。
MB90V390HA/
MB90V390HB:
IUCE3:
UART2 接続
許可への
インプット
キャプチャ
IUCE3 ビットは MB90V390HA/MB90V390HB にのみあります。
• インプットキャプチャユニット 3 のキャプチャソースを選択
します。UART2-LIN 動作によって使用されます。
• "0" 書込み : キャプチャソースは外部です。
• "1" 書込み : キャプチャソースは UART2 です。
MB90394HA, MB90F394H(A) ではこのビットは未定義です。
MB90394HA,
MB90F394H(A):
不定
bit9, bit1
IEIm:
有効エッジ
表示ビット
• キャプチャレジスタ IPCP1, IPCP3, IPCP5 の有効エッジ表示
ビットで , 立上りまたは立下りエッジの検出を表示します。
• "0": 立下りエッジが検出
• "1": 立上りエッジが検出
• 読出しのみ可能です。
( 注意事項 )
EGm1, EGm0 = 00B のとき , 読出し値に意味はありません。
209
第 13 章 16 ビット入出力タイマ
表 13.5-3 インプットキャプチャエッジレジスタビット ( 上位・下位 ) (2 / 2)
ビット名
bit8, bit0
n = 0, 2, 4
m = 1, 3, 5
210
IEIn:
有効エッジ
表示ビット
機能
• キャプチャレジスタ IPCP0, IPCP2, IPCP4 の有効エッジ表示
ビットで , 立上りまたは立下りエッジの検出を表示します。
• "0": 立下りエッジが検出
• "1": 立上りエッジが検出
• 読出しのみ可能です。
( 注意事項 )
EGn1, EGn0 = 00B のとき , 読出し値に意味はありません。
第 13 章 16 ビット入出力タイマ
16 ビットインプットキャプチャの動作
13.5.2
16 ビットインプットキャプチャは設定された有効エッジを検出すると 16 ビットフ
リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することがで
きます。
■ インプットキャプチャの取込みタイミング例
• キャプチャ 0= 立上りエッジ
• キャプチャ 1= 立下りエッジ
• キャプチャ例 = 両エッジ ( 例として )
図 13.5-5 インプットキャプチャの取り込みタイミング例
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
IN0
IN1
キャプチャ 0
不定
キャプチャ 1
不定
キャプチャ例
キャプチャ 0
割込み
キャプチャ 1
割込み
キャプチャ
割込み
不定
3FFFH
7FFFH
BFFFH
3FFFH
■ インプットキャプチャ入力タイミング
● 入力信号に対するキャプチャタイミング
図 13.5-6 入力信号に対するキャプチャタイミング
φ
カウンタ値
インプット
キャプチャ入力
N
N+1
有効エッジ
キャプチャ信号
キャプチャレジスタ
N+1
割込み
211
第 13 章 16 ビット入出力タイマ
212
第 14 章
16 ビットリロードタイマ
( イベントカウント
機能付き )
16 ビットリロードタイマ ( イベントカウント機能
付き ) の機能と動作について説明します。
14.1 16 ビットリロードタイマ ( イベントカウント機能付き )
の概要
14.2 16 ビットリロードタイマのレジスタ
14.3 16 ビットリロードタイマの内部 / 外部クロック動作
14.4 16 ビットリロードタイマのアンダフロー動作
14.5 16 ビットリロードタイマの出力端子機能
14.6 カウンタの動作状態
213
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
14.1
16 ビットリロードタイマ ( イベントカウント機能付き )
の概要
16 ビットリロードタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジ
スタ , 入力端子 1 本 (TIN), 出力端子 1 本 (TOT), 制御レジスタで構成されています。
入力クロックとして内部クロック 3 種類と外部クロックを選択できます。
■ 16 ビットリロードタイマ ( イベントカウント機能付き ) の概要
出力端子 (TOT) には , リロードモード時にはトグル出力波形を出力し , ワンショット
モード時にはカウント中を示す矩形波を出力します。入力端子 (TIN) は , イベントカウ
ントモード時にイベント入力となり , 内部クロックモード時にはトリガ入力または
ゲート入力に使用できます。
MB90390 シリーズの 16 ビットリロードタイマは 2 つです。
■ インテリジェント I/O サービス (EI2OS) 機能と割込み
本タイマは EI2OS 対応の回路を有しています。このため , 本タイマのアンダフローによ
り EI2OS を起動できます。本製品では , 2 つのタイマすべてが EI2OS で使用できますが ,
割込みコントローラ内の割込み制御レジスタ(ICRx) 1つに対して2つのタイマ(ch.0+ch.1)
を接続してありますので , ch.0 と ch.1 を別の用途の EI2OS に割り当てることはできませ
ん。また , 2 つのタイマはそれぞれ別の割込みベクタを持っていますので , 割込みは同時
に 2 つの用途に使用できますが , ch.0 と ch.1 の割込み制御レジスタが上記共有関係にあ
りますので , 割込みレベルは組合せのチャネルで同一のレベルとなります。
214
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
■ 16 ビットリロードタイマのブロックダイヤグラム
図 14.1-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。
図 14.1-1 16 ビットリロードタイマのブロックダイヤグラム
16
16ビットリロードレジスタ
8
リロード
RELD
F 2 MC-16LXバス
16ビットダウンカウンタ
UF
OUTE
16
OUTL
2
OUT
CTL.
GATE
INTE
UF
CSL1
クロックセレクタ
CNTE
CSL0
TRG
リトリガ
IRQ
クリア
EI2OS CLR
2
IN CTL
ポート(TIN)
EXCK
φ
φ
φ
21
23
25
3
出力許可
ポート(TOT)
プリスケーラクリア
MOD2
MOD1
周辺クロック
UARTボーレート(ch.0)
A/Dコンバータ(ch.1)
MOD0
3
215
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
14.2
16 ビットリロードタイマのレジスタ
16 ビットリロードタイマのレジスタには , 次の 2 種類があります。
• タイマ制御ステータスレジスタ (TMCSR)
• 16 ビットタイマレジスタ (TMR)/16 ビットリロードレジスタ (TMRLR)
■ 16 ビットリロードタイマのレジスタ
TMCSR0/TMCSR1 ( 上位 )
アドレス
000051H
000053H
bit 15
9
8
初期値
14
13
12
11
10
−
−
−
−
CSL1
CSL0
−
−
−
−
R/W
R/W
R/W
R/W
6
5
4
3
2
1
0
初期値
RELD
I NTE
UF
CNTE
TRG
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
13
12
11
10
9
8
MOD2 MOD1
XXXX0000B
TMCSR0/TMCSR1 ( 下位 )
アドレス
000050H
000052H
bit 7
MOD0 OUTE OUTL
R/W
R/W
TMR/TMRLR0/TMRLR1 ( 上位 )
アドレス
003541H
003543H
bit 15
14
初期値
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
5
4
3
2
1
0
TMR/TMRLR0/TMRLR1 ( 下位 )
アドレス
003540H
003542H
bit 7
初期値
XXXXXXXXB
R/W
R/W: リード / ライト可能
X:
不定
-:
未定義
216
6
R/W
R/W
R/W
R/W
R/W
R/W
R/W
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
14.2.1
タイマ制御ステータスレジスタ (TMCSR)
16 ビットタイマの動作モードおよび割込みの制御をします。UF, CNTE, TRG ビット
以外のビットの書換えは , CNTE=0 のときに行うようにしてください。
■ タイマ制御ステータスレジスタ (TMCSR) の配置
TMCSR0/TMCSR1 ( 上位 )
アドレス
000051H
000053H
bit 15
9
8
初期値
14
13
12
11
10
−
−
−
−
CSL1
CSL0
−
−
−
−
R/W
R/W
R/W
R/W
6
5
4
3
2
1
0
初期値
RELD
I NTE
UF
CNTE
TRG
00000000B
R/W
R/W
R/W
R/W
R/W
MOD2 MOD1
XXXX0000B
TMCSR0/TMCSR1 ( 下位 )
アドレス
000050H
000052H
bit 7
MOD0 OUTE OUTL
R/W
R/W
R/W
R/W : リード / ライト可能
X
: 不定
: 未定義
■ タイマ制御ステータスレジスタ (TMCSR) の内容
[bit11, bit10] CSL1, CSL0(ClockSeLect1, 0)
カウントクロックセレクトビットです。選択されるクロックソースを , 表 14.2-1 に
示します。
表 14.2-1 CSL ビット設定クロックソース
クロックソース ( マシンサイクル φ =16MHz)
CSL1
CSL0
0
0
φ/21(0.125μs)
0
1
φ/23(0.5μs)
1
0
φ/25(2.0μs)
1
1
外部イベントカウントモード
[bit9, bit8, bit7] MOD2, MOD1, MOD0
動作モードおよび入出力端子の機能を設定するビットです。
MOD2 ビットは , 入出力の機能を選択するビットです。"0" の場合 , 入力端子はトリ
ガ入力端子となり , 有効エッジが入力されるとリロードレジスタの内容をカウンタ
へロードし , カウント動作を継続します。"1" の場合 , ゲートカウンタモードになり ,
入力端子はゲート入力となり , 有効レベルが入力されている間のみカウントをしま
す。
MOD1, MOD0 ビットは , 各モードにおける端子の機能の設定を行います。MOD2,
MOD1, MOD0 ビットの設定を表 14.2-2 および表 14.2-3 に示します。
217
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
表 14.2-2 MOD2, MOD1, MOD0 ビットの設定方法 (1)
MOD2
MOD1
MOD0
入力端子機能
有効エッジ , レベル
0
0
0
トリガ禁止
―
0
0
1
トリガ入力
立上りエッジ
0
1
0
↑
立下りエッジ
0
1
1
↑
両エッジ
1
×
0
ゲート入力
"L" レベル
1
×
1
↑
"H" レベル
内部クロックモード時 (CSL0, CSL1=00B, 01B, 10B)
表 14.2-3 MOD2, MOD1, MOD0 ビットの設定方法 (2)
MOD2
MOD1
MOD0
入力端子機能
有効エッジ , レベル
0
0
―
―
0
1
トリガ入力
立上りエッジ
1
0
↑
立下りエッジ
1
1
↑
両エッジ
×
• イベントカウントモード時 (CSL0, CSL1=11B)
• 表中の×は , 任意の値
[bit6] OUTE
出力許可ビットです。"0" のとき TOT 端子は汎用ポートになり , "1" のとき TOT 端
子はタイマ出力端子になります。出力波形はリロードモード時トグル出力となり ,
ワンショットモード時はカウンタ中を示す矩形波出力になります。
[bit5] OUTL
TOT 端子の出力レベルを設定するビットです。
表 14.2-4 OUTE, RELD, OUTL の設定方法
218
出力波形
OUTE
RELD
OUTL
0
×
×
汎用ポート
1
0
0
カウント中 "H" の矩形波
1
0
1
カウント中 "L" の矩形波
1
1
0
カウントスタート時 "L" のトグル出力
1
1
1
カウントスタート時 "H" のトグル出力
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
[bit4] RELD(RELoaD)
リロード動作を許可するビットです。"1" のときはリロードモードになり , カウンタ
の値が "0000H" → "FFFFH" へのアンダフローと同時にリロードレジスタの内容をカ
ウンタへロードしてカウント動作を続けます。"0" のときは単発動作モードとなり ,
カウンタの値が "0000H" → "FFFFH" へのアンダフローによりカウント動作を停止し
ます。
[bit3] INTE(INTerrupt Enable)
タイマ割込み要求許可ビットです。"1" のとき UF ビットが "1" になると割込み要求
を発生します。"0" のときは UF ビットが "1" であっても割込み要求を発生しません。
[bit2] UF(UnderFlow)
タイマ割込み要求フラグです。カウンタの値が "0000H" → "FFFFH" へのアンダフ
ローにより "1" にセットされます。"0" の書込みまたはインテリジェント I/O サービ
スによってクリアされます。このビットへの "1" 書込みは意味がありません。リー
ドモディファイライト (RMW) 系命令における読出し時には "1" が読み出されます。
[bit1] CNTE(CouNT Enable)
タイマのカウント許可ビットです。このビットに "1" を書き込むと起動トリガ待ち
状態になります。"0" 書込みによりカウント動作は停止します。
[bit0] TRG(TRiGger)
ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ
ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。"0" 書
込み動作は意味を持ちません。読出し値は常に "0" です。このレジスタによるトリ
ガ入力は , CNTE=1 のときのみ有効となります。CNTE=0 のときに "1" 書込みをし
ても何も起こりません。
219
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
14.2.2
16 ビットタイマレジスタ (TMR)/16 ビットリロード
レジスタ (TMRLR) のレジスタ配置
16 ビットタイマレジスタ (TMR) ( 読出し時 ) は , 16 ビットタイマのカウント値を読
み出すことができるレジスタです。初期値は不定です。このレジスタの読出しは ,
必ずワード転送命令で行ってください。
16 ビットリロードレジスタ (TMRLR) ( 書込み時 ) は , カウントの初期値を保持して
おくレジスタです。初期値は不定です。このレジスタへの書込みは , 必ずワード転
送命令で行ってください。
■ 16 ビットタイマレジスタ (TMR)/16 ビットリロードレジスタ (TMRLR) の
レジスタ配置
TMR/TMRLR0/TMRLR1 ( 上位 )
アドレス
003541H
003543H
bit 15
R/W
14
13
12
11
10
9
8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
6
5
4
3
2
1
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
TMR/TMRLR0/TMRLR1 ( 下位 )
アドレス
003540H
003542H
bit 7
R/W
R/W: リード / ライト可能
X:
不定
220
初期値
XXXXXXXXB
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
14.3
16 ビットリロードタイマの内部 / 外部クロック動作
内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマ
シンクロックの 21, 23, 25 分周のクロックから選択できます。外部入力端子は , レジ
スタの設定によりトリガ入力またはゲート入力にすることができます。
外部クロックをセレクトすると TIN 端子は外部イベント入力端子となり , レジスタ
で設定された有効エッジをカウントします。
■ 16 ビットリロードタイマの内部クロック動作
カウント許可と同時にカウント動作を開始したい場合は , 制御レジスタの CNTE ビッ
トと TRG ビットの両方に "1" を書き込んでください。
TRG ビットによるトリガ入力は ,
タイマが起動状態のとき (CNTE=1) 動作モードにかかわらず常に有効です。
図 14.3-1 に , カウンタの起動およびカウンタの動作について示します。カウントスター
トのトリガが入力されてからリロードレジスタのデータがカウンタへロードされるま
でに , T (T: マシンサイクル ) の時間がかかります。
図 14.3-1 16 ビットリロードタイマのカウンタの起動および動作
カウントクロック
リロードデータ
カウンタ
-1
-1
-1
データロード
CNTE (ビット)
TRG (ビット)
T
■ 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 )
クロックソースとして内部クロックを選択した場合, TIN端子はトリガ入力またはゲー
ト入力として使用できます。トリガ入力として使用した場合 , 有効エッジが入力される
とリロードレジスタの内容をカウンタにロードして , 内部プリスケーラをクリアした
後 , カウント動作を開始します。
TIN は , 2・T (T はマシンサイクル ) 以上のパルスを入力してください。図 14.3-2 に , ト
リガ入力の動作を示します。
221
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
図 14.3-2 16 ビットリロードタイマのトリガ入力の動作
カウントクロック
立上りエッジ検出時
TIN
プリスケーラクリア
カウンタ
-1
リロードデータ
0000H
-1
-1
ロード
2T~
2.5T
ゲート入力として使用する場合 , 制御レジスタの MOD0 ビットにより設定される有効
レベルが TIN 端子から入力されている間のみカウントをします。このとき , カウント
クロックは止まらずに動き続けます。ゲートモード時のソフトウェアトリガは , ゲート
レベルにかかわらず可能です。TIN 端子のパルス幅は , 2・T (T はマシンサイクル ) 以
上にしてください。図 14.3-3 に , ゲート入力の動作を示します。
図 14.3-3 16 ビットリロードタイマのゲート入力の動作
カウントクロック
TIN
MOD0=:1とした場合(入力"H"の間カウント)
カウンタ
-1
-1
-1
■ 外部イベントカウント
外部クロックをセレクトすると TIN 端子は外部イベント入力端子となり , レジスタで
設定された有効エッジをカウントします。TIN 端子のパルス幅は , 4・T (T はマシンサ
イクル ) 以上にしてください。
222
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
14.4
16 ビットリロードタイマのアンダフロー動作
16 ビットリロードタイマにより , カウンタ値が "0000H" から "FFFFH" に変化した
ときにアンダフローが定義されますので , ( リロードレジスタ設定 +1) カウントの後
でアンダフローが発生します。
■ 16 ビットリロードタイマのアンダフロー動作
アンダフロー発生時 , 制御レジスタの RELD ビットが "1" のときリロードレジスタの内
容をカウンタへロードしてカウント動作を継続し , "0" のときカウンタを "FFFFH" で停
止させます。
アンダフローが発生すると , 制御レジスタの UF ビットをセットし , このときに INTE
ビットが "1" であると割込み要求を発生します。
図 14.4-1 に , アンダフロー発生時の動作を示します。
図 14.4-1 16 ビットリロードタイマのアンダフロー動作
カウントクロック
カウンタ
0000H
リロードデータ
-1
-1
-1
データロード
アンダフローセット
[RELD=1]
カウントクロック
カウンタ
0000H
FFFFH
アンダフローセット
[RELD=0]
223
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
14.5
16 ビットリロードタイマの出力端子機能
TOT 端子はリロードモード時にはアンダフローにより反転するトグル出力として ,
ワンショットモード時にはカウント中を示すパルス出力として機能します。
■ 16 ビットリロードタイマの出力端子機能
16 ビットリロードタイマの出力極性はレジスタの OUTL ビットにより設定でき ,
OUTL=0 のときトグル出力は初期値が "0" で , ワンショットパルス出力はカウント中
"1" を出力します。OUTL=1 にすると出力波形は反転します。図 14.5-1 と図 14.5-2 に出
力端子機能を示します。
図 14.5-1 16 ビットリロードタイマの出力端子機能 (1)
カウント開始
アンダフロー
TOT
OUTL=1のときは反転
汎用ポート
OUTE
CNTE
起動トリガ
[RELD=1, OUTL=0]
図 14.5-2 16 ビットリロードタイマの出力端子機能 (2)
アンダフロー
TOT
OUTL=1のときは
反転
汎用ポート
OUTE
CNTE
起動トリガ
起動トリガ待ち状態
[RELD=0, OUTL=0]
224
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
カウンタの動作状態
14.6
カウンタの状態は , 制御レジスタの CNTE ビットと内部信号の WAIT 信号によって
決まります。設定可能な状態として CNTE=0, WAIT=1 の停止状態 (STOP 状態 ),
CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ) , CNTE=1, WAIT=0 の動作状
態 (RUN 状態 ) があります。
■ カウンタの動作状態
図 14.6-1 に , 各状態の遷移を示します。
図 14.6-1 カウンタの状態遷移
Reset
ハードウェアによる状態遷移
STOP
CNTE=0, WAIT=1
外部入力による状態遷移
レジスタアクセスによる状態遷移
TIN:入力禁止
OUTE=0: 汎用ポート
TOT: OUTE=1: 初期値出力
カウンタ:停止時の値を保持
リセット直後は不定
CNTE=0
CNTE=0
CNTE=1
TRG=1
CNTE=1
TRG=0
WAIT
RUN
CNTE=1, WAIT=1
TIN:トリガのみ有効*
TOT:
CNTE=1, WAIT=0
TIN:TINとして機能*
OUTE=0: 汎用ポート
OUTE=0: 汎用ポート
OUTE=1: 初期値出力
RELD · UF
カウンタ:動作
カウンタ:停止時の値を保持
リセット直後ロードする
までは不定
TRG=1
TRG=1
LOAD
TIN端子からの外部トリガ
TOT: OUTE=1: TOTとして機能
CNTE=1, WAIT=0
リロードレジスタの内容を
カウンタへロード
RELD * UF
TIN端子からの外部トリガ
ロード終了
* : TIN端子を使用する前に,DDRの対応するビットを"0"に設定しなければなりません。
225
第 14 章 16 ビットリロードタイマ ( イベントカウント 機能付き )
226
第 15 章
時計タイマ
時計タイマの機能と動作について説明します。
15.1 時計タイマの概要
15.2 時計タイマのレジスタ
227
第 15 章 時計タイマ
15.1
時計タイマの概要
時計タイマは , タイマ制御レジスタ , サブ秒レジスタ , 秒 / 分 / 時間レジスタ , 1/2 ク
ロック分周器 , 22 ビットプリスケーラおよび秒 / 分 / 時間カウンタから構成されてい
ます。MCU の発振周波数は所定の時計タイマの動作を行うために , 4MHz または
5MHz であることが前提になっています。時計タイマはリアルワールドタイマとし
て動作してリアルワールド時間情報を提供します。
■ 時計タイマのブロックダイヤグラム
図 15.1-1 に , 時計タイマのブロックダイヤグラムを示します。
図 15.1-1 時計タイマのブロックダイヤグラム
発振クロック 1/2クロック
分周器
OE
22ビットプリスケーラ
OE
WOT
CO
EN
サブ秒レジスタ
UPDT
秒カウンタ
CI
EN
CO
LOAD
ST
6ビット
INTE0
INT0
INTE1
分カウンタ
時間カウンタ
CO
6ビット
秒/分/時間レジスタ
INT1
INTE2
INT2
CO
5ビット
INT3
INT3
IRQ
228
第 15 章 時計タイマ
15.2
時計タイマのレジスタ
時計タイマのレジスタには , 次の 5 種類があります。
• タイマ制御レジスタ (WTCR)
• サブ秒レジスタ (WTBR)
• 秒レジスタ (WTSR)
• 分レジスタ (WTMR)
• 時間レジスタ (WTHR)
■ 時計タイマのレジスタ
図 15.2-1 時計タイマのレジスタ
タイマ制御レジスタ
13
12
11
10
9
8
アドレス bit15 14
000060H
INTE3 INT3 INTE2 INT2 INTE1 INT1 INTE0 INT0
000061H
R/W R/W R/W R/W R/W R/W R/W R/W
0
0
0
0
0
0
0
0
初期値
7
6
5
4
3
2
1
0
予約
予約
予約
−
−
UPDT
OE
ST
R/W R/W R/W
0
0
0
X
X
R/W R/W R/W
0
0
0
WTCR
サブ秒レジスタ (0)
13
12
11
10
9
8
アドレス bit15 14
00354AH
D15 D14 D13 D12 D11 D10
D9
D8
00354BH
R/W R/W R/W R/W R/W R/W R/W R/W
X
X
X
X
X
X
X
X
初期値
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
WTBR0
R/W R/W R/W R/W R/W R/W R/W R/W
X
X
X
X
X
X
X
X
秒レジスタ / サブ秒レジスタ (1)
WTSR
アドレス bit15
00354CH
−
00354DH
X
初期値
WTBR1
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
−
S5
S4
S3
S2
S1
S0
−
−
D21
D20
D19
D18
D17
D16
X
X
R/W R/W R/W R/W R/W R/W
X
X
X
X
X
X
X
R/W R/W R/W R/W R/W R/W
X
X
X
X
X
X
時間レジスタ / 分レジスタ
WTHR
アドレス bit15
00354EH
−
00354FH
X
初期値
WTMR
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
−
−
H4
H3
H2
H1
H0
−
−
M5
M4
M3
M2
M1
M0
X
X
X
X
R/W R/W R/W R/W R/W
X
X
X
X
X
R/W R/W R/W R/W R/W R/W
X
X
X
X
X
X
R/W: リード / ライト可能
-:
X:
未定義
不定
<注意事項>
• クロックカウンタの解除は , クロックタイマ出力を使用するウォッチドッグカウンタ ,
インターバル割込みに影響を及ぼします。
• タイマ制御レジスタ (WTCR) の WTR に "0" を書き込むことで時計タイマを解除するに
は , WTIE ビットを "0" に設定し , 時計タイマを割込み抑制状態に設定してください。割
込みを許可する前に WTOF フラグに "0" を書き込むことで発生した割込み要求を解除
してください。
229
第 15 章 時計タイマ
15.2.1
タイマ制御レジスタ
タイマ制御レジスタは時計タイマの起動・停止 , 割込みの制御や外部出力端子の設
定などを行います。
■ タイマ制御レジスタ ( 下位 )
図 15.2-2 タイマ制御レジスタの構成 ( 下位 )
bit 7
アドレス:
000060 H
予約
6
5
予約 予約
R/W R/W R/W
4
3
-
-
-
2
1
UPDT OE
0
WTCR
ST
初期値
0 0 0 X X 0 00B
- R/W R/W R/W
bit 0
スタートビット
ST
0
すべてのカウンタとプリスケーラを "0" にリセット
1
動作開始
bit 1
出力イネーブルビット
OE
0
汎用入出力として対応する端子を使用
1
端子に WOT を設定 ( ウォッチタイマ出力 )
bit 2
UPDT
アップデートビット
0
影響なし
1
データ値とともにカウンタをアップデート
bit 5
予約
0
1
予約ビット
-
-
bit6
予約
0
1
予約ビット
-
-
bit7
予約
0
230
R/W
:
リード / ライト可能
-
:
未定義
:
初期値
1
予約ビット
-
-
第 15 章 時計タイマ
表 15.2-1 タイマ制御レジスタ ( 下位 )
ビット名
bit7 ~
bit5
bit4,
bit3
bit2
bit1
bit0
予約ビット
未定義ビット
機能
予約ビットです。本ビットには必ず "0" を書き込んでください。
-
UPDT: 書換えビット
UPDT ビットは秒 / 分 / 時間カウンタ値を変更するために用意さ
れたものです。
カウンタ値を変更するためには変更データを秒 / 分 / 時間レジス
タに書き込んでください。次に UPDT ビットを "1" にセットし
てください。レジスタ値は 22 ビットプリスケーラからの次の
CO 信号時にカウンタにロードされます。UPDT ビットはカウン
タ値が書き換えられたときにハードウェアによりリセットされ
ます。ただし , ソフトウェアによるセット動作と上記ハードウェ
アによるリセット動作が同時に生じた場合には UPDT ビットは
リセットされません。
( 注意事項 )
秒カウンタが 59 秒を示しているとき , UPDT ビットをセット
してもカウンタ値は変更されず , このビットはクリアされま
す。このため , ST ビットによりカウンタ値を変更することを
お勧めします。UPDT ビットへの "0" 書込みは影響ありませ
ん。リードモディファイライト (RMW) 系命令では "0" が読み
出されます。
OE: 出力許可ビット
OE ビットが "1" にセットされたとき WOT 外部端子は時計タイ
マ用の出力として機能します。その他の場合にそれは汎用 I/O ま
たは , ほかの周辺ブロックとして使用できます。
ST: 開始ビット
ST ビットが "1" にセットされたときに時計タイマは秒 / 分 / 時間
値を各レジスタからロードしてその動作を開始します。それが
"0" にリセットされたときにすべてのカウンタおよびプリスケー
ラは "0" にリセットされて停止します。
231
第 15 章 時計タイマ
■ タイマ制御レジスタ ( 上位 )
図 15.2-3 タイマ制御レジスタの構成 ( 上位 )
bit 15
14
13
12
11
10
9
8
WTCR
アドレス:
000061 H
INTE3 INT3 INTE2 INT2 INTE1 INT1 INTE0 INT0
初期値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit8
割込み要求ビット 0
INT0
0
書込み時
割込みをクリア
読出し時
割込み要求なし
1
影響なし
割込み要求あり
bit9
割込み許可ビット 0
INTE0
0
割込み禁止
1
割込み許可
bit10
INT1
割込み要求ビット 1
0
書込み時
割込みをクリア
1
影響なし
読出し時
割込み要求なし
割込み要求あり
bit11
INTE1
割込み許可ビット 1
0
割込み禁止
1
割込み許可
bit 12
INT2
割込み要求ビット 2
書込み時
0
割込みをクリア
1
影響なし
読出し時
割込み要求なし
割込み要求あり
bit13
割込み許可ビット 2
INTE2
0
1
割込み禁止
割込み許可
bit14
INT3
割込み要求ビット 3
0
書込み時
割込みをクリア
1
影響なし
読出し時
割込み要求なし
割込み要求あり
bit 15
割込み許可ビット 3
INTE3
R/W
232
:
リード / ライト可能
:
初期値
0
割込み禁止
1
割込み許可
第 15 章 時計タイマ
表 15.2-2 タイマ制御レジスタ ( 上位 )
ビット名
bit15,
bit13,
bit11,
bit9
bit14,
bit12,
bit10,
bit8
機能
INTE3 ~
INTE0
INTE0 ~ INTE3 は割込みフラグです。これらのビットは秒カウンタ , 分
カウンタおよび時間カウンタがそれぞれオーバフローしたときにセット
されます。もし , 対応する INTE ビットが "1" であるときに INT ビットが
セットされたとすれば , 時計タイマは割込みの信号を発生します。これ
らのフラグは秒 / 分 / 時間 / 日ごとに割込みの信号を発生します。
INT ビットに "0" を書き込むと各フラグはクリアされますが , "1" を書き
込んでも効果はありません。INT ビットに対して何らかのリードモディ
ファイライト (RMW) 系命令を実行すると "1" が読み出されます。
INT3 ~
INT0
INT0 ~ INT3 は割込みフラグです。これらのビットは秒カウンタ , 分カ
ウンタおよび時間カウンタがそれぞれオーバフローしたときにセットさ
れます。もし , 対応する INTE ビットが "1" であるときに INT ビットが
セットされると , 時計タイマは割込みの信号を発生します。これらのフ
ラグは秒 / 分 / 時間 / 日ごとに割込みの信号を発生します。
INT ビットに "0" を書き込むと各フラグはクリアされますが , "1" を書き
込んでも効果はありません。INT ビットに対してリードモディファイラ
イト (RMW) 系命令を実行すると "1" が読み出されます。
233
第 15 章 時計タイマ
15.2.2
サブ秒レジスタ
サブ秒レジスタは , 発振クロックを分周する 22 ビットプリスケーラのリロード値を
格納します。リロード値は通常 22 ビットプリスケーラの出力が正確に 1 秒周期とな
るように設定されます。サブ秒レジスタはリセットで初期化されませんが , プリス
ケーラは初期化されます。
■ サブ秒レジスタ
図 15.2-4 サブ秒レジスタの構成
サブ秒レジスタ (0)
13
12
11
10
9
8
アドレス bit15 14
00354AH
D15 D14 D13 D12 D11 D10
D9
D8
00354BH
R/W R/W R/W R/W R/W R/W R/W R/W
初期値
X
X
X
X
X
X
X
X
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
WTBR0
R/W R/W R/W R/W R/W R/W R/W R/W
X
X
X
X
X
X
X
X
秒レジスタ / サブ秒レジスタ (1)
アドレス
00354CH
初期値
7
6
5
4
3
2
1
0
−
−
D21
D20
D19
D18
D17
D16
X
X
R/W R/W R/W R/W R/W R/W
X
X
X
X
X
X
WTBR1
R/W : リード / ライト可能
X
: 不定
−
: 未定義
表 15.2-3 サブ秒レジスタのビット機能説明
ビット名
bit15 ~
bit0
bit5 ~
bit0
234
WTBR0: D15 ~ D0
WTBR1: D21 ~ D16
機能
サブ秒レジスタは 22 ビットプリスケーラに対するリロード
値を記憶するものです。この値はリロードカウンタが "0" に
達した後にリロードされます。すべての 3 バイトを変更する
ときにはリロード動作が書込み命令どうしの間に実行されな
いように注意してください。そうしないと 22 ビットプリス
ケーラは新たなデータバイトと古いデータバイトを組み合わ
せた誤った値をロードしてしまいます。普通はサブ秒レジス
タを開始ビットが "0" の間に書き換えることを推奨します。
もし , サブ秒レジスタが "0" にセットされると 22 ビットプリ
スケーラは全く動作しません。
入力クロック周波数は常に発振クロック周波数と等しくなる
ように設定されており , 4MHz または 5MHz が意図されてい
ます。4MHz 動作周波数の 22 ビットプリスケーラリロード値
は , 通常 "1E847FH" に設定されます。5MHz 動作周波数では
"26259FH" です。
第 15 章 時計タイマ
15.2.3
秒 / 分 / 時間レジスタ
秒 / 分 / 時間レジスタは時間情報を記憶します。それは秒 , 分および時間をバイナリ
で表示します。
これらのレジスタを読み取ることでカウンタ値が読み出されます。しかし , これらの
レジスタは書込みを伴うものであり , UPDT ビットが "1" にセットされた後は書込み
データが各カウンタ内にロードされます。これらのレジスタおよびカウンタはリ
セットにて初期化されます。
■ 秒 / 分 / 時間レジスタ
図 15.2-5 秒 / 分 / 時間レジスタの構成
秒レジスタ
WTSR
アドレス bit15
−
00354DH
X
初期値
14
13
12
11
10
9
8
−
S5
S4
S3
S2
S1
S0
X
R/W R/W R/W R/W R/W R/W
X
X
X
X
X
X
時間レジスタ /
分レジスタ
WTHR
13
アドレス bit15 14
00354EH
−
−
−
00354FH
X
X
X
初期値
R/W : リード / ライト可能
X
: 不定
−
: 未定義
WTMR
12
11
10
9
8
7
6
5
4
3
2
1
0
H4
H3
H2
H1
H0
−
−
M5
M4
M3
M2
M1
M0
X
X
R/W R/W R/W R/W R/W
X
X
X
X
X
R/W R/W R/W R/W R/W R/W
X
X
X
X
X
X
<注意事項>
秒 / 分 / 時間レジスタには , 3 つのバイトレジスタがありますのでレジスタから得られる値
が一貫していることを確認してください。すなわち , "1 時間 59 分 59 秒 " という値が得ら
れたとすると , それは "0 時間 59 分 59 秒 " または "1 時間 0 分 0 秒 " または "2 時間 0 分 0
秒 " かも知れません。
同様に , MCU の動作クロックが発振クロックの半分の場合 (PLL が停止したとき ) , これ
らのレジスタからの読出し値は誤っている可能性があります。これは , 読出し動作とカウ
ンタ動作の同期によるものです。このため , 使用する上では秒割込みで読出し命令をトリ
ガすることを推奨いたします。
235
第 15 章 時計タイマ
236
第 16 章
8/16 ビット PPG
8/16 ビット PPG の機能と概要について説明しま
す。
16.1 8/16 ビット PPG の概要
16.2 8/16 ビット PPG のブロックダイヤグラム
16.3 8/16 ビット PPG のレジスタ
16.4 8/16 ビット PPG の動作
16.5 8/16 ビット PPG のカウントクロックの選択
16.6 8/16 ビット PPG のパルスの端子出力の制御
16.7 8/16 ビット PPG の割込み
16.8 8/16 ビット PPG の各ハードウェアの初期値
237
第 16 章 8/16 ビット PPG
16.1
8/16 ビット PPG の概要
8/16 ビット PPG は , ハードウェアとして 8 ビットダウンカウンタ 2 個 , 8 ビットリ
ロードレジスタ 4 個 , 16 ビット制御レジスタ 1 個 , 外部パルス出力端子 2 本および
割込み出力 2 本があり , これらにより以下の機能を実現します。
■ 8/16 ビット PPG の機能
● 8 ビット PPG 出力 2 チャネル独立動作モード
2 チャネルの独立した PPG 出力動作が可能です。
● 16 ビット PPG 出力動作モード
1 チャネルの 16 ビットの PPG 出力動作が可能です。
PPG0+PPG1, PPG2+PPG3, PPG4+PPG5, PPG6+PPG7, PPG8+PPG9, PPGA+PPGBの組合せ
で使用します。
● 8+8 ビット PPG 出力動作モード
ch.0 の出力を ch.1 のクロック入力とすることにより , 任意周期の 8 ビット PPG 出力動
作が可能です。
● PPG 出力動作
任意周期・デューティ比のパルス波を出力します。外付け回路により D/A コンバータ
としても使用可能です。
MB90390 シリーズには 6 本の PPG があります。16.2 以降では PPG0/PPG1 の機能につ
いてのみ記述します。残りの PPG にも同じ機能があり , レジスタアドレスについては
I/O マップに記しています。
図 16.1-1 に , PPG モジュールと外部端子の関係を示します。
図 16.1-1 PPG モジュールと外部端子の関係
PPG0 / PPG1
PPG2 / PPG3
内部モジュール
PPG4 / PPG5
PPG6 / PPG7
PPG8 / PPG9
PPGA / PPGB
238
PPG00
PPG10
PPG01
PPG11
PPG02
PPG12
PPG03
PPG13
PPG04
PPG14
PPG05
PPG15
外部端子
第 16 章 8/16 ビット PPG
16.2
8/16 ビット PPG のブロックダイヤグラム
図 16.2-1 に , 8/16 ビット PPG(ch.0) のブロックダイヤグラムを , 図 16.2-2 に , 8/16
ビット PPG(ch.1) のブロックダイヤグラムを示します。
■ 8/16 ビット PPG のブロックダイヤグラム
図 16.2-1 8/16 ビット PPG(ch.0) のブロックダイヤグラム
PPG00出力許可
PPG00
周辺クロック16分周
周辺クロック8分周
周辺クロック4分周
周辺クロック2分周
周辺クロック
PPG0
出力ラッチ
反転
クリア
PEN0
カウント
クロック選択
S
RQ
PCNT
(ダウンカウンタ)
IRQ
リロード
タイムベースカウンタの出力
メインクロックの512分周
"L"/"H"セレクト
MB90390シリーズでは,このIRQ信号
はOR論理によりチャネル1のIRQ信号
とマージされます。
ch.1ボロー
"L"/"H"セレクタ
PRLL0
PRLBH0
(テンポラリバッファ)
PIE0
PRLH0
PUF0
"L"側データバス
"H"側データバス
PPGC0
(動作モード制御)
239
第 16 章 8/16 ビット PPG
図 16.2-2 8/16 ビット PPG(ch.1) のブロックダイヤグラム
PPG10出力端子
PPG10
周辺クロック16分周
周辺クロック8分周
周辺クロック4分周
周辺クロック2分周
周辺クロック
PPG10
出力ラッチ
反転
カウント
クロック選択
ch.0ボロー
PEN1
MB90390シリーズでは,このIRQ信号
はOR論理によりチャネル0のIRQ信号
とマージされます。
S
RQ
PCNT
(ダウンカウンタ)
タイムベースカウンタの出力
メインクロックの512分周
"L"/"H"セレクト
クリア
IRQ
リロード
"L"/"H"セレクタ
PRLL1
PRLL1
(テンポラリバッファ)
PIE1
PRLH1
PUF1
"L"側データバス
"H"側データバス
PPGC1
(動作モード制御)
240
第 16 章 8/16 ビット PPG
● ブロックダイヤグラム中の端子などの詳細
8/16 ビット PPG タイマの実際の端子名および割込み要求番号を表 16.2-1 に示します。
表 16.2-1 ブロックダイヤグラムの端子および割込み要求番号
チャネル
出力端子
PPG0
P56 / PPG00
PPG1
P50 / PPG10
PPG2
P57 / PPG01
PPG3
P51 / PPG11
PPG4
PB0 / PPG02
PPG5
P52/ PPG12
PPG6
PB1 / PPG03
PPG7
P53/ PPG13
PPG8
PB2/ PPG04
PPG9
P54 / PPG14
PPGA
PB3 / PPG05
PPGB
P55 / PPG15
割込み要求番号
#17 (11H)
#18 (12H)
#19 (13H)
#20 (14H)
#21 (15H)
#22 (16H)
● PPG1 動作モード制御レジスタ (PPGC1)
8/16 ビット PPG タイマの動作モードを設定します。8/16 ビット PPG タイマ 1 の動作 ,
端子出力 , アンダフロー割込みを許可または禁止します。また , アンダフローの発生を
示します。
● PPG0/1 カウントクロック選択レジスタ (PPG01)
8/16 ビット PPG タイマのカウントクロックを設定します。
● PPG1 リロードレジスタ (PRLH1, PRLL1)
出力パルスの "H" 幅 , "L" 幅を設定します。PPG1 リロードレジスタに設定した値は , 8/
16 ビット PPG タイマ 1 が起動すると PPG1 ダウンカウンタ (PCNT1) にリロードされま
す。
● PPG1 ダウンカウンタ (PCNT1)
PPG1 リロードレジスタ (PRLH1, PRLL1) の設定値を交互にリロードしてカウントダウ
ンする , 8 ビットのダウンカウンタです。アンダフローが発生すると , 端子出力を反転
します。2 チャネルの PPG ダウンカウンタ (PPG0, PPG1) を連結して , 1 チャネルの 16
ビット PPG ダウンカウンタとして使用することもできます。
● PPG1 テンポラリバッファ (PRLBH1)
PPG リロードレジスタ (PRLH1, PRLL1) への書込みのタイミングによって起こる出力
パルス幅のズレを防止するバッファです。PRLH1 の値を一時的に記憶し , PRLL1 への
書込みのタイミングに同期させて PRLH1 の設定値を有効にします。
241
第 16 章 8/16 ビット PPG
● リロードレジスタ L/H セレクタ
"L" 側および "H" 側のリロードレジスタ (PRLL1, PRLH1) のどちらを PPG1 ダウンカウ
ンタにリロードするか , 現在の端子出力レベルを検出して選択します。
● カウントクロックセレクタ
5 種類のマシンクロックの分周クロック , またはタイムベースタイマの分周クロックか
ら , PPG1 ダウンカウンタに入力するカウントクロックを選択します。
● PPG 出力制御回路
端子出力レベル , およびアンダフロー発生による出力反転を行います。
242
第 16 章 8/16 ビット PPG
16.3
8/16 ビット PPG のレジスタ
8/16 ビット PPG のレジスタには , 次の 5 つがあります。
• PPGC0 (PPGC2, PPGC4, PPGC6, PPGC8, PPGCA) 動作モード制御レジスタ
• PPGC1 (PPGC3, PPGC5, PPGC7, PPGC9, PPGCB) 動作モード制御レジスタ
• PPG01 (PPG23, PPG45, PPG67, PPG89, PPGAB) クロック選択レジスタ
• リロードレジスタ H
• リロードレジスタ L
■ 8/16 ビット PPG のレジスタ
PPGn 動作モード制御レジスタ
bit 7
アドレス
PEN0
ch.0 000038H
ch.2 00003CH
(R/W)
ch.4 000040H
(0)
ch.6 000044H
ch.8 000048H
ch.A 00004CH
PPGn 動作モード制御レジスタ
bit 15
アドレス
PEN1
ch.1 000039H
ch.3 00003DH
(R/W)
ch.5 000041H
(0)
ch.7 000045H
ch.9 000049H
ch.B 00004DH
PPGnm クロック選択レジスタ
bit 7
アドレス
PCS2
ch.01 00003AH
ch.23 00003EH
(R/W)
ch.45 000042H
(0)
ch.67 000046H
ch.89 00004AH
ch.AB 00004EH
リロードレジスタ (H)
bit 15
アドレス
ch.0 003501H
−
ch.1 003503H
ch.2 003505H
(R/W)
ch.3 003507H
(X)
ch.4 003509H
ch.5 00350BH
ch.6 00350DH
ch.7 00350FH
ch.8 003511H
ch.9 003513H
ch.A 003515H
ch.B 003517H
リロードレジスタ (L)
bit 7
アドレス
ch.0 003500H
−
ch.1 003502H
ch.2 003504H
(R/W)
ch.3 003506H
(X)
ch.4 003508H
ch.5 00350AH
ch.6 00350CH
ch.7 00350EH
ch.8 003510H
ch.9 003512H
ch.A 003514H
ch.B 003516H
R/W: リード / ライト可能
-:
未定義
X: 不定
6
−
−
(X)
5
PE00
(R/W)
(0)
4
PIE0
(R/W)
(0)
3
PUF0
(R/W)
(0)
2
−
−
(X)
1
−
−
(X)
0
予約
(W)
(1)
14
−
(−)
(X)
13
PE10
(R/W)
(0)
12
PIE1
(R/W)
(0)
11
PUF1
(R/W)
(0)
10
MD1
(R/W)
(0)
9
MD0
(R/W)
(0)
8
予約
(W)
(1)
6
PCS1
(R/W)
(0)
5
PCS0
(R/W)
(0)
4
PCM2
(R/W)
(0)
3
PCM1
(R/W)
(0)
2
PCM0
(R/W)
(0)
1
−
−
(X)
0
−
−
(X)
14
13
12
11
10
9
8
−
−
−
−
−
−
−
(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
−
−
−
−
−
−
−
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
PPGCn
PPGCm
PPGnm
PRLHn
PRLHm
PRLLn
PRLLm
n = 0, 2, 4, 6, 8, A
m = 1, 3, 5, 7, 9, B
243
第 16 章 8/16 ビット PPG
PPG0 動作モード制御レジスタ (PPGC0)
16.3.1
動作モード制御レジスタ (PPGC0) は , 8/16 ビット PPG の動作モードの選択 , 端子
出力制御 , カウントクロック選択およびトリガの制御を行う 5 ビットの制御レジス
タです。
■ PPG0 動作モード制御レジスタ (PPGC0)
図 16.3-1 PPG0 動作モード制御レジスタ (PPGC0) の構成
PPG0 動作モードコントロールレジスタ
bit 7
アドレス:
ch.0, 000038H
リード / ライト
初期値
PEN0
(R/W)
(0)
6
5
-
PE00
(-)
(X)
(R/W)
(0)
ほかのチャネル
ch.2 00003CH
ch.4 000040H
ch.6 000044H
ch.8 000048H
ch.A 00004CH
4
3
2
1
0
PIE0
PUF0
-
-
予約
(R/W)
(0)
(R/W)
(0)
(-)
(X)
(-)
(X)
(W)
(1)
PPGC0
bit 0
予約ビット
予約
1
PPGC0 を設定したとき , 常にこのビットを
"1" に設定
bit 3
PUF0
PPG カウンタアンダフロービット
0
PPG カウンタアンダフローは検出されない
1
PPG カウンタアンダフローは検出される
bit 4
PIE0
0
1
bit 5
PE00
PPG 割込み許可ビット
割込み禁止
割込み許可
0
PPG00 端子出力許可ビット
パルス出力禁止
1
パルス出力許可
bit 7
PEN0
R/W
X
-
244
: リード / ライト可能
: 不定
: 未定義
: 初期値
0
1
動作許可ビット
ストップ ("L" レベル出力保持 )
PPG 動作許可
第 16 章 8/16 ビット PPG
表 16.3-1 動作モード制御レジスタのビット機能説明
ビット名
機能
bit7
PEN0:
動作許可ビット
"1" に設定されているとき , PPG カウンタ動作を許可します。動作が
禁止で出力が許可のとき (bit5) "L" レベルは出力に維持されます。
bit5
PE00:
PPG00 端子出力許可
ビット
"1" に設定されているとき , パルス出力を許可します。MB90390 シ
リーズでは , パルス信号は "PPG00" 外部端子に出力されます。この
端子は , 不可時に 汎用ポートとして使用できます。
bit4
PIE0:
PPG 割込み許可ビッ
ト
本ビットが "1" のとき , PUF0 が "1" になると割込み要求を発生しま
す。本ビットが "0" のときは割込み要求を発生しません。
8 ビット PPG 2 チャネルモードおよび 8 ビットプリスケーラ +8 ビッ
ト PPG モードのときには , ch.0 のカウンタの値が "00H" ~ "FFH" に
bit3
bit0
PUF0:
PPG カウンタ
アンダフロービット
予約ビット
なったときのアンダフローにより "1" にセットされます。16 ビット
PPG モードのときには , ch.1/ch.0 のカウンタの値が "0000H" から
"FFFFH" になったときのアンダフローにより "1" にセットされます。
"0" の書込みにより "0" になります。このビットへの "1" 書込みは意
味がありません。リードモディファイライト (RMW) 系命令の読出
し時には "1" が読まれます。
予約ビットです。PPGC0 を設定するときは必ず "1" に設定してくだ
さい。
245
第 16 章 8/16 ビット PPG
PPG1 動作モード制御レジスタ (PPGC1)
16.3.2
PPG1 動作モード制御レジスタ (PPGC1) は , 8/16 ビット PPG の動作モードの選択 ,
端子出力制御 , カウントクロック選択およびトリガの制御を行う 7 ビットの制御レ
ジスタです。
■ PPG1 動作モード制御レジスタ (PPGC1)
図 16.3-2 PPG1 動作モード制御レジスタ (PPGC1) の構成
PPG1 動作モードコントロールレジスタ
15
14
13
12
11
10
9
PEN1
-
PE10
PIE1
PUF1
MD1
MD0
(R/W)
(0)
(-)
(X)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
bit
アドレス:
ch.1 000039H
リード / ライト
初期値
ほかのチャネル
ch.3 00003DH
ch.5 000041H
ch.7 000045H
ch.9 000049H
ch.B 00004DH
8
予約
PPGC1
(W)
(1)
bit 8
予約
1
予約ビット
PPGC0 を設定したとき , 常にこのビット
を "1" に設定
bit 10
bit 9
MD1
MD0
PPG カウントモード
0
0
8 ビット PPG 2 チャネル独立モード
0
1
8 ビットプリスケーラ+ 8 ビット PPG 1 チャネルモード
1
0
1
1
予約
16 ビット PPG 1 チャネルモード
bit 11
PUF1
PPG カウンタアンダフロービット
0
PPG カウンタアンダフローは検出されない
1
PPG カウンタアンダフローは検出される
bit 12
0
PPG 割込み許可ビット
割込み禁止
1
割込み許可
PIE1
bit 13
PE10
PPG10 端子出力許可ビット
0
パルス出力禁止 ( 汎用ポート )
1
パルス出力許可
bit 15
PEN1
246
R/W
: リード / ライト可能
0
X
: 不定
1
-
: 未定義
: 初期値
動作許可ビット
ストップ ("L" レベル出力保持 )
PPG 動作許可
第 16 章 8/16 ビット PPG
表 16.3-2 PPG1 動作モード制御レジスタのビット機能説明
ビット名
機能
bit15
PEN1:
動作許可ビット
"1" に設定されているとき , PPG カウンタ動作を許可します。動
作が禁止で出力が許可のとき (bit13), "L" レベルは出力に維持さ
れます。
bit13
PE10:
PPG10 端子出力
許可ビット
"1" に設定されているとき , パルス出力を許可します。MB90390
シリーズでは , パルス信号は "PPG10" 外部端子に出力されます。
この端子は , 不可時に 汎用ポートとして使用できます。
bit12
PIE1:
PPG 割込み許可
ビット
本ビットが "1" のとき , PUF1 が "1" になると割込み要求を発生
します。本ビットが "0" のときは割込み要求を発生しません。
8 ビット PPG2 チャネルモードおよび 8 ビットプリスケーラ +8
ビット PPG モードのときには , ch.0 のカウンタの値が "00H" か
bit11
PUF1:
PPG カウンタ
アンダフロー
ビット
ら "FFH" へなったときのアンダフローにより "1" にセットされ
ます。16 ビット PPG モードのときには , ch.1/ch.0 のカウンタの
値が "0000H" から "FFFFH" へなったときのアンダフローにより
"1" にセットされます。"0" の書込みにより "0" になります。こ
のビットへの "1" 書込みは意味がありません。リードモディ
ファイライト (RMW) 系命令の読出し時には "1" が読まれます。
図 16.3-2 で説明されているように , このビットは PPG タイマ動
作モードを選択します。
ビットを "10B" に設定しないでください。
bit10, bit9
MD1, MD0:
PPG カウント
モード
ビットを "01B" に設定する場合には , PPGC0 の PEN0 ビット /
PPGC1 の PEN1 ビットを "01B" に設定しないでください。また ,
PEN0 ビットおよび PEN1 ビットを同時に "11B" または "00B" に
セットすることを推奨します。ビットを "11B" に設定する場合
には , PPGC0/PPGC1 をワード転送で書き換え , PEN0 ビットおよ
び PEN1 ビットを同時に "11B" または "00B" にセットしてくださ
い。
bit8
予約ビット
予約ビットです。PPGC1 を設定するときは必ず "1" に設定して
ください。
247
第 16 章 8/16 ビット PPG
PPG0/1 クロック選択レジスタ (PPG01)
16.3.3
PPG0/1 クロック選択レジスタ (PPG01) は , 8/16 ビット PPG のカウントクロック
の制御を行う 8 ビットの制御レジスタです。
■ PPG0, PPG1 クロック選択レジスタ (PPG01)
図 16.3-3 PPG0/1 クロック選択レジスタ (PPG01) の構成
PPG0/1 クロック選択レジスタ
アドレス:
7
ch.01 00003AH
ほかのチャネル
ch.23 00003EH
ch.45 000042H
ch.67 000046H
ch.89 00004AH
ch.AB 00004EH
248
6
5
4
3
2
1
0
PCS2 PCS1 PCS0 PCM2 PCM1 PCM0
-
-
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(-)
(-)
PPG01
初期値
0 0 0 0 0 0 X XB
bit 4
bit 3
bit 2
PCM2
PCM1
PCM0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
カウントクロック選択ビット (ch.0)
周辺クロック
周辺クロック /2
周辺クロック /4
周辺クロック /8
周辺クロック /16
1
1
1
タイムベースタイマからのクロック入力
bit 7
bit 6
bit 5
PCS2
PCS1
PCS0
0
0
0
0
0
1
0
1
0
R/W
: リード / ライト可能
0
1
1
X
: 不定
1
0
0
カウントクロック選択ビット (ch.1)
周辺クロック
周辺クロック /2
周辺クロック /4
周辺クロック /8
周辺クロック /16
-
: 未定義
: 初期値
1
1
1
タイムベースタイマからのクロック入力
第 16 章 8/16 ビット PPG
表 16.3-3 クロック選択レジスタの構成 (PPG01) のビット機能説明
ビット名
機能
ch.1 のダウンカウンタの動作クロックを次のように選択します。
( 注意事項 )
8 ビットプリスケーラ +8 ビット PPG モードおよび 16 ビット PPG モー
ドのときには , ch.1 の PPG は ch.0 からカウントクロックを受けて動作す
るため , PCS2 ~ PCS0 ビットの指定は無効になります。
bit7
~
bit5
PCS2 ~
PCS0:
カウント
クロック
選択ビット
PCS2 PCS1 PCS0
動作モード
0
0
0
周辺クロック (62.5 ns マシンクロック , 16 MHz)
0
0
1
周辺クロック /2 (125 ns マシンクロック , 16 MHz)
0
1
0
周辺クロック /4 (250 ns マシンクロック , 16 MHz)
0
1
1
周辺クロック /8 (500 ns マシンクロック , 16 MHz)
1
0
0
周辺クロック /16 (1 μs マシンクロック , 16 MHz)
1
1
1
タイムベースタイマからのクロック入力
(128 μs, 4 MHz 原発振 )
ch.0 のダウンカウンタの動作クロックを , 次のように選択します。
PCM2 PCM1 PCM0
bit4
~
bit2
PCM2 ~
PCM0:
カウント
クロック
選択ビット
動作モード
0
0
0
周辺クロック (62.5 ns マシンクロック , 16 MHz)
0
0
1
周辺クロック /2 (125 ns マシンクロック , 16 MHz)
0
1
0
周辺クロック /4 (250 ns マシンクロック , 16 MHz)
0
1
1
周辺クロック /8 (500 ns マシンクロック , 16 MHz)
1
0
0
周辺クロック /16 (1 μs マシンクロック , 16 MHz)
1
1
1
タイムベースタイマからのクロック入力
(128 μs, 4 MHz 原発振 )
249
第 16 章 8/16 ビット PPG
リロードレジスタ (PRLL, PRLH)
16.3.4
リロードレジスタ (PRLL, PRLH) は , ダウンカウンタ PCNT へのリロード値を保持
する各 8 ビットのレジスタです。PRLL, PRLH レジスタはどちらも読出し / 書込み
が可能です。
■ リロードレジスタ (PRLL, PRLH)
リロードレジスタ (H)
アドレス
ch.0 003501H
ch.1 003503H
ch.2 003505H
ch.3 003507H
ch.4 003509H
ch.5 00350BH
ch.6 00350DH
ch.7 00350FH
ch.8 003511H
ch.9 003513H
ch.A 003515H
ch.B 003517H
リロードレジスタ (L)
アドレス
ch.0 003500H
ch.1 003502H
ch.2 003504H
ch.3 003506H
ch.4 003508H
ch.5 00350AH
ch.6 00350CH
ch.7 00350EH
ch.8 003510H
ch.9 003512H
ch.A 003514H
ch.B 003516H
bit15
14
13
12
11
10
9
8
(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
6
5
4
3
2
1
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)
PRLHn
PRLLn
n = 0, 1, ... , 9, A,B
R/W: リード / ライト可能
X: 不定
表 16.3-4 リロードレジスタの機能
レジスタ名
機能
PRLLn
"L" 側リロード値保持
PRLHn
"H" 側リロード値保持
<注意事項>
8 ビットプリスケーラ +8 ビット PPG モードで使用する場合には , ch.0 の PRLL と PRLH
に異なる値を設定すると , ch.1 の PPG 波形がサイクルごとに異なる場合があるので , ch.0
の PRLL と PRLH は同じ値に設定することを推奨します。
250
第 16 章 8/16 ビット PPG
16.4
8/16 ビット PPG の動作
8/16 ビット PPG には , 8 ビット長の PPG ユニットが 2 チャネルあり , 2 チャネル独
立モード以外に , 連結動作させることにより 8 ビットプリスケーラ +8 ビット PPG
モードと 16 ビット PPG1 チャネルモードの計 3 種類で動作できます。
■ 8/16 ビット PPG の動作
8 ビット長の PPG ユニットそれぞれは , 8 ビット長のリロードレジスタが "L" 側と "H"
側の 2 本あります (PRLL, PRLH)。このレジスタに書き込まれた値が , 8 ビットダウン
カウンタ (PCNT) に "L" 側 /"H" 側交互にリロードされてカウントクロックごとにダウ
ンカウントされ , カウンタのボロー発生によるリロード時に , 端子出力 (PPG) の値を反
転させます。この動作により , 端子出力 (PPG) はリロードレジスタ値に対応した "L" 幅 /
"H" 幅をもつパルス出力となります。
表 16.4-1 に , リロード動作とパルス出力の関係を示します。
表 16.4-1 リロード動作とパルス出力の関係
リロード動作
端子出力変化
PRLH → PCNT
PPG0/PPG1 [0 → 1]
↑
立上り
PRLL → PCNT
PPG0/PPG1 [1 → 0]
↓
立下り
また , PPGC0 の bit4 (PIE0) が "1" または PPGC1 の bit12 (PIE1) が "1" の場合 , それぞれ
のカウンタの "00H" から "FFH" へのボロー (16 ビット PPG モードの場合には , "0000H"
から "FFFFH" へのボロー ) によって割込み要求が出力されます。
■ 8/16 ビット PPG の動作モード
8/16 ビット PPG の動作モードには , 2 チャネル独立モード , 8 ビットプリスケーラ +8
ビット PPG モードと , 16 ビット PPG1 チャネルモードの計 3 種類の動作モードがあり
ます。
● 2 チャネル独立モード
2 チャネル独立モードは , 8 ビット PPG として 2 チャネル独立に動作させる動作モード
です。PPG00 端子は ch.0 の PPG 出力が接続され , PPG10 端子は ch.1 の PPG 出力が接
続されます。
● 8 ビットプリスケーラ +8 ビット PPG モード
8 ビットプリスケーラ +8 ビット PPG モードは , ch.0 を 8 ビットプリスケーラとして動
作させ , ch.1 を ch.0 のボロー出力でカウントすることにより , 任意周期の 8 ビット PPG
波形を出力できるようにする動作モードです。PPG00 端子は ch.0 のプリスケーラ出力
が接続され , PPG10 端子は ch.1 の PPG 出力が接続されます。
251
第 16 章 8/16 ビット PPG
● 16 ビット PPG 1 チャネルモード
16 ビット PPG 1 チャネルモードは , ch.0 と ch.1 を連結させて , 16 ビットの PPG として
動作させる動作モードです。PPG00 端子と PPG10 端子は両方とも 16 ビット PPG 出力
が接続されます。
■ 8/16 ビット PPG の出力動作
8/16 ビット PPG は , ch.0 の PPG については PPGC0 (PWM 動作モード制御レジスタ ) の
bit7(PEN0) を , ch.1 の PPG については PPGC1 レジスタの bit15(PEN1) を "1" にセット
することによって起動され , カウントを開始します。
8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.0 を停止している状態で
ch.1 を動作状態に設定しないでください。
8/16 ビット PPG は , ch.0 の PPG については PPGC0 (PWM 動作モード制御レジスタ ) の
bit7(PEN0) を , ch.1 の PPG については PPGC1 レジスタの bit15(PEN1) を "1" にセット
することによって起動され , カウントを開始します。動作を開始した後は , PPGC0 の
bit7(PEN0) または PPGC1 の bit15(PEN1) に "0" を書き込むことによってカウント動作
を停止し , 停止した後 , パルス出力は "L" レベルを保持します。
図 16.4-1 PPG 出力動作の出力波形
PEN
PENにより動作開始("L"側から)
出力端子
PPG
T×(L+1)
(スタート)
252
T×(H+1)
L:PRLLの値
H:PRLHの値
T:周辺クロック(φ,φ/4,φ/16)
またはタイムベースカウンタから
の入力(PPG01のクロックセレクト
による)
第 16 章 8/16 ビット PPG
■ 8/16 ビット PPG のリロード値とパルス幅の関係
リロードレジスタに書かれた値に +1 した値にカウントクロックの周期を掛けた値が ,
出力されるパルスの幅となります。
8 ビット PPG 動作時のリロードレジスタ値が "00H" のときおよび 16 ビット PPG 動作
時のリロードレジスタ値が "0000H" のときは , カウントクロック 1 周期分のパルス幅を
もつことになりますので注意してください。また , 8 ビット PPG 動作時のリロードレ
ジスタ値が "FFH" のとき , カウントクロック 256 周期分のパルス幅をもつことになり ,
16ビットPPG動作時のリロードレジスタ値が"FFFFH"のときはカウントクロック65536
周期分のパルス幅をもつことになりますので注意してください。
P1=T×(L+1)
Ph=T×(H+1)
L : PRLLの値
H : PRLHの値
T : 入力クロック周期
Ph : "H"パルスの幅
Pl : "L"パルスの幅
253
第 16 章 8/16 ビット PPG
16.5
8/16 ビット PPG のカウントクロックの選択
8/16 ビット PPG の動作に使用するカウントクロックは , 周辺クロックおよびタイム
ベースカウンタの入力を使用しており , 6 種類のカウントクロック入力が選択できま
す。
■ 8/16 ビット PPG のカウントクロックの選択
PPG01 出力端子制御レジスタ (PPG01) の bit4 ~ bit2 (PCM2 ~ PCM0) で ch.0 のクロッ
クを , bit7 ~ bit5 (PCS2 ~ PCS0) で ch.1 のクロックを選択します。
クロックは , マシンクロックの 1/16 ~ 1 倍の周辺クロックとタイムベースカウンタか
らの入力クロックより選択できます。ただし , 8 ビットプリスケーラ +8 ビット PPG
モードまたは 16 ビット PPG モードのときには , PCS2 ~ PCS0 を設定しても意味はあ
りません。
タイムベースカウンタの入力を使用した場合 , トリガにより起動がかかる最初および
ストップの後の最初のカウント周期がずれる可能性がありますので注意してくださ
い。また , 本モジュール動作中にタイムベースカウンタのクリアを行うと周期がずれる
ことがあります。
<注意事項>
8 ビットプリスケーラ +8 ビット PPG モードが以下の状態の場合に ch.1 の起動を行うと ,
最初のカウント周期がずれる可能性があります。
• ch.0 が動作状態
• ch.1 が停止状態
254
第 16 章 8/16 ビット PPG
8/16 ビット PPG のパルスの端子出力の制御
16.6
本モジュールの動作によって生成されたパルス出力は , 外部端子 PPG00/PPG10 よ
り出力されます。
■ 8/16 ビット PPG のパルスの端子出力の制御
端子出力許可ビット (PPGC0:PE00, PPGC1:PE10) が "0" のとき ( 初期値 ) は , パルス出
力は外部端子より出力されずに汎用ポートとして機能します。本ビットに "1" を設定
すると , パルス出力が外部端子より出力されます。
16 ビット PPG モードでは , PPG00, PPG10 には同じ波形が出力されるので , どちらの外
部端子出力を許可しても同じ出力を得ることができます。
8 ビットプリスケーラ +8 ビット PPG モードでは , PPG0 は 8 ビットプリスケーラのト
グル波形が出力され , PPG10 は 8 ビット PPG の波形が出力されます。このモードのと
きの出力波形の例を図 16.6-1 に示します。
図 16.6-1 8+8PPG 出力動作の出力波形
Pl0
Ph0
PPG0
PPG1
Ph1
Pl0 = T×(L0+1)
Ph0 = T×(L0+1)
Pl1 = T×(L0+1)×(Ll+1)
Ph1 = T×(L0+1)×(Hl+1)
Pl1
L0 : ch.0のPRLLの値およびch.0のPRLH値
L1 : ch.1のPRLLの値
H1 : ch.1のPRLHの値
T : 入力クロック周期
Ph0 : PPG00の"H"パルスの幅
Pl0 : PPG00の"L"パルスの幅
Ph1 : PPG10の"H"パルスの幅
Pl1 : PPG10の"L"パルスの幅
<注意事項>
ch.0 の PRLL と ch.0 の PRLH には , 同じ値を設定することを推奨します。
255
第 16 章 8/16 ビット PPG
16.7
8/16 ビット PPG の割込み
8/16 ビット PPG の割込みは , リロード値がカウントアウトし , ボローが発生したと
きにアクティブになります。
■ 8/16 ビット PPG の割込み
8 ビット PPG 2 チャネルモードおよび 8 ビットプリスケーラ +8 ビット PPG モードのと
きには, それぞれのカウンタのボローにより, それぞれの割込みの要求が行われますが,
16 ビット PPG モードでは 16 ビットカウンタのボローにより , PUF0 と PUF1 が同時に
セットされます。このため割込み要因を一本化するために , PIE0 または PIE1 のどちら
か一方のみを許可にすることを推奨します。また , 割込み要因のクリアも PUF0 と PUF1
を同時に行うことを推奨します。
256
第 16 章 8/16 ビット PPG
16.8
8/16 ビット PPG の各ハードウェアの初期値
8/16 ビット PPG の各ハードウェアは , リセット時に以下のように初期化されます。
■ 8/16 ビット PPG の各ハードウェアの初期値
● レジスタ
• PPGC0 → 0X000XX1B
• PPGC1 → 0X000001B
• PPG01 → 000000XXB
● パルス出力
• PPG00 → "L"
• PPG10 → "L"
• PE00 → PPG00 出力禁止
• PE10 → PPG10 出力禁止
● 割込み要求
• IRQ0 → "L"
• IRQ1 → "L"
なお , 上記以外のハードウェアは初期化されません。
<注意事項>
8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミング , 16 ビット
PPG モード以外のモードの場合には , リロードレジスタ (PRLL, PRLH) への書込みはワー
ド転送命令を使用することを推奨します。
なお , バイト転送命令 2 回にて書き込んだ場合 , タイミングによっては予想しないパルス
幅の出力が発生する可能性がありますので注意してください。
257
第 16 章 8/16 ビット PPG
図 16.8-1 8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミングチャート
PPG0
B
C
B
A
A
B
C
C
D
D
①
図 16.8-1 のタイムチャートにおいて , ①のタイミングの前で PRLL を A から C に書き
換えて , ①の後 PRLH の値を B から D に書き換えた場合 , ①のタイミングでの PRL の
値は PRLL=C, PRLH=B のため 1 回だけ "L" 側のカウント数 C, "H" 側のカウント数 B の
パルスが発生します。
同様に , 16 ビット PPG モードで使用する場合には , ch.0 と ch.1 の PRL はロングワード
転送で書き込むか ch.0 → ch.1 の順にワード転送で書き込んでください。このモードの
ときには , ch.0 の PRL への書込みは , 一時的にテンポラリラッチに書き込まれ , その後
ch.1 の PRL に書込みを行った時点で , 実際に ch.0 の PRL への書込みが行われます。
なお , 16 ビット PPG モード以外では , ch.0 と ch.1 の PRL の書込みは独立して行うこと
ができます。
図 16.8-2 PRL 書込み動作のブロックダイヤグラム
ch.0のPRLの書込みデータ
テンポラリラッチ
16ビットPPGモード以外の
ときのch.0の書込み
16ビットPPGモード時ch.1の
書込みに同期して転送
ch.1の書込み
ch.0 PRL
258
ch.1のPRLの書込みデータ
ch.1 PRL
第 17 章
DTP/ 外部割込み
DTP/ 外部割込みの機能と動作について説明しま
す。
17.1 DTP/ 外部割込みの概要
17.2 DTP/ 外部割込みのレジスタ
17.3 DTP/ 外部割込みの動作
17.4 DTP 要求と外部割込み要求の切換え
17.5 DTP/ 外部割込み使用上の注意
259
第 17 章 DTP/ 外部割込み
17.1
DTP/ 外部割込みの概要
DTP( データ転送周辺 ) はデバイス外部に存在する周辺と F2MC-16LX CPU との間に
あって , 外部周辺が発生する DMA 要求または割込み要求を受け取り , これを F2MC16LX CPU に伝えてインテリジェント I/O サービスまたは割込み処理を起動させる
ための周辺です。
■ DTP/ 外部割込みの概要
インテリジェント I/O 機能に関しては "H" または "L" 要求レベルを使用できます。外
部割込み要求に対しては , "H", "L" のほか立上りエッジおよび立下りエッジの 4 種類の
要求レベルを使用できます。
MB90390 シリーズでは , 外部バスインタフェースはサポートされていません。このた
め , DTP/ 外部割込みはデータ転送周辺の役割を果たすことはできません。それは外部
割込みとしてのみ使用できます。
■ DTP/ 外部割込みのブロックダイヤグラム
図 17.1-1 DTP/ 外部割込みのブロックダイヤグラム
F2MC-16LX バス
8
8
8
16
260
割込み/DTP許可レジスタ
ゲート
要因F/F
割込み/DTP要因レジスタ
要求レベル設定レジスタ
エッジ検出回路
8
要求入力
第 17 章 DTP/ 外部割込み
■ DTP/ 外部割込みのレジスタ
bit
アドレス:000030H
bit
アドレス:000031H
bit
アドレス:000032H
bit
アドレス:000033H
7
6
5
4
3
2
1
0
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
15
14
13
12
11
10
9
8
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
7
6
5
4
3
2
1
0
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
15
14
13
12
11
10
9
8
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
割込み /DTP 許可レジスタ
(ENIR)
外部割込み要求レジスタ
(EIRR)
要求レベル設定レジスタ
(ELVR)
要求レベル設定レジスタ
(ELVR)
261
第 17 章 DTP/ 外部割込み
17.2
DTP/ 外部割込みのレジスタ
DTP/ 外部割込みのレジスタには , 次の 3 つがあります。
• 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ )
• 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ )
• 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ )
■ 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ )
割込み /DTP 許可レジスタ (ENIR) はデバイス端子を外部割込み /DTP 要求入力として
使用し , 割込みコントローラに対して要求を発生させる機能を動作させることを決定
するレジスタです。このレジスタの "1" を書かれたビットの対応する端子は外部割込
み /DTP 要求入力として使用され , 割込みコントローラに対して要求を発生する機能を
動作させます。"0" が書かれたビットの対応する端子は外部割込み /DTP 要求入力要因
を保持しますが , 割込みコントローラに対しては要求を発生しません。
<注意事項>
DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割込み要因ビット
(EIRR:ER) をクリアしてください。
ENIR
bit 7
アドレス : 000030H
EN7
R/W
6
5
4
3
2
1
0
EN6
R/W
EN5
R/W
EN4
R/W
EN3
R/W
EN2
R/W
EN1
R/W
EN0
R/W
初期値
00000000B
R/W: リード / ライト可能
■ 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ )
EIRR は , このレジスタの "1" となっているビットに対応する端子において外部割込み /
DTP 要求が存在することを表します。このレジスタのビットに "0" を書き込むと対応
する要求フラグがクリアされます。"1" を書き込んでも効果はありません。リードモ
ディファイライト (RMW) 系命令により , このレジスタからは常に "1" が読み出されま
す。
EIRR
アドレス : 000031H
bit 15
ER7
R/W
R/W: リード / ライト可能
262
14
13
12
11
10
9
8
ER6
R/W
ER5
R/W
ER4
R/W
ER3
R/W
ER2
R/W
ER1
R/W
ER0
R/W
初期値
XXXXXXXXB
( ただし , R/W で
対象が異なる )
第 17 章 DTP/ 外部割込み
<注意事項>
• 複数の外部割込み出力が有効な場合 (ENIR: EN3 ~ EN0 = 1), CPU が割込みを受けた
(ER3 ~ ER0 に "1" が設定された ) ビットのみ , クリアされます。ほかのビットを無条
件でクリアしてはいけません。
• DTP/ 外部割込み要因ビット (EIRR:ER) の値は , 対応する DTP/ 外部割込み許可ビット
(ENIR:EN) が "1" に設定されている場合のみ有効です。DTP/ 外部割込みが許可されて
いない状態 (ENIR:EN=0) では ,DTP/ 外部割込み要因の有無にかかわらず DTP/ 外部割
込み要因ビットがセットされる可能性があります。
• DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割込み要因ビッ
ト (EIRR:ER) をクリアしてください。
■ 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ )
bit 7
アドレス : 000032H
LB3
R/W
bit 15
アドレス : 000033H
LB7
R/W
6
5
4
3
2
1
0
LA3
R/W
LB2
R/W
LA2
R/W
LB1
R/W
LA1
R/W
LB0
R/W
LA0
R/W
14
13
12
11
10
9
8
LA7
R/W
LB6
R/W
LA6
R/W
LB5
R/W
LA5
R/W
LB4
R/W
LA4
R/W
初期値
00000000B
初期値
00000000B
R/W: リード / ライト可能
ELVR は外部端子における要求イベントを定義するものです。表 17.2-1 に示すように ,
各端子には 2 ビットが割り当てられます。入力レベルにより要求が検出されたとすれ
ば , フラグがソフトウェアによりリセットされた後でも , 入力が指定されたレベルにあ
る限り割込みフラグはセットされます。
表 17.2-1 LBx と LAx 端子の割込み要求検出要因
割込み要求検出要因
LBx
LAx
0
0
"L" レベルが端子に入力
0
1
"H" レベルが端子に入力
1
0
立上りエッジが端子に入力
1
1
立下りエッジが端子に入力
263
第 17 章 DTP/ 外部割込み
17.3
DTP/ 外部割込みの動作
割込みフラグがセットされたときに , このブロックは割込みコントローラへ割込み
信号を送ります。割込みコントローラ内で同時発生した割込みの優先順位を識別し
た結果 , 本リソースからの割込みが最も優先順位が高かったときに , 割込みコント
ローラは F2MC-16LX CPU に対して割込み要求を発生します。F2MC-16LX CPU は
自分の内部にある CCR レジスタ中の ILM ビットと割込み要求を比較し , 要求レベル
が ILM ビットより高かったときに現在実行中の命令が終了し次第 , ハードウェア割
込み処理マイクロプログラムを起動します。
■ 外部割込みの動作
図 17.3-1 に示すように, ハードウェア割込み処理マイクロプログラムにおいて, CPUは
割込みコントローラからISEビットの情報を読み出し, これにより当該要求が割込み処
理であることを識別し , 割込み処理マイクロプログラムへ分岐します。割込み処理マイ
クロプログラムでは割込みべクタ領域の読出しと割込みコントローラへの割込みアク
ノリッジを発生し , ベクタから生成したマクロ命令のジャンプ先アドレスをプログラ
ムカウンタへ転送した上で , ユーザの割込み処理プログラムの実行を行います。
図 17.3-1 外部割込みの動作
割込み/DTP
F2MC-16LX CPU
割込みコントローラ
ほかの要求
ELVR
ICR yy
EIRR
ENIR
要因
264
IL
CMP
CMP
ICR xx
ILM
INTA
第 17 章 DTP/ 外部割込み
■ DTP の動作
初期化としてユーザプログラム内ではインテリジェント I/O サービスを起動するに当
たって , インテリジェント I/O サービスディスクリプタ内の I/O アドレスポインタに
"000000H" から "0000FFH" に割りつけられているレジスタのアドレスを設定し , バッ
ファアドレスポインタにメモリバッファの先頭アドレスを設定します。
DTP の動作シーケンスは外部割込みの場合とほぼ同じで , CPU がハードウェア割込み
処理マイクロプログラムを起動するまでは全く同じです。DTP の場合は CPU がハード
ウェア割込み処理マイクロプログラム内で読み出す ISE ビットの内容が DTP を示して
いるので , インテリジェント I/O サービス処理マイクロプログラムへ制御を移します。
インテリジェント I/O サービスが起動されると , アドレッシングされている外部周辺に
読出しまたは書込み信号が送られて本チップとの転送が行われます。外部周辺はその
転送が行われてから 3 マシンサイクル以内に本チップに対する割込み要求を取り下げ
てください。転送が終了するとディスクリプタの更新などが行われ , その後 , 転送要因
をクリアする信号を割込みコントローラに発生させます。転送要因をクリアする信号
を受け取った本リソースは要因を保持しているフリップフロップをクリアして端子か
らの次の要求に備えます。インテリジェント I/O 機能処理の詳細については , 「F2MC16LX プログラミングマニュアル」を参照してください。
図 17.3-2 DTP 動作終了時の外部割込み取下げタイミング
エッジ要求,または"H"レベル要求
内部動作
(注意事項) インテリジェントI/Oサービスが
I/Oレジスタ→メモリ転送のとき
ディスクリプタ
選択,読出し
割込み要因
読出しアドレス
アドレスバス端子
書込みアドレス
読出しデータ
データバス端子
書込みデータ
①
読出し信号
②
書込み信号
3マシンサイクル以内に取り下げる
図 17.3-3 DTP と外部周辺とのインタフェース簡略例
レジスタ
外部周辺
内部バス
データ,アドレスバス
①
INT
IRQ
DTP
転送終了後,3マシンサイクル
以内に取り下げる
②
コア
メモリ
MB90390シリーズ
265
第 17 章 DTP/ 外部割込み
17.4
DTP 要求と外部割込み要求の切換え
外部割込み要求と DTP 要求の切換えは , 割込みコントローラの中にある本リソース
に対応する ICR レジスタ中の ISE ビットの設定によって行います。各端子に対応し
て個々に ICR が割り当てられていますので , 対応する ICR の ISE ビットに "1" が書
かれた端子が DTP 要求として , また , "0" が書かれた場合には外部割込み要求とし
てそれぞれ動作します。
■ DTP 要求と外部割込み要求の切換え
図 17.4-1 DTP 要求と外部割込み要求の切換え
割込みコントローラ
0
ICRxx
ICRyy
1
F2MC-16LX CPU
端子
外部割込み/DTP
DTP
外部割込み
266
第 17 章 DTP/ 外部割込み
17.5
DTP/ 外部割込み使用上の注意
DTP/ 外部割込みを使用する際には , 次の点について特に注意が必要です。
• DTP を用いたときの外部に接続する周辺の条件
• DTP/ 外部割込みの動作手順
• 外部割込み要求レベル
■ DTP/ 外部割込み使用上の注意
● DTP を用いたときの外部に接続する周辺の条件
DTP がサポートできる外部周辺は , 転送が行われたことにより自動的に要求をクリア
するものでなければなりません。また , 転送動作が開始してから 3 マシンサイクル以内
で転送要求を取り下げないと本リソースは次の転送要求が発生したものとして扱いま
す。
● DTP/ 外部割込みの動作手順
DTP/外部割込み内に存在するレジスタの設定を行う際, 次の手順で設定してください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2. 許可レジスタの対象となるビットを不可状態にする。
3. 要求レベル設定レジスタの対象となるビットを設定する。
4. 要因レジスタの対象となるビットをクリアする。
5. 許可レジスタの対象となるビットを許可状態にする。
( ただし , 4. と 5. はワード指定による同時書込み可能 )
本リソース内のレジスタを設定するときには , 必ず許可レジスタを不可状態に設定し
なければなりません。また , 許可レジスタを許可状態にする前に必ず要因レジスタをク
リアしておく必要があります。これは , レジスタ設定時や割込み許可状態時に誤って割
込み要因が起こってしまうことを避けるためです。
● 外部割込み要求レベル
要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , データシー
トに記載されている最小パルス幅以上の期間が必要です。
図 17.5-1 に示すように, 要求入力レベルがレベル設定のとき, 外部より要求入力が入っ
てその後 , 取り下げられても内部に要因保持回路が存在するので , 割込みコントローラ
への要求はアクティブのままです。図 17.5-2 に示すように , 割込みコントローラへの
要求を取り下げるには要因保持回路をクリアする必要があります。
267
第 17 章 DTP/ 外部割込み
図 17.5-1 レベル設定時の要因保持回路のクリア
レベル検出
割込み要因
要因F/F(割込み/DTP要因レジスタ)
許可ゲート
割込み
コントローラへ
クリアしない限り要因を保持し続ける
図 17.5-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求
割込み要因
割込みコントローラ
への割込み要求
268
"H"レベル
要因F/Fのクリアによってインアクティブとなる
第 18 章
8/10 ビット A/D コンバータ
MB90390 シリーズの 8/10 ビット A/D コンバータ
の機能と動作について説明します。
18.1 8/10 ビット A/D コンバータの概要
18.2 8/10 ビット A/D コンバータの構成
18.3 8/10 ビット A/D コンバータの端子
18.4 8/10 ビット A/D コンバータのレジスタ
18.5 8/10 ビット A/D コンバータの割込み
18.6 8/10 ビット A/D コンバータの動作
18.7 A/D コンバータ使用上の注意
18.8 8/10 ビット A/D コンバータのプログラム例 -1
( 単発変換モードの EI2OS 起動例 )
18.9 8/10 ビット A/D コンバータのプログラム例 -2
( 連続変換モードの EI2OS 起動例 )
18.10 8/10 ビット A/D コンバータのプログラム例 -3
( 停止変換モードの EI2OS 起動例 )
269
第 18 章 8/10 ビット A/D コンバータ
18.1
8/10 ビット A/D コンバータの概要
8/10 ビット A/D コンバータは , RC タイプ連続近似変換方式を使用するために , 入力
電圧を 10 ビットまたは 8 ビットのデジタル値に変換します。アナログ入力端子の入
力信号は 15 チャネルから選択します。ソフトウェア , 16 ビットリロードタイマ 1
の出力 , 外部トリガで変換を開始します。
■ 8/10 ビット A/D コンバータの機能
以下に 8/10 ビット A/D コンバータの機能について示します。
• 変換時間は , 最小 4.9 μs ( ある一定のマシンクロック周波数のみが使用可能な場合 ,
サンプリング時間を含む ) です。
• サンプリング時間は , 最小 1.6 μs( ある一定のマシンクロック周波数のみが使用可能
な場合 ) です。
• 変換方式は , サンプルホールド回路付き RC 逐次変換比較方式です。
• 10 ビット , または 8 ビットの分解能を設定できます。
• 入力信号は , 15 チャネルのアナログ入力端子からプログラムで設定可能です。
• A/D 変換終了時に割込み要求を出力し , EI2OS を起動できます。
• 割込み許可状態で A/D 変換を実行した場合 , 変換データ保護機能が働きます。
• 変換の起動要因は , ソフトウェア , 16 ビットリロードタイマ 1 出力 ( 立上りエッジ ),
外部トリガ ADTG から設定できます。
• MB90390 シリーズには 15 のアナログ入力チャネルがあります。
0 チャネル~ 7 チャ
ネルまたは 8 チャネルから 14 チャネルのどちらかを A/D コンバータの入力として
選択できます。
表 18.1-1 8/10 ビット A/D コンバータの変換モード
変換モード
シングル変換動作
スキャン変換動作
単発変換モード
設定したチャネル (1 チャ
ネル ) を 1 回変換後 , 終了
連続した複数のチャネル ( 最大 8 チャネルまで設定
可能 ) を 1 回変換後 , 終了。
0 チャネル~ 7 チャネルまたは 8 チャネル~ 14 チャ
ネルのどちらかを選択できます。
連続変換モード
設定したチャネル (1 チャ
ネル ) を繰り返し変換
連続した複数のチャネル ( 最大 8 チャネルまで設定
可能 ) を繰り返し変換 。
0 チャネル~ 7 チャネルまたは 8 チャネル~ 14 チャ
ネルのどちらかを選択できます。
停止変換モード
設定したチャネル (1 チャ
ネル ) を 1 回変換実行後 ,
一時停止し , 次の起動が
かかるまで待機
連続した複数のチャネル ( 最大 8 チャネルまで設定
可能 ) を変換実行。0 チャネル~ 7 チャネルまたは 8
チャネル~ 14 チャネルのどちらかを選択できます。
一時停止し , 次の起動がかかるまで待機します。
270
第 18 章 8/10 ビット A/D コンバータ
表 18.1-2 8/10 ビット A/D コンバータの割込みと EI2OS
割込み制御レジスタ
ベクタテーブルアドレス
割込み番号
レジスタ名
#31 (1FH)
ICR10
アドレス
0000BAH
下位
上位
バンク
FFFF80H
FFFF81H
FFFF82H
EI2OS
○
○:使用可能
271
第 18 章 8/10 ビット A/D コンバータ
18.2
8/10 ビット A/D コンバータの構成
8/10 ビット A/D コンバータは , 以下の 9 種類のブロックで構成されています。
• A/D 制御ステータスレジスタ (ADCS0, ADCS1)
• A/D データレジスタ (ADCR0, ADCR1)
• クロックセレクタ (A/D 変換起動用入力クロックセレクタ )
• デコーダ
• アナログチャネルセレクタ
• サンプルホールド回路
• D/A コンバータ
• コンパレータ
• 制御回路
■ 8/10 ビット A/D コンバータのブロックダイヤグラム
図 18.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム
A/D制御ステータス
レジスタ
(ADCS0/ADCS1)
割込み要求信号#31(1FH)
BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
6
16ビットリロードタイマ1出力
外部トリガ(ADTG)
2
クロックセレクタ
デコーダ
内部データバス
φ
P57/AN7
P56/AN6
P55/AN5
P54/AN4
P53/AN3
P52/AN2
P51/AN1
P50/AN0
アナログ
チャネル
セレクタ
サンプル
ホールド回路
AVRH/AVRL
AVcc
AVss
コンパレータ
コントロール回路
2
D/Aコンバータ
2
ADSEL
A/Dデータレジスタ
S10 ST1 ST0 CT1 CT0 -
(ADCR0/ADCS1)
φ :マシンクロック
- :未定義ビット
272
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
第 18 章 8/10 ビット A/D コンバータ
● A/D 制御ステータスレジスタ (ADCS0/ADCS1)
A/D 制御ステータスレジスタ (ADCS0) は , A/D 変換モードの設定と A/D 変換開始 / 終
了チャネルの設定を行う機能があります。
A/D 制御ステータスレジスタ (ADCS1) は , 割込み要求の許可 / 禁止の設定 , 割込み要求
の状態確認 , A/D 変換の停止中 / 動作中の確認を行う機能があります。
● A/D データレジスタ (ADCR0, ADCR1)
A/D 変換結果を格納するレジスタですが , A/D 変換の分解能の設定を行う機能もありま
す。
● クロックセレクタ
A/D 変換起動クロックを設定するセレクタです。起動クロックには , 16 ビットリロー
ドタイマ 1 出力または外部トリガ (ADTG) のどちらも使用できます。
● デコーダ
A/D 制御ステータスレジスタ (ADCS0) の A/D 変換終了チャネル設定ビット (ANE0 ~
ANE2), A/D 変換開始チャネル設定ビット (ANS0 ~ ANS2) の設定値から使用するアナ
ログ入力端子を設定する回路です。
● アナログチャネルセレクタ
15 チャネルのアナログ入力端子の中から使用する端子を設定する回路です。
● サンプルホールド回路
アナログチャネルセレクタで設定された端子からの入力電圧を保持する回路です。A/D
変換を起動した直後の入力電圧を保持することで , A/D 変換中 ( 比較中 ) は , A/D 変換に
おける入力電圧変動の影響を受けません。
● D/A コンバータ
保持された入力電圧と比較するための基準電圧を発生します。
● コンパレータ
保持された入力電圧と D/A コンバータの出力電圧を比較し大小を判定します。
● 制御回路
コンパレータからの大小信号で , A/D 変換値を決定します。A/D 変換が終了した場合 ,
変換結果を A/D データレジスタ (ADCR0, ADCR1) に格納し割込み要求を出力します。
273
第 18 章 8/10 ビット A/D コンバータ
8/10 ビット A/D コンバータの端子
18.3
8/10 ビット A/D コンバータの端子 , および端子部のブロックダイヤグラムを示しま
す。
■ 8/10 ビット A/D コンバータの端子
A/D コンバータの端子は , 汎用ポートと兼用になっています。
表 18.3-1 8/10 ビット A/D コンバータの端子
機 能
端子名
チャネル 0
P60/AN0
チャネル 1
P61/AN1
チャネル 2
P62/AN2
チャネル 3
P63/AN3
チャネル 4
P64/AN4
チャネル 5
P65/AN5
チャネル 6
P66/AN6
チャネル 7
P67/AN7
チャネル 8
PB0/AN8
チャネル 9
PB1/AN9
チャネル 10
PB2/AN10
チャネル 11
PB3/AN11
チャネル 12
PB4/AN12
チャネル 13
PB5/AN13
チャネル 14
PB6/AN14
端子機能
入出力形式
プルアップ設定
スタンバイ制御
CMOS 出力 /
CMOS または
ヒステリシス
入力 または
アナログ入力
なし
なし
ポート 6 入出力 /
アナログ入力
ポート B 入出力 /
アナログ入力
■ アナログ入力許可レジスタ
図 18.3-1 にアナログ入力許可レジスタを示します。
図 18.3-1 アナログ入力許可レジスタ (ADER1/ADER0)
アドレス bit15
00000DH
00000CH
初期値
14
13
12
11
10
9
ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9
8
7
6
5
4
3
2
1
0
ADE8
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
R/W R/W R/W R/W R/W R/W R/W R/W
0
1
1
1
1
1
1
1
ADER1/
ADER0
R/W R/W R/W R/W R/W R/W R/W R/W
1
1
1
1
1
1
1
1
R/W : リード / ライト可能
<注意事項>
bit15 (ADSEL) を "0" にすると , AN0 ~ AN7 ( ポート P60 ~ P67) が A/D コンバータの入力
端子となります。bit15 (ADSEL) を "1" にすると , AN8 ~ AN14 ( ポート PB0 ~ PB6) が
A/D コンバータの入力端子となります。
274
第 18 章 8/10 ビット A/D コンバータ
■ 8/10 ビット A/D コンバータの端子部のブロックダイヤグラム
図 18.3-2 P60/AN0 ~ P67/AN7 端子部と PB0/AN8 ~ PB6/AN14 端子部のブロックダイヤグラム
アナログ入力
ADER
内部データバス
PDR リード
出力ラッチ
PDR ライト
PDR
( ポートデータ
レジスタ )
方向ラッチ
P-ch
端子
N-ch
DDR リード
DDR ライト
DDR
( ポートデータ
レジスタ )
スタンバイ制御 (SBL = 1)
<注意事項>
• 入力ポートとして使用する端子は , ポート方向レジスタ (DDR6/DDRB) の対応するビッ
トに "0" を設定し , アナログ入力許可レジスタ (ADER) の対応するビットに "0" を設定
してください。
• アナログ入力端子として使用する端子は , アナログ入力許可レジスタ (ADER) の対応す
るビットに "1" を設定してください。ポートデータレジスタ (PDR6/PDRB) の読出し値
は "0" になります。
275
第 18 章 8/10 ビット A/D コンバータ
18.4
8/10 ビット A/D コンバータのレジスタ
8/10 ビット A/D コンバータのレジスタ一覧を示します。
■ 8/10 ビット A/D コンバータのレジスタ一覧
図 18.4-1 8/10 ビット A/D コンバータのレジスタ一覧
アドレス bit 15 14 13 12 11 10
00000DH / 00000CH
ADER1
276
9
8
7
6
5
4
3
ADER0
000035H / 000034H
ADCS1
ADCS0
000037H / 000036H
ADCR1
ADCR0
2
1
0
第 18 章 8/10 ビット A/D コンバータ
18.4.1
アナログ入力許可 /A/D コンバータ選択レジスタ
MB90390 シリーズには , 15 のアナログ入力チャネルがあり , A/D コンバータ 1 つに
つき 8 つの入力が使用されます。特別ビット ADSEL がアナログ入力チャネルを選
択します。
■ アナログ入力許可 /A/D コンバータ選択レジスタの上位ビット (ADER1)
図 18.4-2 アナログ入力許可 /A/D コンバータ選択レジスタの上位ビット (ADER1) の構成
bit15
アドレス
00000D H
bit14
bit13
bit12
bit11
bit10
bit9
ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit8
初期値
ADE8
01111111B
R/W
ADEx
0
1
アナログ入力許可ビット
ポート入力モード ( ポート B)
アナログ入力モード ( 初期値 )
A/D コンバータ入力選択ビット
ADSEL
R/W: リード / ライト可能
: 未定値
0
1
AN0 ~ AN7 ( ポート 6) が入力として選択
AN8 ~ AN14 ( ポート B) が入力として選択
■ アナログ入力許可 /A/D コンバータ選択レジスタの下位ビット (ADER0)
図 18.4-3 アナログ入力許可 /A/D コンバータ選択レジスタの下位ビット (ADER0) の構成
アドレス
00000C H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W: リード / ライト可能
: 未定値
ADEx
0
1
初期値
11111111B
アナログ入力許可ビット
ポート入力モード ( ポート 6)
アナログ入力モード ( 初期値 )
277
第 18 章 8/10 ビット A/D コンバータ
18.4.2
A/D 制御ステータスレジスタ 1 (ADCS1)
A/D 制御ステータスレジスタ (ADCS1) は , A/D 変換起動要因の設定 , 割込み要求の
許可 / 禁止の設定 , 割込み要求の状態確認 , A/D 変換の停止中 / 動作中の確認を行う
機能があります。
■ A/D 制御ステータスレジスタ 1 (ADCS1)
図 18.4-4 A/D 制御ステータスレジスタ 1 (ADCS1)
アドレス
000035H
bit15 bit14 bit13 bit12 bit11 bit10 bit9
BUSY INT
bit8 bit7
INTE PAUS STS1 STS0 STRT 予約
R/W R/W R/W R/W R/W R/W
W
初期値
bit0
ADCS0
00000000B
R/W
予約ビット
予約
必ず“0”を設定してください
STRT
A/D変換起動ビット
(ソフトウェア起動時(ADC2:EXT=0)のみ有効)
0
A/D変換機能を起動しない
1
A/D変換機能を起動する
STS1 STS0
0
0
0
1
1
0
1
1
A/D起動要因設定ビット
ソフトウェア起動
外部トリガ起動
またはソフトウェア起動
16ビットリロードタイマ1出力の起動
またはソフトウェア起動
外部トリガ起動,
16ビットリロードタイマ1出力の起動,
またはソフトウェア起動
PAUS
一時停止フラグビット
(EI2OS使用時のみ有効)
0
A/D変換動作中
1
A/D変換動作が一時停止中
INTE 割込み要求許可ビット
0
割込み要求出力の禁止
1
割込み要求出力の許可
割込み要求フラグビット
INT
読出し時
書込み時
0
A/D変換未終了
割込み要求をクリア
1
A/D変換終了
動作に影響しません
変換中ビット
BUSY
R/W :リード/ライト可能
:初期値
278
読出し時
書込み時
0
A/D変換停止中
A/D変換強制停止
1
A/D変換動作中
動作に影響しません
第 18 章 8/10 ビット A/D コンバータ
表 18.4-1 A/D 制御ステータスレジスタ 1(ADCS1) の各ビットの機能説明
ビット名
機 能
BUSY:
変換中ビット
• A/D コンバータの動作表示ビットです。
• "0" がセットされている場合は , A/D 変換停止中であることを示します。
"1" がセットされている場合は , A/D 変換動作中であることを示します。
• "0" を設定した場合は , A/D 変換動作を強制停止します。"1" を設定した
場合は , 動作に影響しません。
( 注意事項 )
A/D 変換動作の強制停止と起動 (BUSY= 0 , STRT= 1) は , 同時に設定しな
いでください。
bit14
INT:
割込み要求
フラグビット
• A/D 変換結果が A/D データレジスタに格納されると , "1" がセットされ
ます。
• 割込み要求許可ビット (ADCS:INTE) に "1" を設定している場合に , "1"
がセットされると割込み要求を出力します。
• "0" を設定した場合は , 割込み要求がクリアされます。
• "1" を設定した場合は , 動作に影響しません。
• EI2OS を使用すると , "0" にクリアされます。
( 注意事項 )
割込み要求をクリアする場合は , A/D 変換を停止してください。
bit13
INTE:
割込み要求
許可ビット
• 割込み要求を許可するビットです。
• "1" を設定した場合は , 割込み要求フラグビット (ADCS:INT) に "1" が
セットされると割込み要求を出力します。
• EI2OS を使用する場合は , "1" を設定してください。
PAUS:
一時停止
フラグビット
• A/D 変換動作が一時停止した場合に "1" がセットされます。
• 連続変換モードで EI2OS を使用した場合 , A/D 変換が終了しても , 前
データのメモリへの転送が完了していないと "1" がセットされ , A/D 変
換動作を一時停止し , 変換データを A/D データレジスタ (ADCR0/
ADCR1) に格納しません。
• A/D 変換結果のメモリへの転送が終了すると , 8/10 ビット A/D コンバー
タは自動的に A/D 変換動作が開始されます。一時停止状態が解除され
ても本ビットはクリアされません。本ビットをクリアするためには "0"
を書き込んでください。
( 注意事項 ) EI2OS を使用した場合に有効です。
STS1, STS0:
A/D 起動要因
設定ビット
• A/D 変換の起動要因の設定を行うビットです。
• 起動要因が兼用になっている場合は , 最初に発生した起動要因で起動し
ます。
( 注意事項 )
起動要因は , 設定と同時に変更されますので , A/D 変換動作中に設定する
場合は目的とする起動要因がない状態で切り換えてください。
bit9
STRT:
A/D 変換起動
ビット
• A/D 変換動作を起動するビットです。
• "1" を設定した場合は , A/D 変換が起動します。
• "0" を設定した場合は , A/D 変換は起動しません。
• 停止変換モード時は , STRT ビットによる再起動はかかりません。
( 注意事項 )
A/D 変換動作の強制停止 (BUSY= 0) , (STRT= 1) は同時に行わないでくだ
さい。
bit8
予約:
予約ビット
bit15
bit12
bit11,
bit10
必ず "0" を設定してください。
279
第 18 章 8/10 ビット A/D コンバータ
18.4.3
A/D 制御ステータスレジスタ 0(ADCS0)
A/D 制御ステータスレジスタ (ADCS0) は , A/D 変換モードの設定と A/D 変換開始 /
終了チャネルの設定を行う機能があります。
■ A/D 制御ステータスレジスタ 0(ADCS0)
図 18.4-5 A/D 制御ステータスレジスタ 0 (ADCS0)
アドレス bit15 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
000034H
(ADCS:H) MD1
MD0
ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
ANE2 ANE1 ANE0
初期値
00000000B
R/W
A/D変換終了チャネル設定ビット
0
0
0
AN0/AN8端子
0
0
1
AN1/AN9端子
0
1
0
AN2/AN10端子
0
1
1
AN3/AN11端子
1
0
0
AN4/AN12端子
1
0
1
AN5/AN13端子
1
1
0
AN6/AN14端子
1
1
1
AN7端子
A/D変換開始チャネル設定ビット
ANS2 ANS1 ANS0
280
変換中の 停止変換モード
で一時停止中の
読出し
読出し
0
0
0
AN0/AN8端子
0
0
1
AN1/AN9端子
0
1
0
AN2/AN10端子
0
1
1
AN3/AN11端子 チャネル
1
0
0
1
0
1
1
1
0
AN6/AN14端子
1
1
1
AN7端子
MD1 MD0
R/W :リード/ライト可能
:初期値
停止中
変換中の 直前に変換
した
チャネル
AN4/AN12端子 番号
番号
AN5/AN13端子
A/D変換モード設定ビット
0
0
単発変換モード1(動作中の再起動可能)
0
1
単発変換モード2(動作中の再起動不可)
1
0
連続変換モード (動作中の再起動不可)
1
1
停止変換モード (動作中の再起動不可)
第 18 章 8/10 ビット A/D コンバータ
表 18.4-2 A/D 制御ステータスレジスタ 0 (ADCS0) の各ビットの機能説明 (1 / 2)
ビット名
bit7,
bit6
MD1, MD0:
A/D変換モード
設定ビット
機 能
• A/D 変換モードを設定するビットです。
• MD1 と MD0 の 2 つのビットで A/D 変換モードを 4 つのモード ( 単発
変換モード 1, 単発変換モード 2, 連続変換モード , 停止変換モード ) か
ら選択します。
• 単発変換モード 1, 単発変換モード 2, 連続変換モード , 停止変換モード
を設定できます。
• 単発変換モード 1:
A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネル
から A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定した
チャネルまで A/D 変換後 , 終了します。動作中の再起動ができます。
• 単発変換モード 2:
A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネル
から A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定した
チャネルまで A/D 変換後 , 終了します。動作中の再起動はできません。
• 連続変換モード:
A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネル
から A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定した
チャネルまでの A/D 変換を変換中ビット (BUSY) で強制停止するまで
繰り返します。動作中の再起動はできません。
• 停止変換モード:
A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネル
から A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定した
チャネルまでの A/D 変換を 1 チャネルごとに一時停止しながら変換中
ビット (BUSY) で強制停止するまで繰り返します。動作中の再起動は
できません。一時停止中の再起動は , A/D 起動要因設定ビット (STS1,
STS0) で設定した起動要因の発生によって異なります。
( 注意事項 )
単発 , 連続 , 停止の各変換モードの再起動不可は 16 ビットフリーランタ
イマ 0 検出 , 16 ビットリロードタイマ 1 外部トリガ , ソフトウェアすべ
ての起動に適用されます。
281
第 18 章 8/10 ビット A/D コンバータ
表 18.4-2 A/D 制御ステータスレジスタ 0 (ADCS0) の各ビットの機能説明 (2 / 2)
ビット名
bit5,
bit4,
bit3
bit2,
bit1,
bit0
282
機 能
ANS2, ANS1,
ANS0:
A/D 変換開始
チャネル設定
ビット
• A/D 変換の開始チャネルの設定 , および変換中チャネル番号の確認を行
うビットです。
• A/D 変換を起動した場合は , A/D 変換開始チャネル設定ビット (ANE2 ~
ANE0) で設定されたチャネルから A/D 変換を開始します。
• A/D 変換中は , 変換中のチャネル番号が読み出されます。停止変換モー
ドでの一時停止中は , 直前に変換したチャネルの番号が読み出されま
す。
また , 本ビットに値を設定した場合でも A/D 変換が開始されるまでは ,
設定した値ではなく , 前回に A/D 変換したチャネル番号が読み出され
ます。
( 注意事項 )
A/D 変換開始チャネル設定ビット (ANS2, ANS1, ANS0) に開始チャネル
を設定した後に , 本レジスタのビットをリードモディファイライト
(RMW) 系命令で設定しないでください。
ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換
チャネルが読み出されるため , ANS2, ANS1, ANS0 ビットに開始チャネル
を設定した後に , 本レジスタのビットをリードモディファイライト
(RMW) 系命令で設定した場合 , ANE2, ANE1, ANE0 ビットの値が書き換
わる可能性があります。
ANE2, ANE1,
ANE0:
A/D 変換終了
チャネル設定
ビット
• A/D 変換の終了チャネルの設定を行うビットです。
• A/D 変換を起動した場合は , A/D 変換終了チャネル設定ビット (ANE2 ~
ANE0) で設定されたチャネルまで A/D 変換を行います。
• ANS2 ~ ANS0 ビットでチャネルを設定することでチャネルが変換さ
れます。連続 / 停止変換モードでは , ANS2 ~ ANS0 で設定した開始
チャネルが最後に変換されます。開始チャネルが終了チャネルより大
きい場合は , 開始チャネル→ AN7, AN0 →終了チャネルへとひと続きに
変換されます。
第 18 章 8/10 ビット A/D コンバータ
A/D データレジスタ (ADCR0, ADCR1)
18.4.4
A/D データレジスタ (ADCR0/ADCR1) は , A/D 変換結果を格納するレジスタですが ,
A/D 変換の分解能を設定 , A/D 変換時のサンプリング時間の設定 , および A/D 変換時
のコンペア時間設定を行う機能もあります。
■ A/D データレジスタ (ADCR0, ADCR1)
図 18.4-6 A/D データレジスタ (ADCR0, ADCR1)
アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
000037H(上位)
S10 ST1 ST0 CT1 CT0 - D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
000036H(下位)
W W
W
W
W
R
R
R
R
R
R
R
R R
R
D9~D0
初期値
00000XXXB(上位)
XXXXXXXXB(下位)
A/Dデータビット
変換データを格納
CT1 CT0
0
0
0
1
1
0
1
1
ST1 ST0
0
0
0
1
1
0
1
1
S10
コンペア時間設定ビット
サンプリング時間設定ビット
A/D変換分解能設定ビット
0
10ビット分解能モード(D9~D0)
1
8ビット分解能モード(D7~D0)
R :リードオンリ
W :ライトオンリ
X :不定
- :未定義ビット
<注意事項>
コンペア時間 , サンプリング時間を設定するとき , 最小限必要な値が尊重されなければな
りません。例えば , ある周波数では 44 マシンサイクルは使用できません。
詳細については , データシートを参照してください。
283
第 18 章 8/10 ビット A/D コンバータ
表 18.4-3 A/D データレジスタ 0 (ADCR0) の各ビットの機能説明
ビット名
bit15
bit14,
bit13
bit12,
bit11
S10:
A/D変換分解能
設定ビット
ST1, ST0:
サンプリング
時間
設定ビット
CT1, CT0:
コンペア時間
設定ビット
機 能
• A/D 変換の分解能を設定するビットです。
• "0" を設定した場合は , 10 ビット分解能が設定されます。
• "1" を設定した場合は , 8 ビット分解能が設定されます。
( 注意事項 )
分解能によって , 使用される A/D データビットが異なります。
• A/D 変換のサンプリング時間を設定するビットです。
• A/D 変換が起動されると , サンプリング時間設定ビット (ST1, ST0) で
設定した時間 , アナログ入力が取り込まれます。
( 注意事項 )
• マシンクロック周波数 16 (20, 24)MHz の場合に , "00B" を設定すると ,
正常なアナログ変換値が得られない場合があります。
• "00B" を設定する場合は , マシンクロック周波数を 8MHz 以下として
ください。
• A/D 変換時のコンペア時間を設定するビットです。
• アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , コンペア
時間設定ビット (CT1, CT0) で設定した時間後に , A/D 変換結果が確定
し , A/D データビット (D9 ~ D0) に格納されます。
( 注意事項 )
• "00B" を設定する場合は , マシンクロック周波数を 8MHz 以下として
ください。
• マシンクロック周波数 16 (20, 24)MHz の場合に , "00B" を設定すると ,
正常なアナログ変換値が得られない場合があります。
bit10
bit9
~
bit0
-:
未定義ビット
-
D9 ~ D0:
A/D 変換終了
チャネル選択
ビット
• A/D 変換結果が格納されるビットです。1 回の A/D 変換終了ごとに書
き換えられます。
• 通常は , 最終変換値が格納されます。
• 初期値は不定です。
( 注意事項 )
A/D 変換データ保護機能があります ( 詳細は ,「18.6 8/10 ビット A/D コ
ンバータの動作」を参照 ) 。
A/D 変換中に , A/D データビットにデータを書き込まないでください。
<注意事項>
• A/D 変換分解能設定ビット (S10) を書き換える場合は , 必ず A/D 変換動作前に A/D 変
換動作を停止させてから書き換えてください。A/D 変換動作開始後に書き換えた場合
は , A/D データレジスタ (ADCR0, ADCR1) の内容は不定となります。
• A/D データレジスタ (ADCR0, ADCR1) を読み出す場合 , 10 ビット分解能モードを設定
した場合は , 必ずワード転送命令 (MOVW A, 002EH など ) を使用してください。
284
第 18 章 8/10 ビット A/D コンバータ
18.5
8/10 ビット A/D コンバータの割込み
8/10 ビット A/D コンバータは , A/D 変換で A/D データレジスタにデータがセットさ
れると割込み要求を出力します。拡張インテリジェント I/O サービス (EI2OS) にも
対応しています。
■ 8/10 ビット A/D コンバータの割込み
表 18.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因
8/10 ビット A/D コンバータ
割込み要求フラグビット
ADCS:INT
割込み要求許可ビット
ADCS:INTE
割込み要因
A/D 変換結果の A/D データレジスタへ格納
A/D 変換動作が起動され , A/D 変換結果が A/D データレジスタ (ADCR) に格納される
と , A/D 制御ステータスレジスタ (ADCS1) の割込み要求フラグビット (INT) に "1" が
セットされ , 割込み要求許可ビット (ADCSI: INTE=1) に "1" が設定されていると割込み
要求を出力します。
■ 8/10 ビット A/D コンバータの割込みと EI2OS
表 18.5-2 8/10 ビット A/D コンバータの割込みと EI2OS
割込み制御レジスタ
ベクタテーブルのアドレス
EI2OS
割込み番号
#31 (1FH)
レジスタ名
アドレス
下位
上位
バンク
ICR10
0000BAH
FFFF80H
FFFF81H
FFFF82H
○
○:使用可能
■ 8/10 ビット A/D コンバータの EI2OS 機能
10 ビット A/D コンバータは , EI2OS 機能を使用して A/D 変換結果をメモリに転送でき
ます。EI2OS 機能を使用する場合は , 変換データ保護機能が働き , A/D 変換データがメ
モリに転送され , A/D 制御ステータスレジスタ (ADCS1) の割込み要求フラグビット
(INT) が "0" にクリアされるまで , A/D 変換は一時停止されるので , データの欠落を防
止できます。
285
第 18 章 8/10 ビット A/D コンバータ
8/10 ビット A/D コンバータの動作
18.6
8/10 ビット A/D コンバータには , 単発変換 , 連続変換 , 停止変換の 3 つの変換モー
ドがあります。以下に , それぞれのモードでの動作を説明します。
■ 単発変換モードでの動作
単発変換モードにおいて , ANS ビットで設定されたチャネルから ANE ビットで設定さ
れたチャネルの間でのアナログ入力は連続して変換されます。変換されるチャネルが
ANE ビットで設定された終了チャネルに達すると A/D 変換は停止します。開始と終了
チャネルが同じ場合 (ANS = ANE) は , ANS ビットで設定したチャネルが変換されると
停止します。
図 18.6-1 に単発変換モードで動作するために必要な設定を示します。
図 18.6-1 単発変換モードの設定
ADCS
ADCR
ADER
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
BUSY
INT
INTE
PAUS
STS1
STS0
STRT
MD1
MD0
ANS2
ANS1
ANS0
ANE2
ANE1
ANE0
◇
◇
◇
◇
◇
◇
◇
予約
0
◇
◇
◇
◇
◇
◇
◇
◇
S10
ST1
ST0
CT1
CT0
−
◇
◇
◇
◇
変換データを保管
ADSEL
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
◇
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◇ : 変換中に使用
◆ : 端子に相当したビットを "1" に設定
0: "0" に設定
<参考>
下記に単発変換モードでの変換シーケンス例を示します ( ここでは ADSEL = 0 とする )。
ANS = 000B, ANE = 011B: AN0 → AN1 → AN2 → AN3 → 終了
ANS = 110B, ANE = 010B: AN6 → AN7 → AN0 → AN1 → AN2 → 終了
ANS = 011B, ANE = 011B: AN3 → 終了
■ 停止変換モードでの動作
停止変換モードにおいて , ANS ビットで設定されたチャネルから ANE ビットで設定さ
れたチャネルの間でのアナログ入力は , 各チャネルの変換後に一時停止しながら連続
して変換されます。ANE ビットで設定された終了チャネルが実行されると , A/D 変換
は一時停止し, 再びANSビットで設定されたチャネルから実行します。開始と終了チャ
ネルが同じ場合 (ANS = ANE) は , ANS ビットで設定したチャネルの変換が繰り返され
ます。
図 18.6-2 に停止変換モードで動作するために必要な設定を示します。
286
第 18 章 8/10 ビット A/D コンバータ
図 18.6-2 停止変換モードの設定
ADCS
ADCR
ADER
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
BUSY
INT
INTE
PAUS
STS1
STS0
STRT
MD0
ANS2
ANS1
ANS0
ANE2
ANE1
ANE0
◇
◇
◇
◇
◇
◇
予約
0
MD1
◇
1
1
◇
◇
◇
◇
◇
◇
S10
ST1
ST0
CT1
CT0
−
◇
◇
◇
◇
◆
◆
◆
◆
◆
◆
◆
◆
◆
変換データを保管
ADSEL
◇
◆
◆
◆
◆
◆
◆
◇ : 変換中に使用
◆ : 端子に相当したビットを "1" に設定
0: "0" に設定
1: "1" に設定
<参考>
下記に停止変換モードでの変換シーケンス例を示します ( ここでは ADSEL = 0 とする )。
ANS = 000B, ANE = 011B: AN0 → 一時停止 → AN1 → 一時停止 → AN2 → 一時停止
→ AN3 →一時停止 → AN0 → 繰返し
ANS = 110B, ANE = 011B: AN6 → 一時停止 → AN7 → 一時停止 → AN0 → 一時停止
→ AN1 →一時停止→ AN2 → 一時停止 → AN3 → 一時停
止→ AN6 → 繰返し
ANS = 011B, ANE = 011B: AN3 →一時停止→ AN3 →一時停止→ 繰返し
287
第 18 章 8/10 ビット A/D コンバータ
18.6.1
A/D 変換の EI2OS 使用
8/10 ビット A/D コンバータは , A/D 変換結果をメモリに転送するために EI2OS 転送
を使用します。
■ A/D 変換の EI2OS 使用
EI2OS を使用したときの動作フローを以下に示します。
図 18.6-3 EI2OS を使用したときのサンプル動作フローチャート
A/D 変換開始
サンプル & ホールド
EI2OS 開始
変換
変換終了
割込み発生
データ転送
データ
転送の繰返しが
規定された回数 * に
達した ?
YES
割込み処理
NO
割込みクリア
*: 回数は EI2OS の設定で規定されます。
EI2OSを使用することで, 変換データ保護機能は連続変換中であってもすべてのデータ
を消失から保護します。安全に逓倍データ要素をメモリに転送できます。
288
第 18 章 8/10 ビット A/D コンバータ
18.6.2
A/D 変換データ保護機能
A/D 変換が割込み許可状態で実行されていると変換データ保護機能が動作します。
■ A/D 変換データ保護機能
A/D コンバータには , 変換データを保管するデータレジスタは 1 つだけです。単発変換
が終了すると , データレジスタ中のデータは上書きされます。
次の変換データがストアされる前に変換結果がメモリに転送されない場合 , 変換デー
タの一部が消失します。割込み許可状態 (INTE = 1) でのデータ保護機能は , そのよう
なデータの消失を防ぎます。
● EI2OS が使用されていないときのデータ保護機能
変換データが A/D データレジスタ (ADCR) にストアされるとき , A/D 制御ステータス
レジスタ 1(ADCS1) の INT ビットは "1" に設定されます。
INT ビットが "1" の間 , A/D 変換は停止します。
A/D データレジスタ (ADCR) 中のデータが割込みルーチンでメモリに転送された後 ,
INT ビットがクリアされると停止状態が解除されます。
● EI2OS を使用しているときのデータ保護機能
EI2OS を使用した連続変換において , A/D 制御ステータスレジスタ 1(ADCS1) の PAUS
ビットは変換が終了するまで "1" に維持されます。この状態は , EI2OS がデータレジス
タからメモリに変換データの転送を完了させるまで続きます。その間 , A/D 変換は停止
され , 次の変換データはストアされません。このとき , 一時停止フラグビット (ADCS1:
PAUS) は自動的に "0" にクリアされません。クリアするためには同ビットに "0" を書
き込んでください。連続して A/D 変換を行っている場合は , A/D 変換動作が再開され
ます。
図 18.6-4 に EI2OS 使用時のデータ保護機能の動作フローを示します。
289
第 18 章 8/10 ビット A/D コンバータ
図 18.6-4 EI2OS 使用時のデータ保護機能の動作フローチャート
EI2OS を設定
連続 A/D 変換開始
最初の変換終了
データをデータレジスタに
保管
EI2OS を起動
2 番目のデータ変換完了
EI2OS は終了 ?
NO
A/D 変換を停止
YES
データをデータレジスタに
保管
3 番目のデータ変換
EI2OS を起動
続く
全データ変換完了
EI2OS を起動
続く
データをデータレジスタに
保管
割込み処理ルーチン
A/D 変換を初期化または停止
終了
( 注意事項 ) A/D コンバータが停止している間のステップは 除外する。
<注意事項>
• 変換データ保護機能は , 割込み許可状態 (ADCS1: INTE = 1) のときのみ動作します。
• EI2OS が動作中で A/D 変換が停止している間に割込みが禁止になった場合 , A/D 変換
は再開されます。これにより , 古いデータを保管する前に新しいデータの上書きが発生
します。停止中に再開を試みると古いデータが破壊されます。
• 停止中に再開を試みるとスタンバイデータが破壊されます。
290
第 18 章 8/10 ビット A/D コンバータ
18.7
A/D コンバータ使用上の注意
A/D コンバータを使用する場合の注意点を示します。
■ 8/10 ビット A/D コンバータ使用上の注意
● アナログ入力端子
A/D コンバータのアナログ入力端子はポート 6 およびポート B の入出力端子と兼用に
なっており , ポート 6 方向レジスタ (DDR6) とアナログ入力許可レジスタ (ADER) を切
り換えて使用します。A/D コンバータのアナログ入力端子として使用する場合は , ポー
ト 6 方向レジスタ (DDR6 と DDRB) の対応するビットに "0" を設定 ( 入力ポートに設定 )
後 , アナログ入力許可レジスタ (ADER) レジスタの対応するビットに "1" を設定 ( アナ
ログ入力モードに設定 : ADEx=1) し , ポート側の入力ゲートを固定してください。ポー
ト入出力モード (ADEx=0) では中間レベルの信号が入力されると , ゲートに入力リーク
電流が流れます。
● 内部タイマで使用する場合の注意
A/D コンバータを内部タイマで起動する場合 , A/D 制御ステータスレジスタ (ADCS1)
の A/D 起動要因設定ビット (STS1, STS0) で設定しますが , 内部タイマの入力値は , イ
ンアクティブ側 ( 内部タイマの場合は "L") にしてください。アクティブ側にしておく
と , A/D 制御ステータスレジスタ (ADCS) へデータ書込みを行った場合 , A/D コンバー
タが動作し始める場合があります。
● A/D コンバータの電源の投入および切断順序
A/D コンバータの電源端子 (AVcc, AVRH, AVRL) とアナログ入力端子 (AN0 ~ AN7) へ
の電圧印加は , 必ずデジタル電源 (Vcc) の投入後に行ってください。A/D コンバータの
電源 , およびアナログ入力電源を切断した後に , デジタル電源 (Vcc) を切断してくださ
い。AVR は , AVcc を超えないように電圧の印加と切断を行ってください。
● A/D コンバータの電源電圧について
ラッチアップ防止のため , A/D コンバータの電源 (AVcc) は , デジタル電源 (Vcc) の電圧
を超えないようにしてください。
291
第 18 章 8/10 ビット A/D コンバータ
18.8
8/10 ビット A/D コンバータのプログラム例 -1
( 単発変換モードの EI2OS 起動例 )
単発変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。
■ 単発変換モードの EI2OS 起動プログラム例
● 処理仕様
• アナログ入力 AN1 ~ AN3 まで変換して終了します。
• 変換データは , "200H" ~ "205H" 番地に順に転送します。
• 分解能は , 10 ビットとします。
• 起動は , ソフトウェア起動で行います。
図 18.8-1 単発変換モードの EI2OS 起動プログラム例のフロー
変換開始
AN1
割込み→EI2OS転送
AN2
割込み→EI2OS転送
AN3
割込み→EI2OS転送
終了
割込みシーケンス
並行処理
292
第 18 章 8/10 ビット A/D コンバータ
● コーディング例
BAPL
BAPM
BAPH
EQU
EQU
EQU
000100H
000101H
000102H
; 下位バッファアドレスポインタ
; 中間バッファアドレスポインタ
; 上位バッファアドレスポインタ
ISCS
EQU 000103H
; EI2OS ステータスレジスタ
IOAL
EQU 000104H
; 下位 I/O アドレスレジスタ
IOAH
EQU 000105H
; 上位 I/O アドレスレジスタ
DCTL EQU 000106H
; 下位データカウンタ
DCTH EQU 000107H
; 上位データカウンタ
DDR6 EQU 000016H
; ポート 6 方向レジスタ
ADER0 EQU 00000CH
; アナログ入力許可レジスタ
ICR10 EQU 0000BAH
; A/D コンバータ用割込み制御レジスタ
ADCS0 EQU 000034H
; A/D 制御ステータスレジスタ
ADCS1 EQU 000035H
;
ADCR0 EQU 000036H
; A/D データレジスタ
ADCR1 EQU 000037H
;
;-----Main program--------------------------------------------------------------CODE CSEG
START:
; スタックポインタ (SP) が既に初期化済み
; であると想定
AND CCR,#0BFH
; 割込み不可
MOV ICR10,#00H
; 割込みレベル : 0 ( 最優先 )
MOV BAPL,#00H
; 変換データが転送され , 保管されるアドレスを
設定
;
MOV BAPM,#02H
; (200H ~ 205H を使用 )
MOV BAPH,#00H
;
MOV ISCS,#18H
; ワードデータを転送 , アドレスに 1 を加算 ,
; そして I/O メモリからデータを転送
MOV IOAL,#36H
; アナログデータレジスタのアドレスを
MOV IOAH,#00H
; 転送ソースアドレスポインタとして設定
MOV
DCTL,#03H
MOV
MOV
MOV
MOV
MOV
DDR6,#11110001B
ADER0,#00001110B
CTH,#00H
ADCS0,#0BH
ADCS1,#0A2H
MOV
OR
ILM,#07H
CCR,#40H
MOV
MOV
BRA
A,#00H
A,#01H
LOOP
; EI2OS 転送カウントを 3 に設定 ,
; これは変換カウントと同じ値
; P61 ~ P63 を入力として設定
; P61/AN1~P63/AN3をアナログ入力として設定
;
; シングル活性化 , AN1 ~ AN3 を変換
; ソフトウェア活性化 , A/D 変換開始
; 割込み許可
; PS の ILM をレベル 7 に設定
; 割込み許可
LOOP:
; ループエンドレス
293
第 18 章 8/10 ビット A/D コンバータ
;-----Interrupt program---------------------------------------------------------ED_INT1:
MOV I:ADCS1,#00H
; A/D 変換停止 , 割込みフラグをクリア , 不可
;
RETI
; 割込みから復帰
CODE ENDS
;-----Vector setting------------------------------------------------------------VECT CSEG ABS=0FFH
ORG
0FFB4H
; ベクタを割込み #18(12H) に設定
DSL
ED_INT1
ORG
0FFDCH
; リセットベクタ設定
DSL
START
DB
00H
; シングルチップモード設定
VECT ENDS
END START
294
第 18 章 8/10 ビット A/D コンバータ
18.9
8/10 ビット A/D コンバータのプログラム例 -2
( 連続変換モードの EI2OS 起動例 )
連続変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。
■ 連続変換モードの EI2OS 起動プログラム例
処理仕様
• アナログ入力 AN3 ~ AN5 の変換を 2 度行い , 各チャネルの変換データを 2 個取得
します。
• 変換データは , "600H" ~ "60BH" 番地に順に転送します。
• 分解能は , 10 ビットとします。
• 起動は , 16 ビットリロードタイマで行います。
図 18.9-1 連続変換モードの EI2OS 起動プログラムのフロー
変換開始
AN3
割込み→EI2OS転送
AN4
割込み→EI2OS転送
AN5
割込み→EI2OS転送
全6回転送後
割込みシーケンス
終了
295
第 18 章 8/10 ビット A/D コンバータ
● コーディング例
BAPL
BAPM
BAPH
EQU
EQU
EQU
000100H
000101H
000102H
; 下位バッファアドレスポインタ
; 中間バッファアドレスポインタ
; 上位バッファアドレスポインタ
ISCS
IOAL
IOAH
DCTL
DCTH
DDR6
ADER0
ICR10
ADCS0
ADCS1
ADCR0
ADCR1
TMCSR1L
TMCSR1H
TMRL1L
TMRL1H
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
000103H
000104H
000105H
000106H
000107H
000016H
00000CH
0000BAH
000034H
000035H
000036H
000037H
000068H
000069H
003902H
003903H
; EI2OS ステータスレジスタ
; 下位 I/O アドレスレジスタ
; 上位 I/O アドレスレジスタ
; 下位データカウンタ
; 上位データカウンタ
; ポート 6 方向レジスタ
; アナログ入力許可レジスタ
; A/D コンバータ用割込み制御レジスタ
; A/D 制御ステータスレジスタ
;
; A/D データレジスタ
;
; 下位制御ステータスレジスタ 1
;
; 16 ビットリロードレジスタ 1
;
;-----Main program--------------------------------------------------------------CODE CSEG
START:
AND
MOV
CCR,#0BFH
ICR10,#08H
;
MOV
MOV
MOV
MOV
BAPL,#00H
BAPM,#06H
BAPH,#00H
ISCS,#18H
MOV
MOV
MOV
IOAL,#36H
IOAH,#00H
DCTL,#06H
MOV
MOV
MOV
MOV
MOV
DDR6,#00000000B
ADER0,#00111000B
DCTH,#00H
ADCS0,#9DH
ADCS1,#0A8H
MOVW TMRL1L,#0320H
296
MOV
TMCSR1H,#00H
MOV
TMCSR1L,#12H
; スタックポインタ (SP) が既に初期化済み
; であると想定
; 割込み不可
; 割込みレベル : 0 ( 最優先 )
; 割込み時に E12OS を許可
; 変換データが保管されるアドレスを設定
; (600H ~ 60BH を使用 )
;
; ワードデータを転送 , アドレスに 1 を加算 ,
; そして I/O メモリからデータを転送
; アナログデータレジスタのアドレスを
; 転送ソースアドレスポインタとして設定
; EI2OS による 6 種類転送
; (3 チャネルに対しそれぞれ 2 種類 )
; P60 ~ P67 を入力として設定
; P63/AN3 ~ P65/AN5をアナログ入力として設定
;
; 継続変換モード , AN3 ~ AN5 を変換
;16 ビットタイマを起動 , A/D 変換を開始し
; 割込みを許可する
; タイマ値を 800(320H), 100s に設定
; クロックソースを 125ns に設定
; 外部トリガを禁止
; タイマ出力を禁止 , 割込みを禁止し
; リロードを許可
第 18 章 8/10 ビット A/D コンバータ
MOV
MOV
OR
TMCSR1L,#13H
ILM,#07H
CCR,#40H
;16 ビットタイマを起動
; PS の ILM をレベル 7 に設定
; 割込みを許可
LOOP:
MOV A,#00H
; ループエンドレス
MOV A,#01H
BRA LOOP
;-----Interrupt program---------------------------------------------------------ED_INT1:
MOV I:ADCS1,#80H
; A/D 変換停止不可 , 割込みフラグを
; クリア , 不可
RETI
; 割込みから復帰
CODE ENDS
;-----Vector setting------------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFB4H
; ベクタを割込み #18(12H) に設定
DSL
ED_INT1
ORG 0FFDCH
; リセットベクタ設定
DSL
START
DB
00H
; シングルチップモード設定
VECT ENDS
END
START
297
第 18 章 8/10 ビット A/D コンバータ
18.10
8/10 ビット A/D コンバータのプログラム例 -3
( 停止変換モードの EI2OS 起動例 )
停止変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。
■ 停止変換モードの EI2OS 起動プログラム例
● 処理仕様
• アナログ入力 AN3 を一定期間で 12 回変換します。
• 変換データは , "600H" ~ "617H" 番地に順に転送します。
• 分解能は , 10 ビットとします。
• 起動は , 16 ビットリロードタイマで行います。
図 18.10-1 停止変換モードの EI2OS 起動プログラムのフロー
変換開始
AN3
割込み
EI2OS転送
停止
12回転送後
割込みシーケンス
16ビットリロードタイマ1起動
終了
298
第 18 章 8/10 ビット A/D コンバータ
● コーディング例
BAPL
BAPM
BAPH
EQU
EQU
EQU
000100H
000101H
000102H
; 下位バッファアドレスポインタ
; 中間バッファアドレスポインタ
; 上位バッファアドレスポインタ
ISCS
IOAL
IOAH
DCTL
DCTH
DDR6
ADER0
ICR10
ADCS0
ADCS1
ADCR0
ADCR1
TMCSR1L
TMCSR1H
TMRL1L
TMRL1H
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
000103H
000104H
000105H
000106H
000107H
000016H
00000CH
0000BAH
000034H
000035H
000036H
000037H
000068H
000069H
003902H
003903
; EI2OS ステータスレジスタ
; 下位 I/O アドレスレジスタ
; 上位 I/O アドレスレジスタ
; 下位データカウンタ
; 上位データカウンタ
; ポート 6 方向レジスタ
; アナログ入力許可レジスタ
; A/D コンバータ用割込み制御レジスタ
; A/D 制御ステータスレジスタ
;
; A/D データレジスタ
;
; 下位制御ステータスレジスタ 1
;
; 16 ビットリロードレジスタ 1
;
;-----Main program--------------------------------------------------------------CODE CSEG
START:
; スタックポインタ (SP) が既に初期化済み
; であると想定
AND CCR,#0BFH
; 割込み不可
MOV
MOV
MOV
MOV
MOV
ICR10,#08H
BAPL,#00H
BAPM,#06H
BAPH,#00H
ISCS,#19H
MOV
MOV
IOAL,#36H
IOAH,#00H
MOV
MOV
MOV
MOV
MOV
DCTL,#0CH
DDR6,#00000000B
ADER0,#00001000B
ADCS0,#0DBH
ADCS1,#0A8H
MOVW TMRL1L,#0320H
MOV
TMCSR1H,#00H
MOV
TMCSR1L,#12H
MOV
MOV
TMCSR1L,#13H
ILM,#07H
; 割込みレベル : 0 ( 最優先 )+ EI2OS.
; 変換データが保管されるアドレスを設定
; (600H ~ 617H を使用 )
;
; ワードデータを転送 , アドレスに 1 を加算 ,
; I/O メモリからデータを転送
; そしてリソース要求により終了
; アナログデータレジスタのアドレスを
; 転送ソースアドレスポインタとして設定
; EI2OS による 6 種類転送
; P60 ~ P67 を入力として設定
; P63/AN3 をアナログ入力として設定
; 変換モードを停止 , AN3 CH を変換
;16 ビットタイマを起動 , A/D 変換を開始し
; 割込みを許可する
; タイマ値を 800(320H), 100s に設定
; クロックソースを 125ns に設定
; 外部トリガを禁止
; タイマ出力を禁止 , 割込みを禁止し
; リロードを許可
;16 ビットタイマを起動
; PS の ILM をレベル 7 に設定
299
第 18 章 8/10 ビット A/D コンバータ
OR
CCR,#40H
; 割込みを許可
LOOP:
MOV A,#00H
; ループエンドレス
MOV A,#01H BRA LOOP
;-----Interrupt program---------------------------------------------------------ED_INT1:
MOV I:ADCS1,#80H
; A/D 変換停止不可 , 割込みフラグを
; クリア , 不可
RETI
; 割込みから復帰
CODE ENDS
;-----Vector setting------------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFB4H
; ベクタを割込み #18(12H) に設定
DSL
ED_INT1
ORG 0FFDCH
; リセットベクタ設定
DSL
START
DB
00H
; シングルチップモード設定
VECT ENDS
END
START
300
第 19 章
UART0, UART1
UART0, UART1 の機能と動作について説明しま
す。
( 注意事項 )
UART2 は MB90390 シリーズでは規定されていま
せん。このため , この機能を使用しないことを推奨
します。
19.1 UART0, UART1 の特長
19.2 UART のブロックダイヤグラム
19.3 UART のレジスタ
19.4 UART0, UART1 の動作
19.5 ボーレート
19.6 内部クロックおよび外部クロック
19.7 転送データフォーマット
19.8 パリティビット
19.9 割込み生成とフラグのセットタイミング
19.10 UART0, UART1 の応用例
301
第 19 章 UART0, UART1
19.1
UART0, UART1 の特長
UART0, UART1 は , 非同期通信または CLK 同期通信を行うためのシリアル I/O ポー
トです。MB90390 シリーズには 4 本の UART があります。UART2, UART3 につい
ては「第 20 章 UART2, UART3」を参照してください。
■ UART0, UART1 の特長
UART0, UART1 には以下の特長があります。
• 全二重ダブルバッファ
• CLK 同期と CLK 非同期調歩式データ転送のサポート
• マルチプロセッサモードのサポート
• 専用ボーレートジェネレータの内蔵 (12 種類 )
• 外部クロック入力または内部タイマによる自由なボーレート設定のサポート
• 可変長データ (7ビット~9ビット[パリティなし], 6ビット~8ビット[パリティあり])
• エラー検出機能 ( パリティ , フレーミング , オーバラン )
• 割込み機能 ( 受信割込みと送信割込み )
• NRZ 形式の転送フォーマット
302
第 19 章 UART0, UART1
19.2
UART のブロックダイヤグラム
図 19.2-1 に , UART0, UART1 のブロックダイヤグラムを示します。
■ UART0, UART1 のブロックダイヤグラム
図 19.2-1 UART0, UART1 のブロックダイヤグラム
コントロールバス
受信割込み(CPUへ)
専用ボーレートクロック
SCK0
送信クロック
16ビットリロードタイマ0
クロック
選択回路
送信割込み(CPUへ)
受信クロック
SCK0
SIN0
受信制御回路
送信制御回路
スタートビット
検出回路
送信スタート回路
受信ビットカウンタ
送信ビットカウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
SOT0
送信用シフタ
受信用シフタ
受信状態判定回路
受信終了
送信開始
UIDR
UODR
EI2OS用
受信エラー発生信号
(CPUへ)
データバス
UMC
レジスタ
PEN
SBL
MC1
MC0
SMDE
RFC
SCKE
SOE
USR
レジスタ
RDRF
ORFE
PE
TDRE
RIE
TIE
RBF
TBF
URD
レジスタ
BCH
RC3
RC2
RC1
RC0
BCH0
P
D8
コントロールバス
(注意事項) このダイヤグラムは,UART0,UART1については有効です。
303
第 19 章 UART0, UART1
19.3
UART のレジスタ
UART0, UART1 には , 次の 4 つのレジスタがあります。
• シリアルモード制御レジスタ
• ステータスレジスタ
• インプットデータ / アウトプットデータレジスタ
• レート・データレジスタ
■ UART のレジスタ
シリアルモード制御レジスタ
bit 7
アドレス:ch.0 000020H
ch.1 000024H
リード / ライト→
初期値→
6
5
4
3
2
1
0
PEN
SBL
MC1
MC0
SMDE
RFC
SCKE
SOE
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(W)
(1)
(R/W)
(0)
(R/W)
(0)
14
13
12
11
10
9
8
PE
TDRE
RIE
TIE
RBF
TBF
(R)
(0)
(R)
(1)
(R/W)
(0)
(R/W)
(0)
(R)
(0)
(R)
(0)
UMC0
UMC1
ステータスレジスタ
bit15
アドレス:ch.0 000021H
ch.1 000025H
リード / ライト→
初期値→
RDRF ORFE
(R)
(0)
(R)
(0)
USR0
USR1
インプットデータレジスタ / アウトプットデータレジスタ
bit 7
アドレス:ch.0 000022H
ch.1 000026H
リード / ライト→
初期値→
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)
(W)
(X)
(R/W)
(X)
(R/W)
(X)
14
13
12
11
10
9
8
BCH
RC3
RC2
RC1
RC0
BCH0
P
D8
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(X)
UIDR0( 読出し )
UODR0( 書込み )
UIDR1( 読出し )
UODR1( 書込み )
レート・データレジスタ
bit15
アドレス:ch.0 000023H
ch.1 000027H
リード / ライト→
初期値→
R/W: リード / ライト可能
W: ライトオンリ
R: リードオンリ
X:
不定
304
URD0
URD1
第 19 章 UART0, UART1
シリアルモード制御レジスタ (UMC)
19.3.1
シリアルモード制御レジスタ (UMC) は , UART0, UART1 の動作モードを指定しま
す。動作が停止中に動作モードを設定します。ただし , RFC ビットは動作中もアク
セス可能です。
■ シリアルモード制御レジスタ (UMC)
図 19.3-1 シリアルモード制御レジスタ (UMC) の構成
アドレス:bit 7
ch.0 000020H
ch.1 000024H
6
5
4
3
2
1
0
UMC0 UMC1
PEN SBL MC1 MC0 SMDE RFC SCKE SOE
R/W R/W R/W R/W R/W W R/W R/W
初期値
00000100B
bit0
シリアル出力イネーブル
SOE
0
SOT0, SOT1 端子禁止 (Hi-Z)
1
SOT0, SOT1 端子許可 (TxData)
bit1
シリアル出力イネーブル
SCKE
0
外部シリアルクロック入力
1
内部シリアルクロック出力
bit2
受信フラグクリア
RFC
読出し時
書込み時
0
RDRF, ORFE, PE をクリア
1
影響なし
bit3
SMDE
常に "1"
同期モードイネーブル
0
スタート・ストップ CLK 同期送信
1
非同期送信
bit5
bit4
動作モード設定
MC1
MC0
0
0
0
1
モード 1:非同期 , 8(7) データビット
1
0
モード 2:非同期 , マルチプロセッサ , 8+1 データビット
1
1
モード 3:非同期 , 9(8) データビット
モード 0:非同期 , 7(6) データビット
bit6
ストップビット長
SBL
0
1 ビット
1
2 ビット
bit7
パリティイネーブル
PEN
R/W
:
リード / ライト可能
W
:
ライトオンリ
( 読出しは常に "0" を戻します )
:
初期値
0
パリティ使用禁止
1
パリティを使用
305
第 19 章 UART0, UART1
■ シリアルモード制御レジスタ (UMC) の内容
表 19.3-1 シリアル制御レジスタビットの機能
ビット名
bit7
bit6
機 能
PEN:
パリティ許可
シリアルデータ I/O でパリティビットの追加 ( 送信時 ) または検出 ( 受
信時 ) を指定します。モード 2 では "0" に設定します。
"0": パリティなし
"1": パリティあり
SBL:
ストップビット長
送信データのストップビット数を指定します。受信データについては ,
最初のストップビットだけが認識され , それ以降のストップビットは無
視されます。
"0":1 ビット長
"1":2 ビット長
転送データの長さを制御します。表 19.4-1 に , 本ビットで選択可能な 4
つの転送モード ( データ長 ) を示します。
bit5,
bit4
MC1, MC0:
モード制御ビット
Mode
MC1
MC0
データ長
0
0
0
7 (6)
1
0
1
8 (7)
2
1
0
8+1
3
1
1
9 (8)
括弧内の数字は , パリティ付きのデータ長を示します。
"+1" はパリティの代わりにアドレス / データビットを意味します。
bit3
bit2
bit1
SMDE:
同期モード許可
RFC:
レシーバフラグ
クリア
SCKE:
SCLK 許可
SMDE は , 転送方法を選択します。
"0": 調歩式 CLK 同期転送 ( 調歩ビットによるクロック選択の同期転送 )
"1": 調歩式 CLK 非同期転送
"0" を書き込むと , USR レジスタ中の RDRF, ORFE, PE フラグがクリア
されます。"1" 書込みは無効であり , 読出し値は常に "1" になります。
( 注意事項 )
受信割込みが UART0, UART1 操作中許可されている場合 , RDRF, ORFE,
PE のどれかが "1" になっていれば , RFC には "0" のみを書き込みます。
CLK 同期モードで本ビットに "1" を書き込むと , ポート端子が UART0,
UART1 シリアルクロック出力端子に切り換わり , 同期クロックが出力
されます。CLK 非同期モードまたは外部クロックモードで "0" を設定
してください。
"0": 汎用入出力ポートとして機能し, シリアルクロックを出力しません。
ポートが入力モード (DDR=0) に設定され , RC3 ~ RC0 が "1111B" に
設定されている場合 , 外部クロック入力端子として機能します。
"1": UART0, UART1 シリアルクロック出力端子として機能します。
bit0
306
SOE:
シリアル出力許可
"1" を書き込むと , ポート端子が UART0, UART1 シリアルデータ出力端
子に切り換わり , シリアル出力が可能になります。
"0": ポート端子として機能し , シリアルデータを出力しません。
"1": UART0, UART1 シリアルデータ出力端子 (SOT) として機能します。
第 19 章 UART0, UART1
ステータスレジスタ (USR)
19.3.2
ステータスレジスタ (USR) は , UART0, UART1 ポートの現在の状態を示します。
■ ステータスレジスタ (USR) の構成
図 19.3-2 ステータスレジスタ (USR) の構成
アドレス:bit 15
ch.0 000021H
ch.1 000025H
14
13
RDRF ORFE PE
R
R
12
11
TDRE RIE
R
10
9
TIE RBF
R R/W R/W R
8
USR0 USR1
初期値
TBF
R
00010000B
bit8
送信ビジーフラグビット
TBF
0
1
送信アイドル
送信ビジー
bit9
受信ビジーフラグビット
RBF
0
受信アイドル
1
受信ビジー
bit10
送信割込みイネーブルビット
TIE
0
1
割込み禁止
割込み許可
bit11
送信割込みイネーブルビット
RIE
0
割込み禁止
1
割込み許可
bit12
TDRE
送信データレジスタエンプティビット
0
UODR0, UODR1 におけるデータあり
1
UODR0, UODR1 におけるデータなし
bit13
PE
パリティエラービット
0
パリティエラー発生なし
1
パリティエラー発生あり
bit14
ORFE
オーバラン / フレーミングエラービット
0
オーバラン / フレーミングエラー発生なし
1
受信中にオーバラン / フレーミングエラー発生あり
bit15
RDRF
受信データレジスタフルビット
R/W
:
リード / ライト可能
0
UIDR0, UIDR1 におけるデータなし
R
:
リードオンリ
1
UIDR0, UIDR1 におけるデータあり
:
初期値
307
第 19 章 UART0, UART1
■ ステータスレジスタ (USR) の内容
表 19.3-2 ステータスレジスタビットの機能 (1 / 2)
ビット名
bit15
bit14
RDRF:
受信データ
レジスタ
フルビット
ORFE:
オーバラン /
フレーミング
エラービット
機能
UIDR ( インプットデータレジスタ ) の状態を示すフラグです。UIDR レ
ジスタに受信データがロードされるとセットされ , UIDR レジスタを読
み出すか , UMC レジスタ中の RFC に "0" を書き込むとクリアされます。
RIE がアクティブな場合 , RDRF がセットされていれば受信割込み要求
が生成されます。
"0":UIDR 中にデータなし
"1":UIDR 中にデータあり
受信中にオーバランまたはフレーミングエラーが発生した場合にセッ
トされるフラグです。UMC レジスタ中の RFC に "0" を書き込むと , ク
リアされます。本フラグをセットすると , UIDR 中のデータは無効にな
り , 受信用シフトレジスタから UIDR へのロードが実行されません。
RIE がアクティブな場合 , ORFE がセットされていれば受信割込み要求
が生成されます。
"0": エラーなし
"1": エラーあり ( 下の表を参照 )
UIDR0, UIDR1 の状態
RDRF
ORFE
0
0
空
0
1
フレーミングエラー
1
0
有効データ
1
1
オーバランエラー
PE:
パリティ
エラービット
受信パリティエラーが発生した場合にセットされるフラグです。UMC
レジスタ中の RFC に "0" を書き込むとクリアされます。本フラグを
セットすると , UIDR 中のデータは無効になり , 受信用シフタから UIDR
へのロードが実行されません。RIE がアクティブな場合 , PE がセット
されていれば受信割込み要求が生成されます。
"0": パリティエラーなし
"1": パリティエラー発生
bit12
TDRE:
送信データ
レジスタ
エンプティ
ビット
UODR ( アウトプットデータレジスタ ) の状態を示すフラグです。
UODR レジスタに送信データを書き込むとクリアされます。データが
送信用シフタにロードされ , 転送が開始されるとセットされます。TIE
がアクティブな場合 , TDRE がセットされていれば送信割込み要求が生
成されます。
"0":UODR 中にデータあり
"1":UODR 中にデータなし
bit11
RIE:
受信割込み
許可ビット
受信割込み要求を許可します。
"0": 割込みを禁止
"1": 割込みを許可
bit13
308
第 19 章 UART0, UART1
表 19.3-2 ステータスレジスタビットの機能 (2 / 2)
ビット名
機能
TIE:
送信割込み
許可ビット
送信割込み要求を許可します。TDRE が "1" のとき送信割込みが許可さ
れると , 送信割込みが直ちに生成されます。
"0": 割込みを禁止
"1": 割込みを許可
bit9
RBF:
受信ビジー
フラグビット
UART0, UART1 がインプットデータを受信中であることを示すフラグで
す。スタートビットが検出されるとセットされ , ストップビットが検出
されるとクリアされます。
"0": 受信側がアイドル状態
"1": 受信側がビジー状態
bit8
TBF:
送信ビジー
フラグビット
UART0, UART1 がインプットデータを送信中であることを示すフラグで
す。送信データが UODR レジスタに書き込まれるとセットされ , 送信
が完了するとクリアされます。
"0": 送信側がアイドル状態
"1": 送信側がビジー状態
bit10
309
第 19 章 UART0, UART1
19.3.3
インプットデータレジスタ (UIDR) とアウトプット
データレジスタ (UODR)
インプットデータレジスタ (UIDR) は , シリアルデータインプットレジスタであり ,
アウトプットデータレジスタ (UODR) は , シリアルデータアウトプットレジスタで
す。
データ長が 6 ビットの場合 , 最大有効ビットの D7 と D6 が無視され , データ長が 7
ビットの場合 , 最大有効ビットの D7 が無視されます。USR レジスタ中の TDRE=1
のときのみ UODR に書き込みし , USR レジスタ中の RDRF=1 のときのみ UIDR を
読出しできます。
■ インプットデータレジスタ (UIDR) とアウトプットデータレジスタ (UODR)
図 19.3-3 インプットデータレジスタ (UIDR) とアウトプットデータレジスタ (UODR)
アドレス
bit 7
ch.0 000022 H
ch.1 000026 H
6
5
4
3
2
1
0
R/W R/W R/W R/W R/W R/W R/W R/W
初期値
X X X X X X X XB
bit 7~ bit 0
R/W: リード / ライト可能
310
リード / ライト
読出し時
書込み時
データレジスタ
入力データレジスタから読出し
出力データレジスタへ書込み
第 19 章 UART0, UART1
レート・データレジスタ (URD)
19.3.4
レート・データレジスタ (URD) は , UART0, UART1 用のデータ転送速度を選択する
レジスタです。送信データ長が 9 ビットのとき , データの最大有効ビット (bit8) を
保持します。UART0, UART1 が停止中にボーレートとパリティを設定してくださ
い。
■ レート・データレジスタ (URD)
図 19.3-4 レート・データレジスタ (URD) の構成
アドレス:
bit 15
ch.0 000023 H
ch.1 000027 H
14
13
12
BCH RC3 RC2 RC1
11
10
RC0 BCH0
9
8
P
D8
R/W R/W R/W R/W R/W R/W R/W R/W
URD0 URD1
初期値
0 0 0 0 0 0 0 XB
bit8
D8
X
UIDRn/UODRn データビット 8
リード / ライト
bit9
パリティビット
P
0
偶数パリティ
1
奇数パリティ
bit10
BCH0
-
ボーレートクロック変換 1
詳細については表 19.3-3 を参照してください。
bit14~bit11
RC3~RC0
-
オーバラン / フレーミングエラー
詳細については表 19.3-3 を参照してください。
bit15
BCH
R/W
: リード / ライト可能
:
-
受信データレジスタフル
詳細については表 19.3-3 を参照してください。
初期値
311
第 19 章 UART0, UART1
■ レート・データレジスタ (URD) の内容
表 19.3-3 レート・データレジスタビットの機能
ビット名
機能
ボーレートクロック用のマシンサイクルを指定します ( 詳細について
は , 「19.4 UART0, UART1 の動作」を参照 ) 。
bit15,
bit10
BCH, BCH0:
ボーレート
クロック変換
ビット
BCH
BCH0
分周比
各マシンサイクルの設定例
0
0
6 分周
24MHz マシンサイクル 24/6=4MHz
0
1
4 分周
16MHz マシンサイクル 16/4=4MHz
1
0
3 分周
12MHz マシンサイクル 12/3=4MHz
1
1
5 分周
20MHz マシンサイクル 20/5=4MHz
10MHz マシンサイクル 10/5=2MHz
UART0, UART1 ポート用のクロック入力を選択します ( 詳細について
は , 「19.4 UART0, UART1 の動作」を参照 ) 。
RC3 ~ RC0
bit14 ~
bit11
312
RC3, RC2,
RC1, RC0
0000B ~ 1011B
クロック入力
専用ボーレートジェネレータ
1101B
16 ビットリロードタイマ 0
1111B
外部クロック
bit9
P:
パリティ
ビット
パリティがアクティブのとき , 偶数 / 奇数パリティを設定します
(PEN=1)。
"0": 偶数パリティ
"1": 奇数パリティ
bit8
D8:
UIDRn/UODRn
データ
ビット 8
モード 2 または 3 (9 ビットデータ長 ) およびパリティなしでの転送
データの bit8 を保持します。読出し時には UIDR レジスタの bit8 とし
て , 書込み時には UODR レジスタの bit8 として扱われます。その他
のモードでは意味を持ちません。USR レジスタ中で TDRE=1 のとき
のみ D8 に書き込みます。
第 19 章 UART0, UART1
19.4
UART0, UART1 の動作
表 19.4-1 に , UART0, UART1 の動作モードを示します。モードを切り換えるには ,
UMC レジスタに値を設定します。
■ UART0, UART1 の動作モード
表 19.4-1 UART0, UART1 の動作モード
モード
パリティ
データ長
ON
6
OFF
7
ON
7
OFF
8
OFF
8+1
ON
8
OFF
9
クロックモード
ストップビット長 *
0
1
2
CLK 非同期または
CLK 同期
1 ビットまたは
2 ビット
3
*: ストップビット長については , 送信動作のみ指定が可能です。受信動作について
は常に 1 ビット長となります。UART0, UART1 は上記モード以外では動作しませ
んので設定しないでください。
<注意事項>
UART0, UART1 は , 調歩クロック同期転送を使用するので , クロック同期転送でもスター
トビットとストップビットをデータに追加します。
313
第 19 章 UART0, UART1
19.5
ボーレート
専用ボーレートジェネレータ使用時には , 次の 2 種類のボーレートがあります。
• CLK 同期ボーレート
• CLK 非同期ボーレート
■ CLK 同期ボーレート
BCH, BCH0, RC3, RC2, RC1 の 5 つの URD レジスタが CLK 同期転送用のボーレートを
選択します。
最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。
BCH
BCH0
0
0
0
1
⇒
⇒
6分周 [例えば, 24MHz時 24/6=4MHz]
4分周 [例えば, 16MHz時 16/4=4MHz]
1
0
⇒
3分周
[例えば, 12MHz時
12/3=4MHz]
1
1
⇒
5分周
[例えば, 20MHz時
20/5=4MHz]
次に , 上記で選択したクロックの分周比を RC3, RC2, RC1, RC0 に設定します。CLK 同
期転送には , 以下の 3 つの設定が可能です。それ以外の設定は禁止されます。
RC3
RC2
RC1
RC0
0
1
0
1
⇒ 2分周 [例えば, 4MHz時
4/2=2.0Mbps]
0
1
1
1
⇒ 4分周 [例えば, 4MHz時
4/4=1.0Mbps]
1
0
0
1
⇒ 8分周 [例えば, 4MHz時 4/8=0.5Mbps]
(2MHz時, 上記の例の半分の速度になります。)
■ CLK 非同期ボーレート
BCH, BCH0, RC3, RC2, RC1, RC0 の 6 つの URD レジスタが CLK 非同期転送用のボー
レートを選択します。
最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。
BCH
BCH0
0
0
⇒
6分周 [例えば, 24MHz時
24/6=4MHz]
0
1
⇒
4分周 [例えば, 16MHz時
16/4=4MHz]
1
0
⇒
3分周 [例えば, 12MHz時
12/3=4MHz]
1
1
⇒
5分周 [例えば, 10MHz時
10/5=2MHz]
次に , 上記で選択したクロックの非同期転送クロック分周比を RC3, RC2, RC1, RC0 に
設定します。CLK 同期転送には , 以下の設定が可能です。
314
第 19 章 UART0, UART1
ボーレート
=
ボーレート
=
ボーレート
=
ボーレート
=
φ/6
2m-1
φ/4
2m-1
φ/3
2m-1
φ/5
2m-1
[bps] ( マシンサイクル= 24 MHz)
[bps] ( マシンサイクル= 16 MHz)
[bps] ( マシンサイクル= 12 MHz)
[bps] ( マシンサイクル= 20 (10) MHz)
上記の 12 個のボーレートが選択可能であり , CLK 同期ボーレートの計算方法の公式を
以下に示します。
ここで , φ はマシンサイクルであり , m は RC3 ~ RC1 の 10 進数表記です。
ボーレート
=
ボーレート
=
ボーレート
=
ボーレート
=
φ/6
2m-1
φ/4
2m-1
φ/3
2m-1
φ/5
2m-1
[bps] ( マシンサイクル= 24 MHz)
[bps] ( マシンサイクル= 16 MHz)
[bps] ( マシンサイクル= 12 MHz)
[bps] ( マシンサイクル= 20 (10) MHz)
<注意事項>
m=0 または m=1 の場合 , 上記公式は計算不可です。
CLK 非同期ボーレートが -1% ~ +1% の範囲にある場合 , データ転送が可能です。ボー
レートは , CLK 非同期ボーレートを 8 × 13, 8 × 12, 8 で割った値です。
表 19.5-1 に , マシンサイクルが 24MHz, 20MHz, 16MHz, 12MHz 時の例を示します。表中
の "-" でマークした設定は使用しないでください。
315
第 19 章 UART0, UART1
表 19.5-1 ボーレート
CLK 非同期 (μs/bps)
RC3 RC2 RC1 RC0
CLK 同期 (μs/bps)
24 MHz
20 MHz
16 MHz
12 MHz
BCH/
0=00B
BCH/
0=11B
BCH/
0=01B
BCH/
0=10B
-
-
-
-
CLK
24 MHz
非同期
分周比
BCH/
0=00B
20 MHz
16 MHz
12 MHz
BCH/
0=11B
BCH/
0=01B
BCH/
0=10B
8 × 12
-
-
-
-
26/ 38460 26/ 38460 26/ 38460 26/ 38460 8 × 13
-
-
-
-
8
-
-
-
-
8
-
-
-
-
-
-
-
-
0.5 / 2M
0.5 / 2M
0.5 / 2M
-
-
-
-
104/ 9615 104/ 9615 104/ 9615 104/ 9615 8 × 13
1 / 1M
1 / 1M
1 / 1M
1 / 1M
0
192/ 5208 192/ 5208 192/ 5208 192/ 5208 8 × 12
-
-
-
-
0
1
208/ 4808 208/ 4808 208/ 4808 208/ 4808 8 × 13 2 / 500K
2 / 500K
2 / 500K
2 / 500K
0
1
0
1
0
1
1
1
1
0
0
-
-
-
1
1
0
1
-
-
1
1
1
0
-
1
1
1
1
-
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
2/500000 2/500000 2/500000 2/500000
0
1
0
0
48/ 20833 48/ 20833 48/ 20833 48/ 20833 8 × 12
0
1
0
1
52/ 19230 52/ 19230 52/ 19230 52/ 19230 8 × 13 0.5 / 2M
0
1
1
0
96/10417 96/10417 96/10417 96/10417 8 × 12
0
1
1
1
1
0
0
1
0
1
316
-
-
-
-
-
-
8
-
-
-
-
8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
16/ 62500 16/ 62500 16/ 62500 16/ 62500
第 19 章 UART0, UART1
19.6
内部クロックおよび外部クロック
RC3 ~ RC0 を "1101B" に設定すると , 16 ビットリロードタイマからのクロック信
号を選択することになります。RC3 ~ RC0 を "1111B" に設定すると外部クロック
を選択することになります。
なお , 外部クロックの最大周波数は 2MHz です。
■ 内部クロックおよび外部クロック
CLK 非同期ボーレートは , CLK 同期ボーレートを 8 で割ったものです。また , CLK 非
同期ボーレートが選択したボーレート -1% ~ +1% の範囲にある場合 , データ転送が可
能です。表 19.6-1 に , 内部タイマをクロックとして選択した場合のボーレートを示し
ます。本表の値は , マシンサイクルを 7.3728MHz として計算しています。ただし , 表
中の "-" でマークした設定は使用しないでください。
φ/X
ボーレート=
8×2 (n+1)
[bps]
φ :マシンサイクル
X :内部タイマのカウントクロックソースの分周比
n :リロード値 (10進数)
表 19.6-1 ボーレートとリロード値
リロード値
ボーレート (bps)
X=21 ( マシンサイクルの 2 分周 )
X=23 ( マシンサイクルの 8 分周 )
76800
2
―
38400
5
―
19200
11
2
9600
23
5
4800
47
11
2400
95
23
1200
191
47
600
383
95
300
767
191
表中の値は , 16 ビットリロードタイマのリロードカウント動作のリロード値 (10 進数 ) です。
317
第 19 章 UART0, UART1
転送データフォーマット
19.7
UART0, UART1 は , NRZ (non-return-to-zero) 形式のデータのみを扱います。
図 19.7-1 に , 送受信クロックと CLK 同期モードのデータとの関係を示します。
■ 転送データフォーマット
図 19.7-1 転送データフォーマット
SCK0
SIN0, SOT0
0
起動
1
LSB
0
1
1
0
0
1
転送されたデータは"01001101B"(モード1)または"101001101B"(モード3)
0
MSB
1
1
停止
D8停止
⎫
⎬ モードに依存
⎭
図 19.7-1 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始
まり , LSB ファーストで指定されたデータビット長転送が行われ , ストップビット ("H"
レベルデータ ) で終了します。外部クロックを選択している場合は , 常にクロックを入
力してください。
内部クロック ( 専用ボーレートジェネレータまたは 16 ビットリロードタイマ ) を選択
している場合 , クロックは連続的に出力されます。CLK 同期転送を使用する場合 , 選択
したボーレートクロックが安定 (2 ボーレートクロックサイクル ) するまでデータ転送
を開始しないでください。
CLK 非同期転送を使用する場合 , UMC0, UMC1 レジスタ中の SCKE ビットを "0" に設
定し , クロック出力を無効にしてください。SIN0, SIN1 と SOUT0, SOUT1 の転送デー
タフォーマットは , 図 19.7-1 に示すものと同じです。
318
第 19 章 UART0, UART1
19.8
パリティビット
URD0, URD1 レジスタ中の P ( パリティ ) ビットは , パリティが許可されている場合
に偶数 / 奇数パリティのどちらを使用するかを指定します。UMC0, UMC1 レジスタ
中の PEN ( パリティ許可 ) ビットはパリティを許可します。
■ パリティビット
偶数パリティ設定時に図 19.8-1 に示すデータをSINに入力すると, 受信パリティエラー
が発生します。図 19.8-1 には , "001101B" を偶数 / 奇数パリティで送信時に送信される
データも示しています。
図 19.8-1 パリティを許可したシリアルデータ
SIN0
(受信パリティエラー発生P=0)
0
起動
1
LSB
0
1
1
0
0
0
1
MSB
停止
(パリティ)
SOT0
(偶数パリティ送信P=0)
0
起動
1
LSB
0
1
1
0
0
1
1
停止
MSB
(パリティ)
SOT0
(奇数パリティ送信P=1)
0
起動
1
LSB
0
1
1
0
0
0
1
停止
MSB
(パリティ)
319
第 19 章 UART0, UART1
19.9
割込み生成とフラグのセットタイミング
UART0, UART1 には , 2 つの割込み要因と 6 個のフラグがあります。2 つの割込み
要因には , 受信割込みと送信割込みがあります。6 個のフラグとは , RDRF, ORFE,
PE, TDRE, RBF, TBF です。受信については , RDRF, ORFE, PE フラグが割込みを
要求します。送信については , TDRE フラグが割込みを要求します。
■ 6 つのフラグのセットタイミング
● RDRF フラグ
RDRF は UIDR レジスタに受信データがロードされるとセットされます。UMC レジス
タ中の RFC に "0" を書き込むか , UIDR レジスタを読み出すとクリアされます。
● ORFE フラグ
ORFE フラグは , オーバランまたはフレーミングエラーフラグです。受信エラーが発生
した場合にセットされ , UMC レジスタ中の RFC に "0" を書き込むとクリアされます。
● PE フラグ
PE フラグは , 受信パリティエラーフラグです。受信パリティエラーが発生した場合に
セットされ , UMC0 レジスタ中の RFC に "0" を書き込むとクリアされます。パリティ
検出機能はモード 2 では有効ではないので注意してください。
● TDRE フラグ
TDRE フラグは , UODR0 レジスタが空になり書込み可能になったときにセットされ ,
UODR0 レジスタに書込みを行うとクリアされます。上記の 4 個のフラグ (RDRF, ORFE,
PE, TDRE) は , 送受信割込みを起動します。
● RBF と TBF フラグ
RBF と TBF フラグは , 受信または送信が進行中であることを示します。RBF は受信中
にアクティブになります。TBF は送信中にアクティブになります。
320
第 19 章 UART0, UART1
受信動作時 ( モード 0, モード 1, モード 3) のフラグの
セットタイミング
19.9.1
RDRF, ORFE, PE フラグは , 受信転送が終了し最後のストップビットを検出すると
きにセットされ , CPU への割込み要求が発生します。ORFE, PE のどちらかのビッ
トがアクティブのときには , UIDR0, UIDR1 中のデータは無効となります。
■ 受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング
図 19.9-1 , 図 19.9-2 , 図 19.9-3 に , RDRF, ORFE, PEフラグのセットタイミングを示しま
す。
図 19.9-1 RDRF のセットタイミング ( モード 0, モード 1, モード 3)
データ
停止
(停止)
RDRF
受信割込み
図 19.9-2 ORFE のセットタイミング ( モード 0, モード 1, モード 3)
データ
停止
データ
RDRF = 1
RDRF = 0
ORFE
ORFE
受信割込み
停止
受信割込み
(オーバランエラー)
(フレーミングエラー)
図 19.9-3 PE のセットタイミング ( モード 0, モード 1, モード 3)
データ
停止
(停止)
PE
受信割込み
321
第 19 章 UART0, UART1
受信動作時 ( モード 2) のフラグのセットタイミング
19.9.2
RDRF フラグは最後のストップビットを検出し , 最後のデータビット (D8) の値が
"1" で受信転送が終了するときにセットされます。
ORFE フラグは最後のデータビット (D8) の値とは無関係に , 最後のストップビット
を検出するときにセットされます。ORFE ビットがアクティブのときには , UIDR 中
のデータは無効となります。
どれかのフラグがセットされると , CPU への割込み要求が発生します ( モード 2 の
使用法の詳細については , 「19.10 UART0, UART1 の応用例」を参照 ) 。
■ 受信動作時 ( モード 2) のフラグのセットタイミング
図 19.9-4 RDRF のセットタイミング ( モード 2)
データ
D6
D7
停止
D8
(停止)
RDRF
受信割込み
図 19.9-5 ORFE のセットタイミング ( モード 2)
データ
D7
D8
停止
RDRF=1
RDRF=0
ORFE
ORFE
受信割込み
D7
D8
停止
受信割込み
(オーバランエラー)
322
データ
(フレーミングエラー)
第 19 章 UART0, UART1
送信動作時のフラグのセットタイミング
19.9.3
送信動作時に UODR レジスタに書き込まれたデータは , 内部シフトレジスタに転送
されます。このとき , TDRE フラグがセットされ , CPU への割込み要求が発生して ,
次のデータを UODR フラグに書き込めるようになります。
■ 送信動作時のフラグのセットタイミング
図 19.9-6 TDRE のセットタイミング ( モード 0)
UODR書込み
TDRE
CPUへ割込みを要求
送信割込み
SOT0出力
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
SP
ST
D0
D1
D2
D3
ST:スタートビット D0~D7:データビット SP:ストップビット
323
第 19 章 UART0, UART1
送受信動作時のステータスフラグ
19.9.4
送受信動作時に , RBF フラグはスタートビットが検出されるとセットされ , ストッ
プビットが検出されるとクリアされます。UIDR 中の受信データは , RBF クリアタ
イミングではまだ無効状態です。UIDR 中のデータは , RDRF セットタイミングで有
効になります。
■ 送受信動作時のステータスフラグ
図 19.9-7 に , RBF と受信割込みフラグのタイミングとの関係を示します。
図 19.9-7 RBF のセットタイミング ( モード 0)
SIN0入力
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
RBF
RDRF, PE, ORFE
ST:スタートビット D0~D7:データビット SP:ストップビット
UODR0 に送信データを書き込むと TBF がセットされ , 送信が完了するとクリアされま
す。
図 19.9-8 TBF のセットタイミング ( モード 0)
UODR書込み
SOT0出力
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
SP
TBF
ST:スタートビット D0~D7:データビット SP:ストップビット
<注意事項>
SIN0 入力端子が "1" に固定されていない限り , 受信動作はリセットのリリース後に開始し
ます。このため , モードを設定する前に , UMC レジスタ中の RFC に "0" を書き込み , セッ
トされているすべての受信フラグをクリアしてください。
USR0 レジスタ中の RBF と TBF フラグが "0" のとき , 通信モードをセットしてください。
モード設定中の送受信データは保証されません。
■ EI2OS ( 拡張インテリジェント I/O サービス )
EI2OS の詳細については ,「3.7 拡張インテリジェント I/O サービス (EI2OS)」を参照し
てください。
324
第 19 章 UART0, UART1
UART0, UART1 の応用例
19.10
モード 2 は , 1 台のホスト CPU の数台のスレーブ CPU が接続されるような場合に
使用されます ( 図 19.10-1 を参照 ) 。
■ 応用例
図 19.10-1 RBF のセットタイミング ( モード 0)
SIN0入力
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
RBF
RDRF, PE, ORFE
ST:スタートビット D0~D7:データビット SP:ストップビット
図 19.10-2 に示すように , 通信はホスト CPU がアドレスデータを転送することによっ
て始まります。アドレスデータは , 9 番目のビット (D8) が "1" にセットされています。
これにより , 通信先となるスレーブ CPU が選択され , ユーザが決定したプロトコルを
使用してホスト CPU との通信を行います。通常データは D8 が "0" にセットされてい
ます。非選択のスレーブ CPU は , 次の通信セッションが始まるまでスタンバイ状態で
待機します。図 19.10-3 に , 本モードでの動作フローチャートを示します。
このモードにおいては , パリティチェック機能は使用できませんので , UMC レジスタ
の PEN ビットは "0" としてください。
図 19.10-2 モード 2 使用時のシステム構築例
SOT0
SIN0
ホストCPU
SOT0 SIN0
SOT0 SIN0
スレーブCPU#0
スレーブCPU#1
325
第 19 章 UART0, UART1
図 19.10-3 モード 2 使用時の通信フローチャート
(ホストCPU)
(スレーブCPU)
起動
起動
転送モードを"3"とする
転送モードを"2"にセット
D0~D7にスレーブCPU選択,
D8に"1"をセットし,
1バイト転送
1バイト受信
NO
選択?
D8に"0"をセットし,
通信を実行
終了
YES
転送モードを"3"にセット
し, SOT0出力を許可
マスタCPUで通信を実行
ステータスフラグを使用し
て転送の完了を確認, 転送
モードを"2"にセットして
SOT0出力を禁止
326
第 20 章
UART2, UART3
UART2, UART3 の機能と動作について説明します。
( 注意事項 )
MB90V390HA/MB90V390HB にのみ , UART2 は
あります。
20.1 UART2, UART3 の概要
20.2 UART2, UART3 の構成
20.3 UART2, UART3 の端子
20.4 UART2, UART3 のレジスタ
20.5 UART2, UART3 の割込み
20.6 UART2, UART3 のボーレート
20.7 UART2, UART3 の動作
20.8 UART2, UART3 使用上の注意
327
第 20 章 UART2, UART3
UART2, UART3 の概要
20.1
LIN(Local Interconnect Network) 機能を持つ UART2, UART3 は , 外部装置と同期
通信もしくは非同期通信 ( 調歩同期 ) をするための汎用のシリアルデータ通信インタ
フェースです。双方向通信機能 ( ノーマルモード ), マスタ / スレーブ型通信機能 ( マ
ルチプロセッサモード : マスタ / スレーブ両方をサポート ) に加え LIN バスに対応す
るための特別な機能もサポートしています。
■ UART2, UART3 の機能
● UART2, UART3 の機能
UART2, UART3 は , ほかの CPU や周辺装置とシリアルデータの送受信をする汎用シリ
アルデータ通信インタフェースで , 表 20.1-1 に示す機能をもっています。
表 20.1-1 UART2, UART3 の機能 (1 / 2)
機 能
データバッファ
全二重ダブルバッファ
シリアル入力
5 回オーバサンプリングを行い , サンプリング値の多数決により
受信値を決定します ( 非同期モードのみ )。
転送モード
• クロック同期 ( スタート / ストップ同期 , またはスタート / ス
トップビット選択 )
• クロック非同期 ( スタート / ストップビットが使用可能 )
ボーレート
• 専用ボーレートジェネレータあり (15 ビットリロードカウン
タから構成 )
• 外部クロック入力可能。また , リロードカウンタで調節可能
データ長
• 7 ビット ( 同期または LIN モード以外 )
• 8 ビット
信号方式
NRZ (Non Return to Zero)
スタートビットタイミング
非同期モード時は , スタートビット立下りエッジに同期
受信エラー検出
• フレーミングエラー
• オーバランエラー
• パリティエラー ( 動作モード 1 では不可 )
割込み要求
•
•
•
•
マスタ / スレーブ型通信機能
( マルチプロセッサモード )
1 ( マスタ ) 対 n ( スレーブ ) 間の通信が可能
( マスタとスレーブシステムの両方をサポート )
同期モード
端子アクセス
マスタまたはスレーブ機能
シリアル入出力端子の状態を直接読出しが可能
328
受信割込み ( 受信完了 , 受信エラー検出 , LIN synch break 検出 )
送信割込み ( 送信データエンプティ )
ICU への割込み要求 (LIN synch field 検出 : LSYN)
送受信とも拡張インテリジェント I/O サービス (EI2OS)
第 20 章 UART2, UART3
表 20.1-1 UART2, UART3 の機能 (2 / 2)
機 能
LIN バスオプション
•
•
•
•
•
マスタデバイス動作
スレーブデバイス動作
LIN Synch break 検出
LIN Synch break 生成
インプットキャプチャ 0, 1, 4, 5 に接続している LIN Synch
field のスタート / ストップエッジ 検出
(UART3) / ICU3 (UART2 は MB90V390HA/MB90V390HB のみ )
同期シリアルクロック
スタート / ストップビットで同期通信するために SCK3 端子に連
続出力可能
クロック遅延オプション
クロックを遅らせるための特殊な同期クロックモード
(SPI に有効 )
UART2, UART3 は 4 つの異なるモードで動作します。動作モードは , シリアルモード
レジスタ (SMR2/SMR3) の MD0, MD1 ビットにより決定されます。モード 0 と 2 は双方
向シリアル通信 , モード 1 はマスタ / スレーブ通信 , モード 3 は LIN マスタ / スレーブ
通信に使用されます。
表 20.1-2 UART2, UART3 の動作モード
データ長
動作モード
パリティ
なし
0
ノーマルモード
1
マルチ
プロセッサ
モード
パリティ
あり
7 ビットまたは 8 ビット
7 ビット
または
8 ビット
―
同期方式
ストップ
ビット長
非同期
非同期
1 ビット
または
2 ビット
+1 *
2
ノーマルモード
3
LIN モード
8 ビット
8 ビット
―
データビット
フォーマット
同期
なし ,
1 ビット ,
2 ビット
非同期
1 ビット
LSB ファースト
MSB ファースト
LSB ファースト
―:設定不可
*:"+1" はマルチプロセッサモードで通信制御用に使用されるアドレス / データ選択ビット (A/D)
です。
シリアルモードレジスタ (SMR2/SMR3) の MD1 と MD0 ビットで , 下記に示す UART2,
UART3 の動作モードを決定します。
表 20.1-3 UART2, UART3 の動作モード
MD1
MD0
0
0
モード
0
種類
0
1
1
非同期 ( マルチプロセッサモード )
1
0
2
同期 ( ノーマルモード )
1
1
3
非同期 (LIN モード )
非同期 ( ノーマルモード )
329
第 20 章 UART2, UART3
<注意事項>
• モード 1 は , マスタ / スレーブ接続時にはマスタとスレーブいずれの動作にも対応しま
す。
• モード 3 は , 通信フォーマット 8N-1, LSB ファーストに固定されます。
• モードを変更すると UART は送受信を打ち切り , 次の通信開始を待ちます。
■ UART2, UART3 の割込みと EI2OS
表 20.1-4 UART2, UART3 の割込みと EI2OS
割込み制御レジスタ
チャネル
ベクタテーブルのアドレス
EI2OS
割込み番号
レジスタ名
アドレス
下位
上位
バンク
UART2 受信
#39(27H)
ICR14
0000BEH
FFFF60H
FFFF61H
FFFF62H
*1
UART2 送信
#40(28H)
ICR14
0000BEH
FFFF5CH
FFFF5DH
FFFF5EH
*2
UART3 受信
#39(27H)
ICR14
0000BEH
FFFF60H
FFFF61H
FFFF62H
*3
UART3 送信
#40(28H)
ICR14
0000BEH
FFFF5CH
FFFF5DH
FFFF5EH
*4
*1: UART2 受信の EI2OS は , UART2 の送信割込みと UART3 の送受信割込みが禁止されている場合のみ使用可能
です。受信エラーを検出すると EI2OS の停止要求が機能します。
*2: UART2 送信の EI2OS は , UART2 の受信割込みと UART3 の送受信割込みが禁止されている場合のみ使用可能
です。
*3: UART3 受信の EI2OS は , UART3 の送信割込みと UART2 の送受信割込みが禁止されている場合のみ使用可能
です。受信エラーを検出すると EI2OS の停止要求が機能します。
*4: UART3 送信の EI2OS は , UART3 の受信割込みと UART2 の送受信割込みが禁止されている場合のみ使用可能
です。
330
第 20 章 UART2, UART3
20.2
UART2, UART3 の構成
UART2, UART3 の構成ブロックを簡単な概要で示します。
■ UART2, UART3 の構成
UART2, UART3 は次のブロックで構成されます。
• リロードカウンタ
• 受信制御回路
• 受信シフトレジスタ
• 受信データレジスタ (RDR2/RDR3)
• 送信制御回路
• 送信シフトレジスタ
• 送信データレジスタ (TDR2/TDR3)
• エラー検出回路
• オーバサンプリング回路
• 割込み生成回路
• LIN synch break/Synch Field 検出
• LIN synch break 生成回路
• バスアイドル検出回路
• シリアルモードレジスタ (SMR2/SMR3)
• シリアル制御レジスタ (SCR2/SCR3)
• シリアルステータスレジスタ (SSR2/SSR3)
• 拡張通信制御レジスタ (ECCR2/ECCR3)
• 拡張ステータス制御レジスタ (ESCR2/ESCR3)
331
第 20 章 UART2, UART3
■ UART2, UART3 のブロックダイヤグラム
図 20.2-1 UART2, UART3 のブロックダイヤグラム
OTO,
EXT,
REST
CLK
PE
ORE FRE
TIE
RIE
LBIE
LBD
送信クロック
リロード
カウンタ
SCK2/
SCK3
書込み
生成回路
受信クロック
送信制御回路
受信制御回路
RBI
TBI
端子
送信スタート
回路
スタートビット
検出回路
SIN2/
SIN3
端子
受信
IRQ
再スタート受信
リロードカウンタ
送信
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
TDRE
IRQ
SOT2/SOT3
オーバ
サンプリング
回路
端子
RDRF
SOT
SIN
キャプチャへの
内部信号
LIN break/
Synch Field
検出回路
SIN
送信シフト
レジスタ
受信シフト
レジスタ
LIN break
生成回路
送信開始
EI2OS へ
バスアイドル
検出回路
エラー
検出
PE
ORE
FRE
RDR2/RDR3
LBR
LBL1
LBL0
TDR2/TDR3
RBI
LBD
TBI
内部データバス
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
332
SSR2/
SSR3
レジスタ
MD1
MD0
OTO
EXT
REST
UPCL
USCKE
USOE
SMR2/
SMR3
レジスタ
PEN
P
SBL
CL
A/D
CRE
RXE
TXE
SCR2/
SCR3
レジスタ
LBIE
LBD
LBL1
LBL0
SOPE
SIOP
CCO
SCES
LBR
MS
ESCR2/ SCDE
ESCR3 SSM
レジスタ
ECCR2/
ECCR3
レジスタ
RBI
TBI
第 20 章 UART2, UART3
■ 各ブロックの説明
● リロードカウンタ
専用ボーレートジェネレータとして機能する 15 ビットリロードカウンタです。リロー
ド値に対する 15 ビットレジスタから構成され , 外部クロックまたは内部クロックより
送受信クロックを生成します。また , 送信リロードカウンタのカウント値を BGR02/
BGR12, resp. BGR03/BGR13 から読み出すことができます。
● 受信制御回路
受信ビットカウンタ , スタートビット検出回路 , および受信パリティカウンタから構成
されています。受信ビットカウンタは , 受信データビットをカウントして , 設定した
データ長に応じて1データの受信を完了すると, 受信データレジスタにフラグをセット
します。このとき , 受信割込みが許可されていれば受信割込み要求を発生します。ス
タートビット検出回路は , シリアル入力信号からスタートビットを検出する回路で , ス
タートビットを検出するとスタートビットの立下りエッジに同期してリロードカウン
タに信号を送ります。受信パリティカウンタは , 受信データのパリティを計算します。
● 受信シフトレジスタ
SIN2/SIN3 端子から入力された受信データをビットシフトしながら取り込み , 受信が完
了すると , RDR2/RDR3 レジスタに受信データを転送します。
● 受信データレジスタ (RDR2/RDR3)
受信データを保持します。シリアル入力データは変換され , 受信データレジスタに格納
されます。
● 送信制御回路
送信ビットカウンタ , 送信スタート回路 , および送信パリティカウンタから構成されて
います。送信ビットカウンタは , 送信データビットをカウントして , 設定したデータ長
に応じて 1 データの送信を完了すると送信データレジスタにフラグをセットします。こ
のとき , 送信割込みが許可されていれば送信割込み要求を発生します。送信スタート回
路は , TDR2/TDR3 のデータ書込みで送信動作を開始します。送信パリティカウンタは ,
パリティありの場合 , 送信するデータのパリティビットを生成します。
● 送信シフトレジスタ
TDR2/TDR3 に書き込まれたデータを送信シフトレジスタに転送し , ビットシフトしな
がら SOT2/SOT3 端子に出力します。
● 送信データレジスタ (TDR2/TDR3)
送信データを設定します。書き込まれたデータはシリアルデータに変換され出力され
ます。
● エラー検出回路
受信終了時において , エラーがあったかどうかを検出します。エラーが発生すると , 対
応するエラーフラグをセットします。
● オーバサンプリング回路
非同期モード動作では5回オーバサンプリングを行い, サンプリング値の多数決により
受信値を決定します。また , 同期モード動作では停止します。
333
第 20 章 UART2, UART3
● 割込み生成回路
すべての割込み要因を制御します。対応する割込み許可ビットがセットされていると
直ちに割込みが発生します。
● LIN synch break/Synch Field 検出回路
LIN マスタノードがメッセージヘッダを送信すると LIN synch break を検出します。
LIN
synch break が検出されると LBD フラグビットがセットされます。LIN Synch Field の 1
回目と5回目の立下りエッジを検出し, マスタノードが送信する実際のシリアルクロッ
ク同期を測定するためにキャプチャへ内部信号を出力します。
● LIN synch break 生成回路
設定された長さの LIN synch break を生成します。
● バスアイドル検出回路
送受信が行われていないことを検出し , TBI, RBI フラグビットを生成します。
● シリアルモードレジスタ (SMR2/SMR3)
以下に動作機能を示します。
• UART2, UART3 動作モード選択
• クロック入力ソースの選択
• 外部クロックが 1 対 1 接続またはリロードカウンタ接続であるかを選択
• 専用リロードタイマのリセット
• LIN-UART2, UART3 ソフトウェアリセット ( レジスタの設定は維持 )
• シリアルデータ端子への出力許可 / 禁止設定
• クロック端子への出力許可 / 禁止設定
● シリアル制御レジスタ (SCR2/SCR3)
以下に動作機能を示します。
• パリティビット有無の設定
• パリティビット選択
• ストップビット長の設定
• データ長の設定
• モード 1 でのフレームデータ形式の選択
• エラーフラグのクリア
• 送信許可 / 禁止
• 受信許可 / 禁止
● シリアルステータスレジスタ (SSR2/SSR3)
以下に動作機能を示します。
• 送受信やエラーの状態確認
• 転送方向 LSB ファースト /MSB ファーストの選択
• 受信割込み許可 / 禁止
• 送信割込み許可 / 禁止
334
第 20 章 UART2, UART3
● 拡張ステータス制御レジスタ (ESCR2/ESCR3)
• LIN synch break 割込み許可 / 禁止
• LIN synch break 検出
• LIN synch break 長選択
• SIN2/SIN3, SOT2/SOT3 端子への直接アクセス
• UART2, UART3 同期クロックモードでの連続クロック出力設定
• サンプリングクロックエッジ選択
● 拡張通信制御レジスタ (ECCR2/ECCR3)
• バスアイドル検出
• 同期クロック設定
• LIN synch break 生成
335
第 20 章 UART2, UART3
20.3
UART2, UART3 の端子
UART2, UART3 の端子 , 割込み要因 , レジスタの一覧および詳細を示します。
■ LIN-UART2, UART3 の端子
UART2, UART3 の端子は , 汎用ポートと兼用になっています。表 20.3-1 に端子の機能 , 入
出力形式 , および UART2, UART3 使用時の設定などを示します。
表 20.3-1 UART2, UART3 の端子
端子名
端子機能
P90/SIN2
ポート入出力 /
シリアルデータ入力
P91/SCK2
P92/SOT2
P93/SIN3
P95/SOT3
P94/SCK3
入出力形式
プルアップ
選択
スタンバイ
制御
入力ポートに設定
(DDR9:bit0 = 0)
クロック入力時
入力ポートに設定
(DDR9:bit1 = 0)
ポート入出力 /
シリアルクロック
入出力
ポート入出力 /
シリアルデータ出力 CMOS 出力およ
び Automotive 選
ポート入出力 /
択許可 /CMOS ヒ
シリアルデータ入力 ステリシス入力
クロック出力時
出力許可に設定
(SMR2:SCKE = 1)
出力許可に設定
(SMR2:SOE = 1)
なし
あり
ポート入出力 /
シリアルデータ出力
ポート入出力 /
シリアルクロック
入出力
規格値はデータシート「■電気的特性 3. 直流規格」を参照してください。
336
端子の使用に
必要な設定
入力ポートに設定
(DDR9:bit3 = 0)
出力許可に設定
(SMR2/SMR3:SOE = 1)
クロック入力時
入力ポートに設定
(DDR9: bit4 = 0)
クロック出力時
出力許可に設定
(SMR2/SMR3:SCKE =
1)
第 20 章 UART2, UART3
■ UART2, UART3 の端子のブロックダイヤグラム
図 20.3-1 UART2, UART3 の端子のブロックダイヤグラム
リソース入力
ポートデータレジスタ (RDR)
リソース出力
リソース出力許可
内部データバス
PDR リード
出力ライト
P-ch
PDR リード
端子
ポート方向レジスタ (RDR)
N-ch
方向ラッチ
P93/SIN2/SIN3
P94/SCK2/SCK3
P95/SOT2/SOT3
DDR ライト
スタンバイ制御 (SPL = 1)
DDR リード
スタンバイ制御 : ストップモード (SPL =1), タイムベースタイマモード (SPL = 1)
( 注意事項 ) リソース入出力信号はリソース機能を持つ端子から入出力される。
( 注意事項 ) レジスタと端子番号を除いて , UART2 は UART3 と機能的に同じです。
337
第 20 章 UART2, UART3
20.4
UART2, UART3 のレジスタ
UART2, UART3 のレジスタ一覧を示します。
■ UART2, UART3 のレジスタ一覧
図 20.4-1 UART2, UART3 のレジスタ一覧
アドレス :
bit15
bit8 bit7
bit0
003519H, 003518H SCR3 ( シリアル制御レジスタ )
SMR3 ( シリアルモードレジスタ )
00351BH, 00351AH SSR3 ( シリアルステータスレジスタ )
RDR3/TDR3 ( 受信データレジスタ / 送信データレジスタ )
00351DH, 00351CH ESCR3 ( 拡張ステータス制御レジスタ )
ECCR3 ( 拡張通信制御レジスタ )
00351FH, 00351EH BGR13 ( ボーレートジェネレータレジスタ )
BGR03 ( ボーレートジェネレータレジスタ )
0035D9H, 0035D8H SCR2 ( シリアル制御レジスタ )
SMR2 ( シリアルモードレジスタ )
0035DBH, 0035DAH SSR2 ( シリアルステータスレジスタ )
RDR2/TDR2 ( 受信データレジスタ / 送信データレジスタ )
0035DDH, 0035DCH ESCR2 ( 拡張ステータス制御レジスタ )
ECCR2 ( 拡張通信制御レジスタ )
0035DFH, 0035DEH BGR12 ( ボーレートジェネレータレジスタ )
BGR02 ( ボーレートジェネレータレジスタ )
338
第 20 章 UART2, UART3
20.4.1
シリアル制御レジスタ (SCR2/SCR3)
シリアル制御レジスタ (SCR2/SCR3) は , パリティの設定 , ストップビット長やデー
タ長の選択 , モード 1 でのフレームデータ形式の選択 , 受信エラーフラグのクリア ,
送受信動作の許可または禁止の設定を行います。
■ シリアル制御レジスタ (SCR2/SCR3)
図 20.4-2 シリアル制御レジスタ (SCR2/SCR3)
アドレス
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7
SCR3: 003519H PEN
P SBL CL
SCR2: 0035D9H
R/W R/W R/W R/W
bit0
初期値
A/D CRE RXE TXE
R/W
W
00000000B
R/W R/W
bit8
送信許可ビット
TXE
0
送信禁止
1
送信許可
bit9
受信許可ビット
RXE
0
受信禁止
1
受信許可
bit10
CRE
受信エラーフラグクリアビット
書込み時
0
影響なし
1
受信エラーフラグ
(PE, FRE, ORE) クリア
読出し時
常に
"0" を
読出し
bit11
A/D
アドレス / データ形式選択ビット
0
データフレーム
1
アドレスフレーム
bit12
データ長選択ビット
CL
0
7 ビット
1
8 ビット
bit13
SBL
ストップビット長選択ビット
0
1 ビット
1
2 ビット
bit14
P
R/W
: リード / ライト可能
W
: ライトオンリ
: 初期値
パリティ選択ビット
0
偶数パリティ
1
奇数パリティ
bit15
PEN
パリティ許可ビット
0
パリティなし
1
パリティあり
339
第 20 章 UART2, UART3
表 20.4-1 シリアル制御レジスタ (SCR2/SCR3) の各ビットの機能説明 (1 / 2)
ビット名
bit15
PEN:
パリティ
許可ビット
bit14
P:
パリティ
選択ビット
bit13
SBL:
ストップ
ビット長
選択ビット
bit12
CL:
データ長
選択ビット
機 能
パリティビットの付加 ( 送信時 ) と検出 ( 受信時 ) を行うかどうかを設定しま
す。
( 注意事項 )
パリティビットは動作モード 0 の場合 , または動作モード 2 でスタート / ス
トップあり (ECCR2/ECCR3:SSM=1) に設定した場合にのみ付加されます。
モード 3 (LIN) のときには "0" に固定されます。
パリティビットあり (SCR2/SCR3:PEN=1) に設定した場合に , 奇数パリティ
(1) か偶数パリティ (0) のいずれかに設定します。
動作モード 0, 1 ( 非同期 ) の場合 , または動作モード 2 ( 同期 ) でスタート / ス
トップビットあり (ECCR2/ECCR3:SSM=1) に設定した場合のストップビッ
ト ( 送信データのフレームエンドマーク ) のビット長を設定します。
本ビットは , モード 3(LIN) では "0" に固定されます。
( 注意事項 )
受信時は , 常にストップビットの 1 ビット目だけを検出します。
送受信データのデータ長を指定します。本ビットは , モード 2, 3 では "1" に固
定されます。
bit11
A/D:
アドレス /
データ形式
選択ビット
マルチプロセッサモード ( モード 1) で , 送受信するフレームのデータ形式を
指定します。マスタ側は本ビットに書き込み , スレーブ側は本ビットを読み
出してください。
• "0" に設定した場合:データフレームに設定されます。
• "1" に設定した場合:アドレスデータのフレームに設定されます。
読出しは , 最後に受信したデータ形式の値になります。
( 注意事項 )
本ビットの使用にあたっては , 「20.8 UART2, UART3 使用上の注意」を参
照してください。
bit10
CRE:
受信エラー
フラグ
クリア
ビット
シリアルステータスレジスタ (SSR2/SSR3) の FRE, ORE, PE フラグをクリア
するビットです。
• "1" 書込みで , エラーフラグがクリアされます。
• "0" 書込みでは , 影響ありません。
読み出した場合 , 常に "0" が読めます。
( 注意事項 )
受信動作停止後に受信エラーフラグをクリアしてください。
RXE:
受信動作
許可ビット
LIN-UART2, UART3 の受信動作を許可または禁止します。
• "0" に設定した場合:データフレーム受信動作が禁止されます。
• "1" に設定した場合:データフレーム受信動作が許可されます。
モード 3 での LIN synch break 検出は影響されません。
( 注意事項 )
受信中に受信動作を禁止 (RXE=0) した場合には , 直ちに受信動作が停止し
ます。この場合 , データは保証されません。
bit9
340
第 20 章 UART2, UART3
表 20.4-1 シリアル制御レジスタ (SCR2/SCR3) の各ビットの機能説明 (2 / 2)
ビット名
bit8
TXE:
送信動作
許可ビット
機 能
LIN-UART2, UART3 の送信動作を許可または禁止します。
• "0" に設定した場合:データフレーム送信動作が禁止されます。
• "1" に設定した場合:データフレーム送信動作が許可されます。
( 注意事項 )
送信中に送信動作を禁止 (TXE=0) した場合には , 直ちに送信動作が停止し
ます。この場合 , データは保証されません。
341
第 20 章 UART2, UART3
20.4.2
シリアルモードレジスタ (SMR2/SMR3)
シリアルモードレジスタ (SMR2/SMR3) は , 動作モードの選択 , ボーレートクロック
の選択 , シリアルデータとクロックの端子への出力許可または禁止の設定を行います。
■ シリアルモードレジスタ (SMR2/SMR3)
図 20.4-3 シリアルモードレジスタ (SMR2/SMR3)
アドレス
bit15
SMR3: 003518H
SMR2: 0035D8H
bit8 bit7
bit6 bit5
bit4
bit2
bit3
bit1
bit0
初期値
MD1 MD0 OTO EXT REST UPCL SCKE SOE 00000000B
R/W R/W R/W R/W
W
W
R/W R/W
bit0
LIN-UART シリアルデータ出力許可ビット
SOE
汎用入出力ポート
LIN-UART シリアルデータ出力端子
0
1
bit1
SCKE
LIN-UART シリアルクロック出力許可ビット
0
汎用入出力ポートまたは LIN-UART クロック
入力端子
1
LIN-UART のシリアルクロック出力端子
bit2
LIN-UART プログラマブルクリアビット
UPCL
書込み時
0
影響なし
1
LIN-UART リセット
読出し時
常に "0"
を読出し
bit3
リロードカウンタ再スタートビット
REST
書込み時
読出し時
0
影響なし
1
リロードカウンタの再スタート
常に "0"
を読出し
bit4
外部シリアルクロックソース選択ビット
EXT
0
ボーレートジェネレータ
( リロードカウンタ ) 使用
1
外部シリアルクロックソース使用
bit5
1 対 1 外部クロック入力許可ビット
OTO
R/W
: リード / ライト可能
W
: ライトオンリ
: 初期値
342
0
ボーレートジェネレータ
( リロードカウンタ ) 使用
1
外部クロック直接使用
bit7
bit6
MD1
MD0
0
0
モード 0: 非同期 ノーマル
0
1
モード 1: 非同期 マルチプロセッサ
1
0
モード 2: 同期
1
1
モード 3: 非同期 LIN
動作モード設定ビット
第 20 章 UART2, UART3
表 20.4-2 シリアルモードレジスタ (SMR2/SMR3) の各ビットの機能説明
ビット名
機 能
動作モードを設定します。
bit7,
bit6
MD1, MD0 :
動作モード選択
ビット
bit5
OTO:
1 対 1 外部クロック
許可ビット
"1" の書込みで , LIN-UART2, UART3 シリアルクロックに外部クロック
を直接使用することを許可します。
動作モード 2( 同期 ) スレーブ動作 (ECCR2/ECCR3:MS=1) 時に使用さ
れます。
EXT=0 の場合 , OTO ビットは "0" に固定されます。
bit4
EXT:
外部クロック選択
ビット
クロック入力を選択します。
"0" を設定すると , 内部ボーレートジェネレータ ( リロードカウンタ )
のクロックとなり, "1"を設定すると外部シリアルクロックソースを選
択します。
bit3
REST:
リロードカウンタ
再スタートビット
"1" を書き込んだ場合 , リロードカウンタは再スタートします。
"0" を書き込んだ場合は影響ありません。
常に "0" が読み出されます。
UPCL:
LIN-UART プログ
ラマブルクリア
ビット
(LIN-UART ソフト
ウェアリセット )
"1"を書き込んだ場合, LIN-UART2, UART3を即時リセット (LIN-UART
ソフトウェアリセット ) します。ただし , レジスタの設定は維持され
ます。その際 , 送受信は中断されます。
すべての送受信割込み要因 (TDRE, RDRF, LBD, PE, ORE, FRE) は解除
されます。割込み禁止および送信禁止に設定した後 , LIN-UART2,
UART3 のリセットを行ってください。 また受信データレジスタはク
リア (RDR2/RDR3=00H) され , リロードカウンタは再スタートします。
"0" を書き込んだ場合は影響ありません。
常に "0" が読み出されます。
bit1
SCKE:
LIN-UART
シリアルクロック
出力許可ビット
シリアルクロックの入出力ポートを制御するビットです。
"0" の場合は SCK2/SCK3 端子は汎用入出力ポート , またはシリアルク
ロック入力端子として機能します。"1" の場合はシリアルクロック出
力端子となり , 動作モード 2( 同期 ) でクロックを出力します。
( 注意事項 )
SCK2/SCK3 端子をシリアルクロック入力 (SCKE=0) として使用する
場合は , 汎用入出力ポートの対応する DDR ビットを入力ポートに設
定してください。また , クロック選択ビットによって外部クロック
を選択 (EXT=1) してください。
( 参考 )
SCK2/SCK3 端子がシリアルクロック出力 (SCKE=1) に設定されてい
る場合は, 汎用入出力ポートの状態にかかわらず, シリアルクロック
出力端子として機能します。
bit0
SOE:
LIN-UART シリアル
データ出力許可
ビット
シリアルデータの出力を許可 / 禁止するビットです。
"0" の場合 , SOT2/SOT3 端子は汎用入出力ポートとなり , "1" の場合は
シリアルデータ出力端子 (SOT2/SOT3) となります。
( 参考 )
シリアルデータ出力 (SOE=1) の場合 , SOT2/SOT3 端子は汎用入出力
ポートの状態にかかわらず , SOT2/SOT3 端子として機能します。
bit2
343
第 20 章 UART2, UART3
20.4.3
シリアルステータスレジスタ (SSR2/SSR3)
シリアルステータスレジスタ (SSR2/SSR3) は , 送受信やエラーの状態の確認 , 割込
みの許可または禁止の設定を行います。
■ シリアルステータスレジスタ (SSR2/SSR3)
図 20.4-4 シリアルステータスレジスタ (SSR2/SSR3)
アドレス
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7
SSR3: 00351BH
SSR2: 0035DBH PE ORE FRE RDRF TDRE BDS RIE TIE
R
R
R
R
R
bit0
初期値
00001000B
R/W R/W R/W
bit8
TIE
送信割込み許可ビット
0
送信割込み禁止
1
送信割込み許可
bit9
RIE
受信割込み許可ビット
0
受信割込み禁止
1
受信割込み許可
bit10
BDS
転送方向選択ビット
0
LSB ファースト ( 最下位ビットから転送 )
1
MSB ファースト ( 最上位ビットから転送 )
bit11
TDRE
送信データエンプティフラグビット
0
送信データレジスタ TDR にデータが存在
する
1
送信データレジスタ TDR が空
bit12
RDRF
受信データフルフラグビット
0
受信データレジスタ RDR が空
1
受信データレジスタ RDR にデータが存在
する
bit13
FRE
フレーミングエラーフラグビット
0
フレーミングエラーなし
1
フレーミングエラーあり
bit14
ORE
オーバランエラーフラグビット
0
オーバランエラーなし
1
オーバランエラーあり
bit15
R/W
: リード / ライト可能
R
: リードオンリ
: 初期値
344
PE
パリティエラーフラグビット
0
パリティエラーなし
1
パリティエラーあり
第 20 章 UART2, UART3
表 20.4-3 シリアルステータスレジスタ (SSR2/SSR3) の各ビットの機能説明 (1 / 2)
ビット名
機 能
PE:
bit15 パリティエラー
フラグビット
• PE = 1 で受信時にパリティエラーが発生すると "1" にセットされ , シリ
アル制御レジスタ (SCR2/SCR3) の CRE ビットに "1" を書き込むとクリア
されます。
MB90V390H/MB90F394H(A): LIN break が検出されても (LBD = 1),
同様にこのビットはクリアされます。
• PE ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。
• 本フラグがセットされた場合は , 受信データレジスタ (RDR2/RDR3) の
データは無効です。
ORE:
bit14 オーバラン
エラーフラグ
ビット
• 受信時にオーバランが発生すると "1" にセットされ , シリアル制御レジ
スタ (SCR2/SCR3) の CRE ビットに "1" を書き込むとクリアされます。
MB90V390H/MB90F394H(A): LIN break が検出されても (LBD = 1),
同様にこのビットはクリアされます。
• ORE ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。
• 本フラグがセットされた場合は , 受信データレジスタ (RDR2/RDR3) の
データは無効です。
FRE:
bit13 フレーミング
エラーフラグ
ビット
• 受信時にフレーミングエラーが発生すると "1" にセットされ , シリアル
制御レジスタ (SCR2/SCR3) の CRE ビットに "1" を書き込むとクリアされ
ます。
MB90V390H/MB90F394H(A): LIN break が検出されても (LBD = 1),
同様にこのビットはクリアされます。
• FRE ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。
• 本フラグがセットされた場合は , 受信データレジスタ (RDR2/RDR3) の
データは無効です。
( 注意事項 )
SBL=1 でストップ ビットの最初または 2 番目のビットによってフレーム
エラーが検出された場合は , どちらかのストップ ビットでこのビットが
"1" にセットされます。
したがって , ストップ ビットの 2 番目のビットによって受信データが許可
されているかどうかを判断する必要があります。
RDRF:
bit12 受信データ
フルフラグ
ビット
• 受信データレジスタ (RDR2/RDR3) の状態を示すフラグです。
• RDR2/RDR3 に受信データがロードされると "1" にセットされ , 受信デー
タレジスタ (RDR2/RDR3) を読み出すと "0" にクリアされます。
MB90V390H/MB90F394H(A): LIN break が検出されても (LBD = 1),
同様にこのビットはクリアされます。
• RDRF ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力します。
345
第 20 章 UART2, UART3
表 20.4-3 シリアルステータスレジスタ (SSR2/SSR3) の各ビットの機能説明 (2 / 2)
ビット名
機 能
TDRE:
bit11 送信データ
エンプティ
フラグビット
• 送信データレジスタ (TDR2/TDR3) の状態を示すフラグです。
• TDR に送信データを書き込むと "0" となり , TDR2/TDR3 に有効なデータ
が存在していることを示します。データが送信シフトレジスタにロード
されて送信が開始されると "1" となり , TDR2/TDR3 に有効なデータが存
在していないことを示します。
• TDRE ビットと TIE ビットが "1" の場合 , 送信割込み要求を出力します。
• TDRE ビットが "1" のとき , 拡張通信制御レジスタ (ECCR2/ECCR3) の
LBR ビットに "1" をセットすると TDRE ビットは "0" となり , LIN synch
break 生成後 "1" になります。
( 注意事項 )
初期状態では , TDRE=1 になっています。
BDS:
bit10 転送方向
選択ビット
転送シリアルデータを最下位ビット側から先に転送するか (LSB ファースト ,
BDS=0), 最上位ビット側から先に転送するか (MSB ファースト , BDS=1) を
選択するビットです。
( 注意事項 )
シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側
を入れ替えるため , RDR2/RDR3 レジスタへデータを書き込んだ後 , BDS
ビットを書き換えると , そのデータは無効になります。BDS ビットはモー
ド 3(LIN) では "0" に固定されます。
RIE:
bit9 受信割込み
要求許可ビット
• CPU への受信割込み要求出力の許可 / 禁止をするビットです。
• RIE ビットと受信データフラグビット (RDRF) が "1" の場合 , または 1 つ
以上のエラーフラグビット (PE, ORE, FRE) が "1" の場合 , 受信割込み要
求を出力します。
TIE:
bit8 送信割込み
要求許可ビット
346
• CPU への送信割込み要求出力の許可 / 禁止をするビットです。
• TIE ビットと TDRE ビットが "1" の場合 , 送信割込み要求を出力します。
第 20 章 UART2, UART3
20.4.4
受信データレジスタ / 送信データレジスタ
(RDR2/RDR3 および TDR2/TDR3)
受信データと送信データレジスタは同一アドレスに配置されています。読出しをし
た場合は , 受信データレジスタとして機能し , 書込みをした場合は送信データレジス
タとして機能します。
■ 受信データレジスタ (RDR2/RDR3)
図 20.4-5 に , 受信レジスタのビット構成を示します。
図 20.4-5 受信データレジスタ / 送信データレジスタ (RDR2/RDR3 および TDR2/TDR3)
アドレス
bit
7
6
5
4
3
2
1
初期値
0
RDR3/TDR3: 00351AH
RDR2/TDR2: 0035DAH
00000000B
[RDR2/RDR3]
11111111B
[TDR2/TDR3]
R/W R/W R/W R/W R/W R/W R/W R/W
bit7 ~ bit0
R/W:リード / ライト可能
R/W
データレジスタ
読出し
受信データレジスタから読出し
書込み
送信データレジスタに書込み
受信データレジスタ (RDR2/RDR3) は , シリアルデータ受信用のデータバッファレジス
タです。
シリアル入力端子 (SIN2/SIN3 端子 ) に送られてきたシリアルデータ信号がシフトレジ
スタで変換されて , 受信データレジスタ (RDR2/RDR3) に格納されます。
データ長が 7 ビットの場合は , 上位 1 ビット (RDR2/RDR3:D7) は "0" となります。
受信データが , 受信データレジスタ (RDR2/RDR3) に格納されると , 受信データフルフ
ラグビット (SSR2/SSR3:RDRF) が "1" にセットされます。受信割込みが許可されている
場合は (SSR2/SSR3:RIE=1), 受信割込み要求を発生します。
受信データレジスタ(RDR2/RDR3)は, 受信データフルフラグビット(SSR2/SSR3:RDRF)
が "1" の状態で読み出してください。受信データフルフラグビット (SSR2/SSR3:RDRF)
は , 受信データレジスタ (RDR2/RDR3) を読み出すと自動的に "0" にクリアされます。
また , 受信割込みが許可されていて , エラーが生じていない場合には , 受信割込みもク
リアされます。
受信エラーが発生 (SSR2/SSR3:PE, ORE, FRE のいずれかが "1") した場合 , 受信データ
レジスタ (RDR2/RDR3) のデータは無効となります。
347
第 20 章 UART2, UART3
■ 送信データレジスタ (TDR2/TDR3)
送信データレジスタ (TDR2/TDR3) は , シリアルデータ送信用のデータバッファレジス
タです。
送信動作が許可されている場合に (SCR2/SCR3:TXE=1), 送信するデータを送信データ
レジスタ (TDR2/TDR3) に書き込むと , 送信データが送信用シフトレジスタに転送され
シリアルデータに変換されて , シリアルデータ出力端子 (SOT2/SOT3 端子 ) から送出さ
れます。
データ長が 7 ビットの場合 , 上位 1 ビット (TDR2/TDR3:D7) は無効データとなります。
送信データエンプティフラグ (SSR2/SSR3:TDRE) は , 送信データが送信データレジスタ
(TDR2/TDR3) に書き込まれると "0" にクリアされます。
送信データエンプティフラグ (SSR2/SSR3:TDRE) は , 送信用シフトレジスタへの転送が
終了し , 送信が開始されると "1" にセットされます。
送信データエンプティフラグ (SSR2/SSR3:TDRE) が "1" の場合は , 次の送信用データを
書き込むことができます。送信割込みが許可されている場合には送信割込みが発生し
ます。次の送信データの書込みは , 送信割込みの発生によるか , 送信データエンプティ
フラグ (SSR2/SSR3:TDRE) が "1" の状態で行ってください。
<注意事項>
送信データレジスタは書込み専用のレジスタで , 受信データレジスタは読出し専用のレジ
スタです。2 つのレジスタは同一アドレスに配置されているため , 書込み値と読出し値が
異なります。したがって , INC/DEC 命令などリードモディファイライト (RMW) 系命令は
使用できません。
348
第 20 章 UART2, UART3
20.4.5
拡張ステータス制御レジスタ (ESCR2/ESCR3)
拡張ステータス制御レジスタ (ESCR2/ESCR3) は , LIN synch break 割込み許可 / 禁
止 , LIN synch break 長選択 , LIN synch break 検出 , SIN2/SIN3, SOT2/SOT3 端子
への直接アクセス , UART2, UART3 同期クロックモードでの連続クロック出力 , サ
ンプリングクロックエッジの設定があります。
■ 拡張ステータス制御レジスタ (ESCR2/ESCR3)
図 20.4-6 に拡張ステータス制御レジスタ (ESCR2/ESCR3) のビット構成を , 表 20.4-4 に
各ビットの機能を示します。
図 20.4-6 拡張ステータス制御レジスタ (ESCR2/ESCR3)
アドレス
bit 15 bit 14 bit 13 bit 12 bit 11 bit 10
bit 9
bit 8 bit 7
ESCR3: 00351DH LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES
ESCR2: 0035DDH R/W R/W R/W R/W R/W R/W R/W R/W
bit 0
初期値
00000X00B
bit8
SCES
0
1
サンプリングクロックエッジ選択ビット ( モード 2)
クロックの立上りエッジでサンプリング ( ノーマル )
クロックの立下りエッジでサンプリング ( 反転クロック )
bit9
CCO
0
1
連続クロック出力許可ビット ( モード 2)
連続クロック出力禁止
連続クロック出力許可
bit10
SIOP
0
1
bit11
SOPE
0
1
bit13
LBL1
0
0
1
1
シリアル入出力ピンアクセス設定ビット
書込み時 (SOPE = 1)
読出し時
SOT2/SOT3 端子を "0" に固定 SIN2/SIN3 端子の値を
SOT2/SOT3 端子を "1" に固定 読出し
シリアル出力端子直接アクセス許可ビット
シリアル出力端子直接アクセス禁止
シリアル出力端子直接アクセス許可
bit12
LBL0
0
1
0
1
LIN Synch break 長選択ビット
13 ビット分
14 ビット分
15 ビット分
16 ビット分
bit14
LBD
0
1
R/W
: リード / ライト可能
×
: 不定
bit15
LBIE
0
1
LIN Synch break 検出フラグビット
読出し時 *
書込み時
LIN synch break 検出フラグ
クリア
影響なし
LIN synch break 検出なし
LIN synch break 検出あり
LIN synch break 検出割込み許可ビット
LIN synch break 検出割込み禁止
LIN synch break 検出割込み許可
: 初期値
*: 表 20.4-4 を参照してください。
349
第 20 章 UART2, UART3
表 20.4-4 拡張ステータス制御レジスタ (ESCR2/ESCR3) の各ビットの機能説明
ビット名
bit15
LBIE:
LIN synch break
検出割込み
許可ビット
bit14
LBD:
LIN synch break
検出フラグビット
bit13,
bit12
bit11
bit10
LBL1/LBL0:
LIN synch break 長
選択ビット
SOPE:
シリアル出力端子
直接アクセス許可
ビット *
SIOP:
シリアル入出力
端子直接 アクセス
ビット *
bit9
CCO:
連続クロック
出力許可ビット
bit8
SCES:
サンプリング
クロックエッジ
選択ビット
機 能
LIN synch break 検出割込みを許可 / 禁止するビットです。
LIN synch break 割込みは受信割込みに接続されます。
LIN synch break検出フラグ (LBD)が"1"のとき, 割込みが許可(LBIE=1)
されると割込みを発生します。
モード 1, 2 では "0" に固定されます。
MB90V390H/MB90F394H(A):動作モード 0 または 3 で LIN synch break
が検出されると "1" にセットされます。このビットが "1" になるとき ,
受信エラーフラグ (SSR2/SSR3:FRE,SSR2/SSR3:ORE, SSR2/SSR3:PE) と
受信レジスタフルフラグ (SSR2/SSR3:RDRF) はクリアされます。
MB90V390HA/MB90V390HB/MB90394HA:動作モード 3 で LIN synch
break が検出されると "1" にセットされます。
このビットに "0 " を書き込むと , このビットと , 対応する割込み ( 許可
されている場合 ) がクリアされます。
このビットを使用する前に SCR2/SCR3 レジスタの RXE ビットに "0"
を書き込んでください。
リードモディファイライト (RMW) 系命令を実行すると常に "1" が読
み出されますが LIN synch break の検出によるものではありませんの
でご注意ください。
これらのビットは , UART2, UART3 による LIN synch break の生成時間を
何ビット分とするか , 設定します。
受信 LIN synch break 長は常に 11 ビットです。
シリアルデータの出力が許可 (SMR2,SMR3:SOE=1) されているときに
本ビットに "1" を設定すると , SOT2, SOT3 端子への直接書込みを許可
します。*
通常の読出し命令は , 常に SIN2, SIN3 端子の値を返します。
シリアル出力端子直接アクセス許可 (SOPE=1) のときに書込みを行う
と本ビット値が SOT2, SOT3 端子に反映されます。
( 注意事項 )
• ビット操作命令の場合は読出しサイクル内の SOT2, SOT3 のビット
値を返します。*
• 本ビットの設定値は、シリアル制御レジスタ (SCR) の TXE ビット
が "0" の場合のみ有効です。
このビットは , UART2, UART3 がマスタモード 2 ( 同期 ) で動作し ,
SCK2/SCK3 端子がクロック出力として構成されている場合 , SCK2/
SCK3 端子での連続シリアルクロックを使用可能にします。
( 注意事項 )
CCO ビットが "1" のとき , ECCR2/ECCR3 の SSM ビットを "1" にし
て使用してください。
動作モード 2 ( 同期 ) のスレーブ設定のとき , SCES を "1" に設定する
と , サンプリングエッジが立上りエッジから立下りエッジへ切り換わ
ります。
動作モード 2 のマスタ設定 (ECCR2/ECCR3:MS=0) で SCK3 端子がク
ロック出力のとき , 内部シリアルクロックと出力クロック信号が反転
します。
MB90V390H/MB90F394H(A):
動作モード 0, 1, 3 のときは "0" に設定してください。
MB90V390HA/MB90V390HB/MB90394HA:
動作モード 0, 1, 3 のときは "0" に固定されます。
*: 表 20.4-5 を参照してください。
350
第 20 章 UART2, UART3
表 20.4-5 SOPE と SIOP の相互作用説明
SOPE
SIOP
SIOP への書込み
SIOP からの読出し
1
R/W
SOT2/SOT3 へ "0" または "1" 書込み
SIN2/SIN3 の値を返す
-
RMW
SOT2/SOT3 の値を読み出し , "0" または "1" を書き込む
- : "0" あるいは "1"
351
第 20 章 UART2, UART3
20.4.6
拡張通信制御レジスタ (ECCR2/ECCR3)
拡張通信制御レジスタ (ECCR2/ECCR3) は , バスアイドル検出 , 割込み設定 , 同期ク
ロック設定 , および LIN Synch break の生成を行います。
■ 拡張通信制御レジスタ (ECCR2/ECCR3)
図 20.4-7 に拡張通信制御レジスタ (ECCR2/ECCR3) のビット構成を , 表 20.4-6 に各ビッ
トの機能を示します。
図 20.4-7 拡張通信制御レジスタ (ECCR2/ECCR3)
アドレス
ECCR3: 00351CH
ECCR2: 0035DCH
bit 7
bit 6
bit 5
LBR
MS
W
bit 4
bit 3
bit 2
SCDE SSM
R/W R/W R/W
bit 1
bit 0
RBI
TBI
R
R
初期値
X0000XXXB
bit0
TBI*
0
1
送信バスアイドル検出フラグビット
送信中
送信動作なし
bit1
RBI*
0
1
受信バスアイドル検出フラグビット
受信中
受信動作なし
bit2
未使用ビット
読出し値は不定です。
常に "0" を書き込んでください。
bit3
SSM
0
1
スタート / ストップ許可ビット ( モード 2)
スタート / ストップビットなし
スタート / ストップビットあり
bit4
SCDE
0
1
シリアルクロック遅延許可ビット ( モード 2)
クロック遅延禁止
クロック遅延許可
bit5
MS
0
1
マスタ / スレーブ機能選択ビット ( モード 2)
マスタモード ( シリアルクロック発生 )
スレーブモード ( 外部シリアルクロック受信 )
bit6
R/W
: リード / ライト可能
R
: リードオンリ
W
: ライトオンリ
X
: 不定
-
: 未定義
: 初期値
*:動作モード 2 で SSM = 0 のときには未使用
352
LBR
0
1
LIN Synch break 生成ビット
書込み時
読出し時
影響なし
常に "0" を読出し
LIN Synch break を生成
bit7
未使用ビット
読出し値は不定です。常に "0" を書き込んでください。
第 20 章 UART2, UART3
表 20.4-6 拡張通信制御レジスタ (ECCR2/ECCR3) の各ビットの機能説明
ビット名
機 能
bit7
未使用ビット
未使用ビットです。常に "0" を書き込んでください。
bit6
LBR:
LIN Synch break
生成ビット
動作モード 3 において , 本ビットに "1" を設定すると ESCR2/ESCR3 の
LBL0/LBL1 ビットで設定された長さの LIN synch break を生成します。
動作モード 0 時は , "0" に設定してください。
MS:
マスタ / スレーブ
モード選択ビット
同期モード 2 において UART2, UART3 のマスタまたはスレーブモード
を選択できます。
"0" のマスタモード選択時は , UART2, UART3 は同期クロックを生成し
ます。
"1" のスレーブモード選択時は , UART2, UART3 は外部シリアルクロッ
クを受信します。
モード 0, 1, 3 のときは "0" に固定されます。
( 注意事項 )
スレーブモード選択時は , クロックソースを外部クロックに設定し ,
外部クロック入力を許可 (SMR2/SMR3:SCKE=0, EXT=1, OTO=1) にす
る必要があります。
bit4
SCDE:
シリアルクロック
遅延許可ビット
モード 2 のマスタモード動作時に , SCDE ビットを "1" に設定すると図
20.7-5 に示すような遅延したシリアルクロックを出力します。
( 注意事項 )
図 20.7-5 に MB90V390HA/MB90V390HB/MB90394HAの行動を示しま
す ( 遅 延 は ハ ー フ シ リ ア ル ク ロ ッ ク 周 期 で す )。MB90V390H/
MB90F394H(A) は遅延は 1 マシンクロック周期です。
bit3
SSM:
スタート/ストップ
ビットモード
許可ビット
bit2
未使用ビット
未使用ビットです。
読出し値は不定です。
常に "0 を書き込んでください。
bit1
RBI:
受信バスアイドル
フラグビット
SIN2/SIN3 端子が "H" レベルかつ受信動作をしていないときに "1" にな
ります。動作モード 2 で SSM=0 のときは本ビットを使用しないでくだ
さい。
bit0
TBI:
送信バスアイドル
フラグビット
SOT2/SOT3 端子に送信動作がない場合は "1" になります。動作モード 2
で SSM=0 のときは本ビットを使用しないでください。
bit5
モード 2 で本ビットが "1" に設定されているとスタート / ストップビッ
トを同期データフォーマットに付加します。
モード 0, 1, 3 のときは "0" に固定されます。
353
第 20 章 UART2, UART3
20.4.7
ボーレートジェネレータレジスタ 0, 1
(BGR02/BGR03,BGR12/BGR13)
ボーレートジェネレータレジスタ 0, 1(BGR02/BGR03,BGR12/BGR13) は , シリア
ルクロックの分周比を設定します。また , 送信リロードカウンタのカウント値を読
み出すことができます。
■ ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のビット構成
図 20.4-8 にボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のビット
構成を示します。
図 20.4-8 ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のビット構成
アドレス
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
BGR03: 00351EH
BGR13: 00351FH
BGR02: 0035DEH
BGR12: 0035DFH
bit7 bit6 bit5 bit4 bit3 bit2
bit1 bit0
初期値
00000000B
00000000B
R R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
bit7 ~ bit0
BGR7 ~ BGR0
書込み時
読出し時
bit14 ~ bit8
BGR14 ~ BGR8
書込み時
読出し時
ボーレートジェネレータレジスタ 02,03
リロードカウンタ 0 ~ 7 に書込み
送信リロードカウンタビット 0 ~ 7 の読出し
ボーレートジェネレータレジスタ 12,13
リロードカウンタ 8 ~ 14 に書込み
送信リロードカウンタビット 8 ~ 14 の読出し
bit15
R/W :リード / ライト可能
R :リードオンリ
:未定義
読出し時
未使用ビット
"0" を読み出せます
ボーレートジェネレータレジスタはシリアルクロックの分周比を設定します。
BGR12/BGR13 は上位ビット , BGR02/BGR03 は下位ビットに対応し , カウンタのリロー
ド値の書込みと送信リロードカウンタ値の読出しが可能です。また , バイト・ワードア
クセスできます。
ボーレートジェネレータレジスタに "0" 以外のリロード値を書き込むとリロードカウ
ンタはカウントを開始します。
354
第 20 章 UART2, UART3
20.5
UART2, UART3 の割込み
UART2, UART3 には受信割込みと送信割込みがあり , 次に示す要因で割込み要求を
発生させることができます。
• 受信データが受信データレジスタ (RDR2/RDR3) にセットされた場合 , または受信
エラーが発生した場合
• 送信データが送信データレジスタ (TDR2/TDR3) から送信用シフトレジスタに転送
され , 送信が開始された場合
• LIN synch break 検出
それぞれの割込みは拡張インテリジェント I/O サービス (EI2OS) に対応しています。
■ LIN-UART2,UART3 の割込み
LIN-UART2,UART3 の割込み制御ビットと割込み要因は表 20.5-1 のようになっていま
す。
表 20.5-1 LIN-UART2,UART3 の割込み制御ビットと割込み要因
割込み
動作モード
送受信 /
フラグ
要求フラグ
レジスタ 0 1 2 3
キャプチャ
ビット
RDRF
SSR2/
SSR3
受信データの
○ ○ ○ ○ RDR2/RDR3 書込
み
ORE
SSR2/
SSR3
○ ○ ○ ○
オーバラン
エラー
FRE
SSR2/
SSR3
○ ○ △ ○
フレーミング
エラー
PE
SSR2/
SSR3
○ × △ × パリティエラー
LBD
ESCR2/
ESCR3
受信
送信
インプット
キャプチャ
割込み要因
TDRE
SSR2/
SSR3
ICP1/
ICP3/
ICP5
ICS01/
ICS23/
ICS45
ICP1/
ICP3/
ICP5
ICS01/
ICS23/
ICS45
× × × ○
○ ○ ○ ○
LIN synch break
検出
送信レジスタが
空
割込み要因
許可ビット
割込み要求
フラグのクリア
受信データの読出し
MB90V390H/
MB90F394H(A):
LIN synch break 検出
(LBD= 1)
SSR2/SSR3:
RIE
受信エラーフラグクリ
アビット (SCR2/SCR3:
CRE) への "1" 書込み
MB90V390H/
MB90F394H(A):
LIN synch break 検出
(LBD= 1).
ESCR2/ESCR3: ESCR2/ESCR3:LBD への
LBIE
"0" 書込み
SSR2/SSR3:
TIE
LIN synch fieldの
× × × ○ 1 回目の立下り ICS01/ICS23/
エッジ
ICS45:
LIN synch fieldの ICE1/ICE3/
× × × ○ 5 回目の立下り ICE5
送信データの書込み
LIN Synch break
発生ビット (ECCR2/
ECCR3:
LBR) への "1" 書込み
ICP1/ICP3/ICP5 を
ディセーブル
エッジ
○ : 使用ビット
× : 未使用ビット
△ : ECCR2/ECCR3:SSM=1 のみ使用可能
355
第 20 章 UART2, UART3
● 受信割込み
以下に示す動作が受信モードで発生するとシリアルステータスレジスタ (SSR2/SSR3)
の各フラグビットは "1" に設定されます。
データ受信完了
受信データが受信シフトレジスタから受信データレジスタ (RDR2/RDR3)
へ転送され , 読出し可能です。(RDRF=1)
オーバランエラー
RDRF=1 で , RDR2/RDR3 が CPU によって読み出されずに , 次のシリアル
データを 受信した場合。(ORE=1)
フレーミングエラー
ストップビット受信エラー。(FRE=1)
パリティエラー
パリティ検出エラー。(PE=1)
上記のフラグビットいずれかが "1" のとき , 受信割込みが許可 (SSR2/SSR3:RIE=1) され
ていると受信割込み要求が発生します。
RDRF フラグは , 受信データレジスタ (RDR2/RDR3) を読み出すと自動的に "0" にクリ
ア さ れ ま す。こ れ が RDRF フ ラ グ を リ セ ッ ト す る 唯 一 の 方 法 で す (MB90V390H/
MB90F394H(A) では , LIN break が検出された場合にも RDRF フラグがクリアされま
す )。エラーフラグはシリアル制御レジスタ (SCR2/SCR3) の受信エラーフラグクリア
ビット (CRE) に "1" を書き込むと , すべて "0" にクリアされます。MB90V390H/
MB90F394H(A) では , LIN break が検出されたとき , エラーフラグもクリアされます。
RDRF フラグが "1" で , エラービットがセットされていない場合 , RDR2/RDR3 には有
効なデータだけが含まれます。
<注意事項>
CRE フラグは書込み専用で , "1" 書込みのとき , 1 クロックサイクル間 "1" を保持します。
● 送信割込み
送信データが送信データレジスタ (TDR2/TDR3) から送信シフトレジスタに転送され ,
送信が開始されると, シリアルステータスレジスタ(SSR2/SSR3)の送信データレジスタ
エンプティフラグビット (TDRE) が "1" にセットされます。この場合 , 送信割込みが許
可 (SSR2/SSR3:TIE=1) されていると送信割込み要求が発生します。
<注意事項>
ハードウェアリセット / ソフトウェアリセット後の TDRE の初期値が "1" であるため , TIE
ビットが "1" に設定されると直ちに割込みが発生します。また , TDRE は , 送信データレ
ジスタ (TDR2/TDR3) にデータを書き込むことでのみクリアされます。
356
第 20 章 UART2, UART3
● LIN synch break 割込み
MB90V390H/MB90F394H(A): この項は ,UART2, UART3 がモード 0 または 3 で動作す
る場合にのみ適用されます。
バス ( シリアル入力 ) が 11 ビット時間以上 "0" ( ドミナント ) になっている場合 , 拡張
ステータス / 制御レジスタ (ESCR2/ESCR3) の LIN Synch break 検出フラグビット (LBD)
が "1" に セ ッ ト さ れ , 受 信 エ ラ ー フ ラ グ (SSR2/SSR3:FRE, SSR2/SSR3:ORE, SSR2/
SSR3:PE)および受信データレジスタフルフラグ(SSR2/SSR3:RDRF) がクリアされます。
この場合 ,9 ビット時間後に , 受信エラーフラグが "1" にセットされます。そのため LIN
synch break の検出のみを希望する場合 ,RXE フラグを "0" にセットする必要がありま
す。
LBD フラグに "1" を書き込むと , 割込みおよび LBD フラグがクリアされます。これは ,
LIN synch field のインプットキャプチャ割込みの前に実行する必要があります。
MB90V390HA/MB90V390HB/MB90394HA: この項は , UART2, UART3 がモード 3 で
LIN スレーブとして動作する場合にのみ適用されます。
バス ( シリアル入力 ) が 11 ビット時間以上 "0" ( ドミナント ) になっている場合 , 拡張
ステータス / 制御レジスタ (ESCR2/ESCR3) の LIN Synch break 検出フラグビット (LBD)
が "1" にセットされます。この場合 , 9 ビット時間後に , 受信エラーフラグが "1" にセッ
トされます。そのため LIN synch break の検出のみを希望する場合 ,RXE フラグを "0" に
セットする必要があります。
LBD フラグに "1" を書き込むと , 割込みおよび LBD フラグがクリアされます。これは ,
LIN synch field のインプットキャプチャ割込みの前に実行する必要があります。
● LIN synch field エッジ検出割込み
この項は , UART2, UART3 がモード 3 で LIN スレーブとして動作する場合にのみ適用
されます。LIN break の検出後に , 受信バスの次の立下りエッジが UART2, UART3 に
よって示されます。同時に ICU1/ICU3/ICU5 に接続されている内部信号が "1" にセット
されます。この信号は , LIN synch field の 5 番目の立下りエッジの後 ,"0" にリセットさ
れます。どちらの場合も ," 両方のエッジ検出 " および ICU1/ICU3/ICU5 割込みが許可
されていれば , ICU1/ICU3/ICU5 は割込みを生成します。ICU1/ICU3/ICU5 カウンタ値
の差は , シリアルクロックに 8 を掛けた値です。これを 8 で割ると , 専用リロードカウ
ンタの新しく検出および計算されたボーレートになります。次に , この値から 1 を引い
た値をボーレートジェネレータレジスタ (BGR02/BGR12 および BGR03/BGR13) に書
き込まなければなりません。リロードカウンタを再スタートする必要はありません。な
ぜなら,このカウンタは開始ビットの立下りエッジが検出されると自動的に再スタート
されるからです。
357
第 20 章 UART2, UART3
■ LIN-UART2,UART3 の割込みと EI2OS
表 20.5-2 LIN-UART2,UART3 の割込みと EI2OS
割込み制御レジスタ
チャネル
ベクタテーブルのアドレス
EI2OS
割込み番号
レジスタ名
アドレス
下位
上位
バンク
UART2 受信
#39(27H)
ICR14
0000BEH
FFFF60H
FFFF61H
FFFF62H
*1
UART2 送信
#40(28H)
ICR14
0000BEH
FFFF5CH
FFFF5DH
FFFF5EH
*2
UART3 受信
#39(27H)
ICR14
0000BEH
FFFF60H
FFFF61H
FFFF62H
*3
UART3 送信
#40(28H)
ICR14
0000BEH
FFFF5CH
FFFF5DH
FFFF5EH
*4
*1: UART2 受信のための EI2OS サービスは , UART2 送信割込みと UART3 の送信および受信割込みの
両方が禁止されている場合にだけ使用可能です。受信エラーの検出時に , EI2OS サービスの停止
要求がサポートされます。
*2: UART2 送信のための EI2OS サービスは , UART2 受信割込みと UART3 の送信および受信割込みの
両方が禁止されている場合にだけ使用可能です。
*3: UART3 受信のための EI2OS サービスは , UART3 送信割込みと UART2 の送信および受信割込みの
両方が禁止されている場合にだけ使用可能です。受信エラーの検出時に , EI2OS サービスの停止
要求がサポートされます。
*4: UART3 送信のための EI2OS サービスは , UART3 受信割込みと UART2 の送信および受信割込みの
両方が禁止されている場合にだけ使用可能です。
■ UART2,UART3 の EI2OS 機能
UART2,UART3 は EI2OS 対応の回路があります。このため , 受信 / 送信の各割込みで
別々に EI2OS を起動することができます。
● UART2 受信の場合
UART2 は割込みレジスタを , UART2 送信割込み , UART3 受信および送信割込みとの
間で共有します。そのため EI2OS の起動は , UART2 送信割込みが存在せず , UART3 受
信または送信割込みが使用されていない場合にだけ可能です。
● UART2 送信の場合
UART2 は割込みレジスタを , UART2 受信割込み , UART3 受信および送信割込みとの
間で共有します。そのため EI2OS の起動は , UART2 受信割込みが存在せず , UART3 受
信または送信割込みが使用されていない場合にだけ可能です。
● UART3 受信の場合
UART3 は割込みレジスタを , UART3 送信割込み , UART2 受信および送信割込みとの
間で共有します。そのため EI2OS の起動は , UART3 送信割込みが存在せず , UART2 受
信または送信割込みが使用されていない場合にだけ可能です。
● UART3 送信の場合
UART3 は割込みレジスタを , UART3 受信割込み , UART2 受信および送信割込みとの
間で共有します。そのため EI2OS の起動は , UART3 受信割込みが存在せず , UART2 受
信または送信割込みが使用されていない場合にだけ可能です。
358
第 20 章 UART2, UART3
受信割込み発生とフラグセットのタイミング
20.5.1
受信時の割込みとしては , 受信完了 (SSR2/SSR3:RDRF) および受信エラーの発生
(SSR2/SSR3:PE, ORE, FRE) があります。
■ 受信割込み発生とフラグセットのタイミング
モード 0, 1, 2(SSM=1), 3 で最初のストップビットの検出 , またはモード 2(SSM=0) で最
終データビットが検出されることにより , 受信データが受信データレジスタ (RDR2/
RDR3) に格納されます。受信が完了したとき (SSR2/SSR3:RDRF=1) または受信エラー
が発生 (SSR2/SSR3:PE, ORE, FRE=1) すると各フラグがセットされます。そのとき , 受
信割込みが許可 (SSR2/SSR3: RIE=1) されていると受信割込みが発生します。
<注意事項>
各モードで受信エラーが発生したときは , 受信データレジスタ (RDR2/RDR3) のデータは
無効となります。
図 20.5-1 に , 受信動作とフラグセットのタイミングを示します。
図 20.5-1 受信動作とフラグセットのタイミング
受信データ
( モード 0/3)
ST
D0
D1
D2
…D5
D6
D7/P
SP
ST
受信データ
( モード 1)
ST
D0
D1
D2
…D6
D7
A/D
SP
ST
D0
D1
D2
…D4
D5
D6
D7
D0
受信データ
( モード 2)
PE*1, FRE
RDRF
ORE*2
(RDRF = "1")
受信割込み発生
* 1:モード 1, 3 で PE フラグは常に "0" となります。
* 2:受信データが読み出される前に (RDRF = 1) , 次のデータが転送されるとオーバランエラーが発生します。
ST:スタートビット SP:ストップビット A/D:モード 1 ( マルチプロセッサ ) アドレスデータ選択ビット
<注意事項>
図 20.5-1 はモード 0 およびモード 3 におけるすべての受信動作を表しているわけではあ
りません。"7P1" と "8N1"(P=" 偶数パリティ " または " 奇数パリティ ") の例のみ示されて
います。
359
第 20 章 UART2, UART3
図 20.5-2 ORE フラグセットタイミング
受信データ
RDRF
ORE
360
第 20 章 UART2, UART3
送信割込み発生とフラグセットのタイミング
20.5.2
送信時の割込みは , 送信データが送信データレジスタ (TDR2/TDR3) から送信用シフ
トレジスタに転送され , 送信が開始されると発生します。
■ 送信割込み発生とフラグセットのタイミング
送信データレジスタ (TDR2/TDR3) に書き込まれたデータが送信シフトレジスタに転送
され , 送信が開始されると , 次のデータの書込みが可能な状態 (SSR2/SSR3:TDRE=1) に
なります。そのとき , 送信割込みが許可 (SSR2/SSR3:TIE=1) されていると送信割込みが
発生します。
TDRE ビットは読出しのみ可能なビットのため , 送信データレジスタ (TDR2/TDR3) へ
のデータ書込みのみにより "0" にクリアされます。
図 20.5-3 に UART2,UART3 の各モードに設定したときの送信動作とフラグセットのタ
イミングについて示します。
図 20.5-3 送信動作とフラグセットのタイミング
送信割込み発生
送信割込み発生
モード 0, 1, 2 (SSM=1)
または 3:
TDR2/TDR3 書込み
TDRE
シリアル出力
ST D0 D1 D2 D3 D4 D5 D6 D7 P SP ST D0 D1 D2 D3 D4 D5 D6 D7 P SP
A/D
A/D
送信割込み発生
送信割込み発生
モード 2 (SSM = 0) :
TDR2/TDR3 書込み
TDRE
シリアル出力
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4
ST:スタートビット D0 ~ D7:データビット P:パリティ SP:ストップビット
A/D:アドレスデータ選択ビット ( モード 1)
<注意事項>
図 20.5-3 はモード 0 におけるすべての送信動作については説明していません。
"8p1" (p=" 偶数パリティ " または " 奇数パリティ ") についてのみ示されています。
パリティビットはモード3の場合, もしくはモード2でSSM=0の場合には送信されません。
361
第 20 章 UART2, UART3
■ 送信割込み要求発生タイミング
送信割込みが許可されている場合に (SSR2/SSR3:TIE=1), TDRE フラグが "1" にセット
されると送信割込みが発生します。
<注意事項>
初期状態では , TDRE ビットが "1" になっていますので , 送信割込みを許可 (SSR2/
SSR3:TIE=1) にすると直ちに送信割込みが発生します。TDRE ビットのクリアは送信デー
タレジスタ (TDR2/TDR3) に新規データを書き込むしかありませんので , 送信割込み許可
のタイミングには注意してください。
362
第 20 章 UART2, UART3
20.6
UART2, UART3 のボーレート
UART2,UART3 の送受信クロックソースは , 次のいずれかを選択できます。
• 専用ボーレートジェネレータ ( リロードカウンタ )
• 外部クロックをボーレートジェネレータに入力 ( リロードカウンタ )
• 外部クロック (SCK2/SCK3 端子入力クロックの直接使用 )
■ UART2,UART3 ボーレート選択
ボーレートは次の 3 種類の中から 1 種類を選択できます。ボーレートの選択回路を図
20.6-1 に示します。
● 専用ボーレートジェネレータ ( リロードカウンタ ) で内部クロックを分周して得られるボー
レート
2 つの内部リロードカウンタがあり , それぞれ送受信シリアルクロックに対応していま
す。ボーレートジェネレータレジスタ 1, 0 (BGR02/BGR03,BGR12/BGR13) で 15 ビット
のリロード値を設定することによりボーレートを選択できます。
リロードカウンタは , 設定された値で内部クロックを分周します。
非同期モード , 同期モード ( マスタ ) 時に使用します。
クロックソースの設定は , 内部クロックとボーレートジェネレータクロック使用を選
択 (SMR2/SMR3:EXT=0, OTO=0) してください。
● 専用ボーレートジェネレータ ( リロードカウンタ ) で外部クロックを分周して得られるボー
レート
リロードカウンタのクロックソースに外部クロックを使用します。
ボーレートジェネレータレジスタ 1, 0 (BGR02/BGR03,BGR12/BGR13) で 15 ビットのリ
ロード値を設定することによりボーレートを選択できます。
リロードカウンタは , 設定された値で外部クロックを分周します。
非同期モード時に使用します。
クロックソースの設定は , 外部クロックとボーレートジェネレータクロック使用を選
択 (SMR2/SMR3:EXT=1, OTO=0) してください。
本モードは特殊な周波数の発振子を分周して使用するケースを想定して用意されてい
ます。
● 外部クロック (1 対 1 モード ) によるボーレート
UART2,UART3 のクロック入力端子 (SCK2/SCK3) から入力されたクロックをそのまま
ボーレートとして使用します ( 同期モード 2 スレーブ動作 (ECCR2/ECCR3:MS=1))。マ
シンクロックの 4 分周以下のボーレートを外部で設定できます。
同期モード ( スレーブ ) 時に使用します。
クロックソースの設定は , 外部クロックと外部クロック直接使用を選択 (SMR2/
SMR3:EXT=1, OTO=1) してください。
363
第 20 章 UART2, UART3
図 20.6-1 ボーレート選択回路(リロードカウンタ)
REST
スタートビット
立下りエッジ検出
リロード値:v
Rxc = 0?
受信
リロード
15 ビットリロードカウンタ
Rxc = v/2?
セット
FF
受信クロック
0
リセット
1
リロード値:v
CLK
0
SCK2, SCK3
( 外部クロック
入力 )
1
送信
15 ビットリロードカウンタ
カウンタ値:TXC
EXT
Txc = 0?
セット
FF
リロード
OTO
0
リセット
Txc = v/2?
1
送信クロック
内部データバス
EXT
REST
OTO
364
SMR2/
SMR3
レジスタ
BGR14
BGR13
BGR12
BGR11
BGR10
BGR9
BGR8
BGR12/
BGR13
レジスタ
BGR7
BGR6
BGR5
BGR4
BGR3
BGR2
BGR1
BGR0
BGR02/
BGR03
レジスタ
第 20 章 UART2, UART3
ボーレート設定
20.6.1
ボーレートの設定を示します。また , シリアルクロック周波数の計算結果を示しま
す。
■ ボーレートの計算
2 つの 15 ビットリロードカウンタは , ボーレートジェネレータレジスタ 1, 0 (BGR02/
BGR03,BGR12/BGR13) で設定します。
ボーレートの計算式を以下に示します。
リロード値 :
v=
( φb ) - 1
v: リロード値 b: ボーレート φ: マシンクロック , 外部クロック周波数
計算例
マシンクロック16MHz, 内部クロック使用, ボーレートを19200 bpsに設定する場合,
次のようになります。
リロード値 :
6
v=
× 10
( 1619200
) - 1 = 832
よって , 実際のボーレートは下記のように計算できます。 b=
φ
(v + 1)
=
16 × 106
= 19207.6831
833
<注意事項>
リロード値を "0" に設定するとリロードカウンタは停止します。そのため , 最低の分周比
は "2" になります。
非同期モードで送受信する際, 5回オーバサンプリングして受信値を決定するため, リロー
ド値を最低でも "4" に設定する必要があります。
365
第 20 章 UART2, UART3
■ 各クロック速度のリロード値とボーレート
各クロック速度のリロード値とボーレートを , 表 20.6-1 に示します。
表 20.6-1 リロード値とボーレート
ボーレート
(bps)
8 MHz
10 MHz
16 MHz
20 MHz
value
24 MHz
value
dev.*
value
dev.*
value
dev.*
dev.*
value
dev.*
4M
―
―
―
―
―
―
4
0
5
0
2M
―
―
4
0
7
0
9
0
11
0
1M
7
0
9
0
15
0
19
0
23
0
500000
15
0
19
0
31
0
39
0
47
0
460800
―
―
―
―
―
―
―
―
51
- 0.16
250000
31
0
39
0
63
0
79
0
95
0
230400
―
―
―
―
―
―
―
―
103
- 0.16
153600
51
- 0.16
64
- 0.16
103
- 0.16
129
- 0.16
155
- 0.16
125000
63
0
79
0
127
0
159
0
191
0
115200
68
- 0.64
86
0.22
138
0.08
173
0.22
207
- 0.16
76800
103
- 0.16
129
- 0.16
207
- 0.16
259
- 0.16
311
- 0.16
57600
138
0.08
173
0.22
277
0.08
346
- 0.06
416
0.08
38400
207
- 0.16
259
- 0.16
416
0.08
520
0.03
624
0
28800
277
0.08
346
< 0.01
554
- 0.01
693
- 0.06
832
- 0.03
19200
416
0.08
520
0.03
832
- 0.03
1041
0.03
1249
0
10417
767
< 0.01
959
< 0.01
1535
< 0.01
1919
< 0.01
2303
< 0.01
9600
832
0.04
1041
0.03
1666
0.02
2083
0.03
2499
0
7200
1110
< 0.01
1388
< 0.01
2221
< 0.01
2777
< 0.01
3332
< 0.01
4800
1666
0.02
2082
- 0.02
3332
< 0.01
4166
< 0.01
4999
0
2400
3332
< 0.01
4166
< 0.01
6666
< 0.01
8332
< 0.01
9999
0
1200
6666
< 0.01
8334
0.02
13332
< 0.01
16666
< 0.01
19999
0
600
13332
< 0.01
16666
< 0.01
26666
< 0.01
―
―
―
―
300
26666
< 0.01
―
―
―
―
―
―
―
―
*: 周波数偏差 (dev.) の単位は % です。
同期モード時の最大ボーレートは , マシンクロックの 1/5 です。
■ 外部クロック
シリアルモードレジスタ (SMR2/SMR3) の EXT ビットに "1" を書き込むと外部クロッ
クが選択されます。ボーレートジェネレータで外部クロックは内部クロックと同じよ
うに使用できます。
同期モード 2 でスレーブ動作を使用する際に , 1 対 1 外部クロック入力モード (SMR2/
SMR3:OTO=1) を選択します。このモードでは , SCK2/SCK3 に入力された外部クロック
を UART2,UART3 のシリアルクロックに直接入力します。
<注意事項>
外部クロック信号は UART2,UART3 で内部クロックに同期します。したがって , 分周不可
能な外部クロックの場合 , 不安定な信号状態になります。
366
第 20 章 UART2, UART3
■ リロードカウンタの動作
リロード値を 832 としたときの 2 つのリロードカウンタの動作を図 20.6-2 に示します。
図 20.6-2 リロードカウンタの動作
送受信クロック
リロード
カウンタ
001
000
832
831
830
829
828
827
413
412
411
410
リロードカウンタ値
送受信クロック
リロード
カウンタ
417
416
415
414
<注意事項>
シリアルクロック信号の立下りエッジは , リロード値を 2 で割った値 ( (v+1)/2 ) をカウン
トした後に発生します。
367
第 20 章 UART2, UART3
20.6.2
リロードカウンタ
専用ボーレートジェネレータとして機能する 15 ビットのリロードカウンタです。 外
部クロックまたは内部クロックより送受信クロックを生成します。
また , 送信リロードカウンタのカウント値をボーレートジェネレータレジスタ
(BGR02/BGR03,BGR12/BGR13) より読み出すことができます。
■ リロードカウンタの機能
リロードカウンタには , 送信リロードカウンタと受信リロードカウンタがあり , 専用
ボーレートジェネレータとして機能します。リロード値に対する 15 ビットレジスタか
ら構成されており , 外部クロックまたは内部クロックより送受信クロックを生成しま
す。また , 送信リロードカウンタのカウント値をボーレートジェネレータレジスタ
(BGR02/BGR03,BGR12/BGR13) より読み出すことができます。
■ リロードカウンタのカウントの開始
ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) にリロード値を書き
込むとリロードカウンタはカウントを開始します。
■ リロードカウンタの再スタート
リロードカウンタは下記の条件で再スタートされます。
送信 / 受信リロードカウンタ共通
• グローバル MCU リセット
• UART2,UART3 プログラマブルリセット (SMR2/SMR3:UPCL ビット )
• プログラマブル再スタート (SMR2/SMR3:REST ビット )
受信リロードカウンタ
• 自動再スタート ( 非同期モードでのスタートビット立下りエッジ検出 )
● プログラマブル再スタート
シリアルモードレジスタ (SMR2/SMR3) の REST ビットを "1" にセットすると , 次のク
ロックサイクルで 2 つのリロードカウンタは再スタートします。
この機能により送信リロードカウンタを簡易的なタイマとして利用することが可能で
す。
本機能の使用例を図 20.6-3 に示します ( リロード値 100 の場合 ) 。
368
第 20 章 UART2, UART3
図 20.6-3 リロードタイマの再スタートによる簡易タイマの使用例
MCU クロック
リロードカウンタ
クロック出力
REST
リロード値
37 36 35 100 99 98 97 96 95 94 93 92 91 90 89 88 87
Read
BGR02/BGR03,BGR12/BGR13
データバスの
読出し
90
:不定値
この例では , 再スタート後のマシンサイクル数 cyc は下式で求められます。
cyc = v - c + 1 = 100 - 90 + 1 = 11
v : リロード値 , c : リロードカウンタの値
<注意事項>
SMR2/SMR3:UPCL ビットに "1" を書き込むことで UART2,UART3 をリセットした場合に
も , リロードカウンタは再スタートします。
● 自動再スタート ( 受信リロードカウンタのみ )
非同期モードでスタートビット立下りエッジが検出されると , 受信リロードカウンタ
が再スタートします。これは受信シフトレジスタを受信データに同期させるための機
能です。
■ リロードカウンタのクリア
リセットによりボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13) のリ
ロード値とリロードカウンタが "00H" にクリアされ , リロードカウンタは停止します。
UART2,UART3 のリセット (SMR2/SMR3:UPCL への "1" 書込み ) でカウンタ値は一時
"00H" にクリアされますが , リロード値は保持されていますのでリロードカウンタは再
スタートします。再スタートの設定 (SMR2/SMR3:REST への "1" 書込み ) ではカウンタ
値は "00H" にクリアされずに再スタートします。
369
第 20 章 UART2, UART3
20.7
UART2, UART3 の動作
UART2,UART3 は , モード 0 の双方向シリアル通信 , モード 1 のマスタ / スレーブマル
チプロセッサ通信 , モード 2, モード 3 のマスタ / スレーブ双方向通信で動作します。
■ UART2,UART3 の動作
● 動作モード
UART2,UART3 の動作モードにはモード 0 ~モード 3 の 4 種類があり , 表 20.7-1 に示
すように CPU 間の接続方式やデータ転送方式を選択することができます。
表 20.7-1 UART2, UART3 の動作モード
データ長
動作モード
同期方式
パリティなし
0
ノーマルモード
1
マルチプロセッサ
モード
2
ノーマルモード
3
LIN モード
パリティあり
7 ビットまたは 8 ビット
7 ビットまたは
8 ビット + 1*
―
8 ビット
8 ビット
ストップビット長
―
非同期
非同期
1 ビット
または
2 ビット
同期
なし , 1 ビット ,
2 ビット
非同期
1 ビット
データビット
フォーマット
LSB ファースト
MSB ファースト
LSB ファースト
―: 設定不可
*: "+1" はマルチプロセッサモードで通信制御用に使用されるアドレス / データ選択ビット (A/D) です。
<注意事項>
モード 1 動作は, マスタ/スレーブ接続システムの UART2, UART3 のマスタまたはスレー
ブ動作の両方に対してサポートされています。モード 3 では , UART2, UART3 の機能は
8N1-Format, LSB first にロックされています。
モードが変更されると , UART2, UART3 は , 可能なすべての送信または受信を切断し , 新
しいアクションを待機します。
■ CPU 間接続方式
外部クロック 1 対 1 接続 ( ノーマルモード ) とマスタ / スレーブ型接続 ( マルチプロ
セッサモード ) のどちらかを選択できます。どちらの方式でも , データ長 , パリティ有
無 , 同期方式などは , すべての CPU で統一しておく必要があり , 動作モードを次のよう
に選択します。
• 1 対 1 接続の場合
:2 つの CPU で動作モード 0, 動作モード 2 のいず
れかの同じ方式を採用する必要があります。非同
期方式では動作モード 0, 同期方式では動作モー
ド 2 を選択してください。また , 動作モード 2 で
は 1 つの CPU をマスタへ , もう 1 つの CPU をス
レーブへ設定してください。
• マスタ / スレーブ型接続の場合 :動作モード 1 を選択します。マスタ / スレーブシ
ステムとして使用してください。
370
第 20 章 UART2, UART3
■ 同期方式
非同期動作では , UART2, UART3 受信クロックは自動的に受信開始ビットの立下り
エッジに同期化されます。
• MB90V390H/MB90F394H(A):開始ビット検出は,レベルの検出によって行われます。
つまり , シリアルデータ入力 SIN2/SIN3 が "0" のときに SCR2/SCR3:RXE ビットが
"1" にセットされると , 即座に開始ビットが検出されます。SCR2/SCR3:RXE ビット
が "0" にセットされているときでも受信開始ビットは記憶されます。それによって
SCR2/SCR3:RXE ビットが再び "1" にセットされると , 即座に受信が開始されます。
次善策として , SCR2/SCR3:RXE ビットを "0" にセットした後 , SMR2/SMR3: UPCL
ビットに "1" を書き込むことによって UART2, UART3 をリセットします。
• MB90V390HA/MB90V390HB/MB90394HA: 開始ビット検出は , エッジの検出によっ
て行われます。
つまり , SIN2/SIN3 が "0" のときに SCR2/SCR3:RXE ビットが "1" にセットされた場
合 , シリアルデータ入力 SIN2/SIN3 の次の立下りエッジまで開始ビットは検出され
ません。SCR2/SCR3:RXE ビットが "0" にセットされているとき , 受信開始ビットは
記憶されません。つまり SCR2/SCR3:RXE ビットが再び "1" にセットされた後 , 開始
ビットが検出されると受信が開始されます。
同期モードでは , 同期化はマスタデバイスのクロック信号によって , または UART2,
UART3 がマスタとして動作している場合は UART2, UART3 自身によって実行されま
す。
■ 信号方式
NRZ (Non Return to Zero) 形式です。
■ 送受信許可
UART2, UART3 は , 送信動作許可ビット (SCR2/SCR3:TXE) と受信動作許可ビット
(SCR2/SCR3:RXE) を使用して送信と受信の両方を制御します。
• 受信時に受信動作が禁止されている場合 ( データは受信シフトレジスタに入力され
ます ), フレーム受信を終了し , 受信データレジスタ (RDR2/RDR3 ) の受信データを
読み出します。次に受信動作を停止します。
• 送信時に送信動作が禁止されている場合 ( データは送信シフトレジスタから出力さ
れます ), 送信データレジスタ (TDR2/TDR3) のデータがなくなるまで待機した後で
送信動作を停止します。
371
第 20 章 UART2, UART3
非同期モード ( 動作モード 0, 1) の動作
20.7.1
UART2,UART3 を動作モード 0( ノーマルモード ), または動作モード 1( マルチプロ
セッサモード ) で使用する場合 , 転送方式は非同期となります。
■ 非同期モードの動作
● 送受信データフォーマット
送受信データは必ずスタートビット ("L" レベル ) から始まり , 指定されたデータビッ
ト長の送受信が行われ , 少なくとも 1 ビットのストップビット ("H" レベル ) で終了し
ます。
ビット転送方向 (LSB ファーストまたは MSB ファースト ) はシリアルステータスレジ
スタ (SSR2/SSR3) の BDS ビットで決定されます。パリティありの場合 , パリティビッ
トは常に最終データビットと最初のストップビットの間に置かれます。
動作モード 0 では , データ長は 7 ビットまたは 8 ビットを選択します。パリティは , あ
り / なしの選択ができます。また , ストップビット長 (1 または 2) を選択可能です。
動作モード 1 では , データ長は 7 ビットまたは 8 ビットで , パリティは付加されず , ア
ドレス / データ選択ビットが付加されます。ストップビット長 (1 または 2) を選択でき
ます。
送受信フレームのビット長計算式は , 以下のようになります。
長さ = 1 + d + p + s
(d= データビット数 [7 または 8], p= パリティ [0 または 1],
s= ストップビットの数 [1 または 2])
図 20.7-1 に , 非同期モードの場合のデータフォーマットを示します。
図 20.7-1 送受信データフォーマット ( 動作モード 0, 1)
*1
*2
動作モード 0
ST
D0
D1
D2
D3
D4
D5
D6
D7/P
動作モード 1
ST
D0
D1
D2
D3
D4
D5
D6
D7 A/D
SP SP
SP
*1: パリティなしでデータ長が 8 ビットの場合は D7 ( ビット 7)
パリティありでデータ長が 7 ビットの場合は P ( パリティ )
*2: SCR3 の SBL ビットが "1" に設定されている場合のみ
ST: スタートビット SP: ストップビット
A/D: モード 1 でのアドレス / データ選択ビット ( マルチプロセッサ・モード )
<注意事項>
シリアルステータスレジスタ (SSR2/SSR3) の BDS ビットを "1"(MSB ファースト ) に設
定する場合 , ビットは D7, D6, …D1, D0(P) の順序で処理されます。
372
第 20 章 UART2, UART3
受信時に , 両方のストップ ビットが検出されます ( 選択している場合 )。しかし , 受信
データレジスタフル (RDRF) フラグは , 最初のストップ ビットで "1" になります。バス
アイドルフラグ (ECCR2/ECCR3 の RBI)は,それ以上の開始ビットが検出されない場合,
2 番目のストップ ビットの後に "1" になります (2 番目のストップ ビットは , マークレ
ベルですが , " バスアクティビティ " に含まれます )。
● 送信動作
シリアルステータスレジスタ (SSR2/SSR3) の送信データレジスタエンプティフラグ
ビット (TDRE) が "1" であれば , 送信データレジスタ (TDR2/TDR3) に送信データを書
き込むことができます。データを書き込むと TDRE フラグは "0" になります。このと
き , 送信が許可されていれば ( シリアル制御レジスタ (SCR2/SCR3) の TXE=1), データ
は送信シフトレジスタに書き込まれ , シリアルクロックの次のサイクルでスタート
ビットから順に送信が開始されます。
送信割込みが許可されていれば (TIE=1), TDRE フラグがセットされると割込みが発生
されます。TDRE の初期値は "1" であるため , その状態で TIE に "1" を書き込むと直ち
に割込みが発生しますので注意してください。
データ長が 7 ビットに設定 (CL=0) されている場合 , 転送方向選択ビット (BDS) の設定
(LSB ファーストまたは MSB ファースト ) にかかわらず , TDR2/TDR3 の MSB が不使用
ビットになります。
<注意事項>
送信データエンプティフラグビット (SSR2/SSR3:TDRE) の初期値が "1" になっているた
め , 送信割込みが許可 (SSR2/SSR3:TIE=1) されると直ちに割込みが発生します。
● 受信動作
受信動作が許可 (SCR2/SCR3:RXE=1) されていると , 受信動作を行います。スタート
ビットを検出すると, シリアル制御レジスタ(SCR2/SCR3)で設定しているデータフォー
マットに従って 1 フレームデータの受信が行われます。エラーが発生した場合にはエ
ラーフラグ (SSR2/SSR3:PE, ORE, FRE) がセットされます。1 フレームの受信が完了する
と , 受信データは受信シフトレジスタから受信データレジスタ (RDR2/RDR3) へ転送さ
れ , 受信データレジスタフルフラグビット (SSR2/SSR3:RDRF) が "1" にセットされます。
このとき , 受信割込み要求が許可 (SSR2/SSR3:RIE=1) されていると受信割込み要求を出
力します。
受信データを読み出す際には , 1 フレームデータの受信完了後にエラーフラグの状態を
確認し , 正常に受信が行われていれば受信データレジスタ (RDR2/RDR3) から受信デー
タを読み出してください。受信エラーが発生している場合には , エラー処理を行ってく
ださい。
受信データの読出しで , 受信データレジスタフルフラグビット (SSR2/SSR3:RDRF) は
"0" にクリアされます。
データ長が 7 ビットに設定 (CL=0) されている場合 , 転送方向選択ビット (BDS) の設定
(LSB ファーストまたは MSB ファースト ) にかかわらず , TDR2/TDR3 の MSB が不使用
ビットになります。
373
第 20 章 UART2, UART3
<注意事項>
受信データレジスタ (RDR2/RDR3) のデータは , 受信データレジスタフルフラグビット
(SSR2/SSR3:RDRF)が"1"にセットされ, エラーが発生しなかった(SSR2/SSR3:PE, ORE,
FRE=0) 場合に有効となります。
● 使用クロック
内部クロックまたは外部クロックを使用します。ボーレートは , ボーレートジェネレー
タを選択 (SMR2/SMR3:EXT=0 または 1, OTO=0) してください。
● ストップビット
送信時に , 1 ビットまたは 2 ビットのストップビットを選択できます。
2 ビットのストッ
プビットを選択したときは , 両方のストップビットが受信時に検出されます。
最初のストップビットが検出されると受信データレジスタフルフラグ (SSR2/SSR3:
RDRF) が "1" になります。その後 , スタートビットが検出されない場合 , 受信バスアイ
ドルフラグ (ECCR2/ECCR3:RBI) が "1" になり受信動作がないことを示します。
● エラー検出
モード 0 では , パリティエラー , オーバランエラー , フレームエラーを検出できます。
モード 1 では , オーバラン , フレームエラーを検出できます。パリティエラーは検出で
きません。
● パリティ
パリティビットの付加 ( 送信時 ), 検出 ( 受信時 ) を設定できます。
パリティ許可ビット (SCR2/SCR3:PEN) でパリティの有無を , パリティ選択ビット
(SCR2/SCR3:P) で偶数 / 奇数パリティを選択できます。
動作モード 1 では , パリティを使用できません。
図 20.7-2 パリティ有効時の送信データ
SIN
ST
SP
1 0 1 1 0 0 0 0 0
SOT
ST
偶数パリティにて受信時
パリティエラー発生
(SCR2/SCR3:P = 0)
SP
偶数パリティの送信
(SCR2/SCR3:P = 0)
SP
奇数パリティの送信
(SCR2/SCR3:P = 1)
1 0 1 1 0 0 0 0 1
SOT
ST
1 0 1 1 0 0 0 0 0
データ
パリティ
ST:スタートビット SP:ストップビット パリティあり (PEN = 1) の場合
( 注意事項 ) 動作モード 1 では , パリティは使用できません。
374
第 20 章 UART2, UART3
● データ信号方式
NRZ データフォーマットです。
● データ転移方法
データビット転送方法を LSB ファーストまたは MSB ファーストに選択できます。
375
第 20 章 UART2, UART3
20.7.2
同期モード ( 動作モード 2) の動作
UART2,UART3 を動作モード 2( ノーマルモード ) で使用する場合 , 転送方式はク
ロック同期となります。
■ 同期モード ( 動作モード 2) の動作
● 送受信データフォーマット
同期モードでは , 8 ビットデータを送受信し , スタートビット , ストップビットの無を
選択 (ECCR2/ECCR3:SSM=0) できます。また ,
スタート / ストップあり (ECCR2/
ECCR3:SSM=1) のとき , パリティビットの有無を選択 (SCR2/SCR3:PEN) できます。
図 20.7-3 に同期モード使用時のデータフォーマットを示します。
図 20.7-3 送受信データフォーマット ( 動作モード 2)
送受信データ
(ECCR2/ECCR3:SSM=0,SCR2/SCR3:PEN=0)
D0 D1 D2 D3 D4 D5 D6 D7
送受信データ
(ECCR2/ECCR3:SSM=1,SCR2/SCR3:PEN=0)
ST D0 D1 D2 D3 D4 D5 D6 D7
SP SP
送受信データ
(ECCR2/ECCR3:SSM=1,SCR2/SCR3:PEN=1)
ST D0 D1 D2 D3 D4 D5 D6 D7
P SP SP
*
*
*:2 ストップビットに設定 (SCR:SBL = 1) した場合
ST:スタートビット SP:ストップビット P:パリティビット
● モード 2 のクロック反転機能とスタート / ストップビット
拡張ステータス制御レジスタ (ESCR2/ESCR3) の SCES ビットが "1" の場合 , シリアル
クロックは反転します。スレーブモードでは UART2, UART3 は受信したシリアルク
ロックの立下りエッジでデータをサンプリングします。マスタモードでは SCES ビッ
トが "1" のとき , マークレベルが "0" になることにご注意ください。
拡張通信制御レジスタ (ECCR2/ECCR3) の SSM ビットが "1" の場合には , 非同期モード
のようにスタートビットとストップビットが付加されます。
図 20.7-4 クロック反転時の送信データフォーマット
送受信クロック
(SCES = 0, CCO = 0):
マークレベル
送受信クロック
(SCES = 1, CCO = 0):
データの流れ (SSM = 1)
( パリティなし ,
1 ストップビットのとき )
マークレベル
ST
SP
データフレーム
376
第 20 章 UART2, UART3
● クロックの供給
クロック同期モード ( ノーマル ) では , 送受信ビット数はクロックサイクル数と同じで
なければなりません。スタート / ストップビットが許可されている場合は追加された
スタート / ストップビット分まで一致している必要があります。
マスタモード (ECCR2/ECCR3: MS = 0) でシリアルクロック出力許可 (SMR2/SMR3:
SCKE = 1) を選択した場合は , 送受信時には同期クロックが自動的に出力されます。ス
レーブモード (ECCR2/ECCR3: MS = 1) またはシリアルクロック出力禁止 (SMR2/SMR3:
SCKE = 0) を選択した場合には , 送受信データの各ビット分のクロックが外部から供
給される必要があります。
送受信動作に関係ない場合にはクロック信号はマークレベル("H")に保たれる必要があ
ります。
ECCR2/ECCR3 レジスタの SCDE ビットが "1" のとき , クロック出力信号は遅延されま
す。この遅延の大きさは , MB90V390H/MB90F394H(A) と MB90V390HA/MB90V390HB/
MB90394HA で異なります。
MB90V390H/MB90F394H(A):ECCR2/ECCR3 レジスタの SCDE ビットが "1" のとき , ク
ロック出力信号の遅延の大きさは 1 マシンクロックサイクルです。
MB90V390HA/MB90V390HB/MB90394HA:ECCR2/ECCR3 レジスタの SCDE ビットが
"1" である場合 , クロック出力信号の遅延の大きさは , 図 20.7-5 に示すように , シリア
ルクロックサイクルの半分です。本機能は , 受信側のデバイスがクロックの立上りエッ
ジ , または立下りエッジでデータをサンプリングする場合に必要となります。
図 20.7-5 送信クロックの遅延 (SCDE=1)
送信データの書込み
受信データのサンプルエッジ (SCES=0)
送受信クロック ( 通常 )
マークレベル
送信クロック (SCDE=1)
マークレベル
送受信データ
マークレベル
0
LSB
1
1
0
1
データ
0
0
1
MSB
拡張ステータス制御レジスタ (ESCR2/ESCR3) の SCES ビットが "1" の場合 , UART2,
UART3 のクロックは反転し , 受信データをクロックの立下りエッジでサンプリングし
ます。ECCR2/ECCR3 レジスタの MS ビットが "0" ( マスタモード ) であり , SMR2/SMR3
レジスタの SCKE ビット が "1" ( クロック出力許可 ) である場合 , 出力クロック信号も
反転されます。
通信が行われていないとき , クロック信号はマークレベルとして "0" に保つ必要があ
ります。
ESCR2/ESCR3 レジスタの CCO ビットが "1" である場合 , データ通信が行われていな
いときでも , シリアルクロックが送信されます。
377
第 20 章 UART2, UART3
図 20.7-6 連続クロック供給 ( モード 2)
送受信クロック
(SCES = 0, CCO = 1):
送受信クロック
(SCES = 1, CCO = 1):
データの流れ (SSM = 1)
( パリティなし , 1 ストップビットのとき )
ST
SP
データフレーム
● エラー検出
スタートビット / ストップビットが有効でない場合 (ECCR2/ECCR3:SSM=0) は , オーバ
ランエラーのみが検出されます。
● 同期モードの通信設定
同期モードで通信を行うためには下記の設定が必要です。
• ボーレートジェネレータレジスタ (BGR02/BGR03,BGR12/BGR13)
専用ボーレートリロードカウンタを必要な値に設定してください。
• シリアルモードレジスタ (SMR2/SMR3)
MD1, MD0 : "10B" ( モード 2)
SCKE :
"1" ・・・専用ボーレートリロードカウンタを使用
"0"
SOE :
・・・外部クロックを入力
"1" ・・・送受信許可
"0"
・・・受信のみ許可
• シリアル制御レジスタ (SCR2/SCR3)
RXE, TXE : どちらかのフラグを "1" に設定
A/D :
アドレス / データ選択機能は使用されないため , 本ビットの値は無効で
す。
CL :
自動的に 8 ビット長に設定される。本ビットの値は無効です。
CRE :
"1" ・・・エラーフラグはクリアされ , 送受信は中断されます。
- SSM=0 の場合
PEN, P, SBL : パリティビット , ストップビットは使用されないため無効です。
- SSM=1 の場合
PEN:
"1"・・・パリティビット付加 / 検出 ,"0"・・・パリティビット不使用
P:
"1"・・・偶数パリティ ,"0"・・・奇数パリティ
SBL:
"1"・・・ストップビット長 2, "0"・・・ストップビット長 1
• シリアルステータスレジスタ (SSR2/SSR3)
BDS : "0"・・・LSB ファースト , "1"・・・MSB ファースト
RIE : "1"・・・受信割込み許可 , "0"・・・受信割込み禁止
TIE : "1"・・・送信割込み許可 , "0"・・・送信割込み禁止
• 拡張通信制御レジスタ (ECCR2/ECCR3)
SSM : "0" ・・・スタートビット / ストップビット不使用 ( 通常 ) ,
"1"
378
・・・スタートビット / ストップビット使用 ( 拡張機能 )
第 20 章 UART2, UART3
MS :
"0" ・・・マスタモード ( シリアルクロック出力 ) ,
"1" ・・・スレーブモード ( マスタデバイスからシリアルクロックを入力 )
<注意事項>
通信を開始する際には , 送信データレジスタ (TDR2/TDR3) にデータを書き込んでくださ
い。データの受信のみを行う場合は , シリアル出力を禁止 (SMR2/SMR3:SOE=0) に設定
し , TDR2/TDR3 にダミーデータを書き込んでください。
連続クロックとスタート / ストップビットを許可にすることで , 非同期モードのような双
方向通信が可能となります。
379
第 20 章 UART2, UART3
20.7.3
LIN 機能 ( 動作モード 3) の動作
動作モード 3 において , UART2,UART3 は LIN マスタおよび LIN スレーブとして動
作します。LIN 機能において , 特別なモードを供給します。
動作モード 3 ではデータフォーマットは 8N1-LSB ファーストに設定されます。
■ 非同期 LIN モード動作
● LIN マスタとしての UART2, UART3 動作
LINモードではマスタがバス全体のボーレートを決定し, スレーブはマスタに同期しま
す。初期設定後にマスタが動作することでボーレートが要求する値に固定されます。
拡張通信制御レジスタ (ECCR2/ECCR3) の LBR ビットに "1" を書き込むと , SOT2/SOT3
端子から "L" レベルが 13 ビット~ 16 ビット出力されます。これは LIN メッセージの
開始を示す LIN synch break です。
これにより , シリアルステータスレジスタ (SSR2/SSR3) の TDRE フラグビットは "0" に
なります。送信データレジスタ (TDR2/TDR3) に有効な値が存在しないときは , ブレー
ク後に "1"( 初期値 ) になります。このとき , SSR2/SSR3 の TIE ビットが "1" であれば送
信割込みを出力します。
送信される LIN break の長さは ESCR2/ESCR3 の LBL0/LBL1 ビットによって , 下表のよ
うに設定されます。
表 20.7-2 LIN break 長
LBL1
LBL0
LIN break 長
0
0
13 ビット
0
1
14 ビット
1
0
15 ビット
1
1
16 ビット
Synch field は LIN break の後にバイトデータ "55H" として送信されます。送信割込みの
発生を防ぐため , TDRE フラグが "0" の状態であっても LBR ビットを "1" に設定した後
に "55H" を TDR2/TDR3 に書き込むことができます。
● LIN スレーブとしての動作
LIN スレーブモードでは UART2,UART3 はマスタのボーレートに同期する必要があり
ます。受信が禁止設定 (RXE=0) でも LIN break 割込みが許可設定 (LBIE=1) であれば ,
UART2,UART3 は受信割込みを発生します。このとき , ESCR2/ESCR3 の LBD ビットが
"1" になります。
LBD ビットに "0" を書き込むと受信割込み要求フラグがクリアされます。
ボーレートの計算についての例を説明します。Synch field の最初の立下りエッジを
UART2,UART3 が検出すると , インプットキャプチャ (ICU0) に入力される内部信号を
"H" にして ICU0 をスタートさせます。この内部信号は 5 番目の立下りエッジで "L" に
なります。ICU0 は LIN モードに設定されている必要があります (ICE01)。また , ICU0
380
第 20 章 UART2, UART3
の割込みをイネーブル設定 , 両エッジ検出に設定する必要があります (ICS01)。ICU0 入
力信号が "1" の時間がボーレートを 8 倍した値となります。ボーレート設定値は下式
で算出できます。
フリーランタイマがオーバフローしていない場合 : BGR 値 = {(b-a)×Fe/(8×φ)}-1
フリーランタイマがオーバフローした場合
: BGR値 ={(max+b-a)×Fe/(8×φ)}-1
max
: フリーランタイマの最大値
a
: 1 度目の割込み後の ICU データレジスタ値
b
: 2 度目の割込み後の ICU データレジスタ値
φ
: マシンクロック周波数 (MHz)
Fe
: 外部クロック周波数 (MHz)
内部ボーレートジェネレータが使われる場
合 (EXT=0), Fe = φ として計算します。
<注意事項>
上記のように LIN スレーブモード時 , Synch field で新たに計算された BGR 値がボーレー
トの± 15% 以上の誤差が生じた場合は , ボーレートの設定は行わないでください。
UART と ICU の関係につきましては ,「13.3 16 ビットフリーランタイマ」および「13.5
インプットキャプチャ」を参照してください。
● LIN Synch Break 検出割込みとフラグ
スレーブモードにおいて , LIN synch break が検出されると ESCR2/ESCR3 の LIN break
検出フラグ (LBD) が "1" になります。LIN break 割込みが許可の場合 (LBIE=1) は割込
みが発生します。
図 20.7-7 LIN synch break 検出とフラグセットのタイミング
シリアルクロックサイクル #
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
シリアル
クロック
シリアル入力
(LIN バス )
MB90V390HA/
MB90V390HB/
MB90394HA
FRE
(RXE=1)
MB90V390H/
MB90F394H(A)
LBD
(RXE=0)
RXE = 1 の場合に受信割込み発生
RXE = 0 の場合に受信割込み発生
上図は LIN synch break 検出とフラグのタイミングを示しています。
受信が許可されており (RXE = 1), 受信割込みが許可されている (RIE = 1) 場合 , SSR2/
SSR3 の受信データフレームエラー (FRE) フラグビットによって , LIN break 割込みよ
りも 2 ビット時間早く ("8N1") 受信割込みが生成されますから , LIN break が想定され
る場合は RXE をオフにしておくことを推奨します。
381
第 20 章 UART2, UART3
MB90V390H/MB90F394H(A):
LBD は , 動作モード 0 および 3 でだけサポートされています。LIN break が検出さ
れると , 受信エラーフラグ (SSR2/SSR3:FRE,SSR2/SSR3:ORE,SSR2/SSR3:PE) および
受信データレジスタフルフラグ (SSR2/SSR3:RDRF) がクリアされます。
MB90V390HA/MB90V390HB/MB90394HA:
LBD は , 動作モード 3 でだけサポートされています。LIN break が検出されたとき ,
受信エラーフラグ (SSR2/SSR3:FRE,SSR2/SSR3:ORE,SSR2/SSR3:PE) および受信デー
タレジスタフルフラグ (SSR2/SSR3:RDRF) はクリアされません。
図 20.7-8 は , 標準的な LIN メッセージの開始と UART2, UART3 の動作を示しています。
図 20.7-8 LIN スレーブモードでの UART2,UART3 の動作
シリアル
クロック
シリアル入力
(LIN バス )
CPU による LBR クリア
LBD
内部 ICU 信号
382
Synch break (14 ビット設定の場合 )
Synch field
第 20 章 UART2, UART3
● LIN バスタイミング
図 20.7-9 LIN バスタイミングと UART2,UART3 信号
前回のシリアルクロック
クロックなし
( 計算フレーム )
新たに計算されたシリアルクロック
ICU カウント
LIN バス
(SIN2/SIN3)
RXE
LBD
(IRQ0)
LBIE
内部 ICU
信号
IRQ(ICU)
RDRF
(IRQ0)
RIE
CPU による
RDR2/RDR3
読出し
受信割込み許可
LIN break 開始
LIN break 検出 , 割込み発生
CPU による IRQ クリア (LBD → 0)
LBIE 禁止
IRQ (ICU)
IRQ クリア:ICU スタート
IRQ(ICU)
IRQ クリア:ボーレートを計算して設定
受信許可
スタートビットの立下りエッジ
受信データ 1 バイト RDR2/RDR3 に保存
CPU による RDR2/RDR3 読出し
383
第 20 章 UART2, UART3
シリアル端子直接アクセス
20.7.4
送信端子 (SOT2/SOT3) または受信端子 (SIN2/SIN3) へ直接アクセスすることができ
ます。
■ UART2,UART3 端子直接アクセス
UART2,UART3では, プログラマがシリアル入出力端子に直接アクセスすることができ
ます。
シリアル入力端子 (SIN2/SIN3) の状態をシリアル入出力端子直接アクセスビット
(ESCR2/ESCR3:SIOP) で読み出すことができます。
シリアル出力端子 (SOT2/SOT3) への直接書込みを可能 (ESCR2/ESCR3:SOPE=1) にし ,
シリアル入出力端子直接アクセスビット (ESCR2/ESCR3:SIOP) へ "0" または "1" を書き
込んだ後 , シリアル出力を許可 (SMR2/SMR3:SOE=1) にすると , シリアル出力端子
(SOT2/SOT3) の値を任意に設定することができます。
LIN モードの場合は , 送信したデータの読出し , または物理的に LIN バス線信号が間
違っていたときのエラー処理に使用できます。
<注意事項>
• 送信動作中ではない ( 送信シフトレジスタが空 ) 場合のみ直接アクセス可能です。
• 送信を許可 (SMR2/SMR3:SOE=1) する前にシリアル出力端子直接アクセスビット
(ESCR2/ESCR3: SIOP) へ値を書き込んでください。これは , SIOP ビットが以前の値
を保持しているため , 期待しないレベルの信号が出力されることを防ぐためです。
• 通常の読出しで SIN2/SIN3 端子の値が読み出されますが , リードモディファイライト
(RMW) 系命令では SIOP ビットは SOT2/SOT3 端子の値が読み出されます。
384
第 20 章 UART2, UART3
20.7.5
双方向通信機能 ( ノーマルモード )
動作モード 0, 2 で , 通常のシリアル双方向通信をすることができます。動作モード 0
は非同期通信 , 動作モード 2 は同期通信の選択ができます。
■ 双方向通信機能
UART2,UART3 をノーマルモード ( 動作モード 0, 2) で動作させるためには , 図 20.7-10
に示す設定が必要です。
図 20.7-10 UART2,UART3 の動作モード 0, 2 の設定
bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
SCR2/SCR3, SMR2/SMR3
PEN P SBL CL A/D CRE RXE TXE MD1 MD0 OTO EXT REST
UPCL SCKE
SOE
モード 0
モード 2
SSR2/SSR3, TDR2/TDR3, RDR2/RDR3 PE ORE FRE
RDRF TDRE
BDS RIE TIE
変換データの設定 ( 書込み時 )
受信データ保持 ( 読出し時 )
モード 0
モード 2
LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES
ESCR2/ESCR3, ECCR2/ECCR3
LBR MS
SCDE SSM
RBI TBI
モード 0
モード 2
:使用ビット
:未使用ビット
:"1" を設定
:"0" を設定
:SSM = 1 の場合に使用 ( 同期スタート / ストップビットモード )
:自動的に正しく設定されるビット
● CPU 間接続
双方向通信では , 図 20.7-11 に示すように , 2 つの CPU を相互に接続します。
図 20.7-11 UART2,UART3 の動作モード 2 の双方向通信の接続例
SOT
SOT
SIN
出力
SIN
入力
SCK
CPU-1 ( マスタ )
SCK
CPU-2 ( スレーブ )
● 通信手順
通信は , 送信データが準備できたときに送信側から任意なタイミングで開始します。受
信側で送信データを受け取ると , 定期的に ANS ( 例では 1 バイトごと ) を返します。図
20.7-12 に双方向通信フローチャートの一例を示します。
385
第 20 章 UART2, UART3
図 20.7-12 双方向通信フローチャートの例
( 送信側 )
( 受信側 )
スタート
スタート
動作モード設定
(0, 2 いずれか )
動作モード設定
( 送信側と合わせる )
TDR2/TDR3 に 1 バイト
データをセットして通信
データ送信
受信データあり
NO
YES
NO
受信データあり
受信データ読出しと処理
YES
受信データ読出しと処理
データ送信
(ANS)
386
1 バイトデータ送信
第 20 章 UART2, UART3
20.7.6
マスタ / スレーブ型通信機能
( マルチプロセッサモード )
動作モード 1 で , 複数 CPU のマスタ / スレーブモード接続による通信が可能です。
マスタまたはスレーブとして使用できます。
■ マスタ / スレーブ型通信機能
UART2,UART3 をマルチプロセッサモード ( 動作モード 1) で動作させるためには , 図
20.7-13 に示す設定が必要です。
図 20.7-13 UART2,UART3 の動作モード 1 の設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
SCR2/SCR3, SMR2/SMR3
PEN
P
SBL CL A/D CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE
モード 1
SSR2/SSR3, TDR2/TDR3, RDR2/RDR3 PE ORE FRE
RDRF TDRE BDS RIE TIE
変換データの設定 ( 書込み時 )
受信データ保持 ( 読出し時 )
モード 1
ESCR2/ESCR3, ECCR2/ECCR3
LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES
LBR MS SCDE SSM
RBI TBI
モード 1
:使用ビット
:未使用ビット
:"1" を設定
:"0" を設定
:自動的に正しく設定されるビット
● CPU 間接続
マスタ / スレーブ型通信では , 図 20.7-14 に示すように 2 本の共通通信ラインに 1 つの
マスタ CPU と複数のスレーブ CPU を接続して通信システムを構成します。UART2,
UART3 はマスタまたはスレーブのどちらでも使用できます。
図 20.7-14 UART2,UART3 のマスタ / スレーブ型通信の接続例
SOT
SIN
マスタ CPU
SOT
SIN
スレーブ CPU#0
SOT
SIN
スレーブ CPU#1
387
第 20 章 UART2, UART3
● 機能選択
マスタ / スレーブ型通信では , 表 20.7-3 に示すように動作モードとデータ転送方式を選
択してください。
表 20.7-3 マスタ / スレーブ型通信機能の選択
動作モード
マスタ
CPU
スレーブ
CPU
アドレス
送受信
モード 1
(A/D ビット
送受信 )
モード 1
(A/D ビット
送受信 )
データ
送受信
データ
パリティ
同期方式
ストップ
ビット
ビット
方向
なし
非同期
1 ビットまたは
2 ビット
LSB ファースト
または
MSB ファースト
A/D=1
+
7 ビットまたは
8 ビットアドレス
A/D=0
+
7 ビットまたは
8 ビットデータ
● 通信手順
通信はマスタ CPU がアドレスデータを送信することによって始まります。アドレス
データとは A/D ビットを "1" としたデータで , 通信先となるスレーブ CPU を選択しま
す。各スレーブ CPU はプログラムでアドレスデータを判断し , 割り当てられたアドレ
スと一致した場合にマスタ CPU との通信をします。
図 20.7-15 に , マスタ / スレーブ型通信 ( マルチプロセッサモード ) のフローチャート
を示します。
388
第 20 章 UART2, UART3
図 20.7-15 マスタ / スレーブ型通信フローチャート
( マスタ CPU)
( スレーブ CPU)
スタート
スタート
動作モード 1 に設定
動作モード 1 に設定
SIN2/SIN3 端子をシリアル
データ入力に設定
SOT2/SOT3 端子をシリアル
データ出力に設定
SIN2/SIN3 端子をシリアル
データ入力に設定
SOT2/SOT3 端子をポート
入力に設定
7 または 8 データビット設定
1 または 2 ストップビット
設定
7 または 8 データビット設定
1 または 2 ストップビット
設定
A/D ビットに "1" をセット
TXE = RXE = 1 を設定
受信バイト
TXE = RXE = 1 を設定
スレーブへアドレスを
送信
A/D ビット = 1
NO
YES
スレーブアドレス
が一致
A/D ビットに "0" をセット
YES
マスタ CPU と通信
スレーブ CPU と通信
通信終了 ?
NO
通信終了 ?
NO
NO
YES
YES
ほかのスレーブ
CPU と通信
NO
YES
TXE = RXE = 0 を設定
終了
389
第 20 章 UART2, UART3
20.7.7
LIN 通信機能
UART2,UART3 通信で LIN デバイスは , LIN マスタシステムもしくは LIN スレーブ
システムに使用できます。
■ LIN マスタ / スレーブ型通信機能
UART2,UART3の LIN通信モード (動作モード3) に必要な設定を図 20.7-16 に示します。
図 20.7-16 UART2,UART3 の動作モード 3(LIN) 設定
SCR2/SCR3,
SMR2/SMR3
モード 3
PEN
SSR2/SSR3,
TDR2/TDR3,
RDR2/RDR3
モード 3
P
SBL CL
PE ORE FRE
ESCR2/ESCR3,
ECCR2/ECCR3
A/D CRE RXE TXE MD1 MD0 OTO EXT
RDRF TDRE
LBIE LBD LBL1 LBL0 SOPE
BDS RIE TIE
SIOP
CCO SCES
REST UPCL SCKE
SOE
変換データの設定 ( 書込み時 )
受信データ保持 ( 読出し時 )
LBR MS
SCDE SSM
RBI TBI
モード 3
:使用ビット
:不使用ビット
:"1" を設定
:"0" を設定
:自動的に正しく設定されるビット
● LIN デバイス接続
1 つの LIN マスタと LIN スレーブの通信システムを図 20.7-17 で示します。
UART2,UART3 は , LIN マスタまたは LIN スレーブとして動作することができます。
図 20.7-17 LIN バスシステムの通信例
SOT
SOT
LIN バス
SIN
LIN マスタ
390
SIN
トランシーバ
トランシーバ
LIN スレーブ
第 20 章 UART2, UART3
UART2,UART3 の LIN 通信フローチャート例
( 動作モード 3)
20.7.8
UART2,UART3 の LIN 通信フローチャート例を示します。
■ UART2, UART3 の LIN マスタデバイス
図 20.7-18 UART2, UART3 の LIN マスタフローチャート
スタート
初期設定:
動作モードを "3" に設定
シリアルデータ出力許可 , ボーレート設定
Synch break 長設定
TXE = 1, TIE = 0, RXE = 1, RIE = 1
NO
メッセージ ?
( 受信 )
YES
ウェイク
アップ ?
(80H 受信 )
NO
YES
RXE = 0
Synch Break 割込み許可
Synch Break 送信:
ECCR2/ECCR3: LBR = 1
Synch Field 送信:
TDR2/TDR3 = 55H
YES
NO
RDRF = 1
受信割込み
Data Field
受信 ?
Data 1 受信* 1
( 送信 )
送信 Data 1 セット
TDR2/TDR3 = Data 1
送信割込み許可
RDRF = 1
受信割込み
TDRE = 1
送信割込み
Data N 受信* 1
送信 Data N セット
TDR2/TDR3 = Data N
送信割込み禁止
LBD = 1
Synch Break 割込み
RDRF = 1
受信割込み
受信許可
LBD = 0
Synch Break 割込み禁止
Data 1 受信 * 1
Data 1 読出し
RDRF = 1
受信割込み
RDRF = 1
受信割込み
Synch Field 受信 * 1
Identify Field セット : TDR2/TDR3 = lD
Data N 受信 * 1
Data N 読出し
RDRF = 1
受信割込み
ID Field 受信* 1
エラーなし ?
NO
エラー処理* 2
YES
*1: エラーが発生した場合 , エラー処理を行ってください。
*2: ・ FRE, ORE が "1" になっていた場合 , SCR: CRE ビットに "1" を書き込み , エラーフラグをクリアしてください。
・ESCR: LBD ビットが "1" になっていた場合 , UART リセットを実行してください。
( 注意事項 ) 各処理の中でエラー検出を行い , 適切に対処してください。
391
第 20 章 UART2, UART3
■ UART2, UART3 の LIN スレーブデバイス
図 20.7-19 UART2, UART3 の LIN スレーブフローチャート
スタート
初期設定:
動作モードを "3" に設定
シリアルデータ出力許可
TXE = 1, TIE = 0, RXE = 0, RIE = 1
UART と ICU の接続
受信禁止
ICU 割込み許可
Synch Break 割込み許可
LBD = 1
Synch Break 割込み
Synch Break 検出クリア
ECCR2/ECCR3: LBD = 0
Synch Break 割込み禁止
ICU 割込み
ICU データ読出し
ICU 割込みフラグクリア
ICU 割込み
NO
YES
( 受信 )
( 送信 )
Data Field
受信 ?
RDRF = 1
受信割込み
Data 1 受信* 1
送信 Data 1 セット
TDR2/TDR3 = Data 1
送信割込み許可
RDRF = 1
受信割込み
TDRE = 1
送信割込み
Data N 受信* 1
送信 Data N セット
TDR2/TDR3 = Data N
送信割込み禁止
受信禁止
RDRF = 1
受信割込み
ICU データ読出し
ボーレート調整
受信許可
ICU 割込みフラグクリア
ICU 割込み禁止
Data 1 受信 * 1
Data 1 読出し
RDRF = 1
受信割込み
RDRF = 1
受信割込み
Data N 受信 * 1
Data N 読出し
受信禁止
Identify Field 受信* 1
NO
エラー処理* 2
エラーなし ?
YES
NO
スリープ
モード ?
YES
ウェイクアッ
プ受信 ?
YES
*1: エラーが発生した場合 , エラー処理を行ってください。
*2: ・FRE, ORE が "1" になっていた場合 , SCR: CRE ビットに "1" を
書き込み , エラーフラグをクリアしてください。
・ESCR: LBD ビットが "1" になっていた場合 , UART リセットを
実行してください。
( 注意事項 ) 各処理の中でエラー検出を行い , 適切に対処してください。
392
NO
ウェイクアッ
プ送信 ?
YES
NO
ウェイクアップ
コード送信
第 20 章 UART2, UART3
20.8
UART2, UART3 使用上の注意
UART2,UART3 を使用する場合の注意点を示します。
■ UART2,UART3 使用上の注意
● 動作許可
UART2,UART3 には送信 , 受信のそれぞれに対してシリアル制御レジスタ (SCR2/SCR3)
に TXE ( 送信 ), RXE ( 受信 ) の動作許可ビットがあります。デフォルト ( 初期値 ) では ,
送受信とも動作禁止であるため , 通信前に動作を許可する必要があります。ビットを禁
止にすることで動作も解除できます。
● 通信モードの設定
通信モードの設定は , UART2,UART3 の動作停止中に行ってください。送受信中にモー
ド設定をした場合 , 送受信は停止し , そのとき送受信されたデータは保証されません。
● 送信割込み許可のタイミング
送信データエンプティフラグビット (SSR2/SSR3:TDRE) はデフォルト ( 初期値 ) が "1"
( 送信データなし , 送信データ書込み許可 ) であるため , 送信割込み要求を許可 (SSR2/
SSR3:TIE=1) すると , 直ちに送信割込み要求が発生します。これを避けるため , 必ず送
信データを設定してから TIE フラグを "1" にしてください。
● スタートビット同期
MB90V390H/MB90F394H(A):
非同期モードでは , スタートビットはレベルにより検出されます。SCR2/SCR3: RXE
ビットが "1" に設定されて , シリアルデータ入力 SIN2/SIN3 が "0" の場合は , 直ちにス
タートビットが検出されます。
非同期モードでは , SCR2/SCR3: RXE ビットが "0" に設定されていても受信スタート
ビットを記憶します。これにより , SCR2/SCR3: RXE ビットが再び "1" に設定された後 ,
すぐに受信を開始します。動作環境として , SCR2/SCR3: RXE ビットを "0" に設定して
から SMR2/SMR3: UPCL ビットに "1" を書き込むことにより UART2,UART3 をリセッ
トします。
MB90V390HA/MB90V390HB/MB90394HA:
非同期モードでは , スタートビットはエッジにより検出されます。SCR2/SCR3: RXE
ビットが "1" に設定されて SIN2/SIN3 が "0" の場合 , スタートビットはシリアルデータ
入力 SIN2/SIN3 の次の立下りエッジの前に検出されません。
非同期モードでは SCR2/SCR3: RXE ビットが "0" に設定後 , 受信スタートビットが記憶
されません。SCR2/SCR3: RXE ビットが再び "1" に設定されたときにスタートビットを
検出すると受信を開始します。
393
第 20 章 UART2, UART3
● LIN 動作モード 3 の使用
LIN 機能はモード 3 ( 送受信 Synch break) で使用可能ですが , モード 3 では自動的に LIN
フォーマットの設定 (8N1, LSB ファースト ) になります。
LIN break の送信ビット長は可変ですが , 受信は 11 ビット長固定になっています。
<注意事項>
LIN 動作中は , ESCR2/ESCR3 レジスタの SCES ビットを "0" に設定してください。
● 動作設定の変更
スタート / ストップビットの付加またはデータフォーマットを変更した場合など , 設定
を変更した後には UART2,UART3 のリセットを強くお勧めします。
<注意事項>
シリアルモードレジスタ (SMR2/SMR3) の設定にあたり UART2,UART3 をリセットする
ために同時に UPCL ビットを設定しても意味がありません。この場合正しい動作設定は保
証されません。そのため , シリアルモードレジスタ (SMR2/SMR3) のビット設定を行った
後 , 再度 , UART2,UART3 をリセット (SMR2/SMR3:UPCL=1) することを推奨します。
● LIN スレーブ設定
スレーブ動作の最初のLIN synch breakを受信する前にボーレートを設定してください。
さもないと , Synch break の期間は最小限必要な LIN 仕様 (13 マスタビットおよび 11 ス
レーブビット分 ) に対して正確に判断できません。
● プログラムの互換性
UART2,UART3 がほかの UART と類似していますが , プログラムの互換性はありませ
ん。プログラミングの型は同じときもありますが , レジスタの構造は異なります。さら
に , ボーレートの設定はあらかじめ設定された値を選出する代わりにリロード値に
よって現在決定されます。
● バスアイドル機能
バスアイドル機能は同期モード 2 および SSM=0 では使用できません。
394
第 20 章 UART2, UART3
● A/D ビット ( シリアル制御レジスタ (SCR2/SCR3):アドレス / データ形式選択ビット )
こ の ビ ッ ト の 動 作 は MB90V390H/MB90F394H(A) と MB90V390HA/MB90V390HB/
MB90394HA で異なります。
MB90V390H/MB90F394H(A):
シリアル制御レジスタのA/Dビット (マルチプロセッサモード1のアドレスデータビッ
ト ) を使用する場合は特に注意してください。A/D ビットに書き込むことで送信を設
定しますが , このビットの読出しで最後に受信した A/D ビットを返すので , A/D ビット
は制御とフラグの両方のビットとして使用します。受信 / 送信の A/D ビットの値は内
部的に別々のレジスタに保存されています。ただし , リードモディファイライト (RMW)
系命令使用時は , 受信の A/D ビットの値が読み出され , それをモディファイした値が送
信の A/D ビットに書き込まれます。これにより , 同一のレジスタのビットのうちどれ
か 1 つを命令によってアクセスすると , A/D ビットに間違った値を書き込みます。
したがって , 送信前にこのビットは最後のレジスタアクセスで書き込まれる必要があ
ります。また , バイトアクセス時およびすべてのビットに正しい値を書き込むことで上
記の問題を防ぐことができます。
さらに , A/D ビットは送信データレジスタのようにバッファされません。送信中にビッ
トを変更することにより現在送信しているデータの A/D ビットを変更できます。
MB90V390HA/MB90V390HB/MB90394HA:
• A/D ビットに書き込むことで送信を設定しますが , このビットの読出しで最後に受
信した A/D ビットを返すので , A/D ビットは制御とフラグの両方のビットとして使
用します。送受信 A/D ビット値を異なったレジスタの内部に格納します。リードモ
ディファイライト (RMW) 系命令を使用すると A/D ビットの送信が読み出され , 受
信 A/D データはほかの読出しとして読み出されます。
• TDRE ビットが "0" から "1" になり , 送信が開始すると A/D ビットの送信が送信デー
タレジスタ (TDR2/TDR3) のデータとあわせて送信シフトレジスタにロードされま
す。したがって , 送信データレジスタ (TDR2/TDR3) に書き込む前に A/D ビットを送
信に設定してください。
● UART2,UART3 ソフトウェアリセット
シリアル制御レジスタ (SCR2/SCR3) の TXE ビットが "1" のときに , LIN-UART ソフト
ウェアリセット (SMR2/SMR3: UPCL = 1) を実行してください。
● LIN Synch field 待ち状態
MB90V390H/MB90F394H(A):
モード 0 および 3 では , シリアル入力が 11 ビット以上 "0" に保持されていれば , ESCR2/
ESCR3 レジスタの LBD ビットが "1" に設定されます。LBD が "1" に設定されたときに ,
受信エラーフラグ (SSR2/SSR3:FRE, SSR2/SSR3:ORE, SSR2/SSR3:PE) と受信データレ
ジスタフルフラグ (SSR2/SSR3:RDRF) がクリアされます。UART2,UART3 は次に受信
される Synch field を待ちます。UART2,UART3 が Synch break 以外の理由でこの状態に
設定されると , ソフトウェアリセット (SMR2/SMR3: UPCL=1) で初期化される必要が
あります。
MB90V390HA/MB90V390HB/MB90394HA:
モード 3 では (LIN 動作 ), シリアル入力が 11 ビット以上 "0" に保たれていれば , ESCR2/
ESCR3 レジスタの LBD ビットが "1" に設定されます。UART2,UART3 は次に受信され
る Synch field を待ちます。UART2,UART3 が Synch break 以外の理由でこの状態に設定
されると , ソフトウェアリセット (SMR2/SMR3: UPCL=1) で初期化される必要があり
ます。
395
第 20 章 UART2, UART3
396
第 21 章
2
400 kHz I C インタフェース
I2C インタフェースの概要 , レジスタの構成 / 機能
および I2C インタフェースの動作について説明し
ます。
( 注意事項 )
I2C インタフェースはすべての MB90390 シリーズ
で有効ではありません。
21.1 I2C インタフェースの概要
21.2 I2C インタフェースのレジスタ
21.3 I2C インタフェースの動作
21.4 プログラミングフローチャート
397
第 21 章 400 kHz I2C インタフェース
21.1
I2C インタフェースの概要
I2C インタフェースは , 内部 IC BUS をサポートするシリアル I/O ポートです。I2C
バス上のマスタ / スレーブデバイスとして動作します。
■ I2C インタフェースの機能
• マスタ / スレーブ送受信
• アービトレーション機能
• クロック同期化機能
• ゼネラルコールアドレス検出機能
• 転送方向検出機能
• スタートコンディションの繰り返し発生および検出機能
• バスエラー検出機能
• 7 ビットマスタ / スレーブアドレッシング
• 10 ビットマスタ / スレーブアドレッシング
• 7 ビット , 10 ビットスレーブアドレスへのインタフェース可能
• スレーブアドレス受信でのアクノリッジを禁止可能 ( マスタのみの動作中 )
• 一部のスレーブアドレスとのインタフェースをアドレスマスク
(7 ビット , 10 ビットモード中 )
• 400K バイトまでの転送レート
• SDA, SCL の内蔵ノイズフィルタを使用可能
• プリスケーラ設定とは関係なく , マシンクロックが 6 MHz 以上の場合 , 400 K バイ
トで受信可能
• 転送とバスエラーイベント上で MCU 割込みの発生可能
• ビット , バイトレベルでのスレーブアドレスによるスローダウンをサポート
プリスケーラ設定とは関係なく , マシンクロックが 6 MHz 以上の場合 , データ受信が
400 K バイトレートに達するまでの間 , I2C インタフェースはビットレベルでの SCL ク
ロックの伸長をサポートしません。ただし , 割込み中 (IBCR レジスタ中で INT = 1) に
SCL が "L" レベルである間は , バイトレベルでのクロック伸長が実行されます。
398
第 21 章 400 kHz I2C インタフェース
■ I2C インタフェースのブロックダイヤグラム
図 21.1-1 に , I2C インタフェースのブロックダイヤグラムを示します。
図 21.1-1 I2C インタフェースのブロックダイヤグラム
ICCR
I2C 許可
EN
クロック分周器 1
2 3 4 5 ... 32
ICCR
CS4
CS3
5
CS2
5
クロックセレクタ
同期
CS1
クロック分周器 2 (12 分周 )
SCL デューティ周期発生器
CS0
IBSR
BB
シフトクロック発生器
バスビジー
連続スタート
RSC
最終ビット
LRB
送信 / 受信
バスオブザーバ
バスエラー
TRX
アドレスデータ
ADT
アービトレーション
ロスト検知器
AL
ICCR
NSF
内部データバス
IBCR
許可
BER
BEIE
MCU
IRQ
割込み要求
INTE
INT
ノイズ
フィルタ
SCL
SDA
SCL
SDA
IBCR
SCC
MSS
ACK
GCAA
開始
スタートストップ
コンディション発生器
マスタ
ACK 許可
GC-ACK 許可
ACK 発生器
8
IBSR
AAS
IDAR
8
スレーブ
汎用コール
GCA
ISMK 7 ビットモード許可
ENSB
スレーブアドレス
コンパレータ
ITMK
10 ビットモード許可
ENTB
アドレス長受信
RAL
10
7
10
ITBA
ITMK
7
ISBA
ISMK
10
10
7
7
399
第 21 章 400 kHz I2C インタフェース
21.2
I2C インタフェースのレジスタ
I2C インタフェースで使用するレジスタの構成および機能について説明します。
■ I2C インタフェースのレジスタ一覧
バス制御レジスタ (IBCR)
アドレス
0035A1H
bit 15
BER
R/W
14
13
12
11
10
9
8
BEIE
R/W
SCC
W
MSS
R/W
ACK
R/W
GCAA
R/W
INTE
R/W
INT
R/W
6
5
4
3
2
1
0
RSC
R
AL
R
LRB
R
TRX
R
AAS
R
GCA
R
ADT
R
IBCR
初期値
00000000B
バスステータスレジスタ (IBSR)
アドレス
0035A0H
bit 7
BB
R
IBSR
初期値
00000000B
10 ビットスレーブアドレスレジスタ (ITBA)
bit 15
0035A3H
0035A2H
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
−
−
−
−
TA9
R/W
TA8
R/W
bit 7
6
5
4
3
2
1
0
TA6
R/W
TA5
R/W
TA4
R/W
TA3
R/W
TA2
R/W
TA1
R/W
TA0
R/W
TA7
R/W
ITBAH ( 上位 )
初期値
00000000B
ITBAL ( 下位 )
初期値
00000000B
10 ビットスレーブアドレスマスクレジスタ (ITMK)
0035A5H
bit 15
14
13
12
11
10
9
8
ENTB
R/W
RAL
R/W
−
−
−
−
−
−
−
−
TM9
R/W
TM8
R/W
6
5
4
3
2
1
0
TM6
R/W
TM5
R/W
TM4
R/W
TM3
R/W
TM2
R/W
TM1
R/W
TM0
R/W
bit 7
0035A4H
TM7
R/W
ITMKH ( 上位 )
初期値
00111111B
ITMKL ( 下位 )
初期値
11111111B
7 ビットスレーブアドレスレジスタ (ISBA)
アドレス
0035A6H
R/W
R
W
-
bit 7
−
−
6
5
4
3
2
1
0
SA6
R/W
SA5
R/W
SA4
R/W
SA3
R/W
SA2
R/W
SA1
R/W
SA0
R/W
ISBA
初期値
00000000B
: リード / ライト可能
: リードオンリ
: ライトオンリ
: 不定
( 続く )
400
第 21 章 400 kHz I2C インタフェース
( 続き )
7 ビットスレーブアドレスマスクレジスタ (ISMK)
アドレス
0035A7H
bit 15
ENSB
R/W
14
13
12
11
10
9
8
SM6
R/W
SM5
R/W
SM4
R/W
SM3
R/W
SM2
R/W
SM1
R/W
SM0
R/W
6
5
4
3
2
1
0
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
ISMK
初期値
01111111B
データレジスタ (IDAR)
アドレス
0035A8H
bit 7
D7
R/W
IDAR
初期値
00000000B
クロックコントロールレジスタ (ICCR)
アドレス
0035ABH
bit 15
−
−
14
13
12
11
10
9
8
NSF
R/W
EN
R/W
CS4
R/W
CS3
R/W
CS2
R/W
CS1
R/W
CS0
R/W
ICCR
初期値
00011111B
ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR)
アドレス
0035A9H
bit 15
−
−
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
−
−
SEL1
R/W
SEL0
R/W
INFCR
初期値
XXXXXX01B
R/W : リード / ライト可能
: 不定
401
第 21 章 400 kHz I2C インタフェース
21.2.1
I2C バスステータスレジスタ (IBSR)
I2C バスステータスレジスタ (IBSR) の構成および機能について説明します。
• バスビジー検知
• 繰返し開始状態検知
• アービトレーションロスト検知
• アクノリッジ検知
• データ転送検知表示
• スレーブ検知のアドレッシング
• 汎用コールアドレス検知
• アドレスデータ転送検知
■ I2C バスステータスレジスタ (IBSR)
このレジスタは読出しのみ可能です。全ビットはハードウェアで制御されています。イ
ンタフェースが不可の場合 (ICCR 中の EU = 0), 全ビットはクリアされます。
図 21.2-1 バスステータスレジスタの構成 (IBSR)
アドレス bit 7
0035A0H
6
5
4
3
BB
RSC
AL
LRB
TRX AAS
2
R
R
R
R
R
R
1
0
GCA
ADT
R
R
IBSR
初期値
0 0 0 0 0 0 0 0B
bit 0
ADT
アドレスデータ転送ビット
0
入力データはアドレスデータ以外 ( バス非使用 )
1
入力データはアドレスデータ
bit 1
汎用コールアドレス
GCA
0
スレーブ外として受信した汎用コールアドレス
1
スレーブとして受信した汎用コールアドレス
bit 2
AAS
スレーブビットとしてのアドレッシング
0
スレーブとしてアドレスされていない
1
スレーブとしてアドレスされている
bit 3
転送データビット
TRX
0
転送データなし
1
転送データ
bit 4
LRB
最終受信ビット
0
レシーバはアクノリッジしていない
1
レシーバはアクノリッジしている
bit 5
AL
アービトレーションロストビット
0
アービトレーションロスト検知なし
1
アービトレーションロスト検知あり
bit 6
RSC
連続スタートコンディションビット
0
連続スタートコンディションの検知なし
1
連続スタートコンディションの検知あり
bit 7
BB
R
:
リードオンリ
: 初期値
402
バスビジービット
0
ストップコンディション検知 ( バスアイドル )
1
スタートコンディション検知 ( バス使用中 )
第 21 章 400 kHz I2C インタフェース
■ I2C バスステータスレジスタ (IBSR) の内容
表 21.2-1 I2C バスステータスレジスタ (IBSR) の機能 (1 / 2)
ビット名
機 能
bit7
BB:
バスビジー
ビット
このビットは , I2C バスの状態を示すビットです。
"0": ストップコンディションを検出した ( バスは使用されていない )。
"1": スタートコンディションを検出した ( バスは使用されている )。
開始状態が検知されると , このビットは "1" に設定されます。ストップ
状態でリセットされます。
bit6
RSC:
繰返しスタート
コンディション
ビット
このビットは , 繰返しスタートコンディション検出ビットです。
"0": 繰返しスタートコンディションは検出されていない。
"1": バス使用中に , 再びスタートコンディションを検出した。
このビットは , アドレスデータ送信の完了 (ADT= 0) またはストップコ
ンディション検出でクリアされます。
AL:
アービトレー
ションロスト
ビット
このビットは , アービトレーションロスト検出ビットです。
"0": アービトレーションロスト検出はされていない。
"1": マスタ送信中にアービトレーションロストの発生を検出した。
このビットは , INT ビットに "0" を書き込むか , IBCR レジスタ中の
MSS ビットに "1" を書き込むことでクリアされます。
下記のような場合 , アービトレーションロストが発生します。
- SCL 立上りエッジで , 送信データが SDA 行の読出しデータと一致し
ない場合
- ほかのマスタにより , 繰返しスタートコンディションがデータバイト
の 1 ビット目で発生した場合
- ほかのスレーブが SCL 行を "L" レベルにするために , インタフェー
スがスタート / ストップコンディションを発生できない場合
LRB:
最終受信ビット
このビットは , アクノリッジ格納ビットです。受信側からのアクノリッ
ジを格納します。
"0": 受信側アクノリッジ
"1": 受信側アクノリッジ不可
このビットは , bit9( アクノリッジビット ) の待機中にハードウェアで変
更され , スタート / ストップコンディションでクリアされます。
bit5
bit4
403
第 21 章 400 kHz I2C インタフェース
表 21.2-1 I2C バスステータスレジスタ (IBSR) の機能 (2 / 2)
ビット名
機 能
bit3
TRX:
転送データ
ビット
このビットは , データ転送の動作を示すビットです。
"0": データ転送されていない。
"1": データ転送された。
下記の場合に , このビットは "1" になります。
- マスタモード中にスタートコンディションが発生した場合
- 開始ビットの転送 , スレーブとしてのデータ読出しやマスタとしての
データ送信が完了した場合
下記の場合に , このビットは "0" になります。
- バスがアイドル状態 (BB=0) の場合
- アービトレーションロストが発生した場合
- マスタ割込み中 (MSS = 1, INT = 1) に SCC ビットに "1" が書き込ま
れた場合
- マスタ割込み中 (MSS = 1, INT = 1) に MSS ビットがクリアされた
場合
- インタフェースがスレーブモード中で , 最終転送バイトがアクノリッ
ジされなかった場合
- インタフェースがスレーブモード中にデータを受信した場合
- インタフェースがマスタモード中にスレーブからのデータを読み出
した場合
bit2
AAS:
スレーブビット
としての
アドレッシング
このビットは , スレーブ時のアドレッシング検出ビットです。
"0": スレーブ時に , アドレッシングされていない。
"1": スレーブ時に , アドレッシングされた。
このビットは , スタートコンディションまたはストップコンディション
の検出でクリアされます。インタフェースが 7 ビットや 10 ビットのス
レーブアドレスを検知したときに設定されます。
このビットは , ゼネラルコールアドレス (00H) 検出ビットです。
"0": スレーブ時に , ゼネラルコールアドレスは受信されていない。
"1": スレーブ時に , ゼネラルコールアドレスを受信した。
このビットは , スタートコンディションまたはストップコンディション
の検出でクリアされます。
bit1
GCA:
汎用コール
アドレス
bit0
このビットは , アドレスデータ転送の検出ビットです。
"0": 受信データがアドレスデータ以外である ( またはバスが使用されて
いない ) 。
"1": 受信データがアドレスデータである。
このビットは , スタートコンディションで "1" にセットされます。書込
みアクセスの 10 ビットスレーブアドレスヘッダが検知された場合 , 第
ADT:
2 バイトの後にクリアされます。その他の場合は , 第 1 バイトの後にク
アドレス
リアされます。
データ転送ビッ 「第 1 バイト /2 バイトの後に」とは , 下記を意味します。
ト
- マスタ割込み中 (IBCR 中の MSS = 1, INT = 1) に , MSS ビットに "0"
が書き込まれる
- マスタ割込み中 (IBCR 中の MSS = 1, INT = 1) に , SCC ビットに "1"
が書き込まれる
- INT ビットがクリアされる
- インタフェースが , マスタ , スレーブのカレント転送と関係していな
いときに全バイト転送を開始
404
第 21 章 400 kHz I2C インタフェース
21.2.2
I2C バス制御レジスタ (IBCR)
I2C バス制御レジスタ (IBCR) には下記の機能があります。
• I2C 割込み許可フラグ
• I2C 割込み発生フラグ
• I2C バスエラー検知フラグ
• I2C 繰返しスタートコンディション発生
• I2C マスタ / スレーブモード選択
• I2C ゼネラルコールアクノリッジ発生許可
• I2C データバイトアクノリッジ発生許可
■ I2C バス制御レジスタ (IBCR)
このレジスタへの書込みアクセスは , INT = 1 の間か , 転送が開始された場合にのみ
行ってください。ACK や GCAA ビットの変更が結果としてバスエラーとなった場合 ,
ユーザはデータの転送中にこのレジスタに書込みしてはいけません。インタフェース
が禁止の場合 (ICCR 中の EN = 0), このレジスタ中の全ビット (BER と BEIE ビットは
除く ) はクリアされます。
405
第 21 章 400 kHz I2C インタフェース
図 21.2-2 バス制御レジスタの構成
アドレス bit 15
0035A1H
14
13
12
BER BEIE SCC MSS
11
10
9
ACK GCAA INTE
8
IBCR
初期値
INT
R/W R/W W R/W R/W R/W R/W R/W
00000000B
bit 8
割込みビット
INT
0
1
詳細は以降の表を参照。
bit 9
割込み許可ビット
INTE
0
割込み禁止
1
割込み許可
bit 10
GCCA
汎用コールアドレスアクノリッジビット
0
汎用コールアドレスにアクノリッジなし
1
汎用コールアドレスでアクノリッジあり
bit 11
アクノリッジビット
ACK
0
データバイト受信にアクノリッジなし
1
データバイト受信でアクノリッジあり
bit 12
MSS
マスタ / スレーブ選択ビット
0
スレーブモード
1
マスタモード ( 詳細は以降の表を参照 )
bit 13
SCC
スタートコンディション継続ビット
0
書込み : 効果なし
1
書込み : 連続スタートコンディション発生
bit 14
BEIE
バスエラー割込み許可ビット
0
バスエラー割込み禁止
1
バスエラー割込み許可
bit 15
R/W
: リード / ライト可能
: 初期値
406
BER
バスエラービット
0
書込み時
バスエラークリア
読出し時
エラー検知なし
1
効果なし
エラー検知あり
第 21 章 400 kHz I2C インタフェース
■ バス制御レジスタ (IBCR) の内容
表 21.2-2 バス制御レジスタ (IBCR) の内容の機能 (1 / 3)
ビット名
bit15
bit14
bit13
機能
BER:
バスエラー
ビット
このビットは , バスエラー割込み要求フラグです。ハードウェアで設定
され , ユーザによりクリアされます。リードモディファイライト
(RMW) 系命令時には , このビットは常に "1" を読み出します。
( 書込み時 )
"0": バスエラー割込み要求フラグをクリアする。
"1": 関係なし。
( 読出し時 )
"0": バスエラーは検出されていない。
"1": データ転送中に , 不正なスタート , ストップコンディションを検出
した。
このビットがセットされた場合 , ICCR レジスタの EN ビットはクリア
されて I2C インタフェースは停止状態になり , データ転送は中断されま
す。そして , IBSR と IBCR レジスタ中のすべてのビット (BER と BEIE
除く ) はクリアされます。BER ビットは , インタフェースが再動作可能
になる前に , クリアされなければいけません。
下記の場合 , このビットは "1" になります。
- スタート / ストップコンディションが間違った場所 ( アドレスデータ
転送中や bit2 ~ bit9( アクノリッジビット ) の転送中 ) で検知される。
- 読出しアクセスの 10 ビットアドレスヘッダが , 10 ビット書込みアク
セスの前に受信される。
BEIE:
バスエラー
割込み許可
ビット
このビットは , バスエラー割込み許可ビットです。ユーザによってのみ
変更可能です。
"0": バスエラー割込み禁止。
"1": バスエラー割込み許可。
このビットが "1" のときに BER ビットが "1" ならば MCU 割込みを発生
します。
SCC:
スタート
コンディション
継続ビット
このビットは , スタートコンディション発生ビットです。書込みのみで
す。このビットの読出し値は常に "0" です。
( 書込み時 )
"0": 関係なし。
"1": マスタ転送時に再びスタートコンディションを発生させる。
マスタモード (MSS = 1, INT = 1) の割込み中にこのビットに "1" が書
き込まれた場合 , 繰返しスタートコンディションが発生し , INT ビット
が自動的にクリアされます。
407
第 21 章 400 kHz I2C インタフェース
表 21.2-2 バス制御レジスタ (IBCR) の内容の機能 (2 / 3)
ビット名
bit12
bit11
bit10
408
機能
MSS:
マスタ / スレー
ブ選択ビット
このビットは , マスタ / スレーブの選択ビットです。このビットはユー
ザによってのみ設定されますが , クリアはユーザおよびハードウェアで
可能です。
"0": スレーブモードとなる。
"1": マスタモードとなり , スタートコンディションを発生し , IDAR レジ
スタにおけるアドレスデータの転送を開始する。
このビットは , マスタ送信中にアービトレーションロストが発生し
た場合にクリアされる。
マスタモード (MSS = 1, INT = 1) の割込み中に "0" が書き込まれた場
合 , INT ビットが自動的にクリアされ , ストップ条件が発生し , データ
転送が完了します。IBSR レジスタの BB ビットのポーリングでストッ
プ条件発生をチェックできます。ただし , MSS ビットが即時にリセット
されることに注意してください。
バスがアイドル中 (MSS = 0, BB = 0) に "1" が書き込まれた場合 , ス
タート条件が発生し , IDAR レジスタ ( アドレスデータ ) の内容が送信さ
れます。
バスの使用中 (IBSR 中の BB = 1, TRX = 0, IBCR 中の MSS = 0) に
MSS ビットに "1" が書き込まれた場合 , インタフェースはバスがフリー
になり , スタートが送信されるまで待機されます。
一方でインタフェースがスレーブとして書込みアクセス ( データ受信 )
でアドレスされた場合 , 転送終了後に送信が開始し , 再びバスがフリー
になります。IBSR の AAS が "1", TRX が "1" の間にインタフェースがス
レーブとしてのデータを送信する場合は , データの転送は開始されずに
再びバスがフリーになります。インタフェースがスレーブとしてアドレ
スされているか (IBSR の AAS = 1), データバイトの送信が成功してい
るか (IBCR の MSS = 1), 次の割込み時にデータバイト (IBSR の AL=1)
送信が失敗しているかをチェックすることが重要です。
ACK:
アクノリッジ
ビット
このビットは , データを受信した場合のアクノリッジ発生許可ビットで
す。このビットはユーザによってのみ変更可能です。
"0": アクノリッジは発生しない。
"1": アクノリッジが発生する。
このビットは , スレーブにおけるアドレスデータ受信時には無効となり
ます。
インタフェースが 7 ビットか 10 ビットのスレーブアドレスを検知した
場合 , 対応許可ビット (ITMK の ENTB, ISMK の ENSB) が設定されてい
るかどうかをアクノリッジします。
割込み中 (INT = 1) またはバスがアイドル (IBSR レジスタの BB = 0) の
みの場合に , このビットへの書込みアクセスが発生します。
GCAA:
汎用コール
アドレス
アクノリッジ
ビット
このビットは , ゼネラルコールアドレスを受信した場合のアクノリッジ
発生許可ビットです。このビットはユーザによってのみ変更可能です。
"0": アクノリッジは発生しない。
"1": アクノリッジが発生する。
割込み中 (INT = 1), バスがアイドル中 (IBSR レジスタの BB = 0) また
はインタフェースが禁止 (ICCR レジスタの EN = 0) のみの場合に , この
ビットへの書込みアクセスが発生します。
第 21 章 400 kHz I2C インタフェース
表 21.2-2 バス制御レジスタ (IBCR) の内容の機能 (3 / 3)
ビット名
bit9
bit8
機能
INTE:
割込み許可
ビット
このビットは , MCU 割込み許可ビットです。このビットはユーザによっ
てのみ変更可能です。
"0": 割込み禁止
"1": 割込み許可
このビットが "1" のとき INT ビットが "1" ならば , ハードウェアにより
MCU 割込みが発生します。
INT:
割込みフラグ
ビット
このビットは , 転送終了割込み要求フラグビットです。このビットは
ハードウェアによって変更され , ユーザによってクリアできます。
リードモディファイライト (RMW) 系命令時は , このビットの読出し値
は常に "1" です。
( 書込み時 )
"0": 転送終了割込み要求フラグをクリアする。
"1": 関係なし。
( 読出し時 )
"0": 転送が終了していないか , カレント転送と関係していない , または
バスがアイドル状態。
"1": アクノリッジビットを含めた 1 バイト転送 , または受信が終了した
ときに次の条件に該当する場合セットされます。
・バスマスタである。
・アドレスされたスレーブである。
・ゼネラルコールアドレスを受信した。
・アービトレーションロストが発生した。
デバイスがスレーブとしてアドレスされている場合 , アクノリッジビッ
トを含めてアドレスデータ受信の終了 (7 ビット受信の場合は第 1 ビッ
トの後 , 10 ビット受信の場合は第 2 ビットの後 ) に設定してください。
このビットが "1" の間 , SCL 行は "L" レベル信号を保持します。この
ビットへ "0" を書き込むことで設定がクリアされ , SCL 行が開放され ,
次バイトや発生したスタート / ストップコンディションが転送されま
す。さらに , SCC ビットへの "1" の書込みや MSS ビットがクリアされ
た場合に , このビットはクリアされます。
409
第 21 章 400 kHz I2C インタフェース
■ SCC, MSS , INT ビット競合
SCC, MSS, INT ビットの競合について , 以下の注意が必要です。
SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , スタートコンディション発
生およびストップコンディション発生の競合が起こります。この場合の優先度は , 次の
ようになります。
● 次のバイト転送とストップコンディション発生
INT ビットに "0", MSS ビットに "0" を書き込むと MSS ビットの "0" 書込みが優先され ,
ストップコンディションが発生します。
● 次のバイト転送とスタートコンディション発生
INT ビットに "0", SCC ビットに "1" を書き込むと SCC ビットの "1" 書込みが優先され , ス
タートコンディションが発生し , IDAR レジスタのデータが転送されます。
● スタートコンディション発生とストップコンディション発生
SCC ビットに "1", MSS ビットに "0" を書き込むと MSS ビットのクリアが優先され , ス
トップコンディションが発生し , インタフェースがスレーブモードになります。
<注意事項>
• 本 LSI のほかにマスタモードとなるほかの LSI がバス上に存在する場合 , 本 LSI をマス
タモードで使用できません (MB90F394H(A), MB90V390H)。
- 使用可能な構成例
I2Cバス
MB90F394H
MB90V390H
スレーブA
スレーブB
マスタ
I2Cバス
MB90F394H
MB90V390H
スレーブA
マスタA
スレーブ
- 使用できない構成例
I2Cバス
MB90F394H
MB90V390H
スレーブA
マスタA
マスタ
• MB90F394H(A) と MB90V390H 以外のデバイスを使用する場合の注意
デバイスを以下の条件で使用する場合 , スレーブとして受信できません。よって , ゼネ
ラルコールアドレスの送信を禁止します。
- MB90390 シリーズ以外のバス上にほかのマスタモード LSI があり , MB90390 シリー
ズではゼネラルコールアドレスをマスタとして送信し , 第 2 バイトの後にアービト
レーションロストが発生する条件
410
第 21 章 400 kHz I2C インタフェース
図 21.2-3 と図 21.2-4 に示したタイミングでスタートコンディションを発生させる命
令を実行 (MMS ビットに "1" を設定 ) すると , アービトレーションロスト検出 (AL ビッ
ト= 1) による割込み (INT ビット= 1) が発生しません。
• AL ビット= 1 検出による割込み (INT ビット= 1) が発生しない条件 1
スタートコンディション未検出 (BB ビット= 0) 状態で , SDA 端子または SCL 端子レ
ベルが "L" のときに , スタートコンディションを発生させる命令を実行 (IBCR レジス
タの MSS ビットに "1" を設定 ) した場合
図 21.2-3 AL ビット= 1 検出による割込みが発生しないタイミング図
SCL端子
SCL端子かSDA端子が"L"レベル
SDA端子
"L"
"L"
I2C動作許可状態 (ENビット=1)
マスタモード設定 (MSSビット=1)
1
アービトレーションロスト検出 (ALビット=1)
バスビジー (BBビット)
0
割込み (INTビット)
0
411
第 21 章 400 kHz I2C インタフェース
• AL ビット= 1 検出による割込み (INT ビット= 1) が発生しない条件 2
ほかのマスタに I2C バスが占有されている状態で , I2C 動作許可 (EN ビット= 1) して
スタートコンディションを発生させる命令を実行 (IBCR レジスタの MSS ビットに "1"
を設定 ) した場合
図 21.2-4 に示したとおり , I2C が動作禁止 (EN ビット= 0) の状態で , I2C バス上のほ
かのマスタが通信を開始すると , スタートコンディション未検出 (BB ビット =0) で I2C
バスが占有されている状態になるためです。
図 21.2-4 AL ビット= 1 検出による割込みが発生しないタイミング図
開始条件
9クロック目でINTビット割込みが
発生しない
終了条件
SCL端子
SDA端子
スレーブアドレス
ACK
DAT
ACK
ENビット
MSSビット
ALビット
0
BBビット
0
INTビット
上記のような現象が発生する可能性がある場合には , 以下の手順でソフト処理をお願
いします。
1) スタートコンディションを発生させる命令を実行 (MSS ビットに "1" を設定 )
2) タイマ機能などを用いて , ICCR レジスタに設定されている I2C 転送周波数での
3 ビットデータ送信時間を待つ。*
例: I2C 転送周波数 100 kHz の場合
3 ビットデータ送信時間 {1/(100 × 103)} × 3 = 30 µs
3) IBSR レジスタの AL ビットと BB ビットを確認し , AL ビット = 1, BB ビット = 0 の
場合には , ICCR レジスタの EN ビットを "0" にして I2C を初期化する。AL ビット
と BB ビットがその他の状態のときは通常処理を行う。
412
第 21 章 400 kHz I2C インタフェース
以下にフロー例を示します。
マスタモード設定
バス制御レジスタ (IBCR) のMSSビットに"1"を設定
クロック制御レジスタ (ICCR) に設定されている
I2C転送周波数での3ビットデータ送信時間待ち*
NO
BBビット=0でかつALビット=1?
YES
ENビットを"0"にしてI 2Cの初期化
通常処理へ
*: アービトレーションロストが検出された場合 , MSS ビット= 1 設定後 , I2C 転送周
波数での 3 ビットデータ送信時間後には確実に AL ビット= 1 となります。
• AL ビット= 1 検出による割込み (INT ビット= 1) が発生する例
バスビジー検出 (BB ビット= 1) されている状態で , スタートコンディションを発生さ
せる命令を実行 (MSS ビットに "1" を設定 ) およびアービトレーションロストした場合
には , AL ビット= 1 検出時に INT ビット割込みが発生します。
図 21.2-5 AL ビット= 1 検出時に割込みが発生するタイミング図
開始条件
9クロック目で割込み
SCL端子
SDA端子
スレーブアドレス
ACK
DAT
ENビット
MSSビット
ソフトでのALビットクリア
ALビット
BBビット
ソフトでのINTビットクリアで
SCL開放
INTビット
413
第 21 章 400 kHz I2C インタフェース
I2C10 ビットスレーブアドレスレジスタ (ITBA)
21.2.3
このレジスタ (ITBAH / ITBAL) は 10 ビットスレーブアドレスを示します。
■ I2C10 ビットスレーブアドレスレジスタ (ITBA)
インタフェースが禁止 (ICCR の EN = 0) の場合 , このレジスタへは書込みアクセスの
みが有効です。
アドレス
0035A3H
bit 15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
−
−
−
−
TA9
R/W
TA8
R/W
アドレス
0035A2H
bit 7
6
5
4
3
2
1
0
TA6
R/W
TA5
R/W
TA4
R/W
TA3
R/W
TA2
R/W
TA1
R/W
TA0
R/W
TA7
R/W
ITBAH ( 上位 )
初期値
00000000B
ITBAL ( 下位 )
初期値
00000000B
R/W : リード / ライト可能
: 未定義
■ 10 ビットスレーブアドレスレジスタ (ITBA) の内容
表 21.2-3 各 10 ビットスレーブアドレスレジスタ (ITBA) の機能
ビット名
bit15 ~
bit10
bit9 ~
bit0
未定義
TA9 ~
TA0:
10 ビット
スレーブ
アドレス
機 能
このビットは常に "0" を戻します。
スレーブモード時にアドレスデータが受信されると , 10 ビットアドレス
が有効 (ITMK レジスタの ENTB = 1) かどうか ITBA レジスタを比較しま
す。ライトアドレス 1 での 10 ビットアドレスヘッダの受信後に , アクノ
リッジは送信されます。そして 2 番目に入ってくるバイトが TBAL レジ
スタと比較されます。一致が検知されると , アクノリッジ信号がマスタ
デバイスに送信され , AAS ビットが設定されます。さらに , 繰返しス
タートコンディション後 , インタフェースはリードアドレス 2 での 10
ビットアドレスヘッダの受信でアクノリッジします。
スレーブアドレスの全ビットは ITMK レジスタでマスクされます。10
ビットスレーブアドレスの全ビットは , ITBA レジスタに書き戻され ,
IBSR レジスタの AAS ビットが "1" の間だけ有効です。
<注意事項>
• 10 ビットヘッダ ( 書込みアクセス ) は次のビットシーケンスで成り立つ :
11110B, TA9, TA8, 0
• 10 ビットヘッダ ( 読出しアクセス ) は次のビットシーケンスで成り立つ :
11110B, TA9, TA8, 1
414
第 21 章 400 kHz I2C インタフェース
21.2.4
I2C10 ビットアドレスマスクレジスタ (ITMK)
このレジスタには , 10 ビットスレーブアドレスマスクと 10 ビットスレーブアドレス
許可ビットがあります。
■ I2C10 ビットアドレスマスクレジスタ (ITMK)
アドレス
0035A5H
bit 15
アドレス
0035A4H
bit 7
ENTB
R/W
TM7
R/W
14
13
12
11
10
9
8
RAL
R/W
−
−
−
−
−
−
−
−
TM9
R/W
TM8
R/W
6
5
4
3
2
1
0
TM6
R/W
TM5
R/W
TM4
R/W
TM3
R/W
TM2
R/W
TM1
R/W
TM0
R/W
ITMKH ( 上位 )
初期値
00111111B
ITMKL ( 下位 )
初期値
11111111B
R/W : リード / ライト可能
: 未定義
415
第 21 章 400 kHz I2C インタフェース
■ I2C10 ビットアドレスマスクレジスタ (ITMK) の内容
表 21.2-4 各 10 ビットアドレスマスクレジスタ (ITMK) の機能
ビット名
機能
ENTB:
10 ビット
スレーブ
アドレス許可
ビット
このビットは , 10 ビットスレーブアドレスを許可します ( そしてその受
信時にアクノリッジします )。インタフェースが不可 (ICCR の EN=0)
のとき にのみ , このビットへの書込みアクセスが可能です。
"0": 10 ビットアドレス禁止
"1": 10 ビットアドレス許可
bit14
RAL:
受信スレーブ
アドレス長
ビット
このビットは , インタフェースが 7 ビットまたは 10 ビットのどちらを
スレーブとしてアドレスされているか示します。
"0": 7 ビットスレーブとしてアドレス
"1": 10 ビットスレーブとしてアドレス
7 ビット , 10 ビットスレーブアドレスが共に許可されているとき
(ENTB=1 かつ ENSB=1), このビットでインタフェースがどちらを使用し
ているか決められます。このビットは , IBSR レジスタの AAS ビットが
"1" のとき有効です。このビットは , インタフェースが不可 (ICCR の
EN=0) のときにリセットされます。
bit13
~
bit10
未定義
これらのビットは , 読出し時に常に "1" を戻します。
TMK:
10 ビット
スレーブ
アドレスマスク
レジスタ
これらのレジスタは , インタフェースの 10 ビットスレーブアドレスの
マスクに使用します。インタフェースが不可のとき (ICCR の EN=0) の
み , これらのビットに書込みアクセスできます。
"0": ビットはスレーブアドレスの比較に使用されない
"1": ビットはスレーブアドレスの比較に使用される
このビットは , 複合 10 ビットスレーブアドレス上でインタフェースを
アクノリッジさせます。10 ビットスレーブアドレス比較をさせるレジ
スタ上でのみ , このビットを "1" にしてください。受信スレーブアドレ
スは ITBA レジスタに書き戻されます。IBSR レジスタの AAS ビットが
"1" の場合は , ITBA レジスタにより受信スレーブアドレスが決定されま
す。
( 注意事項 )
インタフェースを許可にした後でアドレスマスクを変更すると前の受
信スレーブアドレスにより上書きされてから再びスレーブアドレスが
セットされます。
bit15
bit9
~
bit0
416
第 21 章 400 kHz I2C インタフェース
I2C7 ビットスレーブアドレスレジスタ (ISBA)
21.2.5
このレジスタは 7 ビットスレーブアドレスを定義します。
■ I2C7 ビットスレーブアドレスレジスタ
インタフェースが不可 (ICCR の EN=0) のとき にのみ , このビットへの書込みアクセス
が可能です。
アドレス
0035A6H
bit 7
−
−
6
5
4
3
2
1
0
SA6
R/W
SA5
R/W
SA4
R/W
SA3
R/W
SA2
R/W
SA1
R/W
SA0
R/W
ISBA
初期値
00000000B
R/W : リード / ライト可能
: 未定義
■ I2C7 ビットスレーブアドレスレジスタの内容
表 21.2-5 各 7 ビットアドレスマスクレジスタの機能
ビット名
bit7
bit6 ~
bit0
機能
未定義
このビットは , 読出し時に常に "1" を戻します。
SA6 ~ SA0:
7 ビット
スレーブ
アドレスビット
スレーブモード中にアドレスデータを受信すると , 7 ビットアドレスが
有効 (ISMK レジスタの ENSB = 1) のとき , ISBA レジスタと比較され
ます。一致が検出されると , アクノリッジ信号がマスタデバイスに送
信され , AAS ビットがセットされます。
スレーブアドレスの全ビットが ISMK レジスタでマスクされます。
IBSR レジスタの AAS ビットが "1" のときのみ , 受信 7 ビットスレーブ
アドレスの ISBA への書き戻しが有効です。
10 ビットまたは汎用コールを受信した場合は , インタフェースはこの
レジスタの内容と入力されたデータと比較しません。
417
第 21 章 400 kHz I2C インタフェース
■ I2C7 ビットスレーブアドレスマスクレジスタ (ISMK)
このレジスタには , 7 ビットスレーブアドレスマスクと 7 ビットモード許可ビットがあ
ります。インタフェースが不可 (ICCR の EN=0) のとき にのみ , このビットへの書込み
アクセスが可能です。
アドレス
0035A7H
bit 15
ENSB
R/W
14
13
12
11
10
9
8
SM6
R/W
SM5
R/W
SM4
R/W
SM3
R/W
SM2
R/W
SM1
R/W
SM0
R/W
ISMK
初期値
01111111B
R/W: リード / ライト可能
■ I2C7 ビットスレーブアドレスマスクレジスタの内容
表 21.2-6 各 7 ビットスレーブアドレスマスクレジスタの機能
ビット名
bit15
bit14 ~
bit8
418
機能
ENSB:
7 ビット
スレーブ
アドレスビット
このビットは 7 ビットスレーブアドレスを許可します ( そしてその
受信時にアクノリッジします )。
"0": 7 ビットアドレス禁止
"1": 7 ビットアドレス許可
SM6 ~ SM0:
7 ビット
スレーブ
アドレスマスク
ビット
このレジスタは , インタフェースの 7 ビットスレーブアドレスのマ
スクに使用します。
"0": ビットはスレーブアドレスの比較に使用されない
"1": ビットはスレーブアドレスの比較に使用される
このビットは , 複合 7 ビットスレーブアドレス上でインタフェース
をアクノリッジさせます。7 ビットスレーブアドレス比較をさせる
レジスタ上でのみ , このビットを "1" にしてください。受信スレー
ブアドレスは ISBA レジスタに書き戻されます。IBSR レジスタの
AAS ビットが "1" の場合は , ISBA レジスタにより受信スレーブア
ドレスが決定されます。
( 注意事項 )
インタフェースを許可にした後でアドレスマスクを変更すると ,
前の受信スレーブアドレスにより上書きされてから再びスレーブ
アドレスがセットされます。
第 21 章 400 kHz I2C インタフェース
I2C データレジスタ (IDAR)
21.2.6
400 kHz I2C インタフェース用データレジスタ (IDAR) の構成および機能について説
明します。
■ I2C データレジスタ (IDAR)
アドレス
0035A8H
bit 7
D7
R/W
6
5
4
3
2
1
0
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
IDAR
初期値
00000000B
R/W: リード / ライト可能
■ I2C データレジスタの内容
表 21.2-7 データレジスタの各ビット機能
ビット名
bit7 ~ bit0
D7 ~ D0:
データビット
機能
シリアル転送に使用されるデータレジスタであり , MSB から転送さ
れます。
このレジスタの書込み側はダブルバッファになっており , バスが使用
中 (BB=1) である場合 , 書込みデータは各バイト転送時にシリアル転
送用のレジスタにロードされます。IBCR レジスタの INT ビットがク
リアされるか , バスがアイドル (IBSR の BB = 0) のとき , このデータ
バイトは内部転送レジスタにロードされます。読出しアクセス中 , 内
部レジスタは直接読み出されます。このため , IBCR レジスタの INT
が "1" のときのみ , このレジスタの受信データは有効です。
419
第 21 章 400 kHz I2C インタフェース
21.2.7
I2C クロック制御レジスタ (ICCR)
I2C クロック制御レジスタ (ICCR) には , 次の機能があります。
• テストモード許可
• I/O パッドノイズフィルタ許可
• I2C インタフェース動作許可
• シリアルクロック周波数設定
■ I2C クロック制御レジスタ (ICCR)
アドレス
0035ABH
bit 15
−
−
R/W : リード / ライト可能
: 未定義
420
14
13
12
11
10
9
8
NSF
R/W
EN
R/W
CS4
R/W
CS3
R/W
CS2
R/W
CS1
R/W
CS0
R/W
ICCR
初期値
00011111B
第 21 章 400 kHz I2C インタフェース
■ I2C クロック制御レジスタ (ICCR) の内容
表 21.2-8 クロック制御レジスタの各ビット機能 (1 / 2)
ビット名
bit15
bit14
bit13
機能
未定義
このビットは , 読出し時に常に "0" を戻します。
NSF:
I/O パッド
ノイズ
フィルタ許可
ビット
このビットは SDA, SCL I/O パッドに内蔵したノイズフィルタを有効にし
ます。
インタフェースが 100K ビット超のデータレートで送受信する場合 , この
ビットを "1" にすることを推奨します。
MB90V390H:
ノイズフィルタは最小 0ns から最大 1 ~ 1.5 内部バスサイクルの単発ノ
イズを抑制します。最大値は ,I2C 信号 (SDA,SCL) とマシンクロックとの
間の位相関係に依存します。
MB90394HA, MB90V390HA, MB90V390HB:
ノイズフィルタは最小 0ns から INFCR の SEL1, SEL0 ビットの設定によ
る最大値までの単発ノイズを抑制します。表 21.2-11 を参照してくださ
い。
最大値は I2C 信号 (SDA, SCL) とマシンクロックとの間の位相関係に依存
します。
EN:
許可ビット
このビットは , I2C インタフェース動作を許可します。設定はユーザのみ
可能ですが , クリアはユーザ / ハードウェアで可能です。
"0": インタフェース禁止
"1": インタフェース許可
このビットが "0" のとき , IBSR レジスタの全ビットと IBCR レジスタ
(BER と BEIE ビットは除く ) はクリアされ , モジュールが禁止になり ,
I2C ラインが開放のままになります。バスエラーが発生したとき (IBCR
の BER = 1) は , ハードウェアでクリアできます。
( 注意事項 )
• I2C インタフェースの動作が禁止されると , 送受信は直ちに停止されま
す。
• MSS ビットに "0" を書き込んでストップコンディションを発生させた
後に I2C インタフェースの動作を禁止する場合は , ストップコンディ
ションの発生を確認 (IBSR の BB=0) した後 , 動作を禁止 (ICCR の EN=0)
してください。
421
第 21 章 400 kHz I2C インタフェース
表 21.2-8 クロック制御レジスタの各ビット機能 (2 / 2)
ビット名
機能
このビットはシリアルビットレートを選択します。インタフェースが禁
止 (EN = 0) または EN ビットが同じ書込みアドレスでクリアされる場合
にのみ , このビットの変更が可能です。
n
bit12
~
bit8
CS4 ~ CS0:
クロック
プリスケーラ
ビット
1
CS4 CS3 CS2 CS1 CS3
0
0
0
0
1
ビットレート:φ /28 (+1)
2
0
0
0
1
0
ビットレート:φ /40 (+1)
3
0
0
0
1
1
ビットレート:φ /52 (+1)
4
0
0
1
0
0
ビットレート:φ /64 (+1)
1
…
1
ビットレート:φ /400 (+1)
31
1
1
1
+1 は , ノイズフィルタが許可のとき , 除数に "1" を足すことを意味しま
す。
422
第 21 章 400 kHz I2C インタフェース
■ クロックプリスケーラ設定
CS0 ~ CS4 の計算式は , 下記のようになります。
φ
ビットレート=
n×12+16
φ
ビットレート=
n×12+17
n>0 :マシンクロック , ノイズフィルタ無効
n>0
:マシンクロック , ノイズフィルタ有効 ,
INFCR:SEL[1:0]=01B
表 21.2-9 プリスケーラ設定
n
CS4
CS3
CS2
CS1
CS0
1
0
0
0
0
1
2
0
0
0
1
0
3
0
0
0
1
1
1
1
1
...
31
1
1
( 注意事項 )
プリスケーラ設定に n = 0 は使用しないでください。SDA/SCL タイミン
グを阻害します。
■ 共通マシンクロック周波数
表 21.2-10 に , 共通マシンクロック周波数を示します。
表 21.2-10 共通マシンクロック周波数
マシンクロック
[MHz]
100 K ビット
( ノイズフィルタ不可 )
n ビットレート [K ビット ]
400 K ビット
( ノイズフィルタ許可 ,
INFCR:SEL[1:0]=01B)
n ビットレート [K ビット ]
24
19
98
4
369
20
16
96
3
377
16
12
100
2
390
40/3 = 13.3
10
98
2
325
12
9
96
2
292
64/6 = 10.6
8
94
1
367
10
7
100
1
344
8
6
90
1
275
423
第 21 章 400 kHz I2C インタフェース
ノイズ・フィルタ・コンフィギュレーション・レジスタ
(INFCR)
21.2.8
ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR) は , マシンクロック
の機能として SDA と SCL のノイズフィルタのフィルタ時間を設定するのに使用しま
す。本レジスタは , MB90394HA, MB90V390HA, MB90V390HB のみに用意されてい
ます。
■ ノイズ・フィルタ・コンフィギュレーション・レジスタ (INFCR)
アドレス
0035A9H
bit 15
−
−
14
−
−
13
−
−
12
−
−
11
−
−
10
−
−
9
8
SEL1
R/W
SEL0
R/W
INFCR
初期値
XXXXXX01B
R/W : リード / ライト可能
: 未定義
■ ノイズ・フィルタ・コンフィギュレーション・レジスタの内容
表 21.2-11 ノイズ・フィルタ・コンフィギュレーション・レジスタの各ビットの機能
ビット名
bit 15 ~
bit 10
不定
機能
本ビットは読出し時に "X" を返します。本ビットには常に "0" を書き込
んでください。
MB90394HA, MB90V390HA, MB90V390HB:
本ビットでは , SDA と SCL の I/O パッドの内蔵ノイズフィルタのフィル
タ時間を設定します。
ノイズフィルタは下表に従い , 0 ns ( 最小 ) と最高値の間にある単一スパ
イク幅を抑制します。最高値は , I2C 信号 (SDA, SCL) とマシンクロック
との位相関係に依存します。
bit9, bit8
424
SEL1, SEL0
抑制されたスパイクの最大長
SEL1
SEL0
0
0
0.5 ~ 1 マシンクロック・サイクル
0
1
1 ~ 1.5 マシンクロック・サイクル ( 初期値 )
1
0
1.5 ~ 2 マシンクロック・サイクル
1
1
2 ~ 2.5 マシンクロック・サイクル
第 21 章 400 kHz I2C インタフェース
21.3
I2C インタフェースの動作
I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン
(SCL) の 2 本の双方向バスラインによって通信が行われます。I2C インタフェースは ,
それに対して 2 本のオープンドレイン入出力端子 (SDA, SCL) があり , ワイヤード論
理を可能にします。
■ スタートコンディション
バスが開放されている状態 (IBSR の BB=0, IBCR の MSS=0) で MSS ビットに "1" を書
き込むと I2C インタフェースはマスタモードとなり , 同時にスタートコンディションを
発生します。
バスアイドル中 (MSS = 0, BB = 0) に "1" が書き込まれるとスタートコンディション
が発生し , IDAR レジスタの内容 ( アドレスデータを含む ) が送信されます。
バスマスタモード中や割込み状態 (IBCR の MSS = 1, INT = 1) のとき , SCC ビットに
"1" を書き込むことで連続スタートコンディションが発生します。
バス使用中 (IBSR の BB = 1, TRX = 0, IBCR の MSS = 0, INT = 0) に MSS ビットに
"1" を書き込むとバスがフリーになり , スタートが送信されるまでインタフェースは待
機されます。
このとき , 書込みアクセス ( データ受信 ) でインタフェースがスレーブとしてアドレス
される場合 , 転送が終了し , 再びバスがフリーになった後 , 送信が開始されます。この
ときインタフェースがスレーブとしてデータを送信する場合は , バスがフリーになっ
てもデータ送信は開始されません。このため , インタフェースがスレーブとしてアドレ
スされているか (IBCR の MSS = 0, IBSR の AAS = 1), データバイト転送が成功したか
(IBCR の MSS = 1), 次の割込み時にデータバイトの送信が失敗したかどうか (IBSR の
AL = 1) を調べることが重要になります。
ほかのいかなる状態で MSS ビットまたは SCC ビットへ "1" を書き込んでも意味があり
ません。
■ ストップコンディション
マスタモード (MSS=1, INT=1 in IBCR) 時に , MSS ビットに "0" を書き込むとストップ
コンディションを発生し , スレーブモードになります。これ以外での MSS ビットへの
"0" の書込みは無視されます。
MSS ビットのクリア後 , ほかのマスタがストップビットの発生の前に SCL ラインをプ
ルすると , インタフェースはストップ状態を発生しようと試みます。これは次のバイト
が転送された後に発生します。
■ スレーブアドレス検知
スレーブモード中 , スタート状態が発生した後 , BB は "1" に設定され , マスタデバイス
からのデータ送信は IDAR レジスタに受信されます。
8 ビットの受信後 , ISMK レジスタの ENSB ビットが "1" のとき , IDAR レジスタの内容
はビットマスクを ISMK に保管するために使用する ISBA レジスタと比較されます。一
致の場合 , AAS ビットは "1" に設定され , アクノリッジ信号がマスタに送信されます。
受信データの bit0(IDAR レジスタの bit0) は反転され , TRX ビットに保管されます。
425
第 21 章 400 kHz I2C インタフェース
ITMK レジスタの ENTB ビットが "1" で , 10 ビットアドレスヘッダ (11110, TA1, TA0,
書込みアクセス ) が検知された場合 , インタフェースはマスタにアクノリッジ信号を送
信し , 最終ビットの反転値を TRX レジスタに保管します。割込みは発生せず , 次の転
送バイトが ITBA レジスタの下位バイトと比較 (ITMK へのビットマスクの保管に使用 )
されます。一致の場合 , アクノリッジ信号がマスタに送信され , ASS ビットがセットさ
れ , 割込みが発生します。
インタフェースがスレーブとしてアドレス指定され , 連続スタートコンディションが
検知された場合 , 10 ビットアドレスヘッダ (11110, TA1, TA0, 読出しアクセス ) の受信
後に AAS ビットが設定され , 割込みが発生します。
10 ビット , 7 ビットアドレス用の分割レジスタがあり , それらのビットがマスクされて
いるため , ISMK の ENSB と ITMK の ENTB の設定により , インタフェースを両アドレ
スでアクノリッジできます。受信スレーブアドレス長 (7 ビットまたは 10 ビット ) は ,
ITMK レジスタの RAL ビット (AAS ビットが設定されているときのみ , このビットは
有効です ) の読出しにより決められます。
マスタとしての使用時のみ , 両ビットを "0" としてインタフェースにノースレーブをあ
てることができます。
全スレーブアドレスビットは対応するマスクレジスタ (ITMK / ISMK) でマスクされま
す。
■ スレーブアドレスマスク
マスクレジスタ (ITMK/ISMK) で "1" に設定したビットのみがアドレス比較用に使用で
きます。その他のビットはすべて無視されます。IBSR レジスタの AAS ビットが "1" の
とき , 受信スレーブアドレスは , ITBA から (10 ビットアドレス受信時で RAL = 1) また
は ISBA から (7 ビットアドレス受信時で RAL = 0) 読出しできます。
ビットマスクがクリアされた場合 , 常にスレーブとしてアドレスされているので , イン
タフェースはバスモニタとして使用できます。ただし , ほかのスレーブモニタリングが
なかったとしても , スレーブアドレス受信でアクノリッジするため , これは本来のバス
モニタではありませんので注意してください。
■ アドレッシング
マスタモードでは , スタートコンディション発生後 , BB=1, TRX=1 にセットされ , IDAR
レジスタの内容を MSB から出力します。アドレスデータ送信後 , スレーブからアクノ
リッジを受信すると , 送信データの bit0( 送信後の IDAR レジスタの bit0) を反転して ,
TRX ビットへ格納します。
スレーブによるアクノリッジは IBSR レジスタの LRB ビットの使用をチェックします。
この手順は連続スタートコンディションにも適応します。
書込みアクセスの 10 ビットアドレスをするために , 2 バイトを送信してください。1 バ
イト目は , ビットシーケンス "1110A9A80" から成り立つ 10 ビットアドレスヘッダです。
2 バイト目は , 10 ビットスレーブアドレスの下位 8 ビット (A7 ~ A0) から成り立って
います。
10 ビットスレーブアドレスは , 読出しアクセス (11110A9A81) での 10 ビットアドレス
ヘッダに続く , 上位バイトシーケンスの送信と連続スタートコンディション (IBCR の
SCC ビット ) により , 読出しアクセスされます。
426
第 21 章 400 kHz I2C インタフェース
アドレスデータバイトの概要 :
7 ビットスレーブ , 書込みアクセス :
起動条件 - A6 A5 A4 A3 A2 A1 A0 0.
7 ビットスレーブ , 読出しアクセス :
起動条件 - A6 A5 A4 A3 A2 A1 A0 1.
10 ビットスレーブ , 書込みアクセス :
起動条件 - 1 1 1 1 0 A9 A8 0 - A7 A6 A5 A4 A3 A2 A1 A0.
10 ビットスレーブ , 読出しアクセス :
起動条件 - 1 1 1 1 0 A9 A8 1 - A7 A6 A5 A4 A3 A2 A1 A0 - 再起動 - 1 1 1 1
0 A9 A8 1.
■ アービトレーション
マスタ送信時に , ほかのマスタも同時にデータを送信している場合 , アービトレーショ
ンが起こります。自分の送信データが "1", SDA ライン上のデータが "L" レベルの場合 ,
自分はアービトレーションを失ったとみなし , AL=1 にセットします。
第 1 ビットでスタートコンディションが検知されたが , インタフェースが発生できな
かったり , 何らかの理由でスタート / ストップコンディションの発生が失敗した場合 ,
AL ビットは "1" に設定されます。
アービトレーションロスト検知は MSS, TRX ビットともにクリアされ , それ自身のス
レーブアドレスが送信された場合にアクノリッジできるように , 直ちにデバイスはス
レーブモードになります。
■ アクノリッジ
アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , IBCR レジス
タの ACK ビットによってアクノリッジの有無を選択できます。
スレーブ送信側に , マスタ受信側からアクノリッジを受信しなかった場合 , TRX=0 と
なりスレーブ受信モードになります。これによって , マスタはスレーブが SCL ライン
を開放したときにストップコンディションを発生できます。
マスタモード時は , IBSR レジスタの LRB ビットによって , スレーブによるアクノリッ
ジをチェックできます。
427
第 21 章 400 kHz I2C インタフェース
21.4
プログラミングフローチャート
400 kHz I2C インタフェース用の各プログラミングフローチャートを示します。
■ プログラミングフローチャート
図 21.4-1 スレーブアドレッシングとデータ送信例
7 ビットスレーブアドレッシング
データ送信
開始
開始
書込み用スレーブアドレス
BER クリア ( 設定の場合 )
インタフェース許可 : EN = 1
IDAR = データバイト ;
INT =0
IDAR = スレーブアドレス
<<1+RW; MSS = 1; INT = 0
INT=1?
NO
NO
INT=1?
YES
YES
YES
BER=1?
YES
バスエラー
BER=1?
NO
NO
AL=1?
YES
転送再開
AAS か
どうか確認
YES
AL=1?
NO
NO
ACK?
ACK?
NO
NO
(LRB=0?)
(LRB=0?)
YES
YES
データ送信準備完了
最終
バイト
転送 ?
YES
NO
ACK なしスレーブ
連続スタートまたは
ストップコンディ
ション発生
転送完了
連続スタートまたは
ストップコンディ
ション発生
428
転送再開
AAS か
どうか確認
第 21 章 400 kHz I2C インタフェース
図 21.4-2 データ受信例
開始
書込み用スレーブアドレス
IBCR の ACK ビットクリア
( スレーブからの読出しが
最終バイトのとき ): INT = 1
INT=1?
NO
YES
BER=1?
YES
バスエラー
再許可 IF
NO
NO
最終
バイト
転送 ?
YES
転送完了
連続スタートまたは
ストップコンディ
ション発生
429
第 21 章 400 kHz I2C インタフェース
430
第 22 章
シリアル I/O
シリアル I/O の機能と動作について説明します。
22.1 シリアル I/O の概要
22.2 シリアル I/O のレジスタ
22.3 シリアル I/O プリスケーラ (CDCR)
22.4 シリアル I/O の動作
431
第 22 章 シリアル I/O
22.1
シリアル I/O の概要
シリアル I/O の動作モードには , 以下の 2 種類があります。
• 内部シフトクロックモード……内部クロックに同期してデータ転送を行います。
• 外部シフトクロックモード……外部端子 (SCK4) から入力されるクロックに同期
してデータ転送を行います。このモードで外部端
子 (SCK4) を共有している汎用ポートを操作するこ
とにより , CPU の命令による転送動作も可能です。
■ シリアル I/O のブロックダイヤグラム
クロック同期によるデータ転送を可能にするシリアル I/O インタフェースのブロック
ダイヤグラムを示します。このインタフェースは 8 ビット× 1 チャネル構成で , データ
は LSB ファースト /MSB ファーストから転送できます。
図 22.1-1 拡張シリアル I/O インタフェースのブロックダイヤグラム
内部データバス
(MSBファースト) D0~D7
D7~D0 (LSBファースト)
転送方向選択
SIN4
読出し
書込み
SDR(シリアルシフトデータレジスタ)
SOT4
SCK4
シフトクロック
カウンタ
制御回路
内部クロック
2
1
0
SMD2
SMD1
SMD0
SIE
SIR
BUSY
STOP
STRT
割込み要求
内部データバス
432
MODE
BDS
SOE
SCOE
第 22 章 シリアル I/O
22.2
シリアル I/O のレジスタ
シリアル I/O のレジスタには , 次の 2 つがあります。
• シリアルモード制御ステータスレジスタ (SMCS)
• シリアルシフトデータレジスタ (SDR)
■ シリアル I/O のレジスタ
bit 15
アドレス: 00002DH SMD2
アドレス: 00002CH
13
12
11
10
9
8
SIE
SIR
BUSY
STOP
STRT
bit 7
6
5
4
3
2
1
0
−
−
−
−
MODE
BDS
SOE
SCOE
bit 7
アドレス: 00002EH
14
SMD1 SMD0
D7
6
5
4
3
2
1
0
D6
D5
D4
D3
D2
D1
D0
シリアルモード制御
ステータスレジスタ
(SMCS)
シリアルシフトデータ
レジスタ (SDR)
433
第 22 章 シリアル I/O
22.2.1
シリアルモード制御ステータスレジスタ (SMCS)
シリアルモード制御ステータスレジスタ (SMCS) は , シリアル I/O 転送モードを制御
するレジスタです。
■ シリアルモード制御ステータスレジスタの上位バイト (SMCS)
図 22.2-1
シリアルモード制御ステータスレジスタ ( 上位バイト ) の構成
bit15
アドレス:
00002D H
bit14
SMD2 SMD1
R/W
R/W
bit13
bit12
bit11
bit10
bit9
bit8
SMD0
SIE
SIR
BUSY
STOP
STRT
R/W
R/W
R/W
R
R/W
R/W
"0" 書込みは影響なし。"0" は常に読出し
STOP
0
1
通常動作
434
MODE=1 のとき , "1" 書込みはシリアル送信を活性化
ストップビット
転送停止
転送ステータスビット
0
停止またはシリアルデータレジスタ R/W 待機状態
1
シリアル転送はアクティブ
シリアル I/O 割込み要求ビット
SIR
0
1
割込みは要求されない
SIE
0
1
シリアル I/O 割込み禁止
SMD2~
SMD0
: 初期値
スタートビット
STRT
0
1
BUSY
R/W : リード / ライト可能
R
: リードオンリ
初期値
00000010 B
000B
001B
010B
011B
100B
101B
110B
111B
SIE=1 のとき , 割込み要求は CPU へ出される
シリアル I/O 割込みイネーブルビット
シリアル I/O 割込み許可
シフトクロックモード選択ビット
プリスケーラ出力は 2 分周
プリスケーラ出力は 4 分周
プリスケーラ出力は 16 分周
プリスケーラ出力は 32 分周
プリスケーラ出力は 64 分周
外部シフトクロックモード
プリスケーラ出力は 8 分周
プリスケーラ出力は 128 分周
第 22 章 シリアル I/O
■ シリアルモード制御ステータスレジスタの下位バイト (SMCS)
図 22.2-2 シリアルモード制御ステータスレジスタ ( 下位バイト ) の構成
アドレス:
00002C H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
-
-
-
-
MODE
BDS
SOE
SCOE
-
-
-
-
R/W
R/W
R/W
R/W
SCOE
R/W : リード / ライト可能
: 未定義
: 初期値
汎用ポート端子 , 各命令を転送
1
シフトクロック出力端子
シリアル出力許可ビット
SOE
0
1
汎用ポート端子
BDS
0
1
LSB ファースト
1
XXXX0000 B
シフトクロック出力許可ビット
0
MODE
0
初期値
シリアルデータ出力
ビット方向選択ビット
MSB ファースト
シリアルモード選択ビット
STRT = 1 のとき , 転送開始
シリアルデータレジスタが読出し / 書込みされる場合に
転送開始
435
第 22 章 シリアル I/O
■ シリアルモード制御ステータスレジスタ (SMCS) の各ビット機能
表 22.2-1 シリアルモード制御ステータスレジスタの各ビット機能 (1 / 2)
ビット名
機能
bit15,
bit14,
bit13
SMD2 ~ SMD0:
シフトクロック
モード選択
ビット
bit12
SIE:
シリアル I/O
割込み
イネーブル
ビット
シリアル I/O 割込みイネーブルビット
シリアル I/O の割込み要求を図 22.2-1 に示すとおりに制御します。リセットにより
"0" に初期化されます。本ビットは , 読出しおよび書込みが可能です。
bit11
SIR:
シリアル I/O
割込み要求
ビット
シリアル I/O 割込み要求ビット
シリアル転送が終了すると "1" にセットされ , 割込み許可時 (SIE=1) にこのビット
が "1" になると , CPU へ割込み要求を発生します。クリア条件は MODE ビットに
よって異なります。MODE ビットが "0" のとき , SIR ビットへの "0" 書込みにより
クリアされます。MODE ビットが "1" のとき , SDR の読出しまたは書込み動作によ
りクリアされます。MODE ビットの値にかかわらずリセットまたは STOP ビット
への "1" 書込み動作によりクリアされます。
本ビットに "1" を書き込んでも意味がありません。リードモディファイライト
(RMW) 系命令の読出し時は , 常に "1" が読み出されます。
bit10
BUSY:
転送ステータス
ビット
転送ステータスビット
シリアル転送が実行中か否かを示すビットです。
リセットにより "0" に初期化されます。本ビットは , 読出しのみ可能です。
bit9
STOP:
ストップビット
ストップビット
シリアル転送を強制的に中断させるビットです。本ビットを "1" にすると STOP=1
による停止状態となります。リセットにより "1" に初期化されます。本ビットは ,
読出しおよび書込みが可能です。
bit8
STRT:
スタートビット
スタートビット
シリアル転送の起動を行うビットです。NODE ビットが "0" の状態で "1" を書くこ
とによって転送が開始されます。MODE ビットに "1" を設定し , STRT ビットにも
"1" を設定した場合 , シリアルデータレジスタにデータを書き込むことにより , 転
送が開始します。
シリアル転送動作中およびシリアルシフトレジスタ R/W 待機中の "1" の書込みは
無視され , "0" の書込みは意味がありません。
読出し時には常に "0" が読み出されます。
bit3
MODE:
シリアルモード
選択ビット
シリアルモード選択ビット
このビットにより停止状態からの起動条件の選択を行います。ただし , 動作中の書
換えは禁止します。
リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能で
す。インテリジェント I/O サービスを起動する際には "1" にしておいてください。
bit2
BDS:
ビット方向選択
ビット
ビット方向選択ビット
シリアルデータの入出力時に , 最下位ビット側から先に転送するか (LSB ファース
ト ), 最上位ビット側から先に転送するか (MSB ファースト ) を図 22.2-2 に示すとお
りに選択します。転送方向選択ビットは , SDR にデータを書き込む前に設定してお
いてください。
bit1
SOE:
シリアル出力
許可ビット
シリアル出力許可ビット
シリアル I/O 用出力外部端子 (SOT4) の出力を制御します。
リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能で
す。
436
シフトクロックモード選択ビット
表 22.2-2 を参照してください。
第 22 章 シリアル I/O
表 22.2-1 シリアルモード制御ステータスレジスタの各ビット機能 (2 / 2)
ビット名
機能
シフトクロック出力許可ビット
シリアル I/O 用入出力外部端子 (SCK4) の出力を図 22.2-2 に示すとおりに制御しま
す。
外部シフトクロックモードで命令ごとに転送を行うときは "0" に設定してくださ
い。
リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能で
す。
SCOE:
シフトクロック
出力許可ビット
bit0
■ シフトクロック選択
シフトクロックモード選択シリアルシフトクロックモードを表 22.2-2 に示すとおりに
選択します。第 2 パートがシリアル I/O プリスケーラレジスタ (CDCR) に関連付けられ
ます。
( 注意事項 ) 詳細は , 「22.3 シリアル I/O プリスケーラ (CDCR)」を参照してください。
表 22.2-2 シリアルシフトクロックモードの設定
SMD2
SMD1
SMD0
φ=24MHz
div=6
φ=20MHz
div=4
φ=16MHz
div=4
φ=8MHz
div=4
φ=4MHz
div=4
0
0
0
2 MHz
2.5 MHz
2 MHz
1 MHz
500 kHz
0
0
1
1 MHz
1.25 MHz
1 MHz
500 kHz
250 kHz
0
1
0
250 kHz
312.5 kHz
250 kHz
125 kHz
62.5 kHz
0
1
1
125 kHz
156.25 kHz
125 kHz
62.5 kHz
31.25 kHz
1
0
0
62.5 kHz
78.125 kHz
62.5 kHz
31.25 kHz
15.625 kHz
1
0
1
1
1
0
500 kHz
625 kHz
500 kHz
250 kHz
125 kHz
1
1
1
31.25 kHz
39.1 kHz
31.25 kHz
15.625 kHz
7812.5 Hz
外部シフトクロックモード
表 22.2-3 シリアル I/O プリスケーラレジスタの分周比
div
MD
DIV3
DIV2
DIV1
DIV0
推奨マシンサイクル
3
1
0
0
1
0
6 MHz
4
1
0
0
1
1
8 MHz
5
1
0
1
0
0
10 MHz
6
0
0
1
0
1
12 MHz
7
0
0
1
1
0
14 MHz
8
1
0
1
1
1
16 MHz
本ビットの転送中の書換えは禁止します。
SMDリセットにより"000B"に初期化されます。
クロック選択で SCOE =0 とし , SCK4 端子を共有しているポートを操作することによっ
て命令ごとにシフトさせることも可能です。
437
第 22 章 シリアル I/O
22.2.2
シリアルシフトデータレジスタ (SDR)
シリアルシフトデータレジスタ (SDR) は , シリアル I/O 転送データを格納するシリ
アルデータレジスタで転送中は読み書き不可です。
■ シリアルシフトデータレジスタ (SDR)
SDR
bit
アドレス: 00002EH
7
6
5
4
3
2
1
0
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
R/W : リード / ライト可能
X
: 不定
438
初期値
XXXXXXXXB
第 22 章 シリアル I/O
22.3
シリアル I/O プリスケーラ (CDCR)
シリアル I/O プリスケーラ (CDCR) は , シリアル I/O のシフトクロックを提供します。
シリアル I/O の動作クロックは , マシンクロックを分周することにより得られます。
シリアル I/O は , この通信プリスケーラによってさまざまマシンクロックに対して一
定のボーレートが得られるように設計されています。CDCR レジスタは , マシンク
ロックの分周を制御するレジスタです。
■ シリアル I/O プリスケーラ (CDCR)
図 22.3-1 シリアル I/O プリスケーラ (CDCR) の構成
アドレス:
00002FH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
MD
-
NEG
-
DIV3
DIV2
DIV1
DIV0
R/W
-
R/W
-
R/W
R/W
R/W
R/W
DIV3~
DIV0
0000B
0001B
0010B
0011B
0100B
0101B
0110B
0111B
1xxxB
NEG
0
1
R/W : リード / ライト可能
X
: 不定
: 未定義
: 初期値
MD
0
1
初期値
0 X 0 X 0 0 0 0B
マシンクロック分周比ビット
分周比= 1
分周比= 2
分周比= 3
分周比= 4
分周比= 5
分周比= 6
分周比= 7
分周比= 8
予約
ネガティブクロック動作ビット
通常動作
シフトクロック信号が反転
マシンクロック分周モード選択ビット
シリアル I/O プリスケーラ禁止
シリアル I/O プリスケーラ許可
<注意事項>
分周比を変えた場合はクロックの安定時間として2周期分の時間を置いてから通信を行っ
てください。
439
第 22 章 シリアル I/O
22.4
シリアル I/O の動作
拡張シリアル I/O インタフェースは , シリアルモード制御ステータスレジスタ
(SMCS), シリアルシフトデータレジスタ (SDR) により構成されます。8 ビットのシ
リアルデータの入出力に使用します。
■ シリアル I/O の動作
シリアルデータの入出力は , シフトレジスタの内容がシリアルシフトクロック ( 外部ク
ロック , 内部クロック ) の立下りに同期してビット直列にシリアル出力端子 (SOT4 端
子 ) に出力され , 立上りに同期してシリアル入力端子 (SIN4 端子 ) からビット直列に
SDR ( シリアルシフトデータレジスタ ) に入力されます。シフトの方向 (MSB からの転
送または LSB からの転送 ) は , SMCS ( シリアルモード制御ステータスレジスタ ) の方
向指定ビット (BDS) により指定できます。
転送が終了するとシリアルモード制御ステータスレジスタ (SMCS) の MODE ビットに
よって停止状態またはデータレジスタリード / ライト待機状態に入ります。各々の状
態から転送状態に移るには , それぞれ次のことを行います。
• 停止状態からの復帰のときは STOP ビットに "0", STRT ビットに "1" を書き込みま
す (STOP と STRT は同時設定が可能です ) 。
• SDR ( シリアルシフトデータレジスタ ) リード / ライト待機状態からの復帰時はデー
タレジスタを読出しまたは書込みします。
440
第 22 章 シリアル I/O
シフトクロック
22.4.1
シフトクロックには内部シフトクロックモード , 外部シフトクロックモードの 2 種
類があり , SMCS の設定で指定します。モードの切換えは , シリアル I/O が停止した
状態で行ってください。停止状態の確認は , BUSY ビットを読み出すことで可能で
す。
■ 内部シフトクロックモード
内部クロックにより動作し , 同期タイミング出力としてデューティ比 50% のシフトク
ロックが SCK4 端子より出力可能です。データが 1 クロックごとに 1 ビット転送され
ます。転送の速度 ( ボーレート ) は以下のようになります。
A は SMCS の SMD ビットで示す分周比で , 21, 22, 23, 24, 25, 26, 27 です。
転送周波数 (Hz)
=
φ
転送速度 (s) =
A div
A div
φ
■ 外部シフトクロックモード
SCK4 端子から入力される外部シフトクロックに同期して , データが 1 クロックごとに
1 ビット転送されます。転送速度は DC から 1/ (5 マシンサイクル ) まで可能です。例
えば , "1 マシンサイクル =0.1μs" のとき , 2MHz まで可能です。
命令ごとに転送することもでき , 次のような設定をすることによって実現します。
外部シフトクロックモードを選択し , SMCS の SCOE ビットを "0" に設定します。さら
に , SCK4 端子を共有しているポートの方向レジスタに "1" を書き込み , ポートを出力
モードに設定します。以上の設定をした後 , ポートのデータレジスタ (PDR) に "1", "0"
を書き込むと , SCK4 端子に出力されるポートの値を外部クロックとして取り込み , 転
送動作を行います。シフトクロックの開始は "H" からスタートさせてください。
<注意事項>
シリアル I/O 動作中の SMCS, SDR への書込みは禁止です。
441
第 22 章 シリアル I/O
22.4.2
シリアル I/O の動作状態
シリアル I/O の動作状態には , 次の 4 種類があります。
• STOP 状態
• 停止状態
• SDR のリード / ライト待機状態
• 転送状態
■ シリアル I/O の動作状態
● STOP 状態
RESET 時または SMCS の STOP ビットに "1" を書き込んだときの状態でシフトカウン
タは初期化され , SIR=0 となります。
STOP 状態からの復帰は , STOP=0, STRT=1 ( 同時設定可能 ) とすることによって行われ
ます。STOP ビットは STRT ビットより優先ビットですので STOP=1 のとき STRT=1 と
しても転送動作は行われません。
● 停止状態
MODE ビットが "0" のとき , 転送が終了したことによって SMCS が BUSY=0, SIR=1 と
なり , カウンタが初期化され停止状態に入ります。停止状態からの復帰は STRT=1 にす
ると転送動作が再開されます。
● シリアルデータレジスタリード / ライト待機状態
SMCS の MODE ビットが "1" のとき , シリアル転送が終了すると , BUSY=0, SIR=1 と
なりシリアルデータレジスタリード / ライト待機状態に入ります。割込み許可レジス
タが許可状態ならば本ブロックより割込み信号を出力します。
リード / ライト待機状態からの復帰はシリアルデータレジスタが読み出されたり , 書き
込まれたりすると BUSY=1 となり転送動作が再開されます。
● 転送状態
BUSY=1 でシリアル転送を行っている状態です。MODE ビットによりそれぞれ停止状
態およびリード / ライト待機状態に遷移します。
図 22.4-1 に , 動作遷移を示します。
442
第 22 章 シリアル I/O
図 22.4-1 拡張シリアル I/O インタフェース動作遷移図
リセット
STOP=0 & STRT=0
転送終了
STRT=0, BUSY=0
MODE=0
STOP=0
&
STRT=1
MODE=0
&
STOP=0
&
終了
STOP
STRT=0, BUSY=0
STOP=1
STOP=1
STOP=1
STOP=0
&
STRT=1
転送動作
シリアルデータレジスタリード/ライト待機
MODE=1 & 終了 & STOP=0
STRT=1, BUSY=1
STRT=1, BUSY=0
MODE=1
SDRのR/W & MODE=1
図 22.4-2 シリアルシフトデータレジスタへの読出し , 書込み概念図
シリアルデータ
データバス
SOT4
SIN4
データバス
読出し
書込み
割込み出力
拡張I/Oシリアル
インタフェース
読出し
書込み
②
CPU
①
割込み入力
データバス
割込みコントローラ
① MODE=1のとき, シフトクロックカウンタによって転送終了し, SIR=1となってリー
ド / ライト待機状態に入ります。SIE ビットが "1" ならば割込み信号を発生します。
ただし , SIE がインアクティブのときや STOP へ "1" を書き込むことによる転送中断
のときは割込み信号は発生しません。
② シリアルシフトデータレジスタがリード / ライトされると , 割込み要求はクリアさ
れシリアル転送を開始します。
443
第 22 章 シリアル I/O
22.4.3
シフト動作のスタート / ストップタイミング
シフト動作をスタートする場合は , SMCS の STOP ビットを "0", STRT ビットを
"1" に設定します。
シフト動作のストップタイミングについては , STOP=1 によって停止する場合と , 転
送終了によって停止する場合があります。
• STOP=1 によって停止→ MODE ビットにかかわらず SIR=0 のまま停止
• 転送終了で停止→ MODE ビットにかかわらず SIR=1 となり停止
BUSY ビットは MODE ビットにかかわらずシリアル転送状態のとき "1" となり , 停
止状態またはリード / ライト待機状態のとき "0" となります。転送状態を確認したい
ときはこのビットを読み出してください。
■ シフト動作のスタート / ストップタイミング
● 内部シフトクロックモード (LSB ファースト )
図 22.4-3 シフト動作のスタート / ストップタイミング ( 内部クロック )
"1"出力
SCK4
(転送スタート)
STRT
(転送終了)
MODE=0のとき
BUSY
SOT4
D00
D07( データ保持)
● 外部シフトクロックモード (LSB ファースト )
図 22.4-4 シフト動作のスタート / ストップタイミング ( 外部クロック )
SCK4
(転送スタート)
STRT
(転送終了)
MODE=0のとき
BUSY
SOT4
444
DO0
DO7 (データ保持)
第 22 章 シリアル I/O
● 外部シフトクロックモードで命令シフトを行ったとき (LSB ファースト )
図 22.4-5 シフト動作のスタート / ストップタイミング
( 外部シフトクロックモードで命令シフトを実行時 )
SCK4
STRT
PDRのSCKビット"0"
PDRのSCKビット"0"
PDRのSCKビット"1"
(転送終了)
MODE=0のとき
BUSY
SOT4
DO7 (データ保持)
DO6
命令シフトでは , PDR の SCK に対応するビットに "1" が書き込まれたとき "H" が出力
され "0" が書き込まれたとき "L" が出力されます ( ただし , 外部シフトクロックモード
選択で SCOE=0 のとき ) 。
● STOP=1 による停止 (LSB ファースト , 内部クロック時 )
図 22.4-6 STOP ビットを "1" としたときのストップタイミング
"1"出力
SCK4
(転送スタート)
(転送終了)
MODE=0のとき
STRT
BUSY
STOP
SOT4
DO3,DO4
DO5(データ保持)
( 注意事項 ) DO7 ~ DO0 は出力データを示します。
445
第 22 章 シリアル I/O
シリアルデータの転送中は , シフトクロックの立下りでシリアル出力端子 (SOT4) から
のデータが出力され , 立上りでシリアル入力端子 (SIN4) のデータが入力されます。
図 22.4-7 シリアルデータの入出力シフトタイミング
○ LSB ファースト(BDSビットが"0"のとき)
SCK4
SIN4
SIN入力
D10
D11
D12
D13
D14
D15
D16
D17
DO3
DO4
DO5
DO6
DO7
SOT出力
SOT4
DO0
DO1
DO2
○ MSB ファースト(BDSビットが"1"のとき)
SCK4
SIN4
SIN入力
D17
D16
D15
D14
D13
D12
D11
D10
DO4
DO3
DO2
DO1
DO0
SOT出力
SOT4
446
DO7
DO6
DO5
第 22 章 シリアル I/O
拡張シリアル I/O インタフェースの割込み機能
22.4.4
拡張シリアル I/O インタフェースは , CPU に対して割込み要求を発生できます。
データの転送終了時に割込みフラグである SIR ビットがセットされ , 割込みを許可
する SMCS の SIE ビットが "1" のとき , CPU へ割込み要求を出力します。
■ 拡張シリアル I/O インタフェースの割込み機能
図 22.4-8 拡張シリアル I/O インタフェースの割込み信号出力タイミング
SCK4
(転送終了)
BUSY
(転送開始)
SIE=1
SIR
SDR RD/WR
SOT4
DO7 (データ保持)
DO6
DO0
MODE=1の場合
SCK4
(転送終了)
BUSY
SIE=1
SIR
SDR RD/WR
SOT4
DO6
DO7 (データ保持)
MODE=0の場合
447
第 22 章 シリアル I/O
448
第 23 章
CAN コントローラ
CAN コントローラの機能と概要について説明しま
す。
( 注意事項 )
MB90390 シリーズでは CAN コントローラ 2 ~ 4
は規定されていません。このため , これらの機能は
使用しないことを推奨します。
23.1 CAN コントローラの特長
23.2 CAN コントローラのブロックダイヤグラム
23.3 全体制御レジスタの一覧
23.4 メッセージバッファ (ID レジスタ ) の一覧
23.5 メッセージバッファ (DLC/ データレジスタ ) の一覧
23.6 CAN コントローラのレジスタ分類
23.7 CAN コントローラの送信
23.8 CAN コントローラの受信
23.9 CAN コントローラの受信フローチャート
23.10 CAN コントローラの使用方法
23.11 メッセージバッファ (x) による送信方法
23.12 メッセージバッファ (x) による受信方法
23.13 マルチレベルメッセージバッファの構成の決定
23.14 CAN1, CAN3 RX/TX 端子のリダイレクト設定
23.15 CAN ダイレクトモードレジスタ
23.16 CAN コントローラの使用上の注意
449
第 23 章 CAN コントローラ
23.1
CAN コントローラの特長
CAN コントローラは , 16 ビットマイクロコンピュータ (F2MC-16LX) 内に一体化さ
れたモジュールです。CAN ( コントローラエリアネットワーク ) は自動車用コント
ローラ間のシリアル通信用の標準プロトコルであり工業分野で広く使用されている
ものです。
■ CAN コントローラの特長
CAN コントローラの特長は次のとおりです。
● CAN 仕様バージョン 2.0 パート A および B に適合しています。
標準フレームおよび拡張フレームフォーマットでの送信 / 受信をサポートしています。
● リモートフレームの受信によるデータフレームの送信をサポートしています。
● 16 個の送信 / 受信メッセージバッファ
29 ビットの ID および 8 バイトデータ
マルチレベルメッセージバッファ構造
● フルビット比較 , フルビットマスクおよび部分的ビットマスクフィルタリングをサポート
しています。
標準フレームまたは拡張フレームフォーマットのいずれかで 2 個のアクセプタンスマ
スクレジスタを提供します。
● ビット速度は10kbps~1Mbpsでプログラマブルです (1Mbpsでご使用の場合, マシンクロッ
クは 8MHz 以上で動作する必要があります ) 。
450
第 23 章 CAN コントローラ
CAN コントローラのブロックダイヤグラム
23.2
図 23.2-1 に , CAN コントローラのブロックダイヤグラムを示します。
■ CAN コントローラのブロックダイヤグラム
図 23.2-1 CAN コントローラのブロックダイヤグラム
TQ (動作クロック)
2
F MC-16LXバス
プリスケーラ
1~64周波数分割
クロック
SYNC, TSEG1, TSEG2
ビットタイミング発生
PSC
TS1
BTR
TS2
RSJ
TOE
TS
RS
CSR
IDLE, SUSPND,
送信,受信,
ERR, OVRLD
HALT
NIE
NT
バスステート
マシン
ノードステータス
変化割込み
ノードステータス
変化割込み発生
NS1,NS0
エラー
制御
RTEC
送信/
受信シーケンサ
BVALR
TREQR
TBFxクリア
TBFx
送信バッファx判定
エラーフレーム
発生
データ アクセプタンス
カウンタ フィルタ制御
過負荷
フレーム発生
TDLC RDLC
TBFx
IDSEL
BITER, STFER,
CRCER, FRMER,
ACKER
TCANR
出力
ドライバ
ARBLOST
TX
TRTRR
TCR
TBFx, セット,クリア
TDLC
送信完了
割込み
送信完了
割込み発生
TIER
RCR
スタッフィング
送信シフト
レジスタ
RFWTR
CRC発生
ACK発生
CRCER
RBFx, セット
RDLC
受信完了
割込み発生
RIER
受信完了
割込み
CRC発生/エラーチェック
受信シフト
レジスタ
RBFx, TBFx,セット,クリア
STFER
デスタッフィング/
スタッフィングエラーチェック
RRTRR
RBFx, セット IDSEL
ROVRR
ARBLOST
アービト
レーション
チェック
BITER
ビットエラー
チェック
ACKER
確認エラー
チェック
FRMER
フォームエラー
チェック
AMSR
AMR0
0
1
アクセプタンス
フィルタ
受信
バッファx判定
AMR1
RBFx
IDR0~IDR15,
DLCR0~DLCR15,
DTR0~DTR15,
RAM
RAMアドレス発生
PH1
入力
ラッチ
RX
RBFx, TBFx, RDLC, TDLC, IDSEL
LEIR
IDER
451
第 23 章 CAN コントローラ
23.3
全体制御レジスタの一覧
表 23.3-1 に , 全体制御レジスタの一覧を示します。
■ 全体制御レジスタの一覧
表 23.3-1 全体制御レジスタの一覧 (1 / 2)
アドレス
略号
アクセス
初期値
BVALR
R/W
00000000 00000000B
送信要求レジスタ
TREQR
R/W
00000000 00000000B
送信解除レジスタ
TCANR
W
00000000 00000000B
送信完了レジスタ
TCR
R/W
00000000 00000000B
受信完了レジスタ
RCR
R/W
00000000 00000000B
RRTRR
R/W
00000000 00000000B
ROVRR
R/W
00000000 00000000B
受信割込み許可
00358FH 00359FH レジスタ
RIER
R/W
00000000 00000000B
003700H 003900H 003B00H 003D00H 003F00H
制御ステータス
003701H 003901H 003B01H 003D01H 003F01H レジスタ
CSR
R/W, R
00---000 0----001B
003702H 003902H 003B02H 003D02H 003F02H
ラストイベント
003703H 003903H 003B03H 003D03H 003F03H 表示レジスタ
LEIR
R/W
-------- 000-0000B
受信および送信
003705H 003905H 003B05H 003D05H 003F05H エラーカウンタ
RTEC
R
00000000 00000000B
003706H 003906H 003B06H 003D06H 003F06H
ビットタイミング
003707H 003907H 003B07H 003D07H 003F07H レジスタ
BTR
R/W
-1111111 11111111B
IDER
R/W
XXXXXXXX XXXXXXXXB
TRTRR
R/W
00000000 00000000B
RFWTR
R/W
XXXXXXXX XXXXXXXXB
CAN0
CAN1
CAN2 * CAN3 * CAN4 *
レジスタ
000070H 000080H
003570H
003580H
000071H 000081H
003571H
003581H
003590H メッセージ
003591H バッファ
有効レジスタ
000072H 000082H
003572H
003582H
003592H
000073H 000083H
003573H
003583H
003593H
000074H 000084H
003574H
003584H
003594H
000075H 000085H
003575H
003585H
003595H
000076H 000086H
003576H
003586H
003596H
000077H 000087H
003577H
003587H
003597H
000078H 000088H
003578H
003588H
003598H
000079H 000089H
003579H
003589H
003599H
00007AH 00008AH 00357AH 00358AH 00359AH
リモート要求受信
00007BH 00008BH 00357BH 00358BH 00359BH レジスタ
00007CH 00008CH 00357CH 00358CH 00359CH
受信オーバラン
00007DH 00008DH 00357DH 00358DH 00359DH レジスタ
00007EH 00008EH 00357EH
00007FH 00008FH 00357FH
00358EH 00359EH
003704H 003904H 003B04H 003D04H 003F04H
003708H 003908H 003B08H 003D08H 003F08H
003709H 003909H 003B09H 003D09H 003F09H
00370AH 00390AH 003B0AH 003D0AH 003F0AH
00370BH 00390BH 003B0BH 003D0BH 003F0BH
IDE レジスタ
送信 RTR レジスタ
00370CH 00390CH 003B0CH 003D0CH 003F0CH
リモートフレーム
00370DH 00390DH 003B0DH 003D0DH 003F0DH 受信待機レジスタ
*: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。
452
第 23 章 CAN コントローラ
表 23.3-1 全体制御レジスタの一覧 (2 / 2)
アドレス
CAN0
CAN1
CAN2 * CAN3 * CAN4 *
レジスタ
00370EH 00390EH 003B0EH 003D0EH 003F0EH
送信割込み許可
00370FH 00390FH 003B0FH 003D0FH 003F0FH レジスタ
略号
アクセス
初期値
TIER
R/W
00000000 00000000B
003710H 003910H 003B10H 003D10H 003F10H
003711H 003911H 003B11H 003D11H 003F11H アクセプタンス
マスク選択
003712H 003912H 003B12H 003D12H 003F12H
レジスタ
003713H 003913H 003B13H 003D13H 003F13H
XXXXXXXX XXXXXXXXB
AMSR
R/W
XXXXXXXX XXXXXXXXB
003714H 003914H 003B14H 003D14H 003F14H
003715H 003915H 003B15H 003D15H 003F15H アクセプタンス
003716H 003916H 003B16H 003D16H 003F16H マスクレジスタ 0
XXXXXXXX XXXXXXXXB
AMR0
R/W
XXXXX--- XXXXXXXXB
003717H 003917H 003B17H 003D17H 003F17H
003718H 003918H 003B18H 003D18H 003F18H
003719H 003919H 003B19H 003D19H 003F19H アクセプタンス
00371AH 00391AH 003B1AH 003D1AH 003F1AH マスクレジスタ 1
00371BH 00391BH 003B1BH 003D1BH 003F1BH
XXXXXXXX XXXXXXXXB
AMR1
R/W
XXXXX--- XXXXXXXXB
*: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。
453
第 23 章 CAN コントローラ
23.4
メッセージバッファ (ID レジスタ ) の一覧
表 23.4-1 に , メッセージバッファ (ID レジスタ ) の一覧を示します。
■ メッセージバッファ (ID レジスタ ) の一覧
表 23.4-1 メッセージバッファ (ID レジスタ ) の一覧 (1 / 2)
アドレス
レジスタ
CAN0
CAN1
略号 アクセス
初期値
CAN2 * CAN3 * CAN4 *
003600H 003800H 003A00H 003C00H 003E00H
汎用 RAM
~
~
~
~
~
00361FH 00381FH 003A1FH 003C1FH 003E1FH
--
R/W
003620H 003820H 003A20H 003C20H 003E20H
003621H 003821H 003A21H 003C21H 003E21H
003622H 003822H 003A22H 003C22H 003E22H
003623H 003823H 003A23H 003C23H 003E23H
003624H 003824H 003A24H 003C24H 003E24H
XXXXXXXX XXXXXXXXB
ID レジスタ 0
00362AH 00382AH 003A2AH 003C2AH 003E2AH
IDR0
R/W
XXXXX--- XXXXXXXXB
003625H 003825H 003A25H 003C25H 003E25H
ID レジスタ 1
003626H 003826H 003A26H 003C26H 003E26H
003627H 003827H 003A27H 003C27H 003E27H
003628H 003828H 003A28H 003C28H 003E28H
003629H 003829H 003A29H 003C29H 003E29H
XXXXXXXX XXXXXXXXB
IDR1
R/W
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 2
IDR2
R/W
XXXXX--- XXXXXXXXB
00362BH 00382BH 003A2BH 003C2BH 003E2BH
00362CH 00382CH 003A2CH 003C2CH 003E2CH
00362DH 00382DH 003A2DH 003C2DH 003E2DH
00362EH 00382EH 003A2EH 003C2EH 003E2EH
00362FH 00382FH 003A2FH 003C2FH 003E2FH
XXXXXXXX XXXXXXXXB
ID レジスタ 3
IDR3
R/W
XXXXX--- XXXXXXXXB
003630H 003830H 003A30H 003C30H 003E30H
003631H 003831H 003A31H 003C31H 003E31H
ID レジスタ 4
003632H 003832H 003A32H 003C32H 003E32H
XXXXXXXX XXXXXXXXB
IDR4
R/W
XXXXX--- XXXXXXXXB
003633H 003833H 003A33H 003C33H 003E33H
003634H 003834H 003A34H 003C34H 003E34H
003635H 003835H 003A35H 003C35H 003E35H
003636H 003836H 003A36H 003C36H 003E36H
XXXXXXXX XXXXXXXXB
ID レジスタ 5
IDR5
R/W
XXXXX--- XXXXXXXXB
003637H 003837H 003A37H 003C37H 003E37H
003638H 003838H 003A38H 003C38H 003E38H
003639H 003839H 003A39H 003C39H 003E39H
ID レジスタ 6
00363AH 00383AH 003A3AH 003C3AH 003E3AH
00363BH 00383BH 003A3BH 003C3BH 003E3BH
*: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。
454
XXXXXXXXB ~ XXXXXXXXB
XXXXXXXX XXXXXXXXB
IDR6
R/W
XXXXX--- XXXXXXXXB
第 23 章 CAN コントローラ
表 23.4-1 メッセージバッファ (ID レジスタ ) の一覧 (2 / 2)
アドレス
レジスタ
CAN0
CAN1
略号 アクセス
初期値
CAN2 * CAN3 * CAN4 *
00363CH 00383CH 003A3CH 003C3CH 003E3CH
00363DH 00383DH 003A3DH 003C3DH 003E3DH
ID レジスタ 7
00363EH 00383EH 003A3EH 003C3EH 003E3EH
00363FH 00383FH 003A3FH 003C3FH 003E3FH
003640H 003840H 003A40H 003C40H 003E40H
003641H 003841H 003A41H 003C41H 003E41H
ID レジスタ 8
003642H 003842H 003A42H 003C42H 003E42H
XXXXXXXX XXXXXXXXB
IDR7
R/W
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
IDR8
R/W
XXXXX--- XXXXXXXXB
003643H 003843H 003A43H 003C43H 003E43H
003644H 003844H 003A44H 003C44H 003E44H
003645H 003845H 003A45H 003C45H 003E45H
003646H 003846H 003A46H 003C46H 003E46H
003647H 003847H 003A47H 003C47H 003E47H
003648H 003848H 003A48H 003C48H 003E48H
003649H 003849H 003A49H 003C49H 003E49H
00364AH 00384AH 003A4AH 003C4AH 003E4AH
00364BH 00384BH 003A4BH 003C4BH 003E4BH
XXXXXXXX XXXXXXXXB
ID レジスタ 9
IDR9
R/W
XXXXX--- XXXXXXXXB
XXXXXXXX XXXXXXXXB
ID レジスタ 10 IDR10
R/W
XXXXX--- XXXXXXXXB
00364CH 00384CH 003A4CH 003C4CH 003E4CH
00364DH 00384DH 003A4DH 003C4DH 003E4DH
ID レジスタ 11 IDR11
00364EH 00384EH 003A4EH 003C4EH 003E4EH
XXXXXXXX XXXXXXXXB
R/W
XXXXX--- XXXXXXXXB
00364FH 00384FH 003A4FH 003C4FH 003E4FH
003650H 003850H 003A50H 003C50H 003E50H
003651H 003851H 003A51H 003C51H 003E51H
003652H 003852H 003A52H 003C52H 003E52H
003653H 003853H 003A53H 003C53H 003E53H
003654H 003854H 003A54H 003C54H 003E54H
003655H 003855H 003A55H 003C55H 003E55H
003656H 003856H 003A56H 003C56H 003E56H
003657H 003857H 003A57H 003C57H 003E57H
003658H 003858H 003A58H 003C58H 003E58H
003659H 003859H 003A59H 003C59H 003E59H
00365AH 00385AH 003A5AH 003C5AH 003E5AH
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
00365BH 00385BH 003A5BH 003C5BH 003E5BH
00365CH 00385CH 003A5CH 003C5CH 003E5CH
00365DH 00385DH 003A5DH 003C5DH 003E5DH
00365EH 00385EH 003A5EH 003C5EH 003E5EH
00365FH 00385FH 003A5FH 003C5FH 003E5FH
XXXXXXXX XXXXXXXXB
ID レジスタ 15 IDR15
R/W
XXXXX--- XXXXXXXXB
*: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。
455
第 23 章 CAN コントローラ
23.5
メッセージバッファ (DLC/ データレジスタ ) の一覧
表 23.5-1 に , メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧を示し
ます。
■ メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧
表 23.5-1 メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧 (1 / 2)
アドレス
レジスタ
CAN0
CAN1
CAN2 *
CAN3 * CAN4 *
003660H
003860H
003A60H
003C60H
003E60H
003661H
003861H
003A61H
003C61H
003E61H
003662H
003862H
003A62H
003C62H
003E62H
003663H
003863H
003A63H
003C63H
003E63H
003664H
003864H
003A64H
003C64H
003E64H
003665H
003865H
003A65H
003C65H
003E65H
003666H
003866H
003A66H
003C66H
003E66H
003667H
003867H
003A67H
003C67H
003E67H
003668H
003868H
003A68H
003C68H
003E68H
003669H
003869H
003A69H
003C69H
003E69H
00366AH 00386AH 003A6AH 003C6AH 003E6AH
00366BH 00386BH 003A6BH 003C6BH 003E6BH
00366CH 00386CH 003A6CH 003C6CH 003E6CH
00366DH 00386DH 003A6DH 003C6DH 003E6DH
00366EH 00386EH 003A6EH 003C6EH 003E6EH
00366FH 00386FH 003A6FH
003C6FH
003E6FH
003670H
003870H
003A70H
003C70H
003E70H
003671H
003871H
003A71H
003C71H
003E71H
003672H
003872H
003A72H
003C72H
003E72H
003673H
003873H
003A73H
003C73H
003E73H
003674H
003874H
003A74H
003C74H
003E74H
003675H
003875H
003A75H
003C75H
003E75H
003676H
003876H
003A76H
003C76H
003E76H
003677H
003877H
003A77H
003C77H
003E77H
003678H
003878H
003A78H
003C78H
003E78H
003679H
003879H
003A79H
003C79H
003E79H
00367AH 00387AH 003A7AH 003C7AH 003E7AH
00367BH 00387BH 003A7BH 003C7BH 003E7BH
略号
アクセス
初期値
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
*: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。
456
第 23 章 CAN コントローラ
表 23.5-1 メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧 (2 / 2)
アドレス
レジスタ
CAN0
CAN1
CAN2 *
略号
アクセス
初期値
DLC レジスタ 14
DLCR14
R/W
---- XXXXB
DLC レジスタ 15
DLCR15
R/W
---- XXXXB
CAN3 * CAN4 *
00367CH 00387CH 003A7CH 003C7CH 003E7CH
00367DH 00387DH 003A7DH 003C7DH 003E7DH
00367EH 00387EH 003A7EH 003C7EH 003E7EH
00367FH 00387FH 003A7FH
003C7FH
003E7FH
003680H
~
003687H
003A80H
~
003A87H
003C80H
~
003C87H
003E80H データレジスタ 0
~
003E87H (8 バイト )
DTR0
R/W
XXXXXXXXB ~
XXXXXXXXB
003688H 003888H 003A88H
~
~
~
00368FH 00388FH 003A8FH
003C88H
~
003C8FH
003E88H データレジスタ 1
~
003E8FH (8 バイト )
DTR1
R/W
XXXXXXXXB ~
XXXXXXXX
003890H
~
003897H
003A90H
~
003A97H
003C90H
~
003C97H
003E90H データレジスタ 2
~
003E97H (8 バイト )
DTR2
R/W
XXXXXXXXB ~
XXXXXXXXB
003698H 003898H 003A98H
~
~
~
00369FH 00389FH 003A9FH
003C98H
~
003C9FH
003E98H データレジスタ 3
~
003E9FH (8 バイト )
DTR3
R/W
XXXXXXXXB ~
XXXXXXXXB
0036A0H 0038A0H 003AA0H 003CA0H 003EA0H データレジスタ 4
~
~
~
~
~
0036A7H 0038A7H 003AA7H 003CA7H 003EA7H (8 バイト )
DTR4
R/W
XXXXXXXXB ~
XXXXXXXXB
0036A8H 0038A8H 003AA8H 003CA8H 003EA8H データレジスタ 5
~
~
~
~
~
0036AFH 0038AFH 003AAFH 003CAFH 003EAFH (8 バイト )
DTR5
R/W
XXXXXXXXB ~
XXXXXXXXB
0036B0H 0038B0H 003AB0H 003CB0H 003EB0H データレジスタ 6
~
~
~
~
~
0036B7H 0038B7H 003AB7H 003CB7H 003EB7H (8 バイト )
DTR6
R/W
XXXXXXXXB ~
XXXXXXXXB
0036B8H 0038B8H 003AB8H 003CB8H 003EB8H データレジスタ 7
~
~
~
~
~
0036BFH 0038BFH 003ABFH 003CBFH 003EBFH (8 バイト )
DTR7
R/W
XXXXXXXXB ~
XXXXXXXXB
0036C0H 0038C0H 003AC0H 003CC0H 003EC0H データレジスタ 8
~
~
~
~
~
0036C7H 0038C7H 003AC7H 003CC7H 003EC7H (8 バイト )
DTR8
R/W
XXXXXXXXB ~
XXXXXXXXB
0036C8H 0038C8H 003AC8H 003CC8H 003EC8H データレジスタ 9
~
~
~
~
~
0036CFH 0038CFH 003ACFH 003CCFH 003ECFH (8 バイト )
DTR9
R/W
XXXXXXXXB ~
XXXXXXXXB
0036D0H 0038D0H 003AD0H 003CD0H 003ED0H データレジスタ 10
~
~
~
~
~
0036D7H 0038D7H 003AD7H 003CD7H 003ED7H (8 バイト )
DTR10
R/W
XXXXXXXXB ~
XXXXXXXXB
0036D8H 0038D8H 003AD8H 003CD8H 003ED8H データレジスタ 11
~
~
~
~
~
0036DFH 0038DFH 003ADFH 003CDFH 003EDFH (8 バイト )
DTR11
R/W
XXXXXXXXB ~
XXXXXXXXB
0036E0H 0038E0H 003AE0H 003CE0H 003EE0H データレジスタ 12
~
~
~
~
~
0036E7H 0038E7H 003AE7H 003CE7H 003EE7H (8 バイト )
DTR12
R/W
XXXXXXXXB ~
XXXXXXXXB
0036E8H 0038E8H 003AE8H 003CE8H 003EE8H データレジスタ 13
~
~
~
~
~
0036EFH 0038EFH 003AEFH 003CEFH 003EEFH (8 バイト )
DTR13
R/W
XXXXXXXXB ~
XXXXXXXXB
0036F0H 0038F0H 003AF0H
~
~
~
0036F7H 0038F7H 003AF7H
003EF0H データレジスタ 14
~
003EF7H (8 バイト )
DTR14
R/W
XXXXXXXXB ~
XXXXXXXXB
0036F8H 0038F8H 003AF8H 003CF8H 003EF8H データレジスタ 15
~
~
~
~
~
0036FFH 0038FFH 003AFFH 003CFFH 003EFFH (8 バイト )
DTR15
R/W
XXXXXXXXB ~
XXXXXXXXB
003690H
~
003697H
003880H
~
003887H
003CF0H
~
003CF7H
*: CAN2, CAN3, CAN4 は全 MB90390 シリーズでサポートされていません。
457
第 23 章 CAN コントローラ
23.6
CAN コントローラのレジスタ分類
CAN コントローラのレジスタは , 次の 3 種類に分類されます。
• 全体制御レジスタ
• メッセージバッファ制御レジスタ
• メッセージバッファ
■ 全体制御レジスタ
全体制御レジスタには , 次の 4 種類があります。
• 制御ステータスレジスタ (CSR)
• ラストイベント表示レジスタ (LEIR)
• 受信および送信エラーカウンタ (RTEC)
• ビットタイミングレジスタ (BTR)
■ メッセージバッファ制御レジスタ
メッセージバッファ制御レジスタには , 次の 14 種類のレジスタがあります。
• メッセージバッファ有効レジスタ (BVALR)
• IDE レジスタ (IDER)
• 送信要求レジスタ (TREQR)
• 送信 RTR レジスタ (TRTRR)
• リモートフレーム受信待機レジスタ (RFWTR)
• 送信解除レジスタ (TCANR)
• 送信完了レジスタ (TCR)
• 送信割込み許可レジスタ (TIER)
• 受信完了レジスタ (RCR)
• リモート要求受信レジスタ (RRTRR)
• 受信オーバランレジスタ (ROVRR)
• 受信割込み許可レジスタ (RIER)
• アクセプタンスマスク選択レジスタ (AMSR)
• アクセプタンスマスクレジスタ 0 および 1(AMR0, AMR1)
■ メッセージバッファ
メッセージバッファは , 次の 3 種類があります。
• ID レジスタ x (x=0 ~ 15) (IDRx)
• DLC レジスタ x (x=0 ~ 15) (DLCRx)
• データレジスタ x (x=0 ~ 15) (DTRx)
458
第 23 章 CAN コントローラ
制御ステータスレジスタ (CSR)
23.6.1
CAN 制御ステータスレジスタ (CSR) の下位 8 ビットに対しては , ビット操作命令
( リードモディファイライト (RMW) 系命令 ) を実行することは禁止されています。
ただし , HALT ビットが変化しないタイミングでは , ビット操作命令を使用しても問
題ありません ( マクロ命令の初期化時など )。
■ 制御ステータスレジスタ (CSR) ( 下位 )
図 23.6-1 制御ステータスレジスタの構成 ( 下位バイト )
アドレス:
bit 7
CAN0: 003700 H TOE
CAN1: 003900 H
CAN2: 003B00 H
CAN3: 003D00 H R/W
CAN4: 003F00 H
6
5
4
3
2
1
0
-
-
-
-
NIE 予約 HALT
-
-
-
-
R/W W R/W
CSR0/CSR1/CSR2/CSR3/CSR4 (下位)
初期値
0 X X X X 0 X 1B
bit 0
HALT
バス動作停止ビット
0
書込み : バス動作停止をキャンセル
読出し : ストップモード以外でのバス動作
1
書込み : バス動作停止
読出し : ストップモードでのバス動作
bit 1
予約ビット
Reserved
0
bit 5
NIE
"1" を書き込まないでください
ノードステータス遷移割込み許可ビット
0
ノードステータス遷移割込み許可
1
ノードステータス遷移割込み禁止
bit 6
TOE
R/W
W
X
-
:
:
:
:
リード/ライト可能
ライトオンリ
不定
未定義
:
初期値
転送出力許可ビット
0
汎用ポート端子
1
CAN コントローラ転送端子
459
第 23 章 CAN コントローラ
■ 制御ステータスレジスタ (CSR 下位 ) の内容
表 23.6-1 制御ステータスレジスタ ( 下位 ) の各ビット機能
ビット名
bit7
bit6 ~
bit3
TOE:
送信出力許可
ビット
機能
本ビットに "1" を書き込むと汎用ポート端子を CAN コントローラの
送信端子に切り換えます。
"0": 汎用ポート端子
"1": CAN コントローラの送信端子
不定
-
bit2
NIE:
ノードステータス
遷移割込み
許可ビット
本ビットはノードステータス遷移割込み (NT = 1 の場合 ) を許可また
は禁止します。
"0": ノードステータス遷移割込みを禁止する
"1": ノードステータス遷移割込みを許可する
bit1
予約ビット
予約ビットです。このビットには , "1" を書き込まないでください。
このビットはバス動作停止を制御します。バス停止状態はこのビッ
トを読み出すことで確認できます。
このビットへの書込み
"0": バス動作停止をキャンセル
"1": バス動作停止
このビットの読出し
"0": バス動作が停止していない状態
"1": バス動作が停止状態
bit0
HALT:
バス動作停止
ビット
( 注意事項 )
バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビット
が "1" になっていることを確認後 , "0" を書き込んでください。
プログラム例 :
switch ( IO_CANCT0.CSR.bit.NS )
{
case 0 : /* error active */
break;
case 1 : /* warning */
break;
case 2 : /* error passive */
break;
default : /* bus off */
for ( i=0; ( i <= 500 ) && ( IO_CANCT0.CSR.bit.HALT == 0); i++);
IO_CANCT0.CSR.word = 0x0084; /* HALT = 0 */
break;
}
( 注意事項 ) 変数値 "i" は , フェイルセーフとして使用しています。
460
第 23 章 CAN コントローラ
■ 制御ステータスレジスタ (CSR) ( 上位 )
図 23.6-2 制御ステータスレジスタ ( 上位バイト ) の構成
アドレス:
bit 15
CAN0: 003701 H
CAN1: 003901 H
CAN2: 003B01 H
CAN3: 003D01 H
CAN4: 003F01 H
14
13
12
11
10
TS
RS
-
-
-
NT
R
R
-
-
-
9
8
NS1 NS0
CSR0/CSR1/CSR2/CSR3/CSR4 (上位)
初期値
00XXX000B
R/W R
R
bit9
bit8
NS1
NS0
0
0
エラーがアクティブ
0
1
1
0
警告 ( エラーがアクティブ )
エラーパッシブ
1
1
バスオフ
ノード状態
bit10
NT
0
1
ノードステータス遷移フラグ
変化なし
ステータス変化
bit14
RS
受信ステータスビット
0
メッセージ受信なし
1
メッセージ受信あり
bit15
R/W
R
X
-
:
:
:
:
リード/ライト可能
リードオンリ
:
初期値
遷移ステータスビット
TS
0
メッセージ転送なし
1
メッセージ転送あり
不定
未定義
461
第 23 章 CAN コントローラ
■ 制御ステータスレジスタ (CSR 上位 ) の内容
表 23.6-2 制御ステータスレジスタ ( 上位 ) の各ビット機能
ビット名
bit15
bit14
bit13 ~
bit11
機能
TS:
送信ステータス
ビット
本ビットはメッセージが送信中であるかどうかを示します。
"0": メッセージは送信されていません。
"1": メッセージが送信されています。
本ビットはエラーフレームおよびオーバフローフレームが送信され
ている間も "0" です。
RS:
受信ステータス
ビット
本ビットはメッセージが受信されているかどうかを示します。
"0": メッセージは受信されていません。
"1": メッセージが受信されています。
メッセージがバス上にある間 , 本ビットは "1" になります。このた
め , 本ビットはメッセージが送信されている間も "1" になります。
本ビットは必ずしも , 受信メッセージがアクセプタンスフィルタを
通過したかどうかを示すものではありません。
結果として , 本ビットが "0" であるときはバス動作は停止している
(HALT = 0) か , バスはインターミッション / バスアイドルにある , ま
たはエラー / オーバロードフレームがバス上にあることを意味しま
す。
未定義
-
もしノードステータスがインクリメントに変化し , またはバスオフ
からエラーアクティブに変化しても , 本ビットは "1" になります。
すなわち , NT ビットは , ノードステータスがエラーアクティブ
(00B) からワーニング (01B) に , ワーニング (01B) からエラーパッシ
ブ (10B) に , エラーパッシブ (10B) からバスオフ (11B) に , バスオフ
bit10
NT:
ノードステータス
遷移フラグ
bit9,
bit8
NS1, NS0:
ノードステータス
ビット 1 および 0
(11B) からエラーアクティブ (00B) に変化したときに "1" にセットさ
れます。括弧内の数字は NS1 ビットおよび NS0 ビットの値を示し
ます。
ノードステータス遷移割込み許可ビット (NIE) が "1" であるときに
割込みが発生します。"0" を書き込むと NT ビットが "0" にセットさ
れます。NT ビットに "1" を書き込んでも無視されます。リードモ
ディファイライト (RMW) 系命令が読み出されたときに "1" が読み
出されます。
本ビット群は現在のノードステータスを表します。
詳細については表 23.6-3 を参照してください。
表 23.6-3 NS1, NS0 およびノードステータスの間の対応
462
ノードステータス
NS1
NS0
0
0
エラーアクティブ
0
1
ワーニング ( エラーアクティブ )
1
0
エラーパッシブ
1
1
バスオフ
第 23 章 CAN コントローラ
<注意事項>
ワーニング ( エラーアクティブ ) はノードステータスに対する CAN 仕様 2.0B におけるエ
ラーアクティブに含まれますが , 送信エラーカウンタまたは受信エラーカウンタが 96 を
超えたことを表します。ノードステータスの変化図は図 23.6-3 に示されています。
図 23.6-3 ノードステータス遷移図
ハードウェアリセット
REC:受信エラーカウンタ
TEC:送信エラーカウンタ
エラーアクティブ
レジスタ(CSR)のHALTビットに"0"が書き込
まれた後,連続的な11ビット"H"レベル
(リセッシブビット)が受信入力端子(RX)
に128回入力。
REC≧96
または
TEC≧96
REC≧128
または
TEC≧128
ワーニング
(- - -)
(エラー
アクティブ)
REC<96
および
TEC<96
REC<128
および
TEC<128
バスオフ
エラーパッシブ
TEC≧256
463
第 23 章 CAN コントローラ
バス動作停止ビット (HALT=1)
23.6.2
バス動作停止ビットは , バス動作停止をセットもしくは解除し , またはそのステート
を表示します。
■ バス動作停止をセットする条件 (HALT=1)
バス動作停止をセットする条件 (HALT=1) として , 次の 3 つがあります。
• ハードウェアリセットの後
• ノードステータスがバスオフに変化したとき
• HALT への "1" の書込み
<注意事項>
• バス動作は F2MC-16LX が低消費電力消費モード ( 停止モード , タイムベースタイマ
モード ) に遷移する前に HALT に "1" を書き込むことにより停止しなければなりませ
ん。HALT に "1" が書き込まれるときに , 送信が進行中であれば送信が終了した後にバ
ス動作は停止します (HALT=1)。HALT に "1" が書き込まれるときに , 受信が進行中で
あればバス動作は直ちに停止します (HALT=1)。もし , 受信されたメッセージがメッ
セージバッファ (x) に格納中であればメッセージを格納した後に , バス動作は停止しま
す (HALT=1)。
• バス動作が停止したかどうかは , 常に HALT ビットを読み込んでチェックしてくださ
い。
■ バス動作停止を解除する条件 (HALT=0)
HALT への "0" の書込み
<注意事項>
• 上記条件のハードウェアリセット後または HALT に "1" を書き込むことによるバス動作
停止の解除は , HALT に "0" が書き込まれ受信入力端子 (RX) に継続的な 11 ビットの "H"
レベル ( リセッシブビット ) が入力された後に行われます。
• 上記条件のノードステータスがバスオフに変化したときのバス動作停止の解除は , HALT
に "0" が書き込まれ受信入力端子 (RX) に継続的な 11 ビットの "H" レベル ( リセッシブ
ビット ) が 128 回入力された後に行われます。次に送信および受信エラーカウンタの両
者の値が "0" に達してノードステータスはエラーアクティブに変化します。
• バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になっている
ことを確認後 , "0" を書き込んでください。
■ バス動作停止間の状態 (HALT=1)
• バスは , 送信および受信などの動作を一切行いません。
• 送信出力端子 (TX) は , "H" レベル ( リセッシブビット ) を出力します。
• ほかのレジスタおよびエラーカウンタの値は変化しません。
464
第 23 章 CAN コントローラ
<注意事項>
ビットタイミングレジスタ (BTR) はバス動作停止 (HALT=1) の間にセットしなければなり
ません。
465
第 23 章 CAN コントローラ
ラストイベント表示レジスタ (LEIR)
23.6.3
本レジスタはラストイベントを示します。
NTE, TCE および RCE は排他的なものです。ラストイベントのビットが "1" にセッ
トされたとき , ほかのビットは "0" にセットされます。
■ ラストイベント表示レジスタ (LEIR)
図 23.6-4 ラストイベント表示レジスタ (LEIR) の構成
アドレス:
bit 7
CAN0: 003702 H
CAN1: 003902 H
CAN2: 003B02 H
CAN3: 003D02 H
CAN4: 003F02 H
NTE
6
5
TCE RCE
4
-
3
2
1
0
MBP3 MBP2 MBP1 MBP0
LEIR0, LEIR1, LEIR2, LEIR3, LEIR4
初期値
0 0 0 X 0 0 0 0B
R/W R/W R/W
-
R/W R/W R/W R/W
bit3
bit2
bit1
bit0
MBP3
MBP2
MBP1
MBP0
メッセージバッファ
ポインタビット
0 ~ 15 ( 初期値 : 0000B)
bit5
受信完了イベントビット
RCE
0
読出し時
-
1
受信完了
書込み時
ビットクリア
無視
bit6
TCE
転送完了イベントビット
0
読出し時
-
1
転送完了
書込み時
ビットクリア
無視
bit7
NTE
R/W
X
-
:
:
:
:
466
リード/ライト可能
不定
未定義
初期値
0
1
ノードステータス転送イベントビット
読出し時
-
転送イベント
書込み時
ビットクリア
無視
第 23 章 CAN コントローラ
■ ラストイベント表示レジスタ (LEIR) の内容
[bit7] NTE: ノードステータス遷移イベントビット
•
本ビットが"1"のときはノードステータス遷移がラストイベントであることを表
します。
•
本ビットは制御ステータスレジスタ (CSR) の NT ビットと同時に "1" にセットさ
れます。
•
本ビットはまた , CSR のノードステータス遷移割込み許可ビット (NIE) のセッ
ティングとは無関係に "1" にセットされます。
•
本ビットに "0" を書き込むと NTE ビットは "0" にセットされます。本ビットに
"1" を書き込んでも無視されます。
•
リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出され
ます。
[bit6] TCE: 送信完了イベントビット
本ビットが "1" のときは送信完了がラストイベントであることを表します。
本ビットは送信完了レジスタ (TCR) のビットのいずれか 1 つと同時に "1" にセット
されます。また , 本ビットは送信割込み許可レジスタ (TIER) のビットのセッティン
グとは無関係に "1" にセットされます。
"0" を書き込むと本ビットは "0" にセットされます。本ビットに "1" を書き込んでも
無視されます。
リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されま
す。
本ビットが "1" にセットされたとき MBP3 ~ MBP0 ビットは送信動作を完了した
メッセージバッファの番号を示すために使用されます。
[bit5] RCE: 受信完了イベントビット
本ビットが "1" であるときは受信完了がラストイベントであることを表します。
本ビットは受信完了レジスタ (RCR) のビットのいずれか 1 つと同時に "1" にセット
されます。また , 本ビットは受信割込み許可レジスタ (RIER) のビットのセッティン
グとは無関係に "1" にセットされます。
"0" を書き込むと本ビットは "0" にセットされます。本ビットに "1" を書き込んでも
無視されます。
リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されま
す。
本ビットが "1" にセットされたとき MBP3 ~ MBP0 ビットは受信動作を完了した
メッセージバッファの番号を示すために使用されます。
[bit4] 未定義
[bit3 ~ bit0] MBP3 ~ MBP0: メッセージバッファポインタビット
TCE または RCE ビットが "1" にセットされたときに本ビット群は対応するメッセー
ジバッファ (0 ~ 15) の番号を示します。
NTE ビットが "1" にセットされると本ビット群は意味を持ちません。
"0" を書き込むと本ビット群は "0" にセットされます。本ビット群に "1" を書き込ん
でも無視されます。
リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されます。
もし , LEIR が CAN 割込みハンドラ内でアクセスされたとしても割込みを引き起こ
したイベントは必ずしも LEIR により表されるものと同じではありません。割込み
ハンドラ内で LEIR アクセスに対する割込み要求の時点でほかの CAN イベントが発
生する可能性があります。
467
第 23 章 CAN コントローラ
23.6.4
受信および送信エラーカウンタ (RTEC)
受信および送信エラーカウンタは , CAN 仕様で定められる送信エラーカウントおよ
び受信エラーカウントを示します。このレジスタは読出し専用です。
■ 受信および送信エラーカウンタ (RTEC)
図 23.6-5 受信および送信エラーカウンタの構成
bit15
アドレス
CAN0: 003705H TEC7
CAN1: 003905H
R
CAN2: 003B05H
CAN3: 003D05H
CAN4: 003F05H
14
TEC6
R
13
TEC5
R
12
TEC4
R
11
TEC3
R
10
TEC2
R
9
TEC1
R
8
TEC0
R
RTEC ( 上位 )
初期値
00000000B
bit 7
アドレス
CAN0: 003704H REC7
CAN1: 003904H
R
CAN2: 003B04H
CAN3: 003D04H
CAN4: 003F04H
6
REC6
R
5
REC5
R
4
REC4
R
3
REC3
R
2
REC2
R
1
REC1
R
0
REC0
R
RTEC ( 下位 )
初期値
00000000B
R: リードオンリ
■ 受信および送信エラーカウンタ (RTEC) の内容
[bit15 ~ bit8] TEC7 ~ TEC0: 送信エラーカウンタ
これらは送信エラーカウンタです。
TEC7 ~ TEC0 は , カウンタ値が 256 より大きい場合 0 ~ 7 を示します。以降のイン
クリメントはカウンタ値にカウントされません。この場合 , バスオフがノードス
テータスで示されます ( 制御ステータスレジスタ CSR の NS1 および NS0=11B) 。
[bit7 ~ bit0] REC7 ~ REC0: 受信エラーカウンタ
これらは受信エラーカウンタです。
REC7 ~ REC0 は , カウンタ値が 256 より大きい場合に 0 ~ 7 を示します。以降の
インクリメントはカウンタ値にカウントされません。この場合 , エラーパッシブが
ノードステータスで示されます ( 制御ステータスレジスタ CSR の NS1 および
NS0=10B) 。
468
第 23 章 CAN コントローラ
ビットタイミングレジスタ (BTR)
23.6.5
ビットタイミングレジスタ (BTR) はプリスケーラおよびビットタイミングをセット
するものです。
■ ビットタイミングレジスタ (BTR)
図 23.6-6 ビットタイミングレジスタ (BTR) の構成
bit15
アドレス: 003707H(CAN0)
003907H(CAN1)
リード / ライト:
初期値:
14
13
12
11
10
9
8
−
TS2.2
TS2.1
TS2.0
TS1.3
TS1.2
TS1.1
TS1.0
(−)
(X)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
6
5
4
3
2
1
0
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)
bit 7
アドレス: 003706H(CAN0)
RSJ1
003906H(CAN1)
リード / ライト: (R/W)
初期値: (1)
R/W : リード / ライト可能
: 未定義
<注意事項>
本レジスタはバス動作停止 (HALT=1) の間にセットしなければなりません。
■ ビットタイミングレジスタ (BTR) の内容
[bit15] 未定義
[bit14 ~ bit12] TS2.2 ~ TS2.0: タイムセグメント 2 セットビット 2 ~ 0
本ビット群は単位時間 (TQ) を [ (TS2.2 ~ TS2.0) +1] で分周してタイムセグメント
2(TSEG2) を決定します。タイムセグメント 2 は CAN 仕様におけるフェーズバッ
ファセグメント 2(PHASE_SEG2) に等しいものです。
[bit11 ~ bit8] TS1.3 ~ TS1.0: タイムセグメント 1 設定ビット 3 ~ 0
本ビット群は単位時間 (TQ) を [ (TS1.3 ~ TS1.0) +1] で分周してタイムセグメント
1(TSEG1) を決定します。タイムセグメント 1 は CAN 仕様におけるプロパゲーショ
ンセグメント (PROP_SEG)+ フェーズバッファセグメント 1(PHASE_SEG1) に等しい
ものです。
[bit7, bit6] RSJ1, RSJ0: 再同期ジャンプ幅設定ビット 1 および 0
本ビット群は単位時間 (TQ) を [ (RSJ1 ~ RSJ0) +1] で分周して再同期ジャンプ幅を
決定させます。
[bit5 ~ bit0] PSC5 ~ PSC0: プリスケーラ設定ビット 5 ~ 0
本ビット群は入力クロックを [ (PSC5 ~ PSC0) +1] の周波数で分割して CAN コント
ローラの単位時間 (TQ) を決定します。
469
第 23 章 CAN コントローラ
■ プリスケーラ設定
CAN 仕様および CAN コントローラのそれぞれにおけるビット時間セグメントは図
23.6-7 および図 23.6-8 に示されています。
図 23.6-7 CAN 仕様におけるビット時間セグメント
ノミナルビット時間
SYNC_SEG
PROP_SEG
PHASE_SEG1
PHASE_SEG2
サンプルポイント
図 23.6-8 CAN コントローラにおけるビット時間セグメント
ノミナルビット時間
SYNC_SEG
TSEG1
TSEG2
サンプルポイント
入力クロック (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
BT
RSJW
= (PSC + 1)
× CLK
= SYNC_SEG + TSEG1 + TSEG2
= (1 + (TS1 + 1) + (TS2 + 1))
= (3 + TS1 + TS2) TQ
= (RSJ + 1)
× TQ
× TQ
正しく動作を行うためには以下の条件を満足しなければなりません。
・1 ≦ PSC ≦ 63 の場合
TSEG1 ≧ 2TQ
TSEG1 ≧ RSJW
TSEG2 ≧ 2TQ
TSEG2 ≧ RSJW
・PSC=0 の場合
TSEG1 ≧ 5TQ
TSEG2 ≧ 2TQ
TSEG2 ≧ RSJW
CAN 仕様に従ったビットタイミングの設定をするためには , 遅延時間などほかの条件
も考慮しなければなりません。
470
第 23 章 CAN コントローラ
メッセージバッファ有効レジスタ (BVALR)
23.6.6
メッセージバッファ有効レジスタ (BVALR) は , メッセージバッファ (x) の有効性を
セットしまたはそのステートを表示します。
■ メッセージバッファ有効レジスタ (BVALR)
図 23.6-9 メッセージバッファ有効レジスタ (BVALR) の構成
bit15
アドレス:
CAN0: 000071H BVAL15
CAN1: 000081H
R/W
CAN2: 003571H
CAN3: 003581H
CAN4: 003591H
bit 7
アドレス:
CAN0: 000070H BVAL7
CAN1: 000080H
R/W
CAN2: 003570H
CAN3: 003580H
CAN4: 003590H
14
13
12
11
10
9
8
BVAL14
BVAL13
BVAL12
BVAL11
BVAL10
BVAL9
BVAL8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
6
5
4
3
2
1
0
BVAL6
BVAL5
BVAL4
BVAL3
BVAL2
BVAL1
BVAL0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
BVALRn ( 上位 )
初期値
00000000B
BVALRn ( 下位 )
初期値
00000000B
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
[bit15 ~ bit0] BVAL15 ~ BVAL0:メッセージバッファ有効レジスタ (BVALR)
"0": メッセージバッファ (x) 無効
"1": メッセージバッファ (x) 有効
メッセージバッファ (x) が無効にセットされるとメッセージを送信または受信しませ
ん。
バッファが送信動作の間に無効にセットされると送信が完了またはエラーにより終了
した後で無効 (BVALx=0) になります。
バッファが受信動作の間に無効にセットされると直ちに無効 (BVALx=0) になります。
もし , 受信メッセージがメッセージバッファ (x) に格納されていればメッセージバッ
ファ (x) はメッセージを格納した後に無効となります。
<注意事項>
• x はメッセージバッファ番号を示します (x=0 ~ 15) 。
• ビット (BVALx) に "0" を書き込むことによりメッセージバッファ(x) を無効としたとき
にビット操作命令の実行はそのビットが "0" にセットされるまで禁止されます。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が
"0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で ,
メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「23.16 CAN コントロー
ラの使用上の注意」に従ってください。
471
第 23 章 CAN コントローラ
IDE レジスタ (IDER)
23.6.7
本レジスタは送信 / 受信の間にメッセージバッファ (x) により使用されるフレーム
フォーマットを設定します。
■ IDE レジスタ (IDER)
図 23.6-10 IDE レジスタ (IDER) の構成
bit15
14
13
12
11
10
アドレス:
CAN0: 003709H IDE15 IDE14 IDE13 IDE12 IDE11 IDE10
CAN1: 003909H
R/W
R/W
R/W
R/W
R/W
R/W
CAN2: 003B09H
CAN3: 003D09H
CAN4: 003F09H
9
IDE9
R/W
8
IDE8
R/W
IDERn ( 上位 )
初期値
XXXXXXXXB
bit 7
アドレス:
CAN0: 003708H IDE7
CAN1: 003908H
R/W
CAN2: 003B08H
CAN3: 003D08H
CAN4: 003F08H
1
IDE1
R/W
0
IDE0
R/W
IDERn ( 下位 )
初期値
XXXXXXXXB
6
IDE6
R/W
5
IDE5
R/W
4
IDE4
R/W
3
IDE3
R/W
2
IDE2
R/W
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
[bit15 ~ bit0] IDE15 ~ IDE0:IDE レジスタ (IDER)
"0": メッセージバッファ (x) に対して標準フレームフォーマット (ID11 ビット ) が使用
されます。
"1": メッセージバッファ (x) に対して拡張フレームフォーマット (ID29 ビット ) が使用
されます。
<注意事項>
• 本レジスタはメッセージバッファ (x) が無効であるとき ( メッセージバッファ有効レジ
スタの BVALx(BVALR)=0) に設定しなければなりません。バッファが有効である
(BVALx=1)ときに設定を行うと受信メッセージを不必要に格納する可能性があります。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が
"0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で ,
メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「23.16 CAN コントロー
ラの使用上の注意」に従ってください。
472
第 23 章 CAN コントローラ
23.6.8
送信要求レジスタ (TREQR)
送信要求レジスタ (TREQR) は , メッセージバッファ (x) に対する送信要求を設定し
またはその状態を表示します。
■ 送信要求レジスタ (TREQR)
図 23.6-11 送信要求レジスタ (TREQR) の構成
bit15
アドレス:
CAN0: 000073H TREQ15
R/W
CAN1: 000083H
CAN2: 003573H
CAN3: 003583H
CAN4: 003593H
bit 7
アドレス:
CAN0: 000072H TREQ7
R/W
CAN1: 000082H
CAN2: 003572H
CAN3: 003582H
CAN4: 003592H
14
13
12
11
10
TREQ14 TREQ13 TREQ12 TREQ11 TREQ10
R/W
R/W
R/W
R/W
R/W
9
8
TREQ9
TREQ8
R/W
R/W
6
5
4
3
2
1
0
TREQ6
TREQ5
TREQ4
TREQ3
TREQ2
TREQ1
TREQ0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TREQRn ( 上位 )
初期値
00000000B
TREQRn ( 下位 )
初期値
00000000B
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
[bit15 ~ bit0] TREQ15 ~ TREQ0:送信要求レジスタ (TREQR)
TREQx に "1" が書き込まれたときメッセージバッファ (x) に対する送信を開始します。
もし , リモートフレーム受信待機レジスタ (RFWTR)*1 の RFWTx が "0" であれば送信は
直ちに開始します。しかし , RFWTx=1 であればリモートフレームが受信される ( リモー
ト要求受信レジスタ (RRTRR)*1 が "1" になる ) まで待機した後に送信が開始します。
もし , TREQx に "1" が書き込まれるときに RRTRx が既に "1" であれば , RFWTx=1 で
あっても送信は直ちに開始します *2。
*1: TRTRR および RFWTR に関しては「23.6.9 送信 RTR レジスタ (TRTRR)」および
「23.6.10 リモートフレーム受信待機レジスタ (RFWTR)」を参照してください。
*2: 送信の解除に関しては「23.6.11 送信解除レジスタ (TCANR)」および「23.6.12 送信
完了レジスタ (TCR)」を参照してください。
TREQx に "0" を書き込んでも無視されます。
リードモディファイライト(RMW)系命令が読み出されたときは"0"が読み出されます。
もし , 送信動作の完了時における ("0" への ) クリアおよび "1" の書込みによる設定が同
時に発生した場合にはクリア動作が優先されます。
もし , 1 つ以上のビットに "1" が書き込まれると下位番号のメッセージバッファ (x) か
ら開始して送信が行われます。
TREQx は送信が待ち状態中は "1" であり送信が完了または解除されたときに "0" にな
ります。
473
第 23 章 CAN コントローラ
23.6.9
送信 RTR レジスタ (TRTRR)
本レジスタはメッセージバッファ (x) による送信 RTR ( リモート送信要求 ) ビットを
設定するものです。
■ 送信 RTR レジスタ (TRTRR)
図 23.6-12 送信 RTR レジスタ (TRTRR) の構成
bit15
アドレス:
CAN0: 00370BH TRTR15
CAN1: 00390BH R/W
CAN2: 003B0BH
CAN3: 003D0BH
CAN4: 003F0BH
bit 7
アドレス:
CAN0: 00370AH TRTR7
CAN1: 00390AH R/W
CAN2: 003B0AH
CAN3: 003D0AH
CAN4: 003F0AH
14
13
12
11
10
9
8
TRTR14
TRTR13
TRTR12
TRTR11
TRTR10
TRTR9
TRTR8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
6
5
4
3
2
1
0
TRTR6
TRTR5
TRTR4
TRTR3
TRTR2
TRTR1
TRTR0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W: リード / ライト可能
[bit15 ~ bit0] TRTR15 ~ TRTR0:送信 RTR レジスタ (TRTRR)
"0": データフレームが送信されます。
"1": リモートフレームが送信されます。
474
TRTRRn ( 上位 )
初期値
00000000B
TRTRRn ( 下位 )
初期値
00000000B
n = 0, 1, 2, 3, 4
第 23 章 CAN コントローラ
リモートフレーム受信待機レジスタ (RFWTR)
23.6.10
リモートフレーム受信待機レジスタ (RFWTR) は , データフレーム送信に対する要求
が設定された ( 送信要求レジスタ (TREQR) の TREQx が "1" であり , 送信 RTR レジ
スタ (TRTRR) の TRTRx が "0" である ) ときに送信を開始する条件を設定します。
■ リモートフレーム受信待機レジスタ (RFWTR)
図 23.6-13 リモートフレーム受信待機レジスタ (RFWTR) の構成
bit15
アドレス:
CAN0: 00370DH RFWT15
CAN1: 00390DH R/W
CAN2: 003B0DH
CAN3: 003D0DH
CAN4: 003F0DH
bit 7
アドレス:
CAN0: 00370CH RFWT7
CAN1: 00390CH R/W
CAN2: 003B0CH
CAN3: 003D0CH
CAN4: 003F0CH
14
13
12
11
10
9
8
RFWT14
RFWT13
RFWT12
RFWT11
RFWT10
RFWT9
RFWT8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
6
5
4
3
2
1
0
RFWT6
RFWT5
RFWT4
RFWT3
RFWT2
RFWT1
RFWT0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
RFWTRn ( 上位 )
初期値
XXXXXXXXB
RFWTRn ( 下位 )
初期値
XXXXXXXXB
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
[bit15 ~ bit0] RFWT15 ~ RFWT0:リモートフレーム受信待機レジスタ (RFWTR)
"0": 送信を直ちに開始します。
"1": リモートフレーム受信 ( リモート要求受信レジスタ (RRTRR) が "1" になる ) まで待
機した後に送信を開始します。
<注意事項>
• 送信に対する要求が設定されたときに RRTRx が既に "1" であれば送信を直ちに開始し
ます。
• リモートフレーム送信に対しては RFWTx を "1" にセットしないでください。
475
第 23 章 CAN コントローラ
23.6.11
送信解除レジスタ (TCANR)
TCANx に "1" が書き込まれたときに本レジスタはメッセージバッファ (x) への送信
に対する待ち状態中の要求を解除します。
解除の完了時に送信要求レジスタ (TREQR) の TREQx は "0" になります。TCANx
に "0" を書き込んでも無視されます。
これは書込み専用レジスタであり , その読出し値は常に "0" です。
■ 送信解除レジスタ (TCANR)
図 23.6-14 送信解除レジスタ (TCANR) の構成
bit15
アドレス:
CAN0: 000075H TCAN15
W
CAN1: 000085H
CAN2: 003575H
CAN3: 003585H
CAN4: 003595H
bit 7
アドレス:
CAN0: 000074H TCAN7
W
CAN1: 000084H
CAN2: 003574H
CAN3: 003584H
CAN4: 003594H
W: ライトオンリ
476
14
13
12
11
10
TCAN14 TCAN13 TCAN12 TCAN11 TCAN10
W
W
W
W
W
9
8
TCAN9
TCAN8
W
W
6
5
4
3
2
1
0
TCAN6
TCAN5
TCAN4
TCAN3
TCAN2
TCAN1
TCAN0
W
W
W
W
W
W
W
TCANRn ( 上位 )
初期値
00000000B
TCANRn ( 下位 )
初期値
00000000B
n = 0, 1, 2, 3, 4
第 23 章 CAN コントローラ
送信完了レジスタ (TCR)
23.6.12
メッセージバッファ (x) により送信の完了時に対応する TCx は "1" になります。
もし , 送信完了割込み許可レジスタ (TIER) の TIEx が "1" であれば割込みが発生し
ます。
■ 送信完了レジスタ (TCR)
図 23.6-15 送信完了レジスタ (TCR) の構成
bit15
アドレス:
CAN0: 000077H TC15
CAN1: 000087H
R/W
CAN2: 003577H
CAN3: 003587H
CAN4: 003597H
14
TC14
R/W
13
TC13
R/W
12
TC12
R/W
11
TC11
R/W
10
TC10
R/W
9
TC9
R/W
8
TC8
R/W
TCRn ( 上位 )
初期値
00000000B
bit 7
アドレス:
CAN0: 000076H
TC7
CAN1: 000086H
R/W
CAN2: 003576H
CAN3: 003586H
CAN4: 003596H
6
TC6
R/W
5
TC5
R/W
4
TC4
R/W
3
TC3
R/W
2
TC2
R/W
1
TC1
R/W
0
TC0
R/W
TCRn ( 下位 )
初期値
00000000B
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
[bit15 ~ bit0] TC15 ~ TC0:送信完了レジスタ (TCR)
● TCx=0 となる条件
• TCx に "0" を書き込む。
• 送信要求レジスタ (TREQR) の TREQx に "1" を書き込む。
送信の完了の後で TCx に "0" を書き込むとそれを "0" にセットします。TCx に "1" を書
き込んでも無視されます。リードモディファイライト (RMW) 系命令が実行されたとき
は "1" が読み出されます。
<注意事項>
もし , 送信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に発生し
たときは "1" への設定が優先します。
477
第 23 章 CAN コントローラ
23.6.13
送信割込み許可レジスタ (TIER)
本レジスタはメッセージバッファ (x) による送信割込みを許可または禁止します。送
信割込みは送信完了時 ( 送信完了レジスタ (TCR) の TCx が "1" になったとき ) に発
生します。
■ 送信割込み許可レジスタ (TIER)
図 23.6-16 送信割込み許可レジスタ (TIER) の構成
bit15
アドレス:
CAN0: 00370FH TIE15
CAN1: 00390FH R/W
CAN2: 003B0FH
CAN3: 003D0FH
CAN4: 003F0FH
14
TIE14
R/W
13
TIE13
R/W
12
TIE12
R/W
11
TIE11
R/W
10
TIE10
R/W
9
TIE9
R/W
8
TIE8
R/W
TIERn ( 上位 )
初期値
00000000B
bit 7
アドレス:
CAN0: 00370EH TIE7
CAN1: 00390EH R/W
CAN2: 003B0EH
CAN3: 003D0EH
CAN4: 003F0EH
6
TIE6
R/W
5
TIE5
R/W
4
TIE4
R/W
3
TIE3
R/W
2
TIE2
R/W
1
TIE1
R/W
0
TIE0
R/W
TIERn ( 下位 )
初期値
00000000B
R/W: リード / ライト可能
[bit15 ~ bit0] TIE15 ~ TIE0:信割込み許可レジスタ (TIER)
"0": 送信割込みは禁止されます。
"1": 送信割込みは許可されます。
478
n = 0, 1, 2, 3, 4
第 23 章 CAN コントローラ
受信完了レジスタ (RCR)
23.6.14
メッセージバッファ (x) への受信メッセージの格納の完了時に RCx は "1" になりま
す。
もし , 受信完了割込み許可レジスタの RIEx が "1" であれば割込みが発生します。
■ 受信完了レジスタ (RCR)
図 23.6-17 受信完了レジスタ (RCR) の構成
bit15
アドレス:
CAN0: 000079H RC15
CAN1: 000089H
R/W
CAN2: 003579H
CAN3: 003589H
CAN4: 003599H
14
RC14
R/W
13
RC13
R/W
12
RC12
R/W
11
RC11
R/W
10
RC10
R/W
9
RC9
R/W
8
RC8
R/W
RCRn ( 上位 )
初期値
00000000B
bit 7
アドレス:
CAN0: 000078H RC7
CAN1: 000088H
R/W
CAN2: 003578H
CAN3: 003588H
CAN4: 003598H
6
RC6
R/W
5
RC5
R/W
4
RC4
R/W
3
RC3
R/W
2
RC2
R/W
1
RC1
R/W
0
RC0
R/W
RCRn ( 下位 )
初期値
00000000B
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
[bit15 ~ bit0] RC15 ~ RC0:受信完了レジスタ (RCR)
● RCx=0 となる条件
RCx に "0" を書き込む。
受信メッセージの処理の完了の後で RCx に "0" を書き込んで "0" にセットしてくださ
い。RCx に "1" を書き込んでも無視されます。
リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されます。
<注意事項>
もし , 受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に発生し
たときは , "1" への設定が優先します。
479
第 23 章 CAN コントローラ
リモート要求受信レジスタ (RRTRR)
23.6.15
受信されたリモートフレームがメッセージバッファ (x) 内に格納されると RRTRx は
(RCx 設定が "1" になると同時に ) "1" になります。
■ リモート要求受信レジスタ (RRTRR)
図 23.6-18 リモート要求受信レジスタ (RRTRR) の構成
bit15
アドレス:
CAN0: 00007BH RRTR15
CAN1: 00008BH R/W
CAN2: 00357BH
CAN3: 00358BH
CAN4: 00359BH
14
13
12
11
10
RRTR14 RRTR13 RRTR12 RRTR11 RRTR10
bit 7
アドレス:
CAN0: 00007AH RRTR7
CAN1: 00008AH R/W
CAN2: 00357AH
CAN3: 00358AH
CAN4: 00359AH
R/W
R/W
R/W
R/W
R/W
9
8
RRTR9
RRTR8
R/W
R/W
6
5
4
3
2
1
0
RRTR6
RRTR5
RRTR4
RRTR3
RRTR2
RRTR1
RRTR0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
RRTRRn ( 上位 )
初期値
00000000B
RRTRRn ( 下位 )
初期値
00000000B
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
[bit15 ~ bit0] RRTR15 ~ RRTR0:リモート要求受信レジスタ (RRTRR)
● RRTRx=0 となる条件
• RRTRx に "0" を書き込む。
• 受信されたデータフレームがメッセージバッファ (x) に格納された後 (RCx 設定が
"1" になるのと同時 ) 。
• メッセージバッファ (x) による送信が完了した後 ( 送信完了レジスタ (TCR) の TCx
は "1") 。
RRTRx に "1" を書き込んでも無視されます。
リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されます。
<注意事項>
もし , "1" への設定と "0" の書込みによるクリアが同時に発生したときは "1" への設定が優
先します。
480
第 23 章 CAN コントローラ
受信オーバランレジスタ (ROVRR)
23.6.16
もし , メッセージバッファ (x) 内への受信メッセージの格納完了時に受信完了レジス
タ (RCR) が既に "1" であれば , ROVRx は "1" になり受信がオーバランしたことを表
します。
■ 受信オーバランレジスタ (ROVRR)
図 23.6-19 受信オーバランレジスタ (ROVRR) の構成
bit15
アドレス:
CAN0: 00007DH ROVR15
CAN1: 00008DH R/W
CAN2: 00357DH
CAN3: 00358DH
CAN4: 00359DH
bit 7
アドレス:
CAN0: 00007CH ROVR7
CAN1: 00008CH R/W
CAN2: 00357CH
CAN3: 00358CH
CAN4: 00359CH
14
13
12
11
10
9
8
ROVR14
ROVR13
ROVR12
ROVR11
ROVR10
ROVR9
ROVR8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
6
5
4
3
2
1
0
ROVR6
ROVR5
ROVR4
ROVR3
ROVR2
ROVR1
ROVR0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
ROVRRn ( 上位 )
初期値
00000000B
ROVRRn ( 下位 )
初期値
00000000B
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
[bit15 ~ bit0] ROVR15 ~ ROVR0:受信オーバランレジスタ (ROVRR)
ROVRx に "0" を書き込むと ROVRx=0 になります。ROVRx に "1" を書込みしても無視
されます。受信がオーバランしたことをチェックした後で ROVRx に "0" を書き込むと
それを "0" に設定します。
リードモディファイライト (RMW) 系命令が実行されたときは "1" が読み出されます。
<注意事項>
もし , "1" への設定と "0" の書込みによるクリアが同時に発生したときは "1" への設定が優
先します。
481
第 23 章 CAN コントローラ
23.6.17
受信割込み許可レジスタ (RIER)
受信割込み許可レジスタ (RIER) は , メッセージバッファ (x) による受信割込みを許
可または禁止します。
受信割込みは受信完了時 ( 受信完了レジスタ (RCR) の RCx が "1" であるとき ) に発
生します。
■ 受信割込み許可レジスタ (RIER)
図 23.6-20 受信割込み許可レジスタ (RIER) の構成
bit15
14
13
12
11
10
アドレス:
CAN0: 00007FH RIE15 RIE14 RIE13 RIE12 RIE11 RIE10
CAN1: 0000BFH R/W
R/W
R/W
R/W
R/W
R/W
CAN2: 00357FH
CAN3: 00358FH
CAN4: 00359FH
bit 7
アドレス:
CAN0: 00007EH RIE7
CAN1: 0000BEH R/W
CAN2: 00357EH
CAN3: 00358EH
CAN4: 00359EH
9
8
RIE9
R/W
RIE8
R/W
6
5
4
3
2
1
0
RIE6
R/W
RIE5
R/W
RIE4
R/W
RIE3
R/W
RIE2
R/W
RIE1
R/W
RIE0
R/W
R/W: リード / ライト可能
[bit15 ~ bit0] RIE15 ~ RIE0:受信割込み許可レジスタ (RIER)
"0": 受信割込みは禁止されます。
"1": 受信割込みは許可されます。
482
RIERn ( 上位 )
初期値
00000000B
RIERn ( 下位 )
初期値
00000000B
n = 0, 1, 2, 3, 4
第 23 章 CAN コントローラ
23.6.18
アクセプタンスマスク選択レジスタ (AMSR)
本レジスタは受信メッセージ ID とメッセージバッファ (x)ID の比較に対するマスク
( アクセプタンスマスク ) を選択します。
■ アクセプタンスマスク選択レジスタ (AMSR)
図 23.6-21 アクセプタンスマスク選択レジスタ (AMSR) の構成
bit 7
アドレス:
CAN0: 003710H AMS
CAN1: 003910H
3.1
CAN2: 003B10H R/W
CAN3: 003D10H
CAN4: 003F10H
6
AMS
3.0
R/W
5
AMS
2.1
R/W
4
AMS
2.0
R/W
3
AMS
1.1
R/W
2
AMS
1.0
R/W
1
AMS
0.1
R/W
0
AMS
0.0
R/W
AMSRn Byte 0
初期値
XXXXXXXXB
bit15
アドレス:
CAN0: 003711H AMS
7.1
CAN1: 003911H
CAN2: 003B11H R/W
CAN3: 003D11H
CAN4: 003F11H
14
AMS
7.0
R/W
13
AMS
6.1
R/W
12
AMS
6.0
R/W
11
AMS
5.1
R/W
10
AMS
5.0
R/W
9
AMS
4.1
R/W
8
AMS
4.0
R/W
AMSRn Byte 1
初期値
XXXXXXXXB
AMSRn Byte 2
初期値
XXXXXXXXB
bit 7
アドレス:
CAN0: 003712H AMS
CAN1: 003912H
11.1
CAN2: 003B12H R/W
CAN3: 003D12H
CAN4: 003F12H
bit15
アドレス:
CAN0: 003713H AMS
CAN1: 003913H
15.1
CAN2: 003B13H R/W
CAN3: 003D13H
CAN4: 003F13H
6
5
4
3
2
1
0
AMS
11.0
R/W
AMS
10.1
R/W
AMS
10.0
R/W
AMS
9.1
R/W
AMS
9.0
R/W
AMS
8.1
R/W
AMS
8.0
R/W
14
AMS
15.0
R/W
13
AMS
14.1
R/W
12
AMS
14.0
R/W
11
AMS
13.1
R/W
10
AMS
13.0
R/W
9
AMS
12.1
R/W
8
AMS
12.0
R/W
AMSRn Byte 3
初期値
XXXXXXXXB
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
表 23.6-4 アクセプタンスマスクの選択
アクセプタンスマスク
AMSx.1
AMSx.0
0
0
フルビット比較
0
1
フルビットマスク
1
0
アクセプタンスマスクレジスタ 0(AMR0)
1
1
アクセプタンスマスクレジスタ 1(AMR1)
483
第 23 章 CAN コントローラ
<注意事項>
• AMSx.1 および AMSx.0 はメッセージバッファ (x) が無効である ( メッセージバッファ
有効レジスタ (BVALR) の BVALx が "0" である ) ときに設定しなければなりません。バッ
ファが有効 (BVALx=1) なときに設定を行うと不要な受信メッセージが格納される可能
性があります。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0"
で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッ
セージバッファを無効 (BVALR:BVAL=0) にする場合は , 「23.16 CAN コントローラの
使用上の注意」に従ってください。
484
第 23 章 CAN コントローラ
23.6.19
アクセプタンスマスクレジスタ 0 および 1
(AMR0/AMR1)
AMR0 および AMR1 の 2 つのアクセプタンスマスクレジスタがありますが両者とも
に標準フレームフォーマットまたは拡張フレームフォーマットのいずれかで利用で
きます。
AM28 ~ AM18 (11 ビット ) は標準フレームフォーマットにおけるアクセプタンスマ
スクに使用され AM28 ~ AM0 (29 ビット ) は拡張フォーマットでアクセプタンスマ
スクに使用されます。
■ アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1)
図 23.6-22 アクセプタンスマスクレジスタ 0 (AMR0) の構成
bit 7
アドレス:
CAN0: 003714H AM28
CAN1: 003914H
R/W
CAN2: 003B14H
CAN3: 003D14H
CAN4: 003F14H
6
5
4
3
2
1
0
AM27
R/W
AM26
R/W
AM25
R/W
AM24
R/W
AM23
R/W
AM22
R/W
AM21
R/W
AMR0n バイト 0
初期値
XXXXXXXXB
bit15
アドレス:
CAN0: 003715H AM17
CAN1: 003915H
R/W
CAN2: 003B15H
CAN3: 003D15H
CAN4: 003F15H
14
AM16
R/W
13
AM15
R/W
12
AM14
R/W
11
AM13
R/W
10
AM20
R/W
9
AM19
R/W
8
AM18
R/W
AMR0n バイト 1
初期値
XXXXXXXXB
bit 7
アドレス:
CAN0: 003716H AM12
CAN1: 003916H
R/W
CAN2: 003B16H
CAN3: 003D16H
CAN4: 003F16H
6
AM11
R/W
5
AM10
R/W
4
AM9
R/W
3
AM8
R/W
2
AM7
R/W
1
AM6
R/W
0
AM5
R/W
AMR0n バイト 2
初期値
XXXXXXXXB
bit15
アドレス:
CAN0: 003717H AM4
CAN1: 003917H
R/W
CAN2: 003B17H
CAN3: 003D17H
CAN4: 003F17H
14
AM3
R/W
13
AM2
R/W
12
AM1
R/W
11
AM0
R/W
10
−
−
9
−
−
8
−
−
AMR0n バイト 3
初期値
XXXXXXXXB
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
X
-
: 不定
: 未定義
(続く)
485
第 23 章 CAN コントローラ
(続き)
bit 7
アドレス:
CAN0: 003718H AM28
CAN1: 003918H
R/W
CAN2: 003B18H
CAN3: 003D18H
CAN4: 003F18H
bit15
アドレス:
CAN0: 003719H AM17
CAN1: 003919H
R/W
CAN2: 003B19H
CAN3: 003D19H
CAN4: 003F19H
bit 7
アドレス:
CAN0: 00371AH AM12
CAN1: 00391AH R/W
CAN2: 003B1AH
CAN3: 003D1AH
CAN4: 003F1AH
bit15
アドレス:
CAN0: 00371BH AM4
CAN1: 00391BH R/W
CAN2: 003B1BH
CAN3: 003D1BH
CAN4: 003F1BH
6
5
4
3
2
1
0
AM27
R/W
AM26
R/W
AM25
R/W
AM24
R/W
AM23
R/W
AM22
R/W
AM21
R/W
AMR1n バイト 0
初期値
XXXXXXXXB
14
AM16
R/W
13
AM15
R/W
12
AM14
R/W
11
AM13
R/W
10
AM20
R/W
9
AM19
R/W
8
AM18
R/W
AMR1n バイト 1
初期値
XXXXXXXXB
AMR1n バイト 2
初期値
XXXXXXXXB
6
5
4
3
2
1
0
AM11
R/W
AM10
R/W
AM9
R/W
AM8
R/W
AM7
R/W
AM6
R/W
AM5
R/W
14
13
12
11
10
9
8
AM3
R/W
AM2
R/W
AM1
R/W
AM0
R/W
−
−
−
−
−
−
AMR1n バイト 3
初期値
XXXXXXXXB
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
X:
不定
-:
未定義
● 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:BVAL=0) にする場合は , 「23.16 CAN コントローラの
使用上の注意」に従ってください。
486
第 23 章 CAN コントローラ
メッセージバッファ
23.6.20
メッセージバッファは 16 個あり , 1 つのメッセージバッファ x (x=0 ~ 15) は ID レ
ジスタ (IDRx), DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) から構成され
ています。
■ メッセージバッファ
● メッセージバッファ (x) は送信および受信の両方に使用されます。
● 下位番号のメッセージバッファの方が高い優先順位を割り当てられています。
• 送信時に 1 つ以上のメッセージバッファに対して送信要求されたときには , 最下位
番号のメッセージバッファから開始して送信が行われます (「23.7 CAN コントロー
ラの送信」を参照 ) 。
• 受信時に 1 つ以上のメッセージバッファのアクセプタンスフィルタ ( 受信メッセー
ジのアクセプタンスマスク ID とメッセージバッファとを比較する機構 ) を受信メッ
セージ ID が通過するときに受信メッセージは最下位番号のメッセージバッファ内
に格納されます (「23.8 CAN コントローラの受信」を参照 ) 。
● 同一のアクセプタンスフィルタが 1 つ以上のメッセージバッファ内に設定されたときに
メッセージバッファはマルチレベルメッセージバッファとして使用できます。これにより ,
受信時間に対する余裕が与えられます。
(「23.12 メッセージバッファ (x) による受信方法」を参照 ) 。
<注意事項>
• メッセージバッファおよび汎用 RAM 領域への書込み動作は , ワード単位で偶数アドレ
スに対して行わなければなりません。バイト単位で書込み動作を行うと下位バイトへ
の書込み時に上位バイトに不定データを書き込んでしまいます。
• メッセージバッファ有効レジスタ (BVALR) の BVALx ビットが "0" ( 無効 ) であるとき
にメッセージバッファ x (IDRx, DLCRx および DTRx) は汎用 RAM として使用できま
す。ただし , CAN コントローラが送受信動作中は , メッセージバッファを使用します
ので , CPU のアクセスが最大で 64 マシンサイクル待たされることがあります。これは
汎用 RAM 領域についても同様です。
487
第 23 章 CAN コントローラ
23.6.21
ID レジスタ x (x=0 ~ 15) (IDRx)
ID レジスタ x (x=0 ~ 15) (IDRx) は , メッセージバッファ (x) に対する ID レジスタ
です。
■ ID レジスタ x (x=0 ~ 15) (IDRx)
図 23.6-23 ID レジスタ x (IDRx) の構成
bit 7
アドレス:
CAN0: 003620H + 4 × x ID28
CAN1: 003820H + 4 × x R/W
CAN2: 003A20H + 4 × x
CAN3: 003C20H + 4 × x
CAN4: 003E20H + 4 × x
6
ID27
R/W
5
ID26
R/W
4
ID25
R/W
3
ID24
R/W
2
ID23
R/W
1
ID22
R/W
0
ID21
R/W
IDRxn バイト 0
初期値
XXXXXXXXB
bit15
アドレス:
CAN0: 003621H + 4 × x ID20
CAN1: 003821H + 4 × x R/W
CAN2: 003A21H + 4 × x
CAN3: 003C21H + 4 × x
CAN4: 003E21H + 4 × x
14
ID19
R/W
13
ID18
R/W
12
ID17
R/W
11
ID16
R/W
10
ID15
R/W
9
ID14
R/W
8
ID13
R/W
IDRxn バイト 1
初期値
XXXXXXXXB
bit 7
アドレス:
CAN0: 003622H + 4 × x ID12
CAN1: 003822H + 4 × x R/W
CAN2: 003A22H + 4 × x
CAN3: 003C22H + 4 × x
CAN4: 003E22H + 4 × x
6
ID11
R/W
5
ID10
R/W
4
ID9
R/W
3
ID8
R/W
2
ID7
R/W
1
ID6
R/W
0
ID5
R/W
IDRxn バイト 2
初期値
XXXXXXXXB
bit15
アドレス:
CAN0: 003623H + 4 × x ID4
CAN1: 003823H + 4 × x R/W
CAN2: 003A23H + 4 × x
CAN3: 003C23H + 4 × x
CAN4: 003E23H + 4 × x
14
13
12
11
10
9
8
ID3
R/W
ID2
R/W
ID1
R/W
ID0
R/W
−
−
−
−
−
−
IDRxn バイト 3
初期値
XXXXX---B
x = 0, ... , 15
n = 0, 1, 2, 3, 4
R/W: リード / ライト可能
-: 未定義
X: 不定
標準フレームフォーマット (IDE レジスタ (IDER) の IDEx=0) でメッセージバッファ(x)
を使用しているときは ID28 ~ ID18 の 11 ビットを使用してください。拡張フレーム
フォーマット (IDEx=1) でバッファを使用しているときは ID28 ~ ID0 の 29 ビットを使
用してください。
ID28 ~ ID0 の機能は次のとおりです。
• アクセプタンスコード設定 ( 受信メッセージ ID との比較用の ID)
• 送信メッセージ ID の設定
488
第 23 章 CAN コントローラ
<注意事項>
• 標準フレームフォーマットでは ID28 ~ ID22 のビットのすべてに "1" をセットするこ
とは禁止されています。
- 受信メッセージ ID の格納
- 受信メッセージ ID はアクセプタンスマスクでマスクされているビットにも格納され
ます。標準フレームフォーマットでは ID17 ~ ID0 は不定値 ( 前回受信したメッセー
ジの一部 ) が格納されます。
• 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書
込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでし
まいます。上位バイトへの書込みは無視されます。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が
"0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で ,
メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「23.16 CAN コントロー
ラの使用上の注意」に従ってください。
489
第 23 章 CAN コントローラ
DLC レジスタ x (x=0 ~ 15) (DLCRx)
23.6.22
DLC レジスタ x (x=0 ~ 15) (DLCRx) は , メッセージバッファ x に対する DLC を格
納します。
■ DLC レジスタ x (x=0 ~ 15) (DLCRx)
図 23.6-24 DLC レジスタ x (x=0 ~ 15) (DLCRx) の構成
bit15
アドレス:
CAN0: 003660H+ 2 × x
−
CAN1: 003860H+ 2 × x
−
CAN2: 003A60H+ 2×x
CAN3: 003C60H+ 2×x
CAN4: 003E60H+ 2×x
14
−
−
13
−
−
12
−
−
11
DLC3
R/W
10
DLC2
R/W
9
DLC1
R/W
8
DLC0
R/W
DLCRnx ( 下位 )
初期値
----XXXXB
x = 0, ... , 15
n = 0, 1, 2, 3, 4
R/W : リード / ライト可能
: 未定義
[bit15 ~ bit8] DLC3 ~ DLC0:DLC レジスタ x (x=0 ~ 15) (DLCRx)
● 送信
• データフレームが送信する ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0") ときに送
信メッセージのデータ長 ( バイト単位 ) を設定します。
• リモートフレームが送信する (TRTRx=1) ときに要求メッセージのデータ長 ( バイト
単位 ) を設定します。
<注意事項>
0000B ~ 1000B (0 ~ 8 バイト ) 以外の設定は禁止されています。
● 受信
• データフレームが受信された (リモートフレーム要求受信レジスタ(RRTRR)のRRTRx
が "0") ときに受信メッセージのデータ長 ( バイト単位 ) を格納します。
• リモートフレームが受信された (RRTRx=1) ときに要求メッセージのデータ長 ( バイ
ト単位 ) を格納します。
<注意事項>
本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書込み
動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでしまいま
す。上位バイトへの書込みは無視されます。
490
第 23 章 CAN コントローラ
23.6.23
データレジスタ x (x=0 ~ 15) (DTRx)
データレジスタ x (x=0 ~ 15) (DTRx) は , メッセージバッファ (x) に対するデータレ
ジスタです。
本レジスタはデータフレームの送信および受信のみ使用されるものであり , リモート
フレームの送信および受信には使用されません。
■ データレジスタ x (x=0 ~ 15) (DTRx)
図 23.6-25 データレジスタ x (x=0 ~ 15) (DTRx) の構成
bit 7
アドレス:
CAN0: 003680H+ 8 × x
D7
CAN1: 003880H+ 8 × x R/W
CAN2: 003A80H+ 8 × x
CAN3: 003C80H+ 8 × x
CAN4: 003E80H+ 8 × x
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
DTRxn バイト 0
初期値
XXXXXXXXB
bit15
アドレス:
D7
CAN0: 003681H+ 8 × x
CAN1: 003881H+ 8 × x R/W
CAN2: 003A81H+ 8 × x
CAN3: 003C81H+ 8 × x
CAN4: 003E81H+ 8 × x
bit 7
アドレス:
D7
CAN0: 003682H+ 8 × x
CAN1: 003882H+ 8 × x R/W
CAN2: 003A82H+ 8 × x
CAN3: 003C82H+ 8 × x
CAN4: 003E82H+ 8 × x
bit15
アドレス:
CAN0: 003683H+ 8 × x
D7
CAN1: 003883H+ 8 × x R/W
CAN2: 003A83H+ 8 × x
CAN3: 003C83H+ 8 × x
CAN4: 003E83H+ 8 × x
14
D6
R/W
13
D5
R/W
12
D4
R/W
11
D3
R/W
10
D2
R/W
9
D1
R/W
8
D0
R/W
DTRxn バイト 1
初期値
XXXXXXXXB
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
DTRxn バイト 2
初期値
XXXXXXXXB
14
13
12
11
10
9
8
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
DTRxn バイト 3
初期値
XXXXXXXXB
bit 7
アドレス:
D7
CAN0: 003684H+ 8 × x
CAN1: 003884H+ 8 × x R/W
CAN2: 003A84H+ 8 × x
CAN3: 003C84H+ 8 × x
CAN4: 003E84H+ 8 × x
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
DTRxn バイト 4
初期値
XXXXXXXXB
R/W: リード / ライト可能
( 続く )
491
第 23 章 CAN コントローラ
(続き)
bit15
アドレス:
CAN0: 003685H+ 8 × x
D7
CAN1: 003885H+ 8 × x R/W
CAN2: 003A85H+ 8 × x
CAN3: 003C85H+ 8 × x
CAN4: 003E85H+ 8 × x
14
D6
R/W
13
D5
R/W
12
D4
R/W
11
D3
R/W
10
D2
R/W
9
D1
R/W
8
D0
R/W
DTRxn バイト 5
初期値
XXXXXXXXB
bit 7
アドレス:
D7
CAN0: 003686H+ 8 × x
CAN1: 003886H+ 8 × x R/W
CAN2: 003A86H+ 8 × x
CAN3: 003C86H+ 8 × x
CAN4: 003E86H+ 8 × x
bit15
アドレス:
CAN0: 003687H+ 8 × x
D7
CAN1: 003887H+ 8 × x R/W
CAN2: 003A87H+ 8 × x
CAN3: 003C87H+ 8 × x
CAN4: 003E87H+ 8 × x
R/W: リード / ライト可能
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
DTRxn バイト 6
初期値
XXXXXXXXB
DTRxn バイト 7
初期値
XXXXXXXXB
14
13
12
11
10
9
8
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
x = 0, ... , 15
n = 0, 1, 2, 3, 4
● 送信メッセージデータ (0 ~ 8 バイトのいずれか ) の設定
データは MSB ファーストで開始して BYTE0, BYTE1, ...BYTE7 の順で送信されます。
● 受信メッセージデータ
データは MSB ファーストで開始して BYTE0, BYTE1, ...BYTE7 の順で格納されます。
受信メッセージデータが 8 バイトより少なくてもデータが格納されるデータレジスタ
(DTRx) の残りのバイトは不定となります。
<注意事項>
本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書込み
動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでしまいま
す。上位バイトへの書込みは無視されます。
492
第 23 章 CAN コントローラ
23.7
CAN コントローラの送信
CAN コントローラでは , 送信要求レジスタ (TREQR) の TREQx に "1" が書き込まれ
たときにメッセージバッファ (x) による送信が開始します。このときに TREQx は
"1" になり送信完了レジスタ (TCR) の TCx は "0" になります。
■ CAN コントローラの送信の開始
リモートフレーム受信待機レジスタ (RFWTR) の RFWTx が "0" であれば送信を直ちに
開始します。もし , RFWTx が "1" であれば , リモートフレームが受信される ( リモート
要求受信レジスタ (RRTRR) の RRTRx が "1" になる ) まで待機した後に送信を開始しま
す。
もし , 送信に対する要求が 1 つ以上のメッセージバッファに対して試された (1 つ以上
のTREQxが"1") ときには最下位番号のメッセージバッファから開始して送信が行われ
ます。
CAN バスに対するメッセージ送信 ( 送信出力端子 TX によるもの ) はバスがアイドル
のときに開始します。
送信 RTR レジスタ (TRTRR) の TRTRx が "0" であればデータフレームが送信されます。
もし , TRTRx が "1" であればリモートフレームが送信されます。
送信に関してメッセージバッファが CAN バス上のほかの CAN コントローラと競合し
てアービトレーションが不調に終わった場合または送信中にエラーが発生した場合 ,
メッセージバッファはバスがアイドルとなるまで待機し , それが成功するまで再送信
を反復します。
■ CAN コントローラの送信要求の解除
● 送信解除レジスタ (TCANR) による解除
送信待ち状態中に送信を実行しなかったメッセージバッファ(x) に対する送信要求は送
信解除レジスタ (TCANR) の TCANx に "1" を書き込むことにより解除できます。解除
の完了時に TREQx は "0" になります。
● 受信メッセージの格納による解除
送信要求にもかかわらず送信を実行しなかったメッセージバッファ(x) も受信を行いま
す。
データフレームの送信に対する要求にもかかわらずメッセージバッファ(x) が送信を実
行していなかった場合でも (TRTRx=0 または TREQx=1) , アクセプタンスフィルタを通
過した受信データフレームを格納した後には送信要求が解除されます (TREQx=0)。
<注意事項>
リモートフレームを格納することでは送信要求は解除されません (TREQx=1 はそのまま
です ) 。
リモートフレームの送信に対する要求にもかかわらずメッセージバッファ(x) が送信を
実行していなかった場合でも (TRTRx=1 または TREQx=1) , アクセプタンスフィルタを
通過した受信リモートフレームを格納した後には送信要求が解除されます
(TREQx=0)。
493
第 23 章 CAN コントローラ
<注意事項>
データフレームまたはリモートフレームのいずれかを格納すると送信要求は解除されま
す。
■ CAN コントローラの送信の完了
送信が成功したときに RRTRx および TREQx は "0" になり送信完了レジスタ (TCR) の
TCx は "1" になります。もし送信完了割込みが許可されていれば ( 送信完了割込み許可
レジスタ (TIER) の TIEx は "1") 割込みが発生します。
■ CAN コントローラの送信フローチャート
図 23.7-1 に , CAN コントローラの送信フローチャートを示します。
図 23.7-1 CAN コントローラの送信フローチャート
送信要求
(TREQx=1)
TCx=0
0
TREQx?
1
0
RFWTx?
1
0
RRTRx?
1
上記条件を満足するほかのメッセージバッ
ファがある場合,その中で最下位番号メッ
セージバッファを選択
バスは使用されて
いないか。
NO
YES
0
1
TRTRx?
データフレームが送信される
リモートフレームが送信される
NO
送信は成功したか。
YES
1
RRTRx = 0
TREQx = 0
TCx
= 1
TIEx?
0
送信の終了
494
0
TCANx?
TREQx=0
1
送信完了割込みが
発生する
第 23 章 CAN コントローラ
23.8
CAN コントローラの受信
CAN バス上でデータフレームまたはリモートフレームの開始 (SOF) が検出されたと
きに受信を開始します。
■ アクセプタンスフィルタリング
標準フレームフォーマットの受信メッセージは標準フレームフォーマットに設定され
たメッセージバッファ (x) (IDE レジスタ (IDER) の IDEx は "0") と比較されます。拡張
フレームフォーマットの受信メッセージは拡張フレームフォーマットに設定された
メッセージバッファ (x) (IDEx は "1") と比較されます。
もし , 受信メッセージ ID とアクセプタンスコード ( 受信メッセージ ID との比較のため
の ID レジスタ (IDRx) との比較の後にアクセプタンスマスクにより比較すべきビット
セットのすべてが一致すれば受信メッセージはメッセージバッファ(x) のアクセプタン
スフィルタを通過します。
■ 受信メッセージの格納
受信動作が成功したときに受信メッセージはアクセプタンスフィルタを通過した ID を
含めメッセージバッファ (x) に格納されます。
データフレームを受信したときに受信メッセージは ID レジスタ (IDRx), DLC レジスタ
(DLCRx) およびデータレジスタ (DTRx) に格納されます。
受信メッセージデータが 8 バイトより少なくてもデータは DTRx の残りのバイトに格
納されその値は不定となります。
リモートフレームを受信したときに受信メッセージは IDRx および DLCRx のみに格納
されて DTRx はそのままです。
もし , アクセプタンスフィルタを通過した ID を含む 1 つ以上のメッセージバッファが
あれば受信メッセージが格納されるべきメッセージバッファ x は次の規則により決定
されます。
• メッセージバッファ x (x=0 ~ 15) の優先順位はその番号が低いほど高くなります。
すなわち , メッセージバッファ0 には最高の優先度を与えられ , メッセージバッファ
15 には最低の優先度が与えられます。
• 受信メッセージを格納する上では基本的に受信完了レジスタ (RCR) の RCx ビット
が "0" に設定されたメッセージバッファが優先されます。
• もし , アクセプタンスマスク選択レジスタ(AMSR) の各ビットが全ビット比較 (AMSx.1
および AMSx.0 ビットが "00B" に設定されたメッセージバッファに設定されていれば
RCR の RCx ビットの値にかかわらず受信メッセージは格納されます。
• もし , RCR の RCx ビットが "0" のバッファと AMSR のビットが全ビット比較に設定
されているバッファが複数ある場合 , 受信メッセージは最下位番号 ( 最優先 ) のメッ
セージバッファ x に格納されます。
• もし , 上記のメッセージバッファがなければ受信メッセージは下位番号メッセージ
バッファ x に格納されます。
495
第 23 章 CAN コントローラ
• メッセージバッファは昇順でソートし , 配置してください。最下位メッセージバッ
ファは , 全ビットコンペア , そして AMR0 か AMR1 マスクとなります。最上位メッ
セージバッファは全ビットマスクになります。
図 23.8-1 には , 受信メッセージを格納すべきメッセージバッファ x を決定するための
フローチャートが示されています。メッセージバッファはバッファ番号順に , AMSR の
各ビットが全ビット比較にセットされたメッセージバッファ , AMR0 または AMR1 を
使用しているメッセージバッファおよび AMSR の各ビットが全ビットマスクにセット
されたメッセージバッファの順番に設定されることを推奨します。
図 23.8-1 受信メッセージを格納するメッセージバッファ (x) を決定するフローチャート
開始
RCxが"0"にセットされているか,AMSx.1
およびAMSx.0が"00B"にセットされている
メッセージバッファが見つかったか。
NO
YES
最下位番号のメッセージ
バッファを選択
最下位番号のメッセージ
バッファを選択
終了
■ 受信オーバラン
受信メッセージが格納されるべきメッセージバッファ x に対応する受信完了レジスタ
(RCR) の RCx ビットが既に "1" にセットされていてメッセージバッファ x の受信メッ
セージの格納が完了したときに受信オーバランレジスタ (ROVRR) の ROVRx ビットは
"1" にセットされて受信オーバランを示します。
■ データフレームおよびリモートフレームの受信に対する処理
● データフレームの受信に対する処理
リモート要求受信レジスタ (RRTRR) の RRTRx は "0" になります。
送信要求レジスタ (TREQR) の TREQx は ( 受信メッセージを格納する直前に ) "0" にな
ります。送信を実行しなかったメッセージバッファ (x) に対する送信要求は解除されま
す。
<注意事項>
データフレームまたはリモートフレームのいずれの送信に対する要求も解除されます。
496
第 23 章 CAN コントローラ
● リモートフレームの受信に対する処理
RRTRx は "1" になります。
もし , 送信 RTR レジスタ (TRTRR) の TRTRx が "1" であれば TREQx は "0" になります。
この結果 , 送信を実行しなかったメッセージバッファへのリモートフレームの送信に
対する要求は解除されます。
<注意事項>
• データフレーム送信に対する要求は解除されません。
• 送信要求の解除に関しては「23.7 CAN コントローラの送信」を参照してください。
■ 受信完了
受信完了レジスタ (RCR) の RCx は受信メッセージを格納した後に "1" になります。
もし , 受信割込みが許可されていれば ( 受信割込み許可レジスタ (RIER) の RIEx が "1")
割込みが発生します。
<注意事項>
この CAN コントローラはそれ自身が送信したメッセージを受信することはありません。
497
第 23 章 CAN コントローラ
23.9
CAN コントローラの受信フローチャート
図 23.9-1 に , CAN コントローラの受信フローチャートを示します。
■ CAN コントローラの受信フローチャート
図 23.9-1 CAN コントローラの受信フローチャート
データフレームまたはリモート
フレームの開始(SOF)の検出
NO
受容フィルタをパスするメッセージ
バッファ(x)はあるか。
YES
NO
受信は成功したか。
YES
受信メッセージを記憶するメッセージ
バッファ(x)を決定
受信メッセージをメッセージ
バッファ(x)に記憶
1
RCx?
0
データフレーム
ROVRx=1
リモートフレーム
受信メッセージは?
RRTRx=0
RRTRx=1
1
TRTRx?
0
TREQx=0
RCx=1
1
RIEx?
0
受信割込みが発生する
受信の終了
498
第 23 章 CAN コントローラ
23.10
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 は標準フレームフォーマットでは ID11 ~ ID0 に設
定する必要はありません。メッセージバッファ (x) の ID は送信では送信メッセージと
して使用され受信ではアクセプタンスコードとして使用されます。
この設定はメッセージバッファ(x) が無効 ( メッセージバッファ有効レジスタ (BVALR)
の BVALx が "0") であるときに行わなければなりません。バッファが有効 (BVALx=1)
のときに設定を行うと不必要な受信メッセージが格納される可能性があります。
499
第 23 章 CAN コントローラ
■ アクセプタンスフィルタの設定
メッセージバッファ(x) のアクセプタンスフィルタはアクセプタンスコードおよびアク
セプタンスマスク設定により設定されます。それはアクセプタンスメッセージバッ
ファ (x) が無効 ( メッセージバッファ許可レジスタ (BVALR) の BVALx が "0") である
ときに設定しなければなりません。バッファが有効 (BVALx=1) であるときに設定を行
うと不必要な受信メッセージが格納される可能性があります。
各メッセージバッファ(x) で使用されたアクセプタンスマスクをアクセプタンスマスク
選択レジスタ (AMSR) により設定してください。アクセプタンスマスクレジスタ
(AMR0 および AMR1) も使用するのであれば設定しなければなりません ( 設定の詳細
に関しては「23.6.18 アクセプタンスマスク選択レジスタ (AMSR)」および「23.6.19 ア
クセプタンスマスクレジスタ 0 および 1 (AMR0/AMR1)」を参照 ) 。
アクセプタンスマスクは不必要な受信メッセージが格納されたときでも送信要求が解
除されないように設定しなければなりません。例えば , それは同一の ID のメッセージ
のみを送信するのであればフルビット比較に設定しなければなりません。
■ 低電力消費モードの設定
F2MC-16LX を低電力消費モード ( 停止 , タイムベースタイマなど ) に設定するには制
御ステータスレジスタ (CSR) のバス動作停止ビット (HALT) に "1" を書き込んでからバ
ス動作が停止したか (HALT=1) をチェックしてください。
500
第 23 章 CAN コントローラ
23.11
メッセージバッファ (x) による送信方法
ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ
タンスフィルタの設定が完了した後で , BVALx を "1" に設定してメッセージバッ
ファ (x) を有効にしてください。
■ メッセージバッファ (x) による送信方法
● 送信データ長コードの設定
送信データ長コード ( バイト単位 ) を DLC レジスタ (DLCRx) の DLC3 ~ DLC0 に設定
してください。
データフレーム送信 ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0" のとき ) に対して
は送信メッセージのデータ長を設定してください。
リモートフレーム送信 (TRTRx=1 のとき ) に対しては要求メッセージのデータ長 ( バイ
ト単位 ) を設定してください。
<注意事項>
"0000B" ~ "1000B" (0 ~ 8 バイト ) 以外の設定は禁止されています。
● 送信データの設定 ( データフレームの送信に対してのみ )
データフレーム送信 ( 送信レジスタ (TRTRR) の TRTRx が "0" のとき ) に対してはデー
タを送信バイト数分データレジスタ (DTRx) に設定してください。
<注意事項>
送信データは送信要求レジスタ (TREQR) の TREQx ビットを "0" に設定して再書込みし
なければなりません。メッセージバッファ有効レジスタ (BVALR) の BVALx ビットを "0"
に設定する必要はありません。BVALx ビットを "0" に設定するとリモートフレーム受信を
喪失する可能性があります。
● 送信 RTR レジスタの設定
データフレーム送信に対しては送信 RTR レジスタ (TRTRR) の TRTRx を "0" に設定し
てください。
リモートフレーム送信に対しては TRTRx を "1" に設定してください。
501
第 23 章 CAN コントローラ
● 送信開始条件の設定 ( データフレームの送信のみ )
データフレーム送信に対する要求が設定された直後に送信を開始するには , リモート
フレーム受信待機レジスタ (RFWTR) の RFWTx を "0" に設定してください ( 送信要求
レジスタ (TREQR) の TREQx は "1" であり送信 RTR レジスタ (TRTRR) の TRTRx は "0"
です ) 。
データフレーム送信に対する要求が設定 (TREQx=1およびTRTRx=0)された後にリモー
トフレームを受信する ( リモート要求受信レジスタ (RRTRR) の RRTRx が "1" になる )
まで待機した後に送信を開始するには , RFWTx を "1" に設定してください。
<注意事項>
もし , RFWTx が "1" に設定されるとリモートフレーム送信を行うことはできません。
● 送信完了割込みの設定
送信完了割込みを発生する場合には送信完了割込み許可レジスタ (TIER) の TIEx を "1"
に設定してください。
送信完了割込みを発生しない場合には TIEx を "0" に設定してください。
● 送信要求の設定
送信要求を行うには送信要求レジスタ (TREQR) の TREQx を "1" に設定してください。
● 送信要求の解除
メッセージバッファ (x) に対する送信の要求を解除するときには送信解除レジスタ
(TCANR) の TCANx に "1" を書き込んでください。
TREQx をチェックしてください。TREQx=0 の場合には送信解除が終了したか送信が
完了しています。送信完了レジスタ (TCR) の TCx をチェックしてください。TCx=0 の
場合には送信解除は終了しています。TCx=1 ならば送信が完了しています。
● 送信完了の処理
送信が成功すれば送信完了レジスタ (TCR) の TCx は "1" になります。
もし, 送信完了割込みが許可されていれば (送信完了割込み許可レジスタ(TIER)のTIEx
が "1") 割込みが発生します。
送信完了をチェックした後に TCx に "0" を書き込んでそれを "0" に設定してください。
これにより , 送信完了割込みが解除されます。
次の場合には待ち状態中の送信要求はメッセージの受信および格納により解除されま
す。
• データフレームの受信によるデータフレーム送信の要求
• データフレームの受信によるリモートフレーム送信の要求
• リモートフレームの受信によるリモートフレーム送信の要求
データフレーム送信に対する要求はリモートフレームの受信および格納によっては解
除されません。ただし , ID および DLC は受信したリモートフレームの ID および DLC
により変更されます。送信されるべきデータフレームの ID および DLC が受信したリ
モートフレームの値になることに注意してください。
502
第 23 章 CAN コントローラ
23.12
メッセージバッファ (x) による受信方法
ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ
タンスフィルタの設定の後で以下の設定をしてください。
■ メッセージバッファ (x) による受信方法
● 受信割込み設定
受信割込みを許可するには受信割込み許可レジスタ (RIER) の RIEx を "1" に設定して
ください。
受信割込みを禁止するには RIEx を "0" に設定してください。
● 受信開始
設定の後で受信を開始するときにはメッセージバッファ有効レジスタ (BVALR) の
BVALx を "1" に設定してメッセージバッファ (x) を有効にしてください。
● 受信完了の処理
アクセプタンスフィルタへの通過の後に受信が成功すれば受信メッセージはメッセー
ジバッファ (x) に格納されて受信完了レジスタ (RCR) の RCx は "1" になります。デー
タフレーム受信に関してはリモート要求受信レジスタ (RRTRR) の RRTRx は "0" にな
ります。リモートフレーム受信に関しては RRTRx は "1" になります。
もし , 受信割込みが許可されれば ( 受信割込み許可レジスタ (RIER) の RIEx が "1") 割
込みが発生します。
受信完了をチェックした後 (RCx=1) で受信メッセージを処理してください。
受信メッセージの処理を完了した後は受信オーバランレジスタ (ROVRR) の ROVRx を
チェックしてください。
ROVRx=0 ならば処理された受信メッセージは有効です。RCRx に "0" を書き込んでそ
れを "0" に設定し ( 受信完了割込みも解除されます ) て受信を終了します。
ROVRx=1 ならば受信オーバランが発生し , 処理された受信メッセージに新たな受信
メッセージが上書きされている可能性があります。この場合には ROVRx ビットに "0"
を書き込んでそれを "0" に設定した後で受信メッセージを再処理しなければなりませ
ん。
図 23.12-1 に , 受信割込み処理の一例を示します。
503
第 23 章 CAN コントローラ
図 23.12-1 受信割込み処理の例
RCx=1で割込み
受信メッセージの読取り
A=ROVRx
ROVRx=0
A = 0?
YES
RCx=0
終了
504
NO
第 23 章 CAN コントローラ
23.13
マルチレベルメッセージバッファの構成の決定
もし , 受信が頻繁に行われる場合または不特定多数のメッセージを受信するのであ
れば , メッセージを処理する時間が不十分であれば , 1 つ以上のメッセージバッファ
を組み合わせてマルチレベルメッセージバッファとすることにより CPU による受信
メッセージの処理に対する余裕を与えてください。
■ マルチレベルメッセージバッファの構成の決定
マルチレベルメッセージバッファを用意するには組み合わされた各メッセージバッ
ファに同じアクセプタンスフィルタを設定しなければなりません。
もし , アクセプタンスマスク選択レジスタ (AMSR) の各ビットが全ビット比較
((AMSx.1, AMSx.0)=(0, 0)) に設定されていればメッセージバッファをマルチレベル
メッセージ構成とすることはできません。これは全ビット比較では受信完了レジスタ
(RCR) の RCx ビットの値の如何にかかわらず受信メッセージが格納されることから , 1
つ以上のメッセージバッファに対して全ビット比較および同一アクセプタンスコード
(ID レジスタ (IDRx)) が指定されたとしても受信メッセージが常に下位番号の ( 優先度
の低い ) メッセージバッファに格納されるからです。このため , 全ビット比較および同
一アクセプタンスコードを 1 つ以上のメッセージバッファに指定してはなりません。
図 23.13-1 に , マルチレベルメッセージバッファの動作例を示します。
505
第 23 章 CAN コントローラ
図 23.13-1 マルチレベルメッセージバッファの動作例
初期化
AMS15, AMS14, AMS13
AMSR
AMR0選択
10 10 10
. . .
AM28~AM18
AMS0
ID28~ID18
0000 1111 111
RC15, RC14, RC13
IDE
. . .
メッセージバッファ 13
0101 0000 000
0
. . .
RCR
0
0
0
. . .
メッセージバッファ 14
0101 0000 000
0
. . .
ROVRR
0
0
0
. . .
メッセージバッファ 15
0101 0000 000
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
. . .
メッセージバッファ 15
0101 0000 000
0
. . .
メッセージ受信中:受信メッセージはメッセージバッファ14に記憶されます。
メッセージ受信中
0101 1111 001
0
. . .
メッセージバッファ 13
0101 1111 000
0
. . .
RCR
0
1
1
. . .
メッセージバッファ 14
0101 1111 001
0
. . .
ROVRR
0
0
0
. . .
メッセージバッファ 15
0101 0000 000
0
. . .
メッセージ受信中:受信メッセージはメッセージバッファ15に記憶されます。
メッセージ受信中
0101 1111 010
0
. . .
メッセージバッファ 13
0101 1111 000
0
. . .
RCR
1
1
1
. . .
メッセージバッファ 14
0101 1111 001
0
. . .
ROVRR
0
0
0
. . .
0101 1111 010
0
. . .
メッセージバッファ 15
メッセージ受信中:オーバランが発生し(ROVR13=1),受信メッセージはメッセージバッファ13に記憶されます。
メッセージ受信中
0101 1111 011
0
. . .
メッセージバッファ 13
0101 1111 011
0
. . .
RCR
1
1
1
. . .
メッセージバッファ 14
0101 1111 001
0
. . .
ROVRR
0
0
1
. . .
0101 1111 010
0
. . .
メッセージバッファ 15
<注意事項>
4 個のメッセージが同一のアクセプタンスフィルタ設定によりメッセージバッファ 13, 14
および 15 に受信されます。
506
第 23 章 CAN コントローラ
23.14
CAN1, CAN3 RX/TX 端子のリダイレクト設定
CAN1, CAN3 は CAN1 RX/TX 端子 (RX1/TX1) → RX0/TX0 端子へ , CAN3 RX/TX 端
子 (RX3/TX3) → RX2/TX2 端子へのリダイレクションを CANSWR レジスタで変更で
きます。
■ CAN2 RX/TX 端子選択レジスタ (CANSWR)
図 23.14-1 CAN2 RX/TX 端子選択レジスタ (CANSWR)
アドレス:
CAN0: 00356FH
bit15
14
13
12
−
−
−
−
−
−
−
−
11
RXS
23
R/W
10
TXS
23
R/W
9
RXS
01
R/W
8
TXS
01
R/W
CANSWR
初期値
XXXX0000B
R/W : リード / ライト可能
X
: 不定値
-
: 未定義
■ CAN 選択レジスタ (CANSWR) の内容
表 23.14-1 CAN 選択レジスタの各ビットの機能
bit15 ~
bit12
ビット名
機能
未定義
-
bit11
RXS23:
受信スイッチ 2/3
このビットに "0" を書き込むと , CAN3 の入力は RX3 端子からになります。
このビットに "1" を書き込むと , CAN3 の入力は RX2 端子からになります。
bit10
TXS23:
送信スイッチ 2/3
このビットに "0" を書き込むと , CAN3 の出力は TX3 端子からになります。
このビットに "1" を書き込むと , CAN3 の出力は TX2 端子からになります。
bit9
RXS01:
受信スイッチ 0/1
このビットに "0" を書き込むと , CAN1 の入力は RX1 端子からになります。
このビットに "1" を書き込むと , CAN1 の入力は RX0 端子からになります。
bit8
TXS01:
送信スイッチ 0/1
このビットに "0" を書き込むと , CAN1 の出力は TX1 端子からになります。
このビットに "1" を書き込むと , CAN1 の出力は TX0 端子からになります。
CAN1 は , CAN1 RX/TX 端子リダイレクトを変更し , 図 23.14-2 のように CAN0 と共有
します。このため , この機能は外部 CAN トランシーバのセービングを行えます。この
機能は CANSWR レジスタで選択されます。同じ機能が CAN2 と CAN3 にも提供され
ています。
507
第 23 章 CAN コントローラ
図 23.14-2 CAN1 と CAN3 RX/TX のリダイレクション
CAN0
TX
TX0
CANSWR の
TXS01 で選択
RX0
RX
CAN0
CANSWR の
RXS01 で選択
VCC
CAN1
TX
TX1
RX1
RX
CAN1
CAN2
TX
TX2
RX2
RX
CAN2
RX
CAN3
CANSWR の
RXS23 で選択
CANSWR の
TXS23 で選択
VCC
CAN3
508
TX
TX3
RX3
第 23 章 CAN コントローラ
23.15
CAN ダイレクトモードレジスタ
MB90390 シリーズはシステムクロック用のクロックモジュレータを提供します。
CAN コントローラが変調クロックで動作できないため , 非変調クロックがクロック
モジュレータ設定とは無関係に CAN コントローラに提供されます。
■ CAN ダイレクトモードレジスタ (CDMR)
図 23.15-1 CAN ダイレクトモードレジスタ (CDMR) の構成
アドレス:
CAN0: 00356EH
bit 7
−
−
6
−
−
5
−
−
4
−
−
3
−
−
2
−
−
1
−
−
0
DIRECT
R/W
CDMR
初期値
XXXXXXX0B
R/W : リード / ライト可能
X
: 不定値
- : 未定義
■ CAN ダイレクトモードレジスタの内容
表 23.15-1 CAN ダイレクトモードレジスタの DIRECT ビット機能
ビット名
bit7 ~
bit1
bit0
未定義
DIRECT
機能
-
クロック変調が禁止のときは , このレジスタに "1" を書き込んでくだ
さい。これにより , CAN コントローラは変調クロックとの同期をス
キップし , CAN と CPU 間での通信を可能な限りの速度で実施しま
す。
同期変調システムクロックと非変調 CAN クロックを目的としてク
ロック変調を許可にする場合は , このビットに "0" を書き込まなけれ
ばなりません。
509
第 23 章 CAN コントローラ
23.16
CAN コントローラの使用上の注意
CAN コントローラの使用は , 下記の点に注意してください。
■ BVAL ビットによるメッセージバッファ禁止時の注意
(-H 品 , MB90F394H, MB90V390H など )
メッセージバッファが禁止状態で , CAN コントローラが CAN 通信に参加している状態
(CSR: HALT ビットの読出し値が "0" で , CAN コントローラがメッセージを送信可能な
状態 ) であれば , BVAL ビットにより CAN コントローラの誤動作の影響を受ける可能
性があります。本注意事項は , この現象を回避する方法を説明しています。
● 発生条件
以下の 2 つの条件を同時に満たす場合に , CAN コントローラの送信動作が正常に行わ
れない可能性があります。
• CAN コントローラが CAN 通信に参加している状態 , つまり , CSR: HALT ビットの
読出し値が "0" で , CAN コントローラがメッセージを送信可能な状態
• BVAL ビットの設定でメッセージバッファを禁止して , メッセージバッファの内容
の読出しの処理を行う場合
● 処置
送信要求の抑止をする場合の操作
BVAL ビットを転送要求の抑制に使用しないでください。代わりに TCAN ビットを
使用してください。
送信メッセージを構成する場合の操作
送信メッセージの構成を行うために , ID レジスタ (IDR) や IDE レジスタ (IDER) の
内容を変更する場合は , メッセージバッファ有効レジスタの BVAL ビットにより
メッセージバッファを無効にする必要があります。
この場合 , TREQ ビットが "0" かどうかチェックした後か , 前メッセージの通信が完
了 (TC = 1) した後に BVAL ビットをリセットしてください
バッファが禁止であることが必要なケースでは , 転送リクエストのペンディングが
ないことを守ってください。このため , 転送中かどうか下記のようにテストする前
に BVALx ビットをリセットしないでください。
a) 必要に応じて転送要求をキャンセル (TCANx=1;)
b) ポーリングか割込みで転送終了を待つ (TREQx = 1 の間 )
転送バッファが禁止になった (BVALx=0) 後でのみリセット可能です。
(a の注意事項 ) バッファの転送が既に開始されているときは , キャンセル要求は無
視され , バッファの禁止は転送が完了するまで遅延します。
510
第 23 章 CAN コントローラ
■ BVAL ビットによるメッセージバッファ禁止時の注意
(-H 品以外 , MB90V390HA/HB など )
メッセージバッファが禁止状態で , CAN コントローラが CAN 通信に参加している状態
(CSR: HALT ビットの読出し値が "0" で , CAN コントローラがメッセージを送信可能な
状態 ) であれば , BVAL ビットにより CAN コントローラの誤動作の影響を受ける可能
性があります。本注意事項は , この現象を回避する方法を説明しています。
● 発生条件
以下の 2 つの条件を同時に満たす場合に , CAN コントローラの送信動作が正常に行わ
れない可能性があります。
• CAN コントローラが CAN 通信に参加している状態 , つまり , CSR: HALT ビットの
読出し値が "0" で , CAN コントローラがメッセージを送信可能 / 受信可能な状態
• BVAL ビットの設定でメッセージバッファを禁止して , メッセージバッファの内容
の読出し / 書込みの処理を行う場合
● 処置
受信メッセージバッファの再構成をする場合の操作
CAN コントローラが CAN 通信に関与している場合 (CSR:HALT ビットの読出し値=
0), ID, AMS, AMR0/AMR1 レジスタ設定によってメッセージバッファを再構成する
ために , 下記の 2 つの動作のうち , いずれか 1 つを行ってください。
- HALT ビットを使用
HALT ビットに "1" を書き込み , 結果が "1" であることを確認するために読み出
してください。その後 , ID/AMS/AMR0/AMR1 レジスタの設定を変更してくださ
い。
- メッセージバッファ 0 を使用しない
メッセージバッファ 0 を使用しないでください。つまり , メッセージバッファを
禁止し (BVAL0 = 0), 割込み受信を禁止し (RIE0 = 0), 送信を要求しないでくだ
さい (TREQ0 = 0)。
受信メッセージを処理する場合の操作
次メッセージの上書きを避けるための BVAL ビットによる受信禁止を使用しないで
ください。上書きが行われたかどうかは , ROVR ビットを使用して確認してくださ
い。詳細は「23.6.16 受信オーバランレジスタ (ROVRR)」と「23.12 メッセージバッ
ファ (x) による受信方法」を参照してください。
送信要求の抑止をする場合の操作
BVAL ビットを転送要求の抑制に使用しないでください。代わりに TCAN ビットを
使用してください。
511
第 23 章 CAN コントローラ
送信メッセージを構成する場合の操作
送信メッセージの構成を行うために , ID レジスタ (IDR) や IDE レジスタ (IDER) の
内容を変更する場合は , メッセージバッファ有効レジスタの BVAL ビットにより
メッセージバッファを無効にする必要があります。
この場合 , TREQ ビットが "0" かどうかチェックした後か , 前メッセージの通信が完
了 (TC = 1) した後に BVAL ビットをリセットしてください
バッファが禁止であることが必要なケースでは , 転送リクエストのペンディングが
ないことを守ってください。このため , 転送中かどうか下記のようにテストする前
に BVALx ビットをリセットしないでください。
a) 必要に応じて転送要求をキャンセル (TCANx=1;)
b) ポーリングか割込みで転送終了を待つ (TREQx = 1 の間 )
転送バッファが不可になった (BVALx=0) 後でのみリセット可能です。
(a の注意事項 ) バッファの転送が既に開始されているときは , キャンセル要求は無
視され , バッファの禁止は転送が完了するまで遅延します。
512
第 24 章
ステッピングモータ
コントローラ
ステッピングモータコントローラの機能と動作に
ついて説明します。
24.1 ステッピングモータコントローラの概要
24.2 ステッピングモータコントローラのレジスタ
24.3 ステッピングモータコントローラ使用上の注意
513
第 24 章 ステッピングモータ コントローラ
ステッピングモータコントローラの概要
24.1
ステッピングモータコントローラは 2 個の PWM パルス発生器 , 4 個のモータドライ
バおよび対応するセレクタロジックから構成されています。
4 個のモータドライバは , 高出力駆動能力があり , 2 個のモータコイルの 4 個の端部
に直接接続できます。PWM パルス発生器とセレクタロジックを組み合わせて , モー
タの回転を制御するように設計されています。同期機構により 2 個の PWM の同期
動作が確かなものとなります。
MB90390 シリーズは , ステッピングモータコントローラを 6 つに分けて供給します。
■ ステッピングモータコントローラのブロックダイヤグラム
図 24.1-1 ステッピングモータコントローラのブロックダイヤグラム
マシンクロック
OE1
CK
プリスケーラ
EN
P1
PWM1P0
セレクタ
PWM1パルス発生器
PWM1M0
PWM
P0
PWM1コンペアレジスタ
PWM1選択レジスタ
OE2
CK
CE
EN
出力許可
PWM2P0
セレクタ
PWM2パルス発生器
PWM2M0
PWM
ロード
PWM2コンペアレジスタ
514
出力許可
BS
PWM2選択レジスタ
第 24 章 ステッピングモータ コントローラ
24.2
ステッピングモータコントローラのレジスタ
ステッピングモータコントローラのレジスタには次の 5 種類があります。
• PWM 制御 n レジスタ (PWCn)
• PWM1 コンペア n レジスタ (PWC1n)
• PWM2 コンペア n レジスタ (PWC2n)
• PWM1 選択レジスタ (PWS1n)
• PWM2 選択レジスタ (PWS2n)
■ ステッピングモータコントローラのレジスタ
図 24.2-1 ステッピングモータコントローラレジスタ一覧
bit 7
アドレス:
SMC0: 000062H OE2
SMC1: 000064H R/W
SMC2: 000066H
SMC3: 000068H
SMC4: 00006AH
SMC5: 00006CH
bit 7
6
OE1
R/W
5
P1
R/W
4
P0
R/W
3
CE
R/W
2
−
−
1
−
−
予約
R/W
6
5
4
3
2
1
0
SMC0: 003550H
SMC1: 003554H
SMC2: 003558H
SMC3: 00355CH
SMC4: 003560H
SMC5: 003564H
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
D7
R/W
bit15
SMC0: 003551H
SMC1: 003555H
SMC2: 003559H
SMC3: 00355DH
SMC4: 003561H
SMC5: 003565H
SMC0: 003552H
SMC1: 003556H
SMC2: 00355AH
SMC3: 00355EH
SMC4: 003562H
SMC5: 003566H
14
13
12
11
10
9
8
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
bit 7
6
5
4
3
2
1
0
−
−
−
−
P2
R/W
P1
R/W
P0
R/W
M2
R/W
M1
R/W
M0
R/W
D7
R/W
bit15
SMC0: 003553H
SMC1: 003557H
SMC2: 00355BH
SMC3: 00355FH
SMC4: 003563H
SMC5: 003567H
0
−
−
14
13
12
11
10
9
8
BS
R/W
P2
R/W
P1
R/W
P0
R/W
M2
R/W
M1
R/W
M0
R/W
PWCn
初期値
00000XX0B
PWC1n ( 下位 )
初期値
XXXXXXXXB
PWC2n ( 上位 )
初期値
XXXXXXXXB
PWS1n ( 下位 )
初期値
XX000000B
PWS2n ( 上位 )
初期値
X0000000B
n = 0, 1, 2, 3, 4, 5
R/W : リード / ライト可能
X
: 未定値
: 不定
515
第 24 章 ステッピングモータ コントローラ
24.2.1
PWM 制御 0 レジスタ
PWM 制御 0 レジスタは , ステッピングモータコントローラの起動・停止 , 割込みの
制御や外部出力端子などの設定を行います。
■ PWM 制御 0 レジスタ
図 24.2-2 PWM 制御 0 レジスタの構成
bit 7
アドレス :
SMC0: 000062 H
SMC1: 000064 H
SMC2: 000066 H
SMC3: 000068 H
SMC4: 00006AH
SMC5: 00006CH
OE2
6
5
4
3
2
1
OE1
P1
P0
CE
-
-
-
-
R/W R/W R/W R/W R/W
0
予約
R/W
PWCn
初期値
00000XX0B
bit 0
予約ビット
予約
0
1
これは予約ビットです。
常に "0" を書き込んでください。
bit 4
カウント許可ビット
CE
0
PWM ジェネレータ停止
1
PWM ジェネレータ動作
bit 5
P1
bit 4
動作クロック選択ビット
P0
0
0
マシンクロック
0
1
1/2 マシンクロック
1
0
1/4 マシンクロック
1
1
1/8 マシンクロック
bit 6
OE1
出力許可 1 ビット
0
汎用端子で出力
1
PWM1Pn, PWM1Mn 出力許可
bit 7
OE2
R/W : リード / ライト可能
X
: 不定
: 未定義
: 初期値
出力許可 2 ビット
0
汎用端子で出力
1
PWM1Pn, PWM1Mn 出力許可
n = 0, 1, 2, 3, 4, 5
■ パルス幅制御レジスタ
[bit7] OE2: 出力許可 2 ビット
本ビットが "1" にセットされたとき , 外部端子は PWM2Pn および PWM2Mn として
割り当てられます。その他の場合にはそれらを汎用 I/O として使用できます。
[bit6] OE1: 出力許可 1 ビット
本ビットが "1" にセットされたとき , 外部端子は PWM1Pn および PWM1Mn として
割り当てられます。その他の場合にはそれらを汎用 I/O として使用できます。
516
第 24 章 ステッピングモータ コントローラ
[bit5, bit4] P1, P0: 動作クロック選択ビット
本ビット群は PWM パルス発生器に対するクロック入力信号を指定します。
クロック入力
P1
P0
0
0
マシンクロック
0
1
1/2 マシンクロック
1
0
1/4 マシンクロック
1
1
1/8 マシンクロック
[bit3] CE: カウント許可ビット
本ビットは PWM パルス発生器の動作を許可します。本ビットが "1" にセットされ
たとき , PWM パルス発生器はそれらの動作を開始します。PWM2 パルス発生器は
PWM1 パルス発生器の 1 マシンクロックサイクル後にスタートすることに注意して
ください。これは出力ドライバからのスイッチングノイズを減少させるのを助ける
ものです。
[bit2, bit1] 不定
[bit0] 予約ビット
予約ビットです。本ビットには必ず "0" を書き込んでください。
517
第 24 章 ステッピングモータ コントローラ
24.2.2
PWM1 および PWM2 コンペアレジスタ
PWM1 および PWM2 の 2 つの 8 ビットコンペアレジスタの内容は , PWM パルスの
幅を決定するものです。記憶された "00H" の値は PWM のデューティが 0% である
ことを表し , "FFH" は 99.6% のデューティを表します。
■ PWM1 および PWM2 コンペアレジスタ
PWM1 および PWM2 コンペアレジスタは , 任意の時点でアクセスできますが , 変更さ
れた値はPWM2選択レジスタのBSビットが"1"にセットされた後における現在のPWM
サイクルの終わりにパルス幅に反映されます。
図 24.2-3 PWM1 および PWM2 コンペアレジスタ
bit 7
SMC0: 003550H
D7
SMC1: 003554H R/W
SMC2: 003558H
SMC3: 00355CH
SMC4: 003560H
SMC5: 003564H
bit15
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
PWC1n ( 下位 )
初期値
XXXXXXXXB
14
13
12
11
10
9
8
SMC0: 003551H
SMC1: 003555H
SMC2: 003559H
SMC3: 00355DH
SMC4: 003561H
SMC5: 003565H
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
PWC2n ( 上位 )
初期値
XXXXXXXXB
D7
R/W
図 24.2-4 デューティサイクル設定の例
1つのPWMサイクル
256入力クロックサイクル
レジスタ値
00H
80H
128入力クロックサイクル
FFH
255入力クロックサイクル
518
第 24 章 ステッピングモータ コントローラ
24.2.3
PWM1 および PWM2 選択レジスタ
PWM1 および PWM2 選択レジスタは , ステッピングモータコントローラの外部端子
の出力が "0", "1", PWM パルスおよびハイインピーダンスかを選択します。
■ PWM1 選択レジスタ
図 24.2-5 PWM1 選択レジスタ構成
アドレス :
SMC0: 003552 H
SMC1: 003556 H
SMC2: 00355AH
SMC3: 00355EH
SMC4: 003562 H
SMC5: 003566 H
bit 7
6
5
4
3
2
1
0
-
-
P2
-
- R/W R/W R/W R/W R/W R/W
PWS1n
P1 P0 M2 M1 M0
初期値
X X 0 0 0 0 00 B
bit 2
bit 1
M1 出力選択ビット
M1
M0
0
0
0
PWM1Mn = "L"
0
0
1
0
1
X
PWM1Mn = "H"
PWM パルス
1
X
X
bit 5
R/W : リード / ライト可能
: 不定
: 初期値
bit 0
M2
bit 4
ハイインピーダンス
bit 3
P1 出力選択ビット
P2
P1
P0
0
0
0
PWM1Pn = "L"
0
0
1
0
1
X
PWM1Pn = "H"
PWM パルス
1
X
X
ハイインピーダンス
n = 0, 1, 2, 3, 4, 5
519
第 24 章 ステッピングモータ コントローラ
■ パルス幅モジュレータ 1 選択レジスタ (PWS1n) の内容
表 24.2-1 PWM1 選択レジスタの各ビットの機能
ビット名
bit7,
bit6
機能
不定
─
本ビット群は PWM1Pn における出力信号を選択するものです。
bit5 ~
bit3
P2 ~ P0:
出力 P 選択ビット
P2
P1
P0
PWM1Pn
0
0
0
"L"
0
0
1
"H"
0
1
X
PWM パルス
1
X
X
ハイインピーダンス
本ビット群は PWM1Mn における出力信号を選択するものです。
bit2 ~
bit0
520
M2 ~ M0:
出力 M 選択ビット
M2
M1
M0
PWM1Mn
0
0
0
"L"
0
0
1
"H"
0
1
X
PWM パルス
1
X
X
ハイインピーダンス
第 24 章 ステッピングモータ コントローラ
■ PWM2 選択レジスタ
アドレス :
SMC0: 003553 H
SMC1: 003557 H
SMC2: 00355BH
SMC3: 00355F H
SMC4: 003563 H
SMC5: 003567 H
bit 15
14
13
12
11
10
9
8
BS
P2
P1 P0 M2 M1 M0
PWS2n
-
R/W R/W R/W R/W R/W R/W R/W
初期値
X 0 0 0 0 0 0 0B
bit 10
bit 9
bit 8
M2 出力選択ビット
M2
M1
M0
0
0
0
PWM2Mn = "L"
0
0
1
0
1
X
PWM2Mn = "H"
PWM パルス
1
X
X
bit 13
bit 12
bit 11
ハイインピーダンス
P2 出力選択ビット
P2
P1
P0
0
0
0
PWM2Pn = "L"
0
0
1
0
1
X
PWM2Pn = "H"
PWM パルス
1
X
X
ハイインピーダンス
bit 14
BS
0
R/W : リード / ライト可能
: 不定
: 初期値
1
アップデートビット
-
パルスジェネレータ , セレクタが PWM サイクル
の終端でレジスタ内容をロード
n = 0, 1, 2, 3, 4, 5
521
第 24 章 ステッピングモータ コントローラ
■ パルス幅モジュレータ 2 選択レジスタ (PWS2n) の内容
表 24.2-2 PWM2 選択レジスタの各ビットの機能
ビット名
bit15
bit14
機能
不定
BS:
書換えビット
─
本ビットは PWM 出力に対する設定を同期するために用意されてい
ます。本ビットがセットされるまで , 2 個のコンペアレジスタおよ
び 2 個の選択レジスタに対して行われた変更は出力信号には反映さ
れません。
本ビットが "1" にセットされたとき , PWM パルス発生器およびセ
レクタはレジスタ内容を現在の PWM サイクルの終わりでロードし
ます。BS ビットは次の PWM サイクルの始めに自動的に "0" にリ
セットされます。もし , BS ビットがこの自動リセットと同時にソ
フトウェアにより "1" にセットされると , BS ビットは "1" にセット
され ( すなわち変更されないままであり ), 自動リセットは解除さ
れます。
本ビット群は PWM2Pn における出力信号を選択するものです。
bit13 ~
bit11
P2 ~ P0:
出力 P 選択
ビット
P2
P1
P0
PWM2Pn
0
0
0
"L"
0
0
1
"H"
0
1
X
PWM パルス
1
X
X
ハイインピーダンス
本ビット群は PWM2Mn における出力信号を選択するものです。
bit10 ~
bit8
522
M2 ~ M0:
出力 M 選択
ビット
M2
M1
M0
PWM2Mn
0
0
0
"L"
0
0
1
"H"
0
1
X
PWM パルス
1
X
X
ハイインピーダンス
第 24 章 ステッピングモータ コントローラ
24.3
ステッピングモータコントローラ使用上の注意
ステッピングモータコントローラを使用する場合の注意点を示します。
■ 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" に設定するのと同時に BS ビットを PWM サイクルの終了時にリセッ
トする場合 , 書込み "1" が優先され , BS ビットのリセットが解除されます。
523
第 24 章 ステッピングモータ コントローラ
524
第 25 章
サウンドジェネレータ
サウンドジェネレータの機能と動作について説明
します。
25.1 サウンドジェネレータの概要
25.2 サウンドジェネレータのレジスタ
525
第 25 章 サウンドジェネレータ
25.1
サウンドジェネレータの概要
サウンドジェネレータは , サウンド制御レジスタ , 周波数データレジスタ , 振幅デー
タレジスタ , デクリメントグレードレジスタ , トーンカウントレジスタ , PWM パル
ス発生器 , 周波数カウンタ , デクリメントカウンタおよびトーンパルスカウンタから
構成されています。
■ サウンドジェネレータのブロックダイヤグラム
図 25.1-1 に , サウンドジェネレータのブロックダイヤグラムを示します。
図 25.1-1 サウンドジェネレータのブロックダイヤグラム
クロック入力
プリスケーラ
S1
S0
8ビットPWM
パルス発生器 CO
EN
PWM
CI
CO
EN
リロード
振幅データ
レジスタ
トグル
フリップフロップ
D
Q
EN
周波数
カウンタ
リロード
1/d
周波数データ
レジスタ
DEC
DEC
デクリメント
カウンタ
CI
CO
EN
SGA
OE1
デクリメント
グレードレジスタ
トーンパルス
カウンタ
混合
TONE
OE1
SGO
OE2
OE2
CI
CO
EN
トーンカウント
レジスタ
INTE
INT
ST
IRQ
526
第 25 章 サウンドジェネレータ
25.2
サウンドジェネレータのレジスタ
サウンドジェネレータのレジスタには , 次の 5 種類があります。
• サウンド制御レジスタ (SGCR)
• 周波数データレジスタ (SGFR)
• 振幅データレジスタ (SGAR)
• デクリメントグレードレジスタ (SGDR)
• トーンカウントレジスタ (SGTR)
■ サウンドジェネレータのレジスタ
図 25.2-1 サウンドジェネレータレジスタ一覧
アドレス:
00005EH
00005FH
003546H
6
S0
R/W
5
TONE
R/W
4
OE2
R/W
3
OE1
R/W
2
INTE
R/W
1
INT
R/W
0
ST
R/W
bit15
14
13
12
11
10
9
8
Reserved
R/W
−
−
−
−
−
BUSY
DEC
−
−
−
−
−
R/W
R/W
bit 7
D7
R/W
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
SGFR
初期値
XXXXXXXXB
SGAR
初期値
XXXXXXXXB
bit15
003547H
D7
R/W
bit 7
003548H
D7
R/W
bit15
003549H
SGCR ( 下位 )
初期値
00000000B
bit 7
S1
R/W
D7
R/W
14
13
12
11
10
9
8
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
6
5
4
3
2
1
0
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
14
13
12
11
10
9
8
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
SGCR ( 上位 )
初期値
0XXXXX00B
SGDR
初期値
XXXXXXXXB
SGTR
初期値
XXXXXXXXB
R/W : リード / ライト可能
X
: 未定値
: 不定
527
第 25 章 サウンドジェネレータ
サウンドジェネレータ制御レジスタ
25.2.1
サウンド制御レジスタは , サウンドジェネレータの割込みの制御や外部出力端子な
どの設定を行い , 動作状態の制御を行います。
■ サウンドジェネレータ制御レジスタ (SGCR) ( 下位 )
図 25.2-2 サウンドジェネレータ制御レジスタ ( 下位バイト ) の構成
bit 7
6
5
4
3
2
1
0
INT
ST
アドレス :
00005EH
S1
S0
TONE OE2
OE1 INTE
SGCR (下位)
初期値
0 0 0 0 0 0 0 0B
R/W R/W R/W R/W R/W R/W R/W R/W
bit 0
ST
0
1
スタートビット
ストップ動作
スタート動作
bit 1
INT
0
1
読出し時
割込みなし
割込み要求
割込みビット
書込み時
割込みクリア
効果なし
bit 2
割込み許可ビット
INTE
0
1
割込み禁止
割込み許可
bit 3
OE1
0
1
アンプ出力許可ビット
汎用端子
SGA 出力許可
bit 4
OE2
0
1
サウンド出力許可ビット
汎用端子
SGO 出力許可
bit 5
TONE
0
1
bit 7
R/W
: リード / ライト可能
: 初期値
528
トーン出力ビット
トーン, PWM ミックス
SGO 出力
bit 6
S1
S0
0
0
0
1
1
0
1
1
動作クロック選択ビット
マシンクロック
1/2 マシンクロック
1/4 マシンクロック
1/8 マシンクロック
第 25 章 サウンドジェネレータ
■ サウンドジェネレータ制御レジスタ (SGCR) ( 下位 ) の内容
[bit7, bit6] S1, S0: 動作クロック選択ビット
本ビット群はサウンドジェネレータに対するクロック入力信号を指定するもので
す。
クロック入力
S1
S0
0
0
マシンクロック
0
1
1/2 マシンクロック
1
0
1/4 マシンクロック
1
1
1/8 マシンクロック
[bit5] TONE: トーン出力ビット
本ビットが "1" にセットされたとき , SGO 信号はトグルフリップ - フロップから単
純な矩形波形 ( トーンパルス ) になります。その他の場合には , SGO 信号トーンパ
ルスと PWM パルスとの混合 (AND ロジック ) 信号となります。
[bit4] OE2: サウンド出力許可ビット
本ビットが "1" にセットされたとき , 外部端子は SGO 出力として割り当てられます。
その他の場合には端子は汎用に使用できます。SGO 出力を許可するにはポート方向
レジスタの対応ビットも "1" にセットしなければなりません。
[bit3] OE1: 振幅出力許可ビット
本ビットが "1" にセットされたとき , 外部端子は SGA 出力として割り当てられます。
その他の場合には端子は汎用に使用できます。SGA 出力を許可するには , ポート方
向レジスタの対応ビットも "1" にセットしなければなりません。
SGA 信号は PWM パルス発生器からの PWM パルスでありサウンドの振幅を表して
います。
[bit2] INTE: 割込み許可ビット
本ビットはサウンドジェネレータの割込み信号を許可するものです。本ビットが"1"
であり INT ビットが "1" にセットされたとき , サウンドジェネレータは割込みを信
号で知らせます。
[bit1] INT: 割込みビット
トーンカウントレジスタおよびデクリメントグレードレジスタにより指定された
トーンパルスの個数がトーンパルスカウンタによりカウントされたときに本ビッ
トは "1" にセットされます。
本ビットは "0" を書き込むことにより "0" にリセットされます。"1" を書き込んでも
効果はなく , リードモディファイライト (RMW) 系命令は常に "1" を読み取る結果と
なります。
529
第 25 章 サウンドジェネレータ
[bit0] ST: 開始ビット
本ビットはサウンドジェネレータの動作を開始させるためのものです。本ビットが
"1" の間にサウンドジェネレータはその動作を行います。
本ビットが "0" にリセットされたとき , サウンドジェネレータは現在のトーンサイ
クルの終わりにその動作を停止します。BUSY ビットはサウンドジェネレータが完
全に停止したかどうかを示します。
本ビットが "0" のときに "1" を書き込むと , 周波数データレジスタ , 振幅データレジ
スタ , デクリメントグレードレジスタ , トーンカウントレジスタの値は , それぞれカ
ウンタにロードされます。
530
第 25 章 サウンドジェネレータ
■ サウンドジェネレータ制御レジスタ ( 上位 )
図 25.2-3 サウンドジェネレータ制御レジスタ ( 上位バイト )
アドレス :
00005FH
bit 15
14
13
12
11
10
予約
-
-
-
-
-
R/W
-
-
-
-
-
9
8
BUSY DEC
R R/W
SGCR (上位)
初期値
0 X X X X X 0 0B
bit 8
DEC
0
1
オートデクリメント許可ビット
オートデクリメント禁止
オートデクリメント許可
bit 9
BUSY
0
1
ビジービット
動作完了
ジェネレータビジー
bit 15
予約
R/W : リード / ライト可能
R
: リードオンリ
: 未定義
: 初期値
0
1
予約ビット
常に "0" を書き込んでください。
■ サウンドジェネレータ制御レジスタ (SGCR) ( 上位 ) の内容
[bit15] 予約ビット
予約ビットです。本ビットには必ず "0" を書き込んでください。
[bit14 ~ bit10] 未定義ビット
[bit9] BUSY: ビジービット
本ビットはサウンドジェネレータが動作しているかどうかを示すものです。本ビッ
トは ST ビットが "1" にセットされると同時に "1" にセットされます。また , 本ビッ
トは ST ビットが "0" にリセットされて 1 つのトーンサイクルの終わりに動作が完
了したときに "0" にリセットされます。本ビットに書込み命令を行っても効果はあ
りません。
[bit8] DEC: 自動デクリメント許可ビット
DEC ビットはデクリメントグレードレジスタと組み合わされたサウンドの自動デ
グラデーションのために用意されたものです。
もし , 本ビットが "1" にセットされると , デクリメントグレードレジスタにより指定
されたトグルフリップ - フロップからのトーンパルスの個数がデクリメントカウン
タによりカウントされるごとに , 振幅データレジスタに記憶された値は 1 だけデク
リメントされます。
531
第 25 章 サウンドジェネレータ
25.2.2
周波数データレジスタ
周波数データレジスタは周波数カウンタに対するリロード値を記憶します。記憶さ
れた値はサウンド ( またはトグルフリップ - フロップからのトーン信号 ) の周波数を
表します。レジスタ値は周波数カウンタのアンダフローかつ PWM パルス生成カウ
ンタのアンダフローでカウンタ内にリロードされます。
■ 周波数データレジスタ
アドレス
003546H
bit 7
D7
R/W
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
SGFR
初期値
XXXXXXXXB
R/W: リード / ライト可能
図 25.2-4 に , トーン信号とレジスタ値との間の関係を示します。
図 25.2-4 トーン信号とレジスタ値との間の関係
1つのトーンサイクル
トーン信号
(レジスタ値+1)×
1PWMサイクル
(レジスタ値+1)×
1PWMサイクル
動作中にレジスタ値を変更すると変更のタイミングによっては 50% のデューティサイ
クルに変わることもあり得ます。
532
第 25 章 サウンドジェネレータ
25.2.3
振幅データレジスタ
振幅データレジスタは PWM パルス発生器に対するリロード値を記憶します。レジ
スタ値はサウンドの振幅を表します。レジスタ値はトーン信号の立下りで PWM パ
ルス発生器にリロードされます。
■ 振幅データレジスタ
アドレス
003547H
bit15
D7
R/W
14
D6
R/W
13
D5
R/W
12
D4
R/W
11
D3
R/W
10
D2
R/W
9
D1
R/W
8
D0
R/W
SGAR
初期値
XXXXXXXXB
R/W: リード / ライト可能
DEC ビットが "1" でありデクリメントカウンタがそのリロード値に達したとき , この
レジスタ値は 1 だけデクリメントされますが , レジスタ値が "00H" に達したときにはさ
らなるデクリメントは行われません。ただし , サウンドジェネレータは ST ビットがク
リアされるまでその動作を継続します。
図 25.2-5 に , レジスタ値と PWM パルスとの間の関係を示します。
図 25.2-5 レジスタ値と PWM パルスとの間の関係
1つのPWMサイクル
256入力クロックサイクル
レジスタ値
00H
1つの入力クロックサイクル
80H
129入力クロックサイクル
FEH
255入力クロックサイクル
FFH
256入力クロックサイクル
レジスタ値が "FFH" にセットされたときに PWM 信号は常に "1" となります。
533
第 25 章 サウンドジェネレータ
25.2.4
デクリメントグレードレジスタ
デクリメントグレードレジスタはデクリメントカウンタに対するリロード値を記憶
するものです。これらは振幅データレジスタ内の記憶値を自動的にデクリメントす
るために用意されたものです。レジスタ値はデクリメントカウンタのアンダフロー
かつトーン信号の立下りでカウンタ内にリロードされます。
■ デクリメントグレードレジスタ
アドレス
003548H
bit 7
D7
R/W
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
SGDR
初期値
XXXXXXXXB
R/W: リード / ライト可能
DEC ビットが "1" でありデクリメントカウンタがトーンパルスをリロード値までカウ
ントしたとき, 振幅データレジスタはトーンサイクルの終わりに1だけデクリメントさ
れます。
この動作により , CPU の介在の回数を少なくしてサウンドの自動的なデグラデーショ
ンが実現されます。
このレジスタにより指定されたトーンパルスの数は " レジスタ値 +1" であることに注
意してください。デクリメントグレードレジスタが "00H" にセットされたときにデク
リメント動作がトーンサイクルごとに行われます。
534
第 25 章 サウンドジェネレータ
25.2.5
トーンカウントレジスタ
トーンカウントレジスタはトーンパルスカウンタに対するリロード値を記憶するも
のです。トーンパルスカウンタはトーンパルスの数 ( またはデクリメント動作の回
数 ) を蓄積して , それがリロード値に達したときに INT ビットをセットします。それ
らは割込みの頻度を減少することを目的としています。レジスタ値はトーンパルス
カウンタのアンダフローかつデクリメントカウンタのアンダフローかつトーン信号
の立下りでカウンタ内にリロードされます。
■ トーンカウントレジスタ
アドレス
003549H
bit15
D7
R/W
14
D6
R/W
13
D5
R/W
12
D4
R/W
11
D3
R/W
10
D2
R/W
9
D1
R/W
8
D0
R/W
SGTR
初期値
XXXXXXXXB
R/W: リード / ライト可能
トーンパルスカウンタのカウント入力はデクリメントカウンタからのキャリアウト信
号に接続されています。トーンカウントレジスタが "00H" にセットされたときにトー
ンパルスカウンタはデクリメントカウンタからのキャリアウトごとに INT ビットを
セットします。このため , 蓄積されたトーンパルスの数は ,
(( デクリメントグレードレジスタ ) +1) × (( トーンカウントレジスタ ) +1)
となります。
すなわち , 両レジスタが "00H" にセットされたときに INT ビットはトーンサイクルご
とにセットされます。
535
第 25 章 サウンドジェネレータ
536
第 26 章
アドレス一致検出機能
アドレス一致検出の機能と動作について説明しま
す。
26.1 アドレス一致検出機能の概要
26.2 アドレス一致検出機能のレジスタ
26.3 アドレス一致検出機能の動作
26.4 アドレス一致検出機能の使用例
537
第 26 章 アドレス一致検出機能
26.1
アドレス一致検出機能の概要
アドレスがアドレス検出レジスタに設定された値と等しい場合に , CPU に読み出さ
れる命令コードを強制的に INT9 命令のコード (01H) に置き換えます。その結果 ,
CPU が設定された命令を実行するときに INT9 命令を実行します。INT9 割込みルー
チンで処理を行うことにより , アドレス一致検出機能を実現できます。
アドレス検出レジスタは 5 本用意されており , レジスタごとに割込み許可ビットが
あります。アドレス検出レジスタに設定された値とアドレスが一致して , かつ割込
み許可ビットが "1" の場合 , CPU に読み出される命令コードを強制的に INT9 命令
のコードに置き換えます。
■ アドレス一致検出機能のブロックダイヤグラム
図 26.1-1 アドレス一致検出機能のブロックダイヤグラム
アドレス検出レジスタ
許可ビット
F2MC-16LXバス
538
比較
アドレスラッチ
INT9
命令
F2MC-16LX
CPUコア
第 26 章 アドレス一致検出機能
26.2
アドレス一致検出機能のレジスタ
アドレス一致検出機能には , 次の 2 種類のレジスタがあります。
• プログラムアドレス検出レジスタ (PADR0, PADR1, PADR3 ~ PADR5)
• プログラムアドレス検出制御 / ステータスレジスタ (PACSR0, PACSR1)
■ プログラムアドレス検出レジスタ (PADR0, PADR1, PADR3 ~ PADR5)
プログラムアドレス検出レジスタは , 各レジスタに書き込まれた値とアドレスを比較
します。一致した場合は , PACSR の対応する割込み許可ビットが "1" の場合 , CPU に
対して INT9 命令の発生を要求します。
対応する割込み許可ビットが "0" の場合は , 一致していても何も行いません。
図 26.2-1 プログラムアドレス検出レジスタ (PADR0, PADR1, PADR3 ~ PADR5)
プログラムアドレス検知レジスタ
PADR0 0035E2H/0035E1H/0035E0H
PADR1 0035E5H/0035E4H/0035E3H
PADR3 0035F2H/0035F1H/0035F0H
PADR4 0035F5H/0035F4H/0035F3H
PADR5 0035F8H/0035F7H/0035F6H
バイト
バイト
バイト
アクセス
R/W
R/W
R/W
R/W
R/W
初期値
不定
不定
不定
不定
不定
表 26.2-1 に , PADR0, PADR1, PADR3 ~ PADR5 レジスタと PACSR0,PACSR1 レジスタ
との対応を示します。
表 26.2-1 PADR0, PADR1, PADR3 ~ PADR5 レジスタと PACSR0, PACSR1 レジス
タとの対応
アドレス検出レジスタ
割込み許可ビット
PADR0
AD0E (bit1)
PADR1
AD1E (bit3)
PADR3
AD3E (bit1)
PADR4
AD4E (bit3)
PADR5
AD5E (bit5)
■ プログラムアドレス検出制御 / ステータスレジスタ (PACSR)
プログラムアドレス検出制御 / ステータスレジスタ (PACSR) は , アドレス検出機能の
動作を制御します。
図 26.2-2 プログラムアドレス検出制御 / ステータスレジスタ (PACSR0/PACSR1)
アドレス
00009EH
アドレス
00003BH
bit 7
6
5
4
Reserved
Reserved
Reserved
Reserved
R/W
R/W
R/W
R/W
bit15
3
AD1E
R/W
2
Reserved
R/W
1
AD0E
R/W
0
Reserved
R/W
14
13
12
11
10
9
8
Reserved
Reserved
Reserved
AD3E
R/W
Reserved
R/W
AD4E
R/W
Reserved
R/W
AD5E
R/W
R/W
R/W
R/W
PACSR0
初期値
00000000B
PACSR1
初期値
00000000B
R/W: リード / ライト可能
539
第 26 章 アドレス一致検出機能
[bit15, bit14] 予約ビット
本ビットは , 予約ビットです。PACSR1 を設定する前に , 必ず "0" を設定してくださ
い。
[bit13] AD5E( アドレス検知レジスタ 1 許可 )
本ビットは , PADR5 の動作許可ビットです。
このビットが "1" のとき PADR5 レジスタとアドレスの比較を行い , 一致した場合に
CPU は INT9 命令を実行します。
[bit12] 予約ビット
本ビットは , 予約ビットです。PACSR1 を設定するときは , 必ず "0" を設定してくだ
さい。
[bit11] AD4E( アドレス検知レジスタ 1 許可 )
本ビットは , PADR4 の動作許可ビットです。
このビットが "1" のとき PADR4 レジスタとアドレスの比較を行い , 一致した場合に
CPU は INT9 命令を実行します。
[bit10] 予約ビット
本ビットは , 予約ビットです。PACSR1 を設定するときは , 必ず "0" を設定してくだ
さい。
[bit9] AD3E: アドレス検知レジスタ 1 許可
本ビットは PADR3 の動作許可ビットです。
このビットが "1" のとき , アドレスは PADR3 レジスタで比較されます。一致の場合 ,
INT9 命令が発行されます。
[bit8] 予約ビット
本ビットは予約ビットです。PACSR1 を設定する前にこのビットを "0" に設定して
ください。
[bit7 ~ bit4] 予約ビット
本ビットは予約ビットです。PACSR0 を設定する前にこのビットを "0" に設定して
ください。
[bit3] AD1E: アドレス検知レジスタ 1 許可
本ビットは , PADR1 の動作許可ビットです。
このビットが "1" のときに PADR1 レジスタとアドレスの比較を行い , 一致した場合
に CPU は INT9 命令を実行します。
[bit2] 予約ビット
本ビットは予約ビットです。PACSR0 を設定する前にこのビットを "0" に設定して
ください。
[bit1] AD0E: アドレス検知レジスタ 0 許可
本ビットは , PADR0 の動作許可ビットです。
このビットが "1" のとき , アドレスは PADR0 レジスタで比較されます。一致の場合 ,
INT9 命令が発行されます。
[bit0] 予約ビット
本ビットは予約ビットです。PACSR0 を設定する前にこのビットを "0" に設定して
ください。
540
第 26 章 アドレス一致検出機能
26.3
アドレス一致検出機能の動作
プログラムカウンタがアドレス一致検出レジスタと同じアドレスを指示している場
合は INT9 命令を実行します。INT9 命令ルーチンを処理することによってアドレス
一致検出機能を実現できます。
■ アドレス一致検出機能の動作
アドレス検出レジスタは5本用意されており, レジスタごとにコンペア許可ビットがあ
ります。アドレス検出レジスタに設定された値とプログラムカウンタの値が一致して ,
かつコンペア許可ビットが "1" の場合 , CPU は INT9 命令を実行します。
<注意事項>
アドレス検出レジスタとプログラムカウンタの値が一致した場合は , 内部データバスの内
容が強制的に "01H" に変更されるので , INT9 命令を実行することになります。アドレス検
出レジスタの内容を変更する前には , コンペア許可ビットを必ず "0" にしてください。コ
ンペア許可ビットが "1" になっている間に変更すると , 誤動作を引き起こす可能性があり
ます。
541
第 26 章 アドレス一致検出機能
26.4
アドレス一致検出機能の使用例
図 26.4-1 にアドレス一致検出機能のシステム構成例を , 表 26.4-1 に E2PROM メモ
リマップを示します。
■ アドレス一致検出機能のシステム構成例
図 26.4-1 アドレス一致検出機能のシステム構成例
E2PROM
MCU
F2MC-16LX
プルアップ抵抗
SIN
○
コネクタ(UART)
表 26.4-1 E2PROM メモリマップ
アドレス
意味
0000H
パッチプログラム No.0 バイト数 ("0" のときプログラムミスなし )
0001H
プログラムアドレス No.0 (bit7 ~ bit0)
0002H
プログラムアドレス No.0 (bit15 ~ bit8)
0003H
プログラムアドレス No.0 (bit24 ~ bit16)
0004H
パッチプログラム No.1 バイト数 ("0" のときプログラムミスなし )
0005H
プログラムアドレス No.1 (bit7 ~ bit0)
0006H
プログラムアドレス No.1 (bit15 ~ bit8)
0007H
プログラムアドレス No.1 (bit24 ~ bit16)
0010H ~
パッチプログラム No.0 本体
● 初期状態
E2PROM はすべて "0" とします。
● パッチが必要となる場合
コネクタ (UART) を通して , MCU にパッチプログラムの本体およびプログラムアドレ
スを転送します。MCU はその情報を E2PROM に書き込みます。
542
第 26 章 アドレス一致検出機能
● リセットシーケンス
MCU はリセット後 E2PROM の値を読み出します。パッチプログラムのバイト数が "0"
でなかった場合は , パッチプログラムの本体が E2PROM から読み出され RAM に書き
込まれます。次に , MCU により PADR0 または PADR1 どちらか一方でパッチアドレス
をセットし , コンペア許可ビットをセットします。再配置可能はパッチプログラムが望
まれる場合は , RAM 領域に対してパッチ済みプログラムの最初のアドレスを書き込む
ことができます。この場合 , INT9 ルーチンがこのユーザ定義の RAM 領域を参照し ,
パッチ済みプログラムへ向けてジャンプします。
● INT9 命令
割込みルーチンでは , スタックプログラムのカウンタの値を調べることにより , 割込み
が発生するアドレスを知ることができます。割込みの最中にスタックへ押し込まれた
情報は破棄されます。
■ プログラムパッチ処理例
図 26.4-2 プログラムパッチ処理例
000000H
③
修正プログラム
RAM
プログラムアドレス検出レジスタ
E2PROM
①
プログラムアドレス検出設定
(リセットシーケンス)
・修正プログラムバイト数
・割込み発生アドレス
・修正プログラム
ROM
②
④
異常プログラム
FFFFFFH
①リセットシーケンスのプログラムアドレス検出設定と通常プログラムの実行
②アドレス一致検出によるINT9割込み処理でRAMに展開した修正プログラムへ分岐
③INT9処理の分岐による修正プログラムの実行
④修正プログラムから分岐した元の通常プログラムの実行
543
第 26 章 アドレス一致検出機能
図 26.4-3 プログラムパッチ処理フロー図
リセット
E2PROMの"0000H"を読み出す
INT9
YES
"0000H"=0(E2PROM)
NO
パッチプログラムへ
JMP 000400H
アドレスを読み出す
"0001H"~"0003H"(E2PROM)
↓MOV
PADR0(MCU)
パッチプログラム実行
"000400H"~"000480H"
パッチプログラムを読み出す
パッチプログラム終了
JMP FF0050H
"0010H"~"0090H"(E2PROM)
↓MOV
"000400H"~"000480H"(MCU)
コンペア許可
MOV PACSR,#02H
通常プログラム実行
NO
PC=PADR0
YES
INT9
FFFFFFH
ROM
FFFFH
0090H
FF0050H
FE0000H
パッチプログラム
0010H
001100H
プログラムアドレス中位:00
0002H
RAM
000480H
000400H
プログラムアドレス上位:FF
0001H
000100H
パッチプログラムバイト数:80
544
スタック領域
RAM領域
プログラムアドレス下位:00
0003H
0000H
異常プログラム
FF0000H
E2PROM
000000H
パッチプログラム
RAM/レジスタ領域
I/O領域
第 27 章
ROM ミラー機能選択
モジュール
ROM ミラー機能選択モジュールについて説明しま
す。
27.1 ROM ミラー機能選択モジュールの概要
27.2 ROM ミラー機能選択レジスタ (ROMM)
545
第 27 章 ROM ミラー機能選択 モジュール
27.1
ROM ミラー機能選択モジュールの概要
ROM ミラー機能選択モジュールは , FF バンクに配置されている ROM 内のデータを
00 バンクへのアクセスで読み出せるように設定します。
■ ROM ミラー機能選択モジュールのブロックダイヤグラム
図 27.1-1 ROM ミラー機能選択モジュールのブロックダイヤグラム
F2MC-16LXバス
ROMミラー機能選択レジスタ
アドレス領域
FFバンク
00バンク
ROM
546
第 27 章 ROM ミラー機能選択 モジュール
27.2
ROM ミラー機能選択レジスタ (ROMM)
ROM ミラー機能選択レジスタ (ROMM) は , アドレス "004000H" ~ "00FFFFH" 番地
を使用中にアクセスしないでください。
■ ROM ミラー機能選択レジスタ (ROMM)
図 27.2-1 ROM ミラー機能選択レジスタ (ROMM)
アドレス :
00006FH
bit15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
−
−
MS
R/W
(+)
MI
R/W
−
−
R/W : リード / ライト可能
X
: 不定
: 未定義
ROMM
初期値
XXXXXX+1B
(+): MB90V390H: リードオンリ , "1" に固定
MB90F394H: 選択可能 , 初期値 "0"
表 27.2-1 ROM ミラーレジスタの各ビット機能
ビット名
bit15 ~
bit10
未定義
機能
"1": 32K バイト ROM ミラーサイズ (008000H ~ 00FFFFH)
"0": 48K バイト ROM ミラーサイズ (004000H ~ 00FFFFH)
bit9
MS:
ミラーサイズ
bit8
MI:
ミラービット
( 注意事項 )
MB90V390H, MB90V390HA および MB90F390HB ではこのビットは
"1" に固定され , 読出しのみ使用できます。MB90394HA および
MB90F394H(A) では選択可能です。
"1" を書込み時には FF バンクの ROM のデータが 00 バンクでも読
み出せるようになります。"0" を書込み時には 00 バンクはこの機
能は働きません。
本ビットは , 書込みのみ可能です。
<注意事項>
ROM ミラー機能を起動している場合 , "FF4000H"/"FF8000H" ~ "FFFFFFH" 番地のみ
"004000H"/"008000H" ~ "00FFFFH" 番地にミラーされます。このため , "FF0000H" ~
"FF3FFFH"/"FF7FFFH" 番地は 00 バンクにミラーされません。
547
第 27 章 ROM ミラー機能選択 モジュール
548
第 28 章
3M ビット
フラッシュメモリ
3M ビットフラッシュメモリの機能や動作について
説明します。
フラッシュメモリへのデータ書込み / 消去の方法に
は , 下記の 3 とおりの方法があります。
• パラレルライタ
• シリアル専用ライタ
• プログラム実行による書込み / 消去
ここでは , " プログラム実行による書込み / 消去 "
について説明します。
28.1 3M ビットフラッシュメモリの概要
28.2 フラッシュメモリ全体のブロックダイヤグラムと
フラッシュメモリのセクタ構成
28.3 書込み / 消去モード
28.4 フラッシュメモリ制御ステータスレジスタ (FMCS)
28.5 フラッシュメモリ自動アルゴリズム起動方法
28.6 自動アルゴリズム実行状態の確認
28.7 フラッシュメモリ書込み / 消去の詳細説明
28.8 3M ビットフラッシュメモリ使用上の注意
28.9 フラッシュメモリにおけるリセットベクタアドレス
28.10 3M ビットフラッシュメモリのプログラム例
549
第 28 章 3M ビット フラッシュメモリ
28.1
3M ビットフラッシュメモリの概要
3M ビットフラッシュメモリは , CPU メモリマップ上の F8/F9 ~ FF バンクに配置さ
れ , フラッシュメモリインタフェース回路の機能により , マスク ROM と同様に CPU
からの読出しアクセスおよびプログラムアクセスが可能です。フラッシュメモリへ
の書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの命令
動作で行えます。このため , 内蔵 CPU の制御による実装状態での書換えが可能とな
り , プログラムおよびデータの改善を効率よく行えます。
■ 3M ビットフラッシュメモリの特長
• 自動プログラムアルゴリズム (Embedded AlogrithmTM*:MBM29LV200 と同様 )
• 消去一時停止 / 消去再開機能の搭載
• データポーリング , トグルビットによる書込み / 消去完了検出
• CPU 割込みによる書込み / 消去の完了検出
• セクタごとの消去が可能 ( セクタ組合せ自由 )
• 書込み / 消去回数 ( 最小 ) 10,000 回
*:Embedded Algorithm は Advanced Micro Devices 社の商標です。
<注意事項>
マニュファクチャコードとデバイスコードの読出し機能はありません。また , これらの
コードはコマンドによってもアクセスできません。
■ フラッシュメモリ書込み / 消去の方法
フラッシュメモリは書込みと読出しを同時に行うことはできません。つまり , フラッ
シュメモリにデータ書込み / 消去動作を行う際には , フラッシュメモリ上にあるプログ
ラムを RAM に一度コピーし RAM 実行することで , フラッシュメモリからプログラム
アクセスをせずに書込み動作だけを行うことが可能となります。
■ フラッシュメモリのレジスタ
● フラッシュメモリ制御ステータスレジスタ (FMCS)
bit 7
アドレス : 0000AEH
550
6
5
4
3
2
1
0
INTE
RDYINT
WE
RDY
Reserved
Reserved
Reserved
Reserved
(R/W)
(R/W)
(R/W)
(R)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
000X0000B
第 28 章 3M ビット フラッシュメモリ
28.2
フラッシュメモリ全体のブロックダイヤグラムと
フラッシュメモリのセクタ構成
図 28.2-1 に , フラッシュメモリインタフェース回路付きのフラッシュメモリ全体の
ブロックダイヤグラムを , 図 28.2-2 に , 3M ビットフラッシュメモリのセクタ構成を
示します。
■ フラッシュメモリ全体のブロックダイヤグラム
図 28.2-1 フラッシュメモリ全体のブロックダイヤグラム
フラッシュメモリ
インタフェース回路
ポート0
ポート1
ポート2
ポート3
ポート4
ポート5
F 2 MC-16LX
バス
BYTE
3Mビットフラッシュメモリ
BYTE
CE
CE
OE
OE
WE
WE
AQ0~AQ18
AQ0~AQ18
DQ0~DQ15
DQ0~DQ15
INT
RY/BY
RY/BY
RESET
ライトイネーブル割込み信号
(対CPU)
外部リセット信号
RY/ BY
ライトイネーブル信号
551
第 28 章 3M ビット フラッシュメモリ
■ 3M ビットフラッシュメモリのセクタ構成
図 28.2-2 に , 3M ビットフラッシュメモリのセクタ構成を示します。図中アドレスには ,
各セクタの上位アドレスと下位アドレスを示します。
図 28.2-2 3M ビットフラッシュメモリのセクタ構成
ライタ
アドレス*
CPUアドレス
SA8 (16 Kバイト)
7FFFFH
FFFFFFH
SA7 (8 Kバイト)
7BFFFH
FFBFFFH
SA6 (8 Kバイト)
79FFFH
FF9FFFH
SA5 (32 Kバイト)
77FFFH
FF7FFFH
SA4 (64 Kバイト)
6FFFFH
FEFFFFH
SA3 (64 Kバイト)
5FFFFH
FDFFFFH
4FFFFH
FCFFFFH
SA2 (64 Kバイト)
3FFFFH
FBFFFFH
SA1 (64 Kバイト)
2FFFFH
FAFFFF H
SA0 (64 Kバイト)
1FFFFH
F9FFFFH
0FFFFH
00000H
F8FFFFH
F80000H
MB90F394H(A)
未使用
未使用
*: パラレルライタを使用してフラッシュメモリに書込み / 消去を行う際は , 必ずライタアドレ
スを使用してください。
552
第 28 章 3M ビット フラッシュメモリ
28.3
書込み / 消去モード
フラッシュメモリのアクセスは , フラッシュメモリモードとその他モードの 2 つの
異なる方法で行われます。フラッシュメモリモードでは , 外部端子から直接書込み /
消去を行え , その他モードでは , 内部バスを介して CPU から書込み / 消去を行えま
す。モードの選択はモード外部端子で行います。
■ フラッシュメモリモード
リセット信号が発生中にモード端子を "111B" にセットすると CPU が停止します。フ
ラッシュメモリインタフェース回路は直接ポート0, 1, 2, 3, 4, 5に接続しているので, 外
部端子から直接制御できます。このモードでは , MCU が外部端子中の標準フラッシュ
メモリと同様の動作を行い , フラッシュメモリプログラマを使用して書込み / 消去を行
えます。
フラッシュメモリモードでは , フラッシュメモリ自動アルゴリズムでサポートされる
すべての動作を使用できます。
■ その他モード
フラッシュメモリは , CPU メモリ空間の F8/F9 ~ FF バンクに配置されており , 通常の
マスク ROM と同様にフラッシュメモリインタフェース回路を介して CPU から読出し
アクセスおよびプログラムアクセスできます。
フラッシュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して
CPU からの命令で実行されます。このため , このモードでは MCU が対象ボードにはん
だ付けされていても再書込みが可能です。
これらのモードでは , セクタプロテクト動作を実行することはできません。
<注意事項>
フラッシュメモリへの書込み / 消去はすべてのマシンクロック周波数では指定されませ
ん。データシートの交流規格を参照してください。
■ フラッシュメモリの制御信号
表 28.3-1 に , フラッシュメモリモードでのフラッシュメモリ制御信号を示します。
フラッシュメモリ制御信号と MBM29LV200 の外部端子にはほぼ 1 対 1 の対応関係が
存在します。セクタプロテクト動作で必要となる VID(12V) 端子は , MBM29LV200 にお
ける A9,RESET,OE の代わりに MD0, MD1, MD2 となります。
フラッシュメモリモードでは , 外部データバス幅は 8 ビットに制限されており , 1 バイ
トのアクセスしか許可されません。DQ15 ~ DQ8 はサポートされていません。BYTE
端子は常に "0" にセットしてください。
553
第 28 章 3M ビット フラッシュメモリ
表 28.3-1 フラッシュメモリ制御信号
MB90F394H(A)
MBM29LV200
端子番号
通常機能
フラッシュメモリモード
1
P30
AQ16
A15
2
P31
CE
CE
3
P32
OE
OE
4
P33
WE
WE
5
P34
AQ17
A16
6
P35
AQ18
-
7
P36
BYTE
BYTE
8
P37
RY/BY
RY/BY
9 ~ 12
P40 ~ P43
AQ8 ~ AQ11
A7 ~ A10
18, 19
P46, P47
AQ12, AQ13
A11, A12
20, 21
P50, P51
AQ14, AQ15
A13, A14
89
MD0
MD0
A9 (VID)
88
MD1
MD1
RESET (VID)
87
MD2
MD2
OE (VID)
93 ~ 100
P00 ~ P07
DQ0 ~ DQ7
DQ0 ~ DQ7
101 ~ 104
P10 ~ P13
DQ8 ~ DQ11
DQ8 ~ DQ11
90
RST
RESET
RESET
109 ~ 112
P14 ~ P17
DQ12 ~ DQ15
DQ12 ~ DQ15
113 ~ 120
P20 ~ P27
AQ0 ~ AQ7
A-1, A0 ~ A6
<注意事項>
上記で述べられていないすべてのポート端子はプルアップ抵抗を介して VCC に接続して
ください。
554
第 28 章 3M ビット フラッシュメモリ
28.4
フラッシュメモリ制御ステータスレジスタ (FMCS)
制御ステータスレジスタ (FMCS) は , フラッシュメモリインタフェース回路にある
レジスタで , フラッシュメモリの書込み / 消去の際に使用します。
■ 制御ステータスレジスタ (FMCS)
bit 7
アドレス : 0000AEH
6
5
4
3
2
1
0
INTE
RDYINT
WE
RDY
Reserved
Reserved
Reserved
Reserved
(R/W)
(R/W)
(R/W)
(R)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
000X0000B
● ビット内容
[bit7] INTE( 割込み許可 )
フラッシュメモリの書込み / 消去の終了で CPU に割込みを発生させるビットです。
INTE ビットが "1" でかつ RDYINT ビットが "1" のときに CPU へ割込みが発生しま
す。INTE ビットが "0" であれば割込みは発生しません。
•
"0": 書込み / 消去終了での割込み禁止
•
"1": 書込み / 消去終了での割込み許可
[bit6] RDYINT( レディ割込み )
フラッシュメモリの動作状態を表すビットです。
フラッシュメモリの書込み / 消去が終わって "1" となります。フラッシュメモリ書
込み / 消去後このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできま
せん。書込み / 消去が終了して "1" になった後は , フラッシュメモリへの書込み / 消
去が可能になります。"0" 書込みによって "0" にクリアされ , "1" の書込みは無視さ
れます。フラッシュメモリ自動アルゴリズム (「28.5 フラッシュメモリ自動アルゴ
リズム起動方法」を参照 ) 終了タイミングで , "1" にセットされます。リードモディ
ファイライト (RMW) 系命令使用時は , 必ず "1" が読めます。
•
"0": 書込み / 消去動作実行中
•
"1": 書込み / 消去動作終了 ( 割込み要求発生 )
555
第 28 章 3M ビット フラッシュメモリ
[bit5] WE( 書込み許可 )
フラッシュメモリ領域への書込み許可ビットです。
このビットが "1" のとき , F8(F9) ~ FF バンクへのコマンドシーケンス (「28.5 フ
ラッシュメモリ自動アルゴリズム起動方法」を参照 ) 発行後の書込みは , フラッシュ
メモリ領域への書込みになります。本ビットが "0" のとき , 書込み / 消去の信号は発
生しません。このビットはフラッシュメモリの書込み / 消去のコマンドを起動する
際に使用します。
書込み / 消去を行わないときは , 誤ってフラッシュメモリにデータを書き込まない
よう , 常に "0" に設定することを推奨します。
•
"0": フラッシュメモリ書込み / 消去禁止
•
"1": フラッシュメモリ書込み / 消去許可
[bit4] RDY( レディ )
フラッシュメモリの書込み / 消去許可ビットです。
このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。
なお , この状態でも読出し / リセットコマンド , セクタ消去一時停止コマンドは受け
付けられます。
•
"0": 書込み / 消去動作実行中
•
"1": 書込み / 消去動作終了 ( 次データ書込み / 消去許可 )
[bit3 ~ bit0] 予約ビット
試験用予約ビットです。通常使用時は必ず "0" に設定してください。
<注意事項>
RDYINT ビットと RDY ビットは同時には変化しません。どちらか片方のビットで判定す
るようプログラムを作成してください。
図 28.4-1 RDYINT, RDY ビットの遷移
自動アルゴリズム
終了タイミング
RDYINTビット
RDYビット
1マシンサイクル
556
第 28 章 3M ビット フラッシュメモリ
フラッシュメモリ自動アルゴリズム起動方法
28.5
フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット ,
書込み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停止と
再開の制御が可能です。
■ コマンドシーケンス表
表 28.5-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま
す。コマンドレジスタに書込みするデータはすべてバイトですが , ワードアクセスで書
込みするようにしてください。このときの上位バイト分のデータは無視されます。
表 28.5-1 コマンドシーケンス表
1st バスライト
サイクル
コマンド バスライト
シーケンス アクセス
2nd バスライト 3rd バスライト
サイクル
サイクル
4th バスライト
サイクル
5th バスライト
サイクル
6th バスライト
サイクル
アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ
読出し /
1
FxXXXX XXF0
4
FxAAAA XXAA Fx5554
XX55 FxAAAA XXF0
書込み
プログラム
4
FxAAAA XXAA Fx5554
チップ
消去
6
セクタ
消去
6
リセット *
読出し /
リセット *
-
-
-
-
-
-
-
-
-
-
RA
RD
-
-
-
-
XX55 FxAAAA XXA0 PA(even) PD(word)
-
-
-
-
FxAAAA XXAA Fx5554
XX55 FxAAAA XX80 FxAAAA XXAA
Fx5554
XX55 FxAAAA XX10
FxAAAA XXAA Fx5554
XX55 FxAAAA XX80 FxAAAA XXAA
Fx5554
XX55 SA(even) XX30
セクタ消去一時停止
Address"FxXXXX"Data(xxB0H) の入力で , セクタ消去中の消去一時停止
セクタ消去再開
Address"FxXXXX"Data(xx30H) の入力で , セクタ消去中の消去一時停止後 , 消去開始
自動選択
3
FxAAAA XXAA Fx5554
XX55 FxAAAA XX90
-
-
-
-
-
-
( 注意事項 )
• 表中のアドレス Fx は , 3M ビットフラッシュメモリの FF, FE, FD, FB, FA, F9 を意味します。操作時にはアクセス対象バン
クの値としてください。
• 表中のアドレスは , CPU メモリマップ上の値です。アドレスおよびデータはすべて 16 進数表記しています。ただし , "X"
は任意の値です。
• RA: 読出しアドレス
• PA: 書込みアドレス , 偶数アドレスのみ指定可能
• SA: セクタアドレス , 「28.2 フラッシュメモリ全体のブロックダイヤグラムとフラッシュメモリのセクタ構成」を参照し
てください。
• RD: 読出しデータ
• PD: 書込みデータ , ワードデータのみ指定可能
*:2 種類の読出し / リセットコマンドは , どちらもフラッシュメモリを読出しモードにリセットできます。
557
第 28 章 3M ビット フラッシュメモリ
表 28.5-1 の自動選択コマンドは、セクタ保護の状態を取得するために使用されます。
自動選択コマンドを使用するときには、以下のアドレスを設定してください。
表 28.5-2 自動選択時のアドレス設定
セクタ保護
AQ13 ~ AQ18
AQ7
AQ2
AQ1
AQ0
DQ7 ~ DQ0
セクタアドレス
L
H
L
L
CODE*
*: セクタアドレスが保護されるとき , 出力は "01H" です。
セクタアドレスが保護されないとき , 出力は "00H" です。
558
第 28 章 3M ビット フラッシュメモリ
28.6
自動アルゴリズム実行状態の確認
フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ
ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアがあり
ます。この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内
蔵フラッシュメモリの動作状態の確認ができます。
■ ハードウェアシーケンスフラグ
ハードウェアシーケンスフラグは , DQ7, DQ6, DQ5, DQ3, DQ2 の 5 ビットの出力で構成
されます。それぞれにデータポーリングフラグ (DQ7), トグルビットフラグ (DQ6), タイ
ミングリミット超過フラグ (DQ5), セクタ消去タイマフラグ (DQ3), トグルビット 2 フラ
グ (DQ2) の機能があります。これにより , 書込み / チップ・セクタ消去終了 , 消去コー
ドライトが有効かどうか確認できます。ハードウェアシーケンスフラグを参照するに
は , コマンドシーケンス (「28.5 フラッシュメモリ自動アルゴリズム起動方法」の表
28.5-1 を参照 ) 設定後にフラッシュメモリ内部の対象セクタのアドレスに読出しアク
セスすることで参照できます。表 28.6-1 に , ハードウェアシーケンスフラグのビット
割当てを示します。
表 28.6-1 ハードウェアシーケンスフラグのビット割当て
ビット No.
ハードウェア
シーケンスフラグ
7
6
5
4
3
2
1
0
DQ7
DQ6
DQ5
-
DQ3
DQ2
-
-
自動書込み / チップ・セクタ消去が実行中であるかの判断は , ハードウェアシーケンス
フラグを確認するか , フラッシュメモリ制御ステータスレジスタ (FMCS) の RDY ビッ
トを確認することで , 書込みが終了しているかを知ることができ , 書込み / 消去終了後
は , 読出し / リセット状態に戻ります。実際にプログラムを作成する際には , いずれか
のフラグで自動書込み / 消去終了を確認後に , データの読出しなどの次処理を行ってく
ださい。また , 2 回目以降のセクタ消去コードライトが有効であるかも , ハードウェア
シーケンスフラグによって確認できます。表 28.6-2 に , ハードウェアシーケンスフラ
グ機能の一覧を示します。
559
第 28 章 3M ビット フラッシュメモリ
表 28.6-2 ハードウェアシーケンスフラグ機能一覧
状態
正常動作時
の状態変化
DQ7
DQ6
DQ5
DQ3
DQ2
書込み動作→書込
み完了 ( 書込みアド
レス指定時 )
DQ7 →
DATA:7
Toggle →
DATA:6
0→
DATA:5
0→
DATA:3
1→
DATA:2
チップ・セクタ消去
動作→消去完了
0→1
Toggle →
Stop
0→1
1
Toggle →
Stop
セクタ消去待ち→
消去開始
0
Toggle
0
0→1
Toggle
消去動作→セクタ
消去一時停止 ( 消去
中のセクタ )
0→1
Toggle →
1
0
1→0
Toggle
セクタ消去一時停
止→消去再開 ( 消去
中のセクタ )
1→0
1→
Toggle
0
0→1
Toggle
セクタ消去一時停
止中 ( 消去中でない
セクタ )
DATA:7
DATA:6
DATA:5
DATA:3
DATA:2
DQ7
Toggle
1
0
1
0
Toggle
1
1
*
書込み動作
異常動作
チップ / セクタ消去
動作
*:DQ5 が "1" のとき ( タイミングリミット超過 ) , 書込み / 消去中セクタへの連続的な読出しに対し
ては DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグルしません。
560
第 28 章 3M ビット フラッシュメモリ
データポーリングフラグ (DQ7)
28.6.1
データポーリングフラグ (DQ7) は , 自動アルゴリズム実行が進行中もしくは終了状
態であることをデータポーリング機能によって知らせるためのフラグです。
■ データポーリングフラグ (DQ7)
表 28.6-3 と表 28.6-4 に , データポーリングフラグの状態遷移を示します。
表 28.6-3 データポーリングフラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
チップ / セクタ消去 セクタ消去→ セクタ消去一
セクタ消去
書込み動作
待ち
一時停止中
消去一時停止 時停止→再開
セクタ消去
→完了
( 消去中のセクタ ) ( 消去中のセクタ ) ( 消去中でないセクタ )
→開始
→完了
DQ7 →
DATA:7
DQ7
0→1
0
0→1
1→0
DATA:7
表 28.6-4 データポーリングフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップ / セクタ
消去動作
DQ7
DQ7
0
● 書込み動作時
自動書込みアルゴリズム実行中に読出しアクセスすると , フラッシュメモリはアドレ
スの指し示す番地によらず , 最後に書き込まれたデータの bit7 の反転データを出力し
ます。自動書込みアルゴリズム終了時に読出しアクセスすると , フラッシュメモリはア
ドレスの指し示す番地の読出し値の bit7 を出力します。
● チップ / セクタ消去動作時
チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去しているセク
タからチップ消去時はアドレスの指し示す番地に関係なく読出しアクセスするとフ
ラッシュメモリは "0" を出力します。同様に終了時には "1" を出力します。
● セクタ消去一時停止時
セクタ消去一時停止時に読出しアクセスすると , フラッシュメモリはアドレスの指し
示す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければアドレス
の指し示す番地の読出し値の bit7(DATA:7) を出力します。トグルビットフラグ (DQ6)
とともに参照することで , 現在セクタ一時停止状態であるか , どのセクタが消去中であ
るかの判定が可能です。
<注意事項>
自動アルゴリズム起動時は指定したアドレスへの読出しアクセスは無視されます。データ
の読出しは , データポーリングフラグ (DQ7) の終了を受けてほかのビットの出力が可能と
なります。このため , 自動アルゴリズム終了後のデータの読出しは , データポーリング終
了を確認した読出しアクセスの次に行うようにしてください。
561
第 28 章 3M ビット フラッシュメモリ
28.6.2
トグルビットフラグ (DQ6)
トグルビットフラグ (DQ6) は , データポーリングフラグと同様に , 主に自動アルゴ
リズム実行が進行中または終了状態であることをトグルビット機能によって知らせ
るためのフラグです。
■ トグルビットフラグ (DQ6)
表 28.6-5 と表 28.6-6 に , トグルビットフラグの状態遷移を示します。
表 28.6-5 トグルビットフラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
DQ6
チップ /
セクタ消去
セクタ消去→ セクタ消去一
書込み動作
セクタ消去
一時停止中
消去一時停止 時停止→再開
セクタ消去
→完了
待ち→開始 ( 消去中のセクタ ) ( 消去中のセクタ ) ( 消去中でないセクタ )
→完了
Toggle →
DATA:6
Toggle →
Stop
Toggle
Toggle → 1
1 → Toggle
DATA:6
表 28.6-6 トグルビットフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップ / セクタ消去動作
DQ6
Toggle
Toggle
● 書込み / チップ・セクタ消去時
自動書込みアルゴリズムおよびチップ・セクタ消去アルゴリズム実行中に連続した読
出しアクセスを行うと , フラッシュメモリはアドレスの指し示す番地によらず , リード
ごとに "1" と "0" を交互に出力するトグル状態を出力します。自動書込みアルゴリズム
およびチップ / セクタ消去アルゴリズム終了時に連続した読出しアクセスを行うとフ
ラッシュメモリは bit6 のトグル動作を止め , アドレスの指し示す番地の読出し値の
bit6(DATA:6) を出力します。
● セクタ消去一時停止時
セクタ消去一時停止時に読出しアクセスすると , フラッシュメモリはアドレスの指し
示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタに属さ
ないのであれば , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。
<注意事項>
書込みの際 , 書き込もうとしているセクタが書換え保護されているセクタの場合は , 約
2μs のトグル動作をした後 , データを書き換えることなくトグル動作を終了します。消去
の際 , 選択されたすべてのセクタが書換え保護されている場合トグルビットは約 100μs の
トグル動作をし , その後データを書き換えないで読出し / リセット状態に戻ります。
562
第 28 章 3M ビット フラッシュメモリ
28.6.3
タイミングリミット超過フラグ (DQ5)
タイミングリミット超過フラグ (DQ5) は , 自動アルゴリズムの実行がフラッシュメ
モリ内部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラ
グです。
■ タイミングリミット超過フラグ (DQ5)
表 28.6-7 と表 28.6-8 に , タイミングリミット超過フラグの状態遷移を示します。
表 28.6-7 タイミングリミット超過フラグの状態遷移 ( 正常動作時の状態変化 )
チップ / セクタ消去 セクタ消去→ セクタ消去一
セクタ消去
書込み動作
動作状態
待ち
消去一時停止 時停止→再開
一時停止中
セクタ消去
→完了
( 消去中のセクタ ) ( 消去中のセクタ ) ( 消去中でないセクタ )
→開始
→完了
DQ5
0→
DATA:5
0→1
0
0
0
DATA:5
表 28.6-8 タイミングリミット超過フラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップ / セクタ消去動作
DQ5
1
1
● 書込み / チップ・セクタ消去時
書込みまたはチップ・セクタ消去自動アルゴリズム起動後に読出しアクセスすると , 規
定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えてしまってい
る場合は "1" を出力します。これは , 自動アルゴリズムが実行中か終了状態にあるかと
は無関係ですので , 書込み / 消去が成功したか失敗したかの判定が可能です。すなわち ,
このフラグが "1" を出力したとき , データポーリング機能もしくはトグルビット機能に
より自動アルゴリズムがまだ実行中であれば , 書込みが失敗していると判断できます。
例えば , "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうとする
とフェイルが発生します。この場合 , フラッシュメモリはロックされ , 自動アルゴリズ
ムは終了しません。まれに "1" が書き込めたように正常終了する場合もあります。し
たがって , データポーリングフラグ (DQ7) から有効なデータが出力されません。また ,
トグルビットフラグ (DQ6) はトグル動作を止めず , タイムリミットを超え , タイミング
リミット超過フラグ (DQ5) は "1" を出力します。この状態はフラッシュメモリが不良
ではなく , 正しく使用されなかったということを表しています。この状態が発生したと
きは , リセットコマンドを実行してください。
563
第 28 章 3M ビット フラッシュメモリ
28.6.4
セクタ消去タイマフラグ (DQ3)
セクタ消去タイマフラグ (DQ3) は , セクタ消去コマンド起動後 , セクタ消去ウェイ
ト期間中であるか否かを知らせるフラグです。
■ セクタ消去タイマフラグ (DQ3)
表 28.6-9 と表 28.6-10 に , セクタ消去タイマフラグの状態遷移を示します。
表 28.6-9 セクタ消去タイマフラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
DQ3
チップ / セクタ消去 セクタ消去→ セクタ消去一
セクタ消去
書込み動作
待ち
一時停止中
消去一時停止 時停止→再開
セクタ消去
→完了
( 消去中のセクタ ) ( 消去中のセクタ ) ( 消去中でないセクタ )
→開始
→完了
0→
DATA:3
1
0→1
1→0
0→1
DATA:3
表 28.6-10 セクタ消去タイマフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップ / セクタ消去動作
DQ3
0
1
● セクタ消去動作時
セクタ消去コマンド起動後に読出しアクセスすると , フラッシュメモリはコマンドを
発行したセクタのアドレス信号の指し示す番地によらず , セクタ消去ウェイト期間中
であれば "0" を , セクタ消去ウェイト期間を超えてしまっている場合は "1" を出力しま
す。
データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示して
いる場合 , このフラグが "1" であれば内部で制御される消去が始まっています。続けて
のセクタ消去コードのライトまたは消去一時停止以外のコマンドは , 消去が終了され
るまで無視されます。このフラグが "0" であればフラッシュメモリは , 追加のセクタ消
去コードのライトを受け付けます。このことを確認するために , 引き続くセクタ消去
コードのライトに先立ち , このフラグの状態をチェックすることを推奨します。もし ,
2 回目の状態チェックで "1" であったなら追加セクタの消去コードは受け付けられてい
ない可能性があります。
● セクタ消去中の読出しアクセス
セクタ消去一時停止中に読出しアクセスすると , フラッシュメモリはアドレスの指し
示す番地が消去中のセクタに属するならば "1" を出力します。このアドレスが消去さ
れたセクタに属さない場合 , フラッシュメモリは対応するメモリ値の bit3(DATA: 3) を
出力します。
564
第 28 章 3M ビット フラッシュメモリ
28.6.5
トグルビット 2 フラグ (DQ2)
トグルビット 2 フラグ (DQ2) は , セクタ消去一時停止中であることをトグルビット
機能によって知らせるフラグです。
■ トグルビット 2 フラグ (DQ2)
表 28.6-11 と表 28.6-12 に , トグルビット 2 フラグの状態遷移を示します。
表 28.6-11 トグルビット 2 フラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
書込み動作
→完了
1→
DATA:2
DQ2
チップセクタ
セクタ消去
消去→
待ち→開始
完了
Toggle →
Stop
Toggle
セクタ消去→
消去一時停止
セクタ消去一
時停止→再開
セクタ消去
一時停止中
消去中のセクタ
消去中のセクタ
消去中でないセクタ
Toggle
Toggle
DATA:2
表 28.6-12 トグルビット 2 フラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップ・セクタ消去動作
DQ2
1
*
*:DQ5 が "1" のとき ( タイミングリミット超過 ) , 書込み / 消去中セクタへの連続的な読
出しに対しては DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグル
しません。
● セクタ消去動作時
チップ・セクタ消去アルゴリズム実行中に連続した読出しアクセスを行うと , フラッ
シュメモリはアドレスの指し示す番地によらず , 読出しごとに "1" と "0" を交互に出力
するトグル状態を出力します。チップ・セクタ消去アルゴリズム終了後に連続した読
出しアクセスを行うと , フラッシュメモリは bit2 のトグル動作を止め , アドレスの指し
示す番地の読出し値の bit2(DATA:2) を出力します。
● セクタ消去一時停止時
セクタ消去一時停止中に連続した読出しアクセスを行うと , フラッシュメモリはアド
レスの指し示す番地が消去中のセクタに属するならば , "1" と "0" を交互に出力するト
グル状態を出力します。消去中のセクタに属さないのであれば , アドレスの指し示す番
地の読出し値の bit2(DATA:2) を出力します。また , セクタ消去一時停止書込み時 , 消
去一時停止していないセクタから連続した読出しアクセスを行うと "1" を出力します。
DQ2はDQ6とともに使用し, 消去一時停止中であるかを検出するのに使用します (DQ2
はトグル動作するが , DQ6 はトグル動作しない ) 。さらに , DQ2 は消去しているセクタ
の検出にも使用します。消去動作時には , DQ2 は消去しているセクタからの読出しア
クセスならばトグル動作をします。
<参考>
消去の際 , 選択されたすべてのセクタが書換え保護されている場合トグルビット 2 は約
100μsのトグル動作をし, その後データを書き換えないで読出し/リセット状態に戻ります。
565
第 28 章 3M ビット フラッシュメモリ
28.7
フラッシュメモリ書込み / 消去の詳細説明
自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ
ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止およびセクタ消去再開の
それぞれの動作を行う手順を説明します。
■ フラッシュメモリ書込み / 消去の詳細説明
フラッシュメモリは読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去
一時停止 , 消去再開の動作がコマンドシーケンス (「28.5 フラッシュメモリ自動アルゴ
リズム起動方法」の表 28.5-1 を参照 ) のバスへの書込みサイクルを行うことで自動ア
ルゴリズムを実行することが可能です。それぞれのバスへの書込みサイクルは必ず続
けて行う必要があります。また , 自動アルゴリズムはデータ・ポーリング機能などで終
了時を知ることができます。正常終了後は読出し / リセット状態に戻ります。
フラッシュメモリの各動作について , 次項より下記の順に示します。
• 読出し / リセット状態にする
• データを書き込む
• 全データを消去する ( チップ消去 )
• 任意のデータを消去する ( セクタ消去 )
• セクタ消去を一時停止する
• セクタ消去を再開する
566
第 28 章 3M ビット フラッシュメモリ
28.7.1
読出し / リセット状態にする
読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす
る手順について説明します。
■ フラッシュメモリを読出し / リセット状態にする
フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 (「28.5
フラッシュメモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) の読出し / リセット
コマンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能です。
読出し / リセットコマンドには , 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー
ケンスがありますが , これらの本質的な違いはありません。
読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの
正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ
マンドの入力待ち状態です。
読出し/リセット状態では通常の読出しアクセスでデータを読み出せます。マスクROM
と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに
このコマンドは必要ありません。何らかの理由でコマンドが正常に終了しなかったと
きなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを使用します。
567
第 28 章 3M ビット フラッシュメモリ
28.7.2
データの書込み
書込みコマンドを発行し , フラッシュメモリにデータを書き込む手順について説明
します。
■ フラッシュメモリにデータを書き込む
フラッシュメモリのデータ書込み自動アルゴリズムを起動するには , コマンドシーケ
ンス表 (「28.5 フラッシュメモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) の書
込みコマンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能です。4
サイクル目に目的のアドレスへのデータライトが終了した時点で , 自動アルゴリズム
が起動され自動書込みを開始します。
● アドレス指定方法
書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で
す。奇数アドレスを指定すると正しく書き込むことができません。つまり , 偶数アドレ
スへのワードデータ単位での書込みが必要となります。
書込みはどのようなアドレスの順番でも , また , セクタの境界を超えても可能ですが ,
1 回の書込みコマンドによって書き込まれるデータは 1 ワードのみです。
● データ書込み上の注意
書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー
タ "1" を書き込むと , データポーリングアルゴリズム (DQ7) またはトグル動作 (DQ6) が
終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超え , タイミン
グリミット超過フラグ (DQ5) がエラーと判定するか , 見かけ上データ "1" が書き込まれ
たように見えるかのどちらかとなります。しかし , 読出し / リセット状態でデータを読
み出すとデータは "0" のままです。消去動作のみが "0" データを "1" にすることができ
ます。
自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリ
セットが起動されると , 書き込んでいるアドレスのデータは保証されませんので注意
が必要です。
568
第 28 章 3M ビット フラッシュメモリ
■ フラッシュメモリの書込み手順
図 28.7-1 に , フラッシュメモリの書込み手順の例を示します。ハードウェアシーケン
スフラグ (「28.6 自動アルゴリズム実行状態の確認」を参照 ) を用いることでフラッ
シュメモリ内部の自動アルゴリズムの状態判定が可能です。ここでは , 書込み終了の確
認にデータポーリングフラグ (DQ7) を用いています。
フラグチェックのために読み出すデータは最後に書込みを行ったアドレスからの読出
しとなります。
データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に変
わるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもデータポーリ
ングフラグビット (DQ7) を再チェックする必要があります。
トグルビットフラグ (DQ6) でも同様にタイミングリミット超過フラグビット (DQ5) が
"1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (DQ6) を再
チェックする必要があります。
図 28.7-1 フラッシュメモリ書込み手順の例
書込み開始
FMCS:WE (bit5)
フラッシュメモリ書込み許可
書込みコマンドシーケンス
(1) FxAAAA←XXAA
(2) Fx5554←XX55
(3) FxAAAA←XXA0
(4) 書込みアドレス←書込みデータ
内部アドレス読出し
データポーリング(DQ7)
次アドレス
Data
Data
0
タイミングリミット(DQ5)
1
内部アドレス読出し
Data
データポーリング(DQ7)
Data
書込みエラー
最終アドレス
FMCS:WE (bit5)
フラッシュメモリ書込み禁止
書込み完了
ハードウェアシーケンス
フラグによる確認
569
第 28 章 3M ビット フラッシュメモリ
28.7.3
全データの消去 ( チップ消去 )
チップ消去コマンドを発行し , フラッシュメモリの全データを消去する手順につい
て説明します。
■ フラッシュメモリ全データの消去 ( チップ消去 )
フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表 (「28.5
フラッシュメモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) のチップ消去コマ
ンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能です。
チップ消去コマンドは 6 回のバス動作で行われます。6 サイクル目のライトが完了した
時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ
モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ
メモリは自動的にすべてのセルを消去する前に "0" を書き込んで検証します。
570
第 28 章 3M ビット フラッシュメモリ
28.7.4
任意データの消去 ( セクタ消去 )
セクタ消去コマンドを発行し , フラッシュメモリの任意のデータを消去する ( セクタ
消去 ) 手順について説明します。セクタごとの消去が可能であり , 複数のセクタを同
時に指定することも可能です。
■ フラッシュメモリ任意データの消去 ( セクタ消去 )
フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表 (「28.5
フラッシュメモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) のセクタ消去コマ
ンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能です。
● セクタ指定方法
セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の
アクセス可能な任意の偶数の 1 アドレスへセクタ消去コード (30H) をライトすることに
より 50μs のセクタ消去待ちが開始します。複数のセクタ消去を行う場合は上記の処理
に引き続き消去する目的のセクタ内のアドレスに消去コード (30H) をライトします。
● 複数のセクタを指定するときの注意
最後のセクタ消去コードの書込みから 50μs のセクタ消去待ち期間終了により消去が開
始します。つまり , 複数のセクタを同時に消去する場合は , 次の消去セクタのアドレス
と消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50μs 以内に入力する必
要があり , それ以降では受け付けられないことがあります。引き続くセクタ消去コード
の書込みが有効かどうかは , セクタ消去タイマ ( ハードウェアシーケンスフラグ DQ3)
によって調べることができます。
なお , このとき , セクタ消去タイマを読出しするアドレスは , 消去しようとしているセ
クタを指すようにします。
■ フラッシュメモリのセクタ消去手順
ハードウェアシーケンスフラグ (「28.6 自動アルゴリズム実行状態の確認」を参照 ) を
用いることでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。図
28.7-2 に , フラッシュメモリセクタ消去の手順の例を示します。ここでは , 消去終了の
確認にトグルビットフラグ (DQ6) を用いています。
フラグチェックのために読み出すデータは , 消去しようとしているセクタからの読出
しとなりますので注意が必要です。
トグルビットフラグ (DQ6) は , タイミングリミット超過フラグ (DQ5) が "1" に変わる
のと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (DQ5) が
"1" であってもトグルビットフラグ (DQ6) をチェックする必要があります。
データポーリングフラグ (DQ7) でも同様に , タイミングリミット超過フラグ (DQ5) と
同時に変わるので , データポーリングフラグ (DQ7) を再チェックする必要があります。
571
第 28 章 3M ビット フラッシュメモリ
図 28.7-2 フラッシュメモリのセクタ消去手順の例
消去開始
FMCS:WE(bit5)
フラッシュメモリ消去許可
消去コマンドシーケンス
(1)FxAAAA ←XXAA
(2)Fx5554 ←XX55
(3)FxAAAA ←XX80
(4)FxAAAA ←XXAA
(5)Fx5554 ←XX55
(6)消去セクタへコード入力(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)
フラッシュメモリ消去禁止
消去完了
572
ハードウェアシーケンス
フラグによる確認
第 28 章 3M ビット フラッシュメモリ
28.7.5
セクタ消去の一時停止
セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を
行う手順について説明します。消去中でないセクタからデータを読み出すことが可
能です。
■ フラッシュメモリセクタ消去の一時停止
フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表 (「28.5 フ
ラッシュメモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) のセクタ消去一時停
止コマンドをフラッシュメモリ内に送ることで実行可能です。
セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でないセク
タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込
みはできません。このコマンドは消去待ち時間を含むセクタ消去中のみ有効で , チップ
消去中や書込み動作中は無視されます。
消去一時停止コード (B0H) のライトを行うことで実施されますが , このとき , アドレス
はフラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度
の消去一時停止コマンドは無視されます。
セクタ消去待ち期間中にセクタ消去一時停止コマンドが入力されると , 直ちにセクタ
消去待ちを終了し , 消去動作を中断して消去停止状態になります。セクタ消去待ち期間
後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 20μs の時間の後 ,
消去一時停止状態に入ります。セクタ消去一時停止コマンドは , セクタ消去コマンドあ
るいはセクタ消去再開コマンド発行後 , 20µs 以上後に行ってください。
573
第 28 章 3M ビット フラッシュメモリ
28.7.6
セクタ消去の再開
セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再
開する手順について説明します。
■ フラッシュメモリセクタ消去の再開
一時停止したセクタ消去を再開させるには , コマンドシーケンス表 (「28.5 フラッシュ
メモリ自動アルゴリズム起動方法」の表 28.5-1 を参照 ) のセクタ消去再開コマンドを
フラッシュメモリ内に送ることで実行可能です。
セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止
状態からセクタ消去を再開するためのコマンドです。このコマンドは消去再開コード
(30H) のライトを行うことで実施されますが , このときのアドレスはフラッシュメモリ
領域内の任意のアドレスを指すようにします。
なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。
574
第 28 章 3M ビット フラッシュメモリ
28.8
3M ビットフラッシュメモリ使用上の注意
3M ビットフラッシュメモリに関する注意を以下に示します。
■ フラッシュメモリ使用上の注意
● ハードウェアリセット (RST) の入力
読出し中で自動アルゴリズムを起動していないときにハードウェアリセットを入力す
るには , "L" レベル幅として最低 500ns を確保する必要があります。この場合 , ハード
ウェアリセット起動後 , フラッシュメモリからデータを読み出すまでに , 最低 500ns が
必要となります。
同様に , 書込み / 消去中で自動アルゴリズムが起動しているときにハードウェアリセッ
トを入力するには , "L" レベル幅として最低 500ns を確保する必要があります。この場
合 , フラッシュメモリを初期化するために実行中の動作を停止した後 , データを読み出
すまでに 20ns が必要となります。
書込み中にハードウェアリセットをすると , 書き込まれているデータは不定となりま
す。消去中のハードウェアリセットや電源切れにより , 消去されているセクタは使用不
可となる可能性があります。
● ソフトウェアリセット , ウォッチドッグタイマリセットの取消し
CPU アクセスでフラッシュメモリを書込み / 消去時に , 自動アルゴリズムがアクティブ
状態でリセット条件が発生した場合 , CPU が暴走する可能性があります。それは , これ
らのリセット条件により , フラッシュメモリユニットが初期化されずに自動アルゴリ
ズムが続行し , リセット離脱後に CPU がシーケンスを開始したときにフラッシュメモ
リユニットが読出し状態になることが妨げられる可能性があるためです。これらのリ
セット条件は , フラッシュメモリの書込み / 消去中に禁止されている必要があります。
● フラッシュメモリへのプログラムアクセス
自動アルゴリズム動作中は , フラッシュメモリへの読出しアクセスは禁止されます。
CPU のメモリアクセスモードが内蔵 ROM モードにセットされている場合 , プログラム
領域を RAM などの別の領域に切換え後 , 書込み / 消去を開始する必要があります。こ
の場合 , 割込みベクタを含むセクタ (SA8/SA13) が書込み / 消去されると , 割込み処理
を実行できません。
同じ理由で , 自動アルゴリズム動作中は , フラッシュメモリ以外のその他すべての割込
み要因は無効にする必要があります。
● ホールド機能
CPU がホールド要求を受け付けたとき , フラッシュメモリユニットの書込み信号 WE
は歪曲され , 不正な書込みによる不正な書込み / 消去が可能になります。ホールド要求
の受付けが許可 (EPCR の HDE ビットが "1" をセット ) されたとき , 制御ステータスレ
ジスタ (FMCS) の WE ビットが必ず "0" になっているようにしてください。
● 拡張インテリジェント I/O サービス (EI2OS)
フラッシュメモリインタフェース回路から CPU に発行された書込み / 消去割込みは ,
EI2OS には受付け不可能であり使用できません。
● VID の適用
セクタプロテクト動作に必要な VID の印加は , 電源が ON のとき開始し , 終了する必要
があります。
575
第 28 章 3M ビット フラッシュメモリ
28.9
フラッシュメモリにおけるリセットベクタアドレス
MB90F394H(A) は , ハードワイヤードリセットベクタをサポートします。
内部ベクタモードでのアドレス "FFFFDCH" ~ "FFFFDFH" へのすべての読出しアク
セスは , ハードワイヤードロジックにより事前に決められた値を読み出すことにな
ります。しかし , フラッシュメモリモードでは , 前節で述べたようにこれらのアドレ
スのアクセスが可能です。
このため , これらのアドレスへの書込みは意味がありません。特に ( フラッシュメモ
リモードではなく ) CPU アクセスでフラッシュメモリをプログラミングするとき ,
ソフトウェアポーリング用にこれらのアドレスを読み出さないように注意してくだ
さい。さもなければ , フラッシュメモリはハードウェアシーケンスフラグ値の代わ
りに固定リセットベクタ値を返します。
■ フラッシュメモリにおけるリセットベクタアドレス
表 28.9-1 に , リセットベクタとモードデータの事前に決められた値を示します。
表 28.9-1 リセットベクタとモード値
リセットベクタ
FFA000H
モードデータ
00H
<注意事項>
リセットベクタとモードデータは事前に決められた値が設定されていますので , フラッ
シュメモリに書き込むプログラムの中のリセットベクタ値とモードデータ値は動作に影
響を与えませんが , 同一のプログラムをマスク ROM 品で使用した場合 , 異なる動作をす
る可能性がありますので , フラッシュメモリにも同一の値を書き込むことを推奨します。
576
第 28 章 3M ビット フラッシュメモリ
28.10
3M ビットフラッシュメモリのプログラム例
3M ビットフラッシュメモリのプログラム例を示します。
■ 3M ビットフラッシュメモリのプログラム例
NAME
FLASHWE
TITLE
FLASHWE
;-----------------------------------------------------------------------------;3Mビット-FLASH サンプルプログラム
;
;1: FLASHにあるプログラム(アドレス FF8000H セクタ SA6)をRAM(アドレス 001500H)に
;
転送する。
;2: RAM上でプログラムを実行する。
;3: PDR1の値をFLASH(アドレス F90000Hセクタ SA1)に書き込む。
;4: 書き込んだ値(アドレス F90000H セクタ SA1)を読み出しPDR2に出力する。
;5: 書き込んだセクタ(SA1)を消去する。
;6: 消去データ確認の出力
;条件
;
・RAM転送バイト数: 100H(256B)
;
・書込み,消去の終了判定
;
DQ5(タイミングリミット超過フラグ)での判定
;
DQ6(トグルビットフラグ)での判定
;
RDY(FMCS)での判定
;
・エラー時の処理
;
P00~P07に"H"を出力する
;
リセットコマンド発行
;-----------------------------------------------------------------------------;
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
RW
0127H
STA_T
RW
1
SSTA
ENDS
;
577
第 28 章 3M ビット フラッシュメモリ
DATA
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(1500H番地)に"FLASH書込み消去プログラム(FF80OOH)"を転送する
;
//////////////////////////////////////////////////////////////
MOVW
A,#1500H
;転送先RAM領域
MOVW
A,#08000H
;転送元アドレス(プログラムのある位置)
MOVW
RW0,#100H
;転送するバイト数
MOVS
ADB,PCB
;FF8000Hから001500Hへ100H転送
CALLP
001500H
;転送したプログラムのあるアドレスへジャンプ
;
/////////////////////////////////////////////////////
;
データ出力
;
/////////////////////////////////////////////////////
OUT
MOV
A,#0F9H
MOV
ADB,A
MOVW
RW2,#0000H
MOVW
A,@RW2+00
MOV
PDR2,A
END
JMP
*
CODE
ENDS
578
第 28 章 3M ビット フラッシュメモリ
;////////////////////////////////////////////////////////////
;FLASH書込み消去プログラム(SA6)
;////////////////////////////////////////////////////////////
RAMPRG 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,#0F9H
;ADB変更1
MOV
ADB,A
;書込みモード指定アドレス用バンク指定
MOV
PDR3,#00H
;スイッチ初期化
MOV
DDR3,#00H
;
WAIT1
BBC
PDR3:0,WAIT1
;PDR3:0 "H"で書込みスタート
;
;////////////////////////////////////////////////
; 書込み(SA1)
;////////////////////////////////////////////////
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ビット(4ビット)抽出
BZ
WRITE
;書込み終了か?
MOV
FMCS,#00H
;書込みモード解除
579
第 28 章 3M ビット フラッシュメモリ
;
;
;
/////////////////////////////////////////////////////
書込みデータ出力
/////////////////////////////////////////////////////
MOVW
RW2,#0000H
;書込みデータ出力
MOVW
A,@RW2+00
MOV
PDR2,A
;
WAIT2 BBC
PDR3:1,WAIT2
;PDR3:1 "H"でセクタ消去スタート
;
;/////////////////////////////////////////////
;セクタ消去(SA1)
;/////////////////////////////////////////////
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
リードごと"H", "L"が交互に出力される
XORW
A
;AHとALのXOR(DQ6の値が違えば1 書込み動作
;
中である)
AND
A,#40H
;DQ6トグルビットは"H"か
BNZ
ERROR
;"H"ならERRORへ
;
///////////////////////////////////////
;
消去終了チェック(FMCS-RDY)
;
///////////////////////////////////////
NTOE
MOVW
A,FMCS
;
AND
A,#10H
;FMCS RDYビット(4ビット)抽出
BZ
ELS
;セクタ消去終了か?
MOV
FMCS,#00H
;FLASH消去モード解除
RETP
;メインプログラムに戻る
;//////////////////////////////////////////////
;エラー
;//////////////////////////////////////////////
ERROR MOV
ADB:COMADR1,#0F0H
;リセットコマンド
MOV
FMCS,#00H
;FLASHモード解除
MOV
PDR0,#0FFH
;エラー処理の確認(読出しが可能になる)
RETP
;メインプログラムに戻る
RAMPRG ENDS
;/////////////////////////////////////////////
VECT
CSEG
ABS=0FFH
ORG
0FFDCH
DSL
START
DB
00H
VECT
ENDS
;
580
第 29 章
シリアル書込み接続例
F2MC-16LX MB90F394H(A) フラッシュマイコンの
プログラマを用いたシリアル書込み接続例につい
て説明します。
29.1 MB90F394H(A) シリアル書込み接続の基本構成
29.2 シリアル書込み接続例
29.3 シリアル書込み接続例 ( ライタから電源供給時 )
29.4 フラッシュマイコンプログラマとの最小限の接続例
( ユーザ電源使用時 )
29.5 フラッシュマイコンプログラマとの最小限の接続例
( ライタから電源供給時 )
581
第 29 章 シリアル書込み接続例
29.1
MB90F394H(A) シリアル書込み接続の基本構成
MB90F394H(A) では , フラッシュ ROM のシリアルオンボード書込み ( 富士通標準 )
をサポートしています。その仕様について以下に説明します。
■ MB90F394H(A) シリアル書込み接続の基本構成
富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ株式会社製
AF220/AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。
図 29.1-1 MB90F394H(A) の富士通スタンダードシリアルオンボードプログラミング
ホストインタフェースケーブル(AZ201)
汎用共通ケーブル(AZ210)
RS232C
AF220/AF210/
AF120/AF110
MB90F394H
フラッシュ CLK同期シリアル
ユーザシステム
マイコン
プログラマ
+
メモリカード
スタンドアロンで動作可能
<注意事項>
AF220/AF210/AF120/AF110 フラッシュマイコンプログラマの機能・操作方法および接続
用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株
式会社にお問い合わせください。
582
第 29 章 シリアル書込み接続例
表 29.1-1 富士通標準シリアルオンボード書込みに使用する端子
端子
MD2, MD1,
MD0
X0, X1
P00, P01
機能
補足説明
モード端子
フラッシュマイコンプログラマから書込みモードに制
御します。
発振用端子
書込みモード時に, CPU内部動作クロックはPLLクロッ
ク 1 逓倍となっています。したがって , 発振クロック周
波数が内部動作クロックとなりますので , シリアル書
換え時に使用する発振子は 3 MHz ~ 16 MHz となりま
す。
書込みプログラム起動端子
P00に"L"レベル, P07に"H"レベルを入力してください。
RST
リセット端子
SIN4
シリアルデータ入力端子
SOT4
シリアルデータ出力端子
SCK4
シリアルクロック入力端子
-
シリアル I/O を使用します。
C 端子
電源安定化の容量端子です。外部に 0.1μF 程度のセラ
ミックコンデンサを接続してください。
VCC
電源電圧供給端子
書込み電圧 (5V ± 10%)
VSS
GND 端子
フラッシュマイコンプログラマの GND と共通にしま
す。
C
P00, P01, SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , 下図の制御
回路が必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル
書込み中はユーザ回路を切り離すことができます。
「29.2 シリアル書込み接続例 」と「29.3 シリアル書込み接続例 ( ライタから電源供給
時 ) 」に , 以下のシリアル書込み接続例を示しますので参照してください。
• シリアル書込み接続例 ( ユーザ電源使用時 )
• シリアル書込み接続例 ( ライタから電源供給時 )
• フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 )
• フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 )
583
第 29 章 シリアル書込み接続例
図 29.1-2 シリアルプログラミング用ユーザ回路接続
AF220/AF210/AF120/AF110
書込み制御端子
AF220/AF210/AF120/
AF110
/TICS端子
MB90F394H
書込み制御端子
10kΩ
ユーザ回路
表 29.1-2 フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコンピュータ株式会社製 )
型格
本
体
機能
AF220/AC4P
イーサネットインタフェース内蔵モデル
/100V ~ 220V 電源アダプタ
AF210/AC4P
スタンダードモデル
/100V ~ 220V 電源アダプタ
AF120/AC4P
単キーイーサネットインタフェース内蔵モデル /100V ~ 220V 電源アダプタ
AF110/AC4P
単キーモデル
/100V ~ 220V 電源アダプタ
AZ221
ライタ専用 PC/AT 用 RS232C ケーブル
AZ210
標準ターゲットプローブ (a) 長さ :1m
FF201
富士通製 F2MC-16LX フラッシュマイコン用制御モジュール
AZ290
リモートコントローラ
/P2
2MB PC Card ( オプション ) フラッシュメモリ容量~ 128K バイト対応
/P4
4MB PC Card ( オプション ) フラッシュメモリ容量~ 512K バイト対応
問い合せ先 : 横河ディジタルコンピュータ株式会社
電話 :042-333-6224
<注意事項>
AF200 フラッシュマイコンプログラマは終息製品ですが , 制御モジュール FF201 を用い
ることにより使用できます。シリアル書込み接続例を「29.2 シリアル書込み接続例」に
示します。
■ 発振クロック周波数とシリアルクロック入力周波数
MB90F394H(A)の入力可能なシリアルクロック周波数は, 以下の計算式により求めるこ
とができます。ご使用の発振クロック周波数に合わせて , シリアルクロック入力周波数
をフラッシュマイコンプログラマに設定してください。
fSC = 0.125 × fOSC
ここで fSC はシリアルクロック周波数を , fOSC は発振クロック周波数を示します。
584
第 29 章 シリアル書込み接続例
表 29.1-3 入力可能なシリアルクロック周波数の例
マイコンの入力可能な最大
シリアルクロック周波数
AF220/AF210/AF120/
AF110 の設定可能な最大
シリアルクロック周波数
AF200 の設定可能な最大
シリアルクロック周波数
500kHz
500kHz
500kHz
8MHz 時 *
1MHz
850kHz
500kHz
16MHz 時 *
2MHz
1.25MHz
500kHz
発振クロック
周波数
4MHz 時
*:外部クロックのみ
585
第 29 章 シリアル書込み接続例
29.2
シリアル書込み接続例
なお , モード端子 MD2, MD0 には , AF220/AF210/AF120/AF110 の TAUX3, TMODE
より , MD2=1, MD0=0 が入力されます。
シリアル書換えモード :MD2, MD1, MD0=110B
■ シリアル書込み接続例 ( ユーザ電源使用時 )
図 29.2-1 に , マイコンの電源電圧をユーザ電源より供給する場合のシリアル書込み接
続例を示します。
図 29.2-1 MB90F394H(A) シリアル書込み接続例
( ユーザ電源使用時 )
AF220/AF210/AF120/AF110
フラッシュマイコン
プログラマ
TAUX3
ユーザシステム
コネクタ
DX10-28SまたはDX20-28S
MB90F394H
MD2
(19)
MD1
TMODE
MD0
X0
(12)
X1
TAUX
(23)
/TICS
(10)
P00
ユーザ
回路
10kΩ
/TRES
RST
(5)
10kΩ
P01
C
ユーザ
回路
TTXD
TRXD
TCK
(13)
(27)
(6)
TVcc
(2)
SIN4
SOT4
SCK4
VCC
ユーザ電源
GND
(7,8,
14,15.
21,22
1,28)
VSS
14ピン
3, 4, 9, 11, 16, 17, 18, 20,
24, 25, 26ピンは開放。
DX10-28S:ライトアングルタイプ
DX20-28S:ストレートタイプ
586
1ピン
DX10-28S
DX20-28S
28ピン
15ピン
コネクタ (ヒロセ電機製)のピン配列
第 29 章 シリアル書込み接続例
• SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , P00 と同様に下図
の制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により ,
シリアル書込み中はユーザ回路を切り離すことができます ) 。
• AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。
図 29.2-2 ユーザ回路接続 ( 細部 )
AF220/AF210/AF120/AF110
書込み制御端子
10kΩ
MB90F394H
書込み制御端子
AF220/AF210/
AF120/AF110
/TICS端子
ユーザ回路
587
第 29 章 シリアル書込み接続例
29.3
シリアル書込み接続例 ( ライタから電源供給時 )
図 29.3-1 に , マイコンの電源電圧をライタ電源より供給する場合のシリアル書込み
接続例を示します。
なお , モード端子 MD2, MD0 には , AF220/AF210/AF120/AF110 の TAUX3, TMODE
より , MD2=1, MD0=0 が入力されます。
シリアル書換えモード :MD2, MD1, MD0=110B
■ シリアル書込み接続例 ( ライタから電源供給時 )
図 29.3-1 MB90F394H(A) シリアル書込み接続例
( ライタから電源供給時 )
AF220/AF210/AF120/AF110 ユーザシステム
フラッシュマイコン
コネクタ
プログラマ
DX10-28S
TAUX3
MB90F394H
MD2
(19)
10kΩ
10kΩ
MD1
10kΩ
TMODE
MD0
X0
(12)
X1
TAUX
(23)
/TICS
(10)
P00
10kΩ
ユーザ回路
10kΩ
/TRES
RST
(5)
10kΩ
P01
C
ユーザ
回路
0.1μF
TTXD
TRXD
TCK
TVcc
Vcc
TVPP1
(13)
(27)
(6)
(2)
(3)
(16)
SIN4
SOT4
SCK4
ユーザ電源
GND
(7,8,
14,15.
21,22
1,28)
3, 4, 9, 11, 16, 17, 18, 20,
24, 25, 26ピンは開放。
DX10-28S:ライトアングルタイプ
DX20-28S:ストレートタイプ
VCC
VSS
14ピン
1ピン
28ピン
15ピン
DX10-28S
DX20-28S
コネクタ(ヒロセ電機製)のピン配列
588
第 29 章 シリアル書込み接続例
• SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , P00 と同様に下図
の制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により ,
シリアル書込み中はユーザ回路を切り離すことができます ) 。
• AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。
• 書込み電源をAF220/AF210/AF120/AF110から供給するときはユーザ電源と短絡しな
いでください。
図 29.3-2 ユーザ回路接続 ( 細部 )
AF220/AF210/AF120/AF110
書込み制御端子
10kΩ
MB90F394H
書込み制御端子
AF220/AF210/
AF120/AF110
/TICS端子
ユーザ回路
589
第 29 章 シリアル書込み接続例
29.4
フラッシュマイコンプログラマとの最小限の接続例
( ユーザ電源使用時 )
図 29.4-1 に , マイコンの電源電圧をユーザ電源より供給する場合のフラッシュマイ
コンプログラマとの最小限の接続例を示します。
シリアル書換えモード :MD2, MD1, MD0=110B
■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 )
フラッシュメモリ書込み時に , 各端子を下記のように設定していただければ , MD2,
MD1, MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。
図 29.4-1 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 )
AF220/AF210/AF120/AF110
フラッシュマイコン
プログラマ
ユーザシステム
シリアル書換え時1
10kΩ
MB90F394H
MD2
シ