Comments
Description
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月 初版発行 発 行 富士通株式会社 編 集 技術標準部 電子デバイス事業推進本部 技術情報開発部