本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通マイクロエレクトロニクス CONTROLLER MANUAL CM44-10120-4 F2MC-16LX 16 ビット・マイクロコントローラ MB90460/465 シリーズ ハードウェアマニュアル F2MC-16LX 16 ビット・マイクロコントローラ MB90460/465 シリーズ ハードウェアマニュアル 富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。 ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。 開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。 「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目 をリストにしたものです。 http://edevice.fujitsu.com/micom/jp-support/ 富士通マイクロエレクトロニクス株式会社 はじめに ■ 本書の目的と対象読者 富士通マイクロエレクトロニクス製品につきまして , 平素より格別のご愛読を賜り厚 くお礼申し上げます。 MB90460/465 シリーズは , ASIC(Application Specific IC)対応が可能なオリジナル 16 ビット・ワンチップマイクロコントローラである F2MC-16LX ファミリの汎用品の 1 つ として開発された製品です。 本書は , 実際にこの半導体を使って製品を設計する技術者の方を対象に , MB90460/465 シリーズの機能や動作について記載しています。本書をご一読ください。 ■ 商標 F2MCは, FUJITSU Flexible Microcontrollerの略で富士通マイクロエレクトロニクス株式 会社の商標です。 その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録 商標です。 i ■ 本書の全体構成 本書は , 以下に示す 24 の章および付録から構成されています。 第 1 章 概要 MB90460/465 シリーズの主な特長と基本仕様について説明します。 第 2 章 デバイスの取扱い について デバイスの取扱い上の注意について説明します。 第 3 章 CPU MB90460/465 シリーズの機能と動作について説明します。 第 4 章 リセット MB90460/465 シリーズのリセットについて説明します。 第 5 章 クロック MB90460/465 シリーズのクロックについて説明します。 第 6 章 低消費電力モード MB90460/465 シリーズ低消費電力モードについて説明します。 第 7 章 割込み MB90460/465 シリーズの割込みと拡張インテリジェント I/O サービス(EI2OS)に ついて説明します。 第 8 章 モード設定 MB90460/465 シリーズの動作モードについて説明します。 第 9 章 I/O ポート I/O ポートの機能と動作について説明します。 第 10 章 タイムベースタイマ タイムベースタイマの機能と動作について説明します。 第 11 章 ウォッチドッグタイマ ウォッチドッグタイマの機能と動作について説明します。 第 12 章 16 ビットリロードタイマ 16 ビットリロードタイマの機能と動作について説明します。 第 13 章 16 ビット PPG タイマ 16 ビット PPG タイマの機能と動作について説明します(MB90467 では , PPG1 タ イマ ch.1 未搭載となります)。 第 14 章 多機能タイマ 多機能タイマの機能と動作について説明します。 第 15 章 マルチパルスジェネレータ マルチパルスジェネレータの機能と動作について説明します(MB90467 では , 未 搭載となります)。 第 16 章 PWC タイマ PWC タイマの機能と動作について説明します(MB90467 では , PWC タイマ ch.0 未搭載となります)。 ii 第 17 章 UART UART の機能と動作について説明します。 第 18 章 DTP/ 外部割込み DTP/ 外部割込みの機能と動作について説明します。 第 19 章 遅延割込み発生モジュール 遅延割込み発生モジュールの機能と動作について説明します。 第 20 章 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータの機能と動作について説明します。 第 21 章 アドレス一致検出機能 アドレス一致検出機能の機能と動作について説明します。 第 22 章 ROM ミラー機能 選択モジュール ROM ミラー機能選択モジュールの機能と動作について説明します。 第 23 章 512K/1024K ビット フラッシュメモリ 512K/1024K ビットフラッシュメモリの機能と動作について説明します。 第 24 章 フラッシュシリアル 書込み接続例 横河ディジタルコンピュータ株式会社製フラッシュマイコンプログラマを用いた 場合の , シリアル書込み接続例について説明します。 付録 付録では , I/O マップ , 命令などを記載します。 iii • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性 が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright© 2002-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved. iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 1.7 第2章 2.1 第3章 概要 .............................................................................................................1 MB90460/465 シリーズの特長 ............................................................................................... 2 MB90460/465 シリーズの製品一覧 ........................................................................................ 5 MB90460/465 シリーズのブロックダイヤグラム .................................................................. 7 端子配列図.............................................................................................................................. 8 外形寸法図............................................................................................................................ 11 I/O 端子と端子機能説明........................................................................................................ 14 I/O 回路の種類 ...................................................................................................................... 19 デバイスの取扱いについて .......................................................................23 デバイス取扱い上の注意事項 ............................................................................................... 24 CPU...........................................................................................................27 3.1 CPU の概要 .......................................................................................................................... 28 3.2 メモリ空間............................................................................................................................ 29 3.3 メモリマップ ........................................................................................................................ 31 3.4 アドレス指定 ........................................................................................................................ 33 3.4.1 リニア方式によるアドレス指定 ................................................................................. 34 3.4.2 バンク方式によるアドレス指定 ................................................................................. 35 3.5 多バイト長データのメモリ配置 ........................................................................................... 37 3.6 レジスタ ............................................................................................................................... 39 3.7 専用レジスタ ........................................................................................................................ 40 3.7.1 アキュムレータ(A).................................................................................................. 42 3.7.2 スタックポインタ (USP, SSP)................................................................................ 45 3.7.3 プロセッサステータス(PS)..................................................................................... 47 3.7.4 コンディションコードレジスタ(PS:CCR).............................................................. 48 3.7.5 レジスタバンクポインタ(PS:RP)............................................................................ 50 3.7.6 割込みレベルマスクレジスタ(PS:ILM).................................................................... 51 3.7.7 プログラムカウンタ(PC)......................................................................................... 52 3.7.8 ダイレクトページレジスタ(DPR)........................................................................... 53 3.7.9 バンクレジスタ(PCB, DTB, USB, SSB, ADB)........................................................ 54 3.8 汎用レジスタ ........................................................................................................................ 55 3.9 プリフィックスコード.......................................................................................................... 57 3.9.1 バンクセレクトプリフィックス(PCB, DTB, ADB, SPB)......................................... 58 3.9.2 コモンレジスタバンクプリフィックス(CMR)......................................................... 60 3.9.3 フラグ変化抑止プリフィックス(NCC).................................................................... 61 3.9.4 プリフィックスコードに関する制約 .......................................................................... 62 3.9.5 「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意 ................................................ 64 第4章 4.1 4.2 4.3 4.4 リセット....................................................................................................67 リセットの概要 .................................................................................................................... 68 リセット要因と発振安定待ち時間........................................................................................ 70 外部リセット端子 ................................................................................................................. 71 リセット動作 ........................................................................................................................ 72 v 4.5 4.6 第5章 5.1 5.2 5.3 5.4 5.5 5.6 第6章 リセット要因フラグビット................................................................................................... 74 リセットによる各端子の状態 ............................................................................................... 77 クロック....................................................................................................79 クロックの概要 .................................................................................................................... 80 クロック発生部のブロックダイヤグラム ............................................................................. 82 クロック選択レジスタ(CKSCR)........................................................................................ 84 クロックモード .................................................................................................................... 86 発振安定待ち時間 ................................................................................................................. 88 振動子と外部クロックの接続 ............................................................................................... 89 低消費電力モード .....................................................................................91 6.1 低消費電力モードの概要 ...................................................................................................... 92 6.2 低消費電力制御回路のブロックダイヤグラム...................................................................... 95 6.3 低消費電力モード制御レジスタ (LPMCR)........................................................................ 97 6.4 CPU 間欠動作モード .......................................................................................................... 100 6.5 スタンバイモード ............................................................................................................... 101 6.5.1 スリープモード ........................................................................................................ 102 6.5.2 タイムベースタイマモード ...................................................................................... 105 6.5.3 ストップモード ........................................................................................................ 107 6.6 状態遷移図.......................................................................................................................... 109 6.7 スタンバイモード , リセットの端子状態............................................................................ 110 6.8 低消費電力モード使用上の注意 ......................................................................................... 111 第7章 割込み .....................................................................................................113 7.1 割込み ................................................................................................................................. 114 7.2 割込み要因と割込みベクタ................................................................................................. 116 7.3 割込み制御レジスタとリソース ......................................................................................... 119 7.3.1 割込み制御レジスタ(ICR00 ∼ ICR15).................................................................. 120 7.3.2 割込み制御レジスタの機能 ...................................................................................... 122 7.4 ハードウェア割込み ........................................................................................................... 125 7.4.1 ハードウェア割込み動作 .......................................................................................... 128 7.4.2 割込み処理 ............................................................................................................... 130 7.4.3 ハードウェア割込み使用手順................................................................................... 131 7.4.4 複数の割込み ............................................................................................................ 132 7.4.5 ハードウェア割込みの処理に要する時間................................................................. 134 7.5 ソフトウェア割込み ........................................................................................................... 136 7.6 拡張インテリジェント I/O サービス(EI2OS)からの割込み............................................ 138 7.6.1 拡張インテリジェント I/O サービス(EI2OS)のディスクリプタ(ISD)............... 140 7.6.2 拡張インテリジェント I/O サービス(EI2OS)のディスクリプタ(ISD)の レジスタ構成 ................................................................................................................. 141 7.6.3 拡張インテリジェント I/O サービス(EI2OS)の動作 ............................................ 144 7.6.4 拡張インテリジェント I/O サービス(EI2OS)の使用手順 ..................................... 145 7.6.5 拡張インテリジェント I/O サービス(EI2OS)の処理時間 ..................................... 146 7.7 例外処理割込み .................................................................................................................. 148 7.8 割込み処理時のスタック動作 ............................................................................................. 149 7.9 割込み処理のプログラム例................................................................................................. 151 vi 第8章 8.1 8.2 8.3 モード設定 ..............................................................................................155 モード設定.......................................................................................................................... 156 モード端子(MD2 ∼ MD0)................................................................................................ 157 モードデータレジスタ........................................................................................................ 158 第9章 I/O ポート................................................................................................161 9.1 I/O ポートの概要 ................................................................................................................ 162 9.2 I/O ポートのレジスタ ......................................................................................................... 164 9.3 ポート 0 .............................................................................................................................. 165 9.3.1 ポート 0 のレジスタ(PDR0, DDR0, RDR0).......................................................... 167 9.3.2 ポート 0 の動作 ........................................................................................................ 169 9.4 ポート 1 .............................................................................................................................. 171 9.4.1 ポート 1 のレジスタ(PDR1, DDR1, RDR1).......................................................... 173 9.4.2 ポート 1 の動作 ........................................................................................................ 175 9.5 ポート 2 .............................................................................................................................. 177 9.5.1 ポート 2 のレジスタ(PDR2, DDR2)...................................................................... 179 9.5.2 ポート 2 の動作 ........................................................................................................ 180 9.6 ポート 3 .............................................................................................................................. 182 9.6.1 ポート 3 のレジスタ(PDR3, DDR3)...................................................................... 184 9.6.2 ポート 3 の動作 ........................................................................................................ 185 9.7 ポート 4 .............................................................................................................................. 187 9.7.1 ポート 4 のレジスタ(PDR4, DDR4)...................................................................... 189 9.7.2 ポート 4 の動作 ........................................................................................................ 190 9.8 ポート 5 .............................................................................................................................. 192 9.8.1 ポート 5 のレジスタ(PDR5, DDR5, ADER).......................................................... 194 9.8.2 ポート 5 の動作 ........................................................................................................ 196 9.9 ポート 6 .............................................................................................................................. 198 9.9.1 ポート 6 のレジスタ(PDR6, DDR6)...................................................................... 200 9.9.2 ポート 6 の動作 ........................................................................................................ 201 9.10 I/O ポートのプログラム例 .................................................................................................. 203 第 10 章 10.1 10.2 10.3 10.4 10.5 10.6 10.7 タイムベースタイマの概要................................................................................................. 206 タイムベースタイマの構成................................................................................................. 208 タイムベースタイマ制御レジスタ (TBTC)...................................................................... 209 タイムベースタイマ割込み................................................................................................. 211 タイムベースタイマの動作................................................................................................. 212 タイムベースタイマ使用上の注意...................................................................................... 215 タイムベースタイマのプログラム例 .................................................................................. 216 第 11 章 11.1 11.2 11.3 11.4 11.5 11.6 タイムベースタイマ................................................................................205 ウォッチドッグタイマ ............................................................................217 ウォッチドッグタイマの概要 ............................................................................................. 218 ウォッチドッグタイマの構成 ............................................................................................. 219 ウォッチドッグタイマ制御レジスタ(WDTC).................................................................. 220 ウォッチドッグタイマの動作 ............................................................................................. 222 ウォッチドッグタイマ使用上の注意 .................................................................................. 224 ウォッチドッグタイマのプログラム例............................................................................... 225 vii 第 12 章 16 ビットリロードタイマ .......................................................................227 12.1 16 ビットリロードタイマの概要 ........................................................................................ 228 12.2 16 ビットリロードタイマのブロックダイヤグラム ........................................................... 231 12.3 16 ビットリロードタイマの端子 ........................................................................................ 233 12.4 16 ビットリロードタイマのレジスタ................................................................................. 234 12.4.1 タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1)......................................... 235 12.4.2 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1).......................................... 237 12.4.3 16 ビットタイマレジスタ上位 , 下位(TMRH0, TMRH1, TMRL0, TMRL1)............ 239 12.4.4 16 ビットリロードレジスタ上位 , 下位 (TMRDH0, TMRDH1, TMRDL0, TMRDL1).................................................................. 240 12.5 16 ビットリロードタイマの割込み .................................................................................... 241 12.6 16 ビットリロードタイマの動作 ........................................................................................ 242 12.6.1 内部クロックモード(リロードモード)................................................................... 244 12.6.2 内部クロックモード(ワンショットモード)........................................................... 247 12.6.3 イベントカウントモード .......................................................................................... 250 12.7 16 ビットリロードタイマ使用上の注意 ............................................................................. 252 12.8 16 ビットリロードタイマのプログラム例.......................................................................... 253 第 13 章 16 ビット PPG タイマ ............................................................................257 13.1 16 ビット PPG タイマの概要 ............................................................................................. 258 13.2 16 ビット PPG タイマのブロックダイヤグラム ................................................................ 259 13.3 16 ビット PPG タイマの端子 ............................................................................................. 260 13.4 16 ビット PPG タイマのレジスタ...................................................................................... 262 13.4.1 PPG ダウンカウンタレジスタ(PDCRH, PDCRL0 ∼ PDCRL2)........................... 264 13.4.2 PPG 周期設定バッファレジスタ(PCSRH, PCSRL0 ∼ PCSRL2)........................ 265 13.4.3 PPG デューティ設定バッファレジスタ(PDUTH, PDUTL0 ∼ PDUTL2).............. 266 13.4.4 PPG 状態制御レジスタ(PCNTH, PCNTL0 ∼ PCNTL2)....................................... 267 13.5 16 ビット PPG タイマ割込み ............................................................................................. 271 13.6 16 ビット PPG タイマの動作 ............................................................................................. 273 13.7 16 ビット PPG タイマ使用上の注意 .................................................................................. 277 13.8 16 ビット PPG タイマのプログラム例............................................................................... 278 第 14 章 多機能タイマ...........................................................................................281 14.1 多機能タイマの概要 ........................................................................................................... 282 14.2 多機能タイマのブロックダイヤグラム............................................................................... 284 14.3 多機能タイマの端子 ........................................................................................................... 288 14.4 多機能タイマのレジスタ .................................................................................................... 290 14.4.1 コンペアクリアバッファレジスタ(CPCLRBH, CPCLRBL)/ コンペアクリアレジスタ(CPCLRH, CPCLRL)........................................................... 294 14.4.2 タイマデータレジスタ(TCDTH, TCDTL).............................................................. 295 14.4.3 タイマ状態制御レジスタ(TCCSH, TCCSL).......................................................... 296 14.4.4 アウトプットコンペアバッファレジスタ(OCCPBH, OCCPBL0 ∼ OCCPBL5)/ アウトプットコンペアレジスタ(OCCPH, OCCPL0 ∼ OCCPL5).............................. 302 14.4.5 コンペア制御レジスタ(OCSH, OCSL0 ∼ OCSL5)............................................... 304 14.4.6 インプットキャプチャデータレジスタ(IPCPH, IPCPL0 ∼ IPCPL3).................... 310 14.4.7 インプットキャプチャ状態制御 /PPG 出力制御レジスタ (ICSH23, ICSL23, PICSH01, PICSL01)....................................................................... 311 14.4.8 16 ビットデッドタイマレジスタ(TMRRH, TMRRL0 ∼ TMRRL2)....................... 318 14.4.9 16 ビットデッドタイマ制御レジスタ(DTCR0 ∼ DTCR2).................................... 319 14.4.10 波形制御レジスタ(SIGCR).................................................................................... 328 viii 14.5 多機能タイマ割込み ........................................................................................................... 330 14.6 多機能タイマの動作 ........................................................................................................... 334 14.6.1 16 ビットフリーランタイマの動作 .......................................................................... 335 14.6.2 16 ビットアウトプットコンペアの動作 ................................................................... 341 14.6.3 16 ビットインプットキャプチャの動作 ................................................................... 346 14.6.4 波形ジェネレータの動作 .......................................................................................... 348 14.7 多機能タイマ使用上の注意................................................................................................. 360 14.8 多機能タイマのプログラム例 ............................................................................................. 363 第 15 章 マルチパルスジェネレータ .....................................................................367 15.1 マルチパルスジェネレータの概要...................................................................................... 368 15.2 マルチパルスジェネレータのブロックダイヤグラム ......................................................... 372 15.3 マルチパルスジェネレータの端子...................................................................................... 379 15.4 マルチパルスジェネレータのレジスタ............................................................................... 381 15.4.1 出力制御レジスタ上位 , 下位(OPCUR, OPCLR)................................................... 384 15.4.2 出力データレジスタ上位 , 下位(OPDRH, OPDRL)............................................... 388 15.4.3 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB).......................................... 391 15.4.4 入力制御レジスタ上位 , 下位(IPCUR, IPCLR)...................................................... 394 15.4.5 コンペアクリアレジスタ上位 , 下位(CPCRH, CPCRL)........................................ 398 15.4.6 タイマバッファレジスタ上位 , 下位(TMBRH, TMBRL)........................................ 399 15.4.7 ノイズキャンセル制御レジスタ(NCCR)............................................................... 400 15.4.8 タイマ状態制御レジスタ(TCSR)........................................................................... 402 15.5 マルチパルスジェネレータの割込み .................................................................................. 404 15.6 マルチパルスジェネレータの動作...................................................................................... 407 15.6.1 位置検出の動作 ........................................................................................................ 409 15.6.2 データ書込み制御ユニットの動作............................................................................ 411 15.6.3 出力データバッファレジスタの動作 ........................................................................ 415 15.6.4 出力データレジスタへのデータ転送動作................................................................. 417 15.6.5 DTTI 入力制御の動作 ............................................................................................... 431 15.6.6 ノイズ除去機能の動作 ............................................................................................. 434 15.6.7 16 ビットタイマの動作 ............................................................................................ 435 15.7 マルチパルスジェネレータ使用上の注意 ........................................................................... 439 15.8 マルチパルスジェネレータのプログラム例 ....................................................................... 441 第 16 章 PWC タイマ ............................................................................................443 16.1 PWC タイマの概要............................................................................................................. 444 16.2 PWC タイマのブロックダイヤグラム ................................................................................ 445 16.3 PWC タイマの端子............................................................................................................. 446 16.4 PWC タイマのレジスタ...................................................................................................... 448 16.4.1 PWC 状態制御レジスタ(PWCSH0, PWCSH1, PWCSL0, PWCSL1).................... 449 16.4.2 PWC データバッファレジスタ(PWCH0, PWCH1, PWCL0, PWCL1).................. 454 16.4.3 分周比制御レジスタ(DIV0, DIV1).......................................................................... 455 16.5 PWC タイマの割込み ......................................................................................................... 456 16.6 PWC タイマの動作............................................................................................................. 458 16.6.1 動作モードの選択..................................................................................................... 461 16.6.2 タイマとパルス幅測定の起動 / 停止と , タイマクリア............................................. 462 16.6.3 タイマモード時の動作 ............................................................................................. 464 16.6.4 パルス幅測定モード時の動作................................................................................... 467 16.7 PWC タイマ使用上の注意 .................................................................................................. 472 ix 16.8 PWC タイマのプログラム例 .............................................................................................. 474 第 17 章 UART ......................................................................................................477 17.1 UART の概要 ...................................................................................................................... 478 17.2 UART のブロックダイヤグラム ......................................................................................... 480 17.3 UART の構成 ...................................................................................................................... 483 17.3.1 シリアル制御レジスタ 0, 1(SCR0, SCR1)............................................................ 485 17.3.2 シリアルモードレジスタ 0, 1(SMR0, SMR1)........................................................ 487 17.3.3 シリアルステータスレジスタ 0, 1(SSR0, SSR1).................................................. 489 17.3.4 シリアル入力データレジスタ 0, 1(SIDR0, SIDR1), シリアル出力データレジスタ 0, 1(SODR0, SODR1)................................................. 492 17.3.5 通信プリスケーラ制御レジスタ(CDCR0, CDCR1)............................................... 494 17.4 UART の割込み................................................................................................................... 495 17.4.1 受信割込み発生とフラグ設定のタイミング ............................................................. 497 17.4.2 送信割込み発生とフラグ設定のタイミング ............................................................. 499 17.5 UART のボーレート ........................................................................................................... 500 17.5.1 専用ボーレートジェネレータによるボーレート ...................................................... 502 17.5.2 内部タイマ(16 ビットリロードタイマ)によるボーレート................................... 505 17.5.3 外部クロックによるボーレート ............................................................................... 507 17.6 UART の動作説明 ............................................................................................................... 508 17.6.1 非同期モード(動作モード 0, 1)時の動作 ............................................................. 510 17.6.2 クロック同期モード(動作モード 2)時の動作....................................................... 514 17.6.3 双方向通信機能(動作モード 0, 2).......................................................................... 516 17.6.4 マスタ / スレーブ型通信機能(マルチプロセッサモード時)................................... 518 17.7 UART 使用上の注意 ........................................................................................................... 521 17.8 UART のプログラム例........................................................................................................ 522 第 18 章 DTP/ 外部割込み .....................................................................................525 18.1 DTP/ 外部割込みの概要...................................................................................................... 526 18.2 DTP/ 外部割込みのブロックダイヤグラム ......................................................................... 527 18.3 DTP/ 外部割込みの構成...................................................................................................... 529 18.3.1 DTP/ 外部割込み要因レジスタ(EIRR)................................................................... 530 18.3.2 DTP/ 外部割込み許可レジスタ(ENIR)................................................................... 531 18.3.3 検出レベル設定レジスタ , 上位(ELVRH).............................................................. 533 18.3.4 検出レベル設定レジスタ , 下位(ELVRL)............................................................... 534 18.4 DTP/ 外部割込みの動作説明............................................................................................... 535 18.4.1 外部割込み機能 ........................................................................................................ 538 18.4.2 DTP 機能 .................................................................................................................. 539 18.5 DTP/ 外部割込み使用上の注意 ........................................................................................... 540 18.6 DTP/ 外部割込み回路のプログラム例 ................................................................................ 542 第 19 章 遅延割込み発生モジュール .....................................................................545 19.1 遅延割込み発生モジュールの概要...................................................................................... 546 19.2 遅延割込み発生モジュールのブロックダイヤグラム ......................................................... 547 19.3 遅延割込み発生モジュールの構成...................................................................................... 548 19.3.1 遅延割込み要求発生 / 解除レジスタ(DIRR)........................................................... 549 19.4 遅延割込み発生モジュールの動作説明............................................................................... 550 19.5 遅延割込み発生モジュール使用上の注意 ........................................................................... 551 19.6 遅延割込み発生モジュールのプログラム例 ....................................................................... 552 x 第 20 章 8/10 ビット A/D コンバータ....................................................................553 20.1 8/10 ビット A/D コンバータの概要 .................................................................................... 554 20.2 8/10 ビット A/D コンバータのブロックダイヤグラム........................................................ 556 20.3 8/10 ビット A/D コンバータの端子 .................................................................................... 558 20.4 8/10 ビット A/D コンバータのレジスタ構成 ...................................................................... 560 20.4.1 A/D 制御ステータスレジスタ 1(ADCS1)............................................................... 561 20.4.2 A/D 制御ステータスレジスタ 0(ADCS0)............................................................... 564 20.4.3 A/D データレジスタ(ADCR0, ADCR1).................................................................. 567 20.5 8/10 ビット A/D コンバータの割込み................................................................................. 569 20.6 8/10 ビット A/D コンバータの動作 .................................................................................... 570 20.6.1 EI2OS を使用した場合の変換動作 ........................................................................... 573 20.6.2 A/D 変換データ保護機能 .......................................................................................... 574 20.7 8/10 ビット A/D コンバータ使用上の注意.......................................................................... 576 20.8 8/10 ビット A/D コンバータのプログラム例 1 (EI2OS を使用した場合の単発変換モード)....................................................................... 577 20.9 8/10 ビット A/D コンバータのプログラム例 2 (EI2OS を使用した場合の連続変換モード)....................................................................... 579 20.10 8/10 ビット A/D コンバータのプログラム例 3 (EI2OS を使用した場合の停止変換モード)....................................................................... 582 第 21 章 アドレス一致検出機能 ............................................................................585 21.1 アドレス一致検出機能の概要 ............................................................................................. 586 21.2 アドレス一致検出機能のブロックダイヤグラム ................................................................ 587 21.3 アドレス一致検出機能のレジスタ構成............................................................................... 588 21.3.1 プログラムアドレス検出制御ステータスレジスタ(PACSR)................................. 589 21.3.2 プログラムアドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L)..................... 591 21.4 アドレス一致検出機能の動作説明...................................................................................... 593 21.4.1 アドレス一致検出機能の使用例 ............................................................................... 594 21.5 アドレス一致検出機能のプログラム例............................................................................... 598 第 22 章 ROM ミラー機能選択モジュール............................................................599 22.1 ROM ミラー機能選択モジュールの概要 ............................................................................ 600 22.2 ROM ミラー機能選択モジュールレジスタ(ROMM)........................................................ 602 第 23 章 512K/1024K ビットフラッシュメモリ....................................................605 23.1 512K/1024K ビットフラッシュメモリの概要..................................................................... 606 23.2 フラッシュメモリのレジスタとセクタ構成 ....................................................................... 607 23.3 フラッシュメモリ制御ステータスレジスタ(FMCS)........................................................ 608 23.4 フラッシュメモリ自動アルゴリズム起動方法.................................................................... 611 23.5 自動アルゴリズム実行状態の確認...................................................................................... 613 23.5.1 データポーリングフラグ(DQ7)............................................................................. 615 23.5.2 トグルビットフラグ(DQ6).................................................................................... 617 23.5.3 タイミングリミット超過フラグ(DQ5).................................................................. 618 23.5.4 セクタ消去タイマフラグ(DQ3)............................................................................. 619 23.5.5 トグルビット 2 フラグ(DQ2)................................................................................. 620 23.6 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 622 23.6.1 フラッシュメモリを読出し / リセット状態にする ................................................... 623 23.6.2 フラッシュメモリへデータを書き込む .................................................................... 624 23.6.3 フラッシュメモリのデータを消去する(チップ消去)............................................. 626 xi 23.6.4 フラッシュメモリの任意のデータを消去する(セクタ消去).................................. 627 23.6.5 フラッシュメモリのセクタ消去を一時停止する ...................................................... 629 23.6.6 フラッシュメモリのセクタ消去を再開する ............................................................. 630 23.7 フラッシュセキュリティの特長 ......................................................................................... 631 23.8 512K ビットフラッシュメモリのプログラム例.................................................................. 632 第 24 章 24.1 24.2 24.3 24.4 24.5 付録 付録 A 付録 B 索引 フラッシュシリアル書込み接続例 ..........................................................637 F2MC-16LX ファミリ MB90F462/F462A/F463A シリアル書込み接続の基本構成 ............ 638 シングルチップモード時の接続例(ユーザ電源).............................................................. 641 シングルチップモード時の接続例(ライタ電源).............................................................. 643 フラッシュマイコンプログラマとの最小限の接続例(ユーザ電源).................................. 645 フラッシュマイコンプログラマとの最小限の接続例(ライタ電源).................................. 647 ................................................................................................................649 I/O マップ ....................................................................................................................... 650 命令 ................................................................................................................................ 660 ................................................................................................................721 xii 本版での主な変更内容 ページ - 変更内容(詳細は本文を参照してください。 MB90460/465 シリーズ に統一 25 第 2 章 デバイスの取扱い に ついて 2.1 デバイス取扱い上の注意 事項 ● 水晶発振回路を変更 ・各量産品において , ご使用される発振子メーカに発振評 価依頼をしてください。を追加 85 第 5 章 クロック 5.3 クロック選択レジスタ (CKSCR) 表 5.3-1 を変更 Bit14 の MCM の機能に「・書込みは動作に影響ありませ ん。」を追加 109 第 6 章 低消費電力モード 6.6 状態遷移図 図 6.6-1 を変更 110 第 6 章 低消費電力モード 6.7 スタンバイモード , リ セットの端子状態 表 6.7-1 の下の説明 *3 を変更 122 第 7 章 割込み 7.3.2 割込み制御レジスタの 機能 サマリ文を変更 229 第 12 章 16 ビットリロードタ イマ 12.1 16 ビットリロードタイ マの概要 ● 外部トリガ入力動作を変更 253 第 12 章 16 ビットリロードタ イマ 12.8 16 ビットリロードタイ マのプログラム例 ● コーディング例を変更 300 第 14 章 多機能タイマ 14.4.3 タイマ状態制御レジス タ (TCCSH, TCCSL) 表 14.4-2 の bit3 に・"1" を書き込んだ後 , 次のカウントク ロックまでにこのビットへの "0" 書込みを行うと , カウン タ値の初期化は行われません。を追加 530 第 18 章 DTP/ 外部割込み 18.3.1 DTP/ 外部割込み要因 レジスタ (EIRR) ■ DTP/ 外部割込み要因レジスタ (EIRR) を変更 <注意事項>を追加 531 第 18 章 DTP/ 外部割込み 18.3.2 DTP/ 外部割込み許可 レジスタ (ENIR) ■ DTP/ 外部割込み許可レジスタ (ENIR) を変更 <注意事項>を追加 535 第 18 章 DTP/ 外部割込み 18.4 DTP/ 外部割込みの動作 説明 ● 設定の手順を変更 1. 外部割込み入力として使用する端子と兼用する汎用入 出力ポートを入力ポートに設定する。を追加 xiii ページ 変更内容(詳細は本文を参照してください。 540 第 18 章 DTP/ 外部割込み 18.5 DTP/ 外部割込み使用上 の注意 ● 外部割込みの入力極性を変更 要求入力レベルがレベル設定の場合 , パルス幅はデータ シートに記載されている最少パルス幅以上の期間を必要 とします。また割込み入力端子がアクティブレベルを保 持しつづけている限りは , DTP/ 外部割込み要因レジスタ をクリアしても , 割込みコントローラへの割込み要求は 発生し続けます。を追加 566 第 20 章 8/10 ビット A/D コン バータ 20.4.2 A/D 制御ステータスレ ジスタ 0 (ADCS0) 表 20.4-2 を変更 bit5 ∼ bit3 に ( 注意事項 ) を追加 629 第 23 章 512K/1024K ビット フラッシュメモリ 23.6.5 フラッシュメモリの セクタ消去を一時停止する ■ フラッシュメモリのセクタ消去を一時停止するを変更 最後の文を次のとおり変更 • 最大 15µs → 最大 20µs • セクタ消去一時停止コマンドは , セクタ消去コマンドあ るいはセクタ消去再開コマンド発行後 , 20µs 以上後に 行ってください。 639 第 24 章 フラッシュシリアル 書込み接続例 24.1 F2MC-16LX ファミリ MB90F462/F462A/F463A シリ アル書込み接続の基本構成 表 24.1-1 を変更 変更箇所は , 本文中のページ左側の│によって示しています。 xiv 第1章 概要 MB90460/465 シリーズの主な特長と基本仕様につ いて説明します。 1.1 MB90460/465 シリーズの特長 1.2 MB90460/465 シリーズの製品一覧 1.3 MB90460/465 シリーズのブロックダイヤグラム 1.4 端子配列図 1.5 外形寸法図 1.6 I/O 端子と端子機能説明 1.7 I/O 回路の種類 1 第 1 章 概要 1.1 MB90460/465 シリーズの特長 MB90460/465 シリーズは , 高速リアルタイム処理を必要とするアプリケーション用 に設計された 16 ビット汎用マイクロコントローラであり , さまざまな工業用機械や モータ(交流インダクションモータやブラシレス直流モータ)の制御に適した製品 です。このマイクロコントローラは , 交流 / 直流モータ制御用の多機能タイマと , さ まざまな型の波形を生成できる直流モータ制御用のマルチパルスジェネレータから 構成されています。 命令セットは , コントローラのアプリケーションに対して最適化されるように設計 されており , かつ F2MC-16LX ファミリの AT アーキテクチャを継承していることに より , 広範にわたる制御作業を効率的かつ高速で処理することを可能とします。 ■ MB90460/465 シリーズの特長 ● クロック • 組込み PLL クロック逓倍回路 • 動作クロック(PLL クロック)としては , 原発振の 2 分周かあるいは原発振の 1 か ら 4 逓倍した周波数(原発振が 4MHz の場合は 4MHz, 8MHz, 12MHz, 16MHz のいず れか)から選択できます。 • 最小命令実行時間は62.5 ns(原発振が4MHz, PLLクロックが4逓倍, VCC が 5.0Vの時) ● 16M バイトの CPU アドレス空間 • 24 ビットの内部アドレス ● アプリケーションに対して最適化された命令セット • 豊富なデータタイプ(ビット , バイト , ワード , ロングワード) • 豊富なアドレス指定モード(23 種類) • 高いコード効率 • 32 ビットアキュムレータにより実現される高精度演算 ● 高級言語(C)とマルチタスク処理用に設計された命令セット • システムスタックポインタを採用 • 高度なポインタ間接命令 • バレルシフト命令 ● プログラムパッチ機能(2 アドレスポインタ) ● 向上した実行速度 • 4 バイト命令キュー ● 強力な割込み機能 • 優先順位を設定可能 : 8 レベル • 32 の強力な割込み要因 2 第 1 章 概要 ● CPU 動作に依存しない自動データ転送機能 • 拡張インテリジェント I/O サービス機能(EI2OS) • 最大 16 チャネル ● 低消費電力モード(スタンバイモード) • スリープモード(CPU 動作クロックが停止しているモード) • タイムベースタイマモード(発振とタイムベースタイマ以外が停止しているモー ド) • ストップモード(発振が停止しているモード) • CPU 間欠動作モード ● パッケージ • LQFP-64 (FPT-64P-M09: 0.65mm ピッチ) • LQFP-64 (FPT-64P-M06: 1.00mm ピッチ) • SDIP-64 (DIP-64P-M01: 1.78mm ピッチ) ● プロセス • CMOS ■ リソース ● I/O ポート • 最大 51 ポート ● 18 ビットタイムベースカウンタ / ウォッチドッグタイマ : 1 チャネル ● ウォッチドッグタイマ : 1 チャネル ● PWC: 2 チャネル ● 16 ビットリロードタイマ : 1 チャネル ● 16 ビット PPG タイマ : 1 チャネル ● 多機能タイマ(交流 / 直流モータ制御用): 1 チャネル • 16 ビットフリーランタイマ(アップモードまたはアップ / ダウンモードの選択が可 能であり , バッファ付き): 1 チャネル • 16 ビットアウトプットコンペア(バッファ付き): 6 チャネル • 16 ビットインプットキャプチャ :4 チャネル • 16 ビット PPG タイマ : 1 チャネル • 波形ジェネレータ(バッファとコンペアクリア機能付き 16 ビットタイマを搭載) ● マルチパルスジェネレータ(直流モータ制御用): 1 チャネル • 16 ビットリロードタイマ :1 チャネル • 16 ビット PPG タイマ : 1 チャネル • 波形シーケンサ(バッファとコンペアクリア機能付き 16 ビットタイマを搭載) 3 第 1 章 概要 ● UART: 2 チャネル • 全二重の二重バッファ(8 ビット長)を搭載 • クロック非同期転送またはクロック同期転送(スタートビットとストップビットを 使用)を選択的に使用可能 ● DTP/ 外部割込み回路 : 8 チャネル • 拡張インテリジェント I/O サービス(EI2OS)の起動および外部入力をトリガとする 外部割込み生成用モジュール ● 遅延割込み生成モジュール • タスク切換え割込み要求を生成 ● 8/10 ビット A/D コンバータ : 8 チャネル • 8/10 ビット分解能 4 第 1 章 概要 MB90460/465 シリーズの製品一覧 1.2 MB90460/465 シリーズの製品一覧を表 1.2-1 に示します。 ■ MB90460/465 シリーズの製品一覧 表 1.2-1 MB90460/465 シリーズの製品一覧 ( 1 / 2 ) 型格 項目 MB90V460 分類 − ROM 容量 − RAM 容量 8K バイト エミュレータ 専用電源 * 無 MB90F462 MB90F462A MB90F463A フラッシュ ROM 64K バイト MB90462 MB90467 マスク ROM 128K バイト 64K バイト 2K バイト − − − − − CPU 機能 命令数 : 351 最大実行時間 : 62.5ns/4MHz (PLL: 4MHz × 4) アドレス指定モード : 23 データビット長 : 1, 8, 16 ビット 最大メモリ空間 : 16M バイト I/O ポート I/O ポート(CMOS): 51 PWC パルス幅カウンタタイマ : 2 チャネル UART 全二重の二重バッファ(8 ビット長)を搭載 クロック非同期転送またはクロック同期転送(スタートビットとストップビット使 用)を選択的に使用可能 1 チャネル リロードタイマ : 2 チャネル 16 ビットリ リロードモード , シングルショットモードまたはイベントカウントモードを選択可能 ロードタイマ マルチパルスジェネレータと一緒に動作することが可能。また単独での動作も可能 16 ビット PPG タイマ PPG タイマ : 3 チャネル PWM モードまたはシングルショットモードを選択可能 多機能タイマ / マルチパルスジェネレータと一緒に動作することが可 能。また単独での動作も可能 2 チャネル 16 ビットフリーランタイマ(アップモードまたはアップ / ダウンモード選択可能。 多機能タイマ バッファ付き): 1 チャネル 16 ビットアウトプットコンペア : 6 チャネル (交流 / 直流 16 ビットインプットキャプチャ : 4 チャネル モータ制御 用) 16 ビット PPG タイマ : 1 チャネル 波形ジェネレータ(16 ビットタイマ : 3 チャネル。3 位相波形またはデッドタイム) 5 第 1 章 概要 表 1.2-1 MB90460/465 シリーズの製品一覧 ( 2 / 2 ) 型格 項目 MB90V460 MB90F462 MB90F462A MB90F463A MB90462 16 ビット PPG タイマ : 1 チャネル 16 ビットリロードタイマ動作(トグル出力またはワンショット出力を マルチパルス ジェネレータ 選択可能) (直流モータ イベントカウンタ機能(1 チャネル内蔵) 制御用) 波形シーケンサ(バッファとコンペアクリア機能付き 16 ビットタイ マを搭載) MB90467 − 8/10 ビット 8/10 ビット分解能(8 チャネル) A/D コンバー 変換時間 : 6.13µs 未満(16 MHz 内部クロック) タ 外部割込み 独立した 8 チャネル 選択可能な要因 : 立上がり , 立下がり , "L" レベルまたは "H" レベル 低消費電力 停止モード , スリープモード , CPU 間欠動作モード プロセス CMOS パッケージ PGA256 動作電圧 5V ± 10% @16MHz LQFP-64 (FPT-64P-M09: 0.65mm ピッチ) LQFP-64 (FPT-64P-M06: 1.00mm ピッチ) SDIP-64 (DIP-64P-M01: 1.78mm ピッチ) *: エミュレーションポッド(MB2145-507)を使用頂く際のディップスイッチ(S2)の設定です。詳 細につきましては『MB2145-507 ハードウェアマニュアル(2.7 エミュレータ専用電源端子)』をご 参照ください。 6 第 1 章 概要 1.3 MB90460/465 シリーズのブロックダイヤグラム MB90460/465 シリーズの全体ブロックダイヤグラムを図 1.3-1 に示します。 ■ MB90460/465 シリーズの全体ブロックダイヤグラム 図 1.3-1 MB90460/465 シリーズの全体ブロックダイヤグラム X0 CPU クロック 制御回路 X1 F2MC-16LX ファミリコア タイムベースタイマ リセット回路 (ウォッチドッグタイマ) RST その他のピン Vss x 2,Vcc x 1,MD0-2,C 遅延割込みジェネレータ 割込みコントローラ 多機能タイマ P37/PPG0 16 ビット PPG タイマ P11/INT1 ・P13/INT3 ・P14/INT4 (ch.0) 2 8 DTP/ 外部割込み 16 ビット インプットキャプチャ P40/SIN0 P41/SOT0 P42/SCK0 (ch.0~ch.3) UART (ch.0) 16 ビット フリーランタイマ マルチパルスジェネレータ*2 (ch.1) 16 ビット リロードタイマ (ch.0) P43/SNI0*2 to 3 P45/SNI2*2 3 P00/OPT0*2 P01/OPT1*2 P02/OPT2*2 P03/OPT3*2 P04/OPT4*2 P05/OPT5*2 P12/INT2/DTTI1*2 波形シーケンサ*1 PWC*1 (ch.0) P06/PWI0*2 P07/PW00*2 P30/RTO0(U) P31/RTO1(X) P32/RTO2(V) P33/RTO3(Y) P34/RTO4(W) P35/RTO5(Z) アウトプットコンペア F2MC-16LX バス P15/INT5/TIN0 P16/INT6/T00 P17/FRCK 16 ビット 16ビットPPGタイマ*1 P36/PPG1*2 4 ・P24/IN0 ・P27/IN3 4 (ch.0~ch.5) 波形ジェネレータ P10/INT0/DTTI0 16 ビット リロードタイマ (ch.1) P20/TIN1 P21/TO1 PWC (ch.1) P22/PWI1 P23/PWO1 P60/SIN1 P61/SOT1 P62/SCK1 UART (ch.1) P63/INT7 16ビットPPGタイマ P46/PPG2 (ch.2) CMOS I/O ポート 0,1,3,4 CMOS I/O ポート 1,2,3,6 CMOS I/O ポート 5 RAM ROM アドレス一致検出機能 A/D コンバータ (8/10 ビット) 8 P50/AN0 P51/AN1 P52/AN2 P53/AN3 P54/AN4 P55/AN5 P56/AN6 P57/AN7 ROM ミラーリング (注意事項) P00 P10 *1: *2: P07(8チャネル): 入力プルアップ抵抗として使用可能なレジスタを搭載 P17(8チャネル): 入力プルアップ抵抗として使用可能なレジスタを搭載 MB90467には,搭載されていません。 MB90467では,リソースが搭載されていないため,削除となります。 AVCC AVR AVSS 7 第 1 章 概要 1.4 端子配列図 MB90460/465 シリーズの端子配列図を図 1.4-1 ∼図 1.4-3 に示します。 ■ 端子配列図(FPT-64P-M06) P55/AN5 P56/AN6 P57/AN7 AVCC AVR AVSS P60/SIN1 P61/SOT1 P62/SCK1 P63/INT7 9 10 11 12 13 14 15 16 17 18 19 P33/RTO3(Y)*1 P32/RTO2(V)*1 P31/RTO1(X)*1 53 52 55 54 58 57 56 P37/PPG0 P36/PPG1*2 C VCC P35/RTO5(Z)*1 P34/RTO4(W)*1 (TOP VIEW) (FPT-64P-M06) RST MD1 MD2 X0 X1 VSS P00/OPT0*1,2 P01/OPT1*1,2 P02/OPT2*1,2 P03/OPT3*1,2 P04/OPT4*1,2 P05/OPT5*1,2 P06/PWI0*2 20 21 22 MD0 QFP-64 31 32 7 8 29 30 P53/AN3 P54/AN4 26 27 28 P46/PPG2 P50/AN0 P51/AN1 P52/AN2 1 2 3 4 5 6 23 24 25 P44/SNI1*2 P45/SNI2*2 61 60 59 P42/SCK0 P41/SOT0 P40/SIN0 64 63 62 P43/SNI0*2 図 1.4-1 端子配列図(FPT-64P-M06) *1:大電流端子 *2:MB90467では,リソースが搭載されていないため,削除となります。 8 51 50 49 48 47 46 P30/RT00(U)*1 VSS 45 44 P23/PWO1 P22/PWI1 43 42 41 40 39 38 37 36 35 34 33 P21/TO1 P20/TIN1 P17/FRCK P16/INT6/TO0 P15/INT5/TIN0 P14/INT4 P13/INT3 P12/INT2/DTTI1*2 P11/INT1 P10/INT0/DTTI0 P07/PW00*2 P27/IN3 P26/IN2 P25/IN1 P24/IN0 第 1 章 概要 ■ 端子配列図(FPT-64P-M09) 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 P44/SNI1*2 P43/SNI0*2 P42/SCK0 P41/SOT0 P40/SIN0 P37/PPG0 P36/PPG1*2 C VCC P35/RTO5(Z)*1 P34/RTO4(W)*1 P33/RTO3(Y)*1 P32/RTO2(V)*1 P31/RTO1(X)*1 P30/RTO0(U)*1 VSS 図 1.4-2 端子配列図(FPT-64P-M09) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 QFP-64 (TOP VIEW) (FPT-64P-M09) 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 P27/IN3 P26/IN2 P25/IN1 P24/IN0 P23/PWO1 P22/PWI1 P21/TO1 P20/TIN1 P17/FRCK P16/INT6/TO0 P15/INT5/TIN0 P14/INT4 P13/INT3 P12/INT2/DTTI1*2 P11/INT1 P10/INT0/DTTI0 P63/INT7 MD0 RST MD1 MD2 X0 X1 VSS P00/OPT0*1,2 P01/OPT1*1,2 P02/OPT2*1,2 P03/OPT3*1,2 P04/OPT4*1,2 P05/OPT5*1,2 P06/PWI0*2 P07/PWO0*2 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 P45/SNI2*2 P46/PPG2 P50/AN0 P51/AN1 P52/AN2 P53/AN3 P54/AN4 P55/AN5 P56/AN6 P57/AN7 AVCC AVR AVSS P60/SIN1 P61/SOT1 P62/SCK1 *1:大電流端子 *2:MB90467では,リソースが搭載されていないため,削除となります。 9 第 1 章 概要 ■ 端子配列図(DIP-64P-M01) 図 1.4-3 端子配列図(DIP-64P-M01) C P36/PPG1*2 P37/PPG0 P40/SIN0 P41/SOT0 P42/SCK0 P43/SNI0*2 P44/SNI1*2 P45/SNI2*2 P46/PPG2 P50/AN0 P51/AN1 P52/AN2 P53/AN3 P54/AN4 P55/AN5 P56/AN6 P57/AN7 AVCC AVR AVSS P60/SIN1 P61/SOT1 P62/SCK1 P63/INT7 MD0 RST MD1 MD2 X0 X1 VSS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 SDIP-64 (TOP VIEW) (DIP-64P-M01) *1:大電流端子 *2:MB90467では,リソースが搭載されていないため,削除となります。 10 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 VCC P35/RTO5(Z)*1 P34/RTO4(W)*1 P33/RTO3(Y)*1 P32/RTO2(V)*1 P31/RTO1(X)*1 P30/RTO0(U)*1 VSS P27/IN3 P26/IN2 P25/IN1 P24/IN0 P23/PWO1 P22/PWI1 P21/TO1 P20/TIN1 P17/FRCK P16/INT6/TO0 P15/INT5/TIN0 P14/INT4 P13/INT3 P12/INT2/DTTI1*2 P11/INT1 P10/INT0/DTTI0 P07/PWO0*2 P06/PWI0*2 P05/OPT5*1,2 P04/OPT4*1,2 P03/OPT3*1,2 P02/OPT2*1,2 P01/OPT1*1,2 P00/OPT0*1,2 第 1 章 概要 外形寸法図 1.5 MB90460/465 シリーズには , 3 種類のパッケージが用意されています。 なお , 本外形寸法図は参考用です。正式版につきましては別途ご相談ください。 ■ DIP-64P-M01 の外形寸法図 プラスチック・SH-DIP, 64 ピン リードピッチ 1.778mm パッケージ幅× パッケージ長さ 17 × 58mm 封止方法 プラスチックモールド 取付け高さ 5.65mm MAX (DIP-64P-M01) プラスチック・SH-DIP, 64 ピン (DIP-64P-M01) 注)端子幅および端子厚さはメッキ厚を含む。 +0.22 +.009 58.00 –0.55 2.283 –.022 INDEX-1 17.00±0.25 (.669±.010) INDEX-2 +0.70 4.95 –0.20 +.028 .195 –.008 +0.50 0.70 –0.19 +.020 .028 –.007 0.27±0.10 (.011±.004) +0.20 3.30 –0.30 .130 +.008 –.012 1.378 .0543 C +0.40 –0.20 +.016 –.008 1.778(.0700) 0.47±0.10 (.019±.004) 19.05(.750) +0.50 0.25(.010) M 1.00 –0 .039 +.020 –.0 2001-2008 FUJITSU MICROELECTRONICS LIMITED D64001S-c-4-6 0~15 単位:mm (inches) 注意:括弧内の値は参考値です。 最新の外形寸法図については , 下記の URL にてご確認ください。 http://edevice.fujitsu.com/package/jp-search/ 11 第 1 章 概要 ■ FPT-64P-M06 の外形寸法図 プラスチック・QFP, 64 ピン リードピッチ 1.00mm パッケージ幅× パッケージ長さ 14 × 20mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 3.35mm MAX コード(参考) P-QFP64-14×20-1.00 (FPT-64P-M06) プラスチック・QFP, 64 ピン (FPT-64P-M06) 注 1)* 印寸法はレジン残りを含まず。 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 24.70±0.40(.972±.016) * 20.00±0.20(.787±.008) 51 0.17±0.06 (.007±.002) 33 32 52 18.70±0.40 (.736±.016) *14.00±0.20 Details of "A" part (.551±.008) 3.00 –0.20 INDEX +0.35 +.014 .118 –.008 (Mounting height) 20 64 0~8° 1 19 1.00(.039) 0.42±0.08 (.017±.003) 0.20(.008) +0.15 M 0.25 –0.20 1.20±0.20 (.047±.008) +.006 .010 –.008 (Stand off) "A" 0.10(.004) C 2003-2008 FUJITSU MICROELECTRONICS LIMITED F64013S-c-5-6 最新の外形寸法図については , 下記の URL にてご確認ください。 http://edevice.fujitsu.com/package/jp-search/ 12 単位:mm (inches) 注意:括弧内の値は参考値です。 第 1 章 概要 ■ FPT-64P-M09 の外形寸法図 プラスチック・LQFP, 64 ピン リードピッチ 0.65mm パッケージ幅× パッケージ長さ 12 × 12mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 1.70mm MAX コード(参考) P-LQFP64-12×12-0.65 (FPT-64P-M09) プラスチック・LQFP, 64 ピン (FPT-64P-M09) 注 1)* 印寸法はレジン残りを含まず。 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 14.00±0.20(.551±.008)SQ * 12.00±0.10(.472±.004)SQ 48 0.145±0.055 (.0057±.0022) 33 49 32 0.10(.004) Details of "A" part +0.20 1.50 –0.10 +.008 .059 –.004 (Mounting height) 0.25(.010) INDEX 0~8° 64 17 1 0.65(.026) C "A" 16 0.32±0.05 (.013±.002) 0.13(.005) 0.50±0.20 (.020±.008) 0.60±0.15 (.024±.006) 0.10±0.10 (.004±.004) (Stand off) M 2003-2008 FUJITSU MICROELECTRONICS LIMITED F64018S-c-3-6 単位:mm (inches) 注意:括弧内の値は参考値です。 最新の外形寸法図については , 下記の URL にてご確認ください。 http://edevice.fujitsu.com/package/jp-search/ 13 第 1 章 概要 1.6 I/O 端子と端子機能説明 MB90460/465 シリーズの I/O 端子とこれらの端子の機能を表 1.6-1 に示し , I/O 回路 の種類を表 1.7-1 に示します。 表 1.6-1 における“I/O 回路の種類”欄の英字は , 表 1.7-1 における“分類”欄の英 字を示します。 ■ I/O 端子と端子機能 表 1.6-1 I/O 端子と端子機能 (1 / 5) 端子番号 端子名 I/O 回路 リセット 時の端子 の状態 QFPM09*1 QFPM06*2 SDIP*3 22, 23 23, 24 30, 31 X0, X1 A 発振中 19 20 27 RST B リセット 入力 P00 ∼ P05 25 ∼ 30 26 ∼ 31 33 ∼ 38 39 32 33 40 PWI0*4 汎用入出力ポートです。 E PWC 0 信号入力端子です。*4 P07 PWO0*4 汎用入出力ポートです。 E INT0 34 41 C P11 35 42 14 外部割込み要求入力チャネル 0 として使用できま す。スタンバイモード時には EN0 に "1" を設定 して , 入力ポートに設定した場合に有効になりま す。 汎用入出力ポートです。 C INT1 汎用入出力ポートです。 RTO0 ∼ RTO5 端子使用時の端子レベル固定入力 端子です。この機能は , 波形ジェネレータで各入 力を有効にすると有効になります。 DTTI0 34 PWC 0 信号出力端子です。*4 入力 ポート P10 33 リセット入力外部リセット入力端子です。 波形シーケンサの出力端子(OPTn)です。これ らの端子は , 波形シーケンサ回路の出力データレ ジスタで指定された波形を出力します。波形は OPCR の OPnE を有効にすると出力されます。*4 D OPT0 ∼ P06 32 発振中発振入力端子です。 汎用入出力ポートです。 OPT5*4 31 機能 外部割込み要求入力チャネル 1 として使用できま す。スタンバイモード時には EN1 に "1" を設定 して , 入力ポートに設定した場合に有効になりま す。 第 1 章 概要 表 1.6-1 I/O 端子と端子機能 (2 / 5) 端子番号 QFPM09*1 35 QFPM06*2 36 端子名 SDIP*3 I/O 回路 リセット 時の端子 の状態 機能 P12 汎用入出力ポートです。 INT 外部割込み要求入力チャネル 2 として使用できま す。スタンバイモード時には EN2 に "1" を設定 して , 入力ポートに設定した場合に有効になりま す。 43 C OPTO0 ∼ OPTO5 端子使用時の端子レベル固定入 力端子です。この機能は , 波形シーケンサで各入 DTTI1*4 力を有効にすると有効になります。*4 P13, P14 36, 37 37, 38 44, 45 汎用入出力ポートです。 外部割込み要求入力チャネル 3, 4 として使用でき ます。スタンバイモード時には EN3 と EN4 に "1" を設定して , 入力ポートに設定した場合に有 効になります。 C INT3, INT4 P15 38 39 46 INT5 汎用入出力ポートです。 C 入力 ポート TIN0 P16 39 40 40 41 47 INT6 C リロードタイマ 0 のイベント出力端子です。 P17 汎用入出力ポートです。 48 C 49 P21 43 50 汎用入出力ポートです。 リロードタイマ 1 用のイベント出力端子です。 P22 44 リロードタイマ 1 用の外部クロック入力端子で す。 F TO1 43 フリーランタイマ用の外部クロック入力端子で す。 汎用入出力ポートです。 F TIN1 42 外部割込み要求入力チャネル 6 として使用できま す。スタンバイモード時には EN6 に "1" を設定 して , 入力ポートに設定した場合に有効になりま す。 TO0 P20 42 リロードタイマ 0 用の外部クロック入力端子で す。 汎用入出力ポートです。 FRCK 41 外部割込み要求入力チャネル 5 として使用できま す。スタンバイモード時には EN5 に "1" を設定 して , 入力ポートに設定した場合に有効になりま す。 51 汎用入出力ポートです。 F PWI1 PWC 1 信号入力端子です。 15 第 1 章 概要 表 1.6-1 I/O 端子と端子機能 (3 / 5) 端子番号 端子名 QFPM09*1 QFPM06*2 SDIP*3 44 45 52 I/O 回路 リセット 時の端子 の状態 P23 45 ∼ 48 50 ∼ 55 46 ∼ 49 51 ∼ 56 53 ∼ 56 58 ∼ 63 汎用入出力ポートです。 F PWO1 PWC 1 信号出力端子です。 P24 ∼ P27 汎用入出力ポートです。 IN0 ∼ IN3 インプットキャプチャチャネル 0 ∼ 3 のトリガ入 力端子です。インプットキャプチャトリガ入力を 設定し , 入力ポートを設定した場合に入力できま す。 P30 ∼ P35 汎用入出力ポートです。 F RTO0 ∼ RTO5 波形ジェネレータ出力端子です。これらの端子は , 波形ジェネレータに指定した波形を出力します。 出力波形は , 波形ジェネレータ出力を有効にする と生成されます。 G P36, P37 58, 59 59, 60 2, 3 PPG1*5, PPG0 汎用入出力ポートです。 H 61 61 62 入力 ポート UART チャネル 0 のシリアルデータ入力端子で す。UART チャネル 0 が入力動作中は , シリアル データ以外は入力しないでください。 P41 汎用入出力ポートです。 F 5 F P42 63 6 F P43 64 7 SNI0*4 UART チャネル 0 のシリアルデータ出力端子で す。この機能は , UART チャネル 0 のデータ出力 を有効にすると有効になります。 汎用入出力ポートです。 SCK0 63 汎用入出力ポートです。 SIN0 4 SOT0 62 PPG チャネル 1, 0 の出力端子です。この機能は , PPG チャネル 1, 0 の出力を有効にすると有効にな ります。*5 P40 60 機能 UART チャネル 0 のシリアルクロック I/O 端子で す。この機能は , UART チャネル 0 のクロック出 力を有効にすると有効になります。 汎用入出力ポートです。 F 波形シーケンサの位置検出用トリガ入力端子で す。端子を入力として設定した場合は , トリガ入 力以外は入力しないでください。*4 P44 64 1 8 SNI1*4 汎用入出力ポートです。 F マルチパルスジェネレータの位置検出用トリガ入 力端子です。端子を入力として設定した場合は , トリガ入力以外は入力しないでください。*4 16 第 1 章 概要 表 1.6-1 I/O 端子と端子機能 (4 / 5) 端子番号 QFPM09*1 QFPM06*2 端子名 SDIP*3 I/O 回路 リセット 時の端子 の状態 P45 1 2 9 *4 汎用入出力ポートです。 マルチパルスジェネレータの位置検出用トリガ入 力端子です。端子を入力として設定した場合は , F SNI2 入力 ポート P46 2 3 ∼ 10 3 4 ∼ 11 P50 ∼ P57 汎用入出力ポートです。 I AN0 ∼ AN7 12 19 AVCC − 12 13 20 AVR J 13 14 21 AVSS − アナログ 入力 15 16 電源入力 汎用入出力ポートです。 SIN1 UART チャネル 1 のシリアルデータ入力端子で す。UART チャネルが入力動作中はシリアルデー タ以外は入力しないでください。 P61 汎用入出力ポートです。 22 F 23 UART チャネル 1 のシリアルデータ出力端子で す。この機能は , UART チャネル 1 のデータ出力 を有効にすると有効になります。 F 入力 ポート P62 17 24 P63 18 25 汎用入出力ポートです。 外部割込み要求入力チャネル 7 として使用できま す。スタンバイモード時には EN7 に "1" を設定 して , 入力ポートに設定した場合に有効になりま す。 F INT7 18 20, 21 19 21, 22 26 28, 29 MD0 MD1, MD2 汎用入出力ポートです。 UART チャネル 1 のシリアルクロック I/O 端子で す。この機能は , UART チャネル 1 のクロック出 力を有効にすると有効になります。 F SCK1 17 A/D コンバータのリファレンス入力端子です。こ の電圧は VCC を超えてはいけません。 A/D コンバータの電源入力端子(0V)です。 SOT1 16 A/D コンバータアナログ入力端子です。この機能 は , アナログ入力を有効すると有効になります (ADER)。 A/D コンバータの電源入力端子です。 P60 15 汎用入出力ポートです。 PPG チャネル 2 の出力端子です。この機能は , PPG チャネル 2 の出力を有効にすると有効になり ます。 F 11 14 トリガ入力以外は入力しないでください。*4 PPG2 10 11 ∼ 18 機能 L モード 入力 L 動作モードの指定用入力端子です。この端子は , VCC または VSS に直結してください。 動作モードの指定用入力端子です。この端子は , VCC または VSS に直結してください。 17 第 1 章 概要 表 1.6-1 I/O 端子と端子機能 (5 / 5) 端子番号 QFPM09*1 QFPM06*2 SDIP*3 24, 49 25, 50 32, 57 56 57 64 端子名 I/O 回路 VSS − VCC リセット 時の端子 の状態 機能 電源(0V)入力端子です。 電源入力 − 電源(5V)入力端子です。 *1: FPT-64P-M09 *2: FPT-64P-M06 *3: DIP-64P-M01 *4:MB90467 では , リソースが搭載されていないため , 削除となります。 *5:MB90467 では , リソースが搭載されていないため , PPG1 は削除となります。 18 第 1 章 概要 1.7 I/O 回路の種類 MB90460/465 シリーズの I/O 回路の種類を表 1.7-1 に示します。 ■ I/O 回路の種類 表 1.7-1 入出力回路形式 ( 1 / 3 ) 分類 回路 備考 A 発振回路 • 発振帰還抵抗は約 1MΩ X1 Xout N-ch P-ch P-ch X0 N-ch スタンバイ制御信号 B • ヒステリシス入力 • 抵抗は約 50kΩ R ヒステリシス入力 C • R P-ch プルアップ制御信号 P-ch Pout CMOS 出力 • ヒステリシス入力 • プルアップ抵抗選択可能 (約 50kΩ) • IOL=4mA Nout N-ch ヒステリシス入力 スタンバイ制御信号 D • R P-ch プルアップ制御信号 P-ch N-ch Pout CMOS 出力 • CMOS 入力 • プルアップ抵抗選択可能 (約 50kΩ) • IOL=12mA Nout CMOS 入力 スタンバイ制御信号 19 第 1 章 概要 表 1.7-1 入出力回路形式 ( 2 / 3 ) 分類 回路 備考 E • R P-ch プルアップ制御信号 P-ch N-ch Pout CMOS 出力 • CMOS 入力 • プルアップ抵抗選択可能 (約 50kΩ) • IOL=4mA Nout CMOS 入力 スタンバイ制御信号 F • P-ch N-ch Pout CMOS 出力 • ヒステリシス入力 • IOL=4mA Nout ヒステリシス入力 スタンバイ制御信号 G • P-ch N-ch Pout CMOS 出力 • CMOS 入力 • IOL=12mA Nout CMOS 入力 スタンバイ制御信号 H • P-ch N-ch Pout Nout CMOS 入力 スタンバイ制御信号 20 CMOS 出力 • CMOS 入力 • IOL=4mA 第 1 章 概要 表 1.7-1 入出力回路形式 ( 3 / 3 ) 分類 回路 備考 I • P-ch N-ch CMOS 出力 • CMOS 入力 • A/D コンバータアナログ入力 • IOL=4mA Pout Nout CMOS 入力 アナログ入力制御信号 A/D コンバータアナログ入力 J P-ch • 保護回路付き A/D コンバータ基準 電圧(AVR)入力端子 • ヒステリシス入力 A/D コンバータ アナログ入力 有効 アナログ入力 N-ch A/D コンバータ アナログ入力 有効 K ヒステリシス入力 21 第 1 章 概要 22 第2章 デバイスの取扱い について デバイスの取扱い上の注意について説明します。 2.1 デバイス取扱い上の注意事項 23 第 2 章 デバイスの取扱い について 2.1 デバイス取扱い上の注意事項 デバイスを取扱う際には , 以下の項目について特に注意してください。 • 最大定格電圧の厳守(ラッチアップの防止) • 供給電圧の安定化 • 電源端子 • 水晶発振回路 • 外部クロックを使用する場合 • PLL クロックモード動作中の注意について • 未使用入力端子の処理 • N.C. 端子の処理 • A/D コンバータを使用しない場合の端子処理 ■ デバイス取扱い上の注意事項 ● 最大定格電圧の厳守(ラッチアップの防止) • CMOS IC においては , 中・高耐圧以外の入力端子や出力端子に , VCC よりも高い電 圧や VSS より低い電圧が印加された場合または , VCC に定格を超える電圧が印加さ れた場合に , ラッチアップ現象を発生する場合があります。 ラッチアップが発生した場合 , 電源電流が激増し , 素子の熱破壊に至る場合があり ますので , 使用に際しては最大定格を超えないように注意してください。 • アナログ電源を投入または切断する場合 , アナログ供給電圧(AVCC, AVR)とアナ ログ入力電圧は , ディジタル電源電圧(VCC)を超えないように注意してください。 ● 供給電圧の安定化 • VCC 電源電圧の動作保障範囲内であっても , 電源電圧が急激に変化した場合は , 誤 動作を起こす場合がありますので , VCC 電源電圧を安定させてください。 • 安定化の基準としましては , 商用周波数(50Hz ∼ 60Hz)での VCC リップル変動 (peak to peak 値)を標準 VCC 電源電圧値の "10%" 以下に , また , 電源を切り換える 瞬時変化におきましては過渡変動率が 0.1V/ms 以下になるように電源電圧を安定さ せてください。 ● 電源端子 • 電流供給源は , 低インピーダンスでデバイスの VCC へ接続してください。 • 電源ノイズ対策として , VCC や VSS 端子間(デバイスの VCC や VSS 端子の近く)に 0.1μF 程度のコンデンサをバイパスコンデンサとして接続してください。 24 第 2 章 デバイスの取扱い について ● 水晶発振回路 • X0 や X1 端子へのノイズは , デバイスの誤動作の原因となります。X0 端子 , 水晶振 動子(あるいはセラミック振動子)およびグランドへのバイパスコンデンサは , X0 や X1 端子の近くに接続してください。 また , X0 や X1 端子の配線は , ほかの配線と交差しないようにプリント基板を設計 してください。 • X0 や X1 端子の回りをグランドで囲むようなプリント基板アートワークは , 安定し た動作を期待できます。 • 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。 ● 外部クロックを使用する場合 • 外部クロックを使用する場合は , X0 端子のみを駆動し , X1 端子は開放してくださ い。外部クロック使用例を図 2.1-1 に示します。 図 2.1-1 外部クロックの適用例 X0 MB90460/465シリーズ 開放 X1 ● PLL クロックモード動作中の注意について • 本マイコンで PLL クロックを選択しているときに発振子が外れたり , あるいはク ロック入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で 動作を継続し続ける場合があります。この動作は保証外の動作です。 ● 未使用入力端子の処理 • 使用していない入力端子を開放のままにした場合 , 誤動作およびラッチアップによ る永久破壊の原因となることがあります。2kΩ 以上の抵抗を介してプルアップまた はプルダウン処理してください。 また , 使用していない入出力端子が存在する場合は , 出力状態に設定して開放する か , 入力状態に設定して入力端子と同じように処理してください。 ● N.C. 端子の処理 • N.C.(内部接続)端子は , 必ず開放にして使用してください。 ● A/D コンバータを使用しない場合の端子処理 • A/D コンバータを使用しない場合は , AVCC = AVR= VCC, AVSS = VSS となるように 接続してください。 25 第 2 章 デバイスの取扱い について 26 第3章 CPU MB90460/465 シリーズの機能と動作について説明 します。 3.1 CPU の概要 3.2 メモリ空間 3.3 メモリマップ 3.4 アドレス指定 3.5 多バイト長データのメモリ配置 3.6 レジスタ 3.7 専用レジスタ 3.8 汎用レジスタ 3.9 プリフィックスコード 27 第 3 章 CPU 3.1 CPU の概要 F2MC-16LX ファミリ CPU コアは , 民生用や車載用機器等の高速リアルタイム処理 が要求されるアプリケーション用に設計された 16 ビット CPU です。F2MC-16LX ファミリ命令セットは制御アプリケーション用に設計されており , 各種制御の高速 かつ高効率処理が可能です。 F2MC-16LX ファミリ CPU コアは , 内部 32 ビットアキュムレータを搭載しているの で 32 ビット処理も可能です。メモリ空間は最大 16M バイトであり , このメモリ空 間へはリニア方式およびバンク方式のいずれでもアクセス可能です。また , 命令体 系は , F2MC-8L ファミリおよび F2MC-16L ファミリの AT アーキテクチャをベース にして , C 言語対応命令の追加 , アドレス指定モードの拡張 , 乗除算命令の強化およ びビット処理の充実化により強化されています。以下に , F2MC-16LX ファミリ CPU の特長を示します。 ■ CPU の概要 ● 最小命令実行時間 :62.5ns(原発振 4MHz, PLL クロック 4 逓倍のとき) ● 最大メモリ空間 :16M バイト , リニア / バンク方式アドレス指定にてアクセス ● 命令体系 • データタイプ : ビット , バイト , ワード , ロングワード • アドレス指定モード :23 種類 • 32 ビットアキュムレータ採用による演算精度の強化 • 符号付き乗除算 , 拡張 RETI 命令 ● 割込み機能 8 つのプライオリティレベル(プログラマブル) ● CPU に依存しない自動転送機能 最大 16 チャネルまでの拡張インテリジェント I/O サービス ● C 言語 , マルチタスクに対応した命令体系 システムスタックポイントの採用 , 命令セットの対称性 , バレルシフト命令 ● 実行速度の向上 :4 バイトの命令キュー < 注意事項 > 28 MB90460/465 シリーズは , シングルチップモードによる使用となるため , 内蔵 ROM, 内蔵 RAM, リソースの空間のみへアクセスでき , ほかへはアクセスできま せん。 第 3 章 CPU 3.2 メモリ空間 F2MC-16LX ファミリの I/O, プログラムおよびデータは , 16M バイトのメモリ空間に 配置されます。RAM 領域は , 拡張インテリジェント I/O サービス(EI2OS)ディス クリプタおよび汎用レジスタに使用されます。 ■ メモリ空間 I/O, プログラムおよびデータは , F2MC-16LX ファミリ CPU が持つ 16M バイトのメモ リ空間に配置されます。CPU は , 24 ビットのアドレスバスによってメモリ空間のアド レスを示し , 各リソースへアクセスできます。 MB90460/465 シリーズのメモリマップを図 3.2-1 に示します。 図 3.2-1 MB90460/465 シリーズのメモリマップ F2MC-16LX ファミリデバイス プログラム FFFFFFH ベクタテーブル領域 ROM領域 FFC000H FF0000H プログラム領域 *1 100000H 内部データバス F2MC-16LX CPU 外部領域*4 010000H 004000H *2 003FE0H *2 データ 002000H 000D00H *3 EI2OS 000380H 000180H 割込み リソース 汎用ポート 000100H 0000C0H 0000B0H 000020H 000000H ROM領域 (FFバンクのイメージ) リソース制御レジスタ (con't) 外部領域*4 I/O領域 データ領域 汎用レジスタ EI2OSディスク リプタ領域 外部領域*4 割込み制御レジスタ領域 リソース制御レジスタ領域 I/O力ポート制御レジスタ領域 RAM領域 I/O領域 *1:品種によって,内蔵ROM(またはフラッシュメモリ)の容量が異なります。 *2:品種によって,イメージでアクセスできる領域が異なります。 *3:品種によって,内蔵RAMの容量が異なります。 *4:シングルチップモード時には,アクセスできません。 ■ ROM 領域 ● ベクタテーブル領域(アドレス :"FFFC00H ∼ FFFFFFH") • ベクタコール命令 , 割込みベクタおよびリセットベクタの各々のベクタテーブルと して使用します。 • ROM 領域の最上位に割当てられており , 対応する処理ルーチンの開始アドレスをベ クタコール命令 , 割込みベクタおよびリセットベクタのベクタテーブルのアドレス にデータとして設定します。 29 第 3 章 CPU ● プログラム領域(アドレス :" ∼ FFFBFFH") • マスク ROM(またはフラッシュメモリ)が , 内部プログラム領域として内蔵されて います。 • 内蔵 ROM 容量(またはフラッシュメモリ容量)は , 品種によって異なります。 ■ RAM 領域 ● データ領域(アドレス :"000100H" ∼) • スタティック RAM が , 内部データ領域として内蔵されています。 • 内蔵 RAM 容量は , 品種によって異なります。 ● 汎用レジスタ領域(アドレス :"000180H ∼ 00037FH") • 8 ビット , 16 ビット , 32 ビットの演算や転送に使用する汎用レジスタが配置されて います。 • 汎用レジスタとして使用しない場合は , 通常の RAM として使用できます。 • 汎用レジスタとして使用した場合 , 汎用レジスタアドレス指定は , 短い命令による 高速アクセスを可能とします。 ● 拡張インテリジェント I/O サービス(EI2OS)ディスクリプタ領域 (アドレス :"000100H ∼ 00017FH") • 拡張インテリジェント I/O サービス(EI2OS)の転送モード , I/O のアドレス , 転送 数およびバッファアドレスを設定します。 • 拡張インテリジェント I/O サービス(EI2OS)を使用しない場合は , 通常の RAM と して使用できます。 ■ I/O 領域 ● 割込み制御レジスタ領域(アドレス :"0000B0H ∼ 0000BFH") 割込み制御レジスタ(ICR00 ∼ ICR15)は , 割込み機能を持つ全てのリソースに対応し ています。これらのレジスタは割込レベルと拡張インテリジェント I/O サービス (EI2OS)を設定します。 ● リソース制御レジスタ領域(アドレス :"000080H ∼ 00000FH", "000019H ∼ 0000AFH", "003FE0H ∼ 003FFFH") これらのレジスタはリソースを制御し , かつデータを入出力します。I/O アドレスを指 定する命令(MOV A, io)は 003FE0H ∼ 003FFFH レジスタ領域をサポートしていません。 ● I/O ポート制御レジスタ領域(アドレス :"000000H ∼ 000006H", "000010H ∼ 000017H") これらのレジスタは I/O ポートを制御し , かつデータを入出力します。 30 第 3 章 CPU 3.3 メモリマップ MB90460/465 シリーズの各製品のメモリマップを示します。 ■ メモリマップ MB90460/465 シリーズのメモリマップを図 3.3-1 に示します。 図 3.3-1 メモリマップ シングルチップモード (ROM ミラー機能あり) FFFFFF H ROM 領域 アドレス番号1 FC0000 H 010000 H ROM 領域 (FFバンクイメージ) アドレス番号 2 004000 H 003FE0 H リソース領域 アドレス番号3 RAM 領域 レジスタ : 内部アクセスメモリ 000100 H : アクセス不可 0000C0 H 000000 H リソース領域 製品番号 アドレス番号1 アドレス番号2 アドレス番号3 MB90462/467 FF0000H 004000H 000900H MB90F462/F462A FF0000H 004000H 000900H MB90F463A FE0000H 004000H 000900H MB90V460 FF0000H * 004000H * 002100H *:MB90V460にはROMは含まれていません。これらの領域は,開発ツールがROMデコード 領域として使用するものと仮定します。 < 注意事項 > ROM ミラー機能レジスタを設定した場合 , 00 バンクの上位側("004000H ∼ 00FFFFH")に FF バンクの上位側("FF0000H ∼ FFFFFFH")のデータがミラーイ メージで見えるようになります。 ROM ミラー機能の設定は , 「第 22 章 ROM ミラー機能選択モジュール」をご参照 ください。 31 第 3 章 CPU < 参考 > ROM ミラー機能は , C コンパイラのスモールモデルを使用するための機能です。 FF バンクの下位 16 ビットアドレスは , 00 バンクの下位 16 ビットアドレスと同じ になります。ただし , FF バンクの ROM 領域は 48K バイトを超えますので , 00 バ ンクには ROM 領域の全データをミラーイメージで見せることはできません。 C コンパイラのスモールモデルをご使用の場合は , データテーブルを "FF4000H ∼ FFFFFFH" に格納しておくことで "004000H ∼ 00FFFFH" にミラーイメージでデー タテーブルを見せることができます。したがって , ポインタで far 指定を宣言する ことなく , ROM 領域内のデータテーブルを参照できます。 32 第 3 章 CPU 3.4 アドレス指定 アドレス指定には , リニア方式とバンク方式があります。 リニア方式は , 16M バイトの空間において連続している 24 ビットアドレスに対し , 命令により直接アドレスを指定します。 バンク方式は , 64K バイトごとの 256 バンクに分割された 16M バイト空間において , 上位 8 ビットアドレスをバンクレジスタにより指定し , 下位 16 ビットアドレスを命 令により直接指定します。 F2MC-16LX ファミリは , アドレス生成方式により命令の使用方法が異なります。 ■ リニア方式とバンク方式のメモリ指定 図 3.4-1 リニア方式によるアドレス指定 リニア方式 FFFFFFH バンク方式 FFFFFFH FF0000H FEFFFFH FE0000H FDFFFFH FD0000H 123456H FFバンク 64Kバイト FEバンク FDバンク 123456H 12バンク 04FFFFH 040000H 03FFFFH 030000H 02FFFFH 020000H 01FFFFH 010000H 00FFFFH 000000H 000000H 123456H すべて命令で指定 04バンク 03バンク 02バンク 01バンク 00バンク 123456H 命令で指定 用途に応じたバンクレジスタで指定 33 第 3 章 CPU 3.4.1 リニア方式によるアドレス指定 リニア方式によるアドレス指定には , さらにオペランドで 24 ビットのアドレスを直 接指定する方法と , 32 ビット汎用レジスタの下位 24 ビットをアドレスとして引用指 定(間接指定)する方法があります。 ■ オペランドによる 24 ビットアドレス直接指定 図 3.4-2 リニア方式による 24 ビット物理アドレス直接指定例 JMPP 0123456H 旧プログラムカウンタ +プログラムバンク 17 0452DH 170452DH 新プログラムカウンタ +プログラムバンク 12 03456H 0123456H JMPP 0123456H 次の命令 ■ 32 ビット汎用レジスタの下位 24 ビットアドレス引用指定(間接指定) 図 3.4-3 リニア方式による 32 ビット汎用レジスタ(下位 24 ビットアドレス引用)間接指定例 MOV A,@RL1+7 旧AL 090700H XXXX 3AH +7 新AL 003A RL1 (上位8ビットは無視) RL1:32ビット(ロングワード)汎用レジスタ 34 240906F9H 第 3 章 CPU 3.4.2 バンク方式によるアドレス指定 バンク方式は , 16M バイトのメモリ空間を 64K バイトごとの 256 バンクに分割し , これらのバンクアドレスを , アドレスの上位 8 ビットを示すバンクレジスタによっ て指定します。下位 16 ビットアドレスは命令により直接指定します。 バンクレジスタには , 用途別に以下に示す 5 種類があります。 • プログラムバンクレジスタ(PCB) • データバンクレジスタ(DTB) • ユーザスタックバンクレジスタ(USB) • システムスタックバンクレジスタ(SSB) • アディショナルバンクレジスタ(ADB) ■ バンクレジスタとアクセス空間 各バンクレジスタのアクセス空間と主な用途について表 3.4-1 に示します。 表 3.4-1 各バンクレジスタのアクセス空間と主な用途 バンクレジスタ名 プログラム バンクレジスタ (PCB) データバンク レジスタ(DTB) ユーザスタック バンクレジスタ (USB) アクセス 空間 リセット時 初期値 プログラ ム空間 命令コード , ベクタテーブル , 即値データの格納用 FFH データ 空間 読み書き可能なデータを格納。内外周辺の制御レジスタ やデータレジスタへのアクセス用 00H PUSH/POP 命令や , 割込みのレジスタ退避などのスタック アクセス用。コンディションレジスタ内のスタックフラ グ(CCR:S)が "1" の場合は SSB レジスタを , "0" の場合 は USB レジスタを使用 * 00H スタック 空間 システムスタック バンクレジスタ (SSB)* アディショナル バンクレジスタ (ADB) 主な用途 アディ ショナル 空間 データ(DT)空間でオーバフローしたデータの格納用 00H 00H *: 割込み時のスタックには , 必ず SSB レジスタが使用されます。 バンクレジスタの詳細は , 「3.7.9 バンクレジスタ(PCB, DTB, USB, SSB, ADB)」を ご参照ください。 バンク方式によるアドレス指定例を図 3.4-4 に示します。 35 第 3 章 CPU 図 3.4-4 バンク方式によるアドレス指定例 FFFFFFH FF0000H プログラム空間 FFH :PCB(プログラムバンクレジスタ) 0FFFFFH 物 アディショナル空間 0F0000H 0FH :ADB(アディショナルバンクレジスタ) 理 ア ド 0DFFFFH 0D0000H ユーザズタック空間 0DH :USB(ユーザスタックバンクレジスタ) 0BH :DTB(データバンクレジスタ) レ 0BFFFFH データ空間 ス 0B0000H 07FFFFH 070000H システムスタック空間 07H :SSB(システムスタックバンクレジスタ) 000000H ■ バンク方式によるアドレス指定とデフォルト空間 命令のコード効率向上のために , 各命令には , アドレス指定方式ごとに表 3.4-2 に示す ようなデフォルト空間が決められています。デフォルト以外の空間を使用したい場合 は , 各バンクに対応しているプリフィックスコード を , 命令に先行して設定してください。これにより , プリフィックスコードに対応した バンク空間へアクセスできます。プリフィックスコードの詳細は , 「3.9 プリフィック スコード」をご参照ください。 表 3.4-2 アドレス指定とデフォルト空間 デフォルト空間 アドレス指定 プログラム空間 PC 間接 , プログラムアクセス , 分岐系 データ空間 @RW0, @RW1, @RW4, @RW5, @A, addr16, dir を用いたアドレス指定 スタック空間 PUSHW, POPW, @RW3, @RW7 を用いたアドレス指定 アディショナル空間 @RW2, @RW6 を用いたアドレス指定 36 第 3 章 CPU 3.5 多バイト長データのメモリ配置 多バイト長データは , 下位アドレスから順にメモリへ書き込まれます。多バイト長 データが 32 ビットであれば , 下位 16 ビットの次に上位 16 ビットの順に転送されま す。ただし , 下位データを書き込んだ直後に外部リセット信号が入力された場合 , 上 位データが書き込まれない場合があります。 ■ メモリ上の多バイト長データの格納状態 データは下位 8 ビットが n 番地に , 次に n + 1 番地 , n + 2 番地 , n + 3 番地の順に配置 されます。 メモリ上における多バイ長データの構成を図 3.5-1 に示します。 図 3.5-1 メモリ上の多バイト長データ構成 MSB H 01010101B LSB 11001100B 11111111B 00010100B 01010101B 11001100B 11111111B 00010100B n番地 L MSB:最上位ビット LSB:最下位ビット ■ 多バイト長オペランドの構成 メモリ上における多バイ長オペランドの構成を図 3.5-2 に示します。 図 3.5-2 メモリ上の多バイト長オペランド構成 JMPP 123456H H JMPP 1 2 3 4 5 6H 12H 34H 56H n番地 63H L 37 第 3 章 CPU ■ スタック上の多バイト長データの構成 スタック上の多バイト長データ構成を図 3.5-3 に示します。 図 3.5-3 スタック上の多バイト長データの構成 PUSHW RW1,RW3 H PUSHW RW1, RW3 (35A4H)(6DF0H) SP 6DH F0H 35H A4H n番地 L RW1:35A4H RW3:6DF0H *:PUSHW命令実行後のスタック状態 ■ 多バイト長データへのアクセス 多バイト長データのアクセスは , バンク内が基本です。多バイト長データへアクセスす る命令を実行した場合は , "FFFFH" 番地の次のアドレスは同じバンクの "0000H" 番地に なります。 バンクアドレス境界における多バイト長データへのアクセスを図 3.5-4 に示します。 図 3.5-4 バンクアドレス境界における多バイト長データへのアクセス H 実行前のAL 80FFFFH 01H 800000H ・ ・ ・ 23H L 38 ? ? ? ? MOVW A,080FFFFH 実行後のAL 23H 01H 第 3 章 CPU 3.6 レジスタ F2MC-16LX ファミリのレジスタには , CPU に内蔵されている専用レジスタと , 内蔵 RAM 上に配置されている汎用レジスタがあります。 ■ 専用レジスタと汎用レジスタ 専用レジスタは , CPU に内蔵されています。 汎用レジスタは , CPU のアドレス空間上に RAM と共存しています。 専用レジスタと汎用レジスタを図 3.6-1 に示します。 図 3.6-1 専用レジスタと汎用レジスタ CPU RAM 専用レジスタ RAM アキュームレータ 汎用レジスタ ユーザスタックポインタ システムスタックポインタ プログラムカウンタ ダイレクトページレジスタ 内部データバス プロセッサステータス プログラムバンクレジスタ データバンクレジスタ ユーザスタックバンクレジスタ システムスタックバンクレジスタ アディショナルデータバンクレジスタ 39 第 3 章 CPU 3.7 専用レジスタ 専用レジスタは , 以下に示す 11 種類のレジスタで構成されています。 • アキュムレータ(A) • ユーザスタックポインタ(USP) • システムスタックポインタ(SSP) • プロセッサステータス(PS) • プログラムカウンタ(PC) • ダイレクトページレジスタ(DPR) • プログラムバンクレジスタ(PCB) • データバンクレジスタ(DTB) • ユーザスタックバンクレジスタ(USB) • システムスタックバンクレジスタ(SSB) • アディショナルデータバンクレジスタ(ADB) ■ 専用レジスタの構成 専用レジスタの構成を図 3.7-1 に示します。 図 3.7-1 専用レジスタの構成 AH AL :アキュムレータ(A) 演算結果の格納用。<16ビット×2> 連続した32ビットレジスタとしても使用可能。 USP :ユーザスタックポインタ(USP)<16ビット> ユーザスタックアドレスを示す。 SSP :システムスタックポインタ(SSP)<16ビット> システムスタックアドレスを示す。 PS :プロセッサステータス(PS)<16ビット> システムの状態を示す。 PC :プログラムカウンタ(PC)<16ビット> プログラムアドレスを示す。 DPR :ダイレクトページレジスタ(DPR)<8ビット> 短縮直接アドレッシングを実行した場合に,オペランドアドレスの ビット8~15を指定します。 PCB :プログラムバンクレジスタ(PCB)<8ビット> プログラム空間を示す。 DTB :データバンクレジスタ(DTB)<8ビット> データ空間を示す。 USB :ユーザスタックバンクレジスタ(USB)<8ビット> ユーザスタック空間を示す。 SSB :システムスタックバンクレジスタ(SSB)<8ビット> システムスタック空間を示す。 ADB 8ビット :アディショナルデータバンクレジスタ(ADB)<8ビット> アディショナル空間を示す。 16ビット 32ビット 40 バンクレジスタ 第 3 章 CPU 表 3.7-1 専用レジスタの初期値 専用レジスタ 初期値 アキュムレータ(A) 不定 ユーザスタックポインタ(USP) 不定 システムスタックポインタ(SSP) 不定 プロセッサステータス(PS) bit 15 ~ 13 12 ~ ILM PS 0 0 8 7 0 0 0 0 0 ~ CCR RP 0 0 x 0 1 x x x x x リセットベクタ中の値(FFFFDCH,FFFFDDHのデータ) プログラムカウンタ(PC) リセットベクタ中の値(FFFFDCH, FFFFDDH のデータ) ダイレクトページレジスタ(DPR) 01H プログラムバンクレジスタ(PCB) リセットベクタ中の値(FFFFDEH のデータ) データバンクレジスタ(DTB) 00H ユーザスタックバンクレジスタ(USB) 00H システムスタックバンクレジスタ(SSB) 00H アディショナルデータバンクレジスタ(ADB) 00H 41 第 3 章 CPU 3.7.1 アキュムレータ(A) アキュムレータ(A)は , 二つの 16 ビット長演算用レジスタ(AH/AL)から構成さ れています。演算結果やデータの一時記憶に使用されるレジスタです。 アキュムレータ(A)は , 32/16/8 ビットのレジスタとして使用できます。メモリと ほかのレジスタ間 , あるいは上位側の 16 ビット長演算レジスタ(AH)と下位側の 16 ビット長演算レジスタ(AL)間で演算できます。また , ワード長以下(16 ビッ ト長以下)のデータを下位側の 16 ビット長演算レジスタ(AL)へ転送した場合 , そ れまでに存在した下位側の 16 ビット長演算レジスタ(AL)のデータが , 上位側の 16 ビット長演算レジスタ(AH)へ転送されるデータ保持機能があります(一部の 命令ではこの " データ保持機能 " は無効となります)。 ■ アキュムレータ(A) ● アキュムレータへのデータ転送 アキュムレータは , 32 ビット長(ロングワード), 16 ビット長(ワード), 8 ビット長 (バイト)のデータを処理します。例外として , 4 ビットデータ転送命令(MOVN)も 8 ビットデータと同様に処理します。 • 32 ビットデータの処理時は , 上位演算用レジスタ(AH)と下位演算用レジスタ(AL) が連結して使用されます。 • 16 ビットデータや 8 ビットデータの処理時は , 下位演算用レジスタ(AL)が使用さ れます。上位演算用レジスタ(AH)は , その処理前まで存在した下位演算用レジス タ(AL)のデータを保持します。 • 下位演算用レジスタ(AL)へバイト長以下(8 ビット長以下)のデータが転送され た場合は , そのデータは 16 ビット長へ符号拡張またはゼロ拡張され , 下位演算用レ ジスタ(AL)へ格納されます。また , 下位演算用レジスタ(AL)へ格納されたデー タは , 16 ビットデータまたは 8 ビットデータとして処理できます。 具体的な転送例を図 3.7-2 ∼図 3.7-6 に示します。 図 3.7-2 アキュムレータ(A)へのデータ転送 32ビット AH AL 32ビットデータ転送 データ転送 データ転送 16ビットデータ転送 AH データ退避 AL データ転送 8ビットデータ転送 AH データ退避 AL "00H"もしくは"FFH"* データ転送 (ゼロ拡張もしくは符号拡張) *:4ビット転送命令の場合は,"000H"もしくは"FFFH"となります。 42 第 3 章 CPU ● アキュムレータ(A)のバイト処理算術演算 バイト処理の算術演算命令を下位演算用レジスタ(AL)に対して実行した場合 , 下位 演算用レジスタ(AL)の上位 8 ビットは無視されます("00H" が挿入されます)。 ● アキュムレータ(A)の初期値 リセット後の初期値は不定です。 図 3.7-3 アキュムレータ(A)の AL-AH レジスタ間の転送例(8 ビット即値 , ゼロ拡張) MOV A,3000H (3000H番地のデータをゼロ拡張してALレジスタに格納する命令) MSB 実行前 AH AL XXXXH 2456H 2456H 77H LSB 88H B5H DTB 実行後 B53000H メモリ空間 X :不定 MSB:最上位ビット LSB:最下位ビット DTB:データバンクレジスタ 0088H 図 3.7-4 アキュムレータ(A)の AL-AH レジスタ間の転送例(8 ビット即値 , 符号拡張) MOVX A,3000H (3000H番地のデータをALレジスタに格納する命令) MSB 実行前 AH AL XXXXH 2456H DTB 実行後 2456H FF88H B53000H メモリ空間 77H LSB 88H B5H X :不定 MSB:最上位ビット LSB:最下位ビット DTB:データバンクレジスタ 43 第 3 章 CPU 図 3.7-5 アキュムレータ(A)への 32 ビットデータ転送例(レジスタ間接) MOVL A,@RW1+6 実行前 AH XXXXH (RW1のデータ+8ビット長オフセットの結果を番地としてロングワード 長リードを行い,そのデータをAレジスタに格納する命令) AL XXXXH 8F74H メモリ空間 A6153EH 8FH 2BH 74H 52H RW1 15H 38H A61540H A6H DTB 実行後 MSB LSB +6 2B52H X :不定 MSB:最上位ビット LSB:最下位ビット DTB:データバンクレジスタ 図 3.7-6 アキュムレータ(A)の AL-AH レジスタ間の転送例(16 ビット , レジスタ間接) MOVW A,@RW1+6 実行前 (RW1のデータ+8ビット長オフセットの結果を番地としてワード長 リードを行い、そのデータをAレジスタに格納する命令) AH AL XXXXH 1234H DTB 実行後 1234H 2B52H MSB A6153EH 8FH 2BH 74H 52H RW1 15H 38H A61540H A6H メモリ空間 LSB +6 X :不定 MSB:最上位ビット LSB:最下位ビット DTB:データバンクレジスタ 44 第 3 章 CPU 3.7.2 スタックポインタ (USP, SSP) スタックポインタには , ユーザスタックポインタ(USP)とシステムスタックポイ ンタ(SSP)があります。これらのレジスタは , PUSH 命令や POP 命令およびサブ ルーチンを実行する場合に , データの退避先や復帰先のメモリアドレスを示す 24 ビットのレジスタです。スタックアドレス(24 ビット)の上位 8 ビットは , ユーザ スタックバンクレジスタ(USB)もしくはシステムスタックバンクレジスタ(SSB) で指定されます。 コンディションコードレジスタ(CCR)の S フラグが "0" の場合は , ユーザスタッ クポインタ(USP)およびユーザスタックバンクレジスタ(USB)が有効になりま す。S フラグが "1" の場合は , システムスタックポインタ(SSP)およびシステムス タックバンクレジスタ(SSB)が有効になります。 ■ スタックの設定 F2MC-16LX ファミリでは , システムスタックとユーザスタックの 2 種類のスタックを 使用できます。スタックアドレスは , プロセッサステータスレジスタ(PS:CCR)内の S フラグによって , 表 3.7-2 のように決定されます。 表 3.7-2 スタックアドレスの指定 スタックアドレス(24 ビット) S フラグ 上位 8 ビット 下位 16 ビット 0 ユーザスタックバンクレジスタ (USB) ユーザスタックポインタ(USP) 1* システムスタックバンクレジスタ (SSB) システムスタックポインタ(SSP) *: 初期値 リセットによって , S フラグは "1" に初期化されます。したがって , 初期設定ではシス テムスタックが使用されます。ただし , 割込みルーチンのスタック操作時はシステムス タックが使用され , 割込みルーチン以外のスタック操作時にはユーザスタックが使用 されます。スタック空間を分割しないのであれば , システムスタックを使用してくださ い。 < 注意事項 > 割込みが受付けられた場合 , S フラグは "1" にセットされ , システムスタックが使用 されます。 スタック操作命令とスタックポインタを図 3.7-7 に示します。 45 第 3 章 CPU 図 3.7-7 スタック操作命令とスタックポインタ Sフラグが"0"の場合のPUSHW A 実行前 AL A624H Sフラグ 実行後 AL 0 A624H Sフラグ 0 MSB USB C6H USP F328H SSB 56H SSP 1234H USB C6H USP F326H SSB 56H SSP 1234H C6F326H LSB XXH XXH Sフラグが"0"であるため ユーザスタックを使用 C6F326H A6H 24H Sフラグが"1"の場合のPUSHW A MSB 実行前 AL A624H Sフラグ 実行後 AL 1 A624H Sフラグ 1 USB C6H USP F328H SSB 56H SSP 1234H USB C6H USP F328H SSB 56H SSP 1232H LSB 561232H XXH XXH 561232H A6H 24H Sフラグが"1"であるため システムスタックを使用 X :不定 MSB:最上位ビット LSB:最下位ビット < 注意事項 > • スタックポインタにスタックアドレスを設定する場合は , 偶数アドレスを設定し ください。 奇数アドレスを設定した場合は , ワードアクセスが 2 回に分割されます。 • USP レジスタおよび SSP レジスタの初期値は不定です。 ■ システムスタックポインタ(SSP) システムスタックポインタ(SSP)を設定する場合は , コンディションコードレジスタ (CCR)内の S フラグに "1" を設定してください。S フラグに "1" を設定した場合 , ス タックを操作する際に使用されるアドレスの上位8ビットは, システムスタックバンク レジスタ(SSB)により示されます。 コンディションコードレジスタ(CCR)の詳細は , 「3.7.4 コンディションコードレジ スタ(PS:CCR)」を , システムスタックバンクレジスタ(SSB)の詳細は , 「3.7.9 バン クレジスタ(PCB, DTB, USB, SSB, ADB)」をご参照ください。 ■ ユーザスタックポインタ(USP) ユーザスタックポインタ(USP)を設定する場合は , コンディションコードレジスタ (CCR)内の S フラグに "0" を設定してください。S フラグに "0" を設定した場合 , ス タックを操作する際に使用されるアドレスの上位8ビットは, ユーザスタックバンクレ ジスタ(USB)により示されます。 コンディションコードレジスタ(CCR)の詳細は , 「3.7.4 コンディションコードレジ スタ(PS:CCR) 」を , システムスタックバンクレジスタ(SSB)の詳細は , 「3.7.9 バン クレジスタ(PCB, DTB, USB, SSB, ADB)」をご参照ください。 46 第 3 章 CPU 3.7.3 プロセッサステータス(PS) プロセッサステータス(PS)は , CPU を制御するビットと CPU の状態を示すビッ トから構成されています。プロセッサステータス(PS)は , 以下に示す 3 つのレジ スタで構成されています。 • 割込みレベルマスクレジスタ(ILM) • レジスタバンクポインタ(RP) • コンディションコードレジスタ(CCR) ■ プロセッサステータス(PS)の構成 プロセッサステータス(PS)の構成を図 3.7-8 に示します。 図 3.7-8 プロセッサステータス(PS)の構成 RP ILM bit PS 12 11 ILM2 ILM1 ILM0 B4 B3 15 14 13 10 CCR 9 B2 B1 8 7 6 5 4 3 2 1 0 B0 - I S T N Z V C ● コンディションコードレジスタ(CCR) 命令実行結果や割込み出力によって "1" が設定または "0" にクリアされる各種フラグか ら構成されています。 各種フラグの詳細は , 「3.7.4 コンディションコードレジスタ(PS:CCR)」をご参照く ださい。 ● レジスタバンクポインタ(RP) RAM 領域の中で汎用レジスタとして使用するメモリブロック(レジスタバンク)の先 頭アドレスを設定するポインタです。 汎用レジスタは 32 バンクで構成されています。レジスタバンクポインタ(RP) に "00H ∼ 1FH " の値を設定してバンクを指定してください。 設定方法および詳細は , 「3.7.5 レジスタバンクポインタ(PS:RP)」をご参照ください。 ● 割込みレベルマスクレジスタ(ILM) CPU が現在受付けている割込みのレベルを示します。またリソースごとの割込み要求 に対応して設定されている割込み制御レジスタ(ICR00 ∼ ICR15)の割込みレベル設 定ビット(ICR:IL0 ∼ IL2)値と比較します。 設定方法および詳細は , 「3.7.6 割込みレベルマスクレジスタ(PS:ILM)」をご参照くだ さい。 47 第 3 章 CPU コンディションコードレジスタ(PS:CCR) 3.7.4 コンディションコードレジスタ(CCR)は , 以下に示す 8 ビットで構成されていま す。 • 演算結果や転送データを示すビット • 割込み要求の受付けを制御するビット ■ コンディションコードレジスタ(CCR)の構成 命令実行時のコンディションコードレジスタ(CCR)の状態については ,『F2MC-16LX ファミリ プログラミングマニュアル』をご参照ください。 コンディションコードレジスタ(CCR)の構成を図 3.7-9 に示します。 図 3.7-9 コンディションコードレジスタ(CCR)の構成 RP ILM bit 15 PS 14 13 12 ILM2 ILM1 ILM0 B4 11 CCR 10 9 8 7 6 5 4 3 2 1 0 B3 B2 B1 B0 - I S T N Z V C CCR初期値 X01XXXXXB 割込み許可フラグ スタックフラグ スティッキィビットフラグ ネガティブフラグ ゼロフラグ オーバフローフラグ キャリーフラグ X :不定 - :未定義ビット ● 割込み許可フラグ(I) 割込み許可フラグ(I)に "1" が設定された場合はソフトウェア割込み以外の割込み要 求を許可し , 割込み許可フラグ(I)が "0" にクリアされた場合はソフトウェア割込み 以外の割込み要求を禁止します。外部リセットおよびソフトウェアリセットにより "0" にクリアされます。 ● スタックフラグ(S) スタック操作に用いられるポインタを示します。スタックフラグ(S)が "0" にクリア された場合はユーザスタックポインタ(USP)が有効になり , スタックフラグ(S)に "1" が設定された場合はシステムスタックポインタ(SSP)が有効になります。割込み が受付けられた場合または外部リセットおよびソフトウェアリセットがアサートされ た場合は , "1" が設定されます。 スタックポインタの詳細は ,「3.7.2 スタックポインタ(USP, SSP) 」をご参照ください。 48 第 3 章 CPU ● スティッキィビットフラグ(T) 論理右シフト命令または算術右シフト命令を実行した場合 , キャリーからシフトアウ トされたデータ内に "1" があればスティッキィビットフラグ(T)に "1" が設定され , "1" がなければスティッキィビットフラグ(T)は "0" にクリアされます。また , シフト 量がゼロの場合でも "0" にクリアされます。 ● ネガティブフラグ(N) 演算結果が格納される汎用レジスタ(RL0 ∼ RL3)の最上位ビット(MSB)が "1" の 場合は , ネガティブフラグ(N)に "1" が設定されます。演算結果が格納される汎用レ ジスタ(RL0-RL3)の最上位ビット(MSB)が "0" の場合は , ネガティブフラグ(N) が "0" にクリアされます。 汎用レジスタの詳細は , 「3.8 汎用レジスタ」をご参照ください。 ● ゼロフラグ(Z) 演算結果が格納される汎用レジスタ(RL0 ∼ RL3)の値が "0000H" の場合は , ゼロフラ グ(Z)に "1" が設定されます。演算結果が格納される汎用レジスタ(RL0 ∼ RL3)の 値が "0000H" でない場合は , ゼロフラグ(Z)は "0" にクリアされます。 汎用レジスタの詳細は , 「3.8 汎用レジスタ」をご参照ください。 ● オーバフローフラグ(V) 演算の結果 , 符号付き数値としてオーバフローが発生した場合は , オーバフローフラグ (V)に "1" が設定されます。オーバフローが発生しなかった場合は , オーバフローフ ラグ(V)は "0" にクリアされます。 ● キャリーフラグ(C) 演算の結果 , 最上位ビットからの桁上がりまたは最上位ビットへの桁下がりが発生し た場合は , キャリーフラグ(C)に "1" が設定されます。発生しなかった場合は , キャ リーフラグ(C)は "0" にクリアされます。 49 第 3 章 CPU レジスタバンクポインタ(PS:RP) 3.7.5 レジスタバンクポインタ(RP)は , 現在使用している汎用レジスタバンクの先頭ア ドレスを示す 5 ビットのレジスタです。 ■ レジスタバンクポインタ(RP) レジスタバンクポインタ(RO)を図 3.7-10 に示します。 図 3.7-10 レジスタバンクポインタ(RP)の構成 RP ILM bit PS 15 14 13 12 ILM2 ILM1 ILM0 B4 11 10 B3 B2 CCR 9 8 7 6 5 4 3 2 1 0 RP初期値 B1 B0 - I S T N Z V C 00000B ■ 汎用レジスタ領域とレジスタバンクポインタ(RP) レジスタバンクポインタ(RP)は , F2MC-16LX ファミリが持っている汎用レジスタと , 内部 RAM のアドレスとの関係を示すポインタです。レジスタバンクポインタ(RP)と アドレスは , 図 3.7-11 に示す変換規則の関係です。 図 3.7-11 汎用レジスタ領域の物理アドレス変換規則 変換式 [ 000180H +(RP)× 10H ] RP=10Hの場合 000370H レジスタバンク31 : : 000280H レジスタバンク16 : : 000180H レジスタバンク 0 • アセンブラ命令では , レジスタバンクポインタ(RP)へ転送する 8 ビットの即値転 送命令を使用できます。ただし , 下位 5 ビットのデータが有効となります。 50 第 3 章 CPU 割込みレベルマスクレジスタ(PS:ILM) 3.7.6 割込みレベルマスクレジスタ(ILM)は , 現在設定されている割込みレベルを示しま す。 割込みレベルマスクレジスタ(ILM)には , 受付け可能な割込みレベルを設定できま す。割込みレベルマスクレジスタ(ILM)に設定された割込みレベル値よりも弱い割 込みレベル値の割込みは受付けません。 ■ 割込みレベルマスクレジスタ(ILM) 割込みの詳細は , 「第 7 章 割込み」をご参照ください。 割込みレベルマスクレジスタ(ILM)の構成を図 3.7-12 に示します。 図 3.7-12 割込みレベルマスクレジスタ(ILM)の構成 RP ILM bit PS 15 14 13 12 ILM2 ILM1 ILM0 B4 CCR 10 9 8 7 6 5 4 3 2 1 0 ILM初期値 B3 B2 B1 B0 - I S T N Z V C 000B 11 割込みレベルマスクレジスタ(ILM)は , 現在設定されている割込みレベルを示します。 割込みレベルマスクレジスタ(ILM)には , 受付け可能な割込みレベルを設定できま す。割込みレベルマスクレジスタ(ILM)に設定された割込みレベル値よりも弱い割 込みレベル値の割込みは受付けません。 • リセットにより割込みレベルマスクレジスタ(ILM)は , 最強の割込みレベルが設 定され , 割込みを受付けません。 • アセンブラ命令では , 割込みレベルマスクレジスタ(ILM)へ転送する 8 ビットの 即値転送命令を使用できます。ただし , 下位 3 ビットが有効となります。 表 3.7-3 割込みレベルマスクレジスタ(ILM)と割込みレベルの強弱 ILM2 ILM1 ILM0 割込みレベル 割込みレベルの強弱 0 0 0 0 0 0 1 1 強(割込み禁止) ↑ 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 ↓ 弱 51 第 3 章 CPU 3.7.7 プログラムカウンタ(PC) プログラムカウンタ(PC)は , CPU が次に実行する命令アドレスの下位 16 ビット を示す 16 ビットカウンタです。 ■ プログラムカウンタ(PC) CPU が次に実行する命令アドレスの , 上位 8 ビットをプログラムバンクレジスタ (PCB) で設定し , 下位 16 ビットをプログラムカウンタ(PC)で設定します。次に実行する命 令アドレスは , 図 3.7-13 のように決定します。プログラムカウンタ(PC)は条件分岐 命令 , サブルーチンコール命令 , 割込みやリセットでも内容が更新されます。また , オ ペランドを読み出す場合のベースポインタとしても使用できます。 プログラムバンクレジスタ(PCB)の詳細は ,「3.7.9 バンクレジスタ(PCB, DTB, USB, SSB, ADB) 」をご参照ください。 図 3.7-13 プログラムカウンタ(PC) 上位8ビット PCB FEH 下位16ビット PC ABCDH FEABCDH < 注意事項 > 52 次に実行する命令 プログラムカウンタ(PC)やプログラムバンクレジスタ(PCB)をプログラム (MOV PC, #0FFH などの命令)で直接書き換えることはできません。 第 3 章 CPU 3.7.8 ダイレクトページレジスタ(DPR) ダイレクトページレジスタ(DPR)は , 短縮直接アドレス指定方式の命令実行時に , オペランドアドレスのビット 8 ∼ 15(addr8 ∼ addr15)を指定する 8 ビットレジ スタです。リセットにより "01H" に初期化されます。 ■ ダイレクトページレジスタ(DPR) 短縮直接アドレス指定方式については , 「付録 B.3 直接アドレッシング」をご参照く ださい。 ダイレクトページレジスタ(DPR)による物理アドレスの生成を図 3.7-14 に示します。 図 3.7-14 ダイレクトページレジスタ(DPR)による物理アドレスの生成 データバンクレジスタDTB A A A A A A A A データバンクレジスタDPR B B B B B B B B MSB bit24 16 24ビット 物理アドレス A A A A A A A A 15 命令中の直接アドレス C C C C C C C C 8 B B B B B B B B LSB 7 0 C C C C C C C C MSB:最上位ビット LSB:最下位ビット ダイレクトページレジスタ(DPR)の設定とデータアクセス例を図 3.7-15 に示します。 図 3.7-15 ダイレクトページレジスタ(DPR)の設定とデータアクセス例 MOV S:56H,#5AH 命令実行結果 上位8ビット 下位8ビット データバンクレジスタDTB 12H データバンクレジスタDPR 34H 123458H 123456H MSB:最上位ビット LSB:最下位ビット 5AH 123454H MSB LSB 53 第 3 章 CPU 3.7.9 バンクレジスタ(PCB, DTB, USB, SSB, ADB) バンクレジスタは , バンク方式アドレス指定の最上位 8 ビットアドレスを指定する レジスタであり , 以下に示す 5 種類のレジスタで構成されます。 • プログラムバンクレジスタ(PCB) • データバンクレジスタ(DTB) • ユーザスタックバンクレジスタ(USB) • システムスタックバンクレジスタ(SSB) • アディショナルバンクレジスタ(ADB) 各バンクレジスタは , プログラム空間 , データ空間 , ユーザスタック空間 , システム スタック空間およびアディショナル空間に配置されるメモリバンクを示します。 ■ バンクレジスタ(PCB, DTB, USB, SSB, ADB) ● プログラムバンクレジスタ(PCB) プログラム(PC)空間を指定するバンクレジスタです。 ● データバンクレジスタ(DTB) データ(DT)空間を指定するバンクレジスタです。 ● ユーザスタックバンクレジスタ(USB)/ システムスタックバンクレジスタ(SSB) スタック(SP)空間を指定するバンクレジスタです。 ● アディショナルバンクレジスタ(ADB) アディショナル(AD)空間を指定するバンクレジスタです。 ● 各バンクの設定とデータアクセス バンクレジスタは , 8 ビット長です。リセットによりプログラムバンクレジスタ(PCB) は "FFH" に初期化され , データバンクレジスタ(DTB), ユーザスタックバンクレジス タ(USB), システムスタックバンクレジスタ(SSB)およびアディショナルバンクレ ジスタ(ADB)は "00H" に初期化されます。プログラムバンクレジスタ(PCB)は , 読 出しはできますが書込みはできません。プログラムバンクレジスタ(PCB)以外のバ ンクレジスタは , 読み書き可能です。 < 注意事項 > 54 MB90460/465 シリーズは , デバイスに内蔵されるメモリ空間までをサポートしま す。 各レジスタ動作の詳細は , 「3.4.2 バンク方式によるアドレス指定」をご参照くださ い。 第 3 章 CPU 3.8 汎用レジスタ 汎用レジスタは , RAM 上の "000180H ∼ 00037FH" に , 16 ビット× 8 本を 1 つのレ ジスタバンクとして割当てたメモリブロックです。汎用の 8 ビットレジスタ(バイ トレジスタ R0 ∼ R7), 16 ビットレジスタ(ワードレジスタ RW0 ∼ RW7)もしく は 32 ビットレジスタ(ロングワードレジスタ RL0 ∼ RL7)として使用できます。 汎用レジスタへは , 短い命令で高速にアクセスできます。また , レジスタバンクに よってブロック化されているために , データの保護や機能単位の分割が容易です。 また , ロングワードレジスタとして使用した場合は , 全空間へ直接アクセスするリニ アポインタとしても使用できます。 ■ 汎用レジスタの構成 汎用レジスタは , RAM 上の "000180H ∼ 00037FH" に全部で 32 バンク存在し , レジスタ バンクポインタ(RP)でバンクを指定します。レジスタバンクポインタ(RP)で設定 するバンクの先頭アドレスは , 下式のようになります。16 ビット× 8 本を 1 つのレジ スタバンクとして定義します。 汎用レジスタの先頭アドレス =000180H + レジスタバンクポインタ(RP)× 10H レジスタバンクポインタ(PR)の詳細は , 「3.7.5 レジスタバンクポインタ(PS:RP) 」 をご参照ください。 メモリ空間内における汎用レジスタの配置と構成を図 3.8-1 に示します。 図 3.8-1 メモリ空間内における汎用レジスタの配置と構成 内蔵RAM 000380H 000370H 000360H 0002E0H 0002D0H 0002C0H 0002B0H : バイト アドレス レジスタバンク30 02CEH R6 R7 02CFH RW7 : : : 02CCH R4 R5 02CDH RW6 02CAH R2 R3 02CBH RW5 02C8H R0 R1 02C9H RW4 レジスタバンク21 レジスタバンク20 レジスタバンク19 : : : : : 0001B0H 0001A0H レジスタバンク 2 000190H 000180H レジスタバンク 1 レジスタバンク 0 < 注意事項 > バイト アドレス レジスタバンク31 : RP 14H 02C6H RW3 02C7H 02C4H RW2 02C5H 02C2H RW1 02C3H 02C0H RW0 02C1H LSB RL3 RL2 RL1 RL0 MSB 16ビット 変換式[000180H + RP×10H] R0 ~ R7 :バイトレジスタ RW0 ~ RW7:ワードレジスタ RL0 ~ RL3:ロングワードレジスタ MSB :最上位ビット LSB :最下位ビット レジスタバンクポインタ(RP)は , リセット後 "00H" に初期化されます。 55 第 3 章 CPU ■ レジスタバンク レジスタバンク内の汎用レジスタは , RAM と同様にリセットでは初期化されず , リ セット前のデータを保持します。ただし , パワーオンリセット時には不定となります。 表 3.8-1 汎用レジスタの代表的な機能 レジスタ名 56 機能 R0 to R7 各種命令のオペランドとして使用 ( 注意事項 ) R0 はバレルシフトのカウンタおよびノーマライズ(正規化)命令のカ ウンタとしても使用 RW0 to RW7 ポインタとして使用 各種命令のオペランドとして使用 ( 注意事項 ) RW0 はストリング命令のカウンタとしても使用 RL0 to RL3 ロングポインタとして使用 各種命令のオペランドとして使用 第 3 章 CPU 3.9 プリフィックスコード 命令の前にプリフィックスコードを設定した場合は , プリフィックスコード直後の 命令動作を変更できます。プリフィックスコードには , 以下に示す 3 種類がありま す。 • バンクセレクトプリフィックス(PCB, DTB, ADB, SPB) • コモンレジスタバンクプリフィックス(CMR) • フラグ変化抑止プリフィックス(NCC) ■ プリフィックスコード ● バンクセレクトプリフィックス(PCB, DTB, ADB, SPB) バンクセレクトプリフィックスを命令の前に設定した場合は , 命令がアクセスするメ モリ空間を , アドレス指定方式とは無関係に設定できます。 詳細は , 「3.9.1 バンクセレクトプリフィックス(PCB, DTB, ADB, SPB)」をご参照く ださい。 ● コモンレジスタバンクプリフィックス(CMR) レジスタバンクをアクセスする命令の前にコモンレジスタバンクプリフィックスを設 定した場合は , レジスタバンクポインタ(RP)の値とは関係なく , レジスタアクセスを "000180H ∼ 00018FH" に存在するコモンバンク(RP=00H の場合に設定されるレジスタ バンク)へ変更できます。 詳細は , 「3.9.2 コモンレジスタバンクプリフィックス(CMR)」をご参照ください。 ● フラグ変化抑止プリフィックス(NCC) フラグ変化を抑止したい命令の前に , フラグ変化抑止プリフィックスコードを設定し た場合は , 命令の実行に伴うフラグ変化を抑止できます。 詳細は , 「3.9.3 フラグ変化抑止プリフィックス(NCC) 」をご参照ください。 57 第 3 章 CPU 3.9.1 バンクセレクトプリフィックス(PCB, DTB, ADB, SPB) データアクセス時のメモリ空間は , アドレス指定方式ごとに定められています。し かしバンクセレクトプリフィックスを命令の前に設定した場合は , アクセスするメ モリ空間を , アドレス指定方式とは無関係に設定できます。 ■ バンクセレクトプリフィックス(PCB, DTB, ADB, SPB) 表 3.9-1 バンクセレクトプリフィックス バンクセレクト プリフィックス 設定される空間 PCB プログラム空間 DTB データ空間 ADB アディショナル空間 SPB コンディションコードレジスタ(CCR)の S フラグの値が "0" の場合は ユーザスタック空間が , "1" の場合はシステムスタック空間が用いられ ます。 バンクセレクトプリフィックスを使用した場合 , 例外的に動作する命令があります。 表 3.9-2 バンクセレクトプリフィックスの影響を受けない命令 命令の種類 ストリング 命令 命 令 MOVS SCEQ FILS スタック操 作命令 PUSHW I/O アクセ ス命令 MOV A MOVW A, io MOV io, A MOV io, #imm8 MOVB A, io : bp SETB io : bp BBC io : bp, rel WBTC io, bp 割込み復帰 命令 RETI 58 MOVSW SCWEQ FILSW POPW バンクセレクトプリフィックスの効果 プリフィックスの有無にかかわらず , オペランド で指定されたバンクレジスタが使用されます。 プリフィックスの有無にかかわらず , S フラグが "0" の場合はユーザスタックバンクレジスタ (USB)が , S フラグが "1" の場合はシステムス タックバンクレジスタ(SSB)が使用されます。 MOVX A, io MOVW io, A MOVW io, #imm16 MOVB io : bp, A CLRB io : bp BBS io : bp, rel WBTS io : bp プリフィックスの有無にかかわらず , I/O 空間 ("000000H" ∼ "0000FFH")がアクセスされます。 プリフィックスの有無にかかわらず , システムス タックバンクレジスタ(SSB)が使用されます。 第 3 章 CPU 表 3.9-3 バンクセレクトプリフィックスの使用時に注意すべき命令 命令の種類 命 令 説 明 フラグ変更命令 AND CCR, #imm8 OR CCR, #imm8 プリフィックスの効果は次の命令までおよびます。 ILM 設定命令 MOV ILM, #imm8 プリフィックスの効果は次の命令までおよびます。 PS 復帰命令 POPW PS PS 復帰命令に対してはバンクセレクトプリフィッ クスを付加しないでください。 59 第 3 章 CPU 3.9.2 コモンレジスタバンクプリフィックス(CMR) コモンレジスタバンクプリフィックス(CMR)を , レジスタバンクをアクセスする 命令の前に設定した場合は , レジスタバンクポインタ(RP)の値とは関係なく , レ ジスタアクセスを , "000180H ∼ 00018FH" に存在するコモンバンク(RP=00H の場 合に設定されるレジスタバンク)へ変更できます。 ■ コモンレジスタバンクプリフィックス(CMR) 複数のタスク間におけるデータ交換を容易にするために , F2MC-16LX ファミリでは各 タスクで共通に使用できるコモンバンクを用意しています。コモンバンクは , "000180H ∼ 00018FH" に存在します。 ただし , コモンレジスタバンクプリフィクス(CMR)を使用する際は表 3.9-4 に示した 命令に注意してください。 表 3.9-4 コモンレジスタバンクプリフィックス(CMR)使用時に注意すべき命令 命令の種類 60 命 令 説 明 ストリング命令 MOVS MOVSW SCEQ SCWEQ FILS FILSW ストリング命令に対しては , CMR プリフィックスを 付加しないでください。 フラグ変更命令 AND CCR, #imm8 OR CCR, #imm8 プリフィックスの効果は , 次の命令までおよびます。 PS 復帰命令 POPW PS プリフィックスの効果は , 次の命令までおよびます。 ILM 設定命令 MOV ILM, #imm8 プリフィックスの効果は , 次の命令までおよびます。 第 3 章 CPU 3.9.3 フラグ変化抑止プリフィックス(NCC) フラグ変化を抑止したい命令の前に , NCC プリフィックスを設定した場合は , 命令 の実行に伴うフラグ変化を抑止できます。 ■ フラグ変化抑止プリフィックス(NCC) 不要なフラグ変化を抑止するために , フラグ変化抑止プリフィックス(NCC)を用い ます。フラグ変化の抑止対象となるフラグは T, N, Z, V, C です。 ただし , フラグ変化抑止プリフィックスを使用する際は表 3.9-5 に示した命令に注意し てください。 T, N, Z, V, C の各フラグの詳細は , 「3.7.4 コンディションコードレジスタ(PS:CCR) 」 をご参照ください。 表 3.9-5 フラグ変化抑止プリフィックス(NCC)の使用時に注意すべき命令 命令の種類 命 令 説 明 ストリング命令 MOVS MOVSW SCEQ SCWEQ FILS FILSW ストリング命令に対しては , NCC プリフィックス を付加しないでください。 フラグ変更命令 AND CCR, #imm8 OR CCR, #imm8 プリフィックスの有無にかかわらず , コンディショ ンコードレジスタ(CCR)は命令の仕様どおりに 変化します。プリフィックスの効果は , 次の命令ま でおよびます。 PS 復帰命令 POPW PS プリフィックスの有無にかかわらず , コンディショ ンコードレジスタ(CCR)は命令の仕様どおりに 変化します。プリフィックスの効果は , 次の命令ま でおよびます。 ILM 設定命令 MOV ILM, #imm8 プリフィックスの効果は , 次の命令までおよびま す。 割込み命令 , 割込み復帰命令 INT #vct8 INT9 INT adder16 INTP addr24 RETI プリフィックスの有無にかかわらず , コンディショ ンコードレジスタ(CCR)は命令の仕様どおりに 変化します。 コンテキスト スイッチ命令 JCTX @A プリフィックスの有無にかかわらず , コンディショ ンコードレジスタ(CCR)は命令の仕様どおりに 変化します。 61 第 3 章 CPU 3.9.4 プリフィックスコードに関する制約 プリフィックスコードの使用には , 以下のような制約があります。 • プリフィックスコードや割込み / ホールド抑止命令の実行中は , 割込み / ホールド 要求を受付けません。 • 割込み / ホールド命令の前にプリフィックスコードを置いた場合 , プリフィック スコードの効果は遅延します。 • 競合するプリフィックスコードが連続している場合は , 最後のプリフィックス コードが有効となります。 ■ プリフィックスコードと割込み抑止命令 プリフィックスコードと割込み抑止命令を表 3.9-6 に示します。 表 3.9-6 プリフィックスコードと割込み抑止命令 割込みやホールド 要求を受付けない < 注意事項 > プリフィックス コード 割込み / ホールド抑止命令 (プリフィックスコードの効果を遅延させる命令) PCB DTB ADB SPB CMR NCC MOV ILM, #imm8 OR CCR, #imm8 AND CCR, #imm8 POPW PS 割込みの抑止 図 3.9-1 に示すように , プリフィックスコードや割込み / ホールド命令の実行中は , 割 込みやホールド要求が発生しても受付けられません。これらの要求が受付けられない 場合 , 次に割込み / ホールドが処理されるのは , プリフィックスコードや割込み / ホー ルド抑止命令以降 , 初めてプリフィックスコードや割込み / ホールド命令以外の命令 が実行された後になります。 図 3.9-1 割込みの抑止 割込み/ホールド抑止命令 ・・・・・・・・・・・・・・・ 割込み要求発生 62 (a) 普通の命令(プリフィックスコードなし) (a) ・・・ 割込み受付け 第 3 章 CPU ● プリフィックスコードの効果遅延 割込み / ホールド抑止命令の前にプリフィックスコードを設定した場合 , プリフィック スコードの効果は , 割込み / ホールド抑止命令後の命令に対して有効となります。 図 3.9-2 割込み / ホールド抑止命令とプリフィックスコード 割込み/ホールド抑止命令 MOV A,0FFH NCC ・・・・ MOV ILM,#imm8 ADD A,01H CCR:XXX10XXB CCR:XXX10XXB NCCによりCCRは変化しません ■ プリフィックスコードの連続 競合するプリフィックスコード(PCB, ADB, DTB, SPB)が連続していた場合 , 最後 のプログラム空間(PCB)に設定された値が有効になります。 図 3.9-3 プリフィックスコードの連続 プリフィックスコード ・・・ ADB DTB PCB ADD A,01H ・・・ プリフィックスコードは PCBが有効になります。 63 第 3 章 CPU 3.9.5 「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意 「DIV A, Ri」, 「DIVW A, RWi」命令を使用する場合は , バンクレジスタに "00H" を 設定してください。 ■「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意 「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意を表 3.9-7 に示します。 表 3.9-7 「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意(i=0 ∼ 7) 命 令 左記命令実行時に 影響を受ける バンクレジスタ名 余りが格納されるアドレス DIV A, R0 (DTB: 上位 8 ビット)+(0180H+RP × 10H+8H: 下位 16 ビット) DIV A, R1 (DTB: 上位 8 ビット)+(0180H+RP × 10H+9H: 下位 16 ビット) DIV A, R4 (DTB: 上位 8 ビット)+(0180H+RP × 10H+CH: 下位 16 ビット) (DTB: 上位 8 ビット)+(0180H+RP × 10H+DH: 下位 16 ビット) DIV A, R5 DTB DIVW A, RW0 (DTB: 上位 8 ビット)+(0180H+RP × 10H+0H: 下位 16 ビット) DIVW A, RW1 (DTB: 上位 8 ビット)+(0180H+RP × 10H+2H: 下位 16 ビット) DIVW A, RW4 (DTB: 上位 8 ビット)+(0180H+RP × 10H+8H: 下位 16 ビット) DIVW A, RW5 (DTB: 上位 8 ビット)+(0180H+RP × 10H +AH: 下位 16 ビット) DIV A, R2 (ADB: 上位 8 ビット)+(0180H+RP × 10H+AH: 下位 16 ビット) (ADB: 上位 8 ビット)+(0180H+RP × 10H+EH: 下位 16 ビット) DIV A, R6 ADB DIVW A, RW2 (ADB: 上位 8 ビット)+(0180H+RP × 10H+4H: 下位 16 ビット) DIVW A, RW6 (ADB: 上位 8 ビット)+(0180H+RP × 10H+EH: 下位 16 ビット) DIV A, R3 (USB*2: 上位 8 ビット)+(0180H+RP × 10H+BH: 下位 16 ビット) DIV A, R7 DIVW A, RW3 DIVW A, RW7 USB SSB*1 (USB*2: 上位 8 ビット)+(0180H+RP × 10H+FH: 下位 16 ビット) (USB*2: 上位 8 ビット)+(0180H+RP × 10H+6H: 下位 16 ビット) (USB*2: 上位 8 ビット)+(0180H+RP × 10H+EH: 下位 16 ビット) *1:CCR レジスタの S ビットによる *2:CCR レジスタの S ビットが "0" の場合 64 第 3 章 CPU バンクレジスタ(DTB, ADB, USB, SSB)の値が "00H" の場合は , 除算結果の余りは命 令オペランドのレジスタに格納されます。バンクレジスタの値が "00H" 以外の場合は , 上位 8 ビットアドレスは命令オペランドのレジスタに対応したバンクレジスタにより 指定され , 下位 16 ビットアドレスは命令オペランドのレジスタのアドレスと同じアド レスとなり , 上位 8 ビットで指定されたバンクのレジスタに余りが格納されます。 【例】 DTB=053H, RP=03H の場合で「DIV A, R0」を実行すると , R0 のアドレスは "0180H"+RP ("03H")× "10 H"+"08H"(R0 相当アドレス)=0001B8H です。 ここで , 「DIV A, R0」で指定されるバンクレジスタはデータバンクレジスタ(DTB) ですので , バンクアドレス "053H" を付加したアドレス "05301B8H" に余りが格納されま す(Ri および RWi のレジスタについては , 「3.8 汎用レジスタ」をご参照ください) 。 ■ 注意事項の回避について 「DIV A, Ri」, 「DIVW A, RWi」命令の使用上の注意事項を回避してプログラムを開発 していただくために , コンパイラでは表 3.9-7 の命令を生成しないように変更し , アセ ンブラでは表 3.9-7 の命令を同等の命令列に置換える機能を追加したバージョンが用 意されています。コンパイラおよびアセンブラは , 以下のバージョンをご使用くださ い。 ● コンパイラ • cc907 の V02L06 以降のバージョンおよび fcc907s の V30L02 以降の バージョン ● アセンブラ • asm907a の V03L04 以降のバージョンおよび fasm907s の V30L04 (Rev. 300004)以 降のバージョン 65 第 3 章 CPU 66 第4章 リセット MB90460/465 シリーズのリセットについて説明し ます。 4.1 リセットの概要 4.2 リセット要因と発振安定待ち時間 4.3 外部リセット端子 4.4 リセット動作 4.5 リセット要因フラグビット 4.6 リセットによる各端子の状態 67 第 4 章 リセット リセットの概要 4.1 リセット要因が発生した場合 , CPU は現在実行中の処理を中断し , リセット解除待 ち状態になります。リセット解除後は , リセットベクタが示すアドレスから処理を 開始します。 リセットには , 以下に示す 4 種類の要因があります。 • パワーオンリセットの発生(電源投入時) • ウォッチドッグタイマのオーバフロー(ウォッチドッグタイマを使用している場 合) • 端子から外部リセット信号を入力した場合 • 低消費電力モード制御レジスタ(LPMCR)の内部リセット信号発生ビット (RST)に "0" を設定した場合(ソフトウェアリセット) ■ リセット要因 表 4.1-1 リセット要因 リセット 発生要因 マシンクロック ウォッチドッグ タイマ 発振安定 待ち 外部リセット RST 端子への "L" レベル入力 メインクロック (MCLK) カウント停止 なし ソフトウェア リセット 低消費電力モード制御レジスタ (LPMCR)の内部リセット信号発生 ビット(RST)に "0" を設定 メインクロック (MCLK) カウント停止 なし ウォッチドッグ機能が許可されてい る場合に , ウォッチドッグタイマが オーバフローした場合 メインクロック (MCLK) カウント停止 なし メインクロック (MCLK) カウント停止 あり ウォッチドッグ タイマリセット パワーオン リセット 電源投入時 MCLK: メインクロック周波数(発振クロックの 2 分周クロック :2/HCLK) HCLK: 発振クロック周波数 ● 外部リセット 外部リセットは , 外部リセット端子( 端子)に "L" レベルを設定した場合に発生しま す。"L" レベル入力時間は , 16 マシンサイクル(16/φ)以上必要です。マシンクロック で動作している場合には , 外部リセット端子に "L" レベルを設定してリセットが発生し ても , 発振安定待ち時間を取りません。 < 参考 > 68 命令実行中のリセット 命令実行中(転送系命令実行中 MOV 命令など)に外部リセット端子をアサート した場合 , 実行中の命令が終了した後にリセット入力が有効になります。 ただし , ストリング系命令(MOVS 命令など)の実行中は , 設定したカウンタ値に よる転送が完了する前にリセット入力が有効になる場合があります。 外部リセット端子をアサートした場合 , ポート端子は命令実行サイクルに関係なく リセット状態になります(アサートされた場合は非同期です) 。 第 4 章 リセット ● ソフトウェアリセット ソフトウェアリセットは , 低消費電力モード制御レジスタ(LPMCR)の内部リセット 信号発生ビット(RST)に "0" を設定することにより , 3 マシンサイクル(3/φ)のリ セットを発生します。ソフトウェアリセット時は , 発振安定待ち時間を取りません。 ● ウォッチドッグリセット ウォッチドッグリセットは , ウォッチドッグタイマ起動後から , ウォッチドッグタイマ 制御レジスタ(WDTC)のインターバル時間設定ビット(WT1, WT0)で設定した時 間内に , ウォッチドッグタイマ制御レジスタ(WDTC)のウォッチドッグ制御ビット (WTE)に "0" を設定しなかった場合に発生します。 発振安定待ち時間はクロック選択レジスタ(CKSCR)によって設定できます。 ● パワーオンリセット パワーオンリセットは , 電源投入時に発生するリセットです。 発振安定待ち時間は 218/HCLK(約 65.54ms: 発振クロック 4MHz 時), の固定です。発 振安定待ち時間が経過した後 , リセットが動作します。 < 参考 > クロックの定義 HCLK: 発振クロック周波数(発振端子から供給されるクロック) MCLK: メインクロック周波数(発振クロックの 2 分周クロック) φ: マシンクロック周波数(CPU 動作クロック) 1/φ: マシンサイクル(CPU 動作クロック周期) マシンクロックの詳細は , 「5.1 クロックの概要」ご参照ください。 69 第 4 章 リセット 4.2 リセット要因と発振安定待ち時間 F2MC-16LX ファミリには 4 種類のリセット要因があり , リセット時の発振安定待ち 時間はリセット要因によって異なります。 ■ リセット要因と発振安定待ち時間 リセット要因と発振安定待ち時を表 4.2-1 に示します。 表 4.2-1 リセット要因と発振安定待ち時間 発振安定待ち時間 ( )内は発振クロック周波数 4MHz 時 リセット要因 パワーオンリセット 218/HCLK (約 65.54ms) ウォッチドッグタイマ なし(WS1, WS0 ビットは "11B" に初期化されます) 外部リセット なし(WS1, WS0 ビットは "11B" に初期化されます) ソフトウェアリセット なし(WS1, WS0 ビットは "11B" に初期化されます) HCLK: 発振クロック周波数(MHz) パワーオンリセットが発生した場合の発振安定待ち時間を図 4.2-1 に示します。 図 4.2-1 パワーオンリセットが発生した場合の発振安定待ち時間 Vcc CLK CPU動作 217/HCLK 降圧回路の 安定待ち時間 218/HCLK 発振安定待ち時間 < 注意事項 > 70 発振クロック振動子は , 発振を開始してから固有振動数で安定するまでに , 振動子 固有の発振安定待ち時間が必要です。使用する振動子に合わせた発振安定待ち時間 を設定してください。発振安定待ち時間の詳細は , 「5.5 発振安定待ち時間」をご 参照ください。 第 4 章 リセット 外部リセット端子 4.3 外部リセット端子(RST 端子)へ "L" レベル入力を設定することにより , リセット が発生します。 ■ 外部リセット端子のブロックダイヤグラム 図 4.3-1 リセット発生のブロックダイヤグラム CPU動作クロック (PLL逓倍回路,HCLKの2分周) Pout RST P-ch 同期化回路 端子 Nout CPU, リソース N-ch 入力バッファ ポート0~6端子 制御回路 HCLK:発振クロック周波数 < 注意事項 > 内部回路を初期化するには , マシンクロックが必要です。リセット入力時には , 発 振端子からクロックが供給されている必要があります。 71 第 4 章 リセット 4.4 リセット動作 リセットが解除された場合 , モード端子の設定により , 内部メモリまたは外部メモリ に設定されたモードデータとリセットベクタを取込みます。モードデータレジスタ により CPU の動作モードが設定され , リセットベクタによりリセットシーケンス終 了後の実行開始アドレスが設定されます。 ■ リセット動作の概要 リセット動作フローを図 4.4-1 に示します。 図 4.4-1 リセット動作フロー パワーオンリセット ストップモード 外部リセット ソフトウェアリセット ウォッチドッグタイマリセット リセット中 発振安定待ちリセット状態 モードデータ取込み (バスモードの端子設定) リセットシーケンス リセットベクタ取込み プログラム動作 リセットベクタが示す アドレスから命令コードを 取込み,命令を実行 ■ モード端子 モード端子(MD2 ∼ MD0)は , モードデータとリセットベクタの取込み方法を事前に 設定します。モードデータとリセットベクタを取込む場合は , リセットシーケンスを実 行します。詳細は , 「8.2 モード端子(MD2 ∼ MD0)」をご参照ください。 ■ モードデータの取込み リセットが解除された場合 , CPU はモードデータをモードデータレジスタに取込みま す。モードデータを取込んだ後に , リセットベクタをプログラムカウンタ(PC)とプ ログラムカウンタバンクレジスタ(PCB)に取込みます。 モードデータレジスタは , バスモードとバス幅を設定できます。また , リセットベクタ では , プログラムの開始アドレスを指定できます。 モードデータ取込みの詳細は , 「第 8 章 モード設定」をご参照ください。 モードデータとリセットベクタの転送を , 図 4.4-2 に示します。 72 第 4 章 リセット 図 4.4-2 モードデータとリセットベクタの転送 メモリ空間 F2MC-16LXファミリ CPUコア モードデータ レジスタ FFFFDFH モードデータ FFFFDEH リセットベクタ(ビット23~16) FFFFDDH リセットベクタ(ビット15~8) FFFFDCH リセットベクタ(ビット7~0) PCB PC < 参考 > モード端子の設定 モードデータとリセットベクタを , 内蔵 ROM(またはフラッシュメモリ), ある いは外部メモリから読み出すかは , モード端子の設定により決まります。モード 端子を外部メモリに設定した場合は , 外部メモリからモードデータとリセットベ クタを読み出します。また , モード端子を内蔵 ROM(またはフラッシュメモリ) に設定した場合は , 内蔵 ROM(またはフラッシュメモリ)からモードデータと リセットベクタを読み出します。 シングルチップモードの場合は , モード端子を内蔵 ROM(またはフラッシュメ モリ)に設定してください。 詳細は , 「8.2 モード端子(MD2 ∼ MD0)」をご参照ください。 ● モードデータレジスタ(アドレス : FFFFDFH) モードデータレジスタは , リセットシーケンス実行中に設定を変更できます。 モードデータレジスタの設定は , リセットベクタ取込み後から有効になります。 また , 命令を使用して "FFFFDFH" にモードデータを設定しても , モードデータレジス タを書換えることはできません。 詳細は , 「8.3 モードデータレジスタ」をご参照ください。 ● リセットベクタ(アドレス : FFFFDCH ∼ FFFFDEH) リセット解除後のプログラム開始アドレスを設定します。リセットベクタで設定され たアドレスからプログラムを実行します。 73 第 4 章 リセット 4.5 リセット要因フラグビット リセット発生要因は , ウォッチドッグタイマ制御レジスタ(WDTC)内のフラグを 読み出すことで判別できます。 ■ リセット要因フラグビット ウォッチドッグタイマ制御レジスタ(WDTC)のリセット要因フラグビット(PONR, WRST, ERST, SRST)でリセット要因を確認できます。リセット解除後に , リセット 発生要因を判別する必要がある場合には , ウォッチドッグタイマ制御レジスタ (WDTC)のリセット要因フラグビット(PONR, WRST, ERST, SRST)を読み出して ください。 ただし , リセット要因フラグビット(PONR, WRST, ERST, SRST)は , ウォッチドッ グタイマ制御レジスタ(WDTC)を読み出した場合 , "0" にクリアされます。 リセット要因フラグビットのブロックダイヤグラムを , 図 4.5-1 に示します。 図 4.5-1 リセット要因フラグビットのブロックダイヤグラム RST端子 パワーオン リセット発生 検出回路 ウォッチドッグ タイマ制御 レジスタ S (WDTC) Q 定期的なクリア ソフトウェアリセット ビットのクリア なし RST=L 電源投入 LPMCR,RSTビッ ト"0"書込み 検出回路 ウォッチドッグ タイマリセット 発生検出回路 外部リセット 要求検出回路 クリア R S F/F R S F/F Q R S F/F Q R F/F 遅延回路 Q ウォッチドッグタイマ 制御レジスタ(WDTC) 読出し信号 内部データバス S R Q F/F 74 :セット :リセット :出力 :フリップフロップ 第 4 章 リセット ■ リセット要因フラグビットとリセット要因の対応 リセット要因フラグビットの構成を , 図 4.5-2 に示します。 図 4.5-2 リセット要因フラグビットの構成(ウォッチドッグタイマ制御レジスタ) ウォッチドッグタイマ制御レジスタ(WDTC) アドレス 6 bit 7 0000A8H PONR - R - 5 4 3 WRST ERST SRST R R 初期値 2 1 0 WTE WT1 WT0 W W W R X-XXX111B リセット要因フラグビット R W X - :リードオンリ :ライトオンリ :不定 :未定義ビット 表 4.5-1 リセット要因フラグビットの値とリセット要因の対応 PONR WRST ERST SRST パワーオンリセット 1 × × × ウォッチドッグタイマリセット * 1 * * 外部リセット(RST 端子入力) * * 1 * ソフトウェアリセット * * * 1 リセット要因 *: 前の状態を保持 × : 不定 ■ リセット要因フラグビットの注意事項 ● 複数のリセット要因が発生した場合 リセット要因を複数検出した場合でも , ウォッチドッグタイマ制御レジスタ(WDTC) の対応するリセット要因フラグビット(PONR, WRST, ERST, SRST)には "1" が設定 されます。 < 参考 > 外部リセットとウォッチドッグタイマリセットが同時に発生した場合は , ウォッチ ドッグタイマ制御レジスタ(WDTC)のリセット要因フラグビット(ERST, WRST)に "1" が設定されます。 ● パワーオンリセットが発生した場合 パワーオンリセットが発生した場合は , ウォッチドッグタイマ制御レジスタ(WDTC) の PONR ビットに "1" が設定されます。しかし WRST, ERST, SRST ビットは不定値と なります。 PONR ビットに "1" が設定されている場合は , WRST, ERST, SRST ビットの値を無視 してください。 75 第 4 章 リセット ● リセット要因フラグビットのクリア リセット要因フラグビット(PONR, WRST, ERST, SRST)は , ウォッチドッグタイマ 制御レジスタ(WDTC)を読み出した場合 , 全て "0" にクリアされます。リセットが発 生してもウォッチドッグタイマ制御レジスタ(WDTC)を読み出さなければ , リセット 要因フラグビットは "0" にクリアされません。 76 第 4 章 リセット 4.6 リセットによる各端子の状態 リセットによる各端子の状態について説明します。 ■ リセットによる各端子の状態 リセットによる各端子の状態は, モード端子 (MD2∼MD0)の設定によって異なります。 ● 内部ベクタモード設定時(MD=0, MD1=1, MD0=1) ポート 0 ∼ 6 はハイインピーダンス出力となります。 モードデータは内蔵 ROM(フラッシュメモリ)から読み出されます。 ■ モードデータ読出し後の端子状態 モードデータ読出し後の端子状態は , モードデータレジスタのバスモード設定ビット (M1, M0)によって設定されます。 ● シングルチップモード設定時 (モードデータレジスタ :M1, M0 ビット =00B) ポート 0 ∼ 6 はハイインピーダンス出力となります。 モードデータは , 内蔵 ROM(またはフラッシュメモリ)から読み出されます。 < 注意事項 > 外部端子レベルを , 外部回路が動作しないように設定してください。 リセット中の各端子状態は , 「6.7 スタンバイモード , リセットの端子状態」の表 6.7-1 をご参照ください。 77 第 4 章 リセット 78 第5章 クロック MB90460/465 シリーズのクロックについて説明し ます。 5.1 クロックの概要 5.2 クロック発生部のブロックダイヤグラム 5.3 クロック選択レジスタ(CKSCR) 5.4 クロックモード 5.5 発振安定待ち時間 5.6 振動子と外部クロックの接続 79 第 5 章 クロック 5.1 クロックの概要 クロック発生部は , CPU およびリソースの動作クロックを制御します。この動作ク ロックを " マシンクロック " とよびます。 クロックとしては , 以下の 4 種類があります。 • 発振クロック(HCLK) • メインクロック(MCLK) • PLL クロック(PCLK) • マシンクロック(φ) ■ クロックの概要 クロック生成部には , 発振クロックを生成する発振回路が含まれています。外部発振器 は , この回路に接続します。発振クロックの供給は , クロック生成部に外部クロックを 入力することによっても行うことができます。 クロック生成部にはまた , PLL クロック逓倍回路(発振クロックの倍数である 4 つの クロックを生成する)も含まれています。 クロック生成部は , 発振安定待ち時間および PLL クロック逓倍を制御します。また , ク ロックセレクタでクロックを切り換えることによって動作クロックの動作も制御しま す。 ● 発振クロック(HCLK) X0, X1 端子に振動子を接続するかまたは外部クロックを入力して発生させたクロック です。 ● メインクロック(MCLK) 発振クロックの2分周クロックであり, タイムベースタイマおよびクロックセレクタへ の入力クロックとなります。 ● PLL クロック(PCLK) 発振クロックを , PLL 逓倍回路(PLL 発振回路)により逓倍したクロックです。4 種類 (1 逓倍∼ 4 逓倍)のクロックを発生します。 ● マシンクロック(φ) CPU およびリソースの動作クロックです。マシンクロックの 1 周期が 1 マシンサイク ルです。メインクロック(2 分周されたソースクロックが生成)および 4 種類のクロッ ク(ソースクロックの倍数)を設定します。 < 注意事項 > 80 動作電圧が 5V の場合 , 発振クロック周波数は 3MHz ∼ 32MHz の範囲で使用できま す。CPU およびリソースの最大動作周波数は 16MHz です。最大動作周波数を超え る逓倍率を設定した場合 , デバイスは正常に動作しません。例えば , 発振クロック 周波数が 16MHz の場合には , 1 逓倍が設定可能です。 第 5 章 クロック ■ クロック供給マップ クロック供給マップを図 5.1-1 に示します。 図 5.1-1 クロック供給マップ リソース ウォッチドッグ タイマ 発振安定待ち制御 4 16ビット PPGタイマ1 3 タイムベースタイマ 16ビット PPGタイマ2 クロック発生部 1 2 3 4 端子 X1 端子 16ビット リロードタイマ0 PLL逓倍回路 X0 システム クロック 発生回路 HCLK 16ビット PPGタイマ0 PCLK クロックセレクタ 2分周 MCLK φ UART0 UART1 CPU 16ビット リロードタイマ1 PPG0 端子 PPG1 端子 PPG2 端子 TIN0 端子 TO0 端子 SCK0,SIN0 端子 SOT0 端子 SCK1,SIN1 端子 SOT1 端子 TIN1 端子 TO1 端子 DTTI0 端子 波形生成部 RTO0~5 端子 16ビットアウトプット コンペア(ch.0~ch.5) 16ビット フリーランタイマ 16ビットインプット キャプチャ (ch.0~ch.3) HCLK:発振クロック MCLK:メインクロック PCLK:PLLクロック φ :マシンクロック 8/10ビット A/Dコンバータ FRCK 端子 IN0~3 端子 DTTI1 端子 波形シーケンサ OPT0~5 端子 PWI0,1 端子 PWC(ch.0,ch.1) PWO0,1 端子 81 第 5 章 クロック クロック発生部のブロックダイヤグラム 5.2 クロック発生部は , 以下の 5 種類のブロックから構成されています。 • システムクロック発生回路 • PLL 逓倍回路 • クロックセレクタ • クロック選択レジスタ(CKSCR) • 発振安定待ち時間セレクタ ■ クロック発生部のブロックダイヤグラム クロック発生部のブロックダイヤグラムを図 5.2-1 に示します。 図 5.2-1 クロック発生部のブロックダイヤグラム 低消費電力モード制御レジスタ(LPMCR) STP SLP SPL RST TMD CG1 CG0 予約 端子ハイインピー ダンス制御回路 RST 内部リセット 発生回路 端子 内部リセット 入出力端子リセット 間欠サイクル選択 CPU間欠動作 セレクタ CPUクロック 制御回路 3 CPUクロック ストップ,スリープ信号 スタンバイ 制御回路 割込み解除 端子ハイイン ピーダンス制御 ストップ信号 マシンクロック 周辺クロック 制御回路 周辺クロック 発振安定待ち解除 クロック発生部 クロックセレクタ 発振安定 待ち時間 セレクタ 2 2 PLL逓倍回路 X0 端子 予約 MCM WS1 予約 WS0 MCS CS1 CS0 クロック選択レジスタ(CKSCR) システム クロック 発生回路 HCLK 2分周 MCLK 21 … 29 210 211 212 213 214 215 216 217 218 タイムベースタイマ X1 端子 HCLK:発振クロック MCLK:メインクロック 82 第 5 章 クロック ● システムクロック発生回路 X0, X1 端子に振動子を接続するかまたは外部クロックを入力し , 発振クロックを発生 します。 ● PLL 逓倍回路 発振クロックを逓倍し , クロックセレクタへ供給します。 ● クロックセレクタ メインクロックおよび 4 種類の PLL クロックから , CPU クロック制御回路および周辺 クロック制御回路へ供給するクロックを設定します。 ● クロック選択レジスタ(CKSCR) マシンクロック(メインクロック /PLL クロック)の切換え , 発振安定待ち時間および PLL クロックの逓倍率を設定します。 ● 発振安定待ち時間セレクタ ストップモードの解除またはウォッチドッグタイマがリセットされた場合の発振ク ロックの発振安定待ち時間を設定します。4 種類のタイムベースタイマ出力から発振安 定待ち時間を設定します。 83 第 5 章 クロック 5.3 クロック選択レジスタ(CKSCR) クロック選択レジスタ(CKSCR)は , マシンクロックの切換え , 発振安定待ち時間 の設定および PLL クロックの逓倍率を設定するレジスタです。 ■ クロック選択レジスタ(CKSCR) クロック選択レジスタ(CKSCR)の構成を図 5.3-1 に示します。 また , クロック選択レジスタ(CKSCR)の各ビットの機能説明を表 5.3-1 に示します。 図 5.3-1 クロック選択レジスタ (CKSCR)の構成 bit 15 14 13 12 11 10 9 8 予約 MCM WS1 WS0 予約 MCS CS1 CS0 R/W R R/W R/W R/W R/W R/W R/W CS1 CS0 初期値 11111100B 逓倍率選択ビット ( )内は発振クロック周波数4MHzの場合 0 0 1×HCLK( 4MHz) 0 1 2×HCLK( 8MHz) 1 0 3×HCLK(12MHz) 1 1 4×HCLK(16MHz) MCS マシンクロック選択ビット 0 PLLクロックを選択 1 メインクロックを選択 WS1 WS0 発振安定待ち時間選択ビット ( )内は発振クロック周波数4MHzの場合 0 0 210/HCLK(約256μs) 0 1 213/HCLK(約 2.05ms) 1 0 1 1 215/HCLK(約 8.19ms) 217/HCLK(約32.77ms)* *:パワーオンリセットの場合は218/HCLK(約65.54ms)です。 MCM マシンクロック表示ビット 0 PLLクロックで動作中 1 メインクロックで動作中 予約ビット 予約 必ず"1"を設定してください。 R/W R HCLK 84 :リード/ライト :リードオンリ :初期値 :発振クロック周波数 第 5 章 クロック 表 5.3-1 クロック選択レジスタ(CKSCR)の各ビットの機能説明 ビット名 bit15, bit11 bit14 予約 : 予約ビット MCM: マシンクロック 表示ビット 機 能 • 必ず "1" を設定してください。 • マシンクロックとして , メインクロックと PLL クロックのどちらが設定さ れているかを示します。 このビットが "0" の場合 :PLL クロックが設定されていることを示します。 このビットが "1" の場合 : メインクロックが設定されていることを示しま す。 マシンクロック選択ビット(MCS)に "0" を設定後に , "1" がセットされて いる場合は , PLL クロックの発振安定待ち時間中であることを示します。 書込みは動作に影響ありません。 • • • • • • bit13, bit12 WS1, WS0: 発振安定待ち 時間選択ビット ストップモードを外部割込みにより解除した場合の , 発振クロックの発振 安定待ち時間を設定します。 リセット要因により "11B" に初期化されます。 • 発振安定待ち時間は , 使用する振動子に合わせて設定してください。 ( 注意事項 ) 「4.2 リセット要因と発振安定待ち時間」をご参照ください。 ( 参考 ) PLL 発振安定化待ち時間は , 214/HCLK 固定です。 マシンクロックとして , メインクロックまたは PLL クロックを設定します。 このビットが "0" の場合 :PLL クロックを設定します。 このビットが "1" の場合 : メインクロックを設定します。 "1" が設定されている場合に , "0" を設定すると , PLL クロックの発振安定 待ち時間が発生するため , タイムベースタイマカウンタおよびタイムベー スタイマ制御レジスタ(TBTC)の割込み要求フラグビット(TBOF)は "0" にクリアされます。 • PLL クロックの発振安定待ち時間は , 214/HCLK に固定です。発振クロック 周波数が 4MHz の場合 , 発振安定待ち時間は約 4ms です。 • メインクロックを設定した場合のマシンクロックは , 発振クロックを 2 分 周したクロックとなります。発振クロック周波数が 4MHz の場合 , マシン クロック周波数 , 2MHz です。 • リセットで "1" に初期化されます。 ( 注意事項 ) "1" が設定されている場合に , "0" を設定するには , タイムベースタイマ制 御レジスタ(TBTC)の割込み要求許可ビット(TBIE)または割込みレベ ルマスクレジスタ(ILM)により , タイムベースタイマ割込み要求が禁止 されている状態に限られます。 "1" を設定してから 8 マシンサイクルの間は , 本ビットへ "0" を設定できな い場合があります。本ビットへの設定は , 8 マシンサイクル経過後に行っ てください。 • • • • bit10 bit9, bit8 MCS: マシンクロック 設定ビット CS1, CS0: 逓倍率設定 ビット • • • PLL クロックの逓倍率を設定します。 4 種類の逓倍率から設定できます。 リセットで "00B" に初期化されます。 ( 注意事項 ) マシンクロック選択ビット(MCS)または , マシンクロック表示ビット (MCM)に "0" が設定されている場合は設定できません。マシンクロック 選択ビット(MCS)に "1" を設定後に設定してください。 HCLK: 発振クロック周波数 85 第 5 章 クロック 5.4 クロックモード クロックモードとしては , メインクロックモードと PLL クロックモードがあります。 ■ メインクロックモードと PLL クロックモード ● メインクロックモード メインクロックモード時は , CPU およびリソースのマシンクロックとしてメインク ロック(発振クロックの 2 分周)を使用し , PLL クロックを停止させます。 ● PLL クロックモード PLL クロックモード時は , CPU およびリソースのマシンクロックとして PLL クロック を使用します。PLL クロックの逓倍率は , クロック選択レジスタ(CKSCR)の逓倍率 選択ビット(CS1, CS0:bit9, bit8)で設定します。 ■ クロックモードの遷移 クロック選択レジスタ(CKSCR)のマシンクロック選択ビット(MCS:bit10)の設定に より , メインクロックモードまたは PLL クロックモードへ遷移します。 ● メインクロックモードから PLL クロックモードへの遷移 クロック選択レジスタ(CKSCR)のマシンクロック選択ビット(MCS:bit10)を "1" か ら "0" に設定した場合は , PLL クロックの発振安定待ち時間(214/HCLK)後 , メインク ロックから PLL クロックに切り換わります。 ● PLL クロックモードからメインクロックモードへの遷移 クロック選択レジスタ(CKSCR)のマシンクロック選択ビット(MCS:bit10)を "0" か ら "1" に設定した場合は , PLL クロックとメインクロックのエッジが一致するタイミン グ(1 ∼ 8PLL クロック経過後)で , PLL クロックからメインクロックに切り換わります。 < 注意事項 > マシンクロックの切換え後 , リソースを動作させる場合は , クロック選択レジスタ (CKSCR)のマシンクロック表示ビット(MCM:bit14)により , マシンクロックが 切り換わったことを確認したあと動作させてください。 クロックモードを切り換えた場合 , 切換えが完了するまではほかのクロックモード および低消費電力モードへは切り換えないようにしてください。 切換えの完了はクロック選択レジスタ(CKSCR)の MCM ビットを参照して確認 してください。切換えが完了する前に , ほかのクロックモードおよび低消費電力 モードへの切換えを行った場合 , 切り換わらない場合があります。 ■ PLL クロック逓倍率の設定 クロック選択レジスタ(CKSCR)の逓倍率選択ビット(CS1, CS0:bit9, bit8)に "00B" ∼ "11B" を設定し , 1 ∼ 4 逓倍の 4 種類から PLL クロック逓倍率を設定します。 86 第 5 章 クロック ■ マシンクロック メインクロックまたは PLL クロックが , マシンクロックとなります。マシンクロック は CPU およびリソースの動作クロックです。メインクロックまたは PLL クロックは , クロック選択レジスタ(CKSCR)のマシンクロック選択ビット(MCS)で設定します。 マシンクロックを切り換えることによって発生する状態遷移を図 5.4-1 に示します。 図 5.4-1 マシンクロック選択の状態遷移図 パワーオン メイン MCS=1 MCM=1 CS1,CS0=XXB (1) メイン→PLLx MCS=0 MCM=1 (6) CS1,CS0=XXB (2) (3) (4) (5) (7) PLL1→メイン PLL1逓倍 MCS=0 (6) MCM=0 CS1,CS0=00B MCS=1 MCM=1 CS1,CS0=00B (7) PLL2→メイン PLL2逓倍 MCS=0 (6) MCM=0 CS1,CS0=01B MCS=1 MCM=0 CS1,CS0=01B (7) PLL3→メイン MCS=1 MCM=0 CS1,CS0=10B (6) (7) PLL4→メイン MCS=1 MCM=0 CS1,CS0=11B (6) PLL3逓倍 MCS=0 MCM=0 CS1,CS0=10B PLL4逓倍 MCS=0 MCM=0 CS1,CS0=11B (1)MCSビットクリア (2)PLLクロック発振安定待ち終了後 CS1,CS0=00B (3)PLLクロック発振安定待ち終了後 CS1,CS0=01B (4)PLLクロック発振安定待ち終了後 CS1,CS0=10B (5)PLLクロック発振安定待ち終了後 CS1,CS0=11B (6)MCSビットセット(ハードウェアスタンバイおよびウォッチドッグタイマリセットを含む) (7)PLLクロック周波数とメインクロック周波数の同期タイミング MCS :クロック選択レジスタ(CKSCR)のマシンクロック選択ビット MCM :クロック選択レジスタ(CKSCR)のマシンクロック表示ビット CS1,CS0 :クロック選択レジスタ(CKSCR)の逓倍率選択ビット < 注意事項 > マシンクロックの初期値は , メインクロック(CKSCR:MCS=1)です。 87 第 5 章 クロック 発振安定待ち時間 5.5 電源投入 , ストップモードの解除およびウォッチドッグタイマリセットの場合は , 発 振停止から動作が開始するため , 発振開始後に発振安定待ち時間が必要です。また , メインクロックから PLL クロックへ切り換える場合も , PLL クロックの発振開始後 に発振安定待ち時間が必要です。 ■ 発振安定待ち時間 セラミック発振子および水晶発振子では一般に , 発振を開始してから固有周波数に安 定するまでに , 数ミリ秒から数十ミリ秒の発振安定化待ち時間が必要です。 CPU 動作は , 発振が完全に安定した後で行う必要があるため , CPU の動作は発振安定 化待ち時間が経過した後で行われます。 発振安定化待ち時間は発振子のタイプ(水晶 , セラミックなど)によって異なるので , 使用する発振子に適切な発振安定化待ち時間を選択しなければなりません。発振安定 化待ち時間は , クロック選択レジスタ(CKSCR)を設定することによって選択できま す。 メインクロックから PLL クロックへの切換え時 , CPU は発振安定化待ち時間中はメイ ンクロックで動作を継続します。動作クロックの PLL クロックへの切換えは , この時 間が経過した後で行われます。発振開始後の動作を図 5.5-1 に示します。 図 5.5-1 発振開始直後の動作 振動子の発振時間 発振安定待ち時間 X1 発振開始 88 発振安定 ( ) 通常動作開始または PLLクロックへの切換え 第 5 章 クロック 5.6 振動子と外部クロックの接続 MB90460/465 シリーズは , システムクロック発生回路を内蔵しており , X0, X1 端子 に振動子を接続するかまたは外部クロックを入力できます。 ■ 振動子と外部クロックの接続 ● 水晶振動子またはセラミック振動子の接続例 水晶振動子またはセラミック振動子は , 図 5.6-1 の例で示すように接続してください。 図 5.6-1 水晶振動子またはセラミック振動子の接続例 MB90460/465シリーズ X0 X1 XTAL C1 C2 ● 外部クロックの接続例 図 5.6-2 の例に示すように , 外部クロックは X0 端子に接続し , X1 端子はオープン(開 放)にしてください。 図 5.6-2 外部クロックの接続例 MB90460/465シリーズ X0 X1 オープン 89 第 5 章 クロック 90 第6章 低消費電力モード MB90460/465 シリーズ低消費電力モードについて 説明します。 6.1 低消費電力モードの概要 6.2 低消費電力制御回路のブロックダイヤグラム 6.3 低消費電力モード制御レジスタ (LPMCR) 6.4 CPU 間欠動作モード 6.5 スタンバイモード 6.6 状態遷移図 6.7 スタンバイモード , リセットの端子状態 6.8 低消費電力モード使用上の注意 91 第 6 章 低消費電力モード 低消費電力モードの概要 6.1 MB90460/465 シリーズは , 動作クロックの設定とクロックの動作制御により , 以下 の低消費電力モードがあります。 • CPU 間欠動作モード(PLL クロック間欠動作モードおよびメインクロック間欠動 作モード) • スタンバイモード(スリープモード , タイムベースタイムモードおよびストップ モード) ■ CPU 動作モードと消費電流 CPU 動作モードと消費電流の関係を図 6.1-1 に示します。 図 6.1-1 CPU 動作モードと消費電流 消費電流 数10mA CPU 動作モード PLLクロックモード 4逓倍クロック 3逓倍クロック 2逓倍クロック 1逓倍クロック PLLクロック間欠動作モード 4逓倍クロック 3逓倍クロック 2逓倍クロック 1逓倍クロック メインクロックモード(2分周クロックモード) メインクロック間欠動作モード 数mA スタンバイモード スリープモード タイムベースタイマモード ストップモード 数 µA :低消費電力モード (注意事項)この図は,各種モードのイメージであり,実際の消費電流とは異なる場合があります。 92 第 6 章 低消費電力モード ■ クロックモード ● PLL クロックモード PLL クロックは , 発振クロック(HCLK)を 1 ∼ 4 逓倍(CKSCR レジスタの CS1, CS0 ビットで設定)した周波数のクロックであり , CPU およびリソースを動作させます。 ● メインクロックモード メインクロックは , 発振クロック(HCLK)を 2 分周した周波数のクロックであり , CPU およびリソースを動作させます。メインクロックモード時は , PLL 逓倍回路が停止し ます。 < 参照 > クロックモードの詳細については , 「5.1 クロックの概要」をご参照ください。 ■ CPU 間欠動作モード CPU 間欠動作モード時は , CPU が間欠的に動作すると同時に , 高速クロックパルスが リソースへ供給され , 消費電力が抑えられます。CPU 間欠動作モード時 , 間欠クロック パルスが CPU に供給されるのは , レジスタ , 内部メモリ , リソースまたは外部ユニット をアクセスするときのみです。 ■ スタンバイモード スタンバイモードにおける低消費電力制御回路は , CPU へのクロック供給を停止(ス リープモード), CPU およびリソースへのクロック供給を停止(タイムベースタイマ モード)または発振クロックを完全に停止(ストップモード)することにより消費電 力を抑えます。 ● PLL スリープモード PLL スリープモードが起動され , PLL クロックモードになると , CPU の動作クロックが 停止します。ほかのリソースは , PLL クロックで動作を継続します。 ● メインスリープモード メインスリープモードが起動され , メインクロックモードになると , CPU の動作クロッ クが停止します。ほかのリソースは , メインクロックで動作を継続します。 ● PLL タイムベースタイマモード PLL タイムベースタイマモード時は , 発振クロック , PLL クロックおよびタイムベース タイマ以外の動作が停止します。 ● メインタイムベースタイマモード メインタイムベースタイマモード時は , 発振クロック , メインクロックおよびタイム ベースタイマ以外の動作が停止します。 ● ストップモード ストップモード時は , 発振クロックが停止し , すべての機能が停止します。 ストップモード時は発振クロックが停止するため , 最も低消費電力でデータを保持で きます。 93 第 6 章 低消費電力モード < 注意事項 > 94 クロックモードを切り換えた場合 , 切換えが完了するまではほかのクロックモード および低消費電力モードへ切り換えないようにしてください。 切換えの完了はクロック選択レジスタ(CKSCR)の MCM ビットを参照して確認 してください。切換えが完了する前に , ほかのクロックモードおよび低消費電力 モードへの切換えを行った場合 , 切り換わらない場合があります。 第 6 章 低消費電力モード 低消費電力制御回路のブロックダイヤグラム 6.2 低消費電力制御回路は , 以下の 7 つのブロックから構成されています。 • CPU 間欠動作セレクタ • 待機クロック制御回路 • CPU クロック制御回 • 周辺クロック制御回路 • 端子ハイインピーダンス制御回路 • 内部リセット発生回路 • 低消費電力モード制御レジスタ(LPMCR) ■ 低消費電力制御回路のブロックダイヤグラム 低消費電力制御回路のブロックダイヤグラムを図 6.2-1 に示します。 図 6.2-1 低消費電力制御回路のブロックダイヤグラム 低消費電力モード制御レジスタ(LPMCR) STP SLP SPL RST TMD CG1 CG0 予約 端子ハイインピー ダンス制御回路 RST 内部リセット 発生回路 端子 内部リセット 入出力端子リセット 間欠サイクル選択 CPU間欠動作 セレクタ CPUクロック 制御回路 3 CPUクロック ストップ,スリープ信号 スタンバイ 制御回路 割込み解除 端子ハイイン ピーダンス制御 ストップ信号 マシンクロック クロック 発生部 周辺クロック 制御回路 周辺クロック 発振安定待ち解除 クロックセレクタ 発振安定 待ち時間 セレクタ 2 2 PLL逓倍回路 X0 端子 予約 MCM WS1 WS0 予約 MCS CS1 CS0 クロック選択レジスタ(CKSCR) システム クロック 発生回路 HCLK 2分周 MCLK 21 … 29 210 211 212 213 214 215 216 217 218 タイムベースタイマ X1 端子 HCLK:発振クロック周波数 MCLK:メインクロック周波数 95 第 6 章 低消費電力モード ● CPU 間欠動作セレクタ CPU 間欠動作モード時に動作中の CPU 動作クロック停止サイクル数を設定します。 ● スタンバイ制御回路 CPU クロック制御回路 , 周辺クロック制御回路および端子ハイインピーダンス制御回 路を制御し , 低消費電力モードへの遷移および解除を行います。 ● CPU クロック制御回路 CPU に供給するクロックを制御します。この回路は , 周辺クロック制御のリソースへ 供給されるクロックを制御します。 ● 周辺クロック制御回路 リソースへ供給するクロックを制御します。 ● 端子ハイインピーダンス制御回路 タイムベースタイマモードおよびストップモード時に , 設定により入出力端子をハイ インピーダンスにします。 プルアップ抵抗を接続している入出力端子は , ストップモード時にプルアップ抵抗を 切離します。 ● 内部リセット生成回路 内部リセット信号を発生させます。 ● 低消費電力モード制御レジスタ(LPMCR) 低消費電力モードへの遷移 / 解除および CPU 間欠動作モードで動作中の CPU 動作ク ロック停止サイクル数などを設定します。 96 第 6 章 低消費電力モード 6.3 低消費電力モード制御レジスタ (LPMCR) 低消費電力モード制御レジスタ(LPMCR)は , 低消費電力モードへの遷移 / 解除お よび CPU 間欠動作モードで動作中の CPU 動作クロック停止サイクル数を設定しま す。 ■ 低消費電力モード制御レジスタ (LPMCR) 低消費電力モード制御レジスタ(LPMCR)の構成を図 6.3-1 に示します。 図 6.3-1 低消費電力モード制御レジスタ (LPMCR)の構成 bit 7 6 5 4 3 2 1 0 STP SLP SPL RST TMD CG1 CG0 予約 W W R/W W R/W R/W R/W R/W 初期値 00011000B 予約ビット 予約 必ず"0"を設定してください。 CG1 CG0 CPU動作クロック停止サイクル数選択ビット 0 0 0サイクル 0 1 8サイクル 1 0 16サイクル 1 1 32サイクル タイムベースタイマモードビット TMD 0 タイムベースタイマモードへ遷移 1 動作に影響しません RST 内部リセット信号発生ビット 0 3マシンサイクルの内部リセット信号を発生 1 動作に影響しません SPL 0 保持 1 ハイインピーダンス SLP スリープモードビット 0 動作に影響しません 1 スリープモードへ遷移 STP R/W :リード/ライト W :ライトオンリ :初期値 端子状態設定ビット (タイムベースタイマモードまたはストップモードで有効) ストップモードビット 0 動作に影響しません 1 ストップモードへ遷移 97 第 6 章 低消費電力モード 表 6.3-1 低消費電力モード制御レジスタ(LPMCR)の各ビットの機能説明 ビット名 bit7 STP: ストップモード ビット 機 能 • • • • • bit6 SLP: スリープモード ビット • • • • • bit5 bit4 SPL: 端子状態設定ビット (タイムベースタイ マモードまたはス トップモードで有 効) RST: 内部リセット信号発 生ビット • • • • • • • • • • bit3 TMDX: タイムベースタイマ モードビット • • • 98 bit2, bit1 CG1, CG0: CPU 動作クロック 停止サイクル数選択 ビット bit0 予約 : 予約ビット ストップモードを設定するビットです。 このビットに "0" を設定した場合 : 動作に影響しません。 このビットに "1" を設定した場合 : ストップモードへ遷移します。 外部リセットまたはハードウェア割込み出力により , "0" にクリアされ ます。 読出し値は常に , "0" です。 スリープモードを設定するビットです。 このビットに "0" を設定した場合 : 動作に影響しません。 このビットに "1" を設定した場合 : スリープモードへ遷移します。 外部リセットまたはハードウェア割込み出力により , "0" にクリアされ ます。 読出し値は常に , "0" です。 タイムベースタイマモードまたはストップモード時の端子状態を設定 するビットです。 このビットに "0" を設定した場合 : 入出力端子のレベルを保持します。 このビットに "1" を設定した場合 : 入出力端子をハイインピーダンス にします。 外部リセットで "0" にクリアされます。 内部リセットを設定するビットです。 このビットに "0" を設定した場合 :3 マシンサイクルの内部リセット信 号を発生します。 このビットに "1" を設定した場合 : 動作に影響しません。 読出し値は常に , "1" です。 タイムベースタイマモードへの遷移を設定するビットです。 このビットに "0" を設定した場合 : タイムベースタイマモードへに遷 移します。 このビットに "1" を設定した場合 : 動作に影響しません。 外部リセットまたはタイムベースタイマ割込み出力により , "1" に初期 化されます。 読出し値は "1" です。 • • • CPU 間欠動作モードで動作中の CPU 動作クロック停止サイクル数を設 定するビットです。 1 命令ごとに設定サイクル数の CPU クロック供給を停止します。 4 種類のサイクル数から設定します。 リセットにより "00B" に初期化されます。 • 必ず "0" を設定してください。 • 第 6 章 低消費電力モード ■ 低消費電力モード制御レジスタへのアクセス 低消費電力モード制御レジスタを設定するには , 表 6.3-2 に示す命令を使用してくださ い。表 6.3-2 に示す命令以外で低消費電力モードへ遷移した場合は , 動作を保証できま せん。 ワード長で低消費電力モード制御レジスタへ設定する場合は , 低消費電力制御回路 (0000A0H, 0000A1H)にワードアクセスしてください。 表 6.3-2 低消費電力モードへ遷移する場合に使用する命令一覧 MOV io, #imm8 MOV io, A MOV @RLi+disp8, A MOVW io, #imm16 MOVW io, A MOVW @RLi+disp8, A MOV dir, #imm8 MOV dir, A MOV eam, #imm8 MOV addr16, A MOV eam, Ri MOV eam, A MOVW dir, #imm16 MOVW dir, A MOVW eam, #imm16 MOVW addr16, A MOVW eam, RWi MOVW eam, A SETB io:bp CLRB io:bp SETB dir:bp CLRB dir:bp SETB addr16:bp CLRB addr16:bp ■ スタンバイモードの優先順位 ストップモード(LPMCR:STP), スリープモード(LPMCR:SLP)およびタイムベース タイマモード(LPMCR:TMD)を同時に設定した場合は , ストップモード>タイムベー スタイマモード>スリープモードの優先順位で遷移します。 99 第 6 章 低消費電力モード 6.4 CPU 間欠動作モード CPU 間欠動作モードは , CPU の間欠動作を行うと同時にリソースの高速動作を継続 させるために使用されます。CPU 間欠動作を行うことにより消費電力を抑えること ができます。 ■ CPU 間欠動作モード CPU 間欠動作モードは , CPU へのクロック供給をある一定期間停止します。この停止 が発生するのは , レジスタ , 内部メモリ(ROM および RAM), I/O およびリソースをア クセスする各命令が実行された後です。したがって , 内部バスサイクルが起動される際 には遅延が生じます。ある一定速度の周辺クロックパルスがリソースに供給されてい る間 , CPU 実行速度が下げられ , 低消費電力での処理が可能になります。 • 低消費電力モード制御レジスタ(LPMCR)の CG1 ビットと CG0 ビットは , CPU に 供給されるクロックの 1 停止サイクル当りのクロックパルス数を選択するために使 用します。 • CPU 間欠モード時の命令実行時間は , 次のようにして算出できます。レジスタ , 内 部メモリ , リソースおよび外部バスをアクセスする命令が実行された回数に 1 停止 サイクル当りのクロックパルス数を掛けることによって , 補正値を求めます。この 補正値を正常実行時間に加算します。 CPU 間欠動作モード時の動作クロックパルスを図 6.4-1 に示します。 図 6.4-1 CPU 間欠動作時のクロック 周辺クロック CPUクロック 間欠動作停止サイクル数 1命令実行 サイクル 内部データバス起動 100 第 6 章 低消費電力モード 6.5 スタンバイモード スタンバイモードとしては , スリープモード(PLL スリープモード , メインスリープ モード), タイムベースタイマモード , ストップモードがあります。 ■ スタンバイモードでの動作状態 スタンバイモードの動作状態の概要を表 6.5-1 に示します。 表 6.5-1 スタンバイモードの動作状態 スタンバイモード スリープ モード タイム ベース タイマ モード ストップ モード PLL スリー プモード 遷移条件 発振 クロック マシン クロック CPU 端子 解除方法 動作 動作 外部リセッ トまたは 割込み MCS=0 SLP=1 動作 メインスリー プモード MCS=1 SLP=1 タイムベース タイマモード (SPL=0) TMD=0 動作 保持 停止 タイムベース タイマモード (SPL=1) TMD=0 ストップモー ド(SPL=0) STP=1 停止 * Hi-Z 外部リセッ トまたは 割込み *1 停止 保持 停止 ストップモー ド(SPL=1) リソース 停止 STP=1 Hi-Z 外部リセッ トまたは 割込み *2 *1 : タイムベースタイマ *2 : 外部割込み SPL : 低消費電力モード制御レジスタ(LPMCR)の端子状態設定ビット SLP : 低消費電力モード制御レジスタ(LPMCR)のスリープモードビット STP : 低消費電力モード制御レジスタ(LPMCR)のストップモードビット TMD : 低消費電力モード制御レジスタ(LPMCR)のタイムベースタイマモードビット MCS : クロック選択レジスタ(CKSCR)のマシンクロック選択ビット Hi-Z : ハイインピーダンス 101 第 6 章 低消費電力モード 6.5.1 スリープモード スリープモードは , CPU の動作クロックを停止させます。CPU 以外は動作を継続し ます。スリープモードへの遷移を設定すると , PLL クロックモードを設定している 場合は PLL スリープモードへ遷移し , メインクロックモードを設定している場合は メインスリープモードへ遷移します。 ■ スリープモードへの遷移 低消費電力モード制御レジスタ(LPMCR)のスリープモードビット(SLP:bit6)に "1" を , タイムベースタイマモードビット(TMD:bit3)に "1" を , ストップモードビット (STP:bit5)に "0" を設定した場合は , スリープモードへ遷移します。スリープモードへ の遷移を設定すると , クロック選択レジスタ(CKSCR)のマシンクロック選択ビット (MCS:bit10)に "0" が設定されている場合は , PLL スリープモードへ遷移します。マシ ンクロック選択ビット(MCS:bit10)に "1" が設定されている場合は , メインスリープ モードへ遷移します。 SLP ビットと STP ビットへの "1" の書込みと TMD ビットへの "0" の書込みが同時に行 われると, STP/TMDビット設定値はSLPビット設定値を無効にするので, ストップモー ドまたはタイムベースタイマモードへの切換えが発生します。 ● データ保持機能 スリープモード時は , 専用レジスタ(アキュムレータや内部 RAM など)のデータを保 持します。 専用レジスタの詳細は , 「3.7 専用レジスタ」をご参照ください。 ● 割込み要求時の動作 割込み要求時に LPMCR の SLP ビットに "1" を書き込んでも , スリープモードへの切換 えは発生しません。CPU が割込みを受け付けない場合は , CPU は当該命令のその次の 命令を実行します。CPU が割込みを受け付けた場合は , CPU 動作は直ちに割込み処理 ルーチンに分岐します。 ● ピンの状態 スリープモード時には , すべての端子(バス入出力またはバス制御を行うために使用さ れる端子は除く)は , スリープモードへの切換えが発生する直前の状態を保持します。 102 第 6 章 低消費電力モード ■ スリープモードの解除 スリープモードは , 外部リセットまたは割込みにより解除できます。 ● リセットによるスリープモードの解除 スリープモードがリセットによって解除されると , スリープモードが解除されると同 時にリセット状態になります。 ● 割込みによるスリープモードの解除 スリープモード時にリソースからレベル7より高い割込み要求が発生されると, スリー プモードが解除されます。スリープモードが解除されると , CPU はこの割込みをほか の割込みと同様な方法で処理します。CPU は , コンディションコードレジスタ(CCR), 割込みレベルマスクレジスタ(ILM)および割込み制御レジスタ(ICR)の設定に従っ て処理を実行します。この割込みが受付けられた場合は , CPU は割込み処理を実行し ます。この割込みが受付けられなかった場合は , CPU はスリープモードへの切換えが 指定されている命令のすぐ次の命令を実行します。 割込みによるスリープモードの解除を図 6.5-1 に示します。 図 6.5-1 ハードウェア割込み出力によるスリープモードの解除フロー リソースの割込み 許可フラグ設定 ハードウェア 割込み発生 (IL<7) YES I="0" NO YES スリープモード継続 [スリープモード] 次の命令実行 [スリープモード解除] NO ILM<IL YES 次の命令実行 NO 割込み実行 IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット I :コンディションコードレジスタ(CCR)の割込み許可フラグ ILM:割込みレベルマスクレジスタ(PS内) 割込み処理が正常に実行されると , CPU はまず , スリープモードへの切換えが指定され ている命令のすぐ次の命令を実行します。CPU は次に , 割込み処理に移ります。 103 第 6 章 低消費電力モード ● 外部リセットによる PLL スリープモードからノーマルモードへの復帰 PLL スリープモード時には , メインクロックと PLL クロックがクロックパルスを生成 します。外部リセットはクロック選択レジスタ(CKSCR)の MCS ビットを "1" に初期 化しないので , PLL ロックモードが選択された状態(CKSCR の MCS=0)のままとなり ます。外部リセットで PLL スリープモードからノーマルモードに復帰すると(すなわ ち , PLL スリープモードが解除された後), CPU は直ちに PLL クロックで動作を開始し ます(図 6.5-2 を参照)。 図 6.5-2 PLL スリープモードの解除(外部リセットを使用) RST端子 スリ-プモード メインクロック 発振 PLLクロック 発振 CPUクロック PLLクロック CPUの動作 停止 スリープモード解除 104 リセットシーケンス リセット解除 実行 第 6 章 低消費電力モード 6.5.2 タイムベースタイマモード タイムベースタイマモードは , 発振クロックとタイムベースタイマ以外の動作を停 止させます。 ■ タイムベースタイマモードへの遷移 低 消 費 電 力 モ ー ド 制 御 レ ジ ス タ(LPMCR)の タ イ ム ベ ー ス タ イ マ モ ー ド ビ ッ ト (TMD:bit3)に "0" を設定した場合は , タイムベースタイマモードへ遷移します。 LPMCR の TMD ビットと STP ビットにそれぞれ "0" を書き込むと , タイムベースタイ マモードへの切換えが発生します。 この時点でクロック選択レジスタ(CKSCR)の MCS ビットに "0" が設定されている場 合は , PLL タイムベースタイマモードになり , クロック選択レジスタ(CKSCR)の MCS ビットに "1" が設定されている場合は , メインタイムベースタイマモードになります。 TMD ビットと STP ビットへの "0" の書込みが同時に行われると , STP ビット設定値は TMD ビットの設定値を無効にするので , ストップモードへの切換えが発生します。 ● データ保持機能 タイムベースタイマモード時は , 専用レジスタと(アキュムレータや内部 RAM など) のデータを保持します。 専用レジスタの詳細は , 「3.7 専用レジスタ」をご参照ください。 ● 割込み要求時の動作 割込み要求時に LPMCR の TMD ビットに "0" を書き込んでも , タイムベースタイマモー ドへの切換えは発生しません。 ● 端子の状態 タイムベースタイマモードへの切換えが発生する直前の状態を外部端子に保持させる かまたはこのモードへの切換えによって外部端子をハイインピーダンスに設定するか の選択に関する制御は , LPMCR の SPL ビットで行うことができます。 105 第 6 章 低消費電力モード ■ タイムベースタイマモードの解除 タイムベースタイマモードは , 外部リセットまたはタイムベースタイマ割込みで解除 できます。 ● リセットによるタイムベースタイマモードの解除 タイムベースタイマモードがリセットによって解除されると , タイムベースタイマ モードから解除された後でリセット状態になります。 ● 外部リセットによるタイムベースタイマモードの解除 外部リセットはクロック選択レジスタ(CKSCR)の MCS ビットを "1" に初期化しない ため , PLL クロックモードが選択された状態(CKSCR の MCS=0)のままとなるかまた はメインクロックモードが選択された状態(CKSCR の MCS=1)のままとなります。外 部リセットでタイムベースタイマモードから復帰すると(すなわち , タイムベースタイ マモードが解除された後), CPU は直ちに PLL/ メインクロックで動作を開始します。 外部リセットによるタイムベースタイマモードからノーマルモードへの復帰動作を図 6.5-3 に示します。 ● タイムベースタイマ割込みによる解除 タイムベースタイマモード中に割込みレベルが 7 より強く設定されたタイムベースタ イマ割込みが発生すると , 低消費電力制御回路はタイムベースタイマモードを解除し ます。タイムベースタイマモードの解除後は , 通常の割込み処理と同じ扱いとなりま す。コンディションコードレジスタ(CCR)の I フラグ , 割込みレベルマスクレジスタ (ILM)および割込み制御レジスタ(ICR)の設定により割込みが受付けられない場合 は , タイムベースタイマモードに入る前の次の命令から処理を続行します。 図 6.5-3 外部割込み出力によるタイムベースタイマモードの解除フロー リソースの割込み 許可フラグ設定 ハードウェア 割込み発生 (IL<7) YES I=0 NO タイムベースタイマモード継続 [タイムベースタイマモード] YES [タイムベースタイマモード解除] 次の命令実行 NO ILM<IL YES 次の命令実行 NO 割込み実行 IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット I :コンディションコードレジスタ(CCR)の割込み許可フラグ ILM:割込みレベルマスクレジスタ(PS内) 106 第 6 章 低消費電力モード 6.5.3 ストップモード ストップモードは , 発振クロックを停止させます。すべての機能が停止しますので , 最も低消費電力でデータを保持できます。 ■ ストップモードへの遷移 低消費電力モード制御レジスタ(LPMCR)のストップモードビット(STP:bit7)に "1" を設定した場合は , ストップモードへ遷移します。 この時点でクロック選択レジスタ(CKSCR)の MCS ビットに "0" が設定されている場 合は , PLL ストップモードになり , クロック選択レジスタ(CKSCR)の MCS ビットに "1" が設定されている場合は , メインストップモードになります。 ● データ保持機能 ストップモード時は , 専用レジスタと(アキュムレータや内部 RAM など)のデータを 保持します。 専用レジスタの詳細は , 「3.7 専用レジスタ」をご参照ください。 ● 割込み要求出力中の動作 割込み要求を出力している場合は , 低消費電力モード制御レジスタ(LPMCR)のストッ プモードビット(STP:bit7)に "1" を設定しても , ストップモードへ遷移しません。 ● 端子状態の設定 ストップモードの入出力端子は , 低消費電力モード制御レジスタ(LPMCR)の端子状 態設定ビット(SPL:bit5)により , 直前のレベルを保持するか , ハイインピーダンスに するかを設定します。 107 第 6 章 低消費電力モード ■ ストップモードの解除 ストップモードは , 外部リセットまたはハードウェア割込み出力で解除できます。 ● リセットによるストップモードの解除 ストップモードのリセットによって解除されると , ストップモードから解除された後 , 発振安定化待ちおよびリセット状態になります。リセットシーケンスには , 発振安定化 待ち時間経過後に移ります。 ● 割込みによるストップモードの解除 (割込み制御レジスタ(ICR)の IL2, IL1, IL0 が "111B" 以外の値に設定されているとき) ストップモード時にリソースからレベル7より高い割込み要求が発生されると, 低消費 電力制御回路はストップモードを解除します。ストップモードが解除されると , CPU はこの割込みをほかの割込みと同様な方法で処理します。ただし , CPU の起動は , ク ロック選択レジスタ(CKSCR)の WS1 ビットと WS0 ビットで指定されたメインク ロック発振安定化待ち時間が経過した後で行われます。CPU は , コンディションコー ドレジスタ(CCR), 割込みレベルマスクレジスタ(ILM)および割込み制御レジスタ (ICR)の設定に従って処理を実行します。この割込みが受け付けられた場合は , CPU は割込み処理を実行します。この割込みが受け付けられなかった場合は , CPU はストッ プモードへの切換えが指定されている命令のすぐ次の命令を実行します。 割込み処理が正常に実行されると , CPU はまず , ストップモードへの切換えが指定され ている命令のすぐ次の命令を実行します。CPU は次に , 割込み処理に移ります。 ストップモードからノーマルモードへの復帰動作を図 6.5-4 に示します。 図 6.5-4 外部割込み出力によるストップモードの解除 RST端子 ストップモード メインクロック 発振安定待ち時間 発振 PLLクロック 発振安定待ち時間 発振 メイン/PLLクロック CPUクロック CPU動作 ストップモード解除 108 停止 リセット解除 リセットシーケンス 実行 第 6 章 低消費電力モード 6.6 状態遷移図 MB90460/465 シリーズ CPU 動作モードの状態遷移図を示します。 ■ 状態遷移図 図 6.6-1 状態遷移図 外部リセット, ウォッチドッグタイマリセット, ソフトウェアリセット 電源投入 リセット 発振安定待ち終了 MCS=1 メインクロック モード SLP=1 割込み PLLクロック モード MCS=0 SLP=1 メインスリープ モード 割込み TMD=0 PLLスリープ モード TMD=0 メインタイムベース タイマモード STP=1 割込み PLLタイムベース タイマモード STP=1 メインストップ モード 割込み PLLストップ モード 割込み 発振安定 待ち終了 メインクロック 発振安定待ち < 注意事項 > 割込み 発振安定 待ち終了 PLLクロック 発振安定待ち クロックモードを切り換えた場合 , 切換えが完了するまではほかのクロックモード および低消費電力モードへ切り換えないようにしてください。 切換えの完了はクロック選択レジスタ(CKSCR)の MCM ビットを参照して確認 してください。切換えが完了する前に , ほかのクロックモードおよび低消費電力 モードへの切換えを行った場合 , 切り換わらない場合があります。 109 第 6 章 低消費電力モード 6.7 スタンバイモード , リセットの端子状態 スタンバイモード , リセットの端子状態を示します。 ■ ソフトウェアプルアップ抵抗 ソフトウェアでプルアップ抵抗を接続している入出力端子は , 出力設定にすることで プルアップ抵抗は切離されます。 ■ 端子状態 各端子の状態を表 6.7-1 に示します。 表 6.7-1 各端子状態 スタンバイモード 端子名 ストップモード リセット時 スリープ P00 ∼ P07 P17 P20 ∼ P27 P30 ∼ P37 P40 P42 ∼ P47 P50 ∼ P57 P60 ∼ P63 P10 ∼ P16 P63 直前の状態を 保持 *2 SPL=0 SPL=1 直前の状態を 保持 *2 入力遮断 *3/ 出力 Hi-Z*4 出力 Hi-Z*4 入力可 *1 *1:" 入力可 " とは , 入力機能が可能な状態であることを意味します。ただし , 部割込みを許 可している場合に限ります。出力ポートとして使用している場合は , 低消費電力モード制 御レジスタ(LPMCR)の端子状態設定ビット(SPL)の設定に従います。 *2:" 直前の状態を保持 " とは , スタンバイモードに遷移する直前に出力していた状態をその まま保持 *5 することを意味します。ただし , 入力状態であった場合は , 入力不可 *6 とな るので注意してください。 *3: 入力遮断状態では , 入力はマスクされ "L" レベルが内部に伝わります。 *4:" 出力 Hi-Z" とは , 端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダ ンスにする ことを意味します。 *5:" 出力していた状態をそのまま保持 " とは , リソースの出力値またはポートの出力 値を保 持することを意味します。 *6:" 入力不可 " とは , 内部回路が動作していないため , 端子への入力値が内部で受け付けら れない状態を 意味します。 110 第 6 章 低消費電力モード 6.8 低消費電力モード使用上の注意 低消費電力モードを使用する場合は , 以下の注意が必要です。 • スタンバイモードへの遷移と割込み • 割込みによるスタンバイモードの解除 • スタンバイモードの設定 • 外部割込みによるストップモードの解除 • タイムベースタイマモードの解除 • 発振安定待ち時間 • クロックモードの切換え ■ スタンバイモードへの遷移と割込み リソースが割込み要求を出力している場合は , 低消費電力モード制御レジスタ (LPMCR)のストップモードビット(STP:bit7)に "1", スリープモードビット(SLP:bit5) に "1", あるいはタイムベースタイマモードビット(TMD:bit3)に "0" を設定しても , ス タンバイモードへは遷移しません。 ただし , CPU による割込み処理が実行中 , 割込み要求フラグがクリアされ , かつほかの 割込み要求が送出されていない場合は , スタンバイモードへ遷移できます。 ■ 割込みによるスタンバイモードの解除 スリープモード , タイムベースタイマモードおよびストップモード中に , 動作している リソースおよび外部割込みから割込みレベルが "7" より強い割込み要求(割込み制御 レジスタ ICR:IL2, IL1, IL0=000B ∼ 110B)が出力されると , スタンバイモードは解除さ れます。 待機モードが解除された後 , 正常割込み処理が実行されます。CPU は割込み処理ルー チンへ分岐します(割込みレベル設定ビット(ICR の IL2, IL1, IL0)で示された割込み 要求優先順位が割込みレベルマスクレジスタ(ILM)より高い場合)。コンディション コードレジスタ(CCR)の割込み許可フラグ(I)は "1"(許可)に設定されます。割 込みが受付けられない場合は , CPU はスタンバイモードへの遷移が指定されている命 令のすぐ次の命令を実行します。 割込み処理が正常に実行されると , CPU はまず , スタンバイモードへの遷移が指定され ている命令のすぐ次の命令を実行します。CPU は次に , 割込み処理に移ります。ただ し , スタンバイモードへの遷移が実行されたときの状態によっては , CPU はその次の命 令を実行する前に割込み処理に移ることがあります。 スタンバイモードからノーマルモードへ復帰した直後に CPU が割込み処理ルーチンへ 分岐しない場合は , スタンバイモードが設定される前に割込みを停止する処置をしな ければなりません。 ■ スタンバイモードの設定 LPMCR の STP ビットと SLP ビットに同時に "1" を書き込むと , スタンバイモードへの 遷移が実行されます。クロック選択レジスタ(CKSCR)の MCS ビットが "0" の場合は , タイムベースタイマモードへの切換えが実行されます。このビットが "1" の場合は , ス トップモードへの切換えが実行されます。 111 第 6 章 低消費電力モード ■ 外部割込みによるストップモードの解除 ストップモードを解除するために外部割込みを使用する場合は , システムがストップ モードに遷移する前に割込み入力要因として設定した入力を使用してください。入力 要因として "H" レベル , "L" レベル , 立上りエッジまたは立下りエッジを選択できます。 ■ タイムベースタイマモードの解除 PLL タイムベースタイマモードが解除されると , PLL クロック発振安定化待ち状態に なります。メインタイムベースタイマモードの場合は , リセット直後かまたは割込みか らの復帰と同時に実行される命令でクロック選択レジスタ(CKSCR)の MCS ビット を "1" に書き換えてください。 外部割込みを使用してタイムベースタイマモードを解除する場合は , 入力要因として "H" レベル , "L" レベル , 立上りエッジまたは立下りエッジを選択できます。 ■ 発振安定待ち時間 ● 発振クロックの発振安定化待ち時間 ストップモード時は原発振の発振子は停止するので , 発振安定化待ち時間を設けなけ ればなりません。CKSCR の WS1 ビットと WS0 ビットで選択された時間幅は , 発振安 定化待ち時間として使用されます。 ● PLL クロック発振安定化待ち時間 CPU はメインクロックで動作でき , PLL クロックは停止できます。CPU およびリソー スが PLL クロックで動作するモードになると , PLL クロックは最初に発振安定化待ち 状態になります。発振安定化待ち状態においては , CPU はメインクロックで動作しま す。 PLL クロック発振安定化待ち時間は , 214/HCLK 固定です(HCLK: 発振クロック周波 数)。 ■ クロックモードの切換え クロックモードを切り換えた場合 , 切換えが完了するまでは低消費電力モードへの切 換えおよびほかのクロックモードへ切り換えないようにしてください。切換えの完了 はクロック選択レジスタ(CKSCR)の MCM ビットを参照して確認してください。 切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換えを 行った場合 , 切り換わらない場合があります。 112 第7章 割込み MB90460/465 シリーズの割込みと拡張インテリ ジェント I/O サービス(EI2OS)について説明しま す。 7.1 割込み 7.2 割込み要因と割込みベクタ 7.3 割込み制御レジスタとリソース 7.4 ハードウェア割込み 7.5 ソフトウェア割込み 7.6 拡張インテリジェント I/O サービス(EI2OS)からの割 込み 7.7 例外処理割込み 7.8 割込み処理時のスタック動作 7.9 割込み処理のプログラム例 113 第 7 章 割込み 7.1 割込み MB90460/465 シリーズの割込みと拡張インテリジェント I/O サービス(EI2OS)に ついて説明します。 • ハードウェア割込み • ソフトウェア割込み • 拡張インテリジェント I/O サービス(EI2OS)からの割込み • 例外処理 ■ 割込みの種類と機能 ● ハードウェア割込み ハードウェア割込みは , リソースから割込み要求が発生すると , ユーザ定義の割込み処 理プログラムへ制御を移します。 ● ソフトウェア割込み ソフトウェア割込みは , 専用ソフトウェア割込み命令(INT 命令など)の実行により起 動されたユーザ定義の割込み処理プログラムへ制御を移します。 ● 拡張インテリジェント I/O サービス(EI2OS)による割込み 拡張インテリジェント I/O サービス(EI2OS)は , リソースとメモリ間における自動デー タ転送機能です。EI2OS の起動時の設定プログラムと終了プログラムを作成するだけ で , データを転送できます。データ転送処理を終了すると , 自動的に割込み処理プログ ラムを実行します。 拡張インテリジェント I/O サービス(EI2OS)による割込みは , 上記のハードウェア割 込みの一種です。 ● 例外処理 例外処理は , 命令間で例外事項(未定義命令の実行)の発生が検出された場合に , 通常 処理を中断して実行されます。上記のソフトウェア割込み命令の "INTI0" と等価です。 114 第 7 章 割込み ■ 割込み動作 4 種類の割込み機能の起動と復帰処理を図 7.1-1 に示します。 図 7.1-1 割込み動作の全体フロー スタート メインプログラム 有効な Is there ハードウェア 割込み要求が存在 するか? ストリング系 * 命令が実行中 YES 割込みの起動と復帰処理 NO 次の命令を取出し, デコードする YES EI2OS? YES INT命令? EI2OS処理 ソフトウェア 割込み/ 例外処理 システムスタックへ 専用レジスタを 退避する NO EI2OS ハードウェア割込みの 受付けを無効にする ("1" → "0") ハードウェア 割込み YES システムスタックへ 専用レジスタを退避する 指定された 回数に達したか? またはリソースから 終了要求が あったか? NO CPU割込み処理レベル (ILM)を更新する RETI命令? NO 通常命令を実行する instruction YES 割込み 復帰処理 システムスタックから 専用レジスタを戻し, 割込みルーチンを呼出す る前のルーチンへ戻る 割込みベクタを読出し, PCとPCBを更新し, 割込みルーチンへ 分岐する ストリング系 * 命令の反復は完了 したか? YES PCを更新してポインタを 次の命令へ移動する *:ストリング系命令の実行中は,1ステップごとに割込みが判定されます。 115 第 7 章 割込み 割込み要因と割込みベクタ 7.2 F2MC-16LX ファミリは , 256 種類の割込み要因を処理する機能を備えています。 256 の割込みベクタテーブルは , 最上位アドレスのメモリに割当てられています。こ れらの割込みベクタは , すべての割込みで共用されます。 ソフトウェア割込みは , これらすべての割込みベクタ(INT0 ∼ INT255)を使用でき ます。ソフトウェア割込みは , 同じ割込みベクタをハードウェア割込みおよび例外 処理割込みと共用します。ハードウェア割込みは , 各リソースの固定割込みベクタ と割込み制御レジスタ(ICR)を使用します。 ■ 割込みベクタ 割込み処理時に参照される割込みベクタテーブルは , メモリ領域の最上位アドレス (FFFC00H ∼ FFFFFFH)に割当てられています。割込みベクタは , 同じ領域を EI2OS, 例外処理 , ハードウェア割込み , ソフトウェア割込みが共用します。 割込み番号および割込みベクタの割当てを , 表 7.2-1 に示します。 表 7.2-1 割込みベクタ ソフトウェア 割込み命令 ベクタ アドレス L ベクタ アドレス M ベクタ アドレス H モード データ 割込み 番号 ハードウェア 割込み INT0 FFFFFCH FFFFFDH FFFFFEH 未使用 #0 なし : : : : : : : INT7 FFFFE0H FFFFE1H FFFFE2H 未使用 #7 なし INT8 FFFFDCH FFFFDDH FFFFDEH FFFFDFH #8 (リセットベクタ) INT9 FFFFD8H FFFFD9H FFFFDAH 未使用 #9 なし INT10 FFFFD4H FFFFD5H FFFFD6H 未使用 #10 < 例外処理 > INT11 FFFFD0H FFFFD1H FFFFD2H 未使用 #11 ハードウェア割込み番号 0 INT12 FFFFCCH FFFFCDH FFFFCEH 未使用 #12 ハードウェア割込み番号 1 INT13 FFFFC8H FFFFC9H FFFFCAH 未使用 #13 ハードウェア割込み番号 2 INT14 FFFFC4H FFFFC5H FFFFC6H 未使用 #14 ハードウェア割込み番号 3 : : : : : : : INT254 FFFC04H FFFC05H FFFC06H 未使用 #254 なし INT255 FFFC00H FFFC01H FFFC02H 未使用 #255 なし L: 下位アドレス M: 中位アドレス H: 上位アドレス < 参考 > 116 使用されない割込みベクタは , 例外処理などのアドレスに設定することを推奨しま す。 第 7 章 割込み ■ 割込み要因 , 割込みベクタおよび割込み制御レジスタ 割込み要因(ソフトウェア割込みを除く), 割込みベクタおよび割込み制御レジスタの 関係を表 7.2-2 に示します。 表 7.2-2 割込み要因 , 割込みベクタおよび割込み制御レジスタ ( 1 / 2 ) 割込み要因 EI2OS 対応 割込みベクタ 割込み制御レジスタ 優先度 *2 番号 アドレス ICR アドレス リセット × #08 08H FFFFDCH - - 高い INT9 命令 × #09 09H FFFFD8H - - ↑ 例外処理 × #10 0AH FFFFD4H - - A/D コンバータによる変換終了 ○ #11 0BH FFFFD0H アウトプットコンペアチャネル 0 一致 ICR00 #12 0CH FFFFCCH 0000B0H*1 ○ PWC0 タイマ測定終了 , PWC0 タイマオーバフロー ○ #13 0DH FFFFC8H ICR01 0000B1H*1 16 ビット PPG タイマ 0 ○ #14 0EH FFFFC4H アウトプットコンペアチャネル 1 一致 ○ #15 0FH FFFFC0H ICR02 0000B2H*1 16 ビット PPG タイマ 1 ○ #16 10H FFFFBCH アウトプットコンペアチャネル 2 一致 ○ #17 11H FFFFB8H ICR03 16 ビットリロードタイマ 1 アンダ フロー 0000B3H*1 ○ #18 12H FFFFB4H アウトプットコンペアチャネル 3 一致 ○ #19 13H FFFFB0H DTP/ 外部割込みチャネル 0/1 検出 ○ ICR04 0000B4H*1 ICR05 0000B5H*1 ICR06 0000B6H*1 ICR07 0000B7H*1 DTTI0 Δ アウトプットコンペアチャネル 4 一致 ○ DTP/ 外部割込みチャネル 2/3 検出 ○ DTTI1 ○ アウトプットコンペアチャネル 5 一致 ○ #20 14H FFFFACH #21 15H FFFFA8H #22 16H FFFFA4H #23 17H FFFFA0H PWC1 タイマ測定終了 , PWC1 タイマオーバフロー ○ #24 18H FFFF9CH DTP/ 外部割込みチャネル 4/5 検出 ○ #25 19H FFFF98H マルチパルスジェネレータタイマ コンペア一致 / 書込みタイミング ○ #26 1AH FFFF94H ↓ 低い 117 第 7 章 割込み 表 7.2-2 割込み要因 , 割込みベクタおよび割込み制御レジスタ ( 2 / 2 ) 割込み要因 DTP/ 外部割込みチャネル 6/7 検出 EI2OS 対応 ○ 割込みベクタ 優先度 *2 番号 #27 1BH アドレス ○ #28 1CH FFFF8CH 波形生成部 16 ビットタイマ 0/1/2 アンダフロー Δ #29 1DH FFFF88H 16 ビットリロードタイマ 0 アンダ フロー ○ #30 1EH FFFF84H 16 ビットフリーランタイマ 0 検出 Δ #31 1FH FFFF80H 16 ビット PPG タイマ 2 ○ #32 20H FFFF7CH インプットキャプチャチャネル 0/1 ○ #33 21H FFFF78H 16 ビットフリーランタイマコンペ アクリア Δ #34 22H FFFF74H アウトプットキャプチャチャネル 2/3 ○ #35 23H FFFF70H タイムベースタイマ Δ #36 24H FFFF6CH UART1 受信完了 ◎ #37 25H FFFF68H FFFF64H UART1 送信開始 Δ #38 26H UART0 受信完了 ◎ #39 27H FFFF60H UART0 送信開始 Δ #40 28H FFFF5CH フラッシュメモリステータス Δ #41 29H FFFF58H Δ #42 2AH ICR アドレス ICR08 0000B8H*1 FFFF90H マルチパルスジェネレータ位置検 出 / コンペア割込み 遅延割込み発生モジュール 割込み制御レジスタ 高い ↑ ICR09 0000B9H*1 ICR10 0000BAH*1 ICR11 0000BBH*1 ICR12 0000BCH*1 ICR13 0000BDH*1 ICR14 0000BEH*1 ICR15 0000BFH*1 FFFF54H ↓ 低い ○ :EI2OS は使用可能であり , 割込み要求フラグは EI2OS 割込みクリア信号でクリアされます。 × :EI2OS は使用不可。 ◎ :EI2OS は使用可能であり , EI2OS 停止要求もサポートされています。 Δ:EI2OS は , ICR を共用する割込み要因を使用しない場合 , 使用可能です。 *1: - ICR レジスタを共用するリソースの場合 , 割込みレベルは同じです。 - EI2OS を , 別のリソースと , ICR レジスタを共用しているリソースを一緒に使用する場合は , EI2OS はこれ ら 2 つのリソースのどちらかで起動できます。また , EI2OS クリアをサポートしている場合は , 2 つの割込 み要因の各割込み要求フラグが EI2OS 割込みクリア信号でクリアされます。EI2OS の使用中は , どちらか 一方の割込み要求をマスクすることを推奨します。 - 複数の EI2OS を複数回 , 同時に起動することはできません。EI2OS の動作中は , 動作中の割込み以外の割 込みはマスクされます。EI2OS の使用中は , どちらか一方の割込み要求をマスクすることを推奨します。 *2: この優先度は , 同じレベルの割込みが同時に発生する場合に適用されます。 118 第 7 章 割込み 7.3 割込み制御レジスタとリソース 割込み制御レジスタ(ICR00 ∼ ICR15)は , 割込みコントローラ内に存在します。 割込み制御レジスタは , 割込み機能を持つすべてのリソースに対応しています。こ れらのレジスタは , 割込みと拡張インテリジェント I/O サービス(EI2OS)を制御し ます。 ■ 割込み制御レジスタ 割込み制御レジスタと , これらのレジスタに対応しているリソースを表 7.3-1 に示しま す。 表 7.3-1 割込み制御レジスタ アドレス 0000B0H 割込み制御レジスタ 00 レジスタ ICR00 略語 A/D コンバータ , アウトプットコンペア 0 対応するリソース 0000B1H 割込み制御レジスタ 01 ICR01 PWC0, 16 ビット PPG タイマ 0 0000B2H 割込み制御レジスタ 02 ICR02 アウトプットコンペア 1, 16 ビット PPG タイマ 1 0000B3H 割込み制御レジスタ 03 ICR03 アウトプットコンペア 2, 16 ビットリロードタイマ 1 0000B4H 割込み制御レジスタ 04 ICR04 アウトプットコンペア 3, DTP/ 外部割込み 0/1, DTTI0 0000B5H 割込み制御レジスタ 05 ICR05 アウトプットコンペア 4, DTP/ 外部割込み 2/3, DTTI1 0000B6H 割込み制御レジスタ 06 ICR06 アウトプットコンペア 5, PWC1 タイマ 0000B7H 割込み制御レジスタ 07 ICR07 DTP/ 外部割込み 4/5, マルチパルスジェネレータ 0000B8H 割込み制御レジスタ 08 ICR08 DTP/ 外部割込み 6/7, マルチパルスジェネレータ 0000B9H 割込み制御レジスタ 09 ICR09 波形生成部 , 16 ビットリロードタイマ 0 0000BAH 割込み制御レジスタ 10 ICR10 16 ビットフリーランタイマ 0 検出 , 16 ビット PPG タイマ 2 0000BBH 割込み制御レジスタ 11 ICR11 0000BCH 割込み制御レジスタ 12 ICR12 0000BDH 割込み制御レジスタ 13 ICR13 インプットキャプチャ 0/1, 16 ビットフリーランタイマコンペアクリア インプットキャプチャ 2/3, タイムベースタイマ UART1 0000BEH 割込み制御レジスタ 14 ICR14 UART0 0000BFH 割込み制御レジスタ 15 ICR15 フラッシュメモリ , 遅延割込みジェネレータモジュール ■ 割込み制御レジスタの機能 すべての割込み制御レジスタ(ICR)は , 以下を処理します。 • 対応するリソースの割込みレベルを設定する • 対応するリソースの割込みとして , " 通常割込み " または " 拡張インテリジェント I/O サービス " を選択する • 拡張インテリジェント I/O サービス(EI2OS)のチャネルを選択する • 拡張インテリジェント I/O サービス(EI2OS)の状態を表示する 割込み制御レジスタ(ICR)の一部の機能は , 図 7.3-1 と図 7.3-2 に示されているように , 書込み時と読出し時では異なります。 割込み制御レジスタ(ICR)へアクセスする際 , リードモディファイライト命令は使用 しないでください。リードモディファイライト命令を使用すると , 正常に動作しませ ん。 119 第 7 章 割込み 7.3.1 割込み制御レジスタ(ICR00 ∼ ICR15) 割込み制御レジスタは , 割込み機能を持つすべてのリソースに対応しています。割 込み制御レジスタは , 割込み要求が発生すると割込み処理を制御します。割込み制 御レジスタの一部の機能は , 書込み時と読出し時では異なります。 ■ 割込み制御レジスタ(ICR00 ∼ ICR15) 図 7.3-1 書込み時の割込み制御レジスタ(ICR00 ∼ ICR15) 書込み時 bit 7 6 5 4 ICS3 ICS2 ICS1 ICS0 W W W W 3 2 1 0 ISE IL2 IL1 IL0 R/W R/W R/W R/W IL2 IL1 初期値 00000111B IL0 割込みレベル設定ビット 0 1 0 割込みレベル0(優先度が最も高い) 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 割込みレベル7(割込みなし) ISE EI2OS許可ビット 0 割込みが発生すると,割込みシーケンスをアクティブにする 1 割込みが発生すると,EI2OSをアクティブにする ICS3 ICS2 ICS1 ICS0 R/W : リード/ライト W : ライトオンリ : 初期値 120 EI2OSチャネル選択ビット チャネル ディスクリプタアドレス 0 0 0 0 0 000100H 0 0 0 1 1 000108H 0 0 1 0 2 000110H 0 0 1 1 3 000118H 0 1 0 0 4 000120H 000128H 0 1 0 1 5 0 1 1 0 6 000130H 0 1 1 1 7 000138H 1 0 0 0 8 000140H 1 0 0 1 9 000148H 1 0 1 0 10 000150H 1 0 1 1 11 000158H 1 1 0 0 12 000160H 1 1 0 1 13 000168H 1 1 1 0 14 000170H 1 1 1 1 15 000178H 第 7 章 割込み 図 7.3-2 読出し時の割込み制御レジスタ(ICR00 ∼ ICR15) 読出し時 bit 7 6 5 4 3 1 0 ― ― S1 S0 ISE IL2 2 IL1 IL0 R R R/W R/W R/W R/W IL2 IL1 初期値 XX000111B IL0 割込みレベル設定ビット 0 1 0 割込みレベル0(優先度が最も高い) 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 ISE 0 1 R/W R - X : : : : : リード/ライト リードオンリ 未使用 不定 初期値 割込みレベル7(割込みなし) EI2OS許可ビット 割込みが発生すると,割込みシーケンスをアクティブにする 割込みが発生すると,EI2OSをアクティブにする S1 S0 EI2OSのステータスビット 0 0 EI2OSが動作中かまたはアクティブになっていない 0 1 カウントが終了したため停止している 1 0 未使用 1 1 リソースからの要求が発生したため停止している 121 第 7 章 割込み 7.3.2 割込み制御レジスタの機能 割込み制御レジスタ(ICR00 ∼ ICR15)は , 以下の 4 つの機能ビットから構成され ています。 • 割込みレベル設定ビット(IL2 ∼ IL0) • 拡張インテリジェント I/O サービス(EI2OS)許可ビット(ISE:bit3) • 拡張インテリジェント I/O サービス(EI2OS)チャネル選択ビット (ICS3 ∼ ICS0:bit7 ∼ bit4) • 拡張インテリジェント I/O サービス(EI2OS)ステータスビット (S1, S0:bit5, bit4) ■ 割込み制御レジスタ(ICR) 割込み制御レジスタ(ICR)のビット構成を図 7.3-3 に示します。 図 7.3-3 割込み制御レジスタ(ICR)の構成 割込み制御レジスタ(ICR)への書込み bit 7 6 5 4 3 2 1 0 ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 IL0 W W W W R/W R/W R/W R/W 初期値 00000111B 割込み制御レジスタ(ICR)の読出し bit R/W:リード/ライト R :リードオンリ W :ライトオンリ - :未使用 < 参考 > 7 6 5 4 ― ― ― ― S1 R S0 R 3 2 1 0 ISE IL2 IL1 IL0 R/W R/W R/W R/W 初期値 XX000111B • ICS3:bit7 から ICS0:bit4 までは , 拡張インテリジェント I/O サービス(EI2OS) がアクティブになっている場合に限り有効です。EI2OS をアクティブにするに は , ISE:bit3 に "1" を設定してください。EI2OS をアクティブにしないためには , ISE:bit3 に "0" を設定してください。EI2OS がアクティブでない場合は , ICS3 か ら ICS0 までのビット設定は不要です。 • ICS1, 0:bit5, bit4 は書込みのみ可能です。S1, 0:bit5, bit4 は , 読出しのみ可能で す。 ■ 割込み制御レジスタの機能 ● 割込みレベル設定ビット(IL2 ∼ IL0: bit2 ∼ bit0) これらのビットは , 対応するリソースの割込みレベルを設定します。これらのビット は , リセットすることにより , レベル 7(割込みなし)に初期化されます。 割込みレベル設定ビットと割込みレベルの対応関係を表 7.3-2 に示します。 122 第 7 章 割込み 表 7.3-2 割込みレベル設定ビットと割込みレベルの対応関係 IL2 IL1 IL0 割込みレベル 0 0 0 0(優先度が最も高い) 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 0 ↑ ↓ 6(優先度が最も低い) 1 1 1 7(割込みなし) ● 拡張インテリジェント I/O サービス(EI2OS)許可ビット(ISE:bit3) 割込み要求生成時にこのビットが "1" の場合 , EI2OS がアクティブになります。割込み 要求発生時にこのビットが "0" の場合 , 割込みシーケンスがアクティブになります。 EI2OS 終了条件が満たされる(S1, S0:bit5, bit4 が "00B" でない場合)と , ISE:bit3 がク リアされます。対応するリソースが EI2OS 機能を持っていない場合は , ソフトウェア により "0" を設定しなければなりません。ISE:bit3 は , リセットにより "0" に初期化さ れます。 ● 拡張インテリジェント I/O サービス(EI2OS)チャネル選択ビット(ICS3 ∼ ICS0:bit7 ∼ bit4) これらのビットは書込み専用ビットであり , EI2OS チャネルを指定します。EI2OS ディ スクリプタアドレスは , これらのビット値に基づいて決定されます。これらのビット は , リセットにより "0000B" に初期化されます。 EI2OS チャネル選択ビットとディスクリプタアドレスの対応関係を表 7.3-3 に示しま す。 表 7.3-3 EI2OS チャネル選択ビットとディスクリプタアドレスの対応関係 ICS3 ICS2 ICS1 ICS0 選択されるチャネル ディスクリプタアドレス 0 0 0 0 0 000100H 0 0 0 1 1 000108H 0 0 1 0 2 000110H 0 0 1 1 3 000118H 0 1 0 0 4 000120H 0 1 0 1 5 000128H 0 1 1 0 6 000130H 0 1 1 1 7 000138H 1 0 0 0 8 000140H 1 0 0 1 9 000148H 1 0 1 0 10 000150H 1 0 1 1 11 000158H 1 1 0 0 12 000160H 1 1 0 1 13 000168H 1 1 1 0 14 000170H 1 1 1 1 15 000178H 123 第 7 章 割込み ● 拡張インテリジェント I/O サービス(EI2OS)ステータスビット(S1, S0:bit5, bit4) これらのビットは , 読出し専用ビットです。このビット値を EI2OS 終了時にチェック すると , 動作状態と終了状態を区別できます。これらのビットは , リセットにより "00B" に初期化されます。 S1, S0:bit5, bit4 と EI2OS 状態の対応関係を表 7.3-4 に示します。 表 7.3-4 EI2OS ステータスビットと EI2OS 状態の対応関係 124 S1 S0 0 0 EI2OS が動作中かまたはアクティブになっていない 0 1 カウントが終了したため停止している 1 0 未使用 1 1 リソースからの要求が発生したため停止している EI2OS の状態 第 7 章 割込み 7.4 ハードウェア割込み ハードウェア割込み機能は , リソースからの割込み信号に応じて , CPU が実行中の プログラムを一時的に中断し , ユーザ定義の割込み処理プログラムへ制御を移しま す。 拡張インテリジェント I/O サービス(EI2OS)と外部割込みは , 一種のハードウェア 割込みとして実行されます。 ■ ハードウェア割込み ● ハードウェア割込み機能 ハードウェア割込み機能は , リソースから出力された割込み要求信号の割込みレベル を , CPU のプロセッサステータス(PS)の割込みレベルマスクレジスタ(ILM)と比 較します。次に , ハードウェア割込み機能は , ハードウェアを介して CPU のプロセッ サステータス(PS)の I フラグ値を参照し , 割込みが受付け可能か否かを決定します。 ハードウェア割込みが受け付けられると , CPU 内部レジスタの値は自動的にシステム スタックへ退避されます。現在要求されている割込みレベルは , 割込みレベルマスクレ ジスタ(ILM)に格納され , ハードウェア割込み機能は対応する割込みベクタへ分岐し ます。 ● 複数の割込み 複数のハードウェア割込みを起動できます。 ● 拡張インテリジェント I/O サービス(EI2OS) EI2OS は , メモリと I/O 領域の間の自動転送機能です。指定された転送数が完了すると , ハードウェア割込みが起動します。複数の EI2OS の起動は発生しません。EI2OS 処理 中は , ほかのすべての割込み要求と EI2OS 要求は保留されます。 ● 外部割込み 外部割込みは , ハードウェア割込みとしてリソース(割込み要求検出回路)から受け付 けられます。 ● 割込みベクタ 割込み処理中に参照される割込みベクタテーブルは , "FFFC00H" から "FFFFFFH" まで のメモリに割当てられます。これらのテーブルは , ソフトウェア割込みと共用されま す。 割込み番号と割込みベクタの割当てに関する詳細は,「7.2 割込み要因と割込みベクタ」 をご参照ください。 125 第 7 章 割込み ■ ハードウェア割込みの構造 ハードウェア割込みを実行する際に使用される 4 つの機能を表 7.4-1 に示します。これ ら 4 つの機能は , ハードウェア割込みを起動する前に , プログラムに組込まれていなけ ればなりません。 表 7.4-1 ハードウェア割込みで使用されるメカニズム 機能 動作 リソース 割込み許可ビット , 割込み要求ビット リソースからの割込み要求を制御する 割込みコントローラ 割込み制御レジスタ(ICR) 割込みレベルを設定し , EI2OS を制御する 割込み許可フラグ(I) 割込み許可状態を識別する 割込みレベルマスクレジスタ (ILM) CPU メモリの "FFFC00H" から "FFFFFFH" までのアドレス 要求割込みレベルと現割込みレベルを比較す る マイクロコード 割込み処理ルーチンを実行する 割込みベクタテーブル 割込み処理の分岐先アドレスを格納する ■ ハードウェア割込みの抑制 以下の場合 , ハードウェア割込み要求の受付けは抑制されます。 ● リソース制御レジスタへの書込み中 リソース制御レジスタ領域へのデータ書込み中 , ハードウェア割込み要求は受け付け られません。これにより , CPU の誤動作を防止できます。この誤動作は , リソースの割 込み制御レジスタへのデータ書込み時に割込み要求が生成された場合に発生する場合 があります。リソース制御レジスタ領域は , "000000H" から "0000FFH" までの I/O アド レス指定領域ではなく , リソース制御レジスタとリソースデータレジスタに割当てら れた領域です。 リソース領域への書込み時におけるハードウェア割込み動作を図 7.4-1 に示します。 図 7.4-1 リソース制御レジスタ領域への書込み中に発生するハードウェア割込み要求 リソース制御レジスタ領域への書込み命令 MOV A,#08 MOV io,A 割込み要求が ここで生成される 126 MOV A,2000H 割込みへ 分岐しない 割込み処理 割込みへ 分岐する 第 7 章 割込み ● 割込み抑制命令の実行中 表 7.4-2 に示されている 10 種類のハードウェア割込み抑制命令の実行中にハードウェ ア割込みが発生した場合 , ハードウェア割込み抑止命令の処理後 , ほかの命令が実行さ れた後に割込みが処理されます。 表 7.4-2 ハードウェア割込み抑制命令 プリフィクスコード 割込み抑止命令 PCB MOV ILM, #imm8 DTB OR CCR, #imm8 ADB AND CCR, #imm8 SPB POPW PS 割込み要求を受付けない命令 CMR NCC これらのハードウェア割込み抑制命令のいずれかの実行中は , 有効なハードウェア割 込み要求が生成されても , この割込みは別の種類の命令が初めて実行されるまで処理 されません。 ● ソフトウェア割込みの実行中 ソフトウェア割込みがアクティブになると , I フラグは "0" にクリアされます。この場 合 , ほかの割込み要求を受付けることはできません。 127 第 7 章 割込み 7.4.1 ハードウェア割込み動作 ハードウェア割込み要求発生から割込み処理完了までのハードウェア割込み動作に ついて説明します。 ■ ハードウェア割込みのアクティブ化 ● リソースの動作(割込み要求の発生) ハードウェア割込み要求機能を持っているリソースは , 割込み要求が存在することを 示す割込み要求フラグと , CPU 割込み要求が許可か禁止かを判定する割込み許可フラ グを持っています。割込み要求フラグは , リソース固有のイベントが発生した場合に設 定されます。 ● 割込みコントローラの動作(割込み要求制御) 割込みコントローラは , 同時に受取った割込み要求の割込みレベル(IL)を比較しま す。割込みコントローラは , 最も高いレベル(IL 値は最も小さい)の要求を選択し , そ れを CPU へ通知します。複数の要求の割込みレベルが同じ場合は , 割込み番号が小さ い要求が最も高い優先度となります。 ● CPU 動作(割込み要求受付けと割込み処理) CPU は , 受取った割込みレベル(ICR レジスタの IL2 ∼ IL0:bit2 ∼ bit0)と , 割込みレ ベルマスクレジスタ(ILM)を比較します。"IL < ILM" であり , かつ割込みが許可(PS レジスタ中の CCR レジスタの I フラグ =1)の場合は , 現在実行中の命令が終了した後 , CPU は割込み処理マイクロコードをアクティブにします。 CPU は , 割込み処理マイクロコードの先頭で割込み制御レジスタ(ICR)の ISE:bit3 を 参照します。ISE :bit3=0 の場合は , CPU は割込み処理の実行を継続します(ISE:bit3=1 の場合は , EI2OS はアクティブになります) 。 割込み処理時は , 専用レジスタ(A, DPR, ADB, DTB, PCB, PC, PS から構成される 12 バ イト)の値がシステムスタック(SSB と SSP が示すシステムスタック空間)へ退避さ れます。 次に CPU は , 割込みベクタプログラムカウンタ(PCB, PC)へデータをロードし , 割込 みレベルマスクレジスタ(ILM)を更新し , スタックフラグ(S)を設定します(コン ディションコードレジスタ(CCR)の S ビットに "1" を設定し , システムスタックをア クティブにします)。 ■ ハードウェア割込みからの復帰 割込み処理プログラムでは , 割込み要因を発生したリソースの割込み要求フラグがク リアされて RETI 命令が実行されると , システムスタックに退避されていた 12 バイト データが専用レジスタへ復元され , 割込みを分岐する前に実行していた処理が再開し ます。 割込み要求フラグがクリアされると , リソースが割込みコントローラへ出力した割込 み要求は , 自動的にキャンセルされます。 128 第 7 章 割込み ■ ハードウェア割込み動作 ハードウェア割込み発生から割込み処理完了までのハードウェア割込み動作を図 7.4-2 に示します。 図 7.4-2 ハードウェア割込み動作 内部データバス (7) PS,PC・・ マイクロコード PS I ILM IR (6) チェック 検査 (5) 比較器 (4) (3) ほかのリソース 割込み要求を生成したリソース レベル 比較器 有効FF 要因FF (8) (2) 割込み レベル (IL) (1) 割込みコントローラ IL : PS : I : ILM: IR : FF : 割込み制御レジスタ(ICR)の割込みレベル設定ビット プロセッサ状態 割込み許可フラグ 割込みレベルマスクレジスタ 命令レジスタ フリップフロップ (1) 割込み要因がリソース内部で発生します。 (2) リソースの割込み許可ビットが参照されます。割込みが許可の場合は , 割込み要求 がリソースから割込みコントローラへ出力されます。 (3) 割込み要求を受取る割込みコントローラは , 同時に受取った割込み要求の優先度を 決定し , 対応する割込み要求に一致する割込みレベル(IL)を CPU へ転送します。 (4) CPU は , 割込みコントローラへ要求された割込みレベル(IL)を割込みレベルマス クレジスタ(ILM)と比較します。 (5) 比較の結果 , 当該割込みレベルの優先度が現割込み処理レベルよりも高いことを示 している場合は , CPU はコンディションコードレジスタ(CCR)の I フラグ値を チェックします。 (6) 上記ステップ(5)のチェックにより , I フラグが割込みイネーブル(I =1)を示して いる場合 , CPU は現在実行中の命令の実行が終了するまで処理を待ちます。当該命 令が終了すると , CPU は要求されたレベル(IL)を割込みレベルマスクレジスタ (ILM)に設定します。 (7) レジスタが退避され , 処理は割込み処理ルーチンへ分岐します。 (8) 上記ステップ(1)で発生した割込み要因は , 割込み処理ルーチンによりソフトウェ ア的にクリアされます。RETI 命令を実行すると , 割込み処理は終了します。 129 第 7 章 割込み 7.4.2 割込み処理 リソースにおいて割込み要求が発生すると , 割込みコントローラは割込みレベルを CPU へ送信します。CPU が割込みを受付けることができる場合は , 割込みコント ローラは実行中の命令を一時的に中断します。次に割込みコントローラは , 割込み 処理ルーチンを実行するかまたは拡張インテリジェント I/O サービス(EI2OS)をア クティブにします。 ソフトウェア割込みが INT 命令で生成された場合は , 割込み処理ルーチンが CPU 状 態とは無関係に実行されます。この場合 , ハードウェア割込みは許可されません。 ■ 割込み処理 割込み処理フローを図 7.4-3 に示します。 図 7.4-3 割込み処理フロー スタート I&IF&IE=1 AND ILM>IL * ストリング系 命令実行中 NO メインプログラム YES 割込みの起動/復帰処理 YES ISE=1 次の命令の取出し デコードする EI2OS NO YES INT命令か? EI2OS処理 ソフトウェア 割込み/ 例外処理 ハードウェア システムスタックへ専用 割込み レジスタを退避する NO I=0 (ハードウェア割込み の禁止) YES 指定した回数 に達したか?または リソースから終了要求 があったか? システムスタックへ専用 レジスタを退避する NO ILM←IL (受付けられた割込み 要求の割込みレベル をILMへ転送) YES RETI命令か? NO 通常命令を実行する (割込み処理を含む) NO 割込み 復帰処理 システムスタックから 専用レジスタが復帰し, 割込みルーチン呼出し 前のルーチンへ復帰 S=1 (システムスタックを 有効にする) PCB,PC←割込みベクタ (割込み処理ルーチンへ 分岐) ストリング系* 命令の反復は完了 したか? YES PCを更新してポインタ を次命令へ移動する 例外処理では RETI命令で復帰 できません S :コンディションコードレジスタ(CCR)の :ストリング系命令の実行中は,1ステップごとに 割込みが判定されます。 スタックフラグ I :コンディションコードレジスタ(CCR)の PCB :プログラムバンクレジスタ 割込み許可フラグ PC :プログラムカウンタ IF :リソースの割込み要求フラグ IE :リソースの割込み許可フラグ ILM :割込みレベルマスクレジスタ(PS中の) ISE :割込み制御レジスタ(ICR)のEI2OS許可フラグ IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット * 130 第 7 章 割込み ハードウェア割込み使用手順 7.4.3 ハードウェア割込みを使用する場合は , 事前にシステムスタック領域 , リソースおよ び割込み制御レジスタ(ICR)を設定しておかなければなりません。 ■ ハードウェア割込み使用手順 ハードウェア割込み使用手順の例を図 7.4-4 に示します。 図 7.4-4 ハードウェア割込み使用手順 スタート (1) システムスタック領域の設定 割込み処理プログラム (2) リソースの動作設定 (3) 割込みコントローラ内の ICRの設定 (4) リソースの動作開始設定 割込み許可ビットを "許可"に設定 (5) スタック処理 割込みベクタへ分岐 (7) ハードウェア による処理 PS内のILM,Iの設定 (8) リソースへの割込み に対する処理(割込み処 理ルーチンの実行) (9) 割込み要因のクリア (10) 割込み復帰命令(RETI) メインプログラム (6) 割込み要求出力 メインプログラム (1) システムスタック領域を設定してください。 (2) 割込み要求を発生できるリソースを初期化してください。 (3) 割込みコントローラの割込み制御レジスタ(ICR)を設定してください。 (4) リソースを動作開始状態に設定し , 割込み許可ビットを " 許可 " に設定してくださ い。 (5) 割込みレベルマスクレジスタ(ILM)と割込み許可フラグ(I)を " 割込み受付け可 能 " に設定してください。 (6) リソースにおいて発生した割込みによりハードウェア割込み要求が発生されます。 (7) 割込み処理ハードウェアがレジスタを退避し , 割込み処理プログラムへ分岐しま す。 (8) 割込ルーチンにてプログラムが実行されます。 (9) リソースからの割込み要求をクリアします。 (10)割込み復帰命令を実行し , 割込みへ分岐する前に実行されていたプログラムへ制御 を戻します。 131 第 7 章 割込み 7.4.4 複数の割込み 割込み制御レジスタ(ICR)の割込みレベル設定ビット(IL2 ∼ IL0:bit2 ∼ bit0)に 複数の割込みレベルを設定すると , リソースから複数の割込み要求が発生した場合 , 複数のハードウェア割込みを起動できます。ただし , 拡張インテリジェント I/O サー ビス(EI2OS)では複数の割込みを使用することはできません。 ■ 複数の割込み ● 複数の割込み動作 割込み処理ルーチンの実行中 , 優先度がより高い割込み要求が発生すると , 現割込み処 理が中断され , このより高い割込み優先度を持つ割込み要求が受け付けられます。この 割込み要求が終了すると , CPU は前の割込み処理へ処理を戻します。 割込みレベルとしては "0" から "7" までを設定できます。レベル "7" を設定すると , CPU は割込み要求を受け付けません。 割込み処理実行中に割込み優先順位が同じかまたは低い割込み要求が生成されると , コンディションコードレジスタ(CCR)の I フラグまたは割込みレベルマスクレジス タ(ILM)が変更されない限り , 現割込み処理が終了するまでこの新しい割込み要求は 保留されます。 割込み中に起動予定であるほかの複数の割込みは , 割込み処理ルーチンのコンディ ションコードレジスタ(CCR)の I フラグを割込み不可(I=0\)に設定するかまたは割 込みレベルマスクレジスタ(ILM)を割込み不可(ILM=000B)に設定すると , 一時的 に禁止にすることができます。 拡張インテリジェント I/O サービス(EI2OS)を使用して複数の割込みを起動すること はできません。拡張インテリジェント I/O サービス(EI2OS)の処理中は , ほかのすべ ての割込み要求および拡張インテリジェント I/O サービス要求は保留されます。 ● 複数の割込み処理例 複数の割込み処理例では , タイマ割込みの優先度が A/D コンバータ割込みの優先度よ りも高いものと仮定します。この例では , A/D コンバータの割込みレベルとして "2" が 設定されており , タイマの割込みレベルとしては "1" が設定されています。A/D コン バータ割込み処理中にタイマ割込みが発生すると , 図 7.4-5 のように処理します。 132 第 7 章 割込み 図 7.4-5 複数の割込み処理例 メインプログラム A/D割込み処理 割込みレベル"2" リソースの初期化 (ILM=010) (1) A/D割込み発生 (2) タイマ割込み処理 割込みレベル1 (ILM=001) (3)タイマ割込み発生 中断 (4) タイマ割込み処理 再開 メインプログラムの処理再開 (8) (6) A/D割込み処理 (5) タイマ割込みからの復帰 (7) A/D割込みからの復帰 • A/D 割込み発生 - A/D コンバータ割込み処理が開始されると , 割込みレベルマスクレジスタ(ILM) には自動的に A/D コンバータ割込みレベル(ICR レジスタの IL2 ∼ IL0:bit2 ∼ bit0)と同じ値(例では "2")が設定されます。レベル "1" または "0" の割込み要 求が発生した場合は , これらの割込み処理が優先されます。 • 割込み処理の終了 - 割込み処理が終了し , 復帰命令(RETI)が実行されると , 専用レジスタ(A, DPR, ADB, DTB, PCB, PC, PS)の値がスタックから戻され , 割込みレベルマスクレジス タ(ILM)には , 割込み発生前の値が設定されます。 133 第 7 章 割込み 7.4.5 ハードウェア割込みの処理に要する時間 ハードウェア割込み要求が発生してから割込み処理ルーチンを実行するまでには , 現在実行中の命令を終了させるために要する時間と , 割込みを処理するために要す る時間が必要です。 ■ ハードウェア割込みの処理に要する時間 ハードウェア割込み要求が発生してから割込みを受付け , 割込み処理ルーチンを実行 するまでには , 割込み要求をサンプリングするための待ち時間と , 割込みを処理するた めに要する時間(割込み処理の準備に要する時間)が必要です。割込みの処理に要す る時間を図 7.4-6 に示します。 図 7.4-6 割込み処理時間 CPU動作 割込み待ち時間 通常命令の実行 割込み要求サンプ リング待ち時間 割込み処理 割込み処理ルーチン 割込み処理時間 (θマシンサイクル)* 割込み要求発生 : 最後の命令サイクルは,割込み要求をここでサンプリングします。 * : 1マシンサイクルは,1マシンクロック(φ)に相当します。 ● 割込み要求サンプリング待ち時間 割込み要求サンプリング待ち時間は , 割込み要求が生成された時点から現在実行中の 命令が終了した時点までの時間です。 割込み要求が発生したか否かは , 最後の命令サイクルの割込み要求をサンプリングす ることによって判定されます。各命令の実行中は CPU は割込み要求を確認できず , 待 ち時間が発生します。 割込み要求サンプリング待ち時間は, 実行時間が最も長いPOPW RW0, …RW7命令(45 マシンサイクル)が開始された直後に割込み要求が発生した時点で最大になります。 ● 割込み処理時間(θ マシンサイクル) CPU は , 割込み要求を受け取ると , システムスタックに専用レジスタを退避し , 割込み ベクタを読み出します。割込み処理時間は , φ マシンサイクルです。割込み処理時間は , 以下に示す式で算出されます。 • 割込みがアクティブになったとき :θ =24+6+Z マシンサイクル • 割込みから制御が返されたとき :θ =11+6+Z マシンサイクル(RETI 命令) 割込み処理時間は , スタックポインタが指す各アドレスによって異なります。 134 第 7 章 割込み 割込み処理時間の補間値(Z)を表 7.4-3 に示します。 表 7.4-3 割込み処理時間の補間値(Z) < 参考 > スタックポインタが指すアドレス 補間値(Z) 外部 8 ビット +4 偶数番号の外部アドレス +1 奇数番号の外部アドレス +4 偶数番号の内部アドレス 0 奇数番号の内部アドレス +2 1 マシンサイクルは , マシンクロック(φ)の 1 サイクルに相当します。 135 第 7 章 割込み 7.5 ソフトウェア割込み ソフトウェア割込み命令(INT 命令)を実行すると , ソフトウェア割込み機能は , CPU で実行中のプログラムからユーザ定義の割込み処理プログラムへ制御を移しま す。ハードウェア割込みは , ソフトウェア割込み実行中は禁止になります。 ■ ソフトウェア割込みの起動 ● ソフトウェア割込みの起動 INT 命令は , ソフトウェア割込みを起動にするために使用します。ソフトウェア割込み 要求の場合 , 割込み要求フラグや割込み許可フラグは存在しません。INT 命令を実行す ると , 割込み要求が必ず発生します。 ● ハードウェア割込みの抑制 INT 命令は割込みレベルを持たないので , 割込みレベルマスクレジスタ(ILM)は更新 されません。INT 命令の実行中 , コンディションコードレジスタ(CCR)の I フラグに は "0" が設定され , ハードウェア割込みはマスクされます。 ソフトウェア割込み処理中にハードウェア割込みを許可するには , ソフトウェア割込 み処理ルーチンのにおいて I フラグに "1" を設定してください。 ● ソフトウェア割込み動作 CPU が INT 命令を読み出すと , ソフトウェア割込み処理マイクロコードがアクティブ になります。このマイクロコードは , CPU 内部レジスタをシステムスタックに退避し , ハードウェア割込みをマスクし(CCR レジスタの I フラグ =0), 対応する割込みベク タへ分岐します。 割込み番号と割込みベクタの割当てについての詳細は ,「7.2 割込み要因と割込みベク タ」をご参照ください。 ■ ソフトウェア割込みからの復帰 割込み処理プログラムでは , 割込み復帰命令(RETI 命令)を実行すると , システムス タックに退避されている 12 バイトデータが専用レジスタへ復元され , 割込みへ分岐す る前に実行されていた処理を再開します。 136 第 7 章 割込み ■ ソフトウェア割込み動作 ソフトウェア割込みが生成されてから割込み処理が完了するまでのソフトウェア割込 み動作を図 7.5-1 に示します。 図 7.5-1 ソフトウェア割込み動作 (1) PS レジスタファイル I (2) S Bユニット マイクロコード IR F2MC-16LX CPU キュー フェッチ (3) 退避 内部バス 命令バス RAM PS I S IR Bユニット : : : : : プロセッサ状態 割込み許可フラグ スタックフラグ 命令レジスタ バスインタフェースユニット (1) ソフトウェア割込み命令が実行されます。 (2) 専用レジスタが , ソフトウェア割込み命令に対応するマイクロコードに従って退避 されます。またはほかの必要な処理が実行されます。次に , 分岐処理が実行されま す。 (3) ユーザの割込み処理ルーチン中の RETI 命令が割込み処理を終了させます。 プログラムバンクレジスタ(PCB)が "FFH" の場合 , CALLV 命令のベクタ領域が INT #vct8 命令テーブルとオーバラップします。ソフトウェアを作成する場合は , CALLV 命 令と INT #vct8 命令の重複アドレスに注意してください。 137 第 7 章 割込み 7.6 拡張インテリジェント I/O サービス(EI2OS)からの割 込み 拡張インテリジェント I/O サービス(EI2OS)は , 自動的にリソース(I/O 領域)と メモリの間においてデータを転送します。データ転送が終了すると , ハードウェア 割込みが発生します。 ■ 拡張インテリジェント I/O サービス(EI2OS) 拡張インテリジェント I/O サービスは , 一種のハードウェア割込みです。拡張インテリ ジェント I/O サービスは , 自動的にリソース(I/O 領域)とメモリの間においてデータ を転送します。従来はリソース(I/O 領域)とメモリの間におけるデータ転送は , 割込 み処理プログラムが行っていました。EI2OS は , 直接メモリアクセス(DMA)と同じ 方法でこのデータを転送します。終了時に EI2OS は , 終了コードを設定し , 自動的に割 込み処理ルーチンへ分岐します。ユーザは , EI2OS を起動および終了するためのプログ ラムのみを作成する必要があり , データ転送プログラムを作成する必要はありません。 ● 拡張インテリジェント I/O サービス(EI2OS)の利点 割込み処理ルーチンで実行されるデータ転送と比較すると, EI2OSの場合は以下の利点 があります。 • データ転送プログラムをコード化する必要がなく , プログラムサイズを小さくでき ます。 • データ転送はリソース(I/O 領域)の状態によって停止できるので , 不要なデータ転 送を除外できます。 • バッファアドレスを更新するかまたは更新しないかを選択できます。 • I/O アドレスポインタを更新するかまたは更新しないかを選択できます。 ● 拡張インテリジェント I/O サービス(EI2OS)からの終了割込み EI2OS によるデータ転送が終了すると , 終了状態は割込み制御レジスタ(ICR)の S1, S0: bit5, bit4 に設定されます。したがって , 処理は自動的に割込み処理ルーチンへ分岐 します。 EI2OS 終了要因は , 割込み処理プログラムで EI2OS 状態(ICR レジスタの S1, S0:bit5, bit4)をチェックすることで決定できます。 割込み番号と割込みベクタは , 各リソースに対して固定されます。詳細は , 「7.2 割込 み要因と割込みベクタ」をご参照ください。 ● 割込み制御レジスタ(ICR) 割込みコントローラに存在するこのレジスタは , EI2OS をアクティブにし , EI2OS チャ ネルを指定し , EI2OS 終了状態を表示します。 138 第 7 章 割込み ● 拡張インテリジェント I/O サービス(EI2OS)のディスクリプタ(ISD) このディスクリプタは , "000100H" から "00017FH" までの内部 RAM に存在し , 転送モー ド , I/O アドレス , 転送数およびバッファアドレスを保持する "8 バイト× 16" チャネル で構成されています。チャネルは , 割込み制御レジスタ(ICR)で指定します。 拡張インテリジェント I/O サービス(EI2OS)の動作中 , CPU プログラムの実行は停止 します。 ■ 拡張インテリジェント I/O サービス(EI2OS)の動作 EI2OS の動作を図 7.6-1 に示します。 図 7.6-1 拡張インテリジェント I/O サービス(EI2OS)の動作 メモリ空間 IOAが指す I/O レジスタ F2MC-16LX CPU ・・・・・・・・・・ I/O レジスタ リソース (I/O) (5) 割込み要求 (3) ISD (3) ICSが 指定する (2) (1) 割込み制御レジスタ(ICR) 割込みコントローラ BAPが指す (4) バッファ ISD: IOA: BAP: ICS: DCT: DCTが示す EI2OSディスクリプタ I/Oアドレスポインタ バッファアドレスポインタ 2 ICRのEI OSチャネル選択ビット データカウンタ (1) 割込み要求が発生し , EI2OS が起動されます。 (2) 割込みコントローラがディスクリプタを選択します。 (3) ディスクリプタから転送元と転送先が読み出されます。 (4) I/O 領域とメモリの間で転送が行われます。 (5) 割込み要因が自動的にクリアされます。 139 第 7 章 割込み 7.6.1 拡張インテリジェント I/O サービス(EI2OS)の ディスクリプタ(ISD) 拡張インテリジェント I/O サービス(EI2OS)のディスクリプタ(ISD)は , "000100H" から "00017FH" までの内部 RAM に存在します。ISD は , "8 バイト× 16" チャネルで構成されています。 ■ 拡張インテリジェント I/O サービス(EI2OS)のディスクリプタ(ISD)の構成 ISD は , "8 バイト× 16" チャネルで構成されています。各 ISD は , 図 7.6-2 に示されて いる各ビットから構成されています。チャネル番号と ISD アドレスの対応関係を表 7.6-1 に示します。 図 7.6-2 EI2OS のディスクリプタ(ISD)の構成 H データカウンタの上位 8 ビット(DCTH) データカウンタの下位 8 ビット(DCTL) I/O アドレスポインタの上位 8 ビット(IOAH) I/O アドレスポインタの下位 8 ビット(IOAL) EI2OS ステータスレジスタ(ISCS) バッファアドレスポインタの上位 8 ビット(BAPH) 000100H + 8 x ICS バッファアドレスポインタの中位 8 ビット(BAPM) ISD開始アドレス バッファアドレスポインタの下位 8 ビット(BAPL) 表 7.6-1 チャネル番号とディスクリプタアドレスの対応関係 140 チャネル 0 ディスクリプタアドレス 000100H 1 000108H 2 000110H 3 000118H 4 000120H 5 000128H 6 000130H 7 000138H 8 000140H 9 000148H 10 000150H 11 000158H 12 000160H 13 000168H 14 000170H 15 000178H L 第 7 章 割込み 7.6.2 拡張インテリジェント I/O サービス(EI2OS)のディ スクリプタ(ISD)のレジスタ構成 拡張インテリジェント I/O サービス(EI2OS)ディスクリプタ(ISD)は , 以下のレ ジスタで構成されています。 • データカウンタ(DCT) • I/O レジスタアドレスポインタ(IOA) • EI2OS ステータスレジスタ(ISCS) • バッファアドレスポインタ(BAP) リセット後の各レジスタの初期値は不定なので注意してください。 ■ データカウンタ(DCT) DCT は , データ転送数のカウンタとしての役割を果たす 16 ビットレジスタです。各 データ転送が実行されると , カウンタは 1 ずつデクリメントします。カウンタが "0" に 達すると , EI2OS は終了します。 DCT の構成を図 7.6-3 に示します。 図 7.6-3 DCT の構成 bit 12 11 B13 B12 B11 B10 B09 B08 X X X X X X X 7 6 5 4 3 2 1 0 B07 B06 B05 B04 B03 B02 B01 B00 X X X X X X X X データカウンタの上位バイト 15 14 B15 B14 X 初期値 bit データカウンタの下位バイト 初期値 13 10 9 8 DCTH DCTL ■ I/O レジスタアドレスポインタ(IOA) IOA は , バッファへ(から)データを転送するために使用される , I/O レジスタの下位 アドレス(A15 ∼ A00)を示す 16 ビットレジスタです。上位アドレス(A23 ∼ A16) は , すべて "00H" です。"000000H" から "00FFFFH" までの領域は , すべてアドレスで指 定できます。 IOA の構成を図 7.6-4 に示します。 図 7.6-4 I/O レジスタアドレスポインタ(IOA)の構成 bit 15 上位アドレスポインタ 初期値 14 13 A15 A14 A13 X X X 5 bit 7 下位アドレスポインタ 初期値 6 12 11 10 9 8 A12 A11 A10 A09 A08 X X X X X 4 3 2 1 0 A07 A06 A05 A04 A03 A02 A01 A00 X X X X X X X X IOAH IOAL 141 第 7 章 割込み ■ 拡張インテリジェント I/O サービス(EI2OS)のステータスレジスタ(ISCS) ISCS は , 8 ビットレジスタです。ISCS は , バッファアドレスポインタが更新されるか 否か , I/O アドレスポインタが更新されるか否かおよび転送データフォーマット(バイ トまたはワード)と転送方向を示します。 ISCS の構成を図 7.6-5 に示します。 図 7.6-5 EI2OS 状態レジスタ(ISCS)の構成 bit 7 4 3 2 1 0 RESV RESV RESV IF BW BF DIR SE R/W R/W R/W R/W R/W R/W R/W 6 5 R/W 初期値 XXXXXXXXB OS終了制御ビット EI2termination SE EI2OS control bit 0 リソースからの要求で終了されない リソースからの要求で終了される 1 Terminated by a request from the peripheral function DIR Dataデータ転送方向指定ビット transfer direction specification bit 0 I/O I/Oアドレスポインタ register address → pointer →バッファアドレスポインタ buffer address pointer. address pointer → I/O register address pointer バッファアドレスポインタ → I/Oアドレスポインタ 1 Buffer BF 0 1 BAP更新/固定選択ビット BAP update/fixed selection bit データ転送後,バッファアドレスポインタが更新される(*1) データ転送後,バッファアドレスポインタが更新されない BW バイト 0 Byte ワード 1 Word IF 0 1 Transfer data length specification bit 転送データ長指定ビット IOAIOA更新/固定選択ビット update/fixed selection bit データ転送後,I/Oアドレスポインタが更新される(*2) データ転送後,I/Oアドレスポインタが更新されない Reserved bits 未使用ビット RESV 0 must be written to these bits. これらのビットには"0"を書込まなければなりません。 R/W: リード/ライト X : 不定 *1 バッファアドレスポインタの下位16ビットのみが変化します。 バッファアドレスポインタは,インクリメントのみ可能です。 *2 I/Oアドレスポインタは,インクリメントのみ可能です。 ■ バッファアドレスポインタ(BAP) BAP は , その次の転送で EI2OS が使用するアドレスを保持する 24 ビットレジスタで す。各 EI2OS チャネルには 1 つの独立した BAP が存在するので , 各 EI2OS チャネルは 16 メガバイト空間内のアドレスと I/O 領域との間においてデータを転送できます。 EI2OS 状態レジスタ(ISCS)の BF:bit2(BAP 更新 / 固定選択ビット)に "0" を設定す ると , BAP の下位 16 ビット(BAPM, BAPL)のみが変化し , 上位 8 ビット(BAPH)は 変化しません。BAP の構成を図 7.6-6 に示します。 142 第 7 章 割込み 図 7.6-6 バッファアドレスポインタ(BAP)の構成 bit 23 ~ bit 16 BAP bit 15 ~ bit 8 BAPH BAPM (R/W) (R/W) bit 7 ~ bit 0 BAPL (R/W) 初期値 XXXXXXH R/W: リード / ライト X : 不定 < 参考 > • I/O アドレスポインタ(IOA)で指定できる領域は , "000000H" ∼ "00FFFFH" ま でです。 • バッファアドレスポインタ(BAP)で指定できる領域は , "000000H" ∼ "FFFFFFH" までです。 • データカウンタ(DCT)で指定できる最大転送数は , 65, 536 回(64K バイト) です。 143 第 7 章 割込み 7.6.3 拡張インテリジェント I/O サービス(EI2OS)の動作 割込み要求がリソースにおいて発生すると , 対応する割込み制御レジスタ(ICR)に EI2OS の起動が設定され , CPU はデータを転送するために EI2OS を使用します。指 定されたデータ転送数に達すると , ハードウェア割込みが自動的に処理されます。 ■ 拡張インテリジェント I/O サービス(EI2OS)の動作フロー CPU の内部マイクロコードに基づく EI2OS 動作フローを図 7.6-7 に示します。 図 7.6-7 拡張インテリジェント I/O サービス(EI2OS)の動作フロー リソースが割込み要求を 生成する NO ISE = 1 YES 割込みシーケンス ISD/ISCSを読出す リソースから 終了要求が 発生したか? YES YES SE = 1 NO NO YES DIR = 1 NO IOAで示されるデータ (データ転送) BAPで示されるメモリ BAPで示されるメモリデータ _(データ転送) IOAで示されるデータメモリ YES IF = 0 NO BWに基づく更新値 IOAを更新する BWに基づく更新値 BAPを更新する YES BF = 0 NO DCTをデクリメントする (-1) YES DCT = 00 EI2OS終了処理 NO S1とS0に"00B"を設定する S1とS0に"01B"を設定する リソースからの割込み 要求をクリアする ISEを"0"にクリアする CPU動作へ戻る 割込みシーケンス SD :EI2OSディスクリプタ SCS:EI2OSステータスレジスタ F :EI2OSステータスレジスタ(ISCS)のIOA更新/固定選択ビット BW :EI2OSステータスレジスタ(ISCS)の転送データ長指定ビット BF :EI2OSステータスレジスタ(ISCS)のBAP更新/固定選択ビット DIR:EI2OSステータスレジスタ(ISCS)のデータ転送方向指定ビット SE :EI2OSステータスレジスタ(ISCS)のEI2OS終了制御ビット 144 S1とS0に"11B"を設定する DCT :データカウンタ IOA :I/Oレジスタアドレスポインタ BAP :バッファアドレスポインタ ISE :割込み制御レジスタ(ICR)のEI2OS許可ビット S1,S0:割込み制御レジスタ(ICR)のEI2OSステータスビット 第 7 章 割込み 7.6.4 拡張インテリジェント I/O サービス(EI2OS)の使用 手順 拡張インテリジェント I/O サービス(EI2OS)を使用する場合は , 事前にシステムス タック領域 , 拡張インテリジェント I/O サービス(EI2OS)ディスクリプタ , 割込み 機能および割込み制御レジスタ(ICR)を設定しておかなければなりません。 ■ 拡張インテリジェント I/O サービス(EI2OS)の使用手順 EI2OS ソフトウェア / ハードウェア処理を図 7.6-8 に示します。 図 7.6-8 拡張インテリジェント I/O サービス(EI2OS)の使用手順 ソフトウェアによる処理 ハードウェアによる処理 スタート システムスタック領域の設定 初 期 設 定 EI2OSディスクリプタの設定 リソースの初期設定 割込み制御レジスタ(ICR) の設定 リソースの動作開始 設定割込み許可ビットの 設定 PS内のILM,Iの設定 S1,S0=00B ユーザプログラムの実行 (割込み要求)and(ISE=1) データ転送 カウント終了orリソース からの終了要求による 割込みへ分岐の判定 (割込みベクタへ分岐) 拡張インテリジェントI/O サービスの再設定 (チャネルの切換えなど) NO YES S1,S0=01B or S1,S0=11B バッファ中のデータの処理 RETI ISE :割込み制御レジスタ(ICR)のEI2OSの許可ビット S1,S0:割込み制御レジスタ(ICR)のEI2OSステータスビット 145 第 7 章 割込み 7.6.5 拡張インテリジェント I/O サービス(EI2OS)の処理 時間 拡張インテリジェント I/O サービス(EI2OS)の処理に要する時間は , 以下の要素に よって変化します。 • EI2OS ステータスレジスタ(ISCS)の設定 • I/O レジスタアドレスポインタ(IOA)が指すアドレス(領域) • バッファアドレスポインタ(BAP)が指すアドレス(領域) • 外部アクセス用の外部データバス幅 • 転送データ長 EI2OS によるデータ転送が終了するとハードウェア割込みが起動するので , 割込み 処理時間が追加されます。 ■ 拡張インテリジェント I/O サービス(EI2OS)の処理時間(1 回のデータ転送に要 する時間) ● データ転送を継続する場合 データ転送を継続する場合の EI2OS 処理時間を表 7.6-2 に示します(この表は EI2OS ス テータスレジスタ(ISCS)の設定に基づいています) 。 表 7.6-2 拡張インテリジェント I/O サービスの実行時間 EI2OS 終了制御ビット(SE:bit0)の設定 IOA 更新 / 固定選択ビット(IF:bit4)の設定 BAP アドレス更新 / 固定選択ビット (BF:bit2)の設定 リソースからの終了 要求で終了する リソースからの終了 要求を無視する 固定 更新 固定 更新 固定 32 34 33 35 更新 34 36 35 37 単位 : マシンサイクル(1 マシンサイクルはマシンクロック(φ)の 1 サイクルに相当します。) さらに表 7.6-3 に示しているように , EI2OS の実行状態によっては補間する必要があり ます。 表 7.6-3 EI2OS 実行時間のデータ転送補間値 内部アクセス I/O レジスタアドレスポインタ 内部アクセス バッファアドレス ポインタ 外部アクセス B 8 偶数 奇数 146 : バイトデータ転送 : 外部バス幅 8 ビットでワード転送 : 偶数番号アドレスのワード転送 : 奇数番号アドレスのワード転送 外部アクセス B/ 偶数 奇数 B/ 偶数 8/ 奇数 B/ 偶数 0 +2 +1 +4 奇数 +2 +4 +3 +6 B/ 偶数 +1 +3 +2 +5 8/ 奇数 +4 +6 +5 +8 第 7 章 割込み ● データカウンタ(DCT)によるカウントを終了する場合(最後のデータ転送) EI2OSによるデータ転送が終了するとハードウェア割込みが起動するので, 割込み処理 時間が追加されます。カウントを終了させるために要する EI2OS 処理時間は , 以下の 式で算出されます。 カウントを終了させるために要する EI2OS 処理時間 = データ転送に要する EI2OS 処理 時間 + 割込み処理時間(21 + 6 × Z)マシンサイクル 割込み処理時間は , スタックポインタが指す各アドレスによって異なります。割込み処 理時間の補間値(Z)を表 7.6-4 に示します。 表 7.6-4 割込み処理時間の補間値(Z) スタックポインタが指すアドレス 補間値(Z) 外部 8 ビット +4 偶数番号の外部アドレス +1 奇数番号の外部アドレス +4 偶数番号の内部アドレス 0 奇数番号の内部アドレス +2 ● リソース(I/O)からの終了要求で終了する場合 EI2OS によるデータ転送をリソース(I/O 領域)からの終了要求で終了すると(ICR レ ジスタの S1, S0 :bit5, bit4=11B), データは転送されず , ハードウェア割込みが起動しま す。EI2OS 処理時間は , 以下の式で算出されます。式中の "Z" は , 割込み処理時間の補 間値を示します(表 7.6-4) 。 データ転送を終了させるために要する EI2OS 処理時間 =(36 + 6 × Z)マシンサイクル < 参考 > 1 マシンサイクルは , マシンクロック(φ)の 1 サイクルに相当します。 147 第 7 章 割込み 7.7 例外処理割込み F2MC-16LX ファミリでは , 未定義命令を実行すると例外処理が発生します。 例外処理は , 基本的には割込みと同じです。例外処理の発生を命令と命令の間で検 出すると , 通常処理が中断され , 例外処理が実行されます。 一般に , 例外処理は予期しない動作の結果として発生します。例外処理は , デバッグ 時や緊急時に必要となる復帰ソフトウェアを起動する場合にのみ使用してください。 ■ 例外処理 ● 例外処理の動作 F2MC-16LX ファミリは , 命令マップにおいて未定義命令として定義されていない , す べてのコードを扱います。未定義命令を実行すると , INT #10 ソフトウェア割込み命令 に相当する処理が実行されます。 例外処理が割込みルーチンへ分岐する前に以下の処理が実行されます。 • A, DPR, ADB, DTB, PCB, PC, PS レジスタがシステムスタックに退避されます。 • 状態コードレジスタ(CCR)の I フラグが "0" にクリアされ , ハードウェア割込みが マスクされます。 • コンディションコードレジスタ(CCR)の S フラグに "1" が設定され , システムス タックがアクティブになります。 システムスタックに退避されたプログラムカウンタ(PC)値は , 未定義命令が格納さ れるアドレスそのものです。2 バイト以上の命令コードの場合 , " 未定義 " として識別 されたコードはこのアドレスに格納されます。例外処理ルーチン内で例外要因の種類 を決定しなければならない場合は , この PC 値を使用してください。 ● 例外処理からの復帰 RETI 命令で例外処理から制御が返されると , PC が未定義命令を指しているので , 例外 処理が再開されます。ソフトウェアリセットを行うなどで解決してください。 148 第 7 章 割込み 割込み処理時のスタック動作 7.8 割込みが一度受付けられると , 割込み処理へ分岐する前に専用レジスタの値が自動 的にシステムスタックへ退避されます。割込み処理が終了すると , 退避されていた 専用レジスタは自動的にシステムスタックから復元します。 ■ 割込み処理開始時のスタック動作 割込みが一度受付けられると , CPU は自動的に現在の専用レジスタの値を , 以下に示さ れた順序でシステムスタックへ退避します。 • アキュムレータ(A) • ダイレクトページレジスタ(DPR) • アディショナルデータバンクレジスタ(ADB) • データバンクレジスタ(DTB) • プログラムバンクレジスタ(PCB) • プログラムカウンタ(PC) • プロセッサステータス(PS) 割込み処理開始時のスタック動作を図 7.8-1 に示します。 図 7.8-1 割込み処理開始時のスタック動作 割込み直前 アドレス 00H 08FFH 08FEH SSB SSP 08FEH A 0000H 08FEH AH AL DPR 01H ADB 00H DTB 00H PCB FFH PC 803FH PS 20E0H 08F2H メモリ 割込み直後 アドレス 00H 08FFH 08FEH SSB XXH XXH XXH XXH XXH XXH XXH XXH XXH XXH XXH XXH SP H SSP 08F2H A 0000H 08FEH AH AL DPR 01H ADB 00H DTB 00H PCB FFH L PC 803FH PS 20E0H バイト 08F2H メモリ 00H 00H 08H FEH 01H 00H 00H FFH 80H 3FH 20H E0H バイト SP AH AL DPR ADB DTB PCB PC PS 更新後 のSP ■ 割込み処理からの復帰時のスタック動作 割込み処理終了時に割込み復帰命令(RETI)を実行すると , 専用レジスタ値は退避時 とは逆の順序(PS, PC, PCB, DTB, ADB, DPR, A)でスタックから返されます。専用レ ジスタは , 割込み処理開始直前の状態に復元されます。 149 第 7 章 割込み ■ スタック領域 ● スタック領域の割当て スタック領域は , 割込み処理時に加え , サブルーチン呼出し命令(CALL)やベクタ呼 出し命令(CALLV)実行時にもプログラムカウンタ(PC)を退避および復元するため に使用します。スタック領域は , PUSHW 命令や POPW 命令でレジスタを一時的に退 避または復元するために使用します。 スタック領域は , RAM のデータ領域と一緒に割当てられます。 スタック領域を図 7.8-2 スタック領域に示します。 図 7.8-2 スタック領域 FFFFFFH FFFC00H ベクタテーブル (リセットするための 割込みベクタ呼出し命令) ROM 領域 FF0000H*1 000900H*2 内蔵 RAM 領域 スタック 000380H 領域 000180H 汎用レジスタバンク 領域 000100H 0000C0H 内蔵 I/O 領域 000000H *1:内部ROMは,製品型格によって異なります。 *2:内部RAMは,製品型格によって異なります。 • 一般的に, 偶数番号のアドレスはスタックポインタ(SSP, USP)へ設定してください。 • オーバラップが発生しないように注意して , システムスタック領域やユーザスタッ ク領域 , データ領域を割当ててください。 ● システムスタックとユーザスタック システムスタック領域は , 割込み処理に使用されます。割込みが発生すると , 使用中の ユーザスタック領域は強制的にシステムスタックに切り換えられます。システムス タック領域は , 主にユーザスタック領域を使用するシステムの場合でも正しく設定し なければなりません。 スタック空間を分割する必要が特にない場合は , システムスタックのみを使用してく ださい。 150 第 7 章 割込み 7.9 割込み処理のプログラム例 割込み処理のプログラム例を示します。 ■ 割込み処理のプログラム例 ● 処理仕様 外部割込み 0(INT0)を使用する割込み処理プログラム例を以下に示します。 ● コーディング例 EQU 000011H ; ポート 1 方向レジスタ EQU 030H ;DTP/ 外部割込み許可レジスタ EQU 031H ;DTP/ 外部割込み要因レジスタ EQU 032H ; 要求レベル設定レジスタ EQU 0B4H ; 割込み制御レジスタ SSEG ; スタック RW 100 STACK_T RW 1 STACK ENDS ;---------- メインプログラム ------------------------------------------CODE CSEG START: MOV RP,#0 ; 汎用レジスタは先頭バンクを使用 MOV ILM,#07H ;PS の ILM をレベル 7 に設定 MOV A,#!STACK_T; システムスタックを設定 MOV SSB,A MOVW A,#STACK_T ; スタックポインタを設定し , 次に MOVW SP,A ;SSP を設定する(S フラグ =1 なので) MOV DDR1,#00000000B;P10/INT0 端子を " 入力 " に設定 OR CCR,#40H ;PS の CCR の I フラグを設定して割込みを許可 する MOV I:ICR04,#00H ; 割込みレベルを "0"(優先度が最も高い)に設定 MOV I:ELVR,#00000001B;INT0 に H レベルを入力するよう要求 MOV I:EIRR,#00H;INT0 割込み要因をクリア MOV I:EIRR,#01H;INT0 入力を許可する : LOOP: NOP ; ダミーループ NOP NOP NOP BRA LOOP ; 無条件ジャンプ ;---------- 割込みプログラム ------------------------------------------ED_INT1: MOV I:EIRR,#00H; 新しい INT0 の受付け不可 NOP NOP NOP NOP NOP NOP RETI ; 割込みからの復帰 CODE ENDS DDR1 ENIR EIRR ELVR ICR04 STACK 151 第 7 章 割込み ;---------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 0FFACH ; 割込み #20(14H)のベクタを設定 VECT DSL ORG DSL DB ENDS END ED_INT1 0FFDCH START 00H ; リセットベクタを設定 ; シングルチップモードを設定 START ■ 拡張インテリジェント I/O サービス(EI2OS)のプログラム例 • このプログラムは , INT0 端子へ入力された H レベル信号を検出し , 拡張インテリ ジェント I/O サービス(EI2OS)を起動します。 • INT0 端子へ H レベルが入力されると , EI2OS が起動します。データは , ポート 0 か らアドレス "003000H" のメモリへ転送されます。 • 転送データバイト数は , 100 バイトです。100 バイトの転送が完了すると , EI2OS 転 送が終了したので割込みが発生します。 ● コーディング例 DDR1 ENIR EIRR ELVR ICR04 BAPL BAPM BAPH EQU EQU EQU EQU EQU EQU EQU EQU 000011H 000030H 000031H 000032H 0000B4H 000100H 000101H 000102H ; ポート 1 方向レジスタ ;DTP /外部割込み許可レジスタ ;DTP /外部割込み要因レジスタ ; 要求レベル設定レジスタ ; 割込み制御レジスタ ; バッファアドレスポインタ下位 ; バッファアドレスポインタ中位 ; バッファアドレスポインタ上位 EQU 000103H ;EI2OS 状態 EQU 000104H ;I/O アドレスポインタ下位 EQU 000105H ;I/O アドレスポインタ上位 EQU 000106H ; データカウンタ下位 EQU 000107H ; データカウンタ上位 EQU EIRR:0 ; 外部割込み要求フラグビットの定義 SSEG ; スタック RW 100 STACK_T RW 1 STACK ENDS ;---------- メインプログラム ------------------------------------------CODE CSEG START: AND CCR,#0BFH ;PS の CCR の I フラグをクリアして割込みを 禁止 MOV RP,#00 ; レジスタバンクポインタを設定 MOV A,#STACK_T ; システムスタックを設定 MOV SSB,A MOVW A,#STACK_T ; スタックポインタを設定し , 次に MOVW SP,A ;SSP を設定する(S フラグ =1 なので) MOV I:DDR1,#00000000B;P10/INT0 端子を " 入力 " に設定 MOV BAPL,#00H ; バッファアドレス(003000H)を設定 ISCS IOAL IOAH DCTL DCTH ER0 STACK MOV MOV 152 BAPM,#30H BAPH,#00H 第 7 章 割込み MOV ISCS,#00010001B MOV IOAL,#00H MOV MOV MOV IOAH,#00H DCTL,#64H DCTH,#00H ;I/O アドレス更新 , バイト転送 , バッファアドレスを更新しない ;I/O →バッファへ転送 , リソースで終了させる ; 転送元アドレス(ポート 0: 000000H)を設定 ; 転送バイト数(100 バイト)を設定 I:ICR04,#00001000B;EI2OS チャネル 0, EI2OS 許可 , ; 割込みレベル 0(優先度が最も高い) MOV I:ELVR,#00000001B ;INT0 に H レベルを入力するよう要求 MOV I:EIRR,#00H ;INT0 割込み要因をクリア MOV I:ENIR,#01H ;INT0 割込みを許可する MOV ILM,#07H ;PS の ILM をレベル 7 に設定 OR CCR,#40H ;PS の CCR の I フラグを設定して割込みを許可する : LOOP BRA LOOP ; 無限ループ ;---------- 割込みプログラム ------------------------------------------WARI CLRB ER0;DTP /外部割込み要求フラグをクリア : MOV ;EI2OS の終了要因をチェックし , ユーザ処理 : ; バッファのデータを処理し , EI2OS を再び設定 RETI CODE ENDS ;--------- ベクタ設定 ------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFACH ; 割込み #20(14H)のベクタを設定 VECT DSL ORG DSL DB ENDS END WARI 0FFDCH ; リセットベクタを設定 START 00H ; シングルチップモードを設定 START 153 第 7 章 割込み 154 第8章 モード設定 MB90460/465 シリーズの動作モードについて説明 します。 8.1 モード設定 8.2 モード端子(MD2 ∼ MD0) 8.3 モードデータレジスタ 155 第 8 章 モード設定 8.1 モード設定 リセット入力時のモード端子レベルの設定と , モードレジスタにモードデータを設 定することにより動作モードを設定できます。 ■ モード設定 モードの分類を図 8.1-1 に示します。 図 8.1-1 モードの分類 動作モード ○ RUN モード ○ フラッシュメモリ書込みモード バスモード ○ シングルチップモード ■ 動作モード 動作モードは , モード端子(MD2 ∼ MD0)とモードデータレジスタのバスモード設定 ビット(M1, M0:bit7, bit6)で設定します。設定した動作モードによって起動します。 < 注意事項 > MD2 ∼ MD0 端子に "011B" を , モードデータレジスタのバスモード設定ビット (M1, M0:bit7, bit6)は "00B" を設定してください。 ■ バスモード MB90460/465 シリーズはシングルチップモードのみ設定できます。 詳細は「8.2 モード端子(MD2 ∼ MD0) 」と「8.3 モードデータレジスタ」をご参照 ください。 ■ RUN モード RUN モードは , CPU が動作しているモードです。RUN モードとしては , メインクロッ クで動作するメインクロックモード , PLL クロックで動作する PLL クロックモードお よび低消費電力モードがあります。詳細は , 「第 6 章 低消費電力モード」をご参照く ださい。 156 第 8 章 モード設定 モード端子(MD2 ∼ MD0) 8.2 モード端子は , MD2 ∼ MD0 の 3 本の外部端子であり , リセットベクタとモードデー タの取込み方法を設定します。 ■ モード端子 (MD2 ∼ MD0) モード端子によりモードを設定します。 フラッシュメモリ内蔵品の場合は , 内蔵フラッシュメモリにプログラムを書き込むた めのフラッシュメモリ書込みモードも , これらの端子により設定します。 表 8.2-1 モード端子の設定 リセットベクタ アクセス領域 外部データ バス幅 備考 モードデータ レジスタで設定 リセットシーケンス 以降はモードデータ で制御 MD2 MD1 MD0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 フラッシュメモリシ リアル書込みモード * − − − 1 1 1 フラッシュメモリ モード − − パラレルライタ 使用時のモード モード名 設定禁止 内部ベクタモード 内部メモリ 設定禁止 MD2 ∼ MD0:"0"=VSS, "1"=VCC としてください。 *: フラッシュメモリのシリアル書込みは , モード端子を設定するだけでは実行できません。ほかの箇所も設定 する必要があります。詳細は , 「第 24 章 フラッシュシリアル書込み接続例」をご参照ください。 157 第 8 章 モード設定 8.3 モードデータレジスタ モードデータレジスタは , "FFFFDFH" 番地のメモリ上にあり , リセットシーケンス 後のメモリアクセス動作を設定します。 ■ モードデータレジスタ リセットシーケンス実行中に , "FFFFDFH" 番地のモードデータをモードデータレジス タへ取込みます。モードデータレジスタのデータは , リセットシーケンス実行中に変更 できます。命令では変更できません。モードデータの設定は , リセットシーケンス後に 有効となります。 モードデータレジスタの構成を図 8.3-1 に示します。 図 8.3-1 モードデータレジスタの構成 モードデータ レジスタ bit 7 6 5 4 3 2 1 0 M1 M0 0 0 0 0 0 0 機能拡張ビット(予約領域) バスモード設定ビット ■ バスモード設定ビット リセットシーケンス終了後のバスモードを設定するビットです。 これらのビット機能を表 8.3-1 に示します。 表 8.3-1 バスモードのビット設定と機能 M1 M0 機能 0 0 シングルチップモード 0 1 1 0 1 1 (設定禁止) MB90460/465 シリーズのアクセス領域と物理アドレスの関係を図 8.3-2 に示します。 158 第 8 章 モード設定 図 8.3-2 MB90460/465 シリーズのアクセス領域と物理アドレスの関係 FFFFFFH ROM 領域 アドレス #1 FF0000H 00FFFFH ROM 領域 (FFバンクの イメージ) 004000H アドレス #2 000100H 0000C0H 000000H RAM レジスタ 領域 :アクセス禁止 I/O 領域 (注意事項)「アドレス#x」は品種ごとに決まるアドレスです。 製品番号 アドレス #1 アドレス #2 MB90462/467 FF0000H 000900H MB90F462 FF0000H 000900H MB90F462A FF0000H 000900H MB90F463A FE0000H 000900H MB90V460* FF0000H 002100H *:MB90V460 には , ROM は含まれていません。これらの領域は , 開 発ツールから ROM デコード領域として使用するものと仮定します。 ■ モード端子とモードデータの関係 モード端子とモードデータの関係を表 8.3-2 に示します。 表 8.3-2 モード端子とモードデータの関係 モード端子の設定 モードデータレジスタの設定 バスモード シングルチップモード MD2 MD1 MD0 M1 M0 0 1 1 0 0 159 第 8 章 モード設定 160 第9章 I/O ポート I/O ポートの機能と動作について説明します。 9.1 I/O ポートの概要 9.2 I/O ポートのレジスタ 9.3 ポート 0 9.4 ポート 1 9.5 ポート 2 9.6 ポート 3 9.7 ポート 4 9.8 ポート 5 9.9 ポート 6 9.10 I/O ポートのプログラム例 161 第 9 章 I/O ポート 9.1 I/O ポートの概要 I/O ポートは , 汎用入出力ポート(パラレル I/O ポート)として使用できます。 MB90460/465 シリーズには , 7 つのポート(51 本)があります。これらのポートは , リソース入出力端子としても使用します。 ■ I/O ポートの機能 各 I/O ポートは , ポートデータレジスタ(PDR)のデータを端子へ出力したり , 入力信 号を端子から取込んだりします。各 I/O ポートは , ポート方向レジスタ(DDR)を使用 して , ビット単位で入出力端子のデータ入出力方向を指定できます。各ポートの機能と , この機能を使用するリソースについて以下に説明します。 • ポート 0: 汎用入出力ポート / リソース(マルチパルスジェネレータ , PWC0) • ポート 1: 汎用入出力ポート / リソース(外部割込み , マルチパルスジェネレータ , 多 機能タイマ , 16 ビットリロードタイマ 0) • ポート 2: 汎用入出力ポート / リソース(16 ビットリロードタイマ , PWC, インプッ トキャプチャ) • ポート 3: 汎用入出力ポート / リソース(多機能タイマ , PPG1, PPG0) • ポート 4: 汎用入出力ポート / リソース(UART0, マルチパルスジェネレータ , PPG2) • ポート 5: 汎用入出力ポート / リソース(A/D) • ポート 6: 汎用入出力ポート / リソース(UART1, 外部割込み) 各ポートの機能の概要を表 9.1-1 に示します。 表 9.1-1 各ポートの機能 ポート ポート 0 ポート 1 ポート 2 ポート 3 端子 P00/OPT0 ∼ P07/PWO0 P10/INT0/ DTTI0 ∼ P17/FRCK 入力形式 CMOS CMOS プル アップ抵抗 を設定可能 CMOS (ヒステ リシス) P20/TIN1 ∼ P27/IN3 P30/RTO0 ∼ P37/PPG0 CMOS CMOS P40/SIN0 ∼ ポート 4 (ヒステ P46/PPG2 リシス) ポート 5 出力形式 P50/AN0 ∼ アナログ /CMOS P57/AN7 CMOS P60/SIN1 ∼ ポート 6 (ヒステ P63/INT7 リシス) CMOS 機能 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 汎用入出力 ポート P07 P06 P05 P04 P03 P02 P01 P00 リソース PWO0* PWI0* OPT5* OPT4* OPT3* OPT2* OPT1* OPT0* 汎用入出力 ポート P17 P16 P15 P14 P13 P12 P11 P10 リソース FRCK INT6/ TO0 INT5/ TIN0 INT4 INT3 INT2/ DTTI1 * INT1 INT0/ DTTI0 汎用入出力 ポート P27 P26 P25 P24 P23 P22 P21 P20 リソース IN3 IN2 IN1 IN0 PWO1 PWI1 TO1 TIN1 汎用入出力 ポート P37 P36 P35 P34 P33 P32 P31 P30 RTO4 RTO3 RTO2 RTO1 RTO0 リソース PPG0 汎用入出力 ポート − P46 P45 P44 P43 P42 P41 P40 リソース − PPG2 SNI2* SNI1* SNI0* SCK0 SOT0 SIN0 汎用入出力 ポート P57 P56 P55 P54 P53 P52 P51 P50 アナログ入力 AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 汎用入出力 ポート − − − − P63 P62 P61 P60 リソース − − − − INT7 SCK1 SOT1 SIN1 *:MB90467 では , リソースが搭載されていないため , 削除となります。 162 PPG1* RTO5 第 9 章 I/O ポート ポート 5 は , アナログ入力端子と兼用しています。ポート 5 を汎用ポートとして使用す るためには , アナログデータ入力許可レジスタ(ADER)の対応ビットには必ず "0" を 設定してください。リセットにより , ADER レジスタの各ビットには "1" が設定されま す。 163 第 9 章 I/O ポート 9.2 I/O ポートのレジスタ I/O ポートの設定に関係するレジスタの一覧を示します。 ■ I/O ポート関連のレジスタ 各ポートに対応するレジスタの一覧を表 9.2-1 に示します。 表 9.2-1 レジスタと対応ポート レジスタ リード / ライト アドレス 初期値 ポート 0 データレジスタ(PDR0) R/W 000000H XXXXXXXXB ポート 1 データレジスタ(PDR1) R/W 000001H XXXXXXXXB ポート 2 データレジスタ(PDR2) R/W 000002H XXXXXXXXB ポート 3 データレジスタ(PDR3) R/W 000003H XXXXXXXXB ポート 4 データレジスタ(PDR4) R/W 000004H -XXXXXXXB ポート 5 データレジスタ(PDR5) R/W 000005H XXXXXXXXB ポート 6 データレジスタ(PDR6) R/W 000006H ----XXXXB ポート 0 データ方向レジスタ(DDR0) R/W 000010H 00000000B ポート 1 データ方向レジスタ(DDR1) R/W 000011H 00000000B ポート 2 データ方向レジスタ(DDR2) R/W 000012H 00000000B ポート 3 データ方向レジスタ(DDR3) R/W 000013H 00000000B ポート 4 データ方向レジスタ(DDR4) R/W 000014H -0000000B ポート 5 データ方向レジスタ(DDR5) R/W 000015H 00000000B ポート 6 データ方向レジスタ(DDR6) R/W 000016H ----0000B アナログデータ入力許可レジスタ(ADER) R/W 000017H 11111111B ポート 0 プルアップ抵抗設定レジスタ(RDR0) R/W 00001CH 00000000B ポート 1 プルアップ抵抗設定レジスタ(RDR1) R/W 00001DH 00000000B R/W : リード / ライト X : 不定 − : 未使用 164 第 9 章 I/O ポート 9.3 ポート 0 ポート 0 は汎用入出力ポートですが , リソース入出力と兼用しています。ポートの 端子は , ビット単位でポート機能とリソース機能を切り換えることができます。こ こでは , 汎用入出力ポート機能を中心に説明します。また , ポート 0 の構成 , 端子一 覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて説明します。 ■ ポート 0 の構成 ポート 0 は , 以下から構成されています。 • 汎用入出力ポート , マルチパルスジェネレータ出力 , PWC 入出力(P00/OPT0 ∼ P07/ PWO0) • ポート 0 データレジスタ(PDR0) • ポート 0 方向レジスタ(DDR0) • ポート 0 プルアップ抵抗設定レジスタ(RDR0) ■ ポート 0 の端子 ポート 0 は , リソースの入出力端子としても使用します。したがって , これらの端子は , リソース入出力端子として使用した場合 , 汎用入出力ポートとしては使用できません。 ポート 0 の端子一覧を表 9.3-1 に示します。 表 9.3-1 ポート 0 の端子 入出力形式 ポート 端子 ポート機能 リソース機能 入力 ポート 0 P00/OPT0* P00 OPT0* マルチパルスジェネ レータ出力 P01/OPT1* P01 OPT1* マルチパルスジェネ レータ出力 P02/OPT2* P02 OPT2* マルチパルスジェネ レータ出力 OPT3* マルチパルスジェネ レータ出力 P03/OPT3* P03 P04/OPT4* P04 OPT4* マルチパルスジェネ レータ出力 P05/OPT5* P05 OPT5* マルチパルスジェネ レータ出力 P06/PWI0* P06 PWI0* PWC0 入力 P07/PWO0* P07 PWO0* PWC0 出力 汎用入出力 出力 回路の 種類 D CMOS CMOS E *:MB90467 では , リソースが搭載されていないため , 削除となります。 回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。 165 第 9 章 I/O ポート ■ ポート 0 の端子のブロックダイヤグラム ポート 0 の端子のブロックダイヤグラムを図 9.3-1 に示します。 図 9.3-1 ポート 0 の端子のブロックダイヤグラム RDR リソース出力 直接リソース入力 リソース出力許可信号 ポートデータレジスタ(PDR) プルアップ 抵抗 約50kΩ 内部データバス PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) リソース出力許可ビットを " 許可 " にすると , ポートは , DDR0 レジスタの値にかかわ らずリソースの出力端子として機能します。 ■ ポート 0 のレジスタ ポート 0 のレジスタには , PDR0, DDR0, RDR0 があります。各レジスタを構成してい るビットは , ポート 0 の端子に 1 対 1 で対応しています。ポート 0 の端子と , これらの 端子に対応しているレジスタビットを表 9.3-2 に示します。 表 9.3-2 ポート 0 の端子と対応レジスタビット ポート レジスタビットと対応ポート端子 PDR0, DDR0, RDR0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P07 P06 P05 P04 P03 P02 P01 P00 ポート 0 回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。 166 第 9 章 I/O ポート 9.3.1 ポート 0 のレジスタ(PDR0, DDR0, RDR0) ポート 0 のレジスタについて説明します。 ■ ポート 0 のレジスタの機能 ● ポート 0 データレジスタ(PDR0) PDR0 レジスタは , ポート 0 の各端子の状態を示します。 ● ポート 0 方向レジスタ(DDR0) DDR0 レジスタは , ポート 0 の各端子(ビット)のデータ入出力方向を指定します。 DDR0 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端 子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する ポート(端子)は入力ポートとして設定されます。 ● ポート 0 プルアップ抵抗設定レジスタ(RDR0) RDR0 レジスタは , ポート 0 の各端子(ビット)に対するプルアップ抵抗を設定しま す。RDR0 レジスタのいずれかのビットが "1" の場合は , プルアップ抵抗がそのビット に対応するポート(端子)に対して有効になります。いずれかのビットが "0" の場合 は , そのビットに対応するプルアップ抵抗は無効になります。 • リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ トが " 許可 " に設定されていると , ポートは DDR0 レジスタの値とは無関係にリソー スの出力端子として機能します。 • リソースの入力と兼用している端子をリソースの入力として使用する場合は , 各入 力端子に対応する DDR0 レジスタのビットに "0" を設定してポートを入力モードに してください。 ポート 0 のレジスタの機能を表 9.3-3 に示します。 167 第 9 章 I/O ポート 表 9.3-3 ポート 0 のレジスタの機能 レジスタ データ 読出し時 書込み時 0 端子は low レベル 出力ラッチへ "0" がロードさ れます。端子が出力ポートと して機能すると , 端子には low レベルが設定されます 1 端子は high レベル 出力ラッチへ "1" がロードさ れます。端子が出力ポートと して機能すると , 端子には high レベルが設定されます 0 方向ラッチ は "0" 出力バッファが " オフ " にな り , ポートが入力モードにな ります 1 方向ラッチ は "1" 出力バッファが " オン " にな り , ポートが出力モードにな ります 0 設定ラッチ は "0" 入力モードにおいてプルアッ プ抵抗が遮断され , ポートは Hi-Z 状態になります 設定ラッチ は "1" 入力モードにおいてプルアッ プ抵抗が設定され , ポートは high レベルを保持します ポート 0 データ レジスタ (PDR0) ポート 0 方向 レジスタ (DDR0) ポート 0 プルアップ 抵抗設定 レジスタ (RDR0) 1 R/W : リード / ライト X : 不定 168 リード / ライト アドレス 初期値 R/W 000000H XXXXXXXXB R/W 000010H 00000000B R/W 00001CH 00000000B 第 9 章 I/O ポート 9.3.2 ポート 0 の動作 ポート 0 の動作について説明します。 ■ ポート 0 の動作 ● 出力モード時のポート動作 • DDR0 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー トの端子は出力モードになります。 • 出力モード時において PDR0 レジスタに書き込まれたデータは , PDR の出力ラッチ が保持し , そのままの端子へ出力されます。 • PDR0 レジスタを読み出すと PDR の出力ラッチの状態を読み出すことができます。 リードモディファイライト命令を PDR0 レジスタに対して使用すると , このレジスタの ターゲットビットには書き込んだ値が設定されます。DDR0 レジスタによって " 出力 " として指定されているビットは影響を受けませんが , " 入力 " として指定されている ビットの場合は , 端子からの入力値は出力ラッチに書き込まれ , そのまま出力されま す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー タをPDR0レジスタへ書き込み, 次にDDR0レジスタを出力モードに設定してください。 ● 入力モード時のポート動作 • DDR0 レジスタのビットに "0" を設定すると , そのビットに対応する端子は入力モー ドになります。 • 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に なります。 • ただし , RDR0 レジスタのいずれかのビットに "1" を設定してプルアップ抵抗を有効 にすると , 端子は high レベルを保持します。 • 入力モード時において PDR0 レジスタに書き込まれたデータは , PDR の出力ラッチ が保持しますが , 端子には出力されません。 • PDR0 レジスタを読み出すと端子のレベル("0" または "1")を読み出すことができ ます。 ● リソース出力としてのポート動作 • リソース出力許可ビットを " 許可 " にすると , ポートはリソース出力として使用で きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が 優先されます。すなわち , たとえ DDR0 レジスタのいずれかのビットが "0" であっ ても , リソース出力が " 許可 " になっている場合は , そのビットに対応する端子はリ ソース出力として使用されます。しかしリソース出力が " 許可 " であっても端子の 値を読み出すことはできるので , リソースの出力値を読み出すことができます。 ● リソース入力としてのポート動作 • ポートをリソース入力として使用する場合 , 端子の値がリソースの入力値となりま すので , DDR0 レジスタに "0" を設定しポートを入力モードにしてください。 169 第 9 章 I/O ポート ● リセット後のポート動作 • リセットにより , DDR0 レジスタは "0" に初期化されます。その結果 , 出力バッファ が " オフ " になり(入出力モードは " 入力 " に変化する), プルアップ抵抗が遮断さ れ , 端子はハイインピーダンス状態になります。 • PDR0 レジスタは , リセットでも初期化されません。したがって , ポートを出力モー ドで使用する場合は , 出力データを PDR0 レジスタに設定した後 , 出力モードに DDR0 レジスタを設定しなければなりません。 ● ストップモードまたはタイムベースタイマモード時のポート動作 ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力 モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は , 端子はハイインピーダンス状態になります。これは , 出力バッファが DDR0 レジスタ の値とは無関係に " オフ " にさせられるからです。 また , プルアップ抵抗が " 有効 " のときは , SPL ビットに "1" を設定した場合 , 端子は high レベルを保持し , ハイインピーダンス状態にはならないので注意してください。 ポート 0 の端子状態を表 9.3-4 に示します。 表 9.3-4 ポート 0 の端子状態 端子 通常動作 スリープ モード P00/OPT0 ∼ P07/ PWO0 汎用入出 力ポート 汎用入出 力ポート ストップモードまた はタイムベースタイ マモード(SPL=0) ストップモードまた はタイムベースタイ マモード (SPL=1, RDR=0) ストップモードまた はタイムベースタイ マモード (SPL=1, RDR=1) 汎用入出力ポート 入力は遮断され , 出力 は Hi-Z 状態になる 入力は遮断され , H レ ベルに保持される SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット Hi-Z: ハイインピーダンス 170 第 9 章 I/O ポート 9.4 ポート 1 ポート 1 は汎用入出力ポートですが , リソース入出力と兼用しています。ポートの 端子は , ビット単位でポート機能とリソース機能を切り換えることができます。こ こでは , 汎用入出力ポート機能を中心に説明します。また , ポート 1 の構成 , 端子一 覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて説明します。 ■ ポート 1 の構成 ポート 1 は , 以下から構成されています。 • 汎用入出力ポート , 外部割込み入力 , 16 ビットリロードタイマ入出力 , フリーラン タイマ外部クロック入力(P10/INT0/DTT0 ∼ P17/FRCK) • ポート 1 データレジスタ(PDR1) • ポート 1 方向レジスタ(DDR1) • ポート 1 プルアップ抵抗設定レジスタ(RDR1) ■ ポート 1 の端子 ポート 1 は , リソースの入力端子としても使用します。したがってこれらの端子は , リ ソースの入力端子として使用した場合 , 汎用入出力ポートとしては使用できません。 ポート 1 の端子一覧を表 9.4-1 に示します。 表 9.4-1 ポート 1 の端子 入出力形式 ポート 端子 ポート機能 リソース機能 P10/INT0/ DTTI0 P10 INT0/ DTTI0 外部割込み入力 , 多機能 タイマ入力 P11/INT1 P11 INT1 外部割込み入力 P12/INT2/ DTTI1* P12 INT2/ DTTI1* 外部割込み入力 , マル チパルスジェネレータ 入力 P13/INT3 P13 INT3 P14/INT4 P14 INT4 P15/INT5/ TIN0 P15 INT5/ TIN0 外部割込み入力 , リロー ドタイマクロック入力 P16/INT6/ TO0 P16 INT6/ TO0 外部割込み入力 , リロー ドタイマイベント出力 P17/FRCK P17 FRCK フリーランタイマクロッ ク入力 ポート 1 汎用入出力 外部割込み入力 入力 出力 CMOS (ヒス テリ シス) CMOS 回路の 種類 C *:MB90467 では , リソースが搭載されていないため , 削除となります。 回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。 171 第 9 章 I/O ポート ■ ポート 1 の端子のブロックダイヤグラム ポート 1 の端子のブロックダイヤグラムを図 9.4-1 に示します。 図 9.4-1 ポート 1 の端子のブロックダイヤグラム RDR リソース入力 リソース出力 リソース出力許可信号 ポートデータレジスタ(PDR) プルアップ 抵抗 約50kΩ 内部データバス PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) リソース出力許可ビットを " 許可 " にすると , ポートは , DDR1 レジスタの値にかかわ らずリソースの出力端子として機能します。 ■ ポート 1 のレジスタ ポート 1 のレジスタには , PDR1, DDR1, RDR1 があります。各レジスタを構成してい るビットは , ポート 1 の端子に 1 対 1 で対応しています。ポート 1 の端子と , これらの 端子に対応しているレジスタビットを表 9.4-2 に示します。 表 9.4-2 ポート 1 の端子と対応レジスタビット ポート レジスタビットと対応ポート端子 PDR1, DDR1, RDR1 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P17 P16 P15 P14 P13 P12 P11 P10 ポート 1 172 第 9 章 I/O ポート 9.4.1 ポート 1 のレジスタ(PDR1, DDR1, RDR1) ポート 1 のレジスタについて説明します。 ■ ポート 1 のレジスタの機能 ● ポート 1 データレジスタ(PDR1) PDR1 レジスタは , ポート 1 の各端子の状態を示します。 ● ポート 1 方向レジスタ(DDR1) DDR1 レジスタは , ポート 1 の各端子(ビット)のデータ入出力方向を指定します。 DDR1 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端 子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する ポート(端子)は入力ポートとして設定されます。 ● ポート 1 プルアップ抵抗設定レジスタ(RDR1) RDR1 レジスタは , ポート 1 の各端子(ビット)に対するプルアップ抵抗を設定しま す。RDR1 レジスタのいずれかのビットが "1" の場合は , プルアップ抵抗はそのビット に対応するポート(端子)に対して有効になります。いずれかのビットが "0" の場合 は , そのビットに対応するプルアップ抵抗は無効になります。 • リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ トが " 許可 " に設定されていると , ポートは DDR1 レジスタの値とは無関係にリソー スの出力端子として機能します。 • リソースの入力と兼用している端子をリソースの入力として使用する場合は , 各入 力端子に対応する DDR1 レジスタのビットに "0" を設定してポートを入力モードに してください。 ポート 1 のレジスタの機能を表 9.4-3 に示します。 173 第 9 章 I/O ポート 表 9.4-3 ポート 1 のレジスタの機能 レジスタ データ 読出し時 書込み時 0 端子は low レベル 出力ラッチへ "0" がロードさ れます。端子が出力ポートと して機能すると , 端子には low レベルが設定されます 1 端子は high レベル 出力ラッチへ "1" がロードさ れます。端子が出力ポートと して機能すると , 端子には high レベルが設定されます 0 方向ラッチ は "0" 出力バッファが " オフ " にな り , ポートが入力モードにな ります 1 方向ラッチ は "1" 出力バッファが " オン " にな り , ポートが出力モードにな ります 0 設定ラッチ は "0" 入力モードにおいてプルアッ プ抵抗が遮断され , ポートは Hi-Z 状態になります 設定ラッチ は "1" 入力モードにおいてプルアッ プ抵抗が設定され , ポートは high レベルを保持します ポート 1 データ レジスタ (PDR1) ポート 1 方向 レジスタ (DDR1) ポート 1 プルアップ 抵抗設定 レジスタ (RDR1) 1 R/W : リード / ライト X : 不定 174 リード / ライト アドレス 初期値 R/W 000001H XXXXXXXXB R/W 000011H 00000000B R/W 00001DH 00000000B 第 9 章 I/O ポート 9.4.2 ポート 1 の動作 ポート 1 の動作について説明します。 ■ ポート 1 の動作 ● 出力モード時のポート動作 • DDR1 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー トの端子は出力モードになります。 • 出力モード時において PDR1 レジスタに書き込まれたデータは , PDR の出力ラッチ が保持し , そのまま端子へ出力されます。 • PDR1 レジスタを読み出すと PDR の出力ラッチの状態を読み出すことができます。 リードモディファイライト命令を PDR1 レジスタに対して使用すると , このレジスタの ターゲットビットには書き込んだ値が設定されます。DDR レジスタによって " 出力 " として指定されているビットは影響を受けませんが , " 入力 " として指定されている ビットの場合は , 端子からの入力値は出力ラッチへ書き込まれ , そのまま出力されま す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー タをPDR1レジスタに書き込み, 次にDDR1レジスタを出力モードに設定してください。 ● 入力モード時のポート動作 • DDR1 レジスタのいずれかのビットに "0" を設定すると , そのビットに対応する端子 は入力モードになります。 • 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に なります。 • ただし , RDR1 レジスタのいずれかのビットに "1" を設定してプルアップ抵抗を " 有 効 " にすると , 端子は high レベルを保持します。 • 入力モード時において PDR1 レジスタに書き込まれたデータは , PDR の出力ラッチ が保持しますが , 端子へは出力されません。 • PDR1 レジスタを読み出すとポートの端子レベル("0" または "1")を読み出すこと ができます。 ● リソース出力としてのポート動作 • リソース出力許可ビットを " 許可 " にすると , ポートはリソース出力として使用で きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が 優先されます。すなわち , たとえ DDR1 レジスタのいずれかのビットが "0" であっ ても , リソース出力が " 許可 " になっている場合は , そのビットに対応する端子はリ ソース出力として使用されます。しかしリソース出力が " 許可 " であっても端子の 値を読み出すことはできるので , リソースの出力値を読み出すことができます。 ● リソース入力としてのポート動作 • ポートをリソース入力として使用する場合 , 端子の値がリソースの入力値となりま すので , DDR1 レジスタに "0" を設定しポートを入力モードにしてください。 175 第 9 章 I/O ポート ● リセット後のポート動作 • リセットにより , DDR1 レジスタは "0" に初期化されます。その結果 , 出力バッファ が " オフ " になり(入出力モードは " 入力 " に変化する), プルアップ抵抗が遮断さ れ , 端子はハイインピーダンス状態になります。 • PDR1 レジスタは , リセットでも初期化されません。したがって , ポートを出力モー ド時に使用する場合は , 出力データを PDR1 レジスタに設定した後 , 出力モードに DDR1 レジスタを設定しなければなりません。 ● ストップモードまたはタイムベースタイマモード時のポート動作 ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力 モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は , 端子はハイインピーダンス状態になります。これは , 出力バッファが DDR1 レジスタ の値とは無関係に " オフ " にさせられるからです。 また , プルアップ抵抗が " 有効 " のときは , たとえ SPL ビットに "1" を設定した場合 , 端子は high レベルを保持し , ハイインピーダンス状態にはならないので注意してくだ さい。ポート 1 の端子状態を表 9.4-4 に示します。 表 9.4-4 ポート 1 の端子状態 端子 通常動作 スリープ モード P10/ INT0/ DTTI0 ∼ P17/ FRCK 汎用入出 力ポート 汎用入出 力ポート ストップモード またはタイムベース タイマモード (SPL=0) ストップモード またはタイムベース タイマモード (SPL=1, RDR=0) ストップモード またはタイムベース タイマモード (SPL=1, RDR=1) 汎用入出力ポート 入力は有効になり *, 出力は Hi-Z 状態にな ります 入力は遮断され , H レ ベルを保持します SPL : 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット Hi-Z : ハイインピーダンス * 176 : 入力は , P10/INT0 ∼ P16/INT6 を外部割込み端子として構成した場合のみ有効になり , それ以 外の場合は遮断されます。 第 9 章 I/O ポート 9.5 ポート 2 ポート 2 は汎用入出力ポートですが , リソース入出力と兼用しています。ポートの 端子は , ビット単位でポート機能とリソース機能を切り換えることができます。こ こでは , 汎用入出力ポート機能を中心に説明します。また , ポート 2 の構成 , 端子一 覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて説明します。 ■ ポート 2 の構成 ポート 2 は , 以下から構成されています。 • 汎用入出力ポート , 16 ビットリロードタイマ入出力 , PWC 入出力 , インプットキャ プチャ入力(P20/TIN1 ∼ P27/IN3) • ポート 2 データレジスタ(PDR2) • ポート 2 方向レジスタ(DDR2) ■ ポート 2 の端子 ポート 2 は , リソースの入出力端子としても使用します。したがってこれらの端子は , リソースの入出力端子として使用した場合 , 汎用入出力ポートとしては使用できませ ん。ポート 2 の端子一覧を表 9.5-1 に示します。 表 9.5-1 ポート 2 の端子 入出力形式 ポート ポート 2 端子 ポート機能 リソース機能 P20/TIN1 P20 TIN1 16 ビットリロードタイマ 1 イベント入力 P21/TO1 P21 TO1 16 ビットリロードタイマ 1 タイマ出力 P22/PWI1 P22 PWI1 PWC1 入力 P23/PWO1 P23 PWO1 PWC1 出力 P24/IN0 P24 IN0 インプットキャプチャ チャネル 0 入力 P25/IN1 P25 IN1 インプットキャプチャ チャネル 1 入力 P26/IN2 P26 IN2 インプットキャプチャ チャネル 2 入力 P27/IN3 P27 IN3 インプットキャプチャ チャネル 3 入力 汎用入出力 入力 出力 CMOS (ヒス テリ シス) CMOS 回路の 種類 F 回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。 177 第 9 章 I/O ポート ■ ポート 2 の端子のブロックダイヤグラム ポート 2 の端子のブロックダイヤグラムを図 9.5-1 に示します。 図 9.5-1 ポート 2 の端子のブロックダイヤグラム リソース出力 リソース入力 リソース出力許可信号 内部データバス ポートデータレジスタ(PDR) PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) リソース出力許可ビットを " 許可 " にすると , ポートは , DDR2 レジスタの値にかかわ らずリソースの出力端子として機能します。 ■ ポート 2 のレジスタ ポート 2 のレジスタには , PDR2 と DDR2 があります。各レジスタを構成しているビッ トは , ポート 2 の端子に 1 対 1 で対応しています。ポート 2 の端子と , これらの端子に 対応しているレジスタビットを表 9.5-2 に示します。 表 9.5-2 ポート 2 の端子と対応レジスタビット ポート レジスタビットと対応ポート端子 PDR2, DDR2 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P27 P26 P25 P24 P23 P22 P21 P20 ポート 2 178 第 9 章 I/O ポート 9.5.1 ポート 2 のレジスタ(PDR2, DDR2) ポート 2 のレジスタについて説明します。 ■ ポート 2 のレジスタの機能 ● ポート 2 データレジスタ(PDR2) PDR2 レジスタは , ポート 2 の各端子の状態を示します。 ● ポート 2 方向レジスタ(DDR2) DDR2 レジスタは , ポート 2 の各端子(ビット)のデータ入出力方向を指定します。 DDR2 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端 子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する ポート(端子)は入力ポートとして設定されます。 • リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ トが " 許可 " に設定されていると , ポートは DDR2 レジスタの値とは無関係にリソー スの出力端子として機能します。 • リソースの入力と兼用している端子をリソースの入力として使用する場合は , 各入 力端子に対応する DDR2 レジスタのビットに "0" を設定してポートを入力モードに してください。 ポート 2 のレジスタの機能を表 9.5-3 に示します。 表 9.5-3 ポート 2 のレジスタの機能 レジスタ データ 読出し時 書込み時 0 端子は low レベル 出力ラッチへ "0" がロードさ れます。端子が出力ポートと して機能すると , 端子には low レベルが設定されます 1 端子は high レベル 出力ラッチへ "1" がロードさ れます。端子が出力ポートと して機能すると , 端子には high レベルが設定されます 0 方向ラッチ は "0" 出力バッファが " オフ " にな り , ポートが入力モードにな ります 方向ラッチ は "1" 出力バッファが " オン " にな り , ポートが出力モードにな ります ポート 2 データ レジスタ (PDR2) ポート 2 方向 レジスタ (DDR2) 1 リード / ライト アドレス 初期値 R/W 000002H XXXXXXXXB R/W 000012H 00000000B R/W : リード / ライト X : 不定 179 第 9 章 I/O ポート 9.5.2 ポート 2 の動作 ポート 2 の動作について説明します。 ■ ポート 2 の動作 ● 出力モード時のポート動作 • DDR2 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー トの端子は出力モードになります。 • 出力モード時において PDR2 レジスタに書き込まれたデータは , PDR の出力ラッチ が保持し , 端子へ出力されます。 • PDR2 レジスタを読み出すと PDR の出力ラッチの状態を読み出すことができます。 リードモディファイライト命令を PDR2 レジスタに対して使用すると , このレジスタの ターゲットビットには書き込んだ値が設定されます。DDR2 レジスタによって " 出力 " として指定されているビットは影響を受けませんが , " 入力 " として指定されている ビットの場合は , 端子からの入力値は出力ラッチに書き込まれ , そのまま出力されま す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー タをPDR2レジスタに書き込み, 次にDDR2レジスタを出力モードに設定してください。 ● 入力モード時のポート動作 • DDR2 レジスタのいずれかのビットに "0" を設定すると , そのビットに対応する端子 は入力モードになります。 • 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に なります。 • 入力モード時において PDR2 レジスタに書き込まれたデータは , PDR の出力ラッチ が保持しますが , 端子へは出力されません。 • PDR2 レジスタを読み出すと端子のレベル("0" または "1")を読み出すことができ ます。 ● リソース出力としてのポート動作 • リソース出力許可ビットを " 許可 " にすると , ポートはリソース出力として使用で きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が 優先されます。すなわち , たとえ DDR0 レジスタのいずれかのビットが "0" であっ ても , リソース出力が " 許可 " になっている場合は , そのビットに対応する端子はリ ソース出力として使用されます。しかしリソース出力が " 許可 " であっても端子の 値を読み出すことはできるので , リソースの出力値を読み出すことができます。 ● リソース入力としてのポート動作 • ポートをリソース入力として使用する場合 , 端子の値がリソースの入力値となりま すので , DDR2 レジスタに "0" を設定しポートを入力モードにしてください。 180 第 9 章 I/O ポート ● リセット後のポート動作 • リセットにより , DDR2 レジスタは "0" に初期化されます。その結果 , 出力バッファ が " オフ " になり(入出力モードは " 入力 " に変化する), 端子はハイインピーダン ス状態になります。 • PDR2 レジスタは , リセットでも初期化されません。したがって , ポートを出力モー ドで使用する場合は , 出力データを PDR2 レジスタに設定した後 , 出力モードに DDR2 レジスタを設定しなければなりません。 ● ストップモードまたはタイムベースタイマモード時のポート動作 ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力 モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は , 端子はハイインピーダンス状態になります。これは , 出力バッファが DDR2 レジスタ の値とは無関係に " オフ " にさせられるからです。ポート 2 の端子状態を表 9.5-4 に示 します。 表 9.5-4 ポート 2 の端子状態 端子 通常動作 スリープ モード ストップモードまたはタ イムベースタイマモード (SPL=0) ストップモードまたはタ イムベースタイマモード (SPL=1) P20/TIN1 ∼ P27/IN3 汎用入出 力ポート 汎用入出 力ポート 汎用入出力ポート 入力は遮断され , 出力は Hi-Z 状態になります SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット Hi-Z: ハイインピーダンス 181 第 9 章 I/O ポート 9.6 ポート 3 ポート 3 は汎用入出力ポートですが , リソース出力と兼用しています。ポート端子 は , ビット単位でポート機能とリソース機能を切り換えることができます。ここで は , 汎用入出力ポート機能を中心に説明します。また , ポート 3 の構成 , 端子一覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて説明します。 ■ ポート 3 の構成 ポート 3 は , 以下から構成されています。 • 汎用入出力ポート , 多機能タイマ出力 , PPG 出力(P30/RTO0 ∼ P37/PPG0) • ポート 3 データレジスタ(PDR3) • ポート 3 方向レジスタ(DDR3) ■ ポート 3 の端子 ポート 3 は , リソースの出力端子としても使用します。したがってこれらの端子は , リ ソースの入出力端子として使用した場合 , 汎用入出力ポートとしては使用できません。 ポート 3 の端子一覧を表 9.6-1 に示します。 表 9.6-1 ポート 3 の端子 入出力形式 ポート 端子 ポート機能 リソース機能 入力 P30/RTO0 P30 RTO0 多機能タイマ出力 0 P31/RTO1 P31 RTO1 多機能タイマ出力 1 P32/RTO2 P32 RTO2 多機能タイマ出力 2 P33/RTO3 P33 RTO3 多機能タイマ出力 3 P34/RTO4 P34 RTO4 多機能タイマ出力 4 P35/RTO5 P35 RTO5 多機能タイマ出力 5 P36/PPG1* P36 PPG1* PPG1 出力 P37/PPG0 P37 PPG0 PPG0 出力 出力 回路の 種類 G ポート 3 CMOS 汎用入出力 CMOS H *:MB90467 では , リソースが搭載されていないため , 削除となります。 回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。 182 第 9 章 I/O ポート ■ ポート 3 の端子のブロックダイヤグラム ポート 3 の端子のブロックダイヤグラムを図 9.6-1 に示します。 図 9.6-1 ポート 3 の端子のブロックダイヤグラム リソース出力 リソース出力許可信号 ポートデータレジスタ(PDR) 内部データバス PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) リソース出力許可ビットを " 許可 " にすると , ポートは , DDR3 レジスタの値にかかわ らずリソースの出力端子として機能します。 ■ ポート 3 のレジスタ ポート 3 のレジスタには , PDR3 と DDR3 があります。各レジスタを構成しているビッ トは , ポート 3 の端子に 1 対 1 で対応しています。ポート 3 の端子と , これらの端子に 対応しているレジスタビットを表 9.6-2 に示します。 表 9.6-2 ポート 3 の端子と対応レジスタビット ポート レジスタビットと対応ポート端子 PDR3, DDR3 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P37 P36 P35 P34 P33 P32 P31 P30 ポート 3 183 第 9 章 I/O ポート 9.6.1 ポート 3 のレジスタ(PDR3, DDR3) ポート 3 のレジスタについて説明します。 ■ ポート 3 のレジスタの機能 ● ポート 3 データレジスタ(PDR3) PDR3 レジスタは , ポート 3 の各端子の状態を示します。 ● ポート 3 方向レジスタ(DDR3) DDR3 レジスタは , ポート 3 の各端子(ビット)のデータ入出力方向を指定します。 DDR3 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端 子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する ポート(端子)は入力ポートとして設定されます。 • リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ トが " 許可 " に設定されていると , ポートは DDR3 レジスタの値とは無関係にリソー スの出力端子として機能します。 ポート 3 のレジスタの機能を表 9.6-3 に示します。 表 9.6-3 ポートの 3 レジスタの機能 レジスタ データ 読出し時 書込み時 0 端子は low レベル 出力ラッチへ "0" がロードさ れます。端子が出力ポートと して機能すると , 端子には low レベルが設定されます 1 端子は high レベル 出力ラッチへ "1" がロードさ れます。端子が出力ポートと して機能すると , 端子には high レベルが設定されます 0 方向ラッチ は "0" 出力バッファが " オフ " にな り , ポートが入力モードにな ります 方向ラッチ は "1" 出力バッファが " オン " にな り , ポートが出力モードにな ります ポート 3 データ レジスタ (PDR3) ポート 3 方向 レジスタ (DDR3) 1 R/W : リード / ライト X : 不定 184 リード / ライト アドレス 初期値 R/W 000003H XXXXXXXXB R/W 000013H 00000000B 第 9 章 I/O ポート 9.6.2 ポート 3 の動作 ポート 3 の動作について説明します。 ■ ポート 3 の動作 ● 出力モード時のポート動作 • DDR3 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー トの端子は出力モードになります。 • 出力モード時において PDR3 レジスタに書き込まれたデータは , PDR の出力ラッチ が保持し , 端子へ出力されます。 • PDR3 レジスタを読み出すと PDR の出力ラッチの状態を読み出すことができます。 リードモディファイライト命令を PDR3 レジスタに対して使用すると , このレジスタの ターゲットビットには書き込んだ値が設定されます。DDR3 レジスタによって " 出力 " として指定されているビットは影響を受けませんが , " 入力 " として指定されている ビットの場合は , 端子からの入力値は出力ラッチに書き込まれ , そのまま出力されま す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー タをPDR3レジスタへ書き込み, 次にDDR3レジスタを出力モードに設定してください。 ● 入力モード時のポート動作 • DDR3 レジスタのいずれかのビットに "0" を設定すると , そのビットに対応する端子 は入力モードになります。 • 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に なります。 • 入力モード時において PDR3 レジスタに書き込まれたデータは , PDR の出力ラッチ が保持しますが , 端子へは出力されません。 • PDR3 レジスタを読み出すと端子のレベル("0" または "1")を読み出すことができ ます。 ● リソース出力としてのポート動作 • リソース出力許可ビットを " 許可 " にすると , ポートをリソース出力として使用で きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が 優先されます。すなわち , たとえ DDR3 レジスタのビットが "0" であっても , リソー ス出力が " 許可 " になっている場合は , そのビットに対応する端子はリソース出力 として使用されます。しかしリソース出力が " 許可 " であっても端子の値を読み出 すことはできますので , リソースの出力値を読み出すことができます。 ● リセット後のポート動作 • リセットにより , DDR3 レジスタは "0" に初期化されます。その結果 , 出力バッファ が " オフ " になり(入出力モードが " 入力 " に変化する), 端子がハイインピーダン ス状態になります。 • PDR3 レジスタは , リセットでも初期化されません。したがって , ポートを出力モー ドで使用する場合は , 出力データを PDR3 レジスタに設定した後 , 出力モードに DDR3 レジスタを設定しなければなりません。 185 第 9 章 I/O ポート ● ストップモードまたはタイムベースタイマモード時のポート動作 ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力 モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は , 端子はハイインピーダンス状態になります。これは , 出力バッファが DDR3 レジスタ の値とは無関係に " オフ " にさせられるからです。ポート 3 の端子状態を表 9.6-4 に示 します。 表 9.6-4 ポート 3 の端子状態 端子 通常動作 スリープ モード ストップモードまたはタ イムベースタイマモード (SPL=0) ストップモードまたはタ イムベースタイマモード (SPL=1) P30/RTO0 ∼ P37/PPG0 汎用入出 力ポート 汎用入出 力ポート 汎用入出力ポート 入力は遮断され , 出力は Hi-Z 状態になります SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット Hi-Z: ハイインピーダンス 186 第 9 章 I/O ポート 9.7 ポート 4 ポート 4 は汎用入出力ポートですが , リソース入出力と兼用しています。ポートの端 子は , ビット単位でポート機能とリソース機能を切り換えることができます。ここで は , 汎用入出力ポート機能を中心に説明します。また , ポート 4 の構成 , 端子一覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて説明します。 ■ ポート 4 の構成 ポート 4 は , 以下から構成されています。 • 汎用入出力ポート , UART 入出力 , マルチパルスジェネレータ入力 , PPG 出力(P40/ SIN0 ∼ P46/PPG2) • ポート 4 データレジスタ(PDR4) • ポート 4 方向レジスタ(DDR4) ■ ポート 4 の端子 ポート 4 は , リソースの入出力端子としても使用します。したがってこれらの端子は , リソースの入出力端子として使用した場合 , 汎用入出力ポートとしては使用できませ ん。ポート 4 の端子一覧を表 9.7-1 に示します。 表 9.7-1 ポート 4 の端子 入出力形式 ポート ポート 4 端子 ポート機能 リソース機能 P40/SIN0 P40 SIN0 UART0 データ入力 P41/SOT0 P41 SOT0 UART0 データ出力 P42/SCK0 P42 SCK0 UART0 シリアルクロック I/O P43/SNI0* P43 SNI0* マルチパルスジェネレー タ入力 0 P44/SNI1* P44 SNI1* マルチパルスジェネレー タ入力 1 P45/SNI2* P45 SNI2* マルチパルスジェネレー タ入力 P46/PPG2 P46 PPG2 PPG2 出力 汎用入出力 入力 出力 CMOS (ヒス テリ シス) CMOS 回路の 種類 F *:MB90467 では , リソースが搭載されていないため , 削除となります。 回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。 187 第 9 章 I/O ポート ■ ポート 4 の端子のブロックダイヤグラム ポート 4 の端子のブロックダイヤグラムを図 9.7-1 に示します。 図 9.7-1 ポート 4 の端子のブロックダイヤグラム リソース出力 リソース入力 リソース出力許可信号 ポートデータレジスタ(PDR) 内部データバス PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) リソース出力許可ビットを " 許可 " にすると , ポートは , DDR4 レジスタの値にかかわ らずリソースの出力端子として機能します。 ■ ポート 4 のレジスタ ポート 4 のレジスタには , PDR4 と DDR4 があります。各レジスタを構成しているビッ トは , ポート 4 の端子に 1 対 1 で対応しています。ポート 4 の端子と , これらの端子に 対応しているレジスタビットを表 9.7-2 に示します。 表 9.7-2 ポート 4 の端子と対応レジスタビット ポート レジスタビットと対応ポート端子 PDR4, DDR4 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 − P46 P45 P44 P43 P42 P41 P40 ポート 4 188 第 9 章 I/O ポート 9.7.1 ポート 4 のレジスタ(PDR4, DDR4) ポート 4 のレジスタについて説明します。 ■ ポート 4 のレジスタの機能 ● ポート 4 データレジスタ(PDR4) PDR4 レジスタは , ポート 4 の各端子の状態を示します。 ● ポート 4 方向レジスタ(DDR4) DDR4 レジスタは , ポート 4 の各端子(ビット)のデータ入出力方向を指定します。 DDR4 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端 子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する ポート(端子)は入力ポートとして設定されます。 • リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ トが " 許可 " に設定されていると , ポートは DDR4 レジスタの値とは無関係にリソー スの出力端子として機能します。 • リソースの入力と兼用している端子をリソースの入力として使用する場合は , 各入 力端子に対応する DDR4 レジスタビットに "0" を設定してポートを入力モードにし てください。 ポート 4 のレジスタの機能を表 9.7-3 に示します。 表 9.7-3 ポート 4 のレジスタの機能 レジスタ データ 読出し時 書込み時 端子は low レベル DDR5 ビットに "0" を設定す ると , 端子はハイインピーダ ンス状態になります。DDR5 ビットに "1" を設定すると , 端 子は出力ポートとして機能し , low レベルが設定されます 1 端子は high レベル DDR5 ビットに "0" を設定す ると , 端子はハイインピーダ ンス状態になります。DDR5 ビットに "1" を設定すると , 端 子は出力ポートとして機能し , high レベルが設定されます 0 方向ラッチ は "0" 出力バッファが " オフ " にな り , ポートが入力モードにな ります 方向ラッチ は "1" 出力バッファが " オン " にな り , ポートが出力モードにな ります 0 ポート 4 データ レジスタ (PDR4) ポート 4 方向 レジスタ (DDR4) 1 リード / ライト アドレス 初期値 R/W 000004H -XXXXXXXB R/W 000014H -0000000B R/W : リード / ライト X - : 不定 : 未定義 189 第 9 章 I/O ポート 9.7.2 ポート 4 の動作 ポート 4 の動作について説明します。 ■ ポート 4 の動作 ● 出力モード時のポート動作 • DDR4 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー トの端子は出力モードになります。 • 出力モード時において PDR4 レジスタに書き込まれたデータは , PDR の出力ラッチ が保持し , 端子へ出力されます。 • PDR4 レジスタを読み出すと PDR の出力ラッチ状態を読み出すことができます。 リードモディファイライト命令を PDR4 レジスタに対して使用すると , このレジスタの ターゲットビットには書き込んだ値が設定されます。DDR4 レジスタによって " 出力 " として指定されているビットは影響を受けませんが , " 入力 " として指定されている ビットの場合は , 端子からの入力値は出力ラッチへ書き込まれ , そのまま出力されま す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー タをPDR4レジスタへ書き込み, 次にDDR4レジスタを出力モードに設定してください。 ● 入力モード時のポート動作 • DDR4 レジスタのいずれかのビットに "0" を設定すると , そのビットに対応する端子 は入力モードになります。 • 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に なります。 • 入力モード時において PDR4 レジスタに書き込まれたデータは , PDR の出力ラッチ が保持しますが , 端子へは出力されません。 • PDR4 レジスタを読み出すと端子のレベル("0" または "1")が読み出されます。 ● リソース出力としてのポート動作 • リソース出力許可ビットを " 許可 " にすると , ポートはリソース出力として使用で きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が 優先されます。すなわち , たとえ DDR4 レジスタのビットが "0" であっても , リソー ス出力が " 許可 " になっている場合は , そのビットに対応する端子はリソース出力 として使用されます。しかしリソース出力が " 許可 " であっても端子の値を読み出 すことはできるので , リソースの出力値を読み出すことができます。 ● リソース入力としてのポート動作 • ポートをリソース入力として使用する場合 , 端子の値がリソースの入力の値となり ますので , DDR4 レジスタに "0" を設定することでポートを入力モードにしてくださ い。 190 第 9 章 I/O ポート ● リセット後のポート動作 • リセットにより , DDR4 レジスタは "0" に初期化されます。その結果 , 出力バッファ が " オフ " になり(入出力モードが " 入力 " に変化する), 端子がハイインピーダン ス状態になります。 • PDR4 レジスタは , リセットでも初期化されません。したがって , ポートを出力モー ドで使用する場合は , 出力データを PDR4 レジスタに設定した後 , 出力モードに DDR4 レジスタを設定しなければなりません。 ● ストップモードまたはタイムベースタイマモード時のポート動作 ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力 のモード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合 は , 端子はハイインピーダンス状態になります。これは , 出力バッファが DDR4 レジス タの値とは無関係に " オフ " にさせられるからです。ポート 4 の端子状態を表 9.7-4 に 示します。 表 9.7-4 ポート 4 の端子状態 端子 通常動作 スリープ モード ストップモードまたはタ イムベースタイマモード (SPL=0) ストップモードまたはタ イムベースタイマモード (SPL=1) P40/SIN0 ∼ P46/PPG2 汎用入出 力ポート 汎用入出 力ポート 汎用入出力ポート 入力は遮断され , 出力は Hi-Z 状態になります SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット Hi-Z: ハイインピーダンス 191 第 9 章 I/O ポート 9.8 ポート 5 ポート 5 は汎用入出力ポートですが , A/D コンバータアナログ入力と兼用していま す。ポートの端子は , ビット単位でポート機能とアナログ入力機能を切り換えるこ とができます。ここでは , 汎用入出力ポート機能を中心に説明します。また , ポート 5 の構成 , 端子一覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて 説明します。 ■ ポート 5 の構成 ポート 5 は , 以下から構成されています。 • 汎用入出力ポート , アナログ入力端子(P50/AN0 ∼ P57/AN7) • ポート 5 データレジスタ(PDR5) • ポート 5 方向レジスタ(DDR5) • アナログ入力許可レジスタ(ADER) ■ ポート 5 の端子 ポート 5 は , アナログの入力端子としても使用します。したがってこれらの端子は , ア ナログ入力として使用した場合 , 汎用入出力ポートとしては使用できません。同様に , ポート 5 は , 汎用入出力ポートとして使用した場合 , アナログ入力としては使用できま せん。ポート 5 の端子一覧を表 9.8-1 に示します。 表 9.8-1 ポート 5 の端子 入出力形式 ポート 端子 ポート機能 リソース機能 P50/AN0 P50 AN0 アナログ入力 0 P51/AN1 P51 AN1 アナログ入力 1 P52/AN2 P52 AN2 アナログ入力 2 P53/AN3 P53 AN3 アナログ入力 3 ポート 5 汎用入出力 P54/AN4 P54 AN4 アナログ入力 4 P55/AN5 P55 AN5 アナログ入力 5 P56/AN6 P56 AN6 アナログ入力 6 P57/AN7 P57 AN7 アナログ入力 7 入力 出力 アナログ / CMOS CMOS 回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。 192 回路の 種類 I 第 9 章 I/O ポート ■ ポート 5 の端子のブロックダイヤグラム ポート 5 の端子のブロックダイヤグラムを図 9.8-1 に示します。 図 9.8-1 ポート 5 の端子のブロックダイヤグラム ADER アナログ入力 ポートデータレジスタ(PDR) 内部データバス PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) 入力ポートとして使用される端子の場合は , その端子に対応する DDR5 レジスタの各 ビットに "0" が設定され , またその端子に対応する ADER レジスタの各ビットにも "0" が設定されます。 アナログ入力端子として使用される端子の場合は , その端子に対応する DDR5 レジス タビットに "0" が設定され , その端子に対応する ADER レジスタビットには "1" が設定 されます。この場合 , PDR5 レジスタから読み出される値は "0" です。 ■ ポート 5 のレジスタ ポート 5 のレジスタには , PDR5, DDR5, ADER があります。各レジスタを構成してい るビットは , ポート 5 の端子に 1 対 1 で対応しています。ポート 5 の端子と , これらの 端子に対応しているレジスタビットを表 9.8-2 に示します。 表 9.8-2 ポート 5 の端子と対応レジスタビット ポート レジスタビットと対応ポート端子 PDR5, DDR5, ADER bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 P57 P56 P55 P54 P53 P52 P51 P50 ポート 5 193 第 9 章 I/O ポート 9.8.1 ポート 5 のレジスタ(PDR5, DDR5, ADER) ポート 5 のレジスタについて説明します。 ■ ポート 5 のレジスタの機能 ● ポート 5 データレジスタ(PDR5) PDR5 レジスタは , ポート 5 の各端子の状態を示します。 ● ポート 5 方向レジスタ(DDR5) DDR5 レジスタは , ポート 5 の各端子(ビット)のデータ入出力方向を指定します。 DDR5 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端 子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する ポート(端子)は入力ポートとして設定されます。 ● アナログ入力許可レジスタ(ADER) ADER レジスタの各ビットは , 対応するポート 5 端子を " 汎用入出力ポート " として使 用するか " アナログ入力端子 " として使用するかを指定します。ADER ビットに "1" を 設定すると , 対応する端子をアナログ入力として使用します。ADER ビットに "0" を設 定すると , 対応する端子を汎用入出力として使用します。 • ポートを入力モードに設定して中間レベルの信号が入力されると , 入力リーク電流 が発生します。したがって , 端子をアナログ入力として使用する場合は , 対応する ADER ビットには必ず "1" を設定してください。 < 参考 > リセットにより , DDR5 レジスタは "0" にリセットされ , ADER レジスタには "1" (端子をアナログ入力として使用する)が設定されます。 ポート 5 のレジスタの機能を表 9.8-3 に示します。 194 第 9 章 I/O ポート 表 9.8-3 ポート 5 のレジスタの機能 レジスタ ポート 5 データ レジスタ (PDR5) ポート 5 方向 レジスタ (DDR5) アナログ 入力許可 レジスタ (ADER) データ 読出し時 0 端子は low レベル 1 端子は high レベル 0 方向ラッチ は "0" 出力バッファが " オフ " にな り , ポートが入力モードにな ります 方向ラッチ は "1" 出力バッファが " オン " にな り , ポートが出力モードにな ります 1 書込み時 0 ポート入出力モード 1 アナログ入力モード リード / ライト アドレス 初期値 R/W 000005H XXXXXXXXB R/W 000015H 00000000B R/W 000017H 11111111B R/W : リード / ライト X : 不定 195 第 9 章 I/O ポート 9.8.2 ポート 5 の動作 ポート 5 の動作について説明します。 ■ ポート 5 の動作 ● 出力モード時のポート動作 • DDR5 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー トの端子は出力モードになります。 • 出力モード時において PDR5 レジスタに書き込まれたデータは , PDR の出力ラッチ が保持し , 端子へ出力されます。 • PDR5 レジスタを読み出すと PDR の出力ラッチ状態をが読み出すことができます。 リードモディファイライト命令を PDR5 レジスタに対して使用すると , このレジスタの ターゲットビットには書き込んだ値が設定されます。DDR5 レジスタにより " 出力 " と して指定されているビットは影響を受けませんが , " 入力 " として指定されているビッ トの場合は , 端子からの入力値が出力ラッチへ書き込まれ , そのまま出力されます。し たがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力データを PDR5 レジスタへ書き込み , 次に DDR5 レジスタを出力モードに設定してください。 ● 入力モード時のポート動作 • DDR5 レジスタと ADER レジスタのいずれかのビットに "0" を設定すると , 対応す る端子が入力モードになります。 • 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に なります。 • 入力モード時において PDR5 レジスタへ書き込まれたデータは , PDR の出力ラッチ が保持しますが , 端子へは出力されません。 • PDR5 レジスタを読み出すと端子のレベル("0" または "1")が読み出されます。 ● アナログ入力としてのポート動作 • ポート端子を " アナログ入力 " として使用する場合は , その端子に対応する ADER ビットに "1" を設定してください。すると , 端子は汎用ポート端子としては動作せ ず , アナログ入力端子として動作します。この状態で PDR5 レジスタを読み出すと "0" が読み出されます。 ● リセット後のポート動作 • リセットにより , DDR5 レジスタは "0" に , ADER レジスタは "1" に初期化され , ポー トがアナログ入力モードになります。ポートを汎用入出力ポートとして使用する場 合は, 前もってADERレジスタに"0"設定し, ポートを入出力モードにしてください。 196 第 9 章 I/O ポート ● ストップモードまたはタイムベースタイマモード時のポート動作 ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力 モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は , 端子はハイインピーダンス状態になります。これは , 出力バッファが " オフ " にさせら れるからです。ポート 5 の端子状態を表 9.8-4 に示します。 表 9.8-4 ポート 5 の端子状態 端子 通常動作 スリープ モード ストップモードまたはタ イムベースタイマモード (SPL=0) ストップモードまたはタ イムベースタイマモード (SPL=1) P50/AN0 ∼ P57/AN7 汎用入出 力ポート 汎用入出 力ポート 汎用入出力ポート 入力は遮断され , 出力は Hi-Z 状態になります SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット Hi-Z: ハイインピーダンス 197 第 9 章 I/O ポート 9.9 ポート 6 ポート 6 は汎用入出力ポートですが , リソース入出力と兼用しています。ポートの 端子は , ビット単位でポート機能とリソース機能を切り換えることができます。こ こでは , 汎用入出力ポート機能を中心に説明します。また , ポート 6 の構成 , 端子一 覧 , 端子のブロックダイヤグラムおよび対応するレジスタについて説明します。 ■ ポート 6 の構成 ポート 6 は , 以下から構成されています。 • 汎用入出力ポート , UART 入出力 , 外部割込み入力(P60/SIN1 ∼ P63/INT7) • ポート 6 データレジスタ(PDR6) • ポート 6 方向レジスタ(DDR6) ■ ポート 6 の端子 ポート 6 は , リソースの入出力端子としても使用します。したがってこれらの端子は , リソースの入出力端子として使用した場合 , 汎用入出力ポートとしては使用できませ ん。ポート 6 の端子一覧を表 9.9-1 に示します。 表 9.9-1 ポート 6 の端子 入出力形式 ポート 端子 ポート機能 リソース機能 入力 P60/SIN1 P60 SIN1 UART1 データ入力 P61/SOT1 P61 SOT1 UART1 データ出力 P62/SCK1 P62 SCK1 P63/INT7 P63 INT7 ポート 6 汎用 I/O CMOS (ヒス UART1 シリアルクロック テリ シス) 入出力 出力 CMOS 外部割込み入力 回路の種類についての詳細は , 「1.7 I/O 回路の種類」をご参照ください。 198 回路の 種類 F 第 9 章 I/O ポート ■ ポート 6 の端子のブロックダイヤグラム ポート 6 の端子のブロックダイヤグラムを図 9.9-1 に示します。 図 9.9-1 ポート 6 の端子のブロックダイヤグラム リソース入力 リソース出力 リソース出力許可信号 ポートデータレジスタ(PDR) 内部データバス PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ 制御信号(SPL=1) 外部割込み許可 ■ ポート 6 のレジスタ ポート 6 のレジスタには , PDR6 と DDR6 があります。各レジスタを構成しているビッ トは , ポート 6 の端子に 1 対 1 で対応しています。ポート 6 の端子と , これらの端子に 対応しているレジスタビットを表 9.9-2 に示します。 表 9.9-2 ポート 6 の端子と対応レジスタビット ポート レジスタビットと対応ポート端子 PDR6, DDR6 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 対応する端子 − − − − P63 P62 P61 P60 ポート 6 199 第 9 章 I/O ポート 9.9.1 ポート 6 のレジスタ(PDR6, DDR6) ポート 6 のレジスタについて説明します。 ■ ポート 6 のレジスタの機能 ● ポート 6 データレジスタ(PDR6) PDR6 レジスタは , ポート 6 の各端子の状態を示します。 ● ポート 6 方向レジスタ(DDR6) DDR6 レジスタは , ポート 6 の各端子(ビット)のデータ入出力方向を指定します。 DDR6 レジスタのいずれかのビットが "1" の場合は , そのビットに対応するポート(端 子)は出力ポートとして設定されます。いずれかのビットが "0" の場合は , 対応する ポート(端子)は入力ポートとして設定されます。 • リソースの出力と兼用している端子は , その端子に対応するリソース出力許可ビッ トが " 許可 " 設定されていると , ポートは DDR6 レジスタの値とは無関係にリソー スの出力端子として機能します。 • リソースの入力と兼用している端子をリソースの入力として使用する場合は , 各入 力端子に対応する DDR6 レジスタビットに "0" を設定してポートを入力モードにし ます。 ポート 6 のレジスタの機能を表 9.9-3 に示します。 表 9.9-3 ポート 6 のレジスタの機能 レジスタ データ 読出し時 書込み時 0 端子は low レベル 出力ラッチへ "0" がロードさ れます。端子が出力ポートと して機能すると , 端子には low レベルが設定されます 1 端子は high レベル 出力ラッチへ "1" がロードさ れます。端子が出力ポートと して機能すると , 端子には high レベルが設定されます 0 方向ラッチ は "0" 出力バッファが " オフ " にな り , ポートが入力モードにな ります 方向ラッチ は "1" 出力バッファが " オン " にな り , ポートが出力モードにな ります ポート 6 データ レジスタ (PDR6) ポート 6 方向 レジスタ (DDR6) 1 R/W : リード / ライト X - 200 : 不定 : 未定義 リード / ライト アドレス 初期値 R/W 000006H ----XXXXB R/W 000016H ----0000B 第 9 章 I/O ポート 9.9.2 ポート 6 の動作 ポート 6 の動作について説明します。 ■ ポート 6 の動作 ● 出力モード時のポート動作 • DDR6 レジスタのいずれかのビットに "1" を設定すると , そのビットに対応するポー トの端子は出力モードになります。 • 出力モード時において PDR6 レジスタへ書き込まれたデータは , PDR の出力ラッチ が保持し , 端子へ出力されます。 • PDR6 レジスタを読み出すと PDR の出力ラッチの状態を読み出すことができます。 リードモディファイライト命令を PDR6 レジスタに対して使用すると , このレジスタの ターゲットビットには書き込んだ値が設定されます。DDR6 レジスタによって " 出力 " として指定されているビットは影響を受けませんが , " 入力 " として指定されている ビットの場合は , 端子からの入力値が出力ラッチへ書き込まれ , そのまま出力されま す。したがって , ビットのモードを " 入力 " から " 出力 " に切り換える前に , 出力デー タをPDR6レジスタへ書き込み, 次にDDR6レジスタを出力モードに設定してください。 ● 入力モード時のポート動作 • DDR6 レジスタのビットに "0" を設定すると , そのビットに対応する端子は入力モー ドになります。 • 入力モード時は , 出力バッファは " オフ " になり , 端子はハイインピーダンス状態に なります。 • 入力モード時において PDR6 レジスタへ書き込まれたデータは , PDR の出力ラッチ が保持しますが , 端子へは出力されません。 • PDR6 レジスタは , 読み出すと端子のレベル("0" または "1")が読み出されます。 ● リソース出力としてのポート動作 • リソース出力許可ビットを " 許可 " にすると , ポートをリソース出力として使用で きます。" 入力 " と " 出力 " の切換えを指定する場合 , リソース許可ビットの状態が 優先されます。すなわち , たとえ DDR6 レジスタのいずれかのビットが "0" であっ ても , リソース出力が " 許可 " になっている場合は , そのビットに対応する端子はリ ソース出力として使用します。しかしリソース出力が " 許可 " であっても端子の値 を読み出すことはできるので , リソースの出力値を読み出すことができます。 ● リソース入力としてのポート動作 • ポートをリソース入力として使用する場合 , 端子の値がリソースの入力の値となり ますので , DDR6 レジスタに "0" を設定しポートを入力モードにしてください。 201 第 9 章 I/O ポート ● リセット後のポート動作 • リセットにより , DDR6 レジスタは "0" に初期化されます。その結果 , 出力バッファ が " オフ " になり(入出力モードが " 入力 " に変化する), 端子がハイインピーダン ス状態になります。 • PDR6 レジスタは , リセットでも初期化されません。ポートを出力モード時に使用す る場合は , 出力データを PDR6 レジスタへ設定した後 , 出力モードに DDR6 レジス タを設定しなければなりません。 ● ストップモードまたはタイムベースタイマモード時のポート動作 ストップモードまたはタイムベースタイマモードに切り換えられたときに低消費電力 モード制御レジスタ(LPMCR)の端子状態指定ビット(SPL)がすでに "1" の場合は , 端子はハイインピーダンス状態になります。これは , 出力バッファが DDR6 レジスタ の値とは無関係に " オフ " にさせられるからです。ポート 6 の端子状態を表 9.9-4 に示 します。 表 9.9-4 ポート 6 の端子状態 端子 通常動作 スリープ モード ストップモードまたはタ イムベースタイマモード (SPL=0) ストップモードまたはタ イムベースタイマモード (SPL=1) P60/SIN1 ∼ P63/INT7 汎用入出 力ポート 汎用入出 力ポート 汎用入出力ポート 入力は遮断され , 出力は Hi-Z 状態になります SPL: 低消費電力モード制御レジスタ(LPMCR)の端子状態指定ビット Hi-Z: ハイインピーダンス 202 第 9 章 I/O ポート 9.10 I/O ポートのプログラム例 I/O ポート端子を使用したプログラム例を示します。 ■ I/O ポートのプログラム例 ● 処理仕様 • ポート 0 とポート 1 を使用してセブンセグメント(小数点を含めるとエイトセグメ ント)LED のすべての線分を " オン " にします。 • 端子 P00 はセブンセグメント LED の陽極共通端子に対応しており , 端子 P10 ∼ P17 は各セグメント端子に対応しています。 MB90460/465 シリーズのポートにエイトセグメント LED を接続する例を図 9.10-1 に示 します。 図 9.10-1 エイトセグメント LED の接続例 MB90460 P00 P17 P16 P15 P14 P13 P12 P11 P10 ● コーディング例 PDR0 EQU 000000H PDR1 EQU 000001H DDR0 EQU 000010H DDR1 EQU 000011H ;---------- メインプログラム ------------------------------------------CODE CSEG START: ; 初期値 MOV I:PDR0,#00000000B ;P00 に low レベル(#XXXXXXX0B)を設定 MOV I:DDR0,#11111111B ; ポート 0 のすべてのビットを出力モードにする MOV I:PDR1,#11111111B ; ポート 1 のすべてのビットに "1" を設定する MOV I:DDR1,#11111111B ; ポート 1 のすべてのビットを出力モードにする CODE ENDS ;------------------------------------------------------------------END START 203 第 9 章 I/O ポート 204 第 10 章 タイムベースタイマ タイムベースタイマの機能と動作について説明し ます。 10.1 タイムベースタイマの概要 10.2 タイムベースタイマの構成 10.3 タイムベースタイマ制御レジスタ (TBTC) 10.4 タイムベースタイマ割込み 10.5 タイムベースタイマの動作 10.6 タイムベースタイマ使用上の注意 10.7 タイムベースタイマのプログラム例 205 第 10 章 タイムベースタイマ 10.1 タイムベースタイマの概要 タイムベースタイマは , メインクロック(原発振を 2 分周したもの)に同期してカ ウントアップする 18 ビットフリーランカウンタです。 タイムベースタイマは , 4 つのインターバル時間を選択できるインターバルタイマ機 能を備えています。タイムベースタイマはまた , 発振安定待ち時間用のタイマおよ びウォッチドッグタイマにクロックへ供給するための機能も備えています。 ■ インターバルタイマ機能 インターバルタイマ機能は , 割込み要求をある一定のインターバルで繰返し生成しま す。 • 割込み要求は , タイムベースカウンタのインターバルタイマビットのオーバフロー が発生すると生成されます。 • インターバル時間は , 4 種類の中から選択できます。タイムベースタイマのインター バル時間を表 10.1-1 に示します。 表 10.1-1 タイムベースタイマのインターバル時間 メインクロック周期 インターバル時間 212/HCLK(約 1.0ms) 214/HCLK(約 4.1ms) 2/HCLK (0.5μs) 216/HCLK(約 16.4ms) 219/HCLK(約 131.1ms) HCLK: 発振クロック 括弧内の数値は , 発振クロック周波数 4MHz で動作させた場合のインターバル時間です。 206 第 10 章 タイムベースタイマ ■ クロック供給機能 クロック供給機能は , 発振安定待ち時間用のタイマおよび一部のリソースへクロック を供給します。 タイムベースタイマから各リソースへ供給されるクロック周期を表 10.1-2 に示しま す。 表 10.1-2 タイムベースタイマから供給されるクロック周期 クロック供給先 クロック周期 213/HCLK(約 2.0ms) 発振安定待ち時間タイマ 備 考 セラミック振動子の発振安定待ち時間 215/HCLK(約 8.2ms) 217/HCLK(約 32.8ms) 水晶振動子の発振安定待ち時間 212/HCLK(約 1.0ms) 214/HCLK(約 4.1ms) ウォッチドッグタイマ 216/HCLK(約 16.4ms) ウォッチドッグタイマの カウントアップクロック 219/HCLK(約 131.1ms) HCLK: 発振クロック 括弧内の数値は , 発振クロック周波数 4MHZ で動作させた場合のインターバル時間です。 < 参考 > 発振開始時の発振周期は不安定なので , 上記に示されている発振安定待ち時間は目 安として使用してください。 207 第 10 章 タイムベースタイマ 10.2 タイムベースタイマの構成 タイムベースタイマは , 以下の 4 つのブロックから構成されています。 • タイムベースタイマカウンタ • カウンタクリア回路 • インターバルタイマセレクタ • タイムベースタイマ制御レジスタ(TBTC) ■ タイムベースタイマのブロックダイヤグラム タイムベースタイマのブロックダイヤグラムを図 10.2-1 に示します。 図 10.2-1 タイムベースタイマのブロックダイヤグラム ウォッチドッグ タイマへ タイムベース タイマカウンタ メイン クロック ×21 ×22 ×23 ... ... ×28 ×29 ×210 ×211 ×212 ×213×214 ×215 ×216 ×217×218 OF OF OF OF OF カウンタクリア パワーオンリセット ストップモード開始 CKSCR:MCS=1→0(*1) クロック制御部 の発振設定時間 セレクタへ カウンタ クリア回路 インターバル タイマセレクタ TBOF設定 TBOFクリア タイムベースタイマ 割込み信号#36(24H) (*2) — — — OF: オーバフロー *1 マシンクロックをメインクロックから PLL クロックへ切換え *2 割込み番号 TBIE TBOF TBR TBC1 TBC0 タイムベースタイマ 割込み制御レジスタ (TBTC) ● タイムベースタイマカウンタ この 18 ビットアップカウンタは , メインクロックをカウントクロックとして使用しま す。 ● カウンタクリア回路 カウンタをクリアするために使用されます。カウンタは , パワーオンリセット時または ストップモードへの遷移時(LPMCR:STP=1)に TBTC レジスタの TBR:bit10 に "0" を 書き込むことによってクリアされます。 ● インターバルタイマセレクタ タイムベースタイマカウンタの 4 種類の出力から選択します。選択されたビットのオー バフローは , 割込み要因となります。 ● タイムベースタイマ制御レジスタ(TBTC) インターバル時間の選択 , カウンタのクリア , 割込み要求の制御および状態の確認を行 います。 208 第 10 章 タイムベースタイマ タイムベースタイマ制御レジスタ (TBTC) 10.3 タイムベースタイマ制御レジスタ(TBTC)は , インターバル時間の設定 , カウンタ のクリア , 割込み要求の制御および状態の確認を行います。 ■ タイムベースタイマ制御レジスタ (TBTC) 図 10.3-1 タイムベースタイマ制御レジスタ(TBTC) bit 15 14 13 予約 - - R/W 12 11 TBIE TBOF R/W R/W 10 9 8 TBR TBC1 TBC0 W R/W R/W TBC1 TBC0 0 0 7 ・・・・・ 0 初期値 1--00100B (WDTC) インターバル時間設定ビット 212/HCLK (約1.0ms) 0 1 1 0 214/HCLK (約 4.1ms) 216/HCLK (約16.4ms) 1 1 219/HCLK (約131.1ms) 括弧内の数値は,発振クロック周波数4MHzで動作させた場合 のインターバルです。 TBR 0 タイムベースタイマ初期化ビット 読出し時 書込み時 タイムベースタイマカウンタ およびTBOFビットのクリア - 1 読出し値は常に"1"です。 変化なし。 ほかのビットへの影響なし。 TBOF 割込み要求フラグビット 読出し時 書込み時 0 割込要求あり このビットがクリアされます。 1 割込要求なし 変化なし。 ほかのビットへの影響なし。 割込み要求許可ビット TBIE 0 割込み要求禁止。 1 割込み要求許可。 予約 R/W : W : - : X : : HCLK : リード/ライト ライトオンリ 未使用 未定義 初期値 発振クロック 予約ビット このビットには必ず"1"を書込んでください。 209 第 10 章 タイムベースタイマ 表 10.3-1 タイムベースタイマ制御レジスタ(TBTC)の各ビットの機能説明 ビット名 機 能 bit15 予約 : 予約ビット ( 注意事項 ) このビットには必ず "1" を書き込んでください。 bit14, bit13 未使用 • • 読出し値は不定です。 書込みを行っても動作への影響はありません。 bit12 TBIE: 割込み要求許可 ビット • • 割込み要求を許可または禁止します。 このビットが "1" のときに割込み要求フラグビット(TBOF)が "1" にな ると , 割込み要求が発生します。 TBOF: 割込み要求フラグ ビット このビットは , タイムベースタイマカウンタの指定するビットよりオー バフローが発生すると , "1" が設定されます。 • このビットが "1" になったときに割込み要求許可(TBIE)が "1" の場合 , 割込要求が発生します。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは変化せず , 動作へ影響 しません。 ( 注意事項 ) 1)このビットをクリアするには , TBIE ビットまたはプロセッサステー タス(PS)ILM ビットを設定することでタイムベースタイマ割込み を禁止してください。 2)このビットは , "0" の書込み , ストップモードへの遷移 , TBR ビット によるタイムベースタイマのクリアまたはリセットよりクリアされ ます。 bit10 TBR: タイムベースタイ マ初期化ビット タイムベースタイマカウンタをクリアします。 このビットに "0" を設定した場合 : カウンタがクリアされ , TBOF ビッ トがクリアされます。 • このビットに "1" を設定した場合 : このビットは変化せず , 動作へ影響 しません。 < 参考 > 読出し値は常に "1" です。 bit9, bit8 TBC1, TBC0: インターバル時間 選択ビット • BIT11 • • 210 • • • インターバル時間を選択します。 タイムベースタイマカウンタのインターバルタイマビットが設定されま す。 4 つの異なるインターバル時間を選択できます。 第 10 章 タイムベースタイマ 10.4 タイムベースタイマ割込み タイムベースタイマは , タイムベースタイマカウンタの指定するビットよりオーバ フローが発生すると , 割込み要求が生成されます。 ■ タイムベースタイマ割込み 割込み要求フラグビット(TBTC レジスタの TBOF:bit11)に "1" が設定されるのは , タ イムベースタイマカウンタが内部カウントクロックでカウントアップし , 選択された インターバルタイマビットのオーバフローが発生した場合です。割込み要求フラグ ビットに "1" が設定されたとき , 割込み要求許可ビットが " 許可 " になっている(TBTC レジスタの TBIE:12=1)場合は , 割込み要求(#36)が生成されます。割込み処理ルー チンで TBOF ビットに "0" を書き込むと , 割込み要求はクリアされます。指定された ビットのオーバフローが発生すると , TBIE ビット値とは無関係に TBOF ビットが "1" に設定されます。 割込み要求フラグビット(TBTC レジスタの TBOF:bit11)のクリアは , TBIE ビットま たはプロセッサステータス(PS)ILM ビットの設定によりタイムベースタイマ割込み を禁止している間に行ってください。 < 参考 > TBOF ビットが "1" であり , TBIE ビットの状態が禁止から許可に遷移する("0" → "1")と , 割込み要求が直ちに発生します。 ■ タイムベースタイマ割込みと EI2OS タイムベースタイマ割込みと EI2OS を表 10.4-1 に示します。 表 10.4-1 タイムベースタイマ割込みと EI2OS 割込みレベル設定レジスタ ベクタテーブルのアドレス EI2OS 割込み番号 #36(24H) レジスタ名 アドレス 下位 上位 バンク ICR12 0000BCH FFFF6CH FFFF6DH FFFF6EH △ △ : ICR を共用する割込み要因を使用していない場合に使用できます。 ICR12 は , タイムベースタイマ割込みとインプットキャプチャチャネル 2/3 割込みに共 用されます。割込みは 2 つのアプリケーションに対して使用できますが , これらの割込 みレベルは同一です。 211 第 10 章 タイムベースタイマ 10.5 タイムベースタイマの動作 タイムベースタイマは , インターバルタイマ機能とクロック供給機能(各リソース へクロックを供給する)を備えています。 ■ インターバルタイマ機能(タイムベースタイマ)の動作 インターバルタイマ機能は , 割込み要求を各インターバルで生成します。 すべてのタイマをインターバルタイマとして動作させるには , 図 10.5-1 のように設定 しなければなりません。 図 10.5-1 タイムベースタイマの設定 bit TBTC 15 14 13 RESV - - 1 12 11 TBIE TBOF ◎ ◎ 10 TBR 9 8 TBC1 TBC0 0 0 7 ・・・・ 0 WDTC ◎ ◎:使用 0 :"0"設定 1 :"1"設定 • タイムベースタイマカウンタは , クロックが発振されている限りメインクロック (発振クロックを 2 分周したもの)と同期してカウントアップを継続します。 • カウンタがクリアされる(TBR=0)と , カウンタは "0" からカウントアップを開始 します。インターバルタイマビットのオーバフローが発生すると , 割込み要求フラ グビット(TBOF)に "1" が設定されます。このとき割込み要求出力がすでに許可に なっている場合は , クリアされた時間を基準に選択された各インターバルで割込み を生成します。 • タイムベースタイマがクリアされるために , インターバル時間は設定された時間よ り長くなることがあります。 212 第 10 章 タイムベースタイマ ■ 発振安定待ち時間用タイマ機能 タイムベースタイマは , 発振クロックおよび PLL クロックの発振安定待ち時間用タイ マとしても使用されます。 発振安定待ち時間は , カウンタが "0"(カウントクリア)からカウントアップを開始し てから発振安定待ち時間ビットのオーバフローが発生するまでの時間をインターバル として設定されます。タイムベースタイマモードから PLL クロックモードに制御が戻 ると , タイムベースタイマカウンタはクリアされていないので , 発振安定待ち時間はカ ウントの途中から開始します。タイムベースタイマカウンタのクリアと , 発振安定待ち 時間を表 10.5-1 に示します。 表 10.5-1 タイムベースタイマカウンタのクリアおよび発振安定待ち時間 動作 カウンタ のクリア TBOF のクリア TBTC レジスタの TBR:bit10 への "0" 書込み 0 0 0 0 ストップモードの解除 0 0 発振クロックモードから PLL クロッ クモードへの遷移(MCS=1 → 0) 0 0 タイムベースタイマモードの解除 X X スリープモードの解除 X X パワーオンリセット 発振安定待ち時間 発振クロック発振安定待ち時間 ウォッチドッグリセット 発振クロック発振安定待ち時間 (メインクロックモードへの復帰時) PLL クロック発振安定待ち時間 PLL クロック発振安定待ち時間 (PLL クロックモードへの復帰時) O: 使用可能 X: 使用不可 ■ クロック供給機能 タイムベースタイマは , ウォッチドッグタイマへクロックを供給します。タイムベース カウンタのクリアは , ウォッチドッグタイマの動作に影響を与えます。 213 第 10 章 タイムベースタイマ ■ タイムベースタイマの動作 以下の動作を図 10.5-2 に示します。 • パワーオンリセットの発生 • インターバルタイマ機能動作時のスリープモードへの遷移 • ストップモードへ遷移した場合 • カウンタクリア要求の送出 ストップモードに入ると , タイムベースタイマがクリアされ , タイムベースタイマの動 作が停止します。ストップモードから復帰すると , タイムベースタイマが直ちに発振安 定待ち時間のカウントを開始します。 図 10.5-2 タイムベースタイマの動作 カウンタの値 3FFFFH ストップモードへの遷移 発生によるクリア 発振安定化遅延 オーバフロー 0000H インターバルサイクル (TBTC:TBC1,TBC0=11B) CPU動作開始 パワーオンリセット (オプション) カウンタのクリア (TBTC:TBR=0) 割込み処理ルーチンによる クリア TBOFビット スリープモード TBIEビット SLPビット (STBCレジスタ) STPビット (STBCレジスタ) ストップ インターバル割込みスリープの解除 外部割込みによるストップの解除 タイムベースタイマ制御レジスタのインターバル選択ビット (TBTC:TBC1,TC0)に"11B"が設定されているとき : 発振安定待ち時間を示します。 214 第 10 章 タイムベースタイマ 10.6 タイムベースタイマ使用上の注意 割込み要求のクリアおよびタイムベースタイマカウンタのクリアによる機能への影 響などの注意点を示します。 ■ タイムベースタイマ使用上の注意 ● 割込み要求のクリア タイムベースタイマ制御レジスタの TBOF ビットは , タイムベースタイマ割込みが TBIE ビットまたはプロセッサステータス(PS)割込みレベルマスクレジスタ(ILM) でマスクされている間にクリアしなければなりません。 ● タイムベースタイマのクリアによる影響 タイムベースタイマカウンタをクリアすると , 以下が影響を受けます。 • タイムベースタイマで使用中のインターバルタイマ機能 • 使用中のウォッチドッグタイマ ● 発振安定待ち時間用タイマとしてのタイムベースタイマの使用 メインストップモード時およびパワーオン時には , メインクロックの原発振は停止し ます。発振子の動作開始後 , タイムベースタイマから供給される動作クロックは , メイ ンクロックの発振安定待ち時間を設けるために使用されます。適切な発振安定待ち時 間を , メインクロック発振子(クロック生成部)に接続されている発振子のタイプに基 づいて選択しなければなりません。詳細については , 「5.5 発振安定待ち時間」をご参 照ください。 ● タイムベースタイマからクロックが供給されるリソースについての注意 メインクロックソース発振が停止しているモード時は , タイムベースタイマカウンタ がクリアされ , タイムベースタイマ動作が停止します。タイムベースタイマカウンタが クリアされると , タイムベースタイマから供給されるクロックはタイムベースタイマ の初期状態から供給されます。その結果 , "H" レベルが 1/2 サイクル短くなり , "L" レベ ルが 1/2 サイクル長くなります。ウォッチドッグタイマへのクロックもタイムベース タイマの初期状態から供給されますが , ウォッチドッグタイマは正常サイクルで動作 します(ウォッチドッグタイマカウンタのクリアは , タイムベースタイマカウンタのク リアと同時に行われるからです)。 215 第 10 章 タイムベースタイマ 10.7 タイムベースタイマのプログラム例 タイムベースタイマのプログラム例を示します。 ■ タイムベースタイマのプログラム例 ● 処理 割込みが 212/HCLK(HCLK: 発振クロック)のインターバルで繰返し生成されます。イ ンターバル時間は , 約 1.0ms(4MHZ で動作させた場合)です。 ● コーディング例 ICR12 EQU 0000BCH ; タイムベースタイマ割込み制御レジスタ TBTC EQU 0000A9H ; タイムベースタイマ制御レジスタ TBOF EQU TBTC:3 ; 割込み要求フラグビット ;--------- メインプログラム -------------------------------------------CODE CSEG START: ; : ; スタックポインタ(SP)はすでに初期化され ; ているものと仮定します AND CCR,#0BFH ; 割込みを禁止します MOV I:ICR12,#00H ; 割込みレベル 0(優先順位が最も高い) MOV I:TBTC,#10010000B; 上位 3 ビットを固定します ; 割込みを許可し , TBOF をクリアします ; カウンタをクリアします ; インターバル 212/HCLK を選択します MOV ILM,#07H ;PS の ILM をレベル 7 に設定します OR CCR,#40H ; 割込みを許可にします LOOP: MOV A,#00H ; 無限プール MOV A,#01H BRA LOOP ;--------- 割込みプログラム -------------------------------------------WARI: CLRB I:TBOF ; 割込み要求フラグをクリアします ; : ユーザ処理 ; : RETI ; 割込み処理から復帰します CODE ENDS ;--------- ベクタ設定 ------------------------------------------------VECT CSEG ABS=0FFH ORG 0FF6CH ; 割込み #36(24H)のベクタを設定します VECT 216 DSL ORG DSL DB ENDS END WARI 0FFDCH START 00H START ; リセットベクタを設定します ; 第 11 章 ウォッチドッグタイマ ウォッチドッグタイマの機能と動作について説明 します。 11.1 ウォッチドッグタイマの概要 11.2 ウォッチドッグタイマの構成 11.3 ウォッチドッグタイマ制御レジスタ(WDTC) 11.4 ウォッチドッグタイマの動作 11.5 ウォッチドッグタイマ使用上の注意 11.6 ウォッチドッグタイマのプログラム例 217 第 11 章 ウォッチドッグタイマ 11.1 ウォッチドッグタイマの概要 ウォッチドッグタイマは , タイムベースタイマから供給されるクロックをカウント クロックとして使用する 2 ビットカウンタです。ウォッチドッグタイマが起動され てからある一定時間内にウォッチドッグタイマがクリアされない場合は , CPU がリ セットされます。 ■ ウォッチドッグタイマ機能 ウォッチドッグタイマは , プログラムの暴走に対処するためのカウンタです。ウォッチ ドッグタイマは , 一度起動されると , ある一定時間ごとに定期的にクリアする必要があ ります。プログラムが無限ループに入ってしまい , ウォッチドッグタイマがある一定時 間経過後もクリアされない場合は , ウォッチドッグリセットが生成されます。 ウォッチドッグタイマのインターバル時間を表 11.1-1 に示します。ウォッチドッグタ イマがクリアされない場合は , 最小時間と最大時間の範囲内でウォッチドッグリセッ トが発生します。カウンタは , この表に示されている最小時間内でクリアしてくださ い。 表 11.1-1 ウォッチドッグタイマのインターバル時間 インターバル時間 最大 * 最小 * 発振クロックサイクル数 約 3.58ms 約 4.61ms 214 ± 211 サイクル 約 14.33ms 約 18.3ms 216 ± 213 サイクル 約 57.23ms 約 73.73ms 218 ± 215 サイクル 約 458.75ms 約 589.82ms 221 ± 218 サイクル *: 発振クロック周波数 4MHZ で動作させた場合のインターバル時間です。 ウォッチドッグタイマのインターバル時間は , カウントクロック(タイムベースタイマ から供給されるクロック)のサイクルの 3.5 倍∼ 4.5 倍です。 詳細については , 「11.4 ウォッチドッグタイマの動作」をご参照ください。 ウォッチドッグカウンタは , タイムベースタイマから供給される信号をカウントク ロックとして使用する 2 ビットカウンタです。したがって , タイムベースタイマがクリ アされるとウォッチドッグリセットのインターバル時間は設定された時間より長くな る場合があります。 < 参考 > 218 ウォッチドッグタイマは , 起動されるとパワーオンリセットまたはウォッチドッグ リセットで初期化され , その後 , 停止状態になります。ウォッチドッグタイマは , 外 部端子リセット , ソフトリセット , WTE ビット(ウォッチドッグタイマ制御レジス タ)への書込み , スリープモードへの遷移またはストップモードへの遷移によりク リアされます。ただし , ウォッチドッグタイマは , クリアされても停止状態にはな りません。 第 11 章 ウォッチドッグタイマ 11.2 ウォッチドッグタイマの構成 ウォッチドッグタイマは , 以下の 5 ブロックから構成されています。 • カウントクロックセレクタ • ウォッチドッグカウンタ(2 ビットカウンタ) • ウォッチドッグリセットジェネレータ • カウンタクリア制御回路 • ウォッチドッグタイマ制御レジスタ(WDTC) ■ ウォッチドッグタイマのブロックダイヤグラム ウォッチドッグタイマのブロックダイヤグラムを図 11.2-1 に示します。 図 11.2-1 ウォッチドッグタイマのブロックダイヤグラム ウォッチドッグタイマ制御レジスタ(WDTC) PONR - WRST ウォッチドッグタイマ スリープモード開始 ホールド状態開始 ストップモード開始 ERST SRST WT1 WT0 2 クリア クリア と起動 オーバ ウォッチドッグ フロー 2ビット リセット タイマ 発生回路 カウント クロック セレクタ タイマ クリア 制御回路 WTE 内部リセット 発生回路へ クリア 4 クリア (タイムベースタイマカウンタ) メインクロック ×21 ×22 ・・・ ×28 ×29 ×210 ×211 ×212 ×213 ×214 ×215 ×216 ×217 ×218 HCLK:発振クロック ● カウントクロックセレクタ この回路は , 4 つの異なるタイムベースタイマ出力からウォッチドッグタイマのカウン トクロックを選択するために使用されます。ウォッチドッグリセットのインターバル 時間は , 選択されたカウントクロックに基づいて決まります。 ● ウォッチドッグカウンタ(2 ビットカウンタ) この2ビットアップカウンタは, タイムベースタイマ出力をカウントクロックとして使 用します。 ● ウォッチドッグリセット発生回路 ウォッチドッグカウンタオーバフローでリセット信号を発生します。 ● カウンタクリア制御回路 ウォッチドッグカウンタのクリアとウォッチドッグカウンタの動作または停止を制御 します。 ● ウォッチドッグタイマ制御レジスタ(WDTC) ウォッチドッグタイマを起動またはクリアします。リセット発生要因を示します。 219 第 11 章 ウォッチドッグタイマ 11.3 ウォッチドッグタイマ制御レジスタ(WDTC) ウォッチドッグタイマ制御レジスタ(WDTC)は , ウォッチドッグタイマの起動と クリアおよびリセット要因の表示を行います。 ■ ウォッチドッグタイマ制御レジスタ(WDTC) ウォッチドッグタイマ制御レジスタ(WDTC)を図 11.3-1 に示します。また , ウォッ チドッグタイマ制御レジスタ(WDTC)の各ビットの機能説明を表 11.3-1 に示します。 図 11.3-1 ウォッチドッグタイマ制御レジスタ(WDTC) bit 7 6 PONR - R - 5 4 3 WRST ERST SRST R R R WT1 WT0 0 0 1 0 1 0 1 1 WTE 0 1 初期値 2 1 0 WTE WT1 WT0 W W W X-XXX111B インターバル時間選択ビット(HCLK:4MHzの場合) インターバル時間 発振クロックサイクル数 最大 最小 214±211サイクル 約 3.58ms 約 4.61ms 約 14.33ms 約 18.3ms 216±213サイクル 約 57.23ms 約 73.73ms 218±215サイクル 約458.75ms 約589.82ms 221±218サイクル ウォッチドッグタイマ制御ビット ・ウォッチドッグタイマを起動 (リセット後,1回目の設定の場合) ・ウォッチドッグタイマをクリア (リセット後,2回目以降の設定の場合) 動作に影響しません。 リセット要因フラグビット リセット要因 PONR WRST ERST SRST 1 X X X パワーオンリセット R W X - : : : : : * : HCLK : 220 リードオンリ ライトオンリ 不定 未定義ビット 初期値 前の状態を保持 発振クロック周波数 * 1 * * * * ウォッチドッグタイマリセット * 1 * 外部リセット(RST端子入力) * * 1 ソフトウェアリセット(LPMCR:RST) 第 11 章 ウォッチドッグタイマ ウォッチドッグタイマのインターバル時間は , カウントクロック(タイムベースタイマ 出力値)のサイクルの 3.5 倍∼ 4.5 倍です。 詳細については , 「11.4 ウォッチドッグタイマの動作」をご参照ください。 表 11.3-1 ウォッチドッグタイマ制御レジスタ(WDTC)の各ビットの機能説明 ビット名 機 能 • bit7 ∼ bit3 PONR, WRST, ERST, SRST: リセット要因フラ グビット bit2 WTE: ウォッチドッグタ イマ制御ビット bit1, bit0 WT1, WT0: インターバル時間 選択ビット • • リセット要因を示すための読出し専用ビットです。複数のリセット要因 が発生した場合は , 各リセット要因に対応するビットに "1" が設定され ます。 これらのビットは , ウォッチドッグタイマ制御レジスタ(WDTC)の読 出し後 , すべて "0" にクリアされます。 パワーオン時 , PONR ビット以外のビット値は不定となります。した がって , PONR ビットが "1" のとき , PONR ビット以外のビット値は無視 してください。 このビットに "0" を設定した場合 : ウォッチドッグタイマが起動される (リセット後の最初の書込み)かまたは 2 ビットカウンタがクリアされ ます(リセット後の 2 番目以降の書込み)。 • このビットに "1" を設定した場合 : 動作へ影響しません。 • • • • ウォッチドッグタイマのインターバル時間を選択します。 ウォッチドッグタイマが起動されたときのデータのみが有効です。 ウォッチドッグタイマが起動された後に書き込まれたデータは , 無視さ れます。 これらのビットは , 書込み専用ビットです。 221 第 11 章 ウォッチドッグタイマ 11.4 ウォッチドッグタイマの動作 ウォッチドッグタイマは , ウォッチドッグカウンタのオーバフローによりウォッチ ドッグリセットを生成します。 ■ ウォッチドッグタイマの動作 ウォッチドッグタイマを動作させるには , 図 11.4-1 のような設定が必要です。 図 11.4-1 ウォッチドッグタイマの設定 bit WDTC 15 8 TBTC 7 6 5 4 3 2 1 0 PONR - WRST ERST SRST WTE WT1 WT0 0 ◎ ◎ ◎:使用ビット 0 :"0"を設定 ● ウォッチドッグタイマの起動 • ウォッチドッグタイマは , リセット後の最初の "0" 書込みをウォッチドッグタイマ 制御レジスタ(WDTC)の WTE ビットに行うと起動されます。インターバル時間 は , ウォッチドッグタイマ制御レジスタの WT1 ビットと WT0 ビットを同時に設定 してください。 • ウォッチドッグタイマが一度起動すると , パワーオンリセットまたはウォッチドッ グリセットでしかウォッチドッグタイマを停止できません。 ● ウォッチドッグタイマのクリア • 2 番目以降の "0" 書込みを WTE ビットに行うと , ウォッチドッグタイマの 2 ビット カウンタはクリアされます。このカウンタが指定インターバル時間内にクリアされ ない場合は , オーバフローが発生し , ウォッチドッグリセットが発生します。 • ウォッチドッグカウンタは , リセット生成 , スリープモードへの遷移 , ストップモー ドへの遷移またはクロックモードへの遷移によりリセットされます。 ● ウォッチドッグタイマのインターバル ウォッチドッグタイマのクリアタイミングとインターバル時間の関係を図 11.4-2 に示 します。ウォッチドッグタイマのインターバル時間は , ウォッチドッグタイマのクリア タイミングに従って変化し , またカウントクロックサイクルの 3.5 倍∼ 4.5 倍の長さを 必要とします。 ● リセット要因の確認 リセット要因は , リセット後のウォッチドッグタイマ制御レジスタ(WDTC)の PONR, WRST, ERST, SRST ビットを確認することで判断できます。 222 第 11 章 ウォッチドッグタイマ 図 11.4-2 ウォッチドッグタイマのクリアタイミングとインターバル時間の関係 [ウォッチドッグタイマのブロック図] 2ビットカウンタ クロック セレクタ a 2分周回路 b 2分周回路 c リセット回路 d リセット 信号 カウント許可とクリア WTEビット カウント許可 出力回路 [最小インターバル時間]カウントクロックの立上り直前にウォッチドッグ制御ビット(WTE)をクリアした場合 カウントスタート カウンタクリア カウントクロックa 2分周値b 2分周値c カウント許可 リセット信号d 7×(カウントクロック周期/2) WTEビットクリア ウォッチドッグリセット発生 [最大インターバル時間]カウントクロックの立上り直後にウォッチドッグ制御ビット(WTE)をクリアした場合 カウンタクリア カウントスタート カウントクロックa 2分周値b 2分周値c カウント許可 リセット信号 9×(カウントクロック周期/2) WTEビットクリア ウォッチドッグリセット発生 223 第 11 章 ウォッチドッグタイマ 11.5 ウォッチドッグタイマ使用上の注意 ウォッチドッグタイマ使用上の注意を以下に示します。 ■ ウォッチドッグタイマ使用上の注意 ● ウォッチドッグタイマの停止 ウォッチドッグタイマは , 一度起動されると , パワーオンリセットまたはウォッチドッ グリセットが発生するまで停止できません。ウォッチドッグタイマカウンタは , 外部リ セットまたはソフトリセットでクリアされます。ただし , カウンタがクリアされても ウォッチドッグタイマは停止状態にはなりません。 ● インターバル時間 タイムベースタイマから供給される信号をインターバルカウントクロックとして使用 するので , ウォッチドッグタイマのインターバル時間は , タイムベースタイマがクリア されると , 設定された時間より長くなる場合があります。 タイムベースタイマは , タイムベースタイマ制御レジスタ (TBTC) のタイムベースタイ マ初期化ビット (TBR) への "0" 書込みのほか , メインクロックモードから PLL クロッ クモードへの遷移時にもクリアされますので , ご注意ください。 ● インターバル時間の選択 インターバルは , ウォッチドッグタイマが起動されたとき選択できます。起動以外の動 作時に書き込まれたデータは無視されます。 ● プログラム作成上の注意 メインループ内でウォッチドッグタイマを繰返しクリアするプログラムを作成する場 合 , メインループの処理時間(割込み処理を含む)は , ウォッチドッグタイマの最小イ ンターバル時間に等しいかまたはそれ未満でなければなりません。 ● タイムベースタイマモード時のウォッチドッグタイマの動作 タイムベースタイマは , タイムベースタイマモードが設定されている間動作します。 ただし , ウォッチドッグタイマは一時的に停止状態になります。 224 第 11 章 ウォッチドッグタイマ 11.6 ウォッチドッグタイマのプログラム例 ウォッチドッグタイマのプログラム例を示します。 ■ ウォッチドッグタイマのプログラム例 ● 処理 • ウォッチドッグタイマは , 毎回メインプログラムループ内でクリアされます。 • メインループは , ウォッチドッグタイマの最小インターバル時間内に 1 回 , 繰返さ なければなりません。 ● コーディング例 WDTC EQU 0000A8H ; ウォッチドッグタイマ制御レジスタ WTE EQU WDTC:2 ; ウォッチドッグ制御ビット ;--------- メインプログラム ------------------------------------------CODE CSEG START: ; : ; スタックポインタ(SP)はすでに初期化されているもの ; と仮定します WDG_SRART: MOV WDTC,#00000011B; ウォッチドッグタイマを起動します ; インターバル 221+218 サイクルを選択します ;--------- メインループ ---------------------------------------------MAIN: CLRB I:WTE ; ウォッチドッグタイマをクリアします ; : このビットを定期的にクリアします ; ユーザ処理 ; : JMP MAIN ; ウォッチドッグタイマのインターバル時間未満の時間で ; ループします CODE ENDS ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 0FFDCH ; リセットベクタを設定します DSL START DB 00H ; VECT ENDS END START 225 第 11 章 ウォッチドッグタイマ 226 第 12 章 16 ビットリロードタイマ 16 ビットリロードタイマの機能と動作について説 明します。 12.1 16 ビットリロードタイマの概要 12.2 16 ビットリロードタイマのブロックダイヤグラム 12.3 16 ビットリロードタイマの端子 12.4 16 ビットリロードタイマのレジスタ 12.5 16 ビットリロードタイマの割込み 12.6 16 ビットリロードタイマの動作 12.7 16 ビットリロードタイマ使用上の注意 12.8 16 ビットリロードタイマのプログラム例 227 第 12 章 16 ビットリロードタイマ 12.1 16 ビットリロードタイマの概要 16 ビットリロードタイマにおいては , 以下の 2 つのクロックモードと 2 つのカウン タ動作モードを選択できます。 • 内部クロックモード :3 種類の内部クロックから選択した 1 つのクロックに 同期してカウントダウンします。 • イベントカウントモード : 外部端子における動作エッジの検出によってカウント ダウンタイマは , カウント値が "0000H" → "FFFFH" へ • リロードモード • ワンショットモード 変更されたときにアンダフロー条件結果を定義します。 すなわち , アンダフローは " リロードレジスタ設定値 +1" の後 , 発生することになります。 : カウント設定値を再リロードしてカウントを繰り返し ます。 : アンダフローによってカウントを停止します。カウン タアンダフローは , 拡張インテリジェント I/O サービ ス(EI2OS)に対応しています。 MB90460/465 シリーズの 16 ビットリロードタイマは , 2 つのチャネルを内蔵してい ます。 ■ 16 ビットリロードタイマの動作モード 16 ビットリロードタイマの動作モードを表 12.1-1 に示します。 表 12.1-1 16 ビットリロードタイマの動作モード クロックモード カウンタ動作モード 動作モード リロードモード ソフトウェアトリガ動作 外部トリガ入力動作 外部ゲート入力動作 内部クロックモード ワンショットモード イベントカウントモード (外部クロックモード) リロードモード ソフトウェアトリガ動作 ワンショットモード ■ 内部クロックモード タ イ マ 制 御 状 態 レ ジ ス タ 上 位(TMCSRH)の カ ウ ン ト ロ ッ ク 設 定 ビ ッ ト(CSL1, CSL0:bit11, bit10)に "00B" や "01B", "10B" を設定した場合は , 内部クロックモードにな ります。 内部クロックモード時は , 以下の 3 種類の動作モードを選択できます。 ● ソフトウェアトリガ動作 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" が設定されソフトウェアトリガビット(TRG:bit0)に "1" が設定されるとカウント を開始します。TRG ビットによるトリガ入力は , 外部ゲート入力と同様に常に外部トリ ガ入力に対し有効です。 228 第 12 章 16 ビットリロードタイマ ● 外部トリガ入力動作 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" が設定されている場合に , 動作モード設定ビット(MOD2 ∼ MOD0:bit9 ∼ bit7)に よって設定されているトリガ入力の有効ビット(立上り , 立下り , 両エッジから設定可 能)が TIN0, TIN1 端子へ入力されると , カウントを開始します。 ● 外部ゲート入力動作 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" が設定されている場合に , 動作モード設定ビット(MOD2 ∼ MOD0:bit9 ∼ bit7)に よって設定されているゲート入力の有効レベル("L" または "H" を設定可能)が TIN0, TIN1 端子へ入力されると , カウントを開始します。 ■ イベントカウントモード(外部クロックモード) タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1)のカウントブロック設定ビット (CSL1, CSL0:bit11, bit10) に "11B" を設定した場合に , 動作設定ビット (MOD2 ∼ MOD0: bit9 ∼ bit7)によって設定されているトリガ入力の有効エッジ(立上り , 立下り , 両エッ ジから設定可能)が TIN0, TIN1 端子へ入力されると , カウントを開始します。一定周期 の外部クロックを入力する場合は , インターバルタイマとしても使用できます。 ■ カウンタ動作 ● リロードモード 16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH")により 16 ビットリロー ドレジスタ上位(TMRDH0, TMRDH1)の値を 16 ビットダウンカウンタへロードし , カウントを開始します。また , アンダフローにより割込み要求を出力しますので , イン ターバルタイマとして使用できます。 16 ビットリロードタイマ用インターバル時間を表 12.1-2 に示します。 表 12.1-2 16 ビットリロードタイマのインターバル時間 カウントクロック 内部カウントクロック 外部カウントクロック カウントクロック周期 インターバル時間 21φ(0.125µs) 0.125µs ∼ 8.192ms 23/φ(0.5µs) 0.5µs ∼ 32.768ms 25/φ(2.0µs) 2.0µs ∼ 131.1ms 23/φ(0.5µs)以上 0.5µs 以上 φ: マシンクロック ( )内はマシンクロックが 16MHZ の場合です。 ● ワンショットモード カウントダウンやカウント停止の間にアンダフロー("0000H" → "FFFFH")が発生した 場合 , アンダフローの発生のために割込みが発生します。 カウンタ動作中 , カウンタが進行中であることを示す矩形波を TO0 と TO1 端子から出 力できます。 229 第 12 章 16 ビットリロードタイマ < 参考 > • 16 ビットリロードタイマ 0 は , UART0 のボーレート生成に使用できます。 • 16 ビットリロードタイマ 1 は , UART1 のボーレート生成や , A/D コンバータの 起動トリガに使用できます。 ■ 16 ビットリロードタイマの割込みと EI2OS 16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH")により , 割込み要求を 出力します。 16 ビットリロードタイマの割込みと EI2OS を表 12.1-3 に示します。 表 12.1-3 16 ビットリロードタイマの割込みと EI2OS チャネル 16 ビット リロード タイマ 0*1 割込み 番号 #30(1EH) 割込み制御レジスタ ベクタテーブルのアドレス EI2OS レジスタ名 アドレス 下位 上位 バンク ICR09 0000B9H FFFF84H FFFF85H FFFF86H ○ 16 ビット リロード タイマ 1*2 #18(12H) ICR03 0000BAH FFFFB4H FFFFB5H FFFB6H ○ : 使用可能 *1 :16 ビットリロードタイマ "0" のアンダフローと同じ割込み番号が 16 ビットタイマ 0, 1, 2 カウンタボロー に割当てられます。 *2 :16 ビットリロードタイマ "1" のアンダフローと同じ割込み番号が 16 ビットアウトプウトコンペアのチャ ネル 2 に割当てられます。 230 第 12 章 16 ビットリロードタイマ 12.2 16 ビットリロードタイマのブロックダイヤグラム 16 ビットリロードタイマ 0, 1 は , それぞれ以下の 7 種類のブロックで構成されてい ます。 • カウントクロック生成回路 • リロード制御回路 • 出力制御回路 • 動作制御回路 • 16 ビットタイマレジスタ(TMRH0, TMRH1, TMRL0, TMRL1) • 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1) • タイマ制御状態レジスタ(TMCSRH0, TMCSRH1, TMCSRL0, TMCSRL1) ■ 16 ビットリロードタイマのブロックダイヤグラム 16 ビットリロードタイマのブロックダイヤグラムを図 12.2-1 に示します。 図 12.2-1 16 ビットリロードタイマのブロックダイヤグラム 内部データバス TMRDL0*1 <TMRDL1> 16ビットリロードレジスタ リロード信号 TMRL0*1 <TMRL1> リロード 制御回路 16ビットタイマレジスタ カウントクロック生成回路 マシン クロック プリ 3 スケーラ CLK ゲート 入力 クリア 有効 クロック 判定回路 ウェイト信号 UART0とUART*1 <A/Dコンバータ> CLK 出力制御回路 内部 クロック 端子 クロック セレクタ 入力制御 回路 TIN0*1 <TIN1> 外部クロック 3 2 反転 出力信号 生成回路 - - TO0*1 <TO1> セレクト 信号 機能選択 - 端子 許可 動作 制御回路 - CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE UF CNTE TRG タイマ制御状態レジスタ(TMCSRH,L0)*1 <TMCSRH,L1> 割込み要求信号 #30(1EH)*2 <#18(12H)> *1:このレジスタはチャネル0とチャネル1を含みます。< >はチャネル1のレジスタを示します。 *2:割込み番号 231 第 12 章 16 ビットリロードタイマ ● カウントクロック生成回路 マシンクロックまたは外部入力クロックから 16 ビットリロードタイマ用のカウントク ロックを生成します。 ● リロード制御回路 タイマ起動とアンダフロー発生時にリロード動作を制御します。 ● 出力制御回路 16 ビットダウンカウンタのアンダフローによる TO 端子出力の反転制御と , TO 端子出 力の許可 / 禁止を制御します。 ● 動作制御回路 16 ビットダウンカウンタの起動 / 停止を制御します。 ● 16 ビットタイマレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1) 16 ビットダウンカウンタです。読出しの間は , 現在のカウンタ値が読み出されます。 ● 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1) 16 ビットダウンカウンタへのロード値を設定するレジスタです。16 ビットリロードレ ジスタの設定値を 16 ビットダウンカウンタにロードし , ダウンカウントします。 ● タイマ制御状態レジスタ(TMCSRH0, TMCSRH1, TMCSRL0, TMCSRL1) このレジスタは , 16 ビットリロードタイマのカウントクロックと動作モードを選択し た後 , 動作条件を設定し , ソフトウェアにより起動しカウントを許可 / 禁止にして , 割 込みと状態を制御します。リロードまたはワンショットモードおよび端子出力レベル を選択した後 , タイマ出力を許可 / 禁止にして , 割込みと状態を制御します。 232 第 12 章 16 ビットリロードタイマ 16 ビットリロードタイマの端子 12.3 16 ビットリロードタイマの端子について説明します。また端子のブロックダイヤグ ラムも示します。 ■ 16 ビットリロードタイマの端子 16 ビットリロードタイマの端子は , 汎用入出力ポートと兼用になっています。 端子状態や I/O 形式 , 16 ビットリロードタイマを使用するにあたって必要とする設定 を表 12.3-1 に示します。 表 12.3-1 16 ビットリロードタイマの端子 端子名 端子機能 入力形式 P15/INT5/ TIN0 ポート 1 入出力 / 外部割込み入力 / タイマ入力 P16/INT6/ TO0 ポート 1 入出力 / 外部割込み入力 / タイマ入力 P20/TIN1 ポート 2 入出力 / タイマ出力 P21/TO1 ポート 2 入出力 / タイマ出力 プルアップ オプション スタンバイ 制御 端子設定 入力ポートに設定 (DDR1:bit7=0) 選択可 CMOS 出力 / CMOS ヒス テリシス入力 あり タイマ出力を " 許可 " に設定 (TMCSRL0:OUTE =1) 入力ポートに設定 (DDR2:bit0 =0) なし タイマ出力を " 許可 " に設定 (TMCSRL1:OUTE =1) ■ 16 ビットリロードタイマ端子のブロックダイヤグラム 16 ビットリロードタイマ端子のブロックダイヤグラムを図 12.3-1 に示します。 図 12.3-1 16 ビットリロードタイマの端子部のブロックダイヤグラム リリース入力* PDR(ポートデータレジスタ) リソース出力* リソース出力許可信号* 内部データバス PDR読出し 出力ラッチ P-ch PDR2書込み 端子 DDR(ポート方向レジスタ) 方向ラッチ N-ch DDR書込み スタンバイ制御信号(SPL=1) DDR読出し スタンバイ制御信号:SPL=1によるストップおよびクロックモード *:リソース用の端子だけはリソースI/Oとして使用します。 233 第 12 章 16 ビットリロードタイマ 12.4 16 ビットリロードタイマのレジスタ 16 ビットリロードタイマのレジスタ一覧を示します。 ■ 16 ビットリロードタイマのレジスタ一覧 16 ビットリロードタイマのレジスタを図 12.4-1 に示します。 図 12.4-1 16 ビットリロードタイマのレジスタ タイマ制御状態レジスタ(上位) bit 15 リード/ライト 初期値 14 13 12 11 10 9 8 CSL1 CSL0 MOD2 MOD1 - - R/W 0 R/W 0 R/W 0 R/W 0 6 5 4 3 2 1 0 MOD0 OUTE OUTL RELD INTE UF CNTE TRG R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 14 13 12 11 10 9 8 D15 D14 D13 D12 D11 D10 D9 D8 R X R X R X R X R X R X R X R X - - TMCSRH0,1 タイマ制御状態レジスタ(下位) bit 7 リード/ライト 初期値 TMCSRL0,1 16ビットタイマレジスタ(上位) bit 15 リード/ライト 初期値 TMRH0,1 16ビットタイマレジスタ(下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R X R X R X R X R X R X R X R X 14 13 12 11 10 9 8 D15 D14 D13 D12 D11 D10 D9 D8 W X W X W X W X W X W X W X W X TMRL0,1 16ビットリロードレジスタ(上位) bit 15 リード/ライト 初期値 TMRDH0,1 16ビットリロードレジスタ(下位) bit リード/ライト 初期値 234 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 W X W X W X W X W X W X W X W X TMRDL0,1 第 12 章 16 ビットリロードタイマ 12.4.1 タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1) タイマ制御状態レジスタ(TMCSRH0, TMCSRH1)の bit11 ∼ bit7 により , 16 ビッ トリロードタイマの動作モードと動作条件を設定します。 ■ タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1) 図 12.4-2 タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1) bit 15 14 13 12 11 10 - - - - CSL1 CSL0 MOD2 MOD1 MOD0 - - - - R/W R/W 9 8 R/W R/W 7 初期値 ----00000B R/W 動作モード選択ビット (内部クロックモード時) MOD2 MOD1 MOD0 入力端子機能 トリガ無効 有効エッジ,レベル ― 0 0 0 0 0 1 0 1 0 0 1 1 両エッジ 1 X 0 "L"レベル 1 X 1 MOD2 MOD1 MOD0 立上りエッジ トリガ入力 ゲート入力 0 0 X 0 1 X 1 0 X 1 1 CSL1 CSL0 0 0 0 1 1 0 1 1 "H"レベル 動作モード選択ビット (イベントカウントモード時) 入力端子機能 X 立下りエッジ ― 有効エッジ ― 立上りエッジ トリガ入力 立下りエッジ 両エッジ カウントクロック選択ビット 機能 カウントクロック 21/φ(0.125µs) 内部クロックモード 23/φ(0.5µs) 25/φ(2.0µs) イベントカウントモード 外部イベント入力 R/W :リード/ライト X :不定 - :初期値 :未定義 φ :マシンサイクル。( )はマシンクロック16MHz時の値を示します。 235 第 12 章 16 ビットリロードタイマ 表 12.4-1 タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1) ビット名 bit15 ∼ bit12 bit11, bit10 −: 未定義ビット CSL1, CSL0: カウントク ロック選択 ビット 機 能 • • 読出し値は不定値です。 このビットへの書込みは , 動作へ影響しません。 • • このビットは , 16 ビットリロードタイマのカウントクロックを設定します。 これらのビットに "11B", "10B", "01B", "00B" を設定した場合 : • 内部クロックモードが設定されます。内部クロックはこのモード時にお いてカウントします。 これらのビットに "11B" を設定した場合 : イベントカウントモードが設定されます。外部クロックのエッジはこの モード時においてカウントされます。 bit9 ∼ bit7 236 MOD2, MOD1, MOD0: 動作モード選 択ビット < 内部クロックモード時 > • MOD2:bit9 は , 入力端子の機能を設定します。また , bit9 が "0" の場合は , 入 力端子はトリガ入力端子となり , 設定した有効エッジが入力されると , 16 ビットリロードレジスタ(TMRDH0, 1, TMRDL0, 1)の値を 16 ビットカウ ンタへロードし , カウント動作を継続します。 • MOD1, MOD0:bit8, bit7 は , 有効エッジを設定します。 • MOD2:bit9 に "1" を設定した場合は , 入力端子はゲート入力となり , MOD0: bit7 で設定した有効レベル信号が入力されている間 , カウントを継続しま す。 • MOD1:bit8 に設定した値は , 動作に影響しません。 • MOD0:bit7 は有効レベルを設定します。 < イベントカウントモード時 > • MOD2:bit9 に設定した値は , 動作に影響しません。任意の値("0" か "1")を 設定してください。 • 入力端子はイベント入力用のトリガ入力端子となり , 有効エッジは MOD1 と MOD0 ビットで設定されます。 第 12 章 16 ビットリロードタイマ 12.4.2 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1) タイマ制御状態レジスタ(TMCSRL0, TMCSRL1)の下位 8 ビットであり , 16 ビッ トリロードタイマの動作条件の設定 , カウント動作の許可 / 禁止の設定 , 割込み制御 および割込み要求の状態を確認する機能があります。 ■ タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1) 図 12.4-3 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1) bit 2 1 0 * MOD0 OUTE OUTL RELD INTE 7 6 UF CNTE TRG R/W R/W R/W R/W R/W 5 R/W 4 R/W 3 R/W TRG 初期値 00000000B ソフトウェアトリガビット ライト時 リード時 0 常に"0"を読出します。 1 リロード後,カウントを開始 CNTE 動作に影響しません。 カウント許可ビット 0 カウント停止 1 カウント許可(起動トリガ待ち) UF アンダフロー割込み要求フラグビット ライト時 リード時 0 カウンタアンダフローなし 割込み要求をクリア 1 カウンタアンダフローあり 動作に影響しません。 INTE アンダフロー割込み要求許可ビット 0 アンダフロー割込みを禁止 1 アンダフロー割込みを許可 RELD リロード選択ビット 0 ワンショットモード 1 リロードモード 端子出力レベル選択ビット OUTL ワンショットモード (RELD=0) リロードモード (RELD=1) 0 カウント中"H"の矩形波出力 カウント開始時"L"のトグル出力 1 カウント中"L"の矩形波出力 カウント開始時"H"のトグル出力 OUTE 0 端子機能 タイマ出力許可ビット 各チャネルに対応するレジスタと端子 汎用入出力ポート TMCSRL0 P16 TMCSRL1 P21 TO0 タイマ出力端子 TO1 1 R/W :リード/ライト :初期値 * :MOD0:ビット7は,「12.4.1 タイマ制御状態レジスタ上位(TMCSRH0,TMCSRH1)」をご参照ください。 237 第 12 章 16 ビットリロードタイマ 表 12.4-2 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1) ビット名 bit6 bit5 OUTE: タイマ出力許 可ビット • • • • このビットは , タイマ出力端子への出力を許可 / 禁止します。 このビットに "0" を設定した場合 : 端子は汎用入出力ポートとなります。 このビットに "1" を設定した場合 : 端子はタイマ出力端子となります。 タイマ出力端子の出力波形は , リロードモードを設定した場合トグル波形を 出力し , ワンショットモードを設定した場合はカウント動作中を示す矩形波 を出力します。 OUTL: 端子出力レベ ル選択ビット • • タイマ出力端子への出力レベルを設定するビットです。 このビットに "0" を設定した場合と "1" を設定した場合では , 端子出力レベ ルが逆になります。 RELD: リロード選択 ビット • • このビットは , リロード動作を許可します。 このビットに "0" を設定した場合 : ワンショットモードとなり , 16 ビットカウンタのアンダフローによりカ ウントを停止します。 このビットに "1" を設定した場合 : リロードモードとなり , 16 ビットカウンタのアンダフローの発生と同時 に , 16 ビットリロードレジスタに設定した値が 16 ビットカウンタに ロードされ , カウントを継続します。 bit4 bit3 bit2 機 能 • INTE: アンダフロー 割込み要求許 可ビット • • このビットは割込み要求を許可 / 禁止します。 このビットに "1" を設定した場合 : アンダフロー割込み要求フラグビット(UF)に "1" がセットされると , タイマは割込み要求を出力します。 UF: アンダフロー 割込み要求フ ラグビット • このビットは , 16 ビットカウンタのアンダフローにより "1" がセットされま す。 アンダフロー割込み要求許可ビット(INTE)に "1" を設定している場合にこ のビットに "1" がセットされると割込み要求を出力します。 このビットに "0" を設定した場合 : 割込み要求がクリアされます。 このビットに "1" を設定した場合 : 動作へ影響しません。 このビットは , EI2OS の起動により , "0" にクリアされます。 • • • • bit1 CNTE: カウント許可 ビット • • このビットは , カウント動作を許可 / 禁止します。 このビットに "1" を設定した場合 : カウンタは起動トリガ待ち状態となります。トリガの発生により , 実カ ウントを開始します。 TRG: ソフトウェア トリガビット • このビットは , インタバルタイマ機能またはカウンタ機能をソフトウェアで 起動します。 このビットに "0" 設定した場合 : 動作へ影響しません。 このビットに "1" 設定した場合 : ソフトウェアトリガとなり , 16 ビットリロードレジスタに設定した値が 16 ビットダウンカウンタにロードされ , カウントを開始します。 このビットの読出し値は "0" です。 動作モードにかかわりなく CNTE ビットに "1" が設定されたとき , トリガ入 力は常に " 許可 " です。 • • bit0 • • 238 第 12 章 16 ビットリロードタイマ 16 ビットタイマレジスタ上位 , 下位 (TMRH0, TMRH1, TMRL0, TMRL1) 12.4.3 16 ビットタイマレジスタ上位 , 下位(TMRH0, TMRH1, TMRL0, TMRL1)は , 16 ビットダウンカウンタのカウント値を読み出すことができます。 ■ 16 ビットタイマレジスタ上位 , 下位(TMRH0, TMRH1, TMRL0, TMRL1) 16 ビットタイマレジスタ上位 , 下位(TMRH0, TMRH1, TMRL0, TMRL1)を図 12.4-4 に示します。 図 12.4-4 16 ビットタイマレジスタ上位 , 下位(TMRH0, TMRH1, TMRL0, TMRL1) 16ビットタイマレジスタ,上位 bit リード/ライト 初期値 15 14 13 12 11 10 9 8 D15 D14 D13 D12 D11 D10 D9 D8 R X R X R X R X R X R X R X R X 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R X R X R X R X R X R X R X R X TMRH0,TMRH1 16ビットタイマレジスタ,下位 bit リード/ライト 初期値 TMRL0,TMRL1 R :リードオンリ X :不定 16ビットタイマレジスタは16ビットダウンカウンタのカウント値を読み出すことがで きます。 カウント開始にあたりカウントが許可(TMCSRL0, TMCSRL1レジスタのCNTE:bit1=1) されている場合 , 16 ビットリロードレジスタに書き込まれた値はこのレジスタへリ ロードされ , カウントダウンを開始します。 このレジスタ値はカウンタ停止状態(TMCSRL0, TMCSRL1 レジスタの CNTE:bit1=0 の ときに格納されます。 < 注意事項 > • このレジスタはカウント中でも値を読み出すことが可能です。読出し時は必ず ワード転送命令(MOVW A, 003AH)をご使用ください。 • 16 ビットタイマレジスタ(TMRH0, TMRH1, TMRL0, TMRL1)は読出し専用の レジスタであり , 16 ビットリロードレジスタの同一アドレスに配置されていま す。したがって , このレジスタへの書込みは TMRH0, TMRH1, TMRL0, TMRL1 レジスタの値へ影響しません。TMRH0, TMRH1, TMRL0, TMRL1 レジスタへの 書込みは実行されます。 239 第 12 章 16 ビットリロードタイマ 16 ビットリロードレジスタ上位 , 下位 (TMRDH0, TMRDH1, TMRDL0, TMRDL1) 12.4.4 16 ビットリロードレジスタ上位 , 下位(TMRDH0, TMRDH1, TMRDL0, TMRDL1) は , 16 ビットダウンカウンタへのリロード値を設定するレジスタです。16 ビットリ ロードレジスタに設定された値が , 16 ビットダウンカウンタにリロードされ , ダウ ンカウントを実行します。 ■ 16 ビットリロードレジスタ上位 , 下位(TMRDH0, TMRDH1, TMRDL0, TMRDL1) 16 ビットリロードレジスタ上位 , 下位(TMRDH0, TMRDH1, TMRDL0, TMRDL1)を 図 12.4-5 に示します。 図 12.4-5 16 ビットリロードレジスタ上位 , 下位(TMRDH0, TMRDH1, TMRDL0, TMRDH1) bit リード/ライト 初期値 bit リード/ライト 初期値 15 14 13 12 11 10 9 8 D15 D14 D13 D12 D11 D10 D9 D8 W X W X W X W X W X W X W X W X 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 W X W X W X W X W X W X W X W X TMRDH0,TMRDH1 TMRDL0,TMRDL1 W :ライトオンリ X :不定 16 ビ ッ ト リ ロ ー ド タ イ マ の モ ー ド に か か わ ら ず , カ ウ ン ト が 禁 止(TMCSRL0, TMCSRL1 レジスタの CNTE:bit1=0)のときは , カウンタの初期値がこのレジスタに設 定されます。カウントが許可(TMCSRL0, TMCSRL1 レジスタの CNTE: レジスタ =1) であり , かつカウントが開始したとき , このレジスタに書き込まれた値からカウントダ ウンを開始します。 リロードモード時において , アンダフローが発生しダウンカントが継続しているとき には , 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定 された値はカウンタへリロードされます。 < 注意事項 > 240 • 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)へ値を 設定する場合は , カウント動作を停止(TMCSRL0, TMCSRL1 の CNTE:bit1=0) してください。 • 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)への設 定は , ワード転送命令(MOVW 003AH, A)をご使用ください。 • 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)は , 書 込み専用のレジスタであり , 読込み専用のレジスタである 16 ビットタイマレジ スタ(TMRH0, TMRH1, TMRL0, TMRL1)と同一アドレスに配置されているた め , 書込み値と読出し値は異なります。リードモディファイライト命令は使用で きません。 第 12 章 16 ビットリロードタイマ 12.5 16 ビットリロードタイマの割込み 16 ビットリロードタイマは , 16 ビットダウンカウンタのアンダフロー時に割込み要 求を出力します。拡張インテリジェント I/O サービス(EI2OS)に対応しています。 ■ 16 ビットリロードタイマの割込み 16 ビットリロードタイマの割込み制御ビットと割込み要因を表 12.5-1 に示します。 表 12.5-1 16 ビットリロードタイマの割込み制御ビットと割込み要因 16 ビットリロードタイマ 0 16 ビットリロードタイマ 1 アンダフロー割込み 要求フラグビット TMCSRL0 の UF:bit2 TMCSRL1 の UF:bit2 割込み要求許可ビット TMCSRL0 の INTE:bit3 TMCSRL1 の INTE:bit3 16 ビットダウンカウンタ (TMRH0, TMRL0)のアンダフロー 割込み要因 16 ビットダウンカウンタ (TMRH1, TMRL1)のアンダフロー 16 ビットリロードタイマでは , 16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH")により , タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のアンダフ ロー割込み要求フラグビット(UF:bit2)に "1" がセットされます。アンダフロー割込 み要求許可ビットが割込み要求を許可(TMCSRL0, TMCSRL1 の INTE:bit3=1)にしてい る場合 , 割込み要求を割込みコントローラへ出力します。 ■ 16 ビットリロードタイマの割込みと EI2OS 機能 16 ビットリロードタイマの割込みと EI2OS 機能を表 12.5-2 に示します。 表 12.5-2 16 ビットリロードタイマの割込みと EI2OS 機能 チャネル 16 ビット リロード タイマ 0*1 割込み 番号 #30(1EH) 割込み制御レジスタ ベクタテーブルのアドレス EI2OS レジスタ名 アドレス 下位 上位 バンク ICR09 0000B9H FFFF84H FFFF85H FFFF86H ○ 16 ビット リロード タイマ 1*2 #18(12H) ICR03 0000B3H FFFFB4H FFFFB5H FFFB6H ○ : 使用可能 *1 : 波形シーケンサ 16 ビットタイマカウンタボローと同じ割込み番号が , 16 ビットリロードタイマ 0 に割付 けられています。 *2 : アウトプットコンペア ch.2 一致と同じ割込み番号が , 16 ビットリロードタイマ 1 に割付けられています。 241 第 12 章 16 ビットリロードタイマ 12.6 16 ビットリロードタイマの動作 16 ビットリロードタイマの設定と , カウンタの動作状態について説明します。 ■ 16 ビットリロードタイマの設定 ● 内部クロックモードの設定 インターバルタイマとして動作させるには , 下位のレジスタを図 12.6-1 のように設定 してください。 図 12.6-1 内部クロックモードの設定 bit 15 14 13 12 - - - - CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE UF CNTE TRG TMCSRH0,TMCSRH1 TMCSRL0,TMCSRL1 11 10 "11B"以外 TMRDH0,TMRDH1 TMRDL0,TMRDL1 9 ◎ 8 ◎ 7 ◎ 6 ◎ 5 ◎ 4 ◎ 3 ◎ 2 1 ◎ 1 0 ◎ カウンタの初期値(リロード値)を設定 ◎ :使用ビット 1 :"1"を設定 ● イベントカウントモードの設定 イベントカウンタとして動作させるには , 下位のレジスタを図 12.6-2 のように設定し てください。 図 12.6-2 イベントカウンタモードの設定 bit 15 TMCSRH0,TMCSRH1 TMCSRL0,TMCSRL1 - 14 13 12 - - - CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE UF CNTE TRG 11 1 TMRDH0,TMRDH1 TMRDL0,TMRDL1 10 1 9 ◎ 8 ◎ 7 ◎ 6 ◎ 5 ◎ 4 ◎ 3 ◎ 2 ◎ 1 1 0 ◎ カウンタの初期値(リロード値)を設定 DDR1 DDR2(PWC1用) △ △ ◎:使用ビット △:使用する端子に対応するビットに"0"を設定 1 :"1"を設定 242 第 12 章 16 ビットリロードタイマ ■ カウンタの動作状態 カウンタの状態は , タイマ制御状態レジスタ(TMCSRL0, TMCSRL1)のカウント許可 ビット(CNTE:bit1)値と内部信号の起動トリガ待ち信号値(WAIT)で決まります。 STOP 状態(停止状態), WAIT 状態(起動トリガ待ち状態)および RUN 状態(動作状 態)が設定可能です。 これらのカウンタの状態遷移を図 12.6-3 に示します。 図 12.6-3 カウンタ状態遷移図 STOP状態 CNTE=0,WAIT=1 TIN端子 :入力禁止 TO端子 :汎用入出力ポート リセット カウンタ:停止時の値を保持 リセット直後は不定 CNTE:bit1=0 CNTE:bit1=0 CNTE=1 TRG:bit0=0 WAIT状態 CNTE=1,WAIT=1 TIN端子:トリガ入力のみ許可 TO端子 :初期値出力 UF:bit2=1 カウンタ:停止時の値を保持 RELD:bit4=0 リセット直後ロードするまでは不定 (ワンショットモード) TRG=1 (ソフトトリガ) TIN端子からの外部トリガ CNTE:bit1=1 TRG:bit0=1 RUN状態 CNTE=1, WAIT=0 TIN端子 :TIN端子として機能 TO端子 :TO端子として機能 カウンタ:動作 UF:bit2=1 RELD:bit4=1 (リロードモード) TRG:bit0=1 (ソフトウェアトリガ) LOAD CNTE=1,WAIT=0 リロードレジスタ値をカウンタへロード ロード終了 :ハードウェアによる状態遷移 :レジスタアクセスによる状態遷移 WAIT :内部信号の起動トリガ待ち信号値 TRG :タイマ制御状態レジスタ(TMCSRL0,1)のソフトウェアトリガビット CNTE :タイマ制御状態レジスタ(TMCSRL0,1)のカウント許可ビット UF :タイマ制御状態レジスタ(TMCSRL0,1)のアンダフロー割込み要求フラグビット RELD :タイマ制御状態レジスタ(TMCSRL0,1)のリロード選択ビット 243 第 12 章 16 ビットリロードタイマ 12.6.1 内部クロックモード(リロードモード) 内部カウントクロックに同期して , 16 ビットダウンカウンタをダウンカウントし , アンダフロー("0000H" → "FFFFH")のために , CPU への割込み要求を出力しま す。また , タイマ出力端子からトグル波形を出力できます。 ■ 内部クロックモード(リロードモード)の動作 タイマ制御状態レジスタ(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" を設定してカウントが許可の場合に , ソフトウェアトリガビット(TRG:bit0)に "1" を設定あるいは外部トリガによりタイマを開始すると , 16 ビットリロードレジスタ (TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定した値が 16 ビットダウンカウンタ にリロードされ , ダウンカウントを開始します。カウント許可ビット(CNTE:bit1)と ソフトウェアトリガビット(TRG:bit0)同時に "1" を設定したときにカウント動作を許 可すると , 同時にカウントを開始します。 16 ビットカウンタのアンダフロー("0000H" → "FFFFH")により , 16 ビットリロードレ ジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定した値が , 16 ビットカウン タにリロードされ , カウントを継続します。アンダフロー割込み要求許可ビット (INTE:bit3)に "1" を設定しているときに , タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のアンダフロー割込み要求フラグビット(UF:bit2)に "1" が設定されると , 割込み要求を出力します。 TO0, TO1 端子からは , アンダフローごとに反転するトグル波形が出力されます。 ● ソフトウェアトリガ動作 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" を設定している場合に , ソウトウェアトリガビット(TRG:bit0)に "1" を設定する と , カウントを開始します。 リロードモード時のソフトウェアトリガ動作を図 12.6-4 に示します。 図 12.6-4 リロードモードのカウント動作(ソフトウェアトリガ動作) カウントクロック カウンタ データロード信号 -1 リロードデータ 0000H -1 リロードデータ 0000H -1 リロードデータ UFビット CNTEビット TRGビット TO端子 1マシンサイクル* *:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。 244 0000H -1 リロードデータ 第 12 章 16 ビットリロードタイマ ● 外部トリガ入力動作 タイマ制御状態レジスタ(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" を設定している場合に , 動作モード選択ビット(MOD2, MOD1, MOD0)で設定 しているトリガ入力の有効エッジ(立上り , 立下り , 両エッジから設定可能)が TIN 端 子に入力されると , カウントを開始します。 リロードモード時における外部トリガ入力動作を図 12.6-5 に示します。 図 12.6-5 リロードモードのカウント動作(外部トリガ入力動作) カウントクロック カウンタ データロード信号 -1 リロードデータ 0000H -1 リロードデータ 0000H -1 0000H リロードデータ -1 リロードデータ UFビット CNTEビット TIN端子 2~2.5マシンサイクル* TO端子 *:外部トリガ入力からリロードデータロードまで,2~2.5マシンサイクルの時間がかかります。 < 注意事項 > TIN0, TIN1 端子へ入力するトリガパルス幅は , 2/φ(φ : マシンクロック)以上とし ください。 245 第 12 章 16 ビットリロードタイマ ● ゲート入力動作 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" を設定している場合に , ソフトウェアトリガビット(TRG:bit0)に "1" を設定する と , カウントを開始します。 動作モード選択ビット(MOD2, MOD1, MOD0)で設定しているゲート入力の許可レベ ル("L" または "H" を設定可能)が TIN 端子に入力されている間 , カウントします。 リロードモード時におけるゲート入力動作を図 12.6-6 に示します。 図 12.6-6 リロードモードのカウント動作(外部ゲート入力動作) カウントクロック カウンタ リロードデータ -1 -1 -1 0000H -1 -1 リロードデータ データロード信号 UFビット CNTEビット TRGビット TIN端子 1マシンサイクル* TO端子 *:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。 < 注意事項 > 246 TIN0, TIN1 端子へ入力するゲート入力のパルス幅は , 2/φ(φ: マシンクロック)以 上としてください。 第 12 章 16 ビットリロードタイマ 12.6.2 内部クロックモード(ワンショットモード) 内部カウントクロックに同期して , 16 ビットカウンタのダウンカウント用 16 ビット リロードタイマを使用し , アンダフロー("0000H" → "FFFFH")のために , CPU に 対する割込み要求を出力します。また , TO 端子から , カウント中を示す矩形波を出 力できます。 ■ 内部クロックモード(ワンショットモード) タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" を設定している場合に , ソフトウェアトリガビット(TRG:bit0)に "1" を設定ま たは動作モード選択ビット(MOD2, MOD1, MOD0)で選択されたトリガ入力の有効 エッジ(立上り , 立下り , 両エッジから設定可能)が TIN 端子に入力されると , 16 ビッ トリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定した値が 16 ビットカウンタにリロードされ , ダウンカウントを開始します。カウント許可ビット (CNT:bit1)とソフトウェアトリガビット(TRG:bit0)同時に "1" を設定した場合は , カ ウントを許可すると同時にカウントを開始します。 16 ビットカウンタのアンダフロー("0000H" → "FFFFH")により , 16 ビットカウンタは "FFFFH" の状態でカウントを停止します。 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のアンダフロー割込み要求フラ グビット(UF:bit2)に"1"がセットされ, アンダフロー割込み要求許可ビット (INTE:bit3) に "1" を設定している場合は , 割込み要求を出力します。 TO0, TO1 端子からは , カウント中を示す矩形波を出力できます。 ● ソフトウェアトリガ動作 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" を設定している場合に , ソウトウェアトリガビット(TRG:bit0)に "1" を設定する と , カウントを開始します。 ワンショットモード時におけるソフトウェアトリガ動作を図 12.6-7 に示します。 図 12.6-7 ワンショットモードのカウント動作(ソフトウェアトリガ動作) カウントクロック カウンタ データロード信号 -1 0000H FFFFH リロードデータ -1 0000H FFFFH リロードデータ UFビット CNTEビット TRGビット 1マシンサイクル* TO端子 起動トリガ入力待ち *:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。 247 第 12 章 16 ビットリロードタイマ ● 外部トリガ入力動作 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" を設定している場合に , 動作モード選択ビット(MOD2, MOD1, MOD0)で設定し ているトリガ入力の有効エッジ(立上り , 立下り , 両エッジから設定可能)が TIN 端子 に入力されると , カウントを開始します。 ワンショットモード時における外部トリガ入力動作を図 12.6-8 に示します。 図 12.6-8 ワンショットモードのカウント動作(外部トリガ入力動作) カウントクロック カウンタ -1 データロード信号 リロードデータ 0000H FFFFH -1 0000H FFFFH リロードデータ UFビット CNTEビット TIN端子 2~2.5マシンサイクル* TO端子 起動トリガ入力待ち *:外部トリガ入力からリロードデータロードまで,2~2.5マシンサイクルの時間がかかります。 < 注意事項 > 248 TIN0, TIN1 端子へ入力するトリガパルス幅は , 2/φ(φ: マシンクロック)以上として ください。 第 12 章 16 ビットリロードタイマ ● ゲート入力動作 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" を設定している場合に , ソフトウェアトリガビット(TRG:bit0)に "1" を設定する と , カウントを開始します。 動作モード選択ビット(MOD2, MOD1, MOD0)で設定しているトリガ入力の許可レ ベル("L" または "H" を設定可能)が TIN0, TIN1 端子に入力されている間 , カウント します。 ワンショットモード時における外部ゲート入力動作を図 12.6-9 に示します。 図 12.6-9 ワンショットモードのカウント動作(外部ゲート入力動作) カウントクロック カウンタ リロードデータ -1 0000H FFFFH -1 -1 リロードデータ データロード信号 UFビット CNTEビット TRGビット 1マシンサイクル* TIN端子 TO端子 起動トリガ入力待ち *:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。 < 注意事項 > TIN0, TIN1 端子へ入力するゲート入力のパルス幅は , 2/φ(φ: マシンクロック)以上 としてください。 249 第 12 章 16 ビットリロードタイマ 12.6.3 イベントカウントモード TIN 端子に入力されたパルスの有効エッジを検出するごとに , 16 ビットダウンカウ ンタをダウンカウントし , アンダフロー("0000H" → "FFFFH")により , CPU への 割込み要求を出力します。また , TO0, TO1 端子から , トグル波形または矩形波を出 力できます。 ■ イベントカウントモード タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のカウント許可ビット(CNTE:bit1) に "1" を設定している場合に , ソフトウェアトリガビット(TGR:bit0)に "1" を設定する と , 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定した 値が , 16 ビットカウンタにリロードされます。TIN 端子に入力されたパルス(外部カウ ントクロック)の有効エッジ(立上り , 立下り , 両エッジから設定可能)を検出するごと に , カウントします。 カウント許可ビット(CNTE:bit1)とソフトウェアトリガビット(TRG:bit0)同時に "1" を設定した場合 , カウントを許可にすると同時に , カウントを開始します。 ● リロードモードの動作 16 ビットカウンタのアンダフロー("0000H" → "FFFFH")時は , 16 ビットリロードレジ スタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に設定した値が 16 ビットカウンタに リロードされ , カウントを継続します。 16 ビットカウンタのアンダフロー("0000H" → "FFFFH")時は , タイマ制御状態レジ スタ下位(TMCSRL0, TMCSRL1)のアンダフロー割込み要求フラグビット(UF:bit0) に "1" が設定され , アンダフロー割込み要求許可ビット(INTE:bit3)に "1" を設定し ている場合は , 割込み要求を出力します。 TO0, TO1 端子からは , アンダフローごとに反転するトグル波形を出力できます。リ ロード時におけるカウント動作を図 12.6-10 に示します。 図 12.6-10 リロードモードのカウント動作(イベントカウントモード) TIN端子 -1 カウンタ データロード信号 リロードデータ 0000H -1 リロードデータ 0000H -1 リロードデータ 0000H -1 リロードデータ UFビット CNTEビット TRGビット TO端子 1マシンサイクル* *:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。 < 注意事項 > 250 TIN0, TIN1 端子へ入力されるパルスの "H" 幅および "L" 幅は , 4/φ(φ: マシンクロッ ク)以上としてください。 第 12 章 16 ビットリロードタイマ ● ワンショットモードの動作 16 ビットカウンタのアンダフロー("0000H" → "FFFFH")時は , 16 ビットカウンタの値 は , "FFFFH" の状態でカウントを停止します。 タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のアンダフロー要求フラグビッ ト(UF:bit0)に "1" がセットされ , アンダフロー割込み要求許可ビット(INTE:bit3)に "1" を設定している場合は , 割込み要求を出力します。 TO0, TO1 端子からは , カウント中を示す矩形波を出力できます。ワンショットモード 時におけるカウント動作を図 12.6-11 に示します。 図 12.6-11 ワンショットモードのカウンタ動作(イベントカウントモード) TIN端子 -1 カウンタ データロード信号 0000H FFFFH リロードデータ -1 0000H FFFFH リロードデータ UFビット CNTEビット TRGビット 1マシンサイクル* TO端子 起動トリガ入力待ち *:トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。 < 注意事項 > TIN0, TIN1 端子へ入力されるパルスの "H" 幅および "L" 幅は , 4/φ(φ: マシンクロッ ク)以上としてください。 251 第 12 章 16 ビットリロードタイマ 12.7 16 ビットリロードタイマ使用上の注意 16 ビットリロードタイマ使用上の注意を以下に示します。 ■ 16 ビットリロードタイマ使用上の注意 ● プログラム設定上の注意 • 16 ビットリロードレジスタ(TMRDH0, TMRDH1, TMRDL0, TMRDL1)に値を設定 する場合は , カウントを停止(TMCSRL0, TMCSRL1 レジスタの CNTE:bit1=0)させ てください。16 ビットタイマレジスタ(TMRH0, TMRH1, TMRL0, TMRL1)を読み 出す場合は , 必ずワード転送命令(MOVW A, dir)をご使用ください。 • タイマ制御状態レジスタ上位(TMCSRH0, TMCSRH1)のカウントクロック選択ビッ ト(CSL1, CSL0)を変更する場合は , カウントを停止(TMCSRL0, TMCSRL1 レジ スタの CNTE:bit1=0)してください。 ● 割込みに関する注意 • タイマ制御状態レジスタ下位(TMCSRL0, TMCSRL1)のアンダフロー割込み要求 フラグビット(UF:bit2)に "1" が設定され , アンダフロー割込み要求許可ビット (INTE:bit3)に "1" を設定している場合は , 割込み処理から復帰できません。アンダ フロー割込み要求フラグビット(UF:bit2)は , 必ず "0" にクリアしてください。 • 16 ビットリロードタイマは , ほかのリソースと割込みベクタを共用しているため , 同時に同じレベルの割込みを出力した場合は , 割込み番号が小さい方(優先度が高 い)を優先します。EI2OS が 16 ビットリロードタイマによって使用される場合 , 共 用するリソースの割込みは禁止でなければなりません。 252 第 12 章 16 ビットリロードタイマ 12.8 16 ビットリロードタイマのプログラム例 16 ビットリロードタイマの内部クロックモードとイベントカウントモードのプログ ラム例を示します。 ■ 内部クロックモードのプログラム例 ● 処理仕様 • 16ビットリロードタイマ0により, 25msのインターバルタイマ割込みを生成します。 • タイマはリロードモード時において , 割込みの繰返し生成のために使用します。 • 外部トリガ入力は使用せず , ソフトウェアトリガにより 16 ビットリロードタイマを 起動します。 • EI2OS は使用しません。 • 16MHZ はマシンクロック用 , 2μs はカウントクロック用です。 ● コーディング例 ICR09 EQU 0000B9H ;16 ビットリロードタイマ用割込み制御レジスタ TMCSRL EQU 000082H ; タイマ制御状態レジスタ下位 TMRL EQU 000084H ;16 ビットタイマレジスタ下位 TMRDL EQU 000084H ;16 ビットリロードレジスタ下位 UF EQU TMCSR:2 ; アンダフロー割込み要求フラグビット CNTE EQU TMCSR:1 ; カウント許可ビット TRG EQU TMCSR:0 ; ソフトウエアトリガビット ;-------- メインプログラム -------------------------------------------CODE CSEG START: ; : ; スタックポインタ (SP) は既に初期化されてい るもの ; と仮定します CCR,#0BFH ; 割込み禁止 I:ICR09,#00H ; 割込みレベル 0(最強) I:CNTE ; カウンタを一時停止 I:TMRD,#30D3H ;25ms タイマのデータを設定 I:TMCSR,#0000100000011011B ; インターバルタイマ動作 , クロック 2µs ; 外部トリガ禁止 , 外部出力禁止 , ; リロードモード選択 , 割込み許可 ; 割込みフラグクリア , カウンタ開始 MOV ILM,#07H ;PS 内の ILM レジスタをレベル 7 に設定 OR CCR,#40H ; 割込み許可 LOOP: MOV A,#00H ; 無限プール MOV A,#01H ; BRA LOOP ; ;--------- 割込みプログラム ------------------------------------------WARI: CLRB I:UF ; アンダフロー割込み要求フラグをクリア ; : AND MOV CLRB MOVW MOVW 253 第 12 章 16 ビットリロードタイマ ユーザ処理 : RETI ; ; ; 割込みから復帰 CODE ENDS ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 0FF84H ; 割込み #30(1EH)のベクタを設定 VECT DSL ORG DSL DB ENDS END WARI 0FFDCH START 00H ; リセットベクタを設定 ; シングルチップモードを設定 START ■ イベントカウントモードのプログラム例 ● 処理仕様 • 外部イベント入力端子に入力されるパルスの立上がりエッジを 16 ビットリロード タイマ / カウンタ 0 で 10, 000 回カウントすると , 割込みを生成します。 • ワンショットモードで動作します。 • 外部トリガ入力は , 立上がりエッジを設定します。 • EI2OS は使用しません。 ● コーディング例 ICR09 EQU 0000B9H ;16 ビットリロードタイマ用割込み制御レジスタ TMCSR EQU 000082H ; タイマ制御状態レジスタ下位 TMR EQU 000084H ;16 ビットタイマレジスタ下位 TMRD EQU 000084H ;16 ビットリロードレジスタ下位 DDR1 EQU 000011H ; ポート方向レジスタ UF EQU TMCSR:2 ; アンダフロー割込み要求フラグビット CNTE EQU TMCSR:1 ; カウント許可ビット TRG EQU TMCSR:0 ; ソフトウエアトリガビット ;--------- メインプログラム ------------------------------------------CODE CSEG START: ; : ; スタックポインタ(SP)は既に初期化されているものと ; 仮定します CCR,#0BFH ; 割込み禁止 I:ICR09,#00H ; 割込みレベル 0(最強) I:DDR1,#00H ;INT5 と TIN0 端子を入力に設定 I:CNTE ; カウンタを一時停止 I:TMRD,#2710H ; リロード値 10, 000 回の設定 I:TMCSR,#0000110010001011B ; カウンタ動作 , 外部イベント入力 , 立上りエッジ , ; 外部出力禁止 ; ワンショットモード設定 , 割込み許可 ; 割込みフラグクリア , カウンタ開始 MOV ILM,#07H ;PS 内の ILM レジスタをレベル 7 に設定 OR CCR,#40H ; 割込み許可 LOOP: MOV A,#00H ; 無限ループ MOV A,#01H ; BRA LOOP AND MOV MOV CLRB MOVW MOVW 254 第 12 章 16 ビットリロードタイマ ;--------- 割込みプログラム ------------------------------------------WARI: CLRB I:UF ; アンダフロー割込み要求フラグをクリア ; : ; ユーザ処理 ; RETI ; 割込みから復帰 CODE ENDS ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 0FF84H ; 割込み #30(1EH)のベクタを設定 VECT DSL ORG DSL DB ENDS END WARI 0FFDCH START 00H ; リセットベクタを設定 ; シングルチップモードを設定 START 255 第 12 章 16 ビットリロードタイマ 256 第 13 章 16 ビット PPG タイマ 16 ビット PPG タイマの機能と動作について説明 します(MB90467 では , PPG1 タイマ ch.1 未搭載 となります)。 13.1 16 ビット PPG タイマの概要 13.2 16 ビット PPG タイマのブロックダイヤグラム 13.3 16 ビット PPG タイマの端子 13.4 16 ビット PPG タイマのレジスタ 13.5 16 ビット PPG タイマ割込み 13.6 16 ビット PPG タイマの動作 13.7 16 ビット PPG タイマ使用上の注意 13.8 16 ビット PPG タイマのプログラム例 257 第 13 章 16 ビット PPG タイマ 13.1 16 ビット PPG タイマの概要 16 ビット PPG タイマは , 16 ビットダウンカウンタ , プリスケーラ , 16 ビット周期 設定バッファレジスタ , 16 ビットデューティ設定バッファレジスタ , 16 ビット制御 レジスタおよび PPG 出力端子から構成されています。 ■ 16 ビット PPG タイマ(× 3) 16 ビット PPG タイマは , 16 ビットダウンカウンタ , プリスケーラ , 16 ビット周期設定 バッファレジスタ , 16 ビットデューティ設定バッファレジスタ , 16 ビット制御レジス タおよび PPG 出力端子から構成されています。このモジュールを使用すると , 多機能 タイマからのソフトウェアトリガまたは GATE 信号で同期化されたパルスを出力でき ます。多機能タイマについての詳細は , 「第 14 章 多機能タイマ」をご参照ください。 • カウンタ動作クロックは , 8 種類(φ, φ/2, φ/4, φ/8, φ/16, φ/32, φ/64, φ/128)の中から選 択できます(φ はマシンクロック) 。 • 割込みは , トリガまたはカウンタボローが発生した場合または PPG 立上り(通常極 性)が発生した場合または PPG 立下り(反転極性)が発生した場合に生成されます。 • PPG 出力動作 :16 ビット PPG タイマは , 周期およびデューティ比が可変のパルス波 形を出力できます。また , 16 ビット PPG タイマは , 外付け回路によ り D/A コンバータとしても使用できます。 258 第 13 章 16 ビット PPG タイマ 16 ビット PPG タイマのブロックダイヤグラム 13.2 16 ビット PPG タイマのブロックダイヤグラムを示します。 ■ 16 ビット PPG タイマのブロックダイヤグラム 図 13.2-1 16 ビット PPG タイマのブロックダイヤグラム 周期設定バッファレジスタ0,1,2 デューティ設定バッファレジスタ0,1,2 プリスケーラ CKS2 CKS1 CKS0 周期設定レジスタ0,1,2 1/1 1/2 1/4 1/8 1/16 1/32 1/64 1/128 デューティ設定レジスタ0,1,2 コンパレータ CLK LOAD 16ビットダウン カウンタ MDSE PGMS OSEL PPG0 または PPG1 または PPG2 POEN STOP START BORROW マシンクロックφ ダウンカウンタレジスタ0,1,2 内部データバス 端子 S Q PPG0(多機能タイマ) または PPG1(マルチパルスジェネレータ) または PPG2 R 割込み 選択 割込み#14/#16/#32 多機能タイマからのGATE (PPGチャネル0の場合) IRS1 IRS0 IRQF IREN エッジ検出 (PPGチャネル1&2の場合) STGR CNTE RTRG 259 第 13 章 16 ビット PPG タイマ 13.3 16 ビット PPG タイマの端子 16 ビット PPG タイマの端子について説明します。また端子のブロックダイヤグラ ムも示します。 ■ 16 ビット PPG タイマの端子 16 ビット PPG タイマの端子は , 汎用入出力ポートと共用されます。端子の機能や I/O 形式 , 端子の設定(16 ビット PPG タイマを使用するために必要な設定)を表 13.3-1 に 示します。 表 13.3-1 16 ビット PPG タイマの端子 端子名 端子の機能 P37/PPG0 ポート 3 入出力 , PPG0 出力 P36/ PPG1* ポート 3 入出力 , PPG1 出力 P46/PPG2 ポート 4 入出力 , PPG2 出力 I/O 形式 スタンバイ制御 PPG0 タイマ出力設定 (PNCTL0:POEN=1) CMOS 出力または CMOS 入力 使用可能 CMOS 出力 , CMOS ヒ ステリシス入力 *:MB90467 では , リソースが搭載されていないため , 削除となります。 260 端子設定 PPG1 タイマ出力許可設定許可 (PNCTL1:POEN=1) PPG2 タイマ出力許可設定許可 (PNCTL2:POEN=1) 第 13 章 16 ビット PPG タイマ ■ 16 ビット PPG タイマ端子のブロックダイヤグラム 図 13.3-1 16 ビット PPG0, PPG1 タイマ端子のブロックダイヤグラム リソース出力 リソース出力許可信号 内部データバス ポートデータレジスタ(PDR) PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) 図 13.3-2 16 ビット PPG2 タイマ端子のブロックダイヤグラム リソース出力 リソース入力 リソース出力許可信号 ポートデータレジスタ(PDR) 内部データバス PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) 261 第 13 章 16 ビット PPG タイマ 13.4 16 ビット PPG タイマのレジスタ 16 ビット PPG タイマのレジスタ一覧を示します。 ■ 16 ビット PPG タイマのレジスタ 図 13.4-1 16 ビット PPG タイマのレジスタ PPG ダウンカウンタレジスタ(上位) bit リード/ライト 初期値 15 14 13 12 11 10 9 8 DC15 DC14 DC13 DC12 DC11 DC10 DC09 DC08 R 1 R 1 R 1 R 1 R 1 R 1 R 1 R 1 PDCRH0~PDCRH2 PPG ダウンカウンタレジスタ(下位) 7 6 5 4 3 2 1 0 DC07 DC06 DC05 DC04 DC03 DC02 DC01 DC00 R 1 R 1 R 1 R 1 R 1 R 1 R 1 R 1 bit リード/ライト 初期値 PDCRL0~PDCRL2 PPG 周期設定バッファレジスタ(上位) bit リード/ライト 初期値 15 14 13 12 11 10 9 8 CS15 CS14 CS13 CS12 CS11 CS10 CS09 CS08 W X W X W X W X W X W X W X W X PCSRH0 ~PCSRH2 PPG 周期設定バッファレジスタ(下位) 7 bit 6 5 4 3 2 1 0 CS07 CS06 CS05 CS04 CS03 CS02 CS01 CS00 W X W X W X W X W X W X W X W X リード/ライト 初期値 PCSRL0~PCSRL2 PPG デューティ設定バッファレジスタ(上位) bit リード/ライト 初期値 15 14 13 12 11 10 9 8 DU15 DU14 DU13 DU12 DU11 DU10 DU09 DU08 W X W X W X W X W X W X W X W X PDUTH0 ~PDUTH2 PPG デューティ設定バッファレジスタ(下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 DU07 DU06 DU05 DU04 DU03 DU02 DU01 DU00 W X W X W X W X W X W X W X W X PDUTL0~ PDUTL2 ( 続く ) 262 第 13 章 16 ビット PPG タイマ ( 続き ) PPG 状態制御レジスタ(上位) bit リード/ライト 初期値 15 14 13 12 11 10 9 8 CNTE STGR MDSE RTRG CKS2 CKS1 CKS0 PGMS R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 PCNTH0~PCNTH2 PPG 状態制御レジスタ(下位) bit リード/ライト 初期値 7 - 6 - 5 4 3 2 1 0 IREN IRQF IRS1 IRS0 POEN OSEL R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 PCNTL0~PCNTL2 263 第 13 章 16 ビット PPG タイマ 13.4.1 PPG ダウンカウンタレジスタ(PDCRH, PDCRL0 ∼ PDCRL2) PPG ダウンカウンタレジスタ(PDCRH, PDCRL0 ∼ PDCRL2)は , 16 ビット PPG ダウンカウンタのカウント値を読み出すために使用する 16 ビットレジスタです。 ■ PPG ダウンカウンタレジスタ(PDCRH, PDCRL0 ∼ PDCRL2) 図 13.4-2 PPG ダウンカウンタレジスタ(PDCRH, PDCRL0 ∼ PDCRL2) PPG ダウンカウンタレジスタ(上位) bit 15 リード/ライト 初期値 14 13 12 11 10 9 8 DC15 DC14 DC13 DC12 DC11 DC10 DC09 DC08 R 1 R 1 R 1 R 1 R 1 R 1 R 1 R 1 PDCRH0~PDCRH2 PPG ダウンカウンタレジスタ(下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 DC07 DC06 DC05 DC04 DC03 DC02 DC01 DC00 R 1 R 1 R 1 R 1 R 1 R 1 R 1 R 1 PDCRL0~PDCRL2 これらのレジスタは , 16 ビットダウンカウンタの値を格納するために使用する 16 ビッ トレジスタです。これらのレジスタの初期値は , すべて "1" です。これらのレジスタへ アクセスする場合は , ワードアクセス命令をご使用ください。これらのレジスタは , 読 出し専用レジスタです。 264 第 13 章 16 ビット PPG タイマ 13.4.2 PPG 周期設定バッファレジスタ (PCSRH, PCSRL0 ∼ PCSRL2) PPG 周期設定バッファレジスタは , PPG で生成される出力パルスの周期を設定する ために使用します。 ■ PPG 周期設定バッファレジスタ(PCSRH, PCSRL0 ∼ PCSRL2) 図 13.4-3 PPG 周期設定バッファレジスタ(PCSRH, CSRL0 ∼ CSRL2) PPG 周波数設定バッファレジスタ (上位) bit 15 リード/ライト 初期値 14 13 12 11 10 9 8 CS15 CS14 CS13 CS12 CS11 CS10 CS09 CS08 W X W X W X W X W X W X W X W X PCSRH0~PCSRH2 PPG 周波数設定バッファレジスタ (下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 CS07 CS06 CS05 CS04 CS03 CS02 CS01 CS00 W X W X W X W X W X W X W X W X PCSRL0~PCSRL2 これらのレジスタは , PPG で生成される出力パルスの周期を設定するために使用する 16 ビットレジスタです。これらのレジスタの初期値は不定なので , 動作を開始する前 にレジスタに値を設定しなければなりません。これらのレジスタへアクセスする場合 は , ワードアクセス命令をご使用ください。これらのレジスタは , 書込み専用レジスタ です。 PPG 周期設定バッファレジスタから周期設定レジスタへのデータ転送は , カウンタボ ロー , トリガまたは再トリガが発生した場合に実行されます。 PPG 周期設定バッファレジスタを更新する場合は , この PPG 周期設定バッファレジス タを更新した後に , この更新値をデューティ設定バッファレジスタに書き込まなけれ ばなりません。すなわち , PPG 周期設定バッファレジスタのみの更新は禁止されてい ます。 265 第 13 章 16 ビット PPG タイマ 13.4.3 PPG デューティ設定バッファレジスタ (PDUTH, PDUTL0 ∼ PDUTL2) PPG デューティ設定バッファレジスタは , PPG で生成される出力パルスのデュー ティ比を制御するために使用します。 ■ PPG デューティ設定バッファレジスタ(PDUTH, PDUTL0 ∼ PDUTL2) 図 13.4-4 PPG デューティ設定バッファレジスタ(PDUTH, PDUTL0 ∼ PDUTL2) PPG デューティ設定バッファレジスタ (上位) bit 15 リード/ライト 初期値 14 13 12 11 10 9 8 DU15 DU14 DU13 DU12 DU11 DU10 DU09 DU08 W X W X W X W X W X W X W X W X PDUTH0~PDUTH2 PPGデューティ設定バッファレジスタ (下位) bit 7 6 5 4 3 2 1 0 DU07 DU06 DU05 DU04 DU03 DU02 DU01 DU00 W X W X W X W X W X W X W X W X リード/ライト 初期値 PDUTL0~PDUTL2 これらのレジスタは , PPG で生成される出力パルスのデューティ比を制御するために 使用する 16 ビットレジスタです。これらのレジスタの初期値は不定なので , 動作を開 始する前にレジスタに値を設定しなければなりません。これらのレジスタへアクセス する場合は , ワードアクセス命令をご使用ください。これらのレジスタは , 書込み専用 レジスタです。 PPG デューティ設定バッファレジスタからデューティ設定レジスタへのデータ転送 は , カウンタボロー , トリガまたは再トリガが発生した場合に実行されます。 PPG 周期設定レジスタとデューティ設定レジスタに同じ値を設定すると , 通常極性の 場合はすべて "H" を出力し , 反転極性の場合は全て "L" を出力します。 PPG の出力は , "PCSR < PDUT" の場合は不定です。 PPG 周期設定バッファレジスタを更新しない場合は , PPG デューティ設定バッファレ ジスタへの書込みは可能です。 266 第 13 章 16 ビット PPG タイマ PPG 状態制御レジスタ(PCNTH, PCNTL0 ∼ PCNTL2) 13.4.4 PPG 状態制御レジスタは , 16 ビット PPG タイマの許可 / 禁止 , ソフトウェアトリガ , 再トリガ制御割込みおよび出力極性に関する動作状態を設定するために使用します。 また状態チェックのためにも使用します。 ■ PPG 状態制御レジスタ , 上位バイト(PCNTH0 ∼ PCNTH2) 図 13.4-5 PPG 状態制御レジスタ , 上位(PCNTH0 ∼ PCNTH2) bit 15 14 13 12 11 10 9 8 CNTE STGR MDSE RTRG CKS2 CKS1 CKS0 PGMS R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B PGMS PPG出力マスク許可ビット 0 PPG出力マスク禁止する 1 PPG出力マスク許可する CKS2 CKS1 CKS0 0 0 0 0 0 1 φ/2(125ns,φ=16MHz) 0 1 0 φ/4(250ns,φ=16MHz) 0 1 1 1 0 0 φ/16(1µs,φ=16MHz) 1 0 1 φ/32(2µs,φ=16MHz) 1 1 0 φ/64(4µs,φ=16MHz) 1 1 1 φ/128(8µs,φ=16MHz) カウンタクロック選択ビット φ(62.5ns,φ=16MHz) φ/8(500ns,φ=16MHz) φ:マシンクロック RTRG 0 再トリガ禁止する 1 再トリガ許可する MDSE モード選択ビット 0 PWMモード 1 ワンショットモード STGR ソフトウェアトリガビット 書込み 0 ソフトウェアトリガOFF 1 ソフトウェアトリガON CNTE R/W :リード/ライト :初期値 再トリガ許可ビット 読出し 常に"0"読出す タイマ許可ビット 0 PPGタイマを停止する 1 PPGタイマを許可にする 267 第 13 章 16 ビット PPG タイマ 表 13.4-1 PPG 状態制御レジスタ , 上位(PCNTH0 ∼ PCNTH2) ビット名 機 能 • • • このビットは , PPG タイマ動作を許可するために使用します。 このビットに "0" を設定した場合 : 動作が停止します。 このビットに "1" を設定した場合 : PPG 動作が " 許可 " になり , PPG 動作がトリガによって開始されますの を待つ状態になります。 bit15 CNTE: タイマ許可 ビット bit14 STGR: ソフトウェア トリガビット • • • このビットは , PPG をソフトウェアで起動するために使用します。 このビットに "1" を設定した場合 :PPG がソフトウェアで起動します。 このビットからは必ず "0" が読み出されます。 bit13 MDSE: モード選択 ビット • • このビットに "0" を設定した場合 :PPG は PWM モードで動作します。 このビットに "1" を設定した場合 :PPG はワンショットモードで動作しま す。 bit12 RTRG: 再トリガ許可 ビット • • • このビットは , 動作中に PPG の再トリガ機能を許可するために使用します。 このビットに "0" を設定した場合 : 再トリガ機能は " 禁止 " になります。 このビットに "1" を設定した場合 : 再トリガ機能は " 許可 " になります。 CKS2, CKS1, CKS0: カウンタク ロック選択 ビット • bit11 ∼ bit9 これらのビットは , 16 ビット PPG タイマの動作クロックを選択するために 使用します。 このビットは , モード設定(PCNTH0 ∼ PCNTH2 レジスタの MDSE:bit13), 周期設定(PCSRH, L)またはデューティ設定(PDUTH, L)とは無関係に特 定レベルへの PPG 出力をマスクするために使用します。 • このビットに "0" を設定した場合 :PPG 出力マスク機能は " 禁止 " になりま す。 • このビットに "1" を設定した場合 :PPG 出力は , 極性設定が " 通常 " (PCNTL レジスタ OSEL:bit=0)の場合は必ず "L" がマスクされます。 • このビットに "1" を設定した場合 :PPG 出力は , 極性設定が " 反転 " (PCNTL レジスタ OSEL:bit=0)の場合は必ず "H" がマスクされます。 ( 注意事項 ) PPG 周期設定バッファレジスタ(PCSRH, L)と PPG デューティ設定バッ ファレジスタ(PDUTH, L)に同じ値を設定すると , このビットが "1" 場合 で , かつ通常極性の場合はオール "H" を出力でき , 反転極性の場合はオール "L" を出力できます。 • bit8 268 PGMS: PPG 出力マス ク許可ビット 第 13 章 16 ビット PPG タイマ ■ PPG 状態制御レジスタ , 下位バイト(PCNTL0 ∼ PCNTL2 ) 図 13.4-6 PPG 状態制御レジスタ , 下位(PCNTL0 ∼ PCNTL2) bit 7 6 5 4 3 2 1 0 - - IREN IRQF IRS1 IRS0 POEN OSEL - - R/W R/W R/W R/W R/W R/W OSEL 出力反転ビット 0 通常極性 1 反転極性 POEN 出力許可ビット 0 汎用入出力ポート 1 PPG出力端子 IRS1 IRS0 割込みの種類 0 0 ゲートトリガ,ソフトウェアトリガ, 再トリガ(チャネル0のみ) 0 1 1 0 1 1 IRQF R/W :リード/ライト - :未使用 :初期値 初期値 --000000B カウンタボロー 通常極性でのPPG出力立上りまたは 反転極性でのPPG出力立下り (デューティ一致) カウンタボローまたは通常極性での PPG出力立上りまたは反転極性での PPG出力立下り PPG割込み要求フラグ 読出し 書込み 0 PPG割込みが生成されない このビットを クリアする 1 PPG割込みが生成されます このビットを 影響を与えない IREN PPG割込み要求許可フラグ 0 割込み要求を禁止にする 1 割込み要求を許可にする 269 第 13 章 16 ビット PPG タイマ 表 13.4-2 PPG 状態制御レジスタ , 下位(PCNTL0 ∼ PCNTL2) ビット名 bit7, bit6 未使用ビット bit5 IREN: PPG 割込み要 求許可ビット bit4 IRQF: PPG 割込みフ ラグビット bit3, bit2 IRS1, IRS0: 割込み選択 ビット bit1 POEN: 出力許可ビッ ト bit0 OSEL: 出力反転ビッ ト 機 能 • • 読出し値は不定です。 このビットへの書みは動作へ影響しません。 • • このビットは , CPU への PPG 割込み要求を許可または禁止します。 このビットと割込みフラグ(IRQF)ビットが "1" の場合 , PPG は割込み要求 を出力します。 • • • • • このビットは , PPG 割込みが発生すると "1" に設定されます。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : このビットは影響を受けません。 リードモディファイライト動作時は必ず "1" が読み出されます。 このビットは , EI2OS がアクティブになった場合にもクリアされます。 • これらのビットは , PPG タイマの割込み動作を選択するために使用します。 • • • このビットは , PPG 出力端子からの出力を許可または禁止します。 このビットに "0" を設定した場合 : 端子は汎用ポートとして機能します。 このビットに "1" を設定した場合 : 端子は PPG タイマ出力端子として機能 します。 • • このビットは , PPG 出力端子の極性を選択します。 このビットに "0" を設定した場合 : 通常極性が選択されます。PPG は , 16 ビットダウンカウント値が PDUTH, L レジスタよりも大きい場合は "L" を出 力し , 16 ビットダウンカウント値が PDUTH, L レジスタ以下の場合は "H" を 出力します。 このビットに "1" を設定した場合 :PPG 出力は反転します。 • 270 第 13 章 16 ビット PPG タイマ 13.5 16 ビット PPG タイマ割込み 16 ビット PPG タイマは , 以下の場合に割込み要求を生成できます。 • トリガまたはカウンタボローが発生した場合 • 通常極性で PPG 立上りが発生した場合 • 反転極性で PPG 立下りが発生した場合 これらの割込み動作は PCNTL0 ∼ PCNTL2 レジスタの IRS1:bit3 と , IRS0:bit2 で 設定されます。また 16 ビット PPG タイマは , 拡張インテリジェント I/O サービス (EI2OS)とも連係しています。 ■ 16 ビット PPG タイマ割込み 16 ビット PPG タイマの割込み制御ビットと割込み要因を表 13.5-1 に示します。 表 13.5-1 16 ビット PPG タイマの割込み制御ビットと割込み要因 16 ビット PPG タイマ 0 16 ビット PPG タイマ 1 16 ビット PPG タイマ 2 割込みフラグビット PCNTL0:IRQF(bit4) PCNTL1:IRQF(bit4) PCNTL2:IRQF(bit4) 割込み要求許可ビット PCNTL0:IREN(bit5) PCNTL1:IREN(bit5) PCNTL2:IREN(bit5) 割込み種類選択ビット 割込み要因 PCNTL0:IRS1, IRS0 (bit3, bit2) PCNTL1:IRS1, IRS0 (bit3, bit2) PCNTL2:IRS1, IRS0 (bit3, bit2) PCNTL0:IRS1, IRS0=00 16 ビットダウンカウンタ (ch.0)のゲートトリガ , ソフトウェアトリガ , 再 トリガ PCNTL1:IRS1, IRS0=00 16 ビットダウンカウンタ (ch.1)のソフトウェアト リガ , 再トリガ PCNTL2:IRS1, IRS0=00 16 ビットダウンカウンタ (ch.2)のソフトウェアト リガ , 再トリガ PCNTL0:IRS1, IRS0=00 16 ビットダウンカウンタ (ch.0)のカウンタボロー PCNTL1:IRS1, IRS0=01 16 ビットダウンカウンタ (ch.1)のカウンタボロー PCNTL2:IRS1, IRS0=00 16 ビットダウンカウンタ (ch.2)のカウンタボロー PCNTL0:IRS1, IRS0=00 通常極性での PPG0 出力 立上りまたは反転極性で の PPG0 出力立下り PCNTL1:IRS1, IRS0=00 通常極性での PPG1 出力 立上りまたは反転極性で の PPG1 出力立下り PCNTL2:IRS1, IRS0=00 通常極性での PPG2 出力 立上りまたは反転極性で の PPG2 出力立下り 16 ビットダウンカウンタ 16 ビットダウンカウンタ 16 ビットダウンカウンタ (ch.0)のカウンタボロー (ch.1)のカウンタボロー (ch.2)のカウンタボロー または通常極性での PPG0 または通常極性での PPG1 または通常極性での PPG2 出力立上りまたは反転極 出力立上りまたは反転極 出力立上りまたは反転極 性での PPG2 出力立下り 性での PPG1 出力立下り 性での PPG0 出力立下り 16 ビット PPG タイマでは , PPG 状態制御レジスタ(PCNTL)の IRQF:bit4 に "1" が設 定され , 割込み要求が許可されると(PCNTL レジスタの IREN:bit5=1), 割込み要求が 割込みコントローラへ出力されます。 271 第 13 章 16 ビット PPG タイマ ■ 16 ビット PPG タイマ割込みと EI2OS 16 ビット PPG タイマ割込みと EI2OS を表 13.5-2 に示します。 表 13.5-2 16 ビット PPG タイマ割込みと EI2OS 割込み制御レジスタ チャネル 16 ビット PPG タイマ 0*1 16 ビット PPG タイマ 1 *2 16 ビット PPG タイマ 2*3 割込み 番号 ベクトルテーブルアドレス EI2OS レジスタ 名 アドレス 下位 中位 上位 #14 (0EH) ICR01 0000B1H FFFFC4H FFFFC5H FFFFC6H #16 (10H) ICR02 0000B2H FFFFBCH FFFFBDH FFFFBEH #32 (20H) ICR10 0000BAH FFFF7CH FFFF7DH FFFF7EH ○ *1 :16 ビット PPG タイマ 0 に割当てられた割込み制御レジスタと同じレジスタが PWC タイマ 0 に割当てられ ます。 *2 :16 ビット PPG タイマ 1 に割当てられた割込み制御レジスタと同じレジスタが 16 ビットアウトプットコン ペアチャネル 1 一致に割当てられます。 *3 :16 ビット PPG タイマ 2 に割当てられた割込み制御レジスタと同じレジスタが 16 ビットフリーランタイマ 0 検出に割当てられます。 ■ 16 ビット PPG タイマの EI2OS 機能 16 ビット PPG タイマは EI2OS と連係する回路を持っているので , カウンタは , PPG 割 込みが発生すると EI2OS を起動できます。 ただし , EI2OS は , 割込み制御レジスタ(ICR)を共用するほかのリソースが割込みを 使用しない場合に限り使用可能です。たとえば , 16 ビット PPG タイマ 0 が EI2OS を使 用している場合 , アウトプットコンペアチャネル 0 一致の割込みは , 禁止にしなければ なりません。 272 第 13 章 16 ビット PPG タイマ 13.6 16 ビット PPG タイマの動作 16 ビット PPG タイマは , PWM モードまたはワンショットモードで動作します。ま た , 16 ビット PPG タイマでは再トリガを使用することもできます。 ■ PWM モード(PCNTH レジスタの MDSE:bit13=0) PWM 動作の場合 , 16 ビットダウンカウンタは , PCSR 値がロードされ , 有効なトリガが 検出された後 , カウントを開始します。16 ビットダウンカウンタは , “0” に達したら , PCSR 値がリロードされ , カウントを反復します。PPG 出力は , 16 ビットダウンカウン タに PCSR 値がリロードされますと , 切り換わります。出力パルスの周期は PCSRH, PCSRL レジスタを設定することで制御でき , デューティ比は PDUTH, PDUTL レジス タを設定することで制御できます。 ● 再トリガを無効にする(PCNTH レジスタの RTRG:bit12=0) 図 13.6-1 PWM モードにおいて再トリガを無効にする カウンタ値 m n 0 時間 立上りエッジが検出されます トリガが無視されます ソフトウェアトリガ PPG (通常極性) (反転極性) (1) (2) (1)=(n+1)*Tns (2)=(m+1)*Tns T:カウントクロック周期 m:PCSRH,Lレジスタ値 n:PDUTH,Lレジスタ値 273 第 13 章 16 ビット PPG タイマ ● 再トリガを有効にする(PCNTH レジスタの RTRG:bit12=1) 図 13.6-2 PWM モードにおいて再トリガを有効にする カウンタ値 m n 0 時間 立上りエッジが検出されます トリガで再起動されます ソフトウェアトリガ PPG (通常極性) PPG (反転極性) (1) (2) T:カウントクロック周期 m:PCSRH,Lレジスタ値 n:PDUTH,Lレジスタ値 (1)=(n+1)*Tns (2)=(m+1)*Tns ■ ワンショットモード(PCNTH レジスタの MDSE:bit13=1) ワンショット動作の場合 , 指定された幅の単一パルスを有効なトリガで出力できます。 再トリガを有効にすると , 動作中にエッジが検出された場合 , カウンタに値がリロード されます。 ● 再トリガを無効にする(PCNTH レジスタの RTRG:bit12=0) 図 13.6-3 シングルショットモードにおいて再トリガを無効にする カウンタ値 m n 0 時間 立上りエッジが検出されます トリガが無視されます ソフトウェアトリガ PPG (通常極性) PPG (反転極性) (1) (2) (1)=(n+1)*Tns (2)=(m+1)*Tns 274 T:カウントクロック周期 m:PCSRH,Lレジスタ値 n:PDUTH,Lレジスタ値 第 13 章 16 ビット PPG タイマ ● 再トリガを有効にする(PCNTH レジスタの RTRG:bit12=1) 図 13.6-4 ワンショットモードにおいて再トリガを有効にする カウンタ値 m n 0 時間 立上りエッジが検出されます トリガが再起動されます ソフトウェアトリガ PPG (通常極性) PPG (反転極性) (1) (2) (1)=(n+1)*Tns (2)=(m+1)*Tns T:カウントクロック周期 m:PCSRH,Lレジスタ値 n:PDUTH,Lレジスタ値 ■ ゲートトリガ(PPG チャネル 0 の場合のみ) ゲートトリガを使用した場合 , PPG はゲートトリガの立上がりエッジが検出されると 動作を開始し , ゲートトリガの立下りエッジが検出されると動作を停止します。PPG は , その次の立上りエッジで動作を再開します。 図 13.6-5 再トリガを有効にした場合の PWM モードにおけるゲートトリガ カウンタ値 m n 0 時間 立上りエッジが検出されます 立下りエッジが検出されます ソフトウェアトリガ PPG (通常極性) (反転極性) (1) (2) (1)=(n+1)*Tns (2)=(m+1)*Tns T:カウントクロック周期 m:PCSRH,Lレジスタ値 n:PDUTH,Lレジスタ値 275 第 13 章 16 ビット PPG タイマ ■ PPG 割込み 割込み種類選択ビット(PCNTL レジスタの IRS1, IRS0:bit3, bit2)で選択された 1 つの 割込みフラグ(PCNTL レジスタの IRQF:bit4)を共用する割込みとしては , 以下の 4 種 類があります。 • ゲートトリガ(PPG チャネル 0 の場合のみ), ソフトウェアトリガまたは再トリガ • カウンタボロー • デューティ一致(通常極性において PPG 出力立上りが発生した場合または反転極性 において PPG 出力立下りが発生した場合) • カウンタボローまたはデューティ一致 図 13.6-6 PPG 割込みタイミング ソフトウェア トリガ ロード カウントクロック カウンタ値 PPG出力 割込み (ソフトウェアトリガ による) 割込み (デューティ一致による) 割込み (カウンタボローによる) 276 0002H 0001H 0000H 0002H 第 13 章 16 ビット PPG タイマ 13.7 16 ビット PPG タイマ使用上の注意 16 ビット PPG タイマ使用上の注意を以下に示します。 ■ 16 ビット PPG タイマ使用上の注意 ● プログラム設定上の注意 • PPG 周期設定バッファレジスタ(PCSRH, PCSRL)を更新する場合は , この PPG 周 期設定バッファレジスタを更新した後 , この更新値を PPG デューティ設定バッファ レジスタ(PDUTH, PDUTL)に書き込まなければなりません。すなわち , PCSRH, PCSRL レジスタのみの更新は禁止されています。 • PPG デューティ設定バッファレジスタ(PDUTH, PDUTL)へは , 必ず PPG 周期設定 バッファレジスタ(PCSRH, PCSRL)以下の値を設定してください。PCSRH, PCSRL の値よりも大きい値を設定すると , PPG 出力は不定になります。 • PPG が停止したとき(PCNTH レジスタの CNTE:bit15=0)は , PPG 状態制御レジス タ(PCNTH)の CKS2 ∼ CKS0:bit11 ∼ bit9 を変更してください。 ● 割込みについての注意 • PPG 状態制御レジスタ(PCNTL)の IRQF:bit4 に "1" を設定し , 次に割込み要求を有 効にすると(PCNTL レジスタの IREN:bit5=1), 制御は割込み処理から戻ることがで きません。したがって , IRQF:bit4 は必ずクリアしてください。 • 16 ビット PPG タイマは割込みベクトルをほかのリソースと共用するので , 割込みを 使用する場合は , 割込み処理ルーチンで割込み要因を注意深くチェックしなければ なりません。 • また , 16 ビット PPG タイマで EI2OS を使用する場合は , 共用リソース割込みを無効 にしなければなりません。 277 第 13 章 16 ビット PPG タイマ 13.8 16 ビット PPG タイマのプログラム例 16 ビット PPG タイマのプログラム例を示します。 ■ 16 ビット PPG タイマのプログラム例 ● 処理 • 66% デューティ比の 160kHz 時における出力は , 16 ビット PPG タイマ 0 によって生 成します。 • 本タイマは PWM モード時において割込みの繰返し生成に使用します。 • 本タイマはソフトウェアトリガによって開始します。 • EI2OS を使用しません。 • 16 MHz はマシンクロック用 , 62.5ns はカウントクロック用です。 ● コーディング例 ICR01 EQU 0000B1H ;16 ビット PPG タイマ用割込み制御レジスタ PCSRL0 EQU 00003AH ;PPG 周期設定バッファレジスタ PDUTL0 EQU 00003CH ;PPG デューティ設定バッファレジスタ PCNTL0 EQU 00003EH ;PPG 制御状態レジスタ IRQF EQU PCNTL0:4 ; 割込み要求フラグビット ;---------- メインプログラム -----------------------------------------CODE CSEG START: ; : ; スタックポインタ (SP) が既に初期化されているものと仮定 CCR,#0BFH ; 割込み禁止 I:ICR01,#00H ; 割込みレベル 0(最強) I:PCSRL0,#0063H;PPG 出力の周期を設定 I:PDUTL0,#003BH;PPG 出力のデューティ比の設定 I:PCNTL0,#00110001B ; 通常極性時における PPG 出力を許可 ;16 ビット PPG タイマと 62.5ns クロックを有効 ; ソフトウェアが PPG をトリガ ;PWM モードを選択 , 割込みを許可 ; 割込みフラグをクリア , カウンタ開始 MOV ILM,#07H ;PS の ILM をレベル 7 に設定 OR CCR,#40H ; 割込み許可 LOOP: MOV A,#00H ; 無限ループ MOV A,#01H ; BRA LOOP ; ;---------- 割込みプログラム -----------------------------------------WARI: CLRB I:IRQF ; 割込み要求フラグをクリア ; : ; ユーザ処理 ; : RETI ; 割込みから復帰 AND MOV MOVW MOVW MOVW CODE 278 ENDS 第 13 章 16 ビット PPG タイマ ;---------- ベクタ設定 ----------------------------------------------VECT CSEG ABS=0FFH ORG 0FFC4H ; 割込み #14(0EH)用ベクタを設定 VECT DSL ORG DSL DB ENDS END WARI 0FFDCH START 00H ; リセットベクタを設定 ; シングルチップモードを設定 START 279 第 13 章 16 ビット PPG タイマ 280 第 14 章 多機能タイマ 多機能タイマの機能と動作について説明します。 14.1 多機能タイマの概要 14.2 多機能タイマのブロックダイヤグラム 14.3 多機能タイマの端子 14.4 多機能タイマのレジスタ 14.5 多機能タイマ割込み 14.6 多機能タイマの動作 14.7 多機能タイマ使用上の注意 14.8 多機能タイマのプログラム例 281 第 14 章 多機能タイマ 14.1 多機能タイマの概要 多機能タイマは , 1 つの 16 ビットフリーランタイマ , 6 つの 16 ビットアウトプット コンペア , 4 つの 16 ビットインプットコンペア , 1 チャネルの 16 ビット PPG タイ マおよび 1 つの波形ジェネレータから構成されています。この波形ジェネレータを 使用すると , 12 個の別々の波形を 16 ビットフリーランタイマから出力でき , また入 力パルス幅と外部クロックサイクルを測定することもできます。 ■ 16 ビットフリーランタイマ(× 1) • 16 ビットフリーランタイマは , 16 ビットアップ / アップダウンカウンタ , 制御レジ スタ , 16 ビットコンペアクリアレジスタ(バッファレジスタを持っています)およ びプリスケーラから構成されています。 • 8 種類のカウンタ動作クロック(φ, φ/2, φ/4, φ/8, φ/16, φ/32, φ/64, φ/128)を選択できま す(φ はマシンクロック)。 • コンペアクリア割込みは , コンペアクリアレジスタと 16 ビットフリーランタイマが 比較され , 一致した場合に生成されます。ゼロ検出割込みは , 16 ビットフリーラン タイマがカウント値 "0" を検出している間に生成されます。 • コンペアクリアレジスタは , 選択可能なバッファレジスタを持っています(この バッファレジスタに書き込まれたデータはコンペアクリアレジスタへ転送されま す)。16 ビットフリーランタイマが停止し , バッファにデータが書き込まれると , 転 送は直ちに実行されます。16 ビットフリーランタイマの動作中にタイマ値 "0" が検 出されると , バッファからデータが転送されます。 • アップカウントモードにおいてリセットやソフトウェアクリア , あるいはコンペア クリアレジスタとのコンペア一致が発生すると , カウンタ値は "0000H" にリセット されます。 • このカウンタの出力値は , 多機能タイマのアウトプットコンペアとインプットキャ プチャのクロックカウントとして使用できます。 ■ 16 ビットアウトプットコンペア(× 6) • 16 ビットアウトプットコンペアは , 6 つの 16 ビットコンペアレジスタ(選択可能な バッファレジスタを持っています), コンペア出力ラッチ , コンペア制御レジスタか ら構成されています。16 ビットフリーランタイマ値とコンペアレジスタが一致する と , 割込みが生成され , 出力レベルが反転します。 • 6 つのコンペアレジスタは , 別々に動作させることができます。 出力端子と割込みフラグは , 各コンペアレジスタに対応しています。 • 2 つのコンペアレジスタを対(ペア)にして出力端子を制御できます。 2 つのコンペアレジスタを一緒に使用することによって出力端子を反転させます。 • 各出力端子の初期値を設定できます。 • 割込みは , アウトプットコンペアレジスタが 16 ビットフリーランタイマと一致した 場合に生成されます。 282 第 14 章 多機能タイマ ■ 16 ビットインプットキャプチャ(× 4) インプットキャプチャは , 4 つの独立した外部入力端子と , この端子に対応するキャプ チャレジスタおよびキャプチャ制御レジスタから構成されています。外部端子におい て入力信号のエッジを検出すると , 16 ビットフリーランタイマの値をキャプチャレジ スタへ格納でき , また割込みも同時に生成されます。 • 外部入力信号の 3 種類のトリガエッジ(立上りエッジ , 立下りエッジおよびその両 方のエッジ)を選択でき , またトリガエッジが立上りエッジであるか立下りエッジ であるかを示すビットを持っています。 • 4 つの入力キャプチャを別々に動作させることができます。 • 割込みは , 外部入力からの有効なエッジが検出されると生成されます。 • チャネル 0 とチャネル 1 は , 割込み #33 を共用します。 • チャネル 2 とチャネル 3 は , 割込み #35 を共用します。 ■ 16 ビット PPG タイマ(× 1) 16 ビット PPG タイマ 0 は , 波形ジェネレータへ PPG 信号を供給するために使用しま す。16 ビット PPG タイマ 0 の詳細については , 「第 13 章 16 ビット PPG タイマ」を ご参照ください。 ■ 波形ジェネレータ 波形ジェネレータは , 3 つの 16 ビットデッドタイマレジスタ , 3 つのタイマ制御レジス タおよび 1 つの 16 ビット波形制御レジスタから構成されています。 波形ジェネレータは , リアルタイム出力 , 16 ビット PPG 波形出力 , ノンオーバラップ 3 相波形出力(インバータ制御用)および DC チョッパ波形出力を生成できます。 • 16 ビットデッドタイマのデッドタイムに基づいてノンオーバラップ波形出力を生 成できます(デッドタイムタイマ機能) 。 • 2 チャネルモード時にリアルタイムアウトプットを動作させることにより , ノンオー バラップ波形出力を生成できます(デッドタイムタイマ機能) 。 • リアルタイムアウトプットコンペア一致を検出すると , GATE 信号が生成され , この 信号により PPG タイマの動作が開始または停止します(GATE 機能) 。 • リアルタイムアウトプットコンペア一致が検出されると , 16 ビットデッドタイマが アクティブになり , PPG 動作の制御用 GATE 信号を生成することによって , PPG タ イマを容易に開始または停止させることができます(GATE 機能) 。 • DTTI 端子を使用することによって強制的に停止を制御できます。 283 第 14 章 多機能タイマ 14.2 多機能タイマのブロックダイヤグラム 多機能タイマのブロックダイヤグラムを示します。 ■ 多機能タイマのブロックダイヤグラム 図 14.2-1 多機能タイマのブロックダイヤグラム リアルタイム I/O 割込み 割込み 割込み 割込み 割込み 割込み 16 ビットアウト プットコンペア #12 #15 #17 #19 #21 #23 アウトプットコンペア0 アウトプットコンペア1 アウトプットコンペア2 アウトプットコンペア3 アウトプットコンペア4 アウトプットコンペア5 RT0~5 内部データバス バッファからの データ転送 カウンタ値 16 ビット フリーラン タイマ ゼロ検出 コンペアクリア 284 RT01 端子 RT01(X) RT02 端子 RT02(V) RT03 端子 RT03(Y) RT04 端子 RT04(W) RT05 端子 RT05(Z) DTTI 端子 INT0/DTTI0 割込み #29 割込み #20 A/Dトリガ A/Dトリガ EXCK カウンタ値 端子 RT00(U) RT0~5 波形 ジェネレータ 割込み #31 割込み #34 RT00 割込み #33 割込み #35 16ビットデッドタイマ 0,1,2 DTTI0立下りエッジ検出 PPG0 PPG0 GATE GATE 端子 FRCK インプットキャプチャ0,1 インプットキャプチャ2,3 IN0 端子 IN0 16 ビットインプット キャプチャ IN1 端子 IN1 IN2 端子 IN2 IN3 端子 IN3 第 14 章 多機能タイマ ■ 16 ビットフリーランタイマのブロックダイヤグラム 図 14.2-2 16 ビットフリーランタイマのブロックダイヤグラム φ STOP MODE STOP UP/UP-DOWN SCLR CLK2 CLK1 プリスケーラ CLK0 CLR 停止 アップ/アップダウン 16ビットフリーランタイマ ゼロ検出回路 ゼロ検出(アウトプットコンペアへ) CK インプットキャプチャおよび アウトプットコンペアへ 内部データバス 転送 16ビットコンペアクリア レジスタ コンペア回路 コンペアクリア一致 (アウトプットコンペアへ) 16ビットコンペアクリア バッファレジスタ I0 I1 セレクタ I1 I0 O 割込み #31(1FH) セレクタ O I0 I1 O 割込み #34(22H) セレクタ マスク回路 A/Dトリガ MSI2 MSI1 MSI0 ICLR ICRE IRQZF IRQZE I0 I1 O セレクタ 285 第 14 章 多機能タイマ ■ 16 ビットアウトプットコンペアのブロックダイヤグラム 図 14.2-3 16 ビットアウトプットコンペアのブロックダイヤグラム フリーランタイマからのカウント値 内部データバス BTS0 BUF0 コンペアバッファレジスタ フリーランタイマからの ゼロ検出 フリーランタイマからの コンペアクリア一致 I0 転送 コンペアレジスタ0,2,4 O I1 セレクタ BTS1 BUF1 コンペア回路 I0 O コンペアバッファレジスタ 転送 コンペアレジスタ1,3,5 I1 セレクタ CMOD コンペア回路 IOP1 IOP0 IOE1 T Q T Q RT00,2,4 (波形ジェネレータ) RTO1,3,5 (波形ジェネレータ) IOE0 割込み #12,#17,#21 #15,#19,#23 ■ 16 ビットインプットキャプチャのブロックダイヤグラム 図 14.2-4 16 ビットインプットキャプチャのブロックダイヤグラム フリーランタイマからのカウント値 内部データバス IN0,2 エッジ検出 キャプチャレジスタ0,2 EG11 EG10 EG01 エッジ検出 キャプチャレジスタ1,3 ICP0 ICP1 ICE0 EG00 IEI1 IEI0 IN1,3 ICE1 割込み #33,#35 #33,#35 286 第 14 章 多機能タイマ ■ 波形ジェネレータのブロックダイヤグラム 図 14.2-5 波形ジェネレータのブロックダイヤグラム DCK2 φ DCK1 DCK0 分周器 NRSL DTIF DTIE NWS1 DTTI 制御回路 PICSH01 DTCR0 TMD8 TMD7 TMD6 SIGCR NWSO ノイズキャンセル DTTI PGEN1 PGEN0 GTEN5 GTEN4 GATE0,1 GATE (PPG0へ) TO0 波形制御 RT0 セレクタ 16ビット タイマ0 コンペア回路 セレクタ 出力制御 TO1 RT1 RT01(X) U 16ビットデッドタイマレジスタ0 RT00(U) デッドタイムジェネレータ X TMD4 TMD3 GTEN3 GTEN2 PICSH01 PGEN3 PGEN2 GATE 2/3 TO2 波形制御 RT2 TO3 RT3 セレクタ 16ビット タイマ1 コンペア回路 セレクタ 出力制御 内部データバス DTCR1 TMD5 RT03(Y) V 16ビットデッドタイマレジスタ1 RT02(V) デッドタイムジェネレータ Y TMD2 TMD1 TMD0 GTEN1 GTEN0 GATE 4/5 PICSH01 PGEN5 PGEN4 TO4 波形制御 RT4 TO5 RT5 セレクタ 16ビット タイマ2 コンペア回路 セレクタ W 16ビットデッドタイマレジスタ2 出力制御 DTCR2 RT04(W) RT05(Z) デッドタイムジェネレータ PPG0 Z 287 第 14 章 多機能タイマ 14.3 多機能タイマの端子 多機能タイマの端子について説明します。また端子のブロックダイヤグラムも示し ます。 ■ 多機能タイマの端子 表 14.3-1 多機能タイマの端子 端子名 P10/INT0/ DTTI0 端子機能 I/O 形式 ポート 1 入出力 , 外部割込み入力 , DTTI0 プルアップ オプション スタンバイ 制御 端子設定 端子を入力ポートとして設 定する (DDR1:bit0=0) 選択可能 P17/FRCK ポート 1 入出力 , 外部クロック 端子を入力ポートとして設 定する (DDR1:bit7=0) P24/IN0 ポート 2 入出力 , インプットキャ プチャ 0 端子を入力ポートとして設 定する (DDR2:bit4=0) CMOS 出力 , CMOS ヒステ リシス入力 P25/IN1 ポート 2 入出力 , インプットキャ プチャ 1 P26/IN2 ポート 2 入出力 , インプットキャ プチャ 2 P27/IN3 ポート 2 入出力 , インプットキャ プチャ 3 P30/RTO0 (U) ポート 3 入出力 , RTO0 P31/RTO1 (X) ポート 3 入出力 , RTO1 RTO1 出力を設定する (OCS1:OTE1=1) P32/RTO2 (V) ポート 3 入出力 , RTO2 RTO2 出力を設定する (OCS3:OTE0=1) P33/RTO3 (Y) ポート 3 入出力 , RTO3 P34/RTO4 (W) ポート 3 入出力 , RTO4 RTO4 出力を設定する (OCS5:OTE0=1) P35/RTO5 (Z) ポート 3 入出力 , RTO5 RTO5 出力を設定する (OCS5:OTE1=1) DDRx: ポート方向レジスタ OCSx: コンペア制御レジスタ 288 端子を入力ポートとして設 定する (DDR2:bit5=0) 端子を入力ポートとして設 定する (DDR2:bit6 =0) あり なし CMOS 出力 , CMOS 入力 端子を入力ポートとして設 定する (DDR2:bit7=0) RTO0 出力を設定する (OCS1:OTE0=1) RTO3 出力を設定する (OCS3:OTE1=1) 第 14 章 多機能タイマ ■ 多機能タイマ端子のブロックダイヤグラム 図 14.3-1 P10/INT0/DTTI および P17/FRCK のブロックダイヤグラム RDR 内部データバス リソース入力 リソース出力 リソース出力許可信号 ポートデータレジスタ(PDR) プルアップ 抵抗 約50kΩ PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) 図 14.3-2 P24/IN0 ∼ P27/IN3 のブロックダイヤグラム リソース出力 リソース入力 リソース出力許可信号 ポートデータレジスタ(PDR) 内部データバス PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) 図 14.3-3 P30/RTO0 ∼ P35/RTO5 のブロックダイヤグラム RDR リソース出力 内部データバス ポートデータレジスタ(PDR) リソース入力 リソース出力許可信号 プルアップ 抵抗 約50kΩ PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) 289 第 14 章 多機能タイマ 14.4 多機能タイマのレジスタ 多機能タイマのレジスタについて説明します。 ■ 16 ビットフリーランタイマのレジスタ 図 14.4-1 16 ビットフリーランタイマのレジスタ コンペアクリアバッファレジスタ,コンペアクリアレジスタ (上位) bit (CPCLRBH) リード/ライト (CPCLRH) 初期値 15 14 13 12 11 10 9 8 CL15 CL14 CL13 CL12 C L11 CL10 C L09 CL08 W R 1 W R 1 W R 1 W R 1 W R 1 W R 1 W R 1 W R 1 CPCLRBH/CPCLRH コンペアクリアバッファレジスタ,コンペアクリアレジスタ(下位) 7 6 5 4 3 2 1 0 ビット番号 CL07 CL06 CL05 CL04 CL03 CL02 CL01 CL00 CPCLRBL/CPCLRL W R 1 W R 1 W R 1 W R 1 W R 1 W R 1 W R 1 W R 1 bit 15 14 13 12 11 10 9 8 T15 T14 T13 T12 T11 T 10 T09 T 08 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 7 6 5 4 3 2 1 0 T07 T 06 T05 T 04 T0 3 T02 T0 1 T 00 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 14 13 12 11 10 9 8 ECKE IRQZF IRQZE MSI2 MSI1 MSI0 ICLR ICRE R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 6 5 4 3 2 1 BFE STOP MODE SCLR CLK2 CLK1 C LK0 R/W 0 R/W 1 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 bit (CPCLRBL) リード/ライト (CPCLRL) 初期値 タイマデータレジスタ(上位) リード/ライト 初期値 TCDTH タイマデータレジスタ(下位) bit リード/ライト 初期値 TCDTL タイマ状態制御レジスタ (上位) bit 15 リード/ライト 初期値 TCCSH タイマ状態制御レジスタ (下位) bit リード/ライト 初期値 290 7 X 0 ビット番号 TCCSL 第 14 章 多機能タイマ ■ 16 ビットアウトプットコンペアのレジスタ 図 14.4-2 16 ビットアウトプットコンペアのレジスタ アウトプットコンペアバッファレジスタ,アウトプットコンペアレジスタ(上位) bit 15 14 13 12 11 10 9 8 OP15 OP14 OP13 OP12 OP11 OP10 OP09 OP08 R/W X R/W X R/W X R/W X R/W X R/W X R/W X R/W X リード/ライト 初期値 OCCPBH0~OCCPBH5/ OCCPH0~OCCPH5 アウトプットコンペアバッファレジスタ,アウトプットコンペアレジスタ(下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 OP07 OP06 OP05 OP04 OP03 OP02 OP01 OP00 R/W X R/W X R/W X R/W X R/W X R/W X R/W X R/W X OCCPBL0~OCCPBL5/ OCCPL0~OCCPL5 コンペア制御レジスタ1,3,5(上位) bit 15 リード/ライト 初期値 14 13 12 11 10 9 8 BTS1 BTS0 CMOD OTE1 OTE0 OTD1 OTD0 R/W 1 R/W 1 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 X OCSH1,OCSH3,OCSH5 コンペア制御レジスタ0,2,4(下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 IOP1 IOP0 IOE1 IOE0 BUF1 BUF0 CST1 CST0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 1 R/W 1 R/W 0 R/W 0 OCSL0,OCSL2,OCSL4 291 第 14 章 多機能タイマ ■ 16 ビットインプットキャプチャのレジスタ 図 14.4-3 16 ビットインプットキャプチャのレジスタ インプットキャプチャデータレジスタ(上位) bit 15 14 13 12 11 10 9 8 CP15 CP14 CP13 CP12 CP11 CP10 CP09 CP08 R X R X R X R X R X R X R X R X リード/ライト 初期値 IPCPH0~IPCPH3 インプットキャプチャデータレジスタ(下位) 7 6 5 4 3 2 1 0 CP07 CP06 CP05 CP04 CP03 CP02 CP01 CP00 R X R X R X R X R X R X R X R X 11 10 bit リード/ライト 初期値 IPCPL0~IPCPL3 インプットキャプチャ状態制御レジスタ(ch2,3)(上位) bit 15 リード/ライト 初期値 - X 14 - X 13 - X 12 - X - X 9 8 IEI3 IEI2 R 0 R 0 - X ICSH23 インプットキャプチャ状態制御レジスタ(ch2,3)(下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 ICP3 ICP2 ICE3 ICE2 EG31 EG31 EG21 EG20 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 ICSL23 PPG 出力制御 / インプットキャプチャ状態制御レジスタ(ch0,1)(上位) bit リード/ライト 初期値 15 14 13 12 11 10 9 8 PGEN5 PGEN4 PGEN3 PGEN2 PGEN1 PGENO IEI1 IEI0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R 0 R 0 PICSH01 インプットキャプチャ状態制御レジスタ(ch0,1)(下位) bit リード/ライト 初期値 292 7 6 5 4 3 2 1 0 ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 PICSL01 第 14 章 多機能タイマ ■ 波形ジェネレータのレジスタ 図 14.4-4 波形ジェネレータのレジスタ 16 ビットデッドタイマレジスタ(上位) bit 15 14 13 12 11 10 9 8 TR15 TR14 TR13 TR12 TR11 TR10 TR09 TR08 R/W X R/W X R/W X R/W X R/W X R/W X R/W X R/W X リード/ライト 初期値 TMRRH0~TMRRH2 16 ビットデッドタイマレジスタ(下位) bit 7 6 5 4 3 2 1 0 TR07 TR06 TR05 TR04 TR03 TR02 TR01 TR00 R/W X R/W X R/W X R/W X R/W X R/W X R/W X R/W X リード/ライト 初期値 TMRRL0~TMRRL2 16 ビットデッドタイマ制御レジスタ 0 bit 7 リード/ライト 初期値 6 5 4 3 2 1 0 DMOD0 GTEN1 GTEN0 TMIF0 TMIE0 TMD2 TMD1 TMD0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 13 12 11 10 9 8 GTEN2 TMIF1 TMIE1 TMD5 T MD4 T MD3 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 DTCR0 16 ビットデッドタイマ制御レジスタ 1 bit 15 14 DMOD1 GTEN3 リード/ライト 初期値 R/W 0 R/W 0 DTCR1 16 ビットデッドタイマ制御レジスタ 2 bit 7 リード/ライト 初期値 6 5 4 3 2 1 0 DMOD2 GTEN5 GTEN4 TMIF2 T MIE2 TMD8 TMD7 TMD6 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 14 13 12 11 10 9 8 DTIE DTIF NRSL DCK2 DCK1 DCK0 NWS1 NWS0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 DTCR2 波形制御レジスタ bit 15 リード/ライト 初期値 SIGCR 293 第 14 章 多機能タイマ 14.4.1 コンペアクリアバッファレジスタ(CPCLRBH, CPCLRBL)/ コンペアクリアレジスタ(CPCLRH, CPCLRL) コンペアクリアバッファレジスタ(CPCLRBH, CPCLRBL)は , コンペアクリアレ ジスタ(CPCLRH, CPCLRL)に存在する 16 ビットバッファレジスタです。 CPCLRBH, CPCLRBL レジスタと CPCLRH, CPCLRL レジスタは , 両方とも同じア ドレスに存在します。 ■ コンペアクリアバッファレジスタ(CPCLRBH, CPCLRBL) 図 14.4-5 コンペアクリアバッファレジスタ(CPCLRBH, CPCLRBL) コンペアクリアバッファレジスタ(上位) bit 15 14 13 12 11 10 CL15 CL14 CL13 CL12 C L11 CL10 C L09 CL08 W 1 W 1 W 1 W 1 W 1 W 1 W 1 W 1 リード/ライト 初期値 9 8 CPCLRBH コンペアクリアバッファレジスタ (下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 CL07 CL06 CL05 CL04 CL03 CL02 CL01 CL00 W 1 W 1 W 1 W 1 W 1 W 1 W 1 W 1 CPCLRBL コンペアクリアバッファレジスタは , コンペアクリアレジスタ(CPCLRH, CPCLRL)と 同じアドレスに存在するバッファレジスタです。バッファ機能が無効になるか(タイ マ状態制御レジスタ下位(TCCSL)の BFE:bit6=0)またはフリーランタイマが停止す ると , コンペアクリアバッファレジスタの値が直ちにコンペアクリアレジスタへ転送 されます。バッファ機能が有効になると , 16 ビットフリーランタイマのカウント値 "0" が検出されたときに値がコンペアクリアレジスタへ転送されます。 このレジスタへアクセスする場合は , ワードアクセス命令をご使用ください。 ■ コンペアクリアレジスタ(CPCLRH, CPCLRL) 図 14.4-6 コンペアクリアレジスタ(CPCLRH, CPCLRL) コンペアクリアレジスタ (上位) bit 15 14 13 12 11 10 CL15 CL14 CL13 CL12 C L11 CL10 C L09 CL08 R 1 R 1 R 1 R 1 R 1 R 1 R 1 R 1 リード/ライト 初期値 9 8 CPCLRH コンペアクリアレジスタ (下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 CL07 CL06 CL05 CL04 CL03 CL02 CL01 CL00 R 1 R 1 R 1 R 1 R 1 R 1 R 1 R 1 CPCLRL コンペアクリアレジスは , 16 ビットフリーランタイマのカウント値と比較されるため に使用します。アップカウントモード時は , このレジスタが 16 ビットフリーランタイ マのカウント値と一致すると , 16 ビットフリーランタイマは "0000H" にリセットされ ます。アップダウンカウントモード時は , このレジスタが 16 ビットフリーランタイマ のカウント値と一致すると , 16 ビットフリーランタイマは "0" 検出時にアップカウン トからダウンカウントに変わるかまたはダウンカウントからアップカウントに変わり ます。 このレジスタへアクセスする場合は , ワードアクセス命令をご使用ください。 294 第 14 章 多機能タイマ 14.4.2 タイマデータレジスタ(TCDTH, TCDTL) タイマデータレジスタ(TCDTH, TCDTL)は , 16 ビットフリーランタイマのカウン ト値を読み出すために使用します。 ■ タイマデータレジスタ(TCDTH, TCDTL) 図 14.4-7 タイマデータレジスタ(TCDTH, TCDTL) タイマデータレジスタ (上位) bit 15 14 13 12 11 10 9 8 T15 T14 T13 T12 T11 T10 T09 T08 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 7 6 5 4 3 2 1 0 T07 T06 T05 T04 T03 T02 T01 T00 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 リード/ライト 初期値 TCDTH タイマデータレジスタ (下位) bit リード/ライト 初期値 TCDTL タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出すために 使用します。カウンタ値は , リセットが発生すると直ちに "000H" にクリアされます。 タイマ値は , このレジスタへ値を書き込むことで設定できます。ただし , 値の書込みは タイマの停止中(タイマ状態制御レジスタ下位(TCCSL)の STOP:bit5=1)でなければ なりません。タイマデータレジスタへアクセスする場合は , ワードアクセス命令をご使 用ください。 16 ビットフリーランタイマは , 以下の要因が発生すると直ちに初期化されます。 • リセット • タイマ状態制御レジスタ(TCCSL)のクリアビット(SCLR:bit3)=1 • アップカウントモード(タイマ状態制御レジスタ下位(TCCSL)の MODE:bit4=0) 時におけるコンペアクリアレジスタとタイマカウンタ値の一致 295 第 14 章 多機能タイマ 14.4.3 タイマ状態制御レジスタ(TCCSH, TCCSL) タイマ状態制御レジスタ(TCCSH, TCCSL)は , 16 ビットフリーランタイマの動作 を制御するために使用する 16 ビットレジスタです。 ■ タイマ状態制御レジスタ , 上位バイト(TCCSH) 図 14.4-8 タイマ状態制御レジスタ , 上位バイト(TCCSH) bit 15 ECKE R/W 14 13 IRQZF IRQZE R/W R/W 12 11 10 9 8 MSI2 MSI1 MSI0 ICLR ICRE R/W R/W R/W R/W R/W ICRE コンペアクリア割込み要求許可ビット 0 割込み要求を禁止する 1 割込み要求を許可する コンペアクリア割込みフラグビット ICLR 読出し 0 コンペアクリア一致なし 1 コンペアクリア一致あり MSI2 MSI1 MSI0 296 書込み このビットを クリアする このビットに 影響を与えない 割込みマスク選択ビット 0 0 0 1回目の一致が発生したときに割込みが生成される 0 0 1 2回目の一致が発生したときに割込みが生成される 0 1 0 3回目の一致が発生したときに割込みが生成される 0 1 1 4回目の一致が発生したときに割込みが生成される 1 0 0 5回目の一致が発生したときに割込みが生成される 1 0 1 6回目の一致が発生したときに割込みが生成される 1 1 0 7回目の一致が発生したときに割込みが生成される 1 1 1 8回目の一致が発生したときに割込みが生成される IRQZE ゼロ検出割込み要求許可ビット 0 割込み要求を禁止にする 1 割込み要求を許可する IRQZF R/W :リード/ライト :初期値 初期値 00000000B ゼロ検出割込みフラグビット 読出し 0 ゼロが検出されない 1 ゼロが検出される ECKE クロック選択ビット 0 内部クロック 1 外部クロック 書込み このビットを クリアする このビットに 影響を与えない 第 14 章 多機能タイマ 表 14.4-1 タイマ状態制御レジスタ , 上位バイト(TCCSH)( 1 / 2 ) ビット名 機 能 このビットは , 内部クロックまたは外部クロックを 16 ビットフリーランタイ マのカウントクロックとして選択するために使用します。 • このビットに "0" を設定した場合 : 内部クロックが選択されます。カウント クロック周波数を選択するためには , TCCSL レジスタのクロック周波数選択 ビット(CLK2 ∼ CLK0:bit2 ∼ bit0)も設定しなければなりません。 • このビットに "1" を設定した場合 : 外部クロックが選択されます。外部ク ロックは , "FRCK" 端子から入力されます。したがって , ポート方向レジスタ (DDR1)の bit7 へ "0" を書き込んで外部クロック入力を有効にしなければな りません。 ( 注意事項 ) カウントクロックは , このビットが設定されると直ちに変更されます。した がって , このビットの変更は , アウトプットコンペアとインプットキャプチャ が停止している間でなければなりません。 • bit15 ECKE: クロック選 択ビット • bit14 IRQZF: ゼロ検出割 込みフラグ ビット 16 ビットフリーランタイマのカウント値が "0000H" のとき , このビットには "1" がセットされます。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 ( 注意事項 ) ソフトウェアクリア(タイマ状態制御レジスタ下位(TCCSL)の SCLR:bit3 への "1" 書込み)では , このビットは設定されません。 アップダウンカウントモード(タイマ状態制御レジスタ下位(TCCSL)の MODE:bit4=1)時は , 割込みマスク選択ビット(タイマ状態制御レジスタ上位 (TCCSH)の MSI2 ∼ MSI0:bit12 ∼ bit10 が "000B" 以外)で設定した割込みが 発生したときにこのビットに "1" が設定されます。割込みが発生しないとき は , このビットに "1" は設定されません。 アップカウントモード(MODE: ビット4 =0)時は , MSI2 ∼ MSI0:bit12 ∼ bit10 の値とは無関係に , このビットはゼロ検出が発生するたびに設定されま す。 bit13 IRQZE: ゼロ検出割 込み要求許 可ビット • このビットと割込みフラグビット(IRQZF:bit14)に "1" が設定されると , CPU に対する割込み要求が生成されます。 これらのビットは , アップカウントモード(MODE=0)時はコンペアクリア割 込みのマスク回数を設定するために使用します。アップダウンカウントモー ド(MODE=1)時は , ゼロ検出割込みのマスク回数を設定するために使用しま す。 • このビットに "0" を設定した場合 : 割込み要因はマスクされません。 ( 注意事項 ) 割込み要因を 2 回マスクし , 3 回目の割込みを処理する際には , これらのビッ トに "010B" を設定しなければなりません。 • bit12 ∼ bit10 MSI2 ∼ MSI0: 割込みマス ク選択ビッ ト 297 第 14 章 多機能タイマ 表 14.4-1 タイマ状態制御レジスタ , 上位バイト(TCCSH)( 2 / 2 ) ビット名 機 能 コンペアクリア値と 16 ビットフリーランタイマ値が一致すると , このビット には "1" が設定されます。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 ( 注意事項 ) アップカウントモード(タイマ状態制御レジスタ下位(TCCSL)の MODE: bit4=1)時は , 割込みマスク選択ビット(タイマ状態制御レジスタ上位 (TCCSH)の MSI2 ∼ MSI0:bit12 ∼ bit10 が "000B" 以外)で設定した割込みが • bit9 ICLR: コンペアク リア割込み フラグビッ ト 発生したときにこのビットに "1" が設定されます。割込みが発生しないとき は , このビットに "1" は設定されません。 アップダウンカウントモード(MODE=1)時は , MSI2 ∼ MSI0 ビットの値と は無関係に , このビットはコンペアクリアが発生するたびに設定されます。 bit8 298 ICRE: コンペアク リア割込み 要求許可 ビット • このビットとコンペアクリア割込みフラグビット(ICLR:bit9)に "1" が設定 されると , CPU に対する割込み要求が生成されます。 第 14 章 多機能タイマ ■ タイマ状態制御レジスタ , 下位バイト(TCCSL) 図 14.4-9 タイマ状態制御レジスタ , 下位バイト(TCCSL) bit 7 - 6 5 4 3 2 1 0 BFE STOP MODE SCLR CLK2 CLK1 C LK0 R/W R/W R/W R/W R/W R/W R/W 初期値 X0100000B クロック周波数選択ビット CL K2 CL K1 CL K0 カウント φ=16MHz φ =8MHz φ =4MHz φ =1MHz クロック 0 0 0 φ 62.5ns 125ns 0.25ms 1ms 0 0 1 φ/2 125ns 0.25ms 0.5ms 2ms 0 1 0 φ/4 0.25ms 0.5ms 1ms 4ms 0 1 1 φ/8 0.5ms 1ms 2ms 8ms 1 0 0 φ/16 1ms 2ms 4ms 16ms 1 0 1 φ/32 2ms 4ms 8ms 32ms 1 1 0 φ/64 4ms 8ms 16ms 64ms 1 1 1 φ/128 8ms 16ms 32ms 128ms φ:マシンサイクル SCLR 書込み 読出し 0 このビットに影響を与えない 1 カウンタを"0000H"に初期化する MODE 0 1 STOP R/W :リード/ライト :初期値 :未使用 - タイマクリアビット 常に"0"を読出す タイマカウントモードビット アップカウントモード アップダウンカウントモード タイマ許可ビット 0 カウントを許可する(カウントを開始する) 1 カウントを禁止する(カウントを停止する) コンペアクリアバッファ許可ビット BFE 0 コンペアクリアバッファを無効にする 1 コンペアクリアバッファを有効にする 299 第 14 章 多機能タイマ 表 14.4-2 タイマ状態制御レジスタ , 下位バイト(TCCSL)( 1 / 2 ) ビット名 bit7 bit6 未使用ビット BFE: コンペアクリ アバッファ有 効ビット 機 能 • • 読出し値は不定です。 このビットへの書込みは動作に影響しません。 • • このビットは , コンペアクリアバッファを有効にするために使用します。 このビットに "0" を設定した場合 : コンペアクリアバッファは無効になります。したがってコンペアクリア レジスタ(CPCLRH, CPCLRL)に直接書き込むことが可能です。 このビットに "1" を設定した場合 : コンペアクリアバッファは有効になります。コンペアクリアバッファに 書き込まれ保持されていたデータは , 16 ビットフリーランタイマのカウ ント値 "0" が検出されると , コンペアクリアレジスタへ転送されます。 • このビットは , 16 ビットフリーランタイマのカウントを停止 / 開始するために 使用します。 • このビットに "0" を設定した場合 : 16 ビットフリーランタイマのカウントは開始します。 • このビットに "1" を設定した場合 : 16 ビットフリーランタイマのカウントは停止します。 ( 注意事項 ) 16 ビットフリーランタイマが停止すると , アウトプットコンペアの動作も停 止します。 • bit5 STOP: タイマ有効 ビット • • bit4 MODE: タイマカウン トモードビッ ト • • このビットは , 16 ビットフリーランタイマのカウントモードを選択するため に使用します。 このビットに "0" を設定した場合 : アップカウントモードが選択されます。タイマは , カウンタ値がコンペ アクリアレジスタと一致して "0000H" にリセットされるまでカウント アップし , その後 , 再びカウントアップします。 このビットに "1" を設定した場合 : アップダウンカウントモードが選択されます。タイマは , カウンタ値が コンペアクリアレジスタと一致するまでカウントアップし , その後ダウ ンカウントに変わります。その後 , カウンタ値が "0000H" に達すると再 びアップカウントに変わります。 このビットは , タイマが動作中であっても停止されていても書込みが可能で す。タイマが動作中の場合は , このビットに書き込まれた値はバッファに入れ られ , その後 , タイマ値が "0000H" になるとバッファの値によりカウントモー ドが変わります。 bit3 SCLR: タイマクリア ビット • このビットは , 16 ビットフリーランタイマを "0000H" に初期化するために使 • • 用します。 このビットに "0" を設定した場合 : 意味はありません。 このビットに "1" を設定した場合 : 16 ビットフリーランタイマは , その次のカウントクロックで "0000H" に 初期化されます。 • 読出し値は , 必ず "0" です。 ( 注意事項 ) • このビットは , タイマが停止しているとき(STOP=1)にタイマを初期化す るためには使用できません。タイマデータレジスタ(TCDTH, TCDTL) に "0000H" を書き込むと , タイマを初期化できます。 • • 300 このビットに "1" を書き込んでも , ゼロ検出割込みは生成されません。 "1" を書き込んだ後 , 次のカウントクロックまでにこのビットへの "0" 書込 みを行うと , カウンタ値の初期化は行われません。 第 14 章 多機能タイマ 表 14.4-2 タイマ状態制御レジスタ , 下位バイト(TCCSL)( 2 / 2 ) ビット名 機 能 • bit2 ∼ bit0 CLK2 ∼ 0: クロック周波 数選択ビット • このビットは , 16 ビットフリーランタイマのカウントクロック周波数を選択 するために使用します。 カウントクロックは , これらのビットが設定されると直ちに変更されます。し たがって , これらのビットの変更は , アウトプットコンペアとインプットキャ プチャが停止している間でなければなりません。 301 第 14 章 多機能タイマ 14.4.4 アウトプットコンペアバッファレジスタ(OCCPBH, OCCPBL0 ∼ OCCPBL5)/ アウトプットコンペアレ ジスタ(OCCPH, OCCPL0 ∼ OCCPL5) アウトプットコンペアバッファレジスタ(OCCPBH, OCCPBL)は , アウトプット コンペアレジスタ(OCCPH, OCCPL)用の 16 ビットバッファレジスタです。 OCCPBH, OCCPBL レジスタと OCCPH, OCCPL レジスタは , 両方とも同じアドレ スに存在します。 ■ アウトプットコンペアバッファレジスタ(OCCPBH, OCCPBL0 ∼ OCCPBL5) 図 14.4-10 アウトプットコンペアバッファレジスタ(OCCPBH, OCCPBL0 ∼ OCCPBL5) アウトプットコンペアバッファレジスタ(上位) bit 15 リード/ライト 初期値 14 13 12 11 10 9 8 OP15 OP14 OP13 OP12 OP11 OP10 OP09 OP08 R/W X R/W X R/W X R/W X R/W X R/W X R/W X R/W X OCCPBH0~OCCPBH5 アウトプットコンペアバッファレジスタ(下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 OP07 OP06 OP05 OP04 OP03 OP02 OP01 OP00 R/W X R/W X R/W X R/W X R/W X R/W X R/W X R/W X OCCPBL0~OCCPBL 5 アウトプットコンペアバッファレジスタは , アウトプットコンペアレジスタ(OCCPH, OCCPL)用のバッファレジスタです。バッファ機能が無効になるか(コンペア制御レ ジスタ下位(OCSL0, OCSL2, OCSL4)の BUF1, BUF 0:bit3, bit2=11B)またはフリーラ ンタイマが停止すると , アウトプットコンペアバッファレジスタの値は , 直ちにアウト プットコンペアレジスタへ転送されます。バッファ機能が有効になると(コンペア制 御レジスタ下位(OCSL0, OCSL2, OCSL4)の BUF1, 0:bit3, bit2=00B), 値はコンペア 制御レジスタ上位(OCSH1, OCSH3, OCSH5)の転送選択ビット(BTS1, 0:bit14, bit13) に従ってコンペアクリア一致時またはゼロ検出時に転送されます。 このレジスタへアクセスする場合は , ワードアクセス命令をご使用ください。 302 第 14 章 多機能タイマ ■ アウトプットコンペアレジスタ(OCCPH, OCCPL0 ∼ OCCPL5) 図 14.4-11 アウトプットコンペアレジスタ(OCCPH, OCCPL0 ∼ OCCPL5) アウトプットコンペアレジスタ(上位) bit 15 リード/ライト 初期値 14 13 12 11 OP15 OP14 OP13 OP12 OP11 10 R/W X R/W X R/W X R/W X R/W X 9 8 OP10 OP09 OP08 R/W X R/W X R/W X OCCPH0~OCCPH5 アウトプットコンペアレジスタ(下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 OP07 OP06 OP05 OP04 OP03 OP02 OP01 OP00 R/W X R/W X R/W X R/W X R/W X R/W X R/W X R/W X OCCPL0~OCCPL5 アウトプットコンペアレジスタは , 16 ビットフリーランタイマのカウント値と比較す るために使用する 16 ビットレジスタです。アウトプットコンペアレジスタの初期値は 不定なので , タイマの動作を有効にする前にアウトプットコンペアバッファレジスタ (OCCPBH, OCCPBL)に値を設定しなければなりません。 アウトプットコンペアレジスタの値が 16 ビットフリーランタイマのカウント値と一致 すると , コンペア信号が生成され , アウトプットコンペア割込みフラグビット(コンペ ア制御レジスタ下位 OCSL0, OCSL2, OCSL4 の IOP1, IOP0:bit7, bit6)が設定されま す。出力レベルが設定されると(コンペア制御レジスタ上位(OCSH1, OCSH3, OCSH5) の OTD1, OTD0:bit9, bit8), アウトプットコンペアレジスタ(OCCPH, OCCPL0 ∼ OCCPL5)に対応する出力レベル波形ジェネレータ RTO0 ∼ RTO5 を反転させることが できます。 このレジスタへアクセスする場合は , ワードアクセス命令をご使用ください。 303 第 14 章 多機能タイマ コンペア制御レジスタ(OCSH, OCSL0 ∼ OCSL5) 14.4.5 コンペア制御レジスタは , RT0 ∼ RT5 の出力レベル , 出力許可 , 出力レベル反転モー ド , コンペア動作許可 , コンペア一致割込み許可およびコンペア一致割込みフラグを 制御するために使用します。 ■ コンペア制御レジスタ , 上位バイト(OCSH1, OCSH3, OCSH5) 図 14.4-12 コンペア制御レジスタ , 上位バイト(OCSH1, OCSH3, OCSH5) bit 15 14 13 12 11 10 9 8 BTS1 BTS0 CMOD OTE1 OTE0 OTD1 OTD0 R/W R/W R/W R/W R/W R/W R/W 出力レベルビット OTD0 0 RT0,RT2,RT4が"0"を出力する 1 RT0,RT2,RT4が"1"を出力する 出力レベルビット 読出し 0 RT1,RT3,RT5が"0"を出力する 1 RT1,RT3,RT5が"1"を出力する 汎用入出力ポート 1 アウトプットコンペア出力端子(RT00,RT2,RT4) OTE1 出力許可ビット 0 汎用入出力ポート 1 アウトプットコンペア出力端子(RT01,RT3,RT5) CMOD 1 RT1,RT3,RT5の現出力値 出力許可ビット 0 0 RT0,RT2,RT4の現出力値 書込み OTE0 304 読出し 書込み OTD1 R/W :リード/ライト :初期値 - :未使用 初期値 X1100000B 出力レベル反転モードビット RT0,RT2,RT4:レベルは,コンペアレジスタ0,2,4との一致が発生すると直ちに反転する RT1,RT3,RT5:レベルは,コンペアレジスタ1,3,5との一致が発生すると直ちに反転する RT0,RT2,RT4:レベルは,コンペアレジスタ0,2,4との一致が発生すると直ちに反転する RT1,RT3,RT5:レベルは,コンペアレジスタ(0または1)(2または3)(4または5)との一致が発生すると直ちに反転する BTS0 バッファ転送選択ビット 0 ゼロ検出が発生すると,転送が起動する(チャネル0,2,4) 1 コンペアクリア一致が発生すると,転送が起動する(チャネル0,2,4) BTS1 バッファ転送選択ビット 0 ゼロ検出が発生すると,転送が起動する(チャネル1,3,5) 1 コンペアクリア一致が発生すると,転送が起動する(チャネル1,3,5) 第 14 章 多機能タイマ 表 14.4-3 コンペア制御レジスタ , 上位バイト(OCSH1, OCSH3, OCSH5)( 1 / 2 ) ビット名 bit15 機能 読出し値は不定です。 このビットへの書込みは動作に影響しません。 未使用ビット • • BTS1: バッファ転送 選択ビット このビットは , アウトプットコンペアバッファレジスタ(OCCPBH, OCCPBL1, OCCPBL3, OCCPBL5)からアウトプットコンペアレジスタ (OCCPH, OCCPL1, OCCPL3, OCCPL5)へのデータ転送時期を選択するため に使用します。 • このビットに "0" を設定した場合 : データ転送は , 16 ビットフリーランタイマのカウント値 "0" が検出され ると起動します。 • このビットに "1" を設定した場合 : データ転送は , 16 ビットフリーランタイマでコンペアクリア一致が発生 すると起動します。 BTS0: バッファ転送 選択ビット このビットは , アウトプットコンペアバッファレジスタ(OCCPBH, OCCPBL0, OCCPBL2, OCCPBL4)からアウトプットコンペアレジスタ (OCCPH, OCCPL0, OCCPL2, OCCPL 4)へのデータ転送時期を選択するため に使用します。 • このビットに "0" を設定した場合 : データ転送は , 16 ビットフリーランタイマのカウント値 "0" が検出され ると起動します。 • このビットに "1" を設定した場合 : データ転送は , 16 ビットフリーランタイマでコンペアクリア一致が発生 すると起動します。 • bit14 • bit13 • • bit12 CMOD: 出力レベル 反転モード ビット • このビットは , 端子出力が有効の間(OTE1=1 または OTE0=1)に一致が発 生した場合に端子出力レベル反転モードを直ちに切り換えるために使用しま す。 このビットに "0" を設定した場合 : 端子の出力レベルは , 対応するコンペアレジスタとの一致が発生すると 直ちに反転します。 - RT0, RT2, RT4: レベルは , 16 ビットフリーランタイマとコンペアレジス タ 0, 2, 4 が一致すると直ちに反転します。 - RT1, RT3, RT5: レベルは , 16 ビットフリーランタイマとコンペアレジス タ 1, 3, 5 が一致すると直ちに反転します。 このビットに "1" を設定した場合 : コンペアレジスタに対応する RT0, RT2, RT4 の出力レベルは , 本ビット が "0" の場合と同様に反転します。ただし , コンペアレジスタ 1, 3, 5 に 対応する RT1, RT3, RT5 の出力レベルは , コンペアレジスタ 0, 2, 4 また は 1, 3, 5 で一致が発生すると反転します。コンペアレジスタ 0, 2, 4 と 1, 3, 5 が同じ値の場合は , ただ 1 つのコンペアレジスタが使用される場 合と同じ動作になります。 - RT0, RT2, RT4: レベルは , 16 ビットフリーランタイマとコンペアレジス タ 0, 2, 4 が一致すると直ちに反転します。 - RT1, RT3, RT5: レベルは , 16 ビットフリーランタイマとコンペアレジス タ(0 または 1)(2 または 3)(4 または 5)が一致する と直ちに反転します。 305 第 14 章 多機能タイマ 表 14.4-3 コンペア制御レジスタ , 上位バイト(OCSH1, OCSH3, OCSH5)( 2 / 2 ) ビット名 機能 このビットは , ポートへの波形ジェネレータ出力(RTO1, RTO3, RTO5)を 許可するために使用します。 • このビットの初期値は "0" です。 ( 注意事項 ) 波形ジェネレータが無効(16 ビットデッドタイマ制御レジスタ下位 (DTCRL0, DTCRL1, DTCRL2)の TMD2 ∼ TMD0, TMD5 ∼ TMD3, TMD8 ∼ TMD6:bit2, bit1=000B)の場合は , RTO1, RTO3, RTO5 はアウトプットコンペ • bit11 OTE1: 出力許可 ビット アと同じ値を出力します。 このビットは , ポートへの波形ジェネレータ出力(RTO0, RTO2, RTO4)を 許可するために使用します。 • このビットの初期値は "0" です。 ( 注意事項 ) 波形ジェネレータが無効(16 ビットデッドタイマ制御レジスタ下位 (DTCRL0, DTCRL1, DTCRL2)の TMD2 ∼ TMD0, TMD5 ∼ TMD3, TMD8 ∼ TMD6:bit2, bit1=000B)の場合は , RTO0, RTO2, RTO4 はアウトプットコンペ • bit10 OTE0: 出力許可 ビット アと同じ値を出力します。 • bit9 OTD1: 出力レベル ビット • • • bit8 306 OTD0: 出力レベル ビット • • このビットは , アウトプットコンペア 1, 3, 5(RT1, RT3, RT5)の端子出力 レベルを変更するために使用します。 コンペア端子出力の初期値は "0" です。 値を書き込む場合は , 必ず前もってコンペア動作を停止させてください。こ のビットの読出し値は , RT1, RT3, RT5 におけるアウトプットコンペア値を 示します。 このビットは , アウトプットコンペア 0, 2, 4(RT0, RT2, RT4)の端子出力 レベルを変更するために使用します。 コンペア端子出力の初期値は "0" です。 値を書き込む場合は , 必ず前もってコンペア動作を停止させてください。こ のビットの読出し値は , RT0, RT2, RT4 におけるアウトプットコンペア値を 示します。 第 14 章 多機能タイマ ■ コンペア制御レジスタ , 下位バイト(OCSL0, OCSL2, OCSL4) 図 14.4-13 コンペア制御レジスタ , 下位バイト(OCSL0, OCSL2, OCSL4) bit 7 6 5 4 3 2 1 0 IOP1 IOP0 IOE1 IOE0 BUF1 BUF0 CST1 CST0 R/W R/W R/W R/W R/W R/W R/W R/W CST0 コンペア動作許可ビット 0 コンペアレジスタ0,2,4のコンペア動作を禁止する 1 コンペアレジスタ0,2,4のコンペア動作を許可する CST0 コンペア動作許可ビット 0 コンペアレジスタ1,3,5のコンペア動作を禁止する 1 コンペアレジスタ1,3,5のコンペア動作を許可する BUF0 コンペアバッファ無効ビット 0 コンペアレジスタ0,2,4のコンペアバッファを有効にする 1 コンペアレジスタ0,2,4のコンペアバッファを無効にする BUF1 コンペアバッファ無効ビット 0 コンペアレジスタ1,3,5のコンペアバッファを有効にする 1 コンペアレジスタ1,3,5のコンペアバッファを無効にする IOE0 コンペア一致割込み許可ビット 0 コンペアレジスタ0,2,4のコンペア一致割込みを禁止する 1 コンペアレジスタ0,2,4のコンペア一致割込みを許可する IOE1 コンペア一致割込み許可ビット 0 コンペアレジスタ1,3,5のコンペア一致割込みを禁止する 1 コンペアレジスタ1,3,5のコンペア一致割込みを許可する IOP0 0 1 IOP1 0 R/W :リード/ライト :初期値 - :未使用 初期値 00001100B 1 コンペア一致割込みフラグビット 読出し コンペアレジスタ0,2,4のコンペア 一致割込みが発生しない コンペアレジスタ0,2,4のコンペア 一致割込みが発生する 書込み このビットをクリアする このビットに影響を与えない コンペア一致割込みフラグビット 読出し コンペアレジスタ1,3,5のコンペア 一致割込みが発生しない コンペアレジスタ1,3,5のコンペア 一致割込みが発生する 書込み このビットをクリアする このビットに影響を与えない 307 第 14 章 多機能タイマ 表 14.4-4 コンペア制御レジスタ , 下位バイト(OCSL0, OCSL2, OCSL4)( 1 / 2 ) ビット名 機能 • bit7 IOP1: コンペア一致 割込みフラグ ビット • • • • • • bit6 IOP0: コンペア一致 割込みフラグ ビット • • • • • • bit5 • bit4 IOE0: コンペア一致 割込み許可 ビット • bit3 BUF1: コンペアバッ ファ無効 ビット bit2 BUF0: コンペアバッ ファ無効 ビット このビットは , コンペアレジスタ 0, 2, 4 のアウトプットコンペア割込みを " 許可 " にするために使用します。 • このビットに "1" が書き込まれている間にコンペア一致割込みフラグビット (IOP0:bit7)が設定されると , アウトプットコンペア割込みが発生します。 • • • 308 このビットは , アウトプットコンペアレジスタ 1, 3, 5 のバッファ機能を無効 にするために使用します。 このビットに "0" を設定した場合 : バッファ機能が有効になります。 このビットは , アウトプットコンペアレジスタ 0, 2, 4 のバッファ機能を無効 にするために使用します。 このビットに "0" を設定した場合 : バッファ機能が有効になります。 このビットは , 16 ビットフリーランタイマとコンペアレジスタ 1, 3, 5 の間 のコンペア動作を許可にするために使用します。 • コンペア動作を許可にする場合は , 必ず前もってコンペアレジスタ 1, 3, 5 と タイマデータレジスタ(TCDTH, L)に値を書き込んでください。 ( 注意事項 ) アウトプットコンペアは 16 ビットフリーランタイマクロックと同期化され るので , 16 ビットフリーランタイマを停止すると , コンペア動作も停止しま す。 • CST1: コンペア動作 許可ビット このビットは , コンペアレジスタ 0, 2, 4 が 16 ビットフリーランタイマの値 と一致したことを示す割込みフラグです。 このビットは , コンペアレジスタ値が 16 ビットフリーランタイマ値に一致 した場合に "1" が設定されます。 コンペア一致割込み許可ビット(IOE0:bit4)が " 許可 " になっている間にこ のビットが設定されると , アウトプットコンペア割込みが発生します。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : このビットは影響を受けません。 リードモディファイライト時は , 必ず "1" が読み出されます。 このビットは , コンペアレジスタ 1, 3, 5 のアウトプットコンペア割込みを " 許可 " にするために使用します。 • このビットに "1" が書き込まれている間にコンペア一致割込みフラグビット (IOP1:bit7)が設定されると , アウトプットコンペア割込みが発生します。 IOE1: コンペア一致 割込み許可 ビット bit1 このビットは , コンペアレジスタ 1, 3, 5 が 16 ビットフリーランタイマの値 と一致したことを示す割込みフラグです。 このビットは , コンペアレジスタ値が 16 ビットフリーランタイマ値に一致 した場合に "1" が設定されます。 コンペア一致割込み許可ビット(IOE1:bit5)が " 許可 " になっている間にこ のビットが設定されると , アウトプットコンペア割込みが発生します。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : このビットは影響を受けません。 リードモディファイライト時は , 必ず "1" が読み出されます。 第 14 章 多機能タイマ 表 14.4-4 コンペア制御レジスタ , 下位バイト(OCSL0, OCSL2, OCSL4)( 2 / 2 ) ビット名 機能 このビットは , 16 ビットフリーランタイマとコンペアレジスタ 0, 2, 4 の間 のコンペア動作を許可にするために使用します。 • コンペア動作を許可にする場合は , 必ず前もってコンペアレジスタ 0, 2, 4 と タイマデータレジスタ(TCDTH, L)に値を書き込んでください。 ( 注意事項 ) アウトプットコンペアは 16 ビットフリーランタイマクロックと同期化され るので , 16 ビットフリーランタイマを停止するとゼロ検出 , コンペア動作も 停止します。 • bit0 CST0: コンペア動作 許可ビット 309 第 14 章 多機能タイマ 14.4.6 インプットキャプチャデータレジスタ(IPCPH, IPCPL0 ∼ IPCPL3) インプットキャプチャデータレジスタは , 入力波形の有効エッジが検出されたとき の 16 ビットデッドタイマのカウント値を保持するために使用します。 ■ インプットキャプチャデータレジスタ(IPCPH, IPCPL0 ∼ IPCPL3) 図 14.4-14 インプットキャプチャデータレジスタ(IPCPH, IPCPL0 ∼ IPCPL3) インプットキャプチャデータレジスタ(上位) bit 1 5 14 13 12 11 10 9 8 CP15 CP14 CP13 CP12 CP11 CP10 CP09 CP08 R X R X R X R X R X R X R X R X リード/ライト 初期値 IPCPH0~IPCPH3 インプットキャプチャデータレジスタ(下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 CP07 CP06 CP05 CP04 CP03 CP02 CP01 CP00 R X R X R X R X R X R X R X R X IPCPL0~IPCPL3 このレジスタは , 対応する外部端子入力波形の有効エッジが検出されたときの 16 ビッ トデッドタイマ値を格納するために使用します(このレジスタへアクセスする場合は , ワードアクセス命令をご使用ください。このレジスタにデータを書き込むことはでき ません)。 310 第 14 章 多機能タイマ インプットキャプチャ状態制御 /PPG 出力制御レジス タ(ICSH23, ICSL23, PICSH01, PICSL01) 14.4.7 インプットキャプチャ状態制御 /PPG 出力制御レジスタ(ICSH23, ICSL23, PICSH01, PICSL01)は , エッジ選択 , 割込み要求許可 , 割込み要求フラグおよび PPG 出力を制御するために使用します。またインプットキャプチャ 0 ∼ 3 において 検出された有効なエッジを示すためにも使用します。 ■ インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 上位バイト(ICSH23) 図 14.4-15 インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 上位バイト(ICSH23) bit 15 14 13 R :リード :初期値 - :未使用 12 11 10 9 8 IEI3 IEI2 R R 初期値 XXXXXX00B IEI2 有効エッジ指示ビット(インプットキャプチャ2) 0 立下りエッジが検出される 1 立上りエッジが検出される IEI3 有効エッジ指示ビット(インプットキャプチャ3) 0 立下りエッジが検出される 1 立上りエッジが検出される 表 14.4-5 インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 上位バイト(ICSH23) ビット名 bit15 ∼ bit10 未使用ビット 機能 • • 読出し値は不定です。 このビットへの書込みは動作に影響しません。 このビットは , キャプチャレジスタ 3 の有効エッジ指示ビットであり , 立上 りエッジまたは立下りエッジが検出されたことを示します。 • 立下りエッジが検出されると , このビットに "0" が書き込まれます。 • 立上りエッジが検出されると , このビットに "1" が書き込まれます。 • このビットは読出し専用ビットです。 ( 注意事項 ) インプットキャプチャ状態制御レジスタ下位(ICSL23)の EG31, EG30:bit3, 2=00B の場合 , 読出し値は意味がありません。 • bit9 IEI3: 有効エッジ 指示ビット (インプット キャプチャ 3) このビットは , キャプチャレジスタ 2 の有効エッジ指示ビットであり , 立上 りエッジまたは立下りエッジが検出されたことを示します。 • 立下りエッジが検出されると , このビットに "0" が書き込まれます。 • 立上りエッジが検出されると , このビットに "1" が書き込まれます。 • このビットは読出し専用ビットです。 ( 注意事項 ) インプットキャプチャ状態制御レジスタ下位(ICSL23)の EG21, EG20:bit1, bit0=00B の場合 , 読出し値は意味がありません。 • bit8 IEI2: 有効エッジ 指示ビット (インプット キャプチャ 2) 311 第 14 章 多機能タイマ ■ インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 下位バイト(ICSL23) 図 14.4-16 インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 下位バイト(ICSL23) bit 7 6 5 4 3 2 1 0 初期値 00000000B ICP3 ICP2 ICE3 ICE2 EG31 EG30 EG21 EG20 R/W R/W R/W R/W R/W R/W R/W R/W EG21 EG20 0 0 エッジは検出されない(停止) 0 1 立上りエッジが検出される 1 0 立下りエッジが検出される 1 1 両方のエッジが検出される EG31 EG30 エッジ選択ビット(インプットキャプチャ2) エッジ選択ビット(インプットキャプチャ3) 0 0 エッジは検出されない(停止) 0 1 立上りエッジが検出される 1 0 立下りエッジが検出される 1 1 両方のエッジが検出される ICE2 割込み要求許可ビット(インプットキャプチャ2) 0 割込み要求を禁止する 1 割込み要求を許可する ICE3 割込み要求許可ビット(インプットキャプチャ3) 0 割込み要求を禁止する 1 割込み要求を許可する ICP2 割込み要求フラグビット(インプットキャプチャ2) 読出し 有効なエッジが検出されない このビットはクリアされる 1 有効なエッジが検出される ICP3 312 このビットは影響を受けない 割込み要求フラグビット(インプットキャプチャ3) 読出し R/W :リード/ライト :初期値 書込み 0 書込み 0 有効なエッジが検出されない このビットはクリアされる 1 有効なエッジが検出される このビットは影響を受けない 第 14 章 多機能タイマ 表 14.4-6 インプットキャプチャ状態制御レジスタ(ch.2, ch.3), 下位バイト(ICSL23) ビット名 機能 • bit7 ICP3: 割込み要求フ ラグビット (インプット キャプチャ 3) • • • • • • bit6 ICP2: 割込み要求フ ラグビット (インプット キャプチャ 2) • • • • • bit5 ICE3: 割込み要求許 可ビット (イ ンプットキャ プチャ 3) • bit4 ICE2: 割込み要求許 可ビット(イ ンプットキャ プチャ 2) • bit3, bit2 EG31, EG30: エッジ選択 ビット(イン プットキャプ チャ 3) • bit1, bit0 EG21, EG20: エッジ選択 ビット(イン プットキャプ チャ 2) • • • • • このビットは , インプットキャプチャ 3 の割込み要求フラグとして使用しま す。 このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定 されます。 割込み許可ビット(ICE3:bit5)が設定されている間に有効エッジが検出され ると , 直ちに割込みを生成できます。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : このビットは影響を受けません。 リードモディファイライト時は , 必ず "1" が読み出されます。 このビットは , インプットキャプチャ 2 の割込み要求フラグとして使用しま す。 このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定 されます。 割込み許可ビット(ICE2:bit4)が設定されている間に有効エッジが検出され ると , 直ちに割込みを生成できます。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : このビットは影響を受けません。 リードモディファイライト時は , 必ず "1" が読み出されます。 このビットは , インプットキャプチャ 3 のインプットキャプチャ割込み要求 を許可にするために使用します。 このビットに "1" が設定されている間に割込みフラグ(ICP3:bit7)が設定さ れると , インプットキャプチャ割込みが生成されます。 このビットは , インプットキャプチャ 2 のインプットキャプチャ割込み要求 を許可にするために使用します。 このビットに "1" が設定されている間に割込みフラグ(ICP2:bit6)が設定さ れると , インプットキャプチャ割込みが生成されます。 これらのビットは , インプットキャプチャ 3 の外部入力の有効エッジ極性を 指定するために使用します。 これらのビットは , インプットキャプチャ動作を有効にするためにも使用し ます。 これらのビットは , インプットキャプチャ 2 の外部入力の有効エッジ極性を 指定するために使用します。 これらのビットは , インプットキャプチャ動作を有効にするためにも使用し ます。 313 第 14 章 多機能タイマ ■ PPG 出力制御 / インプットキャプチャ状態制御レジスタ (ch.0, ch.1), 上位バイト (PICSH01) 図 14.4-17 PPG 出力制御 / インプットキャプチャ状態制御レジスタ(ch.0, ch.1), 上位バイト (PICSH01) bit 15 PGEN5 R/W 14 13 PGEN4 PGEN3 R/W R/W 12 11 PGEN2 PGEN1 R/W R/W 10 9 8 PGEN0 IEI1 IEI0 R/W R R IEI0 立下りエッジが検出される 1 立上りエッジが検出される 有効エッジ指示ビット(インプットキャプチャ1) 0 立下りエッジが検出される 1 立上りエッジが検出される PGEN0 PPG出力許可ビット 0 RTO0へのPPG0出力を禁止する 1 RTO0へのPPG0出力を許可する PGEN1 PPG出力許可ビット 0 RTO1へのPPG0出力を禁止する 1 RTO1へのPPG0出力を許可する PGEN2 PPG出力許可ビット 0 RTO2へのPPG0出力を禁止する 1 RTO2へのPPG0出力を許可する PGEN3 PPG出力許可ビット 0 RTO3へのPPG0出力を禁止する 1 RTO3へのPPG0出力を許可する PGEN4 PPG出力許可ビット 0 RTO4へのPPG0出力を禁止する 1 RTO4へのPPG0出力を許可する PGEN5 314 有効エッジ指示ビット(インプットキャプチャ0) 0 IEI1 R :リードオンリ R/W :リード/ライト :初期値 初期値 00000000B PPG出力許可ビット 0 RTO5へのPPG0出力を禁止する 1 RTO5へのPPG0出力を許可する 第 14 章 多機能タイマ 表 14.4-7 PPG 出力制御 / インプットキャプチャ状態制御レジスタ(ch.0, ch.1), 上位バイト (PICSH01) ビット名 bit15 ∼ bit10 PGEN5 ∼ PGEN0: PPG 出力許可 ビット 機能 • これらのビットは , RTO0 ∼ RTO5 への PPG0 出力を選択するために使用しま す。 このビットは , キャプチャレジスタ 1 の有効エッジ指示ビットであり , 立上 りエッジまたは立下りエッジが検出されたことを示します。 • 立下りエッジが検出されると , このビットに "0" が書き込まれます。 • 立上りエッジが検出されると , このビットに "1" が書き込まれます。 • このビットは読出し専用ビットです。 ( 注意事項 ) インプットキャプチャ状態制御レジスタ下位(PICSL01)の EG11, EG10:bit3, bit2=00B の場合 , 読出し値は意味がありません。 • bit9 IEI1: 有効エッジ指 示ビット(イ ンップトキャ プチャ 1) このビットは , キャプチャレジスタ 0 の有効エッジ指示ビットであり , 立上 りエッジまたは立下りエッジが検出されたことを示します。 • 立下りエッジが検出されると , このビットに "0" が書き込まれます。 • 立上りエッジが検出されると , このビットに "1" が書き込まれます。 • このビットは読出し専用ビットです。 ( 注意事項 ) インプットキャプチャ状態制御レジスタ下位(PICSL01)の EG01, EG00:bit1, bit0=00B の場合 , 読出し値は意味がありません。 • bit8 IEI0: 有効エッジ指 示ビット(イ ンップトキャ プチャ 0) 315 第 14 章 多機能タイマ ■ インプットキャプチャ状態制御レジスタ(ch.0, ch.1), 下位バイト(PICSL01) 図 14.4-18 インプットキャプチャ状態制御レジスタ(ch.0, ch.1), 下位バイト(PICSL01) bit 7 6 5 4 3 2 1 0 ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 R/W R/W R/W R/W R/W R/W R/W R/W EG01 EG00 初期値 00000000B エッジ選択ビット(インプットキャプチャ0) 0 0 エッジは検出されない(停止) 0 1 立上りエッジが検出される 1 0 立下りエッジが検出される 1 1 両方のエッジが検出される EG11 EG10 0 0 エッジは検出されない(停止) 0 1 立上りエッジが検出される 1 0 立下りエッジが検出される 1 1 両方のエッジが検出される エッジ選択ビット(インプットキャプチャ1) ICE0 割込み要求許可ビット(インプットキャプチャ0) 0 割込み要求を禁止する 1 割込み要求を許可する ICE1 割込み要求許可ビット(インプットキャプチャ1) 0 割込み要求を禁止する 1 割込み要求を許可する ICP0 割込み要求フラグビット(インプットキャプチャ0) 読出し 0 有効なエッジが検出されない このビットはクリアされる 1 有効なエッジが検出される ICP1 316 このビットは影響を受けない 割込み要求フラグビット(インプットキャプチャ1) 読出し R/W :リード/ライト :初期値 書込み 書込み 0 有効なエッジが検出されない このビットはクリアされる 1 有効なエッジが検出される このビットは影響を受けない 第 14 章 多機能タイマ 表 14.4-8 インプットキャプチャ状態制御レジスタ(ch.0, ch.1), 下位バイト(PICSL01) ビット名 機能 • bit7 ICP1: 割込み要求フ ラグビット (インプット キャプチャ 1) • • • • • • bit6 ICP0: 割込み要求フ ラグビット (インプット キャプチャ 0) • • • • • • bit5 ICE1: 割込み要求許 可ビット(イ ンプットキャ プチャ 1) • bit4 ICE0: 割込み要求許 可ビット(イ ンプットキャ プチャ 0) • bit3, bit2 EG11, EG10: エッジ選択 ビット(イン プットキャプ チャ 1) • bit1, bit0 EG01, EG00: エッジ選択 ビット(イン プットキャプ チャ 0) • • • • このビットは , インプットキャプチャ 1 の割込み要求フラグとして使用しま す。 このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定 されます。 割込み許可ビット(ICE1:bit5)が設定されている間に有効エッジが検出され ると , 直ちに割込みが生成されます。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : このビットは影響を受けません。 リードモディファイライト時は , 必ず "1" が読み出されます。 このビットは , インプットキャプチャ 0 の割込み要求フラグとして使用しま す。 このビットは , 外部入力端子の有効エッジが検出されると直ちに "1" が設定 されます。 割込み許可ビット(ICE0:bit4)が設定されている間に有効エッジが検出され ると , 直ちに割込みが生成されます。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : このビットは影響を受けません。 リードモディファイライト時は , 必ず "1" が読み出されます。 このビットは , インプットキャプチャ 1 のインプットキャプチャ割込み要求 を許可するために使用します。 このビットに "1" が設定されている間に割込みフラグ(ICP1:bit7)が設定さ れると , インプットキャプチャ 1 割込みが生成されます。 このビットは , インプットキャプチャ 0 のインプットキャプチャ割込み要求 を許可するために使用します。 このビットに "1" が設定されている間に割込みフラグ(ICP0:bit6)が設定さ れると , インプットキャプチャ 0 割込みが生成されます。 これらのビットは , インプットキャプチャ 1 の外部入力の有効エッジ極性を 指定するために使用します。 これらのビットは , インプットキャプチャ 1 の動作を有効にするためにも使 用します。 これらのビットは , インプットキャプチャ 0 の外部入力の有効エッジ極性を 指定するために使用します。 これらのビットは , インプットキャプチャ 0 の動作を有効にするためにも使 用します。 317 第 14 章 多機能タイマ 16 ビットデッドタイマレジスタ(TMRRH, TMRRL0 ∼ TMRRL2) 14.4.8 16 ビットデッドタイマレジスタは , 16 ビットデッドタイマのコンペア値を保持しま す。 ■ 16 ビットデッドタイマレジスタ(TMRRH, TMRRL0 ∼ TMRRL2) 図 14.4-19 16 ビットデッドタイマレジスタ(TMRRH, TMRRL0 ∼ TMRRL2) 16 ビットデッドタイマレジスタ(上位) bit リード/ライト 初期値 15 14 13 12 11 10 9 8 TR15 TR14 TR13 TR12 TR11 TR10 TR09 TR08 R/W X R/W X R/W X R/W X R/W X R/W X R/W X R/W X TMRRH0~TMRRH2 16 ビットデッドタイマレジスタ(下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 TR07 TR06 TR05 TR04 TR03 TR02 TR01 TR00 R/W X R/W X R/W X R/W X R/W X R/W X R/W X R/W X TMRRL0~TMRRL2 これらのレジスタは , 16 ビットデッドタイマの比較値を格納するために使用します。こ れらのレジスタ値は , 16 ビットデッドタイマが動作を開始するとリロードされます。タ イマ動作中にこれらのレジスタに値が再書き込みされると , この新しい値は次回のタ イマ開始 / 動作時に有効になります。 デッドタイムタイマモード時は , これらのレジスタはノンオーバラップ時間を設定す るために使用します。 ノンオーバラップ時間 = (設定値 + 1)× 選択されたクロック < 注意事項 > • "0000H" を設定することはできません。 • ノンオーバラップ時間の最大オフセットは , " 設定値 -1" のカウンタ値です。 タイマモード時は , これらのレジスタは PPG0 タイマ動作の GATE 時間を設定するため に使用します。 GATE 時間 = (設定値 + 1)× 選択されたクロック < 注意事項 > • "0000H" を設定することはできません。最大オフセットは , " 設定値 -1" のカウン タ値です。 • GATE 時間の最大オフセットは , " 設定値 -1" のカウンタ値です。 318 第 14 章 多機能タイマ 14.4.9 16 ビットデッドタイマ制御レジスタ(DTCR0 ∼ DTCR2) 16 ビットデッドタイマ制御レジスタ(DTCR0 ∼ DTCR2)は , 波形ジェネレータの 動作モード , 割込み要求許可 , 割込み要求フラグ , GATE 信号許可および出力レベル 極性を制御するため使用します。 ■ 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR0) 図 14.4-20 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR0) 7 4 3 2 1 0 DMOD0 GTEN1 GTEN0 TMIF0 TMIE0 TMD2 TMD1 TMD0 R/W R/W R/W R/W R/W R/W bit R/W 6 5 R/W TMD2 TMD1 TMD0 動作モードビット 0 0 0 波形ジェネレータが停止する 0 0 1 RT信号が"H"の間にPPG0タイマがパレスを出力する 0 1 0 各RT信号の立上りエッジがトリガとなり,16ビットデッ ドタイマが起動する。PPG0タイマは,16ビットデッドタ イマが停止するまでパレスを出力する(タイマモード)。 1 0 0 RT信号でノンオーバラップ信号を生成する (デッドタイムタイマモード)。 1 1 1 PPG0タイマでノンオーバラップ信号を生成する (デッドタイムタイマモード)。 その他 TMIE0 禁止 割込み要求許可ビット,ソフトウェアトリガビット 0 16ビットデッドタイマでアンダフローが発生されても,割込みを 生成しない。 1 16ビットデッドタイマでアンダフローが発生されると,割込みを 生成する。 TMIF0 割込み要求フラグビット 読出し 書込み 0 カウンタのアンダフローが検出されない このビットはクリア される 1 カウンタのアンダフローが検出される このビットは影響を 受けない GTEN0 GATE信号制御ビット0 0 GATE信号は,RT0で制御されない(非同期モード) 1 GATE信号は,RT0で制御される(同期モード) GTEN1 GATE信号制御ビット1 0 GATE信号は,RT1で制御されない(非同期モード) 1 GATE信号は,RT1で制御される(同期モード) DMOD0 R/W :リード/ライト :初期値 初期値 00000000B 出力極性制御ビット 0 通常極性出力 1 反転極性出力 319 第 14 章 多機能タイマ 表 14.4-9 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR0)( 1 / 2 ) ビット名 機能 このビットは , デッドタイムタイマモードにおいて U/V/W の出力極性を設定 するために使用します。 • このビットを設定すると , U/V/W の出力極性は反転します。 ( 注意事項 ) このビットは , デッドタイムタイマモードが選択されていない場合(TMD2: bit2=0)は意味がありません。 • bit7 DMOD0: 出力極性制御 ビット GTEN1: GATE 信号制 御ビット 1 • bit6 このビットは , RT1 で PPG0 タイマの GATE 信号出力を制御するために使用 します。 GTEN0: GATE 信号制 御ビット 0 • bit5 このビットは , RT0 で PPG0 タイマの GATE 信号出力を制御するために使用 します。 このビットは , 16 ビットデッドタイマの割込み要求フラグとして使用しま す。 • このビットは , 16 ビットデッドタイマ 0, 2 でアンダフローが発生すると "1" が設定されます。 • このビットに "0" を書き込むと , このビットはクリアされます。"1" を書き込 んでもこのビットは影響を受けません。 • リードモディファイライト時は , 必ず "1" が読み出されます。 ( 注意事項 ) このビットは , TMD2 ∼ TMD0:bit2 ∼ bit0)が "000B" または "001B" の場合 • bit4 TMIF0: 割込み要求フ ラグビット • • • bit3 320 TMIE0: 割込み要求許 可ビット , ソ フトウェアト リガビット のみ機能し , ほかの値の場合は必ず "0" になります。 ソフトウェアクリア(”0” 書込み)とハードウェアセット(16 ビットデッド タイマ 0, 2 でアンダフローが発生する)が同時に発生した場合は , ソフト ウェアクリアがハードウェアセットよりも優先され , このビットはクリアさ れます。 このビットは , 16 ビットデッドタイマのソフトウェアトリガビットおよび割 込み許可ビットとして使用されます。 TMD2 ∼ TMD0:bit2 ∼ bit0 が "000B" または "001B" の場合 , このビットは 16 ビットデッドタイマのソフトウェアトリガとして使用されます。このビット を "0" から "1" へ変更すると , 16 ビットデッドタイマがトリガとなり , 値が リロードされ , ダウンカウントが開始します。 • このビットが "1" であり , 割込み要求フラグビット(TMIF0:bit4)が "1" の場 合 , 割込み要求が CPU へ送られます。 ( 注意事項 ) 16 ビットデッドタイマを再度トリガとする場合には , このビットに "1" を書 き込む前に必ず "0" を書き込んでください。 第 14 章 多機能タイマ 表 14.4-9 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR0)( 2 / 2 ) ビット名 機能 • これらのビットは , 波形ジェネレータの動作モードを選択するために使用し ます。 TMD2 ∼ TMD0:bit2 ∼ bit0 が "000B" の場合 , アウトプットコンペアの RT0 • と RT1 の信号は , RTO0 と RTO1 のそれぞれから出力されます。また , 16 ビットデッドタイマはリロードタイマとしても使用できます。 TMD2 ∼ TMD0:bit2 ∼ bit0 が "001B" の場合 , アウトプットコンペアの RT0 • bit2 ∼ bit0 TMD2 ∼ TMD0: 動作モード ビット と RT1 の信号は , PPG0 出力が禁止(PPG 出力制御 / インプットキャプチャ 状態制御レジスタ上位(PICSH01)の PGEN0:bit10=0, PGEN1:bit11=0)にな ると , RTO0 と ROT1 のそれぞれから出力されます。また , 16 ビットデッド タイマはリロードタイマとしても使用できます。 ( 注意事項 ) デッドタイムタイマモードで波形ジェネレータを動作させるには , 必ず RT1 に対して 2 チャネルモード(コンペア制御レジスタ上位(OCSH1)の CMOD:bit12=1)を選択してください。 TMD2 ∼ TMD0:bit2 ∼ bit0 が "111B" の場合 , RT0 出力と RT1 出力は , PPG 出力制御 / インプットキャプチャ状態制御レジスタ上位(PICSH01)の PGEN0:bit10=0, PGEN1:bit11=0 の設定に依存しません。 321 第 14 章 多機能タイマ ■ 16 ビットデッドタイマ制御レジスタ , 上位バイト(DTCR1) 図 14.4-21 16 ビットデッドタイマ制御レジスタ , 上位バイト(DTCR1) 15 12 11 10 9 8 DMOD1 GTEN3 GTEN2 TMIF1 TMIE1 TMD5 TMD4 TMD3 R/W R/W R/W R/W R/W R/W bit R/W 14 13 R/W TMD5 TMD4 TMD3 動作モードビット 0 0 0 波形ジェネレータが停止する 0 0 1 RT信号が"H"の間にPPG0タイマがパレスを出力する 0 1 0 各RT信号の立上りエッジがトリガとなり,16ビットデッ ドタイマが起動する。PPG0タイマは,16ビットデッドタ イマが停止するまでパレスを出力する(タイマモード)。 1 0 0 RT信号でノンオーバラップ信号を生成する (デッドタイムタイマモード)。 1 1 1 PPG0タイマでノンオーバラップ信号を生成する (デッドタイムタイマモード)。 その他 TMIE1 割込み要求許可ビット,ソフトウェアトリガビット 16ビットデッドタイマでアンダフローが発生されても,割込みを 生成しない。 1 16ビットデッドタイマでアンダフローが発生されると,割込みを 生成する。 割込み要求フラグビット 読出し 書込み 0 カウンタのアンダフローが検出されない このビットはクリア される 1 カウンタのアンダフローが検出される このビットは影響を 受けない GTEN2 GATE信号制御ビット2 0 GATE信号は,RT2で制御されない(非同期モード) 1 GATE信号は,RT2で制御される(同期モード) GTEN3 GATE信号制御ビット3 0 GATE信号は,RT3で制御されない(非同期モード) 1 GATE信号は,RT3で制御される(同期モード) DMOD1 322 禁止 0 TMIF1 R/W :リード/ライト :初期値 初期値 00000000B 出力極性制御ビット 0 通常極性出力 1 反転極性出力 第 14 章 多機能タイマ 表 14.4-10 16 ビットデッドタイマ制御レジスタ , 上位バイト(DTCR1)( 1 / 2 ) ビット名 機能 • このビットは , デッドタイムタイマモードにおいて U/V/W の出力極性を設定 するために使用します。 このビットを設定すると , U/V/W の出力極性は反転します。 このビットは , デッドタイムタイマモードが選択されていない場合(TMD5: bit10=0)は意味がありません。 bit15 DMOD1: 出力極性制御 ビット GTEN3: GATE 信号 制御ビット 3 • bit14 このビットは , RT3 で PPG0 タイマの GATE 信号出力を制御するために使用 します。 GTEN2: GATE 信号 制御ビット 2 • bit13 このビットは , RT2 で PPG0 タイマの GATE 信号出力を制御するために使用 します。 • • このビットは , 16 ビットデッドタイマの割込み要求フラグとして使用しま す。 • このビットは , 16 ビットデッドタイマ 1 でアンダフローが発生すると "1" が 設定されます。 • このビットに "0" を書き込むと , このビットはクリアされます。"1" を書き込 んでもこのビットは影響を受けません。 • リードモディファイライト時は必ず "1" が読み出されます。 ( 注意事項 ) このビットは , TMD5 ∼ TMD3: ビット 10 ∼ 8 が "000B" または "001B" の場 • bit12 TMIF1: 割込み要求 フラグビット 合のみ機能し , ほかの値の場合は必ず ”0” になります。 ソフトウェアクリア("0" 書き込み)とハードウェアセット(16 ビットデッ ドタイマ 1 でアンダフローが発生する)が同時に発生した場合は , ソフト ウェアクリアがハードウェアセットよりも優先され , このビットをクリアし ます。 • • bit11 TMIE1: 割込み要求許 可ビット , ソフトウェア トリガビット このビットは , 16 ビットデッドタイマのソフトウェアトリガビットおよび割 込み許可ビットとして使用します。 TMD5 ∼ TMD3:bit10 ∼ bit8 が "000B" または "001B" の場合 , このビットは 16 ビットデッドタイマのソフトウェアトリガとして使用されます。この ビットを "0" から "1" へ変更すると , 16 ビットデッドタイマがトリガとなり , 値がリロードされ , ダウンカウントが開始します。 • このビットが "1" であり , 割込みフラグビット(TMIF1:bit12)が "1" の場合 , 割込み要求が CPU へ送られます。 ( 注意事項 ) 16 ビットデッドタイマを再度トリガとする場合には , このビットに "1" を書 き込む前に必ず "0" を書き込んでください。 323 第 14 章 多機能タイマ 表 14.4-10 16 ビットデッドタイマ制御レジスタ , 上位バイト(DTCR1)( 2 / 2 ) ビット名 機能 • これらのビットは , 波形ジェネレータの動作モードを選択するために使用し ます。 TMD5 ∼ TMD3:bit10 ∼ bit8 が "000B" の場合 , アウトプットコンペアの RT2 • と RT3 の信号は , RTO2 と RTO3 のそれぞれから出力されます。また , 16 ビットデッドタイマはリロードタイマとしても使用できます。 TMD5 ∼ TMD3:bit10 ∼ bit8 が "001B" の場合 , アウトプットコンペアの RT2 • bit10 ∼ bit8 TMD5 ∼ TMD3: 動作モード ビット と RT3 は , PPG0 出力が禁止(PPG 出力制御 / インプットキャプチャ状態制 御レジスタ上位(PICSH01)の PGEN2:bit12=0, PGEN3:bit13=0 になると , RTO2 と RTO3 のそれぞれから出力されます。また , 16 ビットデッドタイマ はリロードタイマとしても使用できます。 ( 注意事項 ) デッドタイムタイマモードで波形ジェネレータを動作させるには , 必ず RT3 に対して 2 チャネルモード(コンペア制御レジスタ上位(OCSH3)の CMOD:bit12=1 を選択してください。 TMD5 ∼ TMD3:bit10 ∼ bit8 が "111B" の場合 , RTO2 の出力と RTO3 の出力 は , PPG 出力制御インプットキャプチャ状態制御レジスタ上位(PICSH01) の PGEN2:bit12=0, PGEN3:bit13=0 の設定に依存しません。 324 第 14 章 多機能タイマ ■ 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR2) 図 14.4-22 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR2) bit 7 4 3 2 1 0 DMOD2 GTEN5 GTEN4 TMIF2 TMIE2 TMD8 TMD7 TMD6 R/W R/W R/W R/W R/W R/W R/W 6 5 R/W TMD8 TMD7 TMD6 動作モードビット 0 0 0 波形ジェネレータが停止する 0 0 1 RT信号が"H"の間にPPG0タイマがパレスを出力する 0 1 0 各RT信号の立上りエッジがトリガとなり,16ビットデッ ドタイマが起動する。PPG0タイマは,16ビットデッドタ イマが停止するまでパレスを出力する(タイマモード)。 1 0 0 RT信号でノンオーバラップ信号を生成する (デッドタイムタイマモード)。 1 1 1 PPG0タイマでノンオーバラップ信号を生成する (デッドタイムタイマモード)。 その他 TMIE2 禁止 割込み要求許可ビット,ソフトウェアトリガビット 0 16ビットデッドタイマでアンダフローが発生されても,割込みを 生成しない。 1 16ビットデッドタイマでアンダフローが発生されると,割込みを 生成する。 TMIF2 割込み要求フラグビット 読出し 書込み 0 カウンタのアンダフローが検出されない このビットはクリア される 1 カウンタのアンダフローが検出される このビットは影響を 受けない GTEN4 GATE信号制御ビット4 0 GATE信号は,RT4で制御されない(非同期モード) 1 GATE信号は,RT4で制御される(同期モード) GTEN5 GATE信号制御ビット1 0 GATE信号は,RT5で制御されない(非同期モード) 1 GATE信号は,RT5で制御される(同期モード) DMOD2 R/W :リード/ライト :初期値 初期値 00000000B 出力極性制御ビット 0 通常極性出力 1 反転極性出力 325 第 14 章 多機能タイマ 表 14.4-11 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR2)( 1 / 2 ) ビット名 機能 このビットは , デッドタイムタイマモードにおいて U/V/W の出力極性を設定 するために使用します。 • このビットを設定すると , U/V/W の出力極性は反転します。 ( 注意事項 ) このビットは , デッドタイムタイマモードが選択されていない場合(TMD8: bit2=0)は意味がありません。 • bit7 DMOD2: 出力極性制御 ビット GTEN5: GATE 信号制 御ビット 5 • bit6 このビットは , RT5 で PPG0 タイマの GATE 信号出力を制御するために使用 します。 GTEN4: GATE 信号制 御ビット 4 • bit5 このビットは , RT4 で PPG0 タイマの GATE 信号出力を制御するために使用 します。 このビットは , 16 ビットデッドタイマの割込み要求フラグとして使用しま す。 • このビットは , 16 ビットデッドタイマ 1 でアンダフローが発生すると "1" が 設定されます。 • このビットに "0" を書き込むと , このビットはクリアされます。"1" を書き込 んでもこのビットは影響を受けません。 • リードモディファイライト時は必ず "1" が読み出されます。 ( 注意事項 ) このビットは , TMD8 ∼ TMD6:bit2 ∼ bit0 が "000B" または "001B" の場合の • bit4 TMIF2: 割込み要求フ ラグビット み機能し , ほかの値の場合は必ず ”0” になります。 ソフトウェアクリア("0" 書込み)とハードウェアセット(16 ビットデッド タイマ 1 でアンダフローが発生する)が同時に発生した場合は , ソフトウェ アクリアがハードウェアセットよりも優先され , このビットをクリアしま す。 • • bit3 326 TMIE2: 割込み要求許 可ビット , ソ フトウェアト リガビット このビットは , 16 ビットデッドタイマ 16 ビットデッドタイマのソフトウェ アトリガビットおよび割込み許可ビットとして使用します。 TMD8 ∼ TMD6:bit2 ∼ bit0 が "000B" または "001B" の場合 , このビットは 16 ビットデッドタイマのソフトウェアトリガとして使用されます。このビット を "0" から "1" へ変更すると , 16 ビットデッドタイマがトリガとなり , 値が リロードされ , ダウンカウントが開始します。 • このビットが "1" であり , 割込みフラグビット(TMIF2:bit4)が "1" の場合 , 割込み要求が CPU へ送られます。 ( 注意事項 ) 16 ビットデッドタイマを再度トリガとする場合には , このビットに "1" を書 き込む前に必ず "0" を書き込んでください。 第 14 章 多機能タイマ 表 14.4-11 16 ビットデッドタイマ制御レジスタ , 下位バイト(DTCR2)( 2 / 2 ) ビット名 機能 • これらのビットは , 波形ジェネレータの動作モードを選択するために使用し ます。 TMD8 ∼ TMD6:bit2 ∼ bit0 が "000B" の場合 , アウトプットコンペアの RT4 • と RT5 の信号は , RTO4 と RTO5 のそれぞれから出力されます。また , 16 ビットデッドタイマはリロードタイマとしても使用できます。 TMD8 ∼ TMD6:bit2 ∼ bit0 が "001B" の場合 , アウトプットコンペアの RT4 • bit2 ∼ bit0 TMD8 ∼ TMD6: 動作モード ビット と RT5 は , PPG0 出力が禁止(PPG 出力制御 / インプットキャプチャ状態制 御レジスタ上位(PICSH01)の PGEN4:bit14=0, PGEN5:bit15=0 になると , RTO4 と RTO5 のそれぞれから出力されます。また , 16 ビットデッドタイマ はリロードタイマとしても使用できます。 ( 注意事項 ) デッドタイムタイマモードで波形ジェネレータを動作させるには , 必ず RT5 に対して 2 チャネルモード(コンペア制御レジスタ上位(OCSH5)の CMOD:bit12=1 を選択してください。 TMD8 ∼ TMD6:bit2 ∼ bit0 が "111B" の場合 , RTO4 の出力と RTO5 の出力 は , PPG 出力制御インプットキャプチャ状態制御レジスタ上位(PICSH01) の PGEN4:bit14=0, PGEN5:bit15=0 の設定に依存しません。 327 第 14 章 多機能タイマ 波形制御レジスタ(SIGCR) 14.4.10 波形制御レジスタは , 動作クロック周波数 , ノイズキャンセル機能有効 , DTTI 入力 有効および DTTI 割込みを制御するために使用します。 ■ 波形制御レジスタ(SIGCR) 図 14.4-23 波形制御レジスタ(SIGCR) bit 15 14 13 12 11 10 DTIE DTIF NRSL DCK2 DCK1 DCK0 NWS1 NWS0 R/W R/W R/W R/W R/W R/W R/W R/W NWS1 9 8 初期値 00000000B NWS0 DTTIノイズ幅選択ビット 0 0 4サイクルノイズをキャンセルする 0 1 8サイクルノイズをキャンセルする 1 0 16サイクルノイズをキャンセルする 1 1 32サイクルノイズをキャンセルする DCK2 DCK1 DCK0 動作クロック選択ビット 0 0 0 φ (62.5ns,f=16MHz) 0 0 1 φ/2 (125ns,f=16MHz) 0 1 0 φ/4 (250ns,f=16MHz) 0 1 1 φ/8 (500ns,f=16MHz) 1 0 0 φ/16 (1ms,f=16MHz) 1 0 1 φ/32 (2ms,f=16MHz) 1 1 0 φ/64 (4ms,f=16MHz) 1 1 1 禁止 φ :マシンサイクル NRSL ノイズキャンセル機能有効ビット 0 DTTI入力の,ノイズキャンセル回路が無効 1 DTTI入力の,ノイズキャンセル回路が有効 DTTI割込みフラグビット DTIF R/W :リード/ライト :初期値 328 読出し 書込み 0 割込み要求なし このビットはクリアされる 1 割込み要求あり このビットは影響受けない DTIE DTTI入力有効ビット 0 DTTI入力を無効にする 1 DTTI入力を有効にする 第 14 章 多機能タイマ 表 14.4-12 波形制御レジスタ(SIGCR) ビット名 bit15 DTIE: DTTI 入力有効 ビット 機 能 • このビットは , RTO0 ∼ RTO5 端子の出力レベル制御用 DTTI 端子を有効にす るために使用します。 DTIF: DTTI 割込み フラグビット このビットは , DTTI の割込みフラグです。 DTTI 入力が有効になり(DTIE:bit5=1), DTTI の low レベルが検出されると , このビットが設定され , 割込み要求が CPU へ送られます。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト時では , 必ず "1" が読み出されます。 ( 注意事項 ) ノイズキャンセル機能が有効になった場合(NRSL:bit13=1), ノイズパルス 幅が渡されると , このビットには "1" が設定されます。 ソフトウェアクリア("0" 書込み)とハードウェアセット(DTTI の low レ ベル検出)が同時に発生した場合は , ソフトウェアクリアがハードウェアリ セットよりも優先され , このビットはクリアされます。 bit13 NRSL: ノイズキャン セル機能有効 ビット このビットは , ノイズキャンセル機能を有効にするために使用します。 ノイズキャンセル回路は , カウンタでオーバフローが発生するまで low レベ ルが保持されると , DTTI 入力信号を受取ります。カウンタは , low レベル入 力で操作される n ビットカウンタです。n は , NWS1, NWS0 ビット :9, 8 の設 定に基づいて 2, 3, 4 または 5 のいずれかの値になります。 ( 注意事項 ) ノイズパルス幅をキャンセルするには , 約 2n マシンサイクルが必要になり ます。 ノイズキャンセル回路を選択すると , 内部クロックが停止するモード(停止 モードなど)時は入力が無効になります。 bit12 ∼ bit10 DCK2 ∼ DCK0: 動作クロック 選択ビット • これらのビットは , 16 ビットデッドタイマの動作クロックを選択するために 使用します。 bit9, bit8 NWS1, NWS 0: DTTI ノイズ幅 選択ビット • これらのビットは , 除去する DTTI 端子ノイズパルス幅を選択するために使 用します。 • • bit14 • • 329 第 14 章 多機能タイマ 14.5 多機能タイマ割込み 多機能タイマは , 16 ビットフリーランタイマ割込み , 16 ビットアウトプットコンペ ア割込み , 16 ビットインプットキャプチャ割込みおよび波形ジェネレータ割込みを 生成できます。 ■ 16 ビットフリーランタイマ割込み 16 ビットフリーランタイマの割込み制御ビットと割込み要因を表 14.5-1 に示します。 表 14.5-1 16 ビットフリーランタイマの割込み制御ビットと割込み要因 16 ビットフリーランタイマ コンペアクリア ゼロ検出 割込み要求フラグビット タイマ状態レジスタ上位(TCCSH)の ICLR:bit9 タイマ状態レジスタ上位(TCCSH)の IRQZF:bit14 割込み要求許可ビット タイマ状態レジスタ上位(TCCSH)の ICRE:bit8 タイマ状態レジスタ上位(TCCSH)の IRQZE:bit13 割込み要因 16 ビットフリーランタイマ値がコンペ アクリアレジスタ(CPCLRH, L)と一 致する 16 ビットフリーランタイマ値が "0" に なる 16 ビットフリーランタイマの値がコンペアクリアレジスタ(CPCLRH, L)と一致する と , タイマ状態制御レジスタ(TCCSH)の ICLR:bit9 に "1" が設定されます。この状態 において割込み要求が許可(TCCSH レジスタの ICRE:bit8=1)になると , 割込み要求が 割込みコントローラへ出力されます。 タイマ値が "0000H" になると , タイマ状態制御レジスタ(TCCSH)の IRQZF:bit14 に "1" が設定されます。この状態において割込み要求が許可(TCCSH レジスタの IRQZE: bit13=1)になると , 割込み要求が割込みコントローラへ出力されます。 ■ 16 ビットフリーランタイマ割込みと EI2OS 16 ビットフリーランタイマ割込みと EI2OS を表 14.5-2 に示します。 表 14.5-2 16 ビットフリーランタイマ割込みと EI2OS チャネル 割込み 番号 割込み制御レジスタ ベクトルテーブルアドレス EI2OS レジスタ名 アドレス 下位 中位 上位 コンペアクリア *1 #34(22H) ICR11 0000BBH FFFF74H FFFF75H FFFF76H ゼロ検出 *2 #31(1FH) ICR10 0000BAH FFFF80H FFFF81H FFFF82H △ *1:16 ビットフリーランタイマコンペアクリアの割込み制御レジスタと同じ値が 16 ビット入力キャプチャチャ ネル 0, 1 に割当てられます。 *2:16 ビットフリーランタイマ “0” 検出の割込み制御レジスタと同じ値が 16 ビット PPG タイマ 2 に割当てられ ます。 330 第 14 章 多機能タイマ ■ 16 ビットアウトプットコンペア割込み 16 ビットアウトプットコンペアの割込み制御ビットと割込み要因を表 14.5-3 に示しま す。 表 14.5-3 16 ビットアウトプットコンペア 0 ∼ 5 の割込み制御ビットと割込み要因 16 ビットアウトプット コンペア 0, 1 16 ビットアウトプット コンペア 2, 3 16 ビットアウトプット コンペア 4, 5 割込み要求フラグビット コンペア制御レジスタ下 位(OCSL0)の IOP1, IOP 0(bit7, bit6) コンペア制御レジスタ下 位(OCSL2)の IOP1, IOP0(bit7, bit6) コンペア制御レジスタ下 位(OCSL4)の IOP1, IOP0(bit7, bit6) 割込み要求許可ビット コンペア制御レジスタ下 位(OCSL0)の IOE1, IOE0(bit5, bit4) コンペア制御レジスタ下 位(OCSL2)の IOE1, IOE 0(bit5, bit4) コンペア制御レジスタ下 位(OCSL4)の IOE1, IOE 0(bit5, bit4) 割込み原因 16 ビットフリーランタイ マ値がアウトプットコン ペアレジスタ(OCCPH, L0, L1)と一致する 16 ビットフリーランタイ マ値がアウトプットコン ペアレジスタ(OCCPH, L2, L3)と一致する 16 ビットフリーランタイ マ値がアウトプットコン ペアレジスタ(OCCPH, L4, L5)と一致する 16 ビットフリーランタイマ値がアウトプットコンペアレジスタ(OCCPH, L0 ∼ L5) と一致すると, コンペア制御レジスタ下位(OCSL0, OCSL2, OCSL4)のIOP1, IOP0:bit7, bit6 に "1" に設定されます。この状態において割込み要求が許可(OCSL0, OCSL2, OCSL4 レジスタの IOE1, IOE0:bit5, bit4=11B)になると , 割込み要求が割込みコント ローラへ出力されます。 ■ 16 ビットアウトプットコンペア割込みと EI2OS 16 ビットアウトプットコンペア割込みと EI2OS を表 14.5-4 に示します。 表 14.5-4 16 ビットアウトプットコンペア割込みと EI2OS 割込み制御レジスタ ベクトルテーブルアドレス 割込み 番号 レジスタ名 アドレス 下位 中位 上位 出力コンペア 0 一致 *1 #12(0CH) ICR00 0000B0H FFFFCCH FFFFCDH FFFFCEH 出力コンペア 1 一致 *2 #15(0FH) ICR02 0000B2H FFFFC0H FFFFC1H FFFFC2H 出力コンペア 2 一致 *3 #17(11H) ICR03 0000B3H FFFFB8H FFFFB9H FFFFBAH 出力コンペア 3 一致 *4 #19(13H) ICR04 0000B4H FFFFB0H FFFFB1H FFFFB2H 出力コンペア 4 一致 *5 #21(15H) ICR05 0000B5H FFFFA8H FFFFA9H FFFFAAH 出力コンペア 5 一致 *6 #23(17H) ICR06 0000B6H FFFFA0H FFFFA1H FFFFA2H チャネル EI2OS ○ *1:16 ビットアウトプットコンペア 0 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が A/D 変換 終了に割当てられています。 *2:16 ビットアウトプットコンペア 1 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が 16 ビット PPG タイマ 1 に割当てられています。 *3:16 ビットアウトプットコンペア 2 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が 16 ビット リロードタイマ 1 アンダフローに割当てられています。 *4:16 ビットアウトプットコンペア 3 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が DTP, 外部 割込みチャネル 0, 1 検出 , DTTI に割当てられています。 *5:16 ビットアウトプットコンペア 4 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が DTP, 外部 割込みチャネル 2, 3 検出 , DTTI に割当てられています。 *6:16 ビットアウトプットコンペア 5 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が PWC タ イマ 1 に割当てられています。 331 第 14 章 多機能タイマ ■ 16 ビットインプットキャプチャ割込み 16 ビットインプットキャプチャの割込み制御ビットと割込み要因を表 14.5-5 に示しま す。 表 14.5-5 16 ビットインプットキャプチャ 0 ∼ 3 の割込み制御ビットと割込み要因 16 ビットインプットキャプチャ 0, 1 16 ビットインプットキャプチャ 2, 3 割込み要求フラグビット インプットキャプチャ状態制御レジス タ下位(PICSL01)の ICP1, ICP0 (bit7, bit 6) インプットキャプチャ状態制御レジス タ下位(ICSL23)の ICP3, ICP2 (bit7, bit 6) 割込み要求許可ビット インプットキャプチャ状態制御レジス タ下位(PICSL01)の ICE1, ICE0 (bit5, bit 4) インプットキャプチャ状態制御レジス タ下位(ICSL23)の ICP3, ICP2 (bit5, bit4) 有効なエッジが IN0, IN1 端子で検出さ れる 割込み要因 有効なエッジが IN2, IN3 端子で検出さ れる 16 ビットインプットキャプチャでは , 有効なエッジが IN0 ∼ IN3 端子で検出される と , インプットキャプチャ状態制御レジスタ(PICSL01, ICSL23)の ICP3 ∼ ICP0: 共 に bit7, bit6 に "11B" が設定されます。この状態において割込み要求が許可(PICSL01, ICSL23 レジスタの ICE3 ∼ ICE0: 共に bit5, bit4=11B)になると , 割込み要求は割込み コントローラへ出力されます。 ■ 16 ビットインプットキャプチャ割込みと EI2OS 16 ビットインプットキャプチャ割込みと EI2OS を表 14.5-6 に示します。 表 14.5-6 16 ビットインプットキャプチャ割込みと EI2OS 割込み制御レジスタ チャネル インプットキャプチャ 0, *1 1 割込み 番号 #33 (21H) ベクトルテーブルアドレス EI2OS レジスタ 名 アドレス 下位 中位 上位 ICR11 0000BBH FFFF78H FFFF79H FFFF7AH ○ インプットキャプチャ 2, 3*2 #35 (23H) ICR12 0000BCH FFFF70H FFFF71H FFFF72H *1:16 ビットインプットキャプチャ 0, 1 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が 16 ビットフリーランタイマコンペアクリアに割当てられています。 *2:16 ビットインプットキャプチャ 2, 3 の割込み制御レジスタと同じ値(レジスタ番号とアドレス)がタイム ベースタイマに割当てられています。 332 第 14 章 多機能タイマ ■ 波形ジェネレータ割込み 波形ジェネレータの割込み制御ビットと割込み要因を表 14.5-7 に示します。 表 14.5-7 波形ジェネレータの割込み制御ビットと割込み要因 波形ジェネレータ DTTI0 16 ビットデッドタイマ 0, 1, 2 割込み要求フラグビット 16 ビットデッドタイマ制御レジスタ上位 , 下 位(DTCR0 ∼ DTCR2)の TMIF0 ∼ TMIF2 (上位は bit12, 下位は bit4) 波形制御レジスタ(SIGCR)の DTIF(bit14) 16 ビットデッドタイマ制御レジスタ上位 , 下 位(DTCR0 ∼ DTCR2)の TMIE0 ∼ TMIE2 (上位は bit11, 下位は bit3) − 割込み要求許可ビット 16 ビットデッドタイマ 0, 1, 2 アンダフロー 割込み要因 DTTI で low レベルが検出される 波形ジェネレータでは , 16 ビットデッドタイマのアンダフローが発生し , かつ DTCR0 ∼ DTCR2 レジスタの TMD8 ∼ TMD0(上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0)が "000B" ま たは "001B" のとき , 16 ビットデッドタイマ制御レジスタ(DTCR0 ∼ DTCR2)の TMIF0 ∼ TMIF2(上位は bit12, 下位は bit4)には "1" が設定されます。この状態において割込み要 求が許可(DTCR0 ∼ DTCR2 レジスタの TMIE0 ∼ TMIE2(上位は bit11, 下位は bit3)=1) になると , 割込み要求は割込みコントローラへ出力されます。 ■ 波形ジェネレータ割込みと EI2OS 波形ジェネレータ割込みと EI2OS を表 14.5-8 に示します。 表 14.5-8 波形ジェネレータ割込みと EI2OS 割込み 番号 チャネル 16 ビットデッドタイマ 0, 1, 2 アンダフロー *1 DTTI *2 割込み制御レジスタ ベクトルテーブルアドレス レジスタ名 アドレス 下位 中位 上位 ICR09 0000B9H FFFF88H FFFF89H FFFF8AH ICR04 0000B4H FFFFACH FFFFADH FFFFAEH #29(1DH) EI2OS △ #20(14H) *1:16 ビットデッドタイマ 0, 1, 2 アンダフローの割込み制御レジスタと同じ値(レジスタ番号とアドレス)が 16 ビットリロードタイマ 0 アンダフローに割当てられています。 *2:DTTI の割込み制御レジスタと同じ値(レジスタ番号とアドレス)が多機能タイマの DTP, 外部割込みチャ ネル 0, 1 検出 , 16 ビットアウトプウトコンペア 3 に割当てられています。 ■ 多機能タイマの EI2OS 機能 多機能タイマは EI2OS と連係する回路を持っているので , 割込みが発生すると EI2OS を起動できます。 ただし , EI2OS は , 割込み制御レジスタ(ICR)を共用するほかのリソースが割込みを 使用しない場合に限り使用可能です。たとえば , 16 ビットフリーランタイマのコンペ アクリアが EI2OS を使用している場合 , 16 ビットインプットキャプチャチャネル 0, 1 割込みを禁止しなければなりません。 333 第 14 章 多機能タイマ 14.6 多機能タイマの動作 多機能タイマの動作について説明します。 ■ 多機能タイマの動作 ● 16 ビットフリーランタイマ 16 ビットフリーランタイマは , リセット解除後 , タイマデータレジスタ(TCDTH, TCDTL)に設定されている値からカウントアップを開始します。カウンタ値は , 16 ビッ トアウトプウトコンペアと 16 ビットインプットキャプチャの基準時間として使用され ます。 ● 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアは , " 指定されたアウトプットコンペアレジスタに設定 されている値 " と "16 ビットフリーランタイマ値 " の比較に使用します。一致が検出さ れた場合は , 割込みフラグが設定され , 出力レベルは反転します。 ● 16 ビットインプットキャプチャ 16 ビットインプットキャプチャは , 指定された有効なエッジを検出するために使用し ます。有効なエッジが検出されると , 割込みフラグが設定され , 16 ビットフリーランタ イマ値が取出され , インプットキャプチャデータレジスタへ格納されます。 ● 波形ジェネレータ 波形ジェネレータは , リアルタイム出力(RTO0 ∼ RTO5), 16 ビット PPG タイマ 0, 16 ビットデッドタイマを使用してさまざまな波形(デッドタイムを含む)を生成します。 334 第 14 章 多機能タイマ 14.6.1 16 ビットフリーランタイマの動作 16 ビットフリーランタイマは , リセット完了後 , タイマデータレジスタ(TCDTH, TCDTL)に設定されている値からカウントアップを開始します。カウンタ値は , 16 ビットアウトプットコンペアと 16 ビットインプットキャプチャの基準時間として使 用されます。 ■ タイマクリア 16 ビットフリーランタイマのカウンタ値は , 下記のいずれかの場合にクリアされます。 • アップカウントモード(TCCSL レジスタの MODE:bit4=0)によってコンペアクリア レジスタとの一致が検出された場合 • 動作中に TCCSL レジスタの SCLR:bit3 に "1" が書き込まれた場合 • 停止中に TCDTH, TCDTL レジスタに "0000H" が書き込まれた場合 • リセットされた場合 リセットされると , カウンタは直ちにクリアされます。ソフトウェアクリアされた場合 またはコンペアクリアレジスタとの一致が発生した場合は , カウンタはカウントタイ ミングと同期してクリアされます。 図 14.6-1 16 ビットフリーランタイマのクリアタイミング φ コンペア レジスタ値 N コンペア一致 N カウンタ値 0000H ■ タイマモード 16 ビットフリーランタイマでは , 以下のどちらかのモードを選択できます。 • アップカウントモード(TCCSL レジスタの MODE:bit4=0) • アップダウンカウントモード(TCCSL レジスタの MODE:bit4=1) アップカウントモード時は , カウンタは事前に設定されているタイマデータレジスタ (TCDTH, TCDTL)からカウントを開始し , カウンタ値がコンペアクリアレジスタ (CPCLRH, CPCLRL)の値と一致するまでカウントアップし , 次にカウンタは "0000H" にクリアされ , 次に再びカウントアップします。 アップダウンカウントモード時は , カウンタは事前に設定されているタイマデータレ ジスタ(TCDTH, TCDTL)からカウントを開始し , カウンタ値がコンペアクリアレジ スタ(CPCLRH, CPCLRL)の値と一致するまでカウントアップし , 次にカウンタがアッ プカウントからダウンカウントに変わり , カウンタ値が "0000H" に達するまでカウント ダウンし , 次に再びカウントアップします。 335 第 14 章 多機能タイマ モードビット(TCCSL レジスタの MODE:bit4)には , タイマが動作中であろうと停止 していようといつでも値を書き込むことができます。タイマ動作中にこのビットに書 き込まれた値はバッファに入れられ , カウントモードはタイマ値が "0000H" になると変 わります。 図 14.6-2 タイマ動作中にタイマモードを変える カウンタ値 FFFFH BFFF H 7FFFH 3FFFH 0000 H 時間 アップカウントモードに変わる タイマ動作開始 アップダウンカウンタモードに変わる リセット コンペアクリア バッファレジスタ BFFFH TCCSL:MODE ■ コンペアクリアバッファ コンペアクリアレジスタ(CPCLRH, CPCLRL)には , 有効または無効にできるバッファ 機能が存在します。バッファ機能が有効(TCCSL レジスタの BFE:bit6=1)の場合は , コ ンペアクリアバッファレジスタ(CPCLRBH, CPCLRBL)に書き込まれたデータは , 16 ビットフリーランタイマ値 "0" が検出されると CPCLRH, CPCLRL レジスタに転送され ます。 バッファ機能が無効 (TCCSLビットのBFE:bit6=0) の場合は, CPCLRBH, CPCLRBL レジスタは透過であり , データは CPCLRH, CPCLRL レジスタに直接書き込むことがで きます。 図 14.6-3 コンペアクリアバッファが無効(TCCSL レジスタの BFE:bit6=0)時の アップカウントモードによる動作 カウンタ値 FFFFH BFFF H 7FFFH 3FFFH 0000 H 時間 タイマ動作開始 リセット ゼロ検出 コンペアクリア バッファレジスタ値 BFFFH 7FFFH FFFFH BFFFH 7FFFH FFFFH コンペアクリア レジスタ値 336 コンペアクリア一致 第 14 章 多機能タイマ 図 14.6-4 コンペアクリアバッファが有効(TCCSL レジスタの BFE:bit6=1)時の アップカウントモードによる動作 カウンタ値 FFFFH BFFF H 7FFFH 3FFFH 0000 H 時間 タイマ動作開始 リセット コンペアクリア バッファレジスタ値 コンペアクリア レジスタ値 コンペアクリア一致 ゼロ検出 BFFFH FFFFH 7FFFH 7FFFH BFFFH FFFFH 図 14.6-5 コンペアクリアバッファが有効(TCCSL レジスタの BFE:bit6=1)時の アップダウンカウントモードによる動作 カウンタ値 コンペアクリア一致 FFFFH BFFF H 7FFFH 3FFFH 0000 H 時間 タイマ動作開始 ゼロ検出 リセット コンペアクリア バッファレジスタ値 コンペアクリア レジスタ値 BFFFH BFFFH FFFFH 7FFFH 7FFFH FFFFH 337 第 14 章 多機能タイマ ■ タイマ割込み 16 ビットフリーランタイマでは , 以下の 2 つの割込みを生成できます。 • コンペアクリア割込み • ゼロ検出割込み コンペアクリア割込みは , タイマ値がコンペアクリアレジスタ(CPCLRH, CPCLRL) の値と一致すると生成されます。 ゼロ検出割込みは , タイマ値が "0000H" に達すると生成されます。 < 注意事項 > ソフトウェアクリア(TCCSL レジスタの SCLR:bit3=1)は , ゼロ検出割込みを生成 しません。 図 14.6-6 アップカウントモード(TCCSL レジスタの MODE:bit4=0)で生成された割込み カウンタ値 N-1 N 0 1 コンペアクリア割込み ゼロ検出割込み 図 14.6-7 アップダウンカウントモード(TCCSL レジスタの MODE:bit4=1)で生成された割込み カウンタ値 N-1 N N-1 0 コンペアクリア割込み ゼロ検出割込み ■ 割込みマスク機能 TCCSH レジスタの MSI2 ∼ MSI0:bit12 ∼ bit10 を設定すると , 割込み要求をマスクでき ます。MSI2 ∼ MSI0 ビットは , カウント値が "000B" に達すると値をリロードする 3 ビットリロードダウンカウンタです。カウント値は , MSI2 ∼ MSI0 ビットに直接書き 込むことによってもロードできます。マスクカウントは , MSI2 ∼ MSI0 ビットに設定 された値です。MSI2∼MSI0ビットが"000B"になると, 割込み要因はマスクされません。 割込み要因は , カウントモード(TCCSL レジスタの MODE:bit4)によって異なります。 アップカウントモード時は , コンペアクリア割込みのみをマスクでき , ゼロ検出割込み は "0" が検出されるたびに生成されます。アップダウンカウントモード時は , ゼロ検出 割込みのみをマスクでき , コンペアクリア割込みはコンペアクリアが検出されるたび に生成されます。 < 注意事項 > 338 ソフトウェアクリア(TCCSL レジスタの SCLR:bit3=1)は , ゼロ検出割込みを生成 しません。 第 14 章 多機能タイマ 図 14.6-8 アップカウントモードでマスクされるコンペアクリア割込み コンペアクリア一致 カウンタ値 FFFFH BFFF H 7FFFH 3FFFH 0000 H 時間 1回目 タイマ動作開始 2回目 3回目 4回目 リセット ゼロ検出 割込み ソフトウェア クリア TCCSHレジスタ MSI2~0=000B コンペアクリア 割込み TCCSHレジスタ MSI2~0=001B TCCSHレジスタ MSI2~0=010B (注意事項) ゼロ検出割込みとコンペアクリア割込みの両方はソフトウェアによりクリアされます。 図 14.6-9 アップダウンカウントモードでマスクされるゼロ検出割込み コンペアクリア一致 カウンタ値 FFFFH 1回目 2回目 3回目 4回目 5回目 6回目 BFFF H ↓ ↓ ↓ ↓ ↓ ↓ 7FFFH 3FFFH 0000 H 時間 タイマ動作開始 1回目 リセット コンペアクリア 割込み ゼロ検出 TCCSHレジスタ MSI2~0=000 B 割込み 2回目 3回目 ゼロ検出 4回目 5回目 6回目 ソフトウェア クリア TCCSHレジスタ MSI2~0=001B TCCSHレジスタ MSI2~0=010B (注意事項) ゼロ検出割込みとコンペアクリア割込みの両方はソフトウェアによりクリアされます。 339 第 14 章 多機能タイマ ■ 選択された外部カウントクロック 16 ビットフリーランタイマは , 入力クロック(内部クロックまたは外部クロック)に 基づいてインクリメントされます。外部クロックが選択されると , 外部クロックモード (TCCSH レジスタの ECKE:bit15=1)が選択された後 , 16 ビットフリーランタイマは外 部入力の初期値が "1" のとき立上りエッジでカウントアップするかまたは外部入力の 初期値が "0" のとき立下りエッジでカウントアップします。 図 14.6-10 16 ビットフリーランタイマのカウントタイミング φ 外部クロック入力 TCCSHレジスタ ECKEビット カウントクロック カウンタ値 340 N N+1 第 14 章 多機能タイマ 16 ビットアウトプットコンペアの動作 14.6.2 アウトプットコンペアは , " 指定されたコンペアレジスタに設定されている値 " と "16 ビットフリーランタイマの値 " の比較に使用します。一致が検出された場合は , 割込みフラグが設定され , 出力レベルが反転します。 ■ 16 ビットアウトプットコンペアの動作 ● コンペア動作は , 各チャネル ( コンペア制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の CMOD:bit12=0) において実行できます。 図 14.6-11 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を別々に使用した際 の出力波形例(フリーランタイマはアップカウントモード) カウンタ値 FFFFH BFFF H 7FFFH 3FFFH 時間 0000 H リセット コンペアレジスタ0値 コンペアレジスタ1値 BFFFH 7FFFH RT0 RT1 コンペア0割込み コンペア1割込み 341 第 14 章 多機能タイマ 図 14.6-12 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を別々に使用した際 の出力波形例(フリーランタイマはアップダウンカウントモード) カウンタ値 FFFFH BFFF H 7FFFH 3FFFH 時間 0000 H リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH RT0 RT1 コンペア0割込み コンペア1割込み ● 出力レベルは , 一対のコンペアレジスタ(コンペア制御レジスタ上位(OCSH1, OCSH3, OCSH5)の CMOD:bit12=1)を使用して変更できます。 図 14.6-13 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 をペアで使用した際 の出力波形例(フリーランタイマはアップカウントモード) カウンタ値 FFFFH BFFF H 7FFFH 3FFFH 時間 0000 H リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH RT0 RT1 コンペア0割込み コンペア1割込み 342 コンペア0に対応 付けられている コンペア0と1に対応 付けられている 第 14 章 多機能タイマ 図 14.6-14 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を一緒に使用した際 の出力波形例(フリーランタイマはアップダウンカウントモード) カウンタ値 FFFFH BFFF H 7FFFH 3FFFH 時間 0000 H リセット コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH コンペア0に対応 付けられている コンペア0と1に対 応付けられている RT0 RT1 コンペア0割込み コンペア1割込み ● コンペアバッファが無効になったときの出力レベル 図 14.6-15 コンペアバッファが無効になっているときの出力波形例 (フリーランタイマはアップカウントモード) カウンタ値 FFFFH BFFF H 7FFFH 3FFFH 0000 H 時間 タイマの動作開始 リセット コンペアクリア一致 コンペアクリア一致 コンペアクリア バッファレジスタ0値 BFFFH 3FFFH BFFFH コンペアクリア レジスタ0値 BFFFH 3FFFH BFFFH RT0 割込み 343 第 14 章 多機能タイマ ● コンペアクリア一致発生時にコンペアバッファが選択された際の出力レベル 図 14.6-16 コンペアバッファが有効になったときの出力波形例 (フリーランタイマはアップダウンカウントモード) カウンタ値 FFFFH BFFF H 7FFFH 3FFFH 0000 H リセット コンペアバッファ レジスタ0値 コンペア レジスタ0値 BFFFH BFFFH RT0 割込み 344 時間 ゼロ検出 タイマの動作開始 コンペアクリア一致 3FFFH BFFFH 3FFFH 3FFFH BFFFH 第 14 章 多機能タイマ ■ 16 ビットアウトプットコンペアタイミング フリーランタイマがコンペアレジスタ値と一致すると , アウトプットコンペアはコン ペア一致信号を生成して出力を反転し , 割込みを生成します。コンペア一致が発生する と , 出力はカウンタのカウントタイミングと同期して反転します。 < 注意事項 > コンペアレジスタが更新されると , カウンタ値とは比較されません。 図 14.6-17 コンペアレジスタが更新されたときのコンペア動作 カウンタ値 N コンペア レジスタ0値 コンペア レジスタ0書込み コンペア レジスタ1値 コンペア レジスタ1書込み N+1 N+2 N+3 一致信号は生成されない N+1 M L N+3 コンペア1停止 コンペア0停止 図 14.6-18 コンペア割込みタイミング φ カウンタ値 N N+1 コンペア レジスタ値 N コンペア一致 割込み 図 14.6-19 出力端子変更タイミング カウンタ値 コンペア レジスタ値 N N+1 N N+1 N コンペア 一致信号 端子出力 345 第 14 章 多機能タイマ 14.6.3 16 ビットインプットキャプチャの動作 インプットキャプチャは , 指定された有効なエッジを検出するために使用します。 有効なエッジが検出されると , 割込みフラグが設定され , 16 ビットフリーランタイ マの値がキャプチャレジスタへロードされます。 ■ 16 ビットインプットキャプチャの動作 図 14.6-20 インプットキャプチャタイミング例 カウンタ値 FFFFH BFFF H 7FFFH 3FFFH 0000 H 時間 リセット IN0 IN1 IN例 キャプチャレジスタ0 不定 キャプチャレジスタ1 不定 キャプチャレジスタ例 不定 3FFFH 7FFFH BFFFH 3FFFH キャプチャ0での割込み キャプチャ1での割込み キャプチャ例での割込み (注意事項) キャプチャ0 : 立上りエッジ キャプチャ1 : 立下りエッジ キャプチャ例: 両方のエッジ 346 割込みは,別の有効な エッジで生成される 割込みは,ソフトウェアで クリアされる 第 14 章 多機能タイマ ■ 16 ビットインプットキャプチャ入力タイミング 図 14.6-21 入力信号に対する 16 ビットインプットキャプチャタイミング φ マシンクッロク カウンタ値 インプット キャプチャ入力 N N+1 有効なエッジ キャプチャ信号 キャプチャ レジスタ号 N+1 割込み 347 第 14 章 多機能タイマ 波形ジェネレータの動作 14.6.4 波形ジェネレータは , リアルタイム出力(RTO0 ∼ RTO5), 16 ビット PPG タイマ 0, 16 ビットデッドタイマ 0, 1, 2 を使用してさまざまな波形(デッドタイムを含 む)を生成できます。 ■ RTO0 ∼ RTO5 と GATE の出力状態 表 14.6-1 RTO0 ∼ RTO5/GATE 出力状態とビット設定 (1 / 2) TMD2 TMD1 TMD0 GTENx PGENx RTOx 0 0 0 X X リアルタイム出力 RTx(16 ビットアウト プットコンペア出力) 0 0 1 X 0 リアルタイム出力 RTx(16 ビットアウト プットコンペア出力) GATE 常に "0" (RTx & GTENx) *3 0 0 1 0 1 RTx が ”H” の期間に PPG0 のパルスを出力 *1 常に "0" 0 0 1 1 1 RTx が ”H” の期間に GATE 信号により起動さ れた PPG0 のパルスを出力 (RT0|RT 1|RT2|RT3| RT4|RT5) RT0, 1 の立上りエッジにより 16 ビットデッ ドタイマ 0 を起動し , 16 ビットデッドタイ マ 0 がアンダフローするまで "H" を出力 X 0 1 0 0 RT2, 3 の立上りエッジにより 16 ビットデッ ドタイマ 1 を起動し , 16 ビットデッドタイ マ 1 がアンダフローするまで "H" を出力 タイマ動 作期間中 は "H" を 出力 *4 RT4, 5 の立上りエッジにより 16 ビットデッ ドタイマ 2 を起動し , 16 ビットデッドタイ マ 2 がアンダフローするまで "H" を出力 RT0, 1 の立上りエッジにより 16 ビットデッ ドタイマ 0 を起動し , 16 ビットデッドタイ マ 0 がアンダフローするまで PPG0 のパル スを出力 *1 0 0 1 0 1 RT2, 3 の立上りエッジにより 16 ビットデッ ドタイマ 1 を起動し , 16 ビットデッドタイ マ 1 がアンダフローするまで PPG0 のパル スを出力 *1 RT4, 5 の立上りエッジにより 16 ビットデッ ドタイマ 2 を起動し , 16 ビットデッドタイ マ 2 がアンダフローするまで PPG0 のパル スを出力 *1 348 常に "0" 第 14 章 多機能タイマ 表 14.6-1 RTO0 ∼ RTO5/GATE 出力状態とビット設定 (2 / 2) TMD2 TMD1 TMD0 GTENx PGENx 1 0 GATE RT0, 1 の立上りエッジにより 16 ビットデッ ドタイマ 0 を起動し , 16 ビットデッドタイ マ 0 がアンダフローするまで GATE 信号に より起動された PPG0 のパルスを出力 1 0 RTOx 1 RT2, 3 の立上りエッジにより 16 ビットデッ ドタイマ 1 を起動し , 16 ビットデッドタイ マ 1 がアンダフローするまで GATE 信号に より起動された PPG0 のパルスを出力 タイマ動 作期間中 は "H" を 出力 *4 RT4, 5 の立上りエッジにより 16 ビットデッ ドタイマ 2 を起動し , 16 ビットデッドタイ マ 2 がアンダフローするまで GATE 信号に より起動された PPG0 のパルスを出力 RT1 でノンオーバラップ信号を生成 *2 X 1 0 0 X RT3 でノンオーバラップ信号を生成 *2 常に "0" RT5 でノンオーバラップ信号を生成 *2 1 1 1 0 X PPG0 でノンオーバラップ信号を生成 1 1 1 1 X GATE 信号により起動された PPG0 でノン オーバラップ信号を生成 その他 常に "0" 常に "0" (RT0|RT 1|RT2|RT3| RT4|RT5) 常に "0" *1: あらかじめ PPG0 を起動しておく必要があります。 *2: ノンオーバラップ信号を生成するには , 必ず RT1, RT3, RT5 に対して 2 チャネルモード(コンペア制御レ ジスタ上位(OCSH1, OCSH3, OCSH5)の CMOD:bit12=1)を選択してください。 *3:GTENx ビットに "1" を設定した RTx から GATE 信号が生成されます。 *4:GTENx ビットに "1" を設定した RTx によって起動されるタイマの動作期間中に , GATE 信号が生成されま す。複数の GATEx ビットに "1" を設定した場合 , GATE 信号は各々のタイマ動作期間中の信号を OR した信 号となります。 ( 注意事項 ) RTO0, RTO1 は 16 ビットデッドタイマ制御レジスタ下位(DTCR0)の TMD2 ∼ TMD0:bit2 ∼ bit0 により , RTO2, RTO3 は(DTCR1)上位レジスタの TMD5 ∼ TMD3:bit10 ∼ bit8 により , RTO4, RTO5 は下位レジス タ(DTCR2)の TMD8 ∼ TMD6:bit2 ∼ bit0 により制御されます。 349 第 14 章 多機能タイマ ■ PPG0 出力制御 RTO0 ∼ RTO5 端子への PPG0 出力は , PPG 出力制御 / インプットキャプチャ状態制御 レジスタ上位(PICSH01)の PGEN5 ∼ PGEN0:bit15 ∼ bit10 で許可にできます。 ■ ゲートトリガされた PPG0 出力 波形ジェネレータではリアルタイム出力 RTO0 ∼ RTO5 により GATE 信号を生成でき , 16 ビットデッドタイマ 0, 1, 2 では PPG0 カウントをトリガとして動作できます。1 つ の 16 ビットデッドタイマ 0, 1, 2 で 2 つのリアルタイム出力(RTO0/2/4, RTO1/3/5)が 操作され , 6 つの別々のゲート信号が生成されます。これら 6 つのゲート信号は論理和 がとられて GATE 信号を生成し , PPG0 カウントのトリガとなります。 また , PGEN0 ∼ PGEN5 信号を使用すると , PPG0 のみを使用することで RTO0 ∼ RTO5 端子に 6 つの異なる波形を出力できます。 ● GTENx がアクティブであり各 RTx が "H" であるとき(16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2)の TMD8 ∼ TMD0(上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0)が "001B" または "111B")の GATE 信号生成 図 14.6-22 RTx が "H" であるときの GATE 信号の生成 16ビットフリーランタイマ FFFFH BFFF H カウント値 7FFFH 3FFFH 0000 H 時間 コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH RT0 RT1 GATE0 GATE1 GATE 350 第 14 章 多機能タイマ ● GTENx がアクティブ(DTCR0 ∼ DTCR2 レジスタの TMD8 ∼ TMD0=010B)であるときの RTx 立上りエッジから 16 ビットデッドタイマ 0, 1, 2 アンダフローまでにおける GATE 信 号の生成 図 14.6-23 RTx 立上りエッジから 16 ビットデッドタイマアンダフローまでにおける GATE 信号の生成 16ビットフリーランタイマ FFFFH BFFF H カウント値 7FFFH 3FFFH 時間 0000 H コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH RT0 RT1 GATE0 GATE1 16ビットデッド タイマ0の時間 16ビットデッド タイマ0の時間 GATE < 注意事項 > 各 16 ビットデッドタイマは , 2 つの RT に対して使用されます。すなわち , 16 ビッ トデッドタイマ 0 は RT0 と RT1 に対して使用され , 16 ビットデッドタイマ 1 は RT2 と RT3 に対して使用され , 16 ビットデッドタイマ 2 は RT4 と RT5 に対して 使用されます。したがって , RT を使用して , すでに動作中のタイマの起動を試みて はなりません。このような試みを行った場合は , GATE 信号出力が拡張され , その結 果 , 誤動作が発生する場合があります。 351 第 14 章 多機能タイマ 14.6.4.1 タイマモードの動作 RT0 ∼ RT5 端子の立上がりエッジが検出されると , 16 ビットデッドタイマに値がリ ロードされて 16 ビットデッドタイマがダウンカウントを開始します。PPG タイマ 0 は 16 ビットデッドタイマでアンダフローが発生するまで RTO0 ∼ RTO5 端子へ出 力し続けます。 ■ タイマモードの動作 ● RT立上がりエッジから16ビットデッドタイマアンダフローまでにおけるPPG0出力パルス 生成 (DTCR0 ∼ DTCR2 レジスタの TMD8 ∼ TMD0( 上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0)=010B) 図 14.6-24 TMD2 ∼ TMD0( 上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0) が "010B" のときに生成される波形 レジスタの設定 • TCDTH, TCDTL : 0000H • TCCSH, TCCSL : XXXXXXXXXX0X0XXXB • CPCLRH, CPCLRL : XXXXH (サイクルの設定) • OCCPH, OCCPL0~OCCPL5 : XXXXH (コンペア値) • OCSL,OCSH0 ~ OCSH5 • PCSR • PDUT • PCNT • PICS01 : XXXXH : XXXXH : XXXXH : XXH (PPG0出力選択) : -XX0XXXXXXXXXX11B • DTCR0 ~DTCR2 : 011XX010B • TMRRH,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定) • SIGCR : XXXXXX00B (DTTI入力と16ビットデッドタイマカウントクロック設定) (注意事項) "X"動作に従って設定しなければならない。 16ビットフリーランタイマ FFFFH カウント値 BFFF H 7FFFH 3FFFH 時間 0000 H PPG0 コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH RT0 RT1 GATE RT00 RT01 16ビットデッド 16ビットデッド タイマ0の時間 タイマ0の時間 352 第 14 章 多機能タイマ < 注意事項 > 各 16 ビットデッドタイマは , 2 つの RT に対して使用されます。すなわち , 16 ビッ トデッドタイマ 0 は RT0 と RT1 に対して使用され , 16 ビットデッドタイマ 1 は RT2 と RT3 に対して使用され , 16 ビットデッドタイマ 2 は RT4 と RT5 に対して 使用されます。したがって , RT を使用して , すでに動作中の PPG0 の起動を試みて はなりません。このような試みを行った場合は , GATE 信号出力が拡張され , その結 果 , 誤動作が発生する場合があります。 353 第 14 章 多機能タイマ デッドタイムタイマモード時の動作 14.6.4.2 デッドタイムジェネレータは , リアルタイム出力(RT1, RT3, RT5), もしくは PPG0 タイマパルス出力を入力し , 外部端子(RTO0 ∼ RTO5)へノンオーバラップ 信号(反転信号)を出力します。 ■ デッドタイムタイマモード時の動作 ● 通常極性の RT1, RT3, RT5 によるノンオーバラップ信号生成(16 ビットデッドタイマ制御レ ジスタ(DTCR0 ∼ DTCR2)の TMD8 ∼ TMD0(上位は 10 ∼ 8, 下位は 2 ∼ 0)=100B) DTCR0 ∼ DTCR2 レジスタの DMOD が "0"(通常極性)であるノンオーバラップ信号 を選択すると , 16 ビットデッドタイマレジスタ(TMRRH, L0 ∼ L2)に設定されてい るノンオーバラップ時間に相当する遅延が適用されます。この遅延は , RT1, RT3, RT5 端子の立上りエッジまたは立下りエッジで適用されます。RT1, RT3, RT5 パルス幅が , 設定されているノンオーバラップ時間より小さい場合は , 16 ビットデッドタイマはそ の次の RT エッジの TMRRH, L0 ∼ L2 レジスタ値からダウンカウントを再開します。 図 14.6-25 通常極性の RT1, RT3, RT5 によるノンオーバラップ信号生成 レジスタの設定 • TCDTH, TCDTL • TCCSH, TCCSL • OCCPH, OCCPL0 ~ 5 • TMRRH, TMRRL0 ~ 2 • SIGCR : 0000H : X--XXXXXX0X0XXXB : XXXXH (コンペア値) • CPCLRH, CPCLRL : XXXXH (サイクルの設定) • OCSH, OCSL0 ~ 5 : -XX1XXXXXXXXXX11B • DTCR0 ~ 2 : 0XXXX100B : XXXXH (ノンオーバラップタイミングの設定) : XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定) (注意事項) "X"動作に従って設定しなければならない。 16ビットデッドタイマ0 TMRR0設定 カウント値 RT1 RTO0(U) RTO1(X) 1マシンサイクル 端子名 354 1.5マシンサイクル 出力信号 RTO0 (U) 遅延された信号がRT1立上りエッジで適用される RTO2 (V) 遅延された信号がRT3立上りエッジで適用される RTO4 (W) 遅延された信号がRT5立上りエッジで適用される RTO1 (X) 遅延された反転信号がRT1立下りエッジで適用される RTO3 (Y) 遅延された反転信号がRT3立下りエッジで適用される RTO5 (Z) 遅延された反転信号がRT5立下りエッジで適用される 第 14 章 多機能タイマ ● 反転極性の RT1, RT3, RT5 によるノンオーバラップ信号生成(16 ビットデッドタイマ制 御レジスタ(DTCR0, DTCR1, DTCR2)の TMD8 ∼ TMD0(上位は 10 ∼ 8, 下位は 2 ∼ 0)=100B) DTCR0 ∼ DTCR2 レジスタの DMOD(上位は bit15, 下位は bit7)が "1"(反転極性)で あるノンオーバラップ信号を選択すると , 16 ビットデッドタイマレジスタ(TMRRH, L0 ∼ L2)に設定されているノンオーバラップ時間に相当する遅延が適用されます。こ の遅延は , RT1, RT3, RT5 の立上りエッジまたは立下りエッジで適用されます。RT1, RT3, RT5 パルス幅が , 設定されているノンオーバラップ時間より小さい場合は , 16 ビットデッドタイマはその次の RT エッジの TMRRH, L0 ∼ L2 値からダウンカウント を再開します。 図 14.6-26 反転極性の RT1, RT3, RT5 によるノンオーバラップ信号生成 レジスタの設定 • TCDTH, TCDTL • CPCLRH, CPCLRL : XXXXH (サイクル設定) • OCSH,OCSL0~ OCSL5: -XX1XXXXXXXXXX11B • DTCR0 ~ 2 : 0XXXX100B : 0000H • TCCSH, TCCSL : XXXXXXXXXX0X0XXXB • OCCPH, OCCPL0 ~ OCCPL5: XXXXH (コンペア値) • TMRRH, TMRRL0 ~ TMRRL2: XXXXH (ノンオーバラップタイミングの設定) • SIGCR : XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定) (注意事項) "X"動作に従って設定しなければならない。 16ビットデッドタイマ0 TMRR0設定 カウント値 RT1 RTO0(U) RTO1(X) 1マシンサイクル 端子名 1.5マシンサイクル 出力信号 RTO0 (U) 遅延された反転信号がRT1立上りエッジで適用される RTO2 (V) 遅延された反転信号がRT3立上りエッジで適用される RTO4 (W) 遅延された反転信号がRT5立上りエッジで適用される RTO1 (X) 遅延された信号がRT1立下りエッジで適用される RTO3 (Y) 遅延された信号がRT3立下りエッジで適用される RTO5 (Z) 遅延された信号がRT5立下りエッジで適用される 355 第 14 章 多機能タイマ ● 通常極性の PPG によるノンオーバラップ信号生成(16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2)の TMD8 ∼ TMD0(上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0)=111B) DTCR0 ∼ DTCR2 レジスタの DMOD2 ∼ DMOD0(上位は bit15, 下位は bit7)が "0" (通常極性)であるノンオーバラップ信号を選択すると , 16 ビットデッドタイマレジス タ(TMRRH, TMRRL0 ∼ TMRRL2)に設定されているノンオーバラップ時間に相当す る遅延が適用されます。この遅延は , PPG0 タイマパルス信号または反転信号の立上り エッジで適用されます。PPG タイマパルス幅が , 設定されているノンオーバラップ時 間より小さい場合は , 16 ビットデッドタイマは PPG0 パルスのその次のエッジの TMRRH, L0 ∼ L2 値からダウンカウントを再開します。 図 14.6-27 通常極性の PPG タイマ 0 によるノンオーバラップ信号生成 レジスタの設定 • TCDTH, TCDTL : • TCCSH, TCCSL : • CPCLRH, CPCLRL : • OCCPH,OCCPL0~OCCPL5 : 0000H XXXXXXXXXX0X0XXXB XXXXH (サイクルの設定) • PCSR : XXXXH • PDUT : XXXXH • PCNT : XXXXH XXXXH (コンペア値) • OCSH, OCSL0 ~ OCSL5 : -XX1XXXXXXXXXX11B • DTCR0 ~ DTCR2 : 0XXXX111B • TMRRH,TMRRL0 ~ TMRRL2: XXXXH (ノンオーバラップタイミングの設定) • SIGCR : XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定) (注意事項) "X"動作に従って設定しなければならない。 16ビットデッドタイマ0 TMRR0設定 カウント値 PPG0 RTO0(U) RTO1(X) 1マシンサイクル 端子名 356 1.5マシンサイクル 出力信号 RTO0 (U) 遅延された信号がPPG0立上りエッジで適用される RTO2 (V) 遅延された信号がPPG0立上りエッジで適用される RTO4 (W) 遅延された信号がPPG0立上りエッジで適用される RTO1 (X) 遅延された反転信号がPPG0立下りエッジで適用される RTO3 (Y) 遅延された反転信号がPPG0立下りエッジで適用される RTO5 (Z) 遅延された反転信号がPPG0立下りエッジで適用される 第 14 章 多機能タイマ ● 反転極性の PPG によるノンオーバラップ信号生成(16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2)の TMD8 ∼ TMD0(上位は 10 ∼ 8, 下位は 2 ∼ 0)=111B) DTCR0 ∼ DTCR2 ビットの DMOD2 ∼ DMOD0(上位は bit15, 下位は bit7)が "1"(反 転極性)であるノンオーバラップ信号を選択すると , 16 ビットデッドタイマレジスタ (TMRRH, TMRRL0 ∼ TMRRL2)に設定されているノンオーバラップ時間に相当する 遅延が適用されます。この遅延は , PPG0 タイマパルス信号または反転信号の立上り エッジで適用されます。PPG0 タイマパルス幅が , 設定されているノンオーバラップ時 間より小さい場合は , 16 ビットデッドタイマは PPG0 パルスのその次のエッジの TMRRH, TMRRL0 ∼ TMRRL2 値からダウンカウントを再開します。 図 14.6-28 反転極性の PPG タイマ 0 によるノンオーバラップ信号生成 レジスタの設定 • TCDTH, TCDTL • TCCSH, TCCSL • CPCLRH, CPCLRL • OCCPH, OCCPL0 ~ 5 : 0000H • OCSH, OCSL0 ~ 5 • DTCR0 ~ 2 : -XX1XXXXXXXXXX11B : XXXXXXXXXX0X0XXXB : XXXXH (サイクルの設定) : XXXXH (コンペア値) • PCSR • PDUT : XXXXH • PCNT : XXXXH : XXXXH : 1XXXX111B • TMRRH, TMRRL0 ~ 2 : XXXXH (ノンオーバラップタイミングの設定) • SIGCR : XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定) (注意事項) "X"動作に従って設定しなければならない。 16ビットデッドタイマ0 TMRR0設定 カウント値 PPG0 RTO0(U) RTO1(X) 1マシンサイクル 端子名 1.5マシンサイクル 出力信号 RTO0 (U) 遅延された反転信号がPPG0立上りエッジで適用される RTO2 (V) 遅延された反転信号がPPG0立上りエッジで適用される RTO4 (W) 遅延された反転信号がPPG0立上りエッジで適用される RTO1 (X) 遅延された信号がPPG0立下りエッジで適用される RTO3 (Y) 遅延された信号がPPG0立下りエッジで適用される RTO5 (Z) 遅延された信号がPPG0立下りエッジで適用される 357 第 14 章 多機能タイマ DTTI 端子制御の動作 14.6.4.3 波形制御レジスタ(SIGCR)の DTIE:bit15 に "1" を設定すると , RTO0 ∼ RTO5 出 力を DTTI 端子で制御できます。DTTI 端子の "L" レベルが検出されると , RTO0 ∼ RTO5 出力は , 割込みフラグ(SIGCR レジスタの DTIF:bit14)がクリアされるまで 非動作レベルに固定されます。RTO0 ∼ RTO5 の非動作レベルは , これらの端子を 共用しているポートデータレジスタ(PDR)を使ってソフトウェア的に設定できま す。 ■ DTTI 端子入力の動作 DTTI 端子入力の "L" が検出された場合でも , タイマは波形ジェネレータが動作してい る間は動作を継続しますが , 波形は外部端子 RTO0 ∼ RTO5 へは出力されません。 図 14.6-29 DTTI 入力が有効のときの動作 レジスタの設定 • • • • • • TCDTH, TCCSH, OCCPH, PDRx TMRRH, SIGCR TCDTL : 0000H • CPCLRH, CPCLRL : XXXXH (サイクルの設定) TCCSL : XXXXXXXXXX0X0XXXB • OCSH, OCSL0 ~ 5 : -XX1XXXXXXXXXX11B OCCPL0 ~ 5 : XXXXH (コンペア値) • DTCR0 ~ 2 : 0XXXX100B : XXXXXX00B (非動作レベルの設定) TMRRL0 ~ 2 : XXXXH (ノンオーバラップタイミングの設定) : 1XXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定) (注意事項) "X"動作に従って設定しなければならない。 16ビットフリーランタイマ FFFFH カウント値 BFFF H 7FFFH 3FFFH 時間 0000 H コンペアレジスタ0値 BFFFH コンペアレジスタ1値 7FFFH RT1 RT00 RT01 DTTIO DTIF 出力非動作 ソフトウェアクリア 358 第 14 章 多機能タイマ ■ DTTI 端子ノイズキャンセル機能 波形制御レジスタ(SIGCR)の NRSL:bit13 に "1" を設定すると , DTTI 端子入力のノイ ズキャンセル機能が有効になります。ノイズキャンセル機能が有効になると , 出力端子 (RTO0 ∼ RTO5)を非動作レベルに固定するために要する時間が 4, 8, 16 または 32 マ シンサイクル(SIGCR レジスタの NWS1, NWS0:bit9, bit8 で選択)だけ遅延します。 ノイズキャンセル回路はリソースを使用するので , 発振が停止するモード(停止モード など)時において DTTI 入力が有効になった場合でも入力は無効になります。 ■ DTTI 割込み DTTI の "L" レベルが検出されると , ノイズキャンセル時間が経過した後で DTTI 割込 みフラグ(SIGCR レジスタの DTIF:bit14)に "1" が設定され , 割込み要求は割込みコン トローラへ送信されます。 図 14.6-30 DTTI 割込みタイミング DTTI SIGCRレジスタ DTIFビット SIGCRレジスタのNWS1,0ビットで 制御せれるノイズキャンセル時間 SIGCRレジスタのDTIFビットに ソフトウェアで"0"を書込む < 注意事項 > • ノイズキャンセル時間内に SIGCR レジスタの NWS1, NWS0 ビットの値が変化 した場合は , さらに大きな(NWS1, NWS0)ノイズサイクル値が有効になりま す。 • SIGCR レジスタの DTIF:bit14 は , ソフトウェアでのみクリアできます。 359 第 14 章 多機能タイマ 14.7 多機能タイマ使用上の注意 多機能タイマ使用上の注意を以下に示します。 ■ 16 ビットフリーランタイマ使用上の注意 ● プログラムによる設定上の注意 • リセットを実行すると , タイマが有効(TCCSL レジスタの STOP:bit5=0)になった 後 , その次のカウントクロックでタイマ値が "0000H" になり , ゼロ検出割込みフラグ に "1" が設定されます。 • タイマモードビット(TCCSL レジスタの MODE:bit4)はバッファを持っているので , その次のカウントサイクルでタイマモードの変更は有効になります。ゼロ検出割込 みは , タイマモードがアップカウントモードからアップダウンカウントモードに変 わると必ず生成されます。 • ソフトウェアクリア(TCCSL レジスタの SCLR:bit3=1)はタイマを初期化します が , ゼロ検出割込みを生成しません。 ● 割込みの注意 • タイマ状態制御レジスタ上位(TCCSH)の IRQZF:bit14 に "1" を設定し , 次に割込 み要求を許可にすると(TCCSH レジスタの IRQZE:bit13=1), 制御は割込み処理か ら戻ることができません。ZIRQF:bit14 は , 必ずクリアしてください。 • タイマ状態制御レジスタ上位(TCCSH)の ICLRbit9 に "1" を設定し , 次に割込み要 求を許可にすると(TCCSH レジスタの ICRE:bit8=1), 制御は割込み処理から戻るこ とができません。ICLR:bit9 は , 必ずクリアしてください。 • 16 ビットフリーランタイマは割込みベクトルをほかのリソースと共用しますので , 割込みを使用する場合は , 割込み処理ルーチンで割込み要因を注意深くチェックし なければなりません。 • また , 16 ビットフリーランタイマで EI2OS を使用する場合は , 共用リソース割込み を禁止にしなければなりません。 ■ 16 ビットアウトプットコンペア使用上の注意 ● 割込みの注意 • コンペア制御レジスタ下位(OCSL0, OCSL2, OCSL4)の IOP1, IOP0:bit7, bit6 に "11B" を設定し , 次に割込み要求を許可にすると(OCSL レジスタの IOE1, IOE0:bit6, bit5=11B), 制御は割込み処理から戻ることができません。IOP0, IOP1 ビットは , 必 ずクリアしてください。 • 16 ビットアウトプットコンペアは , 割込みベクトルをほかのリソースと共用するの で , 割込みを使用する場合は , 割込み処理ルーチンで割込み要因を注意深くチェッ クしなければなりません。 • また , 16 ビットアウトプットコンペアで EI2OS を使用する場合は , 共用リソース割 込みを禁止にしなければなりません。 360 第 14 章 多機能タイマ ■ 16 ビットインプットキャプチャ使用上の注意 ● 割込みの注意 • インプットキャプチャ状態制御レジスタ下位(PICSL01, ICSL23)の ICP3 ∼ ICP0 (共に bit7, bit6)に "1" を設定し , 次に割込み要求を許可にすると(PICSL01, ICSL23 レジスタの ICE3 ∼ ICE0(共に bit5, bit4)=11B), 制御は割込み処理から戻ることが できません。ICP3 ∼ ICP0(共に bit7, bit6)は , 必ずクリアしてください。 • インプットキャプチャ端子(IN)レベルが , ICP3 ∼ ICP0 ビットが設定されてから割 込みルーチンが処理されるまでの間に切り換わると , 有効エッジ指示ビット (ICSH23 レジスタの IEI3, IEI2:bit9, bit8 または PICSH01 レジスタの IEI1, IEI0:bit9, bit8)は , 検 出された最新のエッジを示します。 • 16 ビットインプットキャプチャは割込みベクトルをほかのリソースと共用するの で , 割込みを使用する場合は , 割込み処理ルーチンで割込み要因を注意深くチェッ クしなければなりません。 • また , 16 ビットインプットキャプチャで EI2OS を使用する場合は , 共用リソース割 込みを禁止にしなければなりません。 ■ 波形ジェネレータ使用上の注意 ● プログラムによる設定上の注意 • 波形ジェネレータが動作中(DTCR0 ∼ DTCR2 レジスタの TMD2 ∼ TMD0, に , 16 ビッ TMD5 ∼ TMD3, TMD8 ∼ TMD6 が "001B", "010B", "100B" または "111B") トデッドタイマ制御レジスタ(DTCR0 ∼ DTCR2)の TMD8, TMD5, TMD2(上位 は bit10, 下位は bit2), TMD7, TMD4, TMD1(上位は bit9, 下位は bit1), TMD6, TMD3, TMD0(上位は bit8, 下位は bit0)ビット値を変更する場合は , トリガソース および 16 ビットデッドタイマがカウント中でないことを必ず確認してください。こ の操作を行わない場合は , 以前のトリガでスケジュールされた出力が原因となり予 期しない波形が RTO 端子から出力されます。ただし , RTO 出力は , タイマでアンダ フローが発生したり , 新しいトリガソースで再トリガされたりすると , 正常動作に 戻ります。 • トリガソースとは , DTCR0, ∼ DTCR2 レジスタの TMD8 ∼ TMD0(上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0) が "001B" の場合は "RT の H レベル " であり , TMD8 ∼ TMD0 ビットが "010B" の場合は "RT の立上りエッジ " であり , TMD8 ∼ TMD0 ビットが "100B" の場合は "RT の立上りエッジまたは立下りエッジ " であり , TMD8 ∼ TMD0 ビットが "111B" の場合は "PPG0 の立上りエッジまたは立下りエッジ " です。 たとえば , TMD8 ∼ TMD0 ビットが "100B" から "111B" へ変更すると , 下記の手順を 実行できます。 1. 16 ビットデッドタイマレジスタ(TMRRH, L0 ∼ L2)を "0001H" のような非常に小 さな値を設定する。 2. RT1, RT3, RT5 の出力を "L" または "H" に設定し , タイマ 0, 1, 2 でアンダフローが 発生するまで待つ。 3. モードビット(TMD8 ∼ TMD0)および対応する設定を変更する。 4. 修正された出力波形が 1 マシンサイクル後 RTO 端子に現れる。 361 第 14 章 多機能タイマ • タイマがカウント中に 16 ビットデッドタイマレジスタ(TMRRH, L0 ∼ L2)に値 が書き込まれると , この新しい値は次のタイマトリガ時に有効になります。タイマ レジスタへアクセスする場合は , 必ずワード転送命令(MOVW A, dir など)をご使 用ください。 • タイマがカウントしていない場合のみ , 波形制御レジスタ(SIGCR)の DCK2 ∼ DCK0:bit12 ∼ bit10 を変更してください。 • ノイズキャンセル機能が無効になった場合のみ , 波形制御レジスタ(SIGCR)の NWS1, NWS0:bit9, bit8 を変更してください。 ● 割込みの注意 • 16 ビットデッドタイマ制御レジスタ(DTCR0 ∼ DTCR2)の TMIF2 ∼ TMIF0(上 位は bit12, 下位は bit4)に "1" を設定し , 次に割込み要求を許可にすると(DTCR0 ∼ DTCR 2 レジスタの TMIE2 ∼ TMIE0(上位は bit11, 下位は bit3=1), 制御は割込み処 理から戻ることができません。TMIF ビットは , 必ずクリアしてください。 • 波形制御レジスタ(SIGCR)の DTIF:bit14 に "1" を設定すると , 制御は割込み処理 から戻ることができません。DTIF ビットは , 必ずクリアしてください。 • 波形ジェネレータは割込みベクトルをほかのリソースと共用するので , 割込みを使 用する場合は , 割込み処理ルーチンで割込み要因を注意深くチェックしなければな りません。 • また , 波形ジェネレータで EI2OS を使用する場合は , 共用リソース割込みをディス エーブルにしなければなりません。 362 第 14 章 多機能タイマ 14.8 多機能タイマのプログラム例 多機能タイマのプログラム例を示します。 ■ 16 ビットフリーランタイマのプログラム例 ● 処理 • 4ms コンペアクリア割込みは 16 ビットフリーランタイマ 0 により生成します。 • 本タイマはアップダウンモード時にコンペアクリアタイマの再生成のために使用 します。 • EI2OS は使用しません。 • 16MHz はマシンクロック用 , 62.5ms はカウントクロック用です。 ● コーディング例 ICR11 EQU 0000BBH ;16 ビットフリーランタイマ用割込み制御レジスタ TCCSL EQU 00005EH ; タイマ制御状態レジスタ CPCLRBH EQU 00005BH ; コンペアクリアバッファレジスタ ICLR EQU TCCSL:9 ; 割込み要求フラグビット ;--------- メインプログラム ------------------------------------------CODE CSEG START: ; : ; スタックポインタ(SP)が既に初期化されているものと仮 定 AND CCR,#0BFH; 割込み禁止 MOV I:ICR11,#00H; 割込みレベル 0(最強) MOVW I:CPCLRBH,#0FFFFH;16 ビットフリーランタイマをアップカウントか らダウ ; ンカウントへ変更するためにコンペアクリア値を設定 MOVW I:TCCSL,#0110H ; アップダウンモード , 62.5ms カウントクロックを設定 ; コンペアクリア割込みを許可 ; 割込みマスクを禁止 ; 割込みフラグと有効タイマをクリア MOV ILM,#07H ;PS 中の ILM をレベル 7 に設定 OR CCR,#40H ; 割込み許可 LOOP: MOV A,#00H ; 無限ループ MOV A,#01H ; BRA LOOP ; ;--------- 割込みプログラム ------------------------------------------WARI: CLRB I:ICLR ; 割込み要求フラグをクリア ; : ; ユーザ処理 ; : RETI ; 割込みから復帰 CODE ENDS 363 第 14 章 多機能タイマ ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 0FF74H ; 割込み #34(22H)用ベクタを設定 VECT DSL ORG DSL DB ENDS END WARI 0FFDCH START 00H ; リセットベクタを設定 ; シングルチップモードの設定 START ■ 16 ビットアウトプットコンペアのプログラム例 ● 処理 • 16 ビットフリーランタイマのカウント値がアウトプットコンペア用と一致したと き , アウトプットコンペア一致が生成します。 • 16 ビットフリーランタイマがアップカウントモード時に使用します。 • EI2OS は使用しません。 • 16MHz はマシンクロック用 , 62.5ms は 16 ビットフリーランタイマのカウントクロッ ク用です。 ● コーディング例 ICR00 EQU 0000B0H ; アウトプットコンペア 0 用割込みカウントレジスタ TCCSL EQU 00005EH ; タイマ制御状態レジスタ CPCLRBH EQU 00005BH ; コンペアクリアバッファレジスタ OCCPL0 EQU 000070H ; アウトプットコンペアレジスタ 0 OCCPL1 EQU 000072H ; アウトプットコンペアレジスタ 1 OCSL01 EQU 00007CH ; コンペア制御レジスタ IOP EQU OCS01:6 ; 割込み要求フラグビット ;--------- メインプログラム ------------------------------------------CODE CSEG START: ; : ; スタックポインタ (SP) が既に初期化されているものと仮定 AND CCR,#0BFH ; 割込み禁止 MOV I:ICR00,#00H ; 割込みレベル 0(最強) MOVW I:TCCSL,#0000H ;16 ビットフリーランタイマを有効 ; アップカウントモードを設定 MOVW I:OCCPL0,#0BFFFH; アウトプットコンペアレジスタ 0 を設定 MOVW I:OCCPL1,#07FFFH; アウトプットコンペアレジスタ 1 を設定 MOVW I:OCSL01,#0C1FH; アウトプットコンペア出力を有効 ; コンペア一致割込み 0 を有効 ; 割込みフラグと有効アウトプットコンペアをクリア MOV ILM,#07H ;PS 中の ILM をレベル 7 に設定 OR CCR,#40H ; 割込み許可 LOOP: MOV A,#00H ; 無限ループ MOV A,#01H ; BRA LOOP ; ;--------- 割込みプログラム ------------------------------------------WARI: CLRB I:IOP ; 割込みレジスタフラグをクリア ; : ; ユーザ処理 ; : 364 第 14 章 多機能タイマ ; 割込みから復帰 RETI CODE ENDS ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 0FFCCH ; 割込み #12(0CH)用ベクタの設定 VECT DSL ORG DSL DB ENDS END WARI 0FFDCH START 00H ; リセットベクタの設定 ; シングルチップモードの設定 START 365 第 14 章 多機能タイマ 366 第 15 章 マルチパルスジェネレータ マルチパルスジェネレータの機能と動作について 説明します(MB90467 では , 未搭載となります)。 15.1 マルチパルスジェネレータの概要 15.2 マルチパルスジェネレータのブロックダイヤグラム 15.3 マルチパルスジェネレータの端子 15.4 マルチパルスジェネレータのレジスタ 15.5 マルチパルスジェネレータの割込み 15.6 マルチパルスジェネレータの動作 15.7 マルチパルスジェネレータ使用上の注意 15.8 マルチパルスジェネレータのプログラム例 367 第 15 章 マルチパルスジェネレータ 15.1 マルチパルスジェネレータの概要 マルチパルスジェネレータは , 16 ビット PPG タイマ , 16 ビットリロードタイマ , 波 形シーケンサから構成されています。波形シーケンサを使用すると , 16 ビット PPG タイマ出力信号をマルチパルスジェネレータの入力信号(SNI2 ∼ SNI0)に従って マルチパルスジェネレータ出力(OPT5 ∼ OPT0)へ送出できます。また , OPT5 ∼ OPT0 出力信号は , 緊急の場合は DTTI 入力(DTTI1)を使用してハードウェア的に 終了させることができます。OPT5 ∼ OPT0 出力信号は , 望ましくないグリッチを除 去するために PPG 信号と同期します。 なお , 16 ビットリロードタイマと 16 ビット PPG タイマについての詳細は , 「第 12 章 16 ビットリロードタイマ」と「第 13 章 16 ビット PPG タイマ」のそれぞれを ご参照ください。 ■ 波形シーケンサの機能 ● 出力信号制御 波形シーケンサを使用すると , マルチパルスジェネレータ出力(OPT5 ∼ OPT0)にお いて 16 ビット PPG 波形出力と DC チョッパ波形出力を生成できます。 • マルチパルスジェネレータの位置検出入力(SNI2 ∼ SNI0)により有効エッジが検 出された場合または 16 ビットリロードタイマでアンダフローが発生した場合また は OPDRH, OPDRL レジスタへ書込みされた場合に , 出力データバッファレジスタ (OPDBR0 ∼ OPDBRB)の い ず れ か の デ ー タ が 出 力 デ ー タ レ ジ ス タ(OPDRH, OPDRL)へロードされます。 • 出力データレジスタ(OPDRH, OPDRL)は , OPT 出力端子(OPT5 ∼ OPT0)へ出 力される 16 ビット PPG タイマ出力を決定します。異なる複数の出力データバッファ レジスタ(OPDBR0 ∼ OPDBRB)のデータを出力データレジスタ(OPDRH, OPDRL) へロードすると , OPT 出力端子(OPT5 ∼ OPT0)からさまざまな組合わせの波形を 出力することが可能になります。 したがって , 16 ビット PPG タイマ出力は , 出力データレジスタ(OPDRH, OPDRL) および 12 個の出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)に設定されて いるシーケンスに従って , マルチパルスジェネレータ出力への信号送出を制御した り , 出力先を任意の OPT 出力から別の OPT 出力に切り換えたりすることができま す。また , 16 ビットリロードタイマは , OPT 出力切換え時に遅延を挿入することも できます。 • OPDBR0 ∼ OPDBRB レジスタから OPDRH, OPDRL レジスタへのデータ転送の組 合わせを , 表 15.1-1 に示します。 368 第 15 章 マルチパルスジェネレータ 表 15.1-1 OPDBR0 ∼ OPDBRB レジスタから OPDRH, OPDRL レジスタへのデータ転送 組合せ OPDBR0 ∼ OPDBRB から OPDRH, OPDRL へのデータ転送 1 OPDBR0 への書込みがソフトウェアで行われた後の OPDBR0 から OPDRH, OPDRL へのデータ転送 2 16 ビットリロードタイマ 0 のアンダフローにより起動する 3 位置検出入力端子(SNI2 ∼ SNI0)により起動する 4 16 ビットリロードタイマ 0 のアンダフローにより起動する 16 ビットタイマは , 位置検出比較回路で開始する 5 16 ビットリロードタイマ 0 のアンダフローかまたは位置検出入力により起動する • 波形シーケンサは, 位置を検出できなかった場合にモータの速度を測定したり, OPT 出力を禁止にしたりするために使用できる 16 ビットタイマを内蔵しています。 • DTTI 端子入力(DTTI1)による強制的停止制御 - 外部端子は , 発振が停止している場合でもクロックレスで入力可能な DTTI 端子 入力で制御できます(端子レベルは , 各端子またはソフトウェアで設定できま す)。DTTI 入力には , 選択可能なノイズフィルタが存在します。DTTI1 端子のノ イズフィルタのノイズ幅を表 15.1-2 に示します。 表 15.1-2 ノイズフィルタのノイズ幅 選択 DTTI 端子と SNI2 ∼ SNI0 端子のノイズ幅 1 4 マシンサイクルノイズを除去する 2 8 マシンサイクルノイズを除去する 3 16 マシンサイクルノイズを除去する 4 32 マシンサイクルノイズを除去する ● 出力信号と PPG との間の同期化 シーケンサ状態遷移時点におけるショートパルス(またはグリッチ)の発生を回避す るには , 書込みタイミング(WTO)を遅延させ , PPG 出力波形のその次のエッジと同 期化させる必要があります。詳細は , 図 15.1-1 と図 15.1-2 をご参照ください。この機 能は , ソフトウェアで有効または無効にできます。入力制御レジスタ(IPCUR)の WTS1:bit15 と WTS0:bit14 は , この機能を無効にしたり同期化対象の PPG エッジの極性 を選択したりするために使用します。 369 第 15 章 マルチパルスジェネレータ 図 15.1-1 PPG 立上がりエッジの同期化 PPG 非同期状態変化 WTS1,0=00B OP5 グリッチ OP4 同期状態変化 WTS1,0=01B OP5' OP4' たとえばリロードタイマ0の アンダフローなどが原因で シーケンサの状態が変化する。 図 15.1-2 PPG 立下がりエッジの同期化 PPG 非同期状態変化 WTS1,0=00B グリッチ OP5 OP4 同期状態変化 WTS1,0=10B OP5' OP4' たとえばリロードタイマ0の アンダフローなどが原因で シーケンサの状態が変化する。 < 注意事項 > 370 PPG 同期モードからほかの PPG 同期モードへの変化(例 : 立上りエッジ同期か ら立下り同期 , あるいはその逆)は , 禁止です。非同期モードはこのような変化 に対して遷移しなければなりません。 第 15 章 マルチパルスジェネレータ ● 入力位置検出制御 マルチパルスジェネレータ入力端子(SNI2 ∼ SNI0)の入力信号は , 直流モータのロー タ位置を検出するために使用します。SNI2 ∼ SNI0 の各入力端子には , ノイズフィルタ が存在します。このノイズフィルタのノイズ幅を表 15.1-2 に示します。入力位置検出 回路の条件を以下に示します。 • SNI2 ∼ SNI0 の各入力では , 3 種類のエッジのいずれかを選択できます。すなわち , 立上りエッジ , 立下りエッジまたは両エッジを選択できます。 • SNI2 ∼ SNI0 入力のレベルは , 出力データレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 と比較されます。 上記の条件が満たされると , OPDBR0 ∼ OPDBRB レジスタと OPDRH, OPDRL レジス タの間におけるデータ転送用書込みタイミング信号が生成されます。 また , 各入力(SNI2 ∼ SNI0)のエッジ検出を無効または有効にできます。 371 第 15 章 マルチパルスジェネレータ 15.2 マルチパルスジェネレータのブロックダイヤグラム マルチパルスジェネレータのブロックダイヤグラムを図 15.2-1 に示し , 波形シーケ ンサのブロックダイヤグラムを図 15.2-2 に示します。 ■ マルチパルスジェネレータのブロックダイヤグラム 内部データバス 図 15.2-1 マルチパルスジェネレータのブロックダイヤグラム INT2/DTTI 端子 DTTI OPT5 端子 OPT5 SNI2 端子 SNI2 OPT4 端子 OPT4 SNI1 端子 SNI1 OPT3 端子 OPT3 SNI0 端子 SNI0 OPT2 端子 OPT2 INT5/TINO Pin 端子 TINO OPT1 端子 OPT1 OPT0 端子 OPT0 割込み #22 割込み #22 割込み #26 割込み #26 割込み #28 割込み #28 波形シーケンサ 16ビットPPGタイマ1 16ビットリロードタイマ0 PPG1 TOUT TIN PPG1 WINO TINOO 端子 INT6/T00 ● 16 ビット PPG タイマ 1 16 ビット PPG タイマ 1 は , 波形シーケンサの PPG 信号を供給するために使用します。 16 ビット PPG タイマ 1 についての詳細は , 「第 13 章 16 ビット PPG タイマ」をご参 照ください。 ● 16 ビットリロードタイマ 0 16 ビットリロードタイマ 0 は , 波形シーケンサのインタバルタイマとして使用します。 16 ビットリロードタイマ 0 についての詳細は , 「第 12 章 16 ビットリロードタイマ」 をご参照ください。 ● 波形シーケンサ 波形シーケンサは , さまざまな波形を生成できるマルチパルスジェネレータの心臓部 です。波形シーケンサのブロックダイヤグラムを図 15.2-2 に示します。 372 第 15 章 マルチパルスジェネレータ ■ 波形シーケンサのブロックダイヤグラム 図 15.2-2 波形シーケンサのブロックダイヤグラム 割込み #26 書込みタイミング割込み 割込み #22 位置検出割込み OPCURレジスタ PDIRT DTIE DTIF NRSL OPS2 OPS1 OPS0 WTIF WTIE PDIF PDIE OPE5 OPE4 OPE3 OPE2 OPE1 OPE0 同期化回路 PPG1から WTS1 WTS0 OPDBRO~Bレジスタ 端子 OPT0 端子 OPT2 出力制御回路 端子 OPT3 OPx1/OPx0 端子 OPT4 端子 OPT5 INT2/DTTI1 端子 Pin ノイズ フィルタ DTTI制御回路 3 RDA2~0 D1 D0 3 コンペアクリア 割込み BNKF デコーダ 内部データバス 出力データバッファレジスタx12 OPDRLレジスタ 端子 OPT1 端子 INT5/TINO WT0 16ビットタイマ WTIN1 CCIRT SNIO 端子 WT O データ書込み制御ユニット SNI1 位置検出回路 OPS2 OPS1 OPS0 3 セレクタ 端子 SNI2 端子 TINO0 WTIN0 TINO0 WTIN0 WTIN1 WTIN1 比較回路 WTS1 WTS0 CPIF CPIE CPD2 CPD1 CPD0 CMPE CPE1 CPE0 SNC2 SNC1 SNC0 SEE2 SEE1 SEE0 コンペア一致割込み IPCURレジスタ S21 S20 S11 NCCRレジスタ S10 S01 S00 D1 D0 PDIRT 割込み #28 373 第 15 章 マルチパルスジェネレータ ● 16 ビットタイマ 16 ビットタイマは , モータ速度を検査するインターバルタイマとして使用します。ま た直流センサレスモータを制御するときの異常検出タイマとしても使用します。16 ビットタイマの詳細を図 15.2-3 に示します。 ● 比較回路 比較回路は , モータ方向を変更する際に出力データレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 を入力制御レジスタ上位(IPCUR)の CPD2 ∼ CPD0:bit11 ∼ bit9 と比較するために使用します。比較の結果 , 一致が検出されると , コンペア一致割込み が生成されます。 ● データ書込み制御ユニット データ書込み制御ユニットは , 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB) から出力データレジスタ(OPDRH, OPDRL)へのデータ転送用書込み信号(WTO)を 生成するために使用します。データ書込み制御ユニットの詳細を図 15.2-4 に示します。 ● デコーダ デコーダは , 出力データレジスタにロードされる出力データバッファレジスタ (OPDBR0 ∼ OPDBRB)を選択するために使用する出力データレジスタ(OPDRH, OPDRL)をデコードするために使用します。 ● DTTI 制御 DTTI 制御は , 緊急の場合に DTTI1 入力のレベル "0" がトリガとなりマルチパルスジェ ネレータ出力を停止するために使用します。 ● ノイズフィルタ ノイズフィルタは , 入力信号(4 種類のサンプリングクロックの中から選択される)の ノイズを除去するために使用します。 ● 出力制御ユニット 出力制御ユニットは , マルチパルスジェネレータ出力端子(OPT5 ∼ OPT0)への PPG 信号を有効または無効にするために使用します。 ● 位置検出回路 位置検出回路は , 位置入力端子(SNI2 ∼ SNI0)のエッジ / レベルを検出するために使 用します。位置検出回路の詳細を図 15.2-5 に示します。 ● 同期回路 同期回路は , OPT5 ∼ OPT0 出力を PPG 信号と同期化するために使用します。 ● ノイズキャンセル制御レジスタ(NCCR) ノイズキャンセル制御レジスタ(NCCR)は , 4 種類のサンプリングクロックの中から いずれかを選択するために使用します(選択されたサンプリングクロックは , ノイズ フィルタでノイズの除去に使用されます)。 374 第 15 章 マルチパルスジェネレータ ● 出力制御レジスタ(OPCUR) 出力制御レジスタ(OPCUR)は , 書込みタイミング割込みフラグを有効にし , 位置検 出割込みフラグを有効にし , データ転送方式を設定し , OPT5 ∼ OPT0 端子と DTTI1 端 子の制御を設定します。 ● 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB) 出力データバッファレジスタは , 12 個のレジスタ(OPDBR0 ∼ OPDBRB)から構成 されています。BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 で指定される OPDBRx レジスタ値は , データ書込み制御ユニットで生成される書込み信号の立上りエッジで OPDRH, OPDRL レジスタへロードされます。 ● 出力データレジスタ(OPDRH, L) 出力データレジスタ(OPDRH, L)は , OPT5 ∼ OPT0 端子への出力データを格納する ために使用します。 ■ 16 ビットタイマのブロックダイヤグラム 図 15.2-3 16 ビットタイマのブロックダイヤグラム コンペアクリア割込み(CCIRT) φ TCSR TCLR MODE ICLR ICRE TMEN CLK2 CLK1 CLK0 プリスケーラ クロック RST RST CLK Q D C T[15:0] 内部データバス 16ビットアップカウンタ 16ビットコンペア クリアレジスタ コンペア回路 WTO WTIN1 16ビットタイマバッファ レジスタ LD ● 16 ビットアップカウンタ 16 ビットアップカウンタは , 16 ビットアップカウンタのカウント値とコンペアクリア レジスタの間で一致が検出されると , クリアされます。 375 第 15 章 マルチパルスジェネレータ ● コンペア回路 コンペア回路は , 16 ビットアップカウンタのカウント値とコンペアクリアレジスタの データを比較するために使用します。 ● コンペアクリアレジスタ(CPCRH, CPCRL) コンペアクリアレジスタ(CPCRH, CPCRL)は , 16 ビットアップカウンタのカウント 値と比較する 16 ビットのデータを格納するために使用します。 ● タイマバッファレジスタ(TMBRH, TMBRL) タイマバッファレジスタ(TMBRH, TMBRL)は , 書込みタイミング割込みまたは位置 検出割込みが発生したときの 16 ビットアップカウンタのカウント値を格納するために 使用します。 ● タイマ状態制御レジスタ(TCSR) タイマ状態制御レジスタ(TCSR)は , クロック周波数や割込み有効 / 禁止などの , 16 ビットタイマの動作を制御するために使用します。 ■ データ書込み制御ユニットのブロックダイヤグラム 図 15.2-4 データ書込み制御ユニットのブロックダイヤグラム 16ビットリロードタイマから書込み 1サイクル遅延回路 16ビットリロードタイマ0から WTINO TOUT 立下りエッジ検出器 セレクタ1 WT0 立上り/立下り エッジ検出器 16ビットリロードタイマ0へ TIN TIN00 セレクタ0 端子 P15/INT5/TIN0 位置検出回路から WTIN1 WTIN1 デコーダ OPS2 OPS1 OPS0 ● 1 サイクル遅延回路 1 サイクル遅延回路は , 出力データバッファレジスタ 0(OPDBR0)へ書込みされたと きにトリガ信号を 1 マシンサイクル遅延させるために使用します。 ● 立下りエッジ検出器 立下りエッジ検出器は , 16 ビットリロードタイマ 0 が出力(TOUT)する立下りエッジ を検出するために使用します。 376 第 15 章 マルチパルスジェネレータ ● 立上り / 立下りエッジ検出器 立上り / 立下りエッジ検出器は , 16 ビットリロードタイマ 0 が出力(TOUT)する立上 り / 立下りエッジを検出するために使用します。 ● セレクタ 0 セレクタ 0 は , 16 ビットリロードタイマ 0 のカウントを有効にするために位置検出回 路の WTIN1 か , あるいは外部端子(INT5/TIN0)を選択するために使用します。 ● セレクタ 1 セレクタ 1 は , 書込みタイミング信号(WTO)を生成するために 16 ビットリロードタ イマ 0 からの OPDBR0 書込みまたは TOUT または位置検出回路の WTIN1 を選択する ために使用します。 ■ 位置検出回路のブロックダイヤグラム 図 15.2-5 位置検出回路のブロックダイヤグラム RDA2 RDA1 RDA0 比較回路 SNI0 ノイズ フィルタ回路 エッジ検出回路0 SEE0 CPE1 CPE0 SNI1 エッジ検出回路1 ノイズ フィルタ回路 ノイズ フィルタ回路 WTIN1 SEE1 CPE1 CPE0 SNI2 セレクタ CMPE エッジ検出回路2 CPE1 CPE0 SEE2 ● 比較回路 比較回路は, 位置検出入力(SNI2∼SNI0) のレベルを出力データレジスタ上位(OPDRH) の RDA2 ∼ RDA0:bit14 ∼ bit12 と比較するために使用します。セレクタが選択された 場合は , 一致が検出されるとデータ書込みタイミング出力信号が生成されます。 377 第 15 章 マルチパルスジェネレータ ● エッジ検出回路 0, 1, 2 エッジ検出回路 0, 1, 2 は同じ機能回路です。 エッジ検出回路は , 位置入力(SNI2 ∼ SNI0)のエッジを 3 種類のエッジ設定と比較す るために使用します。セレクタが選択された場合は , SNI2 ∼ SNI0 入力のいずれかから 有効エッジが検出されると , データ書込みタイミング出力信号が生成されます。 ● ノイズフィルタ ノイズフィルタは , 入力信号(4 種類のサンプリングクロックの中から選択される)の ノイズを除去するために使用します。 ● セレクタ セレクタは , データ書込み制御ユニットへのデータ書込みタイミング出力信号を生成 するために , エッジ検出回路または比較回路を選択します。 378 第 15 章 マルチパルスジェネレータ 15.3 マルチパルスジェネレータの端子 マルチパルスジェネレータの端子について説明します。また端子のブロックダイヤ グラムも示します。 ■ マルチパルスジェネレータの端子 マルチパルスジェネレータは , P00/OPT0 ∼ P05/OPT5, P43/SNI0 ∼ P45/SNI2, P12/INT2/ DTTI1 および P15/INT5/TIN0 を使用します。 ● P00/OPT0 ∼ P05/OPT5 端子 P00/OPT0 ∼ P05/OPT5 端子は , 汎用入出力ポート(P00 ∼ P05)またはマルチパルス ジェネレータの波形出力として機能できます。 波形出力ビットを許可(OPCLR レジスタの OPE5 ∼ OPE0:bit5 ∼ bit0=11111B)にする と , P00/OPT0 ∼ P05/OPT5 端子は , ポート方向レジスタ(DDR0 レジスタの bit5 ∼ bit0) の値とは無関係に自動的に出力端子として設定され , OPT5 ∼ OPT0 端子として機能し ます。 ● P43/SNI0 ∼ P45/SNI2 端子 P43/SNI0 ∼ P45/SNI2 端子は , 汎用入出力ポート(P43 ∼ P45)またはマルチパルスジェ ネレータの位置検出入力として機能できます。 P43/SNI0 ∼ P45/SNI2 端子は , SNI2 ∼ 0 端子として使用する場合は , ポート方向レジス タで入力ポートとして設定(DDR4 レジスタの bit5 ∼ bit3=000B)してください。 ● P12/INT2/DTTI1 端子 P12/INT2/DTTI1 端子は , 汎用入出力ポート(P12), 外部割込み(INT2)またはマルチ パルスジェネレータの DTTI1 入力として機能できます。 P12/INT2/DTTI1 端子は , DTTI1 端子として使用する場合は , ポート方向レジスタで入 力ポートとして設定(DDR1 レジスタの bit1=0)してください。 ● P15/INT5/TIN0 端子 P15/INT5/TIN0 端子は , 汎用入出力ポート(P15), 外部割込み(INT5)またはマルチパ ルスジェネレータの 16 ビットリロードタイマ 0 入力として機能できます。 P15/INT5/TIN0 端子は , TIN0 端子として使用する場合は , ポート方向レジスタで入力 ポートとして設定(DDR1 レジスタの bit5=0)してください。 379 第 15 章 マルチパルスジェネレータ ■ マルチパルスジェネレータ端子のブロックダイヤグラム 図 15.3-1 P00/OPT0 ∼ P05/OPT5 端子のブロックダイヤグラム RDR 内部データバス リソース入力 リソース出力 リソース出力許可信号 ポートデータレジスタ(PDR) プルアップ 抵抗 約50kΩ PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) 図 15.3-2 P12/INT2/DTTI1 端子および P15/INT5/TIN0 端子のブロックダイヤグラム RDR 内部データバス リソース入力 リソース出力 ポートデータレジスタ(PDR) リソース出力許可信号 プルアップ 抵抗 約50kΩ PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) 図 15.3-3 P43/SNI0 ∼ P45/SNI2 端子のブロックダイヤグラム リソース出力 リソース入力 リソース出力許可信号 ポートデータレジスタ(PDR) 内部データバス PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し 380 スタンバイ制御信号(SPL=1) 第 15 章 マルチパルスジェネレータ 15.4 マルチパルスジェネレータのレジスタ マルチパルスジェネレータのレジスタについて説明します。 ■ マルチパルスジェネレータのレジスタ 図 15.4-1 マルチパルスジェネレータのレジスタ 出力制御レジスタ(上位) bit リード/ライト 15 _ DTIE 14 13 12 11 10 9 8 DTIF NRSL OPS2 OPS1 OPS0 WTIF WTI E R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 初期値 OPCUR 出力制御レジスタ(下位) 7 6 5 PDIF PDIE OPE5 R/W R/W 0 0 bit リード/ライト 初期値 4 3 2 1 0 OPE4 OPE3 OPE2 OPE1 OPE0 R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 OPCLR 出力データレジスタ(上位) bit 15 _ BNKF 14 13 12 11 10 9 8 RDA2 RDA1 RDA0 OP51 OP50 OP41 OP40 リード/ライト R R R R R R R R 初期値 0 0 0 0 X X X X OPDRH 出力データレジスタ(下位) bit 7 6 5 4 3 2 1 0 OP31 OP30 OP21 OP20 OP11 OP10 リード/ライト R R R R R R R R 初期値 X X X X X X X X OP01 OP00 OPDRL ( 続く ) 381 第 15 章 マルチパルスジェネレータ 出力データバッファレジスタ(上位) bit リード/ライト 初期値 15 _ BNKF 14 13 12 11 10 9 8 RDA2 RDA1 RDA0 OP51 OP50 OP41 OP40 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 OPDBR0~B 出力データバッファレジスタ(下位) bit 7 6 5 4 3 2 1 0 OP31 OP30 OP21 OP20 OP11 OP10 OP01 OP00 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 リード/ライト 初期値 OPDBR0~B 入力制御レジスタ(上位) bit 15 リード/ライト 初期値 14 13 12 11 10 9 8 WTS1 WTS0 CPIF CPIE CPD2 CPD1 CPD0 CMPE R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 IPCUR 入力制御レジスタ(下位) bit 7 リード/ライト 初期値 6 5 4 3 2 1 0 CPE1 CPE0 SNC2 SNC1 SNC0 SEE2 SEE1 SEE0 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 IPCLR ( 続く ) 382 第 15 章 マルチパルスジェネレータ ( 続き ) コンペアクリアレジスタ(上位) bit 15 _ CL15 14 13 12 11 10 9 8 C L14 CL13 CL12 CL11 CL10 C L09 CL08 R/W R/W R/W R/W R/W R/W R/W R/W X X X X X X X X リード/ライト 初期値 CPCRH コンペアクリアレジスタ(下位) 7 6 5 4 3 C L07 CL06 CL05 CL04 CL03 CL02 C L01 CL00 R/W R/W R/W R/W R/W R/W R/W R/W X X X X X X X X bit リード/ライト 初期値 2 1 0 CPCRL タイマバッファレジスタ(上位) bit 15 14 13 12 11 10 9 8 T15 T14 T13 T12 T11 T10 T09 T08 リード/ライト R R R R R R R R 初期値 0 0 0 0 0 0 0 0 TMBRH タイマバッファレジスタ(下位) 7 6 5 4 3 2 1 0 T07 T06 T05 T04 T03 T02 T01 T00 リード/ライト R R R R R R R R 初期値 0 0 0 0 0 0 0 0 bit TMBRL ノイズキャンセル制御レジスタ bit リード/ライト 初期値 15 14 13 12 11 10 9 8 S21 S20 S11 S10 S01 S00 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 タイマ状態制御レジスタ bit リード/ライト 初期値 7 6 5 4 3 TCLR MODE ICLR ICRE R/W R/W R/W 0 0 0 NCCR 2 1 0 TMEN CLK2 CLK1 CLK0 R/W R/W R/W R/W R/W 0 0 0 0 0 TCSR 383 第 15 章 マルチパルスジェネレータ 出力制御レジスタ上位 , 下位(OPCUR, OPCLR) 15.4.1 出力制御レジスタ(OPCUR, OPCLR)は , 書込みタイミング割込みフラグを有効に し , 位置検出割込みフラグを有効にし , データ転送方式を設定し , OPT5 ∼ OPT0 端 子と DTTI1 端子の制御を設定します。 ■ 出力制御レジスタ , 上位(OPCUR) 図 15.4-2 出力制御レジスタ , 上位(OPCUR) bit 15 14 13 DTIE DTIF NRSL R/W R/W R/W 12 11 10 9 OPS2 OPS1 OPS0 WTIF WTIE R/W R/W R/W R/W R/W WTIE OPS1 1 割込みを許可する 384 読出し 書込み 有効なエッジが検出されてない このビットはクリアされる 1 有効なエッジが検出された このビットは影響を受けない OPS0 データ転送方式選択ビット OPDBR0への書込みがソフトウェア的に行れた後, OPDBROからOPDRH,Lへデータが転送される 16ビットリロードタイマ0のアンダフローがトリガ となり,OPDBROからOPDRH,Lへデータを転送 位置検出入力がトリガとなり,OPDBROからOPDRH,Lへ データを転送 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 16ビットリロードタイマ0のアンダフローで生成され る書込み信号がトリガとなり,OPDBROからOPDRH,Lへ データを転送。16ビットタイマは,位置検出比較回路 で開始される。 16ビットリロードタイマ0のアンダフローまたは位置 検出入力で生成される書込み信号がトリガとなり, OPDBRO~BからOPDRH,Lへデータを転送 ワンショット位置検出またはタイマアンダフロー ワンショット位置検出 ワンショット位置検出およびタイマアンダフロー NRSL ノイズフィルタ有効ビット 0 DTTI入力のノイズフィルタを無効にする 1 DTTI入力のノイズフィルタを有効にする DTIF R/W :リード/ライト :初期値 書込みタイミング割込み要求フラグビット 0 0 1 書込みタイミング割込み許可ビット 割込みを禁止する 0 1 初期値 00000000B 0 WTIF OPS2 8 DTTI割込み要求フラグビット 書込み 読出し 0 有効なエッジが検出されてない このビットはクリアされる 1 有効なエッジが検出された このビットは影響を受けない DTIE DTTI制御有効ビット 0 DTTI入力の制御を無効にする 1 DTTI入力の制御を有効にする 第 15 章 マルチパルスジェネレータ 表 15.4-1 出力制御レジスタ , 上位(OPCUR) ビット名 bit15 bit14 DTIE: DTTI 制御有効 ビット DTIF: DTTI 割込み要 求フラグビッ ト 機能 • このビットは , DTTI 端子による OPT5 ∼ OPT0 端子の出力レベル制御を可能 にします。ソフトウェアは , PORTx の PDRx の各 OPTx 端子に対してインア クティブレベルを設定できます。 • このビットは , DTTI 入力割込み要求フラグです。このビットは , DTTI の立 下がりエッジが検出され , DTTI 制御有効ビット(DTIE)に "1" が設定され ていると必ず設定されます。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : 割込みが生成されます。このビットは影響を受けません。 リードモディファイライト動作時は必ず "1" が読み出されます。 • • • • • bit13 NRSL: ノイズフィル タ有効ビット • bit12 ∼ bit10 bit9 bit8 OPS2 ∼ OPS0: データ転送方 式選択ビット WTIF: 書込みタイミ ング割込み要 求フラグビッ ト WTIE: 書込みタイミ ング割込み許 可ビット このビットは , DTTI 端子入力が有効のときにノイズ除去機能を選択します。 ノイズ除去回路は , アクティブレベルが入力されたとき内部 n- ビットカウン トを開始します("n" の値は , ノイズキャンセルレジスタ(NCCR)の D1, D0:bit10, bit9 の設定に基づいて 2, 3, 4 または 5 をとることができます)。カウ ンタでオーバフローが発生するまでアクティブレベルが保持されると , 回路 は DTTI 端子からの入力を受け付けます。したがって , 除去可能なノイズの パルス幅は約 2n マシンサイクルです。 ノイズキャンセル回路が有効の場合でも , 入力は内部クロックが停止してい るモード(ストップモードなど)時は無効になります。 • • OPTx 端子出力タイミング制御選択ビット。 これらのビットは , OPDRH, OPDRL レジスタ書込みタイミング制御動作 モードを選択します。データは , 選択された動作モード時に制御される書込 みタイミングで出力データバッファレジスタから出力データレジスタへ転送 されます。 • このビットは , 書込み信号により設定される出力タイミングスイッチ割込み 要求フラグです。出力データレジスタ上位(OPDRH)の BNKF:bit15 と RDA2 ∼ RDA0:bit14 ∼ bit12 で指定される OPDBRx レジスタのデータは , 書 込み信号の立上りエッジで OPDRH, OPDRL へ転送されます。このとき , 本 ビットは "1" に設定されます。 このビットに "1" が設定され , かつ書込みタイミング割込み許可ビット (WTIE)にも "1" が設定していると , 割込みが生成されます。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : このビットは影響を受けません。 リードモディファイライト動作時は , 必ず "1" が読み出されます。 • • • • • このビットに "1" を設定し , かつ書込みタイミング割込み要求フラグビット (WTIF)に "1" が設定されると , 割込みが生成されます。 385 第 15 章 マルチパルスジェネレータ ■ 出力制御レジスタ , 下位(OPCLR) 図 15.4-3 出力制御レジスタ , 下位(OPCLR) bit 7 6 5 4 3 2 1 0 PDIF PDIE OPE5 OPE4 OPE3 OPE2 OPE1 OPE0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B OPE0 OPT0出力許可ビット 0 OPT0端子出力を禁止する(初期値) 1 OPT0端子出力を許可する OPE1 OPT1出力許可ビット 0 OPT1端子出力を禁止する(初期値) 1 OPT1端子出力を許可する OPE2 OPT2出力許可ビット 0 OPT2端子出力を禁止する(初期値) 1 OPT2端子出力を許可する OPE3 OPT3出力許可ビット 0 OPT3端子出力を禁止する(初期値) 1 OPT3端子出力を許可する OPE4 OPT4出力許可ビット 0 OPT4端子出力を禁止する(初期値) 1 OPT4端子出力を許可する OPE5 OPT5出力許可ビット 0 OPT5端子出力を禁止する(初期値) 1 OPT5端子出力を許可する PDIE 位置検出割込み許可ビット 0 割込みを禁止する(初期値) 1 割込みを許可する PDIF 位置検出割込み要求フラグビット 読出し R/W :リード/ライト :初期値 386 書込み 0 有効なエッジが検出されてない このビットはクリアされる 1 有効なエッジが検出された このビットは影響を受けない 第 15 章 マルチパルスジェネレータ 表 15.4-2 出力制御レジスタ , 下位(OPCLR) ビット名 機能 • bit7 PDIF: 位置検出割込 み要求フラグ ビット • • • • このビットは , 入力制御レジスタ上位(IPCUR)の CMPE:bit8 に "0" を設定し , SNI2 ∼ SNI0 端子が出力データレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 と比較され一致するかまたは CMPE ビットに "1" を設定 していて , 有効なエッジが SNIx 端子で検出されると , "1" が設定されます。 このビットに "1" が設定され , かつ位置検出割込み許可ビット(PDIE)に "1" を設定していると , 割込みが生成されます。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : このビットは影響を受けません。 リードモディファイライト動作時は , 必ず "1" が読み出されます。 PDIE: 位置検出割込 み許可ビット • bit6 このビットに "1" を設定し , かつ位置検出割込み要求フラグビット(PDIF) に "1" が設定されると , 割込みが生成されます。 bit5 ∼ bit0 OPE5 ∼ OPE0: OPT5 ∼ OPE0 出力許可ビッ ト • これらのビットが設定されると , OPT5 ∼ OPT0 端子への出力は許可になり ます。 387 第 15 章 マルチパルスジェネレータ 出力データレジスタ上位 , 下位(OPDRH, OPDRL) 15.4.2 出力データレジスタは , OPT5 ∼ OPT0 端子への出力データを格納します。 ■ 出力データレジスタ , 上位(OPDRH) 図 15.4-4 出力データレジスタ , 上位(OPDRH) bit 15 14 13 12 11 10 9 8 BNKF RDA2 RDA1 RDA0 OP51 OP50 OP41 OP40 R R R R R R R R OP41 X :不定 R :リードオンリ :初期値 388 初期値 00000000B OP40 OPT4出力波形選択ビット 0 0 OPT4端子は"L"レベルを出力する 0 1 OPT4端子はPPGタイマの出力を出力する 1 0 OPT4端子はPPGタイマの反転出力を出力する 1 1 OPT4端子は"H"レベルを出力する OP51 OP50 OPT5出力波形選択ビット 0 0 OPT5端子は"L"レベルを出力する 0 1 OPT5端子はPPGタイマの出力を出力する 1 0 OPT5端子はPPGタイマの反転出力を出力する 1 1 OPT5端子は"H"レベルを出力する OPDBRレジスタ選択ビット BNKF RDA2 RDA1 RDA0 0 0 0 0 OPDBR0のデータがDPDRH,Lへロードされる 0 0 0 1 OPDBR1のデータがDPDRH,Lへロードされる 0 0 1 0 OPDBR2のデータがDPDRH,Lへロードされる 0 0 1 1 OPDBR3のデータがDPDRH,Lへロードされる 0 1 0 0 OPDBR4のデータがDPDRH,Lへロードされる 0 1 0 1 OPDBR5のデータがDPDRH,Lへロードされる 0 1 1 0 OPDBR6のデータがDPDRH,Lへロードされる 0 1 1 1 OPDBR7のデータがDPDRH,Lへロードされる 1 0 0 0 OPDBR8のデータがDPDRH,Lへロードされる 1 0 0 1 OPDBR9のデータがDPDRH,Lへロードされる 1 0 1 0 OPDBRAのデータがDPDRH,Lへロードされる 1 0 1 1 OPDBRBのデータがDPDRH,Lへロードされる その他の値 禁止 第 15 章 マルチパルスジェネレータ 表 15.4-3 出力データレジスタ , 上位(OPDRH) ビット名 機能 BNKF, RDA2 ∼ RDA0: OPDBR0 ∼ OPDBRB レジ スタ選択ビット • bit15 ∼ bit12 これらのビットは , OPDBR0 ∼ OPDBRB レジスタのアドレスを示します。 また OPDRH レジスタにロードされる出力データバッファレジスタ値を決 定します。 bit11, bit10 OP51, OP50: OPT5 出力波形 選択ビット • これらのビットは , OPT5 端子に出力される出力波形の種類を選択します。 bit9, bit8 OP41, OP40: OPT4 出力波形 選択ビット • これらのビットは , OPT4 端子に出力される出力波形の種類を選択します。 389 第 15 章 マルチパルスジェネレータ ■ 出力データレジスタ , 下位(OPDRL) 図 15.4-5 出力データレジスタ , 下位(OPDRL) bit 7 6 5 4 3 2 1 OP31 OP30 OP21 OP20 OP11 OP10 OP01 OP00 R R R R R R R R OP01 X :不定 R :リードオンリ :初期値 0 OP00 初期値 XXXXXXXXB OPT0出力波形選択ビット 0 0 OPT0端子は"L"レベルを出力する 0 1 OPT0端子はPPGタイマの出力を出力する 1 0 OPT0端子はPPGタイマの反転出力を出力する 1 1 OPT0端子は"H"レベルを出力する OP11 OP10 OPT1出力波形選択ビット 0 0 OPT1端子は"L"レベルを出力する 0 1 OPT1端子はPPGタイマの出力を出力する 1 0 OPT1端子はPPGタイマの反転出力を出力する 1 1 OPT1端子は"H"レベルを出力する OP21 OP20 OPT2出力波形選択ビット 0 0 OPT2端子は"L"レベルを出力する 0 1 OPT2端子はPPGタイマの出力を出力する 1 0 OPT2端子はPPGタイマの反転出力を出力する 1 1 OPT2端子は"H"レベルを出力する OP31 OP30 OPT3出力波形選択ビット 0 0 OPT3端子は"L"レベルを出力する 0 1 OPT3端子はPPGタイマの出力を出力する 1 0 OPT3端子はPPGタイマの反転出力を出力する 1 1 OPT3端子は"H"レベルを出力する 表 15.4-4 出力データレジスタ , 下位(OPDRL) ビット名 390 機能 bit7, bit6 OP31, OP30: OPT3 出力波 形選択ビット • これらのビットは , OPT3 端子に出力される出力波形の種類を選択します。 bit5, bit4 OP21, OP20: OPT2 出力波 形選択ビット • これらのビットは , OPT2 端子に出力される出力波形の種類を選択します。 bit3, bit2 OP11, OP10: OPT1 出力波 形選択ビット • これらのビットは , OPT1 端子に出力される出力波形の種類を選択します。 bit1, bit0 OP01, OP00: OPT0 出力波 形選択ビット • これらのビットは , OPT0 端子に出力される出力波形の種類を選択します。 第 15 章 マルチパルスジェネレータ 15.4.3 出力データバッファレジスタ (OPDBR0 ∼ OPDBRB) 出力データバッファレジスタは , 12 個のレジスタ(OPDBR0 ∼ OPDBRB)から構 成されています。本レジスタ上位の BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 で指定される OPDBRx レジスタ値は , データ書込み制御ユニットで生成され る書込み信号の立上りエッジで OPDRH, OPDRL レジスタへロードされます。 ■ 出力データバッファレジスタ , 上位(OPDBR0 ∼ OPDBRB) 図 15.4-6 出力データバッファレジスタ , 上位(OPDBR0 ∼ OPDBRB) bit 15 14 13 12 11 BNKF RDA2 RDA1 RDA0 OP51 R/W R/W R/W R/W R/W R/W :リード/ライト :初期値 10 9 8 OP50 OP41 OP40 R/W R/W R/W 初期値 00000000B OPT4出力波形選択ット OP41 OP40 0 0 OPT4端子は"L"を出力する 0 1 OPT4端子はPPGタイマを出力する 1 0 OPT4端子はPPGタイマ反転出力を出力する 1 1 OPT4端子は"H"を出力する OP51 OP50 OPT5出力波形選択ット 0 0 OPT5端子は"L"を出力する 0 1 OPT5端子はPPGタイマを出力する 1 0 OPT5端子はPPGタイマ反転出力を出力する 1 1 OPT5端子は"H"を出力する BNKF RDA2 RDA1 RDA0 OPDBR0~Bレジスタ選択ビット 0 0 0 0 DPDRH,LへOPDBR0を次にロードする 0 0 0 1 DPDRH,LへOPDBR1を次にロードする 0 0 1 0 DPDRH,LへOPDBR2を次にロードする 0 0 1 1 DPDRH,LへOPDBR3を次にロードする 0 1 0 0 DPDRH,LへOPDBR4を次にロードする 0 1 0 1 DPDRH,LへOPDBR5を次にロードする 0 1 1 0 DPDRH,LへOPDBR6を次にロードする 0 1 1 1 DPDRH,LへOPDBR7を次にロードする 1 0 0 0 DPDRH,LへOPDBR8を次にロードする 1 0 0 1 DPDRH,LへOPDBR9を次にロードする 1 0 1 0 DPDRH,LへOPDBRAを次にロードする 1 0 1 1 DPDRH,LへOPDBRBを次にロードする その他の値 禁止 391 第 15 章 マルチパルスジェネレータ 表 15.4-5 出力データバッファレジスタ , 上位(OPDBR0 ∼ OPDBRB) ビット名 機能 BNKF, RDA2 ∼ RDA0: OPDBR0 ∼ OPDBRB レジ スタ選択ビット • bit15 ∼ bit12 これらのビットは , OPDBR0 ∼ OPDBRB レジスタのアドレスを示します。 また OPDRH レジスタへロードされる出力データバッファレジスタ値を決 定します。 bit11, bit10 OP51, OP50: OPT5 出力波形 選択ビット • これらのビットは , OPDRH レジスタへロードされた後に OPT5 端子へ出力 される出力波形の種類を選択します。 bit9, bit8 OP41, OP40: OPT4 出力波形 選択ビット • これらのビットは , OPDRH レジスタへロードされた後に OPT4 端子へ出力 される出力波形の種類を選択します。 392 第 15 章 マルチパルスジェネレータ ■ 出力データバッファレジスタ , 下位(OPDBR0 ∼ OPDBRB) 図 15.4-7 出力データバッファレジスタ , 下位(OPDBR0 ∼ OPDBRB) bit 7 6 5 4 3 2 1 OP31 OP30 OP21 OP20 OP11 OP10 OP01 OP00 R/W R/W R/W R/W R/W R/W R/W R/W OP01 R/W :リード/ライト :初期値 0 初期値 00000000B OP00 OPT0出力波形選択ビット 0 0 OPT0端子は"L"を出力する 0 1 OPT0端子はPPGタイマ出力を出力する 1 0 OPT0端子はPPGタイマ反転出力を出力する 1 1 OPT0端子は"H"を出力する OP11 OP10 OPT1出力波形選択ビット 0 0 OPT1端子は"L"を出力する 0 1 OPT1端子はPPGタイマ出力を出力する 1 0 OPT1端子はPPGタイマ反転出力を出力する 1 1 OPT1端子は"H"を出力する OP21 OP20 OPT2出力波形選択ビット 0 0 OPT2端子は"L"を出力する 0 1 OPT2端子はPPGタイマ出力を出力する 1 0 OPT2端子はPPGタイマ反転出力を出力する 1 1 OPT2端子は"H"を出力する OP31 OP30 OPT3出力波形選択ビット 0 0 OPT3端子は"L"を出力する 0 1 OPT3端子はPPGタイマ出力を出力する 1 0 OPT3端子はPPGタイマ反転出力を出力する 1 1 OPT3端子は"H"を出力する 表 15.4-6 出力データバッファレジスタ , 下位(OPDBR0 ∼ OPDBRB) ビット名 機能 bit7, bit6 OP31, OP30: OPT3 出力波 形選択ビット • これらのビットは , OPDRL レジスタへロードされた後に OPT3 端子へ出力さ れる出力波形の種類を選択します。 bit5, bit4 OP21, OP20: OPT2 出力波 形選択ビット • これらのビットは , OPDRL レジスタへロードされた後に OPT2 端子へ出力さ れる出力波形の種類を選択します。 bit3, bit2 OP11, OP10: OPT1 出力波 形選択ビット • これらのビットは , OPDRL レジスタへロードされた後に OPT1 端子へ出力さ れる出力波形の種類を選択します。 bit1, bit0 OP01, OP00: OPT0 出力波 形選択ビット • これらのビットは , OPDRL レジスタへロードされた後に OPT0 端子へ出力さ れる出力波形の種類を選択します。 393 第 15 章 マルチパルスジェネレータ 入力制御レジスタ上位 , 下位(IPCUR, IPCLR) 15.4.4 入力制御レジスタ上位 , 下位(IPCUR, IPCLR)は , 位置検出入力を制御するレジス タです。 ■ 入力制御レジスタ , 上位(IPCUR) 図 15.4-8 入力制御レジスタ , 上位(IPCUR) bit 15 14 13 12 11 10 9 8 WTS1 WTS0 CPIF CPIE CPD2 CPD1 CPD0 CMPE R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000B CMPE 位置検出コンペア有効ビット 0 コンペア動作を無効にする(初期値) 1 コンペア動作を有効にする CPD2 CPD1 CPD0 コンペアビット 0 0 0 RDA2-0=000Bのとき,コンペア一致が発生 0 0 1 RDA2-0=001Bのとき,コンペア一致が発生 0 1 0 RDA2-0=010Bのとき,コンペア一致が発生 0 1 1 RDA2-0=011Bのとき,コンペア一致が発生 1 0 0 RDA2-0=100Bのとき,コンペア一致が発生 1 0 1 RDA2-0=101Bのとき,コンペア一致が発生 1 1 0 RDA2-0=110Bのとき,コンペア一致が発生 1 1 1 RDA2-0=111Bのとき,コンペア一致が発生 CPIE コンペア割込み要求許可ビット 0 割込みを禁止する(初期値) 1 割込みを許可する コンペア割込み要求フラグビット CPIF 0 1 WTS1 R/W :リード/ライト :初期値 394 WTS0 読出し 書込み 有効なエッジが検出されてない 有効なエッジが検出された このビットはクリアされる このビットは影響を受けない 書込みタイミングとPPG同期化選択ビット 0 0 同期なし(初期値) 0 1 立上りエッジで同期をとる(↑) 1 0 立下りエッジで同期をとる(↓) 1 1 両エッジで同期をとる(↑&↓) 第 15 章 マルチパルスジェネレータ 表 15.4-7 入力制御レジスタ , 上位(IPCUR) ビット名 bit15, bit14 bit13 WTS1, WTS0: 書込みタイミ ングと PPG エッジ同期化 選択ビット CPIF: コンペア割込 み要求フラグ ビット 機能 • これらのビットは , 書込みタイミングと同期化させるための " 次の PPG 信号 エッジ " を選択します。 • SNI2 ∼ SNI0 端子が CPD2 ∼ CPD0 と比較され一致すると , このビットに "1" が設定されます。 コンペア割込み要求許可ビット(CPIE)に "1" を設定していると , 割込みが 生成されます。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : このビットは影響を受けません。 リードモディファイライト動作時は , 必ず "1" が読み出されます。 • • • • • bit12 CPIE: コンペア割込 み要求許可 ビット このビットに "1" を設定し , かつコンペア割込み要求フラグ(CPIF)に "1" が設定されると , 割込みが生成されます。 bit11 ∼ bit9 CPD2 ∼ CPD0: コンペアビッ ト • これらのビットは , 出力データレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 と比較されます。これらのビットの値が RDA2 ∼ RDA0 ビットの値と一致すると , コンペア割込み要求フラグビット(CPIF)に "1" が設定されます。 • このビットは , 位置検出の比較動作を有効にします。 bit8 CMPE: 位置検出コン ペア有効ビッ ト 395 第 15 章 マルチパルスジェネレータ ■ 入力制御レジスタ , 下位(IPCLR) 図 15.4-9 入力制御レジスタ , 下位(IPCLR) bit 7 6 CPE1 CPE0 R/W R/W R/W :リード/ライト :初期値 396 5 4 3 2 1 0 SNC2 SNC1 SNC0 SEE2 SEE1 SEE0 R/W R/W R/W R/W R/W R/W 初期値 00000000B SEE0 SNI0有効ビット 0 SNI0エッジ検出を無効にする(初期値) 1 SNI0エッジ検出を有効にする SEE1 SNI1有効ビット 0 SNI1エッジ検出を無効にする(初期値) 1 SNI1エッジ検出を有効にする SEE2 SNI2有効ビット 0 SNI2エッジ検出を無効にする(初期値) 1 SNI2エッジ検出を有効にする SNC0 SNI0のノイズフィルタ有効ビット 0 SNI0入力のノイズ除去回路を無効にする 1 SNI0入力のノイズ除去回路を有効にする SNC1 SNI1のノイズフィルタ有効ビット 0 SNI1入力のノイズ除去回路を無効にする 1 SNI1入力のノイズ除去回路を有効にする SNC2 SNI2のノイズフィルタ有効ビット 0 SNI2入力のノイズ除去回路を無効にする 1 SNI2入力のノイズ除去回路を有効にする CPE1 CPE0 エッジ選択ビット 0 0 エッジ検出なし(停止状態)(初期値) 0 1 立上りエッジ検出(↑) 1 0 立下りエッジ検出(↓) 1 1 両エッジ検出(↑&↓) 第 15 章 マルチパルスジェネレータ 表 15.4-8 入力制御レジスタ , 下位(IPCLR) ビット名 bit7, bit6 CPE1, CPE0: エッジ選択 ビット 機能 • これらのビットは , 位置検出の入力エッジ極性を選択します。位置検出は , これらのビットに設定された入力エッジ極性に従って動作します。 これらのビットは , SNI2 ∼ SNI0 端子入力が有効のときにノイズ除去機能を 選択します。 • ノイズ除去回路は , アクティブレベルが入力されたとき内部 n- ビットカウン トを開始します("n" の値はノイズキャンセルレジスタ(NCCR)の S21/S20, S11/S10, S01/S00 ビットの設定に基づいて 2, 3, 4 または 5 をとることができ ます)。カウンタでオーバフローが発生するまでアクティブレベルが保持さ れると , 回路は SNI2 ∼ SNI0 端子からの入力を受付けます。したがって , 除 去可能なノイズのパルス幅は約 2n マシンサイクルです。 ( 注意事項 ) ノイズ除去回路が有効の場合でも , 入力は内部クロックが停止しているモー ド(ストップモードなど)時は無効です。 • bit5 ∼ bit3 SNC2 ∼ SNC0: SNI2 ∼ SNI0 のノイズフィ ルタ有効ビッ ト bit2 ∼ bit0 SEE2 ∼ SEE0: SNI2 ∼ SNI0 の有効ビット • • これらのビットに "1" を設定した場合 : SNI2 ∼ SNI0 端子のエッジ検出は有効になります。 これらのビットは , 入力制御レジスタ上位(IPCUR)の CMPE:bit8 に "1" を 設定する前に設定してください。 397 第 15 章 マルチパルスジェネレータ 15.4.5 コンペアクリアレジスタ上位 , 下位 (CPCRH, CPCRL) コンペアクリアレジスタ上位 , 下位(CPCRH, CPCRL)は , 16 ビットのレジスタで す。このレジスタが 16 ビットタイマのカウント値と一致すると , 16 ビットタイマは "0000H" にリセットされます。 ■ コンペアクリアレジスタ上位 , 下位(CPCRH, CPCRL) コンペアクリアレジスタは 16 ビットのレジスタです。16 ビットタイマのカウント値と 比較されます。このレジスタの初期値は不定なので , 動作を開始する前にこのレジスタ に値を設定しなければなりません。 < 注意事項 > このレジスタへアクセスする場合は , ワードアクセス命令をご使用ください。 このレジスタが16ビットタイマのカウント値と一致すると, 16ビットタイマは"0000H" にリセットされ , コンペアクリア割込み要求フラグ(ICLR)が設定されます。また , 割 込み動作が許可されているときは , 割込み要求が生成されます。 < 注意事項 > コンペアクリアレジスタ上位 , 下位(CPCRH, CPCRL)にタイマカウンタ値と同 じ値がロードされると , 比較動作は次回この状態が発生するまで行われません。 図 15.4-10 コンペアクリアレジスタ上位 , 下位(CPCRH, CPCRL) コンペアクリアレジスタ(上位) リード/ライト 初期値 bit 15 _ CL15 14 13 12 11 10 9 8 C L14 CL13 CL12 CL11 CL10 C L09 CL08 R/W R/W R/W R/W R/W R/W R/W R/W X X X X X X X X コンペアクリアレジスタ(下位) 7 bit リード/ライト 初期値 398 2 1 CPCRH 6 5 4 3 0 C L07 CL06 CL05 CL04 CL03 CL02 C L01 CL00 R/W R/W R/W R/W R/W R/W R/W R/W X X X X X X X X CPCRL 第 15 章 マルチパルスジェネレータ 15.4.6 タイマバッファレジスタ上位 , 下位 (TMBRH, TMBRL) タイマバッファレジスタ上位 , 下位(TMBRH, TMBRL)は , 16 ビットタイマのカウ ント値を読み出すために使用します。 ■ タイマバッファレジスタ上位 , 下位(TMBRH, TMBRL) タイマバッファレジスタは , 書込みタイミングまたは位置検出トリガが生成された時 点の 16 ビットタイマのカウント値を格納します。この後 , カウンタは "0000H" にクリ アされます。 < 注意事項 > タイマバッファレジスタへアクセスする場合は , ワードアクセス命令をご使用くだ さい。 図 15.4-11 タイマバッファレジスタ上位 , 下位(TMBRH, TMBRL) タイマバッファレジスタ(上位) bit 15 14 13 12 11 10 9 8 T15 T14 T13 T12 T11 T10 T09 T08 リード/ライト R R R R R R R R 初期値 0 0 0 0 0 0 0 0 タイマバッファレジスタ(下位) bit 7 リード/ライト 初期値 TMBRH 6 5 4 3 2 1 0 T07 T06 T05 T04 T03 T02 T01 T00 R R R R R R R R 0 0 0 0 0 0 0 0 TMBRL 399 第 15 章 マルチパルスジェネレータ ノイズキャンセル制御レジスタ(NCCR) 15.4.7 ノイズキャンセル制御レジスタ(NCCR)は , DTTI 端子および SNIx 端子の除去す るノイズパルス幅を制御するために使用します。 ■ ノイズキャンセル制御レジスタ(NCCR) 図 15.4-12 ノイズキャンセル制御レジスタ(NCCR) bit 7 6 S21 S20 R/W R/W R/W :リード/ライト :初期値 400 5 4 3 2 1 0 S11 S10 S01 S00 D1 D0 R/W R/W R/W R/W R/W R/W 初期値 00000000B D1 D0 DTTI1ノイズ幅選択ビット 0 0 4マシンサイクルノイズを除去する 0 1 8マシンサイクルノイズを除去する 1 0 16マシンサイクルノイズを除去する 1 1 32マシンサイクルノイズを除去する S01 S00 SNI0ノイズ幅選択ビット 0 0 4マシンサイクルノイズを除去する 0 1 8マシンサイクルノイズを除去する 1 0 16マシンサイクルノイズを除去する 1 1 32マシンサイクルノイズを除去する S11 S10 SNI1ノイズ幅選択ビット 0 0 4マシンサイクルノイズを除去する 0 1 8マシンサイクルノイズを除去する 1 0 16マシンサイクルノイズを除去する 1 1 32マシンサイクルノイズを除去する S21 S20 SNI2ノイズ幅選択ビット 0 0 4マシンサイクルノイズを除去する 0 1 8マシンサイクルノイズを除去する 1 0 16マシンサイクルノイズを除去する 1 1 32マシンサイクルノイズを除去する 第 15 章 マルチパルスジェネレータ 表 15.4-9 ノイズキャンセル制御レジスタ(NCCR) ビット名 機 能 bit7, bit6 S21, S20: ノイズ幅選択 ビット • これらのビットは , SNI2 端子の除去対象ノイズパルス幅を指定します。 bit5, bit4 S11, S10: ノイズ幅選択 ビット • これらのビットは , SNI1 端子の除去対象ノイズパルス幅を指定します。 bit3, bit2 S01, S00: ノイズ幅選択 ビット • これらのビットは , SNI0 端子の除去対象ノイズパルス幅を指定します。 bit1, bit0 D1, D0: ノイズ幅選択 ビット • これらのビットは , DTTI1 端子の除去対象ノイズパルス幅を指定します。 401 第 15 章 マルチパルスジェネレータ 15.4.8 タイマ状態制御レジスタ(TCSR) タイマ状態制御レジスタ(TCSR)は , 16 ビットタイマの動作を制御するために使 用します。 ■ タイマ状態制御レジスタ(TCSR) 図 15.4-13 タイマ状態制御レジスタ(TCSR) bit 7 6 5 4 3 2 1 0 TCLR MODE ICLR ICRE TMEN CLK2 CLK1 CLK0 R/W R/W R/W R/W R/W R/W R/W R/W CLK2 CLK1 CLK0 0 0 0 0 初期値 00000000B クロック周波数選択ビット カウント クロック φ =16MHz φ =8MHz φ =4MHz φ =1MHz 0 φ 62.5ns 125ns 0.25µs 1µs 0 1 φ/2 125ns 0.25µs 0.5µs 2µs 1 0 φ/4 0.25µs 0.5µs 1µs 4µs 0 1 1 φ/8 0.5µs 1µs 2µs 8µs 1 0 0 φ/16 1µs 2µs 4µs 16µs 1 0 1 φ/32 2µs 4µs 8µs 32µs 1 1 0 φ/64 4µs 8µs 16µs 64µs 1 1 1 φ/128 8µs 16µs 32µs 128µs φ:マシンサイクル タイマ有効ビット TMEN 0 カウントを無効にする(初期値) 1 カウントを有効にする ICRE コンペアクリア割込み要求許可ビット 0 割込みを禁止にする 1 割込みを許可する コンペアクリア割込み要求フラグビット ICLR 読出し 書込み 0 割込み要求なし このビットはクリアされる 1 割込み要求あり このビットは影響を受けない MODE タイマリセット状態ビット 0 書込みタイミングがトリガとなりタイマをリセットする 1 位置検出トリガによりタイマをリセットする タイマクリアビット TCLR R/W :リード/ライト :初期値 402 0 1 読出し 必ず"0"が読み出される 書込み このビットは影響を受けない タイマは"0000H"に初期化される 第 15 章 マルチパルスジェネレータ 表 15.4-10 タイマ状態制御レジスタ(TCSR) ビット名 bit7 TCLR: タイマクリア ビット 機 能 • • • 読出し値は必ず "0" です。 このビットに "0" を設定した場合 : このビットは影響を受けません。 このビットに "1" を設定した場合 : タイマは "0000H" へ初期化されます。 このビットは , 16 ビットタイマのリセット状態を設定します。 このビットに "0" を設定した場合 : 16 ビットタイマは書込みタイミング信号でリセットされます。 • このビットに "1" を設定した場合 : 16 ビットタイマは位置検出信号でリセットされます。 ( 注意事項 ) タイマ値のリセットは , タイマ値が変更された時点で行われます。 • • bit6 MODE: タイマリセッ ト状態ビット • bit5 bit4 ICLR: コンペアクリ ア割込み要求 フラグビット ICRE: コンペアクリ ア割込み要求 許可ビット • • • • • コンペアクリアレジスタと 16 ビットフリーランタイマ値が一致すると , タ イマがクリアされ , このビットには "1" が設定されます。 コンペアクリア割込み要求許可ビット(ICRE)に "1" が設定されると , 割込 みが生成されます。 このビットに "0" を設定した場合 : このビットはクリアされます。 このビットに "1" を設定した場合 : このビットは影響を受けません。 リードモディファイライト動作時は , 必ず "1" が読み出されます。 このビットに "1" を設定した場合 : コンペアクリア割込み要求フラグビット (ICLR)に "1" が設定されると , 割込みが生成されます。 このビットは , 16 ビットタイマのカウントを有効または無効にします。 このビットに "0" を設定した場合 : 16 ビットタイマのカウントは無効になります。 • このビットに "1" を設定した場合 : 16 ビットタイマのカウントは有効になります。 ( 注意事項 ) 16 ビットタイマが無効の場合は , 出力コンペア動作も無効になります。 • • bit3 TMEN: タイマ有効 ビット bit2 ∼ bit0 CLK2 ∼ CLK0: クロック周波 数選択ビット これらのビットは , 16 ビットフリーランタイマのカウントクロックを選択し ます。 ( 注意事項 ) これらのビットが更新されるとクロックが直ちに変更されるので , これらの ビットはタイマ停止状態の間に変更することを推奨します。 • 403 第 15 章 マルチパルスジェネレータ 15.5 マルチパルスジェネレータの割込み マルチパルスジェネレータは , 以下の場合に割込み要求を生成できます。 • 書込みタイミング出力がデータ書込み制御ユニットで生成されます。 • 有効な位置検出入力が検出されます。 • 入力制御レジスタ上位(IPCUR)の CPD2 ∼ CPD0:bit11 ∼ bit9 と出力データレ ジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 の間でコンペア一致が検 出されます。 • 16 ビットタイマでコンペアクリアが生成されます。 • DTTI が信号レベル low に変化します。 ■ マルチパルス割込み マルチパルスジェネレータは , 以下の 5 つの割込み要因を持っています。 • 書込みタイミング割込み • コンペアクリア割込み • 位置検出割込み • コンペア一致割込み • DTTI 割込み 書込みタイミング割込みはコンペアクリア割込みと共有し , 位置検出割込みはコンペ ア一致割込みと共有しています。 ● 書込みタイミング割込み 出力制御レジスタ上位(OPCUR)の WTIE:bit8 に "1" を設定し , かつ書込みタイミング がデータ書込み制御回路で出力されると , この書込みタイミング割込みが生成され , 12 個の出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)のいずれかから出力データ レジスタ(OPDRH, OPDRL)へデータが転送されます。 この割込みが生成されると , 出力制御レジスタ上位(OPCUR)の書込みタイミング割 込み要求フラグビット(WTIF:bit9)に "1" が設定されます。 ● コンペアクリア割込み タイマ状態制御レジスタ(TCSR)の ICRE:bit4 に "1" を設定し , かつ 16 ビットタイマ でアンダフローが発生すると , コンペアクリア割込みが生成されます。 この割込みが生成されると , タイマ状態制御レジスタ(TCSR)のコンペアクリア割込 み要求フラグビット(ICLR:bit5)に "1" が設定されます。 404 第 15 章 マルチパルスジェネレータ ● 位置検出タイミング割込み 出力制御レジスタ下位(OPCLR)の PDIE:bit6 に "1" を設定し , かつ書込みタイミング が位置検出回路で出力されると , この位置検出割込みが生成され , 12 個の出力データ バッファレジスタ(OPDBR0 ∼ OPDBRB) のいずれかから出力データレジスタ (OPDRH, OPDRL)へデータが転送されます。この書込みタイミングは , 位置入力(SNI2 ∼ SNI0) のレベルと出力データレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 の間で コンペア一致が検出された場合または 3 つの異なるエッジ設定のいずれかを持ってい る位置入力(SNI2 ∼ SNI0)でエッジが検出された場合 , 出力できます。 この割込みが生成されると , 出力制御レジスタ下位(OPCLR)の位置検出割込み要求 フラグビット(PDIF:bit7)に "1" が設定されます。 ● コンペア一致割込み 入力制御レジスタ上位(IPCUR)の CPIE:bit12 に "1" を設定し , かつ出力データレジス タ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 と入力制御レジスタ上位(IPCUR) の CPD2 ∼ CPD0:bit11 ∼ bit9 の間で一致が検出されると , このコンペア一致割込みが 生成されます。 この割込みが生成されると , 入力制御レジスタ上位(IPCUR)のコンペア一致割込み要 求フラグビット(CPIF:bit13)に "1" が設定されます。 ● DTTI 割込み 出力制御レジスタ上位(OPCUR)の DTIE:bit15 に "1" を設定し , かつ DTTI1 端子で low 入力が検出されると , この DTTI 割込みが生成されます。 この割込みが生成されると , 出力制御レジスタ上位(OPCUR)の DTTI 割込み要求フ ラグビット(DTIF:bit14)に "1" が設定されます。 ■ マルチパルスジェネレータの割込み要因 割込み #22: この割込みは , DTTI 割込みが発生すると生成されます。 DTTI 割込みは , DTTI1 端子において low レベル入力が検出され , かつ出力制御レジス タ上位(OPCUR)の DTIE:bit15 に "1" を設定していると生成されます。 割込み #26: この割込みは , 位置検出割込みまたはコンペア一致割込みが発生すると生 成されます。 書込みタイミング信号がデータ書込み制御回路から生成されたとき , 出力制御レジス タ上位(OPCUR)の WTIE:bit8 に "1" を設定していれば , 書込みタイミング割込みは生 成されます。 割込み #28: この割込みは , 位置検出割込みまたはコンペア一致割込みが発生すると生 成されます。 SNI2 ∼ SNI0 における有効エッジが検出されたとき , 出力制御レジスタ下位(OPCLR) の PDIE:bit6 に "1" を設定していれば , 位置検出割込みは生成されます。 SNI2 ∼ SNI0 入力が出力データレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 と一致したとき , 入力制御レジスタ上位(IPCUR)の CPIE:bit12 に "1" を設定していれ ば , コンペア一致割込みが生成されます。 405 第 15 章 マルチパルスジェネレータ ■ マルチパルスジェネレータの割込みと EI2OS 表 15.5-1 マルチパルスジェネレータの割込みと EI2OS 割込み要因 割込み 番号 割込み制御レジスタ ベクトルテーブルアドレス EI2OS レジスタ名 アドレス 下位 上位 バンク DTTI1 #22 (16H) ICR05 0000B5H FFFFACH FFFFADH FFFFAEH × 書込みタイミングまた はコンペアクリア #26 (1AH) ICR07 0000B7H FFFF94H FFFF95H FFFF96H ○ 位置検出またはコンペ ア一致 #28 (1CH) ICR08 0000B8H FFFF8CH FFFF8DH FFFF8EH ○ ○ :EI2OS をサポートしています ■ マルチパルスジェネレータの EI2OS 機能 マルチパルスジェネレータは , 書込みタイミング割込み , コンペアクリア割込み , 位置 検出割込みまたはコンペア一致割込みが生成されると起動可能な EI2OS 操作回路を 持っています。 ただし , EI2OS は , 割込み制御レジスタ(ICR)を共用するほかのリリースが割込みを 使用しない場合に限り使用可能です。たとえば , EI2OS を起動するために書込みタイミ ング割込みまたはコンペアクリア割込みを使用している場合 , DTP/ 外部割込みチャネ ル 4, 5 の検出は無効にしなければなりません。 406 第 15 章 マルチパルスジェネレータ 15.6 マルチパルスジェネレータの動作 マルチパルスジェネレータの動作について説明します。OPTx 端子は , 出力データレ ジスタ上位 , 下位(OPDRH, OPDRL)の OPx1, OPx0:bit11 ∼ bit0 の設定に従って , 対応する種類の波形("H", "L" または PPG 出力)を出力します。表 15.6-1 をご参照 ください。 ■ 出力データレジスタのブロックダイヤグラム 図 15.6-1 出力データレジスタのブロックダイヤグラム 位置検出回路 16ビットPPGタイマ1 出力データレジスタ OPT5 出力制御回路 OP51/OP50 OP41/OP40 OP31/OP30 OP21/OP20 OP11/OP10 OP01/OP00 OPT4 OPT3 OPT2 OPT1 OPT0 DTTI1 デコーダ 出力データバッファレジスタx12 データ書込み制御ユニット 16ビットリロードタイマ0 BNKF/RDA2 RDA1/RDA0 407 第 15 章 マルチパルスジェネレータ ■ 出力データレジスタ上位 , 下位 (OPDRH, OPDRL) 出力データレジスタ (OPDRH, OPDRL) の値は , データ書込み制御ユニットで生成され た書込みタイミング信号 (WTO) に従って出力データバッファレジスタ (OPDBR0 ∼ OPDBRB) から受取られます。また , OPTx 出力波形は更新されます。さらに , 出力レベ ルは DTTI 端子入力により強制的に固定できます。 表 15.6-1 出力データレジスタ上位 , 下位(OPDRH, OPDRL) OPx1/OPx0 設定 OPTx 出力 OPx1, OPx0 =0, 0 low レベル OPx1, OPx0 =0, 1 16 ビット PPG タイマ出力 OPx1, OPx0 =1, 0 16 ビット PPG タイマ反転出力 OPx1, OPx0 = 1, 1 high レベル OPTx 出力波形タイミングダイヤグラムを図 15.6-2 に示します。動作についての説明は 次項をご参照ください。 ● OPTx 出力波形タイミングダイヤグラム (WTS1, WTS0:bit15, bit14=00B) 図 15.6-2 OPTx 出力波形タイミングダイヤグラム(WTS1, WTS0:bit15, bit14=00B) WT0 OPx1 OPx0 (OPDRH) 00 01 11 10 PPG OPTx "L"出力 408 PPG 出力 "H"出力 PPG反転出力 第 15 章 マルチパルスジェネレータ 15.6.1 位置検出の動作 位置検出回路の動作について説明します。有効な位置が検出されており , かつ出力 制御レジスタ下位(OPCLR)の PDIE:bit7 に "1" を設定している場合 , データ書込 みタイミング出力(WTIN1)はデータ書込み制御ユニットに対して生成され , 位置 検出割込みが生成されます。 ■ 位置検出の動作 WTIN1 信号は , 以下の条件が満たされると位置検出回路で生成されます。 • SNI2 ∼ SNI0 端子と出力データバッファレジスタ上位(OPDBR0 ∼ OPDBRB)の RDA2 ∼ RDA0:bit14 ∼ bit12 の間でコンペア一致が検出されたとき(このコンペア 一致のトリガは , SNI2 ∼ SNI0 端子の有効エッジ) 。 • 対応する入力制御レジスタ下位(IPCLR)の SEEx:bit2, bit1 または 0 により有効に される SNIx 端子において有効エッジが検出されたとき。 入力制御レジスタ上位(IPCUR)の CMPE:bit8 に "0" を設定すると , SEE2 ∼ SEE0:bit2 ∼ bit0 により有効にされた SNIx 端子のエッジ検出のみが位置検出のエッジ検出動作とな ります。たとえば , SEE0:bit0 のみに "1" が設定され , SNI0 端子への入力エッジが有効 な場合 , 有効エッジが SNI0 端子で検出された場合のみデータ書込み出力信号が生成さ れます。CMPE:bit8=0 のときのエッジ検出タイミングダイヤグラムを図 15.6-3 に示し ます。 入力制御レジスタ上位(IPCUR)の CMPE:bit8 に "1" を設定すると , SNI2 ∼ SNI0 端子 は出力データレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 と比較されます。 この比較は , SNI2 ∼ SNI0 端子のエッジ変化がトリガとなります。CMPE:bit8=1 のとき のエッジ検出タイミングダイヤグラムを図 15.6-4 に示します。 ● エッジ検出タイミングダイヤグラム(CMPE:bit8=0) 図 15.6-3 エッジ検出タイミングダイヤグラム(CMPE:bit8=0) CMPE CPE1~ CPE0 01 10 11 SNI2 SNI1 SNI0 WTIN1 立上りエッジ検出 立下りエッジ検出 両エッジ検出 409 第 15 章 マルチパルスジェネレータ ● 両エッジ検出と SNIx/RDAx 比較タイミングダイヤグラム(CMPE:bit8=1) 図 15.6-4 両エッジ検出と SNIx/RDAx 比較タイミングダイヤグラム(CMPE:bit8=1) CMPE CPE1~ CPE0 RDA2~ RDA0 (OPDRH) 11 110 01 0 001 SNI2 SNI1 SNI0 WTIN1 コンペア一致 コンペア一致 コンペア一致 ■ WTIN1 出力状態とレジスタ設定 表 15.6-2 WTIN1 出力状態とレジスタ設定 CMPE CPE1 CPE0 SEEx 0 0 0 0 出力なし(初期値) 0 X X 0 出力なし 0 0 0 1 出力なし 0 0 1 1 SNIx 立上りエッジを検出する 0 1 0 1 SNIx 立上りエッジを検出する 0 1 1 1 SNIx 両エッジを検出する 1 0 0 X 設定禁止 1 0 1 X SNIx 立上りエッジと SNIx/RDAx コンペア一致を検出する 1 1 0 X SNIx 立下りエッジと SNIx/RDAx コンペア一致を検出する 1 1 1 X SNIx 両エッジと SNIx/RDAx コンペア一致を検出する WTIN1 出力状態 ( 注意事項 ) CMPE:bit8=1 のとき , SEEx には "0" を設定してください(SEEx に "1" を設定することは推奨しません)。 410 第 15 章 マルチパルスジェネレータ 15.6.2 データ書込み制御ユニットの動作 データ書込み制御ユニットは , 出力データバッファレジスタ (OPDBR0 ∼ OPDBRB) から出力データレジスタ(OPDRH, OPDRL)へデータを転送するために必要となる 書込みタイミング出力(WTO)を生成します。 ■ データ書込み制御ユニットの動作 書込みタイミング出力(WTO)は , 以下の場合に生成できます。 • 出力データバッファレジスタ OPDBR0 への書込みがソフトウェア的に行われる。 • 16 ビットリロードタイマ 0 のアンダフローがトリガとなる。 • 16 ビットリロードタイマ 0 のアンダフローがトリガとなる(16 ビットタイマは位 置検出比較回路で起動される)。 • 位置検出入力(SNI2 ∼ SNI0)がトリガとなる(16 ビットリロードタイマ 0 は遅延 を発生させる)。 • 16 ビットリロードタイマ 0 のアンダフローがトリガとなるかまたは位置検出入力が トリガとなる。 WTO の生成要因は , 出力制御レジスタ上位(OPCUR)の OPS2 ∼ OPS0:bit12 ∼ bit10 の値を設定することで定義されます。 ● OPS2 ∼ OPS0:bit12 ∼ bit10=000B の場合における出力データバッファレジスタ(OPDBR0) の信号フローダイヤグラム 図 15.6-5 OPDBR0 の信号フローダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=000B) TIN TIN00 TOUT WTIN0 TIN0 端子 TIN0 WTO 書込み タイミング 出力 16ビットリロードタイマ0 OPDBR0 への書込み信号 SNI2~SIN0 端子 位置検出 OPDBR0W WTIN1 データ書込み制御ユニット 書込みタイミング出力信号は , 値が OPDBR0 レジスタに書き込まれるたびにデータ書 込み制御ユニットから生成され , また OPDBR0 のデータは 1 サイクル後に出力データ レジスタ(OPDRH, OPDRL)へ転送されます。 411 第 15 章 マルチパルスジェネレータ ● OPDRH レジスタ書込みタイミングダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=000B) 図 15.6-6 OPDRH レジスタ書込みタイミングダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=000B) 000 OPS2~0 RDA2~0 (OPDRH) 10 1 001 OPDBROW OPDBR1W OPDBRO[0] OPDBR1[0] WTO OP00 ● リロードタイマ 0 のアンダフローの信号フローダイヤグラム (OPS2 ∼ OPS0:bit12 ∼ bit10=001B) 図 15.6-7 リロードタイマ 0 のアンダフローの信号フローダイヤグラム (OPS2 ∼ OPS0:bit12 ∼ bit10=001B) TIN TIN00 TOUT WTIN0 TIN0 端子 TIN0 WTO 書込み タイミング 出力 16ビットリロードタイマ0 OPDBR0 への書込み信号 SNI2~SNI0 端子 位置検出 OPDBR0W WTIN1 データ書込み制御ユニット 16 ビットリロードタイマ 0 は , この設定で書込み信号を生成するために TIN 入力とソ フトウェアの両方で起動できます。書込み信号は , 16 ビットリロードタイマ 0 のアン ダフローで制御されます。 412 第 15 章 マルチパルスジェネレータ ● 位置検出の信号フローダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=010B または 110B) 図 15.6-8 位置検出の信号フローダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=010B または 110B) TIN TIN00 TOUT WTIN0 TIN0 端子 TIN0 WTO 書込み タイミング 出力 16ビットリロードタイマ0 OPDBR0 への書込み信号 位置検出 SNI2~SNI0 端子 OPDBR0W WTIN1 データ書込み制御ユニット 書込み信号は , コンペア一致で生成されるかまたは位置検出の有効エッジ入力で生成 されます。 ● リロードタイマ 0 と位置検出の信号フローダイヤグラム(OPS2 ∼ OPS0:bit12 ∼ bit10=011B または 111B) 図 15.6-9 リロードタイマ 0 と位置検出の信号フローダイヤグラム (OPS2 ∼ OPS0:bit12 ∼ bit10=011B または 111B) TIN TIN00 TOUT WTIN0 TIN0 端子 TIN0 WTO 書込み タイミング 出力 16ビットリロードタイマ0 OPDBR0 への書込み信号 SNI2~SNI0 端子 位置検出 OPDBR0W WTIN1 データ書込み制御ユニット この設定の場合 , 16 ビットリロードタイマ 0 はコンペア一致で起動されるかまたは位 置検出回路の有効エッジ入力で起動されます。この後 , 16 ビットリロードタイマ 0 で アンダフローが発生するたびに書込み信号が生成されます。コンペア一致は , SNIx 端 子の有効エッジの変化がトリガとなります。 413 第 15 章 マルチパルスジェネレータ ● リロードタイマ 0 または位置検出の信号フローダイヤグラム (OPS2 ∼ OPS0:bit12 ∼ bit10=100B または 101B) 図 15.6-10 リロードタイマ 0 または位置検出の信号フローダイヤグラム (OPS2 ∼ OPS0:bit12 ∼ bit10=100B または 101B) TIN TIN00 TOUT WTIN0 TIN0 端子 TIN0 WTO 書込み タイミング 出力 16ビットリロードタイマ0 OPDBR0 への書込み信号 OPDBR0W SNI2~SNI0 位置検出 端子 WTIN1 データ書込み制御ユニット この設定の場合 , 書込み信号はコンペア一致で生成されるかまたは位置検出の有効 エッジ入力で生成されるかまたは 16 ビットリロードタイマ 0 でアンダフローが発生す るたびに生成されます。コンペア一致は , SNIx 端子の有効エッジの変化がトリガとな ります。 ● 出力データレジスタ(OPDRH)書込みタイミングダイヤグラム (OPS2 ∼ OPS0:bit12 ∼ bit10=001B, 010B, 011B, 100B, 101B, 110B または 111B) 図 15.6-11 出力データレジスタ(OPDRH)書込みタイミングダイヤグラム (OPS2 ∼ OPS0:bit12 ∼ bit10=001B, 010B, 011B, 100B, 101B, 110B または 111B) "001B","010B","011B"または"100B" OPS2~0 BNKF, RDA2~0 (OPDRH) OPDBR1[0] OPDBR4[0] OPDBR7[0] WTO OP00 414 000 1 010 0 0111 第 15 章 マルチパルスジェネレータ 15.6.3 出力データバッファレジスタの動作 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)は , 12 個のレジスタから構 成されています。出力データレジスタ(OPDRH, OPDRL)ヘさまざまな OPDBR0 ∼ OPDBRB レジスタの値をロードすると , マルチパルスジェネレータ出力(OPT5 ∼ OPT0)からさまざまな種類の波形が出力されます。 ■ 出力データバッファレジスタの動作 出力データレジスタ上位(OPDRH)の BNKF:bit15 および RDA2 ∼ 0:bit14 ∼ bit12 に よりアドレスが指定される出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)の データは , データ書込み制御ユニットで生成される書込みタイミングで出力データレ ジスタ(OPDRH, OPDRL)へ転送されます。 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)の BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 は出力データレジスタ(OPDRH, OPDRL)へのデータ転送順序を 決定し , OPx1/OPx0: bit11 ∼ bit0 は出力波形の形状を決定します。出力波形は , 書込み タイミング(WTO)が生成されるごとに自動的に更新されます。 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)の設定例を表 15.6-3 に示します。 表 15.6-3 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)( 1 / 2 ) No. 0 1 2 3 4 5 6 7 8 9 A B BNKF 0 0 0 0 0 1 0 X X 0 1 1 RDA2 1 1 0 0 1 0 0 X X 1 0 0 RDA1 0 0 1 0 0 1 1 X X 0 1 0 RDA0 0 1 1 1 0 0 0 X X 0 1 1 OP51 0 0 0 1 0 0 0 X X 0 0 1 OP50 0 0 1 1 0 0 0 X X 0 1 1 OP41 1 0 0 0 0 1 0 X X 0 0 0 OP40 1 1 0 0 0 1 0 X X 1 0 0 OP31 0 0 0 0 0 0 1 X X 0 0 0 OP30 0 0 0 0 1 0 1 X X 0 0 0 OP21 0 0 0 0 1 0 0 X X 0 0 0 OP20 1 0 0 0 1 1 0 X X 0 0 0 OP11 0 0 1 0 0 0 0 X X 0 1 0 OP10 0 0 1 0 0 0 1 X X 0 1 0 OP01 0 1 0 0 0 0 0 X X 1 0 0 OP00 0 1 0 1 0 0 0 X X 1 0 1 OPBDR 番号の シーケンス 4 5 3 1 6 A 2 X X 4 B 9 415 第 15 章 マルチパルスジェネレータ 表 15.6-3 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)( 2 / 2 ) No. 0 1 2 3 4 5 6 7 8 9 A B OPT5 出力 L L PPG H L L L X X L PPG H OPT4 出力 H PPG L L L H L X X PPG L L OPT3 出力 L L L L PPG L H X X L L L OPT2 出力 PPG L L L H PPG L X X L L L OPT1 出力 L L H L L L PPG X X L H L OPT0 出力 L H L PPG L L L X X H L PPG 出力データバッファレジスタ 0(OPDBR0)を , 表 15.6-3 のように設定すると , 出力デー タレジスタ(OPDRH, L)の値は初期化されます。以下のシーケンスは , 生成される書 込みタイミングに従って動作を開始します。 No.4 → No.6 → No.2 → No.3 → No.1 → No.5 → No.A → No.B → No.9 →(No.4 に戻って リサイクル) データは , 出力データレジスタ(OPDRH, OPDRL)へ順次転送されます。出力データ バッファレジスタ(OPDBR0 ∼ OPDBRB)は , なにも設定されていない場合(たとえ ば , 表 15.6-3 の No.7 および No.8)は使用されません。 416 第 15 章 マルチパルスジェネレータ 15.6.4 出力データレジスタへのデータ転送動作 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)から出力データレジスタ (OPDRH, OPDRL)へ自動でデータを転送をする際には , 8 つの方式(以降の小項で 説明)を使用できます。各方式は , 出力制御レジスタ(OPCUR)の OPS2 ∼ OPS0:bit12 ∼ bit10 を設定することによって選択します。 ■ 出力データレジスタへのデータ転送動作 出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)から出力データレジスタ (OPDRH, OPDRL)へのデータ転送には , 以下に示す 8 つの方式を使用できます。 • OPDBR0 書込み • 16 ビットリロードタイマアンダフロー • 位置検出 • 位置検出と 16 ビットリロードタイマアンダフロー • 位置検出または 16 ビットリロードタイマアンダフロー • ワンショット位置検出 • ワンショット位置検出と 16 ビットリロードタイマアンダフロー • ワンショット位置検出または 16 ビットリロードタイマアンダフロー 出力データレジスタ上位(OPDRH)の BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 により選択された出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)値は , データ 書込み制御回路において書込み信号が生成されると , 出力データレジスタ(OPDRH, OPDRL)へ転送されます。ただし , OPS2 ∼ OPS0=000B の場合は , BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 の値とは無関係に , 必ず OPDBR0 の値が出力データレジ スタ(OPDRH, OPDRL)へ転送されます。OPDBR0 ∼ OPDBRB レジスタと OPDRH, OPDRL レジスタの間の構造を図 15.6-12 に示します。 < 注意事項 > データ転送方式を変更すると , 次に選択されるデータバッファレジスタは , 必ず データ出力レジスタ上位(OPDRH)の BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 で指定されます。これは , BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 が 無視される "OPDBR0 書込み " 方式には適用されません。出力データレジスタへア クセスする場合は , ワードアクセス命令をご使用ください。 417 第 15 章 マルチパルスジェネレータ RDA1 RDA0 OPS2 OPS1 OPS0 BNKF RDA2 図 15.6-12 OPDBR0 ∼ OPDBRB レジスタと OPDRH, OPDRL レジスタの間の構造 OPDBR0 WT0 OPDBR1 OPDBR2 OPDBR3 OPDBR4 OPDBR5 OPDBR6 OPDBR7 OPDBR8 OPDBR9 OPDBRA OPDBRB 418 セレクタ1~12 OPDRH,OPDRL 出力制御回路へ 第 15 章 マルチパルスジェネレータ 15.6.4.1 "OPDBR0 書込み " 方式 "OPDBR0 書込み " 方式の転送時における出力端子(OPTx)のタイミング更新を図 15.6-13 に示します。 ■ "OPDBR0 書込み " 方式 < 注意事項 > この動作時は , 出力データバッファレジスタ 0 に対してワードアクセス命令をご使 用ください。下位レジスタまたは上位レジスタへバイトアクセスしても転送動作は 開始しません。この方式は , リロードタイマ 0 を自由に使用できます。 ● "OPDBR0 書込み " 方式で生成されるタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=000B) 図 15.6-13 "OPDBR0 書込み " 方式で生成されるタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=000B) RDA2~ RDA0 (OPDRH) 000 001 110 OPDBR0W OPDBR1W OPDBR2W WTO OP01, OP00 (OPDRL) 00 01 11 PPG OPT0 419 第 15 章 マルチパルスジェネレータ 15.6.4.2 "16 ビットリロードタイマアンダフロー " 方式 "16 ビットリロードタイマアンダフロー " 方式の転送時における出力端子(OPTx) のタイミング更新を図 15.6-14 および図 15.6-15 に示します。 ■ "16 ビットリロードタイマアンダフロー " 方式 ● "16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング 図 15.6-14 "16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング BNKF, RDA2, RDA1, RDA0 No.0 No.4 No.6 No.2 No.3 No.1 N o .5 N o.A 010 0 0110 00 10 00 11 000 1 0101 1010 10 11 OPT5 OPT4 OPT3 OPT2 OPT1 OPT0 タイマが起動する 16ビットリロードタイマ0でアンダフローが発生する 出力データレジスタ上位(OPDRH)の BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 により指定される出力データバッファレジスタ(OPDBR0 ∼ OPDBRB)から出力デー タレジスタ(OPDRH, OPDRL)へのデータ転送は , 図 15.6-15 に示されているように 16 ビットリロードタイマ 0 のアンダフローが生成されるたびに自動的に更新されます。 この方式を使用するには , リロードタイマを " リロードモード " で使用しなければなり ません。リロードタイマを起動するには , ソフトウェアトリガを使用しなければなりま せん。前もって更新時間を設定し , 連続的制御動作を実行するには , 16 ビットリロード タイマ 0 を使用しなければなりません。 420 第 15 章 マルチパルスジェネレータ ● "16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=001B) 図 15.6-15 "16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング (OPS2 ∼ OPS0:bit12 ∼ bit10=001B) 16ビットリロード タイマ0 カウンタ動作 RDA2~ RDA0 (OPDRH) 10 0 110 10 1 011 00 1 00 01 11 00 10 WTINO (TOUT) WTO OP01, OP00 (OPDRL) PPG OPT0 421 第 15 章 マルチパルスジェネレータ 15.6.4.3 " 位置検出 " 方式 " 位置検出 " 方式の転送時における入力端子(SNIx)がトリガとなる出力タイミン グ更新を図 15.6-16 および図 15.6-17 に示します。 ■ " 位置検出 " 方式 ● " 位置検出 " 方式で生成されるタイミング 図 15.6-16 " 位置検出 " 方式で生成されるタイミング BNKF, RDA2, RDA1, RDA0 No.0 No.4 No.6 No.2 No.3 No.1 N o .5 N o.A 010 0 0110 00 10 00 11 000 1 0101 1010 101 1 OPT5 OPT4 OPT3 OPT2 OPT1 OPT0 書込み信号は,RDA2~0:ビット14~12とSNI2~0端子の間でコンペア一致が検出された 場合またはSNI2~0端子で有効エッジ入力が検出された場合に生成されます。 比較は,入力エッジ位置検出入力端子(SNIx)がトリガとなります。 SNI2 SNI1 SNI0 比較は , 各位置検出において SNI2 端子と出力データレジスタ上位(OPDRH)の RDA2:bit14 の間 , SNI1 端子と RDA1:bit13 の間および SNI0 端子と RDA0:bit12 の間で 行われます。OPTx 出力波形は , 図 15.6-17 のように SNIx 端子の有効エッジ入力に従っ て更新されます。BNKF:bit15 および RDA2 ∼ RDA0:bit14 ∼ bit12 で指定された出力 データバッファレジスタ(OPDBR0 ∼ OPDBRB) データは出力データレジスタ (OPDRH, 422 第 15 章 マルチパルスジェネレータ OPDRL)へ転送され , 出力データは SNI2 ∼ SNI0 端子と RDA2 ∼ RDA0:bit14 ∼ bit12 値の間でコンペア一致が検出されると自動的に更新されます。 この方式時は , リロードタイマ 0 を自由に使用できます。 ● " 位置検出 " 方式で生成されるタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=010B) 図 15.6-17 " 位置検出 " 方式で生成されるタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=010B) SNI2 SNI1 SNI0 RDA2~ RDA0 (OPDRH) 10 0 110 101 011 00 1 01 11 00 10 WTIN1 WTO OP01, OP00 (OPDRL) 00 11 PPG OPT0 423 第 15 章 マルチパルスジェネレータ 15.6.4.4 " 位置検出と 16 ビットリロードタイマアンダフ ロー " 方式 " 位置検出と 16 ビットリロードタイマアンダフロー " 方式の転送時における出力タ イミング更新を図 15.6-18 および図 15.6-19 に示します。 ■ " 位置検出と 16 ビットリロードタイマアンダフロー " 方式 ● " 位置検出と 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング 図 15.6-18 " 位置検出と 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング BNKF, RDA2, RDA1, RDA0 No.0 No.4 No.6 No.2 No.3 No.1 N o .5 N o.A 010 0 0110 00 10 00 11 000 1 0101 1010 101 1 OPT5 OPT4 OPT3 OPT2 OPT1 OPT0 書込み信号は,16ビットリロードタイマ0のアンダフローで生成される 16ビットリロードタイマ0の設定時間 SNI2 SNI1 SNI0 位置検出での比較は , SNIx 端子と出力データレジスタ上位(OPDRH)の RDAx:bit14, bit13 または bit12 の間で行われます(すなわち , SNI2 端子と RDA2:bit14 の間 , SNI1 端 子と RDA1:bit13 の間および SNI0 端子と RDA0:bit12 の間で行われます)。コンペア一 致が検出されると , 16 ビットリロードタイマ 0 が起動します。書込み信号は , 16 ビッ トリロードタイマ 0 のアンダフローで生成されます。 SNIx 端子の有効エッジ入力に従って出力される OPTx 端子出力波形は , 図 15.6-19 に示 424 第 15 章 マルチパルスジェネレータ されているとおりです。16 ビットリロードタイマ 0 は , SNI2 ∼ SNI0 端子と出力デー タレジスタ上位(OPDRH)の RDA2 ∼ RDA0:bit14 ∼ bit12 値の間でコンペア一致が検 出されると起動します。RDA2 ∼ RDA0:bit14 ∼ bit12 で指定された出力データバッファ レジスタ(OPDBR0 ∼ OPDBRB)から出力データレジスタ(OPDRH, OPDRL)への データ転送は , 16 ビットリロードタイマ 0 のアンダフローがトリガとなります。出力 データの動作は自動的に更新されます。 この方式を使用するには , リロードタイマは " ワンショットモード " で使用しなければ なりません。TIN0O は , 2 マシンサイクルより長くなければなりません。 ● " 位置検出と 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング (OPS2 ∼ OPS0:bit12 ∼ bit10=011B) 図 15.6-19 " 位置検出と 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング (OPS2 ∼ OPS0:bit12 ∼ bit10=011B) SNI2 SNI1 SNI0 TIN00 (TIN) リロード タイマ0 カウンタ動作 RDA2~ RDA0 (OPDRH) 10 0 110 010 011 00 1 01 11 00 10 WTINO (TOUT) WTO OP01, OP00 (OPDRL) 00 11 PPG OPT0 425 第 15 章 マルチパルスジェネレータ 15.6.4.5 " 位置検出または 16 ビットリロードタイマアンダ フロー " 方式 " 位置検出または 16 ビットリロードタイマアンダフロー " 方式の転送時における出 力タイミング更新を図 15.6-20 および図 15.6-21 に示します。この方式は , 出力制御 レジスタ上位(OPCUR)の OPS2 ∼ OPS0:bit12 ∼ bit10=100B を設定することに より選択されます。 ■ " 位置検出または 16 ビットリロードタイマアンダフロー " 方式 ● " 位置検出または 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング 図 15.6-20 " 位置検出または 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング BNKF, RDA2, RDA1, RDA0 No.0 No.4 No.6 No.2 0100 0110 00 10 00 11 No.3 0001 No.1 N o .5 N o.A 0101 1010 101 1 OPT5 OPT4 OPT3 OPT2 OPT1 OPT0 タイマが 起動する 16ビットリロードタイマ0でアンダフローが発生する SNI2 SNI1 SNI0 書込み信号は,RDA2~RDA0:bit14~bit12とSNI2~SNI0端子の間でコンペア一致が検出された場合またはSNI2~SNI0 端子で有効エッジ入力が検出された場合に生成されます。比較は,入力エッジ位置検出入力端子(SNIx)がトリガとなります。 426 第 15 章 マルチパルスジェネレータ ● " 位置検出または 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング (OPS2 ∼ OPS0:bit12 ∼ bit10=100B) 図 15.6-21 " 位置検出または 16 ビットリロードタイマアンダフロー " 方式で生成されるタイミング (OPS2 ∼ OPS0:bit12 ∼ bit10=100B) SNI2 SNI1 SNI0 TIN00 (TIN) リロード タイマ0 カウンタ動作 RDA2~ RDA0 (OPDRH) 10 0 110 010 011 00 1 01 11 00 10 WTINO (TOUT) WTO OP01, OP00 (OPDRL) 00 11 PPG OPT0 427 第 15 章 マルチパルスジェネレータ 15.6.4.6 " ワンショット位置検出 " 方式 " ワンショット位置検出 " 方式の転送時における入力端子(SNIx)がトリガとなる 出力タイミング更新を図 15.6-22 に示します。 ■ " ワンショット位置検出 " 方式 最初の有効位置が検出されてから動作モードが変更されるまでに位置検出が認識され ない点を除き , " 位置検出 " 方式の動作と同じです。OPTx 出力波形をに示します。 この方式時は , リロードタイマ 0 を自由に使用できます。 ● " ワンショット位置検出 " 方式で生成されるタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=110B) 図 15.6-22 " ワンショット位置検出 " 方式で生成されるタイミング (OPS2 ∼ OPS0:bit12 ∼ bit10=110B) SNI2 SNI1 SNI0 RDA2~ RDA0 (OPDRH) 10 0 110 00 01 WTIN1 WTO OP01, OP00 (OPDRL) 11 PPG OPT0 OPS2~ OPS0 428 110 01 0 第 15 章 マルチパルスジェネレータ 15.6.4.7 " ワンショット位置検出と 16 ビットリロードタイ マアンダフロー " 方式 " ワンショット位置検出と 16 ビットリロードタイマアンダフロー " 方式の転送時に おける出力タイミング更新を図 15.6-23 に示します。 ■ " ワンショット位置検出と 16 ビットリロードタイマアンダフロー " 方式 最初の有効位置が検出されてから動作モードが変更されるまでに位置検出が認識され ない点を除き , " 位置検出と 16 ビットリロードタイマアンダフロー " 方式の動作と同 じです。OPTx 端子出力波形を図 15.6-23 に示します。 この方式を使用するには , リロードタイマは " ワンショットモード " で使用しなければ なりません。TIN0O は , 2 マシンサイクルより長くなければなりません。 ● " ワンショット位置検出と 16 ビットリロードタイマアンダフロー" 方式で生成されるタイミ ング(OPS2 ∼ OPS0:bit12 ∼ bit10=111B) 図 15.6-23 " ワンショット位置検出と 16 ビットリロードタイマアンダフロー " 方式で生成される タイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=111B) SNI2 SNI1 SNI0 TIN00 (TIN) リロード タイマ0 カウンタ動作 RDA2~ RDA0 (OPDRH) 10 0 110 WTINO (TOUT) WTO OP01, OP00 (OPDRL) 00 11 01 PPG OPT0 OPS2~ OPS0 111 011 429 第 15 章 マルチパルスジェネレータ 15.6.4.8 " ワンショット位置検出または 16 ビットリロード タイマアンダフロー " 方式 " ワンショット位置検出または 16 ビットリロードタイマアンダフロー " 方式転送時 における出力タイミング更新を図 15.6-24 に示します。この方式は , 出力制御レジス タ上位(OPCUR)の OPS2 ∼ OPS0:bit12 ∼ bit10=101B の設定により選択されま す。 ■ " ワンショット位置検出または 16 ビットリロードタイマアンダフロー " 方式 最初の有効位置が検出されてから動作モードが変更されるまでに位置検出が認識され ない点を除き " 位置検出または 16 ビットリロードタイマアンダフロー " 方式の転送動 作と同じです。OPTx 端子出力波形を図 15.6-24 に示します。 ● " ワンショット位置検出または 16 ビットリロードタイマアンダフロー" 方式で生成されるタ イミング(OPS2 ∼ OPS0:bit12 ∼ bit10=101B) 図 15.6-24 " ワンショット位置検出または 16 ビットリロードタイマアンダフロー " 方式で生成され るタイミング(OPS2 ∼ OPS0:bit12 ∼ bit10=101B) SNI2 SNI1 SNI0 WTIN1 リロード タイマ0 カウンタ動作 RDA2~ RDA0 (OPDRH) 101 110 00 01 WTINO (TOUT) WTO OP01, OP00 (OPDRL) 11 PPG OPT0 OPS2~ OPS0 430 101 100 第 15 章 マルチパルスジェネレータ 15.6.5 DTTI 入力制御の動作 DTTI 入力制御回路の動作について説明します。 ■ DTTI 入力制御の動作 DTTI 回路は , PORTx となる OPTx 端子への PDRx(PORTx データレジスタ)値の出力 を制御します(OPTx 端子は出力制御レジスタ下位(OPCLR)の OPEx:bit4 ∼ bit1 また は 0 に "1" を設定すると選択されます)。 動作モードは , 出力制御レジスタ上位 (OPCUR) の DTIE:bit15 に "1" を設定すると有効になります。 < 注意事項 > DTTI 回路が有効になる前に , OPTx 端子となる PORTx がポート方向レジスタによ り出力ポートとして設定されていることを確認してください。 出力制御レジスタ上位(OPCUR)の DTIF:bit14 に "1" が設定されると , OPT5 ∼ OPT0 端子の波形出力は DTTI 端子の有効レベルで有効になります。DTTI 端子が low 入力レ ベルに設定されると , OPTx 出力はインアクティブレベルに固定されます。ソフトウェ アは , PORTx の PDRx に対する各 OPTx 端子をインアクティブレベルに設定できます。 OPTx 端子は , PORTx の PDRx に書き込まれたデータで動作します。 出力が DTTI 端子の入力によりインアクティブレベルに固定されている間でもタイマ は動作を継続しており , 位置検出機能は停止せず , かつ出力データバッファレジスタ (OPDBR0 ∼ OPDBRB)から出力データレジスタ(OPDRH, OPDRL)へのデータ転送 は継続され , 波形が生成されます。しかし, OPT5 ∼ OPT0 端子へ波形は出力されません。 DTTI 回路のブロックダイヤグラムを図 15.6-25 に示し , タイマ状態制御レジスタ (TCSR)の D1, D0:bit9, bit8 に "00B" が設定されているときの DTTI 回路のタイミング ダイヤグラムを図 15.6-26 に示します。 ● DTTI 回路のブロックダイヤグラム 図 15.6-25 DTTI 回路のブロックダイヤグラム DTTI端子 入力有効/無効セレクタ DTIE D1 D0 NRSL Nサイクル遅延回路 "N"は,ノイズキャンセルレジスタ (NCCR)のD1,D0:bit9,bit8の設定に 基づいて4,8,16または32をとるこ とができる。 ノイズキャンセルセレクタ DTIF DTTI割込み/制御ジェネレータ DTISP 431 第 15 章 マルチパルスジェネレータ ● DTTI 回路のタイミングダイヤグラム(D1, D0:bit9, bit8=00B) 図 15.6-26 DTTI 回路のタイミングダイヤグラム(D1, D0:bit9, bit8=00B) φ DTTI1 * DTIE NRSL DTIF DTISP DTTI1 DTI E NRSL DTI F * DTISP 4マシンサイクル * : DTIFは,"0"を書込むとlowになります。 < 注意事項 > 432 認識された状態の DTTI1(ノイズ除去後)から DTISP への時間が 2 サイクル必要 とするのはワーストなケースであり , 1 サイクルを必要とするのがベストなケース です。 第 15 章 マルチパルスジェネレータ ■ DTTI と OPTx 出力の関係 表 15.6-4 DTTI と OPTx 出力の関係 NRSL DTIE DTTI1 X 0 X DTTI は OPTx に影響を与えません(初期値)。 0 1 0 DTTI が有効になります。ノイズフィルタは有効になりません。DTTI 端子の "L" は , PDRx が設定されているインアクティブレベルの出力を トリガとします。DTTI 割込みが生成されます。 0 1 1 DTTI は OPTx に影響を与えません。 1 1 0 DTTI が有効になります。ノイズフィルタは有効になります。DTTI 端 子の "L" は , PDRx が設定されているインアクティブレベルの出力をト リガとします。DTTI 割込みが生成されます。 1 1 1 DTTI は OPTx に影響を与えません。 機 能 433 第 15 章 マルチパルスジェネレータ 15.6.6 ノイズ除去機能の動作 SNIx 端子および DTTI 端子のノイズ除去機能について説明します。 ■ ノイズ除去機能の動作 ● DTTI 端子のノイズ除去機能 出力制御レジスタ上位(OPCUR)の NRSL:bit13 に "1" を設定すると , DTTI 端子入力 のノイズ除去機能を使用できます。ノイズ除去機能が起動すると , ノイズ除去回路は , 出力端子をインアクティブレベルに固定するタイミングを約 4, 8, 16 または 32 マシン サイクルだけ遅延させます。ノイズ除去回路は内部クロックを使用するので , DTTI 入 力が有効になった場合でも , 入力は発振が停止するモード(ストップモードなど)時に は無効になります。 ● SNI2 ∼ SNI0 端子のノイズ除去機能 入力制御レジスタ下位(IPCLR)の SNC2 ∼ SNC0:bit5 ∼ bit3 に "1" を設定すると , SNI2 ∼ SNI0 端子入力のノイズ除去機能を使用できます。ノイズ除去機能が選択されると , ノ イズ除去回路は入力を約 4 マシンサイクルだけ遅延させます。ノイズ除去回路は内部 クロックを使用するので , SNIx 入力が有効になった場合でも , 入力は発振が停止する モード(ストップモードなど)時は無効になります。 ● 設定可能なノイズ除去回路 除去されるノイズのパルス幅は , 4, 8, 16 または 32 マシンサイクル未満になるように設 定することが可能です。すなわち , 16 MHz マシンクロック時は , 回路は 0.25ms ∼ 2 ms の幅のパルスをフィルタリングできます。SNIx 端子と DTTI 端子のノイズ除去回路を 設定するための制御は分離されています。ノイズキャンセル制御レジスタを図 15.4-12 に 示します。 434 第 15 章 マルチパルスジェネレータ 15.6.7 16 ビットタイマの動作 16 ビットタイマはバッファ機能とコンペアクリア機能を持っており , モータ速度検 査タイマや異常検出タイマとして使用します。16 ビットタイマは , リセットが完了 しカウント有効ビットが設定された後 , カウンタ値 "0000H" からカウントアップを 開始します。 ■ 16 ビットタイマの動作 カウンタ値は , 以下のイベントが発生した場合にクリアされます。 • オーバフローが発生した場合。 • コンペアクリアレジスタ(CPCRH, CPCRL)と一致した場合。 • 動作中にタイマ状態制御レジスタ(TCSR)の TCLR:bit7 に "1" が設定された場合。 • 書込みタイミング信号が生成され , タイマ状態制御レジスタ(TCSR)の MODE:bit6 に "0" が設定された場合。 • 位置検出信号が生成され , タイマ状態制御レジスタ(TCSR)の MODE:bit6 に "1" が 設定された場合。 • リセットされた場合。 割込みは , コンペアクリアレジスタとの一致でカウンタがクリアされると , 生成されま す。 < 注意事項 > コンペアクリアレジスタやタイマバッファレジスタへアクセスする場合は , ワード アクセス命令をご使用ください。 図 15.6-27 オーバフローによるカウンタクリア カウンタ値 オーバフロー FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット 割込み 図 15.6-28 コンペアクリアレジスタとの一致によるカウンタクリア カウンタ値 FFFFH BFFFH 一致 一致 7FFFH 3FFFH 0000H 時間 リセット コンペアクリア レジスタ値 BFFFH 割込み 435 第 15 章 マルチパルスジェネレータ ■ 16 ビットタイマのタイミング 16ビットタイマは, プリスケーラクロックに基づいてインクリメントされ, 立上りエッ ジでカウントアップします。 < 注意事項 > プリスケーラクロックが変化する前に , タイマ状態制御レジスタ(TCSR)の TMEN:bit3 に "0" を設定してタイマカウンタを無効にしなければなりません。 図 15.6-29 16 ビットタイマカウントのタイミング CPUクロック プリスケーラ クロック カウンタ値 N N+1 N+2 N+3 N+4 カウンタは , リセットが発生した場合 , ソフトウェアクリア(TCLR)が発生した場合 , コンペアクリアレジスタとの一致が発生した場合または書込みタイミング信号か位置 検出信号が生成された場合 , 直ちにクリアできます。カウンタは , リセットが発生した 場合は直ちにクリアされ , コンペアクリアレジスタとの一致が発生した場合 , ソフト ウェアクリア(TCLR)が発生した場合または書込みタイミング信号か位置検出信号が 生成された場合は , カウントタイミングと同期してクリアされます。 図 15.6-30 16 ビットタイマクリアのタイミング φ コンペア レジスタ値 N プリスケーラ クロック コンペア一致 カウンタ値 436 N-1 N 0000H 0001H 0002H 第 15 章 マルチパルスジェネレータ ■ 16 ビットタイマバッファ動作のタイミングダイヤグラム 図 15.6-31 16 ビットタイマバッファ動作のタイミングダイヤグラム CPUクロック CLK カウンタ値 タイマバッファ MODE 0000H 0001H 0002H XXXXH 0000H 0001H 0002H 0002H 0または1 ロードバッファ TMEN WTO WTIN1 タイマリセット 437 第 15 章 マルチパルスジェネレータ ■ マルチパルスジェネレータの 16 ビットタイマの使用 16 ビットタイマは , 書込みタイミング割込みフラグまたは位置検出割込みフラグが設 定されるとリセットされます(どちらを設定するかは , タイマ状態制御レジスタ (TCSR)の MODE:bit6 で選択可能) 。 16 ビットタイマは , タイマ状態制御レジスタ(TCSR)の TMEN:bit3 で起動または停止 できます。タイマオーバフロー割込みは存在しません。16 ビットタイマは , 再起動さ れるたびに現カウンタ値がバッファにラッチされ , 速度が計算されます。 カウンタ値がコンペアクリアレジスタ(CPCRH, CPCRL)と一致すると , タイマはリ セットされます。 < 注意事項 > コンペアクリアレジスタ(CPCRH, CPCRL)にタイマカウンタ値と同じ値がロー ドされると , 比較動作は次回これと同じイベントが発生するまで行われません。 コンペアクリア割込みは同じ割込みベクタを書込みタイミング割込みと共用しますが, コンペア一致割込みは同じ割込みベクタを位置検出割込みと共用します。 ■ マルチパルスジェネレータの 16 ビットタイマの動作ダイヤグラム 図 15.6-32 マルチパルスジェネレータの 16 ビットタイマの動作ダイヤグラム コンペア クリアレジスタ(CPCRH,CPCRL) 望む位置検出信号がタイム アウトが発生するまで現れ ない状態は,異常が発生し ていることを意味します。 カウンタ値 現カウンタ値がバッファ にラッチされます。 タイマがリセットされます(このリセットは書込み タイミングまたは位置検出がトリガとなります)。 438 タイマがリセットされます(このリセットは書込み タイミングまたは位置検出がトリガとなります)。 第 15 章 マルチパルスジェネレータ 15.7 マルチパルスジェネレータ使用上の注意 マルチパルスジェネレータ使用上の注意を以下に示します。 ■ 波形シーケンサ使用上の注意 ● 設定プログラム使用上の注意 • ある PPG 同期モードから別の PPG 同期モードへの切換え(たとえば , 立上りエッジ 同期(IPCUR レジスタの WTS1, WTS0:bit15, bit14=01B)から立下りエッジ同期 (IPCUR レジスタの WTS1, WTS0:bit15, bit14=10B) への切換えまたはその逆への切換 え)は , 禁止されています。同期モード(IPCUR レジスタの WTS1, WTS0:bit15, bit14=00B)は , このような切換えにおける通過点であってはなりません。 • データ転送方式を変更すると , 選択される次のデータバッファレジスタは , 必ず出 力データレジスタ上位(OPDRH)の BNKF, RDA2 ∼ RDA0:bit15 ∼ bit12 で指定さ れます。これは , OPDBR0 書込み方式 (OPCUR レジスタの OPS2 ∼ OPS0:bit12 ∼ bit10 = 000B)には適用されません。OPDBR0 書込み方式では , BNKF, RDA2 ∼ RDA0:bit12 ∼ bit10 は無視されます。 • 出力データレジスタ(OPDRH, OPDRL)へアクセスする際には , ワードアクセスを ご使用ください。 • データ転送に OPDBR0 書込み方式(OPCUR レジスタの OPS2 ∼ OPS0:bit12 ∼ bit10=000B)を使用する場合 , 出力データバッファレジスタ 0 へのアクセスは , ワー ドアクセスをご使用ください。出力データバッファレジスタ(下位レジスタまたは 上位レジスタ)へバイトアクセスしても , 転送動作は開始しません。 • 16 ビットリロードタイマアンダフロー転送方式 (OPCUR レジスタの OPS2 ∼ OPS0: bit12 ∼ bit10=010B) を使用するには , 16 ビットリロードタイマは " リロードモード " で使用しなければなりません。16 ビットリロードタイマを起動するには , ソフト ウェアトリガを使用する必要があります。16 ビットリロードタイマは , 更新時間の 事前設定および連続制御動作を実行するために必要となります。 • " 位置検出と 16 ビットリロードタイマアンダフロー" 方式 (OPCUR レジスタの OPS2 ∼ OPS0:bit12 ∼ bit10=011B または 111B)を使用するには , 16 ビットリロードタイマは " ワンショットモード " でなければなりません。TIN0 は , 2 マシンサイクルより長く なければなりません。 • DTTI1 入力制御回路が有効になる(OPCUR レジスタの DTIE:bit15=1)前に , OPTx と多重化されている PORTx がポート方向レジスタ(DDRx)で出力ポートとして設 定されていることを確認してください。 • DTTI1 入力制御回路は内部クロックを使用するので , 入力は無効となります。発振 が停止するストップモードなどで DTTI1 入力が有効になった(OPCUR レジスタの DTIE:bit15=1)場合でも , 無効となります。 • ワーストの場合は , DTTI1 信号が認識されてから DTISP 信号が有効になるまでに 2 マシンサイクルを要します。ベストの場合は , 1 マシンサイクルを要します。 • ノイズ除去機能が無効になっている(OPCUR レジスタの NRSL:bit13=0)場合は , 必 ずノイズキャンセル制御レジスタ(NCCR)の D1, D0:bit7, bit8 を書換えてください。 439 第 15 章 マルチパルスジェネレータ • ノイズ除去機能が無効になっている (IPCLRレジスタのSNC2∼SNC0:bit5∼bit3=000B) 場合は , 必ずノイズキャンセル制御レジスタ(NCCR)の S21, S20, S11, S10, S01, S00: bit15 ∼ bit10 を書換えてください。 ● 割込みに関する注意 • 出力制御レジスタ上位(OPCUR)の DTIF:bit14 が "1" に設定されたままになってい ると , 割込み処理から復帰できません。DTIF:bit14 は必ずクリアしてください。 • 出力制御レジスタ上位(OPCUR)の WTIF:bit14 が "1" に設定されたままになってい ると , 割込み処理から復帰できません。WTIF:bit14 は必ずクリアしてください。 • 出力制御レジスタ下位(OPCLR)の PDIF:bit7 が "1" に設定されたままになってい ると , 割込み処理から復帰できません。PDIF:bit7 は必ずクリアしてください。 • 入力制御上位レジスタ(IPCUR)の CPIF:bit13 が "1" に設定されたままになってい ると , 割込み処理から復帰できません。CPIF:bit13 は必ずクリアしてください。 • 上記割込みは割込みベクタをほかのリソースと共用するので , 割込みが使用されて いる場合は , 割込み要因を割込み処理ルーチンで注意深く確認しなければなりませ ん。 • また , これらの割込みで EI2OS を使用している場合は , 共用されるリソース割込み は禁止しなければなりません。 ■ 16 ビットタイマ使用上の注意 ● 設定プログラム使用上の注意 • コンペアクリアレジスタ(CPCRH, CPCRL)およびタイマバッファレジスタ(TMBRH, TMBRL)へアクセスする際には , ワードアクセスをご使用ください。 • プリスケーラクロックを切り換える場合は, タイマ状態制御レジスタ (TCSR) のTMEN: bit3 に "0" を設定することによって前もってタイマカウンタを無効にしておかなけ ればなりません。タイマ制御状態レジスタの CLK2 ∼ CLK0:bit2 ∼ bit6 の書換えは , タイマがカウントしていない間に行ってください。 • コンペアクリアレジスタ(CPCRH, CPCRL)にタイマカウンタ値と同じ値がロード された場合は , 比較動作は次の同じタイマカウンタ値まで行われません。 ● 割込みに関する注意 • タイマ制御状態レジスタ(TCSR)の ICLR:bit5 に "1" が設定されており , かつ割込 み要求が許可になっている(TCSR レジスタの ICRE:bit4=1)と , 制御は割込み処理 から復帰できません。ICLR ビットは必ずクリアしてください。 • 16 ビットタイマは割込みベクタをほかのリソースと共用するので , 割込みが使用さ れている場合は , 割込み要因を割込み処理ルーチンで注意深く確認しなければなり ません。 • また , 16 ビットタイマで EI2OS を使用している場合は , 共用されるリソース割込み は禁止にしなければなりません。 440 第 15 章 マルチパルスジェネレータ 15.8 マルチパルスジェネレータのプログラム例 マルチパルスジェネレータのプログラム例を示します。 ■ マルチパルスジェネレータのプログラム例 ● 処理 • タイミング割込みが生成されたとき , PPG の出力は OPT0 へ , PPG の反転割込みは OPT1 へ指示されます。 • OPDBR0 書込みモードは , アウトプットデータレジスタ(OPDRH, OPDRL)へデー タを転送するために使用されます。 • 16 ビット PPG タイマは PWM において使用され , かつソフトウエアトリガにより開 始します。 • EI2OS は使用しません。 • 16MHz はマシンクロック用 , 62.5ns は 16 ビット PPG タイマのカウントクロック用 です。 ● コーディング用 ICR07 EQU 0000B7H ; 波形シーケンサ用割込み制御レジスタ PCSR1 EQU 000042H ;PPG 周期設定レジスタ PDUT1 EQU 000044H ;PPG デューティ設定レジスタ PCNT1 EQU 000046H ;PPG 制御状態レジスタ OPCLR EQU 00008AH ; 出力制御レジスタ OPDBR0 EQU 003FE0H ; 出力データバッファレジスタ WTIF EQU OPCR:9 ; 割込み要求フラグビット ;---------- メインプログラム -----------------------------------------CODE CSEG START ; : ; スタックポインタ (SP) が既に初期化されているものと仮定 AND CCR,#0BFH ; 割込み禁止 MOV I:ICR01,#00H ; 割込みレベル 0(最強) MOVW I:PCSR0,#0064H ;PPG 出力の周期を設定 MOVW I:PDUT0,#003CH ;PPG 出力のデューティ比の設定 MOVW I:PCNT0,#01100000000000110B MOVW MOVW MOV OR ; 正常極性における PPG 出力を許可 ;16 ビット PPG タイマを有効 , 62.5ns クロック ; ソフトウェアトリガ PPG ;PWM モードを選択 ; 割込みフラグをクリア , カウンタ開始 I:OPCR, #0103H ;OPT0 と OPT1 出力を許可 ; データ転送用 OPDBR0 書込みモードを選択 ; 書込みタイミング割込みを許可 ; 割込みフラグをクリア I:OPDBR0,#0009H ;PPG 出力の OPT0 端子を設定 ; 反転 PPG 出力の OPT1 を設定 ; データ転送開始 ILM,#07H ;PS の ILM をレベル 7 に設定 CCR,#40H ; 割込み許可 441 第 15 章 マルチパルスジェネレータ MOV A,#00H ; 無限ループ MOV A,#01H ; BRA LOOP ; ;---------- 割込みプログラム -----------------------------------------WARI: CLRB I:WTIF ; 割込み要求フラグをクリア ; : ; ユーザ処理 ; : RETI ; 割込みから復帰 LOOP: CODE ENDS ;---------- ベクタ設定 ----------------------------------------------VECT CSEG ABS=0FFH ORG 0FF94H ; 割込み #26(1AH)用ベクタをクリア VECT 442 DSL ORG DSL DB ENDS END WARI 0FFDCH START 00H START ; リセットベクタを設定 ; シングルチップモードを設定 第 16 章 PWC タイマ PWC タイマの機能と動作について説明します (MB90467 では , PWC タイマ ch.0 未搭載となり ます)。 16.1 PWC タイマの概要 16.2 PWC タイマのブロックダイヤグラム 16.3 PWC タイマの端子 16.4 PWC タイマのレジスタ 16.5 PWC タイマの割込み 16.6 PWC タイマの動作 16.7 PWC タイマ使用上の注意 16.8 PWC タイマのプログラム例 443 第 16 章 PWC タイマ 16.1 PWC タイマの概要 PWC(パルス幅測定)タイマはリロード機能を備えた多機能 16 ビットアップカウ ンタであり , 入力信号のパルス幅を算出する機能も備えています。 PWC タイマは , 16 ビットカウンタ , 入力パルス分周器 , 分周比制御レジスタ , カウ ント入力端子 , パルス出力端子および 16 ビット制御レジスタから構成されていま す。 ■ PWC タイマの特性 MB90460/465 シリーズは 2 つの PWC タイマチャネルを装備しており , PWC タイマは 以下の特性を備えています。 ● タイマ機能 • 指定された時間間隔で割込み要求が生成されます。 • タイマ周期と同期したパルス信号を生成できます。 • 3 つの内部クロックからカウンタクロックを選択できます。 ● パルス幅測定機能 • 外部パルス入力イベント間の時間を測定できます。 • 3 つの内部クロックからカウンタクロックを選択できます。 • カウントモード • H パルス幅(立上りエッジから立下りエッジまでの幅), L パルス幅(立下りエッジ から立上りエッジまでの幅) • 立上りエッジ周期(立上りエッジから立上りエッジまでの周期), 立下りエッジ周 期(立下りエッジから立下りエッジまでの周期) • 中間エッジカウント(立上りエッジから立下りエッジまでのカウントまたは立下り エッジから立上りエッジまでのカウント) • 6 ビット入力分周器を使用して入力パルスを 22, 24, 26 または 28 で分周して周期を 測定します。 • カウント完了時に割込み要求が生成されます。 • 単一カウントまたは連続カウントを選択できます。 ■ PWC タイマの動作 PWC タイマは , 16 ビットアップカウントタイマを中核とした多機能タイマであり , カ ウント入力端子と 8 ビット入力分周器を備えています。PWC タイマは 2 つの主要機能 (タイマ機能とパルス幅測定機能)を備えており , これらの機能はそれぞれ 2 種類のカ ウントクロックを選択できます。 444 第 16 章 PWC タイマ PWC タイマのブロックダイヤグラム 16.2 PWC タイマのブロックダイヤグラムを示します。 ■ PWC タイマのブロックダイヤグラム 図 16.2-1 PWC タイマのブロックダイヤグラム PWC読出し エラー検出 ERR 16 PWC 16 16 オーバフロー 書込み許可 リロード PWO0 PWO1 F.F . データ転送 16 クロック オーバフロー 22 16ビットアップカウントタイマ 23 内部データバス タイマクリア カウント有効 カウントビット出力 フラグ設定 制御回路 開始エッジ 選択 アカウント 終了エッジ カウント開始 エッジ 内部クロック (マシンクロック/4) 終了エッジ 選択 分周器ON/OFF PWI0 PWI1 カウンと終了割込み要求 15 CK S1,0 分周器クリア エッジ 検出 オーバフロー割込み要求 PWCS Clo ck クロック 分周器 ERR 8ビット 分周器 CKS1 CKS0 分周比選択 2 DIVR 445 第 16 章 PWC タイマ PWC タイマの端子 16.3 PWC タイマの端子について説明します。また端子のブロックダイヤグラムも示しま す。 ■ PWC タイマの端子 PWC タイマの端子は , 汎用入出力ポートと共用されます。端子機能と I/O 形式および PWC タイマを使用するために必要な設定を表 16.3-1 に示します。 表 16.3-1 16 ビット PWC タイマの端子 端子名 端子機能 P06/PWI0* ポート 0 入出力 , タイマ入力 P07/PWO0* ポート 0 入出力 , タイマ出力 プルアップ オプション I/O 形式 待機制御 入力ポートの設定 (DDR0:bit6=0) タイマ有効の設定 (PWCSL0:MOD2 ∼ MOD0 が "0" ではな い) 選択可能 P22/PWI1 ポート 2 入出力 , タイマ入力 P23/PWO1 ポート 2 入出力 , タイマ出力 設 定 CMOS 出力 , CMOS ヒステ リシス入力 使用可能 入力ポートの設定 (DDR2:bit2=0) タイマ有効の設定 (PWCSL1:MOD2 ∼ MOD0 が "0" ではな い) 提供なし *:MB90467 では , リソースが搭載されていないため , 削除となります。 ■ PWC0 タイマ端子のブロックダイヤグラム PWC0 タイマ端子のブロックダイヤグラムを図 16.3-1 に示します。 図 16.3-1 PWC0 タイマ端子のブロックダイヤグラム RDR リソース出力 内部データバス ポートデータレジスタ(PDR) リソース入力 リソース出力許可信号 プルアップ 抵抗 約50kΩ PDR読出し 出力ラッチ PDR書込み 端子 ポートデータ方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) 446 第 16 章 PWC タイマ ■ PWC1 タイマ端子のブロックダイヤグラム PWC1 タイマ端子のブロックダイヤグラムを図 16.3-2 に示します。 図 16.3-2 PWC1 タイマ端子のブロックダイヤグラム リソース出力 リソース入力 リソース出力許可信号 内部データバス ポートデータレジスタ(PDR) PDR読出し 出力ラッチ PDR書込み 端子 ポートデータ方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し スタンバイ制御信号(SPL=1) 447 第 16 章 PWC タイマ 16.4 PWC タイマのレジスタ PWC タイマのレジスタを以下に示します。 ■ PWC タイマのレジスタ 図 16.4-1 PWC タイマのレジスタ PWC状態制御レジスタ(上位) bit 15 _ STRT リード/ライト 初期値 14 13 12 11 10 9 8 STOP EDIR EDIE OVIR OVIE ERR POUT R/W R/W R R/W R/W R/W R R/W 0 0 0 0 0 0 0 0 PWC状態制御レジスタ(下位) bit 7 6 5 4 PWCSH0,PWCSH1 3 2 1 0 CKS1 CKS0 未使用 未使用 S/C MOD2 MOD1 MOD0 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 リード/ライト 初期値 PWCSL0,PWCSL1 PWCデータバッファレジスタ(上位) bit 15 リード/ライト 初期値 14 13 12 11 10 9 8 PW15 PW14 PW13 PW12 PW11 PW10 PW09 PW08 R/W R/W R/W R/W R/W R/W R/W R/W X X X X X X X X PWCH0,PWCH1 PWCデータバッファレジスタ(下位) bit 7 リード/ライト 初期値 6 5 4 3 2 1 0 PW07 PW06 PW05 PW04 PW03 PW02 PW01 PW00 R/W R/W R/W R/W R/W R/W R/W R/W X X X X X X X X PWCL0,PWCL1 分周比制御レジスタ 448 bit 7 6 5 4 3 2 1 0 - - - - - - DIV1 DIV0 リード/ライト - - - - - - R/W R/W 初期値 - - - - - - 0 0 DIV0,DIV1 第 16 章 PWC タイマ PWC 状態制御レジスタ (PWCSH0, PWCSH1, PWCSL0, PWCSL1) 16.4.1 PWC 状態制御レジスタ(PWCSH0, PWCSH1, PWCSL0, PWCSL1)は , PWC タイ マの動作を制御し , PWC タイマの状態を読み出します。 ■ PWC 状態制御レジスタ , 上位バイト(PWCSH0, PWCSH1) 図 16.4-2 PWC 状態制御レジスタ , 上位バイト(PWCSH0, PWCSH1) bit 15 14 13 12 11 10 9 8 STRT STOP EDIR EDIE OVIR OVIE ERR POUT R/W R/W R R/W R/W R/W R R/W POUT パレス出力ビット 0 前の値が"1"の場合,タイマでオーバフローが発生した時"0"になる 1 前の値が"0"の場合,タイマでオーバフローが発生した時"1"になる ERR エラーフラグビット 0 カウント結果は上書きされない 1 前の値が読出される前にカウント結果が上書きされます OVIE オーバフロー割込み許可ビット 0 オーバフロー割込み要求を禁止にする 1 オーバフロー割込み要求を許可する オーバフロー割込み要求ビット OVIR 読出し 0 タイマオーバフローは発生していない 1 タイマオーバフローが発生した 書込み このビットは クリアされます このビットは 影響を受けない EDIE 測定終了割込み許可ビット 0 測定終了割込み要求を禁止する 1 測定終了割込み要求を許可する EDIR 測定終了割込み要求フラグビット 0 パレス幅の測定が終了していない 1 パレス幅の測定が終了した STRT X :不定 R/W :リード/ライト :初期値 - :未使用 初期値 00000000B STOP 0 0 0 1 1 0 1 1 動作状態指示 読出し 書込み タイマが停止する(タイマが 起動しないまたはカウント 機能なし。動作は影響受けない が終了する) タイマが起動または再起動する 無意味 (カウントが有効になる) タイマ動作が停止する 無意味 (カウントが無効になる) 機能なし。動作は影響受けない タイマカウントが行進中 449 第 16 章 PWC タイマ 表 16.4-1 PWC 状態制御レジスタ , 上位バイト(PWCSH0, PWCSH1)( 1 / 2 ) ビット名 機 能 • bit15, bit14 bit13 STRT, STOP: 起動 / 停止 ビット EDIR: 測定終了割込 み要求フラグ ビット • • • • STRT, STOP ビットを書き込んでタイマを起動 , 停止する場合 , ビット操作命 令(ビットクリア命令など)を使用できます。ただし , 動作状態(タイマが 動作中であるといったことなどを必ず示す)の読出しに , ビット操作命令は 使用できません。 • • このビットは , パルス幅測定モードによる測定が終了したことを示します。 パルス幅測定が終了すると , このビットは設定されます(PWC0, PWC1 には 測定結果が入ります)。 PWC データバッファレジスタ内の測定結果や PWC0, PWC1 を読み出したと き , このビットは自動的にクリアされます。 タイマモード時はこのビットは意味を持ちません。 このビットは読出し専用ビットであり , 書き込んでも意味がありません。 • • • • bit12 EDIE: 測定終了割込 み許可ビット • • • • bit11 OVIR: オーバフロー 割込み要求 ビット bit10 OVIE: オーバフロー 割込み要求 ビット このビットは , パルス幅カウントモード時の測定終了割込み要求を制御する ために使用します。 このビットが "1" で , かつ EDIR ビットに "1" が設定されたとき , 測定終了割 込み要求が CPU に対して生成されます。 タイマモード時はこのビットには必ず "0" が設定されます。 このビットは , 16 ビットアップカウントタイマのオーバフローを発生させる タイミングを指定するために使用します。動作はすべてのモードに影響を与 えます。 タイマオーバフローが("FFFFH" から "0000H" の範囲において)発生する と , このビットは設定されます。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットは影響を受けません。 • リードモディファイライト動作時は , 必ず "1" が読み出されます。 ( 注意事項 ) H/L パルス幅カウントモード時は , このビットを使用してパルス幅時間を測 定してはいけません。 このビットは , タイマオーバフロー割込み要求を許可するために使用しま す。 • このビットが "1" で , かつ OVIR に "1" が設定されたとき , 測定終了割込み要 求が CPU に対して生成されます。 ( 注意事項 ) H/L パルス幅カウントモード時は , このビットに "0" を設定してください。 • 450 これらのビットは , 16 ビットアップカウントタイマを起動 , 再起動および停 止するために使用します。 これらのビットを読み出すと , タイマ動作状態がわかります。 これらのビットは , 読み / 書き可能です。これらのビットの意味は , これら のビットを読み出すか書き込むかに依存します。 リードモディファイライト動作時は , 必ず "11B" が読み出されます。 第 16 章 PWC タイマ 表 16.4-1 PWC 状態制御レジスタ , 上位バイト(PWCSH0, PWCSH1)( 2 / 2 ) ビット名 機 能 • bit9 ERR: エラーフラグ ビット • • • • • • bit8 POUP: パルス出力 ビット • このビットは , パルス幅カウントモードで連続カウントするために使用しま す。このフラグは , 前のカウント結果が PWC レジスタから読み出される前 に次のカウント動作が完了していることを示します。この状態が発生すると , PWC レジスタは新しいカウント結果で上書きされ , 前のカウント結果は失 われます。カウント動作は , このビット値とは無関係に継続します。 このビットは読出し専用ビットであり , このビットへ値を書き込んでも値は 変化しません。 読み出されていない現カウント結果が次のカウント結果で上書きされると , このビットが設定されます。 PWC データバッファレジスタ内の測定結果や PWC0, PWC1 を読み出したと き , このビットは自動的にクリアされます。 タイマモード時 16 ビットアップカウントタイマオーバフローが発生すると , このビットは反転します。 パルス幅カウントモード時は , このビットは意味を持ちません。 このビットは , 読み / 書き可能です。ただし , このビットへの書込みは , タイ マが停止した場合に限り可能です。タイマ動作中(STRT:bit15 と STOP:bit14 の両方に "1" が設定されます)にこのビットに値を書き込んでも , このビッ ト値は変化しません。 このビット値が "0" であり , かつタイマオーバフローが "FFFFH" から "0000H" の範囲において発生した場合またはタイマが停止しこのビットに • "1" が書き込まれた場合 , このビットは設定されます。 このビット値が "0" であり , かつタイマオーバフローが "FFFFH" から "0000H" の範囲において発生した場合またはタイマが停止しこのビットに "0" が書き込まれた場合 , このビットはクリアされます。このビットは , リ セットでもクリアされます。 451 第 16 章 PWC タイマ ■ PWC 状態制御レジスタ , 下位バイト(PWCSL0, PWCSL1) 図 16.4-3 PWC 状態制御レジスタ , 下位バイト(PWCSL0, PWCSL1) bit 7 6 CKS1 R/W 5 4 3 2 1 0 CKS0 S/C MOD2 MOD1 MOD0 R/W R/W R/W R/W R/W MOD1 MOD0 動作モード選択&カウントエッジ選択 0 0 0 タイマモード,パレス出力なし 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 MOD2 S/C 452 タイマモード,パレス出力あり (PWOタイマ端子が有効):リロードモードのみ 全エッジ間パレス幅測定モード (立上りエッジから立下りエッジまでの幅または 立下りエッジから立上りエッジまでの幅)* 分周周期測定モード (入力分周器が使用された場合)* 立上りエッジ間周期測定モード (立上りエッジから次の立上りエッジまでの周期)* Hパレス幅測定モード (立上りエッジから立下りエッジまでの幅)* Lパレス幅測定モード (立下りエッジから立上りエッジまでの幅)* 立下りエッジ間周期測定モード (立下りエッジから次の立上りエッジまでの周期)* カウントモード選択 0 単一測定モード 1 連続測定モード CKS1 X :不定 R/W :リード/ライト :初期値 - :未使用 初期値 00000000B タイマモード リロードなし (ワンショット) リロードあり (リロードタイマ) バッファレジスタが有効 パレス幅カウントモード 単一測定後に停止 連続測定:バッファ レジスタが有効 CKS0 カウントクロック選択 0 0 4分周されたマシンクロック (16MHzマシンクロックの場合,0.25μs) 0 1 1 0 1 1 16分周されたマシンクロック (16MHzマシンクロックの場合,1.0μs) 32分周されたマシンクロック (16MHzマシンクロックの場合,2.0μs) 設定禁止(出力は不定) 第 16 章 PWC タイマ 表 16.4-2 PWC 状態制御レジスタ , 下位バイト(PWCSL0, PWCSL1) ビット名 bit7, bit6 CLK1, CLK0: クロック選択 ビット bit5, bit4 未使用ビット bit3 S/C: 単一 / 連続 ビット 機 能 • • トは , 読み / 書き可能です。ただし , "11B" は設定できません。 ( 注意事項 ) タイマ起動後にこの設定を変更することは禁止されています。これらのビッ トへの書込みは , タイマ起動前またはタイマ停止後に行ってください。 • このビットは , カウントモードを選択するために使用します。 リセットにより , このビットは "0" に初期化されます。このビットは , 読み / 書き可能です。 ( 注意事項 ) タイマ起動後にこの設定を変更することは禁止されています。このビットへ の書込みは , タイマ起動前またはタイマ停止後に行ってください。 • MOD2, MOD1, MOD0: 動作モード ビット これらのビットは , 未使用ビットです。必ず "00B" を書き込んでください。 • • • bit2 ∼ bit0 CKS1, 0 ビットは , 内部カウントクロックを選択するために使用します。 リセットにより , これらのビットは "00B" に初期化されます。これらのビッ これらのビットに値を設定すると , 動作モードの選択およびパルス幅カウン トに適したパルスエッジの選択が可能になります。 リセットにより , これらのビットは "000B" に初期化されます。これらのビッ トは , 読み / 書き可能です。 ( 注意事項 ) タイマ起動後にこの設定を変更することは禁止されています。これらのビッ トへの書込みは , タイマ起動前またはタイマ停止後に行ってください。 • 連続測定モードを * マーク(前ページ)が付いた設定に対して設定すると , エッジ総数が算出され , 内部カウントクロックの分周器はカウント終了時に クリアされません。ほかのすべてのモード時は , 内部カウントクロックの分 周器はカウント終了時にクリアされます。 453 第 16 章 PWC タイマ PWC データバッファレジスタ (PWCH0, PWCH1, PWCL0, PWCL1) 16.4.2 PWC データバッファレジスタ(PWCH0, PWCH1, PWCL0, PWCL1)は , PWC タ イマの動作モードに依存する機能を備えています。 ■ PWC データバッファレジスタ(PWCH0, PWCH1, PWCL0, PWCL1) 図 16.4-4 PWC データバッファレジスタ(PWCH0, PWCH1, PWCL0, PWCL1) PWCデータバッファレジスタ(上位) bit リード/ライト 15 14 13 12 11 PW15 PW14 PW13 PW12 PW11 R/W R/W R/W R/W X X X X 初期値 10 9 8 PW10 PW09 PW08 R/W R/W R/W R/W X X X X PWCH0,PWCH1 PWCデータバッファレジスタ(下位) bit リード/ライト 初期値 7 6 5 4 3 2 1 0 PW07 PW06 PW05 PW04 PW03 PW02 PW01 PW00 R/W R/W R/W R/W R/W R/W R/W R/W X X X X X X X X PWCL0,PWCL1 ● タイマモード リロードタイマ動作モード(PWCSL0, PWCSL1 レジスタの S/C:bit3=1)時は , このレ ジスタはリロード値を格納します。このレジスタは , 読み / 書き可能です。 単一タイマ動作モード(PWCSL0, PWCSL1 レジスタの S/C:bit3=0)時は , このレジス タへ直接アクセスすると , アップカウントタイマがアクセスされます。このモード時は , このレジスタは読み / 書き可能です。ただし , このレジスタへの書込みは , タイマが停 止した場合にのみ行われます。このレジスタの読出しは常に可能であり , 読出し値は現 タイマ値です。 ● パルス幅測定モード(読出し専用) 連続測定モード(PWCSL0, PWCSL1 レジスタの S/C:bit3=1)時は , このレジスタはバッ ファレジスタとして機能し , 前のカウント結果を格納します。このレジスタは読出し専 用レジスタであり , 値を書き込んでもレジスタ値は変化しません。 単一測定モード(PWCSL0, PWCSL1 レジスタの S/C:bit3=0)時は , このレジスタへ直 接アクセスすると , アップカウントタイマがアクセスされます。このモード時も , この レジスタは読出し専用レジスタであり , 値を書き込んでもレジスタ値は変化しません。 このレジスタの読出しは常に可能で , 読出し値は現タイマ値です。カウントが実行され ると , レジスタはカウント結果を格納します。 < 注意事項 > 454 このレジスタへアクセスする場合は , 必ずワード転送命令をご使用ください。リ セットで , このレジスタは "0000H" に初期化されます。 第 16 章 PWC タイマ 分周比制御レジスタ(DIV0, DIV1) 16.4.3 分周比制御レジスタ(DIV0, DIV1)は , 分周周期測定モード(PWCSL0, PWCSL1 レジスタの MOD2 ∼ MOD0:bit2 ∼ bit0=011B)時に使用します。このレジスタは , ほかのモード時は意味を持ちません。 ■ 分周比制御レジスタ(DIV0, DIV1) 図 16.4-5 分周比制御レジスタ(DIV0, DIV1) 7 bit 6 5 4 3 X :不定 R/W :リード/ライト :初期値 - :未使用 2 1 0 DIV1 DIV0 R/W R/W 初期値 ------00B DIV1 DIV0 分周比の選択 0 0 2 2 =4分周 0 1 24=16分周 1 0 26=64分周 1 1 8 2 =256分周 表 16.4-3 分周比制御レジスタ(DIV0, DIV1) ビット名 bit7, ∼ bit2 bit1, bit0 未使用ビット DIV1, DIV0: 分周比選択 ビット 機 能 • • 読出し値は不定です。 これらのビットへ値を書き込んでも動作は影響を受けません。 • 分周範囲管理モード時は , このレジスタは測定端子からのパルス入力を分周 するためおよび分周後の 1 周期幅を測定するために使用します。 リセットされると , これらのビットは "00B" に初期化されます。これらの • ビットは , 読み / 書き可能です。 ( 注意事項 ) タイマ起動後にこの設定は変更できません。これらのビットへの書込みは , タイマ起動前またはタイマ停止後に行ってください。 455 第 16 章 PWC タイマ 16.5 PWC タイマの割込み PWC タイマは , カウンタオーバフローが発生した場合またはパルス幅測定モード時 に測定が終了した場合 , 割込み要求を生成できます。PWC タイマはまた , 拡張イン テリジェント I/O サービス(EI2OS)とも連係しています。 ■ PWC タイマの割込み PWC タイマの割込み制御ビットと割込み要因を表 16.5-1 に示します。 表 16.5-1 PWC タイマの割込み制御ビットと割込み要因 PWC タイマ 0 PWC タイマ 1 割込み要求フラグ ビット PWCSH0:OVIR (bit11) PWCSH0:EDIR (bit13) PWCSH1:OVIR (bit11) PWCSH1:EDIR (bit13) 割込み要求許可 ビット PWCSH0:OVIE (bit10) PWCSH0:EDIE (bit12) PWCSH1:OVIE (bit10) PWCSH1:EDIE (bit12) 割込み要因 16 ビットアップカ ウンタのオーバフ ロー パルス幅測定モー ド時の測定終了 16 ビットアップカ ウンタのオーバフ ロー パルス幅測定モー ド時の測定終了 PWC タイマでは PWC 状態制御レジスタ上位(PWCSH)の OVIR:bit11 は , アップカウ ンタでオーバフローが("FFFFH" から "0000H" の範囲において)発生すると , "1" が設 定されます。この状態において割込み要求が許可(PWCSH レジスタの OVIE:bit10=1) になると , 割込み要求が割込みコントローラへ出力されます。 PWC 状態制御レジスタ(PWCSH)の EDIR:bit13 は , パルス幅測定モード時の測定が 終了すると "1" がセットされます。この状態において割込み要求が許可(PWCSH レジ スタの EDIE:bit12=1)になると , 割込み要求が割込みコントローラへ出力されます。 ■ PWC タイマ割込みと EI2OS PWC タイマ割込みと EI2OS を表 16.5-2 に示します。 表 16.5-2 PWC タイマ割込みと EI2OS チャネル 割込み 番号 割込み制御レジスタ ベクトルテーブルアドレス EI2OS レジスタ名 アドレス 下位 中位 上位 PWC タイマ 0*1 #13(0DH) ICR01 0000B1H FFFFC8H FFFFC9H FFFFCAH PWC タイマ 1*2 #24(18H) ICR06 0000B6H FFFF9CH FFFF9DH FFFF9EH ○ *1:16 ビット PPG タイマ 0 の割込み番号と同じ番号が PWC タイマ 0 に割当てられます。 *2: アウトプットコンペア ch.5 一致の割込み番号と同じ番号が PWC タイマ 1 に割当てられます。 456 第 16 章 PWC タイマ ■ PWC タイマの EI2OS 機能 PWC タイマは EI2OS と連係する回路を持っているので , カウンタは , オーバフローま たは測定終了が発生すると EI2OS を起動できます。 ただし , EI2OS は , 割込み制御レジスタ(ICR)を共用するほかのリソースが割込みを 使用しない場合に限り使用可能です。たとえば , PWC タイマ "0" が EI2OS を使用して いる場合 , 16 ビット PPG タイマ "0" の割込みは禁止にしなければなりません。 457 第 16 章 PWC タイマ PWC タイマの動作 16.6 PWC タイマは , 16 ビットアップカウントタイマを中核とした多機能タイマであり , カウント入力端子と 8 ビット入力分周器を備えています。PWC タイマは 2 つの主要 機能(タイマ機能とパルス幅測定機能)を備えており , これらの機能はそれぞれ 2 種類のカウントクロックを選択できます。 ■ タイマ機能 タイマ機能は , 単一モードまたはリロードモード時の動作選択を有効にするアップカ ウントタイマです。 タイマが起動すると , 各カウントクロックでタイマはカウントします。 "FFFFH" から "0000H" の範囲においてオーバフローが発生すると , 割込み要求が送出さ れます。 オーバフローが発生すると , 以下のイベントが発生します。 ● 単一モード カウントは停止します(図 16.6-1 を参照) 。 図 16.6-1 タイマの動作(単一モード) タイマカウント値 オーバフロー オーバフロー FFFFH (再起動は無効) PWCへの 書込み 0000H タイマ起動 OVIRフラグ設定,タイマ停止 458 タイマ起動 OVIRフラグ設定,タイマ停止 時間 第 16 章 PWC タイマ ● リロードモード リロードレジスタの値がタイマにリロードされ , カウントが再起動します(図 16.6-2 を 参照)。 図 16.6-2 タイマの動作(リロードモード) オーバフロー オーバフロー オーバフロー オーバフロー オーバフロー タイマカウント値 FFFFH (再起動は無効) PWC書込み値 リロード リロード リロード リロード 0000H PWCへの書込み リロード 再起動 リロード リロード タイマ停止 タイマ起動 OVIRフラグ設定 時間 POUTビット タイマが"L"レベルで起動された場合,タイマが再起動されてもレベルは切り換えられません (オーバフロー発生時を除く)。 459 第 16 章 PWC タイマ ■ パルス幅測定機能 パルス幅測定機能は , 入力パルスに関係する " 指定されたイベント間 " の時間を算出し ます。 この機能がアクティブになると , 指定されたカウント開始エッジが入力された後にカ ウントが開始します。カウンタが "0000H" にクリアされると , カウントは開始エッジ検 出時に開始され , 次に停止エッジが検出されます。この期間中のカウント値は , パルス 幅としてレジスタに保持されます。 割込み要求は , 測定終了時またはオーバフロー発生時に生成できます。測定が完了する と , 以下のイベントが発生します。 ● 単一測定モード 動作が停止します(図 16.6-3 を参照)。 図 16.6-3 パルス幅測定動作(単一測定モード , H 幅測定モード) (実線はタイマカウント値を示す) PWC入力測定パレス タイマカウント値 FFFFH タイマ クリア 0000H 測定開始 タイマ 停止 タイマ 起動 EDIRフラグ設定(測定終了) 時間 ● 連続測定モード タイマ値がバッファレジスタへ転送され , 次のエッジが入力されるまでタイマはフ リーラン状態になります(図 16.6-4 を参照)。 図 16.6-4 パルス幅測定動作(連続測定モード , H 幅測定モード) (実線はタイマカウント値を示す) PWC入力測定パレス タイマカウント値 タイマ クリア タイマ クリア 0000H 測定開始 PWCへのデータ 転送 PWCへのデータ 転送 FFFFH タイマ 起動 OVIRフラグ タイマ 設定 起動 EDIRフラグ設定 OVIRフラグ 設定 EDIRフラグ設定 (測定終了) 時間 * *:この期間中のタイマ値は保証されません(タイマオーバフローが発生すると, OVIRが設定されることがあります)。 460 第 16 章 PWC タイマ 動作モードの選択 16.6.1 動作モードとカウントモードは , PWCSL0, PWCSL1 レジスタの設定に従って選択 されます。 ■ 動作モードの選択 以下のレジスタは , 動作モードとカウントモードの選択を設定するために使用されま す。 ● 動作モードの設定 :PWCSL0, PWCSL1 レジスタの MOD2 ∼ MOD0:bit2 ∼ bit0 カウント動作の制御を指定するには , タイマモードまたはパルス幅測定モードを選択 してください。 ● カウントモードの設定 :PWCSL0, PWCSL1 レジスタの S/C:bit3 単一測定 , 連続測定 , リロード動作またはワンショット動作を選択してください。 動作モードビットで選択された動作モードを表 16.6-1 に示します。 表 16.6-1 動作モードの選択 S/C MOD2 MOD1 MOD0 ワンショットタイマ 0 0 0 0 リロードタイマ 1 0 0 0/1 設定禁止 0 0 0 1 単一測定 : バッファは無効 0 0 1 0 連続測定 : バッファは有効 1 0 1 0 分周カウント :4 分周から 256 分周まで 単一測定 : バッファは無効 0 0 1 1 連続測定 : バッファは有効 1 0 1 1 立上りエッジから次の立上り エッジまで : 立上りエッジか ら次の立上りエッジまでの周 期測定 単一測定 : バッファは無効 0 1 0 0 連続測定 : バッファは有効 1 1 0 0 立上りエッジから立下りエッ ジまで :H パルス幅測定 単一測定 : バッファは無効 0 1 0 1 連続測定 : バッファは有効 1 1 0 1 立下りエッジから立上りエッ ジまで :L パルス幅測定 単一測定 : バッファは無効 0 1 1 0 単一測定 : バッファは無効 1 1 1 0 単一測定 : バッファは無効 0 1 1 1 連続測定 : バッファは有効 1 1 1 1 動作モード タイマ 立上りエッジから立下りエッ ジまでまたは立下りエッジか ら立上りエッジまで : 全エッ ジ間測定 パルス幅 測定 立下りエッジから次の立下り エッジまで : 立下りエッジか ら次の立下りエッジまでの周 期測定 リセットされると , ワンショットタイマが初期値として選択されます。 < 注意事項 > タイマを起動する場合は , 必ず前もって動作モードを選択してください。 461 第 16 章 PWC タイマ 16.6.2 タイマとパルス幅測定の起動 / 停止と , タイマクリア タイマとパルス幅測定を強制的に起動 , 再起動または停止するには , PWCSH0, PWCSH1 レジスタ STRT:bit15 と STOP:bit14 を使用してください。 16 ビットアップカウントタイマは , リセット時 , 測定開始エッジ検出時またはパル ス幅測定モード時のカウント開始時に "0000H" にクリアされます。 ■ タイマとパルス幅測定の起動 / 停止 STRT:bit15 に "0" を書き込むと , 動作が起動または再起動され , STOP:bit14 に "0" を書 き込むと , 動作が停止します。ただし , これら 2 つのビットに書き込まれる値が同じで ある限り , これらのビットは動作を実行しません。ビット操作命令以外の命令(バイト 命令またはワード命令)を使用した場合は , 値の書込みは以下のビット組合せに対して のみ行われます。 表 16.6-2 パルス幅測定動作(単一測定モード , H 幅測定モード) STRT STOP タイマまたはパルス幅測定を起動 / 再起動する 0 1 タイマまたはパルス幅測定を停止する 1 0 機 能 ビット操作命令のクリアビット命令を使用する場合 , ハードウェアは自動的に上記の 値の組合せを書き込みます。ユーザは , どの値を書き込むべきかについて意識する必要 はありません。 ● 起動後の動作 タイマモード : カウント動作を直ちに開始します。 パルス幅測定モード : 測定は , 測定開始エッジが入力された後に開始します。測定開始 エッジが検出されると , 16 ビットアップカウントタイマは "0000H" にクリアされ , カウントを開始します。 ● タイマの再起動 タイマモードまたはパルス幅測定モード時にタイマを起動し , その後にタイマ動作が 継続されている間にタイマを再起動する(PWCSH0, PWCSH1 レジスタの STRT:bit15 に "0" を書き込む)ことを , " タイマ再起動 " とよびます。再起動中に実行される動作 は , 以下に示すモードによって異なります。 ワンショットモード : 動作は影響を受けません。 リロードタイマモード : リロードが実行され , 動作は継続します。オーバフロー発生時 にタイマが再起動されると , オーバフローフラグ(PWCSH0, PWCSH1 レ ジ ス タ の OVIR:bit11)が 設 定 さ れ , PWCSH0, PWCSH1 レジスタの POUT:bit8 が反転されます。 462 第 16 章 PWC タイマ パルス幅測定モード : 測定開始エッジ待ち状態時は , 動作は影響を受けません。測定 中 , カウントは停止され , タイマ状態は " 測定開始エッジ待ち " 状態へ戻ります。測定終了時にタイマが再起動されると , 測 定終了フラグ(PWCSH0, PWCSH1 レジスタの EDIR:bit13)が 設定され , 連続測定モード時に測定結果はが PWC へ転送され ます。 ● タイマの停止 ワンショットタイマモードまたは単一測定モード時は , 測定はタイマオーバフロー発 生時またはカウント終了時に自動的に停止します。ユーザは , タイマが停止したか否か を意識する必要はありません。ただし , ほかのモード時は , タイマは停止しなければな りません。これは , タイマが自動的に停止する前にタイマを停止する場合も含みます。 ● 動作状態の検査 すでに述べた STRT ビットと STOP ビットは , 読出し中 , タイマの動作状態を示すビッ トとして機能します。動作状態指示ビットの機能をに示します。 表 16.6-3 動作状態指示ビットの機能 STRT STOP 動作状態 0 0 タイマは停止している(測定開始エッジ待ち状態を除く)。 これらのビットは , タイマが起動されていないか , あるいは測定が 終了していることを示します。 1 1 測定開始エッジ待ち状態またはタイマカウント動作 読出し中 , STRT ビットと STOP ビットは両方とも同じ値となります。ただし , リード モディファイライト命令を使用しての読出し中は , これらのビットの値は常に "11B" で す。リードモディファイライト命令を使用して , これらのビットの値を読出してはいけ ません。 ■ タイマクリア 以下の場合 , 16 ビットアップカウントタイマは "0000H" にクリアされます。 • リセット時 • パルス幅測定モード時にカウント開始エッジが検出された後でカウントが開始し たとき 463 第 16 章 PWC タイマ 16.6.3 タイマモード時の動作 タイマモードには , ワンショット動作モードとリロード動作モードがあります。 ■ ワンショット動作モード このモード時にタイマが起動すると , カウンタはカウントクロックごとにインクリメ ントされます。タイマは , オーバフローが "FFFFH" から "0000H" の範囲において発生す ると , 自動的に停止します。 タイマが起動される前にPWCが設定されると, カウントはこの設定値から開始します。 オーバフローが発生すると , 設定値が削除され , 現カウント値が PWC に残ります。 オーバフローが発生すると , PWCSH0, PWCSH1 レジスタの POUT:bit8)は反転します。 ■ リロード動作モード このモード時にタイマが起動すると , PWC のリロード値がタイマへ設定され , カウン タがカウントクロックごとにインクリメントされます。タイマが "FFFFH" から "0000H" までをカウントしている間にオーバフローが発生すると , PWC のリロード値がタイマ へ再び設定され , PWCSH0, PWCSH1 レジスタの POUT:bit8 が反転し , カウント動作が 反復します。タイマは , PWCSH0, PWCSH1 レジスタの STOP:bit14(タイマを停止する) に値が書き込まれるかリセットが発生するまで停止しません。ポートビットは , パルス 出力モードが指定されると , PWO 端子に出力されます。 タイマが起動される前にPWCに設定されたリロード値は, カウント時に格納されます。 タイマが起動または再起動し , オーバフローが発生すると , タイマにリロード値が必ず 設定されます。カウント時に設定された値が変更されると , 新しいリロード値は , 次の オーバフローが発生したときかまたはタイマが再起動されたときに有効になります。 ■ タイマ値とリロード値 ワンショット動作モード時は , PWC レジスタへ直接アクセスすると , アップカウント タイマがアクセスされます。PWC に値が書き込まれると , この値はタイマへ直接書き 込まれます。カウント動作時に PWC が読み出されると , 現タイマ値が読み出されます。 タイマが起動される前に値が PWC に設定されると , タイマは指定された値からカウン トを開始します。 リロード動作モード時は , アップカウントタイマへアクセスすることはできず , PWC はリロードレジスタ(リロード値を格納する)として機能します。タイマが起動また は再起動し , オーバフローが発生すると , PWC に書き込まれた値は必ずタイマへ設定 されます。PWC が読み出されると , 格納されたリロード値が読み出されます。 PWC 値とタイマ値は , リロードモード時に停止された後でタイマがワンショットモー ドで設定されると , 不定となります。したがって , 値は必ずタイマを使用する前に設定 してください。 PWC 値は , ワンショット動作モード時に強制停止された後でタイマがリロードモード で設定されると , 不定となります。したがって , 値は必ずタイマを使用する前に設定し てください。 464 第 16 章 PWC タイマ ■ 割込み要求の生成 タイマモード時の動作時に , オーバフローが発生すると , 割込み要求が生成されます。 タイマカウントのインクリメントによりオーバフローが発生すると , オーバフローフ ラグが設定され , オーバフロー割込み要求がイネーブルになり , 割込み要求が生成され ます。 ■ タイマ周期 PWC に "0000H" が設定された後にタイマがワンショットモードで起動された場合 , カ ウントが "65536" を超えると , タイマオーバフローが発生し , カウントは停止します。 以下の公式では , タイマが起動されてから停止されるまでの時間を計算します。 T1=(65536-n1)×t { T1・・・・・・タイマが起動されてから停止されるまでの時間(µs) n1・・・・・・タイマ起動時にPWCに設定されたタイマ値 t・・・・・・・カウントクロック周期(µs) PWC に "0000H" が設定された後にタイマが起動されると , カウントが "65536" を超え るたびにタイマオーバフローが発生します。以下の公式では , リロード周期と PWO 端 子出力パルス周期を計算します。 TR=(65536-NR)×t { TR・・・・・・リロード周期(オーバフロー周期)(µs) TPOUT・・・・PWO端子出力パルス周期(µs) NR・・・・・・PWCに格納されたリロード値(µs) t・・・・・・・タイマが起動されてから停止されるまでの時間(µs) ■ カウントクロック周期と最大周期 タイマモード時は , PWC に "0000H" が設定されると , 最大周期を発生します。 内部動作周波数 16 MHz(表中では φ で示されています)に対応するカウントクロック 周期とタイマ最大周期を表 16.6-4 に示します。 表 16.6-4 カウントクロック周期と最大周期 カウントクロック選択 カウントクロック周期 タイマ最大周期 CKS1, CKS0:bit7, bit6=00B の場合(φ /4) CKS1, CKS0:bit7, bit 6=00B の場合(φ /16) CKS1, CKS0:bit7, bit6=00B の場合(φ /32) 0.25µs 1µs 2µs 16.38ms 65.5ms 131.1ms 465 第 16 章 PWC タイマ ■ タイマモード動作のフローチャート 図 16.6-5 タイマモード動作のフローチャート 設定 カウントクロックを選択する 動作モードとタイマモードを選択する 割込みフラグをクリアする 割込みを許可する パルス出力初期値を設定する PWCに値を設定する 再起動する STRTビットで起動する リロード動作モード 単一動作モード タイマにPWC値をリロードする カウントを 開始する カウントを 開始する 加 算 加 算 オーバフローが発生する オーバフローが発生する OVIRフラグを設定する OVIRフラグを設定する POUTビット値を反転させる POUTビット値を反転させる カウントを停止する 動作を停止する 466 第 16 章 PWC タイマ 16.6.4 パルス幅測定モード時の動作 パルス幅を測定するための信号が PWI 端子から入力されます。 パルス幅測定モードには , 1 回のみカウントする単一測定モードと , パルス幅が連続 的に測定される連続測定モードがあります。 ■ 単一測定モードと連続測定モード 単一測定モードと連続測定モードの違いを以下に示します。 ● 単一測定モード 先頭のカウント終了エッジが入力されると , タイマはカウントを停止し , PWCSH0, 1 レ ジスタの測定終了割込み要求フラグビット(EDIR:bit13)が設定され , 以降は測定しま せん。ただし , タイマの再起動も指定されると , タイマ状態は測定開始エッジ待ち状態 に変化します。 ● 連続測定モード [H/L パルス幅測定モード ] カウント終了エッジが入力されると , PWCSH0, 1 レジスタの測定終了割込み要求フラ グビット(EDIR:bit13)が設定され , タイマカウント結果が PWC に転送され , タイマ はフリーラン状態でカウントのインクリメントを継続できます。次のカウント開始 エッジが入力されると , タイマは "0000H" にクリアされ , パルス幅カウントを開始しま す。 カウント終了エッジが入力され , タイマがフリーラン状態になると , タイマオーバフ ローが発生してオーバフロー割込み要求ビット(OVIR:bit11)が設定されることがあ ります。H/L パルス幅測定モード時は , OVIR:bit11 を使用してパルス幅時間を測定して はいけません。 [ 全エッジ間パルス幅測定モード , 分周周期測定モード , 立上りエッジ間周期測定モー ド , 立下りエッジ間周期測定モード ] カウント終了エッジ(カウント開始エッジ)が入力されると , PWCSH0, PWCSH1 レジ スタの測定終了割込み要求フラグビット(EDIR:bit13)が設定され , タイマカウント結 果が PWC へ転送され , タイマは "0000H" にクリアされ , カウントは再び開始します。 ■ 測定結果データ 測定結果 , タイマ値 , PWC 機能に対する処理は , 単一測定モードと連続測定モード時で は以下のように異なります。 ● 単一測定モード タイマ動作時に PWC が読み出されると , 現タイマ値が読み出されます。 測定終了後に PWC が読み出されると , 測定結果が読み出されます。 467 第 16 章 PWC タイマ ● 連続測定モード 測定終了時にタイマ測定結果が PWC へ転送されます。 PWC 読出し時には , 前の測定結果が読み出されます。測定が進行中の場合は , 前の測 定結果が PWC に格納されます。測定時には , タイマ値を読み出すことはできません。 連続測定モード時は , 既存の値は新しい測定結果で上書きされます。ただし , 次の測定 が完了する前に前の測定結果を読み出さない場合は除きます。この場合は , PWCSH0, PWCSH1 レジスタのエラーフラグビット(ERR:bit9)が設定されます。PWC が読み出 されると , エラーフラグビット(ERR:bit9)は自動的にクリアされます。 ■ 最小入力パルス幅 以下の最小入力パルス幅よりも長いパルスをパルス幅カウント入力端子(PWI)へ入 力しなければなりません。 パルス幅 :2 マシンサイクル(内部動作周波数 16MHz の場合は 0.125μs 以上) ただし , 上記の仕様よりも短い入力パルスも有効パルスとして認識できます。 ■ パルス幅 / 周期の算出 測定オブジェクトのパルス幅またはパルス周期は , 以下のように , カウント終了時に PWC から読み出されたカウント結果に基づいて算出されます。 TW=n×t/Div(μs) { TW・・・・・・測定されたパルス幅またはパルス周期(μs) n・・・・・・・PWCに格納されている測定結果 t・・・・・・・カウントクロック周期(μs) Div・・・・・分周比レジスタ(DIV0,1)に設定されている分周比 (値"1"は分周カウントモード以外のモードで使用されます) ■ パルス幅 / 周期測定範囲 測定可能なパルス幅 / 周期の範囲は , 入力分周器のカウントクロックと分周比によって 異なります。 内部動作周波数 16MHz 時の(φ で示されます)測定範囲を表 16.6-5 に示します。 表 16.6-5 パルス幅測定範囲 分周比 分周なし DIV0, DIV1 PWCSL0, PWCSL1 レジス タ CKS1, CKS0=00B PWCSL0, PWCSL1 レジス タ CKS1, CKS0=01B ( φ/4) (φ/16) - 0.125μs ∼ 16.38ms[0.25μs] 0.125μs ∼ 65.5ms[1.0μs] 0.125μs ∼ 131ms[2μs] PWCSL0, PWCSL1 レジスタ CKS1, CKS0=10B(φ/32) 4 分周 00B 0.125μs ∼ 4.10ms[62.5ns] 0.125μs ∼ 16.38ms[0.25μs] 0.125μs ∼ 32.75ms[500ns] 16 分周 01B 0.125μs ∼ 1024μs[15.6ns] 0.125μs ∼ 4.10ms[62.5ns] 0.125μs ∼ 8.19ms[125ns] 64 分周 00B 0.125μs ∼ 256μs[3.91ns] 0.125μs ∼ 1024μs[15.6ns] 0.125μs ∼ 2.048ms[31.25ns] 256 分周 11B 0.125μs ∼ 64μs[0.98ns] 0.125μs ∼ 256μs[3.91ns] 0.125μs ∼ 512μs[7.81ns] [ ] 内の数字はビット当りの分解能を示します。 468 第 16 章 PWC タイマ ■ 割込み要求の生成 パルス幅測定モード時は , 以下の 2 つの割込み要求を生成できます。 ● タイマオーバフロー割込み要求 カウント時にオーバフローが発生すると , オーバフロー割込み要求ビットが設定され ます。オーバフロー割込み要求が許可になると , 割込み要求が生成されます。 ● 測定終了割込み要求 測定終了エッジが検出されると , PWCSH0, PWCSH1 レジスタの測定終了割込み要求フ ラグビット(EDIR:bit13)が設定されます。測定終了割込みが許可になると , 割込み要 求が生成されます。 測定終了割込み要求フラグビット(EDIR:bit13)は , PWC が読み出されると自動的に クリアされます。 ■ 測定モードと測定動作 測定モード時における動作を表 16.6-6 に示します。 表 16.6-6 測定モード時における動作 ( 1 / 2 ) 測定モード MOD2 MOD1 MOD0 H パルス幅 測定 1 0 1 L パルス幅 測定 測定動作 W 測定開始 W 測定終了 開始 測定終了 H周期幅が測定されます。 測定開始:立上りエッジが検出されたとき 測定終了:立上りエッジが検出されたとき 1 1 0 W 測定開始 t W 測定終了 開始 測定終了 L周期幅が測定されます。 測定開始:立下りエッジが検出されたとき 測定終了:立下りエッジが検出されたとき W 測定開始 立上り エッジ間 周期測定 1 0 0 W 測定終了 開始 W 終了 開始 終了 立上りエッジ間時間が測定されます。 測定開始:立上りエッジが検出されたとき 測定終了:立上りエッジが検出されたとき 469 第 16 章 PWC タイマ 表 16.6-6 測定モード時における動作 ( 2 / 2 ) 測定モード 立下り エッジ間 周期測定 MOD2 MOD1 MOD0 測定動作 W 測定開始 1 1 W 測定終了 開始 1 W 終了 開始 終了 立下りエッジ間時間が測定されます。 測定開始:立下りエッジが検出されたとき 測定終了:立下りエッジが検出されたとき W 測定開始 全エッジ間 パルス幅 測定 0 1 W 測定終了 開始 0 W 終了 開始 終了 連続入力エッジ間の幅が測定されます。 測定開始:エッジが検出されたとき 測定終了:エッジが検出されたとき φ W 測定開始 分周周期 測定 0 1 W 測定終了 開始 1 W 終了 (上記の例では4分周されている) 入力パルスは分周比レジスタ(DIV0,1)に設定されてい る分周比で分周され,測定周期が求められます。 測定開始:動作が起動された後,立下りエッジが検出 されたとき 測定終了:分周信号の1周期が終了したとき W: 測定されるパルス幅 すべてのモードにおいて , 測定が開始されてから測定開始エッジが入力されるまでの 間 , タイマはカウントを開始しません。測定開始エッジが入力されると , タイマは "0000H" にクリアされ , カウントは測定終了エッジが入力されるまでカウントクロック ごとにインクリメントされます。 測定終了エッジが入力されると , 以下の動作が実行されます。 • PWCSH0, PWCSH1 レジスタの測定終了割込み要求フラグビット(EDIR:bit13)が設 定されます。 • タイマがカウント動作を停止します(タイマが測定終了エッジ入力時と同時に再起 動された場合または H/L パルス幅測定の連続測定モードが使用された場合は除きま す)。 • 連続測定モード : タイマ値(測定結果)が PWC へ転送されます。 • 単一測定モード : 測定が終了します(タイマが測定終了エッジ入力時と同時に再起 動された場合は除く) 。 470 第 16 章 PWC タイマ 連続測定モードで全エッジ間パルス幅測定 , 周期測定 , 立下りエッジ間周期測定または 立上りエッジ間周期測定が行われる場合 , 終了エッジが次の測定開始エッジになりま す。 ■ パルス幅測定動作のフローチャート 図 16.6-6 パルス幅測定モード動作のフローチャート 設定 カウントクロックを選択する 動作モードとタイマモードを選択する 割込みフラグをクリアする 割込みを許可する STRTビットで起動する 再起動する 連続測定モード カウント開始エッジを検出する 単一動作モード カウント開始エッジを検出する タイマを クリアする タイマを クリアする カウントを 開始する カウントを 開始する 加 算 加 算 オーバフローが 発生する オーバフローが 発生する カウント終了エッジを検出する EDIRフラグを設定する カウント終了エッジを検出する EDIRフラグを設定する カウントを停止する* カウントを停止する* PWCへタイマ値を転送する 動作を停止する *:H/Lパレス幅測定の連続測定モードは除く。 471 第 16 章 PWC タイマ 16.7 PWC タイマ使用上の注意 PWC タイマ使用上の注意を以下に示します。 ■ PWC タイマ使用上の注意 ● プログラムで設定する際の注意 • 以下の PWCSH0, PWCSH1 と PWCSL0, PWCSL1 レジスタのビット値は , タイマ動作 時に変更することは禁止されています。これらのビット値の変更は , タイマが起動 される前かまたは動作が停止された後でのみ行われます。 • [bit7, bit6] CKS1, CKS0: カウントクロック選択ビット • [bit3] S/C: 測定モード(単一または連続)選択ビット • bit2 ∼ bit0] MOD2, MOD1, MOD0: 動作モード & 測定エッジ選択ビット • タイマ動作時にパルス出力ビット(POUT:bit8)に値が書き込まれても , このビット の値は変化しませんので注意してください。 • タイマ動作時における DIVR 値の変更は禁止されています。DIV0, DIV1 レジスタ値 の変更は , タイマが起動される前かまたは動作が停止された後で行ってください。 • PWC 状態制御レジスタ下位(PWCSL0, PWCSL1)のカウントクロック選択ビット (CKS1, CKS0:bit7, bit6)に "11B" を設定することは禁止されています。 • PWC 値とタイマ値は , タイマがワンショットモードで設定されたときまたは動作が リロードタイマモードで終了した後に決定されます。したがって , これらの値の設 定は必ずタイマを使用した後で行ってください。 • PWC 値は , 動作がワンショットモードで停止された後にタイマがリロードタイマ モードで設定されると不定となります。したがって , PWC 値は必ずタイマを使用す る前に設定してください。 • モードをパルス幅測定モードからタイマモードへ変更する場合は , PWC への値は必 ずタイマが起動される前に設定してください。 • パルス幅測定モード時に分周周期測定モードを使用すると , 入力パルスは分周され ます。カウント結果から算出されたパルス幅は平均値になるので注意してくださ い。 • パルス幅測定モード時に連続測定が実行されている間 , 内部カウントクロックの分 周回路はクリアされず , カウントクロックよりも小さいエッジ数がカウント結果に 加算されます。 ● プログラムで状態を検査する際の注意 • タイマモード時は, PWCSH0, PWCSH1レジスタの測定終了割込み要求フラグビット (EDIR:bit13)の値は意味がありません。したがって , PWCSH0, PWCSH1 レジスタ の測定終了割込み許可ビット(EDIE:bit12)には必ず "0" を設定してください。 • PWC 状態制御レジスタ上位(PWCSH0, PWCSH1)の STRT:bit15 と STOP:bit14 の動 作は , 読出し時と書込み時では異なります(「16.4.1 PWC 状態制御レジスタ (PWCSH0, PWCSH1, PWCSL0, PWCSL1)」を参照)。リードモディファイライト命 令では , これらのビットからは必ず "11B" が読み出されます。したがって , ビット操 472 第 16 章 PWC タイマ 作命令を使用して動作状態を読み出すことはできません。 ただし , ビット操作命令(ビットクリア命令)は , STRT:bit15 または STOP:bit14 に 値を書き込むことによってタイマを起動または停止する際には使用できます。 • パルス幅測定モード時は , 測定開始エッジが検出されると , タイマはクリアされま す。また , 前のタイマデータは意味がありません。 ● パルス幅測定入力端子に入力されるパルスに関する注意 • 最小パルス幅は , マシンサイクルを 2 分周した幅です(内部動作周波数が 16MHz の 場合は 0.125μs 以上)。 • 最大入力周波数は , マシンサイクルを 4 分周した幅です(内部動作周波数が 16MHz の場合は 4MHz 未満)。 • 上記よりも小さいパルス幅または上記よりも大きい周波数が入力されると , タイマ 動作は保証されません。上記の制約を超える入力信号のノイズは , 低減させなけれ ばなりません。 ● 動作時のタイマ再起動に関する注意 • リロードタイマモード時にオーバフローが発生すると , タイマが再起動しますが , オーバフロー割込み要求ビット(OVIR:bit11)が設定され , POUT:bit8 が反転します (すなわち , 通常のオーバフローの場合と同じ動作です)。 • ワンショットパルス幅測定モード時に終了エッジが検出されると , タイマが再起動 し , 測定開始エッジ待ち状態になりますが , 測定終了割込み要求ビット(EDIR:bit13) も設定されます。 • 連続パルス幅測定モード時に測定終了エッジが検出されると , タイマが再起動し , 測定開始エッジ待ち状態になり , 測定終了割込み要求フラグビット(EDIR:bit13)が 設定され , 測定結果が PWC へ転送されます。 • 動作時にタイマを再起動する場合は , 割込み生成およびほかの制御用フラグビット (OVIR:bit11, EDIR:bit13)の動作に注意してください。 ● 割込みについての注意 • PWC 状態制御レジスタ(PWCSH0, PWCSH1)の OVIR:bit11 に "1" を設定し , 次に 割込み要求を許可にすると(PWCSH0, PWCSH1 レジスタの OVIE:bit10=1), 制御は 割込み処理から戻ることができません。OVIR:bit11 は , 必ずクリアしてください。 • PWC 状態制御レジスタ(PWCSH0, PWCSH1)の EDIR:bit13 に "1" を設定し , 次に 割込み要求を許可にすると(PWCSH0, PWCSH1 レジスタの EDIE:bit12=1), 制御は 割込み処理から戻ることができません。OVIR:bit11 は , 必ずクリアしてください。 • PWC タイマは割込みベクトルをほかのリソースと共用するので , 割込みを使用する 場合は , 割込み処理ルーチンで割込み要因を注意深くチェックしなければなりませ ん。 • また , PWC タイマで EI2OS を使用する場合は , 共用リソース割込みを禁止しなけれ ばなりません。 473 第 16 章 PWC タイマ 16.8 PWC タイマのプログラム例 PWC タイマのプログラム例を示します。 ■ PWC タイマのプログラム例 ● 処理 • 30.6Hz の出力 PWO0 は PWC タイマ 0 により生成します。 • PWC はオーバフロー割込みの繰返し生成のためにリロードタイマモード時におい て使用します。 • EI2OS は使用しません。 • 16MHz はマシンクロック用 , 0.25μs はカウントクロック用です。 ● コーディング例 ICR01 EQU 0000B1H ;PWC タイマ用割込み制御レジスタ PWCS0 EQU 000008H ;PWC 制御状態レジスタ PWC0 EQU 00000AH ;PWC データバッファレジスタ OVIR EQU PWCS0:11 ; 割込み要求フラグビット ;---------- メインプログラム -----------------------------------------CODE CSEG START: ; : ; スタックポインタ(SP)が既に初期化されているものと仮定 AND CCR,#0BFH ; 割込み禁止 MOV I:ICR01,#00H ; 割込みレベル 0(最強) MOVW I:PSC0,#0FF00H ; リロード値を設定 MOVW I:PWCSL0,#4409H ; リロードタイマモードと 0.25μs クロックを設定 ; 有効 PWC 出力 ; オーバフロー割込みを設定 ; 割込みフラグをクリア , PWC タイマ開始 MOV ILM,#07H ;PS 内の ILM をレベル 7 に設定 OR CCR,#40H ; 割込み許可 LOOP: MOV A,#00H ; 無限ループ MOV A,#01H ; BRA LOOP ; ;---------- 割込みプログラム -----------------------------------------WARI: CLRB I:OVIR ; 割込み要求フラグをクリア ; : ; ユーザ処理 ; : RETI ; 割込みから復帰 CODE 474 ENDS 第 16 章 PWC タイマ ;---------- ベクタ設定 ----------------------------------------------VECT CSEG ABS=0FFH ORG 0FFC8H ; 割込み #13(0DH)用ベクタを設定 VECT DSL ORG DSL DB ENDS END WARI 0FFDCH START 00H ; リセットベクタを設定 ; シングルチップモードを設定 START 475 第 16 章 PWC タイマ 476 第 17 章 UART UART の機能と動作について説明します。 17.1 UART の概要 17.2 UART のブロックダイヤグラム 17.3 UART の構成 17.4 UART の割込み 17.5 UART のボーレート 17.6 UART の動作説明 17.7 UART 使用上の注意 17.8 UART のプログラム例 477 第 17 章 UART 17.1 UART の概要 UART は , 外部装置と同期通信または非同期通信を行うための汎用のシリアルデータ 通信インタフェースです。 • クロック同期 , クロック非同期の双方向通信機能を備えています。 • マスタ / スレーブ型通信機能(マルチプロセッサモード)を備えています(マス タ側のみ使用可能)。 • 送信完了 , 受信完了および受信エラー検出で , 割込み要求を発生できます。 • 拡張インテリジェント I/O サービス EI2OS に対応しています。 ■ UART の機能 UARTは, 外部装置とシリアルデータを送受信するための汎用シリアルデータ通信イン タフェースであり , 表 17.1-1 の機能を備えています。 表 17.1-1 UART の機能 機能 データバッファ 全二重ダブルバッファ • 転送モード • クロック同期(スタート / ストップビットなし , パリティビットな し) クロック非同期(調歩周期) • • • 専用ボーレートジェネレータを内蔵 , 8 種類の値を選択可 外部クロック入力可 内部タイマ(16 ビットリロードタイマ 0)から供給されるクロック を利用可 データ長 • • 7 ビット(非同期ノーマルモードのみ) 8 ビット 信号方式 NRZ(Non Return to Zero)方式 ボーレート 受信エラー検出 割込み要求 • • • フレーミングエラー オーバランエラー パリティエラー(動作モード 1(マルチプロセッサモード)時は検 出不可) • • • 受信割込み(受信完了 , 受信エラー検出) 送信割込み(送信完了) 送受信とも拡張インテリジェント I/O サービス(EI2OS)に対応 マスタ / スレーブ型通信機能 1(マスタ)対 n(スレーブ)間の通信が可能(マスタとしてのみ使用 (非同期マルチプロセッサモード時) できます) < 注意事項 > 478 クロック同期転送時にスタートビット / ストップビットは付加されず , データのみ を転送します。 第 17 章 UART 表 17.1-2 UART の動作モード データ長 動作モード 同期方式 パリティなし 0 非同期モード (ノーマルモード) 1 マルチプロセッサモード 2 クロック同期モード 7 ビットまたは 8 ビット 8 ビット + ストップビット長 パリティあり 非同期 1 ビットまたは 2 ビット *2 1 ビット *1 − 非同期 8 ビット − クロック同 期 なし − : 設定不可 *1:"+1" は通信制御に使用するアドレス / データ選択ビット(SCR0, SCR1 レジスタの A/D:bit11 )です。 *2: 受信時のストップビットは 1 ビットのみを検出します。 479 第 17 章 UART 17.2 UART のブロックダイヤグラム UART は , 以下のブロックで構成されています。 ■ UART のブロックダイヤグラム 図 17.2-1 UART のブロックダイヤグラム 制御バス 専用ボーレート ジェネレータ 16ビット リロードタイマ 受信割込み 要求出力 送信割込み 要求出力 送信クロック クロック セレクタ 受信クロック 端子 受信制御回路 SCK0,SCK1 端子 SIN0,SIN1 送信制御回路 スタートビット 検出回路 送信スタート 回路 受信ビット カウンタ 送信ビット カウンタ 受信パリティ カウンタ 送信パリティ カウンタ 受信用 シフトレジスタ 送信用 シフトレジスタ 受信終了 シリアル入力 データレジスタ0,1 シリアル出力 データレジスタ0,1 受信状態判定回路 端子 SOT0,SOT1 送信開始 EI2OS用受信エラー 発生信号 (CPUへ) 内部データバス 通信プリ スケーラ 制御レジ スタ 480 MD DIV2 DIV1 DIV0 シリアル モード レジスタ 0,1 MD1 MD0 CS2 CS1 CS0 RST SCKE SOE シリアル 制御 レジスタ 0,1 PEN P SBL CL A/D REC RXE TXE シリアル ステータス レジスタ 0,1 PE ORE FRE RDRF TDRE BDS RIE TIE 第 17 章 UART ● ブロックダイヤグラム中の端子などの詳細 UART の実際の端子名および割込み要求番号は以下のとおりです。 • SIN0 端子 :P40/SIN0 • SIN1 端子 :P60/SIN1 • SCK0 端子 :P42/SCK0 • SCK1 端子 :P62/SCK1 • SOT0 端子 :P41/SOT0 • SOT1 端子 :P61/SOT1 • 送信割込み番号 0:#40(28H) • 受信割込み番号 0:#39(27H) • 送信割込み番号 1:#38(26H) • 受信割込み番号 1:#37(25H) ● クロックセレクタ 専用ボーレートジェネレータ , 外部入力クロック , 内部タイマ(16 ビットリロードタイ マ)から供給されるクロックからの送受信クロックを選択してください。 ● 受信制御回路 受信制御回路は , 受信ビットカウンタ , スタートビット検出回路 , 受信パリティカウン タで構成されます。受信ビットカウンタは受信データをカウントして , 指定されたデー タ長の 1 フレームのデータ受信を完了すると , 受信割込み要求を出力します。 スタートビット検出回路は , シリアル入力信号からスタートビットを検出し , 受信デー タをシリアル入力データレジスタへ指定された転送速度に応じて 1 ビットずつシフト しながらシリアル入力データレジスタ(SIDR0, SIDR1)へ書き込みます。受信パリティ カウンタは , 受信データのパリティビットを検出します。 ● 送信制御回路 送信制御回路は , 送信ビットカウンタ , 送信スタート回路 , 送信パリティカウンタで構 成されます。送信ビットカウンタは送信データをカウントして , 指定されたデータ長の 1 フレームのデータ送信を完了すると , 送信割込み要求を出力します。送信スタート回 路は , シリアル出力データレジスタ(SODR0, SODR1)への書込みにより送信を開始し ます。送信パリティカウンタは , " パリティあり " の場合にパリティビットを生成しま す。 ● 受信用シフトレジスタ SIN 端子から入力された受信データを , 1 ビットずつシフトしながら取込み , 受信が終 了すると , シリアル入力データレジスタ(SIDR0, SIDR1)へ受信データを転送します。 ● 送信用シフトレジスタ シリアル出力データレジスタ(SODR0, SODR1)に書き込まれたデータを送信用シフ トレジスタ自身へ転送し , 1 ビットずつシフトしながら SOT 端子へ出力します。 481 第 17 章 UART ● シリアルモードレジスタ 0, 1(SMR0, SMR1) このレジスタは , 以下の動作を行います。 • 動作モードの選択 • クロック入力ソース(ボーレート)の選択 • 専用ボーレートジェネレータのセットアップ • 専用ボーレートジェネレータを使用したときのクロック速度(クロック分周値)の 選択 • シリアルデータおよびクロック端子出力の許可または禁止を設定 • UART の初期化 ● シリアル制御レジスタ 0, 1(SCR0, SCR1) このレジスタは , 以下の動作を行います。 • パリティの有無の設定 • パリティの種類の選択 • ストップビット長の設定 • データ長の設定 • 動作モード 1(非同期マルチプロセッサ)時におけるフレームデータ形式の選択 • エラーフラグのクリア • 送信の許可または禁止の設定 • 受信の許可または禁止の設定 ● シリアルステータスレジスタ 0, 1(SSR0, SSR1) 送受信やエラーの状態を確認し , 送受信割込み要求の許可または禁止を設定します。 ● シリアル入力データレジスタ 0, 1(SIDR0,SIDR 1) 受信データを保持します。シリアル入力データは変換されてこのレジスタに格納され ます。 ● シリアル出力データレジスタ 0, 1(SODR0, SODR1) 送信データを設定します。このレジスタに書き込まれたデータは , シリアル変換されて 出力されます。 ● 通信プリスケーラ制御レジスタ(CDCR) ボーレートジェネレータのボーレートを設定するレジスタです。通信プリスケーラの 起動 / 停止 , マシンクロックの分周比を設定します。 482 第 17 章 UART 17.3 UART の構成 UART の端子 , 割込み要因 , レジスタの一覧および詳細を記載します。 ■ UART の端子 UART で使用する端子は , 汎用入出力ポートと共用します。 端子の機能と UART で使用する場合の設定を表 17.3-1 に示します。 表 17.3-1 UART の端子 端子名 SOT SCK SIN 端子機能 汎用入出力ポート / シリアルデータ出力 汎用入出力ポート / シリアルクロック入出力 汎用入出力ポート / シリアルデータ入力 UART の使用に必要な設定 出力許可に設定 (SMR0, SMR1 レジスタの SOE:bit0=1) クロック入力時はポート方向レジスタ (DDR)で入力ポートに設定 クロック出力時は出力許可に設定 (SMR0, SMR1 レジスタの SCKE:bit1=1) ポート方向レジスタ(DDR)で入力ポー トに設定 ■ UART の端子のブロックダイヤグラム < 参照 > 端子のブロックダイヤグラムは , 「第 9 章 I/O ポート」をご参照ください。 483 第 17 章 UART ■ UART のレジスタ一覧 図 17.3-1 UART のレジスタと初期値の一覧 15 14 13 12 11 10 9 8 0 0 0 0 0 1 0 0 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 シリアルステータスレジスタ0,1(SSR0,SSR1) 0 0 0 0 1 0 0 0 bit シリアル入力データレジスタ0,1(SIDR0,SIDR1) /シリアル出力データレジスタ0,1(SODR0,SODR1) 7 6 5 4 3 2 1 0 X X X X X X X X bit シリアル制御レジスタ0,1(SCR0,SCR1) bit シリアルモードレジスタ0,1(SMR0,SMR1) bit (注意事項) 読出しの場合はSIDR0,SIDR1として機能し,書込みの場合はSODR0,SODR1として機能します。 bit 通信プリスケーラコントロールレジスタ0,1 (CDCR0,CDCR1) 15 14 13 12 11 10 9 8 0 X X X 0 0 0 0 X:不定 ■ UART での割込み要求の発生 ● 受信割込み • 受信データがシリアル入力データレジスタ(SIDR0, SIDR1)へロードされると , シ リ ア ル ス テ ー タ ス レ ジ ス タ(SSR0,SSR1)の 受 信 デ ー タ ロ ー ド フ ラ グ ビ ッ ト (RDRF:bit12) に "1" が設定されます。 受信割込みが許可されている場合は (RIE:bit9=1) , 割込みコントローラへ受信割込み要求を発生します。 • フレーミングエラー , オーバランエラーまたはパリティエラーのいずれかが発生する と , 発生したエラーに応じてシリアルステータスレジスタ(SSR0, SSR1)のフレーミ ングエラーフラグビット(FRE:bit13), オーバランエラーフラグビット(ORE:bit14), パリティエラーフラグビット(PE:bit15)に "1" が設定されます。受信割込みが許可 されている場合は(RIE:bit9=1), 割込みコントローラへ受信割込み要求を発生しま す。 ● 送信割込み 送信データがシリアル出力データレジスタ(SODR0, SODR1)から送信用シフトレジ スタに転送されると , シリアルステータスレジスタ(SSR0, SSR1)の送信データエン プティフラグビットビット(TDRE:bit11)に "1" が設定されます。送信割込みが許可さ れている場合は(TIE:bit8=1), 割込みコントローラへ割込み要求を発生します。 484 第 17 章 UART シリアル制御レジスタ 0, 1(SCR0, SCR1) 17.3.1 シリアル制御レジスタ 0, 1(SCR0, SCR1)は , パリティビットの設定 , ストップ ビット長やデータ長の選択 , 動作モード 1(非同期マルチプロセッサモード)時のフ レームデータ形式の選択 , 受信エラーフラグのクリア , 送受信の許可または禁止を設 定します。 ■ シリアル制御レジスタ 0, 1(SCR0, SCR1) 図 17.3-2 シリアル制御レジスタ 0, 1(SCR0, SCR1) bit 15 11 10 R/W R/W R/W R/W R/W W 14 13 12 9 8 初期値 00000100B R/W R/W bit8 TXE 0 1 bit9 RXE 0 1 送信許可ビット 送信禁止 送信許可 受信許可ビット 受信禁止 受信許可 bit10 受信エラーフラグクリアビット REC PE,ORE,FREビットをクリア 0 1 影響なし bit11 アドレス/データ選択ビット A/D データフレーム 0 1 アドレスフレーム bit12 CL 7ビット 0 1 8ビット bit13 SBL 1ビット長 0 1 2ビット長 データ長選択ビット ストップビット長選択ビット bit14 P 0 1 R/W W :リード/ライト :ライトオンリ :初期値 パリティ選択ビット "パリティあり"のとき(PEN=1)のみ有効 偶数パリティ 奇数パリティ bit15 PEN パリティなし 0 1 パリティあり パリティ付加許可ビット 485 第 17 章 UART 表 17.3-2 シリアル制御レジスタ 0, 1(SCR0, SCR1)の機能 ビット名 機能 bit15 PEN: パリティ付加 許可ビット パリティビットの付加(送信時)と検出(受信時)を行うかどうかを設定しま す。 ( 注意事項 ) 動作モード 1, 2(マルチプロセッサモード , 同期モード)の場合はパリティ ビットは付加できません。必ず "0" を設定してください。 bit14 P: パリティ選択 ビット " パリティビットあり "( PEN=1)を設定した場合 , 奇数パリティか偶数パリ ティのいずれかを設定してください。 bit13 SBL: ストップビッ ト長選択ビッ ト 動作モード 0, 1(マルチプロセッサモード , 同期モード)の場合のストップビッ ト(送信データのフレームエンドマーク)のビット長を設定します。 ( 注意事項 ) 受信時は , 常にストップビットの 1 ビット目だけを検出します。 bit12 CL: データ長選択 ビット 送受信データのデータ長を設定します。 ( 注意事項 ) "7 ビット " を選択できるのは , 動作モード 0(非同期ノーマルモード)の場 合のみです。動作モード 1, 2(非同期マルチプロセッサモード , クロック同 期モード)の場合は , 必ず "8 ビット " を設定してください。 bit11 A/D: アドレス / データ選択 ビット 動作モード 1(非同期マルチプロセッサモード)の場合に , 送受信するフレーム のデータ形式を設定します。 このビットに "0" を設定した場合 :" データフレーム " が設定されます。 このビットに "1" を設定した場合 :" アドレスフレーム " が設定されます。 bit10 REC: 受信エラーフ ラグクリア ビット シリアルステータスレジスタ(SSR0, SSR1)の受信エラーフラグ(bit15 ∼ bit13: PE, ORE, FRE)を "0" にクリアします。 このビットに "0" を設定した場合 :PE, ORE, FRE ビットがクリアされます。 このビットに "1" を設定した場合 : 影響しません。 リードした場合 : 常に "1" が読み出されます。 ( 注意事項 ) 受信割込みを " 許可 " に設定していれば(RIE:bit9=1), PE, ORE, FRE ビット のいずれかに "1" が設定されている場合のみ , REC:bit10 に "0" を設定してく ださい。 bit9 RXE: 受信許可ビッ ト UART の受信を許可または禁止します。 このビットに "0" を設定した場合 : 受信は禁止されます。 このビットに "1" を設定した場合 : 受信は許可されます。 ( 注意事項 ) 受信中に受信を " 禁止 " に設定した場合は , 受信中のデータをシリアル入力 データレジスタに格納した後に受信が停止します。 bit8 TXE: 送信許可ビッ ト UART の送信を許可または禁止します。 このビットに "0" を設定した場合 : 送信は禁止されます。 このビットに "1" を設定した場合 : 送信は許可されます。 ( 注意事項 ) 送信中に送信を禁止に設定した場合は , シリアル出力データレジスタ (SODR0, SODR1)のデータの送信が完了した後に送信が停止します。 "0" を設定する場合は , シリアル出力データレジスタ(SODR0, SODR1)に データを書き込んだ後に非同期モードの場合であればボーレートの 1/16 時 間 , 同期モードの場合であればボーレートと同じ時間以上待ってから設定し てください。 486 第 17 章 UART シリアルモードレジスタ 0, 1(SMR0, SMR1) 17.3.2 シリアルモードレジスタ 0, 1(SMR0, SMR1)は , 動作モードおよびボーレートク ロックの選択 , シリアルデータとクロックの端子への出力の許可または禁止を設定 します。 ■ シリアルモードレジスタ 0, 1(SMR0, SMR1) 図 17.3-3 シリアルモードレジスタ 0, 1(SMR0, SMR1) bit 7 6 5 4 3 2 1 0 初期値 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit0 シリアルデータ出力許可ビット(SOT0,1端子) SOE 汎用入出力ポートとする 0 UARTのシリアルデータの出力とする 1 bit1 シリアルクロック入出力許可ビット(SCK0,1端子) SCKE 汎用入出力ポートまたはUARTのクロック入力端子とする 0 1 UARTのシリアルクロック出力端子とする bit2 RST UART初期化ビット 0 影響なし 1 UARTのすべてのレジスタを初期化 bit5 CS2 bit4 CS1 bit3 CS0 "000B"~"101B" 内部タイマ(16ビットリロードタイマ0) "110B" によるボーレート "111B" R/W :リード/ライト :初期値 クロック入力ソース選択ビット 専用ボーレートジェネレータによるボーレート 外部クロックによるボーレート bit7 bit6 MD1 MD0 0 0 0 非同期モード(ノーマルモード) 0 1 1 マルチプロセッサモード 1 0 2 同期モード 1 1 ー 設定禁止 動作モード選択ビット モードNo. 動作モード 487 第 17 章 UART 表 17.3-3 シリアルモードレジスタ 0, 1(SMR0, SMR1)の機能 ビット名 機能 bit7, bit6 MD0, MD1: 動作モード選 択ビット UART の動作モードを設定します。 ( 注意事項 ) 1)動作モード 1(非同期マルチプロセッサモード)では , マスタスレーブ型 通信の , マスタとしてのみ使用できます。動作モード 1 は 9 ビット目のア ドレス / データビットを受信できないので , スレーブとしては使用できま せん。 2)動作モード 1(非同期マルチプロセッサモード)では , パリティチェック 機能は使用できないので , パリティ付加許可ビットには " パリティなし " (SCR0, SCR1 レジスタの PEN:bit15=0)を設定してください。 bit5 ∼ bit3 CS0 ∼ CS2: クロック入力 ソース選択 ビット ボーレートのクロック入力ソースを設定します。 • クロック入力ソースは , 外部クロック(SCK0, SCK1 端子), 内部タイマ(16 ビットリロードタイマ), 専用ボーレートジェネレータから選択します。 • ボーレートジェネレータを選択する場合は , ボーレートを設定してくださ い。 bit2 RST: UART 初期化 ビット UART のすべてのレジスタを初期化します。 このビットに "0" を設定した場合 : 動作に影響ありません。 このビットに "1" を設定した場合 :UART のすべてのレジスタを初期化します。 bit1 SCKE: シリアルク ロック入出力 許可ビット シリアルクロックの入出力を切り換えます。 このビットに "0" を設定した場合 : " 汎用入出力ポート " または " シリアルクロック入力端子 " が設定されま す。 このビットに "1" を設定した場合 : " シリアルクロック出力端子 " が設定されます。 ( 注意事項 ) 1)SCK0, SCK1 端子をシリアルクロック入力として使用する場合は , ポート 方向レジスタ(DDR)で端子を " 入力ポート " に設定してください。ま た , クロック入力ソース選択ビットによって外部クロックを選択(CS2 ∼ CS0:bit5 ∼ bit3=111B)してください。 2)シリアルクロック出力として使用する場合は , クロック入力ソース選択 ビットを外部クロック以外(CS2 ∼ CS0:bit5 ∼ bit3=111B 以外)に設定 してください。 bit0 488 SOE: シリアルデー タ出力許可 ビット シリアルデータの出力を許可または禁止します。 このビットに "0" を設定した場合 :" 汎用入出力ポート " が設定されます。 このビットに "1" を設定した場合 :" シリアルデータ出力端子 " が設定されま す。 第 17 章 UART シリアルステータスレジスタ 0, 1(SSR0, SSR1) 17.3.3 シリアルステータスレジスタ 0, 1(SSR0, SSR1)は , 送受信やエラー状態の確認 , 割込みの許可または禁止を設定します。 ■ シリアルステータスレジスタ 0, 1(SSR0, SSR1) 図 17.3-4 シリアルステータスレジスタ 0, 1(SSR0, SSR1) bit 15 14 13 12 11 10 R R R R R R/W R/W R/W 9 8 初期値 00001000B bit8 TIE 0 1 bit9 RIE 0 1 送信割込み発生許可ビット 送信割込み発生を禁止 送信割込み発生を許可 受信割込み発生許可ビット 受信割込み発生を禁止 受信割込み発生を許可 bit10 転送方向選択ビット BDS 0 LSBファースト(最下位ビットから転送) 1 MSBファースト(最上位ビットから転送) bit11 送信データ書込みフラグビット TDRE 0 送信データあり(送信データの書込み禁止) 1 送信データなし(送信データの書込み許可) bit12 受信データロードフラグビット RDRF 受信データなし 0 受信データあり 1 bit13 フレーミングエラーフラグビット FRE フレーミングエラーなし 0 フレーミングエラーあり 1 bit14 オーバランエラーフラグビット ORE オーバランエラーなし 0 1 オーバランエラーあり R/W R :リード/ライト :リードオンリ bit15 パリティエラーフラグビット PE パリティエラーなし 0 1 パリティエラーあり :初期値 489 第 17 章 UART 表 17.3-4 シリアルステータスレジスタ 0, 1(SSR0, SSR1)の機能 ( 1 / 2 ) ビット名 機能 bit15 PE: パリティエ ラーフラグ ビット 受信データのパリティエラーを検出します。 • パリティエラーが発生すると "1" が設定されます。 • 受信エラーフラグクリアビット(SCR0, SCR1 レジスタの REC:bit10)に "0" を書き込むとクリアされます。 • 受信割込みが許可されている場合は(RIE:bit9=1), パリティエラーが発生す ると受信割込み要求を発生します。 • パリティエラーフラグビットが設定された場合は(PE:bit15=1), シリアル入 力データレジスタ 0, 1(SIDR0, SIDR1)のデータは無効です。 bit14 ORE: オーバランエ ラーフラグ ビット 受信時のオーバランエラーを検出します。 • オーバランエラーが発生すると "1" が設定されます。 • 受信エラーフラグクリアビット(SCR0, SCR1 レジスタの REC:bit10)に "0" を書き込むとクリアされます。 • 受信割込みが許可されている場合は(RIE:bit9=1), オーバランエラーが発生 すると受信割込み要求を発生します。 • オーバランエラーフラグビットがセットされた場合は(ORE:bit14=1), シリ アル入力データレジスタ 0, 1(SIDR0, SIDR1)のデータは無効です。 bit13 FRE: フレーミング エラーフラグ ビット 受信データのフレーミングエラーを検出します。 • フレーミングエラーが発生すると "1" が設定されます。 • 受信エラーフラグクリアビット(SCR0, SCR1 レジスタの REC:bit10)に "0" を書き込むとクリアされます。 • 受信割込みの発生が許可されている場合は(bit9: RIE=1), フレーミングエ ラーが発生すると受信割込み要求を発生します。 • フレーミングエラーフラグビットがセット(FRE:bit13=1)された場合 は , シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)のデータは無効です。 bit12 RDRF: 受信データ ロードフラグ ビット シリアル入力データレジスタ 0, 1 の状態を示します。 • シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)へ受信データがロードさ れると , "1" が設定されます。 • シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)のデータを読み出すと "0" にクリアされます。 • 受信割込みを許可した場合は(RIE:bit9=1), 受信データがシリアル入力デー タレジスタ 1(SIDR1)へロードされると , 受信割込み要求が発生します。 bit11 TDRE: 送信データ書 込みフラグ ビット シリアル出力データレジスタ 0, 1 の状態を示します。 • シリアル出力データレジスタ 0, 1(SODR0, SODR1)へ送信データを書き込 むと , "0" にクリアされます。 • 送信用シフトレジスタにデータがロードされ送信が開始されると "1" が設定 されます。 • 送信割込みを許可した場合は(TIE:bit8=1), シリアル出力データレジスタ 0, 1(SODR0, SODR1)に書き込まれたデータが送信用シフトレジスタへロー ドされる(TDRE:bit11=1)と送信割込み要求を発生します。 bit10 BDS: 転送方向選択 ビット シリアルデータの転送方向を設定します。 このビットに "0" を設定した場合 : 最下位ビット側から転送します(LSB ファースト)。 このビットに "1" を設定した場合 : 最上位ビット側から転送します(MSB ファースト)。 ( 注意事項 ) シリアルデータレジスタへの読出しおよび書込み時にデータの上位側と下位 側を入換えるため , シリアルアウトプットデータレジスタ(SODR0, SODR1) にデータを書き込んだ後に , 転送方向選択ビット(BDS)を書き換えた場合 は , 書き込まれたデータは無効になります。 490 第 17 章 UART 表 17.3-4 シリアルステータスレジスタ 0, 1(SSR0, SSR1)の機能 ( 2 / 2 ) ビット名 機能 bit9 RIE: 受信割込み発 生許可ビット 受信割込みを許可または禁止します。 このビットに "1" を設定した場合 : シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)に受信データがロー ドされるか(RDRF:bit12=1), 受信エラーが発生すると(PE:bit15=1 また ORE:bit14=1 また FRE:bit13=1), 受信割込み要求が発生します。 bit8 TIE: 送信割込み発 生許可ビット 送信割込みを許可または禁止します。 このビットに "1" を設定した場合 : シリアル出力データレジスタ 0, 1(SODR0, SODR1)に書き込まれた データが送信用シフトレジスタへロードされると(TDRE:bit11=1), 送 信割込み要求を発生します。 491 第 17 章 UART 17.3.4 シリアル入力データレジスタ 0, 1(SIDR0, SIDR1), シリアル出力データレジスタ 0, 1(SODR0, SODR1) シリアル入力データレジスタとシリアル出力データレジスタは同一アドレスに配置 されています。読み出した場合は , シリアルデータ入力用レジスタとして機能し , 書 き込んだ場合は , シリアルデータ出力用レジスタとして機能します。 ■ シリアル入力データレジスタ 0, 1(SIDR0, SIDR1) 図 17.3-5 シリアル入力データレジスタ 0, 1(SIDR0, SIDR1) bit 7 6 5 4 3 2 1 bit 0 D7 D6 D5 D4 D3 D2 D1 D0 R R R R R R R R 初期値 XXXXXXXXB R :リードオンリ X :不定 シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)は , シリアルデータ受信用のデータ バッファレジスタです。 • シリアルデータ入力端子(SIN0, SIN1)に送られてきたシリアルデータ信号はシフ トレジスタで変換されて , シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)へ格 納されます。 • データ長が 7 ビットの場合は , 上位 1 ビット(SIDR0, SIDR1:D7)は無効データとな ります。 • 受信データが , シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)へ格納されると , 受信データロードフラグビット(SSR0, SSR1 レジスタの RDRF:bit12)に "1" が設定 されます。受信割込みが許可されている場合は(SSR0, SSR1 レジスタの RIE:bit9=1) 割込みコントローラへ受信割込み要求を発生します。 • シリアル入力データレジスタ 0, 1(SIDR0,SIDR1)は , 受信データロードフラグビッ ト(SSR0, SSR1 レジスタの RDRF:bit12)が "1" の状態で読み出してください。受信 データロードフラグビット(SSR0, SSR1 レジスタの RDRF:bit12)は , シリアル入力 データレジスタ 0, 1(SIDR0, SIDR1)を読み出すと , 自動的に "0" にクリアされます。 • 受信エラーが発生(SSR0, SSR1 レジスタの PE, ORE, FRE:bit15 ∼ bit13 のいずれか が "1")した場合 , シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)の受信データ は無効となります。 492 第 17 章 UART ■ シリアル出力データレジスタ 0, 1(SODR0, SODR1) 図 17.3-6 シリアル出力データレジスタ 0, 1(SODR0, SODR1) bit 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 W W W W W W W W 初期値 XXXXXXXXB W :ライトオンリ X :不定 シリアル出力データレジスタ 0, 1(SODR0, SODR1)は , シリアルデータ送信用のデー タバッファレジスタです。 • 送信動作が許可されている場合に(SCR0, SCR1 レジスタの TXE:bit8=1), 送信する データをシリアル出力データレジスタ 0, 1(SODR0, SODR1)へ書き込むと , 送信 データが送信用シフトレジスタに転送され , シリアルデータに変換されて , シリア ルデータ出力端子(SOT0, SOT1 端子)から送出されます。 • データ長が 7 ビットの場合 , 上位 1 ビット(SODR0, SODR1 レジスタの D7:bit7)は 無効データとなります。 • 送信データ書込みフラグ(SSR0, SSR1 レジスタの TDRE:bit11)は , 送信データがシ リアル出力データレジスタ 0, 1(SODR0, SODR1)へ書き込まれると , "0" にクリア されます。 • 送信用シフトレジスタへの転送が終了すると , "1" が設定されます。 • 送信データ書込みフラグ(SSR0, SSR1 レジスタの TDRE:bit11)が "1" の場合は , 次 の送信用データを書き込むことができます。送信割込みが許可(SSR0, SSR1 レジス タの TIE:bit8=1)されている場合は , 割込みコントローラへ送信割込み要求を発生し ます。次の送信データの書込みは , 送信データ書込みフラグ(SCR0, SCR1 レジスタ の TDRE:bit11)が "1" の状態で行ってください。 < 注意事項 > シリアル出力データレジスタは書込み専用のレジスタであり , シリアル入力データ レジスタは読出し専用のレジスタです。2 つのレジスタは同一アドレスに配置され ているため書込み値と読出し値が異なります。したがって , INC/DEC 命令などの リードモディファイライト(RMW)命令は使用できません。 493 第 17 章 UART 通信プリスケーラ制御レジスタ(CDCR0, CDCR1) 17.3.5 通信プリスケーラ制御レジスタ 0, 1(CDCR0, CDCR1)は , UART の専用ボーレー トジェネレータのボーレートを設定します。 • 通信プリスケーラの起動または停止 • マシンクロックの分周比の設定 ■ 通信プリスケーラ制御レジスタ 0, 1(CDCR0, CDCR1) 図 17.3-7 通信プリスケーラ制御レジスタ 0, 1(CDCR0, CDCR1) bit 15 14 13 12 11 10 9 8 初期値 0XXX0000B R/W - - - R/W R/W R/W R/W bit10 bit9 bit8 DIV2 DIV1 DIV0 通信プリスケーラ分周比(div)ビット 0 0 0 1分周 0 0 1 2分周 0 1 0 3分周 0 1 1 4分周 1 0 0 5分周 1 0 1 6分周 1 1 0 7分周 1 1 1 8分周 bit11 予約 0 予約ビット 必ず"0"を設定してください bit15 MD R/W :リード/ライト X :不定 - :未定義 :初期値 通信プリスケーラ制御ビット 0 通信プリスケーラ動作停止 1 通信プリスケーラ動作許可 表 17.3-5 通信プリスケーラ制御レジスタ 0, 1(CDCR0, CDCR1)の機能 ビット名 機 能 bit15 MD: 通信プリス ケーラ制御 ビット bit14 ∼ bit12 未定義ビット bit11 予約 : 予約ビット • bit10 ∼ bit8 DIV2 ∼ DIV0: 通信プリス ケーラ分周比 ビット • マシンクロックの分周比を設定します。 ( 注意事項 ) 分周比を変更する場合は , クロック周波数を安定させるために , 次の通信を 開始するまで最低でも分周クロックの 2 周期分の時間をあけてください。 494 通信プリスケーラの動作を許可または停止します。 このビットに "0" を設定した場合 : 停止します。 このビットに "1" を設定した場合 : 許可します。 リードした場合 : 値は不定です。 ライトした場合 : 影響しません。 必ず "0" を設定してください。 第 17 章 UART 17.4 UART の割込み UART の割込みには , 受信割込みと送信割込みがあり , 以下に示す要因で割込み要求 を発生できます。 • 受信データがシリアル入力データレジスタ 0, 1(SIDR0, SIDR1)にロードされた 場合 • 受信エラー(パリティエラー , オーバランエラー , フレーミングエラー)が発生し た場合 • 送信データがシリアル出力データレジスタ 0, 1(SODR0, SODR1)から送信用シ フトレジスタへ転送された場合 なお , それぞれの拡張インテリジェント I/O サービス(EI2OS)に対応しています。 ■ UART の割込み UART の割込み制御ビットと割込み要因を表 17.4-1 に示します。 表 17.4-1 UART の割込み制御ビットと割込み要因 送受信 受信 送信 割込み要求 フラグビット 動作モード 割込み要因 0 1 2 SSR0, SSR1:RDRF ○ ○ ○ 受信データをシリアル入 力データレジスタ 0, 1 (SIDR0, SIDR1)へロー ド SSR0, SSR1:ORE ○ ○ ○ オーバランエラー発生 SSR0, SSR1:FRE ○ ○ × フレーミングエラー発生 SSR0, SSR1:PE ○ × × パリティエラー発生 ○ シリアル出力データレジ スタ 0, 1(SODR0,SODR 1)から送信データ転送 終了 SSR0, SSR1:TDRE ○ ○ 割込み要因 許可ビット 割込み要求フラグの クリア 受信データの読出し SSR0, SSR1: RIE SSR0,SSR1: TIE 受信エラーフラグク リアビット(SCR0, SCR1 レジスタの REC: bit10)への "0" 書込み 送信データの書込み ○:有 ×:無 495 第 17 章 UART ● 受信割込み 受信割込みが許可されている場合に(SSR0, SSR1 レジスタの RIE:bit9=1), データ受信 完了(SSR0, SSR1 レジスタの RDRF:bit12=1), オーバランエラー(SSR0, SSR1 レジス タの ORE:bit14=1), フレーミングエラー(SSR0, SSR1 レジスタの FRE:bit13=1), パリ ティエラー(SSR0, SSR1 レジスタの PE:bit15=1)のいずれかが発生すると割込みコン トローラへ受信割込み要求を発生します。 受信データロードフラグ(SSR0, SSR1 レジスタの RDRF:bit12)は , シリアル入力デー タレジスタ 0, 1(SIDR0, SIDR1)を読み出すと , 自動的に "0" にクリアされます。各受 信エラーフラグ(SSR0, SSR1 レジスタの PE, ORE, FRE:bit15 ∼ bit13)は受信エラーフ ラグクリアビット(SCR0, SCR1 レジスタの REC:bit10)に "0" を書き込めば , すべて "0" にクリアされます。 < 注意事項 > 受信エラー(パリティエラー , オーバランエラー , フレーミングエラー)が発生し た場合は , 必要に応じてエラーを処理した後 , 受信エラーフラグクリアビット (SCR0, SCR1 レジスタの REC:bit10)に "0" を書き込み , 各受信エラーフラグをク リアしてください。 ● 送信割込み 送信データがシリアル出力データレジスタ 0, 1(SODR0, SODR1)から送信用シフトレ ジスタへ送信されると , 送信データ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)に "1" が設定されます。 送信割込みが許可されている場合は(SSR0, SSR1 レジスタの TIE:bit8=1), 割込みコン トローラへ送信割込み要求を発生します。 ■ UART の割込みと EI2OS < 参照 > 割込み番号 , 割込み制御レジスタ , 割込みベクタアドレスについては , 「第 7 章 割 込み」をご参照ください。 ■ UART の EI2OS 機能 UART は EI2OS 機能に対応しています。受信および送信の各割込みで別々に EI2OS を 起動できます。 ● 受信時 ほかのリソースの状態に関係なく , EI2OS を使用できます。 ● 送信時 割込み制御レジスタ(ICR13, 14)を , UART の送信割込みと共有しているので , UART の受信で割込みを使用しない場合に , EI2OS を起動できます。 496 第 17 章 UART 17.4.1 受信割込み発生とフラグ設定のタイミング 受信時の割込みとしては , 受信完了(SSR0,SSR 1 レジスタの RDRF:bit12)および 受信エラーの発生(SSR0, SSR1 レジスタの PE, ORE, FRE:bit15 ∼ bit13)があり ます。 ■ 受信割込み発生とフラグ設定のタイミング ● 受信データロードフラグと各受信エラーフラグの設定 データを受信する場合は , ストップビットの検出(動作モード 0, 1: 非同期ノーマルモー ド , 非同期マルチプロセッサモード)またはデータの最終ビット(SIDR0, SIDR1 レジ スタの D7:bit7)の検出(動作モード 2: クロック同期モード)によって , 受信データが シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)へ格納されます。受信エラーが発 生した場合はエラーフラグ(SSR0, SSR1 レジスタの PE, ORE, FRE:bit15 ∼ bit13)が設 定され , 受信データロードフラグ(SSR0, SSR1 レジスタの RDRF:bit12)が設定されま す。各動作モードともいずれかのエラーフラグが設定された場合は , 受信したシリアル 入力データレジスタ 0, 1(SIDR0, SIDR1)の受信データは無効です。 動作モード 0(非同期ノーマルモード)時 ストップビットの検出時に , 受信データロードフラグビット(SSR0, SSR1 レジスタの RDRF:bit12)が設定されます。受信エラーが発生すると , エラーフラグ(SSR0, SSR1 レジスタの PE, ORE, FRE:bit15 ∼ bit13)が設定されます。 動作モード 1(非同期マルチプロセッサモード)時 ストップビットを検出すると , 受信データロードフラグビット(SSR0, SSR1 レジスタ の RDRF:bit12 )がセットされます。受信エラーが発生すると , エラーフラグ(SSR0, SSR1 レジスタの ORE, FRE:bit14, bit13)が設定されます。パリティエラー(SSR0, SSR1 レジスタの PE:bit15)は検出できません。 動作モード 2(クロック同期モード)時 受信データの最終ビット(SIDR0, SIDR1 レジスタの D7:bit7)を検出すると , 受信デー タロードフラグビット(SSR0, SSR1 レジスタの RDRF:bit12)に "1" が設定されます。 受信エラーが発生すると , エラーフラグ(SSR0, SSR1 レジスタの ORE:bit14)が設定さ れます。パリティエラー(SSR0, SSR1 レジスタの PE:bit15)およびフレーミングエラー (SSR0, SSR1 レジスタの FRE:bit13)は検出できません。 受信動作とフラグセットのタイミングを , 図 17.4-1 に示します。 497 第 17 章 UART 図 17.4-1 受信動作とフラグ設定のタイミング 受信データ (動作モード0) ST D0 D1 D5 D6 D7 SP 受信データ (動作モード1) ST D0 D1 D6 D7 A/D SP D0 D1 D4 D5 D6 D7 受信データ (動作モード2) SSR0,SSR1:PE,ORE,FRE* SSR0,SSR1:RDRF 受信割込み発生 * :PEフラグは動作モード1では検出できません PE,FREフラグは動作モード2では検出できません ST :スタートビット SP :ストップビット A/D :動作モード2のアドレス/データ選択ビット ● 受信割込み要求発生のタイミング 受信割込みが許可されている場合に(SSR0, SSR1 レジスタの RIE:bit9=1), 受信データ ロードフラグ(SSR0, SSR1 レジスタの RDRF:bit12), パリティエラーフラグ(SSR0, SSR1レジスタのPE:bit15), オーバランエラーフラグ(SSR0, SSR1レジスタのORE:bit14), フレーミングエラーフラグ(SSR0, SSR1 レジスタの FRE:bit13)のいずれかが設定され ると , 割込みコントローラへ受信割込み要求を発生します。 498 第 17 章 UART 送信割込み発生とフラグ設定のタイミング 17.4.2 送信割込みは , シリアル出力データレジスタ 0, 1(SODR0, SODR1)が空になり , 次の送信データの書込みが可能な状態になると発生します。 ■ 送信割込み発生とフラグ設定のタイミング ● 送信データエンプティフラグビットの設定とクリア 送信データ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)は , シリアル出 力データレジスタ 0, 1(SODR0, SODR1)に書き込まれた送信データが , 送信用シフト レジスタへロードされ , 次のデータが書込み可能な状態になると設定されます。シリア ル出力データレジスタ 0, 1(SODR0, SODR1)に次の送信データを書き込むと送信デー タ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)は "0" にクリアされます。 送信動作とフラグセットのタイミングを図 17.4-2 に示します。 図 17.4-2 送信動作とフラグ設定のタイミング [動作モード0,1] 送信割込要求 送信割込発生 SODR0,SODR1書込み SSR0,SSR1:TDRE SOT0,SOT1出力 [動作モード2] ST D0 D1 D2 D3 D4 送信割込発生 D5 D6 D7 SP SP A/D ST D0 D1 D2 D3 D3 D4 D5 D6 D7 送信割込発生 SODR0,SODR1書込み SSR0,SSR1:TDRE SOT0,SOT1出力 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 ST :スタートビット D0~D7:データビット SP :ストップビット A/D :アドレス/データ選択ビット ● 送信割込み要求発生のタイミング 送信割込みが許可(SSR0, SSR1 レジスタの TIE:bit8=1)されている場合に , 送信データ 書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)が設定されると割込みコン トローラへ送信割込み要求を発生します。 < 注意事項 > 送信中に送信を禁止(SCR0, SCR1 レジスタの TXE:bit8=0, かつ動作モード 1(非同 期マルチプロセッサモード)時の場合 , 受信禁止(RXE:bit9 も含む)すると , 送信 データ書込みフラグビットが設定され(SSR0, SSR1 レジスタの TDRF:bit11=1), 送信用シフトレジスタのシフト動作が停止してから UART の通信が禁止されます。 送信が停止する前にシリアル出力データレジスタ 0, 1(SODR0, SODR1)に書き込 まれていた送信データは送信されます。 499 第 17 章 UART 17.5 UART のボーレート UART の送受信クロックとしては , 以下のいずれかを選択します。 • 専用ボーレートジェネレータ • 内部クロック(16 ビットリロードタイマ出力) • 外部クロック(SCK0, SCK1 端子入力のクロック) ■ UART のボーレートの選択 UART のボーレート選択回路は , 図 17.5-1 のように構成されています。クロック入力 ソースは以下の 3 種類の中から選択できます。 ● 専用ボーレートジェネレータによるボーレート • UART に内蔵されている専用ボーレートジェネレータをクロック入力ソースとして 使用する場合は , 使用するボーレートに応じてシリアルモードレジスタ(SMR0, SMR1)の CS2 ∼ CS0:bit5 ∼ bit3 に "000B" ∼ "101B" を設定してください。6 種類の ボーレートから選択できます。 ● 内部タイマによるボーレート • 16 ビットリロードタイマから供給される内部クロックを , クロック入力ソースとし て使用する場合は , シリアルモードレジスタ(SMR0, SMR1)の CS2 ∼ CS0:bit5 ∼ bit3 に "10B" を設定してください。 • ボーレートは , クロック同期の場合は "16 ビットリロードタイマから供給されるク ロックのまま ", 非同期の場合は " 供給されるクロックを 16 分周した値 " になります。 • 16 ビットリロードタイマの設定値によって , 自由にボーレートを設定できます。 ● 外部クロックによるボーレート • UART のクロック入力端子(SCK0,SCK 1)から入力した外部クロックを , クロック 入力ソースとして使用する場合は , シリアルモードレジスタ(SMR0, SMR1)の CS2 ∼ CS0: bit5 ∼ bit3 に "111B" を設定してください。 • ボーレートは , クロック同期の場合は " 外部から供給されるクロック " のまま , ク ロック非同期の場合は " 入力されたクロックを 16 分周した値 " になります。 500 第 17 章 UART 図 17.5-1 UART のボーレート選択回路 SMR0,SMR1:CS2~CS0 (クロック入力ソース選択ビット) クロックセレクタ CS2~CS0=000B~101B [専用ボーレートジェネレータ] φ φ/1,φ/2,φ/3,φ/4, φ/5,φ/6,φ/7,φ/8 通信プリスケーラ (CDCR0,CDCR1:MD0,DIV2~DIV0) [内部タイマ] TMCSR0,TMCSR1:CSL1,CSL0 クロックセレクタ φ 分周回路 【クロック同期】 1/1, 1/2, 1/4, 1/8, 1/16,1/32分周の いずれかを選択 【非同期】 内部固定分周比を選択 CS2~CS0=110B ダウン UF カウンタ 1/1【クロック同期】 1/16【非同期】 ボーレート φ/21 φ/23 φ/25 プリスケーラ 16ビットリロードタイマ0 CS2~CS0=111B [外部クロック] SCK0,SCK1 端子 φ :マシンクロック UF:アンダフロー 1/1【クロック同期】 1/16【非同期】 SMR0,SMR1:MD1,MD0 (動作モード選択ビット) 501 第 17 章 UART 17.5.1 専用ボーレートジェネレータによるボーレート UART の送受信クロックとして , 専用ボーレートジェネレータの出力クロックを選択 した場合のボーレートの設定を示します。 ■ 専用ボーレートジェネレータによるボーレート クロック入力ソース選択ビット(SMR0, SMR1 レジスタの CS2 ∼ CS0:bit5 ∼ bit3)に "000B"∼"101B"を設定することによって, 専用ボーレートジェネレータによるボーレー トが設定できます。 専用ボーレートジェネレータで送受信クロックを生成する場合は , マシンクロック周 波数が通信プリスケーラで分周された後 , クロックセレクタで選択されたクロック入 力ソースに対して分周比を選択して , ボーレートを決定します。 通信プリスケーラによるマシンクロックの分周比は , 非同期とクロック同期ともに共 通ですが , ボーレート決定の分周比は , 非同期とクロック同期とで異なります。 専用ボーレートジェネレータによるボーレート選択回路を図 17.5-2 に示します。 図 17.5-2 専用ボーレートジェネレータによるボーレート選択回路 SMR0,SMR1:CS2~CS0 (クロック入力ソース選択ビット) クロックセレクタ φ φ/1,φ/2,φ/3,φ/4, φ/5,φ/6,φ/7,φ/8 通信プリスケーラ (CDCR0,CDCR1:MD0,DIV2~DIV0) 分周回路 【クロック同期】 1/1,1/2,1/4,1/8,1/16,1/32 分周のいずれかを選択 【非同期】 内部固定分周比を選択 ボーレート SMR0,SMR1:MD1,MD0 (動作モード選択ビット) φ:マシンクロック ● ボーレート計算式 非同期ボーレート = φ × div ×(非同期転送クロック分周比) クロック同期ボーレート = φ × div ×(クロック同期転送クロック分周比) φ : マシンクロック div: 通信プリスケーラ分周比 502 第 17 章 UART ● 通信プリスケーラによる分周比(非同期 , クロック同期に共通) マシンクロックの分周比は , 通信プリスケーラレジスタの分周比選択ビット(CDCR0, CDCR1 レジスタの DIV2 ∼ DIV0:bit10 ∼ bit8)で設定します。 表 17.5-1 通信プリスケーラによる分周比 MD DIV2 DIV1 DIV0 div 0 − − − 停止 1 0 0 0 1 分周 1 0 0 1 2 分周 1 0 1 0 3 分周 1 0 1 1 4 分周 1 1 0 0 5 分周 1 1 0 1 6 分周 1 1 1 0 7 分周 1 1 1 1 8 分周 div: 通信プリスケーラ分周比 ● ボーレート(非同期) 非同期モードのボーレートは , 通信プリスケーラの出力クロックを使用して生成され ます。分周比は , クロック入力ソース選択ビット(SMR0, SMR1 レジスタの CS2 ∼ CS0: bit5 ∼ bit3)で設定してください。 表 17.5-2 ボーレート(非同期) CS2 CS1 CS0 非同期(スタート / ストップ同期) 0 0 0 76, 923bps (φ /div)/(8 × 13 × 2) 0 0 1 38, 461bps (φ /div)/(8 × 13 × 4) 0 1 0 19, 230bps (φ /div)/(8 × 13 × 8) 0 1 1 9, 615bps (φ /div)/(8 × 13 × 16) 1 0 0 500kbps (φ /div)/(8 × 2 × 2) 1 0 1 250kbps (φ /div)/(8 × 2 × 4) 算出式 φ : マシンクロック周波数 div: 通信プリスケーラ分周比 503 第 17 章 UART ● ボーレート(同期) 同期モードのボーレートは , 通信プリスケーラの出力クロックを 1, 2, 4, 8, 16, 32 分 周して生成されます。分周比は , クロック入力ソース選択ビット(SMR0, SMR1 レジス タの CS2 ∼ CS0:bit5 ∼ bit3)で設定してください。 表 17.5-3 ボーレート(クロック同期) CS2 CS1 CS0 CLK 同期 0 0 0 2Mbps (φ /div)/1 0 0 1 1Mbps (φ /div)/2 0 1 0 500kbps (φ /div)/4 0 1 1 250kbps (φ /div)/8 1 0 0 125kbps (φ /div)/16 1 0 1 62.5kbps (φ /div)/32 φ : マシンクロック周波数 div: 通信プリスケーラ分周比 504 算出式 第 17 章 UART 17.5.2 内部タイマ(16 ビットリロードタイマ)によるボー レート UART のクロック入力ソースとして , 16 ビットリロードタイマ 0 から供給される内 部クロックを選択する場合の設定とボーレートの計算式を示します。 ■ 内部タイマ(16 ビットリロードタイマ出力)によるボーレート クロック入力ソース選択ビット(SMR0, SMR1 レジスタの CS2 ∼ CS0:bit5 ∼ bit3)に "110B" を設定することによって , 内部タイマ(16 ビットリロードタイマ出力)による ボーレートを設定できます。ボーレートは , 16 ビットリロードタイマのカウントクロッ ク分周比とリロード値を選択することによって自由に設定できます。 内部タイマによるボーレートの選択回路を図 17.5-3 に示します。 • クロック入力ソースとして内部タイマ(16 ビットリロードタイマ)を選択した(SMR0 , SMR1 レジスタの CS2 ∼ CS0:bit5 ∼ bit3)場合 , 16 ビットリロードタイマ出力端子 (TOT)は内部接続されているので , 外部クロック入力端子(SCK)に外部接続する 必要はありません。 • 16 ビットリロードタイマ出力端子(TOT)は , ほかで使用していなければ汎用入出 力ポートとして使用できます。 図 17.5-3 内部タイマ(16 ビットリロードタイマ出力)によるボーレート選択回路 SMR0,SMR1:CS2~CS0=110B (クロック入力ソース選択ビット) クロックセレクタ 16ビットリロードタイマ出力 (カウントクロック分周比と リロード値によって周波数指定) 1/1【クロック同期】 1/16 【非同期】 ボーレート SMR0,SMR1:MD1,MD0 (動作モード選択ビット) 505 第 17 章 UART ● ボーレート計算式 非同期ボーレート= クロック同期ボーレート= φ/N bps 16×2×(n+1) φ/N bps 2×(n+1) φ: マシンクロック周波数 N:16 ビットリロードタイマのプリスケーラによる分周比(21, 23, 25) n:16 ビットリロードタイマのリロード値(0 ∼ 65535) ● ボーレートとリロードレジスタ設定値の設定例(マシンクロック周波数 :7.3728MHz の場 合) 表 17.5-4 ボーレートとリロード値 リロード値 ボーレート (bps) 非同期(調歩同期) クロック同期 N=23(マシンク N=21(マシンク N=23(マシンク N=21(マシンク ロックの 2 分周) ロックの 8 分周) ロックの 2 分周) ロックの 8 分周) 38, 400 2 − 47 11 19, 200 5 − 95 23 9, 600 11 2 191 47 4, 800 23 5 383 95 2, 400 47 11 767 191 1, 200 95 23 1, 535 383 600 191 47 3, 071 767 300 383 95 6, 143 1, 535 N :16 ビットリロードタイマのプリスケーラによる分周比 − : 設定不可 506 第 17 章 UART 17.5.3 外部クロックによるボーレート UART の送受信クロックとして外部クロックを選択した場合の設定について説明し ます。 ■ 外部クロックによるボーレート 外部クロック入力によるボーレートを選択する場合は , 以下の設定が必要です。 • シリアルモードレジスタのクロック入力ソース選択ビット(SMR0, SMR1 レジスタの CS2 ∼ CS0:bit5 ∼ bit3)に "111B" を設定します。 • SCK0, SCK1 端子をポート方向レジスタ(DDR)で入力ポートに設定します。 • シリアルクロック入出力許可ビットを(SMR0, SMR1 レジスタの SCKE:bit1)に "0" を設定します。 • SCK0, SCK1 端子から入力された外部クロックをもとに , ボーレートを設定します。 内部の分周比は固定されているので , ボーレートを変更する場合は外部の入力ク ロックで変更する必要があります。 図 17.5-4 外部クロックによるボーレート選択回路 SMR0,SMR1:CS2~CS0=111B (クロック入力ソース選択ビット) クロックセレクタ SCK0,SCK1 1/1【クロック同期】 1/16【非同期】 端子 ボーレート SMR0,SMR1:MD1,MD0 (動作モード選択ビット) ● ボーレート計算式 非同期ボーレート = f/16 bps クロック同期ボーレート = f bps f: 外部クロック周波数(f は最大で 2MHz) 507 第 17 章 UART 17.6 UART の動作説明 UART 機能には , 双方向シリアル通信機能(動作モード 0, 2: 非同期ノーマルモード , クロック同期モード)と , マスタ / スレーブ型接続の通信機能(動作モード 1: 非同 期マルチプロセッサモード)があります。 ■ UART の動作 ● 動作モード UART の動作モードは 3 種類があり , CPU 間の接続方式やデータ通信方式を設定でき ます。 UART の動作モードを , 表 17.6-1 に示します。 表 17.6-1 UART の動作モード データ長 動作モード 同期方式 パリティなし 0 非同期モード (ノーマルモード) 1 マルチプロセッサモード 2 クロック同期モード ストップビット長 パリティあり 7 ビットまたは 8 ビット 非同期 1 ビットまたは 2 ビット *2 8 ビット + 1 ビット *1 − 非同期 8 ビット − クロック同 期 なし − : 設定不可 *1:"+1" は通信制御に使用するアドレス / データ選択ビット(SCR0, 1 レジスタの A/D:bit11 )です。 *2: 受信時のストップビットは 1 ビットのみを検出します。 < 注意事項 > UART の動作モード 1(非同期マルチプロセッサモード)は , マスタ / スレーブ型接 続時のマスタ時のみ使用できます。 ● CPU 間接続方式 CPU 間接続方式としては , 1 対 1 接続とマスタ / スレーブ型接続のどちらかを選択でき ます。いずれの方式でも , データ長 , パリティ有無 , 同期方式は , すべての CPU 間で統 一しておく必要があります。動作モードは以下のように選択します。 • 1 対 1 接続では , 2 つの CPU 間で動作モード 0, 2(ノーマルモード , クロック同期 モード)のいずれか同じ方式を採用する必要があります。非同期方式では動作モー ド 1: 非同期マルチプロセッサモード(SMR0, SMR1 レジスタの MD1, MD0:bit7, bit6= 00B)を , クロック同期方式では動作モード 2: クロック同期モード(SMR0, SMR1 レ ジスタの MD1, MD0:bit7, bit6=10B)を設定してください。 • マスタ / スレーブ型接続では , 動作モード 1: 非同期マルチプロセッサモード(SMR0, SMR1 レジスタの MD1, MD0:bit7, bit6=01B)を設定します。動作モード 1( 非同期マ ルチプロセッサモード)を設定した場合は , マスタとして使用してください。なお , この接続時は , パリティなしとデータ長(8 ビット)を設定してください。 508 第 17 章 UART ● 同期方式 非同期方式(調歩同期)またはクロック同期方式を選択します。 ● 信号方式 UART は , NRZ(Non Return to Zero)形式のデータだけを扱えます。 ● 送受信動作の開始 • シリアル制御レジスタの送信動作許可ビット(SCR0, SCR1 レジスタの TXE:bit8)に "1" を設定すると , 送信動作を開始します。 • シリアル制御レジスタの受信動作許可ビット(SCR0, SCR1 レジスタの RXE:bit9)に "1" を設定すると , 受信動作を開始します。 ● 送受信動作の停止 • シリアル制御レジスタの送信動作許可ビット(SCR0, SCR1 レジスタの TXE:bit8)に "0" を設定すると , 送信動作を停止します。 • シリアル制御レジスタの受信動作許可ビット(SCR0, SCR1 レジスタの RXE:bit9)に "0" を設定すると , 受信動作を停止します。 ● 送受信中の停止 • 受信中(受信用シフトレジスタへのデータ入力中)に受信動作を禁止(SCR0, SCR1 レジスタの RXE:bit9=0)した場合は , 受信中のフレームの受信を完了して , シリア ル入力データレジスタ 0, 1(SIDR0, SIDR1)へ受信データを格納してから受信動作 を停止します。 • 送信中(送信用シフトレジスタからのデータが出力中)に送信動作を禁止(SCR0, SCR1レジスタのTXE:bit8=0)した場合は, シリアル出力データレジスタ0, 1(SODR0, SODR1)から送信用シフトレジスタへ 1 フレームの送信が完了してから送信動作を 停止します。 509 第 17 章 UART 非同期モード(動作モード 0, 1)時の動作 17.6.1 UART を動作モード 0(非同期ノーマルモード)または動作モード 1(非同期マルチ プロセッサモード)で使用する場合は , 通信方式は非同期となります。 ■ 非同期モードでの動作 ● 送受信データフォーマット 送受信は , 必ずスタートビット("L" レベル)から始まり , 指定されたデータビット長 の送受信は LSB ファーストで行われ , ストップビット("H" レベル)で終了します。 • 動作モード 0(非同期ノーマルモード)時は , データ長として 7 ビットまたは 8 ビッ トを選択します。パリティビットは , あり / なしを選択できます。 • 動作モード 1(非同期マルチプロセッサモード)時は , データ長は 8 ビットに固定 されます。パリティビットは付加されません。9 ビット目に , アドレス / データビッ ト(SCR0, SCR1 レジスタの A/D:bit11)が付加されます。 非同期モードの送受信データフォーマットを図 17.6-1 に示します。 図 17.6-1 送受信データフォーマット(動作モード 0, 1) [動作モード0] ST D0 D1 D2 D3 D4 D5 D7 D8 SP ST D0 D1 D2 D3 D4 D5 D7 D8 SP SP Pなし ST D0 D1 D2 D3 D4 D5 D7 D8 P SP ST D0 D1 D2 D3 D4 D5 D7 D8 P SP ST D0 D1 D2 D3 D4 D5 D7 SP ST D0 D1 D2 D3 D4 D5 D7 SP データ 8ビット SP Pあり SP Pなし ST D0 D1 D2 D3 D4 D5 D7 P SP ST D0 D1 D2 D3 D4 D5 D7 P SP D1 D2 D3 D4 D5 D7 D8 A/D データ 7ビット SP Pあり [動作モード1] ST ST D0 D0 D1 D2 ST :スタートビット SP :ストップビット P :パリティビット A/D :アドレス/データビット 510 D3 D4 D5 D7 D8 A/D SP SP SP データ 8ビット 第 17 章 UART ● 送信動作 • 送信データは , 送信データ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11) に "1" が設定されている状態で , シリアル出力データレジスタ 0, ( 1 SODR0, SODR1) へ書き込みます。 • 送信データを書き込み , シリアル制御レジスタの送信動作許可ビット(SCR0, SCR1 レジスタの TXE:bit8)に "1" を設定すると , 送信を開始します。 • 送信データをシリアル出力データレジスタ 0, 1(SODR0, SODR1)へ書き込むと , 送 信データ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)は , 一度 "0" に クリアされます。 • 送信データをシリアル出力データレジスタ 0, 1(SODR0, SODR1)から送信用シフ トレジスタへ書き込むと , 送信データ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)には再度 "1" が設定されます。 • 送信割込み許可ビット(SSR0, SSR1 レジスタの TIE:bit8)に "1" を設定していた場 合は , 送信データ書込みフラグビット(SSR0, SSR1 レジスタの TDRE:bit11)に "1" が設定されると , 送信割込み要求を発生します。割込み処理において , 次の送信デー タをシリアル出力データレジスタ 0, 1(SODR0, SODR1)へ書き込むことができます。 ● 受信動作 • 受信動作は , 受信動作の許可が設定されている場合は(SCR0, SCR1 レジスタの RXE:bit9=1), 常に行われています。 • UART は受信データのスタートビットを検出すると , シリアル制御レジスタ 0, 1 (SCR0, SCR1)に設定しているデータフォーマットに従って , 1 フレームのデータ を受信しシリアル入力データレジスタ 0, 1(SIDR0, SIDR1)にへ格納します。 • 1 フレームのデータの受信が完了すると , 受信データロードフラグビット(SSR0, SSR1 レジスタの RDRF:bit12)に "1" が設定されます。 • 受信データを読み出す場合は , 1 フレームデータの受信完了後に , シリアルステータ スレジスタ 0, 1(SSR0, SSR1)のエラーフラグの状態を確認し , 正常に受信してい れば , シリアル入力データレジスタ 0, 1(SIDR0, SIDR1)から受信データを読み出 してください。受信エラーが発生している場合は , エラー処理を実行してください。 • 受信データを読み出すと , 受信データロードフラグビット(SSR0, SSR1 レジスタの RDRF:bit12)は "0" にクリアされます。 ● スタートビット検出方法 スタートビットを検出するには , 以下のように設定してください。 • 通信期間直前は通信線を必ず "H"( マークレベルを付加 ) にしてください。 • 通信線が "H"( マークレベル ) の期間に , 受信許可 (RXE=H) にしてください。 • 非通信期間中 ( マークレベルを除く ) は , 受信許可 (RXE=H) にしないでください。 正しいデータが受信できません。 • ストップビット検出後 (RDRF フラグが "1" にセットされた後 ), 通信線が "H" ( マー クレベル ) の間に受信禁止 (RXE=L) にしてください。 511 第 17 章 UART 図 17.6-2 正常動作例 通信期間 非通信期間 マークレベル SIN スタートビット ST 非通信期間 ストップビット データ D0 D1 D3 D2 D4 D5 D6 D7 SP D7 SP (01010101B送信) RXE 受信クロック サンプリングクロック ●受信クロック(8パルス) マイコン側の認識 (01010101B受信) ST ●受信クロックを16分周してサンプリングクロックを生成 D0 D1 D3 D2 D4 D5 D6 以下の例のようなタイミングで受信許可に設定しますとマイコン側で入力データ (SIN) が正しく認識されませんので注意してください。 • 通信線が "L" の期間に , 受信許可 (RXE=H) に設定した場合の動作例 図 17.6-3 異常動作例 通信期間 非通信期間 マークレベル スタートビット SIN (01010101B送信) RXE 非通信期間 ストップビット データ ST D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 SP SP 受信クロック サンプリングクロック ST認識 マイコン側の認識 (10101010B受信) PE,ORE,FRE ●受信エラー発生 ● ストップビット 1 ビットまたは 2 ビット長を選択できます。受信側では , 常に最初の 1 ビットだけを検 出します。 ● エラー検出 • 動作モード 0(非同期ノーマルモード)時は , パリティエラー , オーバランエラー , フレームエラーを検出できます。 • 動作モード 1(非同期マルチプロセッサモード)時は , オーバランエラーとフレー ムエラーを検出できます。パリティエラーは検出できません。 512 第 17 章 UART ● パリティビット パリティビットの付加は , 動作モード 0(非同期ノーマルモード)の場合のみ設定でき ます。パリティ付加許可ビット (SCR0, SCR1 レジスタの PEN:bit15) でパリティの有無 を , パリティ選択ビット(SCR0, SCR1 レジスタの P:bit14)で偶数パリティ / 奇数パリ ティを設定できます。 動作モード 1(非同期マルチプロセッサモード)時は , パリティビットは付加できませ ん。 パリティビット有効時の送受信データを図 17.6-4 に示します。 図 17.6-4 パリティビット有効時の送受信データ 受信の場合 SIN0,SIN1 ST SP 1 送信の場合 SOT0,SOT1 1 1 0 0 1 0 1 ST 1 送信の場合 SOT0,SOT1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 SP 偶数パリティでの送信 (SCR0,SCR1:PEN=1,P=0) SP 奇数パリティでの送信 (SCR0,SCR1:PEN=1,P=1) 0 ST 1 偶数パリティでの受信で パリティエラーが発生 (SCR0,SCR1:PEN=1,P=0) 1 データ パリティ ST:スタートビット SP:ストップビット (注意事項) 動作モード1では,パリティビットは設定できません。 513 第 17 章 UART 17.6.2 クロック同期モード(動作モード 2)時の動作 UART を動作モード 2 で使用する場合は , クロック同期方式で通信を行います。 ■ クロック同期モードでの動作 ● 送受信データフォーマット クロック同期モード時は , 8 ビットのデータを LSB ファーストで送受信します。送受 信データには , スタートビット , ストップビットは付加されません。 クロック同期モードの送受信データフォーマットを図 17.6-5 に示します。 図 17.6-5 送受信データフォーマット(動作モード 2) シリアルクロックを出力して送信する場合 マークレベル SCK0,SCK1出力 SOT0,SOT1 (LSB) 1 0 1 1 0 0 1 0 (MSB) 送信データ 送信データ書込み TXE シリアルクロックを入力して受信する場合 マークレベル SCK0,SCK1入力 SIN0,SIN1 (LSB) 1 0 1 1 0 0 1 0 (MSB) 受信データ RXE 受信データ読出し ● クロック供給 クロック同期方式では , 送受信を行うフレームのビット数に等しい数のクロックの供 給が必要になります。 • 内部クロック(専用ボーレートジェネレータまたは内部タイマ)を選択している場 合(SMR0, SMR1 レジスタの CS2 ∼ CS0:bit5 ∼ bit3=000B ∼ 101B または 110B)は , データを送信するとデータ受信用同期クロックが自動的に生成されます。 • 外部クロックを選択している場合(SMR0, SMR1 レジスタの CS2 ∼ CS0:bit5 ∼ bit3=111B)は , UART のシリアル出力データレジスタ 0, 1(SODR0, SODR1)に送信 データがあること(SSR0, SSR1 レジスタの TDRE:bit11=0)を確認してから , 正確に 1 バイト分のクロックを外部から供給する必要があります。また , 送信前と送信後は , 必ずマークレベル("H" レベル)に戻る必要があります。 514 第 17 章 UART ● エラー検出 オーバランエラーのみ検出できます。パリティエラー, フレーミングエラーは検出でき ません。 ● レジスタの設定 クロック同期モード(動作モード 2)を使用し , 送信側から受信側へシリアルデータを 送る場合の制御レジスタは表 17.6-2 のように設定します。 表 17.6-2 制御レジスタの設定 設定内容 レジスタ名 ビット名 送信側(シリアルクロックを出力) クロック同期モードを設定(MD1, MD0=10B) MD1, MD0 シリアルモー ドレジスタ 0, 1 (SMR0, SMR1) CS2, CS1, CS0 シリアル制御 レジスタ 0, 1 (SCR0, SCR1) シリアルス テータスレジ スタ 0, 1 (SSR0, SSR1) クロック入力ソースを設定 • 専用ボーレートジェネレータ (CS2 ∼ CS0=000B ∼ 101B) • 内部タイマ (CS2 ∼ CS0=110B) SCKE シリアルクロック出力を設定 (SCKE=1) SOE シリアルデータ出力端子に設定 (SOE=1) PEN CL REC 受信側(シリアルクロックを入力) クロック入力ソースを設定 • 外部クロック (CS2 ∼ CS0=111B) シリアルクロック入力を設定 (SCKE=0) 汎用入出力ポートに設定(SOE=0) パリティビットを付加しない(PEN=0) データ長 8 ビット(CL=1) エラーフラグの初期化(REC=0) TXE 送信動作を許可(TXE=1) 送信動作を禁止(TXE=0) RXE 受信動作を禁止(RXE=0) 受信動作を許可(RXE=1) TIE 送信割込みを許可(TIE=1) 送信割込みを禁止(TIE=0) RIE 受信割込みを禁止(RIE=0) 受信割込みを許可(RIE=1) ● 通信開始 シリアル出力データレジスタ 0, 1(SODR0, SODR1)に送信データを書き込むと , 通信 が開始します。受信のみ行う場合でも通信を開始するには , 必ず仮の送信データをシリ アル出力データレジスタ 0, 1(SODR0, SODR1)へ書き込む必要があります。 ● 通信終了 1 つのフレームのデータ送受信が終了すると , 受信データロードフラグビット(SSR0, SSR1 レジスタの RDRF:bit12)に "1" が設定されます。データを受信した場合は , オー バランエラーフラグビット(SSR0, SSR1 レジスタの ORE:bit14)をチェックし , 通信が 正常に行われたかどうかを判断してください。 515 第 17 章 UART 双方向通信機能(動作モード 0, 2) 17.6.3 動作モード 0, 2(非同期ノーマルモード , クロック同期モード)時は , 1 対 1 接続の シリアル双方向通信ができます。同期方式は , 動作モード 0(非同期ノーマルモー ド)の場合は非同期 , 動作モード 2(クロック同期モード)の場合はクロック同期と なります。 ■ 双方向通信機能 UART を動作モード 0, 2(非同期ノーマルモード , クロック同期モード)で使用するた めには , 図 17.6-6 の設定が必要です。 図 17.6-6 UART の動作モード 0, 2(非同期ノーマルモード , クロック同期モード)の設定 bit15 14 SCR0,SCR1,SMR0,SMR1 PEN 動作モード0 動作モード2 P ◎ ◎ 0 × 13 12 11 10 9 bit8 bit7 6 5 4 3 2 1 bit0 SBL CL AD REC RXE TXE MD1 MD0 CS2 CS1 CS0 予約 SCKE SOE ◎ × × × ◎ 1 0 0 ◎ ◎ ◎ ◎ SSR0,SSR1, PE ORE FRE RDRF TDRE - RIE TIE SIDR0,SIDR1/SODR0,SODR1 動作モード0 ◎ ◎ ◎ ◎ ◎ ◎ ◎ 動作モード2 × ◎ × ◎ ◎ ◎ ◎ 0 1 0 0 ◎ ◎ ◎ ◎ ◎ ◎ 0 0 ◎ ◎ ◎ ◎ 送信データを設定(ライトした場合) /受信データを保持(リードした場合) DDRポート方向レジスタ - ◎ × 1 0 :未定義ビット :使用ビット :未使用ビット :"1"を設定 :"0"を設定 SIN0,SIN1入力端子やSCK0,SCK1入力端子 として使用する端子に対応する ビットに"0"を設定 ● CPU 間の接続 2 つの CPU を接続します。 図 17.6-7 UART の双方向通信の接続例 SOT SOT SIN SCK CPU-1 516 SIN 出力 入力 SCK CPU-2 第 17 章 UART ● 通信手順 通信は , 送信データが準備できたときに任意のタイミングで送信側から開始します。送 信側はシリアル出力データレジスタ(SODR0, SODR1)に送信データを設定し , シリア ル制御レジスタの送信動作許可ビット(SCR0, SCR1 レジスタの TXE:bit8)に "1" を設 定して , 送信を開始してください。 正常に受信したことを送信側に示すために , 受信データを送信側に転送する例を , 図 17.6-8 に示します。 図 17.6-8 双方向通信フローの例 (送信側) (受信側) スタート スタート 動作モード設定 (0,2いずれか) 動作モード設定 (送信側と合わす) SODRに1バイトデータを セットして通信 データ送信 NO 受信データあり YES NO 受信データあり 受信データ読出し と処理 YES 受信データ読出し と処理 データ送信 1バイトデータ送信 517 第 17 章 UART 17.6.4 マスタ / スレーブ型通信機能(マルチプロセッサモー ド時) 動作モード 1(非同期マルチプロセッサモード)時は , 複数 CPU のマスタ / スレー ブ型接続による通信が可能です。ただし , マスタ側でのみ使用できます。 ■ マスタ / スレーブ型通信機能 UART を動作モード 1(非同期マルチプロセッサモード)で使用するためには , 図 17.6-9 の設定が必要です。 図 17.6-9 UART の動作モード 1(非同期マルチプロセッサモード)の設定 bit15 14 13 12 11 10 9 bit8 bit7 6 5 4 3 2 1 bit0 SCR0,SCR1,SMR0,SMR1 PEN P SBL CL AD REC RXE TXE MD1 MD0 CS2 CS1 CS0 予約 SCKE SOE 0 × ◎ ◎ 1 0 ◎ ◎ 0 SSR0,SSR1, SIDR0,SIDR1/SODR0,SODR1 PE ORE FRE RDRF TDRE - RIE TIE × ◎ ◎ ◎ ◎ ◎ ◎ 1 ◎ ◎ ◎ 0 0 ◎ 送信データを設定(ライトした場合) /受信データを保持(リードした場合) DDRポート方向レジスタ - ◎ × 1 0 :未定義ビット :使用ビット :未使用ビット :"1"を設定 :"0"を設定 SIN0,SIN1入力端子やSCK0,SCK1入力端子 として使用する端子に対応する ビットに"0"を設定 ● CPU 間の接続 2 本の共通通信ラインに 1 つのマスタ CPU と , 複数のスレーブ CPU を接続して , 通信 システムを構成します。UART は , マスタ CPU としてのみ使用できます。 図 17.6-10 UART のマスタ / スレーブ型通信の接続例 SOT0,1 SIN0,1 マスタCPU SOT SIN スレーブCPU #0 518 SOT SIN スレーブCPU #1 第 17 章 UART ● 機能選択 マスタ / スレーブ型通信では , 動作モードとデータ転送方式を選択してください。 動作モード 1(非同期マルチプロセッサモード)時は , パリティチェック機能は使用で きないので , パリティ付加許可ビット(SCR0, SCR1 レジスタの PEN:bit15)には "0" を 設定してください。 表 17.6-3 マスタ / スレーブ型通信機能の選択 動作モード データ マスタ CPU 同期方式 ストップビット なし 非同期 1 ビット または 2 ビット A/D=1 + 8 ビットアドレス アドレス 送受信 動作モード 1 データ 送受信 パリティ スレーブ CPU − A/D=0 + 8 ビットデータ 519 第 17 章 UART ● 通信手順 通信は , マスタ CPU 側がアドレスデータを送信することによって開始します。 アドレスデータとは , A/D ビットが "1" のデータであり , アドレス / データ選択ビット (SCR0, SCR1 レジスタの A/D:bit11)の付加によって , 通信先となるスレーブ CPU が 選択されます。各スレーブ CPU はプログラムによりアドレスデータを判断し , 割当て られたアドレスと一致する場合に , マスタ CPU との通信が開始します。 マスタ / スレーブ型通信のフローチャートを図 17.6-11 に示します。 図 17.6-11 マスタ / スレーブ型通信フローチャート (マスタCPU) スタート 動作モード1 (非同期マルチプロ セッサモード)を選択 D0~D7にスレーブ CPUを選択する1バイト データ(アドレスデータ) をセットして送信 (A/D=1) A/Dに"0"を設定 受信動作許可 スレーブCPUと通信 通信終了? NO YES ほかの スレーブCPU と通信 NO YES 受信動作禁止 エンド 520 第 17 章 UART 17.7 UART 使用上の注意 UART を使用する場合は , 以下の点に注意してください。 ■ UART 使用上の注意 ● 送受信の動作許可 UART には , 送信と受信のそれぞれに対して送信動作許可ビット(SCR0, SCR1 レジス タの TXE:bit8)と受信動作許可ビット(SCR0,SCR 1 レジスタの RXE:bit9)があります。 • リセット後の初期状態では , 送受信とも動作禁止に設定(SCR0, SCR1 レジスタの TXE: bit8=0, RXE:bit9=0)されているので , 送受信を行う前に動作を許可する必要が あります。 • 送受信動作を禁止(SCR0, SCR1 レジスタの TXE:bit8=0, RXE:bit9=0)して , 送受信 を中止できます。 ● 動作モードの設定 動作モードは , 送受信動作を禁止(SCR0, SCR1 レジスタの TXE:bit8=0, RXE:bit9=0)し てから設定してください。送受信中に動作モードを切り換えた場合 , 送受信されたデー タは保証されません。 ● クロック同期モード UART の動作モード 2(クロック同期モード)は , クロック同期方式として設定されま す。送受信データにスタートビットやストップビットは付加されません。 ● 送信割込み許可のタイミング 送信データ書込み許可フラグビット(SSR0, SSR1 レジスタの TDRE:bit11)はリセット 値が "1"(送信データなし , 送信データ書込み許可)にセットされているので , 送信割 込みを許可(SSR0, SSR1 レジスタの TIE:bit8=1)したと同時に , 送信割込み要求が発生 します。必ず , 送信データを準備してから , 送信割込みを許可(SSR0, SSR1 レジスタ の TIE:bit8=1)してください。 521 第 17 章 UART 17.8 UART のプログラム例 UART のプログラム例を示します。 ■ UART のプログラム例 ● 処理 シリアル送受信を行うためにUARTの双方向通信機能(ノーマルモード)を使用します。 • 動作モード 0, 非同期モード(ノーマル), 8 ビットデータ長 , 2 ビットストップビッ ト長およびパリティなしを設定します。 • 通信には P60/SIN1 端子と P61/SOT1 端子を使用します。 • 専用ボーレートジェネレータを使用し , 約 9600bps にボーレートを設定します。 • 文字 13H を SOT1 端子から送信し , 割込みの発生により受信します。 • マシンクロック φ は 16MHz と仮定します。 ● コーディング例 ICR13 EQU 0000BDH ;UART 送受信割込み制御レジスタ DDR6 EQU 000016H ; ポート 6 データ方向レジスタ CDCR1 EQU 00001BH ; 通信プリスケーラレジスタ 1 SMR1 EQU 000024H ; モード制御レジスタ 1 SCR1 EQU 000025H ; 制御レジスタ 1 SIDR1 EQU 000026H ; 入力データレジスタ 1 SODR1 EQU 000026H ; 出力データレジスタ 1 SSR1 EQU 000027H ; 状態レジスタ 1 REC EQU SCR1:2 ; 受信エラーフラグクリアビット ;--------- メインプログラム ------------------------------------------CODE CSEG ABS=0FFH START: ; : ; スタックポインタ (SP) はすでに初期化されているもにと ; 仮定します AND CCR,#0BFH ; 割込みを禁止します MOV I:ICR13,#00H ; 割込みレベル 0(優先先が最も給い) MOV I:DDR6,#00000000B;SIN1 端子を入力端子として設定します MOV I:CDCR1,#080H ; 通信プリスケーラを有効にします MOV I:SMR1,#00010001B; 動作モード 0(非同期) ; 専用ボーレートジェネレータ(9615bps)を使用します ; クロックパルス出力を無効にし , データ出力を有効にします MOV I:SCR1,#00010011B;N パリティなし , 2 ストップビット ;8 データビットと受信エラーフラグをクリアします ; 送受信動作を有効にします MOV I:SSR1,#00000010B; 送信割込みを禁止し , 受信割込みを許可にします MOV I:SODR1,#13H ; 送信データを書き込みます MOV ILM,#07H ;PS の ILM をレベル 7 に設定します OR CCR,#40H ; 割込みを許可します LOOP: MOV A,#00H ; 無限プール MOV A,#01H BRA LOOP 522 第 17 章 UART ;--------- 割込みプログラム ------------------------------------------WARI: MOV A,SIDR1 ; 受信データを読込みます CLRB I:REC ; 受信割込み要求フラグをクリアします ; : ; ユーザ処理 ; : RETI ; 割込みから復帰します CODE ENDS ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 0FF68H ; 割込み #37(25H)のベクタを設定します VECT DSL ORG DSL DB ENDS WARI 0FFDCH START 00H ; リセットベクタを設定します ; シングルチップモードを設定します 523 第 17 章 UART 524 第 18 章 DTP/ 外部割込み DTP/ 外部割込みの機能と動作について説明しま す。 18.1 DTP/ 外部割込みの概要 18.2 DTP/ 外部割込みのブロックダイヤグラム 18.3 DTP/ 外部割込みの構成 18.4 DTP/ 外部割込みの動作説明 18.5 DTP/ 外部割込み使用上の注意 18.6 DTP/ 外部割込み回路のプログラム例 525 第 18 章 DTP/ 外部割込み 18.1 DTP/ 外部割込みの概要 DTP/ 外部割込みは , 外部周辺装置が発生する割込み要求やデータ転送要求を CPU に伝達することで , 外部割込み要求を発生したり , 拡張インテリジェント I/O サービ ス(EI2OS)を起動します。 ■ DTP/ 外部割込み機能 外部周辺装置から外部割込み入力端子(INT7 ∼ INT0)に入力された割込み要求は , リ ソースの割込みと同様割込み要求が発生され , 外部割込みを発生したりまたは拡張イ ンテリジェント I/O サービス(EI2OS)を起動します。 割込み制御レジスタ(ICR)により拡張インテリジェント I/O サービス(EI2OS)を " 無効 " に設定している場合(ISE=0)は , 外部割込み機能が有効になり , 割込み処理へ 分岐します。 EI2OS を " 有効 " に設定している場合( ISE=1)は , DTP 機能が有効となって , EI2OS による自動データ転送が行われ , 指定回数のデータ転送終了後に割込み処理へ分岐し ます。 DTP/ 外部割込みの概要を表 18.1-1 に示します。 表 18.1-1 DTP/ 外部割込みの概要 外部割込み DTP 機能 8 本(P10/INT0/DTT10 ∼ P16/INT6, P63/INT7) 入力端子 検出レベル設定レジスタ(ELVR)にて , 端子ごとにレベルまたはエッジを設定 割込み要因 "H" レベル /"L" レベル / 立上りエッジ / 立下りエッジの入力 "H" レベル /"L" レベルの入力 割込み番号 #20(14H), #22(16H), #25(19H), #27(1BH) 割込み制御 DTP/ 外部割込み許可レジスタ(ENIR)による , 割込み要求出力の許可または禁止 割込みフラグ DTP/ 外部割込み要因レジスタ(EIRR)による , 割込み要因の保持 処理選択 処理 526 EI2OS を " 無効 " に設定(ICR:ISE=0) EI2OS を " 有効 " に設定(ICR:ISE=1) 外部割込み処理へ分岐 EI2OS によるデータ自動転送を指定回数処理 後 , 割込み処理へ分岐 第 18 章 DTP/ 外部割込み DTP/ 外部割込みのブロックダイヤグラム 18.2 DTP/ 外部割込みのブロックダイヤグラムを以下に示します。 ■ DTP/ 外部割込みのブロックダイヤグラム 図 18.2-1 DTP/ 外部割込みのブロックダイヤグラム 検出レベル設定レジスタ(ELVR) LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 端子 レベルおよび エッジセレクタ INT7 端子 レベルおよび エッジセレクタ レベルおよび エッジセレクタ 端子 レベルおよび エッジセレクタ 部 デ ー タ バ ス 内 INT2 レベルおよび エッジセレクタ INT5 端子 端子 INT3 INT6 端子 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 端子 レベルおよび エッジセレクタ INT1 レベルおよび エッジセレクタ INT4 端子 レベルおよび エッジセレクタ INT0 DTP/外部割込み入力検出回路 ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 割込み要求 信号 DTP/外部割込み要因 レジスタ(EIRR) 割込み要求 信号 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 DTP/外部割込み許可 レジスタ(ENIR) 527 第 18 章 DTP/ 外部割込み ● DTP/ 外部割込み入力検出回路 外部周辺装置が発生する割込み要求またはデータ転送要求を検出します。 検出レベル設定レジスタで設定したレベルまたはエッジを検出したい端子に対応する 割込み要求フラグに "1" を設定してください(EIRR: ER) 。 ● 検出レベル設定レジスタ(ELVRH, ELVRL) 検出レベル設定レジスタには , DTP/ 外部割込みの要因発生の条件となる , 外部周辺装 置からの入力信号のレベルまたはエッジを設定します。 ● DTP/ 外部割込み要因レジスタ(EIRR) DTP/ 外部割込みの要因を保持するレジスタです。 DTP/ 外部割込み端子に有効な信号が入力された場合 , 対応する DTP/ 外部割込み要求 フラグビットに "1" が設定されます。 ● DTP/ 外部割込み許可レジスタ(ENIR) DTP/ 外部割込み許可レジスタ(ENIR)は , 外部周辺装置の DTP/ 外部割込み要求の " 許可 " または " 禁止 " を設定します。 ■ 端子の詳細と割込み番号 DTP/ 外部割込みで使用する端子と割込みの詳細を表 18.2-1 に示します。 表 18.2-1 DTP/ 外部割込みで使用する端子と割込み番号 チャネル 割込み 番号 割込み制御レジスタ ベクトルテーブルアドレス レジスタ名 アドレス 下位 中位 上位 INT0/INT1 #20(14H) ICR04 0000B4H FFFFACH FFFFADH FFFFAEH INT2/INT3 #22(16H) ICR05 0000B5H FFFFA4H FFFFA5H FFFFA6H INT4/INT5 #25(19H) ICR07 0000B7H FFFF98H FFFF99H FFFF9AH INT6/INT7 #27(1BH) ICR08 0000B8H FFFF90H FFFF91H FFFF92H ○ :EI2OS 割込みクリア信号で割込み要求フラグがクリアされると , 使用できます。 528 EI2OS ○ 第 18 章 DTP/ 外部割込み DTP/ 外部割込みの構成 18.3 DTP/ 外部割込みの端子 , 割込み要因 , レジスタの一覧および詳細を記述します。 ■ DTP/ 外部割込みの端子 DTP/ 外部割込みで使用する端子は , 汎用入出力ポートと兼用です。 端子の機能と , DTP/ 外部割込みで使用する場合の設定を , 表 18.3-1 に示します。 表 18.3-1 DTP/ 外部割込みの端子 端子名 端子機能 DTP/ 外部割込みの使用に必要な端子の設定 INT0 INT1 INT2 汎用入出力ポート / DTP 外部割込み入力 INT3 ポート方向レジスタ(DDR)により " 入力ポート " に設定 INT4 INT5 INT6 汎用入出力ポート / DTP 外部割込み入力 / アドレスバス出力 INT7 ■ 端子のブロックダイヤグラム < 参照 > 端子のブロックダイヤグラムは , 「第 9 章 I/O ポート」をご参照ください。 ■ DTP/ 外部割込みのレジスタと初期値の一覧 図 18.3-1 DTP/ 外部割込みのレジスタと初期値の一覧 bit DTP/外部割込要因レジスタ(EIRR) bit DTP/外部割込許可レジスタ(ENIR) bit 検出レベル設定レジスタ:上位(ELVRH) bit 検出レベル設定レジスタ:下位(ELVRL) 15 14 13 12 11 10 9 8 X X X X X X X X 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 15 14 13 12 11 10 9 8 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 X :不定 529 第 18 章 DTP/ 外部割込み DTP/ 外部割込み要因レジスタ(EIRR) 18.3.1 DTP/ 外部割込みの要因を保持するレジスタです。DTP/ 外部割込み端子に有効な信 号が入力された場合 , 対応する割込み要求フラグビットに "1" が設定されます。 ■ DTP/ 外部割込み要因レジスタ(EIRR) 図 18.3-2 DTP/ 外部割込み要因レジスタ(EIRR) bit 15 13 14 12 11 10 9 8 初期値 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit15~bit8 ER7~ER0 R/W:リード/ライト X :不定 0 1 DTP/外部割込要求フラグビット リードした場合 ライトした場合 DTP/外部割込み入力なし ERビットをクリア DTP/外部割込み入力あり 影響なし 表 18.3-2 DTP/ 外部割込み要因レジスタ(EIRR)の機能 ビット名 bit15 ∼ bit8 ER0 ∼ ER7: DTP/ 外部割込 み要求フラグ ビット < 注意事項 > 530 機 能 DTP/ 外部割込み端子に , 検出レベル設定レジスタ(ELVRH, L)の検出条件選 択ビット(LBx, LAx)で設定したエッジまたはレベル信号が入力された場合 , "1" が設定されます。 これらのビットに "1" を設定した場合 : DTP/ 外部割込み要求許可ビット(EN)に "1" を設定している場合は , 対 応する DTP/ 外部割込みチャネルの割込み要求が発生します。 これらのビットに "0" を設定した場合 : クリアされます。 これらのビットに "1" を設定した場合 : 影響しません。 ( 注意事項 ) 複数の DTP/ 外部割込み要求が許可されている場合(ENIR: EN=1)は , 割込 みを受付けたチャネルのビットだけをクリアしてください(EIRR: ERx=0)。 ( 参考 ) 拡張インテリジェント I/O サービス(EI2OS)が起動された場合は , 1 つの データ転送が終了した時点で , 対応する割込み要求フラグビットが自動的に クリアされます(EIRR: ERx=0)。 • DTP/ 外部割込み要求フラグビット (EIRR:ER) の値は , 対応する DTP/ 外部割込 み要求許可ビット (ENIR:EN) が "1" に設定されているときのみ有効です。DTP/ 外部割込みが許可されていない状態 (ENIR:EN=0) では , DTP/ 外部割込み要因の 有無にかかわらず DTP/ 外部割込み要因ビットがセットされる可能性がありま す。 • DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割込み要 求フラグビット (EIRR:ER) をクリアしてください。 第 18 章 DTP/ 外部割込み DTP/ 外部割込み許可レジスタ(ENIR) 18.3.2 DTP/ 外部割込み許可レジスタ(ENIR)は , 外部割込み端子(INT7 ∼ INT0)ごとに 外部割込み要求の " 許可 " または " 禁止 " を設定します。 ■ DTP/ 外部割込み許可レジスタ(ENIR) 図 18.3-3 DTP/ 外部割込み許可レジスタ(ENIR) bit 7 5 6 4 3 2 1 0 初期値 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit7~bit0 EN7~EN0 R/W :リード/ライト :初期値 0 1 DTP/外部割込み要求許可ビット DTP/外部割込み禁止 DTP/外部割込み許可 表 18.3-3 DTP/ 外部割込み許可レジスタ(ENIR)の機能 ビット名 bit7 ∼ bit0 EN7 ∼ EN0: DTP/ 外部割込 み要求許可 ビット < 注意事項 > 機 能 DTP/ 外部割込み端子に対して , DTP/ 外部割込み要求の " 許可 " または " 禁止 " を設定します。 DTP/ 外部割込み要求許可ビット(ENx)に "1" を設定している場合に DTP/ 外 部割込み要因レジスタ(EIRR)の DTP/ 外部割込み要求フラグビット(ERx) に "1" が設定されると , 対応する DTP/ 外部割込み端子の割込み要求が発生しま す。 ( 参考 ) DTP/ 外部割込み要求許可ビットの設定にかかわらず , DTP/ 外部割込み端子 の状態は ポートデータレジスタ(PDR)により , 直接読み出せます。 DTP/ 外部割込み許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割込み要求フ ラグビット (EIRR:ER) をクリアしてください。 531 第 18 章 DTP/ 外部割込み 表 18.3-4 DTP/ 外部割込み端子と割込み要求フラグビット , 割込み許可ビットの対応 532 DTP/ 外部割込み端子 DTP/ 外部割込み要求 フラグビット DTP/ 外部割込み要求 許可ビット INT0 ER0 EN0 INT1 ER1 EN1 INT2 ER2 EN2 INT3 ER3 EN3 INT4 ER4 EN4 INT5 ER5 EN5 INT6 ER6 EN6 INT7 ER7 EN7 第 18 章 DTP/ 外部割込み 検出レベル設定レジスタ , 上位(ELVRH) 18.3.3 検出レベル設定レジスタ(上位)は , DTP/ 外部割込み端子のうちの INT7 ∼ INT4 に 対して , 割込み要因となる入力信号レベルまたはエッジを設定します。 ■ 検出レベル設定レジスタ , 上位(ELVRH) 図 18.3-4 検出レベル設定レジスタ , 上位(ELVRH) bit 15 14 13 12 11 10 9 8 初期値 00000000B R/W R/W R/W R/W R/W R/W R/W R/W R/W :リード/ライト :初期値 bit15~bit8 LB7,LA7 LB6,LA6 検出条件選択ビット LB5,LA5 LB4,LA4 0 0 "L"レベル検出 0 1 "H"レベル検出 1 0 立上りエッジ検出 1 1 立下りエッジ検出 表 18.3-5 検出レベル設定レジスタ , 上位(ELVRH)の機能 ビット名 bit15 ∼ bit8 機 能 LB4, LA4 ∼ LB7, LA7: 検出条件選択 ビット DTP/ 外部割込み端子に対して , 割込み要因の発生条件となる , 外部周辺装置か らの入力信号のレベルまたはエッジを設定します。 • 外部割込みの場合は 2 種類のレベルまたは 2 種類のエッジから , EI2OS の場 合は 2 種類のレベルから選択してください。 ( 参考 ) 設定した検出信号が , DTP/ 外部割込み端子に入力されると , DTP/ 外部割込 み要求を " 禁止 " に設定していても(ENIR:ENx=0), DTP/ 外部割込み要求 フラグビットには "1" が設定されます。 表 18.3-6 検出レベル設定レジスタ : 上位と各チャネルの対応 DTP/ 外部割込み端子 ビット名 INT4 LB4, LA4 INT5 LB5, LA5 INT6 LB6, LA6 INT7 LB7, LA7 533 第 18 章 DTP/ 外部割込み 検出レベル設定レジスタ , 下位(ELVRL) 18.3.4 検出レベル設定レジスタ(下位)は , DTP/ 外部割込み端子のうちの INT3 ∼ INT0 に 対して , 割込み要因となる入力信号レベルまたはエッジを設定します。 ■ 検出レベル設定レジスタ , 下位(ELVRL) 図 18.3-5 検出レベル設定レジスタ , 下位(ELVRL) bit 7 6 5 4 3 2 1 0 初期値 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit7~bit0 LB3,LA3 LB2,LA2 LB1,LA1 LB0,LA0 R/W :リード/ライト :初期値 0 0 1 1 0 1 0 1 検出条件選択ビット "L"レベル検出 "H"レベル検出 立上りエッジ検出 立下りエッジ検出 表 18.3-7 検出レベル設定レジスタ , 下位(ELVRL)の機能 ビット名 bit7 ∼ bit0 機 能 LB0, LA0 ∼ LB3, LA3: 検出条件選択 ビット DTP/ 外部割込み端子に対して , 割込み要因の発生条件となる , 外部周辺装置か らの入力信号のレベルまたはエッジを設定します。 • 外部割込みの場合は 2 種類のレベルまたは 2 種類のエッジから , EI2OS の場 合は 2 種類のレベルから選択してください。 ( 参考 ) 設定した検出信号が , DTP/ 外部割込み端子に入力されると , DTP/ 外部割込 み要求を " 禁止 " に設定していても(ENIR:ENx=0), DTP/ 外部割込み要求 フラグビットには "1" が設定されます。 表 18.3-8 検出レベル設定レジスタ : 下位と各チャネルの対応 534 DTP/ 外部割込み端子 ビット名 INT0 LB0, LA0 INT1 LB1, LA1 INT2 LB2, LA2 INT3 LB3, LA3 第 18 章 DTP/ 外部割込み DTP/ 外部割込みの動作説明 18.4 DTP/ 外部割込みには , 外部割込み機能と DTP 機能があります。各機能の設定と動 作について説明します。 ■ DTP/ 外部割込みの設定 DTP/ 外部割込みを使用するには , 図 18.4-1 の設定が必要です。 図 18.4-1 DTP/ 外部割込みの設定 bit 15 14 割込み制御 ICS3 ICS2 レジスタ(ICR) 外部割込みの場合 - - DTPの場合 ◎ ◎ 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ICS1 ICS0 ISE IL2 IL1 IL0 ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 IL0 - ◎ - ◎ 0 1 ◎ ◎ ◎ ◎ ◎ ◎ - - ◎ ◎ - ◎ - ◎ 0 1 ◎ ◎ ◎ ◎ ◎ ◎ EIRR/ENIR ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ○ ○ ○ ○ ○ ○ ○ ○ ELVRH,L LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 ◎ ◎ ◎ ◎ ◎ ◎ ◎ DDR6 ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ P63 △ DTP/外部割込入力に使用する端子に対応するビットに"0"を設定 DDR1 - ◎ ○ 0 1 :未定義ビット :使用ビット :使用する端子に対応するビットに"1"を設定 :"0"を設定 :"1"を設定 ● 設定の手順 DTP/ 外部割込みを使用する場合は , 以下の手順で各レジスタを設定してください。 1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。 2. DTP/ 外部割込み許可レジスタ(ENIR)のビットの内 , 使用する DTP/ 外部割込み チャネルに対応する割込み要求許可ビット(ENx)に "0" を設定します。 3. 検出レベル設定レジスタ(ELVRH, L)のビットの内 , 使用する DTP/ 外部端子に対 応する検出条件選択ビット(LAx, LBx)により , 検出するエッジまたはレベルを設 定します。 4. DTP/ 外部割込み要因レジスタ(EIRR)のビットの内 , 使用する DTP/ 外部割込み チャネルに対応する割込み要求フラグビット(ERx)に "0" を設定します。 5. DTP/ 外部割込み許可レジスタ(ENIR)のビットの内 , 使用する DTP/ 外部割込み チャネルに対応する割込み要求許可ビット(ENx)に "1" を設定します。 535 第 18 章 DTP/ 外部割込み • DTP/ 外部割込みのレジスタは , 外部割込み要求を " 禁止 "(ENIR:ENx=0)に設定し てから行ってください。 • DTP/ 外部割込み要求を " 許可 "(ENIR:ENx=1)する場合は , 先に DTP/ 外部割込み 要因レジスタ(EIRR)のビットの内 , 対応する DTP/ 外部割込み要求フラグビット をクリア(ERx=0)する必要があります。これは , レジスタ設定時に誤って割込み 要求が発生するのを防ぐためです。 ● 外部割込み機能と DTP 機能の選択 外部割込み機能と DTP 機能のどちらが実行されるかは , 対応する割込み制御レジスタ (ICR)の EI2OS 許可ビット(ISE:bit11)の設定によって決定されます。 ISE ビットに "1" を設定した場合は , 拡張インテリジェント I/O サービス(EI2OS)が許 可され , DTP 機能が実行されます。 ISEビットに"0"を設定した場合は, EI2OSは禁止され, 外部割込み機能が実行されます。 < 注意事項 > • 1 つの割込み制御レジスタに割当てられている割込み要求は , すべて割込みレベ ル(IL2 ∼ IL0)が同じになります。 • 1 つの割込み制御レジスタに複数の割込み要求が割当てられている場合 , そのう ちの 1 つが EI2OS を使用すると , ほかの割込み要求は使用できません。 ■ DTP/ 外部割込み動作 DTP/ 外部割込みの制御ビットと割込み要因を , 表 18.4-1 に示します。 表 18.4-1 DTP/ 外部割込みの制御ビットと割込み要因 DTP/ 外部割込み 割込み要求フラグビット EIRR:ER7 ∼ ER0 割込み要求許可ビット ENIR:EN7 ∼ EN0 割込み要因 INT7 ∼ INT0 端子への , 有効エッジ / レベルの入力 DTP/ 外部割込みの割込み要求が割込みコントローラに対して出力された場合 , 割込み 制御レジスタ(ICR)の EI2OS 許可ビット(ISE:bit11)に "0" を設定している場合は , 割込み処理が実行されます。"1" を設定している場合は , 拡張インテリジェント I/O サー ビス(EI2OS)が実行されます。 DTP/ 外部割込みの動作を図 18.4-2 に示します。 536 第 18 章 DTP/ 外部割込み 図 18.4-2 DTP/ 外部割込みの動作 DTP/外部割込み回路 ほかの要求 割込みコントローラ ELVRH,L ICR YY EIRR CMP ICR XX ENIR CPU IL CMP 割込み処理 ILM 要因 EI2OS起動 DTP/外部割込み 要求発生 メモリ リソースデータ転送 ディスクリプタ更新 割込みコントローラ 受付け判定 ディスクリプタ データカウンタ CPU割込み 受付け判定 =0 割込み処理 ≠0 再設定または停止 割込み処理 マイクロプログラム 起動 ICR:ISE DTP処理から復帰 EI2OS処理(DTP処理) から復帰 1 0 外部割込みを起動 処理と,割込みフラグクリア 外部割込みから復帰 537 第 18 章 DTP/ 外部割込み 18.4.1 外部割込み機能 DTP/ 外部割込み機能は , DTP/ 外部割込み端子における信号(エッジまたはレベル) 検出により , 割込み要求を発生します。 ■ 外部割込み機能 DTP/ 外部割込み端子において , 検出レベル設定レジスタ(ELVRH, L)で設定した信号 (エッジまたはレベル)が検出されると , DTP/ 外部割込み要因レジスタ(EIRR)の割 込み要求フラグビット(ERx)に "1" がセットされます。 割込み要求フラグビット(ERx)に "1" がセットされた場合に , DTP/ 外部割込み許可レ ジスタ(ENIR)の割込み要求許可ビットを " 許可 "(ENx=1)に設定していると , 割込 みコントローラに対して割込み要求が発生します。 割込みコントローラが , ほかの割込み要求よりも割込み優先順位が高いと判定した場 合は , 割込み処理を開始します。 CPU は , プロセッサステータス(PS)内のインタラプトレベルマスクビット(ILM)と 割込み要求のレベル(ICR:IL)を比較し , 割込み要求レベルが ILM より高く , かつ割込 み許可ビットが " 許可 " に設定されていた場合は(PS:CCR:I=1), 現在実行中の命令の 終了後に割込み処理を実行し , 割込み処理へ分岐します。 割込み処理ルーチン内で , DTP/ 外部割込み要因レジスタ(EIRR)のビットの内 , 対応 する DTP/ 外部割込み要求フラグビット(ERx)に "0" を設定し , DTP/ 外部割込み要求 をクリアしてください。 < 注意事項 > 538 • DTP/ 外部割込み要因レジスタ(EIRR)の DTP/ 外部割込み要求フラグビット (ERx)は , DTP/ 外部割込み許可レジスタ(ENIR)の対応する DTP/ 外部割込み 要求許可ビット(ENx)の設定にかかわらず , DTP/ 外部割込み起動要因が発生 すると "1" が設定されます。 • 割込み処理が起動された場合は , 起動要因となった DTP/ 外部割込み要求フラグ ビット(ERx)をクリアしてください。DTP/ 外部割込み要求フラグビット (ERx)が "1" のままでは割込みから復帰できません。クリアする場合は , 受け付 けられている DTP/ 外部割込み要因以外のフラグビットをクリアしないように注 意してください。 第 18 章 DTP/ 外部割込み DTP 機能 18.4.2 DTP/ 外部割込みは , 外部周辺装置からの信号を DTP/ 外部割込み端子において検出 し , 拡張インテリジェント I/O サービス(EI2OS)を起動します。 ■ DTP 機能 DTP/ 外部割込み機能の検出レベル設定レジスタ(ELVRH, L)で設定した信号レベル を検出することにより , 拡張インテリジェント I/O サービス(EI2OS)を起動します。 EI2OS の動作が " 許可 "(ICR レジスタの ISE:bit11=1)されていれば , 割込み要求が受 付けられた時点で EI2OS を起動し , データ転送を開始します。 1 つのデータ転送が終了するとディスクリプタの更新などが行われ , DTP/ 外部割込み 要因レジスタ(EIRR)の DTP/ 外部割込み要求フラグビット(ERx)がクリアされて , DTP/ 外部割込み端子からの次の要求に備えます。 EI2OS による転送がすべて終了すると , 割込み処理へ分岐します。 図 18.4-3 外部周辺装置とのインタフェース例 "H"レベル要求(ELVR:LB0,LA0=01B) INT0端子への入力 (DTP/DTP外部要因) CPU内部動作 ディスクリプタ 選択,読出し 外部接続の 周辺装置 ディスクリプタ 更新 内部データバス リード/ ライト動作*2 データ転送要求 DTP/外部割込み 要因*1 INT DTP/外部 割込み回路 割込み要求 CPU (EI2OS) 内部メモリ *1:転送開始後,3マシンサイクル以内に取下げる *2:拡張インテリジェントI/Oサービスが"リソース→内部メモリ転送"の場合 539 第 18 章 DTP/ 外部割込み DTP/ 外部割込み使用上の注意 18.5 DTP/ 外部割込みを使用する際は , 以下の点にご注意ください。 ■ DTP/ 外部割込み使用上の注意 ● DTP 機能を使用する場合の外部接続する周辺装置の条件 DTP 機能を使用する場合は , 転送により自動的にデータ転送要求をクリアしてくださ い。 転送動作を開始してから 3 マシンサイクル以内に転送要求信号を無効にしてください。 有効にしたままの場合 , DTP/ 外部割込みは , 次の転送要求が発生したものとして , 再度 データ転送動作を行います。 ● 外部割込みの入力極性 検出レベル設定レジスタでエッジ検出を設定している場合は , エッジを検出するため のパルス幅は最小 3 マシンサイクルが必要です。 要求入力レベルがレベル設定の場合 , パルス幅はデータシートに記載されている最小 パルス幅以上の期間を必要とします。また割込み入力端子がアクティブレベルを保持 しつづけている限りは , DTP/ 外部割込み要因レジスタをクリアしても , 割込みコント ローラへの割込み要求は発生し続けます。 検出レベル設定レジスタ(ELVRH, L)でレベル検出を設定している場合は , 割込み要 因となるレベルが入力されると , DTP/ 外部割込み要因レジスタ(EIRR)の割込み要求 フラグビット (EIRR:ERx) に "1" が設定され , 図 18.5-1 に示すように , 要因が保持され ます。 割込み要求フラグビット (EIRR:ERx) に要因が保持された場合は , DTP/ 外部割込み要因 が取下げられても , 割込み要求許可状態(ENIR:ENx=1)であれば , 割込みコントロー ラへの要求はアクティブのままです。割込みコントローラへの要求を取下げるには DTP/ 外部割込み要因レジスタ(EIRR)の割込み要求フラグビット(EIRR:ERx)をク リアする必要があります。 図 18.5-1 レベル検出が設定されている場合の割込み要求フラグビット (EIRR:ERx) のクリア DTP/外部 割込み要因 DTP/割込み入力 検出回路 割込み要求フラグビット (EIRR:ERx) 許可ゲート クリアしない限り要因を保持し続ける 540 割込み コントローラへ (割込み要求) 第 18 章 DTP/ 外部割込み 図 18.5-2 割込み要求許可の場合の DTP/ 外部割込み要因と割込み要求 DTP/外部割込み要因 ("H"レベル検出の場合) 割込み要因の取下げ 割込みコントローラ への割込み要求 割込み要求フラグビット(EIRR:ERx) のクリアによって無効となる ● 割込みに関する注意 外部割込み機能を使用している場合は , DTP/ 外部割込み要因レジスタ(EIRR)の DTP/ 外部割込み要求フラグビット(ERx)に "1" が設定され , DTP/ 外部割込み要求を " 許可 " に設定した状態(ENIR:ENx=1)では , 割込み処理から復帰できません。割込 み処理ルーチン内で必ず DTP/ 外部割込み要因レジスタ(EIRR)の DTP/ 外部割込み要 求フラグビット(ERx)に "0" を設定してください。 検出レベル設定レジスタ(ELVRH, L)でレベル検出を設定している場合は , 割込み要 因となるレベルが入力されたままであれば , DTP/ 外部割込み要因レジスタ(EIRR)の DTP/ 外部割込み要求フラグビット(ERx)をクリアしても , すぐに再セットされます。 必要に応じて DTP/ 外部割込み要求を禁止するか(ENIR:ENx=0), 割込み要因を解消し てください。 541 第 18 章 DTP/ 外部割込み 18.6 DTP/ 外部割込み回路のプログラム例 DTP/ 外部割込み機能のプログラム例を示します。 ■ DTP/ 外部割込み機能のプログラム例 ● 処理仕様 INT0 端子に入力されるパルスの立上りエッジを検出して外部割込みを発生します。 ● コーディング例 ICR04 DDR6 DDR1 ENIR EIRR ELVRL ELVRH ER0 EN0 ; EQU EQU EQU EQU EQU EQU EQU EQU EQU 0000B4H 000016H 000011H 000030H 000031H 000032H 000033H EIRR:0 ENIR:0 ;DTP/ 外部割込み制御レジスタ ; ポート 6 方向レジスタ ; ポート 1 方向レジスタ ;DTP/ 外部割込み許可レジスタ ;DTP/ 外部割込み要因レジスタ ; 検出レベル設定レジスタ :L ; 検出レベル設定レジスタ :H ;INT0 割込み要求フラグビット ;INT0 割込み要求許可ビット ;--------- メインプログラム ------------------------------------------CODE CSEG START: LOOP: MOV AND MOV CLRB MOV CLRB SETB MOV OR MOV MOV BRA ; スタックポインタ(SP)などは初期化済みとする I:DDR1,#00000000B;DDR1 を " 入力ポート " に設定 CCR,#0BFH ; 割込み禁止 I:ICR04,#00H ; 割込みレベル 0(最強), EI2OS 禁止 I:EN0 ;ENIR で INT0 を禁止 I:ELVRL,#00000010B;INT0 は , 立上がりエッジ選択 I:ER0 ;EIRR で INT0 の割込み要求フラグクリア I:EN0 ;ENIR で INT0 の割込み要求許可 ILM,#07H ;PS 内の ILM をレベル7に設定 CCR,#40H ; 割込み許可 A,#00H ; 無限ループ A,#01H ; LOOP ; ;--------- 割込みプログラム ------------------------------------------WARI: ; CODE CLRB I:ER0 ・ ユーザ処理 ・ RETI ENDS ; 割込み要求フラグをクリア ; 割込み処理からの復帰 ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH VECT 542 ORG DSL 00FFACH WARI ; 割込み番号 #20(14H)にベクタを設定 ORG DSL 00FFDCH START ; リセットベクタ設定 DB ENDS END 00H ; シングルチップモードに設定 START 第 18 章 DTP/ 外部割込み ■ DTP 機能のプログラム例 ● 処理仕様 INT0 端子に入力される信号の "H" レベルを検出して , 拡張インテリジェント I/O サー ビス(EI2OS)のチャネル 0 を起動します。 DTP 処理(EI2OS)で RAM 上のデータをポート 0 へ出力します。 ● コーディング例 ICR04 DDR0 DDR1 ENIR EIRR ELVRL ELVRH ER0 EN0 ; EQU EQU EQU EQU EQU EQU EQU EQU EQU 0000B4H 000010H 000011H 000030H 000031H 000032H 000033H EIRR:0 ENIR:0 ;DTP/ 外部割込み制御レジスタ ; ポート 0 方向レジスタ ; ポート 1 方向レジスタ ;DTP/ 外部割込み許可レジスタ ;DTP/ 外部割込み要因レジスタ ; 検出レベル設定レジスタ :L ; 検出レベル設定レジスタ :H ;INT0 割込み要求フラグビット ;INT0 割込み要求許可ビット BAPL BAPM BAPH ISCS IOAL IOAH DCTL DCTH ; EQU EQU EQU EQU EQU EQU EQU EQU 000100H 000101H 000102H 000103H 000104H 000105H 000106H 000107H ; バッファアドレスポインタ下位 ; バッファアドレスポインタ中位 ; バッファアドレスポインタ上位 ;EI2OS ステータスレジスタ ;I/O アドレスレジスタ下位 ;I/O アドレスレジスタ上位 ; データカウンタ下位 ; データカウンタ上位 ;--------- メインプログラム ------------------------------------------CODE CSEG START: MOV MOV AND MOV MOV MOV MOV ; スタックポインタ(SP)などは初期化済みとする I:DDR0,#11111111B;DDR0 で " 出力ポート " に設定 I:DDR1,#00000000B;DDR1 で " 入力ポート " に設定 CCR,#0BFH ; 割込み禁止 I:ICR04,#08H ; 割込みレベル 0(最強)EI2OS 許可 チャネル 0 BAPL,#00H ; 出力データの格納先アドレスの設定 BAPM,#06H ;(600H ∼ 60AH を使用) BAPH,#00H MOV ISCS,#12H MOV MOV MOV MOV IOAL,#00H IOAH,#00H DCTL,#0AH DCTH,#00H ; バイト転送 , バッファアドレス+ 1, ;I/O アドレス固定 , メモリ→ I/O へ転送 ; 転送先アドレスポインタとして ; ポート 0(PDR0)を設定 ; 転送回数を 10 回に設定 ; CLRB MOV CLRB SETB MOV OR LOOP: I:EN0 ;ENIR で INT0 を禁止 I:ELVRL,#00000001B;INT0 は , "H" レベル検出を設定 I:ER0 ;EIRR で INT0 の割込み要求フラグクリア I:EN0 ;ENIR で INT0 の割込み要求許可 ILM,#07H ;PS 内の ILM をレベル7に設定 CCR,#40H ; 割込み許可 MOV A,#00H ; 無限ループ MOV A,#01H ; BRA LOOP ; 543 第 18 章 DTP/ 外部割込み ;--------- 割込みプログラム ------------------------------------------WARI: CLRB I:ER0 ;INT0 割込み要求フラグをクリア ; ; 要求があればチャネルを切り換え , 転送アドレスを変更 ・ ユーザ処理 ;EI2OS の終了などの処理を再指定。処理を終了するために , ; 割込みは禁止であること ・ RETI ; 割込み処理からの復帰 CODE ENDS ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 00FFACH ; 割込み番号 #20(14H)にベクタを設定 VECT 544 DSL ORG DSL DB ENDS END WARI 00FFDCH START 00H START ; リセットベクタ設定 ; シングルチップモードに設定 第 19 章 遅延割込み発生モジュール 遅延割込み発生モジュールの機能と動作について 説明します。 19.1 遅延割込み発生モジュールの概要 19.2 遅延割込み発生モジュールのブロックダイヤグラム 19.3 遅延割込み発生モジュールの構成 19.4 遅延割込み発生モジュールの動作説明 19.5 遅延割込み発生モジュール使用上の注意 19.6 遅延割込み発生モジュールのプログラム例 545 第 19 章 遅延割込み発生モジュール 19.1 遅延割込み発生モジュールの概要 遅延割込み発生モジュールは , タスク切換え用の割込みを発生するためのモジュー ルです。 ソフトウェアによってハードウェア割込み要求を発生させることができます。 ■ 遅延割込み発生モジュールの概要 遅延割込み発生モジュールを使用することにより , ソフトウェアによってハードウェ ア割込み要求を発生または解除できます。 表 19.1-1 に , 遅延割込み発生モジュールの概要を示します。 表 19.1-1 遅延割込み発生モジュールの概要 機能と制御 割込み要因 遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に "1" を設定す ることにより割込み要求を発生 遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に "0" を設定す ることにより割込み要求を解除 割込み番号 #42(2AH) 割込み制御 レジスタによる許可設定はありません。 割込みフラグ EI2OS 546 遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に保持されてい ます。 拡張インテリジェント I/O サービスには対応していません。 第 19 章 遅延割込み発生モジュール 19.2 遅延割込み発生モジュールのブロックダイヤグラム 遅延割込み発生モジュールは , 以下のブロックで構成されています。 • 割込み要求ラッチ • 遅延割込み要求発生 / 解除レジスタ(DIRR) ■ 遅延割込み発生モジュールのブロックダイヤグラム 図 19.2-1 遅延割込み発生モジュールのブロックダイヤグラム 内部データバス - - - - - - - R0 遅延割込み要求発生/解除レジスタ(DIRR) S R 割込み要求 ラッチ 割込み要求 信号 -:未定義 ● 割込み要求ラッチ 遅延割込み要求発生 / 解除レジスタ(DIRR)の設定内容(遅延割込み要求の発生また は解除)を保持するラッチです。 ● 遅延割込み要求発生 / 解除レジスタ(DIRR) 遅延割込み要求を発生または解除します。 ■ 割込み番号 遅延割込み発生モジュールで使用する割込み番号を以下に示します。 • 割込み番号 #42(2AH) 547 第 19 章 遅延割込み発生モジュール 19.3 遅延割込み発生モジュールの構成 遅延割込み発生モジュールのレジスタ一覧および詳細を記述します。 ■ レジスタと初期値の一覧 図 19.3-1 遅延割込み発生モジュールのレジスタと初期値の一覧 bit 遅延割込み要求発生/解除レジスタ(DIRR) X :不定 548 15 14 13 12 11 10 9 8 X X X X X X X 0 第 19 章 遅延割込み発生モジュール 遅延割込み要求発生 / 解除レジスタ(DIRR) 19.3.1 遅延割込み要求発生 / 解除レジスタ(DIRR)は , 遅延割込み要求を発生または解除 します。 ■ 遅延割込み要求発生 / 解除レジスタ(DIRR) 図 19.3-2 遅延割込み要求発生 / 解除レジスタ(DIRR) bit 15 14 13 12 11 10 9 8 初期値 XXXXXXX0B - - - - - - - R/W bit8 - :未定義 R/W :リード/ライト :初期値 R0 0 1 遅延割込み要求発生ビット 遅延割込み要求を解除 遅延割込み要求を発生 表 19.3-1 遅延割込み要求発生 / 解除レジスタ(DIRR)の機能 ビット名 機 能 bit15 ∼ bit9 未定義ビット リードした場合 : 値は不定です。 ライトした場合 : 影響しません。 bit8 R0: 遅延割込み要 求発生ビット 遅延割込み要求を発生または解除します。 このビットに "0" を設定した場合 : 遅延割込み要求を解除します。 このビットに "1" を設定した場合 : 遅延割込み要求を発生します。 549 第 19 章 遅延割込み発生モジュール 19.4 遅延割込み発生モジュールの動作説明 遅延割込み発生モジュールには , ソフトウェアによって割込み要求を発生または解 除する機能があります。 ■ 遅延割込み発生モジュールの動作説明 遅延割込み発生モジュールを使用するには , 図 19.4-1 の設定が必要です。 図 19.4-1 遅延割込み発生モジュールの設定 bit 15 14 13 12 11 10 9 8 - - - - - - - R0 DIRR ◎ - :未定義ビット ◎ :使用ビット 遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に "1" を設定した場合 , 割込み 要求を発生します。割込み要求の許可ビットはありません。 ● 遅延割込み発生モジュールの動作 遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に "1" を設定した場合 , 割込み 要求ラッチが "1" に設定され , 割込みコントローラに対して割込み要求を発生します。 要求された割込みに対して割込みコントローラが , ほかの割込み要求よりも割込み優 先順位が高いと判定した場合は , CPU に対して割込み要求が発生します。 CPU 側は , プロセッサステータス(PS)内のインタラプトレベルマスクビット(ILM) と割込み要求のレベル(ICR: IL)を比較し , 割込み要求レベルが ILM より高かった場合 は , 現在実行中の命令の終了後に , 遅延割込み処理を実行します。 割込み処理ルーチン内で , ユーザプログラムによって R0:bit8 に "0" を設定することで 割込み要求を解除し , タスクを切り換えます。 図 19.4-2 に遅延割込み発生モジュールの動作を示します。 図 19.4-2 遅延割込み発生モジュールの動作 遅延割込み発生モジュール ほかの要求 割込みコントローラ DIRR ICR YY IL CMP CMP ICR XX 550 CPU ILM 割込み 処理 第 19 章 遅延割込み発生モジュール 19.5 遅延割込み発生モジュール使用上の注意 遅延割込み発生モジュールを使用する場合は , 以下の点に注意してください。 ■ 遅延割込み発生モジュール使用上の注意 割込み処理ルーチン内で遅延割込み要求発生 / 解除レジスタ(DIRR)の R0:bit8 に "0" を設定せずに , 割込み処理から復帰した場合は , 再度割込み処理を起動します。 遅延割込み発生モジュールにおける割込みは , ソフトウェア割込みとは異なり , 遅延が 伴います。 551 第 19 章 遅延割込み発生モジュール 19.6 遅延割込み発生モジュールのプログラム例 遅延割込み発生モジュールのプログラム例を示します。 ■ 遅延割込み発生モジュールのプログラム例 ● 処理仕様 メインプログラムで遅延割込み要因発生 / 解除レジスタ(DIRR)の R0:bit8 に "1" を設 定し , 遅延割込み要求を発生させ , タスク切換えを処理します。 ● コーディング例 ICR15 EQU 0000BFH ; 割込み制御レジスタ DIRR EQU 00009FH ; 遅延割込み要求発生 / 解除レジスタ DIRR_R0 EQU DIRR:0 ; 遅延割込み要求発生ビット ;--------- メインプログラム ------------------------------------------CODE CSEG START: ; スタックポインタ(SP)などは初期化済みとする AND CCR,#0BFH ; 割込み禁止 MOV I:ICR15,#00H ; 割込みレベル 0(最強) MOV ILM,#07H ;PS 内の ILM をレベル 7 に設定 OR CCR,#40H ; 割込み許可 SETB I:DIRR_R0 ; 遅延割込み要求発生 LOOP MOV A,#00H ; 無限ループ MOV A,#01H BRA LOOP ;--------- 割込みプログラム ------------------------------------------WARI: CLRB I:DIRR_R0 ; 割込み要求フラグをクリア : ; ユーザ処理 ; : RETI ; 割込みから復帰 CODE ENDS ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 0FF54H ; 割込み #42(2AH)にベクタを設定 VECT 552 DSL ORG DSL DB ENDS END WARI 0FFDCH START 00H START ; リセットベクタ設定 ; シングルチップモードに設定 第 20 章 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータの機能と動作について 説明します。 20.1 8/10 ビット A/D コンバータの概要 20.2 8/10 ビット A/D コンバータのブロックダイヤグラム 20.3 8/10 ビット A/D コンバータの端子 20.4 8/10 ビット A/D コンバータのレジスタ構成 20.5 8/10 ビット A/D コンバータの割込み 20.6 8/10 ビット A/D コンバータの動作 20.7 8/10 ビット A/D コンバータ使用上の注意 20.8 8/10 ビット A/D コンバータのプログラム例 1 (EI2OS を使用した場合の単発変換モード) 20.9 8/10 ビット A/D コンバータのプログラム例 2 (EI2OS を使用した場合の連続変換モード) 20.10 8/10 ビット A/D コンバータのプログラム例 3 (EI2OS を使用した場合の停止変換モード) 553 第 20 章 8/10 ビット A/D コンバータ 20.1 8/10 ビット A/D コンバータの概要 8/10 ビット A/D コンバータは , RC 逐次比較変換方式によりアナログ入力電圧を 10 ビットまたは 8 ビットのディジタル値へ変換します。入力信号は , アナログ入力端 子の 8 チャネルから選択します。変換はソフトウェア , 16 ビットリロードタイマ 1 出力(立上りエッジ)および 16 ビットフリーランタイマゼロ検出エッジにより起動 できます。 ■ 8/10 ビット A/D コンバータの機能 8/10 ビット A/D コンバータは , アナログ入力端子へのアナログ電圧入力(入力電圧)を ディジタル値へ変換します。8/10 ビット A/D コンバータの特長は , 以下のとおりです。 • 最小変換時間は , 6.13µs(この値は , マシンクロックが 16MHz の場合の値であり , サ ンプリング時間を含んでいます)。 • 最小サンプリング時間は , 3.75µs(この値は , マシンクロックが 16MHz の場合の値 です)。 • サンプルホールド回路における RC 逐次比較変換方式。 • 10 ビットまたは 8 ビットの分解能を選択可能。 • プログラムによるアナログ入力端子に対するチャネル(最高 8 チャネル可能)選択 可能。 • A/D 変換終了時に , 割込み要求の生成と EI2OS の起動可能。 • 割込み許可時 , 変換データ保護機能は連続変換によるデータ消失の発生を完全に防 止。 • 変換は , ソフトウェア , 16 ビットリロードタイマ 1 出力(立上りエッジ)および 16 ビットフリーランタイマゼロ検出エッジにより起動。 3 つの異なる変換モードを表 20.1-1 に示します。 表 20.1-1 8/10 ビット A/D コンバータの変換モード 単一変換 スキャン変換 単発変換モード 設定したチャネル(1 チャネル)の入力を 1 回変換後終了。 2 つ以上の連続したチャネル(最大 8 チャ ネル)の入力を 1 回だけ変換後終了。 連続変換モード 設定したチャネル(1 チャネル)の入力を 繰返し変換。 2 つ以上の連続したチャネル(最大 8 チャ ネル)の入力を繰返し変換。 停止変換モード 設定したチャネル(1 チャネル)を 1 回変 換実行後 , 一時停止し , 次の起動がかかるま で待機。 2 つ以上の連続したチャネル(最大 8 チャ ネル)を 1 回変換実行後 , 一時停止し , 次の 起動がかかるまで待機。 554 第 20 章 8/10 ビット A/D コンバータ ■ 8/10 ビット A/D コンバータ割込みと EI2OS 表 20.1-2 8/10 ビット A/D コンバータ割込みと EI2OS 割込み制御レジスタ ベクトルテーブルアドレス EI2OS 割込み番号 #11(0BH) レジスタ名 アドレス 下位 上位 バンク ICR00 0000B0H FFFFD0H FFFFD1H FFFFD2H ○ ○ :EI2OS 割込みクリア信号により割込み要求フラグがクリアされると , 使用可能。 555 第 20 章 8/10 ビット A/D コンバータ 20.2 8/10 ビット A/D コンバータのブロックダイヤグラム 8/10 ビット A/D コンバータは , 9 ブロックから構成されています。ブロックダイヤ グラムを図 20.2-1 に示します。 ■ 8/10 ビット A/D コンバータのブロックダイヤグラム 図 20.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム D/Aコンバータ AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 入力回路 MPX 順次コンペアレジスタ コンパレータ 内部データバス AVCC AVR AVSS デコーダ サンプルホールド回路 データレジスタ ADCR0,ADCR1 A/D制御レジスタ0 A/D制御レジスタ1 ADCS0, ADCS1 16ビットリロードタイマ1 16ビットフリーランタイマ0検出 φ 動作クロック プリスケーラ φ:マシンクロック ● A/D 制御ステータスレジスタ(ADCS0, ADCS1) このレジスタは , A/D 変換モードの設定と A/D 変換開始 / 終了チャネルの設定を行う機 能があります。 ● A/D データレジスタ(ADCR0, ADCR1) このレジスタは , A/D 変換起動要因の設定 , 割込みの許可 / 禁止の設定 , 割込み要求の 確認 , A/D 変換の停止中 / 動作中の確認を行う機能があります。 556 第 20 章 8/10 ビット A/D コンバータ ● クロックセレクタ クロックセレクタは , A/D 変換を起動するためのクロックを選択します。16 ビットリ ロードタイマチャネル 1 出力か 16 ビットフリーランタイマゼロ検出のいずれかを起動 クロックとして使用できます。 ● デコーダ この回路は , A/D 制御ステータスレジスタ(ADCS0)の ANE2 ∼ ANE0:bit2 ∼ bit0 と ANS2 ∼ ANS0:bit5 ∼ bit3 の設定値に基づいて , 使用するアナログ入力端子を選択しま す。 ● アナログチャネルセレクタ この回路は , 使用するピンを 8 つのアナログ入力端子の中から選択します。 ● サンプルホールド回路 この回路は , アナログチャネルセレクタで選択されたチャネルの入力電圧を保持しま す。この回路は , A/D 変換が起動された直後に得た入力電圧をサンプリングし , 保持す ることで A/D 変換中(コンペア中)は , A/D 変換における入力電圧変動の影響を受け なくします。 ● D/A コンバータ この回路は , サンプルホールド回路で保持されている入力電圧と , 比較される基準電圧 を生成します。 ● コンパレータ この回路は , サンプルホールド回路で保持されている入力電圧を D/A コンバータの出 力電圧と比較し , どちらが大きいかを判断します。 ● 制御回路 この回路は , コンパレータで生成された信号に基づいて A/D 変換値を決定します。A/D 変換が完了すると , この回路は A/D データレジスタ(ADCR0, ADCR1)に変換結果を 格納し , 割込み要求を生成します。 557 第 20 章 8/10 ビット A/D コンバータ 20.3 8/10 ビット A/D コンバータの端子 8/10 ビット A/D コンバータの端子について説明します。また , 端子のブロックダイ ヤグラムも示します。 ■ 8/10 ビット A/D コンバータの端子 A/D コンバータの端子は , 汎用端子としても使用されます。端子機能 , I/O 形式および 8/10 ビット A/D コンバータを使用するために必要な設定値を表 20.3-1 に示します。 表 20.3-1 8/10 ビット A/D コンバータの端子 機 能 端子名 チャネル 0 P50/AN0 チャネル 1 P51/AN1 チャネル 2 P52/AN2 チャネル 3 P53/AN3 チャネル 4 P54/AN4 チャネル 5 P55/AN5 チャネル 6 P56/AN6 チャネル 7 P57/AN7 558 端子機能 ポート 5 入出 力またはアナ ログ入力 入力信号種別 CMOS 出力 / CMOS ヒステリ シス入力または アナログ入力 プルアップ 設定 なし スタンバイ 制御 端子を使用するために 必要な設定値 なし ポート 5 を入力ポートと して設定します (DDR5:bit0 ∼ bit7=0)。 ポート 5 をアナログ入力 ポートとして設定します (ADER:bit0 ∼ bit7= 11111111B)。 第 20 章 8/10 ビット A/D コンバータ ■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム 図 20.3-1 P50/AN0 ∼ P57/AN7 端子のブロックダイヤグラム ADER アナログ入力 内部データバス ポートデータレジスタ(PDR) PDR読出し 出力ラッチ PDR書込み 端子 ポート方向レジスタ(DDR) 方向ラッチ DDR書込み DDR読出し < 注意事項 > スタンバイ制御信号(SPL=1) • 端子を入力ポートとして使用する場合は , DDR5 レジスタの対応するビットに "0" を設定し , アナログ入力許可(ADER)の対応するビットに "0" を設定してく ださい。 • 端子をアナログ入力端子として使用する場合は , アナログ入力許可(ADER)レ ジスタの対応するビットに "1" を設定してください。PDR5 レジスタから読み出 される値は "0" です。 559 第 20 章 8/10 ビット A/D コンバータ 20.4 8/10 ビット A/D コンバータのレジスタ構成 8/10 ビット A/D コンバータのレジスタ構成を示します。 ■ 8/10 ビット A/D コンバータのレジスタ構成 図 20.4-1 8/10 ビット A/D コンバータのレジスタ構成 アナログ入力許可レジスタ 7 6 5 4 3 1 0 ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 R/W 1 R/W 1 R/W 1 R/W 1 R/W 1 R/W 1 R/W 1 R/W 1 15 14 13 12 11 10 9 8 BUSY INT INTE PAUS STS1 STS0 STRT RESV R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 W 0 R/W 0 6 5 4 3 2 1 0 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 15 14 13 12 11 9 8 S10 ST1 ST0 CT1 CT0 D9 D8 R/W 0 W 0 W 1 W 0 W 1 R X R X bit リード/ライト 初期値 2 ADER A/D制御ステータスレジスタ1 bit リード/ライト 初期値 ADCS1 A/D制御ステータスレジスタ0 7 bit リード/ライト 初期値 ADCS0 A/Dデータレジスタ1 bit リード/ライト 初期値 10 ADCR1 A/Dデータレジスタ0 bit リード/ライト 初期値 560 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R X R X R X R X R X R X R X R X ADCR0 第 20 章 8/10 ビット A/D コンバータ A/D 制御ステータスレジスタ 1(ADCS1) 20.4.1 A/D 制御ステータスレジスタ 1(ADCS1)は , A/D 変換起動要因の設定 , 割込みの許 可 / 禁止 , 割込み要求の確認および A/D 変換の停止中 / 動作中の確認を行う機能があ ります。 ■ A/D 制御ステータスレジスタ 1(ADCS1) 図 20.4-2 A/D 制御ステータスレジスタ 1(ADCS1) bit 15 14 BUSY INT R/W R/W 13 12 11 10 9 8 INTE PAUS STS1 STS0 STRT RESV R/W R/W R/W R/W W 7 0 初期値 (ADCS0) 00000000B R/W 予約 予約ビット このビットには必ず"0"を書込んでください STRT A/D変換起動ビット (ソフトウェアにより起動される(ADC2:EXT=0)場合にのみ有効) A/D変換機能が起動しません A/D変換機能が起動します 0 1 STS1 STS0 0 0 ソフトウェアにより起動します 0 1 外部トリガまたはソフトウェアにより起動します 1 0 1 1 タイマまたはソフトウェアにより起動します 外部トリガ,タイマまたはソフトウェア により起動します PAUS 停止フラグビット (EI2OSが使用されている場合にのみ有効) A/D変換が停止しません A/D変換が停止します 0 1 INTE 1 0 割込み要求出力が禁止になります 1 割込み要求出力が禁止になります 読出し 書込み A/D変換が完了していません A/D変換が完了しました BUSY 0 R/W : リード/ライト W : ライトオンリ : 初期値 割込み要求許可ビット 割込み要求フラグビット INT 0 A/D起動要因ビット 1 このビットはクリアされます 影響なし 変換中ビット 読出し A/D変換が停止されています A/D変換が進行中です 書込み A/D変換が停止されます 影響なし 561 第 20 章 8/10 ビット A/D コンバータ 表 20.4-1 A/D 制御ステータスレジスタ 1(ADCS1)の各ビットの機能説明 ( 1 / 2 ) ビット名 機 能 BUSY: 変換中ビット このビットは , A/D コンバータの動作状態を示します。 このビットの読出し値が "0" の場合 , A/D 変換は停止されています。"1" の場 合 , A/D 変換動作中を示します。 • このビットに "0" を設定した場合 :A/D 変換は停止します。 • このビットに "1" を設定した場合 : このビットの値は変化せず , 動作に影響 しません。 ( 注意事項 ) 強制停止(BUSY=0)とソフトウェアによる起動(STRT=1)を同時に設定 しないでください。 bit14 INT: 割込み要求フ ラグビット A/D データレジスタに A/D 変換データが格納されると , このビットに "1" が 設定されます。 • 割込み要求許可ビット(INTE)に "1" が設定されている場合に "1" がセット されると , 割込み要求が生成されます。EI2OS が許可になっている場合は , EI2OS が起動します。 • このビットに "0" を設定した場合 : このビットはクリアされます。 • このビットに "1" を設定した場合 : このビットの値は変化せず , 動作に影響 しません。 • EI2OS が起動すると , このビットはクリアされます。 ( 注意事項 ) このビットに "0" を書き込むことによってこのビットをクリアする処理は , A/D コンバータが動作していないときにのみ行ってください。 bit13 INTE: 割込み要求許 可ビット • • bit15 • • • • このビットは , CPU への割込み出力を許可または禁止します。 このビットに "1" を設定した場合 : 割込み要求フラグビット(INT)に "1" がセットされると割込み要求が 生成されます。 EI2OS を使用する場合は "1" を設定してください。 A/D 変換が一時停止すると , このビットには "1" が設定されます。 この A/D コンバータは , A/D データレジスタを 1 つしか備えていません。し たがって , 連続変換モード時は , CPU が前の変換結果を読み出す前に新しい 変換結果が書き込まれると , 前の変換結果は失われます。連続変換モードが 選択されると , 変換が完了するたびに EI2OS が自動的に変換結果をメモリへ 転送するようにしてください。このビットはまた , 次の変換を開始する前に , 変換データ転送の完了を複数の割込みが発生するのを防止します。変換が完 了すると , このビットには "1" が設定されます。この状態は , EI2OS がデータ レジスタのデータを転送し終えるまで保持されます。 • このビットに "1" を設定した場合 : A/D 変換は停止します。したがって , 変換データを格納できません。 EI2OS が変換データの転送を完了すると , A/D コンバータは自動的に変 換を再開します。 ( 注意事項 ) このビットは , EI2OS が使用されている場合にのみ有効です。 • • bit12 bit11, bit10 562 PAUS: 停止フラグ ビット STS1, STS0: A/D 起動要因 ビット これらのビットは , A/D 変換の起動方法を選択します。 複数の起動要因が兼用されている場合 , 最初に発生した起動要因により起動 されます。 ( 注意事項 ) A/D 変換時におけるこれらのビットの設定変更後直ちに有効になるので , 対 応する起動要因が存在しない間にのみ行ってください。 • • 第 20 章 8/10 ビット A/D コンバータ 表 20.4-1 A/D 制御ステータスレジスタ 1(ADCS1)の各ビットの機能説明 ( 2 / 2 ) ビット名 bit9 STRT: A/D 変換起動 ビット bit8 予約 : 予約ビット 機 能 • このビットを使用すると , ソフトウェアは A/D 変換を起動できます。 • このビットに "1" を設定した場合 :A/D 変換を起動できます。 • このビットは , 停止変換モード時に変換の再起動はできません。 • バイト/ワード命令では "1" が読み出されます。 • リードモディファイライト系命令では "0" が読み出されます。 ( 注意事項 ) 強制停止(BUSY=0)とソフトウェアによる起動(STRT=1)を同時に設定 しないでください。 このビットには必ず "0" を書き込んでください。 563 第 20 章 8/10 ビット A/D コンバータ 20.4.2 A/D 制御ステータスレジスタ 0(ADCS0) A/D 制御ステータスレジスタ 0(ADCS0)は , 変換モードと A/D 変換チャネルを選 択します。 ■ A/D 制御ステータスレジスタ 0(ADCS0) 図 20.4-3 A/D 制御ステータスレジスタ 0(ADCS0) bit 8 15 (ADCS:H) 7 6 5 4 3 2 1 0 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 R/W R/W R/W R/W R/W ANE2 ANE1 ANE0 R/W R/W 初期値 00000000B R/W A/D変換終了チャネル選択ビット 0 0 0 AN0端子 0 0 1 AN1端子 0 1 0 AN2端子 0 1 1 AN3端子 1 0 0 AN4端子 1 0 1 AN5端子 1 1 0 AN6端子 1 1 1 AN7端子 A/D変換開始チャネル選択ビット ANS2 ANS1 ANS0 0 0 R/W :リード/ライト :初期値 564 停止 0 AN0端子 0 0 1 AN1端子 0 1 0 AN2端子 0 1 1 AN3端子 1 0 0 AN4端子 1 0 1 AN5端子 1 1 0 AN6端子 1 1 1 AN7端子 変換時の読出し 停止変換モードにおける 停止時の読出し 変換中の チャネル番号 直前に変換した チャネル番号 MD1 MD0 0 0 単発変換モード1 (動作中に再起動できます) 0 1 単発変換モード2 (動作中に再起動できません) 1 0 1 1 A/D変換モード選択ビット 連続変換モード (動作中に再起動できません) 停止変換モード (動作中に再起動できません) 第 20 章 8/10 ビット A/D コンバータ 表 20.4-2 A/D 制御ステータスレジスタ 0(ADCS0)の各ビットの機能説明 ( 1 / 2 ) ビット名 機 能 これらのビットは , A/D 変換機能の変換モードを選択します。 MD1, MD0 ビットの値により , 単発変換モード 1, 単発変換モード 2, 連続変換 モードおよび停止変換モードの 4 つのモードを選択できます。 • 各モードにおける動作を以下に説明します。 単発変換モード 1: ANS2 ∼ ANS0:bit5 ∼ bit3 で設定されたチャネルから ANE2 ∼ ANE0:bit2 ∼ bit0 で設定されたチャネルへの A/D 変換が 1 回のみ行われます。 動作中 , 再起動ができます。 単発変換モード 2: ANS2 ∼ ANS0:bit5 ∼ bit3 で設定されたチャネルから ANE2 ∼ ANE0:bit2 ∼ bit0 で設定されたチャネルへの A/D 変換が 1 回のみ行われます。 動作中 , 再起動はできません。 連続変換モード : ANS2 ∼ ANS0:bit5 ∼ bit3 で設定されたチャネルから ANE2 ∼ ANE0:bit2 ∼ bit0 で設定されたチャネルへの A/D 変換が繰返し行われます。この連続変換 は , A/D 制御ステータスレジスタ 1(ADCS1)の BUSY:bit15 で停止されるま で継続します。 動作中 , 再起動はできません。 停止変換モード : ANS2 ∼ ANS0:bit5 ∼ bit3 で設定されたチャネルから ANE2 ∼ ANE0:bit2 ∼ bit0 で設定されたチャネルへの A/D 変換が繰返し行われますが , 各チャネル の変換が完了するたびに一時停止が発生します。この連続変換は , A/D 制御 ステータスレジスタ 1(ADCS1)の BUSY:bit15 で停止されるまで継続しま す。 動作中 , 再起動はできません。 一時停止が発生しているとき , A/D 制御ステータスレジスタ 1(ADCS1)の STS1, STS0:bit11, bit10 で選択された起動要因が生成されると , 変換は再起動 されます。 ( 注意事項 ) 単発変換モード 1, 単発変換モード 2, 連続変換モードおよび停止変換モード 時は , 16 ビットフリーランタイマゼロ検出 , 16 ビットリロードタイマ 1, ソ フトウェアすべての変換の再起動はできません。 • • bit8, bit7 MD1, MD0: A/D 変換モー ド選択ビット 565 第 20 章 8/10 ビット A/D コンバータ 表 20.4-2 A/D 制御ステータスレジスタ 0(ADCS0)の各ビットの機能説明 ( 2 / 2 ) ビット名 機 能 • • • • bit5 ∼ bit3 ANS2, ANS1, ANS0: A/D 変換開始 チャネル選択 ビット • ( 注意事項 ) • A/D 変換開始チャネル選択ビット (ANS2, ANS1, ANS0) を設定した後に , サンプリング時間選択ビット (ST1, ST0), コンペア時間選択ビット (CT1, CT0) および A/D 変換終了チャネル選択ビット (ANE2, ANE1, ANE0) を リードモディファイライト系命令で設定しないでください。 • ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換 チャネルが読み出されるため , ANS2, ANS1, ANS0 ビット設定後に ST1, ST0 ビット , CT1, CT0 ビットおよび ANE2, ANE1, ANE0 ビットをリード モディファイライト系命令で設定した場合 , ANS2, ANS1, ANS0 ビットの 値が書き換わる可能性があります。 • • bit2 ∼ bit0 566 ANE2, ANE1, ANE0: A/D 変換終了 チャネル選択 ビット これらのビットは , A/D 変換開始チャネルの設定および変換中のチャネル番 号を表示します。 A/D 変換を起動すると , これらのビットで指定されたチャネルから変換を開 始します。 A/D 変換時 , これらのビットは変換チャネル番号を表示します。停止変換 モードにおける一時停止時 , これらのビットは直前の変換チャネル番号を表 示します。 本ビットの読出し値は , 本ビットに値を設定した場合でも ,A/D 変換が開始 されるまでは , 設定した値ではなく , 前回に A/D 変換したチャネル番号が読 み出されます。 リセット時は ,"000B" に初期化されます。 • これらのビットは , A/D 変換終了チャネルを設定します。 A/D 変換は , 起動されると , これらのビットで指定されたチャネルに対して まで行います。 これらのビットが , ANS2 ∼ ANS0 で指定されたチャネルを指定すると , その チャネルのみを A/D 変換します。連続変換モードまたは停止変換モード時 は , ANS2 ∼ ANS0:bit5 ∼ bit3 で指定された開始チャネルの A/D 変換は , ANE2 ∼ ANE0 で指定されたチャネルの A/D 変換後に行われます。開始チャ ネルの番号が終了チャネルの番号より大きい場合 , A/D 変換は , 開始チャネ ル , AN7, AN0, 終了チャネルの順序で行います。 第 20 章 8/10 ビット A/D コンバータ A/D データレジスタ(ADCR0, ADCR1) 20.4.3 A/D データレジスタ(ADCR0, ADCR1)は , A/D 変換結果の格納および A/D 変換分 解能の選択を行います。 ■ A/D データレジスタ(ADCR0, ADCR1) 図 20.4-4 A/D データレジスタ(ADCR0, 1) bit 000037H 000036H 15 14 13 12 11 10 9 8 S10 ST1 ST0 CT1 CT0 - D9 R/W W W W W - R 7 6 5 4 3 2 1 0 初期値 D8 D7 D6 D5 D4 D3 D2 D1 D0 R R R R R R R R R 00101-XX XXXXXXXXB A/Dデータビット D9~D0 変換データ CT1 CT0 0 0 1 0 0 1 1 1 比較時間設定ビット 44マシンサイクル (5.50µs@8MHz) 66マシンサイクル (4.12µs@16MHz) 88マシンサイクル (5.50µs@16MHz) 176マシンサイクル (11.0µs@16MHz) ST1 ST0 0 0 1 0 0 1 1 1 サンプリング時間設定ビット 20マシンサイクル (2.5µs@8MHz) 32マシンサイクル (2.0µs@16MHz) 48マシンサイクル (3.0µs@16MHz) 128マシンサイクル (8.0µs@16MHz) S10 0 1 A/D変換分解能選択ビット 10ビット分解能モード(D9~D0) 8ビット分解能モード(D7~D0) 567 第 20 章 8/10 ビット A/D コンバータ 表 20.4-3 A/D データレジスタ(ADCR0, ADCR1)の各ビットの機能説明 ビット名 bit15 bit14, bit13 機 能 S10: A/D 変換分解 能選択ビット ST1, ST0: サンプリング 時間設定ビッ ト • このビットは , A/D 変換の分解能を設定します。 • このビットに "0" を設定した場合 :10 ビット分解能が設定されます。 • このビットに "1" を設定した場合 :8 ビット分解能が設定されます。 ( 注意事項 ) 分解能によって使用される A/D データビットが異なります。 これらのビットは , A/D 変換のサンプリング時間を設定します。 A/D 変換が起動されると , このビットで設定されている時間にアナログ入力 が取込まれます。 ( 注意事項 ) 16MHz 動作時にこれらのビットに "00B"(8MHz)を設定すると , アナログ • • 電圧の取込みを正常に行えないことがあります。 これらのビットは , A/D 変換の比較時間を設定します。 アナログ入力が取込まれた後(サンプリング時間経過後), これらのビット で指定されている時間が経過後に , 変換結果データが確定され , このレジス タの D9 ∼ D0:bit9 ∼ bit0 に格納されます。 ( 注意事項 ) 16MHz 動作時にこれらのビットに "00B"(8MHz)を設定すると , 正常なア • • bit12, bit11 CT1, CT0: 比較時間設定 ビット ナログ変換値が得られない場合があります。 bit10 読出し値は不定です。 このビットへの書込みは , 動作に影響しません。 未使用ビット • • D9 ∼ D0: A/D データ ビット 変換が終了するたびに , これらのビットに A/D 変換結果が格納され , レジス タが書換えられます。 • 通常 , 最終の変換値が格納されます。 • このレジスタの初期値は不定です。 ( 注意事項 ) 変換データ保護機能があります(「20.6 8/10 ビット A/D コンバータの動作」 を参照)。A/D 変換中にこれらのビットへはデータを書き込まないでくださ い。 • bit9 ∼ bit0 • S10:bit15 を書換える場合は , 必ず A/D 変換動作前に A/D 変換動作を停止させてから 書き換えてください。 変換開始後にこのビットを書換えると , ADCR レジスタのデー タは不定となります。 • 10 ビットモード時に ADCR1, ADCR0 レジスタのデータを読み出す場合は , ワード 転送命令(MOVW A, 0036H など)を使用してください。 568 第 20 章 8/10 ビット A/D コンバータ 20.5 8/10 ビット A/D コンバータの割込み 8/10 ビット A/D コンバータは , A/D データレジスタに A/D 変換結果が格納されると , 割込み要求を生成できます。拡張インテリジェント I/O サービス(EI2OS)にも対応 しています。 ■ 8/10 ビット A/D コンバータの割込み 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因を表 20.5-1 に示します。 表 20.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因 8/10 ビット A/D コンバータ 割込み要求フラグビット ADCS1:INT:bit14 割込み要求許可ビット ADCS1:INTE:bit13 割込み要因 A/D データレジスタへの A/D 変換結果の書込み A/D 変換が行われ , A/D 変換結果が A/D データレジスタ(ADCR)へ書き込まれると , A/D 制御ステータスレジスタ(ADCS1)の INT:bit14 に "1" が設定されます。このとき , 割込み要求が許可になっている(ADCS1 レジスタの INTE:bit13=1)場合 , 割込みコン トローラに割込み要求が出力されます。 ■ 8/10 ビット A/D コンバータの割込みと EI2OS 表 20.5-2 8/10 ビット A/D コンバータの割込みと EI2OS 割込み制御レジスタ ベクタテーブルアドレス EI2OS 割込み番号 #11(0BH) レジスタ名 アドレス 下位 上位 バンク ICR00 0000B0H FFFFD0H FFFFD1H FFFFD2H ○ ○ : 使用可能 ■ 8/10 ビット A/D コンバータの EI2OS 機能 8/10 ビット A/D コンバータは , EI2OS 機能を使用して A/D 変換結果をメモリへ転送で きます。転送が行われると , 変換データ保護機能は , A/D 変換データがメモリへ転送さ れるまで A/D 変換を停止し , ADCS1 レジスタの INT:bit14 をクリアします。変換デー タ保護機能は , データ欠落の発生を完全に防止できます。 569 第 20 章 8/10 ビット A/D コンバータ 20.6 8/10 ビット A/D コンバータの動作 8/10 ビット A/D コンバータは , 3 つの変換モード(単発変換モード , 連続変換モー ド , 停止変換モード)を備えています。各モードでの動作について説明します。 ■ 単発変換モード時の動作 単発変換モード時は , A/D 制御ステータスレジスタ 0(ADCS0)の ANS2 ∼ ANS0:bit5 ∼ bit3 で指定されたチャネルから ADCS0 レジスタの ANE2 ∼ ANE0:bit2 ∼ bit0 で指定さ れたチャネルまでのアナログ入力が順次変換されます。ANE2 ∼ ANE0:bit2 ∼ bit0 で指 定された終了チャネルまですべてのチャネルの変換が完了すると, A/D変換が停止しま す。開始チャネルと終了チャネルが同じ(ANS2 ∼ ANS0=ANE2 ∼ ANE0)場合は , ANS2 ∼ ANS0 ビットで指定されたチャネルのみを変換します。 単発変換モード時の動作に必要な設定値を図 20.6-1 に示します。 図 20.6-1 単発変換モード時の設定 bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADCS BUSY INT INTE PAUS STS1 STS0 STRT RESV ADCR S10 ST1 ST0 CT0 CT1 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 変換データが保持されます - ADER : 使用ビット : 使用する端子に対応するビットに"1"を設定 0 : "0"を設定 (注意事項) ADERの各々のビット値が"0"の場合は,各々のビットに対応するポート5は入力禁止となり,"1"の場合は 入力許可となります。 単発変換モード時の変換順序の例を以下に示します。 • ANS=000B, ANE=011B:AN0 → AN1 → AN2 → AN3 → End • ANS=110B, ANE=010B:AN6 → AN7 → AN0 → AN1 → AN2 → End • ANS=011B, ANE=011B:AN3 → End 570 第 20 章 8/10 ビット A/D コンバータ ■ 連続変換モード時の動作 連続変換モード時は , ANS2 ∼ ANS0:bit5 ∼ bit3 で指定されたチャネルから ANE2 ∼ ANE0:bit2 ∼ bit0 で指定されたチャネルまでのアナログ入力を順次 A/D 変換します。 ANE2 ∼ ANE0:bit2 ∼ bit0 で指定された終了チャネルの変換が完了すると , A/D 変換は , ANS2 ∼ ANS0:bit5 ∼ bit3 で指定されたチャネルから再開されます。開始チャネルと終 了チャネルが同じ(ANS2 ∼ ANS0=ANE2 ∼ ANE0)場合は , ANS2 ∼ ANS0:bit5 ∼ bit3 で指定されたチャネルの変換が繰返されます。 連続変換モード時の動作に必要な設定値を図 20.6-2 に示します。 図 20.6-2 連続変換モード時の設定 bit 15 ADCS BUSY 14 INT 13 12 11 10 INTE PAUS STS1 STS0 9 8 STRT RESV 7 6 MD1 MD0 5 4 ANS2 ANS1 3 2 1 0 ANS0 ANE2 ANE1 ANE0 1 ADCR S10 ST1 ST0 CT1 CT0 - 変換データが保持されます ADER : 使用ビット : 使用する端子に対応するビットに"1"を設定 1 : "1"を設定 0 : "0"を設定 (注意事項) ADERの各々のビット値が"0"の場合は,各々のビットに対応するポート5は入力禁止となり,"1"の場合は 入力許可となります。 連続変換モード時の変換順序の例を以下に示します。 • ANS=000B, ANE=011B:AN0 → AN1 → AN2 → AN3 → AN0 → 反復 • ANS=110B, ANE=010B:AN6 → AN7 → AN0 → AN1 → AN2 → AN6 → 反復 • ANS=011B, ANE=011B:AN3 → AN3 → 繰返し 571 第 20 章 8/10 ビット A/D コンバータ ■ 停止変換モード時の動作 停止変換モード時は , ANS2 ∼ ANS0:bit5 ∼ bit3 で指定されたチャネルから ANE2 ∼ ANE0:bit2 ∼ bit0 で指定されたチャネルまでのアナログ入力を順次 A/D 変換しますが , 各チャネルの変換が完了するたびに一時停止が発生します。ANE2 ∼ ANE0:bit5 ∼ bit3 で指定された終了チャネルの変換が完了すると , A/D 変換は , 一時停止後 , ANS2 ∼ ANS0:bit5 ∼ bit3 で指定されたチャネルから再開されます。開始チャネルと終了チャネ ルが同じ(ANS2 ∼ ANS0=ANE2 ∼ ANE0)場合は , ANS ビットで指定されたチャネル の変換が繰返されます。一時停止時に A/D を再起動する場合には , STS1, STS0=bit11, bit10 で指定された起動要因を生成してください。 停止変換モード時の動作に必要な設定値を図 20.6-3 に示します。 図 20.6-3 停止変換モード時の設定 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ADCS ADCR BUSY S10 INT ST1 INTE PAUS STS1 STS0 ST0 CT1 CT0 STRT RESV MD1 MD0 1 1 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 変換データが保持されます - ADER : 使用ビット : 使用する端子に対応するビットに"1"を設定 1 : "1"を設定 0 : "0"を設定 (注意事項) ADERの各々のビット値が"0"の場合は,各々のビットに対応するポート5は入力禁止となり,"1"の場合は 入力許可となります。 停止変換モード時の変換順序の例を以下に示します。 • ANS=000B, ANE=011B:AN0 → 一時停止 → AN1 → 一時停止 → AN2 → 一時停止 → AN0 → 反復 • ANS=110B, ANE=001B:AN6 → Pause → AN7 → 一時停止 → AN0 → 一時停止 → AN1 → AN6 → 反復 • ANS=011B, ANE=011B:AN3 → 一時停止 → AN3 → 一時停止 → 繰返し 572 第 20 章 8/10 ビット A/D コンバータ 20.6.1 EI2OS を使用した場合の変換動作 8/10 ビット A/D コンバータは , EI2OS を使用して A/D 変換結果をメモリへ転送でき ます。 ■ EI2OS を使用した場合の変換動作 EI2OS を使用した場合の動作フローを図 20.6-4 に示します。 図 20.6-4 EI2OS を使用した場合の動作フローの例 A/D変換を起動 サンプルホールド EI2OSを起動 データを転送 変換開始 変換終了 データ転送は 指定回数*だけ 繰返されたか? 割込み出力 YES 割込み処理 NO 割込みクリア *:繰返しの回数は,EI2OSの設定に基づいて決定されます。 EI2OS を使用した場合は , 変換データ保護機能が , 連続変換モード時でもデータ欠落の 発生を完全に防止します。したがって , メモリへの複数データ項目の転送を安全に行え ます。 573 第 20 章 8/10 ビット A/D コンバータ 20.6.2 A/D 変換データ保護機能 割込み許可状態で A/D 変換を行うと , A/D 変換データ保護機能が動作します。 ■ A/D 変換データ保護機能 A/D コンバータは , 変換データを保持するデータレジスタを 1 つしか備えていません。 1 つの A/D 変換が完了すると , このデータレジスタのデータは書き換えられます。 次の変換データが格納される前に変換データがメモリへ転送されなかった場合は , 変 換データの一部は失われます。A/D 変換データ保護機能は , 割込みが許可になっている とき(ADCS1 レジスタの INTE:bit13=1), 以下で説明されているように動作し , データ の消失を防止します。 ● EI2OS を使用していない場合のデータ保護機能の動作 A/D データレジスタ(ADCR1, ADCR0)へ変換データが格納されると , A/D 制御ステー タスレジスタ 1(ADCS1)の INT:bit14 に ”1” が設定されます。INT:bit14 に "1" が設定 されると , A/D 変換が停止します。この停止状態は , 割込みルーチンにより A/D データ レジスタ(ADCR1, ADCR0)のデータがメモリへ転送された後 , INT:bit14 がクリアさ れると , 解除されます。 ● EI2OS を使用した場合のデータ保護機能の動作 EI2OS を使用した連続変換時は , 変換が終了すると , A/D 制御ステータスレジスタ 1 (ADCS1)の PAUS:bit12 に "1" が設定されます。この状態は , EI2OS が変換データを A/D データレジスタからメモリへ転送し終えるまで続きます。その間 , A/D 変換は停止され , 次の変換データは格納されません。メモリへのデータ転送が完了すると , PAUS:bit12 は "0" にクリアされ , 変換が再開されます。 EI2OS を使用した場合のデータ保護機能の動作フローを図 20.6-5 に示します。 574 第 20 章 8/10 ビット A/D コンバータ 図 20.6-5 EI2OS を使用した場合のデータ保護機能の動作フローチャート EI2OSを設定 A/D連続変換モード起動 1回目の変換終了 A/Dデータレジスタに格納 EI2OSを起動 2回目の変換を終了 EI2OSは終了 したか? NO A/D変換一時停止 YES A/Dデータレジスタに格納 3回目の変換を終了 EI2OSを起動 続く すべての変換を終了 続く A/Dデータレジスタに格納 EI2OSを起動 割込み処理ルーチン A/Dを初期化または停止 終了 (注意事項) A/Dコンバータが停止している間のステップは省略しています。 • A/D 変換データ保護機能は , 割込みが許可状態(ADCS1 レジスタの INTE:bit13=1) でのみ動作します。 • EI2OS が動作しているとき , A/D 変換における一時停止時に割込みが禁止されると , A/D 変換が再開されることがあります。その結果 , 前のデータが転送される前に現 データが書込みされることになります。一時停止時に変換を再起動すると , 古い データは破壊されます。 • 一時停止時に変換を再起動すると , 待機データは破壊されます。 575 第 20 章 8/10 ビット A/D コンバータ 20.7 8/10 ビット A/D コンバータ使用上の注意 8/10 ビット A/D コンバータ使用上の注意を以下に示します。 ■ 8/10 ビット A/D コンバータ使用上の注意 ● アナログ入力端子 A/D 入力端子は , ポート 5 の I/O 端子としても使用されます。これらはポート 5 データ レジスタ(DDR5)とアナログ入力許可レジスタ(ADER)は切り換えて使用します。 端子をアナログ入力として使用するには , DDR5 の対応するビットに "0" を書き込み , ポート設定を " 入力 " に変更してください。次に , ADER レジスタにアナログ入力モー ド(ADEx=1)を設定し , ポートの入力ゲートを決定してください。ポート入力モード (ADEx=0)時に中間レベルの信号を入力すると , 入力ゲートにリーク電流が流れます。 ● 内部タイマ使用上の注意 内部タイマによって A/D コンバータを起動するには , A/D 制御ステータスレジスタ 1 (ADCS1)の STS1, STS0:bit11, bit10 で設定してください。内部タイマの入力値は , イン アクティブレベル(内部タイマの場合は "L")に設定してください。内部タイマの入力 値をインアクティブレベルに設定しない場合は, ADCSレジスタへの書込みと同時に動 作が開始することがあります。 ● A/D コンバータの電源投入および切断順序 ディジタル電源(VCC)をオンにする前は , A/D コンバータ(AVCC, AVR)の電源およ びアナログ入力(AN0 ∼ AN7)の電源をオンにしないでください。 A/D コンバータの電源およびアナログ入力の電源をオフにする前は , ディジタル電源 (VCC)をオフにしないでください。 ● A/D コンバータの電源電圧 A/D コンバータ(AVCC)への供給電圧は , ディジタル電源(VCC)を超えないでくだ さい。ディジタル電源を超えた場合は , ラッチアップが発生する可能性があります。 576 第 20 章 8/10 ビット A/D コンバータ 20.8 8/10 ビット A/D コンバータのプログラム例 1 (EI2OS を使用した場合の単発変換モード) EI2OS が使用されている単発変換モードにおいて A/D 変換を行うためのプログラム 例を示します。 ■ EI2OSが使用されている単発変換モードにおいてA/D変換を行うためのプログラム 例 ● 処理 • アナログ入力(AN1 ∼ AN3)を 1 回変換します。 • 変換データをアドレス 200H ∼ 205H へ順次転送します。 • 10 ビット分解能を選択します。 • 変換をソフトウェアにより起動します。 EI2OS が使用されているプログラムのフローチャート(単発変換モード)を図 20.8-1 に示します。 図 20.8-1 EI2OS が使用されているプログラムのフローチャート(単発変換モード) 変換開始 AN1 → 割込み → EI2OSによる転送 AN 2 → 割込み → EI2OSによる転送 AN 3 → 割込み → EI2OSによる転送 E nd 割込みシーケンス パラレル処理 ● コーディング例 BAPL BAPM BAPH EQU EQU EQU 000100H 000101H 000102H ; バッファアドレスポインタ下位 ; バッファアドレスポインタ中位 ; バッファアドレスポインタ上位 ISCS IOAL IOAH DCTL DCTH DDR5 ADER ICR00 ADCS0 ADCS1 ADCR0 ADCR1 EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 000103H 000104H 000105H 000106H 000107H 000015H 000017H 0000B0H 000034H 000035H 000036H 000037H ;EI2OS 状態レジスタ ;I/O アドレスレジスタ下位 ;I/O アドレスレジスタ上位 ; データカウンタ下位 ; データカウンタ上位 ; ポート 5 方向レジスタ ; アナログ入力許可レジスタ ;A/D 割込み制御レジスタ ;A/D 制御ステータスレジスタ ; ;A/D データレジスタ ; 577 第 20 章 8/10 ビット A/D コンバータ ;--------- メインプログラム ------------------------------------------CODE CSEG START: ; スタックポインタ(SP)はすでに初期化されているもの と ; 仮定します AND CCR,#0BFH ; 割込みを禁止します MOV ICR00,#00H ; 割込みレベル 0(優先順位が最も高い) MOV BAPL,#00H ; 変換データを転送し格納するアドレスを設定します MOV BAPM,#02H ;(200H ∼ 205H を使用します) MOV MOV MOV MOV MOV MOV MOV BAPH,#00H ; ISCS,#18H ; ワードデータを転送し , 次にアドレスに "1" を加算し , ; 次にデータを I/O からメモリへ転送します IOAL,#36H ; アナログデータレジスタのアドレスを転送 IOAH,#00H ; ソースアドレスポインタとして設定します ;EI2OS が行う転送の回数を 3(変換回数と同じ値)に設定 ; します DDR5,#11110001B;P51 ∼ P53 を " 入力 " として設定します ADER,#00001110B;P51/AN1 ∼ P53/AN3 をアナログ入力として設定し DCTL,#03H ます MOV MOV MOV DCTH,#00H ; ADCS0,#0BH ; 単一変換モード。AN1 ∼ AN3 を変換します ADCS1,#0A2H; ソフトウェアによる起動。A/D 変換を開始します。 ; 割込みを許可します MOV ILM,#07H ;PS の ILM をレベル 7 に設定します OR CCR,#40H ; 割込みを許可します LOOP: MOV A,#00H ; 無限ループ MOV A,#01H BRA LOOP ;--------- 割込みプログラム ------------------------------------------ED_INT1: MOV I:ADCS1,#00H;A/D 変換を終了します。割込みフラグをクリアし禁止しま す RETI ; 割込みから復帰します CODE ENDS ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 0FFD0H ; 割込み #11(0BH)のベクタを設定します VECT 578 DSL ORG DSL DB ENDS END ED_INT1 0FFDCH START 00H START ; リセットベクタを設定します ; 第 20 章 8/10 ビット A/D コンバータ 20.9 8/10 ビット A/D コンバータのプログラム例 2 (EI2OS を使用した場合の連続変換モード) EI2OS が使用されている連続変換モードにおいて A/D 変換を行うためのプログラム 例を示します。 ■ EI2OSが使用されている連続変換モードにおいてA/D変換を行うためのプログラム 例 ● 処理 • アナログ入力(AN3 ∼ AN5)を 2 回変換します。各チャネルに対して 2 つの変換 データ項目を取得します。 • 変換データをアドレス 600H ∼ 60BH へ順次転送します。 • 10 ビット分解能を選択します。 • 変換を 16 ビットリロードタイマ 1 で起動します。 EI2OS が使用されているプログラムのフローチャート(連続変換モード)を図 20.9-1 に 示します。 図 20.9-1 EI2OS が使用されているプログラムのフローチャート(連続変換モード) 変換開始 AN3 → 割込み → EI2OSによる転送 AN4 → 割込み → EI2OSによる転送 AN5 → 割込み → EI2OSによる転送 6回の転送が終了した後 割込みシーケンス 終了 ● コーディング例 BAPL BAPM BAPH EQU EQU EQU 000100H 000101H 000102H ; バッファアドレスポインタ下位 ; バッファアドレスポインタ中位 ; バッファアドレスポインタ上位 ISCS IOAL IOAH DCTL DCTH DDR5 ADER ICR00 ADCS0 ADCS1 ADCR0 ADCR1 TMCSRL1 EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 000103H 000104H 000105H 000106H 000107H 000015H 000017H 0000B0H 000034H 000035H 000036H 000037H 000086H ;EI2OS 状態レジスタ ;I/O アドレスレジスタ下位 ;I/O アドレスレジスタ上位 ; データカウンタ下位 ; データカウンタ上位 ; ポート 5 方向レジスタ ; アナログ入力許可レジスタ ;A/D 割込み制御レジスタ ;A/D 制御状態レジスタ ; ;A/D データレジスタ ; ; 制御状態レジスタ 1 下位 579 第 20 章 8/10 ビット A/D コンバータ TMCSRH1 EQU 000087H ; TMRD1 EQU 000088H ;16 ビットリロードレジスタ 1 ;--------- メインプログラム ------------------------------------------CODE CSEG START: ; スタックポインタ(SP)はすでに初期化されているもの と ; 仮定します AND CCR,#0BFH ; 割込みを禁止します MOV ICR10,#08H ; 割込みレベル 0(優先順位が最も高い)割込みを許可しま す MOV BAPL,#00H ; 変換データを格納するアドレスを設定します MOV BAPM,#06H ;(600H ∼ 60BH を使用します) MOV MOV MOV MOV BAPH,#00H ; ISCS,#18H ; ワードデータを転送し , 次にアドレスに "1" を加算し , ; 次にデータを I/O からメモリへ転送します IOAL,#36H ; アナログデータレジスタのアドレスを転送 IOAH,#00H ; ソースアドレスポインタとして設定します MOV MOV ;EI2OS が転送を 6 回行います(3 チャネルのそれぞれに対 ; して転送を 2 回行います) DDR5,#00000000B;P50 ∼ P57 を " 入力 " として設定します ADER,#00111000B;P53/AN3 ∼ P55/AN5 をアナログ入力として設定し MOV MOV MOV DCTH,#00H ; ADCS0,#9DH ; 連続変換モード。AN3 ∼ AN5 を変換します ADCS1,#0A8H;16 ビットタイマを起動し , 次に A/D 変換を開始し , 次 MOV DCTL,#06H ます に ; 割込みを許可します MOVW TMRD1,#0320H; タイマ値として 800(320H)(100μs)を設定します MOV TMCSRH1,#00H; クロックソースを 125ns に設定し , 次に外部トリガを MOV ; します TMCSRL1,#12H; タイマ出力を禁止し , 次に割込みを禁止し , 次にリ 禁止 ロード ; を許可します MOV TMCSRL1,#13H;16 ビットリロードタイマ 1 を起動します MOV ILM,#07H ;PS の ILM をレベル 7 に設定します OR CCR,#40H ; 割込みを許可します LOOP: MOV A,#00H ; 無限ループ MOV A,#01H BRA LOOP ;--------- 割込みプログラム ------------------------------------------ED_INT1: MOV I:ADCS1,#80H ;A/D 変換を終了しません。割込みフラグをクリアし , ; 禁止します RETI ; 割込みから復帰します CODE ENDS ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 0FFD0H ; 割込み #11(0BH)のベクタを設定します VECT 580 DSL ORG DSL DB ENDS ED_INT1 0FFDCH START 00H ; リセットベクタを設定します ; 第 20 章 8/10 ビット A/D コンバータ END START 581 第 20 章 8/10 ビット A/D コンバータ 20.10 8/10 ビット A/D コンバータのプログラム例 3 (EI2OS を使用した場合の停止変換モード) EI2OS が使用されている停止変換モードにおいて A/D 変換を行うためのプログラム 例を示します。 ■ EI2OSが使用されている停止変換モードにおいてA/D変換を行うためのプログラム 例 ● 処理 • アナログ入力(AN3)を一定のインタバルで 12 回変換します。 • 変換データをアドレス 600H ∼ 617H へ順次転送します。 • 10 ビット分解能を選択します。 • 変換を 16 ビットリロードタイマ 1 で起動します。 EI2OS が使用されているプログラムのフローチャート(停止変換モード)を図 20.10-1 に 示します。 図 20.10-1 EI2OS が使用されているプログラムのフローチャート(停止変換モード) AN3 → 変換開始 割込み→ EI2OSによる転送 12回の転送が終了した後 停止 16ビットリロードタイマ1で起動 割込みシーケンス 終了 ● コーディング例 582 BAPL BAPM BAPH EQU EQU EQU 000100H 000101H 000102H ; バッファアドレスポインタ下位 ; バッファアドレスポインタ中位 ; バッファアドレスポインタ上位 ISCS IOAL IOAH DCTL DCTH DDR5 ADER ICR00 ADCS0 ADCS1 ADCR0 ADCR1 TMCSRL1 TMCSRH1 TMRD1 EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 000103H 000104H 000105H 000106H 000107H 000015H 000017H 0000B0H 000034H 000035H 000036H 000037H 000086H 000087H 000088H ;EI2OS 状態レジスタ ;I/O アドレスレジスタ下位 ;I/O アドレスレジスタ上位 ; データカウンタ下位 ; データカウンタ上位 ; ポート 5 方向レジスタ ; アナログ入力許可レジスタ ;A/D 割込み制御レジスタ ;A/D 制御状態レジスタ ; ;A/D データレジスタ ; ; 制御状態レジスタ 1 下位 ; ;16 ビットリロードレジスタ 1 第 20 章 8/10 ビット A/D コンバータ ;--------- メインプログラム ------------------------------------------CODE CSEG START: ; スタックポインタ (SP) はすでに初期化されているものと ; 仮定します AND CCR,#0BFH ; 割込みを禁止します MOV ICR00,#08H ; 割込みレベル :TMCSR1:L0(優先順位が最も高い) MOV BAPL,#00H ; 変換データを格納するアドレスを設定します MOV BAPM,#06H ;(600H ∼ 617H を使用します) MOV MOV BAPH,#00H ISCS,#19H MOV MOV IOAL,#36H IOAH,#00H MOV MOV MOV MOV MOV DCTL,#0CH DDR5,#00000000B ADER,#00001000B ADCS0,#0DBH ADCS1,#0A8H MOVW TMRD1,#0320H MOV TMCSRH1,#00H MOV TMCSRL1,#12H ; ; ワードデータを転送し , 次にアドレスに "1" を加算し , ; 次にデータを I/O からメモリへ転送し , 次にリソース要 ; 求を送出して終了します ; アナログデータレジスタのアドレスを転送 ; ソースアドレスポインタとして設定します ;EI2OS が転送をチャネル 3 のみに対して 12 回行います ;P50 ∼ P57 を " 入力 " として設定します ;P53/AN3 をアナログ入力として設定します ; 停止変換モード。AN3 を変換します ;16 ビットタイマを起動し , 次に A/D 変換を開始し , 次に ; 割込みを許可します ; タイマ値として 800(320H)(100μs)に設定します ; クロックソースを 125ns に設定し , 次に外部トリガを禁止 ; します ; タイマ出力を禁止し , 次に割込みを禁止し , 次にリロード ; を許可します ;16 ビットリロードタイマ 1 を起動します ;PS の ILM をレベル 7 に設定します ; 割込みを許可します ; 無限ループ MOV TMCSRL1,#13H MOV ILM,#07H OR CCR,#40H LOOP: MOV A,#00H MOV A,#01H BRA LOOP ;--------- 割込みプログラム ------------------------------------------ED_INT1: MOV I:ADCS1,#80H ;A/D 変換を終了しません。割込みフラグをクリアし , 禁止 ; します RETI ; 割込みから復帰します CODE ENDS ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 0FFD0H ; 割込み #11(0BH)のベクタを設定します VECT DSL ORG DSL DB ENDS END ED_INT1 0FFDCH START 00H ; リセットベクタを設定します ; START 583 第 20 章 8/10 ビット A/D コンバータ 584 第 21 章 アドレス一致検出機能 アドレス一致検出機能の機能と動作について説明 します。 21.1 アドレス一致検出機能の概要 21.2 アドレス一致検出機能のブロックダイヤグラム 21.3 アドレス一致検出機能のレジスタ構成 21.4 アドレス一致検出機能の動作説明 21.5 アドレス一致検出機能のプログラム例 585 第 21 章 アドレス一致検出機能 21.1 アドレス一致検出機能の概要 アドレス一致検出機能は , プログラムが現在処理している命令の次に処理される命 令のアドレスが , プログラムアドレス検出レジスタに設定したアドレスと一致した 場合に , プログラムで次に処理される命令を強制的に INT9 命令に置換え , 割込み処 理プログラムへ分岐する機能です。INT9 割込みを利用できるので , 本機能はプログ ラムのパッチ処理による修正に利用できます。 ■ アドレス一致検出機能の概要 • プログラムが現在処理している命令の次に処理される命令のアドレスは , 内部デー タバスを介して常にアドレスラッチに保持されます。アドレス一致検出機能によ り , アドレスラッチに保持されたアドレス値と , 検出アドレス設定レジスタに設定 したアドレス値は常に比較されます。比較されたアドレス値が一致した場合は, CPU が次に実行する命令は強制的に INT9 命令に置換えられ , 割込み処理プログラムが実 行されます。 • プログラムアドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L)は 2 つあり , レ ジスタごとに割込み許可ビットが用意されています。アドレスラッチに保持された アドレスと検出アドレス設定レジスタに設定したアドレスの一致による割込みの 発生を , レジスタごとに許可または禁止できます。 586 第 21 章 アドレス一致検出機能 アドレス一致検出機能のブロックダイヤグラム 21.2 アドレス一致検出モジュールは , 以下のブロックで構成されています。 • アドレスラッチ • プログラムアドレス検出制御ステータスレジスタ(PACSR) • プログラムアドレス検出レジスタ(RADR) ■ アドレス一致検出機能のブロックダイヤグラム アドレス一致検出機能のブロックダイヤグラムを図 21.2-1 に示します。 図 21.2-1 アドレス一致検出機能のブロックダイヤグラム アドレスラッチ 比較器 内部データバス PADR0(24ビット) プログラムアドレス検出レジスタ0 INT9命令 (INT9割込み発生) PADR1(24ビット) プログラムアドレス検出レジスタ1 PACSR 予約 予約 予約 予約 ADE1 予約 ADE0 予約 プログラムアドレス検出制御ステータスレジスタ(PACSR) 予約:必ず"0"を設定してください。 ● アドレスラッチ 内部データバスへ出力されたアドレス値を保持します。 ● プログラムアドレス検出制御ステータスレジスタ(PACSR) アドレスが一致した場合の割込み出力の許可または禁止を設定します。 ● プログラムアドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L) アドレスラッチの値と比較するためのアドレスを設定します。 587 第 21 章 アドレス一致検出機能 21.3 アドレス一致検出機能のレジスタ構成 アドレス一致検出機能で使用するレジスタの一覧と詳細を記述します。 ■ アドレス一致検出機能のレジスタとリセット値の一覧 図 21.3-1 アドレス一致検出機能のレジスタとリセット値の一覧 bit プログラムアドレス検出制御ステータス レジスタ(PACSR) bit プログラムアドレス検出レジスタ0 (PADR0H):上位 bit プログラムアドレス検出レジスタ0 (PADR0M):中位 bit プログラムアドレス検出レジスタ0 (PADR0L):下位 bit プログラムアドレス検出レジスタ1 (PADR1H):上位 bit プログラムアドレス検出レジスタ1 (PADR1M):中位 bit プログラムアドレス検出レジスタ1 (PADR1L):下位 X:不定 588 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 X X X X X X X X 15 14 13 12 11 10 9 8 X X X X X X X X 7 6 5 4 3 2 1 0 X X X X X X X X 7 6 5 4 3 2 1 0 X X X X X X X X 15 14 13 12 11 10 9 8 X X X X X X X X 7 6 5 4 3 2 1 0 X X X X X X X X 第 21 章 アドレス一致検出機能 プログラムアドレス検出制御ステータスレジスタ (PACSR) 21.3.1 アドレス一致による割込み出力の許可または禁止を設定します。アドレス一致によ る割込み出力を許可した場合にアドレス一致が検出されると , INT9 の割込みが出力 されます。 ■ プログラムアドレス検出制御ステータスレジスタ(PACSR) 図 21.3-2 プログラムアドレス検出制御ステータスレジスタ(PACSR) bit 7 6 5 4 3 2 1 0 初期値 00000000B R/W R/W R/W R/W R/W R/W R/W R/W bit0 予約ビット 予約 0 必ず"0"を設定してください bit1 アドレス一致検出許可ビット0 ADE0 0 PADR0H,M,Lでのアドレス一致検出を禁止する 1 PADR0H,M,Lでのアドレス一致検出を許可する bit2 予約ビット 予約 0 必ず"0"を設定してください bit3 アドレス一致検出許可ビット1 ADE1 0 PADR1H,M,Lでのアドレス一致検出を禁止する 1 PADR1H,M,Lでのアドレス一致検出を許可する bit4 予約ビット 予約 0 必ず"0"を設定してください bit5 予約ビット 予約 0 必ず"0"を設定してください bit6 予約ビット 予約 0 必ず"0"を設定してください bit7 R/W :リード/ライト :初期値 予約ビット 予約 0 必ず"0"を設定してください 589 第 21 章 アドレス一致検出機能 表 21.3-1 プログラムアドレス検出制御ステータスレジスタ(PACSR)の機能 ビット名 bit14 ∼ bit7 590 予約 : 予約ビット bit3 ADE1: アドレス一致 検出許可ビッ ト1 bit2 予約 : 予約ビット bit1 ADE0: アドレス一致 検出許可ビッ ト0 bit0 予約 : 予約ビット 機 能 必ず "0" を設定してください。 プログラムアドレス検出レジスタ 1(PADR1H, M, L)とのアドレス一致検出動 作を許可または禁止します。 このビットに "0" を設定した場合 : アドレス一致検出動作を禁止します。 このビットに "1" を設定した場合 : アドレス一致検出動作を許可します。 • アドレス一致検出動作を許可した場合に(ADE1=1), アドレスラッチの値と プログラムアドレス検出レジスタ 1(PADR1H, M, L)の値が一致した場合は , 直ちに INT9 命令が実行されます。 必ず "0" を設定してください。 プログラムアドレス検出レジスタ 0(PADR0H, M, L)とのアドレス一致検出動 作を許可または禁止します。 このビットに "0" を設定した場合 : アドレス一致検出動作を禁止します。 このビットに "1" を設定した場合 : アドレス一致検出動作を許可します。 • アドレス一致検出動作を許可した場合に(ADE0=1), アドレスラッチの値と プログラムアドレス検出レジスタ 0(PADR0H, M, L)の値が一致した場合は , 直ちに INT9 命令が実行されます。 必ず "0" を設定してください。 第 21 章 アドレス一致検出機能 21.3.2 プログラムアドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L) プログラムアドレス検出レジスタには , 検出するアドレス値を設定します。プログ ラムで実行されている命令のアドレスがプログラムアドレス検出レジスタに設定さ れたアドレスと一致すると , 次に実行される命令は強制的に INT9 命令に置換えられ , 割込み処理プログラムが実行されます。 ■ プログラムアドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L) 図 21.3-3 プログラムアドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L) bit PADR0H,PADR1H:上位 bit PADR0M,PADR1M:中位 6 5 4 3 2 1 0 D23 D22 D21 D20 D19 D18 D17 D16 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 XXXXXXXXB 15 14 13 12 11 10 9 8 初期値 D15 D14 D13 D12 D11 D10 D9 D8 XXXXXXXXB R/W R/W R/W R/W R/W R/W R/W R/W bit PADR0L,PADR1L:下位 7 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値 XXXXXXXXB R/W :リード/ライト X :不定 591 第 21 章 アドレス一致検出機能 ■ プログラムアドレス検出レジスタの機能 • プログラムアドレス検出レジスタは 2 本(PADR0H, M, L, PADR1H, M, L)用意され ており , それぞれ上位 , 中位 , 下位の 3 バイト , 合計 24 ビットで構成されています。 表 21.3-2 プログラムアドレス検出レジスタのアドレス設定 レジスタ名 割込み出力許可 プログラムアドレス 検出レジスタ 0 (PADR0H, M, L) プログラムアドレス 検出レジスタ 1 (PADR1H, M, L) PACSR:ADE0 PACSR:ADE1 アドレス設定 上位 プログラムアドレス 0 の上位 8 ビットを設定(バンク) 中位 プログラムアドレス 0 の中位 8 ビットを設定 下位 プログラムアドレス 0 の下位 8 ビットを設定 上位 プログラムアドレス 1 の上位 8 ビットを設定(バンク) 中位 プログラムアドレス 1 の中位 8 ビットを設定 下位 プログラムアドレス 1 の下位 8 ビットを設定 • プログラムアドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L)には , INT9 命令 と置換える命令の先頭アドレス(1 バイト目)を設定する必要があります。 図 21.3-4 INT9 命令と置換える命令コードの先頭アドレスの設定 検出アドレスに設定(上位:FFH,中位:00H,下位:1FH) アドレス FF001C: FF001F: FF0022: < 注意事項 > 命令コード ニモニック A8 4A 4A MOVW MOVW MOVW 00 00 80 00 00 08 RW0,#0000 A,#0000 A,#0880 • プログラムアドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L)に , 1 バイ ト目以外のアドレスを設定した場合は , 命令コードが INT9 命令に置換えられず , 割込み処理プログラムは実行されません。また , 2 バイト目以降に設定した場合 は , 命令コードで指定した番地が "01H"(INT9 命令コード)に置換わってしまい , 誤作動を起こす原因になる場合があるの注意してください。 • プログラムアドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L)は , 対応す るプログラムアドレス一致制御レジスタのアドレス一致検出動作を禁止してか ら(PACSR レジスタの ADE0:bit1=0 または ADE1:bit1=0)設定してください。 アドレス一致検出動作を禁止せずにプログラムアドレス検出レジスタを変更し た場合 , アドレスの書込み中にアドレスが一致すると直ちにアドレス一致検出機 能が働いてしまい , 誤動作を起こす原因になります。 • アドレス一致検出機能は , 内部 ROM のアドレスに対してのみ使用できます。外 部メモリ領域のアドレスを設定してもアドレス一致検出機能は働かず , INT9 命 令は実行されません。 592 第 21 章 アドレス一致検出機能 21.4 アドレス一致検出機能の動作説明 アドレス一致検出機能は , プログラムで実行される命令のアドレスが , プログラムア ドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L)で設定したアドレスと一致し た場合に , CPU で実行される先頭の命令コードを INT9(01H)命令に置換え , 割込 み処理プログラムへ分岐します。 ■ アドレス一致検出機能の動作 検出アドレスの設定と , アドレス一致が検出された場合の動作を , 図 21.4-1 に示しま す。 図 21.4-1 アドレス一致検出機能の動作 プログラム実行 アドレス プログラムで実行される命令 のアドレスがプログラムアド レス検出レジスタ0H,M,Lと 一致 FF001C: FF001F: FF0022: 命令コード ニモニック A8 4A 4A MOVW MOVW MOVW 00 00 80 00 00 08 RW0,#0000 A,#0000 A,#0880 INT9命令(01H)に置換わる ■ 検出アドレスの設定 1. 検出アドレスを設定するプログラムアドレス検出レジスタ 0(PADR0H, M, L)のア ドレス一致検出動作を禁止してください(PACSR レジスタの ADE0:bit1=0)。 2. プログラムアドレス検出レジスタ 0(PADR0H, M, L)に , 検出するアドレスを設定 します。プログラムアドレス検出レジスタ 0(PADR0H, M, L)の上位に "FFH", 中位 に "00H", 下位に "1FH" を設定してください。 3. 検出アドレスを設定するプログラムアドレス検出レジスタ 0(PADR0H, M, L)のア ドレス一致検出動作を許可してください(PACSR レジスタの ADE0:bit1=1)。 ■ プログラムの実行 1. プログラムで実行される命令のアドレスが , 設定した検出アドレスと一致すると , 一致したアドレスの先頭の命令コードが INT9 命令コード("01H")に置換わります。 2. INT9 命令が実行されます。INT9 割込みが発生し , 割込み処理プログラムが実行さ れます。 593 第 21 章 アドレス一致検出機能 21.4.1 アドレス一致検出機能の使用例 アドレス一致検出機能を利用した , プログラム修正のパッチ処理の例を示します。 ■ システム構成と E2PROM のメモリ構成 ● システム構成 アドレス一致検出機能を利用したシステム構成例を図 21.4-2 に示します。 図 21.4-2 アドレス一致検出機能を利用したシステム構成例 シリアルE2PROM インターフェース MCU MB90460 シリーズ E2PROM 修正プログラムを格納 SIN0 ■ E2PROM のメモリマップ 修正プログラムを E2PROM に格納する場合の , 修正プログラムとデータの配置方法を 図 21.4-3 に示します。 図 21.4-3 E2PROM 修正プログラムとデータの配置方法 E2PROM アドレス PADR0H,M,L PADR1H,M,L 594 0000H 修正プログラム バイト数 0001H 検出 アドレス0(下位) 0002H 検出 アドレス0(中位) 0003H 検出 アドレス0(上位) 0004H 修正プログラム バイト数 0005H 検出 アドレス1(下位) 0006H 検出 アドレス1(中位) 0007H 検出 アドレス1(上位) 0010H 修正プログラム0 (本体) 0020H 修正プログラム1 (本体) 修正プログラム0用 修正プログラム1用 第 21 章 アドレス一致検出機能 ● 修正プログラムバイト数 修正プログラム(本体)の総バイト数を格納します。バイト数が "00H" の場合は , " 修 正プログラムは存在しない " ことを示します。 ● 検出アドレス(24 ビット) プログラムミスにより INT9 命令に置換える箇所のアドレスを格納します。このアドレ スはプログラムアドレス検出レジスタ(PADR0H, M, L, PADR1H, M, L)に設定するア ドレスです。 ● 修正プログラム(本体) プログラムのアドレスと検出アドレスが一致した場合の , INT9 割込みによって実行す るプログラムを格納します。修正プログラム 0 は , 任意に決めたアドレスから配置しま す。修正プログラム 1 は , <修正プログラム 0 の先頭アドレス + 修正プログラム 0 の 総バイト数>のアドレスから配置します。 ■ 設定と動作状態 ● 初期設定 • E2PROM のデータはすべて "00H" にクリアします。 ● プログラムミスが発生した場合 • コネクタ接続(UART)を使用して , 外部から MCU(MB90460/465)へ , E2PROM 修正プログラムとデータの配置方法に従って , 修正プログラムの情報を送ります。 • MCU(MB90460/465)側では , 外部から受取った修正プログラムの情報を E2PROM へ格納します。 ● リセットシーケンス • リセット後 , MCU(MB90460/465)は , E2PROM 修正プログラムのバイト数を読み 出して , 修正プログラムの有無を確認します。 • 修正プログラムのバイト数が "00H" でない場合は , 検出アドレス 0, 1 の上位 , 中位 , 下位を読み出してプログラムアドレス検出レジスタ 0, 1(PADR0H, M, L, PADR1H, M, L)へ読み出したデータを設定します。また , 修正プログラムバイト数に従って , 修正プログラム (本体) を読み出して , MCU (MB90460/465) の RAM へ書き込みます。 • 修正プログラム(本体)は , アドレス一致検出機能によって INT9 割込み処理で実行 するアドレスに配置します。 • アドレス一致検出動作を許可します (PACSR レジスタの ADE0:bit1=1, ADE1:bit3=1) 。 ● INT9 割込み処理 • INT9 命令によって割込み処理が実行されます。MB90460/465 シリーズには , アドレ ス一致検出による割込み要求フラグがありません。したがって , プログラムカウン タのスタック情報が破棄されると検出アドレスを確認できません。検出アドレスを 確認する場合は , 割込み処理ルーチンでスタックされているプログラムカウンタの 値を確認してください。 • 修正プログラムの実行後に通常のプログラムに分岐します。 595 第 21 章 アドレス一致検出機能 ■ 修正プログラムを E2PROM に格納する場合のアドレス一致検出機能の動作 修正プログラムを E2PROM に格納する場合のアドレス一致検出機能の動作を , 図 21.4-4 に示します。 図 21.4-4 修正プログラムを E2PROM に格納する場合のアドレス一致検出機能の動作 000000H ③ 修正プログラム RAM プログラムアドレス検出レジスタ E2PROM ① 検出アドレス設定 (リセットシーケンス) ・修正プログラムバイト数 ・アドレス検出用アドレス シリアルE2PROM ・修正プログラム インタフェース ROM ② ④ プログラムミス FFFFFFH ①リセットシーケンスの検出アドレス設定と通常プログラムの実行 ②アドレス一致検出によるINT9割込み処理でRAMに展開した修正プログラムへ分岐 ③INT9処理の分岐による修正プログラムの実行 ④修正プログラムから分岐した元の通常プログラムの実行 596 第 21 章 アドレス一致検出機能 ■ プログラム修正のパッチ処理フロー アドレス一致検出機能を利用したプログラム修正のパッチ処理のフローを図 21.4-5 に 示します。 図 21.4-5 プログラム修正のパッチ処理フロー E2PROM MB90462 000000H I/O領域 0000H 修正プログラムバイト数:80H 000100H レジスタ/RAM領域 0001H 検出アドレス(下位):00H 000400H 修正プログラム 0002H 検出アドレス(中位):80H 0003H 検出アドレス(上位):FFH 000480H RAM領域 RAM スタック領域 0010H 修正プログラム 0090H FFFFH FE0000H FF0000H ROM プログラムミス FF0050H FFFFFFH YES リセット INT9 E2PROM:00H を読出す 修正プログラムへ分岐 JMP 000400H 修正プログラムの実行 000400H~000480H E2PROM:0000H =0 NO 修正プログラム終了 JMP FF8050H 検出アドレスを読出す E2PROM:0001H~0003H ↓ MOV MCU:PADR0へ設定 修正プログラムを読出す E2PROM:0010H~008FH ↓ MCU:000400H~00047FH アドレス一致検出を許可 (PACSR:ADE0=1) 通常プログラム実行 NO プログラムアドレス PC=PADR0 YES INT9 597 第 21 章 アドレス一致検出機能 21.5 アドレス一致検出機能のプログラム例 アドレス一致検出機能のプログラム例を示します。 ■ アドレス一致検出機能のプログラム例 ● 処理仕様 • プログラムで実効される命令のアドレスと , プログラムアドレス検出レジスタ (PADR0H, M, L)に設定したアドレスが一致した場合に , INT9 命令が実行されます。 ● コーディング例 PACSR EQU 00009EH ; プログラムアドレス検出制御 ; ステータスレジスタ ; プログラムアドレス検出レジスタ 0 下位 ; プログラムアドレス検出レジスタ 0 中位 ; プログラムアドレス検出レジスタ 0 上位 PADRL EQU 000001H PADRM EQU 000002H PADRH EQU 000003H ; ;--------- メインプログラム ------------------------------------------CODE CSEG START: ; スタックポインタ(SP)などは ; 初期化済みとする MOV PADRL,#00H ; プログラムアドレス検出レジスタ 0 下位設定 MOV PADRM,#00H ; プログラムアドレス検出レジスタ 0 中位設定 MOV PADRH,#00H ; プログラムアドレス検出レジスタ 0 上位設定 ; MOV I:PACSR,#00000010B; アドレス一致検出の許可 ・ ユーザ処理 ・ LOOP: ・ ユーザ処理 ・ BRA LOOP ;--------- 割込みプログラム ------------------------------------------WARI: ・ ユーザ処理 ・ RETI ; 割込み処理からの復帰 CODE ENDS ;--------- ベクタ設定 -----------------------------------------------VECT CSEG ABS=0FFH ORG 00FFDCH ; リセットベクタ設定 DSL START DB 00H ; シングルチップモードに設定 VECT ENDS END START 598 第 22 章 ROM ミラー機能 選択モジュール ROM ミラー機能選択モジュールの機能と動作につ いて説明します。 22.1 ROM ミラー機能選択モジュールの概要 22.2 ROM ミラー機能選択モジュールレジスタ(ROMM) 599 第 22 章 ROM ミラー機能 選択モジュール 22.1 ROM ミラー機能選択モジュールの概要 ROM ミラー機能選択モジュールにおいては , FF バンクに配置されている ROM 内の データを , 00 バンクへのアクセスによって読み出すことができます。 ■ ROM ミラー機能選択モジュールのブロックダイヤグラム 図 22.1-1 ROM ミラー機能選択モジュールのブロックダイヤグラム ROMミラー機能選択モジュールレジスタ(ROMM) ー ー ー ー ー ー ー MI 内部データバス アドレス アドレス領域 00バンク FFバンク データ ROM ■ ROM ミラー機能による FF バンクへのアクセス ROM ミラー機能によって , 00 バンクへのアクセスにより , FF バンクの ROM データを 読み出す場合の , メモリ上の位置関係を図 22.1-2 に示します。 図 22.1-2 ROM ミラー機能による FF バンクのアクセス 004000H 00バンク ROMミラー領域 00FFFFH FF4000H FFFFFFH 600 FFバンク (ROMミラー対象領域) MB90V460 MB90F462 MB90462 第 22 章 ROM ミラー機能 選択モジュール ■ ROM ミラー機能の有効 / 無効時のメモリ空間 ROM ミラー機能を " 有効 " または " 無効 " にした場合のメモリ空間へのアクセス可否 を図 22.1-3 に示します。 図 22.1-3 ROM ミラー機能の有効 / 無効時のメモリ空間(シングルチップモード時) 000000H 0000C0H 000100H アドレス1 002000H 004000H 010000H アドレス2 FFFFFFH 品 種 アドレス1 アドレス2 I/O領域 I/O領域 RAM領域 RAM領域 ROM領域 ROM領域 ROM領域 ROMミラー機能が 有効な場合 ROMミラー機能が 無効な場合 MB90462 MB90F462 MB90V460 000900H 00900H 001100H FF0000H FF0000H FF0000H ■ ROM ミラー機能選択モジュールのレジスタと初期値の一覧 図 22.1-4 ROM ミラー機能選択モジュールのレジスタと初期値の一覧 bit ROMミラー機能選択モジュールレジスタ (ROMM) 15 14 13 12 11 10 9 8 X X X X X X X 1 X:不定 601 第 22 章 ROM ミラー機能 選択モジュール ROM ミラー機能選択モジュールレジスタ(ROMM) 22.2 ROM ミラー機能選択モジュールレジスタは , ROM ミラー機能を " 有効 " にするか , " 無効 " にするかを設定します。" 有効 " を設定した場合は , 00 バンクを読み出すこ とで , FF バンクの ROM データを読み出せます。 ■ ROM ミラー機能選択モジュールレジスタ(ROMM) 図 22.2-1 ROM ミラー機能選択モジュールレジスタ(ROMM) bit 14 15 13 12 11 10 9 8 初期値 予約 予約 予約 予約 予約 予約 予約 R/W R/W R/W R/W R/W R/W R/W XXXXXXX1B W bit8 MI 0 1 R/W :リード/ライト W :ライトオンリ X :不定 :初期値 ROMミラー機能選択ビット ROMミラー機能は無効 ROMミラー機能は有効 bit15~bit9 予約ビット 予約 0 必ず"0"を設定してください。 表 22.2-1 ROM ミラー機能選択モジュールレジスタ(ROMM)の機能 ビット名 bit15 ∼ bit9 bit8 機 能 予約ビット MI: ROM ミラー機 能選択ビット 読出し値は不定です。 必ず "0" を設定してください。 ROM ミラー機能を " 有効 " にするか , " 無効 " にするかを設定します。 このビットに "0" を設定した場合 :ROM ミラー機能を無効にします。 このビットに "1" を設定した場合 :ROM ミラー機能を有効にします。 ROM ミラー機能を有効に設定した場合(MI=1), アドレス 004000H ∼ 00FFFFH へアクセスすることにより , ROM アドレス FF4000H ∼ FFFFFFH のデータを読 み出せます。 < 注意事項 > バンク 00 は , 004000H ∼ 00FFFFH 番地から FF4000H ∼ FFFFFFH 番地を参照し ますので FF3FFFH 番地以下のアドレスは , ROM ミラー機能を設定しても参照でき ません。 MB90462 MB90467 MB90F462 MB90F462A MB90F463A MB90V460 アドレス 1 FF0000H FF0000H FF0000H FF0000H FE0000H FF0000H アドレス 2 000900H 000900H 000900H 000900H 000900H 002100H 602 第 22 章 ROM ミラー機能 選択モジュール 図 22.2-2 メモリー空間 アドレス FFFFFFH アドレス1 010000H 004000H 002000H アドレス2 000100H 0000C0H 000000H ROM領域 ROM領域 ROM領域 RAM領域 RAM領域 I/O領域 I/O領域 MI=1の時 MI=0の時 内部領域 603 第 22 章 ROM ミラー機能 選択モジュール 604 第 23 章 512K/1024K ビット フラッシュメモリ 512K/1024K ビットフラッシュメモリの機能と動 作について説明します。 23.1 512K/1024K ビットフラッシュメモリの概要 23.2 フラッシュメモリのレジスタとセクタ構成 23.3 フラッシュメモリ制御ステータスレジスタ(FMCS) 23.4 フラッシュメモリ自動アルゴリズム起動方法 23.5 自動アルゴリズム実行状態の確認 23.6 フラッシュメモリ書込み / 消去の詳細説明 23.7 フラッシュセキュリティの特長 23.8 512K ビットフラッシュメモリのプログラム例 605 第 23 章 512K/1024K ビット フラッシュメモリ 23.1 512K/1024K ビットフラッシュメモリの概要 フラッシュメモリへのデータ書込み / 消去の方法としては , 以下の 3 とおりがありま す。 1. パラレルライタ 2. シリアル専用ライタ 3. プログラム実行による書込み / 消去 本章では , 「3. プログラム実行による書込み / 消去」について解説します。 ■ 512K/1024K ビットフラッシュメモリの概要 512K ビットフラッシュメモリは , CPU メモリマップ上の FFH バンクに配置されていま す。1024K ビットフラッシュメモリは , CPU メモリマップ上の FEH バンクと FFH バン クに配置されています。フラッシュメモリインターフェース回路の機能により , CPU からのリードアクセスおよびプログラムアクセスができます。 フラッシュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの命令で行えるため , 実装状態での書換えができ , プログラムやデータの改善 を効率よく行うことができます。 ■ 512K/1024K ビットフラッシュメモリの特長 • 512K ビット:64K ワード× 8 ビット /32K ワード× 16 ビット(16K+8K+8K+32K) セクタ構成 • 1024Kビット:128Kワード×8ビット/64Kワード×16ビット(64K+16K+8K+8K+32K) セクタ構成 • 自動プログラムアルゴリズム(Embedded Alogrithm : MBM29LV200 と同様) • 消去一時停止 / 消去再開機能の搭載 • データポーリング , トグルビットによる書込み / 消去完了検出 • CPU 割込みによる書込み / 消去の完了検出 • セクタごとの消去が可能(セクタ組合わせ自由) • 書込み / 消去回数(最小):10,000 回 • フラッシュ読出しサイクルタイム(最小):2 マシンサイクル < 注意事項 > マニュファクチャコードとデバイスコードの読出し機能はありません。 また , これらのコードは , コマンドによってもアクセスできません。 ■ フラッシュメモリ書込み / 消去 • フラッシュメモリは , 書込みと読出しを同時に行うことはできません。 • フラッシュメモリにおいてデータの書込み / 消去する場合は , フラッシュメモリ上 にあるプログラムを一度 RAM にコピーし , RAM にコピーしたプログラムを実行す ることにより , フラッシュメモリへ書き込めます。 606 第 23 章 512K/1024K ビット フラッシュメモリ 23.2 フラッシュメモリのレジスタとセクタ構成 フラッシュメモリのセクタ構成を示します。 ■ 512K/1024K ビットフラッシュメモリのセクタ構成 512K ビットフラッシュメモリのセクタ構成を図 23.2-1 に , 1024K ビットフラッシュメ モリのセクタ構成を図 23.2-2 に示します。図中アドレスには , 各セクタの上位アドレ スと下位アドレスを示します。 図 23.2-1 512K ビットフラッシュメモリのセクタ構成 フラッシュメモリ SA3(16Kバイト) SA2(8Kバイト) SA1(8Kバイト) SA0(32Kバイト) CPUアドレス ライタアドレス* FFC000H 7C000H FFFFFFH 7FFFFH FFA000H 7A000H FFBFFFH 7BFFFH FF8000H 78000H FF9FFFH 79FFFH FF0000H 70000H FF7FFFH 77FFFH *:ライタアドレスとは,フラッシュメモリにパラレルライタによりデータを 書込む場合,CPUアドレスに相当するアドレスです。 汎用ライタを使用し書込み/消去する場合は,このライタアドレスで書込み/ 消去します。 図 23.2-2 1024K ビットフラッシュメモリのセクタ構成 フラッシュメモリ SA4(16Kバイト) SA3(8Kバイト) SA2(8Kバイト) SA1(32Kバイト) SA0(64Kバイト) CPUアドレス ライタアドレス* FFFFFFH 7FFFFH FFC000H 7C000H FFBFFFH 7BFFFH FFA000H 7A000H FF9FFFH 79FFFH FF8000H 78000H FF7FFFH 77FFFH FF0000H 70000H FEFFFFH 6FFFFH FE0000H 60000H *:ライタアドレスとは,フラッシュメモリにパラレルライタによりデータを 書込む場合,CPUアドレスに相当するアドレスです。 汎用ライタを使用し書込み/消去する場合は,このライタアドレスで書込み/ 消去します。 607 第 23 章 512K/1024K ビット フラッシュメモリ フラッシュメモリ制御ステータスレジスタ(FMCS) 23.3 フラッシュメモリ制御ステータスレジスタ(FMCS)の機能をに示します。 ■ フラッシュメモリ制御ステータスレジスタ(FMCS) 図 23.3-1 フラッシュメモリ制御ステータスレジスタ(FMCS) bit 7 6 5 4 3 2 1 0 R W R/W W R/W 初期値 000X0000B R/W R/W R/W bit2 bit0 LPM1 LPM0 0 0 0 1 1 0 1 1 低電力消費モード選択ビット 内部動作周波数の条件 電力消費モード 通常消費電力モード 16MHz以下で動作可能 4MHz以下で動作可能 低電力消費モード 8MHz以下で動作可能 10MHz以下で動作可能 bit1 予約ビット 予約 0 必ず"0"を設定してください bit3 予約ビット 予約 0 必ず"0"を設定してください bit4 RDY 0 1 フラッシュメモリ書込み/消去ステータビット 書込み/消去の実行中(次データ書込み/消去不可) 書込み/消去の終了(次データ書込み/消去許可) bit5 フラッシュメモリ書込み/消去許可ビット WE 0 フラッシュメモリ領域の書込み/消去禁止 1 フラッシュメモリ領域の書込み/消去許可 bit6 RDYINT 0 1 R/W R W X 608 :リード/ライト :リードオンリ :ライトオンリ :不定 :初期値 フラッシュメモリ動作フラグビット リード時 ライト時 書込み/消去の実行中 このRDYINビットのクリア 書込み/消去の終了 影響なし bit7 フラッシュメモリ書込み/消去割込許可ビット INTE 0 書込み/消去の終了による割込禁止 1 書込み/消去の終了による割込許可 第 23 章 512K/1024K ビット フラッシュメモリ 表 23.3-1 フラッシュメモリ制御ステータスレジスタ(FMCS)の機能 ビット名 機 能 INTE: フラッシュメ モリ割込み / 消去割込み許 可ビット フラッシュメモリの書込み / 消去の終了による割込み要求発生を許可または禁 止します。 このビットに "1" に設定した場合 : フラッシュメモリ動作フラグビットに "1" を設定した場合に(FMCS: RDYINT=1), 割 込み要求が発生します。 RDYINT: フラッシュメ モリ動作フラ グビット フラッシュメモリの動作状態を示します。 フラッシュメモリの書込み / 消去が終了した場合に , フラッシュメモリ自動アル ゴリズム終了のタイミングで , この RDYINT ビットに "1" が設定されます。 • フラッシュメモリ書込み / 消去の終了による割込みを許可に設定している場 合は(FMCS: INTE=1), この RDYINT ビットに "1" が設定されると割込み要 求が発生します。 • この RDYINT ビットが "0" の場合は , フラッシュメモリへの書込み / 消去は できません。 このビットに "0" に設定した場合 : クリアされます。 このビットに "1" に設定した場合 : 影響しません。 リードモディファイライト(RMW)命令を使用した場合は , 必ず "1" が読み出 されます。 bit5 WE: フラッシュメ モリ書込み / 消去許可ビッ ト フラッシュメモリ領域への書込み / 消去を許可または禁止します。 この WE ビットは , フラッシュメモリの書込み / 消去のコマンドを起動する前に 設定してください。 このビットに "0" に設定した場合 :FF バンクへの書込み / 消去コマンドを入力 しても , 書込み / 消去の信号は発生しませ ん。 このビットに "1" に設定した場合 :FF バンクへの書込み / 消去コマンド入力後 , フラッシュメモリへの書込み / 消去ができま す。 • 書込み / 消去しない場合は , 誤ってフラッシュメモリに書き込んだり , 消去 しないように , この WE ビットに "0" を設定してください。 bit4 RDY: フラッシュメ モリ書込み / 消去ステータ スビット フラッシュメモリの書込み / 消去の状態を示します。 • この RDY ビットが "0" の場合は , フラッシュメモリへの書込み / 消去はでき ません。 • この RDY ビットが "0" の場合でも , 読出し / リセットコマンド , セクタ消去 一時停止などのサスペンドコマンドは受付けることができます。書込み / 消 去動作を終了すると , この RDY ビットには "1" が設定されます。 bit3, bit1 予約 : 予約ビット 必ず "0" を設定してください。 bit2, bit0 LPM1, LPM0: 低電力消費 モード選択 ビット フラッシュメモリ本体の消費電流を制御します。 • フラッシュメモリへのアクセスタイムが動作周波数によって大きく異なるた め , CPU の内部動作周波数の条件を参照して設定してください。 bit7 bit6 609 第 23 章 512K/1024K ビット フラッシュメモリ < 注意事項 > フラッシュメモリ動作フラグビット(RDYINT)とフラッシュメモリ書込み / 消去 ステータスビット(RDY)は同時には変化しません。どちらかのビットで書込み / 消去の終了を判定するようにプログラムを作成してください。 自動アルゴリズム 終了タイミング RDYINTビット RDYビット 1マシンサイクル 610 第 23 章 512K/1024K ビット フラッシュメモリ 23.4 フラッシュメモリ自動アルゴリズム起動方法 フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書込みおよびチップ消去の 4 種類があり , セクタ消去については一時停止と再開の 制御ができます。 ■ コマンドシーケンス表 表 23.4-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま す。コマンドレジスタにライトするデータはすべてバイト長ですが , ワードアクセスで 書き込んでください。ワードアクセスで書き込んだ場合の上位バイトのデータは無視 されます。 表 23.4-1 コマンドシーケンス表 バス 1stバス 2ndバス 3rdバス 4thバス 5thバス 6thバス コマンド ライトサイクル ライトサイクル ライトサイクル ライトサイクル ライトサイクル ライトサイクル ライト シーケンス アクセス アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ 読出し/ - - - - - - - - - - FFXXXX XXF0 1 リセット* 読出し/ - - RA - - RD FFAAAA XXAA FF5554 XX55 FFAAAA XXF0 4 リセット* 書込み - - PA - - PD FFAAAA XXAA FF5554 XX55 FFAAAA XXA0 4 プログラム (even) (word) チップ FFAAAA XXAA FF5554 XX55 FFAAAA XX80 FFAAAA XXAA FF5554 XX55 FFAAAA XX10 6 消去 セクタ SA XX30 FFAAAA XXAA FF5554 XX55 FFAAAA XX80 FFAAAA XXAA FF5554 XX55 6 消去 (even) セクタ消去一時停止 Address"FFXXXX"Data(xxB0H)の入力で,セクタ消去中の消去一時停止 セクタ消去再開 Address"FFXXXX"Data(xx30H)の入力で,セクタ消去中の消去一時停止後,消去開始 Auto Select 3 FFAAAA XXAA FF5554 XX55 FFAAAA XX90 - - - - - - *: 2種類の読出し/リセットコマンドは, フラッシュメモリを読出しモードにリセットできます。 (注意事項) ・表中のアドレスは, CPUメモリマップ上の値です。アドレスおよびデータはすべて16進数で表記しています。ただし"X"は任意の値です。 ・RA: 読出しアドレス ・PA:書込みアドレス, 偶数アドレスのみ指定可 ・SA:セクタアドレス ・RD:読出しデータ ・PD:書込みデータ, ワードデータのみ指定可 表 23.4-1 における AutoSelect は , セクタ保護の状態を知るためのコマンドです。 表 23.4-1 のコマンドと共に , 下記のようにアドレスを設定する必要があります。 611 第 23 章 512K/1024K ビット フラッシュメモリ 表 23.4-2 AutoSelect 時のアドレス設定 セクタ保護 AQ13 ∼ AQ16 AQ7 AQ2 AQ1 AQ0 DQ7 ∼ DQ0 セクタ アドレス L H L L CODE* *: 保護されたセクタアドレスでの出力は "01H" 保護されていないセクタアドレスでの出力は "00H" 612 第 23 章 512K/1024K ビット フラッシュメモリ 23.5 自動アルゴリズム実行状態の確認 フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで実行するため , フラッシュメモリ内部の動作状態をハードウェアシーケンスによって確認ができま す。 ■ ハードウェアシーケンスフラグ ● ハードウェアシーケンスフラグの概要 ハードウェアシーケンスフラグは , 以下の 5 ビットの出力で構成されます。 • データポーリングフラグ(DQ7) • トグルビットフラグ(DQ6) • タイミングリミット超過フラグ(DQ5) • セクタ消去タイマフラグ(DQ3) • トグルビット 2 フラグ(DQ2) ハードウェアシーケンスフラグにより , 書込み / チップ・セクタ消去の終了 , 消去コー ド書込みができるかを確認できます。 ハードウェアシーケンスフラグを参照するには , コマンドシーケンス設定後にフラッ シュメモリ内部の対象セクタのアドレスにリードアクセスすることで参照できます。 表 23.5-1 にハードウェアシーケンスフラグのビット割当てを示します。 表 23.5-1 ハードウェアシーケンスフラグのビット割当て ビット No. ハードウェアシーケンスフラグ 7 6 5 4 3 2 1 0 DQ7 DQ6 DQ5 − DQ3 DQ2 − − • 自動書込み / チップ・セクタ消去が実行中か終了しているか判断するためには , ハー ドウェアシーケンスフラグを確認するかまたはフラッシュメモリ制御ステータス レジスタのフラッシュメモリ書込み / 消去ステータスビット(FMCS: RDY)を確認 してください。書込み / 消去の終了後は , 読出し / リセット状態に戻ります。 • 書込み / 消去プログラムを作成する場合には , DQ7, DQ6, DQ5, DQ3, DQ2 のフラグで 自動書込み / 消去の終了を確認後に , データの読出しを処理してください。 • 2 回目以降のセクタ消去コード書込みが有効であるかについても , ハードウェア シーケンスフラグによって確認できます。 613 第 23 章 512K/1024K ビット フラッシュメモリ ● ハードウェアシーケンスフラグの説明 表 23.5-2 に , ハードウェアシーケンスフラグ機能の一覧を示します。 表 23.5-2 ハードウェアシーケンスフラグ機能の一覧 状 態 書込み→書込み完了 (書込みアドレス指時) 正常動作時 の状態変化 DQ7 DQ6 DQ5 DQ3 DQ2 DQ7 → DATA: 7 Toggle → 0→ DATA: 5 0→ DATA: 3 1→ DATA: 2 0→1 1 DATA: 6 チップ・セクタ消去 →消去完了 0→1 セクタ消去ウェイト →消去開始 0 Toggle 0 0→1 Toggle 0→1 Toggle → 1 0 1→0 Toggle 1→0 1 → Toggle 0 0→1 Toggle DATA: 7 DATA: 6 DATA: 5 DATA: 3 DATA: 2 DQ7 Toggle 1 0 1 0 Toggle 1 1 * 消去→セクタ消去一時止 (消去中のセクタ) Toggle → Stop Toggle → Stop セクタ消去一時停止 →消去再開 (消去中のセクタ) セクタ消去一時停止中 (消去中ではないセタ タ) 書込み 異常動作 チップ・セクタ消去 * : DQ5 が "1" の場合(タイミングリミット超過), 書込み/消去中セクタへの連続的な読出しに 対して DQ2 はトグル動作を行い , ほかのセクタへの読出しに対してはトグル動作を行いません。 614 第 23 章 512K/1024K ビット フラッシュメモリ 23.5.1 データポーリングフラグ(DQ7) データポーリングフラグ(DQ7)は , 自動アルゴリズムが実行中もしくは終了状態 であることをデータポーリング機能によって知らせるハードウェアシーケンスフラ グです。 ■ データポーリングフラグ(DQ7) 表 23.5-3 と表 23.5-4 に , データポーリングフラグの状態遷移を示します。 表 23.5-3 データポーリングフラグの状態遷移(正常動作時の状態変化) 動作状態 書込み→ 書込み完了 チップ・ セクタ消去 → 消去完了 DQ7 DQ7 → DATA: 7 0→1 セクタ消去 ウェイト→ 消去開始 セクタ消去→ セクタ消去 一時停止 (消去中の セクタ) セクタ消去 一時停止→ 消去再開 (消去中の セクタ) セクタ消去 一時停止中 (消去中では ないセクタ) 0 0→1 1→0 DATA: 7 表 23.5-4 データポーリングフラグの状態遷移(異常動作時の状態変化) 動作状態 書込み チップ・セクタ 消去 DQ7 DQ7 0 ● 書込みの場合 • 自動書込みアルゴリズム実行中にリードアクセスした場合 , 最後に書き込まれた データの bit7 を反転させた値を出力します。 • 自動書込みアルゴリズム終了時にリードアクセスした場合 , フラッシュメモリは リードアクセスしたアドレスの bit7 を出力します。 ● チップ消去 / セクタ消去の場合 • チップ消去 / セクタ消去のアルゴリズム実行中に現在消去しているセクタへリード アクセスすると , フラッシュメモリの bit7 は "0" を出力します。チップ消去 / セクタ 消去が終了すると , フラッシュメモリの bit7 は "1" を出力します。 ● セクタ消去一時停止の場合 • セクタ消去一時停止状態でリードアクセスした場合 , フラッシュメモリは , リード アドレスが消去中のセクタであれば , "1" を出力します。消去中のセクタでなけれ ば , リードアドレスの読出し値の bit7(DATA: 7)を出力します。 • トグルビットフラグ(DQ6)と共に参照することで , セクタ一時停止状態であるか , どのセクタが消去中であるかを判定できます。 615 第 23 章 512K/1024K ビット フラッシュメモリ < 注意事項 > 616 自動アルゴリズムを起動した場合は , 指定したアドレスへのリードアクセスは無視 されます。データの読出しは , データポーリングフラグ(DQ7)に "1" が設定され た後 , 可能になります。自動アルゴリズム終了後のデータの読出しは , データポー リング終了を確認したリードアクセスの後に行ってください。 第 23 章 512K/1024K ビット フラッシュメモリ 23.5.2 トグルビットフラグ(DQ6) トグルビットフラグ(DQ6)は , 自動アルゴリズムが実行中 , もしくは終了状態であ ることをトグルビット機能によって知らせるハードウェアシーケンスフラグです。 ■ トグルビットフラグ(DQ6) 表 23.5-5 と表 23.5-6 に , トグルビットフラグの状態遷移を示します。 表 23.5-5 トグルビットフラグの状態遷移(正常動作時の状態変化) 動作状態 書込み→ 書込み完了 チップ・ セクタ消去 → 消去完了 DQ6 Toggle → DATA: 6 Toggle → Stop セクタ消去 ウェイト→ 消去開始 セクタ消去→ セクタ消去 一時停止 (消去中の セクタ) セクタ消去 一時停止→ 消去再開 (消去中の セクタ) セクタ消去 一時停止中 (消去中では ないセクタ) Toggle Toggle → 1 1 → Toggle DATA: 6 表 23.5-6 トグルビットフラグの状態遷移(異常動作時の状態変化) 動作状態 書込み チップ・セクタ 消去 DQ6 Toggle Toggle ● 書込みとチップ消去 / セクタ消去の場合 • 自動書込みアルゴリズムおよびチップ消去 / セクタ消去のアルゴリズム実行中に , リードアクセスを連続して行った場合 , フラッシュメモリは , リードごとに "1" と "0" を交互にトグル出力します。 • 自動書込みアルゴリズムおよびチップ消去 / セクタ消去のアルゴリズム終了後に , リードアクセスを連続して行った場合 , フラッシュメモリはリードごとにリードア ドレスの読出し値の bit6(DATA: 6)を出力します。 ● セクタ消去一時停止の場合 • セクタ消去一時停止状態でリードアクセスした場合 , フラッシュメモリは , リード アドレスが消去中のセクタであるならば , "1" を出力します。消去中のセクタでなけ れば , リードアドレスの読出し値の bit6(DATA: 6)を出力します。 < 参考 > 書込み対象のセクタが書換え保護されている場合は , 約 2ms 間トグル出力した後 , データを書換えることなくトグル出力を終了します。 消去するすべてのセクタが書換え保護されている場合 , トグルビットフラグ(DQ6) は , 約 100ms の間トグル出力した後 , データを書換えることなく読出し / リセット 状態に戻ります。 617 第 23 章 512K/1024K ビット フラッシュメモリ 23.5.3 タイミングリミット超過フラグ(DQ5) タイミングリミット超過フラグ(DQ5)は , 自動アルゴリズムの実行が規定時間 (書込み / 消去に要する時間)を超えてしまったことをフラッシュメモリ内部に知ら せるハードウェアシーケンスフラグです。 ■ タイミングリミット超過フラグ(DQ5) 表 23.5-7 と表 23.5-8 に , タイミングリミット超過フラグの状態遷移を示します。 表 23.5-7 タイミングリミット超過フラグの状態遷移(正常動作時の状態変化) 動作状態 書込み→ 書込み完了 チップ・ セクタ消去 → 消去完了 DQ5 0 → DATA: 5 0→1 セクタ消去 ウェイト→ 消去開始 セクタ消去→ セクタ消去 一時停止 (消去中の セクタ) セクタ消去 一時停止→ 消去再開 (消去中の セクタ) セクタ消去 一時停止中 (消去中では ないセクタ) 0 0 0 DATA: 5 表 23.5-8 タイミングリミット超過フラグの状態遷移(異常動作時の状態変化) 動作状態 書込み チップ・セクタ 消去 DQ5 1 1 ● 書込みとチップ消去 / セクタ消去の場合 • 書込みまたはチップ消去 / セクタ消去の自動アルゴリズム起動後にリードアクセス をした場合 , 規定時間(書込み / 消去に要する時間)内であれば "0" を , 規定時間を 超えている場合は "1" を出力します。 • タイミングリミット超過フラグ(DQ5)は , 自動アルゴリズムが実行中か終了状態 にかかわらず , 書込み / 消去の成功または失敗を判定できます。タイミングリミッ ト超過フラグ(DQ5)が "1" を出力した場合 , データポーリング機能またはトグル ビット機能により自動アルゴリズムが実行中であれば , 書込みが失敗していると判 断できます。 • 例えば "0" が書き込まれているフラッシュメモリアドレスに "1" を設定した場合は , フラッシュメモリはロックされ , 自動アルゴリズムは終了せず , データポーリング フラグ(DQ7)から有効なデータが出力されません。またトグルビットフラグ(DQ6) はトグル動作を終了せず , タイムリミットを超えてしまい , タイミングリミット超 過フラグ(DQ5)は "1" を出力します。タイミングリミット超過フラグ(DQ5)が "1" を出力した場合は , フラッシュメモリが不良ではなく , 正しく使用されなかった ことを示していますので , リセットコマンドを実行してください。 618 第 23 章 512K/1024K ビット フラッシュメモリ 23.5.4 セクタ消去タイマフラグ(DQ3) セクタ消去タイマフラグ(DQ3)は , セクタ消去コマンド起動後セクタ消去ウェイ ト期間中であるか否かを知らせるハードウェアシーケンスフラグです。 ■ セクタ消去タイマフラグ(DQ3) 表 23.5-9 と表 23.5-10 に , セクタ消去タイマフラグの状態遷移を示します。 表 23.5-9 セクタ消去タイマフラグの状態遷移(正常動作時の状態変化) 動作状態 書込み→ 書込み完了 チップ・ セクタ消去 → 消去完了 DQ3 0 → DATA: 3 1 セクタ消去 ウェイト→ 消去開始 セクタ消去→ セクタ消去 一時停止 (消去中の セクタ) セクタ消去 一時停止→ 消去再開 (消去中の セクタ) セクタ消去 一時停止中 (消去中では ないセクタ) 0→1 1→0 0→1 DATA: 3 表 23.5-10 セクタ消去タイマフラグの状態遷移(異常動作時の状態変化) 動作状態 書込み チップ・セクタ 消去 DQ3 0 1 ● セクタ消去の場合 • セクタ消去コマンド起動後にリードアクセスした場合に , セクタ消去ウェイト期間 中であれば "0" を出力します。セクタ消去ウェイト期間を超えている場合は "1" を 出力します。 • データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示 している場合(DQ=0, DQ6 がトグル出力), セクタ消去タイマフラグ(DQ3)が "1" であれば , セクタ消去しています。続けて消去一時停止以外のコマンドを設定した 場合は , 消去が終了されるまで無視されます。 • セクタ消去タイマフラグ(DQ3)が "0" であった場合 , フラッシュメモリはセクタ 消去コマンドを受け付けることができます。セクタ消去コマンドを書き込む場合は , セクタ消去タイマフラグ(DQ3)が "0" であることを確認してください。セクタ消 去タイマ(DQ3)が "1" であった場合 , 一時停止のセクタ消去コマンドが受け付け られない場合があります。 ● セクタ消去一時停止の場合 • セクタ消去一時停止状態でリードアクセスした場合 , フラッシュメモリは , リード アドレスが消去中のセクタであるならば , "1" を出力します。消去中のセクタでなけ れば , リードアドレスの読出し値の bit3(DATA: 3)を出力します。 619 第 23 章 512K/1024K ビット フラッシュメモリ 23.5.5 トグルビット 2 フラグ(DQ2) トグルビット 2 フラグ(DQ2)は , セクタ消去一時停止中であることをトグルビッ ト機能によって知らせるハードウェアシーケンスフラグです。 ■ トグルビット 2 フラグ(DQ2) 表 23.5-11 と表 23.5-12 に , トグルビット 2 フラグの状態遷移を示します。 表 23.5-11 トグルビット 2 フラグの状態遷移(正常動作時の状態変化) 動作状態 書込み→ 書込み完了 チップ・ セクタ消去→ 消去完了 DQ2 1 → DATA:2 Toggle → Stop セクタ消去 ウェイト→ 消去開始 セクタ消去→ セクタ消去 一時停止 (消去中の セクタ) セクタ消去 一時停止→ 消去再開 (消去中の セクタ) セクタ消去 一時停止中 (消去中では ないセクタ) Toggle Toggle Toggle DATA: 2 表 23.5-12 トグルビット 2 フラグの状態遷移(異常動作時の状態変化) 動作状態 書込み チップ・セクタ 消去 DQ2 1 * * : DQ5 が "1" の場合(タイミングリミット超過), 書込み/消去セクタ中への連続的な読出しに対して DQ2 はトグル動作を行い , ほかのセクタへの読出しに対してはトグル動作を行いません。 ● セクタ消去の場合 • チップ消去 / セクタ消去のアルゴリズム実行中に , リードアクセスを連続して行っ た場合 , フラッシュメモリは , リードごとに "1" と "0" を交互にトグル出力します。 • チップ消去 / セクタ消去のアルゴリズムが終了したあとに , リードアクセスを連続 して行った場合 , フラッシュメモリは , リードごとにリードアドレスの読出し値の bit2(DATA: 2)を出力します。 620 第 23 章 512K/1024K ビット フラッシュメモリ ● セクタ消去一時停止の場合 • セクタ消去一時停止状態でリードアクセスを連続して行った場合 , フラッシュメモ リは , リードアドレスが消去中のセクタであるならば , "1" と "0" を交互にトグル出 力します。消去中のセクタでなければ , リードアドレスの読出し値の bit2(DATA: 2) を出力します。 • セクタ消去一時停止状態で書込みする場合 , 消去一時停止していないセクタから リードアクセスを連続して行うと , "1" を出力します。 • トグルビット 2 フラグ(DQ2)は , トグルビットフラグ(DQ6)と共に使用し , 消 去一時停止中であるかを検出するために使用します(DQ2 はトグル動作を行いま すが , DQ6 はトグル動作を行いません) 。 • トグルビット 2 フラグ(DQ2)は , 消去しているセクタからのリードアクセスがさ れた場合 , トグル動作を行いますので , 消去しているセクタの検出にも使用できま す。 < 参考 > 消去対象のすべてのセクタが書換え保護されている場合 , トグルビット 2 フラグ (DQ2)は , 約 100µs の間トグル出力した後 , データを書換えることなく読出し / リ セット状態に戻ります。 621 第 23 章 512K/1024K ビット フラッシュメモリ 23.6 フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムを起動するコマンドを入力し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去再開のそれ ぞれの動作を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムは , 読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去 一時停止 , 消去再開のコマンドシーケンスを CPU からフラッシュメモリへ書き込むこ とにより起動できます。CPU からフラッシュメモリへの書込みは , 必ず連続して行っ てください。また , 自動アルゴリズムはデータポーリング機能により終了状態を確認で きます。正常終了後は読出し / リセット状態に戻ります。 各動作について , 下記の順に説明します。 • 読出し / リセット状態にする • データを書き込む • 全データを消去する(チップ全消去) • 任意のデータを消去する(セクタ消去) • セクタ消去を一時停止する • セクタ消去を再開する 622 第 23 章 512K/1024K ビット フラッシュメモリ 23.6.1 フラッシュメモリを読出し / リセット状態にする 読出し / リセットコマンドを入力し , フラッシュメモリを読出し / リセット状態にす る手順について説明します。 ■ フラッシュメモリを読出し / リセット状態にする • フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表の読 出し / リセットコマンドを CPU からフラッシュメモリへ連続して送ってください。 • 読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 通りのコマンドシー ケンスがありますが , 違いはありません。 • 読出し / リセット状態はフラッシュメモリの初期状態ですので , 電源投入後 , コマン ドの正常終了後は常に読出し / リセット状態になります。読出し / リセット状態は , コマンドの入力待ち状態でもあります。 • 読出し / リセット状態では , フラッシュメモリへ , リードアクセスすることにより データを読み出すことができます。マスク ROM と同様に CPU からのプログラムア クセスができます。 フラッシュメモリへリードアクセスする場合は , 読出し / リセッ トコマンドは必要ありません。コマンドが正常に終了しなかった場合は , 自動アル ゴリズムを初期化するために , 読出し / リセットコマンドを使用してください。 623 第 23 章 512K/1024K ビット フラッシュメモリ 23.6.2 フラッシュメモリへデータを書き込む 書込みコマンドを入力し , フラッシュメモリへデータを書き込む手順について説明 します。 ■ フラッシュメモリへデータを書き込む • フラッシュメモリのデータ書込み自動アルゴリズムを起動するためには , コマンド シーケンス表の書込みコマンドをCPUからフラッシュメモリへ連続して送ってくだ さい。 • 4 サイクル目に目的のアドレスへのデータ書込みが終了した場合 , 自動アルゴリズ ムが起動され自動書込みを開始します。 ● アドレス指定方法 • 書込みデータサイクルで指定する書込みアドレスは , 偶数アドレスのみ設定できま す。奇数アドレスを設定した場合は , 正しく書き込むことができません。偶数アド レスへはワードデータ単位で書き込んでください。 • 書込みはどのようなアドレスの順番でも , セクタの境界を越えても可能です。1 回 の書込みコマンドによって書き込まれるデータは 1 ワードのみです。 ● データ書込み上の注意 • 書込みによって , ビットデータを "0" から "1" へ戻すことはできません。ビットデー タ "0" にビットデータ "1" を書き込むと , データポーリングアルゴリズム(DQ7)ま たはトグル動作(DQ6)が終了せず , フラッシュメモリ素子が不良と判定され , 書込 み規定時間を超えてタイミングリミット超過フラグ(DQ5)がエラーと判定します。 • 読出し / リセット状態でデータを読み出した場合 , ビットデータは "0" のままです。 ビットデータを "0" から "1" に戻すには , フラッシュメモリを消去をしてください。 • 自動書込み実行中は , 全てのコマンドが無視されます。書込み中にハードウェアリ セットが起動された場合は , 書込みアドレスのデータは保証されません。 ■ フラッシュメモリ書込み手順 • 図 23.6-1 にフラッシュメモリ書込み手順の例を示します。ハードウェアシーケンス フラグを用いることでフラッシュメモリ内部の自動アルゴリズムの状態を判定で きます。ここでは , フラッシュメモリへの書込み終了の確認にデータポーリングフ ラグ(DQ7)を用いています。 • フラグチェックのために読込むデータは , 最後に書き込んだアドレスからの読込み となります。 • データポーリングフラグ(DQ7)は , タイミングリミット超過フラグ(DQ5)と同 時に変化するので , タイミングリミット超過フラグ(DQ5)が "1" であった場合で もデータポーリングフラグビット(DQ7)を確認してください。 • トグルビットフラグ(DQ6)も , タイミングリミット超過フラグビット(DQ5)が "1" に変化するのと同時にトグル動作を止めますので , トグルビットフラグ(DQ6) を確認してください。 624 第 23 章 512K/1024K ビット フラッシュメモリ 図 23.6-1 フラッシュメモリ書込み手順の例 書込み開始 FMCS:WE(ビット5) フラッシュメモリ書込み許可 書込みコマンドシーケンス ①FFAAAA←XXAA ②FF5554←XX55 ③FFAAAA←XXA0 ④書込みアドレス←書込みデータ 内部アドレスリード データポーリング (DQ7) 次アドレス Data Data 0 タイミングリミット (DQ5) 1 内部アドレスリード Data データポーリング (DQ7) Data 書込みエラー 最終アドレス NO YES FMCS:WE(ビット5) フラッシュメモリ書込み許可 書込み完了 ハードウェアシーケンスフラグによる確認 625 第 23 章 512K/1024K ビット フラッシュメモリ 23.6.3 フラッシュメモリのデータを消去する(チップ消去) チップ消去コマンドを入力し , フラッシュメモリの全データを消去する手順につい て説明します。 ■ フラッシュメモリのデータを消去する(チップ消去) • フラッシュメモリからすべてのデータを消去するためには , コマンドシーケンス表 のチップ消去コマンドを CPU からフラッシュメモリへ連続して送ってください。 • チップ消去コマンドは 6 回のバス動作で行われ , 6 サイクル目の書込みが完了した 時点でチップ消去動作を開始します。 • チップ消去の場合は , 消去前にユーザがフラッシュメモリへ書き込む必要はありま せん。自動消去アルゴリズム実行中に , フラッシュメモリはすべてのセルを消去す る前に "0" を自動的に書き込んでから消去します。 626 第 23 章 512K/1024K ビット フラッシュメモリ 23.6.4 フラッシュメモリの任意のデータを消去する(セク タ消去) セクタ消去コマンドを入力し , フラッシュメモリの任意のセクタを消去する(セク タ消去)手順について説明します。セクタごとの消去が可能であり , 複数のセクタ を同時に指定することもできます。 ■ フラッシュメモリの任意のデータを消去する(セクタ消去) フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表のセク タ消去コマンドを CPU からフラッシュメモリへ連続して送ってください。 ● セクタ指定方法 • セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目のアドレスを目 的のセクタ内の偶数アドレスに設定し , データにセクタ消去コード(30H)を書き込 むことにより 50µs のセクタ消去ウェイトが開始します。 • 複数のセクタを消去する場合は , 上記に続き消去する目的のセクタ内のアドレスに 消去コード(30H)を書き込みます。 ● 複数のセクタを指定する場合の注意 • 最後のセクタ消去コードの書込みから50µsのセクタ消去ウェイト期間終了により消 去が開始します。 • 複数のセクタを同時に消去する場合は , 消去セクタのアドレスと消去コード(コマ ンドシーケンス 6 サイクル目)を 50µs 以内に入力してください。50µs 以降に消去 コードを入力した場合は , 受け付けられません。 • 連続したセクタ消去コードの書込みが有効であるかは , セクタ消去タイマフラグ (DQ3)によって確認できます。 • セクタ消去タイマフラグ(DQ3)をリードする場合のアドレスは , 消去しようとし ているセクタを指定してください。 ■ フラッシュメモリのセクタ消去手順 • ハードウェアシーケンスフラグを用いることでフラッシュメモリ内部の自動アル ゴリズムの状態を判定できます。図 23.6-2 にフラッシュメモリセクタ消去手順の例 を示します。ここでは , 消去終了の確認にトグルビットフラグ(DQ6)を用いてい ます。 • トグルビットフラグ(DQ6)は , タイミングリミット超過フラグ(DQ5)が "1" に変 化するのと同時にトグル動作を終了します。タイミングリミット超過フラグ(DQ5) が "1" の場合でも , トグルビットフラグ(DQ6)を確認してください。 • データポーリングフラグ(DQ7)は , タイミングリミット超過フラグ(DQ5)と同 時に変化するので , データポーリングフラグ(DQ7)を確認してください。 627 第 23 章 512K/1024K ビット フラッシュメモリ 図 23.6-2 フラッシュメモリのセクタ消去手順の例 消去開始 FMCS:WE(ビット5) フラッシュメモリ消去許可 消去コマンドシーケンス ①FFAAAA←XXAA ②FF5554←XX55 ③FFAAAA←XX80 ④FFAAAA←XXAA ⑤FF5554←XX55 ⑥消去セクタへコード入力(30H) YES 消去セクタがほかに あるか NO 内部アドレスリード1 内部アドレスリード2 NO YES 次セクタ セクタ消去終了 トグルビット(DQ6) データ1=データ2 YES NO 0 タイミングリミット (DQ5) 1 内部アドレスリード 内部アドレスリード NO トグルビット(DQ6) データ1=データ2 YES 消去エラー 最終セクタ YES FMCS:WE(ビット5) フラッシュメモリ消去許可 ハードウェアシーケンス フラグによる確認 628 消去完了 NO 第 23 章 512K/1024K ビット フラッシュメモリ 23.6.5 フラッシュメモリのセクタ消去を一時停止する セクタ消去一時停止コマンドを入力し , フラッシュメモリセクタ消去を一時停止す る手順について説明します。消去中でないセクタから , データを読み出すことが可 能です。 ■ フラッシュメモリのセクタ消去を一時停止する • フラッシュメモリのセクタ消去を一時停止するためには , コマンドシーケンス表の セクタ消去一時停止コマンドを CPU からフラッシュメモリへ送ってください。 • セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でない セクタからデータを読み出すことができます。セクタ消去一時停止状態では , 読出 しのみが可能であり , 書込みはできません。 • セクタ消去一時停止コマンドは , 消去ウェイト時間を含むセクタ消去中のみ有効で あり , チップ消去中や書込み中は無視されます。 • セクタ消去一時停止コマンドは , 消去一時停止コード(B0H)を書き込むことで実 行されます。このときのアドレスは , フラッシュメモリ内の任意のアドレスを設定 してください。消去一時停止中に再度 , 消去一時停止コマンドを実行した場合 , 再 度入力したコマンドは無視されます。 • セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドを入力した場合 , 直ち にセクタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。 • セクタ消去ウェイト期間後のセクタ消去中に消去一時停止コマンドを入力した場 合 , 最大 20µs 後に消去一時停止状態になります。セクタ消去一時停止コマンドは , セクタ消去コマンドあるいはセクタ消去再開コマンド発行後 , 20µs 以上後に行って ください。 629 第 23 章 512K/1024K ビット フラッシュメモリ 23.6.6 フラッシュメモリのセクタ消去を再開する セクタ消去再開コマンドを入力し , 一時停止したフラッシュメモリセクタ消去を再 開する手順について説明します。 ■ フラッシュメモリのセクタ消去を再開する • 一時停止したセクタ消去を再開させるためには , コマンドシーケンス表のセクタ消 去再開コマンドを CPU からフラッシュメモリへ送ってください。 • セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停 止状態から , セクタ消去を再開するためのコマンドです。セクタ消去再開コマンド は消去再開コード(30H)を書き込むことで実行されますが , アドレスはフラッシュ メモリ内の任意のアドレスを指定します。 • セクタ消去中のセクタ消去再開コマンドの入力は無視されます。 630 第 23 章 512K/1024K ビット フラッシュメモリ 23.7 フラッシュセキュリティの特長 フラッシュセキュリティコントローラ機能により , フラッシュメモリの内容を外部 端子から読み出されることを防止できます。 ■ フラッシュセキュリティの特長 事前定義されたフラッシュメモリのアドレスが , フラッシュセキュリティコントロー ラ(MB90F462, MB90F462A: FF0001H; MB90F463A: FE0001H)に割り当てられます。こ のアドレスに保護コード "01H" が書き込まれると , フラッシュメモリへのアクセスが制 限されます。フラッシュメモリが一度保護されると , チップ消去を行うまで , 機能の ロックを解除することはできません。ロックを解除しない限り , いずれの外部端子から もフラッシュメモリへの読出し / 書込みはできません。 この機能は , フラッシュメモリに格納される自己完結型プログラムやデータのセキュ リティを必要とするアプリケーションに適しています。マイクロコントローラの外部 に位置するプログラム部分を対象アプリケーションが必要とする場合には , フラッ シュセキュリティコントローラは , 目的の機能を提供できません。このため , 保護コー ドを設定した場合は , 外部ベクタフェッチモードは使用しません。 標準パラレルプログラマによるフラッシュマイクロコントローラのプログラミングに は , 独特のセットアップが必要になることがあります。たとえば , ミナトエレクトロニ クスのプログラマでは , デバイスチェックを切断する必要があります。保護コードは , フラッシュプログラミングの終わりにコーディングすることを推奨されます。これは , プログラミング中の不要な保護を回避するためです。 一度保護されたフラッシュメモリを再度プログラムするには , チップ消去操作を行う 必要があります。 詳細については , 弊社担当者にお問い合わせください。 631 第 23 章 512K/1024K ビット フラッシュメモリ 23.8 512K ビットフラッシュメモリのプログラム例 512K ビットフラッシュメモリのプログラム例を掲載します。 ■ 512K ビットフラッシュメモリのプログラム例 NAME FLASHWE TITLE FLASHWE ;-----------------------------------------------------------------;512kbit-FLASH サンプルプログラム ;1:FLASH にあるプログラム ( アドレス FFBC00H セクタ SA2) を RAM( アドレス 000700H) ; に転送する。 ;2:RAM 上でプログラムを実行する。 ;3:PDR1 の値を FLASH(アドレス FF0000H セクタ SA0)に書き込む。 ;4: 書き込んだ値(アドレス FF0000H セクタ SA0)を読み出し PDR2 に出力する。 ;5: 書き込んだセクタ(SA0)を消去する。 ;6: 消去データ確認の出力 ; 条件 ; ・RAM 転送バイト数 : 100H(256 バイト) ; ・書込み , 消去の終了判定 ; DQ5(タイミングリミット超過フラグ)での判定 ; DQ6(トグルビットフラグ)での判定 ; RDY(FMCS)での判定 ; ・エラー時の処理 ; P00 ∼ P07 に "H" を出力する ; リセットコマンド発行 ;-----------------------------------------------------------------; RESOUS IOSEG ABS=00 ;"RESOUS"I/O セグメントの定義 ORG 0000H PDR0 RB 1 PDR1 RB 1 PDR2 RB 1 PDR3 RB 1 ORG 0010H DDR0 RB 1 DDR1 RB 1 DDR2 RB 1 DDR3 RB 1 ORG 00A1H CKSCR RB 1 ORG 00AEH FMCS RB 1 ORG 006FH ROMM RB 1 RESOUS ENDS ; SSTA SSEG RW 0127H STA_T RW 1 SSTA ENDS ; 632 第 23 章 512K/1024K ビット フラッシュメモリ DSEG ABS=0FFH ;FLASH コマンドアドレス ORG 5554H COMADR2 RW 1 ORG 0AAAAH COMADR1 RW 1 DATA ENDS ;-----------------------------------------------------------------; メインプログラム(SA1) ;-----------------------------------------------------------------CODE CSEG START: ;---------------------------------------------------------; 初期化 ;---------------------------------------------------------MOV CKSCR,#0BAH ;3 逓倍に設定 MOV RP,#0 MOV A,#!STA_T MOV SSB,A MOVW A,#STA_T MOVW SP,A MOV ROMM,#00H ; ミラー OFF MOV PDR0,#00H ; エラー確認用 MOV DDR0,#0FFH MOV PDR1,#00H ; データ入力用ポート MOV DDR1,#00H MOV PDR2,#00H ; データ出力用ポート MOV DDR2,#0FFH ;---------------------------------------------------------;RAM(700H 番地)に "FLASH 書込み消去プログラム(FFBC00H)" を転送する DATA ;---------------------------------------------------------MOVW A,#0700H ; 転送先 RAM 領域 MOVW A,#0BC00H ; 転送元アドレス (プログラムのある位置) MOVW RW0,#100H ; 転送するバイト数 MOVS ADB,PCB ;FFBC00H から 000700H へ 100H 転送 CALLP 000700H ; 転送したプログラムのあるアドレスへジャンプ ;---------------------------------------------------; データ出力 ;---------------------------------------------------OUT MOV A,#0FFH MOV ADB,A MOVW RW2,#0000H MOVW A,@RW2+00 MOV PDR2,A END JMP * CODE ENDS ;-----------------------------------------------------------------;FLASH 書込み消去プログラム(SA2) ;-----------------------------------------------------------------RAMPRG CSEG ABS=0FFH ORG 0BC00H ;---------------------------------------------------------; 初期化 ;---------------------------------------------------------MOVW RW0,#0500H ;RW0: 入力データ確保用 RAM 空間 00:0500 ∼ MOVW RW2,#0000H ;RW2: フラッシュメモリ書込みアドレス FD:0000 ∼ 633 第 23 章 512K/1024K ビット フラッシュメモリ MOV MOV MOV MOV MOV MOV A,#00H DTB,A A,#0FFH ADB,A PDR3,#00H DDR3,#00H ;DTB 変更 ;@RW0 用バンク指定 ;ADB 変更 1 ; 書込みモード指定アドレス用バンク指定 ; スイッチ初期化 ; WAIT1 BBC PDR3:0,WAIT1;PDR3:0 "H" で書込みスタート ; ;-----------------------------------------------------------------; 書込み(SA0) ;-----------------------------------------------------------------MOV A,PDR1 MOVW @RW0+00,A ;RAM に PDR1 データを確保 MOV FMCS,#20H ; 書込みモード設定 MOVW ADB:COMADR1,#00AAH MOVW ADB:COMADR2,#0055H MOVW ADB:COMADR1,#00A0H MOVW A,@RW0+00 MOVW @RW2+00,A ; フラッシュ書込みコマンド 1 ; フラッシュ書込みコマンド 2 ; フラッシュ書込みコマンド 3 ; ; 入力データ(RW0)をフラッシュメモリ(RW2)へ書込む ; WRITE NTOW ; WAIT2 ; 634 ; 待ち時間チェック ;---------------------------------------------------------; タイムリミット超過チェック - フラグが立ちトグル動作中である場合 ;ERROR ;---------------------------------------------------------MOVW A,@RW2+00 AND A,#20H ;DQ5 タイムリミットチェック BZ NTOW ; タイムリミットオーバー MOVW A,@RW2+00 ;AH MOVW A,@RW2+00 ;AL XORW A ;AH AL の XOR(値が違えば "1") AND A,#40H ;DQ6 トグルビットは違っているか BNZ ERROR ; 違えば ERROR へ ;---------------------------------------------------------; 書込み終了チェック(FMCS-RDY) ;---------------------------------------------------------MOVW A,FMCS AND A,#10H ;FMCS RDY ビット(4bit)抽出 BZ WRITE ; 書込み終了か? MOV FMCS,#00H ; 書込みモード解除 ;---------------------------------------------------------; 書込みデータ出力 ;---------------------------------------------------------MOVW RW2,#0000H ; 書込みデータ出力 MOVW A,@RW2+00 MOV PDR2,A BBC PDR3:1,WAIT2 ;PDR3:1"H" でセクタ消去スタート 第 23 章 512K/1024K ビット フラッシュメモリ ;-----------------------------------------------------------------; セクタ消去(SA0) ;-----------------------------------------------------------------MOV @RW2+00,#0000H; アドレス初期化 MOV FMCS,#20H ; 消去モード設定 ELS MOVW ADB:COMADR1,#00AAH MOVW ADB:COMADR2,#0055H MOVW ADB:COMADR1,#0080H MOVW ADB:COMADR1,#00AAH MOVW ADB:COMADR2,#0055H MOV @RW2+00,#0030H ; フラッシュ消去コマンド 1 ; フラッシュ消去コマンド 2 ; フラッシュ消去コマンド 3 ; フラッシュ消去コマンド 4 ; フラッシュ消去コマンド 5 ; 消すセクタに消去コマンド発行 6 ; 待ち時間チェック ;---------------------------------------------------------; タイムリミット超過チェック - フラグが ; 立ちトグル動作中である場合 ;ERROR ;---------------------------------------------------------MOVW A,@RW2+00 AND A,#20H ;DQ5 タイムリミットチェック BZ NTOE ; タイムリミットオーバー MOVW A,@RW2+00 ;AH 書込み動作中は , DQ6 から MOVW A,@RW2+00 ;AL リード毎 "H/L" が交互出力される XORW A ;AH と AL の XOR(DQ6 の値が違えば ;"1" 書込み動作中である) AND A,#40H ;DQ6 トグルビットは "H" か BNZ ERROR ;"H" なら ERROR へ ;---------------------------------------------------------; 消去終了チェック(FMCS-RDY) ;---------------------------------------------------------NTOE MOVW A,FMCS ; AND A,#10H ;FMCS RDY ビット(4bit)抽出 BZ ELS ; セクタ消去終了か? MOV FMCS,#00H ;FLASH 消去モード解除 RETP ; メインプログラムに戻る ;-----------------------------------------------------------------; エラー ;-----------------------------------------------------------------ERROR MOV ADB:COMADR1,#0F0H ; リセットコマンド(読出しが可能になる) MOV FMCS,#00H ;FLASH モード解除 MOV PDR0,#0FFH ; エラー処理の確認 RETP ; メインプログラムに戻る RAMPRG ENDS ;-----------------------------------------------------------------VECT CSEG ABS=0FFH ORG 0FFDCH DSL START DB 00H VECT ENDS ; END START 635 第 23 章 512K/1024K ビット フラッシュメモリ 636 第 24 章 フラッシュシリアル 書込み接続例 横河ディジタルコンピュータ株式会社製フラッ シュマイコンプログラマを用いた場合の , シリアル 書込み接続例について説明します。 24.1 F2MC-16LX ファミリ MB90F462/F462A/F463A シリア ル書込み接続の基本構成 24.2 シングルチップモード時の接続例(ユーザ電源) 24.3 シングルチップモード時の接続例(ライタ電源) 24.4 フラッシュマイコンプログラマとの最小限の接続例 (ユーザ電源) 24.5 フラッシュマイコンプログラマとの最小限の接続例 (ライタ電源) 637 第 24 章 フラッシュシリアル 書込み接続例 24.1 F2MC-16LX ファミリ MB90F462/F462A/F463A シリア ル書込み接続の基本構成 MB90F462/F462A/F463A は , フラッシュ ROM の富士通標準シリアルオンボード書 込みをサポートしています。オンボード書込み仕様について以下に解説します。 ■ MB90F462/F462A/F463A シリアル書込み接続の基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ株式会社製 フラッシュマイコンプログラマを使用します。 図 24.1-1 シリアル書込み接続の基本構成 ホストインターフェースケーブル(AZ221) 汎用共通ケーブル(AZ210) RS-232C フラッシュマイコン クロック同期シリアル MB90F462/F462A/F463A プログラマ ユーザシステム + メモリカード スタンドアロンで動作可能 < 注意事項 > 638 フラッシュマイコンプログラマ(AF220/AF210/AF120/AF110)の機能や操作方法 , 接続用汎用共通ケーブル(AZ210), コネクタにつきましては , 横河ディジタルコン ピュータ株式会社へお問合わせください。 第 24 章 フラッシュシリアル 書込み接続例 表 24.1-1 富士通標準シリアルオンボード書込みに使用する端子 端 子 MD2, MD1, MD0 端子機能説明 モード入力端子 補足説明 MD2=1, MD1=1, MD0=0 に設定した場合 , フラッシュシリアル書込 みモードになります。 フラッシュシリアル書込みモード時は , CPU 内部動作クロックは PLL クロックの 1 逓倍になります。発振クロック周波数が CPU 内 部動作クロックになりますので , シリアル書込みに使用できる振 動子は 1MHz ∼ 16MHz になります。 X0, X1 発振クロック端子 P00, P01 書込みプログラム起動端子 RST リセット端子 SIN0 シリアルデータ入力端子 SOT0 シリアルデータ出力端子 SCK0 シリアルクロック入力端子 C C 端子 電源安定化の容量端子です。外部に 0.1µF 程度のセラミックコン デンサを接続してください。 VCC 電源電圧供給端子 書込み電圧(5V ± 10%) VSS GND 端子 フラッシュマイコンプログラマの GND と共通にしてください。 < 注意事項 > 書込みプログラムを起動するには P00 を "0" に , P01 を "1" に設定 してください。 − UART をクロック同期モード(モード 0)で使用します。 P00, SIN0, SOT0, SCK0 端子をユーザシステムでも使用される場合には , 図 24.1-2 の制御回路が必要になります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中の場合にはユーザ回路を切り離すことができます。 次節以降に , 以下のシリアル書込み接続例を示しますのでご参照ください。 • シングルチップモード接続例(ユーザ電源) • シングルチップモード接続例(ライタ電源) • フラッシュマイコンプログラマとの最小限の接続例(ユーザ電源) • フラッシュマイコンプログラマとの最小限の接続例(ライタ電源) 図 24.1-2 制御回路 AF220/AF210/AF120/AF110 書込み制御端子 MB90F462/F462A/F463A 書込み制御端子 10kΩ AF220/AF210/AF120/AF110 /TICS端子 ユーザ 639 第 24 章 フラッシュシリアル 書込み接続例 ■ 発振クロック周波数とシリアルクロック入力周波数 MB90F462/F462A/F463Aの入力可能なシリアルクロック周波数は, 以下の計算式によっ て求めることができますので , ご使用の発振クロック周波数に合わせて , シリアルク ロック入力周波数をフラッシュマイコンプログラマに設定してください。 入力可能なシリアルクロック周波数 =0.125 ×発振クロック周波数 表 24.1-2 入力可能なシリアルクロック周波数の例 発振クロック 周波数 マイコンの入力可能な 最大シリアルクロック 周波数 AF220/AF210/AF120/ AF110 の設定可能な 最大シリアルクロック 周波数 AF200 の設定可能な 最大シリアルクロック 周波数 4MHz 時 500kHz 500kHz 500kHz 8MHz 時 1MHz 850kHz 500kHz 16MHz 時 2MHz 1.25MHz 500kHz ■ フラッシュマイコンプログラマのシステム構成(横河ディジタルコンピュータ株 式会社製) 表 24.1-3 フラッシュマイコンプログラマのシステム構成 (横河ディジタルコンピュータ株式会社製) 型 格 本体 機 能 AF220/AC4P イーサネットインタフェース内蔵モデル /100V ∼ 220V 電源アダプタ AF210/AC4P スタンダードモデル /100V ∼ 220V 電源アダプタ AF120/AC4P 単キー イーサネットインタフェース内蔵モデル /100V ∼ 220V 電源アダプタ AF110/AC4P 単キーモデル /100V ∼ 220V 電源アダプタ AZ221 ライタ専用 PC/AT 用 RS232C ケーブル AZ210 標準ターゲットプローブ(a)長さ : 1m FF201 富士通製 F2MC-16LX フラッシュマイコン用コントロールモジュール /P2 2MB PC Card(Option)FLASH メモリ容量∼ 128KB 対応 /P4 4MB PC Card(Option)FLASH メモリ容量∼ 512KB 対応 < 注意事項 > 640 AF200 フラッシュマイコンプログラマは終息製品ですが , コントロールモジュール FF201 を用いることにより使用できます。シリアル書込み接続例を , 次節以降に示 します。 第 24 章 フラッシュシリアル 書込み接続例 24.2 シングルチップモード時の接続例(ユーザ電源) シングルチップモードに設定されたユーザシステムのモード端子(MD2, MD0)へ , AF220/AF210/AF210/AF120/AF110 の端子(TAUX3, TMODE)より MD2=1, MD0=0 が設定され , フラッシュシリアル書込みモードになります。ユーザ電源時の 接続例を示します。 ■ シングルチップモード時の接続例(ユーザ電源を使用する場合) 図 24.2-1 MB90F462/F462A/F463A シリアル書込み接続例(ユーザ電源を使用する場合) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタ DX10-28S MB90F462/F462A/F463A (19) MD2 10kΩ 10kΩ MD1 10kΩ TMODE MD0 X0 (12) 1MHz~16MHz X1 TAUX (23) /TICS (10) P00 10kΩ ユーザ ユーザ 10kΩ 10kΩ /TRES HST 10kΩ (5) RST 10kΩ ユーザ P01 C 0.1μF TTXD TRXD TCK (13) (27) (6) SIN0 SOT0 TVcc (2) Vcc GND (7,8, 14,15, 21,22, 1,28) 3,4,9,11,16,17,18,20,24,25,26端子はOPEN DX10-28S:ライトアングルタイプ SCK0 ユーザ電源 Vss 14端子 1端子 28端子 15端子 DX10-28S コネクタ(ヒロセ電機製)の端子配列 641 第 24 章 フラッシュシリアル 書込み接続例 < 注意事項 > • SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , P00 に接続さ れている制御回路と同様の回路(図 24.2-2)が必要となります。フラッシュマ イコンプログラマの /TICS 信号により , シリアル書込み中の場合にはユーザ回路 を切離すことができます。 • AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってく ださい。 図 24.2-2 制御回路 AF220/AF210/AF120/AF110 書込み制御端子 MB90F462/F462A/F463A 書込み制御端子 10kΩ AF220/AF210/AF120/AF110 /TICS端子 ユーザ 642 第 24 章 フラッシュシリアル 書込み接続例 24.3 シングルチップモード時の接続例(ライタ電源) シングルチップモードに設定されたユーザシステムのモード端子(MD2, MD0)へ , AF220/AF210/AF210/AF120/AF110 の端子(TAUX3, TMODE)より MD2=1, MD0=0 が設定され , フラッシュシリアル書込みモードになります。ライタ電源時の 接続例を示します。 ■ シングルチップモード時の接続例(フラッシュマイコンプログラマから電源を供 給する場合) 図 24.3-1 MB90F462/F462A/F463A シリアル書込み接続例 (フラッシュマイコンプログラマから電源を供給する場合) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタ DX10-28S MB90F462/F462A/F463A (19) MD2 10kΩ 10kΩ MD1 10kΩ TMODE (12) MD0 X0 1MHz~16MHz X1 TAUX (23) /TICS (10) P00 10kΩ ユーザ ユーザ 10kΩ /TRES 10kΩ HST 10kΩ (5) RST 10kΩ ユーザ P01 C 0.1μF TTXD TRXD TCK TVcc Vcc TVPP1 GND (13) (27) (6) (2) (3) (16) (7,8, 14,15, 21,22, 1,28) 4,9,11,17,18,20,24,25,26端子はOPEN DX10-28S:ライトアングルタイプ SIN0 SOT0 SCK0 Vcc ユーザ電源 14端子 Vss 1端子 DX10-28S 28端子 15端子 コネクタ(ヒロセ電機製)の端子配列 643 第 24 章 フラッシュシリアル 書込み接続例 < 注意事項 > • SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , P00 に接続さ れている制御回路と同様の制御回路(図 24.3-2)が必要となります。フラッ シュマイコンプログラマの /TICS 信号により , シリアル書込み中の場合にはユー ザ回路を切離すことができます。 • AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってく ださい。 • 書込み電源を AF220/AF210/AF120/AF110 から供給する場合は , ユーザ電源と短 絡しないでください。 図 24.3-2 制御回路 AF220/AF210/AF120/AF110 書込み制御端子 MB90F462/F462A/F463A 書込み制御端子 10kΩ AF220/AF210/AF120/AF110 /TICS端子 ユーザ 644 第 24 章 フラッシュシリアル 書込み接続例 24.4 フラッシュマイコンプログラマとの最小限の接続例 (ユーザ電源) シリアル書込み時に各端子(MD2, MD0, P00)を図 24.4-1 のように設定した場合は , MD2, MD0, P00 とフラッシュマイコンプログラマの接続は必要ありません。 ■ フラッシュマイコンプログラマとの最小限の接続例(ユーザ電源を使用する場合) 図 24.4-1 フラッシュマイコンプログラマとの最小限の接続例(ユーザ電源を使用する場合) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ ユーザシステム シリアル書込時"1" 10kΩ MB90F462/F462A/F463A MD2 シリアル書込時"1" 10kΩ 10kΩ 10kΩ 10kΩ MD1 MD0 10kΩ シリアル書込時"0" X0 1MHz~16MHz X1 10kΩ シリアル書込時"0" P00 ユーザ回路 シリアル書込時"1" 10kΩ コネクタ DX10-28S 10KΩ P01 ユーザ回路 HST C 0.1μF 10kΩ /TRES (5) RST TTXD (13) SIN0 TRXD (27) SOT0 TCK (6) SCK0 TVcc (2) Vcc GND (7,8, 14,15, 21,22, 1,28) 3,4,9,10,11,12,16,17,18,19,20,23,24,25,26 端子はOPEN DX10-28S:ライトアングルタイプ ユーザ電源 Vss 14端子 1端子 28端子 15端子 DX10-28S コネクタ(ヒロセ電機製)の端子配列 645 第 24 章 フラッシュシリアル 書込み接続例 < 注意事項 > • SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 図 24.4-2 の制 御回路が必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中の場合にはユーザ回路を切離すことができます。 • AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってく ださい。 図 24.4-2 制御回路 AF220/AF210/AF120/AF110 書込み制御端子 MB90F462/F462A/F463A 書込み制御端子 10kΩ AF220/AF210/AF120/AF110 /TICS端子 ユーザ 646 第 24 章 フラッシュシリアル 書込み接続例 24.5 フラッシュマイコンプログラマとの最小限の接続例 (ライタ電源) シリアル書込み時に各端子(MD2, MD0, P00)を図 24.5-1 のように設定した場合は , MD2, MD0, P00 とフラッシュマイコンプログラマの接続は必要ありません。 ■ 最小限の接続例(フラッシュマイコンプログラマから電源を供給する場合) 図 24.5-1 最小限の接続例(フラッシュマイコンプログラマから電源を供給する場合) AF220/AF210/AF120/AF110 フラッシュマイコン プログラマ ユーザシステム 10kΩ シリアル書込時"1" MB90F462/F462A/F463A MD2 シリアル書込時"1" 10kΩ 10kΩ 10kΩ 10kΩ MD1 MD0 10kΩ シリアル書込時"0" X0 1MHz~16MHz X1 10kΩ シリアル書込時"0" P00 ユーザ回路 シリアル書込時"1" 10kΩ 10kΩ P01 ユーザ回路 HST C コネクタ DX10-28S 0.1μF 10kΩ /TRES (5) RST TTXD (13) SIN0 TRXD (27) SOT0 TCK TVcc Vcc TVPP1 (6) (2) (3) (16) SCK0 TVcc (7,8, 14,15, 21,22, 1,28) GND 4,9,10,11,12,17,18,19,20,23,24, 25,26端子はOPEN DX10-28S:ライトアングルタイプ Vcc ユーザ電源 Vss 14端子 1端子 28端子 15端子 DX10-28S コネクタ(ヒロセ電機製)の端子配列 647 第 24 章 フラッシュシリアル 書込み接続例 < 注意事項 > • SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 図 24.5-2 の制 御回路が必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中の場合にはユーザ回路を切離すことができます。 • AF220/AF210/AF120/AF110 との接続は , ユーザ電源が OFF の状態で行ってく ださい。 • 書込み電源を AF220/AF210/AF120/AF110 から供給する場合は , ユーザ電源と短 絡しないでください。 図 24.5-2 制御回路 AF220/AF210/AF120/AF110 書込み制御端子 MB90F462/F462A/F463A 書込み制御端子 10kΩ AF220/AF210/AF120/AF110 /TICS端子 ユーザ ■ シリアルライタ対応 表 24.5-1 シリアルライタ対応表 シリアルライタ 概 要 AF200(横河ディジタルコンピュータ(株)製) ハンディタイプの1個書きシリアルライタ ITF2000(インタフェース(株)製) 最大 10 個同時書込み可能なシリアルギャングライタ 648 付録 付録では , I/O マップ , 命令などを記載します。 付録 A I/O マップ 付録 B 命令 649 付録 付録 A I/O マップ MB90460/465 シリーズに内蔵されたリソースの各レジスタは , 表 A-1 に示すような アドレスに割当てられています。 ■ I/O マップ 表 A-1 I/O マップ (1 / 10) アドレス レジスタ 略称 バイト アクセス ワード アクセス 000000H PDR0 ポート 0 データレジスタ R/W R/W ポート 0 XXXXXXXXB 000001H PDR1 ポート 1 データレジスタ R/W R/W ポート 1 XXXXXXXXB 000002H PDR2 ポート 2 データレジスタ R/W R/W ポート 2 XXXXXXXXB 000003H PDR3 ポート 3 データレジスタ R/W R/W ポート 3 XXXXXXXXB 000004H PDR4 ポート 4 データレジスタ R/W R/W ポート 4 -XXXXXXXB 000005H PDR5 ポート 5 データレジスタ R/W R/W ポート 5 XXXXXXXXB 000006H PDR6 ポート 6 データレジスタ R/W R/W ポート 6 ----XXXXB レジスタ名 000007H 初期値 使用禁止 000008H PWCSL0 PWC 状態制御レジスタ CH0 (下位) R/W R/W 000009H PWCSH0 PWC 状態制御レジスタ CH0 (上位) R/W R/W 00000AH PWCH, L0 00000BH 00000CH リソース名 DIV0 PWC データバッファレジスタ CH0 分周比制御レジスタ CH0 00000000B 00000000B PWC タイマ (CH0) - XXXXXXXXB R/W XXXXXXXXB R/W ------00B R/W 00000DH ∼ 00000FH 使用禁止 000010H DDR0 ポート 0 データ方向レジスタ R/W R/W ポート 0 00000000B 000011H DDR1 ポート 1 データ方向レジスタ R/W R/W ポート 1 00000000B 000012H DDR2 ポート 2 データ方向レジスタ R/W R/W ポート 2 00000000B 000013H DDR3 ポート 3 データ方向レジスタ R/W R/W ポート 3 00000000B 000014H DDR4 ポート 4 データ方向レジスタ R/W R/W ポート 4 -0000000B 000015H DDR5 ポート 5 データ方向レジスタ R/W R/W ポート 5 00000000B 000016H DDR6 ポート 6 データ方向レジスタ R/W R/W ポート 6 ----0000B 650 付録 A I/O マップ 表 A-1 I/O マップ (2 / 10) アドレス レジスタ 略称 レジスタ名 バイト アクセス ワード アクセス 000017H ADER アナログデータ入力許可レジ スタ R/W R/W ポート 5, A/D R/W 通信プリス ケーラ 0 0XXX0000B 0XXX0000B 000018H 000019H リソース名 初期値 11111111B 使用禁止 CDCR0 通信スケーラ制御レジスタ 0 00001AH R/W 使用禁止 00001BH CDCR1 通信スケーラ制御レジスタ 1 R/W R/W 通信プリス ケーラ 1 00001CH RDR0 ポート 0 プルアップ抵抗設定 レジスタ R/W R/W ポート 0 00000000B 00001DH RDR1 ポート 1 プルアップ抵抗設定 レジスタ R/W R/W ポート 1 00000000B 00001EH, 00001FH 使用禁止 000020H SMR0 シリアルモードレジスタ 0 R/W R/W 00000000B 000021H SCR0 シリアル制御レジスタ 0 R/W R/W 00000100B 000022H SIDR0/ SODR0 シリアル入力レジスタ 0/ シリ アル出力レジスタ 0 R R 000023H SSR0 シリアルステータスレジスタ 0 R/W R/W 00001000B 000024H SMR1 シリアルモードレジスタ 1 R/W R/W 00000000B 000025H SCR1 シリアル制御レジスタ 1 R/W R/W 00000100B 000026H SIDR1/ SODR1 シリアル入力レジスタ 1/ シリ アル出力レジスタ 1 R R 000027H SSR1 シリアルステータスレジスタ 1 R/W R/W 00001000B 000028H PWCSL1 PWC 状態制御レジスタ CH1 (下位) R/W R/W 00000000B 000029H PWCSH1 PWC 状態制御レジスタ CH1 (上位) R/W R/W 00002AH PWCH, L1 00002BH 00002CH 00002DH ∼ 2FH DIV1 PWC データバッファレジスタ CH1 分周比制御レジスタ CH1 UART0 UART1 XXXXXXXXB 00000000B PWC タイマ (CH1) - XXXXXXXXB XXXXXXXXB R/W XXXXXXXXB R/W R/W ------00B 使用禁止 651 付録 表 A-1 I/O マップ (3 / 10) アドレス レジスタ 略称 レジスタ名 バイト アクセス ワード アクセス 000030H ENIR DTP/ 外部割込み許可レジスタ R/W R/W 000031H EIRR DTP/ 外部割込み要因レジスタ R/W R/W 000032H ELVRL R/W R/W 000033H ELVRH R/W R/W 00000000B 000034H ADCS0 A/D 制御ステータスレジスタ 0(下位) R/W R/W 00000000B 000035H ADCS1 A/D 制御ステータスレジスタ 1(上位) R/W R/W 000036H ADCR0 A/D データレジスタ 0 R R XXXXXXXXB 000037H ADCR1 A/D データレジスタ 1 R/W R/W 00101-XXB PPG0 ダウンカウンタレジス タ(上位 , 下位) - R PPG0 同期設定バッファレジ スタ(上位 , 下位) - 000038H PDCRH, L0 000039H 00003AH PCSRH, L0 00003BH 00003CH PDUTH, L0 00003DH 検出レベル設定レジスタ (下位 , 上位) PPG0 デューティ設定バッ ファレジスタ(上位 , 下位) リソース名 初期値 00000000B DTP/ 外部割 込み 8/10 ビット A/D コン バータ XXXXXXXXB 00000000B 00000000B 11111111B 11111111B XXXXXXXXB - W W 16 ビット PPG タイマ (CH0) XXXXXXXXB XXXXXXXXB XXXXXXXXB 00003EH PCNTL0 PPG0 状態制御レジスタ (下位) R/W R/W --000000B 00003FH PCNTH0 PPG0 状態制御レジスタ (上位) R/W R/W 00000000B PPG1 ダウンカウンタレジス タ(上位 , 下位) - R PPG1 同期設定バッファレジ スタ(上位 , 下位) - 000040H PDCRH, L1 000041H 000042H PCSRH, L1 000043H 000044H PDUTH, L1 000045H PPG1 デューティ設定バッ ファレジスタ(上位 , 下位) 11111111B 11111111B XXXXXXXXB - W W 16 ビット PPG タイマ (CH1) XXXXXXXXB XXXXXXXXB XXXXXXXXB 000046H PCNTL1 PPG1 状態制御レジスタ (下位) R/W R/W --000000B 000047H PCNTH1 PPG1 状態制御レジスタ (上位) R/W R/W 00000000B 652 付録 A I/O マップ 表 A-1 I/O マップ (4 / 10) アドレス レジスタ 略称 000048H PDCRH, L2 000049H 00004AH PCSRH, L2 00004BH 00004CH PDUTH, L2 00004DH バイト アクセス ワード アクセス PPG2 ダウンカウンタレジス タ(上位 , 下位) - R PPG2 同期設定バッファレジ スタ(上位 , 下位) - レジスタ名 PPG2 デューティ設定バッ ファレジスタ(上位 , 下位) リソース名 初期値 11111111B 11111111B XXXXXXXXB - W W 16 ビット PPG タイマ (CH2) XXXXXXXXB XXXXXXXXB XXXXXXXXB 00004EH PCNTL2 PPG2 状態制御レジスタ (下位) R/W R/W --000000B 00004FH PCNTH2 PPG2 状態制御レジスタ (上位) R/W R/W 00000000B 16 ビットデッドタイマレジス タ 0(上位 , 下位) - R/W 16 ビットデッドタイマレジス タ 1(上位 , 下位) - 16 ビットデッドタイマレジス タ 2(上位 , 下位) - 000050H TMRRH, L0 000051H 000052H TMRRH, L1 000053H 000054H TMRRH, L2 000055H XXXXXXXXB XXXXXXXXB XXXXXXXXB R/W XXXXXXXXB XXXXXXXXB R/W 波形ジェネ レータ XXXXXXXXB 000056H DTCR0 16 ビットデッドタイマ制御レ ジスタ 0(上位 , 下位) R/W R/W 00000000B 000057H DTCR1 16 ビットデッドタイマ制御レ ジスタ 1(上位 , 下位) R/W R/W 00000000B 000058H DTCR2 16 ビットデッドタイマ制御レ ジスタ 2(上位 , 下位) R/W R/W 00000000B 000059H SIGCR 波形制御レジスタ R/W R/W 00000000B - R/W 00005AH 00005BH コンペアクリアバッファレジ CPCLRBH, L/ スタ / コンペアクリアレジス CPCLRH, L タ(上位 , 下位) 00005CH TCDTH, L 00005DH 00005EH TCCSL 00005FH TCCSH タイマデータレジスタ (上位 , 下位) タイマ状態制御レジスタ (上位 , 下位) 11111111B 11111111B - R/W 16 ビットフ リーランタ イマ 00000000B 00000000B R/W R/W X0100000B R/W R/W 00000000B 653 付録 表 A-1 I/O マップ (5 / 10) レジスタ名 バイト アクセス ワード アクセス インプットキャプチャデータ レジスタ CH0 - R XXXXXXXXB 000061H インプットキャプチャデータ レジスタ CH0 - R XXXXXXXXB 000062H インプットキャプチャデータ レジスタ CH1 - R XXXXXXXXB 000063H インプットキャプチャデータ レジスタ CH1 - R XXXXXXXXB 000064H インプットキャプチャデータ レジスタ CH2 - R XXXXXXXXB 000065H インプットキャプチャデータ レジスタ CH2 - R XXXXXXXXB 000066H インプットキャプチャデータ レジスタ CH3 - R インプットキャプチャデータ レジスタ CH3 - R アドレス レジスタ 略称 000060H リソース名 初期値 IPCPH, L0 IPCPH, L1 IPCPH, L2 IPCPH, L3 000067H 16 ビットイ ンプット キャプチャ (CH0 ∼ CH3) XXXXXXXXB XXXXXXXXB 000068H PICSL01 PPG 出力制御 / インプット キャプチャ状態制御レジスタ (ch.0, ch.1)(下位) R/W R/W 00000000B 000069H PICSH01 PPG 出力制御 / インプット キャプチャ状態制御レジスタ (ch.0, ch.1)(上位) R/W R/W 00000000B 00006AH ICSL23 インプットキャプチャ状態制 御レジスタ(ch.2, ch.3) (下位) R/W R/W 00000000B 00006BH ICSH23 インプットキャプチャ状態制 御レジスタ(ch.2, ch.3) (上位) R R XXXXXX00B 00006CH 使用禁止 ∼ 6EH 00006FH 654 ROMM ROM ミラー機能選択モ ジュールレジスタ W W ROM ミラー 機能 XXXXXXX1B 付録 A I/O マップ 表 A-1 I/O マップ (6 / 10) アドレス 000070H 000071H 000072H 000073H 000074H 000075H 000076H 000077H 000078H 000079H 00007AH 00007BH レジスタ 略称 レジスタ名 アウトプットコンペアバッ OCCPBH, L0/ ファレジスタ / アウトプット OCCPH, L0 コンペアレジスタ 0 (上位 , 下位) アウトプットコンペアバッ OCCPBH, L1/ ファレジスタ / アウトプット OCCPH, L1 コンペアレジスタ 1 (上位 , 下位) アウトプットコンペアバッ OCCPBH, L2/ ファレジスタ / アウトプット OCCPH, L2 コンペアレジスタ 2 (上位 , 下位) アウトプットコンペアバッ OCCPBH, L3/ ファレジスタ / アウトプット OCCPH, L3 コンペアレジスタ 3 (上位 , 下位) アウトプットコンペアバッ OCCPBH, L4/ ファレジスタ / アウトプット OCCPH, L4 コンペアレジスタ 4 (上位 , 下位) アウトプットコンペアバッ OCCPBH, L5/ ファレジスタ / アウトプット OCCPH, L5 コンペアレジスタ 5 (上位 , 下位) 00007CH OCSL0 コンペア制御レジスタ 0 (下位) 00007DH OCSH1 コンペア制御レジスタ 1 (上位) 00007EH OCSL2 00007FH バイト アクセス ワード アクセス リソース名 初期値 XXXXXXXXB - R/W XXXXXXXXB XXXXXXXXB - R/W XXXXXXXXB XXXXXXXXB - R/W XXXXXXXXB XXXXXXXXB - R/W XXXXXXXXB - - R/W 16 ビットア ウトプット コンペア (CH0 ∼ CH5) XXXXXXXXB XXXXXXXXB XXXXXXXXB R/W XXXXXXXXB R/W 00001100B R/W R/W X1100000B コンペア制御レジスタ 2 (下位) R/W R/W 00001100B OCSH3 コンペア制御レジスタ 3 (上位) R/W R/W X1100000B 000080H OCSL4 コンペア制御レジスタ 4 (下位) R/W R/W 00001100B 000081H OCSH5 コンペア制御レジスタ 5 (上位) R/W R/W X1100000B 000082H TMCSRL0 タイマ制御状態レジスタ 0 (下位) R/W R/W 00000000B 000083H TMCSRH0 タイマ制御状態レジスタ 0 (上位) R/W R/W - R/W 000084H 000085H TMRH, L0/ TMRDH, L0 16 ビットタイマレジスタ 0/16 ビットリロードレジスタ 0 (上位 , 下位) 16 ビットリ ロードタイ マ(CH0) ----0000B XXXXXXXXB XXXXXXXXB 655 付録 表 A-1 I/O マップ (7 / 10) アドレス レジスタ 略称 000086H TMCSRL1 000087H TMCSRH1 000088H 000089H TMRH, L1/ TMRDH, L1 バイト アクセス ワード アクセス タイマ制御状態レジスタ 1 (下位) R/W R/W タイマ制御状態レジスタ 1 (上位) R/W R/W - R/W レジスタ名 16 ビットタイマレジスタ 1/16 ビットリロードレジスタ 1 (上位 , 下位) リソース名 初期値 00000000B 16 ビットリ ロードタイ マ(CH1) ----0000B XXXXXXXXB XXXXXXXXB 00008AH OPCLR 出力制御レジスタ(下位) R/W R/W 00000000B 00008BH OPCUR 出力制御レジスタ(上位) R/W R/W 00000000B 00008CH IPCLR 入力制御レジスタ(下位) R/W R/W 00008DH IPCUR 入力制御レジスタ(上位) R/W R/W 00008EH TCSR タイマ状態制御レジスタ R/W R/W 00000000B 00008FH NCCR ノイズキャンセル制御レジス タ R/W R/W 00000000B 000090H マルチパル スジェネ レータ 00000000B 00000000B 使用禁止 ∼ 9DH 00009EH PACSR プログラムアドレス検出制御 ステータスレジスタ R/W R/W アドレス一 致検出 00000000B 00009FH DIRR 遅延割込み要求発生 / 解除レ ジスタ R/W R/W 遅延割込み 入力発生 XXXXXXX0B 0000A0H LPMCR 低消費電力モード制御レジス タ R/W R/W 0000A1H CKSCR クロック選択レジスタ R/W R/W 0000A2H 低消費電力 制レジスタ 00011000B 11111100B 使用禁止 ∼ A7H 0000A8H WDTC ウォッチドッグタイマ制御レ ジスタ R/W R/W ウォッチ ドッタイマ X-XXX111B 0000A9H TBTC タイムベースタイマ制御レジ スタ R/W R/W タイムベー スタイマ 1--00100B R/W フラッシュ メモリイン タフェース 000X0000B 0000AAH 使用禁止 ∼ ADH 0000AEH 0000AFH 656 FMCS フラッシュメモリ制御ステー タスレジスタ R/W 使用禁止 付録 A I/O マップ 表 A-1 I/O マップ (8 / 10) アドレス レジスタ 略称 バイト アクセス ワード アクセス 0000B0H ICR00 割込み制御レジスタ 00 R/W R/W 00000111B 0000B1H ICR01 割込み制御レジスタ 01 R/W R/W 00000111B 0000B2H ICR02 割込み制御レジスタ 02 R/W R/W 00000111B 0000B3H ICR03 割込み制御レジスタ 03 R/W R/W 00000111B 0000B4H ICR04 割込み制御レジスタ 04 R/W R/W 00000111B 0000B5H ICR05 割込み制御レジスタ 05 R/W R/W 00000111B 0000B6H ICR06 割込み制御レジスタ 06 R/W R/W 00000111B 0000B7H ICR07 割込み制御レジスタ 07 R/W R/W レジスタ名 リソース名 初期値 00000111B 割込み制御 0000B8H ICR08 割込み制御レジスタ 08 R/W R/W 00000111B 0000B9H ICR09 割込み制御レジスタ 09 R/W R/W 00000111B 0000BAH ICR10 割込み制御レジスタ 10 R/W R/W 00000111B 0000BBH ICR11 割込み制御レジスタ 11 R/W R/W 00000111B 0000BCH ICR12 割込み制御レジスタ 12 R/W R/W 00000111B 0000BDH ICR13 割込み制御レジスタ 13 R/W R/W 00000111B 0000BEH ICR14 割込み制御レジスタ 14 R/W R/W 00000111B 0000BFH ICR15 割込み制御レジスタ 15 R/W R/W 00000111B 0000C0H 外部領域 ∼ FFH 001FF0H PADR0L プログラムアドレス検出レジ スタ 0(下位) R/W R/W XXXXXXXXB 001FF1H PADR0M プログラムアドレス検出レジ スタ 1(中位) R/W R/W XXXXXXXXB 001FF2H PADR0H プログラムアドレス検出レジ スタ 2(上位) R/W R/W XXXXXXXXB アドレス一 致検出 001FF3H PADR1L プログラムアドレス検出レジ スタ 3(下位) R/W R/W XXXXXXXXB 001FF4H PADR1M プログラムアドレス検出レジ スタ 4(中位) R/W R/W XXXXXXXXB 001FF5H PADR1H プログラムアドレス検出レジ スタ 5(上位) R/W R/W XXXXXXXXB 657 付録 表 A-1 I/O マップ (9 / 10) レジスタ名 バイト アクセス ワード アクセス 出力データバッファレジスタ 0(下位) - R/W 00000000B 003FE1H 出力データバッファレジスタ 0(上位) - R/W 00000000B 003FE2H 出力データバッファレジスタ 1(下位) - R/W 00000000B 003FE3H 出力データバッファレジスタ 1(上位) - R/W 00000000B 003FE4H 出力データバッファレジスタ 2(下位) - R/W 00000000B 003FE5H 出力データバッファレジスタ 2(上位) - R/W 00000000B 003FE6H 出力データバッファレジスタ 3(下位) - R/W 00000000B 003FE7H 出力データバッファレジスタ 3(上位) - R/W 00000000B 003FE8H 出力データバッファレジスタ 4(下位) - R/W 00000000B 003FE9H 出力データバッファレジスタ 4(上位) - R/W 003FEAH 出力データバッファレジスタ 5(下位) - R/W 003FEBH 出力データバッファレジスタ 5(上位) - R/W 00000000B 003FECH 出力データバッファレジスタ 6(下位) - R/W 00000000B 003FEDH 出力データバッファレジスタ 6(上位) - R/W 00000000B 003FEEH 出力データバッファレジスタ 7(下位) - R/W 00000000B 003FEFH 出力データバッファレジスタ 7(上位) - R/W 00000000B 003FF0H 出力データバッファレジスタ 8(下位) - R/W 00000000B 003FF1H 出力データバッファレジスタ 8(上位) - R/W 00000000B 003FF2H 出力データバッファレジスタ 9(下位) - R/W 00000000B 出力データバッファレジスタ 9(上位) - R/W 00000000B アドレス レジスタ 略称 003FE0H リソース名 初期値 OPDBR0 OPDBR1 OPDBR2 OPDBR3 OPDBR4 マルチパル スジェネ レータ 00000000B 00000000B OPDBR5 OPDBR6 OPDBR7 OPDBR8 OPDBR9 003FF3H 658 付録 A I/O マップ 表 A-1 I/O マップ (10 / 10) レジスタ名 バイト アクセス ワード アクセス 出力データバッファレジスタ A(下位) - R/W 00000000B 003FF5H 出力データバッファレジスタ A(上位) - R/W 00000000B 003FF6H 出力データバッファレジスタ B(下位) - R/W 00000000B 出力データバッファレジスタ B(上位) - R/W 00000000B 出力データレジスタ(下位) - R 出力データレジスタ(上位) - R コンペアクリアレジスタ (下位) - R/W XXXXXXXXB 003FFBH コンペアクリアレジスタ (上位) - R/W XXXXXXXXB 003FFCH タイマバッファレジスタ (下位) - R 00000000B タイマバッファレジスタ (上位) - R 00000000B アドレス レジスタ 略称 003FF4H リソース名 初期値 OPDBRA OPDBRB 003FF7H 003FF8H OPDR 003FF9H 003FFAH CPCR TMBR 003FFDH 003FFEH, 003FFFH マルチパル スジェネ レータ XXXXXXXXB 0000XXXXB 使用禁止 ● 書込み / 読出しについての説明 R/W: リード / ライト R: リードオンリ W: ライトオンリ ● 初期値についての説明 0: 初期値は "0" です。 1: 初期値は "1" です。 X: 初期値は不定です。 ● "003FE0H" ∼ "003FFFH" のレジスタ領域については , MOV, io などの I/O アドレス命令はサ ポートされておりません。 659 付録 付録 B 命令 F2MC-16LX に使用している命令について説明します。 B.1 命令の種類 B.2 アドレッシング B.3 直接アドレッシング B.4 間接アドレッシング B.5 実行サイクル数 B.6 実効アドレスフィールド B.7 命令一覧表の読み方 B.8 F2MC-16LX 命令一覧表 B.9 命令マップ 管理番号 : CM44-00202-1 660 付録 B 命令 B.1 命令の種類 F2MC-16LX には , 以下に示す 351 種類の命令があります。 ■ 命令の種類 • 転送系命令 ( バイト ) 41 命令 • 転送系命令 ( ワード , ロングワード ) 38 命令 • 加減算命令 ( バイト , ワード , ロングワード ) 42 命令 • 増減算命令 ( バイト , ワード , ロングワード ) 12 命令 • 比較命令 ( バイト , ワード , ロングワード ) 11 命令 • 符号なし乗除算命令 ( ワード , ロングワード ) 11 命令 • 符号付き乗除算命令 ( ワード , ロングワード ) 11 命令 • 論理演算命令 ( バイト , ワード ) 39 命令 • 論理演算命令 ( ロングワード ) 6 命令 • 符号反転命令 ( バイト , ワード ) 6 命令 • ノーマライズ命令 ( ロングワード ) 1 命令 • シフト命令 ( バイト , ワード , ロングワード ) 18 命令 • 分岐命令 50 命令 ( 分岐命令 1: 31 命令 , 分岐命令 2: 19 命令 ) • アキュムレータ操作命令 ( バイト , ワード ) 6 命令 • その他制御命令 ( バイト , ワード , ロングワード ) 28 命令 • ビット操作命令 21 命令 • ストリング命令 10 命令 661 付録 B.2 アドレッシング F2MC-16LX では , 命令の実効アドレスフィールドまたは命令コード自体 ( インプラ イド ) でアドレス形式が決定されます。命令コード自体でアドレス形式が決定する 場合は , 使用する命令コードに合わせてアドレスを指定します。命令によっては , 数 種類のアドレス指定方式から設定できるものがあります。 ■ アドレッシング F2MC-16LX には , 以下に示す 23 種類のアドレッシングがあります。 • 即値 (#imm) • レジスタ直接 • 直接分岐アドレス (addr16) • 物理直接分岐アドレス (addr24) • I/O 直接 (io) • 短縮直接アドレス (dir) • 直接アドレス (addr16) • I/O 直接ビットアドレス (io: bp) • 短縮直接ビットアドレス (dir: bp) • 直接ビットアドレス (addr16: bp) • ベクタアドレス (#vct) • レジスタ間接 (@RWj j=0 ∼ 3) • ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3) • ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) • ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ∼ 3) • ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) • ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7) • プログラムカウンタ相対分岐アドレス (rel) • レジスタリスト (rlst) • アキュムレータ間接 (@A) • アキュムレータ間接分岐アドレス (@A) • 間接指定分岐アドレス (@ear) • 間接指定分岐アドレス (@eam) 662 付録 B 命令 ■ 実効アドレスフィールド 実効アドレスフィールドで指定される , アドレス形式を表 B.2-1 に示します。 表 B.2-1 実効アドレスフィールド コード 表記 アドレス形式 00 R0 RW0 RL0 01 R1 RW1 (RL0) 02 R2 RW2 RL1 03 R3 RW3 (RL1) 04 R4 RW4 RL2 05 R5 RW5 (RL2) 06 R6 RW6 RL3 07 R7 RW7 (RL3) 08 @RW0 09 @RW1 レジスタ直接 ea は左から順に バイト ワード ロングワード の型に対応する。 デフォルトバンク なし DTB DTB レジスタ間接 0A @RW2 0B @RW3 SPB 0C @RW0+ DTB 0D @RW1+ 0E @RW2+ 0F @RW3+ SPB 10 @RW0+disp8 DTB 11 @RW1+disp8 DTB 12 @RW2+disp8 ADB 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 DTB 16 @RW6+disp8 ADB 17 @RW7+disp8 SPB 18 @RW0+disp16 DTB 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 1C @RW0+RW7 インデックス付レジスタ間接 DTB 1D @RW1+RW7 インデックス付レジスタ間接 DTB 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 PCB 1F addr16 直接アドレス DTB ポストインクリメント付 レジスタ間接 8 ビットディスプレースメント付 レジスタ間接 16 ビットディスプレースメント付 レジスタ間接 ADB DTB ADB SPB DTB DTB ADB SPB 663 付録 B.3 直接アドレッシング 直接アドレッシングでは , オペランド値 , レジスタおよびアドレスを直接指定しま す。 ■ 直接アドレッシング ● 即値 (#imm) オペランドの値を直接指定します。(#imm4/#imm8/#imm16/#imm32) 。 図 B.3-1 に例を示します。 図 B.3-1 即値 (#imm) 例 MOVW A, #01212H (A にオペランドの値を格納する命令 ) 実行前 A 2233 4455 実行後 A 4455 1 2 1 2 ( 命令によっては AL → AH に転送が行われる ) ● レジスタ直接 オペランドとして , 直接レジスタを指定します。指定できるレジスタを表 B.3-1 に示し ます。 表 B.3-1 レジスタ直接 汎用レジスタ 専用レジスタ *: 664 バイト R0, R1, R2, R3, R4, R5, R6, R7 ワード RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7 ロングワード RL0, RL1, RL2, RL3 アキュムレータ A, AL ポインタ SP * バンク PCB, DTB, USB, SSB, ADB ページ DPR 制御 PS, CCR, RP, ILM SP は , コンディションコードレジスタ (CCR) 中の S フラグビットの値に応じてユーザス タックポインタ (USP) またはシステムスタックポインタ (SSP) のどちらか一方が選択さ れ , 使用されます。分岐系の命令ではプログラムカウンタ (PC) は命令のオペランドには 記述されることなく指定されます。 付録 B 命令 図 B.3-2 に例を示します。 図 B.3-2 レジスタ直接例 MOV R0, A ( 汎用レジスタ R0 に A の下位 8 ビットを転送する命令 ) 実行前 A 0716 2534 メモリ空間 R0 実行後 A 0716 2564 ?? メモリ空間 R0 34 ● 直接分岐アドレス (addr16) 分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント のデータ長は 16 ビットで , 論理空間内での分岐先を示します。無条件分岐命令 , サブ ルーチンコール命令およびソフトウェア割込み命令に使用します。アドレスの bit23 ∼ bit16 はプログラムカウンタバンクレジスタ (PCB) で指定されます。図 B.3-3 に例を示 します。 図 B.3-3 直接分岐アドレス (addr16) 例 JMP 3B20H ( バンク内で直接分岐アドレス指定で , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 4F3B20H 次の命令 実行後 PC 3 B 2 0 PCB 4 F 4F3C20H 62 4F3C21H 20 4F3C22H 3B JMP 3B20H 665 付録 ● 物理直接分岐アドレス (addr24) 分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント のデータ長は 24 ビットです。無条件分岐命令 , サブルーチンコール命令およびソフト ウェア割込み命令に使用します。図 B.3-4 に例を示します。 図 B.3-4 物理直接分岐アドレス (addr24) 例 JMPP 333B20H ( 直接分岐アドレス 24 ビット指定で , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 333B20H 次の命令 実行後 PC 3 B 2 0 PCB 3 3 4F3C20H 63 4F3C21H 20 4F3C22H 3B 4F3C23H 33 JMPP 333B20H ● I/O 直接 (io) オペランドのメモリアドレスを 8 ビットのディスプレースメントで直接指定します。 データバンクレジスタ (DTB) , ダイレクトページレジスタ (DPR) の値にかかわらず , 物理アドレス "000000H" ∼ "0000FFH" の空間の I/O 空間がアクセスされます。I/O 直接 アドレス指定を使用した命令の前にバンク指定用のバンクセレクトプリフィックスを 記述しても無効です。図 B.3-5 に例を示します。 図 B.3-5 I/O 直接 (io) 例 MOVW A, i : 0C0H (I/O 直接で読出しを行い , A に格納する命令 ) 実行前 実行後 666 A 0716 2534 A 2534 FFEE メモリ空間 0000C0H EE 0000C1H FF 付録 B 命令 ● 短縮直接アドレス (dir) オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼ bit8 はダイレクトページレジスタ (DPR) により指定されます。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) により指定されます。図 B.3-6 に例を示します。 図 B.3-6 短縮直接アドレス (dir) 例 MOV S : 20H, A (A の下位 8 ビットの内容を短縮直接アドレス指定方式で書き込む命令 ) A 4455 実行前 DPR 6 6 DTB 7 7 A 4455 実行後 DPR 6 6 1212 メモリ空間 776620H 1212 DTB 7 7 ?? メモリ空間 776620H 12 ● 直接アドレス (addr16) オペランドで , メモリアドレス下位 16 ビットを直接指定します。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) で指定されます。直接アドレスのアドレッシング に対しては , アクセス空間指定用のプリフィックス命令は無効です。図 B.3-7 に例を示 します。 図 B.3-7 直接アドレス (addr16) 例 MOVW A, 3B20H ( 直接アドレスで読出しを行い , A に格納する命令 ) 実行前 実行後 A 2020 A AABB AABB 0123 DTB 5 5 メモリ空間 553B21H 01 553B20H 23 DTB 5 5 667 付録 ● I/O 直接ビットアドレス (io: bp) 物理アドレス "000000H" ∼ "0000FFH" 内のビットを直接指定します。ビットの位置は ": bp" で表され , 数字の大きいほうが最上位ビット (MSB) , 小さい方が最下位ビット (LSB) となります。図 B.3-8 に例を示します。 図 B.3-8 I/O 直接ビットアドレス (io: bp) 例 SETB i : 0C1H : 0 (I/O 直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 0000C1H 実行前 00 メモリ空間 0000C1H 実行後 01 ● 短縮直接ビットアドレス (dir: bp) オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼ bit8 はダイレクトページレジスタ (DPR) で指定されます。アドレスの bit23 ∼ bit16 は データバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の 大きい方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-9 に例を示しま す。 図 B.3-9 短縮直接ビットアドレス (dir: bp) 例 SETB S : 10H : 0 ( 短縮直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 実行前 DTB 5 5 DPR 6 6 556610H 00 メモリ空間 実行後 668 DTB 5 5 DPR 6 6 556610H 01 付録 B 命令 ● 直接ビットアドレス (addr16: bp) 64K バイト内の任意のビットに対し直接指定します。アドレスの bit23 ∼ bit16 はデー タバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の大き い方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-10 に例を示します。 図 B.3-10 直接ビットアドレス (addr16: bp) 例 SETB 2222H : 0 ( 直接ビットアドレス指定でセットビットを行う命令 ) メモリ空間 DTB 5 5 実行前 00 552222H メモリ空間 DTB 5 5 実行後 01 552222H ● ベクタアドレス (#vct) 分岐先のアドレスは指定されたベクタの内容となります。ベクタ番号のデータ長には 4 ビットと 8 ビットの 2 種類があります。サブルーチンコール命令 , ソフトウェア割込 み命令に使用します。図 B.3-11 に例を示します。 図 B.3-11 ベクタアドレス (#vct) 例 CALLV #15 ( オペランドで指定した割込みベクタが示すアドレスへ分岐する命令 ) 実行前 PC 0 0 0 0 PCB F F 実行後 メモリ空間 FFC000H EF FFFFE0H 00 FFFFE1H D0 CALLV #15 PC D 0 0 0 PCB F F 669 付録 表 B.3-2 CALLV ベクタ一覧表 命令 ベクタアドレス L ベクタアドレス H CALLV #0 XXFFFEH XXFFFFH CALLV #1 XXFFFCH XXFFFDH CALLV #2 XXFFFAH XXFFFBH CALLV #3 XXFFF8H XXFFF9H CALLV #4 XXFFF6H XXFFF7H CALLV #5 XXFFF4H XXFFF5H CALLV #6 XXFFF2H XXFFF3H CALLV #7 XXFFF0H XXFFF1H CALLV #8 XXFFEEH XXFFEFH CALLV #9 XXFFECH XXFFEDH CALLV #10 XXFFEAH XXFFEBH CALLV #11 XXFFE8H XXFFE9H CALLV #12 XXFFE6H XXFFE7H CALLV #13 XXFFE4H XXFFE5H CALLV #14 XXFFE2H XXFFE3H CALLV #15 XXFFE0H XXFFE1H ( 注意事項 ) XX には PCB レジスタの値が入ります。 <注意事項> プログラムカウンタバンクレジスタ (PCB) が "FFH" の場合ベクタ領域は INT #vct8 (#0 ∼ #7) のベクタ領域と共有しているため , 使用する場合は注意が必要です。( 表 B.3-2 を参照 してください ) 670 付録 B 命令 B.4 間接アドレッシング 間接アドレッシングでは , 記述したオペランドが示すアドレスのデータで , 間接的に アドレスを指定します。 ■ 間接アドレッシング ● レジスタ間接 (@RWj j=0 ∼ 3) 汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで す。アドレスの bit23 ∼ bit16 は , RW0, RW1 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3 の場合はシステムスタックバンクレジスタ (SSB) またはユーザ スタックバンクレジスタ (USB) で示され , RW2 の場合はアディショナルデータバンク レジスタ (ADB) で示されます。図 B.4-1 に例を示します。 図 B.4-1 レジスタ間接 (@RWj j=0 ∼ 3) 例 MOVW A, @RW1 ( レジスタ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 RW1 D 3 0 F 実行後 DTB 7 8 78D30FH EE 78D310H FF A 2534 FFEE RW1 D 3 0 F DTB 7 8 ● ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3) 汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで す。 オペランド操作後RWjはオペランドデータ長 (バイトの場合は1, ワードの場合は2, ロングワードの場合は 4) 分だけ加算されます。アドレスの bit23 ∼ bit16 は , RW0, RW1 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3 の場合はシステムスタッ クバンクレジスタ (SSB) またはユーザスタックバンクレジスタ (USB) で示され , RW2 の場合はアディショナルデータバンクレジスタ (ADB) で示されます。 ポストインクリメントした結果がインクリメント指定したレジスタ自身のアドレス だった場合は , 参照される値はインクリメントした値となり , 命令が書込みだった場合 は命令による書込みが優先されるので , インクリメントするはずだったレジスタは書 込みデータとなります。 図 B.4-2 に例を示します。 671 付録 図 B.4-2 ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3) 例 MOVW A, @RW1+ ( ポストインクリメント付レジスタ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 RW1 D 3 0 F 実行後 DTB 7 8 78D30FH EE 78D310H FF A 2534 FFEE RW1 D 3 1 1 DTB 7 8 ● ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) 汎用レジスタ RWj の内容にディスプレースメントを加算したものをアドレスとしたメ モリをアクセスするアドレッシングです。ディスプレースメントは , バイトとワードの 2 種類があり , 符号付数値として加算されます。アドレスの bit23 ∼ bit16 は , RW0, RW1, RW4, RW5 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3, RW7 を用い た場合はシステムスタックバンクレジスタ (SSB) またはユーザスタックバンクレジス タ (USB) で示され , RW2, RW6 を用いた場合はアディショナルデータバンクレジスタ (ADB) で示されます。図 B.4-3 に例を示します。 図 B.4-3 ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) 例 MOVW A, @RW1+10H (ディスプレースメント付レジスタ間接で読出しを行い, Aに格納する命令) 実行前 A 0716 2534 (+10H) RW1 D 3 0 F 実行後 A 2534 FFEE RW1 D 3 0 F 672 DTB 7 8 DTB 7 8 メモリ空間 78D31FH EE 78D320H FF 付録 B 命令 ● ディスプレースメント付ロングレジスタ間接 (RLi+disp8 i=0 ∼ 3) 汎用レジスタ RLi の内容にディスプレースメントを加算した結果の下位 24 ビットをア ドレスとしたメモリをアクセスするアドレッシングです。ディスプレースメントは 8 ビットで符号付数値として加算されます。図 B.4-4 に例を示します。 図 B.4-4 ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ∼ 3) 例 MOVW A, @RL2+25H (ディスプレースメント付ロングレジスタ間接で読出しを行い, Aに格納する命令) A 0716 実行前 2534 (+25H) RL2 F 3 8 2 4B02 メモリ空間 824B27H EE 824B28H FF A 2534 FFEE 実行後 RL2 F 3 8 2 4B02 ● ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) (命令のアドレス+4+disp16) で示されるアドレスのメモリをアクセスするアドレッシン グです。ディスプレースメントはワード長です。アドレスの bit23 ∼ bit16 はプログラ ムカウンタバンクレジスタ (PCB) により指定されます。次に示す命令のオペランドア ドレスは , ( 次の命令のアドレス +disp16) とは , みなしませんので注意してください。 • DBNZ eam, rel • CBNE eam, #imm8, rel • MOV eam, #imm8 • DWBNZ eam, rel • CWBNE eam, #imm16, rel • MOVW eam, #imm16 図 B.4-5 に例を示します。 図 B.4-5 ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) 例 MOVW A, @PC+20H ( ディスプレースメント付 PC 間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 2534 メモリ空間 PCB C 5 PC 4 5 5 6 実行後 A 2534 FFEE PCB C 5 PC 4 5 5 A +4 C54556H 73 C54557H 9E C54558H 20 C54559H 00 MOVW A, @PC+20H C5455AH ・ ・ ・ +20H C5457AH EE C5457BH FF 673 付録 ● ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7) 汎用レジスタ RW7 の内容に , RW0 あるいは RW1 を加算したものをアドレスとしたメ モリをアクセスするアドレッシングです。アドレスの bit23 ∼ bit16 はデータバンクレ ジスタ (DTB) で示されます。図 B.4-6 に例を示します。 図 B.4-6 ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7) 例 MOVW A, @RW1+RW7 ( ベースインデックス付レジスタ間接で読出しを行い , A に格納する命令 ) 実行前 A 0716 RW1 D 3 0 F WR7 0 1 0 1 実行後 A 2534 RW1 D 3 0 F 2534 + DTB 7 8 メモリ空間 78D410H EE 78D411H FF FFEE DTB 7 8 WR7 0 1 0 1 ● プログラムカウンタ相対分岐アドレス (rel) 分岐先のアドレスはプログラムカウンタ (PC) の値と 8 ビットのディスプレースメント を加算した値となります。加算の結果が 16 ビットを超えた場合は , バンクレジスタの インクリメントまたはデクレメントをせずに , 超えた分は無視されますので , 64K バイ トのバンク内で閉じたアドレスとなります。プログラムカウンタ相対分岐アドレスに よるアドレッシングは , 無条件 / 条件分岐命令に使用します。アドレスの bit23 ∼ bit16 はプログラムカウンタバンクレジスタ (PCB) で示されます。 図 B.4-7 に例を示します。 図 B.4-7 プログラムカウンタ相対分岐アドレス (rel) 例 BRA 10H ( 無条件相対分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F メモリ空間 4F3C32H 次の命令 実行後 674 PC 3 C 2 0 PCB 4 F 4F3C21H 10 4F3C20H 60 BRA 10H 付録 B 命令 ● レジスタリスト (rlst) スタックに対するプッシュ / ポップの対象となるレジスタを指定します。図 B.4-8 にレ ジスタリストの構成 , 図 B.4-9 に例を示します。 図 B.4-8 レジスタリストの構成 MSB LSB RW7 RW6 RW5 RW4 RW3 RW2 RW1 RW0 対応ビットが "1" の場合に設定 , "0" の場合に非設定 MSB: 最上位ビット LSB: 最下位ビット 図 B.4-9 レジスタリスト (rlst) 例 POPW, RW0, RW4 ( レジスタリストで示された複数のワードレジスタに , SP で示されるメモリの データを転送する命令 ) SP 3 4 F A SP 3 4 F E RW0 ×× ×× RW0 02 01 RW1 ×× ×× RW1 ×× ×× RW2 ×× ×× RW2 ×× ×× RW3 ×× ×× RW3 ×× ×× RW4 ×× ×× RW4 04 03 RW5 ×× ×× RW5 ×× ×× RW6 ×× ×× RW6 ×× ×× RW7 ×× ×× RW7 ×× ×× メモリ空間 SP 01 メモリ空間 34FAH 01 34FAH 02 34FBH 02 34FBH 03 34FCH 03 34FCH 34FDH 04 04 34FEH 実行前 SP 34FDH 34FEH 実行後 675 付録 ● アキュムレータ間接 (@A) アキュムレータの下位バイト (AL) の内容 (16 ビット ) で示されるアドレスのメモリを アクセスするアドレス方式です。アドレスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) によりニーモニックで指定されます。図 B.4-10 に例を示します。 図 B.4-10 アキュムレータ間接 (@A) 例 MOVW A, @A ( アキュムレータ間接で読出しを行い , A に格納する命令 ) A 実行前 0716 2534 DTB B B A 実行後 0716 メモリ空間 BB2534H EE BB2535H FF FFEE DTB B B ● アキュムレータ間接分岐アドレス (@A) 分岐先のアドレスは , アキュムレータの下位バイト (AL) の内容 (16 ビット ) となりま す。バンク空間内での分岐先を示し , アドレスの bit23 ∼ bit16 はプログラムカウンタ バンクレジスタ (PCB) で指定されますが , JCTX (Jump Context) 命令の場合は , アド レスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) で指定されます。アキュムレータ 間接分岐アドレスによるアドレッシングは , 無条件分岐命令に使用します。図 B.4-11 に例を示します。 図 B.4-11 アキュムレータ間接分岐アドレス (@A) 例 JMP @A ( アキュムレータ間接分岐アドレスで , 無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 A 6677 PCB 4 F 3B20 メモリ空間 4F3B20H 次の命令 4F3C20H 実行後 PC 3 B 2 0 A 6677 676 PCB 4 F 3B20 61 JMP @A 付録 B 命令 ● 間接指定分岐アドレス (@ear) ear で示される番地のワードデータが分岐先アドレスとなります。図 B.4-12 に例を示し ます。 図 B.4-12 間接指定分岐アドレス (@ear) 例 JMP @@RW0 ( レジスタ間接の間接で無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F RW0 7 F 4 8 DTB 2 1 メモリ空間 217F48H 20 217F49H 3B 4F3B20H 次の命令 実行後 PC 3 B 2 0 PCB 4 F RW0 7 F 4 8 DTB 2 1 4F3C20H 73 4F3C21H 08 JMP @@RW0 ● 間接指定分岐アドレス (@eam) eam で示される番地のワードデータが分岐先アドレスとなります。図 B.4-13 に例を示 します。 図 B.4-13 間接指定分岐アドレス (@eam) 例 JMP @RW0 ( レジスタ間接で無条件分岐を行う命令 ) 実行前 PC 3 C 2 0 PCB 4 F RW0 3 B 2 0 実行後 PC 3 B 2 0 メモリ空間 4F3B20H 次の命令 PCB 4 F 4F3C20H 73 4F3C21H 00 JMP @RW0 RW0 3 B 2 0 677 付録 B.5 実行サイクル数 命令の実行に要するサイクル数 ( 実行サイクル数 ) は , 各命令の「サイクル数」の値 と , 条件で決まる「補正値」の値およびプログラムフェッチの「サイクル数」の値 を加算することで得られます。 ■ 実行サイクル数 内蔵 ROM などの 16 ビットバスに接続されたメモリ上のプログラムをフェッチする場 合には , 実行中の命令がワード境界を越えるごとにプログラムフェッチをするため , データのアクセスなどに干渉すると実行サイクル数が増大します。 外部データバスの 8 ビットバスに接続されたメモリ上のプログラムをフェッチする場 合は , 実行中の命令の 1 バイトごとにプログラムフェッチをするため , データのアクセ スなどに干渉すると実行サイクル数が増大します。 CPU 間欠動作時は , 汎用レジスタ , 内蔵 ROM, 内蔵 RAM, 内蔵 I/O, 外部データバスの アクセスをすると , 低消費電力モード制御レジスタの CG0, CG1 ビットで指定されるサ イクル数分 CPU へ供給されるクロックが一時停止しますので , CPU 間欠動作の命令の 実行に要するサイクル数は , 通常の実行サイクル数に , 汎用レジスタ , 内蔵 ROM, 内蔵 RAM, 内蔵 I/O, 外部データバスの「アクセス回数」×一時停止の「サイクル数」の値 を「補正値」として加算してください。 ■ 実行サイクル数計算方法 表 B.5-1, 表 B.5-2, 表 B.5-3 に命令実行サイクル数および補正値のデータを示します。 表 B.5-1 各種アドレッシングに対する実行サイクル数 (a) * コード 00 ∼ 07 オペランド Ri RWi RLi 各種アドレッシングに対する 実行サイクル数 各種アドレッシングに 対するレジスタ アクセス回数 命令一覧表に記載 命令一覧表に記載 08 ∼ 0B @RWj 2 1 0C ∼ 0F @RWj+ 4 2 10 ∼ 17 @RWi+disp8 2 1 18 ∼ 1B @RWi+disp16 2 1 1C 1D 1E 1F @RW0+RW7 @RW1+RW7 @PC+disp16 addr16 4 4 2 1 2 2 0 0 *: (a) は「B.8 F2MC-16LX 命令一覧表」の∼ ( サイクル数 ) , B ( 補正値 ) で使用さ れています。" ∼ " と "B" の意味については「B.7 命令一覧表の読み方」を参照 してください。 678 付録 B 命令 表 B.5-2 実サイクル数算出用サイクル数の補正値 (b) バイト *1 オペランド (c) ワード *1 (d) ロング *1 サイクル 数 アクセス 回数 サイクル 数 アクセス 回数 サイクル 数 アクセス 回数 内部レジスタ +0 1 +0 1 +0 2 内部メモリ 偶数アドレス +0 1 +0 1 +0 2 内部メモリ 奇数アドレス +0 1 +2 2 +4 4 外部データバス *2 16 ビット偶数アドレス +1 1 +1 1 +2 2 外部データバス *2 16 ビット奇数アドレス +1 1 +4 2 +8 4 外部データバス *2 8 ビット +1 1 +4 2 +8 4 *1: (b), (c), (d) は「B.8 F2MC-16LX 命令一覧表」の∼ ( サイクル数 ) , B ( 補正値 ) で使用され ています。 *2: 外部データバスを使用した場合は , レディ入力および自動レディによりウェイトしたサ イクル数も加算する必要があります。 表 B.5-3 プログラムフェッチサイクル数算出用サイクル数の補正値 命令 バイト境界 ワード境界 内部メモリ − +2 外部データバス 16 ビット − +3 外部データバス 8 ビット +3 − ( 注意事項 ) ・ 外部データバスを使用した場合は , レディ入力および自動レディでウェイト したサイクル数も加算する必要があります。 ・ 実際にはすべてのプログラムフェッチで , 命令実行が遅くなるわけではない ので , この補正値は最悪ケースを算出する場合に使用してください。 679 付録 B.6 実効アドレスフィールド 表 B.6-1 に実効アドレスフィールドを示します。 ■ 実効アドレスフィールド 表 B.6-1 実効アドレスフィールド (1 / 2) コード 680 表記 アドレス形式 00 R0 RW0 RL0 01 R1 RW1 (RL0) 02 R2 RW2 RL1 03 R3 RW3 (RL1) 04 R4 RW4 RL2 05 R5 RW5 (RL2) 06 R6 RW6 RL3 07 R7 RW7 (RL3) 08 @RW0 09 @RW1 0A @RW2 0B @RW3 0C @RW0+ 0D @RW1+ 0E @RW2+ 0F @RW3+ 10 @RW0+disp8 11 @RW1+disp8 12 @RW2+disp8 13 @RW3+disp8 14 @RW4+disp8 15 @RW5+disp8 16 @RW6+disp8 17 @RW7+disp8 アドレス拡張部の バイト数 * レジスタ直接 ea は左から順に バイト ワード ロングワード の型に対応する。 − レジスタ間接 0 ポストインクリメント付 レジスタ間接 0 8 ビットディスプレースメント付 レジスタ間接 1 付録 B 命令 表 B.6-1 実効アドレスフィールド (1 / 2) コード *: 表記 18 @RW0+disp16 19 @RW1+disp16 1A @RW2+disp16 IB @RW3+disp16 1C アドレス形式 アドレス拡張部の バイト数 * 16 ビットディスプレースメント付 レジスタ間接 2 @RW0+RW7 インデックス付レジスタ間接 0 1D @RW1+RW7 インデックス付レジスタ間接 0 1E @PC+disp16 16 ビットディスプレースメント付 PC 間接 2 1F addr16 直接アドレス 2 アドレス拡張部のバイト数は , 「B.8 F2MC-16LX 命令一覧表」の # ( バイト数 ) の "+" に当てはまります。 "#" の意味については「B.7 命令一覧表の読み方」を参照してください。 681 付録 B.7 命令一覧表の読み方 「B.8 F2MC-16LX 命令一覧表」で使用している項目の説明を表 B.7-1 に , 記号の説 明を表 B.7-2 に示します。 ■ 命令の表示記号の説明 表 B.7-1 命令一覧表の項目の説明 項目 ニーモニック 説明 英大文字 , 記号 : アセンブラ上もそのまま表記します。 英小文字 : アセンブラ上では , 書き替えて記述します。 英小文字の後の数 : 命令中のビット幅を示します。 # バイト数を示します。 ∼ サイクル数を示します。 RG 命令実行時のレジスタアクセス回数を示します。 CPU 間欠動作時の補正値を算出するのに使用します。 B オペレーション LH AH 命令実行時の実サイクル数の算出用補正値を示します。 命令実行時の実サイクルは∼欄の数値を加算したものとなります。 命令の動作を示します。 アキュムレータの bit15 ∼ bit8 に対する特殊動作を示します。 Z: 0 を転送する。 X: 符号を拡張して転送する。 − : 転送しない。 アキュムレータの上位 16 ビットに対する特殊動作を示します。 *: AL から AH へ転送する。 − : 転送しない。 Z: AH へ 00H を転送する。 X: AL の符号拡張で AH へ 00H または FFH を転送する。 I I ( 割込み許可 ) , S ( スタック ) , T ( ステッキィビット ) , S N ( ネガティブ ) , Z ( ゼロ ) , V ( オーバフロー ) , C ( キャリー ) T の各フラグの状態を示します。 N *: 命令の実行で変化する。 Z − : 変化しない。 V S: 命令の実行でセットされる。 C R: 命令の実行でリセットされる。 RMW 682 リードモディファイライト命令 (1 命令でメモリなどからデータを読 み出し , メモリへ書き込む ) であるかどうか示します。 *: リードモディファイライト命令である。 − : リードモディファイライト命令ではない。 ( 注意事項 ) 読み書きで意味の異なるアドレスには使用できません。 付録 B 命令 表 B.7-2 命令一覧表の記号の説明 (1 / 2) 表記 A 意味 32 ビットアキュムレータ 命令により , 使用されるビット長が変わります。 バイト : AL の下位 8 ビット ワード : AL の 16 ビット ロング : AL: AH の 32 ビット AH A の上位 16 ビット AL A の下位 16 ビット SP スタックポインタ (USP or SSP) PC プログラムカウンタ PCB プログラムカウンタバンクレジスタ DTB データバンクレジスタ ADB アディショナルデータバンクレジスタ SSB システムスタックバンクレジスタ USB ユーザスタックバンクレジスタ SPB カレントスタックバンクレジスタ (SSB or USB) DPR ダイレクトページレジスタ brg1 DTB, ADB, SSB, USB, DPR, PCB, SPB brg2 DTB, ADB, SSB, USB, DPR, SPB Ri R0, R1, R2, R3, R4, R5, R6, R7 RWi RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7 RWj RW0, RW1, RW2, RW3 RLi RL0, RL1, RL2, RL3 dir 短縮直接アドレス指定 addr16 直接アドレス指定 addr24 物理直接アドレス指定 ad24 0 ∼ 15 addr24 の bit0 ∼ bit15 ad24 16 ∼ 23 addr24 の bit16 ∼ bit23 io I/O 領域 (000000H ∼ 0000FFH) #imm4 4 ビット即値データ #imm8 8 ビット即値データ #imm16 16 ビット即値データ #imm32 32 ビット即値データ ext (imm8) 8 ビット即値データを符号拡張した 16 ビットデータ 683 付録 表 B.7-2 命令一覧表の記号の説明 (1 / 2) 表記 684 意味 disp8 8 ビットディスプレースメント disp16 16 ビットディスプレースメント bp ビットオフセット値 vct4 ベクタ番号 (0 ∼ 15) vct8 ベクタ番号 (0 ∼ 255) ()b ビットアドレス rel PC 相対分岐指定 ear 実効アドレス指定 ( コード 00 ∼ 07) eam 実効アドレス指定 ( コード 08 ∼ 1F) rlst レジスタ並び 付録 B 命令 B.8 F2MC-16LX 命令一覧表 F2MC-16LX で使用している命令の一覧を示します。 ■ F2MC-16LX 命令一覧表 表 B.8-1 転送系命令 ( バイト ) 41 命令 # ∼ RG B LH AH I S T N Z V C MOV A,dir 2 3 0 (b) byte (A) ← (dir) Z * - - - * * - - - MOV A,addr16 3 4 0 (b) byte (A) ← (addr16) Z * - - - * * - - - MOV A,Ri 1 2 1 0 byte (A) ← (Ri) Z * - - - * * - - - MOV A,ear 2 2 1 0 byte (A) ← (ear) Z * - - - * * - - - MOV A,eam 2+ 3 + (a) 0 (b) byte (A) ← (eam) Z * - - - * * - - - MOV A,io 2 3 0 (b) byte (A) ← (io) Z * - - - * * - - - MOV A,#imm8 2 2 0 0 byte (A) ← imm8 Z * - - - * * - - - MOV A,@A 2 3 0 (b) byte (A) ← ((A)) Z - - - - * * - - - MOV A,@RLi+disp8 3 10 2 (b) byte (A) ← ((RLi)+disp8) Z * - - - * * - - - MOVN A,#imm4 1 1 0 0 byte (A) ← imm4 Z * - - - R * - - - MOVX A,dir 2 3 0 (b) byte (A) ← (dir) X * - - - * * - - - MOVX A,addr16 3 4 0 (b) byte (A) ← (addr16) X * - - - * * - - - MOVX A,Ri 2 2 1 0 byte (A) ← (Ri) X * - - - * * - - - MOVX A,ear 2 2 1 0 byte (A) ← (ear) X * - - - * * - - - MOVX A,eam 2+ 3 + (a) 0 (b) byte (A) ← (eam) X * - - - * * - - - MOVX A,io 2 3 0 (b) byte (A) ← (io) X * - - - * * - - - MOVX A,#imm8 2 2 0 0 byte (A) ← imm8 X * - - - * * - - - MOVX A,@A 2 3 0 (b) byte (A) ← ((A)) X - - - - * * - - - MOVX A,@RWi+disp8 2 5 1 (b) byte (A) ← ((RWi)+disp8) X * - - - * * - - - MOVX A,@RLi+disp8 3 10 2 (b) byte (A) ← ((RLi)+disp8) X * - - - * * - - - MOV dir,A 2 3 0 (b) byte (dir) ← (A) - - - - - * * - - - MOV addr16,A 3 4 0 (b) byte (addr16) ← (A) - - - - - * * - - - MOV Ri,A 1 2 1 0 byte (Ri) ← (A) - - - - - * * - - - MOV ear,A 2 2 1 0 byte (ear) ← (A) - - - - - * * - - - MOV eam,A 2+ 3 + (a) 0 (b) byte (eam) ← (A) - - - - - * * - - - ニーモニック オペレーション RMW MOV io,A 2 3 0 (b) byte (io) ← (A) - - - - - * * - - - MOV @RLi+disp8,A 3 10 2 (b) byte ((RLi)+disp8) ← (A) - - - - - * * - - - MOV Ri,ear 2 3 2 0 byte (Ri) ← (ear) - - - - - * * - - - MOV Ri,eam 2+ 4 + (a) 1 (b) byte (Ri) ← (eam) - - - - - * * - - - MOV ear,Ri 2 4 2 0 byte (ear) ← (Ri) - - - - - * * - - - MOV eam,Ri 2+ 5 + (a) 1 (b) byte (eam) ← (Ri) - - - - - * * - - - MOV Ri,#imm8 2 2 1 0 byte (Ri) ← imm8 - - - - - * * - - - MOV io,#imm8 3 5 0 (b) byte (io) ← imm8 - - - - - - - - - - MOV dir,#imm8 3 5 0 (b) byte (dir) ← imm8 - - - - - - - - - - MOV ear,#imm8 3 2 1 0 byte (ear) ← imm8 - - - - - * * - - - MOV eam,#imm8 3+ 4 + (a) 0 (b) byte (eam) ← imm8 - - - - - - - - - - MOV @AL,AH 2 3 0 (b) byte ((A)) ← (AH) - - - - - * * - - - XCH A,ear 2 4 2 0 byte (A) ←→ (ear) Z - - - - - - - - - XCH A,eam 2+ 5 + (a) 0 Z - - - - - - - - - XCH Ri,ear 2 7 4 - - - - - - - - - - XCH Ri,eam 2+ 9 + (a) 2 - - - - - - - - - - 2 × (b) byte (A) ←→ (eam) 0 byte (Ri) ←→ (ear) 2 × (b) byte (Ri) ←→ (eam) ( 注意事項 ) 表中の (a), (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 685 付録 表 B.8-2 転送系命令 ( ワード・ロングワード ) 38 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW MOVW A,dir 2 3 0 (c) word (A) ← (dir) - * - - - * * - - - MOVW A,addr16 3 4 0 (c) word (A) ← (addr16) - * - - - * * - - - MOVW A,SP 1 1 0 0 word (A) ← (SP) - * - - - * * - - - MOVW A,RWi 1 2 1 0 word (A) ← (RWi) - * - - - * * - - - MOVW A,ear 2 2 1 0 word (A) ← (ear) - * - - - * * - - - MOVW A,eam 2+ 3 + (a) 0 (c) word (A) ← (eam) - * - - - * * - - - MOVW A,io 2 3 0 (c) word (A) ← (io) - * - - - * * - - - MOVW A,@A 2 3 0 (c) word (A) ← ((A)) - - - - - * * - - MOVW A,#imm16 3 2 0 0 word (A) ← imm16 - * - - - * * - - - MOVW A,@RWi+disp8 2 5 1 (c) word (A) ← ((RWi)+disp8) - * - - - * * - - - MOVW A,@RLi+disp8 3 10 2 (c) word (A) ← ((RLi)+disp8) - * - - - * * - - - MOVW dir,A 2 3 0 (c) word (dir) ← (A) - - - - - * * - - - MOVW addr16,A 3 4 0 (c) word (addr16) ← (A) - - - - - * * - - - MOVW SP,A 1 1 0 0 word (SP) ← (A) - - - - - * * - - - MOVW RWi,A 1 2 1 0 word (RWi) ← (A) - - - - - * * - - - MOVW ear,A 2 2 1 0 word (ear) ← (A) - - - - - * * - - - MOVW eam,A 2+ 3 + (a) 0 (c) word (eam) ← (A) - - - - - * * - - - MOVW io,A 2 3 0 (c) word (io) ← (A) - - - - - * * - - - MOVW @RWi+disp8,A 2 5 1 (c) word ((RWi)+disp8) ← (A) - - - - - * * - - MOVW @RLi+disp8,A 3 10 2 (c) word ((RLi)+disp8) ← (A) - - - - - * * - - - MOVW RWi,ear 2 3 2 0 word (RWi) ← (ear) - - - - - * * - - - MOVW RWi,eam 2+ 4 + (a) 1 (c) word (RWi) ← (eam) - - - - - * * - - - MOVW ear,RWi 2 4 2 0 word (ear) ← (RWi) - - - - - * * - - - MOVW eam,RWi 2+ 5 + (a) 1 (c) word (eam) ← (RWi) - - - - - * * - - - MOVW RWi,#imm16 3 2 1 0 word (RWi) ← imm16 - - - - - * * - - MOVW io,#imm16 4 5 0 (c) word (io) ← imm16 - - - - - - - - - - MOVW ear,#imm16 4 2 1 0 word (ear) ← imm16 - - - - - * * - - - MOVW eam,#imm16 4+ 4 + (a) 0 (c) word (eam) ← imm16 - - - - - - - - - - MOVW @AL,AH 2 3 0 (c) word ((A)) ← (AH) - - - - - * * - - - XCHW A,ear 2 4 2 0 word (A) ←→ (ear) - - - - - - - - - - XCHW A,eam 2+ 5 + (a) 0 2 × (c) word (A) ←→ (eam) - - - - - - - - - - XCHW RWi, ear 2 7 4 0 word (RWi) ←→ (ear) - - - - - - - - - - XCHW RWi, eam 2+ 9 + (a) 2 2 × (c) word (RWi) ←→ (eam) - - - - - - - - - - MOVL A,ear 2 4 2 0 long (A) ← (ear) - - - - - * * - - - MOVL A,eam 2+ 5 + (a) 0 (d) long (A) ← (eam) - - - - - * * - - - MOVL A,#imm32 5 3 0 0 long (A) ← imm32 - - - - - * * - - - MOVL ear,A 2 4 2 0 long (ear) ← (A) - - - - - * * - - - MOVL eam,A 2+ 5 + (a) 0 (d) long(eam) ← (A) - - - - - * * - - - ( 注意事項 ) 表中の (a), (c), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 686 付録 B 命令 表 B.8-3 加減算命令 ( バイト・ワード・ロングワード ) 42 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW ADD A,#imm8 2 2 0 0 byte (A) ← (A) + imm8 Z - - - - * * * * - ADD A,dir 2 5 0 (b) byte (A) ← (A) + (dir) Z - - - - * * * * - ADD A,ear 2 3 1 0 byte (A) ← (A) + (ear) Z - - - - * * * * - ADD A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) + (eam) Z - - - - * * * * - ADD ear,A 2 3 2 0 byte (ear) ← (ear) + (A) - - - - - * * * * - ADD eam,A 2+ 5 + (a) 0 2 × (b) byte (eam) ← (eam) + (A) Z - - - - * * * * * ADDC A 1 2 0 0 byte (A) ← (AH) + (AL) + (C) Z - - - - * * * * - ADDC A,ear 2 3 1 0 byte (A) ← (A) + (ear)+ (C) Z - - - - * * * * - ADDC A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) + (eam)+ (C) Z - - - - * * * * - ADDDC A 1 3 0 0 byte (A) ← (AH) + (AL) + (C) (10 進数 ) Z - - - - * * * * - SUB A,#imm8 2 2 0 0 byte (A) ← (A) - imm8 Z - - - - * * * * - SUB A,dir 2 5 0 (b) byte (A) ← (A) - (dir) Z - - - - * * * * - SUB A,ear 2 3 1 0 byte (A) ← (A) - (ear) Z - - - - * * * * - SUB A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) - (eam) Z - - - - * * * * - SUB ear,A 2 3 2 0 byte (ear) ← (ear) - (A) - - - - - * * * * - SUB eam,A 2+ 5 + (a) 0 2 × (b) byte (eam) ← (eam) - (A) - - - - - * * * * * SUBC A 1 2 0 0 byte (A) ← (AH) - (AL) - (C) Z - - - - * * * * - SUBC A,ear 2 3 1 0 byte (A) ← (A) - (ear) - (C) Z - - - - * * * * - SUBC A,eam 2+ 4 + (a) 0 (b) byte (A) ← (A) - (eam) - (C) Z - - - - * * * * - SUBDC A 1 3 0 0 byte (A) ← (AH) - (AL) - (C) (10 進数 ) Z - - - - * * * * - ADDW A 1 2 0 0 word (A) ← (AH) + (AL) - - - - - * * * * - ADDW A,ear 2 3 1 0 word (A) ← (A) + (ear) - - - - - * * * * - ADDW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) + (eam) - - - - - * * * * - ADDW A,#imm16 3 2 0 0 word (A) ← (A) + imm16 - - - - - * * * * - word (ear) ← (ear) + (A) - - - - - * * * * - word (eam) ← (eam) + (A) - - - - - * * * * * ADDW ear,A 2 3 2 0 ADDW eam,A 2+ 5+(a) 0 2 × (c) ADDCW A,ear 2 3 1 0 word (A) ← (A) + (ear) + (C) - - - - - * * * * - ADDCW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) + (eam) + (C) - - - - - * * * * - SUBW A 1 2 0 0 word (A) ← (AH) - (AL) - - - - - * * * * - SUBW A,ear 2 3 1 0 word (A) ← (A) - (ear) - - - - - * * * * - SUBW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) - (eam) - - - - - * * * * - SUBW A,#imm16 3 2 0 0 word (A) ← (A) - imm16 - - - - - * * * * - word (ear) ← (ear) - (A) - - - - - * * * * - word (eam) ← (eam) - (A) - - - - - * * * * * SUBW ear,A 2 3 2 0 SUBW eam,A 2+ 5+(a) 0 2 × (c) SUBCW A,ear 2 3 1 0 word (A) ← (A) - (ear) - (C) - - - - - * * * * - SUBCW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) - (eam) - (C) - - - - - * * * * - ADDL A,ear 2 6 2 0 long (A) ← (A) + (ear) - - - - - * * * * - ADDL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) + (eam) - - - - - * * * * - ADDL A,#imm32 5 4 0 0 long (A) ← (A) + imm32 - - - - - * * * * - SUBL A,ear 2 6 2 0 long (A) ← (A) - (ear) - - - - - * * * * - SUBL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) - (eam) - - - - - * * * * - SUBL A,#imm32 5 4 0 0 long (A) ← (A) - imm32 - - - - - * * * * - ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 687 付録 表 B.8-4 増減算命令 ( バイト・ワード・ロングワード ) 12 命令 ニーモニック # ∼ RG B INC ear 2 3 2 0 INC eam 2+ 5+(a) 0 2 × (b) DEC ear 2 3 2 0 DEC eam 2+ 5+(a) 0 2 × (b) INCW ear 2 3 2 0 INCW eam 2+ 5+(a) 0 2 × (c) DECW ear 2 3 2 0 DECW eam 2+ 5+(a) 0 2 × (c) INCL ear 2 7 4 0 INCL eam 2+ 9+(a) 0 2 × (d) DECL ear 2 7 4 0 DECL eam 2+ 9+(a) 0 2 × (d) オペレーション LH AH I S T N Z V C RMW byte (ear) <-- (ear) + 1 - - - - - * * * - - byte (eam) ← (eam) + 1 - - - - - * * * - * byte (ear) ← (ear) - 1 - - - - - * * * - - byte (eam) ← (eam) - 1 - - - - - * * * - * word (ear) ← (ear) + 1 - - - - - * * * - - word (eam) ← (eam) + 1 - - - - - * * * - * word (ear) ← (ear) - 1 - - - - - * * * - - word (eam) ← (eam) - 1 - - - - - * * * - * long (ear) ← (ear) + 1 - - - - - * * * - - long (eam) ← (eam) + 1 - - - - - * * * - * long (ear) ← (ear) - 1 - - - - - * * * - - long (eam) ← (eam) - 1 - - - - - * * * - * LH AH I S T N Z V C RMW ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-5 比較命令 ( バイト・ワード・ロングワード ) 11 命令 ニーモニック # ∼ RG B オペレーション CMP A 1 1 0 0 byte (AH) - (AL) - - - - - * * * * - CMP A,ear 2 2 1 0 byte (A) - (ear) - - - - - * * * * - CMP A,eam 2+ 3+(a) 0 (b) byte (A) - (eam) - - - - - * * * * - CMP A,#imm8 2 2 0 0 byte (A) - imm8 - - - - - * * * * - CMPW A 1 1 0 0 word (AH) - (AL) - - - - - * * * * - CMPW A,ear 2 2 1 0 word (A) - (ear) - - - - - * * * * - CMPW A,eam 2+ 3+(a) 0 (c) word (A) - (eam) - - - - - * * * * - CMPW A,#imm16 3 2 0 0 word (A) - imm16 - - - - - * * * * - CMPL A,ear 2 6 2 0 long (A) - (ear) - - - - - * * * * - CMPL A,eam 2+ 7+(a) 0 (d) long (A) - (eam) - - - - - * * * * - CMPL A,#imm32 5 3 0 0 long (A) - imm32 - - - - - * * * * - ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 688 付録 B 命令 表 B.8-6 符号なし乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ∼ RG B LH AH I S T N Z V C RMW DIVU A 1 *1 0 0 word (AH) / byte (AL) 商→ byte (AL) 余り→ byte (AH) - - - - - - - * * - DIVU A,ear 2 *2 1 0 word (A) / byte (ear) 商→ byte (A) 余り→ byte (ear) - - - - - - - * * - DIVU A,eam 2+ *3 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) - - - - - - - * * - DIVUW A,ear 2 *4 1 0 long (A) / word (ear) 商→ word (A) 余り→ word (ear) - - - - - - - * * - DIVUW A,eam 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - MULU MULU A 1 *8 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - A,ear 2 *9 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MULU A,eam 2+ *10 0 (b) MULUW A 1 *11 0 0 MULUW A,ear 2 *12 1 MULUW A,eam 2+ *13 0 オペレーション byte (A) * byte (eam) → word (A) - - - - - - - - - - word (AH) * word (AL) → Long (A) - - - - - - - - - - 0 word (A) * word (ear) → Long (A) - - - - - - - - - - (c) word (A) * word (eam) → Long (A) - - - - - - - - - - *1:ゼロディバイトの場合 , 3 オーバフローの場合 , 7 正常の場合 , 15 *2:ゼロディバイトの場合 , 4 オーバフローの場合 , 8 正常の場合 , 16 *3:ゼロディバイトの場合 , 6+(a) オーバフローの場合 , 9+(a) 正常の場合 , 19+(a) *4:ゼロディバイトの場合 , 4 オーバフローの場合 , 7 正常の場合 , 22 *5:ゼロディバイトの場合 , 6+(a) オーバフローの場合 , 8+(a) 正常の場合 , 26+(a) *6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b) *7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c) *8:byte(AH) がゼロの場合 , 3 byte(AH) がゼロでない場合 , 7 *9:byte(ear) がゼロの場合 , 4 byte(ear) がゼロでない場合 , 8 *10:byte(eam) がゼロの場合 , 5+(a) byte(eam) がゼロでない場合 , 9+(a) *11:word(AH) がゼロの場合 , 3 word(AH) がゼロでない場合 , 11 *12:word(ear) がゼロの場合 , 4 word(ear) がゼロでない場合 , 12 *13:word(eam) がゼロの場合 , 5+(a) word(eam) がゼロでない場合 , 13+(a) ( 注意事項 ) 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 689 付録 表 B.8-7 符号付き乗除算命令 ( ワード・ロングワード ) 11 命令 ニーモニック # ∼ RG B LH AH I S T N Z V C RMW DIV A 2 *1 0 0 word (AH) / byte (AL) 商 --> byte (AL) 余り→ byte (AH) Z - - - - - - * * - DIV A,ear 2 *2 1 0 word (A) / byte (ear) 商 --> byte (A) 余り→ byte (ear) Z - - - - - - * * - DIV A,eam 2+ *3 0 *6 word (A) / byte (eam) 商→ byte (A) 余り→ byte (eam) Z - - - - - - * * - DIVW A,ear 2 *4 1 0 long (A) / word (ear) 商 --> word (A) 余り→ word (ear) - - - - - - - * * - DIVW A,eam 2+ *5 0 *7 long (A) / word (eam) 商→ word (A) 余り→ word (eam) - - - - - - - * * - MUL A 2 *8 MUL A,ear 2 *9 0 0 byte (AH) * byte (AL) → word (A) - - - - - - - - - - 1 0 byte (A) * byte (ear) → word (A) - - - - - - - - - - MUL A,eam 2+ *10 MULW A 2 *11 0 (b) byte (A) * byte (eam) → word (A) - - - - - - - - - - 0 0 word (AH) * word (AL) → Long (A) - - - - - - - - - MULW A,ear 2 - *12 1 0 word (A) * word (ear) → Long (A) - - - - - - - - - - MULW A,eam 2+ *13 0 (c) word (A) * word (eam) → Long (A) - - - - - - - - - - オペレーション *1:ゼロディバイトの場合 , 3 オーバフローの場合 , 8 or 18 正常の場合 , 18 *2:ゼロディバイトの場合 , 4 オーバフローの場合 , 11 or 22 正常の場合 , 23 *3:ゼロディバイトの場合 , 5+(a) オーバフローの場合 12+(a) or 23+(a) 正常の場合 , 24+(a) *4:被除数が正 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 30 正常の場合 , 31 被除数が負 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 31 正常の場合 , 32 *5:被除数が正 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 12+(a) or 31+(a) 正常の場合 , 32+(a) 被除数が負 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 13+(a) or 32+(a) 正常の場合 , 33+(a) *6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b) *7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c) *8:byte(AH) がゼロの場合 , 3 結果が正の場合 , 12 結果が負の場合 , 13 *9:byte(ear) がゼロの場合 , 4 結果が正の場合 , 13 結果が負の場合 , 14 *10:byte(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 14+(a) 結果が負の場合 , 15+(a) *11:word(AH) がゼロの場合 , 3 結果が正の場合 , 16 結果が負の場合 , 19 *12:word(ear) がゼロの場合 , 4 結果が正の場合 , 17 結果が負の場合 , 20 *13:word(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 18+(a) 結果が負の場合 , 21+(a) ( 注意事項 ) ・ DIV, DIVW 命令でオーバフロー発生時の実行サイクル数に 2 種類ありますが , 演算前と演算後に検出する場合が あるためです。 DIV, DIVW 命令でオーバフロー発生時には , AL の内容は破壊されます。 ・ 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 690 付録 B 命令 表 B.8-8 論理 1 命令 ( バイト・ワード ) 39 命令 ニーモニック # ∼ RG B AND A,#imm8 2 2 0 0 AND A,ear 2 3 1 0 LH AH I S T N Z V C RMW byte (A) ← (A) and imm8 - - - - - * * R - - byte (A) ← (A) and (ear) - - - - - * * R - - オペレーション AND A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) and (eam) - - - - - * * R - - AND ear,A 2 3 2 0 byte (ear) ← (ear) and (A) - - - - - * * R - - AND eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) and (A) - - - - - * * R - * OR A,#imm8 2 2 0 0 byte (A) ← (A) or imm8 - - - - - * * R - - OR A,ear 2 3 1 0 byte (A) ← (A) or (ear) - - - - - * * R - - OR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) or (eam) - - - - - * * R - - OR ear,A 2 3 2 0 byte (ear) ← (ear) or (A) - - - - - * * R - - OR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) or (A) - - - - - * * R - * XOR A,#imm8 2 2 0 0 byte (A) ← (A) xor imm8 - - - - - * * R - - XOR A,ear 2 3 1 0 byte (A) ← (A) xor (ear) - - - - - * * R - - XOR A,eam 2+ 4+(a) 0 (b) byte (A) ← (A) xor (eam) - - - - - * * R - - XOR ear,A 2 3 2 0 byte (ear) ← (ear) xor (A) - - - - - * * R - - XOR eam,A 2+ 5+(a) 0 2 × (b) byte (eam) ← (eam) xor (A) - - - - - * * R - * NOT A 1 2 0 0 byte (A) ← not (A) - - - - - * * R - - NOT ear 2 3 2 0 byte (ear) ← not (ear) - - - - - * * R - - NOT eam 2+ 5+(a) 0 2 × (b) byte (eam) ← not (eam) - - - - - * * R - * ANDW A 1 2 0 0 word (A) ← (AH) and (A) - - - - - * * R - - ANDW A,#imm16 3 2 0 0 word (A) ← (A) and imm16 - - - - - * * R - - ANDW A,ear 2 3 1 0 word (A) ← (A) and (ear) - - - - - * * R - - ANDW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) and (eam) - - - - - * * R - - ANDW ear,A 2 3 2 0 word (ear) ← (ear) and (A) - - - - - * * R - - ANDW eam,A 2+ 5+(a) 0 2 × (c) word (eam) ← (eam) and (A) - - - - - * * R - * ORW A 1 2 0 0 word (A) ← (AH) or (A) - - - - - * * R - - ORW A,#imm16 3 2 0 0 word (A) ← (A) or imm16 - - - - - * * R - - ORW A,ear 2 3 1 0 word (A) ← (A) or (ear) - - - - - * * R - - ORW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) or (eam) - - - - - * * R - - word (ear) ← (ear) or (A) - - - - - * * R - - word (eam) ← (eam) or (A) - - - - - * * R - * ORW ear,A 2 3 2 0 ORW eam,A 2+ 5+(a) 0 2 × (c) XORW A 1 2 0 0 word (A) ← (AH) xor (A) - - - - - * * R - - XORW A,#imm16 3 2 0 0 word (A) ← (A) xor imm16 - - - - - * * R - - XORW A,ear 2 3 1 0 word (A) ← (A) xor (ear) - - - - - * * R - - XORW A,eam 2+ 4+(a) 0 (c) word (A) ← (A) xor (eam) - - - - - * * R - - word (ear) ← (ear) xor (A) - - - - - * * R - - word (eam) ← (eam) xor (A) - - - - - * * R - * - XORW ear,A 2 3 2 0 XORW eam,A 2+ 5+(a) 0 2 × (c) NOTW A 1 2 0 0 word (A) ← not (A) - - - - - * * R - NOTW ear 2 3 2 0 word (ear) ← not (ear) - - - - - * * R - - NOTW eam 2+ 5+(a) 0 2 × (c) word (eam) ← not (eam) - - - - - * * R - * ( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。 691 付録 表 B.8-9 論理 2 演算命令 ( ロングワード ) 6 命令 # ∼ RG B ANDL A,ear 2 6 2 0 ANDL A,eam 2+ 7+(a) 0 (d) ORL A,ear 2 6 2 0 long (A) ← (A) or (ear) - - - - - * * R - - ORL A,eam 2+ 7+(a) 0 (d) long (A) ← (A) or (eam) - - - - - * * R - - long (A) ← (A) xor (ear) - - - - - * * R - - long (A) ← (A) xor (eam) - - - - - * * R - - LH AH I S T N Z V C RMW ニーモニック XORL A,ear 2 6 2 0 XORL A,eam 2+ 7+(a) 0 (d) LH AH I S T N Z V C RMW long (A) ← (A) and (ear) - - - - - * * R - - long (A) ← (A) and (eam) - - - - - * * R - - オペレーション ( 注意事項 ) 表中の (a), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-10 符号反転命令 ( バイト・ワード ) 6 命令 ニーモニック # ∼ RG B 1 2 0 0 byte (A) ← 0 - (A) X - - - - * * * * byte (ear) ← 0 - (ear) - - - - - * * * * - - - - - * * * * * - オペレーション NEG A - NEG ear 2 3 2 0 NEG eam 2+ 5+(a) 0 2 × (b) byte (eam) ← 0 - (eam) - NEGW A 1 2 0 0 word (A) ← 0 - (A) - - - - - * * * * NEGW ear 2 3 2 0 word (ear) ← 0 - (ear) - - - - - * * * * - NEGW eam 2+ 5+(a) 0 2 × (c) word (eam) ← 0 - (eam) - - - - - * * * * * ( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-11 ノーマライズ命令 ( ロングワード ) 1 命令 ニーモニック NRML A,R0 # ∼ RG B オペレーション LH AH I S T N Z V C RMW 2 *1 1 0 long (A) ← 最初に "1" が立っていた所まで左 シフトする byte (R0) ← その場合のシフト回数 - - - - - - * - - *1:アキュムレータがすべて "0" であった場合は , 4 "0" 以外であった場合は , 6+(R0) 692 - 付録 B 命令 表 B.8-12 シフト命令 ( バイト・ワード・ロングワード ) 18 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW RORC A 2 2 0 0 byte (A) ← 右ローテートキャリー付 - - - - - * * - * - ROLC A 2 2 0 0 byte (A) ← 左ローテートキャリー付 - - - - - * * - * - RORC ear 2 3 2 0 byte (ear) ← 右ローテートキャリー付 RORC eam 2+ 5+(a) 0 2 × (b) byte (eam) ← 右ローテートキャリー付 ROLC ear 2 3 2 ROLC eam 2+ 5+(a) 0 0 ASR A,R0 2 *1 1 0 LSR A,R0 2 *1 1 0 LSL A,R0 2 *1 1 ASRW A 1 2 LSRW A/SHRW A 1 LSLW A/SHLW A 1 ASRW A,R0 2 *1 LSRW A,R0 2 *1 LSLW A,R0 2 *1 ASRL A,R0 2 *2 LSRL A,R0 2 LSLL A,R0 2 - - - - - * * - * - - - - - - * * - * * - - - - - * * - * - - - - - - * * - * * byte (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - byte (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - 0 byte (A) ← ロジカル左バレルシフト (A,R0) - - - - - * * - * - 0 0 word (A) ← 算術右シフト (A,1 ビット ) - - - - * * * - * - 2 0 0 word (A) ← ロジカル右シフト (A,1 ビット ) - - - - * R * - * - 2 0 0 word (A) ← ロジカル左シフト (A,1 ビット ) - - - - - * * - * - 1 0 word (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - 1 0 word (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - 1 0 word (A) ←ロジカル左バレルシフト (A,R0) - - - - - * * - * - 1 0 long (A) ← 算術右バレルシフト (A,R0) - - - - * * * - * - *2 1 0 long (A) ← ロジカル右バレルシフト (A,R0) - - - - * * * - * - *2 1 0 long (A) <-- ロジカル左バレルシフト (A,R0) - - - - - * * - * - byte (ear) ← 左ローテートキャリー付 2 × (b) byte (eam) ← 左ローテートキャリー付 *1:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 5+(R0) *2:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 6+(R0) ( 注意事項 ) 表中の (a),(b) は , 表 B.5-1 および表 B.5-2 を参照してください。 693 付録 表 B.8-13 分岐命令 1 31 命令 # ニーモニック ∼ RG B オペレーション LH AH I S T N Z V C RMW BZ/BEQ rel 2 *1 0 0 (Z) = 1 の場合分岐 - - - - - - - - - - BNZ/BNE rel 2 *1 0 0 (Z) = 0 の場合分岐 - - - - - - - - - - BC/BLO rel 2 *1 0 0 (C) = 1 の場合分岐 - - - - - - - - - - BNC/BHS rel 2 *1 0 0 (C) = 0 の場合分岐 - - - - - - - - - - BN rel 2 *1 0 0 (N) = 1 の場合分岐 - - - - - - - - - - BP rel 2 *1 0 0 (N) = 0 の場合分岐 - - - - - - - - - - BV rel 2 *1 0 0 (V) = 1 の場合分岐 - - - - - - - - - - BNV rel 2 *1 0 0 (V) = 0 の場合分岐 - - - - - - - - - - BT rel 2 *1 0 0 (T) = 1 の場合分岐 - - - - - - - - - - BNT rel 2 *1 0 0 (T) = 0 の場合分岐 - - - - - - - - - - BLT rel 2 *1 0 0 (V) xor (N) = 1 の場合分岐 - - - - - - - - - - BGE rel 2 *1 0 0 (V) xor (N) = 0 の場合分岐 - - - - - - - - - - BLE rel 2 *1 0 0 ((V) xor (N)) or (Z) = 1 の場合分岐 - - - - - - - - - - BGT rel 2 *1 0 0 ((V) xor (N)) or (Z) = 0 の場合分岐 - - - - - - - - - - BLS rel 2 *1 0 0 (C) or (Z) = 1 の場合分岐 - - - - - - - - - - BHI rel 2 *1 0 0 (C) or (Z) = 0 の場合分岐 - - - - - - - - - - BRA rel 2 *1 0 0 無条件分岐 - - - - - - - - - - JMP @A 1 2 0 0 word (PC) ← (A) - - - - - - - - - - JMP addr16 3 3 0 0 word (PC) ← addr16 - - - - - - - - - - JMP @ear 2 3 1 0 word (PC) ← (ear) - - - - - - - - - - JMP @eam 2+ 4+(a) 0 (c) word (PC) ← (eam) - - - - - - - - - - JMPP @ear 注 1) 2 5 2 0 word (PC) ← (ear), (PCB) ← (ear+2) - - - - - - - - - - JMPP @eam 注 1) 2+ 6+(a) 0 (d) word (PC) ← (eam), (PCB) ← (eam+2) - - - - - - - - - - JMPP addr24 4 4 0 0 CALL @ear 注 2) 2 6 1 (c) CALL @eam word (PC) ← ad24 0-15, (PCB) ← ad24 16-23 - - - - - - - - - - word (PC) ← (ear) - - - - - - - - - - 2 × (c) word (PC) ← (eam) 注 2) 2+ 7+(a) 0 CALL addr16 注 3) 3 6 0 CALLV #vct4 注 3) 1 7 0 2 × (c) ベクタコール命令 CALLP @ear 注 4) 2 10 2 2 × (c) word (PC) ← (ear)0-15, (PCB) ← (ear)16-23 11+(a) 0 10 0 CALLP @eam 注 4) 2+ CALLP addr24 注 5) 4 (c) *2 word (PC) ← addr16 word (PC) ← (eam)0-15, (PCB) ← (eam)16-23 2 × (c) word (PC) ← addr0-15, (PCB) ← addr16-23 *1:分岐が行われる場合 , 4 行われない場合 , 3 *2:3 × (c)+(b) 注 1) 分岐先アドレスの読込み (word) 注 2) W:スタックへの退避 (word), R:分岐先アドレスの読込み (word) 注 3) スタックへの退避 (word) 注 4) W:スタックへの退避 (long), R:分岐先アドレスの読込み (long) 注 5) スタックへの退避 (long) ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 694 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 付録 B 命令 表 B.8-14 分岐命令 2 19 命令 ニーモニック # ∼ RG B CBNE A,#imm8,rel 3 *1 0 0 byte (A) ≠ imm8 で分岐 - - - - - * * * * - CWBNE A,#imm16,rel 4 *1 0 0 word (A) ≠ imm16 で分岐 - - - - - * * * * - CBNE ear,#imm8,rel 4 *2 1 0 byte (ear) ≠ imm8 で分岐 - - - - - * * * * - CBNE eam,#imm8,rel 注 1) 4+ *3 0 (b) byte (eam) ≠ imm8 で分岐 - - - - - * * * * - CWBNE ear,#imm16,rel 5 *4 1 0 word (ear) ≠ imm16 で分岐 - - - - - * * * * - CWBNE eam,#imm16,rel 注 1) 5+ *3 0 (c) word (eam) ≠ imm16 で分岐 - - - - - * * * * - DBNZ ear,rel 3 *5 2 byte (ear) = (ear) - 1, (ear) ≠ 0 で分岐 - - - - - * * * - - DBNZ eam,rel 3+ *6 2 - - - - - * * * - * DWBNZ ear,rel 3 *5 2 DWBNZ eam,rel 3+ *6 2 0 オペレーション 2 × (b) byte (eam) = (eam) - 1, (eam) ≠ 0 で分岐 0 LH AH I S T N Z V C RMW - - - - - * * * - - 2 × (c) word (eam) = (eam) - 1, (eam) ≠ 0 で分岐 - - - - - * * * - * word (ear) = (ear) - 1, (ear) ≠ 0 で分岐 INT #vct8 2 20 0 8 × (c) ソフトウェア割込み - - R S - - - - - - INT addr16 3 16 0 6 × (c) ソフトウェア割込み - - R S - - - - - - INTP addr24 4 17 0 6 × (c) ソフトウェア割込み - - R S - - - - - - INT9 1 20 0 8 × (c) ソフトウェア割込み - - R S - - - - - - RETI 1 *8 0 *7 割込みからの復帰 - - * * * * * * * - 2 6 0 (c) 関数の入口で , 旧フレームポインタをスタッ クに保存し , 新フレームポインタの設定 , お よびローカルポインタの領域を確保する - - - - - - - - - - 1 5 0 (c) 関数の出口で , 旧フレームポインタをスタッ クから復帰させる - - - - - - - - - - 注 2) 1 4 0 (c) サブルーチンからの復帰 - - - - - - - - - - 注 3) 1 6 0 (d) サブルーチンからの復帰 - - - - - - - - - - LINK #imm8 UNLINK RET RETP *1:分岐が行われる場合 , 5 行われない場合 , 4 *2:分岐が行われる場合 , 13 行われない場合 , 12 *3:分岐が行われる場合 , 7+(a) 行われない場合 , 6+(a) *4:分岐が行われる場合 , 8 行われない場合 , 7 *5:分岐が行われる場合 , 7 行われない場合 , 6 *6:分岐が行われる場合 , 8+(a) 行われない場合 , 7+(a) *7:次の割込み要求へ分岐する場合 , 3 × (b)+2 × (c) 今の割込みから復帰の場合 , 6 × (c) *8:次の割込みへ分岐する場合 , 15 今の割込みから復帰する場合 , 17 注 1) CBNE / CWBNE 命令では , RWj+ のアドレッシングモードは , 使用しないでください。 注 2) スタックからの復帰 (word) 注 3) スタックからの復帰 (long) ( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。 695 付録 表 B.8-15 その他制御命令 ( バイト・ワード・ロングワード ) 28 命令 ニーモニック # ∼ RG B オペレーション LH AH I S T N Z V C RMW PUSHW A 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (A) - - - - - - - - - - PUSHW AH 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (AH) - - - - - - - - - - PUSHW PS 1 4 0 (c) word (SP) ← (SP) - 2, ((SP)) ← (PS) - - - - - - - - - - PUSHW rlst 2 *3 *5 *4 (SP) ← (SP) - 2n, ((SP)) ← (rlst) - - - - - - - - - - POPW A 1 3 0 (c) word (A) ← ((SP)), (SP) ← (SP) + 2 - * - - - - - - - - POPW AH 1 3 0 (c) word (AH) ← ((SP)), (SP) ← (SP) + 2 - - - - - - - - - - POPW PS 1 4 0 (c) word (PS) ← ((SP)), (SP) ← (SP) + 2 - - * * * * * * * - POPW rlst 2 *2 *5 *4 (rlst) ← ((SP)), (SP) ← (SP) + 2n - - - - - - - - - - JCTX @A 1 14 0 6 × (c) コンテキストスイッチ命令 - - * * * * * * * - AND CCR,#imm8 2 3 0 0 byte (CCR) ← (CCR) and imm8 - - * * * * * * * - OR CCR,#imm8 2 3 0 0 byte (CCR) ← (CCR) or imm8 - - * * * * * * * - MOV RP,#imm8 2 2 0 0 byte (RP) ← imm8 - - - - - - - - - - MOV ILM,#imm8 2 2 0 0 byte (ILM) ← imm8 - - - - - - - - - - MOVEA RWi,ear 2 3 1 0 word (RWi) ← ear - - - - - - - - - - MOVEA RWi,eam 2+ 2+(a) 1 0 word (RWi) ← eam - - - - - - - - - - MOVEA A,ear 2 1 0 0 word (A) ← ear - * - - - - - - - - MOVEA A,eam 2+ 1+(a) 0 0 word (A) ← eam - * - - - - - - - - ADDSP #imm8 2 3 0 0 word (SP) ← (SP) + ext(imm8) - - - - - - - - - - ADDSP #imm16 3 3 0 0 word (SP) ← (SP) + imm16 - - - - - - - - - - MOV A,brg1 2 *1 0 0 byte (A) ← (brg1) Z * - - - * * - - - MOV brg2,A 2 1 0 0 byte (brg2) ← (A) - - - - - * * - - - NOP 1 1 0 0 ノーオペレーション - - - - - - - - - - ADB 1 1 0 0 AD 空間アクセス用プリフィックス コード - - - - - - - - - - DTB 1 1 0 0 DT 空間アクセス用プリフィックス コード - - - - - - - - - - PCB 1 1 0 0 PC 空間アクセス用プリフィックス コード - - - - - - - - - - SPB 1 1 0 0 SP 空間アクセス用プリフィックス コード - - - - - - - - - - NCC 1 1 0 0 フラグ無変化用プリフィックスコー ド - - - - - - - - - - CMR 1 1 0 0 コモンレジスタバンク用プリフィッ クス - - - - - - - - - - *1:PCB,ADB,SSB,USB・・・・・・1 ステート DTB,DPR ・・・・・・・・・・2 ステート *2:7+3 × (POP する回数 )+2 × (POP する最後のレジスタ番号 ), RLST=0( 転送レジスタ無し ) の場合 7 *3:29+3 × (PUSH する回数 )-3 × (PUSH する最後のレジスタ番号 ), RLST=0 ( 転送レジスタ無し ) の場合 8 *4:(POP する回数 ) × (c), または (PUSH する回数 ) × (c) *5:(POP する回数 ), または (PUSH する回数 ) ( 注意事項 ) 表中の (a),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 696 付録 B 命令 表 B.8-16 ビット操作命令 21 命令 # ニーモニック ∼ RG B オペレーション LH AH I S T N Z V C RMW MOVB A,dir:bp 3 5 0 (b) byte (A) ← (dir:bp)b Z * - - - * * - - - MOVB A,addr16:bp 4 5 0 (b) byte (A) ← (addr16:bp)b Z * - - - * * - - - MOVB A,io:bp 3 4 0 (b) byte (A) ← (io:bp)b Z * - - - * * - - - MOVB dir:bp,A 3 7 0 2 × (b) bit (dir:bp)b ← (A) - - - - - * * - - * MOVB addr16:bp,A 4 7 0 2 × (b) bit (addr16:bp)b ← (A) - - - - - * * - - * MOVB io:bp,A 3 6 0 2 × (b) bit (io:bp)b ← (A) - - - - - * * - - * SETB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 1 - - - - - - - - - * SETB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 1 - - - - - - - - - * SETB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 1 - - - - - - - - - * CLRB dir:bp 3 7 0 2 × (b) bit (dir:bp)b ← 0 - - - - - - - - - * CLRB addr16:bp 4 7 0 2 × (b) bit (addr16:bp)b ← 0 - - - - - - - - - * CLRB io:bp 3 7 0 2 × (b) bit (io:bp)b ← 0 - - - - - - - - - * BBC dir:bp,rel 4 *1 0 (b) (dir:bp) b = 0 の場合分岐 - - - - - - * - - - BBC addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 0 の場合分岐 - - - - - - * - - - BBC io:bp,rel 4 *2 0 (b) (io:bp) b = 0 の場合分岐 - - - - - - * - - - BBS dir:bp,rel 4 *1 0 (b) (dir:bp) b = 1 の場合分岐 - - - - - - * - - - BBS addr16:bp,rel 5 *1 0 (b) (addr16:bp) b = 1 の場合分岐 - - - - - - * - - - BBS io:bp,rel 4 *2 0 (b) (io:bp) b = 1 の場合分岐 - - - - - - * - - - SBBS addr16:bp,rel 5 *3 0 - - - - - - * - - * 2 × (b) (addr16:bp) b = 1 で分岐 , bit (addr16:bp) b ← 1 WBTS io:bp 3 *4 0 *5 WBTC io:bp 3 *4 0 *5 (io:bp) b = 1 になるまで待つ - - - - - - - - - - (io:bp) b = 0 になるまで待つ - - - - - - - - - - LH AH I S T N Z V C RMW *1:分岐が行われる場合 , 8 分岐が行われない場合 , 7 *2:分岐が行われる場合 , 7 分岐が行われない場合 , 6 *3:条件成立の場合 , 10 未成立の場合 , 9 *4:不定回数 *5:条件が成立するまで ( 注意事項 ) 表中の (b) は , 表 B.5-1 および表 B.5-2 を参照してください。 表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命令 # ∼ RG B SWAP 1 3 0 0 byte (A)0-7 ←→ (A)8-15 - - - - - - - - - - SWAPW 1 2 0 0 word (AH) ←→ (AL) - * - - - - - - - - EXT 1 1 0 0 byte 符号拡張 X - - - - * * - - - ニーモニック オペレーション EXTW 1 2 0 0 word 符号拡張 - X - - - * * - - - ZEXT 1 1 0 0 byte ゼロ拡張 Z - - - - R * - - - ZEXTW 1 1 0 0 word ゼロ拡張 - Z - - - R * - - - 697 付録 表 B.8-18 ストリング命令 10 命令 # ∼ RG B MOVS / MOVSI 2 *2 *5 *3 MOVSD 2 *2 *5 *3 SCEQ / SCEQI 2 *1 *8 SCEQD 2 *1 *8 FILS / FILSI 2 6m+6 MOVSW / MOVSWI 2 *2 MOVSWD 2 *2 *5 SCWEQ / SCWEQI 2 *1 SCWEQD 2 *1 FILSW / FILSWI 2 6m+6 ニーモニック LH AH I S T N Z V C RMW byte 転送 @AH+ ← @AL+, カウンタ = RW0 - - - - - - - - - - byte 転送 @AH- ← @AL-, カウンタ = RW0 - - - - - - - - - - *4 byte 検索 @AH+ ← AL, カウンタ = RW0 - - - - - * * * * - *4 byte 検索 @AH- ← AL, カウンタ = RW0 - - - - - * * * * - *8 *3 byte 充填 @AH+ ← AL, カウンタ = RW0 - - - - - * * - - - *5 *6 word 転送 @AH+ ← @AL+, カウンタ = RW0 - - - - - - - - - - *6 word 転送 @AH- ← @AL-, カウンタ = RW0 - - - - - - - - - - *8 *7 word 検索 @AH+ - AL, カウンタ = RW0 - - - - - * * * * - *8 *7 word 検索 @AH- - AL, カウンタ = RW0 - - - - - * * * * - *8 *6 word 充填 @AH+ ← AL, カウンタ = RW0 - - - - - * * - - - オペレーション *1:RW0 が "0" の場合 , 5 カウントアウトの場合 , 4+7 × (RW0) 一致した場合 , 7n+5 *2:RW0 が "0" の場合 , 5 "0" 以外の場合 , 4+8 × (RW0) *3:(b) × (RW0)+(b) × (RW0) ソースとデスティネーションで異なる領域をアクセスする場合には , それぞれ別々に (b) の項目 を算出してください。 *4:(b)+n *5:2 × (b) × (RW0) *6:(c) × (RW0)+(c) × (RW0) ソースとデスティネーションで異なる領域をアクセスする場合には , それぞれ別々に (c) の項目 を算出してください。 *7:(c) × n *8:(b) × (RW0) ( 注意事項 ) ・ m:RW0 値 ( カウンタ値 ) n:ループした回数 ・ 表中の (b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。 698 付録 B 命令 B.9 命令マップ F2MC-16LX の命令コードは , 1 ∼ 2 バイトで構成されていますので , 命令マップは 複数のページで構成されています。 F2MC-16LX の命令マップを示します。 ■ 命令マップの構造 図 B.9-1 命令マップの構造 基本ページマップ ビット操作系命令 文字列操作系命令 2 バイト系命令 :第 1 バイト ea 系命令× 9 :第 2 バイト 1 バイトで終わる命令 (NOP 命令など ) は基本ページで完結し , 2 バイト必要とする命 令 (MOVS 命令など ) は第 1 バイトを参照した段階で第 2 バイト用のマップの存在がわ かり , 第 2 バイト用のマップを参照して続く 1 バイトを調べることができます。 実際の命令コードと命令マップの対応を図 B.9-2 に示します。 699 付録 図 B.9-2 実際の命令コードと命令マップの対応 命令によっては ない場合もある 命令によって 長さが異なる 命令コード 第 1 バイト 第 2 バイト オペランド オペランド ・・・ [ 基本ページマップ ] XY +Z [ 拡張ページマップ ]* UV +W *:拡張ページマップとはビット操作系命令・文字列操作系命令・2 バイト系命令・ea 系 命令の総称で , 実際は各系列の命令ごとに複数存在します。 命令コードの例を表 B.9-1 に示します。 表 B.9-1 命令コードの例 第 1 バイト ( 基本ページマップより ) 第 2 バイト ( 拡張ページマップより ) NOP 00 + 0=00 ― AND A, #8 30 + 4=34 ― MOV A, ADB 60 + F=6F 00 + 0=00 @RW2+d8, #8, rel 70 + 0=70 F0 + 2=F2 命令 700 A SWAP ADDSP ADB SPB #8 CMP A, #8 A, #8 dir, A A, dir io, A A, io JMP BRA 60 @A rel MULU DIVU ea 系命令 その 2 B0 C0 D0 E0 ea 系命令 その 8 ea 系命令 その 7 #4 rel rel BNT BT BNV BV BP BN rel rel rel rel rel BNC/BHS rel BC/BLO BNZ/BNE rel BZ/BEQ F0 +F +E +D +C +B LSRW ASRW LSLW NEGW A A A A XORW ORW ANDW ANDW PUSHW POPW A, #16 A A A A PUSHW POPW rlst rlst XORW PUSHW POPW A, #16 PS PS MOVW RWi, ea 2 バイト XCHW RWi, ea 系命令 文字列操 XCH Ri, ea 作系命令 MOVW ea, RWi ビット操 MOV ea, Ri 作系命令 CMPW MOVL MOVW RETI A, #16 A, #32 addr16, A ORW PUSHW POPW A A, #16 AH AH A A ADDSP MULUW NOTW #16 A SWAPW ZEXTW EXTW CMPL CMPW A, #32 BHI BLS BGT BLE BGE BLT rel rel rel rel rel rel A MOVW MOVW RETP A, SP io, #16 MOVX MOVX CALLP ea 系命令 A, dir A, io addr24 その 6 MOVW MOVX RET A SP, A A, addr16 A, #8 A0 ADDW MOVW MOVW INT MOVW MOVW MOV A, MOVW ea 系命令 MOVW A, #16 A, dir A, io #vct8 A, RWi RWi, A RWi, #16 @RWi+d8 @RWi+d8,A その 9 NOT XOR A, #8 90 rel SUBL SUBW A, #32 A A A OR OR CCR, #8 80 MOV MOV MOV MOVX A, MOV CALL ea 系命令 MOV A, Ri Ri, A Ri, #8 A, Ri @RWi+d8 A, #4 その 1 70 MOV JMP ea 系命令 A, addr16 addr16 その 3 MOV MOV 50 MOVX MOV JMPP ea 系命令 A, #8 addr16, A addr24 その 4 MOV MOV MOV 40 MOV MOV CBNE A, CWBNE A, MOVW MOVW INTP MOV +A RP, #8 ILM, #8 #8, rel #16, rel A, #16 A,addr16 addr24 Ri, ea +9 UNLINK A A A, #8 A, #8 SUBC SUB ADD 30 AND AND MOV MOV CALL ea 系命令 CCR, #8 A, #8 dir, #8 io, #8 addr16 その 5 CMP A A, dir A, dir ADDC SUB ADD 20 LINK ADDL ADDW #imm8 A, #32 ZEXT DTB @A EXT JCTX PCB A SUBDC ADDDC NEG NCC INT9 A CMR NOP 10 SUBW MOVW MOVW INT MOVEA A, #16 dir, A io, A addr16 RWi, ea +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-2 基本ページマップ 701 702 +F +E +D +C +B +A +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 10 MOVB io:bp, A 20 30 CLRB io:bp 40 50 SETB io:bp 60 70 BBC io;bp, rel 80 90 BBS io:bp, rel A0 B0 MOVB MOVB A, MOVB MOVB CLRB CLRB SETB SETB BBC BBC BBS BBS A, dir:bp addr16:bp dir:bp, A addr16:bp,A dir:bp addr16:bp dir:bp addr16:bp dir:bp, rel addr16:bp,rel dir:bp, rel addr16:bp,rel MOVB A, io:bp 00 WBTS io:bp C0 D0 WBTC io:bp E0 SBBS addr16:bp F0 付録 表 B.9-3 ビット操作系命令マップ ( 第 1 バイト =6CH) MOVSI MOVSD PCB, PCB PCB, DTB PCB, ADB PCB, SPB DTB, PCB DTB, DTB DTB, ADB DTB, SPB ADB, PCB ADB, DTB ADB, ADB ADB, SPB SPB, PCB SPB, DTB SPB, ADB SPB, SPB +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 10 +0 00 MOVSWI 20 MOVSWD 30 40 50 60 70 90 A0 B0 C0 SPB ADB DTB SPB ADB DTB SPB ADB DTB SPB ADB DTB SPB ADB DTB SCEQI SCEQD SCWEQI SCWEQD FILSI PCB PCB PCB PCB PCB 80 D0 FILSI SPB ADB DTB PCB E0 F0 付録 B 命令 表 B.9-4 文字列操作系命令マップ ( 第 1 バイト =6EH) 703 704 LSLW LSLL LSL MOVW MOVW A, R0 A, R0 A, R0 @RL2+d8, A A, @RL2+d8 MOVW MOVW NRML A, @A @AL, AH A, R0 ASRW ASRL ASR MOVW MOVW A, R0 A, R0 A, R0 @RL3+d8, A A, @RL3+d8 LSRW LSRL LSR A, R0 A, R0 A, R0 +D +E +F MOVW MOVW @RL1+d8, A A, @RL1+d8 MOVW MOVW @RL0+d8, A A, @RL0+d8 +C +B +A +9 +8 A MOV MOV MOVX MOV MOV A, PCB A, @A A, @RL3+d8 @RL3+d8, A A, @RL3+d8 +6 ROLC MOV MOV A, @A @AL, AH +5 A MOV MOV MOVX MOV MOV A, DPR DPR, A A, @RL2+d8 @RL2+d8, A A, @RL2+d8 +4 ROLC MOV MOV A, USB USB, A +3 +7 MOV MOV MOVX MOV MOV A, SSB SSB, A A, @RL1+d8 @RL1+d8, A A, @RL1+d8 +2 40 MOV MOV A, ADB ADB, A 30 +1 20 MOV MOV MOVX MOV MOV A, DTB DTB, A A, @RL0+d8 @RL0+d8, A A, @RL0+d8 10 +0 00 50 60 DIVU MULW MUL 70 A A A 80 90 A0 B0 C0 D0 E0 F0 付録 表 B.9-5 2 バイト系命令マップ ( 第 1 バイト =6FH) @PC+d16, CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 使用禁止 使用禁止 +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 ADDL ADDL A, SUBL SUBL A, A,@RW3+ addr16 A,@RW3+ addr16 SUBL SUBL SUBL A, SUBL A, addr16, CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 @RW1+RW7 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 使用禁止 +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 +F 使用禁止 @RW0+RW7 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 使用禁止 +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 ADDL A, @RW3, @RW3+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 ADDL ADDL A, SUBL SUBL A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B ADDL 使用禁止 @RW2, @RW2+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 ADDL ADDL A, SUBL SUBL A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A ADDL A, @RW1, @RW1+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 ADDL ADDL A, SUBL SUBL A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 ADDL @RW0+RW7 ,#8, rel 使用禁止 @RW0, @RW0+d16 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 ADDL ADDL A, SUBL SUBL A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 SUBL A, RW7, @RW7+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL3 @RW7+d8 A, RL3 @RW7+d8 A, RL3 @RW7+d8 A, RL3 @RW7+d8 ADDL ADDL A, SUBL SUBL A, A, RL3 @RW7+d8 A, RL3 @RW7+d8 +7 SUBL RW6, @RW6+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL3 @RW6+d8 A, RL3 @RW6+d8 A, RL3 @RW6+d8 A, RL3 @RW6+d8 ADDL ADDL A, SUBL SUBL A, A, RL3 @RW6+d8 A, RL3 @RW6+d8 +6 ADDL A, RW5, @RW5+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL2 @RW5+d8 A, RL2 @RW5+d8 A, RL2 @RW5+d8 A, RL2 @RW5+d8 ADDL ADDL A, SUBL SUBL A, A, RL2 @RW5+d8 A, RL2 @RW5+d8 +5 ADDL @RW3, @RW3+d16 #8, rel ,#8, rel RW4, @RW4+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL2 @RW4+d8 A, RL2 @RW4+d8 A, RL2 @RW4+d8 A, RL2 @RW4+d8 使用禁止 addr16, ,#8, rel @PC+d16, ,#8, rel @RW1+RW7 ,#8, rel @RW2, @RW2+d16 #8, rel ,#8, rel @RW1, @RW1+d16 #8, rel ,#8, rel @RW0, @RW0+d16 #8, rel ,#8, rel R7, @RW7+d8, #8, rel #8, rel R6, @RW6+d8, #8, rel #8, rel R5, @RW5+d8, #8, rel #8, rel R4, @RW4+d8, #8, rel #8, rel R3, @RW3+d8, #8, rel #8, rel R2, @RW2+d8, #8, rel #8, rel R1, @RW1+d8, #8, rel #8, rel ADDL ADDL A, SUBL SUBL A, A, RL2 @RW4+d8 A, RL2 @RW4+d8 CBNE↓ F0 R0, @RW0+d8, #8, rel #8, rel CBNE↓ E0 +4 D0 RW3, @RW3+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL1 @RW3+d8 A, RL1 @RW3+d8 A, RL1 @RW3+d8 A, RL1 @RW3+d8 C0 ADDL ADDL A, SUBL SUBL A, A, RL1 @RW3+d8 A, RL1 @RW3+d8 B0 +3 A0 RW2, @RW2+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL1 @RW2+d8 A, RL1 @RW2+d8 A, RL1 @RW2+d8 A, RL1 @RW2+d8 90 ADDL ADDL A, SUBL SUBL A, A, RL1 @RW2+d8 A, RL1 @RW2+d8 80 +2 70 RW1, @RW1+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL0 @RW1+d8 A, RL0 @RW1+d8 A, RL0 @RW1+d8 A, RL0 @RW1+d8 CWBNE↓ CWBNE↓ 60 ADDL ADDL A, SUBL SUBL A, A, RL0 @RW1+d8 A, RL0 @RW1+d8 50 40 +1 30 +0 20 RW0, @RW0+d8 CMPL CMPL A, ANDL ANDL A, ORL ORL A, XORL XORL A, #16, rel #16, rel A, RL0 @RW0+d8 A, RL0 @RW0+d8 A, RL0 @RW0+d8 A, RL0 @RW0+d8 10 ADDL ADDL A, SUBL SUBL A, A, RL0 @RW0+d8 A, RL0 @RW0+d8 00 付録 B 命令 表 B.9-6 ea 系命令 その 1 ( 第 1 バイト =70H) 705 706 +F @@RW3+ JMPP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW2+ @PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+,A @PC+d16, A @RW2+, #8 @PC+d16, #8 A,@RW2+ @PC+d16 CALLP CALLP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @addr16 @@RW3+ @addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+,A addr16, A @RW3+, #8 addr16, #8 A,@RW3+ addr16 JMPP JMPP CALLP @ +E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16 CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+,A @RW1+RW7,A @RW1+, #8 @RW1+RW7,#8 A,@RW1+ @RW1+RW7 JMPP @ +D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7 JMPP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+,A @RW0+RW7,A @RW0+, #8 @RW0+RW7,#8 A,@RW0+ @RW0+RW7 CALLP @ JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW3 @RW3+d16 @@RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3,A @RW3+d16,A @RW3, #8 @RW3+d16,#8 A,@RW3 @RW3+d16 +B CALLP JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW2 @RW2+d16 @@RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2,A @RW2+d16,A @RW2, #8 @RW2+d16,#8 A,@RW2 @RW2+d16 +A JMPP @ JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW1 @RW1+d16 @@RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1,A @RW1+d16,A @RW1, #8 @RW1+d16,#8 A,@RW1 @RW1+d16 +9 JMPP JMPP JMPP @ CALLP CALLP @ INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @@RW0 @RW0+d16 @@RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #8 @RW0+d16,#8 A,@RW0 @RW0+d16 +8 +C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL3 @@RW7+d8 @RL3 @@RW7+d8 RL3 @RW7+d8 RL3 @RW7+d8 A, RL3 @RW7+d8 RL3, A @RW7+d8,A R7, #8 @RW7+d8,#8 A, RW7 @RW7+d8 F0 +7 E0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL3 @@RW6+d8 @RL3 @@RW6+d8 RL3 @RW6+d8 RL3 @RW6+d8 A, RL3 @RW6+d8 RL3, A @RW6+d8,A R6, #8 @RW6+d8,#8 A, RW6 @RW6+d8 D0 +6 C0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL2 @@RW5+d8 @RL2 @@RW5+d8 RL2 @RW5+d8 RL2 @RW5+d8 A, RL2 @RW5+d8 RL2, A @RW5+d8,A R5, #8 @RW5+d8,#8 A, RW5 @RW5+d8 B0 +5 A0 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL2 @@RW4+d8 @RL2 @@RW4+d8 RL2 @RW4+d8 RL2 @RW4+d8 A, RL2 @RW4+d8 RL2, A @RW4+d8,A R4, #8 @RW4+d8,#8 A, RW4 @RW4+d8 90 +4 80 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL1 @@RW3+d8 @RL1 @@RW3+d8 RL1 @RW3+d8 RL1 @RW3+d8 A, RL1 @RW3+d8 RL1, A @RW3+d8,A R3, #8 @RW3+d8,#8 A, RW3 @RW3+d8 70 +3 60 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL1 @@RW2+d8 @RL1 @@RW2+d8 RL1 @RW2+d8 RL1 @RW2+d8 A, RL1 @RW2+d8 RL1, A @RW2+d8,A R2, #8 @RW2+d8,#8 A, RW2 @RW2+d8 50 +2 40 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL0 @@RW1+d8 @RL0 @@RW1+d8 RL0 @RW1+d8 RL0 @RW1+d8 A, RL0 @RW1+d8 RL0, A @RW1+d8,A R1, #8 @RW1+d8,#8 A, RW1 @RW1+d8 30 +1 20 JMPP JMPP CALLP CALLP INCL INCL DECL DECL MOVL MOVL A, MOVL MOVL MOV MOV MOVEA MOVEA A, @RL0 @@RW0+d8 @RL0 @@RW0+d8 RL0 @RW0+d8 RL0 @RW0+d8 A, RL0 @RW0+d8 RL0, A @RW0+d8,A R0, #8 @RW0+d8,#8 A, RW0 @RW0+d8 10 +0 00 付録 表 B.9-7 ea 系命令 その 2 ( 第 1 バイト =71H) D0 E0 F0 MOVX MOVX A, XCH XCH A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 MOVX MOVX A, XCH XCH A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+, A addr16, A A,@RW3+ addr16 A,@RW3+ addr16 +D +E +F DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R7 @RW7+d8 A, R7 @RW7+d8 R7, A @RW7+d8,A A, R7 @RW7+d8 A, R7 @RW7+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R6 @RW6+d8 A, R6 @RW6+d8 R6, A @RW6+d8,A A, R6 @RW6+d8 A, R6 @RW6+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R5 @RW5+d8 A, R5 @RW5+d8 R5, A @RW5+d8,A A, R5 @RW5+d8 A, R5 @RW5+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R4 @RW4+d8 A, R4 @RW4+d8 R4, A @RW4+d8,A A, R4 @RW4+d8 A, R4 @RW4+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R3 @RW3+d8 A, R3 @RW3+d8 R3, A @RW3+d8,A A, R3 @RW3+d8 A, R3 @RW3+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R2 @RW2+d8 A, R2 @RW2+d8 R2, A @RW2+d8,A A, R2 @RW2+d8 A, R2 @RW2+d8 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R1 @RW1+d8 A, R1 @RW1+d8 R1, A @RW1+d8,A A, R1 @RW1+d8 A, R1 @RW1+d8 +C INC DEC R7 @RW7+d8 C0 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 ROLC RORC RORC INC R7 @RW7+d8 R7 @RW7+d8 ROLC INC DEC R6 @RW6+d8 B0 +B ROLC RORC RORC INC R6 @RW6+d8 R6 @RW6+d8 ROLC INC DEC R5 @RW5+d8 A0 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 ROLC RORC RORC INC R5 @RW5+d8 R5 @RW5+d8 ROLC INC DEC R4 @RW4+d8 90 +A ROLC RORC RORC INC R4 @RW4+d8 R4 @RW4+d8 ROLC INC DEC R3 @RW3+d8 INC DEC R2 @RW2+d8 INC DEC R1 @RW1+d8 80 DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, R0 @RW0+d8 A, R0 @RW0+d8 R0, A @RW0+d8,A A, R0 @RW0+d8 A, R0 @RW0+d8 70 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 ROLC RORC RORC INC R3 @RW3+d8 R3 @RW3+d8 ROLC 60 INC DEC R0 @RW0+d8 50 +9 ROLC RORC RORC INC R2 @RW2+d8 R2 @RW2+d8 ROLC 40 ROLC ROLC RORC RORC INC INC DEC DEC MOV MOV A, MOV MOV MOVX MOVX A, XCH XCH A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0, A @RW0+d16,A A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 ROLC RORC RORC INC R1 @RW1+d8 R1 @RW1+d8 ROLC 30 ROLC RORC RORC INC R0 @RW0+d8 R0 @RW0+d8 20 ROLC 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-8 ea 系命令 その 3 ( 第 1 バイト =72H) 707 708 +F @@RW3+ JMP INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW2+ @@PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A @RW2+, #16 @PC+d16, #16 A,@RW2+ @PC+d16 CALL CALL JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @addr16 @@RW3+ @addr16 @RW3+ addr16 @RW3+ addr16 A,@RW3+ addr16 @RW3+, A addr16, A @RW3+, #16 addr16, #16 A,@RW3+ addr16 JMP JMP XCHW XCHW A, A,@RW1+ @RW1+RW7 +E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16 CALL @ MOVW MOVW @RW1+, #16 @RW1+RW7,#16 CALL INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A JMP @ JMP +D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7 XCHW XCHW A, A,@RW0+ @RW0+RW7 MOVW MOVW @RW0+, #16 @RW0+RW7,#16 INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A CALL @ JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW3 @RW3+d16 @@RW3 @RW3+d16 @RW3 @RW3+d16 @RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, #16 @RW3+d16,#16 A,@RW3 @RW3+d16 +B CALL JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW2 @RW2+d16 @@RW2 @RW2+d16 @RW2 @RW2+d16 @RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, #16 @RW2+d16,#16 A,@RW2 @RW2+d16 +A JMP @ JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW1 @RW1+d16 @@RW1 @RW1+d16 @RW1 @RW1+d16 @RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, #16 @RW1+d16,#16 A,@RW1 @RW1+d16 +9 JMP JMP JMP @ CALL CALL @ INCW INCW @ DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @@RW0 @RW0+d16 @@RW0 @RW0+d16 @RW0 @RW0+d16 @RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #16 @RW0+d16,#16 A,@RW0 @RW0+d16 +8 +C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW7 @@RW7+d8 RW7 @@RW7+d8 RW7 @RW7+d8 RW7 @RW7+d8 A, RW7 @RW7+d8 RW7, A @RW7+d8,A RW7, #16 @RW7+d8,#16 A, RW7 @RW7+d8 F0 +7 E0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW6 @@RW6+d8 RW6 @@RW6+d8 RW6 @RW6+d8 RW6 @RW6+d8 A, RW6 @RW6+d8 RW6, A @RW6+d8,A RW6, #16 @RW6+d8,#16 A, RW6 @RW6+d8 D0 +6 C0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW5 @@RW5+d8 RW5 @@RW5+d8 RW5 @RW5+d8 RW5 @RW5+d8 A, RW5 @RW5+d8 RW5, A @RW5+d8,A RW5, #16 @RW5+d8,#16 A, RW5 @RW5+d8 B0 +5 A0 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW4 @@RW4+d8 RW4 @@RW4+d8 RW4 @RW4+d8 RW4 @RW4+d8 A, RW4 @RW4+d8 RW4, A @RW4+d8,A RW4, #16 @RW4+d8,#16 A, RW4 @RW4+d8 90 +4 80 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW3 @@RW3+d8 RW3 @@RW3+d8 RW3 @RW3+d8 RW3 @RW3+d8 A, RW3 @RW3+d8 RW3, A @RW3+d8,A RW3, #16 @RW3+d8,#16 A, RW3 @RW3+d8 70 +3 60 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW2 @@RW2+d8 RW2 @@RW2+d8 RW2 @RW2+d8 RW2 @RW2+d8 A, RW2 @RW2+d8 RW2, A @RW2+d8,A RW2, #16 @RW2+d8,#16 A, RW2 @RW2+d8 50 +2 40 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW1 @@RW1+d8 RW1 @@RW1+d8 RW1 @RW1+d8 RW1 @RW1+d8 A, RW1 @RW1+d8 RW1, A @RW1+d8,A RW1, #16 @RW1+d8,#16 A, RW1 @RW1+d8 30 +1 20 JMP JMP CALL CALL INCW INCW DECW DECW MOVW MOVW A, MOVW MOVW MOVW MOVW XCHW XCHW A, @RW0 @@RW0+d8 RW0 @@RW0+d8 RW0 @RW0+d8 RW0 @RW0+d8 A, RW0 @RW0+d8 RW0, A @RW0+d8,A RW0, #16 @RW0+d8,#16 A, RW0 @RW0+d8 10 +0 00 付録 表 B.9-9 ea 系命令 その 4 ( 第 1 バイト =73H) ADD ADD A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW0+ @RW0+RW7 @RW0+, r W0+RW7, r SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW1+ @RW1+RW7 @RW1+, r W1+RW7, r ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16, A,@RW2+ @PC+d16 @RW2+, r PC+d16, r ADD ADD SUB SUB ADDC ADDC CMP CMP AND AND OR OR XOR XOR DBNZ DBNZ A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 @RW3+, r addr16, r +E +F +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A, SUB +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 SUB ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, r W3+d16, r +B A, SUB ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, r W2+d16, r +A ADD ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, r W1+d16, r +9 ADD ADD ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @R A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0, r W0+d16, r ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 A, R7 @RW7+d8 R7, r RW7+d8, r ADD F0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 A, R6 @RW6+d8 R6, r RW6+d8, r E0 ADD D0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 A, R5 @RW5+d8 R5, r RW5+d8, r C0 ADD B0 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 A, R4 @RW4+d8 R4, r RW4+d8, r A0 ADD 90 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 A, R3 @RW3+d8 R3, r RW3+d8, r 80 ADD 70 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 A, R2 @RW2+d8 R2, r RW2+d8, r 60 ADD 50 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 A, R1 @RW1+d8 R1, r RW1+d8, r 40 ADD 30 ADD A, SUB SUB A, ADDC ADDC A, CMP CMP A, AND AND A, OR OR A, XOR XOR A, DBNZ DBNZ @ A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 A, R0 @RW0+d8 R0, r RW0+d8, r 20 ADD 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 B 命令 表 B.9-10 ea 系命令 その 5 ( 第 1 バイト =74H) 709 710 NOT NOT @RW1+ @RW1+RW7 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A A,@RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A SUB SUB @RW2+, A @PC+d16,A SUB SUB @RW3+, A addr16, A ADD ADD @RW2+, A @PC+d16,A ADD ADD @RW3+, A addr16, A +D +E +F SUBC SUBC A, NEG NEG A, AND AND A,@RW3+ addr16 @RW3+ addr16 @RW3+, A addr16, A OR OR @RW3+, A addr16, A XOR XOR @RW3+, A addr16, A NOT NOT @RW3+ addr16 OR OR XOR XOR NOT NOT @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+ @PC+d16 NOT NOT @RW0+ @RW0+RW7 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A A,@RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A +C SUBC SUBC A, NEG NEG A, AND AND A,@RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+, A @PC+d16,A NOT NOT @RW3 @RW3+d16 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A NOT R7 @RW7+d8 NOT R6 @RW6+d8 NOT R5 @RW5+d8 NOT R4 @RW4+d8 +B XOR NOT R7, A @RW7+d8, A XOR NOT R6, A @RW6+d8, A XOR NOT R5, A @RW5+d8, A XOR NOT R4, A @RW4+d8, A NOT R3 @RW3+d8 NOT R2 @RW2+d8 NOT R1 @RW1+d8 NOT NOT @RW2 @RW2+d16 XOR NOT XOR NOT R3, A @RW3+d8, A XOR R2, A @RW2+d8,A XOR NOT R1, A @RW1+d8, A NOT R0 @RW0+d8 F0 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A NEG A, AND AND OR OR R7 @RW7+d8 R7, A @RW7+d8, A R7, A @RW7+d8, A XOR XOR XOR XOR XOR XOR E0 XOR NOT R0, A @RW0+d8, A D0 +A ADD SUB SUB SUBC SUBC A, NEG R7, A @RW7+d8, A R7, A @RW7+d8, A A, R7 @RW7+d8 ADD NEG A, AND AND OR OR R6 @RW6+d8 R6, A @RW6+d8, A R6, A @RW6+d8, A NEG A, AND AND OR OR R5 @RW5+d8 R5, A @RW5+d8, A R5, A @RW5+d8, A NEG A, AND AND OR OR R4 @RW4+d8 R4, A @RW4+d8, A R4, A @RW4+d8, A NEG A, AND AND OR OR R3 @RW3+d8 R3, A @RW3+d8, A R3, A @RW3+d8, A NEG A, AND AND OR OR R2 @RW2+d8 R2, A @RW2+d8,A R2, A @RW2+d8,A NEG A, AND AND OR OR R1 @RW1+d8 R1, A @RW1+d8, A R1, A @RW1+d8, A XOR C0 NOT NOT @RW1 @RW1+d16 ADD SUB SUB SUBC SUBC A, NEG R6, A @RW6+d8, A R6, A @RW6+d8, A A, R6 @RW6+d8 ADD B0 ADD ADD @R SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A ADD SUB SUB SUBC SUBC A, NEG R5, A @RW5+d8, A R5, A @RW5+d8, A A, R5 @RW5+d8 ADD A0 +9 ADD SUB SUB SUBC SUBC A, NEG R4, A @RW4+d8, A R4, A @RW4+d8, A A, R4 @RW4+d8 ADD 90 NOT NOT @RW0 @RW0+d16 ADD SUB SUB SUBC SUBC A, NEG R3, A @RW3+d8, A R3, A @RW3+d8, A A, R3 @RW3+d8 ADD 80 NEG A, AND AND OR OR R0 @RW0+d8 R0, A @RW0+d8, A R0, A @RW0+d8, A 70 ADD ADD SUB SUB SUBC SUBC A, NEG NEG A, AND AND OR OR XOR XOR @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A ADD SUB SUB SUBC SUBC A, NEG R2, A @RW2+d8,A R2, A @RW2+d8,A A, R2 @RW2+d8 60 ADD 50 ADD SUB SUB SUBC SUBC A, NEG R1, A @RW1+d8, A R1, A @RW1+d8, A A, R1 @RW1+d8 40 ADD 30 ADD SUB SUB SUBC SUBC A, NEG R0, A @RW0+d8, A R0, A @RW0+d8, A A, R0 @RW0+d8 20 ADD 10 +8 +7 +6 +5 +4 +3 +2 +1 +0 00 付録 表 B.9-11 ea 系命令 その 6 ( 第 1 バイト =75H) ADDW A, SUBW ADDW ADDCW +F CMPW CMPW A, ANDW ANDW A, ANDW A, ORW ORW ORW ORW A, A, ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16, A,@RW2+ @PC+d16 @RW2+, r @PC+d16,r ADDCW A, ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr 16 A,@RW3+ addr16 A,@RW3+ addr 16 @RW3+, r addr16, r +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 SUBW A, ADDCW SUBW A, ANDW XORW XORW A, DWBNZ DWBNZ A,@RW1+ @RW1+RW7 @RW1+, r @RW1+RW7,r SUBW ADDW A, ADDW CMPW A, +D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 CMPW XORW XORW A, DWBNZ DWBNZ A,@RW0+ @RW0+RW7 @RW0+, r @RW0+RW7,r ADDCW A, +C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 ADDCW XORW XORW A, DWBNZ DWBNZ A,@RW3 @RW3+d16 @RW3, r @RW3+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B SUBW A, XORW XORW A, DWBNZ DWBNZ A,@RW2 @RW2+d16 @RW2, r @RW2+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A SUBW XORW XORW A, DWBNZ DWBNZ A,@RW1 @RW1+d16 @RW1, r @RW1+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 ADDW A, XORW XORW A, DWBNZ DWBNZ A,@RW0 @RW0+d16 @RW0, r @RW0+d16,r ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 ADDW ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 A, RW7 @RW7+d8 RW7, r @RW7+d8,r F0 +7 E0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 A, RW6 @RW6+d8 RW6, r @RW6+d8,r D0 +6 C0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 A, RW5 @RW5+d8 RW5, r @RW5+d8,r B0 +5 A0 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 A, RW4 @RW4+d8 RW4, r @RW4+d8,r 90 +4 80 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 A, RW3 @RW3+d8 RW3, r @RW3+d8,r 70 +3 60 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 A, RW2 @RW2+d8 RW2, r @RW2+d8,r 50 +2 40 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 A, RW1 @RW1+d8 RW1, r @RW1+d8,r 30 +1 20 ADDW ADDW A, SUBW SUBW A, ADDCW ADDCW A, CMPW CMPW A, ANDW ANDW A, ORW ORW A, XORW XORW A, DWBNZ DWBNZ A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 A, RW0 @RW0+d8 RW0, r @RW0+d8,r 10 +0 00 付録 B 命令 表 B.9-12 ea 系命令 その 7 ( 第 1 バイト =76H) 711 712 ORW ORW XORW XORW NOTW NOTW RW6, A @RW6+d8, A RW6, A @RW6+d8, A RW6 @RW6+d8 ORW ORW XORW XORW NOTW NOTW RW7, A @RW7+d8, A RW7, A @RW7+d8, A RW7 @RW7+d8 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW6, A @RW6+d8, A RW6, A @RW6+d8, A A, RW6 @RW6+d8 RW6 @RW6+d8 RW6, A @RW6+d8, A ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW7, A @RW7+d8, A RW7, A @RW7+d8, A A, RW7 @RW7+d8 RW7 @RW7+d8 RW7, A @RW7+d8, A ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A A, @RW0 @RW0+d16 @RW0 @RW0+d16 @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0 @RW0+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A A, @RW1 @RW1+d16 @RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1 @RW1+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A A, @RW2 @RW2+d16 @RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2 @RW2+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A A, @RW3 @RW3+d16 @RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3 @RW3+d16 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A A,@RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+ @RW0+RW7 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A A,@RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+ @RW1+RW7 SUBW SUBW @RW2+, A @PC+d16,A SUBW SUBW @RW3+, A addr16, A ADDW ADDW @RW2+, A @PC+d16,A ADDW ADDW @RW3+, A addr16, A +6 +7 +8 +9 +A +B +C +D +E +F SUBCW SUBCW A, NEGW NEGW ANDW ANDW A,@RW3+ addr16 @RW3+ addr16 @RW3+, A addr16, A ORW ORW @RW3+, A addr16, A XORW XORW @RW3+, A addr16, A NOTW NOTW @RW3+ addr16 SUBCW SUBCW A, NEGW NEGW ANDW ANDW ORW ORW XORW XORW NOTW NOTW A,@RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+ @PC+d16 ORW ORW XORW XORW NOTW NOTW RW5, A @RW5+d8, A RW5, A @RW5+d8, A RW5 @RW5+d8 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW5, A @RW5+d8, A RW5, A @RW5+d8, A A, RW5 @RW5+d8 RW5 @RW5+d8 RW5, A @RW5+d8, A +5 F0 ORW ORW XORW XORW NOTW NOTW RW4, A @RW4+d8, A RW4, A @RW4+d8, A RW4 @RW4+d8 E0 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW4, A @RW4+d8, A RW4, A @RW4+d8, A A, RW4 @RW4+d8 RW4 @RW4+d8 RW4, A @RW4+d8, A D0 +4 C0 ORW ORW XORW XORW NOTW NOTW RW3, A @RW3+d8, A RW3, A @RW3+d8, A RW3 @RW3+d8 B0 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW3, A @RW3+d8, A RW3, A @RW3+d8, A A, RW3 @RW3+d8 RW3 @RW3+d8 RW3, A @RW3+d8, A A0 +3 90 ORW ORW XORW XORW NOTW NOTW RW2, A @RW2+d8, A RW2, A @RW2+d8, A RW2 @RW2+d8 80 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW2, A @RW2+d8, A RW2, A @RW2+d8, A A, RW2 @RW2+d8 RW2 @RW2+d8 RW2, A @RW2+d8, A 70 +2 60 ORW ORW XORW XORW NOTW NOTW RW1, A @RW1+d8, A RW1, A @RW1+d8, A RW1 @RW1+d8 50 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW1, A @RW1+d8, A RW1, A @RW1+d8, A A, RW1 @RW1+d8 RW1 @RW1+d8 RW1, A @RW1+d8, A 40 +1 30 ORW ORW XORW XORW NOTW NOTW RW0, A @RW0+d8, A RW0, A @RW0+d8, A RW0 @RW0+d8 20 ADDW ADDW SUBW SUBW SUBCW SUBCW A, NEGW NEGW ANDW ANDW RW0, A @RW0+d8, A RW0, A @RW0+d8, A A, RW0 @RW0+d8 RW0 @RW0+d8 RW0, A @RW0+d8, A 10 +0 00 付録 表 B.9-13 ea 系命令 その 8 ( 第 1 バイト =77H) A, MULU +F DIV DIV A, DIVW DIVW A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 DIV DIV A, DIVW DIVW A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 DIV DIV A, DIVW DIVW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 DIV DIV A, DIVW DIVW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 DIV DIV A, DIVW DIVW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, @RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ addr16 A,@RW3+ A, DIVW DIVW A, addr16 A,@RW3+ addr16 MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A, MULUW @RW1+RW7 MULU @RW0+RW7 +E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 MULU +D A,@RW1+ MULU +C A,@RW0+ MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 MULU MULU A, MULUW MULUW A, A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 +B A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 MULU MULU A, MULUW MULUW A, A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 +A MULU MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 MULU MULU A, MULUW MULUW A, A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 +9 MULU MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, A, @RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 +8 DIV DIV A, DIVW DIVW A, A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 A, R7 @RW7+d8 A, RW7 @RW7+d8 F0 +7 E0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 A, R6 @RW6+d8 A, RW6 @RW6+d8 D0 +6 C0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 A, R5 @RW5+d8 A, RW5 @RW5+d8 B0 +5 A0 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 A, R4 @RW4+d8 A, RW4 @RW4+d8 90 +4 80 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 A, R3 @RW3+d8 A, RW3 @RW3+d8 70 +3 60 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 A, R2 @RW2+d8 A, RW2 @RW2+d8 50 +2 40 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 A, R1 @RW1+d8 A, RW1 @RW1+d8 30 +1 20 MULU MULU A, MULUW MULUW A, MUL MUL A, MULW MULW A, DIVU DIVU A, DIVUW DIVUW A, DIV DIV A, DIVW DIVW A, A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 A, R0 @RW0+d8 A, RW0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-14 ea 系命令 その 9 ( 第 1 バイト =78H) 713 714 MOVEA MOVEA RW1 RW1,RW2 ,@RW2+d8 MOVEA MOVEA RW1 RW1,RW3 ,@RW3+d8 MOVEA MOVEA RW1 RW1,RW4 ,@RW4+d8 MOVEA MOVEA RW1 RW1,RW5 ,@RW5+d8 MOVEA MOVEA RW1 RW1,RW6 ,@RW6+d8 MOVEA MOVEA RW1 RW1,RW7 ,@RW7+d8 MOVEA MOVEA RW1 RW1,@RW0 ,@RW0+d16 MOVEA MOVEA RW1 RW1,@RW1 ,@RW1+d16 MOVEA MOVEA RW1 RW1,@RW2 ,@RW2+d16 MOVEA MOVEA RW1 RW1,@RW3 ,@RW3+d16 MOVEA MOVEA RW0 RW0,RW2 ,@RW2+d8 MOVEA MOVEA RW0 RW0,RW3 ,@RW3+d8 MOVEA MOVEA RW0 RW0,RW4 ,@RW4+d8 MOVEA MOVEA RW0 RW0,RW5 ,@RW5+d8 MOVEA MOVEA RW0 RW0,RW6 ,@RW6+d8 MOVEA MOVEA RW0 RW0,RW7 ,@RW7+d8 MOVEA MOVEA RW0 RW0,@RW0 ,@RW0+d16 MOVEA MOVEA RW0 RW0,@RW1 ,@RW1+d16 MOVEA RW0 MOVEA RW0 MOVEA MOVEA +2 +3 +4 +5 +6 +7 +8 +9 50 70 90 B0 C0 D0 E0 F0 MOVEA MOVEA RW4 RW4,@RW2+ ,@PC+d16 MOVEA MOVEA RW6,@RW3+ RW6, addr16 MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA MOVEA RW0,@RW3+ RW0, addr16 RW1,@RW3+ RW1, addr16 RW2,@RW3+ RW2, addr16 RW3,@RW3+ RW3, addr16 RW4,@RW3+ RW4, addr16 RW5,@RW3+ RW5, addr16 MOVEA MOVEA RW3 RW3,@RW2+ ,@PC+d16 +F MOVEA MOVEA RW2 RW2,@RW2+ ,@PC+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW2+ ,@PC+d16 RW6,@RW2+ ,@PC+d16 RW7,@RW2+ ,@PC+d16 MOVEA MOVEA RW1 RW1,@RW2+ ,@PC+d16 MOVEA MOVEA RW0 RW0,@RW2+ ,@PC+d16 +E MOVEA MOVEA RW7@RW3+ RW7, addr16 MOVEA MOVEA RW7 RW7,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW5 MOVEA MOVEA RW6 RW5,@RW1+ ,@RW1+RW7 RW6,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW0 MOVEA MOVEA RW1 MOVEA MOVEA RW2 MOVEA MOVEA RW3 MOVEA MOVEA RW4 RW0,@RW1+ ,@RW1+RW7 RW1,@RW1+ ,@RW1+RW7 RW2,@RW1+ ,@RW1+RW7 RW3,@RW1+ ,@RW1+RW7 RW4,@RW1+ ,@RW1+RW7 MOVEA MOVEA RW7 RW7,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW3 ,@RW3+d16 RW6,@RW3 ,@RW3+d16 RW7,@RW3 ,@RW3+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW2 ,@RW2+d16 RW6,@RW2 ,@RW2+d16 RW7,@RW2 ,@RW2+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW1 ,@RW1+d16 RW6,@RW1 ,@RW1+d16 RW7,@RW1 ,@RW1+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,@RW0 ,@RW0+d16 RW6,@RW0 ,@RW0+d16 RW7,@RW0 ,@RW0+d16 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW7 ,@RW7+d8 RW6,RW7 ,@RW7+d8 RW7,RW7 ,@RW7+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW6 ,@RW6+d8 RW6,RW6 ,@RW6+d8 RW7,RW6 ,@RW6+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW5 ,@RW5+d8 RW6,RW5 ,@RW5+d8 RW7,RW5 ,@RW5+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW4 ,@RW4+d8 RW6,RW4 ,@RW4+d8 RW7,RW4 ,@RW4+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW3 ,@RW3+d8 RW6,RW3 ,@RW3+d8 RW7,RW3 ,@RW3+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW2 ,@RW2+d8 RW6,RW2 ,@RW2+d8 RW7,RW2 ,@RW2+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW1 ,@RW1+d8 RW6,RW1 ,@RW1+d8 RW7,RW1 ,@RW1+d8 MOVEA MOVEA RW5 MOVEA MOVEA RW6 MOVEA MOVEA RW7 RW5,RW0 ,@RW0+d8 RW6,RW0 ,@RW0+d8 RW7,RW0 ,@RW0+d8 A0 +D MOVEA MOVEA RW4 RW4,@RW3 ,@RW3+d16 MOVEA MOVEA RW4 RW4,@RW2 ,@RW2+d16 MOVEA MOVEA RW4 RW4,@RW1 ,@RW1+d16 MOVEA MOVEA RW4 RW4,@RW0 ,@RW0+d16 MOVEA MOVEA RW4 RW4,RW7 ,@RW7+d8 MOVEA MOVEA RW4 RW4,RW6 ,@RW6+d8 MOVEA MOVEA RW4 RW4,RW5 ,@RW5+d8 MOVEA MOVEA RW4 RW4,RW4 ,@RW4+d8 MOVEA MOVEA RW4 RW4,RW3 ,@RW3+d8 MOVEA MOVEA RW4 RW4,RW2 ,@RW2+d8 MOVEA MOVEA RW4 RW4,RW1 ,@RW1+d8 MOVEA MOVEA RW4 RW4,RW0 ,@RW0+d8 80 MOVEA MOVEA RW5 MOVEA MOVEA RW6 RW5,@RW0+ ,@RW0+RW7 RW6,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW3 RW3,@RW3 ,@RW3+d16 MOVEA MOVEA RW3 RW3,@RW2 ,@RW2+d16 MOVEA MOVEA RW3 RW3,@RW1 ,@RW1+d16 MOVEA MOVEA RW3 RW3,@RW0 ,@RW0+d16 MOVEA MOVEA RW3 RW3,RW7 ,@RW7+d8 MOVEA MOVEA RW3 RW3,RW6 ,@RW6+d8 MOVEA MOVEA RW3 RW3,RW5 ,@RW5+d8 MOVEA MOVEA RW3 RW3,RW4 ,@RW4+d8 MOVEA MOVEA RW3 RW3,RW3 ,@RW3+d8 MOVEA MOVEA RW3 RW3,RW2 ,@RW2+d8 MOVEA MOVEA RW3 RW3,RW1 ,@RW1+d8 MOVEA MOVEA RW3 RW3,RW0 ,@RW0+d8 60 MOVEA MOVEA RW0 MOVEA MOVEA RW1 MOVEA MOVEA RW2 MOVEA MOVEA RW3 MOVEA MOVEA RW4 RW0,@RW0+ ,@RW0+RW7 RW1,@RW0+ ,@RW0+RW7 RW2,@RW0+ ,@RW0+RW7 RW3,@RW0+ ,@RW0+RW7 RW4,@RW0+ ,@RW0+RW7 MOVEA MOVEA RW2 RW2,@RW3 ,@RW3+d16 MOVEA MOVEA RW2 RW2,@RW2 ,@RW2+d16 MOVEA MOVEA RW2 RW2,@RW1 ,@RW1+d16 MOVEA MOVEA RW2 RW2,@RW0 ,@RW0+d16 MOVEA MOVEA RW2 RW2,RW7 ,@RW7+d8 MOVEA MOVEA RW2 RW2,RW6 ,@RW6+d8 MOVEA MOVEA RW2 RW2,RW5 ,@RW5+d8 MOVEA MOVEA RW2 RW2,RW4 ,@RW4+d8 MOVEA MOVEA RW2 RW2,RW3 ,@RW3+d8 MOVEA MOVEA RW2 RW2,RW2 ,@RW2+d8 MOVEA MOVEA RW2 RW2,RW1 ,@RW1+d8 MOVEA MOVEA RW2 RW2,RW0 ,@RW0+d8 40 +C +B RW0,@RW3 ,@RW3+d16 +A RW0,@RW2 ,@RW2+d16 MOVEA MOVEA RW1 RW1,RW1 ,@RW1+d8 MOVEA MOVEA RW0 RW0,RW1 ,@RW1+d8 +1 30 MOVEA MOVEA RW1 RW1,RW0 ,@RW0+d8 20 MOVEA MOVEA RW0 RW0,RW0 ,@RW0+d8 10 +0 00 付録 表 B.9-15 MOVEA RWi, ea 命令 ( 第 1 バイト =79H) MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 @RW0+ @RW0+RW7 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 @RW1+ @RW1+RW7 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 @RW2+ @PC+d16 MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7, @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 @RW3+ addr16 +C +D +E +F +B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16 MOV +A R0,@RW2 @RW2+d16 R1,@RW2 @RW2+d16 R2,@RW2 @RW2+d16 R3,@RW2 @RW2+d16 R4,@RW2 @RW2+d16 R5,@RW2 @RW2+d16 R6,@RW2 @RW2+d16 R7,@RW2 @RW2+d16 MOV MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16 +9 MOV R0, MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16 +8 MOV MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R7 @RW7+d8 R1, R7 @RW7+d8 R2, R7 @RW7+d8 R3, R7 @RW7+d8 R4, R7 @RW7+d8 R5, R7 @RW7+d8 R6, R7 @RW7+d8 R7, R7 @RW7+d8 F0 +7 E0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R6 @RW6+d8 R1, R6 @RW6+d8 R2, R6 @RW6+d8 R3, R6 @RW6+d8 R4, R6 @RW6+d8 R5, R6 @RW6+d8 R6, R6 @RW6+d8 R7, R6 @RW6+d8 D0 +6 C0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R5 @RW5+d8 R1, R5 @RW5+d8 R2, R5 @RW5+d8 R3, R5 @RW5+d8 R4, R5 @RW5+d8 R5, R5 @RW5+d8 R6, R5 @RW5+d8 R7, R5 @RW5+d8 B0 +5 A0 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R4 @RW4+d8 R1, R4 @RW4+d8 R2, R4 @RW4+d8 R3, R4 @RW4+d8 R4, R4 @RW4+d8 R5, R4 @RW4+d8 R6, R4 @RW4+d8 R7, R4 @RW4+d8 90 +4 80 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R3 @RW3+d8 R1, R3 @RW3+d8 R2, R3 @RW3+d8 R3, R3 @RW3+d8 R4, R3 @RW3+d8 R5, R3 @RW3+d8 R6, R3 @RW3+d8 R7, R3 @RW3+d8 70 +3 60 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R2 @RW2+d8 R1, R2 @RW2+d8 R2, R2 @RW2+d8 R3, R2 @RW2+d8 R4, R2 @RW2+d8 R5, R2 @RW2+d8 R6, R2 @RW2+d8 R7, R2 @RW2+d8 50 +2 40 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R1 @RW1+d8 R1, R1 @RW1+d8 R2, R1 @RW1+d8 R3, R1 @RW1+d8 R4, R1 @RW1+d8 R5, R1 @RW1+d8 R6, R1 @RW1+d8 R7, R1 @RW1+d8 30 +1 20 MOV MOV R0, MOV MOV R1, MOV MOV R2, MOV MOV R3, MOV MOV R4, MOV MOV R5, MOV MOV R6, MOV MOV R7, R0, R0 @RW0+d8 R1, R0 @RW0+d8 R2, R0 @RW0+d8 R3, R0 @RW0+d8 R4, R0 @RW0+d8 R5, R0 @RW0+d8 R6, R0 @RW0+d8 R7, R0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-16 MOV Ri, ea 命令 ( 第 1 バイト =7AH) 715 716 MOVW MOVW RW2, RW2,@RW0 @RW0+d16 MOVW MOVW RW2, RW2,@RW1 @RW1+d16 MOVW MOVW RW2, RW2,@RW2 @RW2+d16 MOVW MOVW RW2, RW2,@RW3 @RW3+d16 MOVW MOVW RW1, RW1, RW6 @RW6+d8 MOVW MOVW RW1, RW1, RW7 @RW7+d8 MOVW MOVW MOVW MOVW RW1, RW0,@RW1 @RW1+d16 RW1,@RW1 @RW1+d16 MOVW MOVW MOVW MOVW RW1, RW0,@RW2 @RW2+d16 RW1,@RW2 @RW2+d16 MOVW MOVW MOVW MOVW RW1, RW0,@RW3 @RW3+d16 RW1,@RW3 @RW3+d16 MOVW MOVW MOVW MOVW RW1, MOVW MOVW RW2, MOVW MOVW RW3, MOVW MOVW RW4, MOVW MOVW RW5, MOVW MOVW RW6, MOVW MOVW RW7, RW0,@RW0+ @RW0+RW7 RW1,@RW0+ @RW0+RW7 RW2,@RW0+ @RW0+RW7 RW3,@RW0+ @RW0+RW7 RW4,@RW0+ @RW0+RW7 RW5,@RW0+ @RW0+RW7 RW6,@RW0+ @RW0+RW7 RW7,@RW0+ @RW0+RW7 MOVW MOVW RW1, @RW3+ RW1, addr16 MOVW MOVW RW0, RW7 @RW7+d8 MOVW MOVW MOVW MOVW RW1, RW0,@RW0 @RW0+d16 RW1,@RW0 @RW0+d16 MOVW MOVW RW1, RW1, @RW2+ @PC+d16 MOVW MOVW RW0, RW6 @RW6+d8 MOVW RW0, @RW1+ MOVW MOVW RW0, @RW2+ @PC+d16 MOVW MOVW RW0, @RW3+ RW0, addr16 +6 +7 +8 +9 +A +B +C +D +E +F MOVW MOVW @RW1+RW7 RW1, @RW1+ MOVW MOVW RW2, RW2, RW7 @RW7+d8 MOVW MOVW RW1, RW1, RW5 @RW5+d8 MOVW MOVW RW0, RW5 @RW5+d8 +5 MOVW MOVW RW2, @RW3+ RW2, addr16 MOVW MOVW RW3, @RW3+ RW3, addr16 MOVW MOVW RW3, RW3, @RW2+ @PC+d16 MOVW MOVW RW4, @RW3+ RW4, addr16 MOVW MOVW RW4, RW4, @RW2+ @PC+d16 MOVW MOVW RW5, @RW3+ RW5, addr16 MOVW MOVW RW5, @RW2+ @PC+d16 MOVW MOVW RW6, @RW3+ RW6, addr16 MOVW MOVW RW6, RW6, @RW2+ @PC+d16 MOVW MOVW RW7, @RW3+ RW7, addr16 MOVW MOVW RW7, RW7, @RW2+ @PC+d16 MOVW RW7, @RW1+RW7 MOVW MOVW RW7, RW7,@RW3 @RW3+d16 MOVW MOVW RW7, RW7,@RW2 @RW2+d16 MOVW MOVW RW7, RW7,@RW1 @RW1+d16 MOVW MOVW RW7, RW7,@RW0 @RW0+d16 MOVW MOVW RW7, RW7, RW7 @RW7+d8 MOVW MOVW RW7, RW7, RW6 @RW6+d8 MOVW MOVW RW7, RW7, RW5 @RW5+d8 MOVW MOVW RW7, RW7, RW4 @RW4+d8 MOVW MOVW RW7, RW7, RW3 @RW3+d8 MOVW RW6, MOVW @RW1+RW7 RW7, @RW1+ MOVW MOVW RW6, RW6,@RW3 @RW3+d16 MOVW MOVW RW6, RW6,@RW2 @RW2+d16 MOVW MOVW RW6, RW6,@RW1 @RW1+d16 MOVW MOVW RW6, RW6,@RW0 @RW0+d16 MOVW MOVW RW6, RW6, RW7 @RW7+d8 MOVW MOVW RW6, RW6, RW6 @RW6+d8 MOVW MOVW RW6, RW6, RW5 @RW5+d8 MOVW MOVW RW6, RW6, RW4 @RW4+d8 MOVW MOVW RW6, RW6, RW3 @RW3+d8 MOVW MOVW @RW1+RW7 RW6, @RW1+ MOVW MOVW RW5, RW5,@RW3 @RW3+d16 MOVW MOVW RW5, RW5,@RW2 @RW2+d16 MOVW MOVW RW5, RW5,@RW1 @RW1+d16 MOVW MOVW RW5, RW5,@RW0 @RW0+d16 MOVW MOVW RW5, RW5, RW7 @RW7+d8 MOVW MOVW RW5, RW5, RW6 @RW6+d8 MOVW MOVW RW5, RW5, RW5 @RW5+d8 MOVW MOVW RW5, RW5, RW4 @RW4+d8 MOVW RW4, MOVW @RW1+RW7 RW5, @RW1+ MOVW MOVW RW4, RW4,@RW3 @RW3+d16 MOVW MOVW RW4, RW4,@RW2 @RW2+d16 MOVW MOVW RW4, RW4,@RW1 @RW1+d16 MOVW MOVW RW4, RW4,@RW0 @RW0+d16 MOVW MOVW RW4, RW4, RW7 @RW7+d8 MOVW MOVW RW4, RW4, RW6 @RW6+d8 MOVW MOVW RW4, RW4, RW5 @RW5+d8 MOVW MOVW RW4, RW4, RW4 @RW4+d8 MOVW RW3, MOVW @RW1+RW7 RW4, @RW1+ MOVW MOVW RW3, RW3,@RW3 @RW3+d16 MOVW MOVW RW3, RW3,@RW2 @RW2+d16 MOVW MOVW RW3, RW3,@RW1 @RW1+d16 MOVW MOVW RW3, RW3,@RW0 @RW0+d16 MOVW MOVW RW3, RW3, RW7 @RW7+d8 MOVW MOVW RW3, RW3, RW6 @RW6+d8 MOVW MOVW RW3, RW3, RW5 @RW5+d8 MOVW MOVW RW3, RW3, RW4 @RW4+d8 MOVW RW2, MOVW @RW1+RW7 RW3, @RW1+ MOVW MOVW RW2, RW2, @RW2+ @PC+d16 MOVW RW1, MOVW @RW1+RW7 RW2, @RW1+ MOVW MOVW RW2, RW2, RW6 @RW6+d8 MOVW MOVW RW2, RW2, RW5 @RW5+d8 MOVW MOVW RW2, RW2, RW4 @RW4+d8 MOVW MOVW RW5, RW5, RW3 @RW3+d8 MOVW MOVW RW7, RW7, RW2 @RW2+d8 MOVW MOVW RW7, RW7, RW1 @RW1+d8 MOVW MOVW RW1, RW1, RW4 @RW4+d8 MOVW MOVW RW4, RW4, RW3 @RW3+d8 MOVW MOVW RW6, RW6, RW2 @RW2+d8 MOVW MOVW RW6, RW6, RW1 @RW1+d8 MOVW MOVW RW0, RW4 @RW4+d8 MOVW MOVW RW3, RW3, RW3 @RW3+d8 MOVW MOVW RW5, RW5, RW2 @RW2+d8 MOVW MOVW RW5, RW5, RW1 @RW1+d8 +4 MOVW MOVW RW2, RW2, RW3 @RW3+d8 MOVW MOVW RW4, RW4, RW2 @RW2+d8 MOVW MOVW RW4, RW4, RW1 @RW1+d8 MOVW MOVW RW1, RW1, RW3 @RW3+d8 MOVW MOVW RW3, RW3, RW2 @RW2+d8 MOVW MOVW RW3, RW3, RW1 @RW1+d8 MOVW MOVW RW0, RW3 @RW3+d8 MOVW MOVW RW2, RW2, RW2 @RW2+d8 MOVW MOVW RW2, RW2, RW1 @RW1+d8 +3 F0 MOVW MOVW RW7, RW7, RW0 @RW0+d8 E0 MOVW MOVW RW1, RW1, RW2 @RW2+d8 D0 MOVW MOVW RW6, RW6, RW0 @RW0+d8 C0 MOVW MOVW RW0, RW2 @RW2+d8 B0 MOVW MOVW RW5, RW5, RW0 @RW0+d8 A0 +2 90 MOVW MOVW RW4, RW4, RW0 @RW0+d8 80 MOVW MOVW RW1, RW1, RW1 @RW1+d8 70 MOVW MOVW RW3, RW3, RW0 @RW0+d8 60 MOVW MOVW RW0, RW1 @RW1+d8 50 MOVW MOVW RW2, RW2, RW0 @RW0+d8 40 +1 30 MOVW MOVW RW1, RW1, RW0 @RW0+d8 20 MOVW MOVW RW0, RW0 @RW0+d8 10 +0 00 付録 表 B.9-17 MOVW RWi, ea 命令 ( 第 1 バイト =7BH) +F +E +D +C +B +A +9 +8 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV @RW3, R1 @RW3+d16, R1 MOV @RW2, R1 @RW2+d16, R1 MOV @RW1, R1 @RW1+d16, R1 MOV @RW0, R1 @RW0+d16, R1 MOV MOV MOV MOV MOV MOV MOV @RW3, R2 @RW3+d16, R2 MOV @RW2, R2 @RW2+d16, R2 MOV @RW1, R2 @RW1+d16, R2 MOV @RW0, R2 @RW0+d16, R2 MOV MOV MOV MOV MOV MOV MOV @RW3, R3 @RW3+d16, R3 MOV @RW2, R3 @RW2+d16, R3 MOV @RW1, R3 @RW1+d16, R3 MOV @RW0, R3 @RW0+d16, R3 MOV MOV MOV MOV MOV MOV MOV @RW3, R4 @RW3+d16, R4 MOV @RW2, R4 @RW2+d16, R4 MOV @RW1, R4 @RW1+d16, R4 MOV @RW0, R4 @RW0+d16, R4 MOV MOV MOV MOV MOV MOV MOV @RW3, R5 @RW3+d16, R5 MOV @RW2, R5 @RW2+d16, R5 MOV @RW1, R5 @RW1+d16, R5 MOV @RW0, R5 @RW0+d16, R5 MOV MOV MOV MOV MOV MOV MOV @RW3, R6 @RW3+d16, R6 MOV @RW2, R6 @RW2+d16, R6 MOV @RW1, R6 @RW1+d16, R6 MOV @RW0, R6 @RW0+d16, R6 MOV MOV MOV MOV MOV MOV MOV @RW3, R7 @RW3+d16, R7 MOV @RW2, R7 @RW2+d16, R7 MOV @RW1, R7 @RW1+d16, R7 MOV @RW0, R7 @RW0+d16, R7 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV @RW3+, R0 addr16, R0 MOV @RW3+, R1 addr16, R1 MOV MOV MOV MOV MOV @RW2+, R1 @PC+d16, R1 MOV @RW2+, R0 @PC+d16, R0 MOV MOV MOV @RW3+, R2 addr16, R2 MOV @RW2+, R2 @PC+d16, R2 MOV MOV MOV @RW3+, R3 addr16, R3 MOV @RW2+, R3 @PC+d16, R3 MOV MOV MOV @RW3+, R4 addr16, R4 MOV @RW2+, R4 @PC+d16, R4 MOV MOV MOV @RW3+, R5 addr16, R5 MOV @RW2+, R5 @PC+d16, R5 MOV MOV MOV @RW3+, R6 addr16, R6 MOV @RW2+, R6 @PC+d16, R6 MOV MOV MOV @RW3+, R7 addr16, R7 MOV @RW2+, R7 @PC+d16, R7 MOV @RW1+, R0 @RW1+RW7, R0 @RW1+, R1 @RW1+RW7, R1 @RW1+, R2 @RW1+RW7, R2 @RW1+, R3 @RW1+RW7, R3 @RW1+, R4 @RW1+RW7, R4 @RW1+, R5 @RW1+RW7, R5 @RW1+, R6 @RW1+RW7, R6 @RW1+, R7 @RW1+RW7, R7 MOV @RW0+, R0 @RW0+RW7, R0 @RW0+, R1 @RW0+RW7, R1 @RW0+, R2 @RW0+RW7, R2 @RW0+, R3 @RW0+RW7, R3 @RW0+, R4 @RW0+RW7, R4 @RW0+, R5 @RW0+RW7, R5 @RW0+, R6 @RW0+RW7, R6 @RW0+, R7 @RW0+RW7, R7 MOV @RW3, R0 @RW3+d16, R0 MOV @RW2, R0 @RW2+d16, R0 MOV @RW1, R0 @RW1+d16, R0 MOV @RW0, R0 @RW0+d16, R0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R7, R0 @RW7+d8, R0 R7, R1 @RW7+d8, R1 R7, R2 @RW7+d8, R2 R7, R3 @RW7+d8, R3 R7, R4 @RW7+d8, R4 R7, R5 @RW7+d8, R5 R7, R6 @RW7+d8, R6 R7, R7 @RW7+d8, R7 F0 +7 E0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R6, R0 @RW6+d8, R0 R6, R1 @RW6+d8, R1 R6, R2 @RW6+d8, R2 R6, R3 @RW6+d8, R3 R6, R4 @RW6+d8, R4 R6, R5 @RW6+d8, R5 R6, R6 @RW6+d8, R6 R6, R7 @RW6+d8, R7 D0 +6 C0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R5, R0 @RW5+d8, R0 R5, R1 @RW5+d8, R1 R5, R2 @RW5+d8, R2 R5, R3 @RW5+d8, R3 R5, R4 @RW5+d8, R4 R5, R5 @RW5+d8, R5 R5, R6 @RW5+d8, R6 R5, R7 @RW5+d8, R7 B0 +5 A0 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R4, R0 @RW4+d8, R0 R4, R1 @RW4+d8, R1 R4, R2 @RW4+d8, R2 R4, R3 @RW4+d8, R3 R4, R4 @RW4+d8, R4 R4, R5 @RW4+d8, R5 R4, R6 @RW4+d8, R6 R4, R7 @RW4+d8, R7 90 +4 80 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R3, R0 @RW3+d8, R0 R3, R1 @RW3+d8, R1 R3, R2 @RW3+d8, R2 R3, R3 @RW3+d8, R3 R3, R4 @RW3+d8, R4 R3, R5 @RW3+d8, R5 R3, R6 @RW3+d8, R6 R3, R7 @RW3+d8, R7 70 +3 60 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R2, R0 @RW2+d8, R0 R2, R1 @RW2+d8, R1 R2, R2 @RW2+d8, R2 R2, R3 @RW2+d8, R3 R2, R4 @RW2+d8, R4 R2, R5 @RW2+d8, R5 R2, R6 @RW2+d8, R6 R2, R7 @RW2+d8, R7 50 +2 40 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R1, R0 @RW1+d8, R0 R1, R1 @RW1+d8, R1 R1, R2 @RW1+d8, R2 R1, R3 @RW1+d8, R3 R1, R4 @RW1+d8, R4 R1, R5 @RW1+d8, R5 R1, R6 @RW1+d8, R6 R1, R7 @RW1+d8, R7 30 +1 20 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV R0, R0 @RW0+d8, R0 R0, R1 @RW0+d8, R1 R0, R2 @RW0+d8, R2 R0, R3 @RW0+d8, R3 R0, R4 @RW0+d8, R4 R0, R5 @RW0+d8, R5 R0, R6 @RW0+d8, R6 R0, R7 @RW0+d8, R7 10 +0 00 付録 B 命令 表 B.9-18 MOV Ri, ea 命令 ( 第 1 バイト =7CH) 717 718 MOVW MOVW@RW2 @RW2, RW1 +d16, RW1 MOVW MOVW@RW3 @RW3, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0+, RW1 +RW7,RW1 MOVW MOVW@RW1 @RW1+, RW1 +RW7,RW1 MOVW MOVW@PC @RW2+, RW1 +d16, RW1 MOVW MOVW @RW3+, RW1 addr16, RW1 MOVW MOVW@RW2 @RW2, RW0 +d16, RW0 MOVW MOVW@RW3 @RW3, RW0 +d16, RW0 MOVW MOVW@RW0 @RW0+, RW0 +RW7,RW0 MOVW MOVW@RW1 @RW1+, RW0 +RW7,RW0 MOVW MOVW@PC @RW2+, RW0 +d16, RW0 MOVW MOVW @RW3+, RW0 addr16, RW0 +B +C +D +E +F MOVW MOVW @RW3+, RW2 addr16, RW2 MOVW MOVW@PC @RW2+, RW2 +d16, RW2 MOVW MOVW@RW1 @RW1+, RW2 +RW7,RW2 MOVW MOVW@RW0 @RW0+, RW2 +RW7,RW2 MOVW MOVW@RW3 @RW3, RW2 +d16, RW2 MOVW MOVW@RW2 @RW2, RW2 +d16, RW2 MOVW MOVW @RW3+, RW3 addr16, RW3 MOVW MOVW@PC @RW2+, RW3 +d16, RW3 MOVW MOVW@RW1 @RW1+, RW3 -+RW7,RW3 MOVW MOVW@RW0 @RW0+, RW3 +RW7,RW3 MOVW MOVW@RW3 @RW3, RW3 +d16, RW3 MOVW MOVW@RW2 @RW2, RW3 +d16, RW3 MOVW MOVW@RW1 @RW1, RW3 +d16, RW3 MOVW MOVW @RW3+, RW4 addr16, RW4 MOVW MOVW@PC @RW2+, RW4 +d16, RW4 MOVW MOVW@RW1 @RW1+, RW4 +RW7,RW4 MOVW MOVW@RW0 @RW0+, RW4 +RW7,RW4 MOVW MOVW@RW3 @RW3, RW4 +d16, RW4 MOVW MOVW@RW2 @RW2, RW4 +d16, RW4 MOVW MOVW@RW1 @RW1, RW4 +d16, RW4 MOVW MOVW @RW3+, RW5 addr16, RW5 MOVW MOVW@PC @RW2+, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1+, RW5 +RW7,RW5 MOVW MOVW@RW0 @RW0+, RW5 +RW7,RW5 MOVW MOVW@RW3 @RW3, RW5 +d16, RW5 MOVW MOVW@RW2 @RW2, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1, RW5 +d16, RW5 MOVW MOVW @RW3+, RW6 addr16, RW6 MOVW MOVW @PC @RW2+, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1+, RW6 +RW7,RW6 MOVW MOVW@RW0 @RW0+, RW6 +RW7,RW6 MOVW MOVW@RW3 @RW3, RW6 +d16, RW6 MOVW MOVW@RW2 @RW2, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1, RW6 +d16, RW6 MOVW MOVW @RW3+, RW7 addr16, RW7 MOVW MOVW@PC @RW2+, RW7 +d16, RW7 MOVW MOVW@RW1 @RW1+, RW7 +RW7,RW7 MOVW MOVW@RW0 @RW0+, RW7 +RW7,RW7 MOVW MOVW@RW3 @RW3, RW7 +d16, RW7 MOVW MOVW@RW2 @RW2, RW7 +d16, RW7 MOVW MOVW@RW1 @RW1, RW7 +d16, RW7 MOVW MOVW@RW0 @RW0, RW7 +d16, RW7 +A MOVW MOVW@RW1 @RW1, RW2 +d16, RW2 MOVW MOVW@RW0 @RW0, RW6 +d16, RW6 MOVW MOVW@RW1 @RW1, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0, RW5 +d16, RW5 MOVW MOVW@RW1 @RW1, RW0 +d16, RW0 MOVW MOVW@RW0 @RW0, RW4 +d16, RW4 +9 MOVW MOVW@RW0 @RW0, RW3 +d16, RW3 MOVW MOVW@RW0 @RW0, RW1 +d16, RW1 MOVW MOVW@RW0 @RW0, RW0 +d16, RW0 +8 MOVW MOVW@RW0 @RW0, RW2 +d16, RW2 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW7, RW0 @RW7+d8, RW0 RW7, RW1 @RW7+d8, RW1 RW7, RW2 @RW7+d8, RW2 RW7, RW3 @RW7+d8, RW3 RW7, RW4 @RW7+d8, RW4 RW7, RW5 @RW7+d8, RW5 RW7, RW6 @RW7+d8, RW6 RW7, RW7 @RW7+d8, RW7 F0 +7 E0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW6, RW0 @RW6+d8, RW0 RW6, RW1 @RW6+d8, RW1 RW6, RW2 @RW6+d8, RW2 RW6, RW3 @RW6+d8, RW3 RW6, RW4 @RW6+d8, RW4 RW6, RW5 @RW6+d8, RW5 RW6, RW6 @RW6+d8, RW6 RW6, RW7 @RW6+d8, RW7 D0 +6 C0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW5, RW0 @RW5+d8, RW0 RW5, RW1 @RW5+d8, RW1 RW5, RW2 @RW5+d8, RW2 RW5, RW3 @RW5+d8, RW3 RW5, RW4 @RW5+d8, RW4 RW5, RW5 @RW5+d8, RW5 RW5, RW6 @RW5+d8, RW6 RW5, RW7 @RW5+d8, RW7 B0 +5 A0 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW4, RW0 @RW4+d8, RW0 RW4, RW1 @RW4+d8, RW1 RW4, RW2 @RW4+d8, RW2 RW4, RW3 @RW4+d8, RW3 RW4, RW4 @RW4+d8, RW4 RW4, RW5 @RW4+d8, RW5 RW4, RW6 @RW4+d8, RW6 RW4, RW7 @RW4+d8, RW7 90 +4 80 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW3, RW0 @RW3+d8, RW0 RW3, RW1 @RW3+d8, RW1 RW3, RW2 @RW3+d8, RW2 RW3, RW3 @RW3+d8, RW3 RW3, RW4 @RW3+d8, RW4 RW3, RW5 @RW3+d8, RW5 RW3, RW6 @RW3+d8, RW6 RW3, RW7 @RW3+d8, RW7 70 +3 60 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW2, RW0 @RW2+d8, RW0 RW2, RW1 @RW2+d8, RW1 RW2, RW2 @RW2+d8, RW2 RW2, RW3 @RW2+d8, RW3 RW2, RW4 @RW2+d8, RW4 RW2, RW5 @RW2+d8, RW5 RW2, RW6 @RW2+d8, RW6 RW2, RW7 @RW2+d8, RW7 50 +2 40 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW1, RW0 @RW1+d8, RW0 RW1, RW1 @RW1+d8, RW1 RW1, RW2 @RW1+d8, RW2 RW1, RW3 @RW1+d8, RW3 RW1, RW4 @RW1+d8, RW4 RW1, RW5 @RW1+d8, RW5 RW1, RW6 @RW1+d8, RW6 RW1, RW7 @RW1+d8, RW7 30 +1 20 MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW MOVW RW0, RW0 @RW0+d8, RW0 RW0, RW1 @RW0+d8, RW1 RW0, RW2 @RW0+d8, RW2 RW0, RW3 @RW0+d8, RW3 RW0, RW4 @RW0+d8, RW4 RW0, RW5 @RW0+d8, RW5 RW0, RW6 @RW0+d8, RW6 RW0, RW7 @RW0+d8, RW7 10 +0 00 付録 表 B.9-19 MOVW RWi, ea 命令 ( 第 1 バイト =7DH) XCH XCH XCH XCH R1, XCH XCH R1, R1,@RW2 W2+d16, A XCH XCH R2, XCH XCH R2, R2,@RW2 W2+d16, A XCH XCH R3, XCH XCH R3, R3,@RW2 W2+d16, A XCH XCH R4, XCH XCH R4, R4,@RW2 W2+d16, A XCH XCH R5, XCH XCH R5, R5,@RW2 W2+d16, A XCH XCH R6, XCH XCH R6, R6,@RW2 W2+d16, A XCH XCH R7, XCH XCH R7, R7,@RW2 W2+d16, A XCH XCH XCH XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, +F R0,@RW3+ R0, addr16 XCH XCH R1,@RW3+ R1, addr16 XCH XCH R2,@RW3+ R2, addr16 XCH XCH R3,@RW3+ R3, addr16 XCH XCH R4,@RW3+ R4, addr16 XCH XCH R5,@RW3+ R5, addr16 XCH XCH R6,@RW3+ R6, addr16 XCH XCH R7,@RW3+ R7, addr16 +E R0,@RW2+ @PC+d16 R1,@RW2+ @PC+d16 R2,@RW2+ @PC+d16 R3,@RW2+ @PC+d16 R4,@RW2+ @PC+d16 R5,@RW2+ @PC+d16 R6,@RW2+ @PC+d16 R7,@RW2+ @PC+d16 R0, XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, @RW1+RW7 R1,@RW1+ @RW1+RW7 R2,@RW1+ @RW1+RW7 R3,@RW1+ @RW1+RW7 R4,@RW1+ @RW1+RW7 R5,@RW1+ @RW1+RW7 R6,@RW1+ @RW1+RW7 R7,@RW1+ @RW1+RW7 +D R0,@RW1+ XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, @RW0+RW7 R1,@RW0+ @RW0+RW7 R2,@RW0+ @RW0+RW7 R3,@RW0+ @RW0+RW7 R4,@RW0+ @RW0+RW7 R5,@RW0+ @RW0+RW7 R6,@RW0+ @RW0+RW7 R7,@RW0+ @RW0+RW7 XCH +C R0,@RW0+ +B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16 R0, +A R0,@RW2 W2+d16, A R0, XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16 +9 XCH XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16 +8 XCH XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R7 @RW7+d8 R1, R7 @RW7+d8 R2, R7 @RW7+d8 R3, R7 @RW7+d8 R4, R7 @RW7+d8 R5, R7 @RW7+d8 R6, R7 @RW7+d8 R7, R7 @RW7+d8 F0 +7 E0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R6 @RW6+d8 R1, R6 @RW6+d8 R2, R6 @RW6+d8 R3, R6 @RW6+d8 R4, R6 @RW6+d8 R5, R6 @RW6+d8 R6, R6 @RW6+d8 R7, R6 @RW6+d8 D0 +6 C0 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R5 @RW5+d8 R1, R5 @RW5+d8 R2, R5 @RW5+d8 R3, R5 @RW5+d8 R4, R5 @RW5+d8 R5, R5 @RW5+d8 R6, R5 @RW5+d8 R7, R5 @RW5+d8 B0 +5 A XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R4 @RW4+d8 R1, R4 @RW4+d8 R2, R4 @RW4+d8 R3, R4 @RW4+d8 R4, R4 @RW4+d8 R5, R4 @RW4+d8 R6, R4 @RW4+d8 R7, R4 @RW4+d8 90 +4 80 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R3 @RW3+d8 R1, R3 @RW3+d8 R2, R3 @RW3+d8 R3, R3 @RW3+d8 R4, R3 @RW3+d8 R5, R3 @RW3+d8 R6, R3 @RW3+d8 R7, R3 @RW3+d8 70 +3 60 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R2 @RW2+d8 R1, R2 @RW2+d8 R2, R2 @RW2+d8 R3, R2 @RW2+d8 R4, R2 @RW2+d8 R5, R2 @RW2+d8 R6, R2 @RW2+d8 R7, R2 @RW2+d8 50 +2 40 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R1 @RW1+d8 R1, R1 @RW1+d8 R2, R1 @RW1+d8 R3, R1 @RW1+d8 R4, R1 @RW1+d8 R5, R1 @RW1+d8 R6, R1 @RW1+d8 R7, R1 @RW1+d8 30 +1 20 XCH XCH R0, XCH XCH R1, XCH XCH R2, XCH XCH R3, XCH XCH R4, XCH XCH R5, XCH XCH R6, XCH XCH R7, R0, R0 @RW0+d8 R1, R0 @RW0+d8 R2, R0 @RW0+d8 R3, R0 @RW0+d8 R4, R0 @RW0+d8 R5, R0 @RW0+d8 R6, R0 @RW0+d8 R7, R0 @RW0+d8 10 +0 00 付録 B 命令 表 B.9-20 XCH Ri, ea 命令 ( 第 1 バイト =7EH) 719 720 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW2+ @PC+d16 RW1,@RW2+ @PC+d16 RW2,@RW2+ @PC+d16 RW3,@RW2+ @PC+d16 RW4,@RW2+ @PC+d16 RW5,@RW2+ @PC+d16 RW6,@RW2+ @PC+d16 RW7,@RW2+ @PC+d16 XCHW XCHW RW0,@RW3+ RW0, addr16 +E +F XCHW XCHW RW7,@RW3+ RW7, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW1+ @RW1+RW7 RW1,@RW1+ @RW1+RW7 RW2,@RW1+ @RW1+RW7 RW3,@RW1+ @RW1+RW7 RW4,@RW1+ @RW1+RW7 RW5,@RW1+ @RW1+RW7 RW6,@RW1+ @RW1+RW7 RW7,@RW1+ @RW1+RW7 +D XCHW XCHW RW6,@RW3+ RW6, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW0+ @RW0+RW7 RW1,@RW0+ @RW0+RW7 RW2,@RW0+ @RW0+RW7 RW3,@RW0+ @RW0+RW7 RW4,@RW0+ @RW0+RW7 RW5,@RW0+ @RW0+RW7 RW6,@RW0+ @RW0+RW7 RW7,@RW0+ @RW0+RW7 +C XCHW XCHW RW5,@RW3+ RW5, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW3 @RW3+d16 RW1,@RW3 @RW3+d16 RW2,@RW3 @RW3+d16 RW3,@RW3 @RW3+d16 RW4,@RW3 @RW3+d16 RW5,@RW3 @RW3+d16 RW6,@RW3 @RW3+d16 RW7,@RW3 @RW3+d16 +B XCHW XCHW RW4,@RW3+ RW4, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW2 @RW2+d16 RW1,@RW2 @RW2+d16 RW2,@RW2 @RW2+d16 RW3,@RW2 @RW2+d16 RW4,@RW2 @RW2+d16 RW5,@RW2 @RW2+d16 RW6,@RW2 @RW2+d16 RW7,@RW2 @RW2+d16 +A XCHW XCHW RW3,@RW3+ RW3, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW1 @RW1+d16 RW1,@RW1 @RW1+d16 RW2,@RW1 @RW1+d16 RW3,@RW1 @RW1+d16 RW4,@RW1 @RW1+d16 RW5,@RW1 @RW1+d16 RW6,@RW1 @RW1+d16 RW7,@RW1 @RW1+d16 +9 XCHW XCHW RW2,@RW3+ RW2, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0,@RW0 @RW0+d16 RW1,@RW0 @RW0+d16 RW2,@RW0 @RW0+d16 RW3,@RW0 @RW0+d16 RW4,@RW0 @RW0+d16 RW5,@RW0 @RW0+d16 RW6,@RW0 @RW0+d16 RW7,@RW0 @RW0+d16 +8 XCHW XCHW RW1,@RW3+ RW1, addr16 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW7 @RW7+d8 RW1, RW7 @RW7+d8 RW2, RW7 @RW7+d8 RW3, RW7 @RW7+d8 RW4, RW7 @RW7+d8 RW5, RW7 @RW7+d8 RW6, RW7 @RW7+d8 RW7, RW7 @RW7+d8 F0 +7 E0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW6 @RW6+d8 RW1, RW6 @RW6+d8 RW2, RW6 @RW6+d8 RW3, RW6 @RW6+d8 RW4, RW6 @RW6+d8 RW5, RW6 @RW6+d8 RW6, RW6 @RW6+d8 RW7, RW6 @RW6+d8 D0 +6 C0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW5 @RW5+d8 RW1, RW5 @RW5+d8 RW2, RW5 @RW5+d8 RW3, RW5 @RW5+d8 RW4, RW5 @RW5+d8 RW5, RW5 @RW5+d8 RW6, RW5 @RW5+d8 RW7, RW5 @RW5+d8 B0 +5 A0 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW4 @RW4+d8 RW1, RW4 @RW4+d8 RW2, RW4 @RW4+d8 RW3, RW4 @RW4+d8 RW4, RW4 @RW4+d8 RW5, RW4 @RW4+d8 RW6, RW4 @RW4+d8 RW7, RW4 @RW4+d8 90 +4 80 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW3 @RW3+d8 RW1, RW3 @RW3+d8 RW2, RW3 @RW3+d8 RW3, RW3 @RW3+d8 RW4, RW3 @RW3+d8 RW5, RW3 @RW3+d8 RW6, RW3 @RW3+d8 RW7, RW3 @RW3+d8 70 +3 60 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW2 @RW2+d8 RW1, RW2 @RW2+d8 RW2, RW2 @RW2+d8 RW3, RW2 @RW2+d8 RW4, RW2 @RW2+d8 RW5, RW2 @RW2+d8 RW6, RW2 @RW2+d8 RW7, RW2 @RW2+d8 50 +2 40 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW1 @RW1+d8 RW1, RW1 @RW1+d8 RW2, RW1 @RW1+d8 RW3, RW1 @RW1+d8 RW4, RW1 @RW1+d8 RW5, RW1 @RW1+d8 RW6, RW1 @RW1+d8 RW7, RW1 @RW1+d8 30 +1 20 XCHW XCHW RW0, XCHW XCHW RW1, XCHW XCHW RW2, XCHW XCHW RW3, XCHW XCHW RW4, XCHW XCHW RW5, XCHW XCHW RW6, XCHW XCHW RW7, RW0, RW0 @RW0+d8 RW1, RW0 @RW0+d8 RW2, RW0 @RW0+d8 RW3, RW0 @RW0+d8 RW4, RW0 @RW0+d8 RW5, RW0 @RW0+d8 RW6, RW0 @RW0+d8 RW7, RW0 @RW0+d8 10 +0 00 付録 表 B.9-21 XCHW RWi, ea 命令 ( 第 1 バイト =7FH) 索引 索引 Numerics 16 ビット PPG タイマ 16 ビット PPG タイマ ( × 3) ...............................258 16 ビット PPG タイマ使用上の注意 ..................277 16 ビット PPG タイマ端子のブロックダイヤ グラム ..............................................................261 16 ビット PPG タイマの EI2OS 機能 ..................272 16 ビット PPG タイマの端子 ..............................260 16 ビット PPG タイマのプログラム例 ..............278 16 ビット PPG タイマのブロックダイヤグラム ..........................................................................259 16 ビット PPG タイマのレジスタ ......................262 16 ビット PPG タイマ割込み ..............................271 16 ビット PPG タイマ割込みと EI2OS ...............272 16 ビットアウトプットコンペア 16 ビットアウトプットコンペア ( × 6) ............282 16 ビットアウトプットコンペア使用上の注意 ..........................................................................360 16 ビットアウトプットコンペアタイミング ..........................................................................345 16 ビットアウトプットコンペアの動作 ............341 16 ビットアウトプットコンペアのプログラム例 ..........................................................................364 16 ビットアウトプットコンペアのブロック ダイヤグラム ..................................................286 16 ビットアウトプットコンペアのレジスタ ..........................................................................291 16 ビットアウトプットコンペア割込み ............331 16 ビットアウトプットコンペア割込みと EI2OS ..........................................................................331 16 ビットインプットキャプチャ 16 ビットインプットキャプチャ ( × 4) ............283 16 ビットインプットキャプチャ使用上の注意 ..........................................................................361 16 ビットインプットキャプチャ入力タイミング ..........................................................................347 16 ビットインプットキャプチャの動作 ............346 16ビットインプットキャプチャのブロックダイヤ グラム ..............................................................286 16 ビットインプットキャプチャのレジスタ ..........................................................................292 16 ビットインプットキャプチャ割込み ............332 16 ビットインプットキャプチャ割込みと EI2OS ..........................................................................332 16 ビットタイマ 16 ビットタイマ使用上の注意 ............................440 16 ビットタイマのタイミング ............................436 16 ビットタイマの動作 ........................................435 16 ビットタイマのブロックダイヤグラム ........375 マルチパルスジェネレータの 16 ビットタイマの 使用 ..................................................................438 マルチパルスジェネレータの 16 ビットタイマの 動作ダイヤグラム ..........................................438 16 ビットタイマバッファ 16ビットタイマバッファ動作のタイミングダイヤ グラム ..............................................................437 16 ビットタイマレジスタ 16 ビットタイマレジスタ上位 , 下位 (TMRH0,TMRH1, TMRL0,TMRL1) ..............239 16 ビットデッドタイマ制御レジスタ 16 ビットデッドタイマ制御レジスタ , 下位バイト (DTCR0) ...........................................................319 16 ビットデッドタイマ制御レジスタ , 下位バイト (DTCR2) ...........................................................325 16 ビットデッドタイマ制御レジスタ , 上位バイト (DTCR1) ...........................................................322 16 ビットデッドタイマレジスタ 16 ビットデッドタイマレジスタ (TMRRH,TMRRL0 ∼ TMRRL2) ...................318 16 ビットフリーランタイマ 16 ビットフリーランタイマ ( × 1) .................... 282 16 ビットフリーランタイマ使用上の注意 ....... 360 16 ビットフリーランタイマのプログラム例 ..........................................................................363 16 ビットフリーランタイマのブロックダイヤ グラム .............................................................. 285 16 ビットフリーランタイマのレジスタ ........... 290 16 ビットフリーランタイマ割込み ...................330 16 ビットフリーランタイマ割込みと EI2OS ..........................................................................330 16 ビットリロードタイマ 16 ビットリロードタイマ使用上の注意 ........... 252 16 ビットリロードタイマ端子のブロックダイヤ グラム .............................................................. 233 16 ビットリロードタイマの設定 .......................242 16 ビットリロードタイマの端子 .......................233 16 ビットリロードタイマの動作モード ........... 228 16ビットリロードタイマのブロックダイヤグラム ..........................................................................231 16 ビットリロードタイマのレジスタ一覧 ....... 234 16 ビットリロードタイマの割込み ...................241 16 ビットリロードタイマの割込みと EI2OS ..........................................................................230 16 ビットリロードタイマの割込みと EI2OS 機能 ..........................................................................241 16 ビットリロードタイマアンダフロー 16 ビットリロードタイマアンダフロー方式 ..........................................................................420 位置検出と16ビットリロードタイマアンダフロー 方式 .................................................................. 424 位置検出または 16 ビットリロードタイマアンダ フロー方式 ......................................................426 ワンショット位置検出と16ビットリロードタイマ アンダフロー方式 .......................................... 429 ワンショット位置検出または 16 ビットリロード タイマアンダフロー方式 ..............................430 16 ビットリロードタイマ出力 内部タイマ (16 ビットリロードタイマ出力 ) に よるボーレート .............................................. 505 16 ビットリロードレジスタ 16 ビットリロードレジスタ上位 , 下位 (TMRDH0,TMRDH1,TMRDL0,TMRDL1) ..........................................................................240 721 索引 512K ビットフラッシュメモリ 512K ビットフラッシュメモリの概要 ...............606 512K ビットフラッシュメモリのセクタ構成 ..........................................................................607 512K ビットフラッシュメモリの特長 ...............606 512K ビットフラッシュメモリのプログラム例 ..........................................................................632 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 ........576 8/10 ビット A/D コンバータの EI2OS 機能 .......569 8/10 ビット A/D コンバータの機能 ....................554 8/10 ビット A/D コンバータの端子 ....................558 8/10 ビット A/D コンバータの端子のブロック ダイヤグラム ..................................................559 8/10 ビット A/D コンバータのブロックダイヤ グラム ..............................................................556 8/10 ビット A/D コンバータのレジスタ構成 ..........................................................................560 8/10 ビット A/D コンバータの割込み ................569 8/10 ビット A/D コンバータの割込みと EI2OS ..........................................................................569 8/10 ビット A/D コンバータ割込みと EI2OS ..........................................................................555 A A/D 制御ステータスレジスタ A/D 制御ステータスレジスタ 0(ADCS0) ..........564 A/D 制御ステータスレジスタ 1(ADCS1) ..........561 A/D データレジスタ A/D データレジスタ (ADCR0,ADCR1) ..............567 A/D 変換データ保護機能 A/D 変換データ保護機能 .................................... 574 ADCR A/D データレジスタ (ADCR0,ADCR1) ..............567 ADCS A/D 制御ステータスレジスタ 0(ADCS0) ..........564 A/D 制御ステータスレジスタ 1(ADCS1) ..........561 C CDCR 通信プリスケーラ制御レジスタ 0,1 (CDCR0,CDCR1) .............................................494 CKSCR クロック選択レジスタ (CKSCR) .......................... 84 CPCLRBH,CPCLRBL コンペアクリアバッファレジスタ (CPCLRBH,CPCLRBL) ..................................294 CPCLRH,CPCLRL コンペアクリアレジスタ (CPCLRH,CPCLRL) ..........................................................................294 CPCRH, CPCRL コンペアクリアレジスタ上位 , 下位 (CPCRH, CPCRL) ............................................ 398 CPU CPU の概要 .............................................................. 28 CPU 間欠動作モード CPU 間欠動作モード ......................................93, 100 CPU 動作モード CPU 動作モードと消費電流 ..................................92 D DIP-64P-M01 DIP-64P-M01 の外形寸法図 ..................................11 端子配列図 (DIP-64P-M01) ....................................10 DIRR 遅延割込み要求発生 / 解除レジスタ (DIRR) ..........................................................................549 DIV 分周比制御レジスタ (DIV0,DIV1) .....................455 DIV A,Ri 「DIV A,Ri」,「DIVW A,RWi」命令の使用上の注意 ............................................................................64 DIVW A,RWi 「DIV A,Ri」,「DIVW A,RWi」命令の使用上の注意 ............................................................................64 DTCR 16 ビットデッドタイマ制御レジスタ , 下位バイト (DTCR0) ...........................................................319 16 ビットデッドタイマ制御レジスタ , 下位バイト (DTCR2) ...........................................................325 16 ビットデッドタイマ制御レジスタ , 上位バイト (DTCR1) ...........................................................322 722 索引 DTP/ 外部割込み DTP/ 外部割込み機能 ...........................................526 DTP/ 外部割込み使用上の注意 ...........................540 DTP/ 外部割込み動作 ...........................................536 DTP/ 外部割込みの設定 .......................................535 DTP/ 外部割込みの端子 .......................................529 DTP/ 外部割込みのブロックダイヤグラム .......527 DTP/ 外部割込み機能 DTP/ 外部割込み機能のプログラム例 ...............542 DTP/ 外部割込み許可レジスタ DTP/ 外部割込み許可レジスタ (ENIR) ..............531 DTP/ 外部割込み要因レジスタ DTP/ 外部割込み要因レジスタ (EIRR) ..............530 DTP 機能 DTP 機能 ................................................................539 DTP 機能のプログラム例 ....................................543 DTTI DTTI と OPTx 出力の関係 ...................................433 DTTI 端子入力 DTTI 端子入力の動作 ...........................................358 DTTI 入力制御 DTTI 入力制御の動作 ...........................................431 DTTI 割込み DTTI 割込み ...........................................................359 E E2PROM E2PROM のメモリマップ ....................................594 システム構成と E2PROM のメモリ構成 ...........594 修正プログラムを E2PROM に格納する場合の アドレス一致検出機能の動作 ......................596 EI2OS 16 ビット PPG タイマの EI2OS 機能 ..................272 16 ビット PPG タイマ割込みと EI2OS ...............272 8/10 ビット A/D コンバータの割込みと EI2OS ..........................................................................569 8/10 ビット A/D コンバータ割込みと EI2OS ..........................................................................555 EI2OS を使用した場合の変換動作 .....................573 PWC タイマ割込みと EI2OS ...............................456 タイムベースタイマ割込みと EI2OS .................211 マルチパルスジェネレータの割込みと EI2OS ..........................................................................406 EIRR DTP/ 外部割込み要因レジスタ (EIRR) ..............530 ELVRH 検出レベル設定レジスタ , 上位 (ELVRH) .........533 ELVRL 検出レベル設定レジスタ , 下位 (ELVRL) .........534 ENIR DTP/ 外部割込み許可レジスタ (ENIR) ..............531 F F2MC-16LX F2MC-16LX 命令一覧表 .......................................685 FMCS フラッシュメモリ制御ステータスレジスタ (FMCS) .............................................................608 FPT-64P-M06 FPT-64P-M06 の外形寸法図 ..................................12 端子配列図 (FPT-64P-M06) ..................................... 8 FPT-64P-M09 FPT-64P-M09 の外形寸法図 ..................................13 端子配列図 (FPT-64P-M09) ..................................... 9 I I/O 回路 I/O 回路の種類 ........................................................19 I/O 端子 I/O 端子と端子機能 ................................................ 14 I/O ポート I/O ポート関連のレジスタ ..................................164 I/O ポートのプログラム例 ..................................203 I/O ポートの機能 I/O ポートの機能 ..................................................162 I/O マップ I/O マップ .............................................................. 650 I/O 領域 I/O 領域 .................................................................... 30 I/O レジスタアドレスポインタ I/O レジスタアドレスポインタ (IOA) ............... 141 ICR 割込み制御レジスタ (ICR) ..................................122 割込み制御レジスタ (ICR00 ∼ ICR15) ............. 120 ICSH インプットキャプチャ状態制御レジスタ (ch.2,ch.3), 上位バイト (ICSH23) .................. 311 ICSL インプットキャプチャ状態制御レジスタ (ch.2,ch.3), 下位バイト (ICSL23) ...................312 IPCLR 入力制御レジスタ , 下位 (IPCLR) ...................... 396 IPCPH,IPCPL インプットキャプチャデータレジスタ (IPCPH,IPCPL0 ∼ IPCPL3) ........................... 310 IPCUR 入力制御レジスタ , 上位 (IPCUR) ...................... 394 L LPMCR 低消費電力モード制御レジスタ (LPMCR) ......... 97 N NCCR ノイズキャンセル制御レジスタ (NCCR) ..........400 O OCCPBH,OCCPBL アウトプットコンペアバッファレジスタ (OCCPBH,OCCPBL0 ∼ OCCPBL5) ............. 302 OCCPH,OCCPL アウトプットコンペアレジスタ (OCCPH,OCCPL0 ∼ OCCPL5) .....................303 OCSH コンペア制御レジスタ , 上位バイト (OCSH1,OCSH3,OCSH5) ............................... 304 723 索引 OCSL コンペア制御レジスタ , 下位バイト (OCSL0,OCSL2,OCSL4) .................................307 OPCLR 出力制御レジスタ , 下位 (OPCLR) .....................386 OPCUR 出力制御レジスタ , 上位 (OPCUR) .....................384 OPDBR 出力データバッファレジスタ , 下位 (OPDBR0 ∼ OPDBRB) ..................................393 出力データバッファレジスタ , 上位 (OPDBR0 ∼ OPDBRB) ..................................391 OPDBR0 書込み OPDBR0 書込み方式 ............................................419 OPDRH 出力データレジスタ , 上位 (OPDRH) ................388 OPDRH 出力データレジスタ上位 , 下位 (OPDRH, OPDRL) ..........................................................................408 OPDRL 出力データレジスタ , 下位 (OPDRL) .................390 P PACSR プログラムアドレス検出制御ステータスレジスタ (PACSR) ...........................................................589 PADR プログラムアドレス検出レジスタ (PADR0H,M,L,PADR1H,M,L) ........................591 PCNTH PPG 状態制御レジスタ , 上位バイト (PCNTH0 ∼ PCNTH2) ...................................267 PCNTL PPG 状態制御レジスタ , 下位バイト (PCNTL0 ∼ PCNTL2) ....................................269 PCSRH,PCSRL PPG 周期設定バッファレジスタ (PCSRH,PCSRL0 ∼ PCSRL2) ........................265 PDCRH,PDCRL PPG ダウンカウンタレジスタ (PDCRH,PDCRL0 ∼ PDCRL2) ......................264 PDUTH,PDUTL PPG デューティ設定バッファレジスタ (PDUTH,PDUTL0 ∼ PDUTL2) ......................266 PICSH PPG 出力制御 / インプットキャプチャ状態制御 レジスタ (ch.0, ch.1), 上位バイト (PICSH01) ..........................................................................314 PICSL インプットキャプチャ状態制御レジスタ (ch.0,ch.1), 下位バイト (PICSL01) .................316 PLL クロック逓倍率 PLL クロック逓倍率の設定 ..................................86 PLL クロックモード メインクロックモードと PLL クロックモード ............................................................................86 PPG0 出力 ゲートトリガされた PPG0 出力 .........................350 PPG0 出力制御 PPG0 出力制御 ......................................................350 724 PPG 周期設定バッファレジスタ PPG 周期設定バッファレジスタ (PCSRH,PCSRL0 ∼ PCSRL2) .......................265 PPG 出力制御 / インプットキャプチャ状態 制御レジスタ PPG 出力制御 / インプットキャプチャ状態制御 レジスタ (ch.0, ch.1), 上位バイト (PICSH01) ..........................................................................314 PPG 状態制御レジスタ PPG 状態制御レジスタ , 下位バイト (PCNTL0 ∼ PCNTL2) .................................... 269 PPG 状態制御レジスタ , 上位バイト (PCNTH0 ∼ PCNTH2) ................................... 267 PPG ダウンカウンタレジスタ PPG ダウンカウンタレジスタ (PDCRH,PDCRL0 ∼ PDCRL2) .....................264 PPG デューティ設定バッファレジスタ PPG デューティ設定バッファレジスタ (PDUTH,PDUTL0 ∼ PDUTL2) .....................266 PPG 割込み PPG 割込み ............................................................ 276 PWC0 タイマ PWC0 タイマ端子のブロックダイヤグラム ..........................................................................446 PWC1 タイマ PWC1 タイマ端子のブロックダイヤグラム ..........................................................................447 PWCSH PWC 状態制御レジスタ , 上位バイト (PWCSH0,PWCSH1) .......................................449 PWCSL PWC 状態制御レジスタ , 下位バイト (PWCSL0,PWCSL1) ........................................ 452 PWC 状態制御レジスタ PWC 状態制御レジスタ , 下位バイト (PWCSL0,PWCSL1) ........................................ 452 PWC 状態制御レジスタ , 上位バイト (PWCSH0,PWCSH1) .......................................449 PWC タイマ PWC タイマ使用上の注意 ................................... 472 PWC タイマの EI2OS 機能 ..................................457 PWC タイマの端子 ............................................... 446 PWC タイマの動作 ............................................... 444 PWC タイマの特性 ............................................... 444 PWC タイマのプログラム例 ............................... 474 PWC タイマのブロックダイヤグラム ............... 445 PWC タイマのレジスタ .......................................448 PWC タイマの割込み ...........................................456 PWC タイマ割込みと EI2OS ............................... 456 PWC データバッファレジスタ PWC データバッファレジスタ (PWCH0,PWCH1,PWCL0,PWCL1) ............... 454 PWM モード PWM モード(PCNTH レジスタの MDSE:bit13=0) ..........................................................................273 R RAM 領域 RAM 領域 ................................................................ 30 ROM 領域 ROM 領域 ................................................................ 29 索引 ROMM ROM ミラー機能選択モジュールレジスタ (ROMM) ...........................................................602 ROM ミラー機能 ROM ミラー機能による FF バンクへのアクセス ..........................................................................600 ROM ミラー機能の有効 / 無効時のメモリ空間 ..........................................................................601 ROM ミラー機能選択モジュール ROM ミラー機能選択モジュールのブロック ダイヤグラム ..................................................600 ROM ミラー機能選択モジュールレジスタ ROM ミラー機能選択モジュールレジスタ (ROMM) ...........................................................602 RTO0 RTO0 ∼ RTO5 と GATE の出力状態 .................348 RTO5 RTO0 ∼ RTO5 と GATE の出力状態 .................348 RUN モード RUN モード ...........................................................156 S SCR シリアル制御レジスタ 0,1(SCR0,SCR1) ............485 SIDR シリアル入力データレジスタ 0,1(SIDR0,SIDR1) ..........................................................................492 SIGCR 波形制御レジスタ (SIGCR) .................................328 SMR シリアルモードレジスタ 0,1(SMR0,SMR1) ......487 SODR シリアル出力データレジスタ 0,1(SODR0,SODR1) ..........................................................................493 SSR シリアルステータスレジスタ 0,1(SSR0,SSR1) ..........................................................................489 TMRDH,TMRDL 16 ビットリロードレジスタ上位 , 下位 (TMRDH0,TMRDH1,TMRDL0,TMRDL1) ..........................................................................240 TMRH,TMRL 16 ビットタイマレジスタ上位 , 下位 (TMRH0,TMRH1,TMRL0,TMRL1) ............... 239 TMRRH,TMRRL 16 ビットデッドタイマレジスタ (TMRRH,TMRRL0 ∼ TMRRL2) ...................318 U UART UART 使用上の注意 ............................................ 521 UART での割込み要求の発生 ............................484 UART の EI2OS 機能 ............................................ 496 UART の機能 .........................................................478 UART の端子 .........................................................483 UART の端子のブロックダイヤグラム ............483 UART の動作 .........................................................508 UART のプログラム例 ........................................ 522 UART のブロックダイヤグラム ........................ 480 UART のボーレートの選択 ................................500 UART のレジスタ一覧 ........................................ 484 UART の割込み ..................................................... 495 UART の割込みと EI2OS .....................................496 W WDTC ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................220 WTIN1 出力状態 WTIN1 出力状態とレジスタ設定 .......................410 T TBTC タイムベースタイマ制御レジスタ (TBTC) .......209 TCCSH タイマ状態制御レジスタ , 上位バイト (TCCSH) ..........................................................................296 TCCSL タイマ状態制御レジスタ , 下位バイト (TCCSL) ..........................................................................299 TCDTH,TCDTL タイマデータレジスタ (TCDTH,TCDTL) ..........295 TCSR タイマ状態制御レジスタ (TCSR) .......................402 TMBRH, TMBRL タイマバッファレジスタ上位 , 下位 (TMBRH, TMBRL) ..........................................399 TMCSRH タイマ制御状態レジスタ上位 (TMCSRH0,TMCSRH1) ..................................235 TMCSRL タイマ制御状態レジスタ下位 (TMCSRL0,TMCSRL1) ...................................237 725 索引 あ アウトプットコンペアバッファレジスタ アウトプットコンペアバッファレジスタ (OCCPBH,OCCPBL0 ∼ OCCPBL5) ..............302 アウトプットコンペアレジスタ アウトプットコンペアレジスタ (OCCPH,OCCPL0 ∼ OCCPL5) ......................303 アキュムレータ アキュムレータ (A) ................................................42 アクセス空間 バンクレジスタとアクセス空間 ...........................35 アドレス一致検出機能 アドレス一致検出機能の概要 .............................586 アドレス一致検出機能の動作 .............................593 アドレス一致検出機能のプログラム例 .............598 アドレス一致検出機能のブロックダイヤグラム ..........................................................................587 アドレス一致検出機能のレジスタとリセット値の 一覧 ..................................................................588 修正プログラムを E2PROM に格納する場合の アドレス一致検出機能の動作 ......................596 アドレス引用指定 32 ビット汎用レジスタの下位 24 ビットアドレス 引用指定 ( 間接指定 ) .......................................34 アドレス指定 バンク方式によるアドレス指定とデフォルト空間 ............................................................................36 アドレス直接指定 オペランドによる 24 ビットアドレス直接指定 ............................................................................34 アドレッシング アドレッシング .....................................................662 間接アドレッシング .............................................671 直接アドレッシング .............................................664 い 位置検出 位置検出と16ビットリロードタイマアンダフロー 方式 ..................................................................424 位置検出の動作 .....................................................409 位置検出方式 .........................................................422 位置検出または 16 ビットリロードタイマアンダ フロー方式 ......................................................426 位置検出回路 位置検出回路のブロックダイヤグラム .............377 イベントカウントモード イベントカウントモード .....................................250 イベントカウントモード ( 外部クロックモード ) ..........................................................................229 イベントカウントモードのプログラム例 .........254 インターバルタイマ機能 インターバルタイマ機能 .....................................206 インターバルタイマ機能(タイムベースタイマ)の 動作 ..................................................................212 インプットキャプチャ状態制御レジスタ インプットキャプチャ状態制御レジスタ (ch.2,ch.3), 下位バイト (ICSL23) ...................312 インプットキャプチャ状態制御レジスタ (ch.2,ch.3), 上位バイト (ICSH23) ..................311 726 インプットキャプチャ状態制御レジスタ (ch.0,ch.1), 下位バイト (PICSL01) ................ 316 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ (IPCPH,IPCPL0 ∼ IPCPL3) ........................... 310 う ウォッチドッグタイマ ウォッチドッグタイマ使用上の注意 ................ 224 ウォッチドッグタイマの動作 ............................222 ウォッチドッグタイマのプログラム例 ............225 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................219 ウォッチドッグタイマ機能 ウォッチドッグタイマ機能 ................................218 ウォッチドッグタイマ制御レジスタ ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................220 お オペランド オペランドによる 24 ビットアドレス直接指定 ............................................................................34 か 外形寸法図 DIP-64P-M01 の外形寸法図 ..................................11 FPT-64P-M06 の外形寸法図 ..................................12 FPT-64P-M09 の外形寸法図 ..................................13 外部カウントクロック 選択された外部カウントクロック .................... 340 外部クロック 外部クロックによるボーレート ........................ 507 振動子と外部クロックの接続 ..............................89 外部クロックモード イベントカウントモード ( 外部クロックモード ) ..........................................................................229 外部リセット端子 外部リセット端子のブロックダイヤグラム ...... 71 外部割込み機能 外部割込み機能 ....................................................538 カウンタ カウンタの動作状態 ............................................ 243 カウンタ動作 カウンタ動作 ........................................................ 229 カウントクロック周期 カウントクロック周期と最大周期 .................... 465 拡張インテリジェント I/O サービス 拡張インテリジェント I/O サービス (EI2OS) ..........................................................................138 拡張インテリジェント I/O サービス (EI2OS) の 使用手順 .......................................................... 145 拡張インテリジェント I/O サービス (EI2OS) の 処理時間(1 回のデータ転送に要する時間) ..........................................................................146 拡張インテリジェント I/O サービス (EI2OS) の ステータスレジスタ (ISCS) .......................... 142 索引 拡張インテリジェント I/O サービス (EI2OS) の ディスクリプタ (ISD) の構成 .......................140 拡張インテリジェント I/O サービス (EI2OS) の 動作 ..................................................................139 拡張インテリジェント I/O サービス (EI2OS) の 動作フロー ......................................................144 拡張インテリジェント I/O サービス (EI2OS) の プログラム例 ..................................................152 間接アドレッシング 間接アドレッシング .............................................671 く クロック クロックの概要 .......................................................80 クロック供給機能 クロック供給機能 .........................................207, 213 クロック供給マップ クロック供給マップ ...............................................81 クロック選択レジスタ クロック選択レジスタ (CKSCR) ..........................84 クロック同期モード クロック同期モードでの動作 .............................514 クロック発生部 クロック発生部のブロックダイヤグラム ...........82 クロックモード クロックモード .......................................................93 クロックモードの切換え .....................................112 クロックモードの遷移 ...........................................86 け ゲートトリガ ゲートトリガ (PPG チャネル 0 の場合のみ ) ..........................................................................275 検出アドレス 検出アドレスの設定 .............................................593 検出レベル設定レジスタ 検出レベル設定レジスタ , 下位 (ELVRL) .........534 検出レベル設定レジスタ , 上位 (ELVRH) .........533 こ コマンドシーケンス コマンドシーケンス表 .........................................611 コモンレジスタバンクプリフィックス コモンレジスタバンクプリフィックス (CMR) ............................................................................60 コンディションコードレジスタ コンディションコードレジスタ (CCR) の構成 ............................................................................48 コンペアクリアバッファ コンペアクリアバッファ .....................................336 コンペアクリアバッファレジスタ コンペアクリアバッファレジスタ (CPCLRBH,CPCLRBL) ...................................294 コンペアクリアレジスタ コンペアクリアレジスタ (CPCLRH,CPCLRL) ..........................................................................294 コンペアクリアレジスタ上位 , 下位 (CPCRH, CPCRL) ............................................398 コンペア制御レジスタ コンペア制御レジスタ , 下位バイト (OCSL0,OCSL2,OCSL4) ................................. 307 コンペア制御レジスタ , 上位バイト (OCSH1,OCSH3,OCSH5) ............................... 304 さ 最小入力パルス幅 最小入力パルス幅 ................................................468 し システムスタックポインタ システムスタックポインタ (SSP) ........................ 46 実効アドレス 実効アドレスフィールド .................................... 680 実効アドレスフィールド 実効アドレスフィールド .................................... 663 実行サイクル 実行サイクル数 ....................................................678 実行サイクル数計算方法 .................................... 678 修正プログラム 修正プログラムを E2PROM に格納する場合の アドレス一致検出機能の動作 ...................... 596 受信割込み発生 受信割込み発生とフラグ設定のタイミング ..........................................................................497 出力状態 RTO0 ∼ RTO5 と GATE の出力状態 ................. 348 出力制御レジスタ 出力制御レジスタ , 下位 (OPCLR) .....................386 出力制御レジスタ , 上位 (OPCUR) .................... 384 出力データバッファレジスタ 出力データバッファレジスタ , 下位 (OPDBR0 ∼ OPDBRB) ..................................393 出力データバッファレジスタ , 上位 (OPDBR0 ∼ OPDBRB) ..................................391 出力データバッファレジスタの動作 ................ 415 出力データレジスタ 出力データレジスタ , 下位 (OPDRL) ................. 390 出力データレジスタ , 上位 (OPDRH) ................ 388 出力データレジスタ上位 , 下位 (OPDRH, OPDRL) ..........................................................................408 出力データレジスタのブロックダイヤグラム ..........................................................................407 出力データレジスタへのデータ転送動作 ........417 状態遷移図 状態遷移図 ............................................................ 109 消費電流 CPU 動作モードと消費電流 ..................................92 シリアル書込み MB90F462/MB90F462A/MB90F463A シリアル書込 み接続の基本構成 .......................................... 638 シリアルクロック入力周波数 発振クロック周波数とシリアルクロック入力周波 数 ......................................................................640 シリアル出力データレジスタ シリアル出力データレジスタ 0,1(SODR0,SODR1) ..........................................................................493 727 索引 シリアルステータスレジスタ シリアルステータスレジスタ 0,1(SSR0,SSR1) ..........................................................................489 シリアル制御レジスタ シリアル制御レジスタ 0,1(SCR0,SCR1) ............485 シリアル入力データレジスタ シリアル入力データレジスタ 0,1(SIDR0,SIDR1) ..........................................................................492 シリアルモードレジスタ シリアルモードレジスタ 0,1(SMR0,SMR1) ......487 シリアルライタ シリアルライタ対応 .............................................648 シングルチップモード シングルチップモード時の接続例 ( フラッシュ マイコンプログラマから電源を供給する場合 ) ..........................................................................643 シングルチップモード時の接続例 ( ユーザ電源を使用する場合 ) ......................641 振動子 振動子と外部クロックの接続 ...............................89 す スタック スタックの設定 .......................................................45 スタック動作 割込み処理開始時のスタック動作 .....................149 割込み処理からの復帰時のスタック動作 .........149 スタック領域 スタック領域 .........................................................150 スタンバイモード スタンバイモード ...................................................93 スタンバイモードでの動作状態 .........................101 スタンバイモードの設定 .....................................111 スタンバイモードへの遷移と割込み .................111 割込みによるスタンバイモードの解除 .............111 ストップモード 外部割込みによるストップモードの解除 .........112 ストップモードの解除 .........................................108 ストップモードへの遷移 .....................................107 スリープモード スリープモードの解除 .........................................103 スリープモードへの遷移 .....................................102 せ 製品一覧 MB90460/465 シリーズの製品一覧 ........................5 セクタ消去 フラッシュメモリのセクタ消去手順 .................627 フラッシュメモリのセクタ消去を一時停止する ..........................................................................629 フラッシュメモリのセクタ消去を再開する ..........................................................................630 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) ..................................................627 セクタ消去タイマフラグ セクタ消去タイマフラグ (DQ3) .........................619 専用ボーレートジェネレータ 専用ボーレートジェネレータによるボーレート ..........................................................................502 728 専用レジスタ 専用レジスタの構成 .............................................. 40 そ 送信割込み発生 送信割込み発生とフラグ設定のタイミング ..........................................................................499 双方向通信機能 双方向通信機能 ....................................................516 測定結果データ 測定結果データ ....................................................467 測定モード 測定モードと測定動作 ........................................ 469 ソフトウェアプルアップ抵抗 ソフトウェアプルアップ抵抗 ............................110 ソフトウェア割込み ソフトウェア割込みからの復帰 ........................ 136 ソフトウェア割込み動作 .................................... 137 ソフトウェア割込みの起動 ................................136 た タイマ機能 タイマ機能 ............................................................ 458 タイマクリア タイマクリア ................................................335, 463 タイマ周期 タイマ周期 ............................................................ 465 タイマ状態制御レジスタ タイマ状態制御レジスタ (TCSR) .......................402 タイマ状態制御レジスタ , 下位バイト (TCCSL) ..........................................................................299 タイマ状態制御レジスタ , 上位バイト (TCCSH) ..........................................................................296 タイマ制御状態レジスタ タイマ制御状態レジスタ下位 (TMCSRL0,TMCSRL1) ..................................237 タイマ制御状態レジスタ上位 (TMCSRH0,TMCSRH1) ..................................235 タイマ値 タイマ値とリロード値 ........................................ 464 タイマデータレジスタ タイマデータレジスタ (TCDTH,TCDTL) ......... 295 タイマとパルス幅測定 タイマとパルス幅測定の起動 / 停止 ................. 462 タイマバッファレジスタ タイマバッファレジスタ上位 , 下位 (TMBRH, TMBRL) .........................................399 タイマモード タイマモード ........................................................ 335 タイマモードの動作 ............................................ 352 タイマモード動作 タイマモード動作のフローチャート ................ 466 タイマ割込み タイマ割込み ........................................................ 338 タイミングダイヤグラム 16ビットタイマバッファ動作のタイミングダイヤ グラム .............................................................. 437 タイミングリミット超過フラグ タイミングリミット超過フラグ (DQ5) ............. 618 索引 タイムベースタイマ タイムベースタイマ使用上の注意 .....................215 タイムベースタイマの動作 .................................214 タイムベースタイマのプログラム例 .................216 タイムベースタイマのブロックダイヤグラム ..........................................................................208 タイムベースタイマ制御レジスタ タイムベースタイマ制御レジスタ (TBTC) .......209 タイムベースタイマモード タイムベースタイマモードの解除 .............106, 112 タイムベースタイマモードへの遷移 .................105 タイムベースタイマ割込み タイムベースタイマ割込み .................................211 タイムベースタイマ割込みと EI2OS .................211 ダイレクトページレジスタ ダイレクトページレジスタ (DPR) .......................53 多機能タイマ 多機能タイマの EI2OS 機能 ................................333 多機能タイマの端子 .............................................288 多機能タイマの動作 .............................................334 多機能タイマのブロックダイヤグラム .............284 多機能タイマ端子 多機能タイマ端子のブロックダイヤグラム ..........................................................................289 多バイト長オペランド 多バイト長オペランドの構成 ...............................37 多バイト長データ スタック上の多バイト長データの構成 ...............38 多バイト長データへのアクセス ...........................38 メモリ上の多バイト長データの格納状態 ...........37 単一測定モード 単一測定モードと連続測定モード .....................467 端子機能 I/O 端子と端子機能 ................................................14 端子配列図 端子配列図 (DIP-64P-M01) ....................................10 端子配列図 (FPT-64P-M06) ......................................8 端子配列図 (FPT-64P-M09) ......................................9 単発変換モード EI2OS を使用した場合の単発変換モードにおいて A/D 変換を行うためのプログラム例 ..........577 単発変換モード時の動作 .....................................570 ち 遅延割込み発生モジュール 遅延割込み発生モジュール使用上の注意 .........551 遅延割込み発生モジュールの概要 .....................546 遅延割込み発生モジュールの動作説明 .............550 遅延割込み発生モジュールのプログラム例 ..........................................................................552 遅延割込み発生モジュールのブロックダイヤグラ ム ......................................................................547 遅延割込み要求発生 / 解除レジスタ 遅延割込み要求発生 / 解除レジスタ (DIRR) ..........................................................................549 チップ消去 フラッシュメモリのデータを消去する ( チップ消去 ) ..................................................626 直接アドレッシング 直接アドレッシング .............................................664 つ 通信プリスケーラ制御レジスタ 通信プリスケーラ制御レジスタ 0,1(CDCR0,CDCR1) ........................................ 494 て 停止変換モード EI2OS を使用した場合の停止変換モードにおいて A/D 変換を行うためのプログラム例 ..........582 停止変換モード時の動作 .................................... 572 低消費電力制御回路 低消費電力制御回路のブロックダイヤグラム ............................................................................95 低消費電力モード制御レジスタ 低消費電力モード制御レジスタ (LPMCR) ......... 97 低消費電力モード制御レジスタへのアクセス ............................................................................99 ディスクリプタ 拡張インテリジェント I/O サービス (EI2OS) の ディスクリプタ (ISD) の構成 .......................140 データカウンタ データカウンタ (DCT) .........................................141 データ書込み制御ユニット データ書込み制御ユニットの動作 .................... 411 データ書込み制御ユニットのブロックダイヤ グラム .............................................................. 376 データポーリングフラグ データポーリングフラグ (DQ7) .........................615 デッドタイムタイマモード デッドタイムタイマモード時の動作 ................ 354 デバイス デバイス取扱い上の注意事項 ..............................24 デフォルト空間 バンク方式によるアドレス指定とデフォルト空間 ............................................................................36 と 動作モード 動作モード ............................................................ 156 動作モードの選択 ................................................461 特長 MB90460/465 シリーズの特長 ................................2 トグルビット 2 フラグ トグルビット 2 フラグ (DQ2) ............................. 620 トグルビットフラグ トグルビットフラグ (DQ6) ................................. 617 な 内部クロックモード 内部クロックモード ............................................ 228 内部クロックモード ( リロードモード ) の動作 ..........................................................................244 内部クロックモード ( ワンショットモード ) ..........................................................................247 内部クロックモードのプログラム例 ................ 253 729 索引 内部タイマ 内部タイマ (16 ビットリロードタイマ出力 ) に よるボーレート ..............................................505 に 入力制御レジスタ 入力制御レジスタ , 下位 (IPCLR) .......................396 入力制御レジスタ , 上位 (IPCUR) ......................394 の ノイズキャンセル機能 DTTI 端子ノイズキャンセル機能 ......................359 ノイズキャンセル制御レジスタ ノイズキャンセル制御レジスタ (NCCR) ..........400 ノイズ除去機能 ノイズ除去機能の動作 .........................................434 は ハードウェアシーケンスフラグ ハードウェアシーケンスフラグ .........................613 ハードウェア割込み ハードウェア割込み .............................................125 ハードウェア割込みからの復帰 .........................128 ハードウェア割込み使用手順 .............................131 ハードウェア割込み動作 .....................................129 ハードウェア割込みのアクティブ化 .................128 ハードウェア割込みの構造 .................................126 ハードウェア割込みの処理に要する時間 .........134 ハードウェア割込みの抑制 .................................126 波形シーケンサ 波形シーケンサ使用上の注意 .............................439 波形シーケンサの機能 .........................................368 波形シーケンサのブロックダイヤグラム .........373 波形ジェネレータ 波形ジェネレータ .................................................283 波形ジェネレータ使用上の注意 .........................361 波形ジェネレータのブロックダイヤグラム ..........................................................................287 波形ジェネレータのレジスタ .............................293 波形ジェネレータ割込み .....................................333 波形ジェネレータ割込みと EI2OS .....................333 波形制御レジスタ 波形制御レジスタ (SIGCR) .................................328 バスモード バスモード .............................................................156 バスモード設定ビット バスモード設定ビット .........................................158 発振安定待ち時間 発振安定待ち時間 ...........................................88, 112 発振安定待ち時間用タイマ機能 .........................213 リセット要因と発振安定待ち時間 .......................70 発振クロック周波数 発振クロック周波数とシリアルクロック入力 周波数 ..............................................................640 パッチ処理 プログラム修正のパッチ処理フロー .................597 バッファアドレスポインタ バッファアドレスポインタ (BAP) .....................142 730 パルス幅 / 周期 パルス幅 / 周期測定範囲 .....................................468 パルス幅 / 周期の算出 .........................................468 パルス幅測定 パルス幅測定動作のフローチャート ................ 471 パルス幅測定機能 パルス幅測定機能 ................................................460 バンクセレクトプリフィックス バンクセレクトプリフィックス (PCB,DTB,ADB,SPB) .......................................58 バンク方式 バンク方式によるアドレス指定とデフォルト空間 ............................................................................36 リニア方式とバンク方式のメモリ指定 ..............33 バンクレジスタ バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........ 54 バンクレジスタとアクセス空間 .......................... 35 汎用レジスタ 32 ビット汎用レジスタの下位 24 ビットアドレス 引用指定 ( 間接指定 ) ...................................... 34 汎用レジスタの構成 .............................................. 55 汎用レジスタ領域 汎用レジスタ領域とレジスタバンクポインタ (RP) ............................................................................50 ひ 非同期モード 非同期モードでの動作 ........................................ 510 ふ フラグ設定 受信割込み発生とフラグ設定のタイミング ..........................................................................497 送信割込み発生とフラグ設定のタイミング ..........................................................................499 フラグ変化抑止プリフィックス フラグ変化抑止プリフィックス (NCC) ..............61 フラッシュマイコンプログラマ シングルチップモード時の接続例 ( フラッシュ マイコンプログラマから電源を供給する場合 ) ..........................................................................643 最小限の接続例 ( フラッシュマイコンプログラマ から電源を供給する場合 ) ............................647 フラッシュマイコンプログラマとの最小限の 接続例 ( ユーザ電源を使用する場合 ) ........645 フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコンピュータ株式会社製 ) ..........................................................................640 フラッシュメモリ フラッシュメモリ書込み手順 ............................624 フラッシュメモリのセクタ消去手順 ................ 627 フラッシュメモリのセクタ消去を一時停止する ..........................................................................629 フラッシュメモリのセクタ消去を再開する ..........................................................................630 フラッシュメモリのデータを消去する ( チップ消去 ) ................................................. 626 フラッシュメモリの任意のデータを消去する ( セクタ消去 ) ................................................. 627 フラッシュメモリへデータを書き込む ............624 索引 フラッシュメモリを読出し / リセット状態にする ..........................................................................623 フラッシュメモリ書込み / 消去 フラッシュメモリ書込み / 消去 .........................606 フラッシュメモリ書込み / 消去の詳細説明 ..........................................................................622 フラッシュメモリ制御ステータスレジスタ フラッシュメモリ制御ステータスレジスタ (FMCS) .............................................................608 プリフィックスコード プリフィックスコード ...........................................57 プリフィックスコードと割込み抑止命令 ...........62 プリフィックスコードの連続 ...............................63 プログラム プログラムの実行 .................................................593 プログラムアドレス検出制御ステータスレジスタ プログラムアドレス検出制御ステータスレジスタ (PACSR) ...........................................................589 プログラムアドレス検出レジスタ プログラムアドレス検出レジスタ (PADR0H,M,L,PADR1H,M,L) ........................591 プログラムアドレス検出レジスタの機能 .........592 プログラムカウンタ プログラムカウンタ (PC) ......................................52 プログラム修正 プログラム修正のパッチ処理フロー .................597 プロセッサステータス プロセッサステータス (PS) の構成 .....................47 ブロックダイヤグラム 16 ビット PPG タイマ端子のブロックダイヤ グラム ..............................................................261 16 ビット PPG タイマのブロックダイヤグラム ..........................................................................259 16ビットアウトプットコンペアのブロックダイヤ グラム ..............................................................286 16ビットインプットキャプチャのブロックダイヤ グラム ..............................................................286 16 ビットタイマのブロックダイヤグラム ........375 16 ビットフリーランタイマのブロックダイヤ グラム ..............................................................285 16 ビットリロードタイマ端子のブロックダイヤ グラム ..............................................................233 16ビットリロードタイマのブロックダイヤグラム ..........................................................................231 8/10 ビット A/D コンバータの端子のブロック ダイヤグラム ..................................................559 8/10 ビット A/D コンバータのブロックダイヤ グラム ..............................................................556 DTP/ 外部割込みのブロックダイヤグラム .......527 MB90460/465 シリーズの全体ブロックダイヤ グラム ..................................................................7 PWC0 タイマ端子のブロックダイヤグラム ..........................................................................446 PWC1 タイマ端子のブロックダイヤグラム ..........................................................................447 PWC タイマのブロックダイヤグラム ...............445 ROM ミラー機能選択モジュールのブロック ダイヤグラム ..................................................600 UART の端子のブロックダイヤグラム .............483 UART のブロックダイヤグラム .........................480 アドレス一致検出機能のブロックダイヤグラム ..........................................................................587 位置検出回路のブロックダイヤグラム .............377 ウォッチドッグタイマのブロックダイヤグラム ..........................................................................219 外部リセット端子のブロックダイヤグラム ...... 71 クロック発生部のブロックダイヤグラム ..........82 出力データレジスタのブロックダイヤグラム ..........................................................................407 タイムベースタイマのブロックダイヤグラム ..........................................................................208 多機能タイマ端子のブロックダイヤグラム ..........................................................................289 多機能タイマのブロックダイヤグラム ............284 遅延割込み発生モジュールのブロックダイヤ グラム .............................................................. 547 低消費電力制御回路のブロックダイヤグラム ............................................................................95 データ書込み制御ユニットのブロックダイヤ グラム .............................................................. 376 波形シーケンサのブロックダイヤグラム ........373 波形ジェネレータのブロックダイヤグラム ..........................................................................287 ポート 0 の端子のブロックダイヤグラム ........166 ポート 1 の端子のブロックダイヤグラム ........172 ポート 2 の端子のブロックダイヤグラム ........178 ポート 3 の端子のブロックダイヤグラム ........183 ポート 4 の端子のブロックダイヤグラム ........188 ポート 5 の端子のブロックダイヤグラム ........193 ポート 6 の端子のブロックダイヤグラム ........199 マルチパルスジェネレータ端子のブロックダイヤ グラム .............................................................. 380 マルチパルスジェネレータのブロックダイヤ グラム .............................................................. 372 分周比制御レジスタ 分周比制御レジスタ (DIV0,DIV1) .....................455 ほ ポート 0 ポート 0 の構成 ....................................................165 ポート 0 の端子 ....................................................165 ポート 0 の端子のブロックダイヤグラム ........166 ポート 0 の動作 ....................................................169 ポート 0 のレジスタ ............................................ 166 ポート 0 のレジスタの機能 ................................167 ポート 1 ポート 1 の構成 ....................................................171 ポート 1 の端子 ....................................................171 ポート 1 の端子のブロックダイヤグラム ........172 ポート 1 の動作 ....................................................175 ポート 1 のレジスタ ............................................ 172 ポート 1 のレジスタの機能 ................................173 ポート 2 ポート 2 の構成 ....................................................177 ポート 2 の端子 ....................................................177 ポート 2 の端子のブロックダイヤグラム ........178 ポート 2 の動作 ....................................................180 ポート 2 のレジスタ ............................................ 178 ポート 2 のレジスタの機能 ................................179 ポート 3 ポート 3 の構成 ....................................................182 ポート 3 の端子 ....................................................182 ポート 3 の端子のブロックダイヤグラム ........183 ポート 3 の動作 ....................................................185 731 索引 ポート 3 のレジスタ .............................................183 ポート 3 のレジスタの機能 .................................184 ポート 4 ポート 4 の構成 .....................................................187 ポート 4 の端子 .....................................................187 ポート 4 の端子のブロックダイヤグラム .........188 ポート 4 の動作 .....................................................190 ポート 4 のレジスタ .............................................188 ポート 4 のレジスタの機能 .................................189 ポート 5 ポート 5 の構成 .....................................................192 ポート 5 の端子 .....................................................192 ポート 5 の端子のブロックダイヤグラム .........193 ポート 5 の動作 .....................................................196 ポート 5 のレジスタ .............................................193 ポート 5 のレジスタの機能 .................................194 ポート 6 ポート 6 の構成 .....................................................198 ポート 6 の端子 .....................................................198 ポート 6 の端子のブロックダイヤグラム .........199 ポート 6 の動作 .....................................................201 ポート 6 のレジスタ .............................................199 ポート 6 のレジスタの機能 .................................200 ボーレート UART のボーレートの選択 .................................500 外部クロックによるボーレート .........................507 専用ボーレートジェネレータによるボーレート ..........................................................................502 内部タイマ (16 ビットリロードタイマ出力 ) に よるボーレート ..............................................505 ま マシンクロック マシンクロック .......................................................87 マスタ / スレーブ型通信機能 マスタ / スレーブ型通信機能 .............................518 マルチパルスジェネレータ マルチパルスジェネレータ端子のブロックダイヤ グラム ..............................................................380 マルチパルスジェネレータの 16 ビットタイマの 使用 ..................................................................438 マルチパルスジェネレータの 16 ビットタイマの 動作ダイヤグラム ..........................................438 マルチパルスジェネレータの EI2OS 機能 ........406 マルチパルスジェネレータの端子 .....................379 マルチパルスジェネレータのプログラム例 ..........................................................................441 マルチパルスジェネレータのブロックダイヤ グラム ..............................................................372 マルチパルスジェネレータのレジスタ .............381 マルチパルスジェネレータの割込みと EI2OS ..........................................................................406 マルチパルスジェネレータの割込み要因 .........405 マルチパルス割込み マルチパルス割込み .............................................404 め 命令 命令の種類 .............................................................661 命令マップの構造 .................................................699 732 命令一覧表 F2MC-16LX 命令一覧表 .......................................685 メインクロックモード メインクロックモードと PLL クロックモード ............................................................................86 メモリ空間 ROM ミラー機能の有効 / 無効時のメモリ空間 ..........................................................................601 メモリ空間 .............................................................. 29 メモリ指定 リニア方式とバンク方式のメモリ指定 ..............33 メモリマップ E2PROM のメモリマップ .................................... 594 メモリマップ .......................................................... 31 も モード設定 モード設定 ............................................................ 156 モード端子 モード端子 .............................................................. 72 モード端子 (MD2 ∼ MD0) ..................................157 モード端子とモードデータの関係 .................... 159 モードデータ モード端子とモードデータの関係 .................... 159 モードデータの取込み .......................................... 72 モードデータ読出し後の端子状態 ...................... 77 モードデータレジスタ モードデータレジスタ ........................................ 158 ゆ ユーザスタックポインタ ユーザスタックポインタ (USP) ...........................46 ユーザ電源 シングルチップモード時の接続例 ( ユーザ電源を 使用する場合 ) ................................................641 フラッシュマイコンプログラマとの最小限の 接続例 ( ユーザ電源を使用する場合 ) ........645 り リセット リセットによる各端子の状態 ..............................77 リセット動作 リセット動作の概要 .............................................. 72 リセット要因 リセット要因 .......................................................... 68 リセット要因と発振安定待ち時間 ...................... 70 リセット要因フラグビット リセット要因フラグビット ..................................74 リセット要因フラグビットとリセット要因の対応 ............................................................................75 リセット要因フラグビットの注意事項 ..............75 リニア方式 リニア方式とバンク方式のメモリ指定 ..............33 リロード値 タイマ値とリロード値 ........................................ 464 リロード動作モード リロード動作モード ............................................ 464 索引 リロードモード 内部クロックモード ( リロードモード ) の動作 ..........................................................................244 れ 例外処理 例外処理 .................................................................148 レジスタ 16 ビットアウトプットコンペアのレジスタ ..........................................................................291 16 ビットインプットキャプチャのレジスタ ..........................................................................292 16 ビットタイマレジスタ上位 , 下位 (TMRH0,TMRH1, TMRL0,TMRL1) ..............239 16 ビットデッドタイマ制御レジスタ , 下位バイト (DTCR0) ...........................................................319 16 ビットデッドタイマ制御レジスタ , 下位バイト (DTCR2) ...........................................................325 16 ビットデッドタイマ制御レジスタ , 上位バイト (DTCR1) ...........................................................322 16 ビットデッドタイマレジスタ (TMRRH, TMRRL0 ∼ TMRRL2) ..................318 16 ビットフリーランタイマのレジスタ ............290 16 ビットリロードレジスタ上位 , 下位 (TMRDH0,TMRDH1,TMRDL0,TMRDL1) ..........................................................................240 A/D 制御ステータスレジスタ 0(ADCS0) ..........564 A/D 制御ステータスレジスタ 1(ADCS1) ..........561 A/D データレジスタ (ADCR0,ADCR1) ..............567 DTP/ 外部割込み許可レジスタ (ENIR) ..............531 DTP/ 外部割込み要因レジスタ (EIRR) ..............530 I/O ポート関連のレジスタ ..................................164 PPG 周期設定バッファレジスタ (PCSRH,PCSRL0 ∼ PCSRL2) ........................265 PPG 出力制御 / インプットキャプチャ状態制御 レジスタ (ch.0, ch.1), 上位バイト (PICSH01 ..........................................................................314 PPG 状態制御レジスタ , 下位バイト (PCNTL0 ∼ PCNTL2) ....................................269 PPG 状態制御レジスタ , 上位バイト (PCNTH0 ∼ PCNTH2) ...................................267 PPG ダウンカウンタレジスタ (PDCRH,PDCRL0 ∼ PDCRL2) ......................264 PPG デューティ設定バッファレジスタ (PDUTH,PDUTL0 ∼ PDUTL2) ......................266 PWC 状態制御レジスタ , 下位バイト (PWCSL0,PWCSL1) ........................................452 PWC 状態制御レジスタ , 上位バイト (PWCSH0,PWCSH1) .......................................449 ROM ミラー機能選択モジュールレジスタ (ROMM) ...........................................................602 アウトプットコンペアバッファレジスタ (OCCPBH,OCCPBL0 ∼ OCCPBL5) ..............302 アウトプットコンペアレジスタ (OCCPH,OCCPL0 ∼ OCCPL5) ......................303 インプットキャプチャ状態制御レジスタ (ch.0,ch.1), 下位バイト (PICSL01) .................316 インプットキャプチャ状態制御レジスタ (ch.2,ch.3), 下位バイト (ICSL23) ...................312 インプットキャプチャ状態制御レジスタ (ch.2,ch.3), 上位バイト (ICSH23) ..................311 インプットキャプチャデータレジスタ (IPCPH,IPCPL0 ∼ IPCPL3) ........................... 310 ウォッチドッグタイマ制御レジスタ (WDTC) ..........................................................................220 クロック選択レジスタ (CKSCR) .......................... 84 検出レベル設定レジスタ , 下位 (ELVRL) ......... 534 検出レベル設定レジスタ , 上位 (ELVRH) ........533 コンディションコードレジスタ (CCR) の構成 ............................................................................48 コンペアクリアバッファレジスタ (CPCLRBH,CPCLRBL) ..................................294 コンペアクリアレジスタ (CPCLRH,CPCLRL) ..........................................................................294 コンペアクリアレジスタ上位 , 下位 (CPCRH, CPCRL) ............................................ 398 コンペア制御レジスタ , 下位バイト (OCSL0,OCSL2,OCSL4) ................................. 307 コンペア制御レジスタ , 上位バイト (OCSH1,OCSH3,OCSH5) ............................... 304 出力制御レジスタ , 下位 (OPCLR) .....................386 出力制御レジスタ , 上位 (OPCUR) .................... 384 出力データバッファレジスタ , 下位 (OPDBR0 ∼ OPDBRB) ..................................393 出力データバッファレジスタ , 上位 (OPDBR0 ∼ OPDBRB) ..................................391 出力データレジスタ , 下位 (OPDRL) ................. 390 出力データレジスタ , 上位 (OPDRH) ................ 388 出力データレジスタ上位 , 下位 (OPDRH, OPDRL) ..........................................................................408 シリアル出力データレジスタ 0,1(SODR0,SODR1) ..........................................................................493 シリアルステータスレジスタ 0,1(SSR0,SSR1) ..........................................................................489 シリアル制御レジスタ 0,1(SCR0,SCR1) ............485 シリアル入力データレジスタ 0,1(SIDR0,SIDR1) ..........................................................................492 シリアルモードレジスタ 0,1(SMR0,SMR1) ..........................................................................487 タイマ状態制御レジスタ (TCSR) .......................402 タイマ状態制御レジスタ , 下位バイト (TCCSL) ........................................................................... 299 タイマ状態制御レジスタ , 上位バイト (TCCSH) ..........................................................................296 タイマ制御状態レジスタ下位 (TMCSRL0,TMCSRL1) ..................................237 タイマ制御状態レジスタ上位 (TMCSRH0,TMCSRH1) ..................................235 タイマデータレジスタ (TCDTH,TCDTL) ......... 295 タイマバッファレジスタ上位 , 下位 (TMBRH, TMBRL) .........................................399 タイムベースタイマ制御レジスタ (TBTC) ...... 209 ダイレクトページレジスタ (DPR) .......................53 遅延割込み要求発生 / 解除レジスタ (DIRR) ..........................................................................549 通信プリスケーラ制御レジスタ 0,1 (CDCR0,CDCR1) .............................................494 低消費電力モード制御レジスタ (LPMCR) ......... 97 入力制御レジスタ , 下位 (IPCLR) ...................... 396 入力制御レジスタ , 上位 (IPCUR) ...................... 394 ノイズキャンセル制御レジスタ (NCCR) ..........400 波形ジェネレータのレジスタ ............................293 波形制御レジスタ (SIGCR) ................................. 328 バンクレジスタ (PCB,DTB,USB,SSB,ADB) ........ 54 733 索引 フラッシュメモリ制御ステータスレジスタ (FMCS) .............................................................608 プログラムアドレス検出制御ステータスレジスタ (PACSR) ...........................................................589 プログラムアドレス検出レジスタ (PADR0H,M,L,PADR1H,M,L) ........................591 分周比制御レジスタ (DIV0,DIV1) ......................455 ポート 0 のレジスタ .............................................166 ポート 0 のレジスタの機能 .................................167 ポート 1 のレジスタ .............................................172 ポート 1 のレジスタの機能 .................................173 ポート 2 のレジスタ .............................................178 ポート 2 のレジスタの機能 .................................179 ポート 3 のレジスタ .............................................183 ポート 3 のレジスタの機能 .................................184 ポート 4 のレジスタ .............................................188 ポート 4 のレジスタの機能 .................................189 ポート 5 のレジスタ .............................................193 ポート 5 のレジスタの機能 .................................194 ポート 6 のレジスタ .............................................199 ポート 6 のレジスタの機能 .................................200 モードデータレジスタ .........................................158 割込み制御レジスタ (ICR) ..................................122 割込み制御レジスタ (ICR00 ∼ ICR15) ..............120 割込みレベルマスクレジスタ (ILM) ....................51 レジスタバンク レジスタバンク .......................................................56 レジスタバンクポインタ 汎用レジスタ領域とレジスタバンクポインタ (RP) ............................................................................50 レジスタバンクポインタ (RP) ..............................50 連続測定モード 単一測定モードと連続測定モード .....................467 連続変換モード EI2OS を使用した場合の連続変換モードにおいて A/D 変換を行うためのプログラム例 ..........579 連続変換モード時の動作 .....................................571 わ 割込み 複数の割込み .........................................................132 割込み動作 .............................................................115 割込みの種類と機能 .............................................114 734 割込み処理 割込み処理 ............................................................ 130 割込み処理開始時のスタック動作 .................... 149 割込み処理からの復帰時のスタック動作 ........149 割込み処理のプログラム例 ................................151 割込み制御レジスタ 割込み制御レジスタ ............................................ 119 割込み制御レジスタ (ICR) ..................................122 割込み制御レジスタ (ICR00 ∼ ICR15) ............. 120 割込み制御レジスタの機能 ........................119, 122 割込み要因 , 割込みベクタおよび 割込み制御レジスタ ...................................... 117 割込み番号 割込み番号 ............................................................ 547 割込みベクタ 割込みベクタ ........................................................ 116 割込み要因 , 割込みベクタおよび 割込み制御レジスタ ...................................... 117 割込みマスク 割込みマスク機能 ................................................338 割込み要因 割込み要因 , 割込みベクタおよび 割込み制御レジスタ ...................................... 117 割込み要求 割込み要求の生成 ........................................465, 469 割込み抑止命令 プリフィックスコードと割込み抑止命令 ..........62 割込みレベルマスクレジスタ 割込みレベルマスクレジスタ (ILM) ................... 51 ワンショット位置検出 ワンショット位置検出と16ビットリロードタイマ アンダフロー方式 .......................................... 429 ワンショット位置検出方式 ................................428 ワンショット位置検出または 16 ビットリロード タイマアンダフロー方式 ..............................430 ワンショット動作モード ワンショット動作モード .................................... 464 ワンショットモード 内部クロックモード ( ワンショットモード ) ..........................................................................247 ワンショットモード (PCNTH レジスタの MDSE:bit13=1) ............274 CM44-10120-4 富士通マイクロエレクトロニクス • CONTROLLER MANUAL F2MC-16LX 16 ビット・マイクロコントローラ MB90460/465 シリーズ ハードウェアマニュアル 2008 年 8 月 第 4 版発行 発行 富士通マイクロエレクトロニクス株式会社 編集 マーケティング統括部 ビジネス推進部