...

製品に関する情報が記載されております。

by user

on
Category: Documents
42

views

Report

Comments

Transcript

製品に関する情報が記載されております。
本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
はじめに
■ 本書の目的と対象読者
MB89051シリーズは,ASIC(Application Specific IC)対応が可能なオリジナル
8ビットワンチップマイクロコントローラであるF2MC-8Lシリーズの汎用品として
開発された製品です。民生機器から産業機器まで幅広く使用できます。
このマニュアルは,実際にこのMB89051シリーズ マイクロコントローラを使用し
て製品を開発される技術者を対象に,MB89051シリーズの機能や動作について解説
したものです。本書をご一読ください。
なお,各種命令の詳細については『F2MC-8L プログラミングマニュアル』を参照
してください。
■ 商標
F2MCは,FUJITSU Flexible Microcontrollerの略で,富士通株式会社の登録商標
です。
そのほか,本書で登場するシステム名,製品名はそれぞれの会社もしくは組織の
商標です。
なお,本文中では™マークや®マークを必ずしも明記していません。
i
■ 本書の全体構成
本書は,以下に示す17の章および付録から構成されています。
第1章 概
要
この章では,MB89051シリーズの特長や基本的な仕様について説明しています。
第2章 デバイスの取扱いについて
この章では,USB汎用ワンチップマイクロコントローラの取扱い上の注意につ
いて説明しています。
第3章 CPU
この章では,CPUの機能と動作について説明しています。
第4章 I/Oポート
この章では,I/Oポートの機能と動作について説明しています。
第5章 タイムベースタイマ
この章では,タイムベースタイマの機能と動作について説明しています。
第6章 ウォッチドッグタイマ
この章では,ウォッチドッグタイマの機能と動作について説明しています。
第7章
2CH 8ビットPWMタイマ
この章では,2CH 8ビットPWMタイマの機能と動作について説明しています。
第8章 外部割込み回路(レベル)
この章では,外部割込み回路(レベル)の機能と動作について説明していま
す。
第9章 USBハブ
この章では,USBハブ回路の機能と動作について説明しています。
第10章 USBファンクション
この章では,USBファンクション回路の機能と動作について説明しています。
第11章 UART/SIO
この章では,UART/SIOの機能と動作について説明しています。
第12章 8ビットシリアルI/O
この章では,8ビットシリアルI/Oの機能と動作について説明しています
第13章 I2C
この章では,I2Cバスインタフェースの機能と動作について説明します。
第14章 クロック出力機能
この章では,クロック出力機能と動作について説明しています。
第15章 プルアップオプション
この章では,プルアップオプションについて説明しています。
第16章
フラッシュメモリ
この章では,フラッシュメモリの機能と動作について説明します。
ii
第17章
MB89F051シリアル書込み接続例
この章では,シリアル書込みの接続例について説明します。
付 録
付録には,I/Oマップ,命令一覧表などを記載しています。
iii
・本資料の記載内容は,予告なしに変更することがありますので,ご用命の際は当社営業担当部門にご確認くだ
さい。
・本資料に記載された情報・回路図は,半導体デバイスの応用例として使用されており,実際に使用する機器へ
の搭載を目的としたものではありません。また,これらの情報・回路図の使用に起因する第三者の特許権,そ
の他の権利侵害について,当社はその責任を負いません。
・本資料に記載された製品は,通常の産業用,一般事務用,パーソナル用,家庭用などの一般的用途に使用され
ることを意図して設計・製造されています。極めて高度な安全性が要求され,仮に当該安全性が確保されない
場合,社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力施設における
核反応制御,航空機自動飛行制御,航空交通管制,大量輸送システムにおける運行制御,生命維持のための医
療機器,兵器システムにおけるミサイル発射制御をいう),ならびに極めて高い信頼性が要求される用途(海
底中継器, 宇宙衛星をいう)に使用されるよう設計・製造されたものではありません。したがって,これら
の用途にご使用をお考えのお客様は,必ず事前に当社営業担当部門までご相談ください。ご相談なく使用され
たことにより発生した損害などについては,責任を負いかねますのでご了承ください。
・半導体デバイスは,ある確率で故障が発生します。当社半導体デバイスが故障しても,結果的に人身事故,火
災事故,社会的な損害を生じさせないよう,お客様は,装置の冗長設計,延焼対策設計,過電流防止対策設計,
誤動作防止設計などの安全設計をお願いします。
・本資料に記載された製品が,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該当す
る場合には,本製品を輸出するに際して,同法に基づく許可が必要となります。
©2002 FUJITSU LIMITED Printed in Japan
iv
目次
第1章
概要 ............................................................ 1
1.1
MB89051シリーズの特長 .................................................. 2
1.2
MB89051シリーズの品種構成 .............................................. 4
1.3
品種間の相違点 ......................................................... 5
1.4
MB89051シリーズのブロックダイヤグラム................................... 6
1.5
端子配列図 ............................................................. 7
1.6
外形寸法図 ............................................................. 8
1.7
端子機能説明 ........................................................... 9
1.8
入出力回路形式 ........................................................ 11
第2章
2.1
第3章
3.1
3.2
デバイスの取扱いについて ....................................... 15
デバイス取扱い上の注意 ................................................ 16
CPU ............................................................ 17
メモリ空間 ............................................................ 18
3.1.1
特定用途の領域 ...................................................... 20
3.1.2
16ビットデータのメモリ上の配置 ...................................... 21
専用レジスタ .......................................................... 22
3.2.1
コンディションコードレジスタ(CCR) ................................. 24
3.2.2
レジスタバンクポインタ(RP) ........................................ 26
3.3
汎用レジスタ .......................................................... 27
3.4
割込み ................................................................ 29
3.5
3.4.1
割込みレベル設定レジスタ(ILR1,2,3,4) ........................... 30
3.4.2
割込み動作時の処理 .................................................. 31
3.4.3
多重割込み .......................................................... 33
3.4.4
割込み処理時間 ...................................................... 34
3.4.5
割込み処理時のスタック動作 .......................................... 35
3.4.6
割込み処理のスタック領域 ............................................ 36
リセット .............................................................. 37
3.5.1
外部リセット端子 .................................................... 39
3.5.2
リセット動作 ........................................................ 40
3.5.3
リセットによる各端子の状態 .......................................... 42
v
3.6
3.7
3.8
第4章
クロック .............................................................. 43
3.6.1
クロック発生部 ...................................................... 45
3.6.2
クロック制御部 ...................................................... 46
3.6.3
システムクロック制御レジスタ(SYCC) ................................ 48
3.6.4
クロックモード ...................................................... 50
3.6.5
発振安定待ち時間 .................................................... 51
スタンバイモード(低消費電力) ........................................ 53
3.7.1
スタンバイモード時の動作状態 ........................................ 54
3.7.2
スリープモード ...................................................... 55
3.7.3
ストップモード ...................................................... 56
3.7.4
スタンバイ制御レジスタ(STBC) ...................................... 57
3.7.5
状態遷移図 .......................................................... 59
3.7.6
スタンバイモード使用上の注意 ........................................ 61
メモリアクセスモード .................................................. 63
I/Oポート ...................................................... 65
4.1
I/Oポートの概要 ....................................................... 66
4.2
ポート0 ............................................................... 68
4.3
4.4
4.5
4.6
4.7
4.2.1
ポート0のレジスタ(PDR0,DDR0) ..................................... 70
4.2.2
ポート0の動作説明 ................................................... 71
ポート1 ............................................................... 73
4.3.1
ポート1のレジスタ(PDR1,DDR1) ..................................... 75
4.3.2
ポート1の動作説明 ................................................... 76
ポート2 ............................................................... 78
4.4.1
ポート2のレジスタ(PDR2,DDR2) ..................................... 80
4.4.2
ポート2の動作説明 ................................................... 81
ポート3 ............................................................... 82
4.5.1
ポート3のレジスタ(PDR3,DDR3) ..................................... 84
4.5.2
ポート3の動作説明 ................................................... 85
ポート4 ............................................................... 87
4.6.1
ポート4のレジスタ(PDR4,DDR4) ..................................... 89
4.6.2
ポート4の動作説明 ................................................... 90
ポート5 ............................................................... 92
4.7.1
ポート5のレジスタ(PDR5,DDR5) ..................................... 94
vi
4.7.2
4.8
第5章
ポート5の動作説明 ................................................... 95
I/Oポートのプログラム例 ............................................... 97
タイムベースタイマ ............................................. 99
5.1
タイムベースタイマの概要 ............................................. 100
5.2
タイムベースタイマの構成 ............................................. 101
5.3
タイムベースタイマ制御レジスタ(TBTC)................................ 102
5.4
タイムベースタイマの割込み ........................................... 104
5.5
タイムベースタイマの動作説明 ......................................... 105
5.6
タイムベースタイマ使用上の注意 ....................................... 107
5.7
タイムベースタイマのプログラム例...................................... 108
第6章
ウォッチドッグタイマ .......................................... 109
6.1
ウォッチドッグタイマの概要 ........................................... 110
6.2
ウォッチドッグタイマの構成 ........................................... 111
6.3
ウォッチドッグ制御レジスタ(WDTC).................................... 112
6.4
ウォッチドッグタイマの動作説明 ....................................... 113
6.5
ウォッチドッグタイマ使用上の注意...................................... 114
6.6
ウォッチドッグタイマのプログラム例.................................... 115
第7章
2CH 8ビットPWMタイマ .......................................... 117
7.1
2CH 8ビットPWMタイマの概要(インターバルタイマ機能).................. 118
7.2
2CH 8ビットPWMタイマの概要(PWMタイマ機能)........................... 120
7.3
2CH 8ビットPWMタイマの構成 ........................................... 123
7.4
2CH 8ビットPWMタイマの端子 ........................................... 125
7.5
2CH 8ビットPWMタイマのレジスタ ....................................... 126
7.5.1
PWM制御レジスタ1(CNTR1) .......................................... 127
7.5.2
PWM制御レジスタ2(CNTR2) .......................................... 129
7.5.3
PWM制御レジスタ3(CNTR3) .......................................... 131
7.5.4
PWMコンペアレジスタ1(COMR1) ...................................... 133
7.5.5
PWMコンペアレジスタ2(COMR2) ...................................... 135
7.6
2CH 8ビットPWMタイマの割込み ......................................... 137
7.7
インターバルタイマ機能の動作説明...................................... 138
7.8
8ビットPWMモードの動作説明 ........................................... 140
vii
7.9
7ビットPWMモードの動作説明 ........................................... 142
7.10
CH12PWMモードの動作説明 .............................................. 144
7.11
2CH 8ビットPWMタイマ のプリスケーラの動作説明......................... 146
7.12
2CH 8ビットPWMタイマの動作中の各モードでの状態........................ 147
7.13
2CH 8ビットPWMタイマ使用上の注意...................................... 149
7.14
2CH 8ビットPWMタイマのプログラム例(インターバル機能)................ 150
7.15
2CH 8ビットPWMタイマのプログラム例(PWMタイマ機能)................... 153
第8章
外部割込み回路(レベル) ...................................... 155
8.1
外部割込み回路(レベル)の概要 ....................................... 156
8.2
外部割込み回路の構成 ................................................. 157
8.3
外部割込み回路の端子 ................................................. 158
8.4
外部割込み回路のレジスタ ............................................. 161
8.4.1
外部割込み制御レジスタ(EIE) ...................................... 162
8.4.2
外部割込みフラグレジスタ(EIF) .................................... 163
8.5
外部割込み回路の割込み ............................................... 164
8.6
外部割込み回路の動作説明 ............................................. 165
8.7
外部割込み回路のプログラム例 ......................................... 166
第9章
USBハブ ....................................................... 167
9.1
USBハブの概要 ........................................................ 168
9.2
USBハブの構成 ........................................................ 169
9.3
USBハブの端子 ........................................................ 171
9.4
USBハブのレジスタ .................................................... 173
9.4.1
USBハブモードレジスタ(HMDR) ...................................... 174
9.4.2
ハブディスクリプタレジスタ(HDSR1,2,3,4) ....................... 175
9.4.3
ハブステータスレジスタ(HSTR) ..................................... 178
9.4.4
オーバカレント制御レジスタ(OCCR) ................................. 180
9.4.5
ディスクリプタROMアドレスレジスタ(DADR) .......................... 182
9.4.6
ハブサポート標準ディスクリプタROM設定 .............................. 183
9.5
USBハブの割込み ...................................................... 185
9.6
ディスクリプタ ....................................................... 186
9.7
USBハブの動作説明 .................................................... 189
viii
第10章
USBファンクション ............................................. 193
10.1
USBファンクションの概要 .............................................. 194
10.2
USBファンクション回路の構成 .......................................... 195
10.3
USBファンクション回路のレジスタ....................................... 197
10.3.1
USBリセットモードレジスタ(UMDR) .................................. 201
10.3.2
DMAベースアドレスレジスタ(DBAR) .................................. 203
10.3.3
転送データカウントレジスタ(TDCR0∼3) ............................. 204
10.3.4
USBコントロールレジスタ(UCTR) .................................... 206
10.3.5
USBステータスレジスタ1(USTR1) .................................... 207
10.3.6
USBステータスレジスタ2(USTR2) .................................... 210
10.3.7
USB割込みマスクレジスタ(UMSKR) ................................... 212
10.3.8
USBフレームステータスレジスタ(UFRMR) ............................. 214
10.3.9
エンドポイントイネーブルレジスタ(EPER) ........................... 215
10.3.10
エンドポイントセットアップレジスタ(EPBR0,EPBRx1,x2) ............ 216
10.3.11
USB用プルアップ制御レジスタ(USBPC,USBP) ......................... 220
10.4
USBファンクションの割込み ............................................ 221
10.5
USBファンクション機能説明 ............................................ 223
10.6
USBファンクションの動作説明 .......................................... 225
第11章
10.6.1
コマンド応答時の各レジスタ動作 ..................................... 228
10.6.2
サスペンド機能 ..................................................... 231
10.6.3
ウェークアップ機能 ................................................. 232
UART/SIO ...................................................... 235
11.1
UART/SIOの概要 ....................................................... 236
11.2
UART/SIOの構成 ....................................................... 237
11.3
UART/SIOの端子 ....................................................... 239
11.4
UART/SIOのレジスタ ................................................... 241
11.4.1
シリアルモード制御レジスタ1(SMC1) ................................ 242
11.4.2
シリアルモード制御レジスタ2(SMC2) ................................ 244
11.4.3
シリアルクロック切替えレジスタ(SCS) .............................. 246
11.4.4
シリアルステータス&データレジスタ(SSD) .......................... 247
11.4.5
シリアルインプットデータレジスタ(SIDR) ........................... 249
11.4.6
シリアルアウトプットデータレジスタ(SODR) ......................... 250
11.4.7
シリアルレート制御レジスタ(SRC) .................................. 251
ix
11.5
UART/SIOの割込み ..................................................... 252
11.6
UART/SIOの動作説明 ................................................... 253
11.7
動作モード0の動作説明 ................................................ 254
11.8
動作モード1の動作説明 ................................................ 260
第12章
8ビットシリアルI/O ............................................ 267
12.1
8ビットシリアルI/Oの概要 ............................................. 268
12.2
8ビットシリアルI/Oの構成 ............................................. 269
12.3
8ビットシリアルI/Oの端子 ............................................. 271
12.4
8ビットシリアルI/Oのレジスタ ......................................... 274
12.4.1
シリアルモードレジスタ1/2(SMR1/SMR2) ............................. 275
12.4.2
シリアルデータレジスタ1/2(SDR1/SDR2) ............................. 277
12.5
8ビットシリアルI/Oの割込み ........................................... 278
12.6
シリアル出力の動作説明 ............................................... 279
12.7
シリアル入力の動作説明 ............................................... 281
12.8
8ビットシリアルI/Oの動作中の各モードでの状態.......................... 283
12.9
8ビットシリアルI/O使用上の注意 ....................................... 286
12.10
8ビットシリアルI/Oの接続例 ........................................... 288
12.11
8ビットシリアルI/Oのプログラム例...................................... 290
第13章
I2C ........................................................... 293
13.1
I2Cインタフェースの概要............................................... 294
13.2
I2Cインタフェースの構成............................................... 295
13.3
I2Cインタフェースの端子............................................... 298
13.4
I2Cインタフェースのレジスタ ........................................... 299
13.4.1
I2Cバスステータスレジスタ(IBSR)................................... 300
13.4.2
I2Cバス制御レジスタ(IBCR)......................................... 302
13.4.3
I2Cクロック制御レジスタ(ICCR)..................................... 305
13.4.4
I2Cアドレスレジスタ(IADR)......................................... 307
13.4.5
I2Cデータアレジスタ(IDAR)......................................... 308
13.5
I2Cインタフェースの割込み ............................................. 309
13.6
I2Cインタフェースの動作説明 ........................................... 310
13.7
I2Cインタフェース使用上の注意 ......................................... 313
13.8
I2Cインタフェースのプログラム例 ....................................... 314
x
第14章
クロック出力機能 .............................................. 317
14.1
クロック出力の概要 ................................................... 318
14.2
クロック出力の端子(CLK1,CLK2)...................................... 319
14.3
クロック出力のレジスタ ............................................... 320
第15章
プルアップオプション .......................................... 321
15.1
プルアップオプションの概要 ........................................... 322
15.2
プルアップオプション設定レジスタ...................................... 323
第16章
フラッシュメモリ .............................................. 325
16.1
フラッシュメモリの概要 ............................................... 326
16.2
フラッシュメモリのセクタ構成 ......................................... 327
16.3
フラッシュメモリコントロールステータスレジスタ(FMCS)................ 328
16.4
フラッシュメモリ自動アルゴリズム起動方法.............................. 330
16.5
自動アルゴリズム実行状態の確認 ....................................... 331
16.6
16.7
第17章
16.5.1
データポーリングフラグ(DQ7) ...................................... 332
16.5.2
トグルビットフラグ(DQ6) .......................................... 333
16.5.3
タイミングリミット超過フラグ(DQ5) ................................ 334
16.5.4
セクタ消去タイマフラグ(DQ3) ...................................... 335
16.5.5
トグルビット2フラグ(DQ2) ......................................... 336
フラッシュメモリ書込み/消去の詳細説明................................. 337
16.6.1
フラッシュメモリの読出し/リセット状態 .............................. 338
16.6.2
フラッシュメモリのデータ書込み ..................................... 339
16.6.3
フラッシュメモリの全データ消去(チップ消去) ....................... 341
16.6.4
フラッシュメモリの任意データ消去(セクタ消去) ..................... 342
16.6.5
フラッシュメモリのセクタ消去の一時停止 ............................. 344
16.6.6
フラッシュメモリのセクタ消去再開 ................................... 345
フラッシュメモリ使用上の注意 ......................................... 346
MB89F051シリアル書込み接続例 .................................. 347
17.1
MB89F051シリアル書込み接続の基本構成.................................. 348
17.2
シリアル書込み時の接続例(ユーザ電源使用時).......................... 350
17.3
フラッシュマイコンプログラマとの最小限の接続例(ユーザ電源使用時)
..................................................................... 352
xi
付録
.............................................................. 355
A
I/Oマップ ............................................................ 356
B
命令概要 ............................................................. 359
B.1
アドレッシング ..................................................... 361
B.2
特殊な命令について ................................................. 365
B.3
ビット操作命令(SETB,CLRB) ....................................... 369
B.4
F2MC-8L命令一覧表 .................................................. 370
B.5
命令マップ ......................................................... 375
C
MB89051シリーズの端子状態 ............................................ 376
索引
.............................................................. 377
xii
第1章
概要
この章では,MB89051シリーズの特長や基本的な仕様について説明します。
1.1 MB89051シリーズの特長
1.2 MB89051シリーズの品種構成
1.3 品種間の相違点
1.4 MB89051シリーズのブロックダイヤグラム
1.5 端子配列図
1.6 外形寸法図
1.7 端子機能説明
1.8 入出力回路形式
1
第1章 概要
1.1
MB89051シリーズの特長
MB89051シリーズの特長
MB89051シリーズは,コンパクトな命令体系に加えて,PLLクロック制御,タイマ,
シリアルインタフェース,PWMタイマ,USBハブ機能,USBファンクション機能などの
豊富な周辺機能を内蔵した汎用ワンチップマイクロコントローラです。特に,USBハ
ブ機能はダウンポート5ポート(このうち,1ポートは内蔵ファンクションに固定)を
サポートし,ほかのUSBデバイスとインタフェースが可能です。また,USBファンクショ
ン機能を1チャンネル内蔵しFullスピードをサポートしています。
■ 特長
○
パッケージ種類
LQFP-64ピンパッケージ(0.65mmピッチ)
○
低電圧での高速動作が可能
最小命令実行時間0.33μs(外部供給クロック6MHz,内部PLL回路により
メインクロック12MHzおよびUSBインタフェース同期化クロック48MHzを
自動生成)
○
F2MC-8L CPUコア
コントローラに最適な命令体系
○
-
乗除算命令
-
16ビット演算
-
ビットテストによるブランチ命令
-
ビット操作命令など
PLLクロック制御
PLLクロック回路内蔵により供給クロックはノイズ特性に有利な低速ク
ロックの使用が可能(外部供給クロック6MHz→内部システムクロック
12MHz)
○
各種タイマ
8bit PWMタイマ(8bit PWMタイマ×2chまたはPPGタイマ×1chとして使用
可能)
21ビットタイムベースタイマ内蔵
○
USBトランシーバ回路内蔵(Full speed,Low speedに対応)
○
USBハブ
USB Protocol Revision 1.0 準拠
ダウンストリームポート5チャネル(うち1chはファンクションに固定)
すべてのUSBプロトコルにハードで自動応答
ディスクリプタ構成情報は,ROMデータとして用意しハードで自動応答
(ベンダID,プロダクトID)
<注意事項>
ストリングデータは未サポートです。
2
第1章 概要
BUS電源/自己電源モード切替え可能
USBダウンポート電源制御は個別ポート電源制御方式
○
USBファンクション
USB Protocol Revision 1.0準拠
Full speedをサポート:ハブ使用時
Full / Low speedをサポート:ファンクション使用時
Endpointを最大四つまで指定可能
サポート転送タイプ:コントロール/インタラプト/バルク/
アイソクロノス転送サポート
DMAC内蔵(各エンドポイントのバッファを内蔵RAM上にマッピングしファ
ンクションの送受信データを直接メモリにアクセス)
○
UART/SIO, SIOシリアルインタフェース
UART/SIO(機能選択切替え可)×1ch内蔵
SIO(3V対応)×2ch内蔵
○
I2Cインタフェース*1
Philips社I2Cバス仕様
2ワイヤデータ転送プロトコル仕様
マスタとスレーブ送信/受信
*1:I2Cライセンス
本製品は,お客様が,Philips社の定めたI2C標準仕様書に従うI2Cシステム
の中で使用する場合には,Philips社I2C特許がライセンスされております。
○
外部割込み
外部割込み(レベル検出×7本)
7本の入力が独立しており,低消費電力モードからの解除としても使用可
能(Lレベル検出機能あり)
○
クロック出力機能
12MHz*1と,6MHz*1のクロックの出力が可能(専用端子,3V対応)
*1:外部供給クロック6MHz時
○
低消費電力(スタンバイモードサポート)
ストップモード(発振を停止するため電流消費はほとんど無し)
スリープモード(CPUを停止するためのモード)
○
汎用I/Oポート最大41本
汎用入出力ポート(CMOS):37本(内
7本
3V対応)
汎用入出力ポート(Nchオープンドレイン):4本
○
電源
電源電圧
3.3 V±0.3Vまたは,5.0V±0.5V
3
第1章 概要
1.2
MB89051シリーズの品種構成
MB89051シリーズの品種構成
MB89051シリーズの品種は,2種類あります。表 1.2-1にMB89051シリーズの品種構
成,CPUと周辺機能を示します。
■ MB89051シリーズの品種構成
表 1.2-1 MB89051シリーズの品種構成
項目
ROM容量
RAM容量
パッケージ
その他
CPU機能
汎用ポート
USBハブ
周
辺
機
能
USB
ファンクション
品種
MB89051
32KB
MB89F051
32KB(FLASH)
2KB
LQFP-64(FPT-64P-M09)
MASK品
FLASH品 / EVA品
基本命令数
:136命令
命令ビット長
:8ビット
命令長
:1∼3バイト
データビット長
:1,8,16ビット長
最小命令実行時間
:0.33μs(6MHz時)
割込み処理時間
:3μs(6MHz時)
汎用入出力ポート (37本:CMOS(内 7本 3V対応),4本:Nchオープンドレイン)
アップストリームポート:1ch
ダウンストリームポート:5ch(内1ポートは内蔵ファンクション固定)
ポート電源制御方式:個別ポート電源制御
自己電源 / バス電源選択可能
Full speedをサポート:ハブ使用時
Full / Low speedをサポート:ファンクション使用時
End point max 4
DMAC内蔵(内蔵RAMへのDMA転送が可能)
8bit PWMタイマ動作×2ch(PPG×1chタイマとしても使用可能)
UART(クロック同期 / 非同期のデータ転送可能)とSIO(単純シリアル)を切替え可能
SIO(単純シリアル)×2ch(3V対応)
1チャネル,Philips社仕様に対応。他装置との通信に2ワイヤープロトコル使用。マスタ
とスレーブ送信 / 受信。
PWMタイマ
UART
SIO
SIO
I2C
インタフェース
タイムベース
21bitタイムベースタイマ
タイマ
クロック出力
12MHz*1と6 MHz*1のクロック出力が可能 (3V対応)
スタンバイモード
スリープモード,ストップモード
*1:外部供給クロック6MHz時
4
第1章 概要
1.3
品種間の相違点
MB89051シリーズの品種選択時の注意事項について説明します。
■ 品種選択時の注意事項
○
メモリ空間
FLASH品などで評価する際には,実際に使用する品種との相違をよく確認の上,
評価してください。
○
消費電流
低速で動作させた場合には,FLASH搭載品種の消費電流は,マスクROM搭
載品種より多くなります。ただし,スリープ/ストップモード時の消費電
流は同等となります。
各パッケージの詳細は,
「1.6
○
外形寸法図」を参照してください。
USBのプルアップ抵抗制御について
USB接続が行われるまでの間,ハイインピーダンス状態です。USB接続前にUSBP
端子を使用し,ソフトウェア制御によりプルアップ抵抗接続制御を行ってくだ
さい。
図 1.3-1 MB89051シリーズ品の接続例
5
第1章 概要
1.4
MB89051シリーズのブロックダイヤグラム
MB89051シリーズのブロックダイヤグラム
MB89051シリーズの全体ブロックダイヤグラムを図 1.4-1に示します。
■ MB89051シリーズの全体ブロックダイヤグラム
図 1.4-1 MB89051シリーズの全体ブロックダイヤグラム
6
第1章 概要
1.5
端子配列図
MB89051シリーズの端子配列図を,図 1.5-1に示します。
■ MB89051シリーズの端子配列図
図 1.5-1 MB89051の端子配列図
7
第1章 概要
1.6
外形寸法図
MB89051シリーズには,1種類のパッケージが用意されています。
■ 外形寸法図
LQFP, 64
(FPT-64P-M09)
LQFP, 64
FPT-64P-M09
14.00±0.20(.551±.008)SQ
12.00±0.10(.472±.004)SQ
48
0.145±0.055
(.0057±.0022)
33
49
32
0.10(.004)
Details of "A" part
+0.20
1.50 –0.10
+.008
.059 –.004
(Mounting height)
0.25(.010)
INDEX
64
17
1
0.65(.026)
C
"A"
16
0.32±0.05
(.013±.002)
0.13(.005)
0.10±0.10
(.004±.004)
(Stand off)
M
mm
2001 FUJITSU LIMITED F64018S-c-2-4
図 1.6-1 FPT-64P-M09の外形寸法図
8
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
inches
第1章 概要
1.7
端子機能説明
表 1.7-1に入出力端子とその機能を示します。
なお,入出力回路形式欄のアルファベットは,表 1.8-1 入出力回路形式の分類欄
のアルファベットに対応しています。
■ 端子機能説明
表 1.7-1 端子機能説明(続く)
端子
番号
端子名
入出力
回路形式
1
P34/ INT4 /SCK1
E
2
P35/ INT5 /SCK2
E
3
P36/ INT6 /SO2
B
4
P37/ INT7 /SI2
E
5
6
CLK1
CLK2
M
M
7
P40/POW5
B
8
P41/POW2
B
9
P42/POW3
B
10
P43/POW4
B
11
P44/UCK
E
12
P45/UO
B
13
P46/UI/PWM1
N
14
VSS
-
15
P47/PWM2
K
16
MOD2
F
17
P53/SDA
K
18
P54/SCL
K
19
20
21
RST
MOD0
MOD1
I
F
F
機能説明
CMOS汎用入出力端子です。
外部割込みの入力(ヒステリシス入力となります。(レベル検出))
SIO1のクロック入出力
CMOS汎用入出力端子です。
外部割込みの入力(ヒステリシス入力となります。(レベル検出))
SIO2のクロック入出力
CMOS汎用入出力端子です。
外部割込みの入力(ヒステリシス入力となります。(レベル検出))
SIO2のシリアルデータ出力
CMOS汎用入出力端子です。
外部割込みの入力(ヒステリシス入力となります。(レベル検出))
SIO2のシリアルデータ入力
6MHzクロック出力端子です。(外部供給クロック6MHz時)
12MHzクロック出力端子です。(外部供給クロック6MHz時)
CMOS汎用入出力端子です。
USB Down Portパワー制御信号と兼用端子となります。
CMOS汎用入出力端子です。
USB Down Portパワー制御信号と兼用端子となります。
CMOS汎用入出力端子です。
USB Down Portパワー制御信号と兼用端子となります。
CMOS汎用入出力端子です。
USB Down Portパワー制御信号と兼用端子となります。
CMOS汎用入出力端子です。
UART/SIOのクロック入出力
CMOS汎用入出力端子です。
UART/SIOのシリアルデータ出力
Nchオープンドレイン汎用入出力端子です。
UART/SIOのシリアルデータ入力
PWMタイマ
電源端子 (GND)です。
Nchオープンドレイン汎用入出力端子です。
PWMタイマ
動作モード指定端子です。VSSに直結してください。
Nchオープンドレイン汎用入出力端子です。
I2Cインタフェースのデータ入出力端子と兼用
Nchオープンドレイン汎用入出力端子です。
I2Cインタフェースのクロック入出力端子と兼用
リセット端子です。(負論理lowレベルでリセット)
動作モード指定端子です。VSSに直結してください。
動作モード指定端子です。VSSに直結してください。
9
第1章 概要
表 1.7-1 端子機能説明(続き)
端子
番号
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
10
端子名
X0
X1
VSS
P27
P26
P25
P24
P23
P22
P21
P20
P17
P16
P15
P14
P13
P12
P11
P10
P07
P06
P05
P04
P03
P02
P01
P00
VCC
入出力
回路形式
機能説明
A
水晶発振回路用の接続端子です。(6MHz)
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
-
電源端子(GND)です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
CMOS汎用入出力端子です。
電源端子です。
外部に0.1μFのキャパシタを接続します。3.3V電源で使用時は,
VCC端子と接続し,3.3V入力にします。
USBルートポート + 端子です。
USBルートポート - 端子です。
USBプルアップ抵抗接続用端子です。
USBダウンポート5 + 端子です。
USBダウンポート5 - 端子です。
USBダウンポート2 + 端子です。
USBダウンポート2 - 端子です。
USBダウンポート3 + 端子です。
USBダウンポート3 - 端子です。
USBダウンポート4 + 端子です。
USBダウンポート4 - 端子です。
CMOS汎用入出力端子です。
外部割込みの入力
(ヒステリシス入力となります。(レベル検出)
)
CMOS汎用入出力端子です。
外部割込みの入力
(ヒステリシス入力となります。(レベル検出))
SIO1のシリアルデータ入力
CMOS汎用入出力端子です。
外部割込みの入力
(ヒステリシス入力となります。(レベル検出))
SIO1のシリアルデータ出力
50
C
-
51
52
53
54
55
56
57
58
59
60
61
RPVP
RPVM
USBP
D5VP
D5VM
D2VP
D2VM
D3VP
D3VM
D4VP
D4VM
USBDRV
USBDRV
L
USBDRV
USBDRV
USBDRV
USBDRV
USBDRV
USBDRV
USBDRV
USBDRV
62
P31/ INT1
B
63
P32/ INT2 /SI1
E
64
P33/ INT3 /SO1
B
第1章 概要
1.8
入出力回路形式
表 1.8-1に入出力回路形式を示します。
なお,分類欄のアルファベットは,表 1.7-1 端子機能説明の入出力回路形式欄の
アルファベットに対応しています。
■ 入出力回路形式
表 1.8-1 入出力回路形式(続く)
分類
回路
備考
・発振帰還抵抗 約1MΩ
A
・CMOS入出力
B
・CMOS入出力
・ヒステリシス入力
E
・CMOS入力
F
11
第1章 概要
表 1.8-1 入出力回路形式(続く)
分類
回路
備考
・ヒステリシス入出力
・プルアップ抵抗
I
・USB入出力
USBDRV
・Nchオープンドレイン入出力
K
・USBプルアップ抵抗接続
L
12
第1章 概要
表 1.8-1 入出力回路形式(続き)
分類
回路
備考
・クロック出力
M
・Nchオープンドレイン入出力
・ヒステリシス入力
N
13
第1章 概要
14
第2章
デバイスの取扱いについて
この章では,USB汎用ワンチップマイクロコントローラの取扱い上の注意について
説明しています。
2.1 デバイス取扱い上の注意
15
第2章 デバイスの取扱いについて
2.1
デバイス取扱い上の注意
ここでは,デバイスの電源電圧,端子の処理などについての注意事項を記載します。
■ デバイス取扱い上の注意
○
最大定格電圧を超えることのないよう注意してください(ラッチアップの防
止)
。
CMOS ICでは,中・高耐圧以外の入力端子や出力端子にVCCより高い電圧やVCC
より低い電圧が印加された場合,またはVCC∼VSS間に定格を超える電圧が印加さ
れた場合,ラッチアップ現象が発生することがあります。
ラッチアップが起きると電源電流が激増し,素子が熱破壊する恐れがありま
す。使用に際して,最大定格を超えることのないよう十分注意してください。
○
供給電圧は,できるだけ安定化するよう心がけてください。
VCC電源電圧の動作保証範囲内においても,電源電圧の急激な変化があると誤
動作を生じることがあります。
安定化の基準として,商用周波数(50∼60Hz)でのVCCリプル変動(P-P値)は,
標準VCC値の10%以下に,また電源の切替え時などの瞬時変化においては,過渡変
動率が0.1V/ms以下になるよう電圧変動を抑えることを推奨します。
○
未使用入力端子の処理について
使用していない入力端子を開放のままにしておくと,誤動作およびラッチ
アップによる永久破壊の原因になることがありますので,2kΩ以上の抵抗を介
して,プルアップまたはプルダウンの処置をしてください。
また使用していない入出力端子については,出力状態にし解放とするか入力
状態の場合は未使用時の入力端子と同じ処理をしてください。
○
外部リセット端子( RST )へのノイズの注意について
外部リセット端子( RST )の規格値未満のリセットパルスが入力された場合,
誤動作を起こすことがあります。外部リセット端子( RST )に規格値未満のリ
セットパルスが入力されないようにしてください。
○
動作中のクロックの注意について
本マイコンは,メインクロック生成にPLLを使用していますので動作中に発振
子が外れたり,またはクロック入力が停止した場合,PLL内部の自励発振回路の
自走周波数で動作を継続し続ける場合があります。この動作は保証外の動作で
す。
16
第3章
CPU
この章では,CPUの機能と動作について説明します。
3.1 メモリ空間
3.2 専用レジスタ
3.3 汎用レジスタ
3.4 割込み
3.5 リセット
3.6 クロック
3.7 スタンバイモード(低消費電力)
3.8 メモリアクセスモード
17
第3章 CPU
3.1
メモリ空間
MB89051シリーズのメモリ空間は64Kバイトで,I/O領域,RAM領域,ROM領域によっ
て構成されます。メモリ空間の中には汎用レジスタ,ベクトルテーブルなど特定の用
途に使用される領域があります。
■ メモリ空間の構成
○
I/O領域(アドレス:0000H∼007FH)
内蔵する周辺機能の制御レジスタ,データレジスタなどが割り当てられ
ます。
I/O領域はメモリ空間の一部に割り当てれらているため,メモリと同様に
アクセスできます。また,ダイレクトアドレシングによって,より高速
にアクセスできます。
○
RAM領域
内部データ領域としてスタティックRAMが内蔵されています。
内部RAM容量は品種によって異なります。
80H∼FFHまでをダイレクトアドレシングによって高速にアクセスできま
す。
100H∼1FFHまでを汎用レジスタ領域として使用できます(品種によって使
用可能な領域に制限があります)。
リセットによりRAMのデータは不定となります。
○
ROM領域
内部プログラム領域として,ROMが内蔵されています。
内部ROM容量は品種によって異なります。
FFC0H∼FFFFHをベクトルテーブルなどに使用します。
18
第3章 CPU
■ メモリマップ
図 3.1-1 メモリマップ
19
第3章 CPU
3.1.1
特定用途の領域
I/O領域のほかに,特定の用途を持った領域として,汎用レジスタ領域とベクトル
テーブル領域があります。
■ 汎用レジスタ領域(アドレス:0100H∼01FFH)
8ビットの演算や転送に使用する,補助的なレジスタを配置します。
RAM領域の一部に割り当てられており,通常のRAMとして使用することも
できます。
汎用レジスタとして使用すると,汎用レジスタアドレシングによって,
短い命令で高速にアクセスできます。
参考:
詳細は,「3.2.2 レジスタバンクポインタ(RP)」および「3.3
タ」を参照してください。
汎用レジス
■ ベクトルテーブル領域(アドレス:FFC0H∼FFFFH)
ベクトルコール命令,割込みおよびリセットのベクトルテーブルとして
使用します。
ROM領域の最上部に割り当てられており,それぞれのベクトルテーブルの
アドレスに,対応する処理ルーチンの開始アドレスをデータとして設定
します。
表 3.1-1に,ベクトルコール命令,割込みおよびリセットに対応して参
照される,ベクトルテーブルのアドレスを示します。
詳細は,「3.4 割込み」,
「3.5 リセット」および「付録 B-2
いて」の「○ CALLV #vct」を参照してください。
特殊な命令につ
表 3.1-1 ベクトルテーブル
ベクトル コール命令
CALLV
CALLV
CALLV
CALLV
CALLV
CALLV
CALLV
CALLV
20
#0
#1
#2
#3
#4
#5
#6
#7
ベクトルテーブルのアドレス
上位
下位
FFC0H
FFC1H
FFC2H
FFC3H
FFC4H
FFC5H
FFC6H
FFC7H
FFC8H
FFC9H
FFCAH
FFCBH
FFCCH
FFCDH
FFCEH
FFCFH
ベクトルテーブルのアドレス
上位
下位
IRQC
FFE2H
FFE3H
IRQB
FFE4H
FFE5H
IRQA
FFE6H
FFE7H
IRQ9
FFE8H
FFE9H
IRQ8
FFEAH
FFEBH
IRQ7
FFECH
FFEDH
IRQ6
FFEEH
FFEFH
IRQ5
FFF0H
FFF1H
IRQ4
FFF2H
FFF3H
IRQ3
FFF4H
FFF5H
IRQ2
FFF6H
FFF7H
IRQ1
FFF8H
FFF9H
IRQ0
FFFAH
FFFBH
モードデータ
-*
FFFDH
リセットベクトル FFFEH
FFFFH
*:FFFCHは使用禁止(FFHを設定)
割込み名
第3章 CPU
3.1.2
16ビットデータのメモリ上の配置
16ビットデータのメモリ上の配置
16ビットデータおよびスタックは,メモリ上ではアドレス値の小さい方に上位デー
タが格納されます。
■ RAM上の16ビットデータの格納状態
メモリに16ビットデータを書き込んだ場合,アドレス値の小さい方にデータの上
位バイトが,その次のアドレスにデータの下位バイトがそれぞれ格納されます。読
出しの場合も同様に扱われます。図 3.1-2にメモリ上の16ビットデータの配置を示
します。
図 3.1-2 メモリ上の16ビットデータの配置
■ オペランドが16ビットの場合のデータの格納状態
命令中のオペランドで16ビット指定をする場合も,オペコード(命令)に近いア
ドレスに上位バイトが,その次のアドレスに下位バイトが格納されます。
これはオペランドがメモリアドレスを示す場合でも,16ビットのイミディエート
(即値)データの場合でも同じです。
図 3.1-3に命令中の16ビットデータの配置を示します。
図 3.1-3 命令中の16ビットデータの配置
■ スタックの16ビットデータの格納状態
割込みなどで,スタックに退避した16ビット長のレジスタのデータも同じように,
アドレス値の小さい方に上位バイトが格納されます。
21
第3章 CPU
3.2
専用レジスタ
CPU内の専用レジスタは,プログラムカウンタ(PC)と二つの演算用レジスタ(A,
T)
,三つのアドレスポインタ(IX,EP,SP)およびプログラムステータス(PS)によっ
て構成されています。各レジスタは16ビット長です。
■ 専用レジスタの構成
CPU内の専用レジスタは,七つの16ビットレジスタによって構成されています。
その中で,一部のレジスタについては下位8ビットのみの使用もできます。
図 3.2-1に,専用レジスタの構成を示します。
図 3.2-1 専用レジスタの構成
■ 専用レジスタの機能
○
プログラムカウンタ(PC)
プログラムカウンタは,16ビット長のカウンタで,CPUが現在実行している命
令のメモリアドレスを示します。プログラムカウンタは,命令の実行,割込み,
リセットなどにより,その内容が更新されます。リセット動作時の初期値はモー
ドデータの読出しアドレス(FFFDH)です。
○
アキュムレータ(A)
アキュムレータは,16ビット長の演算用レジスタで,メモリ上のデータやテ
ンポラリアキュムレータ(T)などほかのレジスタ内のデータと,各種の演算や
転送を行います。アキュムレータ内のデータは,ワード長(16ビット)として
もバイト長(8ビット)としても扱えます。バイト長の演算や転送を行うと,ア
キュムレータの下位8ビット(AL)のみが使用され,上位8ビット(AH)は変化
しません。リセット後の初期値は不定です。
22
第3章 CPU
○
テンポラリアキュムレータ(T)
テンポラリアキュムレータは,16ビット長の演算補助用レジスタで,アキュ
ムレータ(A)内のデータと,各種の演算を行います。テンポラリアキュムレー
タ内のデータは,アキュムレータ(A)に対する演算がワード長(16ビット)の
場合はワード長で,バイト長(8ビット)の場合はバイト長で扱われます。バイ
ト長の演算が行われると,テンポラリアキュムレータの下位8ビット(TL)のみ
が使用され,上位8ビット(TH)は使われません。
アキュムレータ(A)にMOV系の命令でデータを転送すると,転送前のアキュ
ムレータ内のデータがテンポラリアキュムレータに自動的に転送されます。こ
のときも,バイト長の転送の場合は,テンポラリアキュムレータの上位8ビット
(TH)は変化しません。リセット後の初期値は不定です。
○
インデックスレジスタ(IX)
インデックスレジスタは,16ビット長のレジスタで,インデックスアドレス
を保持します。インデックスレジスタは,1バイトのオフセット(-128∼+127)
と組み合わせて使用され,インデックスアドレスに符号拡張したオフセット値
を加算することによって,データをアクセスするためのメモリアドレスを生成
します。リセット後の初期値は不定です。
○
エクストラポインタ(EP)
エクストラポインタは,16ビット長のレジスタで,この内容がデータをアク
セスするためのメモリアドレスとなります。リセット後の初期値は不定です。
○
スタックポインタ(SP)
スタックポインタは,16ビット長のレジスタで,割込みやサブルーチンの呼
出し,スタック退避 / 復帰命令などで参照するアドレスを保持します。プログ
ラム実行中のスタックポインタの値は,スタック内に退避した最新のデータが
格納されているアドレスになっています。リセット後の初期値は不定です。
○
プログラムステータス(PS)
プログラムステータスは,16ビット長の制御用レジスタです。上位8ビットは,
汎用レジスタバンクのアドレスを示すために使用されるレジスタバンクポイン
タ(RP)です。
下位8ビットは,CPUの状態を示す各種のフラグにより構成されるコンディ
ションコードレジスタ(CCR)です。8ビット長の各レジスタは,プログラムス
テータスの一部であり独立にはアクセスできません(プログラムステータスを
アクセスする命令は,MOVW A,PSおよびMOVW PS,Aのみです)
。
23
第3章 CPU
3.2.1
コンディションコードレジスタ(CCR
コンディションコードレジスタ(CCR)
CCR)
プログラムステータス(PS)の下位8ビットであるコンディションコードレジスタ
(CCR)は,演算結果や転送データの内容を示すビット(C,V,Z,N,H)と,割込み
要求の受付けを制御するビット(I,IL1,IL0)によって構成されます。
■ コンディションコードレジスタ(CCR)の構成
図 3.2-2 コンディションコードレジスタの構成
■ 演算結果を示すビット
○
ハーフキャリフラグ(H)
演算の結果,ビット3からビット4への繰上げやビット4からビット3への借越
しが発生したとき"1"にセットされ,それ以外のときは"0"にクリアされます。
このフラグは10進補正命令用なので,加減算以外の用途に使用しないでくださ
い。
○
ネガティブフラグ(N)
演算の結果,最上位ビットが"1"のとき"1"にセットされ,"0"のときは"0"に
クリアされます。
○
ゼロフラグ(Z)
演算の結果が,"0"であれば"1"にセットされ,それ以外のときは"0"にクリア
されます。
○
オーバフローフラグ(V)
演算の結果,2の補数のオーバフローが発生したとき"1"にセットされ,発生
しなかったときは"0"にクリアされます。
24
第3章 CPU
○
キャリフラグ(C)
演算の結果,ビット7からの繰上げ(キャリ)やビット7への借越し(ボロー)
が発生したとき"1"にセットされ,発生しなかったときは"0"にクリアされます。
また,シフト命令ではシフトアウトした値になります。
図 3.2-3に,シフト命令によるキャリフラグの変化を示します。
図 3.2-3 シフト命令によるキャリフラグの変化
<注意事項>
コンディションコードレジスタは,プログラムステータス(PS)の一部であり,コンディショ
ンコードレジスタのみを独立にアクセスすることはできません。
参考:
フラグを利用する場合,フラグのビットを取り出して直接利用することは,
ほとんどありません。通常は,分岐命令(BNZなど)や10進補正命令(DAA,DAS)
などで間接的に使います。これらのフラグのリセット後の初期値は不定です。
■ 割込みの受付けを制御するビット
○
割込み許可フラグ(I)
このフラグが"1"のとき割込みが許可され,CPUは割込みを受け付けます。"0"
のときは割込みが禁止され,CPUは割込みを受け付けません。
リセット後の初期値は"0"になります。
通常はSETI命令で"1"にセット,CLRI命令で"0"にクリアします。
○
割込みレベルビット(IL1, 0)
このビットは,CPUが現在受け付けている割込みのレベルを示し,各周辺機能
の割込み要求(IRQ0∼IRQB)に対応して設定されている,割込みレベル設定レ
ジスタ(ILR1∼3)の値と比較されます。
割込み許可フラグが許可(I=1)状態で,このビットが示す値より小さい値の
割込みレベルを持つ割込み要求があった場合のみ,CPUは割込み処理を行います。
割込みレベルの強弱は,表 3.2-1に示すとおりです。また,リセット後の初期
値は"11"になります。
表 3.2-1 割込みレベル
IL1
0
0
1
1
IL0
0
1
0
1
割込みレベル
1
2
3
強弱
強い
弱い(割込みなし)
参考:
CPUが割込み処理中でないとき(メインプログラム実行中)は,通常,割込み
レベルビット(IL1,0)は"11"となります。
割込みの詳細は,
「3.4
割込み」を参照してください。
25
第3章 CPU
3.2.2
レジスタバンクポインタ(RP
レジスタバンクポインタ(RP)
RP)
プログラムステータス(PS)の上位8ビットであるレジスタバンクポインタ(RP)
は,現在使用している汎用レジスタバンクのアドレスを示し,汎用レジスタアドレシ
ング時に実アドレスに変換されます。
■ レジスタバンクポインタ(RP)の構成
図 3.2-4に,レジスタバンクポインタの構成を示します。
図 3.2-4 レジスタバンクポインタの構成
レジスタバンクポインタは,現在使用しているレジスタバンクのアドレスを示す
もので,レジスタバンクポインタの内容と実アドレスの関係は,図 3.2-5に示す変
換規則になっています。
図 3.2-5 汎用レジスタ領域の実アドレス変換規則
レジスタバンクポインタは,RAM領域の中で汎用レジスタとして使用するメモリ
ブロック(レジスタバンク)を指定するものです。レジスタバンクは,全部で32
個ありレジスタバンクポインタの上位5ビットに0∼31の値をセットすることによ
り指定します。一つのレジスタバンクには,八つの8ビット長の汎用レジスタがあ
り,オペコードの下位3ビットで選択します。
このレジスタバンクポインタによって,0100H∼最大01FFHまでを汎用レジスタ領
域として使用できます。ただし,品種によっては使用可能な領域に制限があります。
リセット後の初期値は不定です。
<注意事項>
・汎用レジスタを使う場合,レジスタバンクポインタ(RP)は必ず設定してから使用してくださ
い。
・レジスタバンクポインタは,プログラムステータス(PS)の一部であり,レジスタバンクポイ
ンタのみを独立にアクセスすることはできません。
26
第3章 CPU
3.3
汎用レジスタ
汎用レジスタは,8ビット×8個を1バンクとするメモリブロックです。
レジスタバンクの指定には,レジスタバンクポインタ(RP)を使用します。
機能としては,全部で32バンクまで使用できますが,内部RAM容量が小さく全バン
クを使用できない場合があります。
割込み処理,ベクトルコール処理およびサブルーチンの呼出しに使用すると有効で
す。
■ 汎用レジスタの構成
汎用レジスタは8ビット長のレジスタで,汎用レジスタ領域(RAM上)の
レジスタバンク内にあります。
1バンクあたり八つのレジスタ(R0∼R7)があり,全部で32バンクまで使
用することができます。ただし,内部RAMのみを使用する場合,品種によっ
ては使用できるバンク数が制限されます。
現在使用しているレジスタバンクはレジスタバンクポインタ(RP)で指
定され,オペコードの下位3ビットが汎用レジスタ0(R0)∼汎用レジス
タ7(R7)を示します。
図 3.3-1に,レジスタバンクの構成を示します。
図 3.3-1 レジスタバンクの構成
27
第3章 CPU
各品種で使用できる汎用レジスタ領域については,
「3.1.1 特定用途の領域」を
参照してください。
■ 汎用レジスタの特長
汎用レジスタは,次のような特長を持っています。
短い命令で高速にRAMをアクセスできる(汎用レジスタアドレシング)。
レジスタバンクによってブロック化されており,内容の保護や機能単位
の分割がしやすい。
汎用レジスタは,割込み処理ルーチンやベクトルコール(CALLV #0∼#7)処理ルー
チンに対して,それぞれ専用のレジスタバンクを固定的に割り当てることもできま
す。例えば,
「2番目の割込みには4番目のレジスタバンクを使う」という使い方で
す。
割込みの場合,一つの割込み処理に対応した専用のレジスタバンクの内容が,ほ
かのルーチンから不用意に書き換えられないならば,割込み処理ルーチンの先頭で
専用のレジスタバンクを指定するだけで割込み前の汎用レジスタを保存したこと
になります。これによって,汎用レジスタをスタックなどに退避する必要がなくな
り,混乱なく高速に割込みを受け付けることができます。
また,サブルーチン呼出しについては,汎用レジスタの保護のほかに,通常はイ
ンデックスレジスタ(IX)などを使用して作られるリエントラントなプログラム(変
数アドレスを固定しない再入可能なプログラム)をレジスタバンクによって実現す
ることもできます。
<注意事項>
割込み処理ルーチン中で,レジスタバンクポインタ(RP)を書き換えて,レジスタバンクを指
定するとき,コンディションコードレジスタの割込みレベルビット(CCR:IL1,0)の値を変化さ
せないようにプログラムする必要があります。
28
第3章 CPU
3.4
割込み
MB89051シリーズには,周辺機能に対応する13本の割込み要求入力があり,それぞ
れ独立に割込みレベルを設定することができます。
周辺機能で発生した割込み要求は,周辺機能の割込み要求出力が許可されていると,
割込みコントローラによって割込みレベルを比較されます。CPUは割込みの受付け状
態に従って割込み動作を行います。また,割込み要求によりスタンバイモードが解除
され,割込み動作または通常動作に復帰します。
■ 周辺機能からの割込み要求
周辺機能に対応する割込み要求を表 3.4-1に示します。割込みが受け付けられる
と,割込み要求に対応する割込みベクトルテーブルアドレスの内容を分岐先のアド
レスとして,割込み処理ルーチンへ分岐します。
各割込み要求は,割込みレベル設定レジスタ(ILR1,2,3,4)によって割込み
処理の強弱を3段階に設定することができます。
割込み処理ルーチン実行中の同一レベル以下の割込み要求は,通常,現在の割込
み処理ルーチンが終了してから処理されます。また,同一レベルに設定された割込
み要求が同時に発生した場合の優先順位は,IRQ0が最高となります。
表 3.4-1 割込み要求と割込みベクトル
割込み要求
ベクトルテーブル
のアドレス
上位
IRQ0(外部割込み)
FFFAH
IRQ1(設定禁止)
FFF8H
IRQ2(USB HUB1)
FFF6H
IRQ3(USB FUNCTION1)
FFF4H
IRQ4(USB HUB2)
FFF2H
IRQ5(USB FUNCTION2)
FFF0H
IRQ6(UART/SIO)
FFEEH
IRQ7(タイムベースタイマ)
FFECH
IRQ8(8ビットPWMタイマ1,2)
FFEAH
IRQ9(I2C)
FFE8H
IRQA(FLASH*1)
FFE6H
IRQB(SIO1)
FFE4H
IRQC(SIO2)
FFE2H
*1:FLASH割込みは,MB89F051のみです。
下位
FFFBH
FFF9H
FFF7H
FFF5H
FFF3H
FFF1H
FFEFH
FFEDH
FFEBH
FFE9H
FFE7H
FFE5H
FFE3H
割込みレベル設定
レジスタのビット名
L01,L00
L11,L10
L21,L20
L31,L30
L41,L40
L51,L50
L61,L60
L71,L70
L81,L80
L91,L90
LA1,LA0
LB1,LB0
LC1,LC0
同一レベル
優先順位
(同時発生時)
高い
低い
29
第3章 CPU
3.4.1
割込みレベル設定レジスタ(ILR1
割込みレベル設定レジスタ(ILR1,
ILR1,2,3,4)
割込みレベル設定レジスタ(ILR1,2,3,4)には,周辺機能からの割込み要求に
対応した2ビットのデータが13組割り当てられています。これらの2ビットデータ(割
込みレベル設定ビット)に,それぞれの割込みレベルを設定することができます。
■ 割込みレベル設定レジスタ(ILR1,2,3,4)の構成
図 3.4-1 割込みレベル設定レジスタの構成
割込みレベル設定レジスタは,各割込み要求に対して2ビットずつ割り当てられ
ています。これらのレジスタに設定された割込みレベル設定ビットの値が,割込み
処理の強弱(割込みレベル1∼3)となります。
割込みレベル設定ビットは,コンディションコードレジスタの割込みレベルビッ
ト(CCR:IL1,0)と比較されます。
割込みレベル3を設定した場合は,CPUは割込み要求を受け付けません。
表 3.4-2に,割込みレベル設定ビットと割込みレベルの関係を示します。
表 3.4-2 割込みレベル設定ビットと割込みレベルの関係
L01∼LC1
L00∼LC0
0
0
1
1
0
1
0
1
要求割込み
レベル
1
2
3
強弱
強い
弱い(割込みなし)
参考:
メインプログラム実行中は,コンディションコードレジスタの割込みレベル
ビット(CCR:IL1,0)は,通常"11"となります。
<注意事項>
ILR1,ILR2,ILR3,ILR4レジスタは,書込み専用(ライトオンリー)のため,ビット操作命令
(SETB,CLRB)は使用できません。
また,予約ビットには必ず"1"を書き込んでください。
30
第3章 CPU
3.4.2
割込み動作時の処理
周辺機能から割込み要求が発生すると,割込みコントローラは割込みレベルをCPU
に伝達します。CPUは割込みを受け付けられる状態になっていると,現在実行中のプ
ログラムを一時中断し,割込み処理ルーチンを実行します。
■ 割込み動作時の処理
割込み動作の手順は,周辺機能の割込み要因の発生,割込み要求フラグビット(要
求FF)のセット,割込み要求許可ビット(許可FF)の判定,割込みレベル(ILR1,
2,3およびCCR:IL1,0)の判定,同一レベルの同時要求の判定,割込み許可フラグ
(CCR:I)の判定の順で行われます。
図 3.4-2に,割込み動作時の処理を示します。
図 3.4-2 割込み動作時の処理
31
第3章 CPU
1)
リセット後は,すべての割込み要求は禁止状態になっています。周辺機能
の初期化プログラムで,割込みを発生する各周辺機能を初期化し,該当す
る割込みレベル設定レジスタ(ILR1,2,3,4)に割込みレベルを設定し
てから,周辺機能を動作させます。割込みレベルは,1,2,3のいずれか
を設定できます。レベル1が最も強く,レベル2がその次の強さになります。
レベル3に設定した場合は,該当する周辺機能の割込みは禁止されます。
2)
メインプログラム(多重割込みの場合は,割込み処理ルーチン)を実行し
ます。
3)
周辺機能で割込み要因が発生したときは,周辺機能の割込み要求フラグ
ビット(要求FF)が"1"にセットされます。このとき周辺機能の割込み要
求許可ビットが許可(許可FF=1)されていると,割込みコントローラへ割
込み要求を出力します。
4)
割込みコントローラは,各周辺機能からの割込み要求を常に監視しており,
現在発生している割込み要求に対応する割込みレベルの中から,最も強い
割込みレベルをCPUに伝達します。このとき,同一の割込みレベルで同時
に要求があった場合の優先順位も判定されます。
5)
CPUは,受け取った割込みレベルがコンディションコードレジスタの割込
みレベルビット(CCR:IL1,0)に設定されているレベルより,優先度が強
い(レベルが小さい)場合,割込み許可フラグ(CCR:I)の内容をチェッ
クして,割込み許可(CCR:I=1)になっていれば割込みを受け付けます。
6)
プログラムカウンタ(PC)とプログラムステータス(PS)の内容をスタッ
クに退避し,該当する割込みベクトルテーブルから割込み処理ルーチンの
先頭アドレスを取り込み,コンディションコードレジスタの割込みレベル
ビット(CCR:IL1, 0)の値を受け付けた割込みレベルの値に変更した後,
割込み処理ルーチンの実行を開始します。
7)
最後にRETI命令でスタックに退避しておいたプログラムカウンタ(PC)と
プログラムステータス(PS)の値を復帰して,割込み直前に実行した命令
の次の命令から処理を実行します。
<注意事項>
周辺機能の割込み要求フラグビットは,割込み要求が受け付けられても自動的にはクリアされ
ないため,割込み処理ルーチンでプログラム(通常は,割込み要求フラグビットへの"0"の書込み)
によって,クリアする必要があります。
スタンバイモード(低消費電力)は割込みによって解除されます。詳細は,
「3.5
リセット」を参照してください。
参考:
割込み処理ルーチンの先頭で,割込み要求フラグビットをクリアすると,割
込みを起こした周辺機能が,割込み処理ルーチン実行中に再割込みを発生(割
込み要求フラグビットの再セット)できるようになります。ただし,割込みの
受付けは,通常,現在の割込み処理ルーチンが終了してからとなります。
32
第3章 CPU
3.4.3
多重割込み
周辺機能からの複数の割込み要求に対して,割込みレベル設定レジスタ(ILR1,2,
3,4)に異なる割込みレベルを設定することにより,多重割込みを行うことができま
す。
■ 多重割込み
割込み処理ルーチン実行中に,より強い割込みレベルに設定された割込み要求が
発生すると,現在の割込み処理を中断して,より強い割込み要求を受け付けます。
割込みレベルは1∼3まで設定できますが,レベル3に設定した場合は,CPUは割込み
要求を受け付けません。
○
多重割込みの例
多重割込み処理の例として,タイマ割込みより外部割込みを優先させる場合
を想定し,タイマ割込みのレベルを2に,外部割込みのレベルを1に設定します。
このとき,タイマ割込み処理中に外部割込みが発生すると,図 3.4-3のような
処理を行います。
図 3.4-3 多重割込みの例
タイマ割込み処理中は,コンディションコードレジスタの割込みレベル
ビット(CCR:IL1,0)は,タイマ割込みに対応する割込みレベル設定レ
ジスタ(ILR1,2,3,4)の値と同じ値(例では2)になります。このと
き,より強い割込みレベル(例では1)に設定された割込み要求が発生す
ると,その割込み処理を優先して行います。
タイマ割込み中に多重割込みを一時的に禁止したい場合は,コンディ
ションコードレジスタ内の割込み許可フラグを割込み禁止(CCR:I=0)に
設定するか,割込みレベルビット(IL1,0)を"00"にします。
割込み処理が終了して割込み復帰命令(RETI)を実行すると,スタック
に退避していたプログラムカウンタ(PC)とプログラムステータス(PS)
の値を復帰して,割り込まれたプログラムの処理に戻ります。
コンディションコードレジスタ(CCR)は,プログラムステータス(PS)
が復帰されることにより,割込み前の値となります。
33
第3章 CPU
3.4.4
割込み処理時間
割込み要求が発生して割込み処理ルーチンに制御が移行するまでには,現在実行中
の命令が終了するまでの時間と,割込みハンドリング時間(割込み処理準備に要する
時間)の合計時間を必要とします。この時間は,最大で30インストラクションサイク
ルとなります。
■ 割込み処理時間
割込み要求が発生してから割込みが受け付けられて,割込み処理ルーチンが実行
されるまでには,割込み要求サンプル待ち時間と割込みハンドリング時間が必要で
す。
○
割込み要求サンプル待ち時間
割込み要求が発生しているかどうかは,各命令の最後のサイクルで割込み要
求をサンプルリングして判断します。そのため,各命令の実行中にCPUは割込み
要求を認識することができません。この待ち時間は,最も実行サイクルの長い
DIVU命令(21インストラクションサイクル)の実行開始直後に割込み要求が発
生した場合に,最大となります。
○
割込みハンドリング時間
CPUは割込みを受け付けてから,以下の割込み処理準備を行うために9イ
ンストラクションサイクルを必要とします。
プログラムカウンタ(PC)とプログラムステータス(PS)の退避
割込み処理ルーチンの先頭アドレス(割込みベクトル)をPCにセット
プログラムステータス(PS)内の割込みレベルビット(PS:CCR:IL1, 0)
の更新
図 3.4-4に割込み処理時間を示します。
図 3.4-4 割込み処理時間
最も実行サイクルの長いDIVU命令(21インストラクションサイクル)の実行開始
直後に割込み要求が発生した場合,21+9=30インストラクションサイクルの割込み
処理時間がかかることになります。ただし,プログラムでDIVU命令,MULU命令を使
用しない場合は,最大で 6+9=15インストラクションサイクルの割込み処理時間と
なります。
34
第3章 CPU
3.4.5
割込み処理時のスタック動作
割込み処理時のレジスタの退避と復帰について説明します。
■ 割込み処理開始時のスタック動作
割込みが受け付けられると,CPUは現在のプログラムカウンタ(PC)とプログラ
ムステータス(PS)の内容を自動的にスタックに退避します。
図 3.4-5に,割込み処理開始時のスタック動作を示します。
図 3.4-5 割込み処理開始時のスタック動作
■ 割込み復帰時のスタック動作
割込み処理終了時に割込み復帰命令(RETI)を実行すると,割込み処理開始時と
反対にプログラムステータス(PS)
,プログラムカウンタ(PC)の順にスタックか
ら復帰します。これによってPS,PCは割込み開始直前の状態に戻ります。
<注意事項>
アキュムレータ(A)とテンポラリアキュムレータ(T)は,自動的にスタックに退避されませ
んので,PUSHW,POPW命令でA,Tの値を退避,復帰させてください。
35
第3章 CPU
3.4.6
割込み処理のスタック領域
割込み処理の実行には,RAM上のスタック領域を使用します。スタックポインタ(SP)
の内容が,スタック領域の先頭アドレスとなります。
■ 割込み処理のスタック領域
スタック領域は,サブルーチンコール命令(CALL)やベクトルコール命令(CALLV)
を実行するときのプログラムカウンタ(PC)の退避 / 復帰や,PUSHW,POPW命令に
よる一時的なレジスタ類の退避 /復帰にも使われます。
スタック領域は,データ領域とともにRAM上に確保します。
スタックポインタ(SP)はRAMアドレスの最大値を示すように初期設定し,
データ領域は,RAMアドレスの小さい方から配置することを推奨します。
図 3.4-6に,スタック領域の設定例を示します。
図 3.4-6 割込み処理のスタック領域
参考:
スタック領域は,割込み,サブルーチンコール,PUSHW命令などにより,アド
レス値の大きい方から小さい方に向かって使用され,復帰命令(RETI,RET),
POPW命令などにより大きい方に向かってスタック領域を開放します。多重の割
込みやサブルーチンコールによって,使用されるスタック領域のアドレス値が
小さくなったとき,ほかのデータを保持しているデータ領域や汎用レジスタ領
域に決して重なり合わないように配慮してください。
36
第3章 CPU
3.5
リセット
リセットには,以下の四つのリセット要因があります。
・外部リセット
・ソフトウェアリセット
・ウォッチドッグリセット
・パワーオンリセット
■ リセット要因
表 3.5-1 リセット要因
リセット要因
外部リセット
リセット条件
外部リセット端子を"L"レベルにする
スタンバイ制御レジスタのソフトウェアリセットビット
ソフトウェアリセット
(STBC:RST)に"0"を書き込む
ウォッチドッグリセット ウォッチドッグタイマのオーバフロー
パワーオンリセット
電源の投入
○
外部リセット
外部リセットは,外部リセット端子( RST )に"L"レベルを入力することによっ
て,リセットを発生します。リセット端子が"H"レベルになると,外部リセット
は解除されます。
外部リセット端子は,リセット出力端子としても機能します。
○
ソフトウェアリセット
ソフトウェアリセットは,スタンバイ制御レジスタのソフトウェアリセット
ビット(STBC:RST)に"0"を書き込むことによって,4インストラクションサイ
クルのリセットを発生します。
○
ウォッチドッグリセット
ウォッチドッグリセットは,ウォッチドッグタイマの起動後,定められた時
間内にウォッチドッグ制御レジスタ(WDTC)にデータの書込みがないとき,4イ
ンストラクションサイクルのリセットを発生します。
○
パワーオンリセット
パワーオンリセットは,電源投入によってリセットを発生します。
■ リセット要因とメインクロックの発振安定待ち
発振安定待ち時間は,リセットが発生したときの動作モードによって動作が異な
ります。
リセット終了後は,リセット前の動作モード(クロックモードおよびスタンバイ
モード)やリセット要因に関係なく,メインクロックモードの通常動作で動作を開
始します。そのため,メインクロックの発振が停止しているかメインクロックの発
振安定待ち時間中にリセットが発生すると,メインクロックの発振安定待ちリセッ
ト状態となります。
ソフトウェアリセットやウォッチドッグリセットの場合,メインクロックモード
で動作中は,発振安定待ち時間をとりません。
37
第3章 CPU
表 3.5-2に,リセット要因とメインクロックの発振安定待ち時間およびリセット
動作(モードフェッチ)の関係について示します。
表 3.5-2 リセット要因と発振安定待ち時間
リセット要因
動作状態
電源投入時,
ストップモード中
リセット動作とメインクロック発振安定待ち時間
メインクロックの発振安定待ち時間経過後,外部リ
外部リセット*1
セットが解除されていれば,リセット動作を行いま
す。*2
ソフトウェア リセットおよ メインクロック
4ストラクションサイクルのリセットを発生後,リ
びウォッチドッグリセット
モード
セット動作を行います。*3
パワーオンリセット
電源投入後,メインクロックの発振安定待ち時間が
経過してから,リセット動作を行います。*2
*1:メインクロックモード動作中の外部リセットでは,発振安定待ち時間をとりません。外部リセット解
除後にリセット動作を行います。
*2:メインクロックの発振安定待ち時間の間, RST 端子に"L"レベルを出力します。
*3:4インストラクションサイクルの間, RST 端子に"L"レベルを出力します。
38
第3章 CPU
3.5.1
外部リセット端子
外部リセット端子は,"L"レベルの入力によってリセットを発生します。
内部のリセット要因により"L"レベルを出力します。
■ 外部リセット端子のブロックダイヤグラム
リセット出力ありの品種の外部リセット端子( RST )は,ヒステリシス入力と,
プルアップされたNchオープンドレイン出力になっています。
図 3.5-1に,外部リセット端子のブロックダイヤグラムを示します。
図 3.5-1 外部リセット端子のブロックダイヤグラム
■ 外部リセット端子の機能
外部リセット端子( RST )は"L"レベルの入力によって内部リセット信号を発生
します。
また,内部のリセット要因およびリセットによる発振安定待ち時間によって"L"
レベルを出力します。内部リセット要因には,ソフトウェアリセット,ウォッチドッ
グリセットおよびパワーオンリセットがあります。
<注意事項>
・外部からのリセット入力は,内部のクロックと無関係に非同期で受け付けられます。
また,内部回路の初期化には,クロックが必要です。
・外部リセット端子( RST )に規格値未満のリセットパルスが入力された場合,誤動作を起こす
ことがあります。外部リセット端子( RST )に規格値未満のリセットパルスが入力されないよ
うにしてください。
39
第3章 CPU
3.5.2
リセット動作
CPUはリセットが解除されると,モード端子の設定によってモードデータとリセッ
トベクトルを内部ROMから読み出します(モードフェッチ)
。電源投入時,ストップモー
ドからのリセットによる復帰では,発振安定待ち時間が経過してからモードフェッチ
を行います。リセットが発生した場合,RAMの内容は保証できません。
■ リセット動作の概要
図 3.5-2 リセット動作フロー
40
第3章 CPU
■ モード端子
MB89051シリーズは,シングルチップモード専用です。モード端子(MOD0,MOD1,
MOD2)は,必ず"VSS"としてください。内部ROMをモードデータとリセットベクトル
の読出し先として選択します。モード端子はリセット動作終了後も設定を変更しな
いでください。
■ モードフェッチ
リセットが解除されると,内部ROMから,モードデータとリセットベクトルを読
み込みます。
○
モードデータ(アドレス:FFFDH)
モードデータには,必ずシングルチップモード(00H)を設定しておいてくだ
さい。
○
リセットベクトル(アドレス:上位FFFEH/下位FFFFH)
リセット動作終了後の実行開始アドレスを書き込んでおきます。この内容の
アドレスから命令を実行します。
■ 発振安定待ちリセット状態
電源投入時のリセットおよびストップモード中の外部リセットに対するリセッ
ト動作は,発振安定待ち時間が経過してからとなります。このとき,外部リセット
入力が解除されていなければ,外部リセット解除後にリセット動作を行います。
発振安定待ち時間が必要なため,リセット時には外部クロックの入力が必要です。
メインクロックの発振安定待ち時間は,タイムベースタイマによって作られます。
■ レギュレータ復帰時間
MB89051シリーズは,内部3ボルト動作にするため降圧回路を搭載しています。降
圧回路は,ストップモード時最小消費電力になります。レギュレータ復帰時間は,
降圧回路が通常動作を再開するまでの時間で20μs以上必要です。
■ レギュレータ安定時間
パワーオンリセット時は,発振安定待ち時間に加えてレギュレータの安定時間が
必要となります。電源端子に供給する電圧は,レギュレータ安定時間内に最小動作
電圧に達する必要があります。レギュレータ安定時間は,発振クロックにより
219/FCH 以上必要です。
(FCH:メインクロック発振)
■ RAM内容のリセットによる影響
外部リセットは内部のクロックで同期化されず,直接内部のリセットとなります。
そのため,リセット前後でRAMの内容が変わる場合がありますので,必ずRAMを初期
化して使用してください。
41
第3章 CPU
3.5.3
リセットによる各端子の状態
リセットによって各端子の状態は初期化されます。
■ リセット中の端子の状態
リセット要因が発生すると,I/O端子(リソース端子)は一部を除きすべてハイ
インピーダンスになり,モードデータの読出し先は内部ROMになります。
■ モードデータ読出し後の端子の状態
モードデータ読込み直後のI/O端子状態は,一部を除きすべてハイインピーダン
スのままです。(プルアップオプション設定レジスタでプルアップ抵抗ありを選択
している端子は"H"レベルになります)
<注意事項>
リセット要因が発生したときハイインピーダンスとなる端子は,その端子に接続した機器が誤
動作しないように配慮してください。
42
第3章 CPU
3.6
クロック
外部に振動子を接続することによって,クロックを発生します。クロックは,クロッ
ク制御部に入力された後,PLL回路により逓倍クロックにされ,CPU動作クロックと周
辺回路動作クロックに分けて供給されます。この動作クロックは,低消費電力モード
の動作モードに対応して,供給が制御されます。
■ クロック供給マップ
クロックの発振とCPUや周辺回路(周辺機能)に対する供給は,クロック制御部
によって制御されます。このため,CPUや周辺回路の動作クロックは,スタンバイ
モード(スリープ/ストップ)の影響を受けます。
各周辺機能へは周辺回路用のクロックで動作するフリーランカウンタの分周出
力が供給されます。ただし,クロック出力のCLK1,CLK2出力や,タイムベースタイ
マの分周出力が供給される周辺機能はギア機能の影響を受けません。
USBファンクション部およびHubブロック部は,PLL回路部により8逓倍(48MHz)
とその4分周クロック(12MHz)で動作します。
図 3.6-1に,クロック供給マップを示します。
43
第3章 CPU
図 3.6-1 クロック供給マップ
44
第3章 CPU
3.6.1
クロック発生部
メインクロック発振の許可と停止はストップモードによって制御されます。
■ クロック発生部
水晶振動子の場合,図 3.6-2のように接続してください。
図 3.6-2 水晶振動子の接続例
45
第3章 CPU
3.6.2
クロック制御部
クロック制御部は,以下の六つのブロックで構成されています。
・メインクロック発振回路
・システムクロックセレクタ
・クロック制御回路
・発振安定待ち時間セレクタ
・システムクロック制御レジスタ(SYCC)
・スタンバイ制御レジスタ(STBC)
■ クロック制御部のブロックダイヤグラム
図 3.6-3に,クロック制御部のブロックダイヤグラムを示します。
図 3.6-3 クロック制御部のブロックダイヤグラム
46
第3章 CPU
○
メインクロック発振回路
メインクロックの発振回路です。メインストップモードでは発振を停止しま
す。
○
クロック制御回路
CPUと各周辺回路の動作クロックの供給を通常動作(RUN)と各スタンバイモー
ド(スリープ,ストップ)に対応して制御します。
また,発振安定待ち時間セレクタのクロック供給停止信号が解除されるまで,
CPUへのクロックの供給を停止します。
○
発振安定待ち時間セレクタ
タイムベースタイマで作られる3種類のメインクロック用発振安定待ち時間
から,スタンバイモードおよびリセットに対応して1種類選択し,CPUへのクロッ
ク供給停止信号として出力します。
○
システムクロック制御レジスタ(SYCC)
メインクロック速度の選択,メインクロックの発振安定待ち時間の選択を行
います。
○
スタンバイ制御レジスタ(STBC)
通常動作(RUN)からスタンバイモードへの移行,ストップモード時の端子状
態の設定,およびソフトウェアリセットを行います。
○
システムクロックセレクタ
メインクロック発振を分周した4種類のクロックから1種類を選択してクロッ
ク制御回路へ供給します。
47
第3章 CPU
3.6.3
システムクロック制御レジスタ(SYCC
システムクロック制御レジスタ(SYCC)
SYCC)
システムクロック制御レジスタ(SYCC)は,メインクロック速度の選択および発振
安定待ち時間の選択などを行うレジスタです。
■ システムクロック制御レジスタ(SYCC)の構成
図 3.6-4 システムクロック制御レジスタ(SYCC)の構成
48
第3章 CPU
表 3.6-1 システムクロック制御レジスタ(SYCC)の各ビットの機能説明
ビット名
bit7
bit6 未使用ビット
bit5
機能
・リード時の値は不定です。
・ライトは動作に影響を与えません。
・メインクロックの発振安定待ち時間を選択するビットです。
WT1,WT0:
bit4
・メインストップモードから外部割込みによって通常動作へ復帰すると
発振安定待ち時間
bit3
きは,このビットで選択される発振安定待ち時間をとります。
選択ビット
・これらのビットの初期値は,WT1=1,WT0=1となります。
bit2 未使用ビット
<注意> 常に"1"を設定してください。
・クロック速度を選択するビットです。
CS1,CS0:
・CPUと各周辺機能に対する動作クロックの速度を4種類設定できます
bit1
メインクロック速
bit0
(ギア機能)。ただし,タイムベースタイマの動作クロックは,これ
度選択ビット
らのビットの影響を受けません。
■ インストラクションサイクル(tinst)
インストラクションサイクル(最小命令実行時間)は,SYCCレジスタのメインク
ロック選択ビット(CS1,CS0)により,メインクロックの4分周,8分周,16分周,
64分周から選択できます。
最高速度時(SYCC:CS1,CS0=11B)のインストラクションサイクルは,メインク
ロック発振(FCH)を12MHzとした場合,4/FCH=約0.33μsとなります。
USB回路の機能を有効にする前に,このインストラクションサイクルは必ず4分周
に設定してください。
49
第3章 CPU
3.6.4
クロックモード
メインクロックの速度は,その原発振を分周して作られる4種類のクロックを選択
することにより切替えられます。
■ クロックモードの動作状態
表 3.6-2 クロックモードの動作状態
クロック
モード
メインクロック
速度
SYCCレジスタ
(CS1,CS0)
メイン
クロック (1.1)
モード
高速
(1.0)
(0.1)
(0.0)
低速
スタンバイ
モード
RUN
スリープ
ストップ
RUN
スリープ
ストップ
RUN
スリープ
ストップ
RUN
スリープ
ストップ
各部動作クロック
クロック
CPU
発振
停止
発振
停止
発振
停止
発振
停止
FCH/4
停止
FCH/8
停止
FCH/16
停止
FCH/64
停止
スタンバイモードの
解除要因
(リセット以外)
タイベー
スタイマ
各周辺
FCH/2
FCH/4
各種割込み要求
停止
停止
外部割込み,USB割込み
FCH/2
FCH/8
各種割込み要求
停止
停止
外部割込み,USB割込み
FCH/2
FCH/16
各種割込み要求
停止
停止
外部割込み,USB割込み
FCH/2
FCH/64
各種割込み要求
停止
停止
外部割込み,USB割込み
FCH:メインクロック発振
各クロックモードではそれぞれに対応したスタンバイモードに移行することが
できます。スタンバイモードについては,
「3.5 リセット」を参照してください。
■ メインクロックモードの動作
スタンバイモードを指定すると,スリープモードもしくはストップモードに移行
することができます。
いずれの種類のリセットが発生しても,常にメインRUNモードから動作を開始し
ます(各動作モードのリセットによる解除)
。
50
第3章 CPU
3.6.5
発振安定待ち時間
電源投入時,メインストップモード時,メインクロックが停止している状態から,
メインRUNモードで動作させる場合は,メインクロック発振安定待ち時間をとる必要
があります。
■ 発振安定待ち時間
水晶などの振動子は,発振を開始してから固有の振動数(発振周波数)で安定し
て発振するまでに,一般的に数ミリ秒から数十ミリ秒の時間が必要です。
このため,発振開始直後はCPUの動作を禁止し,発振安定待ち時間が経過して十
分発振が安定した時点でCPUにクロックを供給するようにします。
発振器(クロック発生部)に接続する振動子の種類(水晶など)によって発振が
安定するまでの時間が異なるため,使用する振動子に適切な発振安定待ち時間を選
択する必要があります。
図 3.6-5に,発振開始直後の発振器の動作を示します。
図 3.6-5 発振開始直後の発振器の動作
■ メインクロックの発振安定待ち時間
メインクロックの発振が停止している状態から,メインクロックモードで動作を
開始する場合,メインクロックの発振安定待ち時間をとる必要があります。
メインクロックの発振安定待ち時間は,タイムベースタイマのカウンタがクリア
された状態からカウントアップを行い,指定されたビットがオーバフローするまで
の時間です。
○
動作中の発振安定待ち時間
ストップモードから外部割込みによってメインRUNモードへ復帰するときの
発振安定待ち時間は,システムクロック制御レジスタの発振安定待ち時間選択
ビット(SYCC:WT1,WT0)によって3種類の中から1種類を選択できます。
○
リセット時の発振安定待ち時間
リセット時の発振安定待ち時間(WT1,WT0の初期値)は固定です。
パワーオンリセットおよび外部リセットによるストップモードの解除のとき
に発振安定待ち時間をとります。
51
第3章 CPU
表 3.6-3 メインクロックモードの動作開始条件と発振安定待ち時間
メインクロックモード動作
開始条件
電源投入時
ストップモードの解除
外部リセット
外部割込み
SYCC:WT1=1 ,
SYCC:WT1,WT0*1
WT0=1*1
*1:システムクロック制御レジスタの発振安定待ち時間選択ビット
発振安定待ち時間の選択
52
USB割込み
第3章 CPU
3.7
スタンバイモード(低消費電力)
スタンバイモードには,スリープモード,ストップモードがあります。
スタンバイモードへは,スタンバイ制御レジスタ(STBC)の設定によって移行しま
す。
メインクロックモードでは,スリープ/ストップの二つのモードへ移行できます。
スタンバイモードによって,CPUや周辺機能の動作を停止させることにより,消費
電力を低減することができます。
スタンバイモードとクロックモードの関係およびスタンバイモード時の各部の動
作状態について説明します。
■ スタンバイモード
スタンバイモードでは,クロック制御部によるCPUへのクロックの供給停止(ス
リープモード)やまたは原発振そのものの停止(ストップモード)によって消費電
力を低減します。
○
スリープモード
スリープモードはCPUとウォッチドッグタイマの動作を停止させるモードで,
周辺機能はメインクロックで動作します。
○
ストップモード
ストップモードは,CPUと周辺機能の動作を停止させるモードで,外部割込み,
USB割込みを除く全機能が停止します。
53
第3章 CPU
3.7.1
スタンバイモード時の動作状態
スタンバイモードにおけるCPUと周辺機能の動作状態について説明します。
■ スタンバイモード時の動作状態
表 3.7-1 スタンバイモード時のCPUと周辺機能の動作状態
動作モード
機能
メインクロック
命令
CPU
ROM
RAM
I/Oポート
タイムベースタイマ
ウォッチドックタイマ
8ビットPWMタイマ1,2
周辺機能
UART/SIO
8ビットシリアル入出力
外部割込み
USBハブ,ファンクション
端子
解除方法
○
RUN
動作
動作
動作
動作
動作
動作
動作
動作
動作
動作
動作
動作
動作
リセット・
各種割込み
メインクロックモード
スリープ
ストップ(SPL=0)
動作
停止
停止
停止
保持
保持
保持
保持
保持
保持
動作
停止
停止
停止
動作
停止
動作
停止
動作
停止
動作
動作
動作
停止
保持
保持
リセット・
リセット・
各種割込み
各種割込み
ストップ(SPL=1)
停止
停止
保持
保持
保持
停止
停止
停止
停止
停止
動作
停止
Hi-z
リセット・
各種割込み
スタンバイモード時の端子の状態
ほとんどのI/O端子の状態は,クロックモードには関係なく,スタンバイ制御
レジスタの端子状態指定ビット(STBC:SPL)によって,ストップモードへ移行
する直前の状態の保持もしくはハイインピーダンスにできます。
54
第3章 CPU
3.7.2
スリープモード
スリープモードの動作について説明します。
■ スリープモードの動作
○
スリープモードへの移行
スリープモードはCPUの動作クロックを停止させるモードです。CPUはスリー
プモード移行直前のレジスタとRAMの内容を保持して停止しますが,ウォッチ
ドッグタイマを除く周辺機能は動作を続けます。
スタンバイ制御レジスタのスリープビット(STBC:SLP)に"1"を書き込むこと
により,スリープモードに移行します。SLPビットに"1"を書き込んだときに,
割込み要求が発生していると書込みは無視され,スリープモードへ移行せずに
命令の実行を続けます(割込み処理後にも,スリープモードへの移行はしませ
ん)
。
○
スリープモードの解除
スリープモードは,リセットおよび周辺機能からの割込みによって解除され
ます。
スリープモード中のリセットでは発振安定待ち時間をとりません。
端子の状態はリセット動作によって初期化されます。
スリープモード中に周辺機能もしくは外部割込み回路から割込みレベルが
"11"より強い割込み要求が発生すると,CPUの割込み許可フラグ(CCR:I)や割
込みレベルビット(CCR:IL1,0)に関係なくスリープモードから解除されます。
解除後は通常の割込み動作を行い,割込みが受け付けられるときは割込み処
理を実行し,受け付けられないときは,スリープモードに移行する直前に実行
した命令の次の命令から処理を実行します。
55
第3章 CPU
3.7.3
ストップモード
ストップモードの動作について説明します。
■ ストップモードの動作
○
ストップモードへの移行
ストップモードは原発振を停止させるモードです。ストップモード移行直前
のレジスタおよびRAMの内容を保持して,ほとんどの機能が停止します。
メインクロックモード時は,メインクロックの発振は停止しますが,周辺機
能およびCPUは,外部割込み回路,USB割込み回路を除いて動作を停止します。
したがって,最も少ない消費電力でデータの保持をすることができます。
スタンバイ制御レジスタのストップビット(STBC:STP)に"1"を書き込むこと
により,ストップモードに移行します。このとき,端子状態指定ビット
(STBC:SPL)が"0"の場合,外部端子の状態を保持し,"1"の場合,外部端子の
状態をハイインピーダンス(プルアップ設定レジスタでプルアップ抵抗ありを
選択している端子は"H"レベル)にします。
STPビットに"1"を書き込んだときに,割込み要求が発生していると書込みは
無視され,ストップモードへ移行せずに命令の実行を続けます(割込み処理後
にも,ストップモードへの移行はしません)
。
ストップモードへ移行するときは,必要に応じてタイムベースタイマの割込
み要求出力を禁止(TBTC:TBIE=0)してください。
○
ストップモードの解除
ストップモードはリセットもしくは外部割込み,USB割込みによって解除され
ます。
ストップモード中にリセットが発生すると,メインクロックの発振安定待ち
時間をとってから,リセット動作を行います。
端子の状態はリセットによって初期化されます。
ストップモード中に外部割込み回路から割込みレベルが"11"より強い割込み
要求が発生すると,CPUの割込み許可フラグ(CCR:I)や割込みレベルビット
(CCR:IL1,0)に関係なく,ストップモードから解除されます。ストップモー
ド中は,周辺機能が停止しているため,外部割込み,USB割込み以外の割込み要
求は発生しません。
解除後は,発振安定待ち時間を経過した後,通常の割込み動作を行い,割込
みが受け付けられるときは割込み処理を実行し,受け付けられないときは,ス
トップモードに移行する直前に実行した命令の次の命令から処理を実行します。
ストップモードが外部割込みによって解除されると,一部の周辺機能は動作
を途中から再開します。このため,インターバルタイマ機能の初回のインター
バル時間などが不定となります。各周辺機能はストップモードからの復帰後,
初期化するようにしてください。
参考:
ストップモードの割込みによる解除は,外部割込み回路,USB割込み回路の割
込み要求のみです。
56
第3章 CPU
3.7.4
スタンバイ制御レジスタ(STBC
スタンバイ制御レジスタ(STBC)
STBC)
スタンバイ制御レジスタ(STBC)は,スリープモード / ストップモードへの移行,
ストップモード中の端子状態の設定およびソフトウェアリセットを行うレジスタで
す。
■ スタンバイ制御レジスタ(STBC)
図 3.7-1 スタンバイ制御レジスタ(STBC)
57
第3章 CPU
表 3.7-2 スタンバイ制御レジスタ(STBC)の各ビットの機能説明
ビット名
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
58
機能
・ストップモードへの移行を指定するビットです。
・このビットに"1"を書き込むことにより,ストップモードに移行します。
STP:
ストップビット ・"0"を書き込んでも動作に影響を与えません。
・このビットをリードした場合は,常に"0"が読み出されます。
・スリープモードへの移行を指定するビットです。
SLP:
・このビットに"1"を書き込むことにより,スリープモードに移行します。
スリープビット ・"0"を書き込んでも動作に影響を与えません。
・このビットをリードした場合は,常に"0"が読み出されます。
・ストップモード時の外部端子の状態を指定するビットです。
・このビットに"0"を書き込むと,ストップモード移行時に外部端子の状態(レ
SPL:
ベル)を保持します。
端 子 状 態 指 定 ・"1"を書き込むと,ストップモード移行時に外部端子はハイインピーダンス
ビット
になります(プルアップ設定レジスタでプルアップ抵抗ありを選択している
端子は"H"レベルになります)。
・リセットで"0"になります。
・ソフトウェアリセットを指定するビットです。
RST:
・このビットに"0"を書き込むことにより,4インストラクションサイクルの内
ソフトウェアリ 部リセット要因を発生します。
セットビット
・"1"を書き込んでも動作に影響を与えません。
・このビットをリードした場合は,常に"1"が読み出されます。
未使用ビット
・常に"1"を設定してください。
・リード時の値は不定です。
・ライトは動作に影響を与えません。
第3章 CPU
3.7.5
状態遷移図
図 3.7-2に,状態遷移図を示します。
また,各状態への移行とリセット・解除について示します。
■ 状態遷移図
図 3.7-2 状態遷移図
○
通常状態(RUN)への移行とリセット
表 3.7-3 メインクロックモードRUN状態への移行とリセット
状態遷移
電源投入後,通常状態
(RUN)へ移行
RUN状態でのリセット
遷移条件(図 3.7-2)
[1] メインクロック発振安定待ち時間終了
(タイムベースタイマ出力)
[2] リセットの入力を解除
[3] 外部リセット,ソフトウェアリセット,
ウォッチドッグリセット
59
第3章 CPU
○
スタンバイモードへの移行と解除
表 3.7-4 スタンバイモードへの移行と解除
状態遷移
スリープモードへの移行
スリープモードの解除
遷移条件(図 3.7-2)
[1] STBC:SLP=1
[2] 割込み(各種)
[3] 外部リセット
ストップモードへの移行
[4] STBC:STP=1
ストップモードの解除
[5] 外部割込み,USB割込み
[6] メインクロック発振安定待ち時間終了
(タイムベースタイマ出力)
[7] 外部リセット
[8] 外部リセット(発振安定待ち中)
STBC: スタンバイ制御レジスタ
60
第3章 CPU
3.7.6
スタンバイモード使用上の注意
スタンバイ制御レジスタ(STBC)にスタンバイモードを設定しても,周辺機能から
割込み要求が発生しているとスタンバイモードに移行しません。また,割込みによっ
てスタンバイモードから通常動作状態へ復帰する場合は,割込み要求が受け付けられ
るかどうかによって復帰後の動作が異なります。
■ スタンバイモードへの移行と割込み
周辺機能からCPUに対して,割込み優先度が"11"より強い割込み要求が発生して
いると,スタンバイ制御レジスタのストップビット(STBC:STP)
,スリープビット
(SLP)にそれぞれ"1"を書き込んでも無視されるため,各スタンバイモードへは移
行しません(割込み処理後にも,スタンバイモードへの移行はしません)。
これは,CPUが割込みを受け付けるかどうかには関係しません。
CPUが割込み処理中であっても,その割込み要求フラグビットがクリアされてお
り,ほかに割込み要求がなければ,スタンバイモードへ移行することができます。
■ スタンバイモードの割込みによる解除
スリープまたはストップモード中に,周辺機能などから割込み優先度が"11"より
強い割込み要求が発生すると,スタンバイモードは解除されます。これはCPUが割
込みを受け付けるかどうかには関係しません。
解除後は,通常の割込み動作として,割込み要求に対応する割込みレベル設定レ
ジスタ(ILR1∼ILR3)の優先度がコンディションコードレジスタの割込みレベル
ビット(CCR:IL1,0)より強く,割込み許可フラグが許可(CCR:I=1)されている
場合は,割込み処理ルーチンへ分岐し,割込みが受け付けられない場合は,スタン
バイモードを起動した命令の次の命令から動作を再開します。
復帰直後に割込み処理ルーチンへ分岐させない場合は,スタンバイモード設定の
前に割込み禁止をするなどの対策が必要です。
■ スタンバイモード設定時の注意
スタンバイ制御レジスタ(STBC)によるスタンバイモードの設定は,表 3.7-5
に従ってください。これらのビットに同時に"1"を書き込んだ場合の優先は,ストッ
プモード,スリープモードの順になりますが,いずれか一つのビットだけに"1"を
設定するようにしてください。
表 3.7-5 スタンバイ制御レジスタ(STBC)による低消費電力モードの設定
STBCレジスタ
STP(bit7)
SLP(bit6)
0
0
通常
0
1
スリープ
1
0
ストップ
モード
61
第3章 CPU
■ 発振安定待ち時間
ストップモード中は,原発振用の発振器が停止しているため,発振器が動作後,
発振安定待ち時間をとる必要があります。
発振安定待ち時間としては,タイムベースタイマで作られるメインクロックの発
振安定待ち時間(3種類から1種類選択)をとります。
メインクロックモードでは,タイムベースタイマのインターバル時間の選択が,
発振安定待ち時間より短い場合,発振安定待ち時間中にインターバルタイマ割込み
要求が発生します。メインクロックモードでストップモードへ移行する前に,必要
に応じてタイムベースタイマの割込み要求出力を禁止(TBTC:TBIE=0)してくださ
い。
62
第3章 CPU
3.8
メモリアクセスモード
メモリアクセスに関連する動作モードはシングルチップモードのみです。
■ シングルチップモード
シングルチップモードは,内部のRAMとROMのみを使用します。したがって,CPU
は内部のI/O領域,RAM領域およびROM領域域に対するアクセス(内部アクセス)以
外できません。
■ モード端子(MOD0, MOD1, MOD2)
モード端子(MOD0, MOD1, MOD2)は必ず"VSS"に設定してください。
リセット時に内部ROMからモードデータとリセットベクトルを読出します。
なおモード端子は,リセット動作終了後(動作中)も設定を変更しないでくださ
い。表 3.8-1に,モード端子の設定を示します。
表 3.8-1 モード端子の設定
端子の状態
MOD0 MOD1 MOD2
VSS
VSS
VSS
上記以外の組合せ
内容
内部ROMからモードデータとリセットベクトルを読み出します。
設定禁止
■ モードデータ
内部ROMのモードデータは必ず00Hに設定してシングルチップモードを選択して
ください。
図 3.8-1に,モードデータの構成を示します。
図 3.8-1 モードデータの構成
63
第3章 CPU
■ メモリアクセスモード選択動作
シングルチップモード以外の選択動作はできません。
表 3.8-2に,モード端子とモードデータを,図 3.8-2に,メモリアクセス選択動
作を示します。
表 3.8-2 モード端子とモードデータ
メモリアクセスモード
シングルチップモード
その他のモード
モード端子(MOD0,MOD1,MOD2)
VSS, VSS, VSS
設定禁止
図 3.8-2 メモリアクセス選択動作
64
モードデータ
00H
設定禁止
第4章
I/Oポート
I/Oポート
この章では,I/Oポートの機能と動作について説明します。
4.1 I/Oポートの概要
4.2 ポート0
4.3 ポート1
4.4 ポート2
4.5 ポート3
4.6 ポート4
4.7 ポート5
4.8 I/Oポートのプログラム例
65
第4章 I/Oポート
4.1
I/Oポートの概要
I/Oポートの概要
I/Oポートは,5ポート(37本)の汎用入出力ポートとして使用できます。
ポ-ト3はリソース(各種周辺機能の入出力端子)と兼用になっています。
■ I/Oポートの機能
I/Oポートは,ポートデータレジスタ(PDR)によって,CPUからのデータをI/O
端子に出力したり,I/O端子に入力された信号をCPUに取り込んだりする機能があり
ます。また,ポートによってはポート方向レジスタ(DDR)によって,I/O端子の入
出力の方向をビット単位で任意に設定することができます。
以下に各ポートの機能と,兼用されるリソースを示します。
ポート0:汎用入出力ポート
ポート1:汎用入出力ポート
ポート2:汎用入出力ポート
ポート3:汎用入出力ポート/リソース(外部割込み,SIO1,SIO2)兼用
ポート4:汎用入出力ポート/リソース(UART/SIO,PWM,パワー制御)兼用
ポート5:汎用入出力ポート
表 4.1-1に,各ポートの機能一覧を,表 4.1-2に,各ポートのレジスタ一覧をそ
れぞれ示します。
表 4.1-1 各ポートの機能一覧
ポート名
端子名
ポート0 P00∼P07
ポート1 P10∼P17
ポート2 P20∼P27
ポート3
ポート4
ポート5
入力形式 出力形式
CMOS
機能
汎用入出力ポート
汎用入出力ポート
汎用入出力ポート
汎用入出力ポート
CMOS
CMOS
P31/INT1 ∼ リソース プッシュ 外部割込み
はヒステ プル
P37/INT7
SIO1,SIO2
リシス
汎用入出力ポート
P40/POW5∼
CMOS*1,*2
UART/SIO
P47/PWM2
PWM
CMOS*2
P53,P54
CMOS
プッシュ 汎用入出力ポート
プル
*1:P44,P46のリソースはヒステリシス入力
*2:P46,P47,P53,P54はNchオープンドレイン出力
66
Bit7
P07
P17
P27
P37
Bit6
P06
P16
P26
P36
Bit5
P05
P15
P25
P35
Bit4
P04
P14
P24
P34
Bit3
P03
P13
P23
P33
Bit2
P02
P12
P22
P32
Bit1
P01
P11
P21
P31
Bit0
P00
P10
P20-
INT7
INT6
INT5
INT4
INT3
INT2
INT1
-
SI2
SO2
SCK2
SCK1
SO1
SI1
-
-
P47
PWM2
P46
UI
PWM1
P45
UO
-
P44
UCK
-
P43
POW4
-
P42
POW3
-
P41
POW2
-
P40
POW5
-
-
-
-
P54
P53
-
-
-
第4章 I/Oポート
表 4.1-2 各ポートのレジスタ一覧
レジスタ名
ポート0データレジスタ
(PDR0)
ポート0方向レジスタ
(DDR0)*1
ポート1データレジスタ
(PDR1)
ポート1方向レジスタ
(DDR1)*1
ポート2データレジスタ
(PDR2)
ポート2方向レジスタ
(DDR2)
ポート3データレジスタ
(PDR3)
ポート3方向レジスタ
(DDR3)
ポート4データレジスタ
(PDR4)
ポート4方向レジスタ
(DDR4)
ポート5データレジスタ
(PDR5)
R/W :リード・ライト可能
W :ライト オンリー
X :不定
*1 :DDR0,DDR1はビット操作命令が使用できません。
リードライト
R/W
W
R/W
W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス
0000H
0001H
0002H
0003H
0004H
0006H
000CH
000DH
0010H
0011H
0012H
初期値
XXXXXXXXB
00000000B
XXXXXXXXB
00000000B
XXXXXXXXB
00000000B
XXXXXXXXB
00000000B
XXXXXXXXB
00000000B
XXX11XXXB
67
第4章 I/Oポート
4.2
ポート0
ポート0
ポート0は,汎用入出力ポートです。
ポート0の構成,端子,端子のブロックダイヤグラム,関連するレジスタを示し
ます。
■ ポート0の構成
ポート0は,以下の三つの要素から構成されます。
○
ポート0
入出力端子(P00∼P07)
ポート0データレジスタ(PDR0)
ポート0方向レジスタ(DDR0)
■ ポート0の端子
ポート0には,8本のCMOS入出力端子があります。
表 4.2-1に,ポート0の端子を示します。
表 4.2-1 ポート0の端子
ポート名
端子名
ポート0
P00
P01
P02
P03
P04
P05
P06
P07
回路形式については「1.7
68
機能
P00
P01
P02
P03
P04
P05
P06
P07
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
入出力形式
入力
出力
CMOS
CMOS
端子機能説明」を参照してください。
回路
形式
B
第4章 I/Oポート
■ ポート0のブロックダイヤグラム
図 4.2-1 ポート0の端子のブロックダイヤグラム
■ ポート0のレジスタ PDR0,DDR0
ポート0に関連するレジスタには,PDR0,DDR0の二つがあります。
それぞれのレジスタを構成するビットは,ポート0の端子に1対1で対応していま
す。
表 4.2-2に,ポート0のレジスタと端子の対応を示します。
表 4.2-2 ポート0のレジスタと端子の対応
ポート名
ポート0
PDR0,DDR0
対応する端子
関連するレジスタのビットと対応する端子
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
P07
P06
P05
P04
P03
P02
Bit1
P01
Bit0
P00
69
第4章 I/Oポート
4.2.1
ポート0
ポート0のレジスタ(
のレジスタ(PDR0,
PDR0,DDR0)
DDR0)
ポート0に関するレジスタについて説明します。
■ ポート0のレジスタの機能
○
ポート0データレジスタ(PDR0)
PDR0レジスタは,端子の状態を示します。このため,出力ポートに設定した
端子は出力ラッチと同じ値("0"または"1")が読み出せますが,入力ポート時
は出力ラッチの値は読み出せません。
参考:
ビット操作命令(SETB, CLRB)時は,端子ではなく出力ラッチの値を読み出
すため,操作するビット以外の出力ラッチの値は変化しません。
○
ポート0方向レジスタ(DDR0)
DDR0レジスタは,ビットごとの端子の入出力方向を設定します。
ポートに対応するビットを"1"にすると出力ポートになり,"0"にすると入力ポー
トになります。
表 4.2-3に,ポート0のレジスタの機能を示します。
表 4.2-3 ポート0のレジスタの機能
レジスタ名
データ
0
端子状態が
"L"レベル
1
端子状態が
"H"レベル
ポート0データ
レジスタ(PDR0)
ポート0方向
レジスタ(DDR0)
リード時
0
1
入力ポート
状態
出力ポート
状態
R/W :リード ・ライト可能
X
:不定
W
:ライトオンリー
70
ライト時
出力ラッチに"0"を設定し,
出力ポート時は端子に"L"
レベルを出力する
出力ラッチに"1"を設定し,
出力ポート時は端子に"H"
レベルを出力する
出力トランジスタの動作を
禁止し,入力端子にする
出力トランジスタの動作を
許可し,出力端子にする
リード
ライト
アドレス
初期値
R/W
0000H
XXXXXXXXB
W
0001H
00000000B
第4章 I/Oポート
4.2.2
ポート0
ポート0の動作説明
ポート0の動作を説明します。
■ ポート0の動作
○
出力ポート時の動作
対応するDDR0レジスタのビットを"1"にすると,出力ポートになります。
出力ポート時は出力トランジスタの動作が許可され,出力ラッチのデータが
端子に出力されます。
PDR0レジスタにデータを書き込むと,出力ラッチにデータが保持され,その
まま端子に出力されます。
PDR0レジスタを読み出すと,端子の値が読み出せます。
○
入力ポート時の動作
対応するDDR0レジスタのビットを"0"にすると,入力ポートになります。
入力ポート時は出力トランジスタが"OFF"となり,端子はハイインピーダンスに
なります。
PDR0レジスタにデータを書き込むと,出力ラッチにデータが保持されますが,
端子には出力されません。
PDR0レジスタを読み出すと,端子の値が読み出せます。
○
リセット時の動作
CPUがリセットされると,DDR0レジスタの値は"0"に初期化されます。こ
のため,出力トランジスタは"OFF"(入力ポート)となり,端子はハイイ
ンピーダンスになります。
PDR0レジスタは,リセットでは初期化されません。このため,出力ポー
トとして使用する場合,PDR0レジスタに出力データをセットしてから,
対応するDDR0レジスタを出力に設定する必要があります。
○
ストップモードの動作
ストップモードに移行した時点で,スタンバイ制御レジスタの端子状態指定
ビット(STBC:SPL)が"1"にセットされていると,端子はハイインピーダンスに
なります。これは,DDR0レジスタの値に関係なく,強制的に出力トランジスタ
が"OFF"となるためです。なお,入力開放によるリークを防ぐため,入力は固定
してあります。
表 4.2-4に,ポート0の端子状態を示します。
表 4.2-4 ポート0の端子状態
端子名
通常動作
スリープ
ストップ(SPL=0)
ストップ(SPL=1)
リセット時
P00∼P07
汎用入出力ポート
Hi-z
Hi-z
SPL :スタンバイ制御レジスタの端子状態指定ビット(STBC:SPL)
Hi-z:ハイインピーダンス
71
第4章 I/Oポート
参考:
プルアップオプション設定レジスタでプルアップ抵抗ありを選択した場合,
ストップ(SPL=1)における端子の状態は,ハイインピーダンスではなく"H"レ
ベル(プルアップ状態)になります。ただし,リセット中のプルアップは無効
となり,Hi-zとなります。
72
第4章 I/Oポート
4.3
ポート1
ポート1
ポート1は,入力端子兼用の汎用入出力ポートです。
ポート1の構成,端子,端子のブロックダイヤグラム,関連するレジスタを示しま
す。
■ ポート1の構成
ポート1は,以下の三つの要素から構成されます。
汎用入出力端子(P10∼P17)
ポート1データレジスタ(PDR1)
ポート1方向レジスタ(DDR1)
■ ポート1の端子
ポート1には,8本のCMOS入出力端子があります。
表 4.3-1に,ポート1の端子を示します。
表 4.3-1 ポート1の端子
ポート名
端子名
ポート1
P10
P11
P12
P13
P14
P15
P16
P17
回路形式については「1.7
機能
P10
P11
P12
P13
P14
P15
P16
P17
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
入出力形式
入力
出力
CMOS
CMOS
回路形式
B
端子機能説明」を参照してください。
73
第4章 I/Oポート
■ ポート1のブロックダイヤグラム
図 4.3-1 ポート1の端子のブロックダイヤグラム
■ ポート1のレジスタ
ポート1に関連するレジスタには,PDR1,DDR1の二つがあります。
それぞれのレジスタを構成するビットは,ポート1の端子に1対1で対応していま
す。
表 4.3-2に,ポート1のレジスタと端子の対応を示します。
表 4.3-2 ポート1のレジスタと端子の対応
ポート名
ポート1
74
PDR1,DDR1
対応する端子
関連するレジスタのビットと対応する端子
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
P17
P16
P15
P14
P13
P12
Bit1
P11
Bit0
P10
第4章 I/Oポート
4.3.1
ポート1
ポート1のレジスタ(
のレジスタ(PDR1,
PDR1,DDR1)
DDR1)
ポート1に関するレジスタについて説明します。
■ ポート1のレジスタの機能
○
ポート1データレジスタ(PDR1)
PDR1レジスタは,端子の状態を示します。このため,出力ポートに設定した
端子は出力ラッチと同じ値("0"または"1")が読み出せますが,入力ポート時
は出力ラッチの値は読み出せません。
参考:
ビット操作命令(SETB,CLRB)時は,端子ではなく出力ラッチの値を読み出
すため,操作するビット以外の出力ラッチの値は変化しません。
○
ポート1方向レジスタ(DDR1)
DDR1レジスタは,ビットごとの端子の入出力方向を設定します。
ポートに対応するビットを"1"にすると出力ポートになり,"0"にすると入力
ポートになります。
表 4.3-3にポート1のレジスタの機能を示します。
表 4.3-3 ポート1のレジスタの機能
レジスタ名
データ
0
リード時
端子状態が
"L"レベル
ポート1データ
レジスタ(PDR1)
1
端子状態が
"H"レベル
0
入力ポート状態
ポート1方向
レジスタ(DDR1)
1
出力ポート状態
ライト時
出力ラッチに"0"を設
定し,
出力ポート時は端
子に"L" レベルを出力
する
出力ラッチに"1"を設
定し,
出力ポート時は端
子に"H" レベルを出力
する
出力トランジスタの動
作を禁止し,
入力端子に
する
出力トランジスタの動
作を許可し,
出力端子に
する
リード
ライト
アドレス
初期値
R/W
0002H
XXXXXXXXB
W
0003H
00000000B
R/W :リード ・ライト可能
X
:不定
W
:ライトオンリー 可能
75
第4章 I/Oポート
4.3.2
ポート1
ポート1の動作説明
ポート1の動作を説明します。
■ ポート1の動作
○
出力ポート時の動作
対応するDDR1レジスタのビットを"1"にすると,出力ポートになります。
出力ポート時は出力トランジスタの動作が許可され,出力ラッチのデー
タが端子に出力されます。
PDR1レジスタにデータを書き込むと,出力ラッチにデータが保持され,
そのまま端子に出力されます。
PDR1レジスタを読み出すと,端子の値が読み出せます。
○
入力ポート時の動作
対応するDDR1レジスタのビットを"0"にすると,入力ポートになります。
入力ポート時は出力トランジスタが"OFF"となり,端子はハイインピーダ
ンスになります。
PDR1レジスタにデータを書き込むと,出力ラッチにデータが保持されま
すが,端子には出力されません。
PDR1レジスタを読み出すと,端子の値が読み出せます。
○
リセット時の動作
CPUがリセットされると,DDR1レジスタの値は"0"に初期化されます。こ
のため,出力トランジスタは"OFF"(入力ポート)となり,端子はハイイ
ンピーダンスになります。
PDR1レジスタは,リセットでは初期化されません。このため,出力ポー
トとして使用する場合,PDR1レジスタに出力データをセットしてから,
対応するDDR1レジスタを出力に設定する必要があります。
○
ストップモードの動作
ストップモードに移行した時点で,スタンバイ制御レジスタの端子状態指定
ビット(STBC:SPL)が"1"にセットされていると,端子はハイインピーダンスに
なります。これは,DDR1レジスタの値に関係なく,強制的に出力トランジスタ
が"OFF"となるためです。なお,入力開放によるリークを防ぐため,入力は固定
してあります。
表 4.3-4に,ポート1の端子状態を示します。
表 4.3-4 ポート1の端子状態
端子名
通常動作
スリープ
ストップ(SPL=0)
ストップ(SPL=1)
リセット時
P10∼P17
汎用入出力ポート
Hi-z
Hi-z
SPL :スタンバイ制御レジスタの端子状態指定ビット(STBC:SPL)
Hi-z:ハイインピーダンス
76
第4章 I/Oポート
参考:
プルアップオプション設定レジスタでプルアップ抵抗ありを選択した場合,
ストップ(SPL=1)における端子の状態は,ハイインピーダンスではなく"H"レ
ベル(プルアップ状態)になります。ただし,リセット中のプルアップは無効
となり,Hi-zとなります。
77
第4章 I/Oポート
4.4
ポート2
ポート2
ポート2は,汎用入出力ポートです。
ポート2の構成,端子,端子のブロックダイヤグラム,関連するレジスタを示しま
す。
■ ポート2の構成
ポート2は,以下の三つの要素から構成されます。
汎用入出力端子(P20∼P27)
ポート2データレジスタ(PDR2)
ポート2方向レジスタ(DDR2)
■ ポート2の端子
ポート2には,8本のCMOSの入出力端子があります。
表 4.4-1に,ポート2の端子を示します。
表 4.4-1 ポート2の端子
ポート名
端子名
ポート2
P20
P21
P22
P23
P24
P25
P26
P27
回路形式については「1.7
78
機能
P20
P21
P22
P23
P24
P25
P26
P27
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
汎用入出力
入出力形式
入力
出力
CMOS
CMOS
端子機能説明」を参照してください。
回路形式
B
第4章 I/Oポート
■ ポート2のブロックダイヤグラム
図 4.4-1 ポート2(P20∼27)の端子のブロックダイヤグラム
■ ポート2のレジスタ
ポート2に関連するレジスタには,PDR2,DDR2があります。
それぞれのレジスタを構成するビットは,ポート2の端子に1対1で対応していま
す。
表 4.4-2に,ポート2のレジスタと端子の対応を示します。
表 4.4-2 ポート2のレジスタと端子の対応
ポート名
ポート2
PDR2,DDR2
対応する端子
Bit7
P27
関連するレジスタのビットと対応する端子
Bit6
Bit5
Bit4
Bit3
Bit2
P26
P25
P24
P23
P22
Bit1
P21
Bit0
P20
79
第4章 I/Oポート
4.4.1
ポート2
ポート2のレジスタ(
のレジスタ(PDR2,
PDR2,DDR2)
DDR2)
ポート2に関するレジスタについて説明します。
■ ポート2のレジスタの機能
○
ポート2データレジスタ(PDR2)
PDR2レジスタは,出力ラッチの状態を示します。このため端子の状態は読み出せ
ません。
○
ポート2方向レジスタ(DDR2)
DDR2レジスタは,ビットごとの端子の入出力方向を設定します。
ポートに対応するビットを"1"にすると出力ポートになり, "0"にすると入力
ポートになります。
参考:
ビット操作命令(SETB,CLRB)時は,端子ではなく出力ラッチの値を読み出
すため,操作するビット以外の出力ラッチの値は変化しません。
表 4.4-3に,ポート2のレジスタの機能を示します。
表 4.4-3 ポート2のレジスタの機能
レジスタ名
データ
ポート2データ
レジスタ(PDR2)
ポート2方向
レジスタ(DDR2)
R/W:リード・ライト可能
80
0
1
0
1
リード時
ライト時
端子状態が 出力ラッチに"0"を設定し,
"L"レベル 端子に"L"レベルを出力する
端子状態が 出力ラッチに"1"を設定し,
"H"レベル 端子に"H"レベルを出力する
入力ポート 出力トランジスタの動作を
状態
禁止し,入力端子にする。
出力ポート 出力トランジスタの動作を
状態
許可し,出力端子にする。
リード
ライト
アドレス
初期値
R/W
0004H
00000000B
R/W
0006H
00000000B
第4章 I/Oポート
4.4.2
ポート2
ポート2の動作説明
ポート2の動作を説明します。
■ ポート2の動作
○
出力ポート時の動作
PDR2レジスタにデータを書き込むと,出力ラッチにデータが保持され,出力
バッファを通して端子に出力されます。
○
入力ポート時の動作
対応するDDR2レジスタのビットを"0"にすると,入力ポートになります。
入力ポート時は出力トランジスタが"OFF"となり,端子はハイインピーダ
ンスになります。
PDR2レジスタにデータを書き込むと,出力ラッチにデータが保持されま
すが,端子には出力されません。
PDR2レジスタを読み出すと,端子の値が読み出せます。
○
リセット時の動作
CPUがリセットされると,PDR2レジスタの値は"0"に初期化されますが,端子
はリセット中はハイインピーダンスとなり,リセット解除後に"L"レベル出力に
なります。
○
ストップモードの動作
ストップモードに移行した時点で,スタンバイ制御レジスタの端子状態指定
ビット(STBC:SPL)が"1"にセットされていると,強制的に出力トランジスタが
"OFF"となり,端子はハイインピーダンスになります。
表 4.4-4に,ポート2の端子状態を示します。
表 4.4-4 ポート2の端子状態
端子名
通常動作
スリープ
ストップ(SPL=0)
ストップ(SPL=1)
リセット中
P20∼P27
汎用入出力ポート
Hi-z
Hi-z
SPL :スタンバイ制御レジスタの端子状態指定ビット(STBC:SPL)
Hi-z :ハイインピーダンス
参考:
プルアップオプション設定レジスタでプルアップ抵抗ありを選択した場合,
ストップ(SPL=1)における端子の状態は,ハイインピーダンスではなく"H"レ
ベル(プルアップ状態)になります。ただし,リセット中のプルアップは無効
となり,Hi-zとなります。
81
第4章 I/Oポート
4.5
ポート3
ポート3
ポート3は,汎用入力出ポートです。各端子は,リソースとポートを,ビット単位
で切り替えて使用できます。
ここでは,汎用入出力ポートとしての機能を中心に説明します。
ポート3の構成,端子,端子のブロックダイヤグラム,関連するレジスタを示しま
す。
■ ポート3の構成
ポート3は,以下の三つの要素から構成されます。
汎用入出力端子/リソース入出力端子(P31/ INT1 ∼P37/ INT7 )
ポート3データレジスタ(PDR3)
ポート3方向レジスタ(DDR3)
■ ポート3の端子
ポート3には,7本のCMOS入出力端子があります。
これらの端子のうち,リソースと兼用になっている端子は,リソースを使用する
場合,汎用入出力ポートとして使用できません。
表 4.5-1に,ポート3の端子を示します。
表 4.5-1 ポート3の端子
ポート名
端子名
機能
兼用リソース
入出力形式
入力
出力
P31/ INT1
P31汎用入出力
外部割込み入力(INT1 )
CMOS
B
P32/INT2 /SI1
P32汎用入出力
外部割込み入力(INT2 )
SI1入力
CMOS*1
E
P33/INT3 /SO1
P33汎用入出力
外部割込み入力(INT3 )
SO1出力
CMOS
B
ポート3 P34/INT4 /SCK1
P34汎用入出力
外部割込み入力(INT4 )
SCK1外部クロック入力
CMOS*1
P35/ INT5 /SCK2
P35汎用入出力
外部割込み入力(INT5 )
SCK2外部クロック入力
CMOS*1
E
P36/ INT6 /SO2
P36汎用入出力
外部割込み入力(INT6 )
SO2出力
CMOS
B
P37/ INT7 /SI2
P37汎用入出力
外部割込み入力(INT7 )
SI1入力
CMOS*1
E
CMOS
*1:リソース入力はヒステリシスです。
回路形式については「1.7
82
回路形式
端子機能説明」を参照してください。
E
第4章 I/Oポート
■ ポート3のブロックダイヤグラム
図 4.5-1 ポート3の端子のブロックダイヤグラム
■ ポート3のレジスタ
ポート3に関連するレジスタには,PDR3およびDDR3があります。
それぞれのレジスタを構成するビットは,ポート3の端子に1対1で対応していま
す。
表 4.5-2に,ポート3のレジスタと端子の対応を示します。
表 4.5-2 ポート3のレジスタと端子の対応
ポート名
ポート 3
関連するレジスタのビットと対応する端子
PDR3,DDR3
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
対応する端子
P37
P36
P35
P34
P33
P32
P31 USBPC/USBP*1
*1:Bit0は,USB端子制御用となります。詳しくは,「10.3.11 USBプルアップ制御レジスタ(USBPC,USBP)」を
ご覧ください。
83
第4章 I/Oポート
4.5.1
ポート3
ポート3のレジスタ(PDR3
のレジスタ(PDR3,
PDR3,DDR3)
DDR3)
ポート3に関するレジスタについて説明します。
■ ポート3のレジスタの機能
○
ポート3データレジスタ(PDR3)
PDR3レジスタは,端子の状態を示します。このため,出力ポートに設定した
端子は出力ラッチと同じ値("0"または"1")が読み出せますが,入力ポート時
は出力ラッチの値は読み出せません。
○
ポート3方向レジスタ(DDR3)
DDR3レジスタは,ビットごとの端子の入出力方向を設定します。
ポートに対応するビットを"1"にすると出力ポートになり,"0"にすると入力
ポートになります。
参考:
ビット操作命令(SETB,CLRB)時は,端子ではなく出力ラッチの値を読み出
すため,操作するビット以外の出力ラッチの値は変化しません。
○
リソース出力時の設定
出力端子を持つリソースを使用する場合,各リソースの出力許可ビットを許
可に設定します。
リソースの出力が優先されるため,リソース出力端子に対応するPDR3レジス
タやDDR3の設定値は,リソースの出力値や出力許可に関係せず,意味を持ちま
せん。
○
リソース入力時の設定
入力端子を持つリソースを使用する場合,各リソースの入力に対応する端子
を入力ポートに設定してください。このとき,対応する出力ラッチの値は意味
を持ちません。
表 4.5-3に,ポート3のレジスタの機能を示します。
表 4.5-3 ポート3のレジスタの機能
レジスタ名
データ
0
ポート3データ
レジスタ(PDR3)
ポート3方向
レジスタ(DDR3)
リード時
端子状態が
"L"レベル
ライト時
リード
ライト
出力ラッチに"0" を設定
し,出力ポート時は端子に
"L"レベルを出力する
出力ラッチに"1" を設定
し,出力ポート時は端子に
"H"レベルを出力する
R/W
1
端子状態が
"H"レベル
0
入力ポート状態
1
出力トランジスタの動作
出力ポート状態
を許可し,出力端子にする
出力トランジスタの動作
を禁止し,入力端子にする
R/W
アドレス
000CH
000DH
初期値
XXXXXXXXB*1
00000000H*1
R/W :リード・ライト 可能
X :不定
*1 :Bit0は,USBP端子制御用となります。詳しくは,「10.3.11 USBプルアップ制御レジスタ(USBPC,USBP)」
をご覧ください。
84
第4章 I/Oポート
4.5.2
ポート3
ポート3の動作説明
ポート3の動作を説明します。
■ ポート3の動作
○
出力ポート時の動作
対応するDDR3レジスタのビットを"1"にすると,出力ポートになります。
出力ポート時は出力トランジスタの動作が許可され,出力ラッチのデー
タが端子に出力されます。
PDR3レジスタにデータを書き込むと,出力ラッチにデータが保持され,
そのまま端子に出力されます。
PDR3レジスタを読み出すと,常に出力ラッチの値が読み出されます。
○
入力ポート時の動作
対応するDDR3レジスタのビットを"0"にすると,入力ポートになります。
入力ポート時は出力トランジスタが"OFF"となり,端子はハイインピーダ
ンスになります。
PDR3レジスタにデータを書き込むと,出力ラッチにデータが保持されま
すが,端子には出力されません。
PDR3レジスタを読み出すと,端子の値が読み出せます。
○
リソース出力時の動作
リソースの出力許可ビットを許可に設定すると,対応する端子がリソー
ス出力になります。
○
リソース入力時の動作
リソースの入力端子に対応する,DDR3レジスタのビットを"0"にして入力
ポートに設定します。
リソースの入力には常に端子の値が入力されています。
リソースが入力端子を使用しているかどうかにかかわらず,PDR3レジス
タを読み出すと端子の値が読み出せます。
○
リセット時の動作
CPUがリセットされると,DDR3レジスタの値は"0"に初期化されます。こ
のため,出力トランジスタはすべて"OFF"(入力ポート)となり,端子は
ハイインピーダンスになります。
PDR3レジスタは,リセットでは初期化されません。このため,出力ポー
トとして使用する場合,PDR3レジスタに出力データをセットしてから,
対応するDDR3レジスタを出力に設定する必要があります。
85
第4章 I/Oポート
○
ストップモードの動作
ストップモードに移行した時点で,スタンバイ制御レジスタの端子状態指定
ビット(STBC:SPL)が"1"にセットされていると,強制的に出力トランジスタが
"OFF"となり,端子はハイインピーダンスになります。なお,入力開放によるリー
クを防ぐため,入力は固定してあります。
表 4.5-4に,ポート3の端子状態を示します。
表 4.5-4 ポート3の端子状態
通常動作
ストップ(SPL=1)
スリープ
ストップ(SPL=0)
汎用入出力ポート
P31∼P37
Hi-z(外部割込み入力)
/リソース入出力
SPL :スタンバイ制御レジスタの端子状態指定ビット(STBC:SPL)
Hi-z :ハイインピーダンス
端子名
リセット時
Hi-z
参考:
プルアップオプション設定レジスタでプルアップ抵抗ありを選択した場合,
ストップ(SPL=1)における端子の状態は,ハイインピーダンスではなく,"H"
レベル(プルアップ状態)になります。
ただし,リセット中のプルアップは無効となり,Hi-Zとなります。
<注意事項>
PDR3,DDR3レジスタのBit0は,USB端子制御用となります。詳しくは, 「10.3.11
アップ制御レジスタ(USBPC,USBP)
」をご覧ください。
86
USB用プル
第4章 I/Oポート
4.6
ポート4
ポート4
ポート4は,リソース入出力兼用の汎用入出力ポートです。各端子は,リソースと
ポートを,ビット単位で切り替えて使用できます。
ここでは,汎用入出力ポートとしての機能を中心に,ポート4の構成,端子,端子
のブロックダイヤグラム,関連するレジスタを示します。
■ ポート4の構成
ポート4は,以下の三つの要素から構成されます。
汎用入出力端子/リソース入出力端子(P40/POW5∼P47/PWM2)
ポート4データレジスタ(PDR4)
ポート4方向レジスタ(DDR4)
■ ポート4の端子
ポート4には,6本のCMOS入出力端子と2本のNchオープンドレイン入出力端子があ
ります。
これらの端子のうち,リソースと兼用になっている端子は,リソースを使用する
場合,汎用入出力ポートとして使用できません。
表 4.6-1に,ポート4の端子を示します。
表 4.6-1 ポート4の端子
ポート名
ポート4
端子名
機能
兼用リソース
P40/POW5
P40 汎用入出力
HUBパワー制御POW1
P41/POW2
P41 汎用入出力
HUBパワー制御POW2
P42/POW3
P42 汎用入出力
HUBパワー制御POW3
入出力形式
入力
出力
CMOS
回路形式
B
CMOS
P43/POW4
P43 汎用入出力
HUBパワー制御POW4
P44/UCK
P44 汎用入出力
UCK 8ビットシリアルクロック入出力 CMOS*
E
P45/UO
P45 汎用入出力
UO 8ビットシリアルデータ出力
CMOS
B
P46/UI/PWM1 P46 汎用入出力
UI 8ビットシリアルデータ入力
PWM1 PWMタイマ出力
N
P47/PWM2
PWM2 PWMタイマ出力
CMOS*1 Nch
オープン
ドレイン
CMOS
P47 汎用入出力
K
*1:リソースはヒステリシス入力です。
回路形式については「1.7
端子機能説明」を参照してください。
87
第4章 I/Oポート
■ ポート4のブロックダイヤグラム
図 4.6-1 ポート4(P40∼P47) の端子のブロックダイヤグラム
参考:
P46,P47はNchオープンドレイン端子のため,出力として使用する場合には,
外部端子にプルアップ抵抗が必要です。
■ ポート4のレジスタ
ポート4に関連するレジスタには,PDR4およびDDR4があります。
それぞれのレジスタを構成するビットは,ポート4の端子に1対1で対応していま
す。
表 4.6-2に,ポート4のレジスタと端子の対応を示します。
表 4.6-2 ポート4のレジスタと端子の対応
ポート名
ポート4
88
PDR4,DDR4
対応する端子
関連するレジスタのビットと対応する端子
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
P47
P46
P45
P44
P43
P42
Bit1
P41
Bit0
P40
第4章 I/Oポート
4.6.1
ポート4
ポート4のレジスタ(
のレジスタ(PDR4,
PDR4,DDR4)
DDR4)
ポート4に関するレジスタについて説明します。
■ ポート4のレジスタの機能
○
ポート4データレジスタ(PDR4)
PDR4レジスタは,端子の状態を示します。このため,出力ポートに設定した
端子は出力ラッチと同じ値("0"または"1")が読み出せますが,入力ポート時
は出力ラッチの値は読み出せません。
参考:
ビット操作命令(SETB,CLRB)時は,端子ではなく出力ラッチの値を読み出
すため,操作するビット以外の出力ラッチの値は変化しません。
○
ポート4方向レジスタ(DDR4)
DDR4レジスタは,ビットごとの端子の入出力方向を設定します。
ポートに対応するビットを"1"にすると出力ポートになり,"0"にすると入力ポー
トになります。
○
リソース出力時の設定
出力端子を持つリソースを使用する場合,各リソースの出力許可ビットを許
可に設定します。
リソースの出力が優先されるため,リソース出力端子に対応するPDR4レジス
タやDDR4の設定値は,リソースの出力値や出力許可に関係せず,意味を持ちま
せん。
○
リソース入力時の設定
入力端子を持つリソースを使用する場合,各リソースの入力に対応する端子
を入力ポートに設定してください。このとき,対応する出力ラッチの値は意味
を持ちません。
表 4.6-3に,ポート4のレジスタの機能を示します。
表 4.6-3 ポート4のレジスタの機能
レジスタ名
データ
0
ポート4データ
レジスタ(PDR4)
1
0
ポート4方向
レジスタ(DDR4)
1
リード時
ライト時
出力ラッチに"0"を設定
し,
出力ポート時は端子
に"L"レベルを出力する
出力ラッチに"1"を設定
端子状態が
し,
出力ポート時は端子
"H"レベル
に"H"レベルを出力する
出力トランジスタの動
入力端子に
入力ポート状態 作を禁止し,
する
出力トランジスタの動
出力ポート状態 作を許可し,
出力端子に
する
リード
ライト
アドレス
初期値
R/W
0010H
XXXXXXXXB
R/W
0011H
00000000B
端子状態が
"L"レベル
R/W:リード・ライト可能
X :不定
89
第4章 I/Oポート
4.6.2
ポート4
ポート4の動作説明
ポート4の動作を説明します。
■ ポート4の動作
○
出力ポート時の動作
対応するDDR4レジスタのビットを"1"にすると,出力ポートになります。
出力ポート時は出力トランジスタの動作が許可され,出力ラッチのデー
タが端子に出力されます。
PDR4レジスタにデータを書き込むと,出力ラッチにデータが保持され,
そのまま端子に出力されます。
PDR4レジスタを読み出すと,端子の値が読み出せます。
○
入力ポート時の動作
対応するDDR4レジスタのビットを"0"にすると,入力ポートになります。
入力ポート時は出力トランジスタが"OFF"となり,端子はハイインピーダ
ンス*1になります。
PDR4レジスタにデータを書き込むと,出力ラッチにデータが保持されま
すが,端子には出力されません。
PDR4レジスタを読み出すと,端子の値が読み出せます。
○
リソース出力時の動作
リソースの出力許可ビットを許可に設定すると,対応する端子がリソー
ス出力になります。
リソースの出力を許可したときでも,PDR4レジスタによって端子の値が
読み出せるため,リソースの出力値を読み出すことができます。
○
リソース入力時の動作
リソースの入力端子に対応する,DDR4レジスタのビットを"0"にして入力
ポートに設定します。
リソースの入力には常に端子の値が入力されています(ストップモード
中以外)
。
リソースが入力端子を使用しているかどうかにかかわらず,PDR4レジス
タを読み出すと端子の値が読み出せます。
○
リセット時の動作
CPUがリセットされると,DDR4レジスタの値は"0"に初期化されます。こ
のため,出力トランジスタは"OFF"(入力ポート)となり,端子はハイイ
ンピーダンス*1になります。
PDR4レジスタのビットは,リセットで初期化されません。このため,出
力ポートとして使用する場合,PDR4レジスタに出力データをセットして
から対応するDDR4レジスタを出力に設定する必要があります。
90
第4章 I/Oポート
○
ストップモードの動作
ストップモードに移行した時点で,スタンバイ制御レジスタの端子状態指定
ビット(STBC:SPL)が"1"にセットされていると,端子はハイインピーダンス*1
になります。これは,DDR4レジスタの値に関係なく,強制的に出力トランジス
タが"OFF"となるためです。なお,入力開放によるリークを防ぐため,入力は固
定してあります。
表 4.6-4に,ポート4の端子状態を示します。
表 4.6-4 ポート4の端子状態
端子名
通常動作
スリープ
ストップ(SPL=0)
ストップ(SPL=1)
リセット時
汎用入出力ポート
Hi-z*1
Hi-z*1
/リソース入出力
SPL :スタンバイ制御レジスタの端子状態指定ビット(STBC:SPL)
Hi-z :ハイインピーダンス
*1 :P46,P47は,Nchオープンドレインのため,外部プルアップ抵抗をつけた場合は, "1"
となります。
P40/POW5∼P47/PWM2
参考:
プルアップオプション設定レジスタでプルアップ抵抗ありを選択した場合,
ストップモード(SPL=1)における端子の状態は,ハイインピーダンスではなく
"H"レベル(プルアップ状態)になります。ただし,リセット中のプルアップは
無効となり,Hi-zとなります。
なお,P46,P47には対応していませんのでご注意願います。
91
第4章 I/Oポート
4.7
ポート5
ポート5
ポート5は,汎用入出力ポートです。各端子は,リソースとポートを,ビット単位
で切り替えて使用できます。
ここでは,汎用入出力ポートとしての機能を中心にポート5の構成,端子,端子の
ブロックダイヤグラム,関連するレジスタを示します。
■ ポート5の構成
ポート5は,以下の二つの要素から構成されます。
Nchオープンドレインタイプの入出力端子/リソース入出力端子(P53/SDA,
P54/SCL)
ポート5データレジスタ(PDR5)
■ ポート5の端子
ポート5には,2本のNchオープンドレイン出力の入出力端子があります。これら
の端子は,リソースを使用する場合,汎用入出力ポートとしては使用できません。
表 4.7-1に,ポート5の端子を示します。
表 4.7-1 ポート5の端子
ポート名
端子名
P53/SDA
ポート5
P54/SCL
機能
P53 汎用入出力
I2Cインタフェース用
SDAデータ入出力端子
P54 汎用入出力
I2Cインタフェース用
SCLクロック入出力端子
回路形式については「1.7
92
兼用
リソース
入出力形式
入力
出力
I2C用
データ端子
CMOS
I2C 用
クロック端子
Nch
オープン
ドレイン
端子機能説明」を参照してください。
回路形式
K
第4章 I/Oポート
■ ポート5のブロックダイヤグラム
図 4.7-1 ポート5 P53, 54の端子のブロックダイヤグラム
参考:
P53,P54をI2C出力端子として使用する場合およびNchオープンドレイン出力端
子として使用する場合には,外部端子プルアップ抵抗が必要です。
■ ポート5のレジスタ
ポート5に関連するレジスタには,PDR5があります。
それぞれのレジスタを構成するビットは,ポート5の端子に1対1で対応していま
す。
表 4.7-2に,ポート5のレジスタと端子の対応を示します。
表 4.7-2 ポート5のレジスタと端子の対応
ポート名
ポート5
PDR5
対応する端子
Bit7
-
関連するレジスタのビットと対応する端子
Bit6
Bit5
Bit4
Bit3
Bit2
P54
P53
-
Bit1
-
Bit0
-
93
第4章 I/Oポート
4.7.1
ポート5
ポート5のレジスタ(PDR5
のレジスタ(PDR5,
PDR5,DDR5)
DDR5)
ポート5に関するレジスタについて説明します。
■ ポート5のレジスタの機能
○
ポート5データレジスタ(PDR5)
PDR5レジスタは,端子の状態を示します。このため,出力ポートに設定した
端子は出力ラッチと同じ値("0"または"1")が読み出せますが,入力ポート時
は出力ラッチの値は読み出せません。また,未使用ビット(bit0∼2,bit5∼7)
への設定は,必ず"1"書込みとしてください。
参考:
ビット操作命令(SETB, CLRB)時は,端子ではなく出力ラッチの値を読み出
すため,操作するビット以外の出力ラッチの値は変化しません。
○
リソース出力時の設定
出力端子を持つリソースを使用する場合,各リソースの出力許可ビットを許
可に設定します。
ブロック図から分かるように,リソースは優先的に汎用ポートとしてではな
くリソース出力端子になります。
リソースの出力が優先されるため,リソース出力端子に対応するPDR5レジス
タの設定値は,リソースの出力値や出力許可に関係せず,意味を持ちません。
○
リソース入力時の設定
入力端子を持つリソースを使用する場合,各リソースの入力に対応する端子
を入力ポートに設定してください。このとき,対応する出力ラッチの値は意味
を持ちません。
表 4.7-3 ポート5のレジスタの機能
レジスタ名
データ
リード時
0
端子状態が
"L"レベル
1
端子状態が
"H"レベル
ポート5データ
レジスタ(PDR5)
R/W:リード ・ライト可能
X :不定
94
ライト時
リード
ライト
アドレス
初期値
出力ラッチに"0"を設定
し,
出力ポート時は端子
に"L"レベルを出力する
出力ラッチに"1"を設定
し,
出力ポート時は端子
に"H"レベルを出力する
R/W
0012H
XXX11XXXB
第4章 I/Oポート
4.7.2
ポート5
ポート5の動作説明
ポート5の動作を説明します。
■ ポート5の動作
○
出力ポート時の動作
出力ラッチの値が"0"のとき出力トランジスタが"ON"して端子に"L"レベ
ルが出力され,"1"のとき"OFF"してハイインピーダンスとなります。出
力端子がプルアップされている場合,出力ラッチの値が"1"のときはプル
アップ状態となります。
PDR5レジスタにデータを書き込むと,出力ラッチにデータが保持され,
そのまま端子に出力されます。
PDR5レジスタを読み出すと,端子の値が読み出せます。
○
入力ポート時の動作
○
リソース出力時の動作
リソースの出力許可ビットを許可に設定すると,対応する端子がリソー
ス出力になります。
リソースの出力を許可したときでも,PDR5レジスタによって端子の値が
読み出せるため,リソースの出力値を読み出すことができます。
○
リソース入力時の動作
リソースの入力端子に対応する,PDR5レジスタのビットを"1"にして入力
ポートに設定します。
リソースが入力端子を使用しているかどうかにかかわらず,PDR5レジス
タを読み出すと端子の値が読み出せます。
○
リセット時の動作
CPUがリセットされると,PDR5レジスタのbit3,bit4のビット値は"1"に
初期化されます。このため,出力トランジスタは"OFF"(入力ポート)と
なり,端子はハイインピーダンスになります。
PDR5レジスタのbit3,bit4以外のビットは,リセットで初期化されませ
ん。
○
ストップモードの動作
ストップモード移行した時点で,スタンバイ制御レジスタの端子状態指定
ビット(STBC:SPL)が"1"にセットされていると,端子はハイインピーダンスに
なります。これは,DDR5レジスタの値に関係なく,強制的に出力トランジスタ
が"OFF"となるためです。なお,入力開放によるリークを防ぐため,入力は固定
してあります。
表 4.7-4に,ポート5の端子状態を示します。
95
第4章 I/Oポート
表 4.7-4 ポート5の端子状態
端子名
通常動作
スリープ
ストップ(SPL=0)
ストップ(SPL=1)
リセット時
P53,P54
汎用入出力ポート
/リソース入出力
Hi-z
Hi-z
SPL :スタンバイ制御レジスタの端子状態指定ビット(STBC:SPL)
Hi-z :ハイインピーダンス
96
第4章 I/Oポート
4.8
I/Oポートのプログラム例
I/Oポートのプログラム例
I/Oポートを使ったプログラム例を示します。
■ I/Oポートのプログラム例
○
処理仕様
ポート0,1により,7セグメント(Dpを含めると8セグメント)LEDをすべ
て点灯します。
P00端子がLEDのアノードコモン端子に,P10∼P17端子が各セグメント端
子に対応します。
図 4.8-1に,8セグメントLED接続例を示します。
図 4.8-1 8セグメントLED接続例
○
コーディング例(Softune V1準拠)
97
第4章 I/Oポート
98
第5章
タイムベースタイマ
この章では,タイムベースタイマの機能と動作について説明します。
5.1 タイムベースタイマの概要
5.2 タイムベースタイマの構成
5.3 タイムベースタイマ制御レジスタ(TBTC)
5.4 タイムベースタイマの割込み
5.5 タイムベースタイマの動作説明
5.6 タイムベースタイマ使用上の注意
5.7 タイムベースタイマのプログラム例
99
第5章 タイムベースタイマ
5.1
タイムベースタイマの概要
タイムベースタイマは,内部カウントクロック(メインクロック原発振の2分周)
に同期して,カウントアップする21ビットのフリーランカウンタで,4種類のインター
バル時間を選択できるインターバルタイマ機能があります。また,発振安定待ち時間
のタイマ出力やウォッチドッグタイマなどの動作クロックを供給します。
タイムベースタイマは,メインクロック原発振が停止するモードでは動作を停止し
ます。
■ インターバルタイマ機能
インターバルタイマ機能は,一定の時間間隔で繰り返し割込みを発生する機能で
す。
タイムベースタイマのカウンタの,インターバルタイマ用のビットが
オーバフローすると割込みを発生します。
インターバルタイマ用のビット(インターバル時間)は,4種類の中から
選択できます。
表 5.1-1に,タイムベースタイマのインターバル時間を示します。
表 5.1-1 タイムベースタイマのインターバル時間
内部カウントクロック周期
13
2/FCH(0.167μs)
2 /FCH
215/FCH
218/FCH
222/FCH
インターバル時間
(約0.68 ms)
(約2.73 ms)
(約21.85 ms)
(約349.53 ms)
FCH:メインクロック発振
( )内はメインクロック発振 12MHz 動作時の値です。
■ クロック供給機能
クロック供給機能は,メインクロックの発振安定待ち時間用のタイマ出力(4種
類)や,一部の周辺機能に対する動作クロックを供給する機能です。
表 5.1-2に,タイムベースタイマから各周辺に供給されるクロックの周期を示し
ます。
表 5.1-2 タイムベースタイマから供給されるクロック
クロック供給先
メインクロック
発振安定待ち時間
ウォッチドッグタイマ
クロック周期
214/FCH (約1.37 ms)
217/FCH (約10.92 ms)
218/FCH (約21.85 ms)
備考
クロック制御部でシステムクロック制御レ
ジスタの発振安定待ち時間選択ビット
(SYCC:WT1,WT0)によって選択されます。
222/FCH (約349.53 ms)
ウォッチドッグタイマのカウントアップク
ロック
FCH:メインクロック発振
( )内はメインクロック発振 12MHz動作時の値です。
<注意事項>
発振開始直後は発振周期が不安定なため,発振安定待ち時間は目安となります。
100
第5章 タイムベースタイマ
5.2
タイムベースタイマの構成
タイムベースタイマは,以下の四つのブロックから構成されています。
・タイムベースタイマカウンタ
・カウンタクリア回路
・インターバルタイマセレクタ
・タイムベースタイマ制御レジスタ(TBTC)
■ タイムベースタイマのブロックダイヤグラム
図 5.2-1 タイムベースタイマのブロックダイヤグラム
○
タイムベースタイマカウンタ
メインクロック発振の2分周をカウントクロックとする,21ビットのアップカ
ウンタです。クロック原発振が停止すると動作を停止します。
○
カウンタクリア回路
TBTCレジスタによる設定(TBR=0)以外に,ストップモードへ移行(STBC:STP=1)
したときおよびパワーオンリセットによって,カウンタをクリアします。
○
インターバルタイマセレクタ
タイムベースタイマカウンタ中の4ビットからインターバルタイマ用の1ビッ
トを選択する回路で,選択したビットのオーバフローが割込み要因となります。
○
タイムベースタイマ制御レジスタ(TBTC)
インターバル時間の選択,カウンタのクリア,割込み制御および状態の確認
を行います。
101
第5章 タイムベースタイマ
5.3
タイムベースタイマ制御レジスタ(TBTC
タイムベースタイマ制御レジスタ(TBTC)
TBTC)
タイムベースタイマ制御レジスタ(TBTC)は,インターバル時間の選択,カウンタ
のクリア,割込み制御および状態の確認を行うレジスタです。
■ タイムベースタイマ制御レジスタ(TBTC)
図 5.3-1 タイムベースタイマ制御レジスタ(TBTC)
102
第5章 タイムベースタイマ
表 5.3-1 タイムベースタイマ制御レジスタ(TBTC)の各ビットの機能説明
ビット名
機能
・タイムベースタイマのカウンタの指定ビットがオーバフローすると"1"に
セットされます。
TBOF:
bit7 オーバフロー割込み要 ・このビットと割込み要求許可ビット(TBIE)が"1"のとき,割込み要求を
出力します。
求フラグビット
・書込み時は"0"でクリアされ,"1"では変化せずほかへの影響はありません。
・CPUへの割込み要求出力の許可/禁止を行うビットです。このビットとオー
TBIE:
バフロー割込み要求フラグビット(TBOF)が"1"のとき,割込み要求を出
bit6
割込み要求許可ビット
力します。
bit5
・リード時の値は不定です。
bit4 未使用ビット
・ライトは動作に影響を与えません。
bit3
・インターバルタイマの周期を選択するビットです。
TBC1, TBC0:
bit2
・タイムベースタイマのカウンタのインターバルタイマ用ビットが指定
インターバル時間選択
bit1
されます。
ビット
・4種類のインターバル時間が選択できます。
・タイムベースタイマのカウンタをクリアするビットです。
TBR:
・このビットに"0"を書き込むとカウンタが"000000H"にクリアされ,
bit0 タイムベースタイマ初 "1"では変化せずほかへの影響はありません。
期化ビット
〔参考〕
読出し値は常に"1"です。
103
第5章 タイムベースタイマ
5.4
タイムベースタイマの割込み
タイムベースタイマの割込み要因としては,タイムベースタイマカウンタの指定
ビットのオーバフローがあります(インターバルタイマ機能)
。
■ インターバルタイマ機能動作時の割込み
カウンタが内部カウントクロックでカウントアップし,選択されたインターバル
タイマ用のビットがオーバフローすると,オーバフロー割込み要求フラグビット
(TBTC:TBOF)が"1"にセットされます。そのとき,割込み要求許可ビットを許可
(TBTC:TBIE=1)していると,CPUへ割込み要求(IRQ7)が発生します。割込み処理
ルーチンでTBOFビットに"0"を書込み,割込み要求をクリアしてください。なお,
TBOFビットは,TBIEビットの値に関係なく,指定したビットがオーバフローすると
セットされます。
<注意事項>
・リセット解除後に割込み要求出力を許可(TBIE=1)する場合は,必ずTBOFビットを同時にクリ
ア(TBOF=0)してください。
・TBOFビットが"1"のとき,TBIEビットを禁止から許可(0→1)にすると,直ちに割込み要求が発
生します。
・カウンタクリア(TBTC:TBR=0)と選択したビットのオーバフローが同時に起こった場合は,TBOF
ビットのセットは行われません。
■ 発振安定待ち時間とタイムベースタイマの割込み
クロックの発振安定待ち時間より短いインターバル時間を設定すると,クロック
モードの動作開始時にタイムベースタイマのインターバル割込み要求
(TBTC:TBOF=1)が発生します。この場合,クロックの発振が停止するモード(ス
トップモード)へ移行するときにタイムベースタイマの割込みを禁止
(TBTC:TBIE=0)してください。
■ タイムベースタイマの割込みに関連するレジスタとベクトルテーブル
表 5.4-1 タイムベースタイマの割込みに関連するレジスタとベクトルテーブル
割込み名
IRQ7
割込みレベル設定レジスタ
レジスタ
設定ビット
ILR2(007DH) L71(bit7)
L70(bit6)
割込み動作については,
「3.4.2
104
ベクトルテーブルのアドレス
上位
下位
FFECH
FFEDH
割込み動作時の処理」を参照してください。
第5章 タイムベースタイマ
5.5
タイムベースタイマの動作説明
タイムベースタイマは,インターバルタイマ機能および一部の周辺へのクロック供
給機能として動作します。
■ インターバルタイマ機能の動作(タイムベースタイマ)
インターバルタイマ機能として動作させるには,図 5.5-1の設定が必要です。
図 5.5-1 インターバルタイマ機能の設定
タイムベースタイマのカウンタは,クロックが発振している限り,内部カウント
クロック(メインクロック発振)に同期して,カウントアップを続けます。
カウンタがクリア(TBR=0)されると"0"からカウントアップを行い,インターバ
ルタイマ用のビットがオーバフローすると,オーバフロー割込み要求フラグビット
(TBOF)を"1"にセットします。すなわち,クリアされた時間を基準にして,選択
されたインターバル時間ごとに割込み要求を発生することになります。
■ クロック供給機能の動作
タイムベースタイマは,クロックの発振安定待ち時間を作るためのタイマとして
も使用されます。タイムベースタイマのカウンタがクリアされた状態からカウント
アップし,発振安定待ち時間用のビットがオーバフローするまでが,発振安定待ち
時間となります。発振安定待ち時間は,システムクロック制御レジスタの発振安定
待ち時間選択ビット(SYCC:WT1,WT0)によって3種類の中の1種類を選択します。
■ タイムベースタイマの動作
図 5.5-2に,以下の状態の動作を示します。
パワーオンリセットが発生したとき
インターバルタイマ機能の動作中にスリープモードへ移行したとき
ストップモードへ移行したとき
カウンタクリアの要求があったとき
ストップモードでは,タイムベースタイマはクリアされ,動作を停止します。ス
トップモードからの復帰時は,タイムベースタイマで発振安定待ち時間をカウント
します。
105
第5章 タイムベースタイマ
図 5.5-2 タイムベースタイマの動作
106
第5章 タイムベースタイマ
5.6
タイムベースタイマ使用上の注意
タイムベースタイマを使用するにあたっての注意点を示します。
■ タイムベースタイマ使用上の注意
○
プログラムで設定する場合の注意
割込み要求フラグビット(TBTC:TBOF)が"1"で,割込み要求許可ビットが許
可(TBTC:TBIE=1)の状態では,割込み処理から復帰できません。TBOFビットの
クリアは必ず行ってください。
○
タイムベースタイマのクリアについて
タイムベースタイマは,タイムベースタイマ初期化ビットによるクリア
(TBTC:TBR=0)以外に,クロックの発振安定待ち時間が必要となる場合にクリ
アされます。
○
発振安定待ち時間用タイマとしての使用
電源投入時,ストップモード中では,クロックの原発振が停止しているため,
発振器が動作後タイムベースタイマによってクロックの発振安定待ち時間をと
ります。
クロックの発振器(クロック発生部)に接続する振動子の種類によって,適
切な発振安定待ち時間を選択する必要があります。
詳細については,
「3.6.5 発振安定待ち時間」を参照してください。
○
タイムベースタイマからクロックを供給される周辺機能に対する注意
クロック原発振が停止するモードでは,カウンタはクリアされ,タイムベー
スタイマは動作を停止します。また,タイムベースタイマから供給されるクロッ
クは,タイムベースタイマのカウンタがクリアされると,初期状態からの出力
となるため,"H"レベルが短くまたは"L"レベルが最大で1/2周期長くなることが
あります。ウォッチドッグタイマ用のクロックも初期状態からの出力となりま
すが,ウォッチドッグタイマのカウンタが同時にクリアされるためウォッチ
ドッグタイマは正常な周期で動作します。
107
第5章 タイムベースタイマ
5.7
タイムベースタイマのプログラム例
タイムベースタイマのプログラム例を示します。
■ タイムベースタイマのプログラム例
○
処理仕様
218/FCH(FCH:メインクロック発振:12MHz)のインターバルタイマ割込みを繰り
返し発生します。このときのインターバル時間は,約21.85 ms(12MHz動作時)
となります。
○
108
コーディング例(Softune V1準拠)
第6章
ウォッチドッグタイマ
この章では,ウォッチドッグタイマの機能と動作について説明します。
6.1 ウォッチドッグタイマの概要
6.2 ウォッチドッグタイマの構成
6.3 ウォッチドッグ制御レジスタ(WDTC)
6.4 ウォッチドッグタイマの動作説明
6.5 ウォッチドッグタイマ使用上の注意
6.6 ウォッチドッグタイマのプログラム例
109
第6章 ウォッチドッグタイマ
6.1
ウォッチドッグタイマの概要
ウォッチドッグタイマの概要
ウォッチドッグタイマは,タイムベースタイマの出力をカウントクロックとする1
ビットのカウンタで,起動後,一定時間以上クリアされない場合,CPUをリセットし
ます。
■ ウォッチドッグタイマ機能
ウォッチドッグタイマは,プログラム暴走対策用のカウンタです。一度起動する
と一定時間内で定期的にクリアし続ける必要があります。プログラムが無限ループ
に陥るなどして,一定時間以上クリアされない場合,CPUに対して4インストラク
ションサイクルのウォッチドッグリセットを発生します。
ウォッチドッグタイマのインターバル時間は,表 6.1-1に示すとおりです。
ウォッチドッグタイマがクリアされない場合,最小時間∼最大時間の間にウォッチ
ドッグリセットが発生します。表 6.1-1の最小時間内にカウンタをクリアしてくだ
さい。
表 6.1-1 ウォッチドッグタイマインターバル時間
カウントクロック
タイムベースタイマ出力(メインクロック発振12MHz時)
最小時間
約349.5ms*1
最大時間
約699.1ms
*1:メインクロック発振(FCH)の2分周×タイムベースタイマのカウント数(221)
ウォッチドッグタイマインターバル時間の最小時間と最大時間については,
「6.4 ウォッチドッグタイマの動作説明」を参照してください。
<注意事項>
・ウォッチドッグタイマのカウンタは,カウントクロックにタイムベースタイマの出力を選択し
ているため,タイムベースタイマをクリア(TBTC:TBR=0)すると同時にクリアされます。この
ため,カウントクロックとして使用しているカウンタ(タイムベースタイマ)をウォッチドッ
グタイマのインターバル時間内で繰り返しクリアするとウォッチドッグタイマとして機能しな
くなります。
・スリープモード,ストップモードに移行するとウォッチドッグタイマのカウンタはクリアされ,
通常動作(RUN状態)に復帰するまで動作しません。
・USBデータ転送中は,ウォッチドッグタイマのカウンタはクリアされ,転送終了後に動作を再開
します。
110
第6章 ウォッチドッグタイマ
6.2
ウォッチドッグタイマの構成
ウォッチドッグタイマは,以下の四つのブロックで構成されています。
・ウォッチドッグタイマカウンタ
・リセット制御回路
・カウンタクリア制御回路
・ウォッチドッグ制御レジスタ(WDTC)
■ ウォッチドッグタイマのブロックダイヤグラム
図 6.2-1 ウォッチドッグタイマのブロックダイヤグラム
○
ウォッチドッグタイマカウンタ(1ビットカウンタ)
タイムベースタイマの出力をカウントクロックとする1ビットのカウンタで
す。
○
リセット制御回路
ウォッチドッグタイマカウンタのオーバフローによってCPUへのリセット信
号を発生させます。
○
カウンタクリア制御回路
ウォッチドッグタイマカウンタのクリアと動作の停止を制御します。
○
ウォッチドッグ制御レジスタ(WDTC)
カウントクロックの選択と,ウォッチドッグタイマカウンタの起動およびク
リアを行います。このレジスタは,書込み専用(ライトオンリー)のため,ビッ
ト操作命令は使用できません。
111
第6章 ウォッチドッグタイマ
6.3
ウォッチドッグ制御レジスタ(WDTC
ウォッチドッグ制御レジスタ(WDTC)
WDTC)
ウォッチドッグ制御レジスタ(WDTC)は,ウォッチドッグタイマの起動とクリアを
行うレジスタです。
■ ウォッチドッグ制御レジスタ(WDTC)
図 6.3-1 ウォッチドッグ制御レジスタ(WDTC)
表 6.3-1 ウォッチドッグ制御レジスタ(WDTC)の各ビットの機能説明
ビット名
bit7 未使用ビット
bit6
bit5 未使用ビット
bit4
機能
・必ず"0"を書き込んでください。
・リード時の値は不定です。
・ライトは動作に影響を与えません。
・"0101B"を書き込むとウォッチドッグタイマを起動(リセット後1回目の書込み)
bit3 WTE3, WTE2,
もしくはクリア(リセット後2回目以降の書込み)します。
bit2 WTE1, WTE0:
・"0101B "以外を書き込んでも動作に影響はありません。
bit1 ウォッチドッグ
<注記>
bit0 制御ビット
読出し値は"1111B "です。ビット操作命令は使用できません。
112
第6章 ウォッチドッグタイマ
6.4
ウォッチドッグタイマの動作説明
ウォッチドッグタイマは,ウォッチドッグタイマカウンタのオーバフローによって
ウォッチドッグリセットを発生します。
■ ウォッチドッグタイマの動作
○
ウォッチドッグタイマの起動
ウォッチドッグ制御レジスタのウォッチドッグ制御ビット(WDTC:WTE3∼
0)に,リセット後,1回目の"0101B"を書込みむことによって起動します。
ウォッチドッグタイマを一度起動すると,リセット以外に止める方法は
ありません。
○
ウォッチドッグタイマのクリア
ウォッチドッグ制御レジスタのウォッチドッグ制御ビット(WDTC:WTE3∼
0)への,2回目以降の"0101B"の書込みによって,ウォッチドッグタイマ
のカウンタをクリアします。
ウォッチドッグタイマのインターバル時間内にカウンタがクリアされな
い場合,カウンタがオーバフローし,4インストラクションサイクルの内
部リセット信号を発生します。
○
ウォッチドッグタイマインターバル時間
インターバル時間は,ウォッチドッグタイマをクリアするタイミングによっ
て変化します。図 6.4-1に,タイムベースタイマの出力をカウントクロックと
する(メインクロック発振12MHz時),ウォッチドッグタイマのクリアのタイミ
ングとインターバル時間の関係を示します。
図 6.4-1 ウォッチドッグタイマのクリアとインターバル時間
113
第6章 ウォッチドッグタイマ
6.5
ウォッチドッグタイマ使用上の注意
ウォッチドッグタイマを使用するにあたっての注意点を示します。
■ ウォッチドッグタイマ使用上の注意
○
ウォッチドッグタイマの停止について
ウォッチドッグタイマは,一度起動するとリセットが発生するまで停止でき
ません。
○
ウォッチドッグタイマのクリアについて
ウォッチドッグタイマのカウントクロックに使用しているカウンタ(タ
イムベースタイマ)をクリアすると,同時にウォッチドッグタイマのカ
ウンタもクリアされます。
スリープモード,ストップモードに移行すると,ウォッチドッグタイマ
のカウンタはクリアされます。
○
プログラム作成上の注意
メインループの中で,繰り返しウォッチドッグタイマをクリアするようなプ
ログラムを作成する場合,割込み処理を含めたメインループの処理時間が,
ウォッチドッグタイマインターバル時間の最小時間以下となる必要があります。
114
第6章 ウォッチドッグタイマ
6.6
ウォッチドッグタイマのプログラム例
ウォッチドッグタイマのプログラム例
ウォッチドッグタイマを使ったプログラム例を示します。
■ ウォッチドッグタイマのプログラム例
○
処理仕様
プログラム開始直後にウォッチドッグタイマを起動します。
メインプログラムのループの中で毎回ウォッチドッグタイマをクリアし
ます。
メインループは割込み処理時間を含めて,ウォッチドッグタイマのイン
ターバル最小時間(約349.5ms/12MHz動作時)以下で1周する必要があり
ます。
○
コーディング例(Softune V1準拠)
115
第6章 ウォッチドッグタイマ
116
第7章
2CH 8ビット
8ビットPWM
ビットPWMタイマ
PWMタイマ
この章では,2CH 8ビットPWMタイマの機能と動作について説明します。
7.1
2CH 8ビットPWMタイマの概要(インターバルタイマ機能)
7.2
2CH 8ビットPWMタイマの概要(PWMタイマ機能)
7.3
2CH 8ビットPWMタイマの構成
7.4
2CH 8ビットPWMタイマの端子
7.5
2CH 8ビットPWMタイマのレジスタ
7.6
2CH 8ビットPWMタイマの割込み
7.7
インターバルタイマ機能の動作説明
7.8
8ビットPWMモードの動作説明
7.9
7ビットPWMモードの動作説明
7.10 CH12PWMモードの動作説明
7.11 2CH 8ビットPWMタイマ のプリスケーラの動作説明
7.12 2CH 8ビットPWMタイマの動作中の各モードでの状態
7.13 2CH 8ビットPWMタイマ使用上の注意
7.14 2CH 8ビットPWMタイマのプログラム例(インターバル機能)
7.15 2CH 8ビットPWMタイマのプログラム例(PWMタイマ機能)
117
第7章 2CH 8ビットPWMタイマ
7.1
2CH 8ビット
8ビットPWM
ビットPWMタイマの概要(インターバルタイマ機
PWMタイマの概要(インターバルタイマ機
能)
2CH 8ビットPWMタイマは,4種類の内部カウントクロックに同期してカウントアッ
プする二つの8ビットPWMタイマ(CH1,CH2)で構成されます。CH1とCH2はそれぞれ方
形波出力のできるインターバルタイマ機能と,8ビットまたは7ビット分解能のPWMタ
イマ機能があり,どちらかの機能を選択できます。インターバルタイマ機能は,CH1
とCH2を独立に使用する8ビットタイマモードと,CH1とCH2を連結して使用するCK12
モードがあります。
■ インターバルタイマ機能(方形波出力機能)
インターバルタイマ機能は,任意の時間間隔で繰り返し割込みを発生する機能で
す。
また,その割込み発生ごとに端子(PWM端子)の出力レベルを反転できるため,
任意の周波数の方形波出力も可能です。
○
8ビットタイマモード
8ビットタイマモードでは,CH1とCH2の8ビットPWMタイマは独立に動作できま
す。
カウントクロックの周期から28倍の周期までのインターバルタイマ動作
ができます。
カウントクロックは,4種類の中より選択できます。
表 7.1-1に,インターバル時間と方形波出力の範囲を示します。
表 7.1-1 インターバル時間と方形波出力範囲(CH1,CH2)
カウントクロック周期
インターバル時間
方形波出力(Hz)
1tinst
1tinst∼28tinst
1/(2tinst)∼1/(29tinst)
内部カウント 8tinst
23tinst∼211tinst
1/(24tinst)∼1/(212tinst)
4
12
クロック
16tinst
2 tinst∼2 tinst
1/(25tinst)∼1/(213tinst)
64tinst
26tinst∼214tinst
1/(27tinst)∼1/(215tinst)
tinst:インストラクションサイクル(クロックモードなどの影響を受けます)
参考:
インターバル時間と方形波周波数の計算例
メインクロック発振(FCH)12MHz,PWMコンペアレジスタ(COMR)値"DDH
(221)"で,カウントクロック周期を1tinstに設定したときのインターバル時間
と,このCOMRレジスタ値を変更せずに連続動作させたときのPWM端子より出力さ
れる方形波の周波数は,次のように算出できます。
ただし,システムクロック制御レジスタ(SYCC)により,クロックモード
(SCS=1)の最高速クロックを選択(CS1,CS0=11B,1インストラクションサイク
ル=4/FCH)した場合の値です。
インターバル時間 = (1×4/FCH)×(COMRレジスタ値+1)
= (4/12MHz)×(221+1)
= 74μs
出力周波数
= FCH/(1×8×(COMRレジスタ値+1)
)
= 12MHz/(8×(221+1)
)
≒6.76 kHz
118
第7章 2CH 8ビットPWMタイマ
○
CK12モード
CK12モードは,CH1とCH2を連結して使用するモードで,CH1の方形波出力がCH2
のカウントクロックとなります。
CH1とCH2はそれぞれのカウントクロックの周期から28 倍の周期までのイ
ンターバルタイマ動作ができます。
CH1は,カウントクロックを4種類の中より選択できます。
CH2のカウントクロックは,CH1の方形波出力となります。
表 7.1-2に,インターバル時間と方形波出力の範囲を示します。
表 7.1-2 インターバル時間と方形波出力範囲
カウントクロック周期
インターバル時間
方形波出力(Hz)
1tinst
1tinst∼28tinst
1/(2tinst)∼1/(29tinst)
内部
8tinst
23tinst∼211tinst
1/(24tinst)∼1/(212tinst)
CH1 カウント
4
12
16tinst
2 tinst∼2 tinst
1/(25tinst)∼1/(213tinst)
クロック
6
14
2 tinst∼2 tinst
1/(27tinst)∼1/(215tinst)
64tinst
15
23
CH2 CH1方形波出力 2tinst∼2 tinst
2tinst∼2 tinst
1/(22tinst)∼1/(224tinst)
tinst:インストラクションサイクル(クロックモードなどの影響を受けます)
参考:
インターバル時間と方形波周波数の計算例
メインクロック発振(FCH)12MHz,PWMコンペアレジスタ1,2(COMR1, COMR2)
値が共に"DDH(221)"で,CH1のカウントクロック周期を1tinstに設定したときの
インターバル時間と,このCOMRレジスタ値を変更せずに連続動作させたときの
PWM端子より出力される方形波の周波数は,次のように算出できます。ただし,
システムクロック制御レジスタ(SYCC)により,クロックモード(SCS=1)の最
高速クロックを選択(CS1, CS0=11B,1インストラクションサイクル=4/FCH)し
た場合の値です。
CH1インターバル時間
CH1出力周波数
CH2インターバル時間
CH2出力周波数
=(1×4/FCH)×(COMR1レジスタ値+1)
=(4/12MHz)×(221+1)
= 74μs
= FCH/(1×8×(COMR1レジスタ値+1)
)
= 12MHz/(8×(221+1)
)
≒6.76kHz
=(1/CH1出力周波数)×(COMR2レジスタ値+1)
=(1/6.76kHz)×(221+1)
≒32.8ms
= CH1出力周波数/(COMR2レジスタ値+1)
= 6.76kHz/(221+1)
≒30.45Hz
119
第7章 2CH 8ビットPWMタイマ
7.2
2CH 8ビット
8ビットPWM
ビットPWMタイマの概要(
PWMタイマの概要(PWM
タイマの概要(PWMタイマ機能)
PWMタイマ機能)
2CH 8ビットPWMタイマは,4種類の内部カウントクロックに同期してカウントアッ
プする二つの8ビットPWMタイマ(CH1,CH2)で構成されます。
■ 2CH 8ビットPWMタイマの概要(PWMタイマ機能)
2CH 8ビットPWMタイマは,4種類の内部カウントクロックに同期してカウント
アップする二つの8ビットPWMタイマ(CH1, CH2)で構成されます。CH1とCH2はそれ
ぞれ方形波出力のできるインターバルタイマ機能と,8ビットまたは7ビット分解能
のPWMタイマ機能があり,どちらかの機能を選択できます。PWMタイマ機能は,CH1
とCH2を独立に使用する8ビットPWMモードまたは7ビットPWMモード(高速モード)
と,CH1を"L"幅,CH2を周期としてPWM波を発生するCH12PWMモードがあります。ま
た,CH1を8ビットタイマモードで動作させ,その方形波出力をCH2のカウントクロッ
クに選択することもできます(CK12PWMモード)。PWM出力にローパスフィルタを接
続することで,D/Aコンバータとして使用できます。
図 7.2-1 PWM出力とローパスフィルタによるD/Aコンバータ構成例
120
第7章 2CH 8ビットPWMタイマ
参考:
PWM波の計算例(CH12PWMモード)
メインクロック発振(FCH)12MHz,PWMコンペアレジスタ(COMR1=01H,COMR2=03H)
の設定で,カウントクロックをそれぞれ1tinstに設定したときのPWM波は,次のよ
うに算出できます。
ただし,システムクロック制御レジスタ(SYCC)により,クロックモード
(SCS=1)の最高速クロックを選択(CS1,CS0=11B,1インストラクションサイク
ル=4/FCH)した場合の値です。
"L"幅= (1×4/FCH)×(COMR1レジスタ値+1)
= (4/12 MHz)×(1+1)
≒0.67μs
1周期幅= (1×4/FCH)×(COMR2レジスタ値+1)
= (4/12MHz)×(3+1)
≒1.34μs
CH12PWMモード以外のPWMタイマ動作では,割込み要求は発生しません。
■ PWMタイマ機能
PWMタイマ機能は,1周期の"H"幅を制御するか,"L"幅と周期を独立に制御してPWM
端子にPWM波を出力する機能です。出力にローパスフィルタを接続し,D/Aコンバー
タとしても使用できます。
CH1とCH2を独立に使用する場合,それぞれ8ビットPWMモードと7ビットPWMモード
(高速モード)を選択できます。
○
8ビットPWMモード
1周期の"H"幅を1/256の分解能で制御できるため,デューティ比0∼99.6%
でPWM出力ができます。
PWM波の周期は,カウントクロックの周期の28倍であり,4種類の中より選
択できます。
○
7ビットPWMモード(高速モード)
1周期の"H"幅を1/128の分解能で制御できるため,デューティ比0∼99.2%
でPWM出力ができます。
PWM波の周期は,カウントクロックの周期の27倍(8ビットPWMモードの1/2)
であり,4種類の中より選択できます。
○
CK12PWMモード(8ビットPWM,7ビットPWM)
CH2は8ビットPWMモードまたは7ビットPWMモードを選択できます。ただし,
カウントクロックはCH1の方形波出力となります。
CH1は8ビットタイマモードでの動作となり,PWM波の周期を制御できます。
○
CH12PWMモード
PWM波の"L"幅は,CH1の4種類のカウントクロックの周期からそれぞれの
周期の28倍の周期まで制御できます。
PWM波の周期は,CH2の4種類のカウントクロックの周期からそれぞれの周
期の28倍の周期まで制御できます。
PWM波の分解能は最小1/214まで制御できますが,デューティ比が制限され
ます。
121
第7章 2CH 8ビットPWMタイマ
○
各モードのPWM波の周期
表 7.2-1 PWMタイマ機能で設定できるPWM波の周期
CH1,CH2独立使用(通常モード)
CH12PWMモード
8ビットPWM 7ビットPWMモード
カウントクロック周期
モードの
(高速モード)の "L"幅(CH1) 1周期幅(CH2)
周期
周期
1tinst
28tinst
27tinst
1tinst∼28tinst
1tinst∼28tinst
CH1 および
内部
11
10
3
11
8tinst
2 tinst
2 tinst
2 tinst∼2 tinst 23tinst∼211tinst
CK12PWM
カウント
12
11
モード以外の
16tinst
2 tinst
2 tinst
24tinst∼212tinst 24tinst∼212tinst
クロック
14
13
CH2
2 tinst
2 tinst
26tinst∼214tinst 26tinst∼214tinst
64tinst
9
2 tinst∼
CK12PWM
CH1
2tinst∼
28tinst∼222tinst
モードのCH2 方形波出力 215tinst
223tinst
tinst :インストラクションサイクル(クロックモードなどの影響を受けます)
:設定禁止
122
第7章 2CH 8ビットPWMタイマ
7.3
2CH 8ビット
8ビットPWM
ビットPWMタイマの構成
PWMタイマの構成
2CH 8ビットPWMタイマは,以下の七つのブロックで構成されています。
・プリスケーラ
・8ビットPWMタイマ1(CH1)
・8ビットPWMタイマ2(CH2)
・PWMコンペアレジスタ1,2(COMR1,COMR2)
・PWM制御レジスタ1,2,3(CNTR1,CNTR2,CNTR3)
・CK12セレクタ
・CH12PWM出力制御回路
■ 2CH 8ビットPWMタイマのブロックダイヤグラム
図 7.3-1 2CH 8ビットPWMタイマのブロックダイヤグラム
■ プリスケーラ
周辺回路用の動作クロックを分周する回路です。
PWM制御レジスタ(CNTR2)のカウンタ動作許可ビット(TPE1,TPE2)のいずれか
が"1"のときプリスケーラが動作し,4種類の内部カウントクロックを出力します。
■ 8ビットPWMタイマ1(CH1)および8ビットPWMタイマ2(CH2)
○
カウントクロックセレクタ
4種類の内部カウントクロックを選択する回路で,8ビットカウンタのカウン
トアップ用クロックとなります。
123
第7章 2CH 8ビットPWMタイマ
○
8ビットカウンタ
カウントクロックセレクタで選択されたカウントクロックでカウントアップ
します。
○
比較回路
COMRレジスタの値を保持するラッチがあり,8ビットカウンタの値が"00H"の
とき,COMRレジスタ値をラッチします。また,8ビットカウンタとラッチされた
COMRレジスタの値を比較し,一致を検出します。
○
PWM発生および出力制御回路
インターバルタイマ動作では,一致が検出されると割込み要求を発生し,出
力端子制御ビット2または3(CNTR3:OE2またはOE3)が"1"のとき,出力制御回路
によってPWM端子の出力レベルを反転します。このとき8ビットカウンタはクリ
アされます。
PWMタイマ動作では,一致が検出されると,PWM発生回路によってPWM端子の出
力レベルを"H"レベルから"L"レベルに変更します。この後,8ビットカウンタが
オーバフローすると"H"レベルになります。
■ PWMコンペアレジスタ1,2,(COMR1,COMR2)
8ビットカウンタのカウンタ値と比較する値をセットするレジスタです。
■ PWM制御レジスタ1,2,3(CNTR1,CNTR2,CNTR3)
動作モードの選択,動作の許可と禁止,カウントクロックの設定,割込み制御お
よび状態の確認などを行います。
動作モードをPWMタイマモード(PTX=1)とした場合,比較回路からの一致検出信
号による8ビットカウンタのクリアと割込み要求は禁止されます。
■ CK12セレクタ
入力クロックの切替え回路で,8ビットPWMタイマ2(CH2)の入力クロックをカウ
ントクロックセレクタ出力または8ビットPWMタイマ1(CH1)の方形波出力に切り替
えます。
■ CH12PWM出力制御回路
CH12PWMモードにおいて,CH1およびCH2のタイマ出力によってPWM波の"L"幅
(L→H)と周期(H→L)を制御します。
■ 2CH 8ビットPWMタイマに関連する割込み
IRQ8:CH1のインターバルタイマ機能で,カウンタ値とCOMR1,COMR2レジスタの設
定値が一致したときに割込み要求出力が許可(CNTR2:TIE1=1)されていれば,割込
み要求が発生します(通常のPWM機能動作時には割込み要求は発生しません)。
IRQ8:CH2のインターバルタイマ機能またはCH12PWMモードで,カウンタ値とCOMR1,
COMR2レジスタの設定値が一致したときに割込み要求が許可(CNTR2:TIE2=1)され
ていれば,割込み要求が発生します(通常のPWM機能動作時には割込み要求は発生
しません)
。
124
第7章 2CH 8ビットPWMタイマ
7.4
2CH 8ビット
8ビットPWM
ビットPWMタイマの端子
PWMタイマの端子
2CH 8ビットPWMタイマに関連する端子,端子のブロックダイヤグラムを示します。
■ 2CH 8ビットPWMタイマに関連する端子
2CH 8ビットPWMタイマに関連する端子は,P46/UI/PWM1,P47/PWM2端子です。
○
P46/UI/PWM1,P47/PWM2端子
これらの端子は,汎用入出力ポートとしての機能(P46,P47)と,インター
バルタイマまたは PWMタイマ出力としての機能(PWM1,PWM2)を兼用していま
す。
PWM1,PWM2:インターバルタイマ機能時,この端子に方形波が出力されます。
PWMタイマ機能時,この端子にPWM波が出力されます。
P46/UI/PWM1 , P47/PWM2 端 子 は , 出 力 端 子 制 御 ビ ッ ト を 専 用 端 子 に 設 定
(CNTR3:OE=1)すると,ポート方向レジスタの値に関係なく自動的に出力端子
となり,PWM1,PWM2端子として機能します。
■ 2CH 8ビットPWMタイマに関連する端子のブロックダイヤグラム
図 7.4-1 2CH 8ビットPWMタイマに関連する端子のブロックダイヤグラム
参考:
PWM出力端子として使用する場合は,外部端子にプルアップ抵抗が必要です。
125
第7章 2CH 8ビットPWMタイマ
7.5
2CH 8ビット
8ビットPWM
ビットPWMタイマのレジスタ
PWMタイマのレジスタ
2CH 8ビットPWMタイマに関連するレジスタを示します。
■ 2CH 8ビットPWMタイマに関連するレジスタ
図 7.5-1 2CH 8ビットPWMタイマに関連するレジスタ
<注意事項>
PWMコンペアレジスタ1,2(COMR1, COMR2)は,書込み専用(ライトオンリー)のため,ビット
操作命令は使用できません。
126
第7章 2CH 8ビットPWMタイマ
7.5.1
PWM制御レジスタ
PWM制御レジスタ1
制御レジスタ1(CNTR1)
CNTR1)
PWM制御レジスタ1(CNTR1)は,1CH,2CHの8ビットPWMタイマの動作モード(イン
ターバルタイマ動作,PWMタイマ動作)の選択,PWMタイマ機能の分解能の切替えおよ
びカウントクロックの選択を行うレジスタです。
■ PWM制御レジスタ1(CNTR1)
図 7.5-2 PWM制御レジスタ1(CNTR1)
127
第7章 2CH 8ビットPWMタイマ
表 7.5-1 PWM制御レジスタ1(CNTR1)の各ビットの機能説明
ビット名
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
128
機能
・CH1のインターバルタイマ動作とPWMタイマ動作の選択を行うビットです。
・このビットを"0"に設定するとインターバルタイマ動作となり,"1"に設定する
PTX1:
とPWMタイマ動作となります。
CH1動作モード
<注記>
選択ビット
このビットへの書込みは,カウンタ動作停止(TPE1=0),割込み禁止(TIE1=0),
割込み要求フラグビットをクリア(TIR1=0)して行ってください。
また,CH12PWMモード(CNTR3:CH12=1)時は,このビットは意味を持ちません。
・CH2のインターバルタイマ動作とPWMタイマ動作の選択を行うビットです。
・このビットを"0"に設定するとインターバルタイマ動作となり,"1"に設定する
PTX2:
とPWMタイマ動作となります。
CH2動作モード
<注記>
選択ビット
このビットへの書込みは,カウンタ動作停止(TPE2=0),割込み禁止(TIE2=0),
割込み要求フラグビットをクリア(TIR2=0)して行ってください。また,CH12PWM
モード(CNTR3:CH12=1)時は,このビットは意味を持ちません。
・CH1のPWMタイマ動作時に,8ビットPWMモードと7ビットPWMモード(高速モード)
の切替えを行うビットです。
P7M1:
・このビットを"0"に設定すると8ビットPWMモードとなり,"1"に設定すると
CH1PWM分解能
7ビットPWMモードとなります。
切替えビット
<注記>
インターバルタイマ動作時には,"1"を書き込まないでください。
・CH2のPWMタイマ動作時に,8ビットPWMモードと7ビットPWMモード(高速モード)
の切替えを行うビットです。
P7M2: CH2PWM分解 ・このビットを"0"に設定すると8ビットPWMモードとなり,"1"に設定すると
7ビットPWMモードとなります。
能切替えビット
<注記>
インターバルタイマ動作時には,"1"を書き込まないでください。
・CH1のインターバルタイマ機能,PWMタイマ機能のカウントクロックを
選択します。
SC11,SC10:
CH1クロック
・4種類の内部カウントクロックを選択できます。
<注記>
選択ビット
CH1のカウンタが動作中(TPE1=1)のときは,切り替えないでください。
・CH2のインターバルタイマ機能, PWMタイマ機能のカウントクロックを選択し
SC21,SC20:
ます。
・4種類の内部カウントクロックを選択できます。
CH2クロック
選択ビット
<注記>
CH2のカウンタが動作中(TPE2=1)のときは,切り替えないでください。
第7章 2CH 8ビットPWMタイマ
7.5.2
PWM制御レジスタ
PWM制御レジスタ2
制御レジスタ2(CNTR2)
CNTR2)
PWM制御レジスタ2(CNTR2)は,1CH,2CH 8ビットPWMタイマの動作の許可と禁止,
CK12モードの選択,割込み制御および状態の確認を行うレジスタです。
■ PWM制御レジスタ2(CNTR2)
図 7.5-3 PWM制御レジスタ2(CNTR2)
129
第7章 2CH 8ビットPWMタイマ
表 7.5-2 PWM制御レジスタ2(CNTR2)の各ビットの機能説明
ビット名
TPE1:
bit7 CH1カウンタ
動作許可ビット
TPE2:
bit6 CH2カウンタ
動作許可ビット
bit5
bit4
bit3
bit2
bit1
bit0
130
機能
・CH1のインターバル動作,PWMタイマ動作の起動/停止を行うビットです。
・このビットを"1"に設定するとカウント動作を開始し,"0"に設定するとカウン
タ値を"00H"にクリアして停止します。
・CH2のインターバル動作,PWMタイマ動作の起動/停止を行うビットです。
・このビットを"1"に設定するとカウント動作を開始し,"0"に設定するとカウン
タ値を"00H"にクリアして停止します。
・CH2の入力クロックの切替えを行うビットです。
・このビットを"0"に設定すると,SC21, SC20ビットで選択されたクロックが入
力クロックになります。
CK12:
・このビットを"1"に設定すると,SC21, SC20ビットの値に関係なく,CH1の方形
CH2入力
波出力が入力クロックとなり,CK12モードとして動作します。
クロック切替え
<注記>
ビット
CH12PWMモード(CNTR3:CH12=1)時は,"1"を書き込まないでください。
また,CH1がPWMタイマ動作時(CNTR1:PTX1=1)は,"1"を書き込まないでくだ
さい。
・リード時の値は不定です。
未使用ビット
・ライトは動作に影響を与えません。
・CH1のインターバル機能時,カウント値とPWMコンペアレジスタ1(COMR1)値が
一致すると"1"にセットされます。
TIR1:
・このビットと,CH1割込み要求許可ビット(TIE1)が"1"のとき,CPUへの割込
CH1割込み要求
み要求を出力します。
フラグビット
・CH12PWMモード以外のPWMタイマ機能時,割込み要求は発生しません。
・書込み時は"0"でクリアされ,"1"ではこのビットに影響を与えません。
・CH2のインターバルタイマ機能時およびCH12PWMモード時,カウント値とPWMコ
ンペアレジスタ2(COMR2)値が一致すると"1"にセットされます。
TIR2:
・このビットとCH2割込み要求許可ビット(TIE2)が"1"のとき,CPUへの割込み
CH2 割 込 み 要 求
要求を出力します。
フラグビット
・CH12PWMモード以外のPWMタイマ機能時,割込み要求は発生しません。
・書込み時は"0"でクリアされ,"1"ではこのビットに影響を与えません。
・CH1のCPUへの割込み要求出力の許可/禁止を行うビットです。
・このビットとCH1割込み要求フラグビット(TIR1)が"1"のとき,割込み要求を
TIE1:
出力します。
CH1割込み要求
<注記>
許可ビット
CH12PWMモード(CNTR3:CH12=1)時は,割込み要求出力を禁止(TIE1=0)して
ください。
TIE2:
・CH2のCPUへの割込み要求出力の許可/禁止を行うビットです。
CH2割込み要求 ・このビットとCH2割込み要求フラグビット(TIR2)が"1"のとき,割込み要求を
許可ビット
出力します。
第7章 2CH 8ビットPWMタイマ
7.5.3
PWM制御レジスタ
PWM制御レジスタ3
制御レジスタ3(CNTR3)
CNTR3)
PWM制御レジスタ3(CNTR3)は,1CH,2CH 8ビットPWMタイマのCH12PWMモードの選
択および出力端子の制御を行うレジスタです。
■ PWM制御レジスタ3(CNTR3)
図 7.5-4 PWM制御レジスタ3(CNTR3)
131
第7章 2CH 8ビットPWMタイマ
表 7.5-3 PWM制御レジスタ3(CNTR3)の各ビットの機能説明
ビット名
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
132
機能
・リード時の値は不定です。
未使用ビット
・ライトは動作に影響を与えません。
・P47/PWM2端子の汎用ポートと専用端子の切替えを行うビットです。
・このビットを"0"に設定すると汎用ポート(P47)となり,"1"に設定すると
OE2:
出 力 端 子 制 御 専用端子(PWM2)となります。
ビット2
・PWM2端子はCH2出力で,インターバルタイマ機能時は方形波が,PWMタイマ
機能時はPWM波が出力されます。
・P46/PWM1/UI端子の汎用ポートと専用端子の切替えを行うビットです。
・このビットを"0"に設定すると,汎用ポート(P46)となり,"1"に設定すると
OE3:
出 力 端 子 制 御 専用端子(PWM1)となります。
・PWM1端子はCH1出力で,インターバルタイマ機能時は方形波が,PWMタイマ時は
ビット3
PWM波が出力されます。また,CH12PWMモード時はPWM波が出力されます。
・通常モードとCH12PWMモードの切替えを行うビットです。
・このビットに"0"を設定するとCH1とCH2は独立に動作できます。"1"に設定する
と,CH1で"L"幅をCH2で周期を指定するCH12PWMモードとして動作します。
・CH12PWMモードの場合,動作モード選択ビット(CNTR1:PTX1,PTX2)は意味を
CH12:
PWMモード
持ちません。
<注記>
設定ビット
CK12モード設定時(CNTR2:CK12=1)は,"1"を書き込まないでください。
また,CH1またはCH2のカウンタが動作中(CNTR2:TIE1またはTIE2=1)は書き換
えないでください。
未使用ビット
・リード時の値は不定です。
・ライトは動作に影響を与えません。
第7章 2CH 8ビットPWMタイマ
7.5.4
PWMコンペアレジスタ
PWMコンペアレジスタ1
コンペアレジスタ1(COMR1)
COMR1)
PWMコンペアレジスタ1(COMR1)は,CH1のデータレジスタです。インターバルタイ
マ機能動作時はこのレジスタ値がインターバル時間となり,通常のPWMタイマ機能動
作時はパルスの"H"幅となります。また,CH12PWMモード時はパルスの"L"幅となりま
す。
■ PWMコンペアレジスタ1(COMR1)
図 7.5-5に,PWMコンペアレジスタ1のビット構成を示します。
このレジスタは書込み専用(ライトオンリー)のため,ビット操作命令は使用で
きません。
図 7.5-5 PWMコンペアレジスタ1(COMR1)
○
インターバルタイマ動作時(8ビットタイマモードおよびCK12モード)
カウンタ値と比較する値をセットするレジスタで,インターバル時間(方形
波出力周波数)を指定します。
このレジスタに書き込んだ設定値とカウンタ値が一致するとカウンタはクリ
アされ,割込み要求フラグビットが"1"にセット(CNTR2:TIR1=1)されます。
カウンタが動作中に,COMR1レジスタに値を書き込んだ場合,その値は次のサ
イクル(一致検出後)より有効になります。
参考:
8ビットタイマ動作およびCK12モード動作時のCOMR1レジスタの設定値は,以
下の式で算出できます。ただし,インストラクションサイクルはクロックモー
ドやギア機能の影響を受けます。
COMR1レジスタ値=インターバル時間 / (カウントクロック周期×インストラク
ションサイクル)-1
133
第7章 2CH 8ビットPWMタイマ
○
PWMタイマ動作時(8ビットPWMモードおよび7ビットPWMモード)
カウンタ値と比較する値をセットするレジスタで,パルスの"H"幅を指定しま
す。
このレジスタに書き込まれた設定値とカウンタ値が一致するまで,PWM1端子
より"H"を出力し,一致するとカウンタ値がオーバフローするまで"L"を出力し
ます。
カウンタが動作中に,COMR1レジスタに値を書き込んだ場合,その値は次のサ
イクル(オーバフロー後)より有効になります。
参考:
PWMタイマ動作時のCOMR1レジスタの設定値および周期は,以下の式で算出で
きます。ただし,インストラクションサイクルはクロックモードやギア機能の
影響を受けます。
・ 8ビットPWMモード
COMR1レジスタ値=デューティ比×256
PWM波周期=カウントクロック周期×インストラクションサイクル×256
・ 7ビットPWMモード
COMR1レジスタ値=デューティ比×128
PWM波周期=カウントクロック周期×インストラクションサイクル×128
○
CH12PWMモード動作時
カウンタ値と比較する値をセットするレジスタで,パルスの"L"幅を指定しま
す。
カウンタ値が,このレジスタに書き込まれた設定値と一致するまで,PWM1端
子より"L"を出力し,一致すると"H"を出力します。
カウンタが動作中に,COMR1レジスタに値を書き込んだ場合,その値は次のサ
イクルより有効になります。
参考:
CH12PWMモード動作時のCOMR1レジスタの設定値は,以下の式で算出できます。
ただし,インストラクションサイクルはクロックモードやギア機能の影響を受
けます。
COMR1レジスタ値=PWM波の"L"幅の時間/(カウントクロック周期×インストラ
クションサイクル)-1
134
第7章 2CH 8ビットPWMタイマ
7.5.5
PWMコンペアレジスタ
PWMコンペアレジスタ2
コンペアレジスタ2(COMR2)
COMR2)
PWMコンペアレジスタ2(COMR2)は,CH2のデータレジスタです。インターバルタイ
マ機能動作時はこのレジスタ値がインターバル時間となり,通常のPWMタイマ機能動
作時はパルスの"H"幅となります。また,CH12PWMモード時はPWM波の周期となります。
■ PWMコンペアレジスタ2(COMR2)
図 7.5-6に,PWMコンペアレジスタ2のビット構成を示します。
このレジスタは書込み専用(ライトオンリー)のため,ビット操作命令は使用で
きません。
図 7.5-6 PWMコンペアレジスタ2(COMR2)
○
インターバルタイマ動作時(8ビットタイマモードおよびCK12モード)
カウンタ値と比較する値をセットするレジスタで,インターバル時間を指定
します。
このレジスタに書き込んだ設定値とカウンタ値が一致するとカウンタはクリ
アされ,割込み要求フラグビットが"1"にセット(CNTR2:TIR2=1)されます。
カウンタが動作中に,COMR2レジスタに値を書き込んだ場合,その値は次のサ
イクル(一致検出後)より有効になります。
参考:
インターバルタイマ動作時のCOMR2レジスタの設定値は,以下の式で算出でき
ます。ただし,インストラクションサイクルはクロックモードやギア機能の影
響を受けます。
・8ビットタイマモード
COMR2レジスタ値=インターバル時間/(カウントクロック周期×インストラ
クションサイクル)-1
・CK12モード
COMR2レジスタ値=インターバル時間/CH1方形波出力-1
135
第7章 2CH 8ビットPWMタイマ
○
PWMタイマ動作時(8ビットPWMモードおよび7ビットPWMモード)
カウンタ値と比較する値をセットするレジスタで,パルスの"H"幅を指定しま
す。
このレジスタに書き込まれた設定値とカウンタ値が一致するまで,PWM2端子
より"H"を出力し,一致するとカウンタ値がオーバフローするまで"L"を出力し
ます。
カウンタが動作中に,COMR2レジスタに値を書き込んだ場合,その値は次のサ
イクル(オーバフロー後)より有効になります。
参考:
PWMタイマ動作時のCOMR2レジスタの設定値および周期は,以下の式で算出で
きます。ただし,インストラクションサイクルはクロックモードやギア機能の
影響を受けます。
・8ビットPWMモード
COMR2レジスタ値=デューティ比×256
PWM波周期=カウントクロック周期×インストラクションサイクル×256
・7ビットPWMモード
COMR2レジスタ値=デューティ比×128
PWM波周期=カウントクロック周期×インストラクションサイクル×128
○
CH12PWMモード動作時
カウンタ値と比較する値をセットするレジスタで,PWM波形の周期を指定しま
す。
このレジスタに書き込んだ設定値とカウンタ値が一致するとCH1とCH2のカウ
ンタは同時にクリアされ,割込み要求フラグビット(CNTR2:TIR2)が"1"にセッ
トされます。
このとき,PWM1端子は"L"レベルとなります。
カウンタが動作中に,COMR2レジスタに値を書き込んだ場合,その値は次のサ
イクルより有効になります。
参考:
CH12PWMモード動作時のCOMR2レジスタの設定値は,以下の式で算出できます。
ただし,インストラクションサイクルはクロックやギア機能の影響を受けます。
COMR2レジスタ値=PWM波の1周期の時間/(カウントクロック周期×インストラ
クションサイクル)-1
136
第7章 2CH 8ビットPWMタイマ
7.6
2CH 8ビット
8ビットPWM
ビットPWMタイマの割込み
PWMタイマの割込み
2CH 8ビットPWMタイマの割込み要因としては,インターバルタイマ機能動作時のカ
ウンタ値とPWMコンペアレジスタ値の一致があります。CH12PWMモード以外のPWMタイ
マ機能動作時には,割込み要求は発生しません。
■ インターバルタイマ機能およびCH12PWMモード動作時の割込み
カウンタ値が"00H"より,選択したカウントクロックでカウントアップし,PWMコ
ンペアレジスタ(COMR)値に一致すると,対応する割込み要求フラグビット
(CNTR2:TIR1,TIR2)が"1"にセットされます。
そのとき,割込み要求許可ビットを許可(CNTR2:TIE1=1,TIE2=1)していると,
CPUへ割込み要求(IRQ8)が発生します。割込み処理ルーチンでTIRビットに"0"を
書込み,割込み要求をクリアしてください。
なお,TIR1,TIR2ビットはTIE1,TIE2ビットの値に関係なく,カウンタ値と設定
値が一致すれば"1"にセットされます。
<注意事項>
CH12PWMモード時の割込みについては,CH1は割込み禁止(CNTR2:TIE1=0)とし,使用しないで
ください。CH2はインターバルタイマ機能時と同様に使用できます。
参考:
カウンタ値とCOMRレジスタ値の一致が,カウンタ停止(CNTR2:TPE1=0,TPE2=0)
と同時に起こった場合は,TIRビットのセットは行われません。
TIRビットが"1"のとき,TIEビットを禁止から許可(0→1)にすると,直ちに
割込み要求が発生します。
■ 2CH 8ビットPWMタイマの割込みに関連するレジスタとベクトルテーブル
表 7.6-1 2CH 8ビットPWMタイマの割込みに関連するレジスタとベクトルテーブル
割込み名
IRQ8
割込みレベル設定レジスタ
レジスタ
設定ビット
ILR3(007DH)
L81(bit1)
L80(bit0)
ベクトルテーブルのアドレス
上位
下位
FFEAH
FFEBH
参考:
割込み動作については「3.4.2
割込み動作時の処理」を参照してください。
137
第7章 2CH 8ビットPWMタイマ
7.7
インターバルタイマ機能の動作説明
2CH 8ビットPWMタイマの,8ビットタイマモードおよびCK12モードのインターバル
タイマ機能の動作について説明します。
■ インターバルタイマ機能の動作
2CH 8ビットPWMタイマ(CH1,CH2)をそれぞれのモードでインターバルタイマ機
能として動作させるには,図 7.7-1の設定が必要です。
図 7.7-1 インターバルタイマ機能の設定
カウンタを起動すると,選択したカウントクロックの立上りで,"00H"よりカウ
ントアップを始めます。カウンタ値がCOMRレジスタに設定した値(比較値)と一致
すると,次のカウントクロックの立上りで,PWM端子のレベルを反転し,カウンタ
をクリアし,割込み要求フラグビットをセット(CNTR2:TIR1,TIR2=1)して,再び
"00H"よりカウントを始めます。
CK12モード時はCH1の方形波出力がCH2のカウントクロックになります。
図 7.7-2に,2CH8ビットPWMタイマの動作を示します。
138
第7章 2CH 8ビットPWMタイマ
図 7.7-2 2CH 8ビットPWMタイマの動作
参考:
・COMRレジスタの値を"00H"にすると,PWM端子の出力は選択したカウントク
ロック周期で反転します。
・インターバルタイマ機能時,カウンタ停止状態(CNTR2:TPE1=0, TPE2=0)
のPWM端子の出力は"L"レベルです。
<注意事項>
インターバルタイマ機能動作中(CNTR2:TPE1,TPE2=1)は,対応するカウントクロック周期
(CNTR1:SC11, SC10またはSC21, SC20)を変更しないでください。ただし,CK12モード時はSC21,
SC20ビットは意味を持ちません。
139
第7章 2CH 8ビットPWMタイマ
7.8
8ビットPWM
ビットPWMモードの動作説明
PWMモードの動作説明
2CH 8ビットPWMタイマの,8ビットPWMモードの動作について説明します。
■ PWMタイマ機能の動作
2CH 8ビットPWMタイマ(CH1,CH2)を8ビットPWMモードでPWMタイマ機能として
動作させるには,図 7.8-1の設定が必要です。
図 7.8-1 8ビットPWMモードの設定
140
第7章 2CH 8ビットPWMタイマ
カウンタを起動すると,選択したカウントクロックの立上りで,"00H"よりカウ
ントアップを始めます。PWM端子出力(PWM波形)は,カウンタ値がCOMRレジスタに
設 定 し た 値 と 一 致 す る ま で "H" で あ り , そ の 後 カ ウ ン タ 値 が オ ー バ フ ロ ー
(FFH→00H)するまで"L"となります。
CK12ビットを"1"に設定し,CH1を8ビットタイマモード,CH2をPWMモードで動作
させると,CK12PWMモードとなります。
図 7.8-2に,PWM端子に出力されるPWM波形を示します。
図 7.8-2 8ビットPWMモードのPWM波形出力例
参考:
PWMタイマ機能時,カウンタ停止状態(CNTR2:TPE1=1,TPE2=0)のPWM端子の
出力は,停止直前のレベルを保持しています。
<注意事項>
PWMタイマ機能動作中(CNTR2:TPE1=1,TPE2=1)は,対応するカウントクロック周期(CNTR1:SC11,
SC10またはSC21,SC20)を変更しないでください。
CH1がPWMタイマ動作中はCK12モード(CNTR2:CK12=1)に設定できません。
141
第7章 2CH 8ビットPWMタイマ
7.9
7ビットPWM
ビットPWMモードの動作説明
PWMモードの動作説明
2CH 8ビットPWMタイマの,7ビットPWMモード(高速モード)の動作について説明し
ます。
■ 高速PWMタイマ機能の動作
2CH 8ビットPWMタイマ(CH1,CH2)を7ビットPWMモードでPWMタイマ機能として
動作させるには,図 7.9-1の設定が必要です。
図 7.9-1 7ビットPWMモードの設定
カウンタを起動すると,選択したカウントクロックの立上りで,"00H"よりカウ
ントアップを始めます。PWM端子出力(PWM波形)は,カウンタ値がCOMRレジスタに
設 定 し た 値 と 一 致 す る ま で "H" で あ り , そ の 後 カ ウ ン タ 値 が オ ー バ フ ロ ー
(7FH→00H)するまで"L"となります。
7ビットPWMモードは8ビットPWMモードより,カウンタのビット数が1ビット少な
いため,PWM周波数が2倍(周期が半分)の高速動作となります。
CK12ビットを"1"に設定し,CH1を8ビットタイマモード,CH2をPWMモードで動作
させると,CK12PWMモードとなります。
図 7.9-2に,PWM端子に出力されるPWM波形を示します。
142
第7章 2CH 8ビットPWMタイマ
図 7.9-2 7ビットPWMモードのPWM波形出力例
参考:
PWMタイマ機能時,カウンタ停止状態(CNTR2:TPE1=1,TPE2=0)のPWM端子の
出力は,停止直前のレベルを保持しています。
<注意事項>
PWMタイマ機能動作中(CNTR2:TPE1=1,TPE2=1)は,対応するカウントクロック周期(CNTR1:SC11,
SC10またはSC21,SC20)を変更しないでください。
CH1がPWMタイマ動作中はCK12モード(CNTR2:CK12=1)に設定できません。
143
第7章 2CH 8ビットPWMタイマ
7.10
CH12PWMモードの動作説明
CH12PWMモードの動作説明
2CH 8ビットPWMタイマの,CH12PWMモードの動作について説明します。
■ CH12PWMモードの動作
2CH 8ビットPWMタイマ(CH1,CH2)をCH12PWMモードでPWMタイマ機能として動作
させるには,図 7.10-1の設定が必要です。
図 7.10-1 CH12PWMモードの設定
144
第7章 2CH 8ビットPWMタイマ
CH1とCH2のカウンタはカウンタを起動すると,それぞれ選択したカウントクロッ
クの立上りで,"00H"よりカウントアップを始めます。PWM端子出力(PWM波形)は,
CH1カウンタ値がCOMR1レジスタに設定した値と一致するまで"L"であり,一致する
と"H"となります。CH2カウンタ値がCOMR2レジスタに設定した値と一致するとCH1
とCH2のカウンタは同時にクリアされ,再び"00H"よりカウントを始めます。このと
き,PWM端子出力は"L"となり,割込み要求フラグビットがセット(CNTR2:TIR2=1)
されます。
カウンタの起動はCH1とCH2を同時(CNTR2:TPE1=1,TPE2=1)に行ってください。
別々に起動するとPWM波の最初の1周期の"L"幅または周期に影響があります。
PWM波の"L"幅となるCH1のタイマ時間が,PWM波の周期となるCH2のタイマ時間よ
りも大きくなればPWM波は出力されなくなります。
図 7.10-2に,CH1とCH2に同じカウントクロック周期を選択した場合の,PWM端子
に出力されるPWM波形を示します。
図 7.10-2 PWM波形(PWM端子)出力例
参考:
PWMタイマ機能時,カウンタ停止状態(CNTR2:TPE1=1,TPE2=0)のPWM端子の
出力は,停止直前のレベルを保持しています。
<注意事項>
PWMタイマ機能動作中(CNTR2:TPE1=1,TPE2=1)は,カウントクロック周期(CNTR1:SC11,SC10
およびSC21,SC20)を変更しないでください。
CH12PWMモード動作中はCK12モード(CNTR2:CK12=1)に設定できません。また,CH1の割込み要
求出力は禁止(CNTR2:TIE1=0)してください。
145
第7章 2CH 8ビットPWMタイマ
7.11
2CH 8ビット
8ビットPWM
ビットPWMタイマ
PWMタイマ のプリスケーラの動作説明
2CH 8ビットPWMタイマのプリスケーラの動作について説明します。
■ プリスケーラの動作
2CH 8ビットPWMタイマのプリスケーラはPWM制御レジスタ2のカウンタ動作許可
ビット(CNTR2:TPE1,TPE2)のいずれかが"1"のとき動作を許可されます。
したがって,TPE1,TPE2を同時に"1"にすれば,CH1,CH2共にはじめの1周期目か
ら全く同じ動作をします。
しかし,すでにTPE1,TPE2のいずれかが"1"となっている状態で他方のカウンタ
の動作を許可した場合,カウントアップ開始が非同期となるため,最初の1周期は
カウントクロック周期の1サイクル以内の差を生じます。
図 7.11-1にプリスケーラの動作を,図 7.11-2にプリスケーラの出力を示します。
図 7.11-1 プリスケーラ動作
図 7.11-2 プリスケーラ出力
146
第7章 2CH 8ビットPWMタイマ
7.12
2CH 8ビット
8ビットPWM
ビットPWMタイマの動作中の各モードでの状態
PWMタイマの動作中の各モードでの状態
2CH 8ビットPWMタイマ動作中にスリープモードへの移行があった時,ストップモー
ドへの移行があったときおよび途中停止の要求があったときの動作を説明します。
■ スタンバイモードおよび途中停止時の動作
インターバルタイマ機能およびPWMタイマ機能の動作中にスリープモードへ移行
したとき,ストップモードへ移行したとき,途中停止の要求があったときのカウン
タ値の状態を図 7.12-1,図 7.12-2に示します。
ストップモードに移行すると,カウンタは値を保持して停止します。ストップ
モードが外部割込みによって解除されると,カウンタは保持した値から動作を始め
ます。このため初回のインターバル時間やPWM波の周期は設定した値となりません。
ストップモード解除後は,8ビットPWMタイマを初期化しなおしてください。
○
インターバルタイマ機能時
図 7.12-1 スタンバイモードおよび途中停止時のカウンタの動作(インターバル機能時)
147
第7章 2CH 8ビットPWMタイマ
○
PWMタイマ機能時
図 7.12-2 スタンバイモードおよび途中停止時の動作(PWMタイマ機能時)
148
第7章 2CH 8ビットPWMタイマ
7.13
2CH 8ビット
8ビットPWM
ビットPWMタイマ使用上の注意
PWMタイマ使用上の注意
2CH 8ビットPWMタイマを使用するにあたっての注意点を示します。
■ 2CH 8ビットPWMタイマ使用上の注意
○
誤差
プログラムによるカウンタの起動と,選択したカウントクロックによるカウ
ントアップ開始が非同期であるため,カウンタ値とPWMコンペアレジスタ(COMR)
値の一致を検出するまでの誤差として,最大でカウントクロック周期の1サイク
ル分短くなることがあります。図 7.13-1に,カウント動作開始までの誤差を示
します。
図 7.13-1 カウント動作開始までの誤差
○
プログラムで設定する場合の注意
インターバルタイマ機能およびPWMタイマ機能動作中(CNTR2:TPE1=1,
TPE2=1)は,対応するカウントクロック周期(CNTR1:SC11, SC10または
SC21, SC20)を変更しないでください。
インターバルタイマ機能とPWMタイマ機能の切替え(CNTR1:PTX1, PTX2)
は,カウンタ停止(CNTR2:TPE=1,TPE2=0)
,割込み禁止(CNTR2:TIE1=0,
TIE2=0)
,割込み要求クリア(CNTR2:TIR1=0, TIR2=0)の状態で行ってく
ださい。
CK12モード(CNTR2:CK12=1)時は,CH12PWMモード(CNTR3:CH12=1)およ
びCH1のPWMタイマ動作(CNTR1:PTX1=1)を設定しないでください。
CH12PWMモード時は,CH1の割込み要求出力を禁止(CNTR2:TIE1=0)して
ください。また,CK12モードを設定しないでください。
割込み要求フラグビット(CNTR2:TIR1, TIR2)が"1"で,割込み要求許可
ビットが許可(CNTR2:TIE1=1, TIE2=1)された状態では,割込み処理か
ら復帰できません。TIRビットのクリアは必ず行ってください。
カウンタ値とCOMRレジスタ値の一致が,カウンタ停止(CNTR2:TPE1=0,
TPE2=0)と同時に起こった場合は,TIRビットのセットは行われません。
149
第7章 2CH 8ビットPWMタイマ
7.14
2CH 8ビット
8ビットPWM
ビットPWMタイマのプログラム例(インターバル
PWMタイマのプログラム例(インターバル
機能)
2CH 8ビットPWMタイマの8ビットタイマモードおよびCH12モードのインターバルタ
イマ機能のプログラム例を示します。
■ 8ビットタイマモードのプログラム例
○
処理仕様
CH1を8ビットタイマモードでインターバルタイマとして動作させます。
3.2msのインターバルタイマ割込みを繰り返し発生します。
インターバル時間で反転する方形波をPWM1端子に出力します。
メインクロック発振12 MHz時にインターバル時間が約3.2msとなるCOMR1
レジスタ値を以下に示します。カウントクロックは内部カウントクロッ
クの64tinst(tinst:クロック速度(ギア)最高速時)とします。
-
○
150
COMR1レジスタ値=3.2ms/(64×4/12 MHz)-1=149(095H)
コーディング例(Softune V1準拠)
第7章 2CH 8ビットPWMタイマ
■ CK12モードのプログラム例
○
処理仕様
CH1はインターバルタイマ時間を3.2ms(方形波出力周期=6.4ms)とし,
割込みは使用しません。
CH2はCH1をカウントクロックとし,64msのインターバルタイマ割込みを
繰り返し発生します。
CH2のインターバル時間で反転する方形波をPWM2端子に出力します。
メインクロック発振12 MHz時にCH1タイマのインターバル時間が約3.2ms
となるCOMR1レジスタ値を以下に示します。カウントクロックは内部カウ
ントクロックの64tinst(tinst:クロック速度(ギア)最高速時)とします。
-
COMR1レジスタ値=3.2ms/(64×4/12MHz)-1=149(095H)
CH1の方形波出力でCH2タイマのインターバル時間が約64msとなるCOMR2レジ
スタ値を以下に示します。
○
COMR2レジスタ値=64ms/(3.2×2)ms=10(00AH)
コーディング例(Softune V1準拠)
151
第7章 2CH 8ビットPWMタイマ
152
第7章 2CH 8ビットPWMタイマ
7.15
2CH 8ビット
8ビットPWM
ビットPWMタイマのプログラム例(
PWMタイマのプログラム例(PWM
タイマのプログラム例(PWMタイマ機
PWMタイマ機
能)
2CH 8ビットPWMタイマの8ビットPWMモード,7ビットPWMモードおよびCH12PWMモー
ドのPWMタイマ機能のプログラム例を示します。
■ PWMタイマ機能のプログラム例
○
処理仕様
CH1を8ビットPWMモードでPWMタイマとして動作させ,PWM1端子に出力し
ます。
CH2を7ビットPWMモード(高速モード)でPWMタイマとして動作させPWM2
端子に出力します。
デューティ比50%のPWM波を発生し,その後デューティ比を25%に変更しま
す。
割込みは発生しません。
メインクロック発振12MHz時に,それぞれのカウントクロックを内部カウ
ントクロックの16tinst(tinst:クロック速度(ギア)最高速時)とした場合,
CH1のPWM波の周期は,16×2/6MHz×256=1.365ms,CH2のPWM波の周期は,
16×4/12MHz×128=6.82msとなります。
8ビットPWMモードで,デューティ比が50%となるCOMRレジスタ値を以下に
示します。
-
COMR1レジスタ値=50/100×256=128(080H)
7ビットPWMモードで,デューティ比が50%となるCOMRレジスタ値を以下に
示します。
○
COMR2レジスタ値=50/100×128=64(040H)
コーディング例(Softune V1準拠)
153
第7章 2CH 8ビットPWMタイマ
■ CH12PWMモードのプログラム例
○
処理仕様
デューティ比50%のPWM波を発生し,その後デューティ比を25%に変更しま
す。
割込みは使用しません。
メインクロック発振12MHz時に,それぞれのカウントクロックを内部カウ
ントクロックの16tinst(tinst:クロック速度(ギア)最高速時)として,COMR2
レジスタ値を128(80H)とした場合,PWM波の周期は,
16×4/12MHz×128=682.6msとなります。
デューティ比が50%となるCOMR1レジスタ値を以下に示します。
-
○
154
COMR1レジスタ値=50/100×128=64(040H)
コーディング例(Softune V1準拠)
第8章
外部割込み回路(レベル)
この章では,外部割込み回路(レベル)の機能と動作について説明します。
8.1 外部割込み回路(レベル)の概要
8.2 外部割込み回路の構成
8.3 外部割込み回路の端子
8.4 外部割込み回路のレジスタ
8.5 外部割込み回路の割込み
8.6 外部割込み回路の動作説明
8.7 外部割込み回路のプログラム例
155
第8章 外部割込み回路(レベル)
8.1
外部割込み回路(レベル)の概要
外部割込み回路は,7本の外部割込み端子に入力された信号のレベルを検出し,CPU
に対して一つの割込み要求を発生します。
■ 外部割込み回路の機能(レベル検出)
外部割込み回路は,外部割込み端子に入力された"L"レベルの信号を検出し,CPU
に対して割込み要求を発生する機能があります。この割込みによってスタンバイ
モードからの復帰を行い,通常動作状態に移行することができます。
外部割込み端子:7本(P31/ INT1 ∼P37/ INT7 )
外部割込み要因:外部割込み端子への"L"レベルの信号入力
割込み制御:外部割込み制御レジスタ(EIE)による,外部割込み入力の
許可と禁止
割込みフラグ:外部割込みフラグレジスタ(EIF)の外部割込み要求フラ
グビットによる"L"レベルの検出
割込み要求:それぞれの外部割込み要因をORして発生(IRQ0)
156
第8章 外部割込み回路(レベル)
8.2
外部割込み回路の構成
外部割込み回路は,以下の三つのブロックで構成されています。
・割込み要求発生回路
・外部割込み制御レジスタ(EIE)
・外部割込みフラグレジスタ(EIF)
■ 外部割込み回路のブロックダイヤグラム
図 8.2-1 外部割込み回路のブロックダイヤグラム
○
割込み要求発生回路
割込み要求発生回路は,外部割込み端子( INT1 ∼ INT7 )に入力された信号と,
外部割込み入力許可ビットによって割込み要求信号を発生します。
○
外部割込み制御レジスタ(EIE)
外部割込み入力許可ビット(IE1∼IE7)は,対応する外部割込み端子からの
"L"レベル入力を,許可または禁止します。
○
外部割込みフラグレジスタ(EIF)
外部割込み要求フラグビット(IF0)によって,発生した割込み要求信号の保
持およびクリアを行います。
○
外部割込み回路の割込み要因
IRQ0: INT1 ∼ INT7 のいずれかの外部割込み端子に"L"レベル信号が入力され,
かつ,その端子に対応する外部割込み入力許可ビットが"1"のとき,割込み要求
を発生します。
157
第8章 外部割込み回路(レベル)
8.3
外部割込み回路の端子
外部割込み回路に関連する端子,端子のブロックダイヤグラムを示します。
■ 外部割込み回路に関連する端子
外部割込み回路に関連する端子は,7本の外部割込み端子です。
○
P31/ INT1 ∼P37/ INT7
これらの外部割込み端子は,外部割込み入力(ヒステリシス入力)としての機能
と,汎用入出力ポートとしての機能を兼用しています。
P31/ INT1 ∼P37/ INT7 端子は,ポート方向レジスタ(DDR3)によって対応する端
子を入力ポートに設定し,外部割込み制御レジスタ(EIE)によって,外部割込み
入力を許可すると外部割込み入力端子( INT1 ∼ INT7 )として機能します。端子の
状態は,入力ポートに設定されているときは,いつでもポートデータレジスタ
(PDR3)から読み出すことができます。
表 8.3-1に,外部割込み回路に関連する端子を示します。
表 8.3-1 外部割込み回路に関連する端子
158
外部割込み端子
外部割込み入力として使用
(割込み入力許可)
汎用入出力ポートとして使用
(割込み入力禁止)
P31/INT1
INT1(EIE:IE1=1, DDR3:bit1=0)
P31(EIE:IE1=0)
P32/ INT2
INT2 (EIE:IE2=1, DDR3:bit2=0)
P32(EIE:IE2=0)
P33/INT3
INT3 (EIE:IE3=1, DDR3:bit3=0)
P33(EIE:IE3=0)
P34/ INT4
INT4 (EIE:IE4=1, DDR3:bit4=0)
P34(EIE:IE4=0)
P35/INT5
INT5 (EIE:IE5=1, DDR3:bit5=0)
P35(EIE:IE5=0)
P36/ INT6
INT6 (EIE:IE6=1, DDR3:bit6=0)
P36(EIE:IE6=0)
P37/INT7
INT7 (EIE:IE7=1, DDR3:bit7=0)
P37(EIE:IE7=0)
第8章 外部割込み回路(レベル)
■ 外部割込み回路に関連する端子のブロックダイヤグラム
図 8.3-1 外部割込み回路に関連する端子のブロックダイヤグラム
参考:
プルアップオプション設定レジスタでプルアップ抵抗ありを選択した場合,
ストップモード(SPL=1)における端子の状態は,ハイインピーダンスではなく
"H"レベル(プルアップ状態)になります。ただし,リセット中のプルアップは
無効となり,Hi-zとなります。
159
第8章 外部割込み回路(レベル)
■ 外部割込み回路の割込み許可ビットと外部割込み端子との関係
割込み許可ビットと外部割込み端子との関係は,表 8.3-2のとおりです。
表 8.3-2 割込み許可ビットと外部割込み端子との対応
レジスタ
EIE
160
ビット名
外部割込み端子
bit1
IE1
INT1
bit2
IE2
INT2
bit3
IE3
INT3
bit4
IE4
INT4
bit5
IE5
INT5
bit6
IE6
INT6
bit7
IE7
INT7
第8章 外部割込み回路(レベル)
8.4
外部割込み回路のレジスタ
外部割込み回路のレジスタ
外部割込み回路に関連するレジスタを示します。
■ 外部割込み回路に関連するレジスタ
図 8.4-1 外部割込みに関連するレジスタ
161
第8章 外部割込み回路(レベル)
8.4.1
外部割込み制御レジスタ(
外部割込み制御レジスタ(EIE
御レジスタ(EIE)
EIE)
外部割込み制御レジスタ(EIE)は,外部割込み端子INT1 ∼INT7 に対する割込み入
力の許可と禁止を行います。
■ 外部割込み制御レジスタ(EIE)
図 8.4-2 外部割込み制御レジスタ(EIE)
表 8.4-1 外部割込み制御レジスタ(EIE)の各ビットと外部割込み端子との対応
ビット名
bit7
bit6
bit5
bit4
bit3
bit2
bit1
外部割込み端子
IE7
IE6
IE5
IE4
IE3
IE2
IE1
INT7
INT6
INT5
INT4
INT3
INT2
INT1
■ 外部割込み制御レジスタ(EIE)の各ビットの機能説明
ビット名
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
162
機能
・これらのビットによって,INT1 ∼INT7 の外部割込み端子に対する
割込み入力の許可と禁止を行います。
・これらのビットに"1"をセットすると,対応する外部割込み端子は
外部割込みの入力端子として機能し,外部割込み入力を受け付け
ます。
・また,"0"をセットすると,対応する外部割込み端子は汎用ポート
IE1∼IE7:
外部割込み入 として機能し,外部割込み入力を受け付けません。
力許可ビット 〔参考〕
・外部割込み端子を使用する場合,ポート方向レジスタ(DDR3)の
対応するビットに"0"を書き込み,端子を入力に設定してくださ
い。
外部割込み入力許可ビットの状態にかかわらず,外部割込み端子
の状態は,ポートデータレジスタ(PDR3)により,直接読み出せ
ます。
予約ビット
予約ビットです。必ず"0"を設定してください。
第8章 外部割込み回路(レベル)
8.4.2
外部割込みフラグレジスタ(EIF
外部割込みフラグレジスタ(EIF)
EIF)
外部割込みフラグレジスタ(EIF)は,レベル割込みの検出と割込み要求フラグの
クリアを行います。
■ 外部割込みフラグレジスタ(EIF)
図 8.4-3 外部割込みフラグレジスタ(EIF)
表 8.4-2 外部割込みフラグレジスタ(EIF)の各ビットの機能説明
ビット名
bit7
bit6
bit5
bit4
bit3
bit2
bit1
未使用ビット
機能
・リード時の値は不定です。
・ライトは動作に影響を与えません。
・外部割込み入力が許可になっている外部割込み端子( INT1 ∼
bit0
IF0:
外部割込み
要求フラグ
ビット
INT7 )に,"L"レベルの信号が入力されると"1"にセットされま
す。
・書込み時は,"0"でクリアされ,"1"ではこのビットは変化せず,
ほかへの影響もありません。
<注記>
外部割込み制御レジスタの外部割込み入力許可ビット(EIE:IE0
∼IE7)は,外部割込みの入力を禁止するだけです。割込み要求は,
IF0ビットが "0"にクリアされるまで発生し続けます。
163
第8章 外部割込み回路(レベル)
8.5
外部割込み回路の割込み
外部割込み回路の割込み要因としては,外部割込み端子に入力された"L"レベル入
力信号があります。
■ 外部割込み回路動作時の割込み
割込み入力の許可された外部割込み端子に"L"レベルが入力されると,外部割込
み要求フラグビット(EIF:IF0)が"1"にセットされ,CPUへ割込み要求(IRQ0)が
発生します。割込み処理ルーチンでIF0ビットに"0"を書き込み,割込み要求をクリ
アしてください。
外部割込み要求フラグビット(IF0)が"1"にセットされると,外部割込み制御レ
ジスタ(EIE)の割込み許可ビット(IE1∼IE7)によって,外部割込み入力を禁止
しても,IF0ビットが"0"にクリアされるまで割込み要求を発生し続けますので,IF0
ビットのクリアは必ず行ってください。
また,外部割込み端子が"L"レベルのままであれば,外部割込み入力を禁止しな
い状態で,IF0ビットをクリアしても,すぐにIF0ビットがセットされてしまいます。
必要に応じて外部割込み入力の禁止もしくは,外部割込みの原因そのものを解消し
てください。
参考:
リセット解除後にCPUの割込みを許可する場合は,あらかじめIF0ビットをク
リアしてください。
<注意事項>
・外部割込み端子( INT1 ∼ INT7 )への"L"レベルの入力は,同じ割込み要求(IRQ0)を発生しま
す。このため,いずれの端子に対応する外部割込み入力であるかは,入力が"H"レベルに変化す
る前にポートデータレジスタ(PDR3)を読み出して判定する必要があります。
・ストップモードの割込みによる解除は,外部割込み回路で可能です。
■ 外部割込み回路の割込みに関連するレジスタとベクトルテーブル
表 8.5-1 外部割込みの割込みに関連するレジスタとベクトルテーブル
割込み名
IRQ0
割込みレベル設定レジスタ
レジスタ
設定ビット
ILR1(007BH) L01(bit1) L00(bit0)
ベクトルテーブルのアドレス
上位
下位
FFFAH
FFFBH
参考:
割込み動作については,
「3.4.2
164
割込み動作時の処理」を参照してください。
第8章 外部割込み回路(レベル)
8.6
外部割込み回路の動作説明
外部割込み回路は,外部割込み端子の"L"レベルを検出し,CPUに対して割込み要求
を発生します。
■ 外部割込み回路の動作
外部割込み回路を動作させるには,図 8.6-1の設定が必要です。
図 8.6-1 外部割込み回路の設定
IE1∼IE7のいずれかの外部割込み入力が許可された状態で, INT1 ∼ INT7 の対応
する外部割込み端子に"L"レベル信号が入力されるとCPUに対してIRQ0の割込み要
求を発生します。
図 8.6-2に,外部割込み回路( INT1 端子使用時)の動作を示します。
図 8.6-2 外部割込み( INT1 )の動作
参考:
外部割込み端子を外部割込み入力として使用している場合でも,端子の状態
をポートデータレジスタ(PDR3)より直接読み出すことができます。
165
第8章 外部割込み回路(レベル)
8.7
外部割込み回路のプログラム例
外部割込み回路のプログラム例を示します。
■ 外部割込み回路のプログラム例
○
処理仕様
INT1 端子に入力される,"L"レベルを検出して割込みを発生します。
○
166
コーディング例(Softune V1準拠)
第9章
USBハブ
USBハブ
この章では,USBハブ回路の機能と動作について説明します。
9.1 USBハブの概要
9.2 USBハブの構成
9.3 USBハブの端子
9.4 USBハブのレジスタ
9.5 USBハブの割込み
9.6 ディスクリプタ
9.7 USBハブの動作説明
167
第9章 USBハブ
9.1
USBハブの概要
USBハブの概要
USBハブは,USB(Universal Serial Bus)通信プロトコルをサポートしUSBインタ
フェースをダウン5ポート(内1ポートは内蔵USBファンクションで使用)をサポート
するハブです。ハブ機能は内蔵レジスタの設定により,自己電源/バス電源の動作モー
ドおよび過電流保護モード等の指定が可能です。
■ USBハブ回路の機能
USBハブ回路は,USBプロトコルをサポートするホストコントローラと双方向のシ
リアル信号転送を行います。
プロトコル:USBProtocol Revision1.0 に対応。
スピード:Full(12Mbps)/Low(1.5Mbps)の両スピードをサポート。
USBポート:USBトランシーバ内蔵。 UP_PORT "1",DOWN_PORT "5"(内ダウ
ン1ポートは内蔵ファンクションに接続固定)
クロック:外部クロック6MHzからPLL回路により作成された48MHzのク
ロックでデータの同期補正(USB内部は48MHzの4分周に同期)。
電源動作モード:自己電源・バス電源モードの選択指定可能。
ポート電源制御:Down_port 別電源制御方式
過電流保護モード:Down_port 過電流検出保護モード : グローバル過電
流保護。ポート別過電流保護のモード指定が可能。
データチェック:Bit Stripping,Bit Stuffing,CRC5,CRC16の自動生成
とチェック。
Data同期ビット:Data同期ビット(DATA0/DATA1トグルビット)の保持。
USB標準コマンド:すべての標準コマンドに自動応答(デバイスクラス・ハ
ブクラス)
。
Class/Vendorコマンド:Class/Vendorコマンドには対応するハードレジ
スタに設定された値で自動応答。
Endpoint:Endpoint0のサポートに加え,もう一つのEndpointステータス
変更(割込み)エンドポイントをサポート。
割込み:USBバスのサスペンド状態検出と,サスペンド状態からの復帰用
で2本サポート。
割込み発生要因:UP_PORT(およびDW-PORT)サスペンド状態検出時とサス
ペンド状態からの復帰時(STOP状態においても,サスペンド状態からの
復帰要因は受け付けられますので,STOP解除要因としても働きます)。
168
第9章 USBハブ
9.2
USBハブの構成
USBハブの構成
USBハブの回路は,以下の主要な三つの要素で構成されています。
・USBハブコントローラ(HUBCTL)
・USBリピータブロック(HUBRPT)
・USBハブレジスタ群(HMDR,HDSR1∼HDSR4,HSTR,OCCR,DADR,SDSR)
■ USBハブ回路のブロックダイヤグラム
図 9.2-1 USBハブ回路のブロックダイヤグラム
169
第9章 USBハブ
○
USBハブモードレジスタ(HMDR)
USBハブの電源動作モード(自己電源/BUS電源)の指定およびUSBハブ回路部
のリセットを行うレジスタです。
○
ハブディスクリプタレジスタ(HDSR1∼HDSR4)
USBハブの構成情報(HUB Descriptor情報)の設定をします。
○
ハブステータスレジスタ(HSTR)
USBアップポートおよびダウンポートのステータス情報のレジスタです。
○
オーバカレント制御レジスタ(OCCR)
オーバカレントレジスタはホストコントローラにダウンポートでの電流検出
が発生したことを通知する制御レジスタです。
○
ディスクリプタROMアドレスレジスタ(DADR)
ハブでサポートされている標準ディスクリプタの構成値が格納されている先
頭アドレスを指定するアドレスレジスタです。
170
第9章 USBハブ
9.3
USBハブの端子
USBハブの端子
USBハブに関連する端子,端子のブロックダイヤグラムを示します。
■ USBハブに関連する端子
USBハブに関連する端子はUSBシリアルバスのルートポート接続信号(RPVP,RPVM)
,
USBダウンポート接続信号(D2VP,D2VM,D3VP,D3VM,D4VP,D4VM,D5VP,D5VM)
,
ダウンポート電源制御出力信号(POW2-5)があります。 なお,過電流検出入力は汎
用入力ポートを使用し検出結果をオーバカレントレジスタにソフトウェアで設定
し,ホストコントローラに通知します。 POWER制御信号を除くUSBバスインタフェー
ス信号はUSBのドライバ・レシーバを内蔵しており,USBインタフェースFull・Low
スピードの電気特性を有しています。 ルートポート(RPVP,RPVM)はFull Speed
で接続され,ダウンポートは接続されるデバイスのスピードによりFull/Low Speed
それぞれに自動で対応します。
RPVP:USBシリアルバスインタフェースのルートポートplus信号です。 信
号はUSB Full Speedの電気特性を有しています。
RPVM:USBシリアルバスインタフェースのルートポートminus信号です。信
号はUSB Full Speedの電気特性を有しています。
D2VP:USBシリアルバスのダウンポート2のplus信号です。
D2VM:USBシリアルバスのダウンポート2のminus信号です。
D3VP:USBシリアルバスのダウンポート3のplus信号です。
D3VM:USBシリアルバスのダウンポート3のminus信号です。
D4VP:USBシリアルバスのダウンポート4のplus信号です。
D4VM:USBシリアルバスのダウンポート4のminus信号です。
D5VP:USBシリアルバスのダウンポート5のplus信号です。
D5VM:USBシリアルバスのダウンポート5のminus信号です。
POW2-5: ダ ウ ン ポ ー ト の 電 源 供 給 イ ネ ー ブ ル 出 力 信 号 で CMOS イ ン タ
フェース信号です。
OVER_CURRENT INPUT:ダウンポートの過電流検出によるホストコントロー
ラの通知には,専用入力端子は用意されていません。過電流検出信号を
汎用入力ポートの端子に入力してください。その入力ポートをソフト
ウェアによるポーリングまたは外部割込み機能を使用して過電流状態を
検出し,オーバカレントレジスタにセットしてホストコントローラへの
通知を行います。(過電流検出モードはグローバルモード,ポート個別
モードに対応しています。)各ポートごとに過電流検出を行う場合は,ダ
ウンポート分(ポート2∼5)すべてのポート入力ごとに接続します。
<注意事項>
ハブはダウンポートを5ポートサポートしていますが,この(ポート1∼5)のうち,ポート番号
1は内蔵ファンクション専用で接続されます。
171
第9章 USBハブ
■ 端子のブロックダイヤグラム
図 9.3-1 ハブに関連する端子のブロックダイヤグラム
172
第9章 USBハブ
9.4
USBハブのレジスタ
USBハブのレジスタ
USBハブに関連するレジスタを示します。
■ USBハブに関連するレジスタ
図 9.4-1 USBハブに関連するレジスタ
173
第9章 USBハブ
9.4.1
USBハブモードレジスタ(
USBハブモードレジスタ(HMDR
ハブモードレジスタ(HMDR)
HMDR)
USBハブモードレジスタはハブの動作電源モードの指定およびハブ回路ブロックの
リセットを制御するレジスタです。また,ハブ機能の電源モード(自己,バス)を指
定します。 動作電源モードはUSBファンクションの動作電源モード指定と兼用となっ
ています。
(ハブが自己電源モードの場合,内蔵USBファンクションも自己電源モード
となります。
)このレジスタへの書込みはバイト単位で行ってください。ただし,Bit
1 ∼ 5 は予約ビットですので,必ず"0"を書き込むようにしてください。
■ USBハブモードレジスタ(HMDR)
BIT7:HRST(Hub Reset)
USBハブ回路部の個別リセット信号です。通常の運用時にはこのビットによる
ハブ回路部の個別リセットは必要ありません。 ハブ回路ブロックのリセットは
電源投入時のシステムリセットとOR接続されています。電源投入時はこのビッ
ト"1"の状態でハブ回路部はリセット状態です。このビットへの "0" 書込みで
リセットが解除されハブ機能が有効となります。
HRST
ハブブロックリセットビット
0 USBハブ回路のリセットを解除する。/リセット状態では無い。
1 USBハブ回路をリセットする。/リセット状態。
BIT6:POWE(Power control Enable)
P40/POW5∼P43/POW4端子の汎用ポートと専用端子の切替えを行うビットです。
このビットを"0"に設定すると,汎用ポート(P40∼P43)となり,"1"に設定す
るとUSBダウンポート2∼5の電源供給イネーブル出力信号(POW2∼5)を出力許
可します。
BIT5∼1:予約ビット
このレジスタの当ビットに対する書込みは,必ず"0"を書き込むようにします。
BIT0:PWC(USB HUB/FUNCTION Power mode control)
USB回路(ハブおよびファンクションを含む)の動作電源モード(自己電源モー
ド,バス電源モード)を指定します。
このビットは,USBハブのダウンポート1に接続される内蔵ファンクション機
能の電源動作モードと共通制御信号です。USBハブとUSBファンクション(内蔵)
の電源動作モードはこのビットの設定によります。(このビットの設定はハブ/
ファンクションのGet Statusコマンドの応答に反映されます。)
PWC
0
1
174
USB 動作電源モード
USB HUB/FUNCTION バス電源タイプ
USB HUB/FUNCTION 自己電源タイプ
第9章 USBハブ
9.4.2
ハブディスクリプタレジスタ(HDSR1
ハブディスクリプタレジスタ(HDSR1,
HDSR1,2,3,4)
ハブディスクリプタレジスタはUSBコマンド "Get HUB Descriptor"に応答するハブ
ディスクリプタの構成情報を指定するレジスタです。初期値不定ですので動作前に必
ず初期設定を行ってください。
■ ハブディスクリプタレジスタ(HDSR1,2,3,4)
○
ハブディスクリプタレジスタ 1(HDSR1:Hub Characteristics)
ハブディスクリプタの"wHubCharacteristics"フィールドの過電流保護モー
ドの設定を行います。
BIT7∼4:予約ビット
このレジスタの当ビットに対する書込みは,必ず"1"を書き込むようにします。
BIT3,2:OVM1,0(Over Current Protect Mode)
ハブの各ポートで検出される過電流保護の状態通知のモードを指定します。
ハブすべてのポートの電流ドローの総和としての過電流を通知するか,ポート
ごとに過電流を通知するかのモードを指定します。(ハブのポート1に内部接続
されるファンクションはオーバカレント検出機能を持たないため,このモード
の影響を受けません。)
OVM1,0
0
0
0
1
1
X
過電流保護モード
グローバル過電流保護モード。 ハブはすべてのポートの電流ドローの総和として過電
流を報告し,個々のポートの過電流ステータスの内容を報告しない。
ポート別過電流保護。 ハブはポートごとに過電流を報告する。 それぞれのポートに過
電流インジケータがある
過電流保護なし。 この設定は,過電流保護をインプリメントしないバス電源ハブに許
可される。
BIT1∼0:予約ビット
このレジスタの当ビットに対する書込みは,必ず"01"を書き込むようにしま
す。
175
第9章 USBハブ
○
ハブディスクリプタレジスタ 2(HDSR2:Power on Power Good time)
ポート上で電源投入シーケンスが開始してから,そのポートが安定するまで
時間を2msec単位で指定します。システム・ソフトウェアにより,この値を使用し,
電源投入されたポートにアクセスする前にどれだけ待機するかを決めます。レ
ジスタの設定単位は [msec]です。 設定値は2msecの単位で設定します。(レジ
スタ設定可能範囲:最小0msec,∼最大255msec)です。
○
ハブディスクリプタレジスタ 3(HDSR3:HUB Control Current)
USBハブコントローラとしての最大消費電流を指定します。USBハブとしての
機能を持つ,このマイコンLSIの最大消費電流を設定します。設定単位は"mA"で
す。
○
ハブディスクリプタレジスタ 4(HDSR4:HUB Characteristics)
Hub Descriptorの"wHubCharacteristics"フィールドの複合デバイスの設定と
"DeviceRemovable"の設定と"Bnbrports"の設定を行います。
BIT7:CDS(Compound Device Select)
複合デバイスの識別を設 定します。本ビットの設 定はHub Descriptor の
"WhubChar"フィールドのbit2に反映されます。
CDS
176
コンパウンド・デバイス選択ビット
0
Hubは複合デバイスの一部でない
1
Hubは複合デバイスの一部である
第9章 USBハブ
BIT6∼3:DRV5∼2(Device RemoVable)
Hubダウンポートに取り外し可能なデバイスが接続されるかを設定します。本
ビットの設定はHub Descriptorの"DeviceRemovable"フィールドのbit5∼2に反
映されます。
DRV n
デバイス・リムーバブル・ビット
(nはダウンポートの番号に対応しています)
0
デバイス取り外し可能
1
デバイス固定接続
BIT2∼0:PTNM2∼0(PortNumber)
Hubがサポートするダウンポートの数を設定します。本ビットの設定はHub
Descriptorの"Bnbrports"フィールドのbit2∼0に反映されます。
177
第9章 USBハブ
9.4.3
ハブステータスレジスタ(HSTR
ハブステータスレジスタ(HSTR)
HSTR)
ハブステータスレジスタは,各ポートの状態を表示するステータスレジスタです。
ステータスで表示する内容はアップストリームおよび四つのダウンストリームポー
トのサスペンド状態を表示します。 アップストリームポートがサスペンドされた場
合,CPUへの割込み要因となります。この割込み要因は割込みマスクビットにより割
込み通知を行わないように設定可能です。なお,アップストリームポートがサスペン
ドされている場合,USB仕様により規定されるスタンバイモードの消費電流以下にす
るために,クロックを停止させるSTBC(スタンバイ制御レジスタ)をストップモード
にする必要があります。
■ ハブステータスレジスタ(HSTR)
BIT7:RTsus(Root Port Suspend Status)
USBハブアップポートがホストによりサスペンドされた場合,"1"と表示しま
す。
ハブがサスペンドへ移行するのは,ルート・ポート上で3.0msec以上の間,連
続するアイドル・ステート状態を検出した場合にサスペンド状態へと移行しま
す。 このステータスビットはCPUへの割込み要因となります。この割込み要因は
割込みマスクビット"RTSM"ビットによりマスク指定が可能です。割込み要因の
クリアは"0"ライトで行います。 このビットへの"1"書込みは意味を持ちませ
ん。
ハブがサスペンド状態から再開状態に移行するのは,ホストからのサスペン
ドが解除(ルートポートの状態がJステートからKステートへ移行)されたとき,
または各イネーブルにされているダウンポートから何らかのバス状態の移行が
あった場合にウェークアップを開始します。
Rtsus
ハブサスペンドステータスビット
0
USBハブは通常状態であることを示す。 割込み要因のクリア
USBハブがルートポートでサスペンド移行条件を検出しサスペンド状態となった
ことを示す
1
BIT6: RTSM(Root Port Suspend Interrupt Mask)
ハブルートポートのサスペンドビット(Bit7:Rtsusビット)が"1"に移行した
場合のCPUへの割込みマスクの制御を行います。
RTSM
0
1
178
ルートポートサスペンド割込み許可ビット
ルートポートサスペンド割込み無効(マスク状態)
ルートポートサスペンド割込み有効(マスク解除)
第9章 USBハブ
BIT5:WKUP(Wake UP Interrupt)
ルートポートまたはダウンポートの要求によりサスペンド状態から復帰した
ことを表示します。このビットはサスペンド状態で,RTSUS,P5SUS∼P2SUSのい
ずれかが"0"になった時点でハードによりセットされます。"1"書き込みは意味
を持ちません。MWKUPのビットで割込みが有効指定されていればCPUへの割込み
がかかります。
WKUP
0
1
Wake UP ステータスビット
サスペンド復帰要因無し。割込み要因のクリア
サスペンド復帰要因有り。
BIT4:MWKUP(Mask Wake UP Interrupt)
サスペンド状態からの復帰(Bit5:WKUP)が"1"に移行した場合のCPUへの割込
みマスクの制御を行います。
MWKUP
0
1
Wake UP 割込み許可ビット
Wake UP 割込み無効(マスク状態)
Wake UP 割込み有功(マスク解除)
BIT3,2,1,0:P4sus,P3sus,P2sus,P5sus(Down Port 4,3,2,5 suspend status)
ハブの各ダウンポートのサスペンド状態のステータス表示を行います。この
ビットはCPUへの割込み要因ではありません。
P4,3,2,5SUS
0
1
ダウンポートサスペンドステータスビット
ダウンポートは通信可能状態。
ステータスで表示されるダウンポートがサスペンド状
態となっている。
179
第9章 USBハブ
9.4.4
オーバカレント制御レジスタ(OCCR
オーバカレント制御レジスタ(OCCR)
OCCR)
オーバカレントレジスタは,ホストコントローラにダウンポートでの電流検出が発
生したことを通知する制御レジスタです。また,BIT7にはルートポートのバスリセッ
トの状態を示すステータスレジスタがあります。過電流検出は外部入力端子(汎用入
力ポートにアサイン)の入力で検出された過電流ポートに対してCPUがこのレジスタ
に書込みを行いUSBホストコントローラに通知を行います。また,外部ポートからの
過電流検出入力が解除された場合は,このレジスタの対応するポートのオーバカレン
トビットのクリア"0"ライトを行います。過電流保護モードの設定によりグローバル
過電流保護に設定される場合は汎用入力ポート1点のみを使用し,このレジスタの
ビット設定をすべて"1"に設定します。
■ オーバカレント制御レジスタ(OCCR)
BIT7:HBSR(Hub Usb Bus Reset)
ルートポートがバスリセット状態に移行したことを表示します。
HBSR
0
1
ハブ バスリセットステータスビット
ルートポートバスがリセット状態ではない
ルートポートバスがリセット状態である
BIT6∼4 : 予約ビット
このレジスタの当ビットに対する書込みは,必ず"0"を書き込むようにします。
BIT3,2,1,0:OC4,3,2,5(Over Current Control 4,3,2,5)
ダウンポート5∼2の過電流検出状態をホストコントローラに通知します。USB
ホストコントローラへの状態通知は,過電流保護モードがグローバル過電流保
護のモードに設定されている場合はこのビットの設定でハブステータスフィー
ルドの過電流インジケータのビットに反映されます。この場合,過電流検出時に
は OC5∼2のすべてのビットの設定を行います(ポート別管理無し)。
過電流保護モードがポート別過電流保護モードに設定されている場合は,各
ポートの過電流検出の状態がポート・ステータス・フィールドの過電流インジ
ケータビットに反映されます(ポート別管理あり)
。
<注意事項>
OC**の添え数字はポート別過電流保護モード指定時のポートの番号に対応します。
180
第9章 USBハブ
○
グローバル過電流保護モードの場合(ハブディスクリプタ:過電流保護モード
設定)
OC4, 3, 2, 5
0
1
○
オーバカレント制御ビット
HUBとして過電流検出が発生していないこと示す。 また,過電流検出状態から正
常状態へ復帰した場合"0"ライトにより復帰状態をホストコントローラに通知し
ます。
HUBとして過電流検出がある場合にすべてのビットを"1"にセットします。ダウン
ポートの任意のポートで過電流状態が発生し,
ハブ総和としての過電流状態を通
知します。 この状態は,ハブステータスフィールドの過電流インジケータに反映
されます。
ポート別過電流保護モードの場合(ハブディスクリプタ:過電流保護モード設
定)
OC4, 3, 2, 5
0
1
オーバカレント制御ビット
各個別ポートでの過電流が発生していないことを示します。また,過電流状態の
復帰でこのビットに"0"を書き込むことにより復帰状態をホストに通知します。
各設定個別ポートの過電流インジケータに反映され,ポートの過電流状態の設
定をポートごとに設定します。各ポートの状態はポートステータスフィールド
の過電流インジケータに反映されます。
■ 過電流検出処理
外部に用意された過電流検出回路からオーバカレント検出のCPUへの通知は汎用
ポートまたは外部割込み端子を使用して行います。
グローバル過電流保護モード設定時はハブが任意ダウンポートで過電流を検出
したことを総括してハブ・ステータス・フィールドでホストコントローラに通知し
ます。外部端子へは過電流を検出した信号で入力を1ピンのみ使用し過電流検出通
知を行います。
ポート別過電流保護モードの場合はダウンポートごとに過電流検出回路を用意
しそれぞれの過電流検出信号を汎用ポート端子または割込み入力端子に割りつけ
ます。各ポートで過電流が検出された場合は,検出ポートに対応した,オーバカレ
ントレジスタのビットに"1"を書き込み,ポートごとに通知を行います。
181
第9章 USBハブ
9.4.5
ディスクリプタROM
ディスクリプタROMアドレスレジスタ(
ROMアドレスレジスタ(DADR
アドレスレジスタ(DADR)
DADR)
ハブでサポートされている標準ディスクリプタ(デバイス/コンフィグレーション/
インタフェース/エンドポイント/ストリング)の構成値が格納されているROMの先頭
アドレスを指定します。ハブはUSBホストコントローラからの"GET DESCRIPTOR"を解
析しどのディスクリプタかを判断して対応するディスクリプタが格納されたROMアド
レスからDMA転送を行いホストコントローラにディスクリプタの構成値を返します。
■ ディスクリプタROMアドレスレジスタ(DADR)
ハブがサポートする標準ディスクリプタが格納される内蔵ROM領域の先頭アドレ
スを指定します。 標準ディスクリプタ(デバイス・オンフィグレーション・インター
ファイス・エンドポイント・ストリング)はROMに連続領域に設定します。 このレジ
スタで設定を行うアドレスは,このディスクリプタが格納されている領域の先頭ア
ドレスを指定します。
ハブはUSBホストからのGET_Descriptorコマンドにより要求されたディスクリプ
タを指定アドレスから各ディスクリプタのアドレスオフセットを加算しDMA転送に
より自動で読み出しUSBホストコントローラに応答します。
BIT 7∼0:AD15∼AD8 Descriptor ROM address
USBハブ標準Descriptorの格納されているROM領域の先頭アドレスを指定しま
す。
アドレスは上位8ビットを指定します。下位8ビットは"00"H固定となっていま
す。
通常,ハブの標準ディスクリプタはROMに用意しますが,アドレスの指定によ
りRAM上のアドレスを指定することも可能です。RAMへの指定の場合ソフトにて
ディスクリプタ構成情報をあらかじめ書き込んでおく必要があります。
182
第9章 USBハブ
9.4.6
ハブサポート標準ディスクリプタROM
ハブサポート標準ディスクリプタROM設定
ROM設定
ハブでサポートされる各種ディスクリプタ構成のうち,標準ディスクリプタ(コン
フィグレーションディスクリプタ/インターフェイスディスクリプタ/エンドポイン
トディスクリプタ)の構成値はROMにデータとして用意します。これらの標準ディス
クリプタは,USBホストからのGET_Descriptorコマンドをハードが判断しROMに用意さ
れている対応ディスクリプタを自動(固定ROMアドレスにDMAリード転送)で読み込み
USBホストコントローラに応答します。ハブが標準でサポートしROMに用意するディス
クリプタの構成について以下に示します。
■ 標準ディスクリプタ構成
ハブがサポートする標準ディスクリプタは以下の構成をサポートしています。
GET_Descriptorコマンドによる各ディスクリプタの転送は,ROMに用意される
データをハードが自動で読み出しUSBホストコントローラに応答します。
ROMに用意する標準ディスクリプタは以下の値を設定してください。任意に値が
設定可能な部分は
の網かけ部が可能です。その他の構成値はハードで固定さ
れていますので指定された固定値を設定してください。
ハブがサポートする標準ディスクリプタは,DEVICE/CONFIGURATION/INTERFACE/
ENDPOINTをサポートしています。
<ハブ標準ディスクリプタのROM設定値>
183
第9章 USBハブ
184
第9章 USBハブ
9.5
USBハブの割込み
USBハブの割込み
USBハブの割込み要因としては,USBアップポートがホストによりサスペンド状態に
移行した時と,サスペンド状態時からの復帰があります。サスペンド状態時からの復
帰はSTOP状態においても,割込み要求を発生しますのでSTOP解除要因にもなります。
■ USBハブ動作時の割込み
USBアップポートが3msec以上の間,連続するアイドル・ステート状態を検出した
時にサスペンド状態に移行し,対応する割込み要求フラグビット(HSTR:RTSUS)が
"1"にセットされます。
そのとき,割込み要求許可ビットを許可(HSTR:RTSM=1)していると,CPUへ割込
み要求(IRQ2)が発生します。割込み処理ルーチンでRTSUSビットに"0"を書き込み,
割込み要求をクリアしてください。
ハブがサスペンド状態にある時,USBアップポートおよびダウンポートからの再
開状態への移行が検出された場合,対応する割込み要求フラグビット(HSTR:WKUP)
が"1"にセットされます。
そのとき,割込み要求許可ビットを許可(HSTR:MWKUP=1)していると,CPUへ割
込み要求(IRQ4)が発生します。割込み処理ルーチンでWKUPビットに"0"を書き込
み,割込み要求をクリアしてください。また,割込み要求(IRQ4)はCPUがSTOP状
態においても発生可能です。
なお,RTSUS,WKUPビットはRTSM,MWKUPビットの値に関係なく,割込み要因が成
立すれば"1"にセットされます。
参考:
RTSUS,WKUPビットが"1"のとき,RTSM,MWKUPビットを禁止から許可(0→1)
にすると,直ちに割込み要求が発生します。
■ USBハブの割込みに関連するレジスタとベクトルテーブル
表 9.5-1 USBハブの割込みに関連するレジスタとベクトルテーブル
割込み名
IRQ2
IRQ4
割込みレベル設定レジスタ
レジスタ
設定ビット
ILR1(007BH) L21(bit5)
L20(bit4)
ILR2(007CH) L41(bit1)
L40(bit0)
ベクトルテーブルのアドレス
上位
下位
FFF6H
FFF7H
FFF2H
FFF3H
参考:
割込み動作については「3.4.2
割込み動作時の処理」を参照してください。
185
第9章 USBハブ
9.6
ディスクリプタ
USBハブがサポートするUSBディスクリプタの構成を示します。ハブクラス固有のハ
ブディスクリプタ,USB標準デバイスディスクリプタ,コンフィグディスクリプタ,
インタフェースディスクリプタ,エンドポイントディスクリプタの各ディスクリプタ
をサポートしています。
■ USBハブサポートディスクリプタ構成
表 9.6-1 HUB Descriptor(Get HUB Descriptorリクエスト)
Offset
Field
0
BdescLength
1
BdescType
2
BnbrPorts
設定
説明
FIX
このDescriptorのバイト数,9 Byte
FIX
Descriptorタイプ
レ ジ ス タ HUBがサポートするDP(ダウンストリームポート)の
設定値
数
3
WhubChar
2 16'h00_XX レジスタ D1..D0:電源切替えモード
設定値
01 ポート別電源切替え
D2:複合デバイスの識別
0 HUBは複合デバイスの一部でない
1 HUBは複合デバイスの一部である
D4..D3:過電流保護モード
00 - グローバル過電流保護
01 - ポート別過電流保護
1X - 過電流保護なし(バス電源HUB)
D15..D5:予約 (0:固定)
5
BpwrOn2PwrGood
1 8'hXX
レジスタ 電源セットリング時間(単位:2mS)
設定値
6
BhubContrCurr
1 8'hXX
レジスタ HUBコントローラ電子部品の消費電流
設定値
(このマイコンの消費電流,単位:mA)
7
DeviceRemovable
1 8'hXX
レ ジ ス タ Portに取り外し可能なデバイスが接続されているか
設定値
どうかを示す。
D0:予約(0固定)
D1:Port1(1固定)
D2:Port2
D3:Port3
D4:Port4
D5:Port5
0 - デバイス取り外し可能
1 - デバイス固定接続
D6,D7:予約(0固定)
8
PortPwrCtrlMsk
1 8'h3E
FIX
Portが同時モード電源制御リクエストの影響を受け
るかどうかを示す。
D0:予約(0 固定)
D1:Port1(1 固定)
D2:Port2(1 固定)
D3:Port3(1 固定)
D4:Port4(1 固定)
D5:Port5(1 固定)
D6,D7:予約(0 固定)
注意)
部はレジスタ設定により設定。
186
Size
Value
1 8'h09
1 8'h29
1 8'hXX
第9章 USBハブ
表 9.6-2 標準 Device Descriptor(Get Descriptor [Device])
Offset
0
1
2
4
5
6
7
8
Field
Size
Value
Blength
1 8'h12
BdescriptorType 1 8'h01
BcdUSB
2 16'h01_00
BdeviceClass
1 8'h09
BdeviceSubClass 1 8'h00
BdeviceProtocol 1 8'h00
BmaxPktSize0
1 8'h08
IdVendor
2 16'h04_c5
10
IdProduct
2
16'hff_c1
12
BcdDevice
2
16'h01_23
14
Imanufacturer
1
8'h00
15
Iproduct
1
8'h00
16
IserialNumber
1
8'h00
17
BnumConfigs
1
8'h01
設定
FIX
FIX
FIX
FIX
FIX
FIX
FIX
ROM
設定値
ROM
設定値
ROM
設定値
ROM
設定値
ROM
設定値
ROM
設定値
FIX
説明
このDescriptorのバイト数,このバイトを含む
Descriptorのタイプ(Deviceを示す)
USB仕様リリース版数 (Revision 1.00)
クラス・コード
サブクラス・コード
プロトコル・コード(ベンダ固有プロトコル)
EndPoint0最大パケットサイズ (8バイト)
VendorID (例:Fujitsu Ltd)
ProductID (例:Fujifacom1)
Deviceリリース番号 (例:機能/作業版数)
製造者を表すストリング・ディスクリプタ・インデック
ス
製品を表すストリング・ディスクリプタ・インデックス
デバイスの製品番号を表すストリング・ディスクリプ
タ・インデックス
構成可能なデバイス数
表 9.6-3 Config Descriptor(Get Descriptor [Config])
Offset
Field
0
Blength
1
BDescriptorType
2
WTotalLength
Size
Value
設定
1 8'h09
FIX
1 8'h02
FIX
2 16'h00_19 FIX
説明
このDescriptorのバイト数,このバイトを含む
Descriptorのタイプ(Configを示す)
このDescriptorのバイト数とすべて(構成,インタ
フェース,エンドポイント,クラス,ベンダ固有の
Descriptorなど)のバイト数の合計(25バイト)
4
BNumInterfaces
1 8'h01
FIX
構成でのインタフェース数
(Deviceとして一つ)
5
BConfigValue
1 8'h01
FIX
構成を選択するためのコンフィグレーションを表す
数値
6
IConfiguration
1 8'h00
FIX
構成を表すストリング・ディスクリプタのインデック
ス
7
BmAttributes
1 8'hX0
ROM
電源の構成
設定値
D7:バス電源
D6:自己電源
D5:リモート・ウェークアップ (サポート)
D4..D0:予約 (0 固定)
8
MaxPower
1 8'hXX
レジスタ 動作時の最大消費電流(単位:2mA)
設定値
注意)リモートウェークアップの動作はデフォルトでサポートされています。
187
第9章 USBハブ
表 9.6-4 Interface Descriptor(Get Configretion [Interface])
Offset
0
1
2
3
Field
BLength
BDescriptorType
BInterfaceNum
BAlternateSetng
Size
1
1
1
1
Value
8'h09
8'h04
8'h00
8'h00
設定
FIX
FIX
FIX
FIX
4
5
6
7
BNumEndpoints
BInterfaceClass
BIntfSubClass
BIntfProtocol
1
1
1
1
8'h01
8'h09
8'h00
8'h00
FIX
FIX
FIX
FIX
8
Interface
1
8'h00
FIX
説明
Descriptorのバイト数,このバイトを含む
Descriptorのタイプ(Interfaceを示す)
このInterface値(このInterfaceを識別するための値)
前のbInterfaceNumで識別されたInterfaceを再度代替設
定を選択するために使用する値
Interfaceが使用できるEndPointの数(EndPoint0を除く)
クラス・コード (Interface)
サブクラス・コード
プロトコル・コード
このInterfaceを表すストリング・ディスクリプタのイン
デックス
表 9.6-5 EndPoint Descriptor(Get Descriptor リクエスト)
Offset
Field
0
BLength
1
BDescriptorType
2
BEndpointAdr
188
Size
Value
1 8'h07
1 8'h05
1 8'h81
3
BmAttributes
1
4
WMaxPktSize
2
6
BInterval
1
設定
説明
FIX
Descriptorのバイト数,このバイトを含む
FIX
Descriptorのタイプ(EndPointを示す)
FIX
EndPointアドレス(EndPointを識別するための値)
D0..D3:EndPoint番号 (Endpoint 1)
D4..D6:予約 (0 固定)
D7:方向
0
OUT方向EndPoint
1
IN方向EndPoint
8'h03
FIX
EndPoint構成
D0..D1:転送タイプ
00
コントロール
01
ISO
10
バルク[Bulk]
11
割込み[Interrapt]
D2..D7:予約 (0 固定)
16'h00_01 FIX
EndPointが使用できる最大パケットサイズ(Byte)
1Byte
8'hff
FIX
EndPointに対してデータ転送をポーリングする間隔
(単位:mS)
第9章 USBハブ
9.7
USBハブの動作説明
USBハブの動作説明
USBハブの動作について説明します。
■ USBハブの動作
USBハブはUSB仕様Rev1.0のデバイス標準コマンドおよびハブクラスコマンドの
必要なすべてのコマンドをサポートしています。これらのコマンドへはハブ回路部
にてハードが自動応答します。
ハブ回路は,セットアップトランザクションで受信する8Byteのデータを格納・
デコードし対応する処理を実行します。ハブはコントロール転送のデータステージ
とステータスステージを区別します。
各USBコマンドへの対応は以下の応答となります。
○
標準コマンド
Clear Fearure
-
エンドポイント0のエンドポイント・ストールのクリアとデバイス・リ
モート・ウェークアップがサポートされます。 それ以外のリクエストは
ストールされます。
Get Configration
-
INトランザクションに1バイトの構成情報を適切なデータ・トグル・ビッ
トを付けて応答します。デバイスの構成がないことを示す構成値"0"を
加えて一つの構成をサポートします。
Get Descriptor
-
セットアップパケットで与えられたディスクリプタ・インデックスに
従 っ て 標 準 デ ィ ス ク リ プ タ を 応 答 し ま す 。 ハ ブ は DEVICE ・
CONFIGULATION・INTERFACE・ENDPOINTすべてに応答します。
Get Interface
-
ハ ブ は 一 つ の Interface し か サ ポ ー ト さ れ て い ま せ ん 。 こ の た め
GetInterfaceコマンドはサポートされません。 このコマンドの発行に
はSTALLハンドシェイクで応答します。
Get Status
-
指定された受信側からのステータス情報2バイトデータを適切なデータ
トグルビットを付けてINトランザクションに返送します。
Set Address
-
このコマンドはサポートされ,SETUPパケットのwValueフィールドから
論理アドレスをアップデートします。
Set Configuration
-
ハブは一つのコンフィグレーションしかサポートされないため,セット
アップパケットで与えられた値が,"0"か"1"であれば応答します。 それ
以外の構成値であればSTALLで応答します。
Set Feature
-
エ ン ド ポ イ ン ト 0 へ の ENDPOINT_STALL と デ バ イ ス の
DEVICE_REMOTE_WAKUPのSet Featureをサポートします。それ以外のリク
エストにはSTALLで応答します。
189
第9章 USBハブ
Set Interface
-
ハブは固定のalternateでセットされるInterfaceを一つのみサポート
します。そのためSet Interface コマンドにたいしてはSTALLで応答しま
す。
Set Descriptor
-
このコマンドはサポートされません。このコマンドによる応答コント
ロール転送のデータステージでSTALLハンドシェイクで応答します。
データは無視されます。
SynchFrame
-
○
SynchFrame コマンドはサポートされません。このコマンドにはコント
ロール転送のステータスステージでSTALLハンドシェイクで応答しま
す。
ハブクラスコマンド
GetHubDescriptor
-
このリクエストに対して9バイトのハブディスクリプタを返送します。
ハブはSETUPパケットの受信データ8バイトをデコードし,bDescriptor
タイプがハブで,かつディスクリプタ・インデックスが "0" のときのみ
ホストに応答し,それ以外ではSTALLハンドシェイクで応答します。
SetHubDescriptor
-
このコマンドはサポートされません。リクエストにはSTALLハンドシェ
イクで応答します。
GetBusStatus
-
このコマンドはサポートされません。リクエストにはSTALLハンドシェ
イクで応答します。
GetHubStatus
-
コントロール転送のデータステージで,wHubStatusとwHubCangeレジス
タを含む4バイトの情報を返送します。
GetPortStatus
-
コントロール転送のデータステージで,定義されたポートの
wPortStatusとwPortChangeレジスタを含む4バイト情報を返送します。
もしサポートされていないポートが定義されていた場合,データステー
ジでSTALLハンドシェイクで応答します。
SetHubFeature
-
このコマンドに応答し,定義された機能をセットします。もしサポート
されていない機能であればSTALLハンドシェイクで応答します。
ClearHubFeature
-
このコマンドに応答し,定義された機能をクリアします。もしサポート
されていない機能であればSTALLハンドシェイクで応答します。
SetPortFeature
-
190
このコマンドに応答し,定義された機能を定義されたポートにセットし
ます。もしサポートされていない機能が定義されているか,ポートがサ
ポートされていない場合,STALLハンドシェイクで応答します。
第9章 USBハブ
ClearPortFeature
-
このコマンドに応答し,定義されたポートの定義された機能をクリアし
ます。もしサポートされていない機能が定義されているかポートがサ
ポートされていない場合,STALLハンドシェイクで応答します。
191
第9章 USBハブ
192
第10章
10章 USBファンクション
USBファンクション
この章では,USBファンクション回路の機能と動作について説明します。
10.1 USBファンクションの概要
10.2 USBファンクション回路の構成
10.3 USBファンクション回路のレジスタ
10.4 USBファンクションの割込み
10.5 USBファンクション機能説明
10.6 USBファンクションの動作説明
193
第10章 USBファンクション
10.1
USBファンクショ
USBファンクションの概要
ファンクションの概要
USBファンクション回路は,USB(Universal Serial Bus)通信プロトコルをサポー
トするインタフェースです。 転送スピードはFull(12Mbps)スピードに対応してい
ます。
■ USBファンクション回路の機能
USBファンクション回路は,USBプロトコルをサポートするホストコントローラと
双方向のシリアル転送を行います。
プロトコル:USBProtocol Revision1.0に対応。
スピード:Full(12Mbps)スピードのみをサポート。
デバイスステータス:デバイスステータスの応答はUSBProtocolで自動発
信。
クロック:USBインタフェースは48MHzのクロックでデジタルPLLによる
データの同期補正(ファンクション内部は48MHzの4分周に同期)
。
データチェック:Bit Stripping,Bit Stuffing,CRC5,CRC16の自動生成
とチェック。
Data同期ビット:Data同期ビット(DATA0/DATA1トグルビット)の保持。
USB標準コマンド:Get/SetDescriptor,SynchFrameコマンドを除く,すべ
ての標準コマンドは自動対応。Get/SetDescriptor,SynchFrameコマンド
についてはSETUPトランザクションのステータス表示を行い,CPUバスに
データとして出力することで対応。
Class/Vendorコマンド:Class/VendorコマンドはSETUPトランザクション
をCPUバスにデータとして出力することで対応。
Endpoint:最大四つのEndpointをサポート。(Endpoint 0はControl転送に
固定)
Interface/Alternate:Interface 0,1とAlternateの切替えはソフト管理
による。
割込み発生要因:Endpointの転送パケットの終了時(USB HOSTへのハンド
シェークまたはUSB HOSTからのハンドシェークを受けた場合)で発生。
そ の 他 , フ レ ー ム 開 始 ( SOF ) パ ケ ッ ト 受 信 時 , SETUP ス テ ー ジ ,
SetInterface受信時,SUSPENDへの移行時とその復帰時に発生。
DMA転送:DMAコントローラを内蔵し内部FIFOデータから直接RAMに転送。
194
第10章 USBファンクション
10.2
USBファンクション回路の構成
USBファンクション回路の構成
USBファンクション回路は,以下の四つの要素で構成されています。
・USBデバイスコントローラ(UDC)
・送受信バッファ(IN/OUT_BUF)
・DMAコントローラ(DMAC)
・USB制御レジスタ群
(UMDR, DBAR, DTCR, UCTR, USTR1, USTR2, UMSKR, UFRM1, UFRM2, EPER, EPBR0,
EPBRx1, 2)
■ USBファンクション回路のブロックダイヤグラム
図 10.2-1 USBファンクション回路のブロックダイヤグラム
195
第10章 USBファンクション
○
USBリセットモードレジスタ
USBファンクション回路部のリセットおよび動作スピード(Full/Low),HUBと
の接続,RESUMEなどを行うレジスタです。
○
DMAベースアドレスレジスタ
転送データのRAM上の格納先アドレスを指定します。
○
転送バイトカウントレジスタ0∼3
各エンドポイントのパケットの転送(送信DMAバイトカウント指定,受信バイ
トカウント)バイトカウントレジスタです。
○
USBコントロールレジスタ
USBプロトコルのデータ転送制御レジスタです。
○
USBステータスレジスタ1,2
USB転送データの終結ステータスおよび現在の転送パケット情報を表示する
レジスタです。
○
USB割込みマスクレジスタ
USB転送データの終結割込み,SOFパケット受信割込みなどの割込みマスクレ
ジスタです。
○
フレームステータスレジスタ
フレーム番号が格納されるレジスタです。
○
エンドポイントイネーブルレジスタ
各エンドポイントの機能を有効に指定するレジスタです。
○
エンドポイントセットアップレジスタ
各エンドポイントの構成情報(Interface,Alternate,方向およびMax Packet
Size)を指定するセットアップレジスタです。
○
USB用プルアップ制御レジスタ
USBP端子に接続されるプルアップ抵抗を制御します。
196
第10章 USBファンクション
10.3
USBファンクション回路のレジスタ
USBファンクション回路のレジスタ
USBファンクション回路に関連するレジスタを示します。
■ USBファンクション回路に関連するレジスタ
○
USBリセットモードレジスタ
○
DMAベースアドレスレジスタ
○
転送データカウントレジスタ0∼3
<エンドポイント0,1,2,3>
197
第10章 USBファンクション
198
○
USBコントロールレジスタ
○
USBステータスレジスタ1
○
USBステータスレジスタ2
○
USB割込みマスク
○
USBフレームステータスレジスタ
第10章 USBファンクション
○
エンドポイントイネーブルレジスタ
○
エンドポイント(0,1,2,3)セットアップレジスタ
<エンドポイント0>
<エンドポイント1>
<エンドポイント2>
199
第10章 USBファンクション
<エンドポイント3>
○
200
USB用プルアップ制御レジスタ
第10章 USBファンクション
10.3.1
USBリセットモードレジスタ(
USBリセットモードレジスタ(UM
リセットモードレジスタ(UMDR
UMDR)
DR)
USBリセットモードレジスタはUSBファンクション回路ブロックのリセットおよび
各種動作モード指定を行うレジスタです。BIT2∼3は予約ビットです。書込み時は必
ず"0"をライトしてください。
■ USBリセットモードレジスタ(UMDR)
BIT7:RST(Function Reset)
USBファンクション回路部の個別リセット信号です。通常の運用時にはこの
ビットによるファンクション回路部の個別リセットは必要ありません(電源投
入後の初期化処理を除く)。ファンクション回路部のリセットは電源投入時のシ
ステムリセットとORでリセットされます。
初期値は "1"でリセット状態のため"0"書込みしてリセット解除を行ってく
ださい。
ファンクションブロックリセットビット
RST
0 USBファンクション回路のリセットを解除
1 USBファンクション回路をリセットする
BIT6:RESUM (Resume)
リモートWakeUP許可状態(SET_FEATUREコマンドで許可)で,かつステータス
レジスタ1のSUSP=1(SUSPENDモード)の場合,RESUMEが可能となります。この
ビットに"1"書込みでSUSP=0 になり,RESUMEが開始されます。RESUME指示はこ
のビットを "1"に設定後,最低12MHzの2クロック(166nsec)分以上の時間を取
り"0"ライトクリアしてください。
RESUME
USB RESUME ビット
0
USB RESUME 開始指示ビット解除
1
USB RESUME 開始
BIT5:HCON(USB HOST Connection)
USBインタフェースにてホストコントローラとの接続を行うレジスタです。
また,コンパウンドデバイス(ハブ+ファンクション)で使用の場合は,ハブの
ダウンポート5への接続を行うレジスタとなります。
HCON
USB 接続
0 USB ホストコントローラまたはハブポートと接続なし
1 USB ホストコントローラまたはハブポートと接続
201
第10章 USBファンクション
BIT4:SP(USB Speed)
USBインタフェースの転送スピードを設定します。この設定は電源投入後初期
化処理にて一度だけ設定が可能です。Speed設定後,ファンクション回路部を
BIT7"RST"ビットによりリセット解除処理を行ってください。電源投入時の初期
値は"0"Low speedの設定となっています。
SP
USB スピードビット
0
USB Low Speed (1.5Mbps)
1
USB Full Speed (12Mbps)
注: コンパウンドデバイス(ハブ+ファンクション)で使用の場合は,
必ずFullSpeed設定にしてください。
BIT3∼2:予約ビット
このレジスタの当ビットに対する書込みは,必ず"0"を書き込むようにします。
BIT1:RFBM(Rate FeedBack Made)
USBのInterrupt転送時のデータトグルモードの選択ビットです。
RFBM
データトグルモード選択ビット
交代データトグルモードを選択
0
転送が問題なく完了したときのみDATA0/DATA1のPIDをトグル
データトグルモードを選択
1
無条件にDATA0/DATA1のPIDをトグル*
*:ISO転送において,レートフィードバック情報に使用することがで
きます。
BIT0:BFS(Buffer Size)
RAM上に獲得する各エンドポイントのバッファ用メモリのサイズを指定しま
す。獲得されるメモリのサイズは指定エンドポイントの数(4個:EndPoint 0∼3)
すべてがこのビットで指定されるサイズとなります。
BFS
0
1
202
8 Byte
64 Byte
Buffer(RAM上) size 指定ビット
(すべてのEndpoint0∼3について)
(すべてのEndpoint0∼3について)
第10章 USBファンクション
10.3.2
DMAベースアドレスレジスタ(
DMAベースアドレスレジスタ(DBAR
ベースアドレスレジスタ(DBAR)
DBAR)
DMAベースアドレスレジスタは各End Point(0∼3)用のバッファメモリ(RAM上に
マッピング)のDMA転送先アドレスを指定します。ベースアドレスレジスタで指定さ
れたアドレスはEnd point0のDMA転送アドレスとなり,以降のEnd point1∼3用の転送
アドレスは,USBリセットモードレジスタの"BFS"ビットで指定されるサイズ単位で連
続領域に設定されます。
■ DMAベースアドレスレジスタ(DBAR)
BIT7∼6:予約ビット
このレジスタの当ビットに対する書込みは,必ず"0"を書き込むようにします。
BIT5∼0(DBAR):AD9∼AD4(DMA Base Address AD9∼AD4)
EndPoint0のDMA転送先ベースアドレスを指定します。 各EndPoint1∼3のDMA
転送アドレスはベースアドレス(EndPoint0)を先頭にして指定されたバッファ
サイズ(BFSビットによるサイズ指定)のオフセットで各EndPointのDMA転送ア
ドレスが固定されます。 指定Addressは"0XX0"H(X:任意)となります。
設定可能なDMA領域のアドレス範囲は"0000"H∼"03F0"Hとなりますが,内蔵RAM
が実装される領域の範囲で指定してください(I/O領域"0000"H∼"007F"Hは指定
禁止です)
。
例)以下は,DBAR="0A"h,UMDR BFSビット="0"(8Byte)の場合
203
第10章 USBファンクション
10.3.3
転送データカウントレジスタ(TDCR0
転送データカウントレジスタ(TDCR0∼
TDCR0∼3)
転送データカウントレジスタはUSBプロトコルのOUT方向データでは受信したデー
タのバイトカウントステータスを示し,IN方向データ転送ではDMAによる送信転送バ
イトカウント数を指定します。転送データバイトカウントレジスタはエンドポイント
(0∼3)ごとに指定します。IN方向データ転送ではDMA転送によりカウント値は減算
されカウント値が0となり,USBプロトコルのパケット転送が終了した時点で転送終結
します。終結と同時に割込みイネーブルビットが有効に指定されていれば割込みをCPU
に通知します。
■ 転送データカウントレジスタ(TDCR0∼3)
データカウントレジスタ は各エンドポイントごとに構成されています。エンド
ポイント0∼3は"TDCR0∼3"に対応し,最大転送数は64Byteです。
各データカウントレジスタの書込み時,Bit7は,"0"を書き込んでください。
TDCR0∼3 [エンドポイント0∼3]
BIT6∼0:BC6∼BC0 (Transfar Byte Counter)
Max 64Byte 指定可能
204
第10章 USBファンクション
USB OUT方向転送(ファンクションはデータ受信)では1パケットの受信データバ
イトカウント数を示すステータスレジスタとなります。OUT方向の転送時は,TDCR
はリード専用でライトは意味を持ちません。転送終結ステータス"Pkend"が"1"で転
送方向ステータス"DIR"がOUT方向のステータス状態時フンクションがホストより
受信したデータのバイト数を対応するエンドポイントのデータカウントレジスタ
に表示します。(この受信データカウントのステータスは"Pkend=1","DIR=1"の状
態でのみ有効です。)
USB IN方向転送(ファンクションからホストへデータ送信)用にDMA転送する送
信バイトカウント数をIN方向にサポートするエンドポイントごとに指定します。IN
方向転送時は,TDCRはライト専用でリード値は意味を持ちません。DMA転送の最大
送信バイトは64byteです。
(例)
8Byte
64Byte
"08"H
"40"H
205
第10章 USBファンクション
10.3.4
USBコントロールレジスタ(
USBコントロールレジスタ(UCTR
コントロールレジスタ(UCTR)
UCTR)
USBコントロールレジスタはUSBプロトコルインタフェースのデータ転送を制御す
るレジスタです。
■ USBコントロールドレジスタ(UCTR)
BIT7∼4:BFOK3,2,1,0(Buffer OK)
転送データの送受信用バッファの使用準備が整い,次の転送許可を行う指定
ビットです。このビットは 転送終結ステータス"PKend" (USB ACK,NACK応答)
によりハードクリアされるため次の転送前に再度転送許可に設定しておく必要
があります。
このビットの添え数字は対応するEndPoint0∼3に対応します。
BFOK
BUFFER Ready OK ビット
0
転送バッファ準備されていない。
1
転送バッファ準備されDMA転送を許可する。
BIT3∼0:STALL3,2,1,0(USB STALL Response)
このビットが"1"書込みでアクセスのあったEndPoint3,2,1,0に対してSTALL
状態をセットすることができます。
STALLとBFOKを共にセットしたEndPointに対してホストからアクセスがあっ
た時点で自動的にクリアされます。STALLのみセットした場合は自動でクリアさ
れません。
STALL
Stall応答ビット
0
STALL応答しない。
1
STALL応答を行う。
206
第10章 USBファンクション
10.3.5
USBステータスレジスタ
USBステータスレジスタ1
ステータスレジスタ1(USTR1)
USTR1)
USBステータスレジスタ1はUSBインタフェースのデータ転送終了,セットアップト
ランザクション,SOFパケットなどの現在の転送パケットの状態を示すステータスレ
ジスタです。各ステータスの割込み要因がマスク解除状態であれば,CPUに割込み通
知を行います。
■ USBステータスレジスタ1(USTR1)
BIT7:Pkend(Transfer Paket end)
現在の転送パケット終了のステータスを表示します(転送パケットの応答ACK,
NACKにより"1"となリます)。このビットのクリアは"0"書込みによりクリアされ
ます。"1"書込みは意味を持ちません。割込みマスクレジスタの対応するビット
が割込み有効に指定されていれば,CPUに割込み通知を行います。
Pkend
送受信パケットの転送終了ビット
0
USBプロトコル送受信パケットの転送なし
1
USBプロトコル送受信パケット転送終了
BIT6:Setup(Setup)
USB Controll転送のSetupステージであることを示します。 このビットのク
リアは"0"書込みによりクリアされます。"1"書込みは意味を持ちません。割込
みマスクレジスタの対応するビットで割込みが有効指定されていれば,CPUに割
込み通知を行います。
Setup
Setup ステータスビット
0
Controll 転送 SETUPステージではない。
1
Controll 転送 SETUPステージである。
BIT5:SOF(Start Of Freame)
USBインタフェースでSOFパケットを受信したことを示すステータスビットで
す。このビットが"1"の場合,フレームレジスタのフレーム番号が有効となりま
す。 このビットのクリアは"0"書込みによりクリアされます。"1"書込みは意味
を持ちません。
割込みマスクレジスタの対応するビットで割込みが有効指定されていれば
CPUに割込み通知を行います。
SOF
0
1
Stert of frame ステータスビット
SOFなし/ ビットクリア
SOF パケットがあった。
207
第10章 USBファンクション
BIT4:Setif(Set Interface)
USBコマンドのSet Interfaceコマンドを受け付けた場合にセットされるス
テータスビットです。このビットのクリアは"0"書込みによりクリアされます。
"1"書込みは意味を持ちません。割込みマスクレジスタの対応するビットで割込
みが有効指定されていれば,CPUに割込み通知を行います。また,このビットが
セットされるとUCTR(BFOK3∼BFOK0)が自動でクリアされます。
Setif
SetInterface ステータスビット
0
SetInterfaceコマンドなし,割込み要因のクリア
1
SetInterfaceコマンド受付け
BIT3:BUSR(Usb Bus Reset)
USBインタフェースがバスリセット状態に移行したことを表示します。
このビットのクリアはBUSRFがクリア時,バスリセットからの復帰により自動
でクリアされます。
BUSR
0
1
Usb Bus Reset ステータスビット
USBバスがリセット状態ではない。
USBバスがリセット中である。
BIT2:WKUP(WaKe UP)
USBインタフェースがサスペンド状態から復帰したことを表示します。この
ビットはサスペンド状態信号(SUSP)がイネーブル状態からディセーブル状態
になった場合にハードでセットされます。"1"書込みは意味を持ちません。割込
みマスクレジスタの対応するビットで割込みが有効指定されていれば,CPUに割
込み通知を行います。
WKUP
0
1
WAKE UP ステータスビット
WAKE UP 割込み要因無し。割込み要因のクリア。
WAKE UP 割込み要因有り。
BIT1:SUSP(USB Suspend)
USBインタフェースがサスペンド状態に移行したことを表示します。
サスペンド状態からの復帰はリモートウェークアップ(UMDRレジスタRESUM
ビット1ライト)による復帰,またはホストコントローラによる復帰要因があり
ます。 割込み要因のクリアは"0"ライトを行います。 "1"書込みは意味を持ち
ません。割込みマスクレジスタの対応するビットで割込みが有効指定されてい
れば,CPUに割込み通知を行います。
SUSP
0
1
208
Suspend ステータスビット
Suspend 状態割込み無し。 割込み要因のクリア。
Suspend 状態割込み発生。
第10章 USBファンクション
BIT0:NACK(NACK)
現在のUSBプロトコル転送で何らかのエラー(CRC,FIFOオーバランetc)を検
出した場合に,USBホストコントローラに"NACK"応答を行ったことを示します。
このビットはパケット転送終了ステータス"PKEND"が"1"の場合にステータスは
有効となります。
(注意:このビットは割込み要因ではありません。)
現在の転送が"NACK"終結した場合,転送データは保証されません。転送開始
前の状態(送信バッファに転送データを再度準備し転送許可設定)にして次の
ホストコントローラからの転送要求に準備します。
NACK
0
1
NACK 応答 ステータスビット
現在の転送に正常終了応答ACK応答を行った。
現在の転送に異常検出しNACK応答を行った。
209
第10章 USBファンクション
10.3.6
USBステータスレジスタ
USBステータスレジスタ2
ステータスレジスタ2(USTR2)
USTR2)
USBステータスレジスタ2はUSBインタフェースの転送終結時の情報(転送方向,
ショートパケットフラグ,EndPoint番号)のステータスレジスタです。 USB転送終結
時のエンドポイント属性を示します。
■ USBステータスレジスタ2(USTR2)
BIT7,6:I0AL1,I0AL0(Interface 0 Alternate 1,0 Number)
現在の設定されているInterface 0のAlternate番号を表示します。USBホスト
リクエストの"Set Interface"コマンドにより設定されているAlternate番号を
表示します。ソフトは現在管理しているAlternate番号とホストからの構成が一
致しているかの確認が可能です。
I0AL1,I0AL0
0 ,0
0 ,1
1 ,0
1 ,1
現在の Interface 0 のAlternate番号
Alternate 0
Alternate 1
Alternate 2
Alternate 3
BIT5,4:I1AL1,I1AL0(Interface 1 Alternate 1,0 Number)
現在の設定されているInterface 1 のAlternate 番号を表示します。 ホスト
USBリクエストの "Set Interface" コマンドにより設定されているAlternate番
号を表示します。 ソフトは現在管理しているAlternate番号とホストからの構
成が一致しているかどうかの確認が可能です。
I1AL1,I1AL0
0 ,0
0 ,1
1 ,0
1 ,1
現在の Interface 1 のAlternate番号
Alternate 0
Alternate 1
Alternate 2
Alternate 3
BIT3:SPK(Short Paket)
USBプロトコルで転送されるパケットのデータバイト数が対応するEndPoint
Buffer(0∼3)に指定されているMax Paketサイズに満たない場合にステータス
として表示されます。このビットは,パケット転送終了ステータス"Pkend"が"1"
の場合に有効です。 (注意:このビットは割込み要因ではありません。)
SPK
0
1
210
Short paket ステータスビット
転送パケットがMax Paket Size
転送パケットはMax Paket Size 未満であった。
第10章 USBファンクション
BIT2:DIR(Direction)
転送パケット終了時の方向を示します。このビットは転送パケット終了ス
テータス"Pkend"ビットが"1"の場合に有効です。
DIR
0
1
転送パケット方向ステータスビット
USB Out 方向転送
USB IN 方向転送
BIT1,0:EPC1,0(EndPoint Number Code)
現在の転送パケットのEndPoint 番号を示します。このビットは転送パケット
終了ステータス"Pkend"ビットが"1"の場合に有効です。
EPC
0
0
1
1
1 ,0
,0
,1
,0
,1
End Point 番号ステータスビット
EndPoint 0
EndPoint 1
EndPoint 2
EndPoint 3
211
第10章 USBファンクション
10.3.7
USB割込みマスクレジスタ
USB割込みマスクレジスタ(
割込みマスクレジスタ(UMSKR)
UMSKR)
USBステータスレジスタの割込み要因ビット(PKEND, SETUP, SOF, SETIF, WKUP,
SUSP)のマスクコントロールレジスタです。各割込み要因の割込みマスクをビットご
とに指定可能です。
■ USB割込みマスクレジスタ(UMSKR)
BIT7:MPKend(Mask PaKet END Interruption)
転送データの終了ステータス"Pkend"ステータスの割込みのマスク制御を行
います。パワーオンリセット解除,リセット・コントロールレジスタのリセット
ビットによるリセット解除後は,割込みはマスク状態(割込み不可)です。
MPKend
0
1
Pkend 割込み許可ビット
対応 Pkend割込み不可。 (マスク状態)
対応 Pkend割込み許可。 (マスク解除)
BIT6:MSETUP(Mask SETUP Interruption)
Control転送のセットアップステージステータス"Setup"の割込みマスク制御
を行います。
パワーオンリセット解除,リセット・コントロールレジスタのリセットビット
によるリセット解除後は,割込みのマスク状態(割込み不可)となります。
MSetup
0
1
Setup 割込み許可ビット
対応 Setup割込み不可。 (マスク状態)
対応 Setup割込み許可。 (マスク解除)
BIT5:MSOF(Mask SOF Interruption)
フレームスタート同期信号の"SOF"ステータス割込みのマスク制御を行いま
す。パワーオンリセット解除,リセット・コントロールレジスタのリセットビッ
トによるリセット解除後は,割込みのマスク状態(割込み不可)となります。
MSOF
0
1
212
SOF 割込み許可ビット
対応 SOF割込み不可。 (マスク状態)
対応 SOF割込み許可。 (マスク解除)
第10章 USBファンクション
BIT4:MSETIF(Mask SET InterFace Interruption)
ホストコマンドの"SET INTERFACE"の受信ステータスの割込みマスク制御を行
います。パワーオンリセット解除,リセット・コントロールレジスタのリセット
ビットによるリセット解除後は,割込みのマスク状態(割込み不可)となりま
す。
MSETIF
0
1
SETIF 割込み許可ビット
対応 SETIF割込み不可。 (マスク状態)
対応 SETIF割込み許可。 (マスク解除)
BIT3:MBUSR(Mask usb BUS Reset)
USBバスリセット状態表示信号"BUSRF"ステータス割込みのマスク制御を行い
ます。パワーオンリセット解除,リセットコントロールレジスタのリセットビッ
トによるリセット解除後は,割込みのマスク状態(割込み不可)となります。
MBUSR
0
1
BUSRF 割込み許可ビット
対応 BUSRF 割込み不可。 (マスク状態)
対応 BUSRF 割込み許可。 (マスク解除)
BIT2:MWKUP(Mask WaKeUP Interruption)
SUSPEND復帰信号の"WKUP"ステータス割込みのマスク制御を行います。
パワーオンリセット解除,リセット・コントロールレジスタのリセットビット
によるリセット解除後は,割込みのマスク状態(割込み不可)となります。
MWKUP
0
1
WKUP 割込み許可ビット
対応 WKUP割込み不可。 (マスク状態)
対応 WKUP割込み許可。 (マスク解除)
BIT1:MSUSP(Mask SUSPend Interruption)
SUSPEND状態表示信号の"SUSP"ステータス割込みのマスク制御を行います。
パワーオンリセット解除,リセット・コントロールレジスタのリセットビット
によるリセット解除後は,割込みのマスク状態(割込み不可)となります。
MSUSP
0
1
SUSP 割込み許可ビット
対応 SUSP割込み不可。 (マスク状態)
対応 SUSP割込み許可。 (マスク解除)
BIT0:BUSRF(BUS Reset Flag)
USBバスリセット開始を表示します。"1"書込みは意味を持ちません。割込み
マスクレジスタの対応するビットで割込みが有効指定されていればCPUに割込
み通知を行います。このビットはUSBバスリセットの立ち上がりエッジでセット
されます。
BUSRF
0
1
USB BUS Reset フラグビット
USBバスリセット割込み要因無し。割込み要因のクリア
USBバスリセット割込み要因有り。
213
第10章 USBファンクション
10.3.8
USBフレームステータスレジスタ(
USBフレームステータスレジスタ(UFRM
フレームステータスレジスタ(UFRMR
UFRMR)
USBフレームステータスレジスタは,フレーム同期信号受信時のフレーム番号の表
示を行います。
■ USBフレームステータスレジスタ(UFRMR)
BIT7∼0(UFRMR1)
,BIT2∼0(UFRMR2):FRM10∼0(Frame Number)
フレーム同期パケットの現在のフレーム番号を示します。フレーム番号はステー
タスレジスタ1の"SOF"フラグが"1"の時に有効となります。
BIT7∼3(UFRMR2):予約ビット
このレジスタの当ビットに対する書込みは必ず"0"を書き込むようにします。
214
第10章 USBファンクション
10.3.9
エンドポイントイネーブルレジスタ(EPER
エンドポイントイネーブルレジスタ(EPER)
EPER)
各エンドポイントの機能を有効に指定するレジスタです。ファンクションとして使
用するエンドポイントに対してエンドポイントごとに有効設定を行います。
■ エンドポイントイネーブルレジスタ(EPER)
各エンドポイント0,1,2,3の機能を有効にするイネーブルレジスタです。有効
指定は各エンドポイントごとに指定します。
BIT7∼4:予約ビット
このレジスタの当ビットに対する書込みは必ず"0"を書き込むようにします。
BIT3,2,1,0(Epen 3,2,1,0):(End Point Enable 3,2,1,0)
EndPoint 3,2,1の各エンドポイントの機能を有効にします。 EndPoint 0は
電源投入時デフォルトで有効となっています。(EndPoint 0のイネーブルビット
は"1"固定です。)
各添え数字の番号はエンドポイント番号に対応します。
このビットの設定により,各構成情報(エンドポイントセットアップレジス
タの設定によるInterface,Type,Dir,Max Paket size)を持つEndPointが有
効となります。
表 10.3-1 EPEN 3,2,1
EPENx
0
1
EndPoint 3,2,1 イネーブルビット
EndPoint 3,2,1 は無効
EndPoint 3,2,1 のうち,セットされたEnd Point番号の機能を有効とす
る。
215
第10章 USBファンクション
10.3.10
エンドポイントセットアップレジスタ(
エンドポイントセットアップレジスタ(EPBR0
タ(EPBR0,
EPBR0,
EPBRx1,
EPBRx1,x2)
x2)
エンドポイント0セットアップレジスタはEndPoint 0の構成情報(EndPoint Buffer)
を設定します。 EndPoint 0の構成はデファルトでControl_IN,Control_outに固定さ
れており,すべてのInterface,Alternateに含まれています。
エンドポイントセットアップレジスタx1,x2は各EndPoint(1,2,3)ごとの構成
情報を設定します。エンドポイントの構成は転送タイプ,転送方向および最大パケッ
トサイズの指定を行います。パケット転送中には,このレジスタ値を変更しないでく
ださい。
■ エンドポイントセットアップレジスタ(EPBR0,EPBRn1,n2)n=1,2,3
○
エンドポイント0セットアップレジスタ(EPBRO)
BIT7:予約ビット
上記予約ビットへの書込みは,必ず"0"を書き込むようにします。
BIT6∼0:MP6∼MP0(Max packet Size)
EndPoint 0の最大転送バイト数を指定します。EndPoint 0の指定可能なパケッ
トの最大転送バイトは64バイトです。それ以上の設定は行わないでください。
また,ALL"0" 0Byteの指定も禁止です。
<例 >
MP5∼ MP0:"40"H => 64Byte
(最大指定値)
"08"H => 8Byte
○
エンドポイント1セットアップレジスタ(EPBR11,12)
エンドポイント1の構成を設定します。
216
第10章 USBファンクション
<EPBR11>
BIT 7,6,1,0:予約ビット
このビットへの書込みは必ず"0"を書き込んでください。
BIT5,4(EPBR11):TYP1,TYP0 (End Point 1 Type)
EndPoint 1がサポートする転送タイプを指定します。
TYP1
0
0
1
1
TYP0
0
1
0
1
EndPoint 1 TYPE指定
Interrupt転送
Bulk 転送
Isochronous 転送
(指定禁止)
BIT3,2(EPBR11):DIR1,DIR0(EndPoint 1 Direction)
EndPoint 1 がサポートする転送方向を指定します。
DIR1
0
0
1
1
DIR0
0
1
0
1
EndPoint 1 Direction指定
OUT EndPoint
IN EndPoint
OUT/IN 両方に対応するEndPoint
(指定禁止)
<EPBR12>
BIT7(EPBR12):予約ビット
このビットへの書込みは必ず"0"を書き込んでください。
BIT6∼0(EPBR12):MP6∼0(Max Packet Size)
EndPoint 1がサポートする最大転送パケットサイズを指定します。 EndPoint
1の指定可能な最大転送バイトは64Byteです。(ALL"0" 0Byteの指定は禁止で
す。
)
<設定例>
MP6∼MP0: "40"H => 64Byte (最大値)
○
エンドポイント2セットアップレジスタ(EPBR21,22)
エンドポイント2の構成を設定します。設定する内容はエンドポイント1の
セットアップレジスタと同一内容です。
217
第10章 USBファンクション
<EPBR21>
BIT7,6,1,0(EPBR21):予約ビット
このビットへの書込みは必ず"0"を書き込んでください。
BIT5,4(EPBR21):TYP1,TYP0(EndPoint 2 Type)
EndPoint 2がサポートする転送タイプを指定します。
TYP1 TYP0
EndPoint 2 TYPE指定
0
0
Interrupt転送
0
1
Bulk 転送
1
0
Isochronous 転送
1
1
(指定禁止)
BIT3,2(EPBR21):DIR1,DIR0(EndPoint 2 Direction)
EndPoint 2 がサポートする転送方向を指定します。
DIR1 DIR0
EndPoint 2 Direction指定
0
0
OUT EndPoint
0
1
IN EndPoint
1
0
OUT/IN 両方に対応するEndPoint
1
1
(指定禁止)
<EPBR22>
BIT7(EPBR22):予約ビット
このビットへの書込みは必ず"0"を書き込んでください。
BIT6∼0(EPBR22):MP6∼0(Max Packet Size)
EndPoint 2がサポートする最大転送パケットサイズを指定します。EndPoint 2
の指定可能な最大転送バイトは64Byteです(ALL"0" 0Byteの指定は禁止です)。
<設定例>
MP6∼MP0:
○
"40"H => 64Byte
(最大値)
エンドポイント3セットアップレジスタ(EPBR31,32)
エンドポイント3の構成を設定します。設定する内容はエンドポイント1の
セットアップレジスタと同一内容です。
218
第10章 USBファンクション
<EPBR31>
BIT7,6,1,0(EPBR31):予約ビット
このビットへの書込みは必ず"0"を書き込んでください。
BIT5,4(EPBR31):TYP1,TYP0 (EndPoint 3 Type)
EndPoint 3がサポートする転送タイプを指定します。
TYP1 TYP0
EndPoint 3 TYPE指定
0
0
Interrupt転送
0
1
Bulk 転送
1
0
Isochronous 転送
1
1
(指定禁止)
BIT3,2(EPBR31):DIR1,DIR0(EndPoint 3 Direction)
EndPoint 3 がサポートする転送方向を指定します。
DIR1 DIR0
End Point 3 Direction指定
0
0
OUT End Point
0
1
IN End Point
1
0
OUT/IN 両方に対応するEnd Point
1
1
(指定禁止)
<EPBR31>
BIT7(EPBR32):予約ビット
このビットへの書込みは必ず"0"を書き込んでください。
BIT6∼0(EPBR32):MP6∼0(Max Packet Size)
EndPoint 3がサポートする最大転送パケットサイズを指定します。EndPoint 3
の指定可能な最大転送パケットサイズは64Byteです(ALL"0" 0Byteの指定は禁
止です)
。
<設定例>
MP6∼MP0:
"40"H
=>
64Byte (最大値)
219
第10章 USBファンクション
10.3.11
USB用プルアップ制御レジスタ(
USB用プルアップ制御レジスタ(USBPC
用プルアップ制御レジスタ(USBPC,
USBPC,USBP)
USBP)
USBP端子に接続されるプルアップ抵抗を制御するレジスタです。これにより,ホス
トコントローラとの接続を認識することができます(RPVP,RPVM端子は,プルアップ
抵抗が有効になるまでの間は,ハイインピーダンス状態です)
。
■ USB用プルアップ制御レジスタ(USBPC,USBP)
○
USB用プルアップ制御レジスタ(USBPC)
BIT7∼1
:
DDR3(ポート3方向レジスタ)として使用。「4.5
さい。
BIT0
ポート3」を参照してくだ
:
USBPC端子の使用禁止/許可を指定します。
USBPC
0
1
○
USBP端子使用許可指定
使用禁止
使用許可
USB用プルアップレジスタ(USBP)
BIT7∼1
:
PDR3(ポート3データレジスタ)として使用。「4.5
ださい。
BIT0
ポート3」を参照してく
:
USBPCレジスタにてUSBP端子の使用が許可されている場合,プルアップON/OFF
を指定します。
USBP
0
1
プルアップON/OFFの選択
プルアップOFF
プルアップON
参考:
USB用プルアップ抵抗をONにする場合,USBPレジスタを"1"(プルアップON)
セットした後にUSBPCレジスタを"1"(使用許可)としてください。また,リセッ
ト中は,USBP端子はHi-zとなります。
220
第10章 USBファンクション
10.4
USBファンクションの割込み
USBファンクションの割込み
USBファンクションの割込み要因として,USBポートからのデータ受信とUSBポート
への送信終了時,コントロール転送時のSETUPステージ時,フレームスタート信号
(SOF)受信時,SET Interfaceコマンド受信時,USBポートのバスリセット時,USB
ポートがホストによりサスペンド状態に移行した時と,サスペンド状態からの復帰が
あります。サスペンド状態からの復帰はSTOP状態においても,割込み要求を発生しま
すのでSTOP解除要因にもなります。
■ USBファンクション動作時の割込み
USB 転送で ,現 在の 転送 パケ ット が終 了 した 場合 ,転 送終 了フ ラ グビ ット
(USTR1:PKEND)が"1"にセットされます。その際,割込み要求許可ビットを許可
(UMSKR:MPKEND=1)していると,CPUへ割込み要求(IRQ3)が発生します。割込み
処理ルーチンでPKENDビットに"0"を書き込み,割込み要求をクリアしてください。
USB転送で,現在の転送ステージがSETUPである場合に割込み要求フラグビット
(USTR1:SETUP)が"1"にセットされます。その際,割込み要求許可ビットを許可
(UMSKR:MSETUP=1)していると,CPUへ割込み要求(IRQ3)が発生します。割込み
処理ルーチンでSETUPビットに"0"を書き込み,割込み要求をクリアしてください。
USB転送で,ホストからSOFパケットを受信した時に割込み要求フラグビット
(USTR1:SOF)が"1"にセットされます。その際,割込み要求許可ビットを許可
(UMSKR:MSOF=1)していると,CPUへ割込み要求(IRQ3)が発生します。割込み処
理ルーチンでSOFビットに"0"を書き込み,割込み要求をクリアしてください。
USB転送で,ホストからSetInterfaceコマンドを受け付けた時に割込み要求フラ
グビット(USTR1:SETIF)が"1"にセットされます。その際,割込み要求許可ビット
を許可(UMSKR:MSETIF=1)していると,CPUへ割込み要求(IRQ3)が発生します。
割込み処理ルーチンでSETIFビットに"0"を書き込み,割込み要求をクリアしてくだ
さい。
USBバスリセット検出した時に割込み要求フラグビット(UMSKR:BUSRF)が"1"に
セットされます。その際,割込み要求ビットを許可(UMSKR:MBUSR=1)にしている
と,CPUへ割込み要求(IRQ3)が発生します。割込み処理ルーチンで割込み要求フ
ラグビットBUSRFに"0"を書き込み,割込み要求をクリアしてください。
USBアップポートが3msec以上の間,連続するアイドル・ステート状態を検出した
場合にサスペンド状態に移行し,割込み要求フラグビット(USTR1:SUSP)が"1"に
セットされます。その際,割込み要求許可ビットを許可(UMSKR:MSUSP=1)してい
ると,CPUへ割込み要求(IRQ3)が発生します。割込み処理ルーチンでSUSPビット
に"0"を書き込み,割込み要求をクリアしてください。
ファンクションがサスペンド状態時に,USBアップポートからの要求により再開
状態への移行が検出された場合,対応する割込み要求フラグビット(USTR1:WKUP)
が"1"にセットされます。
その際,割込み要求許可ビットを許可(UMSKR:MWKUP=1)していると,CPUへ割込
み要求(IRQ5)が発生します。割込み処理ルーチンでWKUPビットに"0"を書き込み,
割込み要求をクリアしてください。また,割込み要求(IRQ5)はCPUがSTOP状態に
おいても発生可能です。なお,PKEND, SETUP, SOF, SETIF, BUSRF, SUSP, WKUPビッ
トはMPKEND, MSETUP, MSOF, MSETIF, MBUSR, MSUSP, MWKUPビットの値に関係なく,
割込み要因が成立すれば"1"にセットされます。
221
第10章 USBファンクション
参考:
PKEND, SETUP, SOF, SETIF, BUSRF, SUSP, WKUPビットが"1"のとき,MPKEND,
MSETUP,
MSOF, MSETIF, MBUSR, MSUSP, MWKUPビットを禁止から許可(0→1)にすると,
直ちに割込み要求が発生します。
■ USBファンクションの割込みに関連するレジスタとベクトルテーブル
表 10.4-1 USBファンクションの割込みに関連するレジスタとベクトルテーブル
割込み名
IRQ3
IRQ5
割込みレベル設定レジスタ
レジスタ
設定ビット
ILR1(007BH)
L31(bit7)
L30(bit6)
ILR2(007CH)
L51(bit3)
L50(bit2)
割込み動作については「3.4.2
222
ベクトルテーブルのアドレス
上位
下位
FFF4H
FFF5H
FFF0H
FFF1H
割込み動作時の処理」を参照してください。
第10章 USBファンクション
10.5
USBファンクション機能説明
USBファンクション機能説明
USBファンクションでサポートされる機能について以下に説明します。各エンドポ
イントの設定およびDMA転送機能について説明します。
■ USBファンクションのサポート構成
USBファンクションの機能としてサポートされる内容は以下の構成をサポートし
ています。
○
Config:1
デバイスの構成を一つサポートします。
○
Interface:1,0
デバイスとして二つのインタフェースをサポートします。現在の構成でサ
ポートされているインタフェース番号はソフトウェアで管理を行います。
○
Alternate:0,1,2,3
最大四つまでのAlternateをサポートします。構成後のAlternateはソフト
ウェアにて管理します。ハードでは,指定エンドポイントのAlternate属性の
チェックを行っていません。ソフトウェアで現在のエンドポイントのAlternate
属性が何かを管理します。このAlternate属性は標準デバイスリクエストの"Set
Interface"によりAlternate構成が変更された場合に同一インタフェースのエ
ンドポイント構成定義を変更することが出来ます。
○
EndPoint:0,1,2,3
ファンクションはEndPoint 0を含め,四つ(EndPoint 0,1,2,3)のエンド
ポイントをサポートします。
EndPoint 0 :
USBデバイスのデフォルト・パイプで使用されます。CONTROL転送のみをサポー
トします。エンドポイント0のサポートする転送パケットサイズはエンドポイン
トセットアップレジスタ(EPBR0)の指定により設定します。設定可能な最大転
送パケットサイズは64Byteです。
EndPoint 1 :
エンドポイントの特性はエンドポイントセットアップレジスタ(EPBR1)で設
定します。設定はエンドポイント1が属するインタフェース番号(0,1)サポー
ト転送タイプ(Interrupt,Bulk,Isochronous転送),転送方向(In,Out)
,Max
Paket size(Max 64Byte)の指定を行います。転送パケットデータの内蔵RAMへ
のDMA転送の最大転送パケットサイズは64Byteです。
EndPoint 2 :
エンドポイントの特性はエンドポイントセットアップレジスタ(EPBR2)で設
定します。 設定はエンドポイント2が属するインタフェース番号(0,1),サポー
ト転送タイプ(Interrupt,Bulk,Isochronous転送),転送方向(In,Out)
,Max
Paket size(Max 64Byte)の指定を行います。転送パケットデータの内蔵RAMへ
のDMA転送の最大転送パケットサイズは64Byteです。
223
第10章 USBファンクション
EndPoint 3:
エンドポイントの特性はエンドポイントセットアップレジスタ(EPBR3)で設
定します。 設定はエンドポイント3が属するインタフェース番号(0,1),サポー
ト転送タイプ(Interrupt,Bulk,Isochronous転送),転送方向(In,Out)
,Max
Paket size(Max 64Byte)の指定を行います。 転送パケットデータは内蔵RAM
へのDMA転送の最大転送パケットサイズは64Byteです。
224
第10章 USBファンクション
10.6
USBファンクションの動作説明
USBファンクションの動作説明
USBファンクションは,USB(Universal Serial Bus)通信プロトコル(Revision 1.0)
に対応しています。USBファンクション回路は,USB通信をハードウェアで実現してい
ますので,ホストPCとのパケット通信を考えることなく,DMACにより内蔵RAMをアク
セス可能です。
■ USBファンクションの動作
USBファンクション回路は,USBプロトコルに対応するホストPCと双方向のパケッ
ト転送を行います。ホストPCとデバイスの接続はエニュメレーションにより実施さ
れたあとにデバイスドライバを使用した各種の転送タイプでの通信が始まります。
図 10.6-1 USBファンクション回路
ここではエニュメレーションを例に,ホストPCとデバイスのUSB通信の動作につ
いて説明します。全体の処理内容を理解するためのレジスタおよびUSBパケットの
動きを示します。
○
エニュメレーション処理
USBが動作する上で一番初めにホストPCとデバイスとの接続を確立する処理
です。USBのバス上にどのようなデバイスが接続されているかホストPCが調査し
ます。
USBコントロール転送(USBの転送タイプ)を使って実施します(USB仕様で規
定)
。これは,4本あるエンドポイントのうちEP0(EndPoINt0)を使用します(USB
仕様)。
225
第10章 USBファンクション
表 10.6-1 エニュメレーション処理
○
接続検出
デバイスからホストPCに通知します。
ホストはUSBバスの2本の信号線(D+,D-)を監視し,どちらかの信号が"H"レベ
ルになることによりデバイスが接続されることを認識します。
MB89051シリーズは以下の処理が必要です。
-
初期設定(USBファンクションレジスタとハブレジスタを含むすべての
初期化)
-
UMDRレジスタでファンクション回路部のリセットを解除します。
-
HUBのHMDRレジスタでHUB回路部のリセットを解除します。
-
USBP端子のソフトウェア制御(「10.3.11 USB用プルアップ制御レジス
タ(USBPC,USBP)」参照)によりプルアップ抵抗を有効(ホストコン
トローラとの接続)にします(RPVP,RPVM端子はプルアップ抵抗が有効
になるまでの間は,ハイインピーダンス状態です)。
-
UMDRレジスタのHCONを有効(HUB回路との接続)にします。
図 10.6-2 MB89051シリーズ品の接続例
<注意事項>
ハブが無効の間は,ホストPCとは接続されません。
226
第10章 USBファンクション
○
USBバスリセット
ホストPCからデバイスに通知します。
USBファンクション回路が初期化されます。
デバイスは以下の処理が必要です。
構成の初期化(二つ以上のインタフェース番号に対応している場合に最
初の番号に戻す)
DMAC転送先の送受信用バッファの準備が整っていたら,UCTRレジスタの
BFOK0を有効(DMAC転送許可)にします。
○
ディスクリプタの取得
ホストPCからデバイスに要求がありデータをホストに通知します。
具体的には以下の三つのステージに別れて通信されます。
セットアップステージ
→
データステージ
→
ステータスステージ
セットアップステージでは,ホストPCからデバイスへ正常にパケットが受信
されたか確認し,そのコマンドが何かをデコードします。また次のデータステー
ジで返すディスクリプタの情報を送信用のRAM領域に用意します。
データステージではホストPCからデータが正常に送信されたかを確認します。
ステータスステージでは,ホストPCがデータなしパケットの転送をしますの
で終了処理をします。
227
第10章 USBファンクション
10.6.1
コマンド応答時の各レジスタ動作
ここでは基本となるレジスタの動作および制御よりUSBパケットの処理方法(アー
キテクチャ)を説明します。
■ コマンド応答時の各レジスタ動作
図 10.6-3 コマンド応答時の各レジスタ動作
○
セットアップ処理
ファームウェアの処理はハンドシェークごとに処理します。これは図 10.6-3
の各パケットのステージ単位に処理することに等しくなります。図 10.6-3を例
に説明します。
セットアップステージのSETUPパケットが来る前にBFOKを有効にセットしま
す。その後,セットアップステージを受信したときは,BFOKがクリアされ,PKEND
がセットされます。
PKENDがセットされた時点で,そのパケットに対しNACKフラグがクリアされて
いるか,SETUPが有効かを確認し,コマンドをデコードして各種設定処理します。
NACKフラグがセットされていた場合は,標準コマンドの場合で,自動応答なの
で以後のステージ処理は行いません。次回のセットアップステージを認識出来
るようにSETUPのクリアをしておきます。次ぎにデータステージのパケットを受
信する為に,PKENDのクリアとBFOKのセットをします。
○
パケット送信確認
データステージを受信したときは,BFOKがクリアされ,PKENDがセットされま
す。PKENDがセットされた時点で,そのパケットに対しNACKフラグがクリアされ
ているかを確認し,必要に応じてDMAの転送先RAMのデータを更新,DMAのアドレ
ス変更処理などをします。次のステータスステージのパケット受信,またはホ
ストからのデータステージ再転送に備え,PKENDのクリアとBFOKのセットをしま
す。
○
終了処理
ステータスステージを正常に受信したときは,BFOKがクリアされ,PKENDが
セットされます。
DIRの値により,そのパケットの転送方向がINからOUTの変化でパケットがス
テータスステージであると確認できます。その後,最終パケットの終了処理を
実施します。
228
第10章 USBファンクション
■ USBコマンドの各ステージ受信時の動作
USBコマンドの各ステージ受信時の動作を示します。
表 10.6-2 各コマンド時のレジスタ変化
B
U
F
O
K
0
1
0
レジスタ値
P
N
K
D
A
E
I
C
N
R
K
D
0
0
0
0
0
0
1
1
0
S
E
T
U
P
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
状態
初期状態。
パケット待ち状態。
SETUPパケット受信。標準コマンドのINパケット
SETUPパケット受信。(Get/SetDescripter,SynchFRAMe,標準コマンド以
外のクラスベンダコマンドの場合)
GetDescripter,SynchFRAMe,標準コマンド以外のクラスベンダコマンドの
INパケット受信。
SetDescripter,標準コマンド以外のクラスベンダコマンドのOUTパケット
受信。
GetDescripter,SynchFRAMe,標準コマンド以外のクラスベンダコマンドの
OUTステータス受信。
SetDescripter,標準コマンド以外のクラスベンダコマンドのINステータス
受信。
229
第10章 USBファンクション
■ USB標準コマンドのセットアップステージ受信時の動作
USB標準コマンドのセットアップステージ受信時の動作を示します。
表 10.6-3 標準コマンドのセットアップステージ動作
レジスタ
次のパケットを受けとる為に
BUFOK0を有効にセットします。
ACK
SETUP
ハンド
シェーク
DIR
ホストPC
値
NACK
ハードウェアの動作
ファームウェアの処理
bRequest
GetStatus
0
1
0
1
ClearFeature
1
1
0
1
-
2
1
0
1
未サポート
SetFeature
3
1
0
1
WValueで選択した機能が有効とな
ります。
-
4
1
0
1
未サポート
SetAddress
5
1
0
1
新規にアドレス番号が設定されま
す。ホストPCが指定する番号はUDC
ハードウェアが保持します。
次のパケットを受けとる為に
BUFOK0を有効にセットします。
ACK
現在のディスクリプタデータをホ
ストPCに返します。データはファー
ムウェアで用意したRAMの内容を
DMACが自動で応答します。
DBAR,TDCR0に示すRAM領域にコマン
ド解釈で得た機能セレクタの番号
で示すディスクリプタのデータを
格納する。次のパケットを受けとる
為にBUFOK0を有効にセットします。
ACK
次のパケットを受けとる為に
BUFOK0を有効にセットします。
ACK
次のパケットを受けとる為に
BUFOK0を有効にセットします。
ACK
次のパケットを受けとる為に
BUFOK0を有効にセットします。
ACK
次のパケットを受けとる為に
BUFOK0を有効にセットします。
ACK
GetDescripto
r
6
0
0
1
SetDescripto
r
7
0
0
1
GetConfigura
-tion
8
1
0
1
SetConfigura
-tion
9
1
0
1
GetINterface
10
1
0
1
SetINterface
SynchFRAMe
230
11
12
1
0
0
0
現在のステータスをホストPCに返
します。ステータスはUDCハード
ウェアが自動で応答します。
WValueで選択した機能がUDCハード
ウェア上でクリアされます。
ホストからディスクリプタデータ
が送られて来ます。データはDMAC
がRAMに自動で書き込みます。
現在の構成番号をホストPCに返し
ます。番号はUDCハードウェアが自
動で応答します。
新規に構成番号が設定されます。ホ
ストPCが指定する番号はUDCハード
ウェアが保持します。
現在のインタフェース番号をホス
トPCに返します。番号はUDCハード
ウェアが自動で応答します。
1
指定されたインタフェースのオル
タネート設定を変更し,SETIFビッ
トをセットします。オルタネート設
定は,USTR2レジスタで確認するこ
とができます。
1
ホストに同期させるフレーム番号
を返します。番号はファームウェア
で用意したRAMの内容をDMACが自動
で応答します。
次のパケットを受けとる為に
BUFOK0を有効にセットします。
次のパケットを受けとる為に
BUFOK0を有効にセットします。
次のパケットを受けとる為に
BUFOK0を有効にセットします。
次のパケットを受けとる為に
BUFOK0を有効にセットします。
インタフェースごとにオルタネー
ト設定を管理することで,各エンド
ポイントの構成をダイナミックに
変更することが可能です。指定され
たオルタネート設定に従い,送受信
するデータの量や内容などの処理
を変更します。
次のSetINterfaceコマンド受信割
込みを発生させるために,SETIF
ビットをクリアします。
次のパケットを受けとる為に
BUFOK0を有効にセットします。
DBAR,TDCR0に示すRAM領域に同期さ
せるフレーム番号を格納します。次
のパケットを受けとる為にBUFOK0
を有効にセットします。
ACK
ACK
ACK
ACK
ACK
ACK
第10章 USBファンクション
10.6.2
サスペンド機能
USBデバイスは動作していない場合はサスペンドにして低消費電力の状態にする必
要があります。サスペンド時のデバイスに要求される消費電流はバス電源(USBケー
ブルから電源を供給)デバイスの構成で,500μA以下にする必要があります。これを
実現するためにCPU動作モードのスタンバイモードのうち最も低消費電力となるSTOP
モード(メインクロックを停止します)に設定する必要があります。
■ サスペンド処理
USBデバイスコアがサスペンド状態を検出した場合にUSTR1レジスタのSUSPが
セットされます。これにより以下の処理をする必要があります。
SUSPステータスのリードおよびクリア
リモートウェークアップをサポートするデバイスの場合,2mS(サスペン
ド時間も含めてUSB仕様は5mS)待ちます。(これはこの時間リモート
ウェークアップさせないためです。
)
以下サスペンド処理で低消費に有効な項目を示します。(不要な場合も
あります)
-
汎用ポートの入出力方向の設定
-
ユーザシステム内でのプルアップ/プルダウンの電圧レベル合せ
-
ユーザ周辺機能の低消費電力化
外部割込みEIF,EIEレジスタを有効にします。
STOPモードのSTBCレジスタのSTPをセットします。
ストップモードの詳細な動作は「3.7.3
ストップモード」を参照してください。
図 10.6-4 サスペンド動作
■ サスペンドの解除について
サスペンド状態で更にSTOPモードにあるデバイスは以下の信号入力のみで動作
を再開します。
USBバス2本(D+,D-)
外部割込み端子(INT0∼7)
外部リセット端子(RSTX)
USBファンクション回路が再開信号(すなわちウェークアップ状態)を検出した
場合にUSTR1レジスタのWKUPがセットされます。
231
第10章 USBファンクション
10.6.3
ウェークアップ機能
USBデバイスをサスペンド状態からウェークアップ状態にするにはUSBプロトコル
で二つの手段があります。
・デバイスからのリモートウェークアップ
・ホストPCからのウェークアップ
■ デバイスからのリモートウェークアップ
再開信号は ホストPC ← デバイスの方向です。
これにより以下の処理をする必要があります。
外部割込みでEIF,EIEレジスタを必要に応じて無効します。
UMDRのRESUMを有効にします。
WKUPステータスのリードおよびクリア
以下サスペンド処理で実施した低消費化を通常状態に戻します。
-
汎用ポートの入出力方向の設定
-
ユーザシステム内でのプルアップ/プルダウンの設定
-
ユーザ周辺機能の通常消費電力動作
-
図 10.6-5 デバイスからのウェークアップ動作
232
第10章 USBファンクション
■ ホストPCからのウェークアップ
再開信号は ホストPC → デバイスの方向です。
これにより以下の処理をする必要があります。
前述「デバイスからのリモートウェークアップ」の「WKUPステータスの
リードおよびクリア」以降の処理
図 10.6-6 ホストからのウェークアップ動作
233
第10章 USBファンクション
234
第11章
11章 UART/SIO
この章では,UART/SIOの機能と動作について説明します。
11.1 UART/SIOの概要
11.2 UART/SIOの構成
11.3 UART/SIOの端子
11.4 UART/SIOのレジスタ
11.5 UART/SIOの割込み
11.6 UART/SIOの動作説明
11.7 動作モード0の動作説明
11.8 動作モード1の動作説明
235
第11章 UART/SIO
11.1
UART/SIOの概要
UART/SIOの概要
UART/SIOは,汎用のシリアルデータ通信インタフェースです。クロック同期(シン
クロナス)またはクロック非同期(アシンクロナス)で,可変データ長のシリアルデー
タ転送ができます。転送フォーマットは,NRZ方式で,転送レートは専用ボーレート
ジェネレータ,外部クロックまたは内部タイマによって設定できます。
■ UART/SIOの機能
UART/SIOは,ほかのCPUや周辺装置とシリアルデータの送受信(シリアル入出力)
を行う機能があります。
全2重ダブルバッファを持っており,全2重で双方向通信ができます。
同期転送モード(シンクロナス)と非同期転送モード(アシンクロナス)
が選択できます。
内蔵のボーレートジェネレータによって14種類のボーレートが選択でき
ます。また,外部クロック入力によって,自由なボーレートの設定もで
きます。
データ長は可変で,パリティなしの場合7∼8ビット,パリティありの場
合8∼9ビットの設定ができます(表 11.1-1)
。
データ転送フォーマットは,NRZ(Non Return to Zero)方式です。
表 11.1-1 UART/SIOの動作モード
動作モード
0
1
236
データ長
パリティなし パリティあり
7
8
8
9
8
同期モード
ストップビット長
非同期
1ビットまたは2ビット
同期
-
第11章 UART/SIO
11.2
UART/SIOの構成
UART/SIOの構成
UART/SIOは,以下の7ブロックで構成されています。
・シリアルクロック切替えレジスタ(SCS)
・シリアルモード制御レジスタ(SMC1)
・シリアルモード制御レジスタ(SMC2)
・シリアルレート制御レジスタ(SRC)
・シリアルステータスアンドデータレジスタ(SSD)
・シリアルインプットデータレジスタ(SIDR)
・シリアルアウトプットデータレジスタ(SODR)
■ UART/SIOのブロックダイヤグラム
図 11.2-1 UART/SIOのブロックダイヤグラム
237
第11章 UART/SIO
○
シリアルクロック切替えレジスタ(SCS)
専用ボーレートジェネレータの入力クロックを内部クロックまたは外部ク
ロックの4分周に切り替え,セレクタ回路でCS2,CS1,CS0=100Bの時選択される
クロックを内部クロックまたは外部クロックに切り替えるレジスタです。
○
シリアルモード制御レジスタ(SMC1)
UART/SIOの動作モードを制御するレジスタです。パリティの有無,ストップ
ビット長,動作モード(データ長),同期/非同期,シリアルクロックを設定し
ます。
○
シリアルモード制御レジスタ(SMC2)
UART/SIOの動作モードを制御するレジスタです。シリアルクロック出力の許
可/禁止,シリアルデータ出力の許可/禁止,シリアルポートと汎用ポートの切
替え,割込みの許可/禁止を設定します。
○
シリアルレート制御レジスタ(SRC)
UART/SIOのデータ転送速度(ボーレート)を制御するレジスタです。
○
シリアルステータス・アンド・データレジスタ(SSD)
UART/SIOの送受信やエラーの状態を示します。
○
シリアルインプットデータレジスタ(SIDR)
受信データを保持するレジスタです。シリアル入力が変換されてこのレジス
タに格納されます。
○
シリアルアウトプットデータレジスタ(SODR)
送信データを設定するレジスタです。このレジスタに書き込まれたデータが,
シリアル変換されて出力されます。
238
第11章 UART/SIO
11.3
UART/SIOの端子
UART/SIOの端子
UART/SIOに関連する端子,端子のブロックダイヤグラムを示します。
■ UART/SIOに関連する端子
UART/SIOに関連する端子は,クロック入出力端子(P44/UCK),シリアルデータ出
力端子(P45/UO)およびシリアルデータ入力端子(P46/UI)です。これらは使用ポー
ト選択ビット(TXOE:SCKE)によって切り替えられます。
P44/UCK:
汎用入出力ポート(P44)とUART/SIOのクロック入出力端子(ヒステリシス入
力)としての機能(UCK)を兼用しています。クロック出力を許可(SMC2:SCKE=1)
すると,対応するポート方向レジスタの値に関係なく,UART/SIOのクロック出
力端子(UCK)として機能します。このとき,外部クロックは選択しないでくだ
さい(SMC1:CS2,CS1,CS0=100B以外)
。UART/SIOのクロック入力端子として使用
する場合は,クロック出力を禁止(SMC2:SCKE=0)し,対応するポート方向レジ
スタによって入力ポートに設定(DDR4:bit4=0)してください。このとき,必ず
外部クロックを選択(SMC1:CS2,CS1,CS0=100B)してください。
P45/UO:
汎用入出力ポート(P45)とUART/SIOのシリアルデータ出力端子としての機能
(UO)を兼用しています。シリアルデータ出力を許可(SMC2:TXOE=1)すると,
対応するポート方向レジスタの値に関係なく,UART/SIOのシリアルデータ出力
端子(UO)として機能します。
P46/UI/PW1:
汎用入出力ポート(P46)とUART/SIOのシリアルデータ入力端子(ヒステリシ
ス入力)としての機能(UI)を兼用しています。UART/SIOのシリアルデータ入
力端子として使用する場合は,対応するポート方向レジスタによって入力ポー
トに設定(DDR4:bit6=0)してください。
239
第11章 UART/SIO
■ UART/SIOに関連する端子のブロックダイヤグラム
図 11.3-1 UART/SIOに関連する端子のブロックダイヤグラム
<注意事項>
プルアップオプション設定レジスタでプルアップ抵抗ありを選択した場合,ストップモード
(SPL=1)における端子の状態は,ハイインピーダンスではなく"H"レベル(プルアップ状態)に
なります。ただし,リセット中のプルアップは無効となり,Hi-zとなります。なお,P46には対応
していませんので注意願います。
240
第11章 UART/SIO
11.4
UART/SIOのレジスタ
UART/SIOのレジスタ
UART/SIOに関連するレジスタを示します。
■ UART/SIOに関連するレジスタ
図 11.4-1 UART/SIOに関連するレジスタ
241
第11章 UART/SIO
11.4.1
シリアルモード制御レジスタ1
シリアルモード制御レジスタ1(SMC1)
SMC1)
シリアルモード制御レジスタ1(SMC1)は,UART/SIOの動作モードを制御するレジ
スタです。パリティの有無,ストップビット長,動作モード(データ長)
,同期/非同
期,シリアルクロックを設定します。
■ シリアルモード制御レジスタ1(SMC1)
図 11.4-2 シリアルモードレジスタ1(SMC1)
242
第11章 UART/SIO
表 11.4-1 シリアルモード制御レジスタ1(SMC1)の各ビットの機能説明
ビット名
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
MD:
モード制御ビット
機能
UARTの動作モードを指定します。非同期モード時には,シリアルク
ロックの8分周のクロックで動作します。クロック同期モード時は,
選択されたシリアルクロックで動作します。
PEN:
クロック非同期モード時,パリティのあり / なしを設定します。
パリティ制御ビット
クロック非同期モード時,シリアル送信時に付加するパリティデータ
TDP:
を設定します。シリアル受信時は,パリティデータのチェックを行い
パリティ極性ビット
ます。
クロック非同期モード時のストップビット長を設定します。シリアル
SBL:
送信時は,設定されたビット長のストップビットを付加します。シリ
ストップビット長制
アル受信時は,設定値にかかわらず1ビット長でストップビットの判
御ビット
定を行います。
CL:
キャラクタビット長 クロック非同期モード時のキャラクタビット長を設定します。
制御ビット
CS2 CS1 CS0:
シリアルクロックを選択します。
クロック
CS2,CS1,CS0=100Bの時外部クロックか内部クロックかの選択は,
SCS:EXBREで設定します。
選択ビット
243
第11章 UART/SIO
11.4.2
シリアルモード制御レジスタ2
シリアルモード制御レジスタ2(SMC2)
SMC2)
シリアルモード制御レジスタ2(SMC2)は,UART/SIOの動作モードを制御するレジ
スタです。シリアルクロック出力の許可/禁止,シリアルデータ出力の許可/禁止,シ
リアルポートと汎用ポートの切替え,割込みの許可/禁止を設定します。
■ シリアルモード制御レジスタ2(SMC2)
図 11.4-3 シリアルモードレジスタ2(SMC2)
244
第11章 UART/SIO
表 11.4-2 シリアルモード制御レジスタ2(SMC2)の各ビットの機能説明
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ビット名
RERC:
受信エラーフラグ
クリアビット
機能
このビットに"0" を書き込むとSSD レジスタの各エラーフラグ
(PER/OVR/FER)がクリアされます。読み出し時は,常に"1"になりま
す。
シリアルデータの受信を許可するビットです。受信動作中にこのビッ
RXE:
トに"0"を書き込むと,受信が終了してから動作は停止し,受信動作
受信動作許可ビット
を禁止します。
シリアルデータの送信を許可するビットです。送信動作中にこのビッ
TXE:
トに"0"を書き込むと,送信が終了してから動作は停止し,送信動作
送信動作許可ビット
を禁止します。
BRGE:
ボ ー レ ー ト ジ ェ ネ ボーレートジェネレータを起動するビットです。
レータ起動ビット
TXOE:シリアル
シリアルデータの出力許可 / 禁止を制御します。
データ出力ビット
クロック同期モード時にシリアルクロックの入出力を制御します。
SCKE:シリアル
なお,P44/UCK端子に外部クロックを入力する時は,必ず入力に設定
クロック出力ビット
(DDR4のbit4=0)してください。
受信割込みを許可します。RDRFビットが"1"の場合または各エラーフ
RIE:受信割込み
ラグが"1"の場合に受信割込みを許可すると,直ちに受信割込みが発
許可ビット
生します。
TIE:送信割込み
送信割込みを許可します。TDREビットが"1"の場合に送信割込みを許
許可ビット
可すると,直ちに送信割込みが発生します。
245
第11章 UART/SIO
11.4.3
シリアルクロック切替えレジスタ(
シリアルクロック切替えレジスタ(SCS
ジスタ(SCS)
SCS)
シリアルクロック切替えレジスタ(SCS)は,専用ボーレートジェネレータの入力
クロックの切替えとセレクタ回路に入力されるクロックの切替えを制御するレジス
タです。
■ シリアルクロック切替えレジスタ(SCS)
図 11.4-4 シリアルクロック切替えレジスタ(SCS)
表 11.4-3 シリアルクロック切替えレジスタ(SCS)のビット機能説明
ビット名
EXBRE:
クロック
Bit0
切替えビット
246
機能
専用ボーレートジェネレータの入力クロックの切替えとSMC:CS2,CS1,CS0=100B
選択時のクロック入力を外部クロックか内部クロック(3.25インストラクション
サイクル)の切替えを設定します。
第11章 UART/SIO
11.4.4
シリアルステータス&データレジスタ(SSD
シリアルステータス&データレジスタ(SSD)
SSD)
シリアルステータス&データレジスタ(SSD)は,UART/SIOの送受信やエラーの状
態を示します。
■ シリアルステータス&データレジスタ(SSD)
図 11.4-5 シリアルステータス&データレジスタ(SSD)
247
第11章 UART/SIO
表 11.4-4 シリアルステータス&データレジスタ(SSD)の各ビットの機能説明
ビット名
bit7
bit6
Bit5
bit4
bit3
248
機能
受信時にパリティエラーが発生するとセットされ,SMC2レジスタのRERCビットに
PER:
"0"を書き込むことによりクリアされます。このフラグがセットされた場合は,
パリティ
SIDRのデータは無効データとなります。RIEビットが"1"の場合に,PERビットが
エラーフラグ
セットされると割込みが発生します。
受信時にオーバランエラーが発生するとセットされ,SMC2レジスタのRERCビット
OVE:
に"0"を書き込むことによりクリアされます。このフラグがセットされた場合に
オーバラン
は,SIDRのデータは無効データとなります。RIEビットが"1"の場合に,OVEビッ
エラーフラグ
トがセットされると割込みが発生します。
受信時にフレーミングエラーが発生するとセットされ,SMC2レジスタのRERCビッ
FER:
トに"0"を書き込むことによりクリアされます。このフラグがセットされた場合
フレーミング
には,SIDRのデータは無効データとなります。RIEビットが"1"の場合に,FERビッ
エラーフラグ
トがセットされると割込みが発生します。
RDRF:
受信データレジスタ(SIDR)の状態を示すフラグです。SIDRレジスタに受信デー
受信データ
タがロードされるとセットされ,SIDRレジスタを読み出すとクリアされます。
RIE
レジスタフル ビットが"1"の場合に,RDRFビットがセットされると割込みが発生します。
TDRE:
SODR(シリアル送信データレジスタ)の状態を示すフラグです。SODRレジスタに
送信データ
送信データを書き込むとクリアされ,そのデータが送信用シフタにロードされ送
レジスタ
信が始まるとセットされます。TIEビットが"1"の場合に,TDREビットがセットさ
エンプティ
れると割込みが発生します。
第11章 UART/SIO
11.4.5
シリアルインプットデータレジスタ(SIDR
シリアルインプットデータレジスタ(SIDR)
SIDR)
シリアルインプットデータレジスタ(SIDR)は,シリアルデータの入力(受信)用
レジスタです。
■ シリアルインプットデータレジスタ(SIDR)
図 11.4-6に,シリアルインプットデータレジスタのビット構成を示します。
図 11.4-6 シリアルインプットデータレジスタ(SIDR)
受信したデータが格納されるレジスタです。シリアルデータ入力端子(UI端子)
に送られてきたシリアルデータ信号がシフトレジスタで変換されて,このレジスタ
に格納されます。
受信データが正常にこのレジスタにセットされれば,受信データフラグビット
(RDRF)が"1"にセットされ,受信割込み要求が許可されていれば割込みが発生し
ます。割込み処理,またはプログラムでRDRFビットをチェックしてこのレジスタに
受信データが格納されていれば,このレジスタの内容を読み出すことにより,RDRF
フラグがクリアされます。
249
第11章 UART/SIO
11.4.6
シリアルアウトプットデータレジスタ(SODR
シリアルアウトプットデータレジスタ(SODR)
SODR)
シリアルアウトプットデータレジスタ(SODR)は,シリアルデータの出力(送信)
用レジスタです。
■ シリアルアウトプットデータレジスタ(SODR)
図 11.4-7に,シリアルアウトプットデータレジスタのビット構成を示します。
図 11.4-7 シリアルアウトプットデータレジスタ(SODR)
送信許可状態のとき,SSDレジスタをリードしてから送信するデータをこのレジ
スタに書き込むと,送信データが送信用シフトレジスタに転送され,シリアルデー
タに変換されて,シリアルデータ出力端子(UO端子)から送出されます。
送信データがSODRレジスタに書き込まれると送信データフラグビットが"0"に
セットされます。送信用シフトレジスタに送信データの転送が終了すれば,送信
データフラグビットが"1"にセットされ,つぎの送信用データを書き込むことがで
きます。このとき割込み要求が許可されていれば割込みが発生します。つぎの送信
データの書込みは,割込みの発生によるかまたは送信データフラグビットが"1"の
ときに行ってください。
250
第11章 UART/SIO
11.4.7
シリアルレート制御レジスタ(SRC
シリアルレート制御レジスタ(SRC)
SRC)
シリアルレート制御レジスタ(SRC)は,UART/SIOのデータ転送速度(ボーレート)
を制御するレジスタです。
■ シリアルレート制御レジスタ(SRC)
図 11.4-8 シリアルレートレジスタ(SRC)
クロック選択ビットのCS2-0が"011"の場合にシリアルクロックとして専用ボー
レートジェネレータが選択されます。このレジスタにより任意のボーレートクロッ
クを設定できます。また,このレジスタへの書込みはUARTの動作停止中に行ってく
ださい。
251
第11章 UART/SIO
11.5
UART/SIOの割込み
UART/SIOの割込み
UART/SIOは,割込みに関連したエラーフラグビット(PER,OVE,FER)
,受信データ
フラグビット(RDRF)および送信データフラグビット(TDRE)の三つのフラグと,以
下の二つの割込み要因があります。
・受信データが受信用シフトレジスタからシリアルインプットデータレジスタ(SIDR)
に転送されたとき
・送信データがシリアルアウトプットデータレジスタ(SODR)から送信用シフトレジ
スタに転送されたとき
■ 送信割込み
SSDレジスタをリードしてから出力データがSODRレジスタに書き込まれると,
SODRレジスタに書き込まれたデータが内部送信用シフトレジスタに転送されます。
つぎのデータの書込みが可能な状態になると,TDREビットが"1"にセットされ,送
信割込みが許可(SMC2:TIE=1)されていれば,CPUへの割込み要求(IRQ6)が発生
します。
■ 受信割込み
ストップビットまで正常にデータが入力されるとRDRFビットが"1"にセットされ
ます。また,オーバラン・パリティ・フレミングエラーが発生した場合は各エラー
フラグビットが"1"にセットされます。
これらのビットは,ストップビット検出時にセットされ,受信割込みが許可
(SSD:RIE=1)されていれば,CPUへの割込み要求(IRQ6)が発生します。
■ UART/SIOの割込みに関連するレジスタとベクトルテーブルアドレス
表 11.5-1 UART/SIOの割込みに関連するレジスタとベクトルテーブルアドレス
割込み名
IRQ6
割込みレベル設定レジスタ
レジスタ
設定ビット
L61
L60
ILR2(007CH)
(bit5) (bit4)
ベクトルテーブルのアドレス
上位
下位
FFEEH
FFEFH
参考:
割込み動作については,
「3.4.2
252
割込み動作時の処理」を参照してください。
第11章 UART/SIO
11.6
UART/SIOの動作説明
UART/SIOの動作説明
UART/SIOの動作について説明します。
UART/SIOには,通常のシリアル通信機能(動作モード0,1)があります。
■ UART/SIOの動作
○
動作モード
UART/SIOには,2種類の動作モードがあり,クロック同期(SIO)とクロック
非同期(UART)の選択ができます(「表 11.1-1 UART/SIOの動作モード」を参
照してください)
。
253
第11章 UART/SIO
11.7
動作モード0
動作モード0の動作説明
の動作説明
動作モード0は,クロック非同期モードとして動作します。
■ UART/SIOの動作モード0の動作説明
シリアルクロックの選択は,SMC1レジスタのCS2∼CS0ビットで行い,内部クロッ
ク3種類・外部クロック・ボーレートジェネレータの出力の5とおりから選択できま
す。外部クロックを選択しているときは,常にクロックを入力してください。
CLK非同期モード時は,CS2∼CS0ビットで選択されたシフトクロックの8分周にな
り,選択されたボーレートの-2%から+2%までの範囲で転送可能です。内部・外部ク
ロックおよびボーレートジェネレータによるボーレート算出式以下に示します。
○
内部・外部クロックによるボーレート算出式
SMC1(CS2,CS1,CS0=000B,001B,010B)選択時およびCS2,CS1,CS0=100B選
択でSCS(シリアルクロック切替えレジスタ)のEXBREビットを"0"とした場合,
以下の計算式となります。
○
SMC1(CS2,CS1,CS0=100B)選択でEXBREを"1"とした場合のボーレート計算式
CS2,CS1,CS0=100B選択時,EXBREビットを"1"とした場合,以下の計算式とな
ります。
254
第11章 UART/SIO
○
専用ボーレートジェネレータ使用時のボーレート算出式
CS2,CS1,CS0=011B選択時,EXBREビットを"0"とした場合,以下の計算式とな
ります。
○
専用ボーレートジェネレータ使用時で外部クロックを選択した場合のボー
レート算出式
CS2,CS1,CS0=011B選択時,EXBREビットを”1”とした場合,以下の計算式とな
ります。
表 11.7-1 ボーレートジェネレータによる非同期時転送レート
使用周波数*1
12MHz
10MHz
8MHz
7.3728MHz
78125(n=2)
39062(n=4)
38400(n=3)
19531(n=8)
19200(n=6)
ボーレート
9765(n=16) 9615(n=13) 9600(n=12)
( )内はSRCレジ 4807(n=39) 4882(n=32) 4807(n=26) 4800(n=24)
スタ[設定値*2 2403(n=78) 2403(n=65) 2403(n=52) 2400(n=48)
1201(n=156) 1201(n=130) 1201(n=104) 1200(n=96)
600(n=208) 600(n=192)
*1:専用ボーレートジェネレータ使用時のクロック周波数(Fch,Fex)
*2:内部クロック選択時にはクロックギア最高速とした場合の例
4.9152MHz
76800(n=1)
38400(n=2)
19200(n=4)
9600(n=8)
4800(n=16)
2400(n=32)
1200(n=64)
600(n=128)
255
第11章 UART/SIO
■ 転送データフォーマット
UARTは,NRZ(Non Return to Zero)形式のデータのみを扱えます。図 11.7-1
に,データフォーマットを示します。ストップビット長が2ビットの場合を示しま
す。
図 11.7-1に示されるように,転送データは必ずスタートビット("L"レベル)よ
り始まり,LSBファーストで指定されたデータビット長転送が行われ,ストップビッ
ト("H"レベル)で終了します。アイドル時は"H"レベルになります。
図 11.7-1 転送データフォーマット
256
第11章 UART/SIO
■ CLK非同期モードの受信動作
SMC1レジスタのCS2∼CS0ビットで,ボーレートクロックを選択します。ボーレー
トクロックは,クロックの選択を参照してください。受信動作は,SMC2レジスタの
RXEビットが"1"の場合に受信が許可され,入力データの最初の立下り(スタート
ビットの検出)で受信動作が開始されます。受信動作が終了すると,SSDレジスタ
のRDRFビットが"1"にセットされ,SIDRレジスタに受信データがロートされます。
また,RIEビットが"1"の場合にRDRFビットが"1"にセットされると,CPUへの受信割
込みを発生します。受信終了時に三つのエラー(PER/OVE/FER)のいずれかのエラー
がある場合は,RDRFビットは"1"にセットされず,受信データはSIDRへロードされ
ませんので,SIDRレジスタの値は前に受信したデータになります。また,RXEビッ
トを"0"にしない限り,エラーフラグがあってもスタートビットを検出すると受信
動作は続行されます。
受信動作中にSMC2レジスタのRXEビットに"0"を書き込むと,データの受信が終了
してから受信動作を禁止します。
図 11.7-2 CLK非同期モードの受信動作
257
第11章 UART/SIO
■ CLK非同期モード時の受信エラー
CLK非同期モード時には,三つのエラー検出を行います。三つのエラーは,パリ
ティエラー・オーバランエラー・フレーミングエラーで,エラーが検出されるとSSD
レジスタのPERビット・OVEビット・FERビットがそれぞれ"1"にセットされます。
これらのエラーの検出は以下のように受信終了時に行われ,これらのエラーが検
出されたときは,RDRFはセットされず,SIDRレジスタへの受信データのロードは行
われませんので,SIDRレジスタの値は前の受信データになります。また,これらの
エラーフラグは,SCM2レジスタのRERCビットに"0"を書き込むことで,三つのエラー
フラグがすべてクリアされます。
図 11.7-3 受信エラーのセットタイミング
■ 受信動作時のスタートビットの検出
スタートビットは,入力データの最初の立ち下がりがあってから選択されたシリ
アルクロック(ジェネレータの出力等)で4クロック分の"L"レベルがあるとスター
トビットとみなします。スタートビットの検出後は,シリアルクロックの5クロッ
クめの立ち上がりでデータをサンプリングします。
図 11.7-4 スタートビットの検出
258
第11章 UART/SIO
■ CLK非同期モードの送信動作
SMC2レジスタのTXEビットが"1"の場合,SODRレジスタに送信データを書き込むと
SSDレジスタのTDREビットがクリアされ送信動作が開始されます。SODRレジスタの
データがシフタにロードされて送信データの出力が始まると,SSDレジスタのTDRE
ビットがセットされます。送信動作中(TDREビットが"1"の場合)に,SODRレジス
タへデータを書き込むと,TDREビットがクリアされて,指定されたビット長の送信
動作の終了後に連続して送信動作を行います。
また,送信動作中にSMC2レジスタのTXEビットに"0"を書き込むと,SODRレジスタ
が空(TDREビットが"1")の場合は,指定したビット長の送信動作が終了してから
送信動作を禁止します。SODRレジスタにデータがある(TDREビットが"1")場合は,
SODRレジスタのデータを送信してから送信動作を禁止します。
図 11.7-5 CLK非同期モードの送信動作
259
第11章 UART/SIO
11.8
動作モード1
動作モード1の動作説明
動作モード1は,クロック同期モードとして動作します。
■ UART/SIOの動作モード1の動作説明
CLK同期モードでは,SMC21レジスタのCS2∼CS0ビットで行い,内部クロック3種
類・外部クロック・ボーレートジェネレータの出力から選択します。選択されたク
ロックをシフトクロックとして,シフト動作を行います。外部クロックを入力する
時は,SCKEビットは"0"にしてください。
また,内部クロックか,ボーレートジェネレータの出力をシフトクロックとして
出力する場合は,SCKEビットを"1"にしてください。内部・外部クロックおよびボー
レートジェネレータによるボーレート算出式を以下に示します。
○
内部・外部クロックによるボーレート算出式
SMC1(CS2,CS1,CS0=000B,001B,010B)選択時およびCS2,CS1,CS0=100B選
択で SCS(シリアルクロック切替えレジスタ)のEXBREビットを"0"とした場合,
以下の算出式となります。
○
260
SMC1(CS2,CS1,CS0=100B)選択時,EXBREを"1"とした場合のボーレート算出
式
第11章 UART/SIO
○
専用ボーレートジェネレータ使用時で内部クロックを選択した場合のボー
レート算出式
CS2,CS1,CS0=011B選択時,EXBREビットを"0"とした場合,以下の算出式とな
ります。
○
専用ボーレートジェネレータ使用時で外部クロックを選択した場合のボー
レート算出式
CS2,CS1,CS0=011B選択時,EXBREビットを"1"とした場合,以下の算出式とな
ります。
261
第11章 UART/SIO
■ 8ビット受信動作
受信動作は,TXE/RXEビットを"11"にすることで許可され,SODRレジスタへの書
込みで起動がかかり,シフトクロックの立ち上がりに同期して受信動作を行います。
8ビットデータの受信が終了すると,シフタのデータをSIDRレジスタへロードして,
RDRFフラグが"1"にセットされ,RIE="1"の時は,CPUへの割込み要求を発生します。
受信終了時に,オーバランエラーが発生している場合は,SIDRレジスタにデータの
ロードが行われません。受信動作中にRXEビットに"0"を書き込むと8ビットのデー
タ受信後に受信動作を停止します。シリアル動作の停止状態(RXEビットの値に係
わらず)ではシリアルクロックの入力は,常に"H"レベルにしてください。
図 11.8-1 CLK同期モードの8ビット受信動作
262
第11章 UART/SIO
■ 連続受信動作
CLK同期モードでは,8ビットのデータ受信のほかに連続して受信動作を行うこと
ができます。使用するビットは,8ビット受信時の使用ビットに加え,SMC2レジス
タのTIEビット,SSDレジスタのTDREビットも使用します。受信動作は,TXE/RXEビッ
トを"11"にすることで許可され,SODRレジスタへの書込みで起動がかかり,シフト
クロックの立ち上がりに同期して受信動作を行います。シフト動作が開始すると
TDREビットが"1"にセットされ,TIE="1"の場合はCPUに対して割込みを発生します。
8ビットのシフト動作が終了する前にSODRレジスタへ書込みを行うことで,次のシ
フト動作が許可され,8ビットデータの受信後も連続して受信動作を行います。8
ビットデータの受信が終了すると,シフタのデータをSIDRレジスタへロードして,
RDRFフラグが"1"にセットされ,RIE="1"の場合は,CPUへの割込み要求を発生しま
す。受信終了時に,オーバランエラーが発生している場合は,SIDRレジスタへのロー
ドが行われませんので,SIDRレジスタの内容は前の受信データになります。また,
SIDRレジスタのリードにより受信割込み(RDRF)はクリアされます。受信動作の停
止は,RXEビットに"0"を書き込むことで停止します。受信動作中にRXEビットに"0"
を書き込むと8ビットのデータ受信後に受信動作を停止します。
図 11.8-2 CLK同期モードの連続受信動作
263
第11章 UART/SIO
■ 8ビット送信動作
送信動作の起動は,TXE/RXEビットを"11"にしてから,SODRレジスタへの書き込
むことで行います。送信動作に起動がかかると,SODRレジスタに書かれたデータを
シフタへロードしてからシフト動作を行います。SODRレジスタのデータをシフタへ
ロードすると,TDREフラグが"1"にセットされ,TIE="1"の場合は,CPUへの割込み
要求を発生します。シリアルデータの出力は,TXOE="1"で許可されシフトクロック
の立ち下がりに同期して出力されます。
送信動作中にTXEビットに"0"を書き込むと8ビットのデータ送信後に送信動作を
停止します。また,8ビット送信後にRDRFビットが"1"にセットされ,RIE="1"なら
CPUに対して割込みを発生します。転送方向は,ビット0から送信されビット7で終
了します。シリアル動作の停止状態(TXEビットの値に係わらず)ではシリアルク
ロックの入力は,常に"H"レベルにしてください。
図 11.8-3 CLK同期モードの8ビット送信動作
264
第11章 UART/SIO
■ 連続送信動作
CLK同期モードでは,8ビットのデータ送信のほかに連続して送信動作を行うこと
ができます。TXE/RXEビットを"11"にしてから,SODRレジスタへデータを書き込む
ことで行います。送信に起動がかかると,SODRレジスタに書かれたデータをシフタ
へロードしてからシフト動作を行います。SODRレジスタのデータをシフタへロード
すると,TDREフラグが"1"にセットされ,TIE="1"の場合は,CPUへの割込み要求を
発生します。
連続動作は,送信動作中にTDREビットが"1" (SODRレジスタが空)の場合にSODR
レジスタへ次の送信データを書き込むことで行われます。SODRへの書込みでTDRE
ビットがクリアされ,イビットデータ送信後に,SODRレジスタに書かれたデータを
シフタにロードして,送信動作を続けます。送信データの停止は,TXEビットに"0"
を書き込むことで停止します。送信動作中にTXEビットに"0"を書き込むと,SODR
レジスタが空(TDREビットが"1")の場合は8ビットのデータ送信後に送信動作を停
止します。また,SODRレジスタにデータがある(TDREビットが"0")時は,SODRレ
ジスタのデータを送信してから送信動作を停止します。また,8ビットのデータ送
信終了時にRDRFビットが"1"にセットされ,RIE="1"の場合にCPUに対して割込みを
発生します。
図 11.8-4 CLK同期モードの連続送信動作
265
第11章 UART/SIO
266
第12章
12章 8ビットシリアルI/O
ビットシリアルI/O
この章では,8ビットシリアルI/Oの機能と動作について説明しています。
12.1
8ビットシリアルI/Oの概要
12.2
8ビットシリアルI/Oの構成
12.3
8ビットシリアルI/Oの端子
12.4
8ビットシリアルI/Oのレジスタ
12.5
8ビットシリアルI/Oの割込み
12.6
シリアル出力の動作説明
12.7
シリアル入力の動作説明
12.8
8ビットシリアルI/Oの動作中の各モードでの状態
12.9
8ビットシリアルI/O使用上の注意
12.10 8ビットシリアルI/Oの接続例
12.11 8ビットシリアルI/Oのプログラム例
267
第12章 8ビットシリアルI/O
12.1
8ビットシリアルI/O
ビットシリアルI/Oの概要
I/Oの概要
8ビットシリアルI/Oは,シフトクロックに同期して8ビットデータをシリアル転送
する機能があります。シフトクロックは内部3種類,外部1種類のうちから1種類を選
択できます。また,データのシフト方向はLSBファースト,MSBファーストのどちらか
を選択できます。
■ シリアル入出力機能
8ビットシリアルI/O機能は,シフトクロックに同期して8ビットのデータをシリ
アル入出力する機能です。また,本品種では2チャネル搭載しています。
8ビットのパラレルデータをシリアル変換して出力します。また,シリア
ルデータ入力をパラレル変換して格納します。
シフトクロックは内部3種類,外部1種類のうちから1種類を選択できます。
シフトクロックの入出力を制御でき,内部シフトクロックを出力できま
す。
データのシフト方向(転送方向)は,LSBファースト,MSBファーストの
どちらかを選択できます。
表 12.1-1 シフトクロックの周期と転送速度
シフトクロック
内部シフトクロック(出力)
クロック周期
周波数(Hz)
2tinst
8tinst
32tinst
2tinst以上
1/(2tinst)
1/(8tinst)
1/(32tinst)
1/(2tinst)以下
転送速度
(FCH=12MHz,最高速度時*)
1500 kbps
375kbps
93.7kbps
DC∼1500kbps
外部シフトクロック(入力)
FCH:メインクロック原発振
tinst:インストラクションサイクル(クロックモードなどの影響を受けます)
* :システムクロック制御レジスタ(SYCC)により,メインクロックモード(SCS=1)の最高速クロックを選
択(CS1,CS0=11B,1インストラクションサイクル=4/FCH)した場合
268
第12章 8ビットシリアルI/O
12.2
8ビットシリアルI/O
ビットシリアルI/Oの構成
I/Oの構成
8ビットシリアルI/Oの各チャネルは,以下の四つのブロックで構成されています。
・シフトクロック制御回路
・シフトクロックカウンタ
・シリアルデータレジスタ1/2(SDR1/SDR2)
・シリアルモードレジスタ1/2(SMR1/SMR2)
■ 8ビットシリアルI/Oのブロックダイヤグラム
図 12.2-1 8ビットシリアルI/Oのブロックダイヤグラム
269
第12章 8ビットシリアルI/O
○
シフトクロック制御回路
シフトクロックとして内部クロック3種類または外部クロック1種類の中から
一つを選択します。
内部クロックを選択すると,シフトクロックをSCK1/SCK2端子に出力すること
ができます。外部クロックを選択すると,SCK1/SCK2端子から入力されるクロッ
クがシフトクロックとなります。このシフトクロックによってSDR1/SDR2レジス
タをシフトし,シフトアウトした値をSO1/SO2端子に出力します。また,SI1/SI2
端子の入力をSDR1/SDR2レジスタにシフトしながら取り込みます。
○
シフトクロックカウンタ
シフトクロックによるSDR1/SDR2レジスタのシフト回数をカウントし,8ビッ
トのシフトが完了するとカウンタはオーバフローします。
このオーバフローによってSMR1/SMR2レジスタのシリアルI/O転送スタート
ビ ッ ト を ク リ ア ( SMR1/SMR2:SST=0 ) し , 割 込 み 要 求 フ ラ グ を セ ッ ト
(SMR1/SMR2:SIOF=1)します。シフトクロックカウンタは,シリアル転送の停
止(SMR1/SMR2:SST=0)によってカウントを停止し,開始(SMR1/SMR2:SST=1)
によってクリアされます。
○
シリアルデータレジスタ(SDR1/SDR2)
転送データを保持するレジスタです。このレジスタに書き込まれたデータが
シリアル変換されて出力されるとともに,シリアル入力がパラレル変換されて
格納されます。
○
シリアルモードレジスタ(SMR1/SMR2)
シリアルI/Oの制御レジスタです。シリアルI/Oの動作の許可と禁止,シフト
クロックの選択,転送(シフト)方向の設定,割込み制御および状態の確認な
どを行います。
○
8ビットシリアルI/Oに関連する割込み要因
IRQB(8ビットシリアルI/O1用)/IRQC(8ビットシリアルI/O2用):
入出力機能によって8ビットのシリアルデータの入出力が終了したときに,割
込み要求出力が許可(SMR1/SMR2:SIOE="1")されていれば,8ビットシリアルI/O
が割込み要求(IRQ8/IRQC)を発生させます。
270
第12章 8ビットシリアルI/O
12.3
8ビットシリアルI/O
ビットシリアルI/Oの端子
I/Oの端子
8ビットシリアルI/Oに関連する端子,端子のブロックダイヤグラムおよび8ビット
シリアルI/Oの割込み要因について示します。
■ 8ビットシリアルI/Oに関連する端子
8ビットシリアルI/O1に関連する端子は,P32/ INT2 /SI1, P33/ INT3 /SO1,P34/
INT4 /SCK1端子があり,8ビットシリアルI/O2に関連する端子は,P37/ INT7 /SI2,
P36/ INT6 /SO2,P35/ INT5 /SCK2端子があります。
■ 8ビットシリアルI/O1に関連する端子
○
P32/ INT2 /SI1端子
,外部割込みINT2,8ビットシ
P32/ INT2 /SI1端子は,汎用入出力ポート(P32)
リアルI/Oのシリアルデータ入力(ヒステリシス入力)機能(SI1)としていず
れかを機能できます。
○
P33/ INT3 /SO1端子
P33/ INT3 /SO1端子は,汎用入出力ポートとしての機能(P33)と,外部割込み
(INT3)8ビットシリアルI/Oのシリアルデータ出力端子(CMOS出力)としての
機能(SO1)を兼用しています。
シリアルデータの出力を許可(SMR1:SOE=1)すると自動的に出力端子となり,
SO1端子として機能します。
○
P34/ INT4 /SCK1端子
P34/ INT4 /SCK1端子は,汎用入出力ポートとしての機能(P34)と,外部割込
み(INT4)シリアルI/Oのシフトクロック入出力端子(ヒステリシス入力)とし
ての機能(SCK1)を兼用しています。
シフトクロック入力端子として使用する場合:
SCK1を入力端子として使用するときは,ポート方向レジスタによって入
力 ポ ー ト に 設 定 ( DDR3:bit4=0 ) し , シ フ ト ク ロ ッ ク の 出 力 を 禁 止
(SMR1:SCKE=0)してください。このとき必ず外部シフトクロックを選択
(SMR1:CKS1,CKS0=11B)してください。
シフトクロック出力端子として使用する場合:
P34/ INT4 /SCK1端子は,シフトクロックの出力を許可(SMR1:SCKE=1)す
ると,ポート方向レジスタ(DDR3:bit4)の値に関係なく自動的に出力端
子となり,SCK1出力端子として機能します。このとき必ず内部シフトク
ロックを選択(SMR1:CKS1,CKS0=11B以外)してください。
271
第12章 8ビットシリアルI/O
■ 8ビットシリアルI/O2に関連する端子
○
P37/ INT7 /SI2
,外部割込みINT7,8ビットシ
P37/ INT7 /SI2端子は,汎用入出力ポート(P37)
リアルI/Oのシリアルデータ入力(ヒステリシス入力)機能(SI2)としていず
れかを機能できます。
○
P36/ INT6 /SO2端子
P36/ INT6 /SO2端子は,汎用入出力ポートとしての機能(P36)と,外部割込み
(INT6)8ビットシリアルI/Oのシリアルデータ出力端子(CMOS出力)としての
機能(SO2)を兼用しています。
シリアルデータの出力を許可(SMR2:SOE=1)すると自動的に出力端子となり,
SO2端子として機能します。
○
P35/ INT5 /SCK2端子
P35/ INT5 /SCK2端子は,汎用入出力ポートとしての機能(P35)と,外部割込
み(INT5)シリアルI/Oのシフトクロック入出力端子(ヒステリシス入力)とし
ての機能(SCK2)を兼用しています。
シフトクロック入力端子として使用する場合:
SCK2を入力端子として使用するときは,ポート方向レジスタによって入
力 ポ ー ト に 設 定 ( DDR3:bit5=0 ) し , シ フ ト ク ロ ッ ク の 出 力 を 禁 止
(SMR2:SCKE=0)してください。このとき必ず外部シフトクロックを選択
(SMR2:CKS1,CKS0=11B)してください。
シフトクロック出力端子として使用する場合:
P35/ INT5 /SCK2端子は,シフトクロックの出力を許可(SMR2:SCKE=1)す
ると,ポート方向レジスタ(DDR3:bit5)の値に関係なく自動的に出力端
子となり,SCK2出力端子として機能します。このとき必ず内部シフトク
ロックを選択(SMR2:CKS1,CKS0=11B以外)してください。
272
第12章 8ビットシリアルI/O
■ 8ビットシリアルI/Oに関連する端子のブロックダイヤグラム
図 12.3-1 SI1, SI2, SCK1, SCK2端子のブロックダイヤグラム
参考:
ポート3プルアップ抵抗制御レジスタでプルアップ抵抗ありを選択した場合,
ストップモードまたは時計モード(STBC:SPL=1)における端子の状態は,ハイ
インピーダンスではなく"H"レベル(プルアップ状態)になります。
ただし,リセット中のプルアップは無効となり,Hi-zとなります。
273
第12章 8ビットシリアルI/O
12.4
8ビットシリアルI/O
ビットシリアルI/Oのレジスタ
I/Oのレジスタ
8ビットシリアルI/Oに関連するレジスタを示します。
■ 8ビットシリアルI/O1に関連するレジスタ
図 12.4-1 8ビットシリアルI/O1に関連するレジスタ
■ 8ビットシリアルI/O2に関連するレジスタ
図 12.4-2 8ビットシリアルI/O2に関連するレジスタ
274
第12章 8ビットシリアルI/O
12.4.1
シリアルモードレジスタ1/2
シリアルモードレジスタ1/2(
1/2(SMR1/SMR2)
SMR1/SMR2)
シリアルモードレジスタ1/2(SMR1/SMR2)は8ビットシリアルI/Oの動作の許可と禁
止,シフトクロックの選択,転送方向の設定,割込み制御および状態の確認を行うレ
ジスタです。
■ シリアルモードレジスタ1/2(SMR1/SMR2)
図 12.4-3 シリアルモードレジスタ(SMR1/SMR2)
275
第12章 8ビットシリアルI/O
表 12.4-1 シリアルモードレジスタ(SMR1/SMR2)の各ビットの機能説明
ビット名
機能
SIOF:
・シリアル入出力動作でシリアルデータが8ビット入出力されると"1"にセットされます。
このビットと割込み要求許可ビット(SIOE)が"1"のとき,割込み要求を出力します。
bit7 割込み要求
フラグビット ・書込み時は"0"でクリアされ,"1"ではこのビットに影響を与えず変化しません。
SIOE:
CPUへの割込み要求出力の許可/禁止を行うビットです。
bit6 割込み要求
このビットと割込み要求フラグビット(SIOF)が"1"のとき,割込み要求を出力します。
許可ビット
・シフトクロックの入出力を制御するビットです。
・このビットが"0"のとき, P34/ INT4 /SCK1(SMR1の場合),P35/ INT5 /SCK2(SMR2の場
合)端子はシフトクロック入力端子となり,"1"のときシフトクロック出力端子となりま
す。
<注意>
bit5
bit4
bit3
bit2
bit1
bit0
276
・シフトクロック入力として使用するには,P34/ INT4 /SCK1(SMR1の場合),P35/ INT5 /SCK2
SCKE:
シフトクロッ (SMR2の場合)端子を入力ポートに設定する必要があります。また,シフトクロック選
ク 出 力 許 可 択ビットによって外部シフトクロックを選択(CKS1,CKS0=11B)してください。
・シフトクロック出力(SCKE=1)のときは,内部シフトクロックを選択(CKS1,CKS0=11B
ビット
以外)してください。
〔参考〕
・シフトクロック出力が許可(SCKE=1)されると,汎用ポート(P34(SMR1の場合)/ P35
(SMR2の場合))の状態にかかわらずSCK1/SCK2出力端子として機能します。
・汎用ポートとして使用(P34(SMR1の場合)/ P35(SMR2の場合))するときは,シフト
クロック入力(SCKE=0)としてください。
このビットが"0"のとき,P33/ INT3 /SO1(SMR1の場合),P36/ INT6 /SO2(SMR2の場合)
端子は,汎用ポート(P33(SMR1の場合)/
P36(SMR2の場合))となり,"1"のときシリア
SOE:
ルデータ出力端子(SO1/SO2)となります。
シリアルデー
タ 出 力 許 可 〔参考〕
シリアルデータ出力が許可(SOE=1)されると,汎用ポート(P33(SMR1の場合)/ P36(SMR2
ビット
の場合))の状態にかかわらずSO1(SMR1の場合)/ SO2(SMR2の場合)端子として機能し
ます。
・3種類の内部シフトクロックまたは外部シフトクロックを選択します。
・これらのビットが"11B"以外のときは内部シフトクロックが選択され,シフトクロック出
CKS1, CKS0: 力許可ビット(SCKE)が"1"であれば,SCK1(SMR1の場合)/ SCK2(SMR2の場合))出力
シフトクロッ 端子からシフトクロックが出力されます。
ク選択ビット ・また,"11Bのときは,外部シフトクロックが選択され,シフトクロック入力に設定されて
いれば(SCKE="0",DDR3:bit4="0"(SCK1の場合)/DDR3:bit5(SCK2の場合)), SCK1
(SMR1の場合)/ SCK2(SMR2の場合)出力端子からシフトクロックが入力されます。
シリアルデータを最下位ビット側から先に転送するか(LSBファースト,BDS=0),最上
位ビット側から先に転送するか(MSBファースト,BDS=1)を選択するビットです。
BDS:
<注意>
転送方向選択 シリアルデータレジスタ1(SDR1:SMR1の場合)または,シリアルデータレジスタ2
ビット
(SDR2:SMR2の場合)への読出し,書込み時にデータの上位側と下位側を入れ換えるため
SDR1(SMR1の場合)またはSDR2(SMR2の場合)レジスタへデータを書き込んだ後,このビッ
トを書き換えると,そのデータは無効になります。
・シリアルI/Oの転送開始および転送許可を制御します。このビットによっても転送終了の
判断ができます。
・内部シフトクロック(CKS1, CKS0=11 B以外)のとき,このビットに"1"を書き込むとシ
フトクロックカウンタをクリアして転送を開始します。
SST:
・外部シフトクロック(CKS1, CKS0=11 B)のとき,このビットに"1"を書き込むと転送許
シリアルI/O
可となり,シフトクロックカウンタをクリアして外部シフトクロックの入力待ち状態に
転送スタート
なります。
ビット
・転送が終了すると,このビットは"0"にクリアされ,SIOFビットが"1"にセットされます。
・転送中(SST=1)に,このビットに"0"を書き込むと転送を中断します。転送を中断した
場合,データ出力側のSDR1/SDR2レジスタの再設定と,データ入力側の転送再開(シフト
クロックカウンタのクリア)が必要です。
第12章 8ビットシリアルI/O
12.4.2
シリアルデータレジスタ1/2
シリアルデータレジスタ1/2(
1/2(SDR1/SDR2)
DR1/SDR2)
シリアルデータレジスタ1/2(SDR1/SDR2)は,8ビットシリアルI/Oの転送データを
保持するレジスタです。
シリアル出力動作時,送信データレジスタとして機能します。シリアル入力動作時,
受信データレジスタとして機能します。
■ シリアルデータレジスタ1/2(SDR1/SDR2)
図 12.4-4にシリアルデータレジスタのビット構成を示します。
図 12.4-4 シリアルデータレジスタ1/2(SDR1/SDR2)
○
シリアル出力動作時
送信データレジスタとして機能するレジスタで,シリアルI/Oの転送を開始
(SMR1/SMR2:SST=1)すると,このレジスタに書き込まれたデータをシリアル転
送します。
送信データは転送によってシフトアウトするため,SDR1/SDR2レジスタには残
りません。
○
シリアル入力動作時
受信データレジスタとして機能するレジスタで,シリアルI/Oの転送を開始
(SMR1/SMR2:SST=1)すると,このレジスタにシリアル転送されたデータが格納
されます。
○
シリアルI/O転送中
シリアルI/Oが転送動作を行っているときは,SDR1/SDR2レジスタにデータを
書き込まないでください。また,読み出した値は意味を持ちません。
シリアル出力とシリアル入力を同時に許可すると,シリアル入出力動作とな
ります。
277
第12章 8ビットシリアルI/O
12.5
8ビットシリアルI/O
ビットシリアルI/Oの割込み
I/Oの割込み
8ビットシリアルI/Oの割込み要因としては,8ビットデータのシリアル入出力の完
了があります。
■ シリアル入出力動作時の割込み
8ビットシリアルI/Oでは,シリアル出力動作とシリアル入力動作は同時に行われ
ます。シリアル転送を開始すると,設定したシフトクロック周期に同期して,シリ
アルデータレジスタ(SDR1/SDR2)の値を1ビットずつ入出力します。その後,8ビッ
ト目のシフトクロックが立ち上がると,割込み要求フラグビット(SMR1/SMR2:SIOF)
が"1"にセットされます。
そのとき,割込み要求出力許可ビットを許可(SMR1/SMR2:SIOE=1)しているとCPU
への割込み要求(IRQB(SMR1の場合)/IRQC(SMR2の場合))が発生します。
割込み処理ルーチンでSIOFビットに"0"を書込み,割込み要求をクリアしてくだ
さい。SIOFビットは,SIOEビットの値に関係なく,8ビットのシリアル出力が完了
するとセットされます。
参考:
シリアル入出力動作時,シリアル転送停止(SMR1/SMR2:SST=0)とシリアルデー
タ転送の終了とが同時に起った場合,割込み要求フラグビットのセット
(SMR1/SMR2:SIOF=1)は行いません。また,SIOFビットが"1"のとき,SIOEビッ
トを禁止から許可(0→1)にすると直ちに,割込み要求が発生します。
■ 8ビットシリアルI/Oの割込みに関連するレジスタとベクトルテーブル
表 12.5-1 8ビットシリアルI/Oの割込みに関連するレジスタとベクトルテーブル
割込みレベル設定レジスタ
レジスタ
設定ビット
割込み名
IRQB(8ビットシ
リアルI/O1用)
IRQC(8ビットシ
リアルI/O2用)
ベクトルテーブルのアドレス
上位
下位
ILR3(007DH)
LLB(bit7)
LLB(bit6)
FFE4H
FFE5H
ILR4(007EH)
LC1(bit1)
LC0(bit0)
FFE2H
FFE3H
割込み動作については,
「3.4.2 割込み動作時の処理」を参照してください。
278
第12章 8ビットシリアルI/O
12.6
シリアル出力の動作説明
8ビットシリアルI/Oはシフトクロックに同期した,8ビットデータのシリアル出力
動作ができます。ここでは,8ビットシリアルI/O1を例として説明します。
■ シリアル出力動作
シリアル出力には,内部シフトクロックと外部シフトクロックによる動作があり
ます。シリアル入出力動作が許可されている場合,シリアル入力と同時にSDR1レジ
スタの内容がシリアルデータ出力端子(SO1)に出力されます。
○
内部シフトクロックの場合
シリアル出力の内部シフトクロックによる動作には,図 12.6-1の設定が必要
です。
図 12.6-1 シリアル出力(内部シフトクロック使用時)の設定
シリアル出力動作を起動すると,選択した内部シフトクロックの立下りエッ
ジに同期して,SDR1レジスタの内容をSO1端子に出力します。このとき,転送先
(シリアル入力側)が,外部シフトクロック入力待ち状態になっている必要が
あります。
○
外部シフトクロックの場合
シリアル出力の外部シフトクロックによる動作には,図 12.6-2の設定が必要
です。
図 12.6-2 シリアル出力(外部シフトクロック使用時)の設定
シリアル出力動作を許可すると,外部シフトクロックの立下りエッジに同期
して,SDR1レジスタの内容をSO1端子に出力します。シリアル出力完了後は,次
のデータの出力に備えて,すみやかにSDR1レジスタの再設定と動作の許可
(SMR1:SST=1)を行う必要があります。
相手側のシリアル入力動作(立上りエッジ)が完了し,次のデータの出力待
ち(アイドル状態)の間は,外部シフトクロックは"H"レベルとしてください。
279
第12章 8ビットシリアルI/O
図 12.6-3に8ビットシリアル出力の動作を示します。
図 12.6-3 8ビットシリアル出力の動作
■ シリアル出力完了時の動作
8ビット目のシリアルデータを入出力したシフトクロックの立上りで,割込み要
求フラグビットをセット(SMR1:SIOF=1)し,シリアルI/Oスタートビットをクリア
(SMR1:SST=0)します。
280
第12章 8ビットシリアルI/O
12.7
シリアル入力の動作説明
シリアル入力の動作説明
8ビットシリアルI/Oは,シフトクロックに同期した,8ビットシリアル入力動作が
できます。ここでは,8ビットシリアルI/O1を例として説明します。
■ シリアル入力動作
シリアル入力には,内部シフトクロックと外部シフトクロックによる動作が可能
です。シリアル入出力動作が許可されている場合,シリアル入力と同時にSDR1レジ
スタの内容がシリアルデータ出力端子(SO1)に出力されます。
○
内部シフトクロックの場合
シリアル入力の内部シフトクロックによる動作には,図 12.7-1の設定が必要
です。
図 12.7-1 シリアル入力(内部シフトクロック使用時)の設定
シリアル入力動作を起動すると,選択した内部シフトクロックの立上りエッ
ジに同期して,シリアルデータ入力端子(SI1)の値をSDR1レジスタに取り込み
ます。このとき,転送先(シリアル出力側)の,SDR1レジスタが設定されてお
り,外部シフトクロック入力待ち状態になっている必要があります。
○
外部シフトクロックの場合
シリアル入力の外部シフトクロックによる動作には,図 12.7-2の設定が必要
です。
図 12.7-2 シリアル入力(外部シフトクロック使用時)の設定
281
第12章 8ビットシリアルI/O
シリアル入力動作を許可すると,外部シフトクロックの立上りエッジに同期
して,SI1端子の値をSDR1レジスタに取り込みます。シリアル入力完了後は,次
のデータの入力に備えて,すみやかにSDR1レジスタの読出しと動作の許可
(SMR1:SST=1)を行う必要があります。
このとき,次のデータの出力待ち(アイドル状態)の間は,外部シフトクロッ
クは,"H"レベルとしてください。
図 12.7-3に8ビットシリアル入力の動作を示します。
図 12.7-3 8ビットシリアル入力の動作
■ シリアル入力完了時の動作
8ビット目のシリアルデータを入出力したシフトクロックの立上りで,割込み要
求フラグビットをセット(SMR1:SIOF=1)し,シリアルI/Oスタートビットをクリア
(SMR1:SST=0)します。
282
第12章 8ビットシリアルI/O
12.8
8ビットシリアルI/O
ビットシリアルI/Oの動作中の各モードでの状態
I/Oの動作中の各モードでの状態
シリアルI/Oの動作中にスリープモードへ移行した時,ストップモードへ移行した
時および途中停止時の動作を,8ビットシリアルI/O1を例として説明します。
■ 内部シフトクロックを使用した場合
○
スリープ時の動作
スリープモードでは,図 12.8-1に示すようにシリアル入出力動作は停止せず,
転送を続けます。
図 12.8-1 スリープ時の動作(内部シフトクロック)
○
ストップモード時の動作
ストップモードでは,図 12.8-2に示すようにシリアル入出力動作を停止し,
転送を中断します。ストップモード解除後は動作を途中から再開するため,転
送先の状態に応じて初期化しなおしてください。
図 12.8-2 ストップモード時の動作(内部シフトクロック)
283
第12章 8ビットシリアルI/O
○
途中停止時の動作
図 12.8-3に示すように転送途中で動作を停止(SMR1:SST=0)すると,転送を
停止し,シフトクロックカウンタをクリアします。したがって,転送先も初期
化する必要があります。シリアル出力動作時は,再起動する前にSDR1レジスタ
を設定しなおしてください。
図 12.8-3 途中停止時の動作(内部シフトクロック)
■ 外部シフトクロックを使用した場合
○
スリープ時の動作
スリープモードでは,図 12.8-4に示すようにシリアル入出力動作は停止せず,
転送を続けます。
図 12.8-4 スリープ時の動作(外部シフトクロック)
○
ストップモード時の動作
ストップモードでは,図 12.8-5に示すようにシリアル入出力動作も停止し,
転送を中断します。ストップモード解除後は動作を途中から再開するため,転
送先エラーとなります。初期化しなおしてください。
図 12.8-5 ストップモード時の動作(外部シフトクロック)
284
第12章 8ビットシリアルI/O
○
途中停止時の動作
図 12.8-6に示すように転送途中で動作を停止(SMR1:SST=0)すると,転送を
停止し,シフトクロックカウンタをクリアします。したがって,転送先も初期
化する必要があります。シリアル出力動作時は,再起動する前にSDR1レジスタ
を設定しなおしてください。このとき,外部クロックが入力されるとSO1端子の
出力は変化します。
図 12.8-6 途中停止時の動作(外部シフトクロック)
285
第12章 8ビットシリアルI/O
12.9
8ビットシリアルI/O
ビットシリアルI/O使用上の注意
I/O使用上の注意
8ビットシリアルI/Oを使用するにあたっての,注意点を示します。
■ 8ビットシリアルI/O使用上の注意
○
シリアル転送開始時の誤差
シリアル転送のプログラムによる起動(SMR1/SMR2:SST=1)と,シフトクロッ
クの立下り(出力)または立上り(入力)までの時間が非同期であるため,最
初のシリアルデータが入出力されるまでの時間は,最大で設定したシフトク
ロックの1周期分,遅くなります。
○
ノイズによる誤動作
シリアルデータ転送において,外部からのノイズによってシフトクロックに
余分なパルス(ヒステリシス幅をこえるパルス)がのった場合,シリアルI/Oが
誤動作する場合があります。
○
プログラムでの設定時の注意
シリアルモードレジスタ1/2(SMR1/SMR2)
,シリアルデータレジスタ1/2
(SDR1/SDR2)への書込みはシリアルI/Oが停止(SMR1/SMR2:SST=0)して
いる時に行ってください。
シリアルI/O転送を開始/許可(SMR1/SMR2:SST=1)するときは,SMR1/SMR2
レジスタの他のビットを変更しないでください。
シフトクロックを外部シフトクロック入力で使用する場合,SO1/SO2端子
の出力レベルは,シリアルI/O転送停止中(SMR1/SMR2:SST=0)でもシリ
アルデータ出力を許可(SMR1/SMR2:SOE=1)していれば,外部シフトクロッ
クが入力した時点でMSBファーストの設定時には最上位ビットの,LSB
ファーストの設定時には最下位ビットのレベルが出力されます。
シリアルI/O転送停止(SMR1/SMR2:SST=0)とシリアルデータ転送の終了
が同時に起こった場合は,割込み要求フラグビット(SMR1/SMR2:SIOF)
のセットは行いません。
SIOFビットが"1"で割込み要求出力許可(SIOE=1)の状態では割込み処理
から復帰できません。必ず,SIOFビットのクリアを行ってください。
○
シリアルI/Oの転送速度
シリアルI/Oのシリアルデータ出力端子(SO2)は,Nchオープンドレイン出力
のため,高速の転送には適しません。高速のシフトクロックで使用する場合は
注意が必要です。
286
第12章 8ビットシリアルI/O
○
シフトクロックのアイドル状態
8ビットデータの転送と転送の間の待ち時間(アイドル状態)では,外部シフ
トクロックは,"H"レベルとしてください。内部シフトクロック(CKS1,CKS0=11B
以外)をシフトクロック出力(SMR1/SMR2:SCKE=1)とした場合,アイドル状態
では"H"レベル出力となります。
図 12.9-1にシフトクロックのアイドル状態を示します。
外部シフト
クロック
アイドル状態
8ビットデータ転送
アイドル状態
8ビットデータ転送
アイドル状態
図 12.9-1 シフトクロックのアイドル状態
287
第12章 8ビットシリアルI/O
12.10
8ビットシリアルI/O
ビットシリアルI/Oの接続例
I/Oの接続例
MB89051シリーズの8ビットシリアルI/Oを相互に接続し,双方向でシリアル入出力
を行う場合の接続例を示します。
■ 双方向でシリアル入出力を行う場合
図 12.10-1 8ビットシリアルI/Oの接続例(MB89051シリーズ同士のインタフェース)
288
第12章 8ビットシリアルI/O
図 12.10-2 双方向シリアル入出力の動作
289
第12章 8ビットシリアルI/O
12.11
8ビットシリアルI/O
ビットシリアルI/Oのプログラム例
I/Oのプログラム例
8ビットシリアルI/O1のプログラム例を示します。
■ シリアル出力のプログラム例
○
処理仕様
シリアルI/OのSO1端子から,8ビットのシリアルデータ(55H)を出力し,
転送が終了すると割込みを発生します。
割込み処理ルーチンで転送データを再設定し,連続して出力します。
内部シフトクロックで動作し,SCK1端子からシフトクロックを出力しま
す。
メインクロック原発振(FCH)12MHzでメインクロック速度(ギア)最高速
度時(1インストラクションサイクル=4/FCH)に,シフトクロックを32tinst
とした場合の,転送速度と割込み発生周期を以下に示します。
転送速度 = 12MHz/4/32 = 93.7kbps
割込み周期 = 4×32×8/12MHz = 85.33μs
290
第12章 8ビットシリアルI/O
○
コーディング例(Softune V1準拠)
291
第12章 8ビットシリアルI/O
■ シリアル入力のプログラム例
○
処理仕様
シリアルI/OのSI1端子から,8ビットのシリアルデータを入力し,転送が
終了すると割込みを発生します。
割込み処理ルーチンで転送データを読出し,連続して入力します。
外部シフトクロックで動作し,SCK1端子からシフトクロックを入力しま
す。
○
292
コーディング例(Softune V1準拠)
第13章
13章 I2C
この章では,I2Cバスインタフェースの機能と動作について説明します。
13.1 I2Cインタフェースの概要
13.2 I2Cインタフェースの構成
13.3 I2Cインタフェースの端子
13.4 I2Cインタフェースのレジスタ
13.5 I2Cインタフェースの割込み
13.6 I2Cインタフェースの動作説明
13.7 I2Cインタフェース使用上の注意
13.8 I2Cインタフェースのプログラム例
293
第13章 I2C
13.1
I2Cインタフェースの概要
I2Cインタフェースは,Philips社I2Cバス仕様をサポートするインタフェースで,マ
スタ/スレーブの送信と受信,アービトレーションロスト検出,スレーブアドレス/
ゼネラルコールアドレス検出,スタート/ストップコンディションの発生と検出,バ
スエラー検出の5種類を供給します。
■ I2Cインタフェース機能
マスタとスレーブ送信/受信
アービトレーションロスト検出時にマスタからスレーブへの自動変換
スレーブとゼネラルコールのアドレス比較
データ転送方向の検出
スタート/ストップコンディションの発生と検出
バスエラー検出
32種類のシフトクロック周波数をソフトウェアで選択可能
アクノレッジビットのソフト選択可
アクノレッジビットの発生と検出
各バイトデータ転送
I2Cインタフェース入力バッファ
入力スパイクノイズを20n secまで除去可能
1チャネルI2Cインタフェース回路内蔵
■ I2Cバスによる通信機能の概要
I2Cインタフェース機能は,シリアルデータライン(SDA)とシリアルクロックラ
イン(SCL)の2本のワイヤからなる構造の簡単な双方向バスです。これらのシリア
ルバスに接続されたデバイスはすべてオープンドレインまたはオープンコレクタ
出力が必要です。2本のワイヤは二つのプルアップ抵抗があり論理機能を行うこと
ができます。
バスに接続されている各装置はそれぞれ固有のアドレスを持ち,ソフトウェアに
よる各装置のアドレス指定が可能となります。また装置間には,マスタとスレーブ
という単純な関係が常に成り立ちます。マスタはマスタ送信装置あるいはマスタ受
信装置として機能します。
万一複数のマスタが同時にデータ転送を開始しようとした場合でも,データ破壊
を防ぐために衝突検出機能および通信調整手順を備えた本格的なマルチマスタバ
スです。8ビットの双方向シリアルデータ転送を,最高100Kbit/sで行うことができ
ます。バスのキャパシタンスが上限値400pFを超えなければ,一つのバスにICをい
くつでも接続することができます。
2
I2CインタフェースはPhilips社のI Cバスに対応できます。
294
第13章 I2C
13.2
I2Cインタフェースの構成
I2Cインタフェースは,以下の10ブロックから構成されています。
・クロック制御部
・スタートストップコンディション検出回路
・スタートストップコンディション発生回路
・アービトレーションロスト検出回路
・スレーブアドレス比較回路
・I2Cバスステータスレジスタ(IBSR)
・I2Cバス制御レジスタ(IBCR)
・I2Cクロック制御レジスタ(ICCR)
・I2Cアドレスレジスタ(IADR)
・I2Cデータレジスタ(IDAR)
295
第13章 I2C
2
■ I Cインタフェースのブロックダイヤグラム
図 13.2-1 I2Cインタフェースのブロックダイヤグラム
296
第13章 I2C
○
クロック制御部
この回路は内部クロックを元にI2Cバスのシフトクロックを選択し,発生しま
す。
○
スタートストップコンディション発生回路
バス解放時(SCLとSDAがHレベルの時)スタートコンディションを送信するこ
とによってマスタが通信を開始します。SCL=Hのときに,SDAラインを"H"→"L"
にするとスタートコンディションとなります。マスタはストップコンディショ
ンを発生することによって通信終了することができます。ストップコンディ
ションはSCL=HのときSDAラインが"L"→"H"の時をいいます。
○
スタートストップコンディション検出回路
この回路は,データ転送のスタートストップコンディションを検出します。
○
アービトレーションロスト検出回路
このインタフェース回路はマルチマスタシステムに対応しています。複数の
マスタが同時送信しますとアービトレーションロストが発生します。SDAライン
がL-レベルのときに論理レベル1を転送した場合,アービトレーションロストと
みなし,
(IBSR:AL=1)にセットされマスタはスレーブに変わります。
○
スレーブアドレス比較回路
スタートコンディション後,スレーブアドレスが送信されます。このアドレ
スはデータ方向ビット(R/W)である第8ビットが加えた7ビット長アドレスです。
アドレスの一致したスレーブのみアクノレッジを返します。
○
I2Cバスステータスレジスタ(IBSR)
IBSRレジスタはI2Cインタフェースのステータスを表します。このレジスタは
リードオンリーです。
○
I2Cバス制御レジスタ(IBCR)
IBCRレジスタはオペレーティングモードの選択,割込みの許可/禁止,アクノ
レッジの許可/禁止,またゼネラルコールアクノレッジの許可/禁止時に使用さ
れます。
○
I2Cクロック制御レジスタ(ICCR)
ICCRレジスタはI2Cインタフェースの動作許可とシフトクロック周波数の選択
に使用されます。
○
I2Cアドレスレジスタ(IADR)
IADRレジスタはスレーブアドレスを指定するレジスタです。
○
I2Cデータレジスタ(IDAR)
シリアル転送に使用されるデータレジスタであり,MSBから転送されます。
データ受信時(IBSR:TRX=0)は,データ出力値は"1"になります。
○
I2Cインタフェース割込み要因
IRQ9:割込み要求許可ビットが許可され(IBCR:BEIE=1, IBCR:INTE=1),バス
エラーが発生しデータ転送が終了した場合I2Cインタフェースにより割
込み要求を発生します。
297
第13章 I2C
13.3
I2Cインタフェースの端子
I2Cインタフェースの端子,ブロックダイヤグラム,レジスタ,割込み機能の説明
をします。
2
■ I Cインタフェースに関連する端子
I2Cインタフェースに関連する端子は,P53/SDA,P54/SCL端子があります。
○
P53/SDA端子
P53/SDA端子はNchオープンドレイン出力ポート(P53),またはデータ入出力
端子(SDA)としての機能があります。I2Cを許可された場合,P53/SDA端子は自
動的にデータ入出力端子となります。
○
P54/SCL端子
P54/SCL端子はNchオープンドレイン出力ポート(P54),またはシフトクロッ
ク入出力端子(SCL)としての機能があります。I2Cを許可された場合,P54/SCL
端子は自動的にシフトクロック入出力端子となります。
■ P53/SDAとP54/SCLのノイズキャンセラ
P53/SDAおよびP54/SCL端子の外部信号は内部インタフェース回路へ入る前に
フィルタをかけられます。20n秒以下のすべてのスパイクはフィルタで除かれます。
ICCR:DMBPビットが許可された状態ではノイズキャンセラは使用できません。
■ I2Cインタフェースに関連する端子のブロックダイヤグラム
図 13.3-1 I2Cインタフェースに関連する端子のブロックダイヤグラム
298
第13章 I2C
13.4
I2Cインタフェースのレジスタ
I2Cインタフェースに関連するレジスタを示します。
■ I2Cインタフェースレジスタ
図 13.4-1 I2Cインタフェースレジスタ
299
第13章 I2C
13.4.1
I2Cバスステータスレジスタ(IBSR
バスステータスレジスタ(IBSR)
IBSR)
I2Cバスステータスレジスタ(IBSR)はインタフェースの各通信状態を確認するレ
ジスタです。
■ I2Cバスステータスレジスタ(IBSR)
図 13.4-2 I2Cバスステータスレジスタ(IBSR)
300
第13章 I2C
2
表 13.4-1 I Cバスステータスレジスタ(IBSR)の各ビットの機能説明
bit7
ビット名
BB:
バスビジー
ビット
bit6
RSC:
繰返しスタート
コンディション
検出ビット
bit5
AL:
アービトレー
ションロスト
検出ビット
bit4
LRB:
アクノレッジ
格納ビット
bit3
TRX:
データ転送
状態ビット
bit2
AAS:
アドレッシング
検出ビット
bit1
GCA:
ジェネラル
コールアドレス
検出ビット
bit0
FBT:
第一バイト
検出ビット
機 能
このビットはバスの状態を示します。ストップコンディションの検出されたとき
にクリアされ,スタートコンディションの検出時に,セットされます。
・このビットは繰返しスタートコンディションを検出します。(RSD=1)
・このビットが"0"であればストップコンディションを検出したことを示し,"1"
であればバス使用中に,再びスタートコンディションを検出したことを示しま
す。
・以下の状態でクリアされます。
1)IBCR: INTビットへの"0"書込み
2)スレーブ時にアドレッシングされない
3)バス停止中のスタートコンディション検出
4)ストップコンディション検出
・アービトレーションロストが検出されたことを示すビットです。
・以下の状態でセットされます。
1)マスタ送信中にアービトレーションロストが発生された場合
2)ほかのシステムがバスを使用中の時にIBSR:MSSビットに"1"書込みを行った
場合
・IBCR:INTビットへの"0"書込みでクリアされます。
・このビットは9番目のクロックのSDAライン値をデータバイト転送に格納します。
・このビットはアクノレッジビットが検出された場合にクリアされます。(SDA=L)
・このビットはアクノレッジビットの検出がない場合にセットされます。(SDA=H)
・スタートコンディション,またはストップコンディション中に"0"でクリアされ
ます。
このビットではデータ転送が受信モードあるいは転送モードであるかを示しま
す。
・このビットはスレーブモード時にセットされアドレッシングされたことを示し
ます。
・スタートコンディション,またはストップコンディション中に"0"でクリアされ
ます。
・このビットが"1"であればスレーブ時にジェネラルコールアドレス(00H)を受信
したことを示します。
・スタートコンディション,またはストップコンディション中に"0"でクリアされ
ます。
・このビットは第一バイト受信データコーリングアドレスの検出時にセットされ
ます。
・スタートコンディション時常にセットされます。
・スタートコンディションの検出で"1"にセットされますが,IBCR: INTビットの
"0"書込み,またはスレーブ時にアドレスされなかった場合にクリアされます。
301
第13章 I2C
13.4.2
I2Cバス制御レジスタ(IBCR
バス制御レジスタ(IBCR)
IBCR)
I2Cバス制御レジスタ(IBCR)はオペレーティングモードの選択,割込み許可/禁止,
アクノレッジの許可/禁止,またジェネラルコールアクノレッジの許可/禁止時に使用
されます。
2
■ I Cバス制御レジスタ(IBCR)
図 13.4-3 I2Cバス制御レジスタ(IBCR)
302
第13章 I2C
2
表 13.4-2 I Cバス制御レジスタ(IBCR)の各ビットの機能説明(続く)
ビット名
bit7
BER:
バスエラー
割込み要求
フラグビット
bit6
BEIE:
バスエラー
割込み要求
許可ビット
bit5
bit4
bit3
bit2
bit1
機 能
・このビットはバスエラー割込みをクリアにし,さらにバスエラー検出も行いま
す。
・"0"書込みでクリアされます。
・"1"の書込みに変化はなく,ほかへの影響もありません。
・データ転送中に,不正なスタート,ストップコンディション検出時にセット。
・このビットがセットされた時にICCRレジスタの I2Cインタフェース動作許可
ビット(EN)はクリアされ,I2Cインタフェースは停止状態になり,データ転
送は中断されます。
・このビットはバスエラー割込み要求の発生を許可(BEIE=1),または禁止
(BEIE=0)します。
・このビットがセットされBER=1のとき,割込み要求をCPUに送られます。
・このビットをセットしたときにマスタモードの繰返しスタートコンディション
を発生します。(SCC=1)
SCC:
・"0"の書込みに変化はありません。
スタート
・このビットの読出し値は常に"0"です。
コンディション <注記>
発生ビット
・SCC=1とMSS=0を同時書込みしないでください。
・INT=0,SCC=1にされた場合,SCCビットの"1"書込みが優先され,スタートコン
ディションが発生されます。
・このビットはスレーブモード(MSS=0),またはマスタモード(MSS=1)を選択
します。
・このビットを"0"にすると,ストップコンディションを発生し,転送終了後ス
レーブモードとなります。
MSS:
・このビットを"1"にすると,マスタモードとなり,スタートコンディションを
マスタ/
発生し,転送を開始します。
スレーブ選択
・マスタ転送中にアービトレーションロストが発生した場合にクリアされ,ス
ビット
レーブモードになります。
<注記>
・SCC=1とMSS=0を同時書込みしないでください。
・INT=0,MSS=0にされた場合,MSSビットの"0"書込みが優先され,ストップコン
ディションが発生されます。
ACK:
・このビットは,データ受信時の9番目のクロックでアクノレッジビットの出力
データ
を許可または不許可にします。
アクノレッジ
・このビットはスレーブ時のアドレスデータ受信時には無効になります。さらに,
発生許可ビット
アドレッシング時にアクノレッジが送信されます。
GCAA:
ジェネラル
このビットはスレーブ受信時にジェネラルコールアドレスアクノレッジビット
コールアドレス
の出力許可をセットします。
アクノレッジ
発生許可ビット
INTE:
・転送終了時の割込みの許可(INTE=1)/禁止(INTE=0)をするビットです。
転送終了
・このビットがセットされINTが"1"の場合,CPUに転送終了割込み要求が送られ
割込み要求
ます。
許可ビット
303
第13章 I2C
表 13.4-2 I2Cバス制御レジスタ(IBCR)の各ビットの機能説明(続き)
ビット名
bit0
304
INT:
転送終了
割込み要求
フラグビット
機 能
・このビットによりデータ転送終了割込み要求フラグのクリアと,この割込み検
出の有無がわかります。
・"0"の書込みで転送終了割込み要求フラグがクリアされます。
・"1"の書込みに変化はありません。
・アクノレッジビットを含めた1バイト転送が終了したときに次の条件に該当す
る場合セットされます。
1)バスマスタモードである
2)アドレスされたスレーブである
3)ジェネラルコールアドレスを受信した
4)アービトレーションロストが発生された
5)ほかのシステムがバスを使用中にスタートコンディションを発生しようと
した
・このビットが"1"のとき,SCLラインはL-レベルに保持されます。このビットは
"0"込みによってクリアされます。このとき,I2CインタフェースはSCLライン
を開放し,次バイトの転送を行います。
・マスタ時のスタートコンディションまたはストップコンディションの発生に
よっても"0"にクリアされます。
<注記>
・INT=0,SCC=1にされた場合,SCCビットの"1"書込みが優先されスタートコンディ
ションが発生されます。
・INT=0,MSS=0にされた場合,MSSビットの"0"書込みが優先されストップコンディ
ションが発生されます。
第13章 I2C
13.4.3
I2Cクロック制御レジスタ(ICCR
クロック制御レジスタ(ICCR)
ICCR)
I2Cクロック制御レジスタ(ICCR)はI2C操作の許可,シフトクロック周波数の選択
時に使用されます。
2
■ I Cクロック制御レジスタ(ICCR)
図 13.4-4 I2Cクロック制御レジスタ(ICCR)
305
第13章 I2C
表 13.4-3 I2Cクロック制御レジスタ(ICCR)の各ビットの機能説明
ビット名
bit7
DMBP:
デバイダm
バイパスビット
bit6
予約ビット
bit5
EN:
I2Cインタ
フェース動作
許可ビット
bit4
bit3
CS4,CS3:
クロック1
選択ビット
bit2
bit1
bit0
CS2,CS1,CS0:
クロック2
選択ビット
機能
・このビットはシフトクロック周波数を発生させるためのmデバイダのバイパス
に使用されます。
・"0"書込みの場合,CS3,CS4で選択された値がmデバイダの値になります。
・"1"書込みの場合,mデバイダをバイパスします。これはm=1と同じです。
・読出し時には,現在の設定値が読み出せます。
・"n=4"の場合,このビットはセットしないでください(CS2=CS1=CS0=0)。
予約ビットです。必ず"0"を書き込んでください。
・このビットはI2Cインタフェースの動作を許可するビットです。(EN="1")
・このビットが"0"のとき動作禁止となり,IBSRレジスタとIBCRレジスタ(BER,
BEIEビットを除く)の各ビットは"0"にクリアします。
・IBCR:BERビットがセットされた場合,このビットは"0"にクリアされます。
・すべてのI2Cレジスタに書き込むにはこのビットが許可されていなくてはいけ
ません。
・このビットはシフトクロックの周波数を設定します。
・シフトクロック周波数Fsckは次式のように設定されます:
tinstはインストラクションサイクルです。(SYCC中のCSビットで選択されたク
ロックとなります)
DMBPが"0"の場合,mはCS4とCS3に選択され,DMBPが"1"の場合,mは"1"となりま
す。
nは,CS2,CS1およびCS0に選択されます。
■ シフトクロック周波数を設定する場合の注意
表 13.4-3のFsck式を使用して,シフトクロック周波数を計算するにはm,n,DMBP
の値を知る必要があります。
mの値が5(ICCR:CS4=CS3=0)の時と,nの値が4(ICCR:CS2=CS1=CS0=0)のときは
DMBPの値は選択できません。その他の組み合わせに問題はありません。
306
第13章 I2C
13.4.4
I2Cアドレスレジスタ(IADR
アドレスレジスタ(IADR)
IADR)
I2Cアドレスレジスタ(IADR)はスレーブアドレスの保存に使用されます。
2
■ I Cアドレスレジスタ(IADR)
図 13.4-5 I2Cアドレスレジスタ (IADR)
スレーブ時だけ有効なスレーブアドレスを指定するレジスタです。アドレスは7
ビットデータであり,マスタからは最下位ビットとしてR/Wビットを追加して8ビッ
トアドレスデータとして送出されます。
スレーブ時に,マスタからのアドレスデータの受信後にIDARレジスタ値の下位7
ビットとの比較が行われ,アドレッシングの判定に使用されます。
307
第13章 I2C
13.4.5
I2Cデータアレジスタ(IDAR
データアレジスタ(IDAR)
IDAR)
I2Cデータレジスタ(IDAR)は伝送されたシフトデータの保存に使用されます。
2
■ I Cデータレジスタ(IDAR)
図 13.4-6 I2Cデータレジスタ(IDAR)
マスタモード時,レジスタに書かれたデータが最優先ビットからSDAラインに
ビットごとにシフトされます。
このレジスタの書込み側はダブルバッファになっており,バスが使用中
(IBSR:BB=1)である場合,書込みデータは現在のバイト転送終了時にこの8ビット
のシフトレジスタにロードされます。シフトレジスタのデータは各ビットごとに
SDAラインにシフトされます。このレジスタへの書込みは,現在のデータ転送には
影響がありません。スレーブモードときにも,アドレスの確定後同じ機能が使えま
す。
データ受信時(IBSR:TRX=0)でIBCR:INT=1の場合,受信データはこのレジスタか
ら読み出せます。そのほか,このレジスタからの読出しは常に"FFH"です。ただし,
データ転送時(IBSR:TRX=1)にはIDARアドレスから,シフトレジスタ値が読み出せ
ます。
308
第13章 I2C
13.5
I2Cインタフェースの割込み
I2Cインタフェースは,データの転送が終了したとき,もしくはバスエラーが発生
したときに,割込み要求を発生することができます。
■ バスエラー時の割込み
以下の条件が成立した場合はバスエラーと判断され,I2Cインタフェースは停止
状態となります。バスエラー割込み要求フラグビット(IBCR:BER)が"1"にセット
されます。
データ転送中(ACKビットを含む)のI2Cバス上の基本規定違反検出
マスタ時のストップコンディション検出
バスアイドル時のI2Cバス上の基本規定違反検出
スタートコンディション発生時にSCLラインが"L"レベルの時
バスマスタ中に再送スタートコンディションを検出(IBSR:RSC=1)した
とき
このとき,バスエラー割込み要求許可ビットが許可(IBCR:BETE=1)されている
と,割込みコントローラに割込み要求を出力します。割込み処理ルーチン内で
IBCR:BERビットに"0"書込みで割込み要求をクリアしてください。
BEIEビット値にかかわらずバスエラーが発生した場合はIBCR:BERビットは"1"に
セットされます。
■ データ転送終了時の割込み
I2Cインタフェースは,各ビットごとにSDAラインに送受信します。各データバイ
トは,8ビット固定です。SCLが"L"のときデータ変更が可能で,"H"のときには,安
定させる必要があります。1クロックパルスにつきMSBを先頭に1ビットのデータを
転送されます。各バイトデータは,9番目のクロックのSDAラインが"L"に引かれ,
受信デバイスから受信したアクノレッジの後に来る必要があります。そのため,ひ
とつの完全なデータバイト転送は,九つのクロックパルスが必要となります。
このとき,転送終了割込み要求許可ビットが許可(IBCR:INTE=1)された場合,
割込みコントローラ(IRQ9)に割込み要求を出力します。割込み処理ルーチン内の
IBCR:INTビットに"0"書込みで割込み要求をクリアしてください。
IBCR:INTEビット値にかかわらずデータ転送を終了された場合,IBCR:INTビット
は1にセットされます。
■ I2Cインタフェースの割込みに関連するレジスタとベクトルテーブル
表 13.5-1にI2Cインタフェースの割込みに関連するレジスタとベクトルテーブ
ルを示します。
表 13.5-1 I2Cインタフェースの割込みに関連するレジスタとベクトルテーブル
割込み名
IRQ9
割込みレベル設定レジスタ
レジスタ
設定ビット
ILR3(007DH) L91(bit3)
L90(bit2)
ベクトルテーブルのアドレス
上位
下位
FFE8H
FFE9H
参考:
割込み動作については,
「3.4.2
割込み動作時の処理」を参照してください。
309
第13章 I2C
13.6
I2Cインタフェースの動作説明
I2Cインタフェースは,SCLクロックに同期した8ビットデータのシリアルインタ
フェースです。
■ I2Cバスシステム
I2Cバスシステムはデータ転送に,シリアルデータライン(SDA)とシリアルクロッ
クライン(SCL)を使用します。接続された全装置はオープンドレイン,もしくは,
オープンコレクタ出力である必要があり,シリアルデータラインとシリアルクロッ
クラインはプルアップ抵抗を接続して使用します。
バスに接続された各デバイスは,固有のアドレスを持ちソフトウェアで設定が可
能です。そこには常に簡単なマスタ/スレーブ関係が存在し,マスタはマスタトラ
ンスミッタもしくは,マスタレシーバとして機能します。万一,複数のマスタが同
時にデータ転送を開始しようとした場合でも,データ破壊を防ぐために衝突検出機
能,また,アービトレーション機能を備えた本格的なマルチマスタバスです。
■ I2Cバスプロトコル
図 13.6-1にデータ転送に必要なフォーマットを示します。
図 13.6-1 データ転送例
スタートコンディション(S)発生後,スレーブアドレスが送信されます。この
アドレスは7ビット長のものに8ビット目のデータ方向ビット(R/W)が含まれたア
ドレスです。データ転送は常にマスタによるストップコンディション(P)で終了
されます。しかし,繰返しスタートコンディション(Sr)を行うことによってストッ
プコンディションを発生せずに別のスレーブにアドレスすることも可能です。
310
第13章 I2C
■ スタートコンディション
バスが開放されている状態(IBSR: BB=0,IBCR: MSS=0)でI2Cバス制御レジスタ
(IBCR:MSS)ビットに"1"を書き込むと,I2Cインタフェースはマスタモードとなり,
同時にスタートコンディションを発生します。図 13.6-1に示されたとおり,
SCL="H"の場合に,SDAラインを"H"→"L"にするとスタートコンディションとなり,
通信の開始(以後バスビジー)をバス接続装置に知らせるための信号です。
スタートコンディションを発生させる条件は,次のとおりです。
バスが使用されていない状態(IBCR:MSS=0,IBSR:BB=0,IBCR:INT=0,IBSR:
AL=0)でのIBCR:MSSビットへの"1"書込み。その後,IBSR:BBが"1"にセッ
トされバスビジーを示します。
バスマスタ時の割込み状態(IBCR:MSS=1,IBSR:BB=1,IBCR:INT=1,IBSR:
AL=0)でのIBCR:SCCビットへの"1"書込み。これを繰り返しスタートコン
ディションとなります。
これら2とおりの条件以外でのIBCR:MSSビット,IBCR:SCCビットへの"1"書込みは
無視されます。ほかのシステムがバス使用中(アイドル状態中)に,IBCR: MSSビッ
トへ"1"書込みを行うと,IBSR:ALビットが"1"にセットされます。
■ アドレッシング
○
マスタモードのアドレッシング
マスタモードでは,スタートコンディション発生後,I2Cバスステータスレジ
スタ(IBSR: BB,TRX)を"11B"にセットされ,I2Cデータレジスタ(IDAR:D7∼D1)
の内容を上位ビット(MSB)から出力します。このアドレスデータは7ビットの
スレーブアドレスとデータの転送方向を示すR/Wビット(IDAR:D0)の8ビットで
構成されています。
アドレスデータ送信後,スレーブからアクノレッジを受信すると,送信デー
タのbit0(送信後のIDAR:D0)を反転してI2Cバスステータスレジスタ(IBSR: TRX)
へ格納します。9番目のクロックのSDAラインが"L"に引かれ,受信デバイスから
アクノレッジビットを受信したことになります。
○
スレーブモードのアドレッシング
スレーブモードではスタートコンディション発生後,I2Cバスステータスレジ
スタ(IBSR: BB,TRX)を"10B"にセットされ,マスタからの送信データをI2Cデー
タレジスタ(IDAR)へ受信します。アドレスデータ受信後,I2Cデータレジスタ
(IDAR)とI2Cアドレスレジスタ(IADR)との比較が行われ,一致している場合,
I2Cバスステータスレジスタ(IBSR: AAS)を"1"にセットし,マスタに対してア
クノレッジを送信します。その後,受信データビット0(受信後のIDAR:D0)を
I2Cバスステータスレジスタ(IBSR:TRX)ビットへ格納します。
311
第13章 I2C
■ データ転送
スレーブのアドレッシングを達成した後データ転送はマスタが送ったR/Wビット
に決定された方向でバイトごとに送受信できます。
SDAラインに出力される各バイトは8ビット固定です。図 13.6-1に示したとおり
受信装置はアクノレッジクロックパルスが出力されている間,SDAラインをL-レベ
ルの状態にします。そして,このクロックパルスが"H"の状態の時にSDAラインをLレベルの状態に安定させることでアクノレッジを送信側に伝えるようになってい
ます。 MSBを先頭に1ビットごとに1クロックパルスでデータを転送します。各バイ
トは,9番目のクロックのSDAラインが"L"に引かれ,受信デバイスから受信したア
クノレッジの後に来る必要があります。そのため,一つの完全なデータバイト転送
は九つのクロックパルスが必要となります。
■ アクノレッジ(確認応答信号)
アクノレッジは,受信側が送信側データバイト転送の9番目のクロックに対して
送信されます。
データ受信時は,I2Cバス制御レジスタ(IBCR: ACK)によってアクノレッジの有
無を選択することができます。データ送信時は,受信側からのアクノレッジがI2C
バスステータスレジスタ(IBSR: LRB)に格納されます。
1バイト転送後スレーブ送信時に,マスタ受信側からアクノレッジを受信しな
かった場合,I2C バスステータスレジスタ(IBSR: TRX)が"0"となりスレーブ受信
モードになります。これにより,マスタはスレーブがSCLラインを開放したときに,
ストップコンディション,または繰返しスタートコンディションを発生することが
できます。
■ ストップコンディション
ストップコンディションを発生させることにより,バスを開放させ,マスタは通
信を終了することができます。また,マスタはストップコンディションを発生せず
に,連続してスタートコンディションを発生(繰返しスタートコンディション)す
ることができます。
SCLが"H"のときに,SDAラインを"L"→"H"にするとストップコンディションとな
り,マスタモード時の通信終了(以後バスフリー)をバス接続装置に知らせるため
の信号です。
バスマスタ時の割込み状態(IBCR: MSS=1,IBSR: BB=1,IBCR: INT=1,IBSR: AL=0)
でのIBCR: MSSビットへの"0"書込みでストップコンディションが発生し,スレーブ
モードになります。
上記以外での,IBCR: MSSビットへの"0"書込みは無視されます。
■ アービトレーション(通信許可手順)
I2Cインタフェース回路は,複数のマスタを接続できる本格的なマルチマスタバ
スです。マスタ転送で,システム内のほかのマスタが同時にデータ転送をした場合,
アービトレーションが発生します。
アービトレーションは,SCLラインが"H"レベルのときにSDAラインで起こります。
自分の送信データが"1",SDAライン上のデータが"L"レベルの場合,アービトレー
ションロストが発生したと見なし,データ出力をオフにして,IBSR: AL=1にセット
します。IBSR: AL=1にセットされると,IBCR: MSS=0 ,IBSR: TRX=0となり,スレー
ブ受信モードとなります。
参考:
前述のようにバスが使用状態の時に,スタートコンディションを発生させよ
うとした場合もIBSR: AL=1にセットされます。ただし,IBCR: MSS=1になります。
312
第13章 I2C
13.7
I2Cインタフェース使用上の注意
I2Cインタフェースを使用するにあたっての注意点を示します。
■ I2Cインタフェース使用上の注意
○
I2Cインタフェースレジスタを設定する場合の注意
インタフェースのレジスタ書込み前にI2Cインタフェースが許可されなく
てはなりません(ICCR: EN)
マスタスレーブ選択ビット(IBCR: MSS)をセットすると転送開始します。
○
同時書込みで,次バイト転送,スタートコンディション発生,ストップコン
ディション発生の競合時の優先度の注意
次バイト転送とストップコンディションの競合
IBCR:INTがクリアで,IBCR:MSSに"0"書込みの場合,MSSビットに優先権
があり,ストップコンディションが発生します。
次バイト転送とスタートコンディションの競合
IBCR:INTがクリアで,IBCR:SCCに"1"書込みの場合,SCCビットに優先権
があり,スタートコンディションが発生します。
○
ソフトウェアによる設定の注意
繰 返 し ス タ ー ト コ ン デ ィ シ ョ ン ( IBCR:SCC=1 ) と ス レ ー ブ モ ー ド
(IBCR:MSS=0)を同時選択しないでください。
割込み要求フラグビット(IBCR:BER/IBCR:INT)が"1"で,割込み要求許
可ビット(IBCR:BEIE=1/IBCR:INTE=1)が許可された状態では,割込み処
理から復帰できません。IBCR:BER/IBCR:INTビットのクリアは必ず行って
ください。
I2Cが許可されなかった場合(ICCR:EN=0),バスステータスレジスタIBSR
とバス制御レジスタIBCRのすべてのビット(バスエラービットIBCR:BER
とバスエラー許可ビットIBCR:BEIEを除く)がクリアされます。
313
第13章 I2C
13.8
I2Cインタフェースのプログラム例
I2Cインタフェースのプログラム例を示します。
■ マスタ転送モードのプログラム例
○
処理仕様
100kbit/sの転送レート
マスタ転送モードにてセット
アドレス19Hのスレーブに64Hのデータ送信
原振(FCH)12MHzを使用した時に,100Kbit/sの転送レート(Fsck)となるICCR
レジスタのmとnの値を以下に示します。
1/tinst=12MHz/2/2=3.0MHz
mはICCRレジスタのCS4とCS3によって選択
nはICCRレジスタのCS2,CS1とCS0によって選択
m×n=12MHz/100KHz-8=112(7×8)
ICCRレジスタ値(bit0∼bit4)は01001B
ICCR:DMBP(bit7)は"0"です。
○
314
コーディング例(Softune V1準拠)
第13章 I2C
315
第13章 I2C
316
第14章
14章 クロック出力機能
この章では,クロック出力機能と動作について説明します。
14.1 クロック出力の概要
14.2 クロック出力の端子(CLK1,CLK2)
14.3 クロック出力のレジスタ
317
第14章 クロック出力機能
14.1
クロック出力の概要
クロック出力機能は,原振クロックをPLLで逓倍し,分周した波形をポートから出
力する機能です。
■ クロック出力機能
クロック出力機能は,原振クロックをPLLで逓倍し,分周した波形(周波数は原
振クロックと同じです)を出力する機能です。出力端子は以下のようになります。
原振クロック逓倍の分周波形: CLK1,CLK2
318
第14章 クロック出力機能
14.2
クロック出力の端子(CLK1
クロック出力の端子(CLK1,
CLK1,CLK2)
CLK2)
クロック出力(CLK1,CLK2)に関連する端子,端子のブロックダイヤグラムを示し
ます。
■ クロック出力(CLK1,CLK2)に関連する端子
クロック出力(CLK1,CLK2)に関連する端子は,CLK1,CLK2端子です。
CLK1:
原振クロックと同周波数の波形(CLK1)が出力されます。
CLK2:
原振クロックの2倍の周波数の波形(CLK2)が出力されます。
■ クロック出力に関連する端子のブロックダイヤグラム
図 14.2-1 クロック出力に関連する端子のブロックダイヤグラム
参考:
リセット中は,"0"出力となります。
<注意事項>
クロック出力許可/禁止(CKR: CK1E, CK2E)の切替え直後およびSTOPモード(STBC: STP)移行
直後は,周期の短いクロックが出る場合があります。
319
第14章 クロック出力機能
14.3
クロック出力のレジスタ
クロック出力に関連するレジスタを示します。
■ クロック出力制御レジスタ(CKR)
図 14.3-1 クロック出力制御レジスタ(CKR)
表 14.3-1 クロック出力制御レジスタ(CKR)の各ビットの機能説明
ビット名
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
320
未使用ビット
機能
・リード時の値は不定です。
・ライト時は必ず"0"を書き込んでください。
CK2E:
クロック2出力 ・クロック2波形の出力許可を行うビットです。
許可ビット
CK1E:
クロック1出力 ・クロック1波形の出力許可を行うビットです。
許可ビット
第15章
15章 プルアップオプション
この章では,プルアップオプションについて説明します。
15.1 プルアップオプションの概要
15.2 プルアップオプション設定レジスタ
321
第15章 プルアップオプション
15.1
プルアップオプションの概要
プルアップオプションは,ポート0, 1, 2, 3, 4に,プルアップを設定する機能で
す。
■ プルアップオプション
プルアップオプションにより,ポート0,1,2,3,4の各端子をプルアップする
ことができます。設定は,プルアップオプションレジスタへの設定(書込み)によ
り,1ピンごとに設定することができます。
プルアップオプション設定レジスタでプルアップ抵抗ありを選択した場合,ス
トップモード(SPL=1)における端子の状態は,ハイインピーダンスではなく"H"
レベル(プルアップ状態)になります。ただし,リセット中のプルアップは無効と
なり,Hi-zとなります。
322
第15章 プルアップオプション
15.2
プルアップオプション設定レジスタ
プルアップオプションを設定するレジスタを示します。
■ プルアップオプション設定レジスタ(PURR0,1,2)
図 15.2-1 プルアップオプション設定レジスタ(PURR0,1,2)
323
第15章 プルアップオプション
■ プルアップオプション設定レジスタ(PURR3,4)
図 15.2-2 プルアップオプション設定レジスタ(PURR3,4)
324
第16章
16章
フラッシュメモリ
この章ではフラッシュメモリの機能や動作について説明します。
フラッシュメモリへのデータ書込み/消去の方法には,下記の3とおりの方法があり
ます。
1. パラレルライタ
2. シリアルライタによる書込み/消去
3. プログラム実行による書込み/消去
ここでは,
「3.プログラム実行による書込み/消去」について解説します。
16.1 フラッシュメモリの概要
16.2 フラッシュメモリのセクタ構成
16.3 フラッシュメモリコントロールステータスレジスタ(FMCS)
16.4 フラッシュメモリ自動アルゴリズム起動方法
16.5 自動アルゴリズム実行状態の確認
16.6 フラッシュメモリ書込み/消去の詳細説明
16.7 フラッシュメモリ使用上の注意
*:シリアル書込みライタは自作願います。
325
第16章 フラッシュメモリ
16.1
フラッシュメモリの概要
フラッシュメモリはCPUメモリマップ上の8000H∼FFFFHに配置され,フラッシュメモ
リインタフェース回路の機能により,マスクROMと同様にCPUからのリードアクセスお
よびプログラムアクセスが可能です。フラッシュメモリへの書込み/消去は,フラッ
シュメモリインタフェース回路を介してCPUからの命令動作で行えます。このため,
内蔵CPUの制御による実装状態での書換えが可能となり,プログラムおよびデータの
改善が効率よく行えます。
■ フラッシュメモリの特長
32Kバイト×8ビット :(16K+8K+8Kセクタ)セクタ構成
自動アルゴリズム(Embedded Algorithm:MBM29LV200と同様)
消去一時停止/消去再開機能の搭載
データポーリング,トグルビットによる書込み/消去完了検出
CPU割込みによる書込み/消去の完了検出
JEDEC標準型コマンドと互換
セクタごとの消去が可能(セクタ組み合わせ自由)
書込み/消去回数(最小)
10, 000回
Embedded AlgorithmはAdvanced Micro Device社の商標です。
■ フラッシュメモリ書込み/消去の方法
フラッシュメモリは書込みと読出しを同時に行うことはできません。すなわち,
フラッシュメモリにデータ書込み/消去動作を行う際には,フラッシュメモリ上に
あるプログラムをRAMに一度コピーしRAM実行することで,フラッシュメモリからプ
ログラムアクセスをせず書込み動作だけを行うことが可能となります。
■ フラッシュメモリのレジスタ
表 16.1-1フラッシュメモリコントロールステータスレジスタ(FMCS)
ビット
002EH
リード/ライト
初期値
326
bit7
INTE
(R/W)
(0)
bit6
RDYINT
(R/W)
(0)
bit5
WE
(R/W)
(0)
bit4
RDY
(R)
(X)
bit3
予約
(R/W)
(0)
bit2
予約
(R/W)
(0)
bit1
(-)
(-)
bit0
予約
(R/W)
(0)
第16章 フラッシュメモリ
16.2
フラッシュメモリのセクタ構成
フラッシュメモリのセクタ構成
表 16.2-1にフラッシュメモリのセクタ構成を示します。図中アドレスには,各セ
クタの上位アドレスと下位アドレスを示します。
■ セクタ構成
CPUによるアクセス時と,フラッシュ書込みライタ使用時の各セクタの対応する
アドレスを表 16.2-1にフラッシュメモリのセクタ構成に示します。
表 16.2-1 フラッシュメモリのセクタ構成
フラッシュメモリ
16Kバイト
8Kバイト
8Kバイト
*:ライタアドレス
CPUアドレス
FFFFH∼C000H
BFFFH∼A000H
9FFFH∼8000H
ライタアドレス*
1FFFFH∼1C000H
1BFFFH∼1A000H
19FFFH∼
ライタアドレスとは,フラッシュメモリにパラレルライタでデータ書込みを行う
際,CPUアドレスに対して相当するアドレスです。汎用ライタを使用し書込み/消去
を行う際は,このアドレスで書込み/消去を実行します。
327
第16章 フラッシュメモリ
16.3
フラッシュメモリコントロールステータスレジスタ
(FMCS)
FMCS)
コントロールステータスレジスタ(FMCS)は,フラッシュメモリインタフェース回
路にあるレジスタで,フラッシュメモリの書込み/消去の際に使用します。
■ コントロールステータスレジスタ(FMCS)
図 16.3-1 コントロールステータスレジスタ(FMCS)
328
第16章 フラッシュメモリ
表 16.3-1 コントロールステータスレジスタ(FMCS)の各ビットの機能説明
ビット名
INTE:
INTERRPUT
bit7
Enable
bit6
RDYINT:
READY
INTERRUPT
bit5
WE:
WRITE ENABLE
bit4
RDY:
READY
bit3,
bit2
bit1
bit0
機能
フラッシュメモリの書込み/消去の終了でCPUに割込みを発生させるビットです。
INTEビットが"1"でかつRDYINTビットが"1"のときにCPUへ割込みが発生します。INTE
ビットが"0"であれば割込みは発生しません。
フラッシュメモリの動作状態を表すビットです。
フラッシュメモリの書込み/消去が終わって"1"となります。フラッシュメモリ書込み/
消去後このビットが"0"の間は,フラッシュメモリへの書込み/消去はできません。書
込み/消去が終了して"1"になった後は,フラッシュメモリへの書込み/消去が可能にな
ります。
"0"書込みによって"0"にクリアされ,"1"の書込みは無視されます。フラッシュメモリ
自動アルゴリズム(「16.4 フラッシュメモリ自動アルゴリズム起動方法」参照)終
了タイミングで,"1"にセットされます。リードモディファイライト(RMW)命令使用
時は,必ず"1"が読めます。
フラッシュメモリ領域へのライトイネーブルビットです。
このビットが"1"のとき,1000H∼FFFFHへのコマンドシーケンス(「16.4 フラッシュ
メモリ自動アルゴリズム起動方法」参照)発行後のライトは,フラッシュメモリ領域
へのライトになります。本ビットが"0"のとき,書込み/消去の信号は発生されません。
このビットはフラッシュメモリの書込み/消去のコマンドを起動する際に使用します。
書込み/消去を行わないときは,誤ってフラッシュメモリにデータを書き込まないよ
う,常に"0"に設定することを推奨します。
フラッシュメモリの書込み/消去許可ビットです。
このビットが"0"の間は,フラッシュメモリへの書込み/消去はできません。なお,こ
の状態でも読出し/リセットコマンド,セクタ消去一時停止などのサスペンドコマンド
は受け付けられます。
予約ビット
試験用予約ビットです。通常使用時は必ず"0"に設定してください。
未使用ビット
予約ビット
通常使用時は必ず"0"に設定してください。
試験用予約ビットです。通常使用時は必ず"0"に設定してください。
<注意事項>
RDYINTビットとRDYビットは同時には変化しません。どちらか片方のビットで判定するようにプ
ログラムを作成してください。
329
第16章 フラッシュメモリ
16.4
フラッシュメモリ自動アルゴリズム起動方法
フラッシュメモリの自動アルゴリズムを起動するコマンドには,読出し/リセット,
書込み,チップ消去の4種類があり,セクタ消去については一時停止と再開の制御が
可能です。
■ コマンドシーケンス表
表 16.4-1に,フラッシュメモリの書込み/消去時に使用するコマンドの一覧を示
します。
表 16.4-1 コマンドシーケンス表
コマンド
シーケンス
1stバス
バス
ライトサイクル
ライト
サイクル アドレス データ
2ndバス
ライトサイクル
3rdバス
ライトサイクル
4thバス
ライトサイクル
5thバス
ライトサイクル
6thバス
ライトサイクル
アドレス
データ
アドレス
データ
アドレス
データ
アドレス
データ
F0
-
-
-
-
-
-
-
-
-
-
AAAA
AA
5554
55
AAAA
F0
RA
RD
-
-
-
-
3
AAAA
AA
5554
55
AAAA
A0
PA
PD
-
-
-
-
チップ
消去
6
AAAA
AA
5554
55
AAAA
80
AAAA
AA
5554
55
AAAA
10
セクタ
消去
6
AAAA
AA
5554
55
AAAA
80
AAAA
AA
5554
55
SA
30
読出し/
リセット*
1
XXXX
読出し/
リセット*
3
書込み
プログラム
アドレス データ
セクタ消去一時停止
Address"XXXX"Data(B0H)の入力で,セクタ消去中の消去一時停止
セクタ消去再開
Address"XXXX"Data(30H)の入力で,セクタ消去一時停止後,消去再開
注:表中のアドレスは,CPUメモリマップ上の値です。アドレスおよびデータはすべて16進数表記しています。ただし"X"は任意の
値です。
RA:読出しアドレス
PA:書込みアドレス
SA:セクタアドレス,「16.2 フラッシュメモリのセクタ構成」を参照願います。
RD:読出しデータ
PD:書込みデータ
*:2種類の読出し/リセットコマンドは,どちらもフラッシュメモリを読出しモードにリセットすることができます。
330
第16章 フラッシュメモリ
16.5
自動アルゴリズム実行状態の確認
フラッシュメモリでは,書込み/消去のフローを自動アルゴリズムで行うため,フ
ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアを持ち
ます。この自動アルゴリズムは,下記のハードウェアシーケンスによって内蔵フラッ
シュメモリの動作状態の確認ができます。
■ ハードウェアシーケンスフラグ
ハードウェアシーケンスフラグは,DQ7,DQ6,DQ5,DQ3,DQ2の5ビットの出力で
構成されます。それぞれがデータポーリングフラグ(DQ7),トグルビットフラグ
(DQ6)
,タイミングリミット超過フラグ(DQ5)
,セクタ消去タイマフラグ(DQ3),
トグルビットフラグ2(DQ2)の機能を持ちます。これにより,書込み/チップ・セク
タ消去終了,消去コードライトが有効かの確認をすることができます。
ハードウェア・シーケンス・フラグを参照するには,コマンドシーケンス(表
16.4-1 コマンドシーケンス表)設定後にフラッシュメモリ内部の対象セクタのア
ドレスにリードアクセスすることで参照できます。表 16.5-1にハードウェアシー
ケンスフラグのビット割当てを下記に示します。
表 16.5-1 ハードウェアシーケンスフラグのビット割当て
ハードウェアシーケンスフラグ
bit7
DQ7
bit6
DQ6
bit5
DQ5
bit4
-
bit3
DQ3
bit2
DQ2
bit1
-
bit0
-
自動書込み/チップ・セクタ消去が実行中であるかの判断は,ハードウェアシーケ
ンスフラグを確認するか,フラッシュメモリコントロールレジスタ(FMCS)のRDY
ビットを確認することで,書込みが終了しているかを知ることができ,書込み/消
去終了後は,読出し/リセット状態に戻ります。実際にプログラムを作成する際に
は,いずれかのフラグで自動書込み/消去終了を確認後に,データの読出しなどの
次処理を行ってください。また,2回目以降のセクタ消去コードライトが有効であ
るかも,ハードウェアシーケンスフラグによって確認することができます。事項に
各ハードウェアシーケンスフラグの説明を示します。表 16.5-2にハードウェア
シーケンスフラグ機能の一覧を示します。
表 16.5-2 ハードウェアシーケンスフラグ機能一覧
実行中
*2:
DQ7
DQ6
DQ5
DQ3
自動書込み動作
DQ7
0
1
DATA
Toggle
0
0
1
Toggle
1
DATA
0
0
DATA
1
0
DATA
Toggle
Toggle
DATA
DQ7
Toggle
0
0
自動消去時の書込み/消去動作
消去 読出し(消去中のセクタ)
一時 読出し(消去していないセクタ)
停止 書込み(消去していないセクタ)
DQ2
1
*1
Toggle
1
0
1
DQ7
*2
自動消去時の書込み/消去動作
0
Toggle
1
1
消去一時停止書込み中,その書込みされているアドレスの読出しに対し,DQ2は論理"1"を出力します。し
かし,消去一時停止しているセクタからの連続的な読出しに対しDQ2はトグル動作をします。
DQ5が"1"のとき(タイムリミット超過),書込み/消去中セクタへの連続的な読出しに対してDQ2はトグル
動作をし,ほかのセクタへの読出しに対してはトグルしません。
タイムリ
ミット超過
*1:
状 態
自動書込み動作
331
第16章 フラッシュメモリ
16.5.1
データポーリングフラグ(DQ7
データポーリングフラグ(DQ7)
DQ7)
データポーリングフラグは,自動アルゴリズム実行が進行中もしくは終了状態であ
ることをデータポーリング機能によって知らせるためのフラグです。
■ 自動書込み動作時
自動書込みアルゴリズム実行中にリードアクセスすると,フラッシュメモリはア
ドレスの指し示す番地によらず,最後に書き込まれたデータ(ビット7)の反転デー
タを出力します。自動書込みアルゴリズム終了時にリードアクセスすると,フラッ
シュメモリはアドレスの指し示す番地の読出し値のビット7を出力します。
■ 自動消去動作時
自動消去アルゴリズム実行中に,リードアクセスするとフラッシュメモリはアド
レスの指し示す番地に関係なく"0"を出力します。同様に終了時には"1"を出力しま
す。
■ セクタ消去一時停止時
セクタ消去一時停止時にリードアクセスすると,フラッシュメモリはアドレスの
指し示す番地が消去中のセクタであれば"1"を出力し,消去中のセクタでなければ
アドレスの指し示す番地の読出し値のビット7(DATA:7)を出力します。トグルビッ
トフラグとともに参照することで,現在セクタ一時停止状態であるか,どのセクタ
が消去中であるかの判定が可能です。
<注意事項>
自動アルゴリズムの動作が終了に近づくと,ビット7(データポーリング)は読出し動作中,非
同期的に変化します。これはフラッシュメモリが動作状態の情報をビット7に送り出し,そして確
定したデータをそのつぎに送り出すことを意味します。フラッシュメモリが自動アルゴリズムを
終了したとき,またビット7が確定データを出力しているときでも,他のビットはまだ不確定です。
他のビットの確定データは連続した読出しの実行によって読み出されます。
332
第16章 フラッシュメモリ
16.5.2
トグルビットフラグ(DQ6
トグルビットフラグ(DQ6)
DQ6)
トグルビットフラグはデータポーリングフラグと同様に,主に自動アルゴリズム実
行が進行中,もしくは終了状態であることをトグルビット機能によって知らせるため
のフラグです。
■ 自動書込み/消去時
自動書込みおよび消去アルゴリズム実行中に,連続したリードアクセスを行うと,
フラッシュメモリはアドレスの指し示す番地によらず,リードごとに"1"と"0"を交
互に出力するトグル状態を出力します。自動書込みおよび消去アルゴリズム終了時
に連続したリードアクセスを行うとフラッシュメモリはビット6のトグル動作を止
め,アドレスの指し示す番地の読出し値のビット6(DATA:6)を出力します。トグ
ルビットは各コマンドシーケンスの最後の書込みサイクルの後から有効になりま
す。
■ セクタ消去一時停止時
セクタ消去一時停止時にリードアクセスすると,フラッシュメモリはアドレスの
指し示す番地が消去中のセクタに属するならば,"1"を出力します。消去中のセク
タに属さないのであれば,アドレスの指し示す番地の読出し値のビット6(DATA:6)
を出力します。
<注意事項>
・書込みの際,書き込もうとしているセクタが書換え保護されているセクタの場合は,約2μsの
トグル動作をした後,データを書き換えることなくトグル動作を終わります。
・消去の際,選択されたすべてのセクタが書き換え保護されている場合トグルビットは約100μs
のトグル動作をし,その後データを書き換えないで読出し/リセット状態に戻ります。
333
第16章 フラッシュメモリ
16.5.3
タイミングリミット超過フラグ(DQ5
タイミングリミット超過フラグ(DQ5)
DQ5)
タイミングリミット超過フラグは,自動アルゴリズムの実行がフラッシュメモリ内
部に規定された時間(内部パルス回数)を超えてしまったことを知らせるフラグです。
■ 自動書込み/消去動作中
ビット5は自動アルゴリズムの実行がフラッシュメモリ内部に規定された時間
(内部パルス回数)を超えてしまったことを示します。この状態においてビット5
は"1"を出力します。すなわち自動アルゴリズムが動作中でこのフラグが"1"を出力
した場合は,書込みもしくは消去が失敗したことを示します。
ビット5はまた,消去することなく非ブランクの部分に書き込もうとすると,フェ
イルとなります。この場合,ビット7(データポーリング)から確定データを読む
ことができず,またビット6(トグルビット)はトグリングしたままとなります。
この状態でタイムリミットを超えると,ビット5に"1"が出力されます。この場合は,
フラッシュメモリが不良なのではなく,正しく使用されなかったということを表し
ていることに注意してください。もし,この状態が発生したときには,リセットコ
マンドを実行してください。
334
第16章 フラッシュメモリ
16.5.4
セクタ消去タイマフラグ(DQ3
クタ消去タイマフラグ(DQ3)
DQ3)
セクタ消去タイマフラグは,セクタ消去コマンド起動後セクタ消去ウェイト期間中
であるか否かを知らせるフラグです。
■ セクタ消去動作中
最初のセクタ消去コマンドシーケンス実行後セクタ消去ウェイト期間中になり
ます。ビット3はこの期間中"0"を,セクタ消去ウェイト期間を超えてしまっている
場合は"1"を出力します。データポーリングとトグルビットは最初のセクタ消去コ
マンドシーケンスの実行後から有効となります。
データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を
示している場合,このフラグが"1"であれば内部で制御される消去が始まっており,
続けてのコマンドライトはデータ・ポーリングかトグルビットが消去の終了を示す
まで無視されます。(消去一時停止コードの入力のみ受け付けます。
)
このフラグが"0"の場合,フラッシュメモリは追加のセクタ消去コードのライト
を受け付けます。このことを確認するために,引き続くセクタ消去コードのライト
に先立ってソフトウェアでこのフラグの状態をチェックすることを推奨します。も
し2回目の状態チェックで"1"であったなら追加セクタ消去コードは受け付けられ
ていない可能性があります。
セクタ消去一時停止中に読出しを行うと,フラッシュメモリはアドレス信号の指
し示す番地が消去中のセクタに属するならば,"1"を出力します。消去中のセクタ
に属さないのであれば,アドレス信号の指し示す番地の読出し値のビット3を出力
します。
335
第16章 フラッシュメモリ
16.5.5
トグルビット2
トグルビット2フラグ(DQ2
フラグ(DQ2)
DQ2)
トグルビット2フラグはトグルビットに加えて,自動消去動作中であるか,消去一
時停止中であるかを検出するためのフラグです。
■ セクタ消去動作中
このトグルビットは,ビット6のトグルビットに加えて,フラッシュメモリが自
動消去動作中であるか,消去一時停止中であるかを検出することに使われます。自
動消去動作中に消去しているセクタから連続して読出しを行うとビット2がトグル
動作をします。フラッシュメモリが消去一時停止読出しモードならば,消去一時停
止しているセクタから連続して読出しを行うとビット2はトグル動作をします。
フラッシュメモリが消去一時停止書込みモードのときは,消去一時停止していな
いセクタからアドレスを連続して読み出すとビット2は"1"が読み出されます。ビッ
ト6は,ビット2と違い,通常の書込み,消去あるいは消去一時停止書込み動作中に
のみトグル動作をします。
例えば,ビット2とビット6は,消去一時停止読出しモードを検出するために,いっ
しょに使われます(ビット2はトグル動作するが,ビット6はトグル動作しない)。
さらに,ビット2は消去しているセクタの検出にも使われます。フラッシュメモ
リが消去動作のときは,ビット2は消去しているセクタからの読出しならばトグル
動作をします。
336
第16章 フラッシュメモリ
16.6
フラッシュメモリ書込み/
フラッシュメモリ書込み/消去の詳細説明
自動アルゴリズムを起動するコマンドを発行し,フラッシュメモリに読出し/リ
セット,書込み,チップ消去,セクタ消去,セクタ消去一時停止,セクタ消去再開の
それぞれの動作を行う手順を説明します。
■ フラッシュメモリ書込み/消去の詳細説明
フラッシュメモリは読出し/リセット,書込み,チップ消去,セクタ消去,セク
タ消去一時停止,消去再開の動作がコマンドシーケンス(表 16.4-1 コマンドシー
ケンス表)のバスへのライトサイクルを行うことで自動アルゴリズムを実行するこ
とが可能です。それぞれのバスへのライトサイクルは必ず続けて行う必要がありま
す。また,自動アルゴリズムはデータ・ポーリング機能などで終了時を知ることが
できます。正常終了後は読出し/リセット状態に戻ります。
各動作について,次項より下記の順に示します。
16.6.1 フラッシュメモリの読出し/リセット状態
16.6.2 フラッシュメモリのデータ書込み
16.6.3 フラッシュメモリの全データ消去(チップ消去)
16.6.4 フラッシュメモリの任意データ消去(セクタ消去)
16.6.5 フラッシュメモリのセクタ消去の一時停止
16.6.6 フラッシュメモリのセクタ消去再開
337
第16章 フラッシュメモリ
16.6.1
フラッシュメモリの読出し
フラッシュメモリの読出し/
シュメモリの読出し/リセット状態
読出し/リセットコマンドを発行し,フラッシュメモリを読出し/リセット状態にす
る手順について説明します。
■ フラッシュメモリの読出し/リセット状態
フラッシュメモリを読出し/リセット状態にするには,コマンドシーケンス表
(「表 16.4-1 コマンドシーケンス表」)の読出し/リセットコマンドを,フラッ
シュメモリ内の対象セクタに続けて送ることで実行可能です。
読出し/リセットコマンドには1回と3回のバス動作を行う2とおりのコマンド
シーケンスがありますが,これらの本質的な違いはありません。
読出し/リセット状態はフラッシュメモリの初期状態であり,電源投入時,コマ
ンドの正常終了時は常に読出し/リセット状態になります。読出し/リセット状態は
他のコマンドの入力待ち状態です。
読出し/リセット状態では通常のリードアクセスでデータを読み出せます。マス
クROMと同様にCPUからのプログラムアクセスが可能です。通常読出しでのデータ読
出しにこのコマンドは必要ありません。何らかの理由でコマンドが正常に終了しな
かったときなど,自動アルゴリズムを初期化する場合に主にこのコマンドを使用し
ます。
338
第16章 フラッシュメモリ
16.6.2
フラッシュメモリのデータ書込み
書込みコマンドを発行し,フラッシュメモリにデータ書込みを行う手順について説
明します。図 16.6-1にフラッシュメモリ書込み手順の例を示します。
■ フラッシュメモリのデータ書込み
フラッシュメモリの,データ書込み自動アルゴリズムを起動するには,コマンド
シーケンス表(「表 16.4-1 コマンドシーケンス表」
)の書込みコマンドを,フラッ
シュメモリ内の対象セクタに続けて送ることで実行可能です。4サイクル目に目的
のアドレスへのデータライトが終了した時点で,自動アルゴリズムが起動され自動
書込みが開始します。
■ アドレス指定方法
書込みデータサイクルの中で指定する書込みアドレスは,偶数アドレスへのバイ
トデータ単位での書込みが必要となります。
書込みはどのようなアドレスの順番でも,また,セクタの境界を超えても可能で
すが,1回の書込みコマンドによって書き込まれるデータは1バイトのみです。
■ データ書込み上の注意
書込みによって,データ"0"をデータ"1"に戻すことはできません。データ"0"に
データ"1"を書き込むと,データポーリングアルゴリズム(DQ7)または,トグル動
作(DQ6)が終了せず,フラッシュメモリ素子が不良と判定され,書込み規定時間
を超えタイミングリミット超過フラグ(DQ6)がエラーと判定するか,あるいは見
かけ上データ"1"が書き込まれたように見えるかのどちらかとなります。しかし,
読出し/リセット状態でデータを読み出すとデータは"0"のままです。消去動作のみ
が"0"データを"1"にすることができます。
自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェア
リセットが起動されると,書き込んでいるアドレスのデータは保証されませんので
注意が必要です。
339
第16章 フラッシュメモリ
■ フラッシュメモリ書込み手順
図 16.6-1にフラッシュメモリ書込みの手順の例を示します。ハードウェア・シー
ケンス・フラグ(「16.5 自動アルゴリズム実行状態の確認」参照)を用いることで
フラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。ここでは,書込
み終了の確認にデータポーリングフラグ(DQ7)を用いています。
図 16.6-1 フラッシュメモリ書込み手順の例
フラグチェックのために読み込むデータは最後に書込みを行ったアドレスから
の読込みとなります。
データポーリングフラグ(DQ7)は,タイミングリミット超過フラグフラグ(DQ5)
と同時に変わるので,たとえタイミングリミット超過フラグ(DQ5)が"1"であって
もデータポーリングフラグビット(DQ7)は再チェックする必要があります。
トグルビットフラグ(DQ6)でも同様にタイミングリミット超過フラグビット
(DQ5)が"1"に変わるのと同時にトグル動作を止めるので,トグルビットフラグ
(DQ6)を再チェックする必要があります。
340
第16章 フラッシュメモリ
16.6.3
フラッシュメモリの全データ消去(チップ消去)
チップ消去コマンドを発行し,フラッシュメモリの全データ消去を行う手順につい
て説明します。
■ フラッシュメモリの全データ消去(チップ消去)
フラッシュメモリからすべてのデータを消去するには,コマンドシーケンス表
(
「表 16.4-1 コマンドシーケンス表」)のチップ消去コマンドを,フラッシュメ
モリ内の対象セクタに続けて送ることで実行可能です。
チップ消去コマンドは6回のバス動作で行われます,6サイクル目のライトが完了
した時点でチップ消去動作が開始します。チップ消去では,消去前にユーザがフ
ラッシュメモリに書込みを行う必要はありません。自動消去アルゴリズム実行中に
は,フラッシュメモリは自動的にすべてのセルを消去する前に"0"を書き込んで検
証します。
341
第16章 フラッシュメモリ
16.6.4
フラッシュメモリの任意データ消去(セクタ消去)
セクタ消去コマンドを発行し,フラッシュメモリの任意のセクタ消去を行う手順に
ついて説明します。セクタごとの消去が可能であり,複数のセクタを同時に指定する
ことも可能です。
■ フラッシュメモリの任意データ消去(セクタ消去)
フラッシュメモリの任意のセクタを消去するためには,コマンドシーケンス表
(
「表 16.4-1 コマンドシーケンス表」)のセクタ消去コマンドを,フラッシュメ
モリ内の対象セクタに続けて送ることで実行可能です。
■ セクタ指定方法
セクタ消去コマンドは6回のバス動作で行われます。6サイクル目に目的のセクタ
内のアクセス可能な任意の偶数の1アドレスへ,セクタ消去コード(30h)をライト
することにより50μsのセクタ消去ウェイトが開始します。複数のセクタ消去を行
う場合は,上記の処理に引き続き消去する目的のセクタ内のアドレスに消去コード
(30h)をライトします。
■ 複数のセクタを指定するときの注意
最後のセクタ消去コードのライトから50μsのセクタ消去ウェイト期間終了によ
り消去が開始します。すなわち,複数のセクタを同時に消去する場合は,次の消去
セクタのアドレスと消去コード(コマンドシーケンス6サイクル目)をそれぞれ50
μs以内に入力する必要があり,それ以降では受け付けられないことがあります。
引き続くセクタ消去コードのライトが有効かどうかはセクタ消去タイマ(ハード
ウェアシーケンスフラグDQ3)によって調べることができます。なおこのとき,セ
クタ消去タイマをリードするアドレスは,消去しようとしているセクタを指すよう
にします。
342
第16章 フラッシュメモリ
■ セクタ消去手順
ハードウェアシーケンスフラグ(「16.5 自動アルゴリズム実行状態の確認」参
照)を用いることでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能で
す。図 16.6-2にフラッシュメモリセクタ消去の手順の例を示します。ここでは,
消去終了の確認にトグルビットフラグ(DQ6)を用いています。
フラグチェックのために読み込むデータは,消去しようとしているセクタからの
読込みとなりますので,注意が必要です。
図 16.6-2 セクタ消去手順の例
トグルビットフラグ(DQ6)は,タイミングリミット超過フラグ(DQ5)が"1"に
変わるのと同時にトグル動作を止めるので,たとえタイミングリミット超過フラグ
(DQ5)が"1"であってもトグルビットフラグ(DQ6)は再チェックする必要があり
ます。
データポーリングフラグ(DQ7)でも同様に,タイミングリミット超過フラグ(DQ5)
と同時に変わるので,データポーリングフラグ(DQ7)を再チェックする必要があ
ります。
343
第16章 フラッシュメモリ
16.6.5
フラッシュメモリのセクタ消去の一時停止
セクタ消去一時停止コマンドを発行し,フラッシュメモリセクタ消去の一時停止を
行う手順について説明します。消去中でないセクタから,データを読み出すことが可
能です。
■ フラッシュメモリのセクタ消去の一時停止
フラッシュメモリのセクタ消去を一時停止するには,コマンドシーケンス表(
「表
16.4-1 コマンドシーケンス表」
)のセクタ消去一時停止コマンドを,フラッシュ
メモリ内に続けて送ることで実行可能です。
セクタ消去一時停止コマンドは,セクタ消去中に,消去を一時停止し消去中でな
いセクタからのデータ読出しを可能にするものです。この状態では読出しのみが可
能で書込みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中の
み有効で,チップ消去中や書込み動作中は無視されます。
消去一時停止コード(B0h)のライトを行うことで実施されますが,このときア
ドレスはフラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止
での再度の消去一時停止コマンドは無視されます。
セクタ消去ウェイト期間中に,セクタ消去一時停止コマンドが入力されると,直
ちにセクタ消去ウェイトを終了し,消去動作を中断して消去停止状態になります。
セクタ消去ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力さ
れると,最大15μsの時間の後,消去一時停止状態に入ります。
344
第16章 フラッシュメモリ
16.6.6
フラッシュメモリのセクタ消去再開
セクタ消去再開コマンドを発行し,一時停止したフラッシュメモリセクタ消去を再
開する手順について説明します。
■ フラッシュメモリのセクタ消去再開
一時停止したセクタ消去を再開させるには,コマンドシーケンス表(「表 16.4-1
コマンドシーケンス表」
)のセクタ消去再開コマンドを,フラッシュメモリ内に続
けて送ることで実行可能です。
セクタ消去再開コマンドは,セクタ消去一時停止コマンドによるセクタ消去一時
停止状態から,セクタ消去を再開するためのコマンドです。このコマンドは消去再
開コード(30h)のライトを行うことで実施されますが,このときのアドレスはフ
ラッシュメモリ領域内の任意のアドレスを指すようにします。
なお,セクタ消去中のセクタ消去再開コマンドの発行は無視されます。
345
第16章 フラッシュメモリ
16.7
フラッシュメモリ使用上の注意
その他,フラッシュメモリに関することで,MB89F051を使用する上での注意事項を
以下に示します。
■ ハードウェアリセット( RST )の投入
読出し動作中など,自動アルゴリズムが起動していない場合にハードウェアリ
セットを投入する場合,ローレベルの幅を最小で500ns取るようにしてください。
書込み/消去動作中など,自動アルゴリズムが起動中にハードウェアリセットを
投入する場合も同様,ローレベルの幅を最小で500ns取るようにしてください。こ
の場合実行中の動作が終了し,フラッシュメモリが初期化され,データを読み出せ
る状態になるまで20μsの時間を要します。
書込み動作中にハードウェアリセットがかかると,書込み途中のデータは不定に
なります。また消去動作中にハードウェアリセットがかかると,消去中のセクタは
使用できなくなる恐れがあるので注意が必要です。
■ ソフトウェアリセット,ウォッチドッグタイマリセット
フラッシュメモリの書込み/消去を通常モードに設定し,かつCPUのメモリアクセ
スモードを内ROMモードで使用している場合,フラッシュメモリの自動アルゴリズ
ムが起動中にこれらのリセット要因が発生すると,CPUは暴走する恐れがあります。
これらのリセット要因ではフラッシュメモリ本体は初期化されず自動アルゴリズ
ムを継続するため,CPUがリセット解除後のシーケンスを開始したときにフラッ
シュメモリが読出し状態に移行できていない可能性があるからです。フラッシュメ
モリの書込み/消去動作中は,これらのリセット要因が発生しないように注意して
ください。
■ フラッシュメモリへのプログラムアクセス
自動アルゴリズム起動中はフラッシュメモリへのリードアクセスはできません。
CPUのメモリアクセスモードを内ROMモードで使用している場合などは,あらかじめ
プログラム領域をRAMなどの他の領域に移してから書込み/消去を起動するように
してください。
またこの場合,少なくとも割込ベクタの置かれているセクタを消去してしまうと,
書込み/消去終了時の割込処理が実行できません。
全く同様の理由から,自動アルゴリズム起動中は他の割込処理を禁止します。
346
第17章
17章 MB89F051シリアル書込み接続例
MB89F051シリアル書込み接続例
この章では,横河ディジタルコンピュータ株式会社製フラッシュマイコンプログラ
マを用いた場合の,シリアル書込みの接続例について説明します。
17.1 MB89F051シリアル書込み接続の基本構成
17.2 シリアル書込み時の接続例(ユーザ電源使用時)
17.3 フラッシュマイコンプログラマとの最小限の接続例(ユーザ電源使用時)
347
第17章 MB89F051シリアル書込み接続例
17.1
MB89F051シリアル書込み接続の基本構成
MB89F051シリアル書込み接続の基本構成
MB89F051では,フラッシュROMのシリアルオンボード書込み(富士通標準)をサポー
トしています。その仕様について以下に解説します。
■ MB89F051シリアル書込み接続の基本構成
富士通標準シリアルオンボード書込みには,横河ディジタルコンピュータ株式会
社製フラッシュマイコンプログラマを使用します。
図 17.1-1に,MB89F051シリアル書込み接続の基本構成を示します。
図 17.1-1 MB89F051シリアル書込み接続の基本構成
<注意事項>
フラッシュマイコンプログラマ(AF220/AF210/AF120/AF110)の機能・操作方法および接続用汎
用共通ケーブル(AZ210),コネクタにつきましては,横河ディジタルコンピュータ株式会社殿に
お問い合わせください。
○
富士通標準シリアルオンボード書込みに使用する端子
表 17.1-1 富士通標準シリアルオンボード書込みに使用する端子
端 子
MOD2,MOD1,
MOD0,P23,P22
X0, X1
RST
SI1
SO1
SCK1
348
機 能
モード端子
発振用端子
リセット端子
VCC
シリアルデータ入力端子
シリアルデータ出力端子
シリアルクロック入力端
子
電源電圧供給端子
VSS
GND端子
補足説明
MOD2=0,MOD1=1,MOD0=1,P23=0,P22=1に設定することで,
シリアル書込みモードになります。
シリアル書込みモード時のCPU内部動作クロックは,発振周
波数の4分周になります。
なお,シリアル書込みを行う場合には,3MHz以上の発振周
波数を入力する必要がありますので,注意してください。
−
8bitシリアルI/Oを使用します。
書込み電圧をユーザシステムから供給する場合にはフラッ
シュマイコンプログラマとの接続は必要ありません。
フラッシュマイコンプログラマのGNDと共通にします。
第17章 MB89F051シリアル書込み接続例
なお,SI1,SO1,SCK1端子をユーザシステムでも使用する場合には,図 17.1-2
の制御回路が必要となります。(フラッシュマイコンプログラマの / TICS信号に
より,シリアル書込み中はユーザ回路を切り離すことができます。接続例を参照し
てください。)
図 17.1-2 制御回路
○
発振クロック周波数とシリアルクロック入力周波数について
MB89F051の入力可能なシリアルクロック周波数は以下の計算式により求めま
す。したがって,使用の発振クロック周波数によって,シリアルクロック入力
周波数をフラッシュマイコンプログラマの設定にて変更してください。
入力可能なシリアルクロック周波数 = 0.125×発振クロック周波数
例;
発振クロッ 内部メインク
ク周波数(FC) ロ ッ ク 周 波 数
(FCH)
6MHz時
12MHz時
○
マイコンの入力可能な
最大シリアルクロック
周波数
1.5MHz
AF220/AF210/AF120/AF110
の設定可能な最大シリアル
クロック周波数
1.5MHz
AF200の設定可能な最
大シリアルクロック周
波数
500kHz
フラッシュマイコンプログラマ システム構成 (横河ディジタルコンピュー
タ株式会社製)
表 17.1-2 フラッシュマイコンプログラマ システム構成(横河ディジタルコンピュー
タ株式会社製)
型 格
機 能
AF220/AC4P イーサネットインターフェイス内蔵モデル
/100V∼220V電源アダプタ
/100V∼220V電源アダプタ
本 AF210/AC4P スタンダードモデル
体 AF120/AC4P 単キー イーサネットインターフェイス内蔵モデル/100V∼220V電源アダプタ
AF110/AC4P 単キーモデル
/100V∼220V電源アダプタ
AZ221
ライタ専用
PC/AT用RS232Cケーブル
AZ210
標準ターゲットプローブ(a) 長さ;1m
FF201
富士通製 F2MC-16LX フラッシュマイコン用コントロールモジュール
AZ290
リモートコントローラ
/P2
2MB PC Card (Option)
FLASHメモリ容量 ∼128KB対応
/P4
4MB PC Card (Option)
FLASHメモリ容量 ∼512KB対応
問い合せ先;横河ディジタルコンピュータ株式会社
電話;042-333-6224
<注意事項>
AF200フラッシュマイコンプログラマにつきましては終息製品ですが,コントロールモジュール
FF201を用いることで対応可能です。シリアル書込み接続例に関しても,次項に示す接続例にて対
応可能です。
349
第17章 MB89F051シリアル書込み接続例
17.2
シリアル書込み時の接続例(ユーザ電源使用時)
ユーザシステムにて,MOD2,MOD1,MOD0=000に設定されているモード端子には,
AF220/AF210/AF120/AF110のTAUX3よりMOD1,MOD0=11が入力され,シリアル書込みモー
ドになります(シリアル書込みモード;MOD2,MOD1,MOD0=011)
。
■ シリアル書込み時の接続例(ユーザ電源使用時)
図 17.2-1に,シリアル書込み時の接続例(ユーザ電源使用時)を示します。
図 17.2-1 MB89F051シリアル書込み接続例(ユーザ電源使用時)
350
第17章 MB89F051シリアル書込み接続例
<注意事項>
8ビットシリアルI/OのSI1, SO1, SCK1端子の直流規格は3V対応のため,ユーザ電源使用時の電
源電圧は,3.3V±10%としてください。
SI1,SO1端子をユーザシステムでも使用する場合には,SCK1端子と同様下図の制
御回路が必要となります。(フラッシュマイコンプログラマの /TICS信号により,
シリアル書込み中はユーザ回路を切り離すことができます。)
図 17.2-2 制御回路
AF220/AF210/AF120/AF110との接続はユーザ電源がOFFの状態で行ってください。
351
第17章 MB89F051シリアル書込み接続例
17.3
フラッシュマイコンプログラマとの最小限の接続例
(ユーザ電源使用時)
シリアル書き込み時に,各端子(MOD1, MOD0)を図 17.3-1のように設定して頂け
れば,MOD1, MOD0とフラッシュマイコンプログラマとの接続は必要ありません。
■ フラッシュマイコンプログラマとの最小限の接続例(ユーザ電源使用時)
図 17.3-1に,フラッシュマイコンプログラマとの最小限の接続例(ユーザ電源
使用時)を示します。
図 17.3-1 MB89F051フラッシュマイコンプログラマとの最小限の接続例(ユーザ電源使用時)
352
第17章 MB89F051シリアル書込み接続例
<注意事項>
8ビットシリアルI/OのSI1, SO1, SCK1端子の直流規格は3V対応のため,ユーザ電源使用時の電
源電圧は,3.3V±10%としてください。
SI1, SO1, SCK1端子をユーザシステムでも使用する場合には,下図の制御回路が
必要となります。
(フラッシュマイコンプログラマの /TICS信号により,シリアル
書込み中はユーザ回路を切り離すことができます。
)
図 17.3-2 制御回路
AF220/AF210/AF120/AF110との接続はユーザ電源がOFFの状態で行ってください。
353
第17章 MB89F051シリアル書込み接続例
354
付録
ここでは,I/Oマップ,命令一覧表などを掲載します。
A I/Oマップ
B 命令概要
C MB89051シリーズの端子状態
355
付録
A
I/Oマップ
I/Oマップ
MB89051シリーズに内蔵された周辺機能の各レジスタは,付表 A-1に示すアドレス
が割り当てられています。
■ I/Oマップ
付表 A-1 I/Oマップ(続く)
アドレス
0000H
0001H
0002H
0003H
0004H
0005H
0006H
0007H
0008H
0009H
000AH
000BH
レジスタ略称
PDR0
DDR0
PDR1
DDR1
PDR2
000CH
PDR3/ USBP
000DH
DDR3/USBPC
000EH
000FH
0010H
0011H
0012H
0013H
∼
0015H
0016H
∼
0020H
0021H
0022H
0023H
0024H
0025H
0026H
0027H
0028H
0029H
002AH
002BH
002CH
002DH
002EH
356
DDR2
SYCC
STBC
WDTC
TBTC
PDR4
DDR4
PDR5
レジスタ名称
ポート0データレジスタ
ポート0方向レジスタ
ポート1データレジスタ
ポート1方向レジスタ
ポート2データレジスタ
予約
ポート2方向レジスタ
システムクロック制御レジスタ
スタンバイ制御レジスタ
ウォッチドック制御レジスタ
タイムベースタイマ制御レジスタ
空き領域
ポート3データレジスタ/
USB用プルアップレジスタ
ポート3方向レジスタ/USB用プルアップ制御
レジスタ
予約
空き領域
ポート4データレジスタ
ポート4方向レジスタ
ポート5データレジスタ
書込み/読出し
R/W
W
R/W
W
R/W
初期値
XXXXXXXXB
00000000B
XXXXXXXXB
00000000B
00000000B
R/W
R/W
R/W
R/W
R/W
00000000B
XXX11X00B
0001XXXXB
XXXXXXXX
00XXX000B
R/W
XXXXXXXXB
R/W
00000000B
R/W
R/W
R/W
XXXXXXXXB
00000000B
XXX11XXXB
R/W
R/W
R/W
R/W
R/W
11111111B
11111111B
11111111B
1111111XB
11111111B
R/W
R/W
R/W
W
W
R/W
R/W
00000000B
000X0000B
X000XXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXX00B
XXXXXXX0B
R,R/W
000X00X0B
予約
空き領域
PURR0
PURR1
PURR2
PURR3
PURR4
CNTR1
CNTR2
CNTR3
COMR1
COMR2
CKR
SCS
FMCS
ポート0プルアップオプション設定レジスタ
ポート1プルアップオプション設定レジスタ
ポート2プルアップオプション設定レジスタ
ポート3プルアップオプション設定レジスタ
ポート4プルアップオプション設定レジスタ
予約
PWM制御レジスタ1
PWM制御レジスタ2
PWM制御レジスタ3
PWMコンペアレジスタ1
PWMコンペアレジスタ2
クロック出力制御レジスタ
シリアルクロック切替えレジスタ
フラッシュメモリコントロールステータスレジスタ
(フラッシュメモリ搭載品のみ)
A I/Oマップ
付表 A-1 I/Oマップ(続く)
アドレス
002FH
0030H
0031H
レジスタ略称
SMC1
SMC2
SSD
0032H
SIDR/SODR
0033H
0034H
0035H
0036H
0037H
0038H
0039H
003AH
003BH
003CH
003DH
003EH,
003FH
0040H
0041H
0042H
0043H
0044H
0045H
0046H
0047H
0048H,0049H
004AH
004BH
004CH,
004DH
004EH
004FH
0050H
0051H
0052H
0053H
0054H
0055H
0056H
0057H
0058H
0059H
005AH
005BH
005CH
005DH
005EH
005FH
SRC
IBSR
IBCR
ICCR
IADR
IDAR
SMR1
SDR1
EIE
EIF
HMDR
HDSR1
HDSR2
HDSR3
HSTR
OCCR
DADR
SMR2
SDR2
HDSR4
UMDR
DBAR
TDCR0
TDCR1
TDCR2
TDCR3
UCTR
USTR1
USTR2
UMSKR
UFRMR1
UFRMR2
EPER
EPBR0
レジスタ名称
シリアルモード制御レジスタ1
シリアルモード制御レジスタ2
シリアルステータス&データレジスタ
シリアルインプット/シリアルアウトプット
データレジスタ
シリアルレート制御レジスタ
I2Cバスステータスレジスタ
I2Cバス制御レジスタ
I2Cクロック制御レジスタ
I2Cアドレスレジスタ
I2Cデータレジスタ
空き領域
シリアルモードレジスタ1
シリアルデータレジスタ1
外部割込み制御レジスタ
外部割込みフラグレジスタ
空き領域
USBハブモードレジスタ
ハブディスクリプタレジスタ1
ハブディスクリプタレジスタ2
ハブディスクリプタレジスタ3
ハブステータスレジスタ
オーバカレントレジスタ
ディスクリプタROMアドレスレジスタ
予約
空き領域
シリアルモードレジスタ2
シリアルデータレジスタ2
空き領域
ハブディスクリプタレジスタ4
空き領域
USBリセットモードレジスタ
DMAベースアドレスレジスタ
転送データカウントレジスタ0
転送データカウントレジスタ1
予約
転送データカウントレジスタ2
予約
転送データカウントレジスタ3
USBコントロールレジスタ
USBステータスレジスタ1
USBステータスレジスタ2
USB割込みマスクレジスタ
USBフレームステータスレジスタ1
USBフレームステータスレジスタ2
USBエンドポイントイネーブルレジスタ
エンドポイント0セットアップレジスタ0
書込み/読出し
R/W
R/W
R
初期値
00000000B
00000000B
00001XXXB
R/W
XXXXXXXXB
R/W
R
R/W
R/W
R/W
R/W
XXXXXXXXB
00000000B
00011000B
0X0XXXXXB
XXXXXXXXB
XXXXXXXXB
R/W
R/W
R/W
R/W
00000000B
XXXXXXXXB
00000000B
XXXXXXX0B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
10XXXXX0B
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
00000000B
0XXX0000B
XXXXXXXXB
R/W
R/W
00000000B
XXXXXXXXB
R/W
00000101B
R/W
R/W
R/W
R/W
1000XX00B
XXXXXXXXB
X0000000B
X0000000B
R/W
X0000000B
R/W
R/W
R/W
R
R/W
R
R
R/W
R/W
X0000000B
00000000B
00000000B
XXXXXX00B
00000000B
XXXXXXXXB
XXXXXXXXB
XXXX0001B
X0000000B
357
付録
付表 A-1 I/Oマップ(続き)
アドレス
0060H
0061H
0062H
0063H
0064H
0065H
0066H
0067H
レジスタ略称
EPBR11
EPBR12
EPBR21
EPBR22
EPBR31
EPBR32
レジスタ名称
エンドポイント1セットアップレジスタ11
エンドポイント1セットアップレジスタ12
エンドポイント2セットアップレジスタ21
エンドポイント2セットアップレジスタ22
エンドポイント3セットアップレジスタ31
エンドポイント3セットアップレジスタ32
予約
ILR1
ILR2
ILR3
ILR4
予約
空き領域
割込みレベル設定レジスタ1
割込みレベル設定レジスタ2
割込みレベル設定レジスタ3
割込みレベル設定レジスタ4
予約
■ 書込み/読込みについての説明
R/W:リード・ライト可
R:リードオンリー
W:ライトオンリー
■ 初期値についての説明
0:このビットの初期値は"0"です。
1:このビットの初期値は"1"です。
X:このビットの初期値は不定です。
<注意事項>
予約,空き領域は使用しないでください。
358
初期値
XX0000XXB
X0000000B
XX0000XXB
X0000000B
XX0000XXB
X0000000B
W
W
W
W
11111111B
11111111B
11111111B
XXXXXX11B
空き領域
∼
0078H
0079H
007AH
007BH
007CH
007DH
007EH
007FH
書込み/読出し
R/W
R/W
R/W
R/W
R/W
R/W
B 命令概要
B
命令概要
F2MC-8Lに使用している命令について説明します。
■ F2MC-8Lの命令の概要
F2MC-8Lには,140種類の1バイト機械命令(マップとしては256バイト)があり,
命令とそれに続くオペランドによって命令コードを構成します。
付図 B-1に,命令コードと命令マップの対応について示します。
付図 B-1 命令コードと命令マップの対応
命令は転送系,演算系,分岐系,その他の四つに分類されます。
アドレス指定には各種の方法があり,命令の選択とオペランド指定により10種類
のアドレッシングを選択できます。
ビット操作命令を備えており,リードモディファイライト動作が可能です。
特殊な動作を指示する命令があります。
359
付録
■ 命令の表示記号の説明
この付録Bの命令コードの説明で使用している記号の説明を示します。
付表 B-1 命令一覧表の記号の説明
表 記
Dir
Off
Ext
#vct
#d8
#d16
dir:b
Rel
@
A
AH
AL
T
TH
TL
IX
EP
PC
SP
PS
Dr
CCR
RP
Ri
×
(×)
((×))
360
意味
ダイレクトアドレス(8ビット長)
オフセット(8ビット長)
エクステンドアドレス(16ビット長)
ベクトルテーブル番号(3ビット長)
イミディエートデータ(8ビット長)
イミディエートデータ(16ビット長)
ビットダイレクトアドレス(8ビット長:3ビット長)
分岐相対アドレス(8ビット長)
レジスタ間接(例:@A,@IX,@EP)
アキュムレータ(使用する命令によって8ビット長か16ビット長かが決まる)
アキュムレータの上位8ビット(8ビット長)
アキュムレータの下位8ビット(8ビット長)
テンポラリアキュムレータ
(使用する命令によって8ビット長か16ビット長かが決まる)
テンポラリアキュムレータの上位8ビット(8ビット長)
テンポラリアキュムレータの下位8ビット(8ビット長)
インデックスレジスタ(16ビット長)
エクストラポインタ(16ビット長)
プログラムカウンタ(16ビット長)
スタックポインタ(16ビット長)
プログラムステータス(16ビット長)
アキュムレータあるいはインデックスレジスタのいずれか(16ビット長)
コンディションコードレジスタ(8ビット長)
レジスタバンクポインタ(5ビット長)
汎用レジスタ(8ビット長,i=0∼7)
×が即値データそのものであることを示す
(使用する命令によって8ビット長か16ビット長かが決まる)
×の中身がアクセスの対象であることを示す
(使用する命令によって8ビット長か16ビット長かが決まる)
×の中身が示すアドレスがアクセスの対象であることを示す
(使用する命令によって8ビット長か16ビット長かが決まる)
B 命令概要
B.1
アドレッシング
F2MC-8Lには,次の10種類のアドレッシングがあります。
・ダイレクトアドレッシング
・エクステンドアドレッシング
・ビットダイレクトアドレッシング
・インデックスアドレッシング
・ポインタアドレッシング
・汎用レジスタアドレッシング
・イミディエートアドレッシング
・ベクトルアドレッシング
・相対アドレッシング
・インヘレントアドレッシング
■ アドレッシングの説明
○
ダイレクトアドレッシング
命令表の中で"dir"と示したアドレッシングで,"0000H"∼"00FFH"の領域をア
クセスするときに使用します。このアドレッシングでは,アドレスの上位1バイ
トは"00H",下位1バイトはオペランドで指定します。
付図 B-2に,例を示します。
付図 B-2 ダイレクトアドレッシング例
○
エクステンドアドレッシング
命令表の中で"ext"と示したアドレッシングで,64Kバイト全体の領域をアク
セスするときに使用します。このアドレッシングでは,第1オペランドでアドレ
スの上位1バイトを,第2オペランドでアドレスの下位1バイトを指定します。
付図 B-3に,例を示します。
付図 B-3 エクステンドアドレッシング例
361
付録
○
ビットダイレクトアドレッシング
命令表の中で"dir:b"と示したアドレッシングで,"0000H"∼"00FFH"の領域を
ビット単位でアクセスするときに使用します。このアドレッシングでは,アド
レスの上位1バイトは"00H",下位1バイトはオペランドで指定し,指定したアド
レス内のビットの位置は,オペコードの下位3ビットの値で指定します。
付図 B-4に,例を示します。
付図 B-4 ビットダイレクトアドレッシング例
○
インデックスアドレッシング
命令表の中で"@IX+off"と示したアドレッシングで,64Kバイト全体の領域を
アクセスするときに使用します。このアドレッシングでは,第1オペランドの内
容を符号拡張した上でIX(インデックスレジスタ)に加算してその結果をアド
レスとします。
付図 B-5に,例を示します。
付図 B-5 インデックスアドレッシング例
○
ポインタアドレッシング
命令表の中で"@EP"と示したアドレッシングで,64Kバイト全体の領域をアク
セスするときに使用します。このアドレッシングでは,EP(エクストラポイン
タ)の内容をアドレスとします。
付図 B-6に,例を示します。
付図 B-6 ポインタアドレッシング例
362
B 命令概要
○
汎用レジスタアドレッシング
命令表の中で"Ri"と示したアドレッシングで,汎用レジスタ領域のレジスタ
バンクをアクセスするときに使用します。このアドレッシングでは,アドレス
の上位1バイトは"01"に固定し,下位1バイトをRP(レジスタバンクポインタ)
の内容とオペコードの下位3ビットから作成し,このアドレスに対してアクセス
を行います。
付図 B-7に,例を示します。
付図 B-7 汎用レジスタアドレッシング例
○
イミディエートアドレッシング
命令表の中で"#d8"と示したアドレッシングで,即値データを必要とするとき
に使用します。このアドレッシングでは,オペランドがそのまま即値データに
なります。バイト/ワードの指定はオペコードにより決まります。
付図 B-8に,例を示します。
付図 B-8 イミディエートアドレッシング例
○
ベクトルアドレッシング
命令表の中で"vct"と示したアドレッシングで,テーブル内に登録したサブ
ルーチンアドレスに分岐するときに使用します。このアドレッシングでは,オ
ペコード内に"vct"の情報を含み,付表 B-2に示す対応でテーブルのアドレスを
作成します。
付表 B-2 "vct"に対応したベクトルテーブルアドレス
#vct
0
1
2
3
4
5
6
7
ベクトルテーブルアドレス(ジャンプ先上位アドレス:下位アドレス)
FFCOH:FFC1H
FFC2H:FFC3H
FFC4H:FFC5H
FFC6H:FFC7H
FFC8H:FFC9H
FFCAH:FFCBH
FFCCH:FFCDH
FFCEH:FFCFH
363
付録
付図 B-9に,例を示します。
付図 B-9 ベクトルアドレッシング例
○
相対アドレッシング
命令表の中で"rel"と示したアドレッシングで,PC(プログラムカウンタ)の
前後128バイトの領域に分岐するときに使用します。このアドレッシングでは,
オペランドの内容をPCに符号付きで加算し,その結果をPCに格納します。
付図 B-10に,例を示します。
付図 B-10 相対アドレッシング例
この例では,BNEのオペコードが格納されているアドレスへジャンプするので,
結果として無限ループになります。
○
インヘレントアドレッシング
命令表の中でオペランドを持たないアドレッシングで,オペコードで決まる
動作を行うときに使用します。このアドレッシングでは,動作が命令ごとに異
なります。
付図 B-11に,例を示します。
付図 B-11 インヘレントアドレッシング例
364
B 命令概要
B.2
特殊な命令について
アドレッシング以外の特殊な命令について説明します。
■ 特殊な命令について
○
JMP
@A
この命令は,A(アキュムレータ)の内容をアドレスとしてPC(プログラムカ
ウンタ)へ分岐するというものです。N個のジャンプ先をテーブル上に並べてお
き,その内容のいずれか一つを選択してAに転送します。この命令を実行するこ
とでN分岐処理が行えます。
付図 B-12に,概要図を示します。
付図 B-12 JMP @A
○
MOVW
A, PC
この命令は,"JMP @A"と反対の動作を行うものです。すなわち,PCの内容をA
に格納するものです。メインルーチン内でこの命令を実行しておき,特定のサ
ブルーチンを呼び出すような設定において,そのサブルーチン内でAの内容が決
められた値になっていることを確認することができます。予想できない部分か
らの分岐でないことが識別でき,暴走判断に使用することができます。
付図 B-13に,概要図を示します。
付図 B-13 MOVW A, PC
この命令を実行したときのAの内容は,この命令のオペコードが格納されてい
るアドレスではなく,次の命令が格納されているアドレスと同じ値になります。
したがって,付図 B-13ではAに格納した値"1234H"は「MOVW A, PC」の次のオ
ペコードが格納されているアドレスに一致します。
365
付録
○
MULU A
この命令は,AL(アキュムレータの下位8ビット)とTL(テンポラリアキュム
レータの下位8ビット)を符号なしで掛け合わせ,16ビット長の結果をAに格納
します。T(テンポラリアキュムレータ)の内容は変化しません。演算に関して,
実行前のAH(アキュムレータの8上位ビット),TH(テンポラリアキュムレータ
の上位8ビット)の内容は使用していません。フラグは変化しないので,乗算の
結果によって分岐するときには注意が必要です。
付図 B-14に,概要図を示します。
付図 B-14 MULU A
○
DIVU
A
この命令は,Tの16ビットをALの8ビットで符号なしデータとして割り,結果
を8ビットとしてALに,余りも8ビットとしてTLに格納するものです。AH,THと
もに"0"となります。演算に関して,実行前のAHの内容は使用していません。結
果が8ビットを超えるようなデータでは,得られた結果は保証しません。また,
結果が8ビットを超えたことを示さないので,このような恐れがあるデータでは
あらかじめ判別を行ってから使用してください。
フラグは変化しないので,除算の結果によって分岐するときには注意が必要
です。
付図 B-15に,概要図を示します。
付図 B-15 DIVU A
366
B 命令概要
XCHW
A, PC
この命令は,AとPCの内容を交換するもので,結果として実行前のAの内容が
示す番地へ分岐します。実行後のAは,「XCHW A, PC」のオペコードが格納さ
れているアドレスの次のアドレス値になります。この命令は,特にメインルー
チンでテーブルを指定し,サブルーチンで使用するときに有効です。
付図 B-16に,概要図を示します。
付図 B-16 XCHW A, PC
• • •
この命令を実行したときのAの内容は,この命令のオペコードが格納されてい
るアドレスではなく,次の命令が格納されているアドレスと同じ値になります。
したがって,付図 B-16ではAに格納した値"1235H"は「XCHW A, PC」の次のオ
ペコードが格納されているアドレスに一致します。そのため,"1234H"ではなく
"1235H"となっています。
付図 B-17に,アセンブラ表記例を示します。
• • •
○
付図 B-17 XCHW A, PC の使用例
367
付録
○
CALLV
#vct
テーブル内に登録したサブルーチンアドレスに分岐するときに使用します。
リターンアドレス(PCの内容)をSP(スタックポインタ)が示すアドレスへ退
避したのち,ベクトルアドレッシングによってベクトルテーブルに記載したア
ドレスへ分岐します。1バイトの命令ですので,頻繁に使用するサブルーチンに
対してこの命令を使用することで,プログラム全体のサイズを縮小することが
できます。
付図 B-18に,概要図を示します。
付図 B-18 CALLV #3の実行例
この命令を実行したときにスタック領域に退避されるPCの内容は,この命令
のオペコードが格納されているアドレスではなく,次の命令が格納されている
アドレスと同じ値になります。したがって,付図 B-18ではスタック(1232H,
1233H)に退避された値"5679H"は「CALLV #Vct」の次のオペコードが格納されて
いるアドレス(リターンアドレス)に一致します。
368
B 命令概要
B.3
ビット操作命令(SETB
ビット操作命令(SETB,
SETB,CLRB)
CLRB)
周辺機能のレジスタには,ビット操作命令に対して,通常の読出し動作と異なる動
作をするビットがあります。
■ リードモディファイライト動作
ビット操作命令では,レジスタまたはRAMの指定ビットのみを"1"にセット(SETB)
したり,"0"にクリア(CLRB)したりできます。しかし,CPUは8ビット単位でデー
タを取り扱うため,実際の動作としては,8ビットのデータを読み出し,指定され
たビットを変更し,もとのアドレスに書き戻す,という一連の動作(リードモディ
ファイライト動作)を行います。
付表 B-3に,ビット操作命令時のバス動作を示します。
付表 B-3 ビット操作命令時のバス動作
CODE
A0∼A7
MNEMONIC
CLRB dir:b
A8∼AF
SETB dir:b
∼
4
サイクル
1
2
3
4
アドレスバス
N+1
Dirアドレス
dirアドレス
N+2
データバス
Dir
データ
データ
次の命令
RD
0
0
1
0
WR
1
1
0
1
RMW
0
1
0
0
■ ビット操作命令実行時の読出し先
一部のI/Oポートや割込み要求フラグビットでは,通常リードによる読出し先と,
リードモディファイライト時の読出し先が異なります。
○
I/Oポート(ビット操作時)
I/Oポートの中には,通常リード時はI/O端子の値が読み出され,ビット操作
時は出力ラッチの値が読み出されるものがあります。これは,端子の入出力方
向や端子の状態にかかわらず,出力ラッチのほかのビットの不用意な変化を防
止するためです。
○
割込み要求フラグビット(ビット操作時)
割込み要求フラグビットは,通常リード時は割込み要求の確認用フラグビッ
トとして機能しますが,ビット操作時は常に"1"が読み出されます。これは,ほ
かのビットをビット操作したときに,割込み要求フラグビットへの"0"の書込み
によって,フラグが不用意にクリアされるのを防止するためです。
369
付録
F2MCMC-8L命令一覧表
8L命令一覧表
B.4
付表 B-4∼付表 B-7にF2MC-8Lで使用している命令の一覧を,付表 B-8に一覧表の
項目の説明を示します。
■ 転送系命令
付表 B-4 転送系の命令一覧
№
1
2
3
4
5
MOV
MOV
MOV
MOV
MOV
MNEMONIC
dir,A
@IX+off,A
ext,A
@EP,A
Ri,A
∼
3
4
4
3
3
#
2
2
3
1
1
(dir)←(A)
((IX)+off)←(A)
(ext)←(A)
((EP))←(A)
(Ri)←(A)
TL
−
−
−
−
−
TH
−
−
−
−
−
AH
−
−
−
−
−
N
−
−
−
−
−
Z
−
−
−
−
−
V
−
−
−
−
−
C
−
−
−
−
−
OP CODE
45
46
61
47
48∼ 4F
6
7
8
9
10
MOV
MOV
MOV
MOV
MOV
A,#d8
A,dir
A,@IX +off
A,ext
A,@A
2
3
4
4
3
2
2
2
3
1
(A)←d8
(A)←(dir)
(A)←((IX)+off)
(A)←(ext)
(A)←((A))
AL
AL
AL
AL
AL
−
−
−
−
−
−
−
−
−
−
+
+
+
+
+
+
+
+
+
+
−
−
−
−
−
−
−
−
−
−
04
05
06
60
92
11
12
13
14
15
MOV
MOV
MOV
MOV
MOV
A,@EP
A,Ri
dir,#d8
@IX+off,#d8
@EP,#d8
3
3
4
5
4
1
1
3
3
2
(A)←((EP))
(A) ← ( Ri)
(dir)←d8
((IX)+off)←d8
((EP))←d8
AL
AL
−
−
−
−
−
−
−
−
−
−
−
−
−
+
+
−
−
−
+
+
−
−
−
−
−
−
−
−
−
−
−
−
−
07
08∼ 0F
85
86
87
16
17
18
19
20
MOV Ri,#d8
MOVW dir,A
MOVW @IX+off ,A
MOVW ext,A
MOVW @EP,A
4
4
5
5
4
2
2
2
3
1
(Ri)←d8
(dir)←(AH), (dir+1) ← ( AL)
((IX)+off )←(AH),((IX)+off+1)←(AL)
(ext)←(AH), (ext+1) ← ( AL)
((EP))←(AH), ((EP)+1)←(AL)
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
88∼ 8F
D5
D6
D4
D7
21
22
23
24
25
MOVW
MOVW
MOVW
MOVW
MOVW
EP,A
A,#d16
A,dir
A,@IX+off
A,ext
2
3
4
5
5
1
3
2
2
3
(EP)←(A)
(A)←d16
(AH)←(dir), (AL)←(dir+1)
(AH)←((IX)+off), (AL)←((IX)+off+1)
(AH)←(ext), (AL)←(ext+1)
−
AL
AL
AL
AL
−
AH
AH
AH
AH
−
dH
dH
dH
dH
−
+
+
+
+
− − −
+ − −
+ − −
+ − −
+ − −
E3
E4
C5
C6
C4
26
27
28
29
30
MOVW
MOVW
MOVW
MOVW
MOVW
A,@A
A,@EP
A,EP
EP,#d16
IX,A
4
4
2
3
2
1
1
1
3
1
(AH)←((A)), (AL)←((A)+1)
(AH)←((EP)), (AL)←((EP)+1)
(A) ← ( EP)
(EP)←d16
(IX)←(A)
AL
AL
−
−
−
AH
AH
−
−
−
dH
dH
dH
−
−
+
+
−
−
−
+
+
−
−
−
93
C7
F3
E7
E2
31
32
33
34
35
MOVW A,IX
MOVW SP,A
MOVW A,SP
MOV @A,T
MOVW @A,T
2
2
2
3
4
1
1
1
1
1
(A) ← ( IX)
(SP)←(A)
(A) ← ( SP) ((A))←(T)
((A))←(TH),((A)+1)←(TL)
−
−
−
−
−
−
−
−
−
−
dH
−
dH
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
F2
E1
F1
82
83
36
37
38
39
40
MOVW
MOVW
MOVW
MOVW
SWAP
3
2
2
3
2
3
1
1
3
1
(IX)←d16
(A) ← ( PS)
(PS)←(A)
(SP)←d16
(AH)←→(AL)
−
−
−
−
−
−
−
−
−
−
−
dH
−
−
AL
−
−
+
−
−
−
−
+
−
−
−
−
+
−
−
−
−
+
−
−
E6
70
71
E5
10
41
42
43
44
45
SETB dir:b
CLRB dir:b
XCH A,T
XCHW A,T
XCHW A,EP
4
4
2
3
3
2
2
1
1
1
(dir):b ←1
(dir):b ←0
(AL)←→(TL)
(A)←→(T)
(A)←→(EP)
−
−
AL
AL
−
−
−
−
AH
−
−
−
−
dH
dH
−
−
−
−
−
− −
− −
− −
− −
− −
−
−
−
−
−
A8∼ AF
A0∼ A7
42
43
F7
3
3
2
1
1
1
(A)←→(IX)
(A)←→(SP)
(A) ← ( PC)
−
−
−
−
−
−
dH
dH
dH
−
−
−
−
−
−
−
−
−
F6
F5
F0
46 XCHW
47 XCHW
48 MOVW
370
IX,#d16
A,PS
PS,A
SP,#d16
A,IX
A,SP
A,PC
動 作
− −
− −
− −
− −
− −
−
−
−
B 命令概要
<注意事項>
Aへのバイト転送動作時のTへの自動転送は,TL←ALとなります。
複数オペランド命令でのオペランドは,MNEMONICで表示された順に格納されるものとします。
371
付録
■ 演算系命令
付表 B-5 演算系の命令一覧(続く)
№
1
2
3
4
5
ADDC
ADDC
ADDC
ADDC
ADDC
MNEMONIC
A,Ri
A,#d8
A,dir
A,@IX+off
A,@EP
∼
3
2
3
4
3
#
1
2
2
2
1
動 作
(A)←(A)+(Ri)+C
(A)←(A)+d8+C
(A)←(A)+(dir)+C
(A)←(A)+((IX)+off)+C
(A)←(A)+((EP))+C
TL
−
−
−
−
−
TH
−
−
−
−
−
AH
−
−
−
−
−
N
+
+
+
+
+
Z
+
+
+
+
+
V
+
+
+
+
+
C
+
+
+
+
+
OP CODE
28∼2F
24
25
26
27
6
7
8
9
10
ADDCW
ADDC
SUBC
SUBC
SUBC
A
A
A,Ri
A,#d8
A,dir
3
2
3
2
3
1
1
1
2
2
(A)←(A)+(T)+C
(AL)←(AL)+(TL)+C
(A)←(A)−(Ri)−C
(A)←(A)−d8−C
(A)←(A)−(dir)−C
−
−
−
−
−
−
−
−
−
−
dH
−
−
−
−
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
23
22
38∼3F
34
35
11
12
13
14
15
SUBC A,@IX+off
SUBC A,@EP
SUBCW A
SUBC A
INC Ri
4
3
3
2
4
2
1
1
1
1
(A)←(A)−((IX)+off)−C
(A)←(A)−((EP))−C
(A)←(T)−(A)−C
(AL)←(TL)−(AL)−C
(Ri)←(Ri)+1
−
−
−
−
−
−
−
−
−
−
−
−
dH
−
−
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
−
36
37
33
32
C8∼CF
16
17
18
19
20
INCW EP
INCW IX
INCW A
DEC Ri
DECW EP
3
3
3
4
3
1
1
1
1
1
(EP)←(EP)+1
(IX)←(IX)+1
(A)←(A)+1
(Ri)←(Ri)−1
(EP)←(EP)−1
−
−
−
−
−
−
−
−
−
−
−
−
dH
−
−
−
−
+
+
−
−
−
+
+
−
−
−
−
+
−
−
−
−
−
−
C3
C2
C0
D8∼DF
D3
21
22
23
24
25
DECW
DECW
MULU
DIVU
ANDW
3
3
19
21
3
1
1
1
1
1
(IX)←(IX)−1
(A)←(A)−1
(A)←(AL)×(TL)
(A)←(T)/(AL),MOD →(T)
(A)←(A)∧(T)
−
−
−
dL
−
−
−
−
00
−
−
dH
dH
00
dH
−
+
−
−
+
−
+
−
−
+
−
−
−
−
R
−
−
−
−
−
D2
D0
01
11
63
26
27
28
29
30
ORW A
XORW A
CMP A
CMPW A
RORC A
3
3
2
3
2
1
1
1
1
1
(A)←(A)∨(T)
(A)←(A)∀(T)
(TL)−(AL)
(T)−(A)
C→A
−
−
−
−
−
−
−
−
−
−
dH
dH
−
−
−
+
+
+
+
+
+
+
+
+
+
R
R
+
+
−
−
−
+
+
+
73
53
12
13
03
2
1
C←A
−
−
−
+
+
−
+
02
31 ROLC
IX
A
A
A
A
A
32
33
34
35
CMP
CMP
CMP
CMP
A,#d8
A,dir
A,@EP
A,@IX+off
2
3
3
4
2
2
1
2
(A)− d8
(A)−(dir)
(A)−((EP))
(A)−((IX)+off)
−
−
−
−
−
−
−
−
−
−
−
−
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
14
15
17
16
36
37
38
39
40
CMP
DAA
DAS
XOR
XOR
A,Ri
A
A,#d8
3
2
2
2
2
1
1
1
1
2
(A)−(Ri)
decimal adjust for addition
decimal adjust for subtraction
(A)←(AL)∀(TL)
(A)←(AL)∀ d8
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
+
+
+
+
+
+
+
+
+
+
+
+
+
R
R
+
+
+
−
−
18∼1F
84
94
52
54
41
42
43
44
45
XOR
XOR
XOR
XOR
AND
A,dir
A,@EP
A,@IX+off
A,Ri
A
3
3
4
3
2
2
1
2
1
1
(A)←(AL)∀(dir)
(A)←(AL)∀((EP))
(A)←(AL)∀((IX)+off)
(A)←(AL)∀(Ri)
(A)←(AL)∧(TL)
−
−
−
−
−
− −
− −
− −
− −
− −
+
+
+
+
+
+
+
+
+
+
R
R
R
R
R
−
−
−
−
−
55
57
56
58∼5F
62
46
47
48
49
50
AND
AND
AND
AND
AND
A,#d8
A,dir
A,@EP
A,@IX+off
A,Ri
2
3
3
4
3
2
2
1
2
1
(A)←(AL)∧ d8
(A)←(AL)∧(dir)
(A)←(AL)∧((EP))
(A)←(AL)∧((IX)+off)
(A)←(AL)∧(Ri)
−
−
−
−
−
+
+
+
+
+
+
+
+
+
+
R
R
R
R
R
−
−
−
−
−
64
65
67
66
68∼6F
51
52
53
54
55
OR
OR
OR
OR
OR
2
2
3
3
4
1
2
2
1
2
(A)←(AL)∨(TL)
(A)←(AL)∨ d8
(A)←(AL)∨(dir)
(A)←(AL)∨((EP))
(A)←(AL)∨((IX)+off)
372
A
A,#d8
A,dir
A,@EP
A,@IX+off
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
+
+
+
+
+
+
+
+
+
+
R
R
R
R
R
−
−
−
−
−
72
74
75
77
76
B 命令概要
付表 B-5 演算系の命令一覧(続き)
№
56
57
58
59
60
MNEMONIC
OR A,Ri
CMP dir ,#d8
CMP @EP,#d8
CMP @IX+off,#d8
CMP Ri,#d8
61 INCW
62 DECW
SP
SP
∼
3
5
4
5
4
#
1
3
2
3
2
動 作
(A)←(AL)∨(Ri)
(dir)−d8
((EP))−d8
((IX)+off)−d8
(Ri)−d8
TL
−
−
−
−
−
TH
−
−
−
−
−
AH
−
−
−
−
−
N
+
+
+
+
+
Z
+
+
+
+
+
V
R
+
+
+
+
C
−
+
+
+
+
OP CODE
78∼7F
95
97
96
98∼9F
3
3
1
1
(SP)←(SP)+1
(SP)←(SP)−1
−
−
−
−
−
−
−
−
−
−
−
−
−
−
C1
D1
TL
−
−
−
−
−
TH
−
−
−
−
−
AH
−
−
−
−
−
N
−
−
−
−
−
Z
−
−
−
−
−
V
−
−
−
−
−
C
−
−
−
−
−
OP CODE
FD
FC
F9
F8
FB
■ 分岐系命令
付表 B-6 分岐系の命令一覧
№
1
2
3
4
5
MNEMONIC
BZ/BEQ rel
BNZ/BNE rel
BC/BLO rel
BNC/BHS rel
BN rel
∼
3
3
3
3
3
#
2
2
2
2
2
if
if
if
if
if
6
7
8
9
10
BP rel
BLT rel
BGE rel
BBC dir:b,rel
BBS dir:b,rel
3
3
3
5
5
2
2
2
3
3
if N=0 then PC←PC+rel
if V∀N=1 then PC←PC+rel
if V∀N=0 then PC←PC+rel
if(dir:b)=0 then PC←PC+rel
if(dir:b)=1 then PC←PC+rel
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
+
+
−
−
−
−
−
−
−
−
−
−
FA
FF
FE
B0 ∼B7
B8 ∼BF
11
12
13
14
15
JMP @A
JMP ext
CALLV #vct
CALL ext
XCHW A,PC
2
3
6
6
3
1
3
1
3
1
(PC)←(A)
(PC)← ext
vector call
subroutine call
(PC)←(A),(A)←(PC)+1
−
−
−
−
−
−
−
−
−
−
−
−
−
−
dH
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
E0
21
E8∼EF
31
F4
4
6
1
1
return from subroutine
return from interrupt
−
−
−
−
−
−
−
− − −
restore
20
30
TL
−
−
−
−
−
TH
−
−
−
−
−
AH
−
dH
−
−
−
N
−
−
−
−
−
Z
−
−
−
−
−
16 RET
17 RETI
Z=1
Z=0
C=1
C=0
N=1
then
then
then
then
then
動 作
PC←PC+rel
PC←PC+rel
PC←PC+rel
PC←PC+rel
PC←PC+rel
■ その他命令
付表 B-7 その他の命令一覧
№
1
2
3
4
5
MNEMONIC
PUSHW A
POPW A
PUSHW IX
POPW IX
NOP
∼
4
4
4
4
1
#
1
1
1
1
1
6
7
8
9
CLRC
SETC
CLRI
SETI
1
1
1
1
1
1
1
1
動 作
V
−
−
−
−
−
C
−
−
−
−
−
OP CODE
40
50
41
51
00
− − − − − − R
− − − − − − S
− − − − − − −
− − − − − − −
81
91
80
90
373
付録
■ 命令一覧表の項目の説明
付表 B-8 命令一覧表の項目の説明
項目
MNEMONIC
説明
命令のアセンブル記述を表します。
∼
命令のサイクル数(インストラクションサイクル数)を示します。
#
命令のバイト数を示します。
動作
命令の動作を示します。
TL,TH,AHの各命令実行時の内容の変化(AからTへの自動転送)を示します。
欄内の記号は以下のものを,それぞれ示します。
TL,TH,AH
・ − は変化なし
・ dHは動作に記述したデータの上位8ビット
・ ALとAHはその命令実行直前のALとAHの内容になること
・ 00は00になること
N,Z,V,C
それぞれに対応するフラグが変化する命令を示します。
この欄に+が記載してある命令は対応するフラグを変化させます。
命令のコードを示します。該当命令が複数のコードを占める場合は,
OP CODE
次のような記載規約に則っています。
【例】 48∼4F ← これは48,49,…… 4Fを示します。
374
RETI
PUSHW
dir : 2
CLRB
BBC
dir : 2, rel
BBC
INCW
IX
DECW
IX
MOVW
IX, A
MOVW
A, IX
MOVW
JMP
DECW
INCW
A, PC
@A
dir : 0, rel A A
MOVW
MOVW
DECW
INCW
BBC
CLRB
A, SP
SP, A
SP
SP
dir : 1 dir : 1, rel
MOVW
MOVW
DECW
INCW
BBC
CLRB
dir : 0
CLRB
MOV
MOV
MOV
MOV
MOV
MOV
A, R7
A, R6
A, R5
A, R4
A, R3
A, R2
A, R1
CMP
CMP
CMP
CMP
CMP
CMP
CMP
A, R7
A, R6
A, R5
A, R4
A, R3
A, R2
A, R1
A, R0
A, R7
ADDC
A, R6
ADDC
A, R5
ADDC
A, R4
ADDC
A, R3
ADDC
A, R2
ADDC
A, R1
ADDC
A, R0
A, R7
SUBC
A, R6
SUBC
A, R5
SUBC
A, R4
SUBC
A, R3
SUBC
A, R2
SUBC
A, R1
SUBC
MOV
MOV
MOV
MOV
MOV
MOV
MOV
R7, A
R6, A
R5, A
R4, A
R3, A
R2, A
R1, A
R0, A
A, R0
A, R0
MOV
A, T
A A A A
SUBC
ADDC
CMP
MOV
A, #d8
A, #d8
A, #d8
A, #d8
XOR
XOR
XOR
XOR
XOR
XOR
XOR
A, R7
A, R6
A, R5
A, R4
A, R3
A, R2
A, R1
A, R0
AND
AND
AND
AND
AND
AND
AND
A, R7
A, R6
A, R5
A, R4
A, R3
A, R2
A, R1
A, R0
OR
OR
OR
OR
OR
OR
OR
A, R7
A, R6
A, R5
A, R4
A, R3
A, R2
A, R1
A, R0
R7, #d8
MOV
R6, #d8
MOV
R5, #d8
MOV
R4, #d8
MOV
R3, #d8
MOV
R2, #d8
MOV
R1, #d8
MOV
R0, #d8
R7, #d8
CMP
R6, #d8
CMP
R5, #d8
CMP
R4, #d8
CMP
R3, #d8
CMP
R2, #d8
CMP
R1, #d8
CMP
R0, #d8
SETB
SETB
SETB
SETB
SETB
SETB
SETB
dir : 7
dir : 6
dir : 5
dir : 4
dir : 3
dir : 2
dir : 1
dir : 0
dir : 7, rel
BBS
dir : 6, rel
BBS
dir : 5, rel
BBS
dir : 4, rel
BBS
dir : 3, rel
BBS
dir : 2, rel
BBS
dir : 1, rel
BBS
dir : 0, rel
INC
INC
INC
INC
INC
INC
INC
R7
R6
R5
R4
R3
R2
R1
R0
DEC
DEC
DEC
DEC
DEC
DEC
DEC
R7
R6
R5
R4
R3
R2
R1
R0
CALLV
CALLV
CALLV
CALLV
CALLV
CALLV
CALLV
#7
#6
#5
#4
#3
#2
#1
#0
BLT
BGE
BZ
BNZ
BN
BP
BC
rel
rel
rel
rel
rel
rel
rel
rel
A, EP
EP, A
EP
EP
dir : 3 dir : 3, rel
A, @A
@A, T
A A A
XCHW
MOVW
MOVW
MOVW
BBC
CLRB
DAS
DAA
OR
AND
XOR
A, PC
A, #d16
ext, A
A, ext
dir : 4 dir : 4, rel
A, #d8
A, #d8
A, #d8
XCHW
MOVW
MOVW
MOVW
BBC
CLRB
CMP
MOV
OR
AND
XOR
MOV
SUBC
ADDC
CMP
MOV
A, SP
SP, #d16
dir, A
A, dir
dir : 5 dir : 5, rel
dir, #d8
dir, #d8
A, dir
A, dir
A, dir
dir, A
A, dir
A, dir
A, dir
A, dir
XCHW
MOVW
MOVW
MOVW
BBC
CLRB
CMP
MOV
OR
AND
XOR
MOV
SUBC
ADDC
CMP
MOV
A, IX
IX, #d16
dir : 6 dir : 6, rel A, @IX+d @IX+d, A
A, @IX+d A, @IX+d A, @IX+d A, @IX+d @IX+d, A A, @IX+d A, @IX+d A, @IX+d @IX+d,#d8 @IX+d,#d8
XCHW
MOVW
MOVW
MOVW
BBC
CLRB
CMP
MOV
OR
AND
XOR
MOV
SUBC
ADDC
CMP
MOV
A, EP
EP, #d16
@EP, A
A, @EP
dir : 7 dir : 7, rel
A, @EP @EP, #d8 @EP, #d8
A, @EP
A, @EP
@EP, A
A, @EP
A, @EP
A, @EP
A, @EP
BNC
CALLV
DEC
INC
BBS
SETB
CMP
MOV
OR
AND
XOR
MOV
SUBC
ADDC
CMP
MOV
RET
SETI
CLRI
MOVW
MOV
POPW
A, PS
A, ext
A A
SETC
CLRC
MOVW
MOV
POPW
PUSHW
CALL
JMP
DIVU
MULU
PS, A
ext, A
IX
IX
A A addr16 addr16
MOV
MOV
OR
AND
XOR
XCH
SUBC
ADDC
CMP
ROLC
A, @A
@A, T
A, T A A A
A A A A
MOVW
MOVW
ORW
ANDW
XORW
XCHW
SUBCW
ADDCW
CMPW
RORC
SWAP
B.5
NOP
B 命令概要
命令マップ
付表 B-9に,F2MC-8Lの命令マップを示します。
■ 命令マップ
付表 B-9 F2MC-8Lの命令マップ
375
付録
C
MB89051シリーズの端子状態
MB89051シリーズの端子状態
MB89051シリーズの各動作時の端子状態を示します。
■ 各動作時の端子状態
付表 C-1 各動作時の端子状態
端子名
P31/INT1
∼P37/INT7/SI2
X0
X1
MOD0,1,2
通常時
ポート入出力/
外部割込み入力/
リソース入出力
発振用入力
発振用出力
モード入力
リセット入出力
スリープ時
保持/
外部割込み入力/
リソース入出力
発振用入力
発振用出力
モード入力
リセット入出力
ストップ時
SPL=0
ストップ時
SPL=1
保持/
外部割込み入力
Hi-z/
外部割込み入力
Hi-z
Hi-z
"H"出力
モード入力
リセット入出力
Hi-z
"H"出力
モード入力
リセット入出力
発振用入力
発振用出力
モード入力
リセット入出力
RST
P00∼P07
ポート入出力
保持
P10∼P17
P20∼P27
ポート出力
P40/POW5
P41/POW2
P42/POW3
保持
Hi-z
P43/POW4
ポート入出力/
保持/
P44/UCK
リソース入出力
リソース入出力
P45/UO
P46/UI/PWM1
P47/PWM2
P53/SDA,P54/SCL
RPVP
RPVM
USBポート入出力
USBポート入出力
USBポート入力 *1
USBポート入力 *1
D2VP∼D5VP
D2VM∼D5VM
USBP
USBP 出力
保持
保持
Hi-z
CLK1,CLK2
クロック出力
クロック出力
"L"出力
"L"出力
Hi-z:ハイインピーダンスを示します。
SPL:スタンバイ制御レジスタ(STBC)の端子状態指定ビットです。
保持:出力に設定された端子は,モード移行直前の端子の状態(レベル)を保持します。
*1:USB要因によるストップ時はポート入力で,それ以外の要因によるストップ時は直前の状態のままです。
*2:パワーオンリセット中は,不定となります。
376
リセット中
Hi-z
Hi-z
Hi-Z
*2
Hi-z
"L"出力
索引
<数字>
1
16ビットデータ
RAM上の16ビットデータの格納状態 ....... 21
スタックの16ビットデータの格納状態 .... 21
8ビットシリアルI/O2
8ビットシリアルI/O2に関連する端子 .... 272
8ビットシリアルI/O2に関連するレジスタ
................................ 274
8ビット送信動作
8ビット送信動作 ...................... 264
8ビットタイマモード
8ビットタイマモードのプログラム例 .... 150
2
2CH 8ビットPWMタイマ
2CH 8ビットPWMタイマ使用上の注意 ..... 149
2CH 8ビットPWMタイマに関連する端子 ... 125
2CH 8ビットPWMタイマに関連する端子のブロッ
クダイヤグラム .................. 125
2CH 8ビットPWMタイマに関連するレジスタ
................................ 126
2CH 8ビットPWMタイマに関連する割込み
................................ 124
2CH 8ビットPWMタイマの概要(PWMタイマ機能)
................................ 120
2CH 8ビットPWMタイマのブロックダイヤグラム
................................ 123
2CH 8ビットPWMタイマの割込みに関連するレジ
スタとベクトルテーブル .......... 137
8
8ビットPWMタイマ
8ビットPWMタイマ1(CH1)および8ビットPWMタ
イマ2(CH2) .................... 123
8ビット受信動作
8ビット受信動作 ...................... 262
8ビットシリアルI/O
8ビットシリアルI/O使用上の注意 ....... 286
8ビットシリアルI/Oに関連する端子 ..... 271
8ビットシリアルI/Oに関連する端子のブロッ
クダイヤグラム .................. 273
8ビットシリアルI/Oの接続例 ........... 288
8ビットシリアルI/Oの動作中の各モードでの
状態 ............................ 283
8ビットシリアルI/Oのプログラム例 ..... 290
8ビットシリアルI/Oのブロックダイヤグラム
................................ 269
8ビットシリアルI/Oの割込みに関連するレジ
スタとベクトルテーブル .......... 278
8ビットシリアルI/O1
8ビットシリアルI/O1に関連する端子 .... 271
8ビットシリアルI/O1に関連するレジスタ
................................ 274
377
索引
<アルファベット>
DDR0
C
ポート0のレジスタPDR0, DDR0 .......... 69
DMAベースアドレスレジスタ
DMAベ-スアドレスレジスタ(DBAR) ..... 203
CCR
コンディションコードレジスタ(CCR)の構成
................................. 24
E
EIE
CH
8ビットPWMタイマ1(CH1)および8ビットPWMタ
イマ2(CH2) .................... 123
CH12PWM出力制御回路
CH12PWM出力制御回路 .................. 124
CH12PWMモード
CH12PWMモードの動作 .................. 144
CH12PWMモードのプログラム例 .......... 154
インターバルタイマ機能およびCH12PWMモード
動作時の割込み .................. 137
CK12セレクタ
CK12セレクタ ......................... 124
CK12モード
CK12モードのプログラム例 ............. 151
CKR
クロック出力制御レジスタ(CKR) ...... 320
CLK
クロック出力(CLK1,CLK2)に関連する端子
................................ 319
CLK非同期モード
CLK非同期モード時の受信エラー ........ 258
CLK非同期モードの受信動作 ............ 257
CLK非同期モードの送信動作 ............ 259
CLRB
ビット操作命令(SETB,CLRB) ......... 369
CNTR
PWM制御レジスタ1,2,3(CNTR1,CNTR2,CNTR3)
................................ 124
CNTR1
PWM制御レジスタ1(CNTR1) ............ 127
CNTR2
PWM制御レジスタ2(CNTR2) ............ 129
CNTR3
PWM制御レジスタ3(CNTR3) ............ 131
COMR
PWMコンペアレジスタ1,2,(COMR1,COMR2)
................................ 124
COMR1
PWMコンペアレジスタ1(COMR1) ........ 133
COMR2
PWMコンペアレジスタ2(COMR2) ........ 135
外部割込み制御レジスタ(EIE) ........ 162
EIF
外部割込みフラグレジスタ(EIF) ...... 163
EPBR
エンドポイントセットアップレジスタ(EPBR0,
EPBRn1,n2)n=1,2,3 ........... 216
EPER
エンドポイントイネ-ブルレジスタ(EPER)
................................ 215
F
FMCS
コントロールステータスレジスタ(FMCS)
................................ 328
H
HDSR
ハブディスクリプタレジスタ(HDSR1,2,3,4)
................................ 175
HMDR
USBハブモードレジスタ(HMDR) ........ 174
HSTR
ハブステータスレジスタ(HSTR) ....... 178
I
I/Oポート
I/Oポートの機能 ....................... 66
I/Oポートのプログラム例 ............... 97
I/Oマップ
I/Oマップ............................ 356
2
I Cアドレス
2
I Cアドレスレジスタ(IADR) .......... 307
2
I Cインタフェース
I2Cインタフェース機能 ................ 294
I2Cインタフェース使用上の注意......... 313
2
I Cインタフェースに関連する端子 ...... 298
I2Cインタフェースに関連する端子のブロック
ダイヤグラム .................... 298
D
DADR
2
ディスクリプタROMアドレスレジスタ(DADR)
................................ 182
DBAR
DMAベ-スアドレスレジスタ(DBAR) ..... 203
378
I Cインタフェースのブロックダイヤグラム
................................ 296
I2Cインタフェースの割込みに関連するレジス
タとベクトルテーブル ............ 309
I2Cインタフェースレジスタ............. 299
索引
2
I Cクロック制御レジスタ
2
I Cクロック制御レジスタ(ICCR)....... 305
2
I Cデータ
2
I Cデータレジスタ(IDAR)............. 308
2
I Cバス
I2Cバスシステム....................... 310
I2Cバスによる通信機能の概要........... 294
I2Cバスプロトコル..................... 310
2
I Cバスステータス
I2Cバスステータスレジスタ(IBSR)..... 300
2
I Cバス制御
2
I Cバス制御レジスタ(IBCR)........... 302
IADR
2
I Cアドレスレジスタ(IADR)........... 307
IBCR
2
I Cバス制御レジスタ(IBCR)........... 302
IBSR
I2Cバスステータスレジスタ(IBSR)..... 300
ICCR
2
PURR
プルアップオプション設定レジスタ(PURR0,1,
2)............................. 323
プルアップオプション設定レジスタ(PURR3,4)
................................ 324
PWMコンペアレジスタ
PWMコンペアレジスタ1(COMR1) ........ 133
PWMコンペアレジスタ1,2,(COMR1, COMR2)
................................ 124
PWMコンペアレジスタ2(COMR2) ........ 135
PWM制御レジスタ
PWM制御レジスタ1(CNTR1) ............ 127
PWM制御レジスタ1,2,3(CNTR1,CNTR2,CNTR3)
................................ 124
PWM制御レジスタ2(CNTR2) ............ 129
PWM制御レジスタ3(CNTR3) ............ 131
PWMタイマ
2CH 8ビットPWMタイマの概要(PWMタイマ機能)
................................ 120
PWMタイマ機能 ........................ 121
PWMタイマ機能の動作 .................. 140
PWMタイマ機能のプログラム例 .......... 153
I Cクロック制御レジスタ(ICCR)....... 305
IDAR
2
I Cデータレジスタ(IDAR)............. 308
ILR
割込みレベル設定レジスタ(ILR1,2,3,4)
の構成 ........................... 30
R
RP
レジスタバンクポインタ(RP)の構成 .... 26
RST
ハードウェアリセット( RST )の投入
................................ 346
M
MB89051シリーズ
MB89051シリーズの全体ブロックダイヤグラム
.................................. 6
MB89051シリーズの端子配列図 ............ 7
MB89051シリーズの品種構成 .............. 4
外形寸法図 ............................. 8
特長 .................................. 2
MOD
モード端子(MOD0,MOD1,MOD2) ........ 63
O
OCCR
オーバカレント制御レジスタ(OCCR) ... 180
P
P53/SDA
P53/SDAとP54/SCLのノイズキャンセラ ... 298
P54/SCL
P53/SDAとP54/SCLのノイズキャンセラ ... 298
PDR0
ポート0のレジスタPDR0, DDR0 .......... 69
S
SCS
シリアルクロック切替えレジスタ(SCS)
................................ 246
SDR1/SDR2
シリアルデータレジスタ1/2(SDR1/SDR2)
................................ 277
SETB
ビット操作命令(SETB,CLRB) ......... 369
SIDR
シリアルインプットデータレジスタ(SIDR)
................................ 249
SMC1
シリアルモード制御レジスタ(SMC1) ... 242
SMC2
シリアルモード制御レジスタ(SMC2) ... 244
SMR
シリアルモードレジスタ1/2(SMR1/SMR2)
................................ 275
SODR
シリアルアウトプットデータレジスタ(SODR)
................................ 250
SRC
シリアルレート制御レジスタ(SRC) .... 251
379
索引
SSD
シリアルステータスアンドデータレジスタ
(SSD) ......................... 247
STBC
スタンバイ制御レジスタ(STBC) ........ 57
SYCC
システムクロック制御レジスタ(SYCC)の構成
................................. 48
T
TBTC
タイムベースタイマ制御レジスタ(TBTC)
................................ 102
TDCR
転送データカウントレジスタ(TDCR0∼3)
................................ 204
tinst
インストラクションサイクル(tinst) ..... 49
U
UART/SIO
UART/SIOに関連する端子 ............... 239
UART/SIOに関連する端子のブロックダイヤグ
ラム ............................ 240
UART/SIOに関連するレジスタ ........... 241
UART/SIOの機能 ....................... 236
UART/SIOの動作 ....................... 253
UART/SIOの動作モード0の動作説明 ...... 254
UART/SIOの動作モード1の動作説明 ...... 260
UART/SIOのブロックダイヤグラム ....... 237
UART/SIOの割込みに関連するレジスタとベク
トルテーブルアドレス ............ 252
UCTR
USBコントロ-ルレジスタ(UCTR) ....... 206
UFRMR
USBフレ-ムステータスレジスタ(UFRMR)
................................ 214
UMDR
USBリセットモードレジスタ(UMDR) .... 201
UMSKR
USB割込みマスクレジスタ(UMSKR) ..... 212
USBP
USB用プルアップ制御レジスタ(USBPC,USBP)
................................ 220
USBPC
USB用プルアップ制御レジスタ(USBPC,USBP)
................................ 220
USBコマンド
USBコマンドの各ステージ受信時の動作
................................ 229
USB標準コマンドのセットアップステージ受信
時の動作 ........................ 230
USBコントロ-ルレジスタ
USBコントロ-ルレジスタ(UCTR) ....... 206
380
USBステータスレジスタ
USBステータスレジスタ1(USTR1) ...... 207
USBステータスレジスタ2(USTR2) ...... 210
USBハブ
USBハブ回路のブロックダイヤグラム .... 169
USBハブサポートディスクリプタ構成 .... 186
USBハブ動作時の割込み ................ 185
USBハブに関連する端子 ................ 171
USBハブに関連するレジスタ ............ 173
USBハブの動作 ........................ 189
USBハブの割込みに関連するレジスタとベクト
ルテーブル ...................... 185
USBハブ回路
USBハブ回路の機能 .................... 168
USBハブモードレジスタ
USBハブモードレジスタ(HMDR) ........ 174
USBファンクション
USBファンクション回路に関連するレジスタ
................................ 197
USBファンクション回路の機能 .......... 194
USBファンクション回路のブロックダイヤグラ
ム.............................. 195
USBファンクション動作時の割込み ...... 221
USBファンクションのサポート構成 ...... 223
USBファンクションの動作 .............. 225
USBファンクションの割込みに関連するレジス
タとベクトルテーブル ............ 222
USBフレ-ムステータスレジスタ
USBフレ-ムステータスレジスタ(UFRMR)
................................ 214
USB用プルアップ制御レジスタ
USB用プルアップ制御レジスタ(USBPC,USBP)
................................ 220
USBリセットモードレジスタ
USBリセットモードレジスタ(UMDR) .... 201
USB割込みマスクレジスタ
USB割込みマスクレジスタ(UMSKR) ..... 212
USTR
USBステータスレジスタ1(USTR1) ...... 207
USBステータスレジスタ2(USTR2) ...... 210
W
WDTC
ドッグ制御レジスタ(WDTC) ........... 112
索引
<五十音>
え
あ
演算結果
演算結果を示すビット .................. 24
エンドポイントイネ-ブルレジスタ
エンドポイントイネ-ブルレジスタ(EPER)
................................ 215
エンドポイントセットアップレジスタ
エンドポイントセットアップレジスタ(EPBR0,
EPBRn1,n2)n=1,2,3 ........... 216
アービトレーション
アービトレーション(通信許可手順) ... 312
アクノレッジ
アクノレッジ(確認応答信号) ......... 312
アドレス
アドレス指定方法 ..................... 339
アドレッシング
アドレッシング ....................... 311
アドレッシングの説明 ................. 361
い
インストラクションサイクル
インストラクションサイクル(tinst) ..... 49
インターバルタイマ
インターバルタイマ機能 ............... 100
インターバルタイマ機能(方形波出力機能)
................................ 118
インターバルタイマ機能およびCH12PWMモード
動作時の割込み .................. 137
インターバルタイマ機能動作時の割込み
................................ 104
インターバルタイマ機能の動作 ......... 138
インターバルタイマ機能の動作(タイムベース
タイマ) ........................ 105
インタフェース
I2Cインタフェース機能................. 294
2
I Cインタフェースに関連する端子....... 298
I2Cインタフェースに関連する端子のブロック
ダイヤグラム .................... 298
2
I Cインタフェースのブロックダイヤグラム
................................ 296
I2Cインタフェースレジスタ............. 299
う
ウェークアップ
デバイスからのリモートウェークアップ
................................ 232
ホストPCからのウェークアップ ......... 233
ウォッチドッグ制御レジスタ
ドッグ制御レジスタ(WDTC) ........... 112
ウォッチドッグタイマ
ウォッチドッグタイマ機能 ............. 110
ウォッチドッグタイマ使用上の注意 ..... 114
ウォッチドッグタイマの動作 ........... 113
ウォッチドッグタイマのプログラム例 ... 115
ウォッチドッグタイマのブロックダイヤグラ
ム .............................. 111
ウォッチドッグタイマリセット ......... 346
お
オーバカレント制御レジスタ
オーバカレント制御レジスタ(OCCR) ... 180
オペランド
オペランドが16ビットの場合のデータの格納
状態 ............................. 21
か
外部シフトクロック
外部シフトクロックを使用した場合 ..... 284
外部リセット端子
外部リセット端子の機能 ................ 39
外部リセット端子のブロックダイヤグラム
................................. 39
外部割込み回路
外部割込み回路動作時の割込み ......... 164
外部割込み回路に関連する端子 ......... 158
外部割込み回路に関連するレジスタ ..... 161
外部割込み回路の機能(レベル検出) ... 156
外部割込み回路の動作 ................. 165
外部割込み回路のプログラム例 ......... 166
外部割込み回路のブロックダイヤグラム
................................ 157
外部割込み回路の割込み許可ビットと外部割
込み端子との関係 ................ 160
外部割込み回路の割込みに関連するレジスタ
とベクトルテーブル .............. 164
外部割込み制御レジスタ
外部割込み制御レジスタ(EIE) ........ 162
外部割込み制御レジスタ(EIE)の各ビットの
機能説明 ........................ 162
外部割込み端子
外部割込み回路の割込み許可ビットと外部割
込み端子との関係 ................ 160
外部割込みフラグレジスタ
外部割込みフラグレジスタ(EIF) ...... 163
書込み
書込み/読込みについての説明 .......... 358
自動書込み/消去時 .................... 333
フラッシュメモリ書込み/消去の方法 .... 326
確認応答信号
アクノレッジ(確認応答信号) ......... 312
381
索引
過電流検出処理
過電流検出処理 ....................... 181
き
供給マップ
クロック供給マップ .................... 43
く
クロック
クロック供給マップ .................... 43
クロック制御部のブロックダイヤグラム
................................. 46
クロック発生部 ........................ 45
クロック供給
クロック供給機能 ..................... 100
クロック供給機能の動作 ............... 105
クロック出力
クロック出力(CLK1,CLK2)に関連する端子
................................ 319
クロック出力に関連する端子のブロックダイ
ヤグラム ........................ 319
クロック出力機能
クロック出力機能 ..................... 318
クロック出力制御レジスタ
クロック出力制御レジスタ(CKR) ...... 320
クロックモード
クロックモードの動作状態 .............. 50
こ
高速PWMタイマ
高速PWMタイマ機能の動作 .............. 142
コマンド応答
コマンド応答時の各レジスタ動作 ....... 228
コマンドシーケンス
コマンドシーケンス表 ................. 330
コンディションコードレジスタ
コンディションコードレジスタ(CCR)の構成
................................. 24
コントロールステータスレジスタ
コントロールステータスレジスタ(FMCS)
................................ 328
さ
サスペンド
サスペンド処理 ....................... 231
サスペンドの解除について ............. 231
サポート構成
USBファンクションのサポート構成 ...... 223
382
し
システムクロック制御レジスタ
システムクロック制御レジスタ(SYCC)の構成
................................. 48
自動書込み
自動書込み/消去時 .................... 333
自動書込み/消去動作中 ................ 334
自動書込み動作時 ..................... 332
自動消去
自動消去動作時 ....................... 332
シフトクロック周波数
シフトクロック周波数を設定する場合の注意
................................ 306
周波数
シフトクロック周波数を設定する場合の注意
................................ 306
周辺機能
周辺機能からの割込み要求 .............. 29
受信割込み
受信割込み ........................... 252
消去
自動書込み/消去時 .................... 333
フラッシュメモリ書込み/消去の方法 .... 326
状態遷移
状態遷移図 ............................ 59
初期値
初期値についての説明 ................. 358
シリアルアウトプットデータレジスタ
シリアルアウトプットデータレジスタ(SODR)
................................ 250
シリアルインプットデータレジスタ
シリアルインプットデータレジスタ(SIDR)
................................ 249
シリアル書込み
MB89F051シリアル書込み接続の基本構成
................................ 348
シリアル書込み時の接続例(ユーザ電源使用
時) ............................ 350
シリアルクロック切替えレジスタ
シリアルクロック切替えレジスタ(SCS)
................................ 246
シリアル出力
シリアル出力完了時の動作 ............. 280
シリアル出力動作 ..................... 279
シリアル出力のプログラム例 ........... 290
シリアルステータスアンドデータレジスタ
シリアルステータスアンドデータレジスタ
(SSD) ......................... 247
シリアルデータレジスタ1/2
シリアルデータレジスタ1/2(SDR1/SDR2)
................................ 277
シリアル入出力
シリアル入出力機能 ................... 268
シリアル入出力動作時の割込み ......... 278
双方向でシリアル入出力を行う場合 ..... 288
索引
シリアル入力
シリアル入力完了時の動作 ............. 282
シリアル入力動作 ..................... 281
シリアル入力のプログラム例 ........... 292
シリアルモード制御レジスタ
シリアルモード制御レジスタ(SMC1) ... 242
シリアルモード制御レジスタ(SMC2) ... 244
シリアルモードレジスタ1/2
シリアルモードレジスタ1/2(SMR1/SMR2)
................................ 275
シリアルレート制御レジスタ
シリアルレート制御レジスタ(SRC) .... 251
シングルチップモード
シングルチップモード .................. 63
す
スタートコンディション
スタートコンディション ............... 311
スタートビット
受信動作時のスタートビットの検出 ..... 258
スタック
スタックの16ビットデータの格納状態 .... 21
スタック動作
割込み処理開始時のスタック動作 ........ 35
割込み復帰時のスタック動作 ............ 35
スタック領域
割込み処理のスタック領域 .............. 36
スタンバイ制御レジスタ
スタンバイ制御レジスタ(STBC) ........ 57
スタンバイモード
スタンバイモード ...................... 53
スタンバイモードおよび途中停止時の動作
................................ 147
スタンバイモード時の動作状態 .......... 54
スタンバイモード設定時の注意 .......... 61
スタンバイモードの割込みによる解除 .... 61
スタンバイモードへの移行と割込み ...... 61
ステージ受信
USBコマンドの各ステージ受信時の動作
................................ 229
ストップコンディション
ストップコンディション ............... 312
ストップモード
ストップモードの動作 .................. 56
スリープモード
スリープモードの動作 .................. 55
せ
セクタ
セクタ指定方法 ....................... 342
セクタ消去一時停止時 ................. 332
複数のセクタを指定するときの注意 ..... 342
セクタ構成
セクタ構成 ........................... 327
セクタ消去
セクタ消去一時停止時 ................. 333
セクタ消去手順 ....................... 343
セクタ消去動作中 ................ 335, 336
セットアップステージ
USB標準コマンドのセットアップステージ受信
時の動作 ........................ 230
そ
送信割込み
送信割込み ........................... 252
ソフトウェアリセット
ソフトウェアリセット ................. 346
た
タイムベースタイマ
インターバルタイマ機能の動作(タイムベース
タイマ) ........................ 105
タイムベースタイマ使用上の注意 ....... 107
タイムベースタイマの動作 ............. 105
タイムベースタイマのプログラム例 ..... 108
タイムベースタイマのブロックダイヤグラム
................................ 101
タイムベースタイマの割込みに関連するレジ
スタとベクトルテーブル .......... 104
発振安定待ち時間とタイムベースタイマの割
込み ............................ 104
タイムベースタイマ制御レジスタ
タイムベースタイマ制御レジスタ(TBTC)
................................ 102
多重割込み
多重割込み ............................ 33
端子
2CH 8ビットPWMタイマに関連する端子 ... 125
8ビットシリアルI/O1に関連する端子 .... 271
8ビットシリアルI/O2に関連する端子 .... 272
8ビットシリアルI/Oに関連する端子 ..... 271
8ビットシリアルI/Oに関連する端子のブロッ
クダイヤグラム .................. 273
2
I Cインタフェースに関連する端子 ...... 298
I2Cインタフェースに関連する端子のブロック
ダイヤグラム .................... 298
各動作時の端子状態 ................... 376
端子機能説明
端子機能説明 ........................... 9
端子配列図
MB89051シリーズの端子配列図 ............ 7
ち
注意
8ビットシリアルI/O使用上の注意 ....... 286
383
索引
つ
の
通信許可手順
アービトレーション(通信許可手順)
................................ 312
ノイズキャンセラ
P53/SDAとP54/SCLのノイズキャンセラ ... 298
て
は
ハードウェアシーケンス
ハードウェアシーケンスフラグ ......... 331
ハードウェアリセット
ディスクリプタ
USBハブサポートディスクリプタ構成 .... 186
ディスクリプタROMアドレスレジスタ
ディスクリプタROMアドレスレジスタ(DADR)
................................ 182
データ書込み
データ書込み上の注意 ................. 339
データ転送
データ転送 ........................... 312
データ転送終了時の割込み ............. 309
データの格納状態
RAM上の16ビットデータの格納状態 ....... 21
オペランドが16ビットの場合のデータの格納
状態 ............................. 21
スタックの16ビットデータの格納状態 .... 21
デバイス
デバイスからのリモートウェークアップ
................................ 232
デバイス取扱い上の注意 ................ 16
転送データカウントレジスタ
転送データカウントレジスタ(TDCR0∼3)
................................ 204
転送データフォーマット
転送データフォーマット ............... 256
I2Cバスによる通信機能の概要........... 294
バスエラー
バスエラー時の割込み ................. 309
発振安定待ち
発振安定待ちリセット状態 .............. 41
発振安定待ち時間
発振安定待ち時間 .................. 51, 62
発振安定待ち時間とタイムベースタイマの割
込み ............................ 104
メインクロックの発振安定待ち時間 ...... 51
ハブステータスレジスタ
ハブステータスレジスタ(HSTR) ....... 178
ハブディスクリプタレジスタ
ハブディスクリプタレジスタ(HDSR1,2,3,4)
................................ 175
汎用レジスタ
汎用レジスタの構成 .................... 27
汎用レジスタ領域
汎用レジスタ領域 ...................... 20
と
ひ
動作モード0
UART/SIOの動作モード0の動作説明 ...... 254
動作モード1
UART/SIOの動作モード1の動作説明 ...... 260
取扱い上の注意
デバイス取扱い上の注意 ................ 16
ビット操作
ビット操作命令実行時の読出し先 ....... 369
表示記号
命令の表示記号の説明 ................. 360
標準ディスクリプタ
標準ディスクリプタ構成 ............... 183
品種
MB89051シリーズの品種構成 .............. 4
品種選択時の注意事項 ................... 5
な
内部シフトクロック
内部シフトクロックを使用した場合 ..... 283
に
入出力回路
入出力回路形式 ........................ 11
384
ハードウェアリセット( RST )の投入
................................ 346
バス
ふ
フラグ
ハードウェア・シーケンス・フラグ ....... 331
フラッシュマイコンプログラマ
フラッシュマイコンプログラマとの最小限の
接続例(ユーザ電源使用時) ...... 352
索引
フラッシュメモリ
フラッシュメモリ書込み/消去の詳細説明
................................ 337
フラッシュメモリ書込み/消去の方法 .... 326
フラッシュメモリ書込み手順 ........... 340
フラッシュメモリのセクタ消去再開 ..... 345
フラッシュメモリのセクタ消去の一時停止
................................ 344
フラッシュメモリの全データ消去(チップ消
去) ............................ 341
フラッシュメモリのデータ書込み ....... 339
フラッシュメモリの特長 ............... 326
フラッシュメモリの任意データ消去(セクタ消
去) ............................ 342
フラッシュメモリの読出し/リセット状態
................................ 338
フラッシュメモリのレジスタ ........... 326
フラッシュメモリへのプログラムアクセス
................................ 346
プリスケーラ
プリスケーラ ......................... 123
プリスケーラの動作 ................... 146
プルアップオプション
プルアップオプション ................. 322
プルアップオプション設定レジスタ
プルアップオプション設定レジスタ(PURR0,1,
2) ............................. 323
プルアップオプション設定レジスタ(PURR3,4)
................................ 324
プログラムアクセス
フラッシュメモリへのプログラムアクセス
................................ 346
プログラム例
8ビットシリアルI/Oのプログラム例 ..... 290
8ビットタイマモードのプログラム例 .... 150
CH12PWMモードのプログラム例 .......... 154
CK12モードのプログラム例 ............. 151
I/Oポートのプログラム例 ............... 97
PWMタイマ機能のプログラム例 .......... 153
ウォッチドッグタイマのプログラム例 ... 115
外部割込み回路のプログラム例 ......... 166
シリアル出力のプログラム例 ........... 290
シリアル入力のプログラム例 ........... 292
タイムベースタイマのプログラム例 ..... 108
マスタ転送モードのプログラム例 ....... 314
ブロックダイヤグラム
2CH 8ビットPWMタイマに関連する端子のブロッ
クダイヤグラム .................. 125
2CH 8ビットPWMタイマのブロックダイヤグラム
................................ 123
8ビットシリアルI/Oに関連する端子のブロッ
クダイヤグラム .................. 273
8ビットシリアルI/Oのブロックダイヤグラム
................................ 269
I2Cインタフェースに関連する端子のブロック
ダイヤグラム .................... 298
2
I Cインタフェースのブロックダイヤグラム
................................ 296
MB89051シリーズの全体ブロックダイヤグラム
.................................. 6
UART/SIOに関連する端子のブロックダイヤグ
ラム ............................ 240
UART/SIOのブロックダイヤグラム ....... 237
USBハブ回路のブロックダイヤグラム .... 169
USBファンクション回路のブロックダイヤグラ
ム.............................. 195
ウォッチドッグタイマのブロックダイヤグラ
ム.............................. 111
外部リセット端子のブロックダイヤグラム
................................. 39
外部割込み回路に関連する端子のブロックダ
イヤグラム ...................... 159
外部割込み回路のブロックダイヤグラム
................................ 157
クロック出力に関連する端子のブロックダイ
ヤグラム ........................ 319
クロック制御部のロックダイヤグラム .... 46
タイムベースタイマのブロックダイヤグラム
................................ 101
端子のブロックダイヤグラム ........... 172
ポート0のブロックダイヤグラム ......... 69
ポート1のブロックダイヤグラム ......... 74
ポート2のブロックダイヤグラム ......... 79
ポート3のブロックダイヤグラム ......... 83
ポート4のブロックダイヤグラム ......... 88
ポート5のブロックダイヤグラム ......... 93
へ
ベクトルテーブル
2CH 8ビットPWMタイマの割込みに関連するレジ
スタとベクトルテーブル .......... 137
8ビットシリアルI/Oの割込みに関連するレジ
スタとベクトルテーブル .......... 278
I2Cインタフェースの割込みに関連するレジス
タとベクトルテーブル ............ 309
USBファンクションの割込みに関連するレジス
タとベクトルテーブル ............ 222
外部割込み回路の割込みに関連するレジスタ
とベクトルテーブル .............. 164
タイムベースタイマの割込みに関連するレジ
スタとベクトルテーブル .......... 104
ベクトルテーブルアドレス
UART/SIOの割込みに関連するレジスタとベク
トルテーブルアドレス ............ 252
ベクトルテーブル領域
ベクトルテーブル領域 .................. 20
ベクトルテーブル
USBハブの割込みに関連するレジスタとベクト
ルテーブル ...................... 185
385
索引
ほ
め
方形波出力機能
インターバルタイマ機能(方形波出力機能)
................................ 118
ポート0
ポート0の構成 ......................... 68
ポート0の端子 ......................... 68
ポート0の動作 ......................... 71
ポート0のブロックダイヤグラム ......... 69
ポート0のレジスタの機能 ............... 70
ポート1
ポート1の構成 ......................... 73
ポート1の端子 ......................... 73
ポート1の動作 ......................... 76
ポート1のブロックダイヤグラム ......... 74
ポート1のレジスタ ..................... 74
ポート1のレジスタの機能 ............... 75
ポート2
ポート2の構成 ......................... 78
ポート2の端子 ......................... 78
ポート2の動作 ......................... 81
ポート2のブロックダイヤグラム ......... 79
ポート2のレジスタ ..................... 79
ポート2のレジスタの機能 ............... 80
ポート3
ポート3の構成 ......................... 82
ポート3の端子 ......................... 82
ポート3の動作 ......................... 85
ポート3のブロックダイヤグラム ......... 83
ポート3のレジスタ ..................... 83
ポート3のレジスタの機能 ............... 84
ポート4
ポート4の構成 ......................... 87
ポート4の端子 ......................... 87
ポート4の動作 ......................... 90
ポート4のブロックダイヤグラム ......... 88
ポート4のレジスタ ..................... 88
ポート4のレジスタの機能 ............... 89
ポート5
ポート5の構成 ......................... 92
ポート5の端子 ......................... 92
ポート5の動作 ......................... 95
ポート5のブロックダイヤグラム ......... 93
ポート5のレジスタ ..................... 93
ポート5のレジスタの機能 ............... 94
ホストPC
ホストPCからのウェークアップ ......... 233
命令
ま
リードモディファイライト
リードモディファイライト動作 ......... 369
マスタ転送モード
マスタ転送モードのプログラム例 ....... 314
386
F2MC-8Lの命令の概要 .................. 359
F2MC-8L命令一覧表 .................... 370
演算系命令 ........................... 372
その他命令 ........................... 373
転送系命令 ........................... 370
特殊な命令について ................... 365
ビット操作命令(SETB,CLRB) ......... 369
ビット操作命令実行時の読出し先 ....... 369
分岐系命令 ........................... 373
命令一覧表の項目の説明 ............... 374
命令の表示記号の説明 ................. 360
命令マップ ........................... 375
メインクロック
メインクロックの発振安定待ち時間 ...... 51
リセット要因とメインクロックの発振安定待
ち............................... 37
メインクロックモード
メインクロックモードの動作 ............ 50
メモリアクセスモード
メモリアクセスモード選択動作 .......... 64
メモリ空間
メモリ空間の構成 ...................... 18
メモリマップ
メモリマップ .......................... 19
も
モード端子
モード端子 ............................ 41
モード端子(MOD0,MOD1,MOD2) ........ 63
モードデータ
モードデータ .......................... 63
モードデータ読出し後の端子の状態 ...... 42
モードフェッチ
モードフェッチ ........................ 41
よ
レジスタ
汎用レジスタの特長 .................... 28
読込み
書込み/読込みについての説明 .......... 358
り
索引
リセット
RAM内容のリセットによる影響 ........... 41
ソフトウェアリセット,ウォッチドッグタイマ
リセット ........................ 346
ハードウェアリセット( RST )の投入
................................ 346
リセット中の端子の状態 ................ 42
リセット状態
発振安定待ちリセット状態 .............. 41
リセット動作
リセット動作の概要 .................... 40
リセット要因
リセット要因 .......................... 37
リセット要因とメインクロックの発振安定待
ち ............................... 37
れ
レギュレータ
レギュレータ安定時間 .................. 41
レギュレータ復帰時間 .................. 41
レジスタ
2CH 8ビットPWMタイマに関連するレジスタ
................................ 126
8ビットシリアルI/O1に関連するレジスタ
................................ 274
8ビットシリアルI/O2に関連するレジスタ
................................ 274
8ビットシリアルI/Oの割込みに関連するレジ
スタとベクトルテーブル .......... 278
I2Cインタフェースの割込みに関連するレジス
タとベクトルテーブル ............ 309
I2Cインタフェースレジスタ............. 299
2
I Cクロック制御レジスタ(ICCR)....... 305
2
I Cデータレジスタ(IDAR)............. 308
I2Cバスステータスレジスタ(IBSR)..... 300
2
I Cバス制御レジスタ(IBCR)........... 302
UART/SIOに関連するレジスタ ........... 241
UART/SIOの割込みに関連するレジスタとベク
トルテーブルアドレス ............ 252
USBハブに関連するレジスタ ............ 173
USBファンクションの割込みに関連するレジス
タとベクトルテーブル ............ 222
外部割込み回路に関連するレジスタ ..... 161
外部割込み回路の割込みに関連するレジスタ
とベクトルテーブル .............. 164
シリアルデータレジスタ1/2(SDR1/SDR2)
................................ 277
シリアルモードレジスタ1/2(SMR1/SMR2)
................................ 275
専用レジスタの機能 .................... 22
専用レジスタの構成 .................... 22
タイムベースタイマの割込みに関連するレジ
スタとベクトルテーブル .......... 104
フラッシュメモリのレジスタ ........... 326
レジスタ動作
コマンド応答時の各レジスタ動作 ....... 228
レジスタバンクポインタ
レジスタバンクポインタ(RP)の構成 .... 26
レベル検出
外部割込み回路の機能(レベル検出) ... 156
連続受信動作
連続受信動作 ......................... 263
連続送信動作
連続送信動作 ......................... 265
わ
割込み
2CH 8ビットPWMタイマに関連する割込み
................................ 124
8ビットシリアルI/Oの割込みに関連するレジ
スタとベクトルテーブル .......... 278
I2Cインタフェースの割込みに関連するレジス
タとベクトルテーブル ............ 309
USBファンクション動作時の割込み ...... 221
外部割込み回路動作時の割込み ......... 164
シリアル入出力動作時の割込み ......... 278
データ転送終了時の割込み ............. 309
バスエラー時の割込み ................. 309
割込みの受付けを制御するビット ........ 25
外部割込み回路
外部割込み回路に関連する端子のブロックダ
イヤグラム ...................... 159
割込み許可ビット
外部割込み回路の割込み許可ビットと外部割
込み端子との関係 ................ 160
割込み処理
割込み処理開始時のスタック動作 ........ 35
割込み処理時間 ........................ 34
割込み処理のスタック領域 .............. 36
割込み動作
割込み動作時の処理 .................... 31
割込み要求
周辺機能からの割込み要求 .............. 29
割込みレベル設定レジスタ
割込みレベル設定レジスタ(ILR1,2,3,4)
の構成 ........................... 30
387
索引
388
CM25-10148-1
富士通半導体デバイス・CONTROLLER
MANUAL
富士通半導体デバイス
F2MC®-8L
8ビット・マイクロコントローラ
MB89051 series
ハードウェアマニュアル
2002年8月 初版発行
発 行
富士通株式会社
編 集
技術標準部
電子デバイス事業推進本部
技術情報開発部
Fly UP