Comments
Description
Transcript
Manual
本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通半導体デバイス CONTROLLER MANUAL CM71-10121-3 FR60 32 ビット・マイクロコントローラ MB91350A Series ハードウェアマニュアル FR60 32 ビット・マイクロコントローラ MB91350A Series ハードウェアマニュアル 開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。 『Check Sheet』は , 下記サポートページに掲載されています。 URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html 『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項 目をリストにしたものです。 富士通株式会社 はじめに ■ 本書の目的と対象読者 MB91350A シリーズは , 32 ビット高性能 RISC CPU をコアとした FR30/40 ファミリ CPU をベースに , バスアクセスの強化を行った FR60 ファミリです。豊富な周辺リソースを 内蔵したシングルチップ指向のマイクロコントローラで , 高性能 / 高速な CPU 処理を 要求される組込み制御用途に最適な仕様になっています。 本書は実際にこの MB91350A シリーズを使用して製品を開発される技術者の方を対照 に , MB91350A シリーズの機能や動作について解説したものです。本書をご一読くだ さい。なお , 各種命令の詳細については , 『インストラクション・マニュアル』をご参 照ください。 FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。 ■ 商標 本書に記載されている社名および製品名などの固有名詞は、各社の商標または登録商 標です。 ■ ライセンス 本製品には,お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使 用されることを条件に,Philips 社 I2C 特許がライセンスされております。 Purchase of Fujitsu I2C components conveys a license under the Philips I2C Patent Rights to use,these components in an I2C system provided that the system conforms to the I2C Standard Specification as defined by Philips. ■ 本書の全体構成 本書は , 以下に示す章 , および付録から構成されています。 第 1 章 概要 この章では , MB91350A シリーズの特長 , ブロックダイヤグラム , 外形寸法など全体 を知るための基本的なことについて説明します。 第 2 章 デバイスの取扱いについて この章では , デバイスを使用するときの注意事項について説明します。 第 3 章 CPU および制御部 この章では , MB91350A シリーズの CPU コアの機能を知るために , アーキテクチャ, 仕様 , 命令などの基本的なことについて説明します。 第 4 章 外部バスインタフェース この章では , 外部バスインタフェースの基本事項 , レジスタ構成 / 機能 , バス動作 , バスタイミングおよびレジスタの設定手順について説明します。 i 第 5 章 I/O ポート この章では , I/O ポートの概要 , レジスタの構成 , および機能について説明します。 第 6 章 8/16 ビットアップダウンカウンタ / タイマ・U-TIMER この章では , 8/16 ビットアップダウンカウンタ / タイマおよび U-TIMER の概要 , レ ジスタの構成 / 機能 , および動作について説明します。 第 7 章 16 ビットフリーランタイマ / リロードタイマ この章では , 16 ビットフリーランタイマおよび 16 ビットリロードタイマの概要 , レ ジスタの構成 / 機能 , および動作について説明します。 第 8 章 PPG タイマ この章では , PPG (Programable Pulse Generator) タイマの概要 , レジスタの構成 / 機能 , および動作について説明します。 第 9 章 割込みコントローラ この章では , 割込みコントローラの概要 , レジスタの構成 / 機能 , および動作につい て説明します。 第 10 章 外部割込み /NMI 制御 この章では , 外部割込み /NMI 制御部の概要 , レジスタの構成 / 機能 , および外部割 込み /NMI 制御部の動作について説明します。 第 11 章 REALOA 関連ハード この章では , 遅延割込みモジュールおよびビットサーチモジュールの概要 , レジス タ構成 / 機能 , および動作について説明します。 第 12 章 A/D コンバータ ( 直並列型 ) この章では , A/D コンバータの概要 , レジスタの構成 / 機能 , および A/D コンバータ の動作について説明します。 第 13 章 8 ビット D/A コンバータ この章では , 8 ビット D/A コンバータの概要 , レジスタの構成 / 機能 , および動作に ついて説明します。 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア この章では , UART・SIO・インプットキャプチャ・アウトプットコンペアの概要 , レジスタの構成 / 機能 , および動作について説明します。 第 15 章 I2C インタフェース この章では , I2C インタフェースの概要 , レジスタの構成 / 機能 , および動作につい て説明します。 第 16 章 DMAC (DMA コントローラ ) この章では , DMAC の概要 , レジスタの構成 / 機能 , および DMAC の動作について 説明します。 第 17 章 フラッシュメモリ この章では , フラッシュメモリの概要 , レジスタの構成 / 機能 , および動作について 説明します。 ii 第 18 章 MB91F353A/F355A/F356B/F357B シリアル書込み接続 この章では , MB91F353A/F355A/F356B/F357B 書込み基本構成 , シリアルオンボード 書込みに使用する端子 , シリアル書込み接続例 , およびフラッシュマイコンプログ ラマシステム構成について説明します。 第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) この章では内蔵 RAM ( データ ) および内蔵 RAM ( 命令実行可能 ) アクセス制限機 能の概要 , レジスタの構成 / 機能 , および動作について説明します。 付録 付録として , I/O マップ , 割込みベクタ , 各 CPU ステートにおける端子状態 , および 命令一覧を記載しています。 iii • • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ い。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ ては , 当社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性 が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。 ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ い。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関 連法規等の規制をご確認の上 , 必要な手続きをおとりください。 本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。 Copyright ©2003-2007 FUJITSU LIMITED All rights reserved. iv 目次 第1章 1.1 1.2 1.3 1.4 1.5 1.6 概要 ............................................................................................................ 1 特長 ........................................................................................................................................ 2 ブロックダイヤグラム............................................................................................................ 7 外形寸法図............................................................................................................................ 11 端子配列図............................................................................................................................ 13 端子機能一覧 ........................................................................................................................ 15 入出力回路形式 .................................................................................................................... 26 第2章 デバイスの取扱いについて ...................................................................... 29 2.1 デバイス取扱い上の注意 ...................................................................................................... 30 2.1.1 C コンパイラ (fcc911) ................................................................................................ 36 2.1.2 アセンブラ (fasm911) ................................................................................................ 39 2.1.3 リンカ (flnk911).......................................................................................................... 41 2.1.4 デバッガ (sim911, eml911, mon911) ......................................................................... 42 第3章 CPU および制御部 ................................................................................... 43 3.1 メモリ空間............................................................................................................................ 44 3.2 内部アーキテクチャ ............................................................................................................. 47 3.2.1 内部アーキテクチャ ................................................................................................... 48 3.2.2 命令概要 ..................................................................................................................... 52 3.3 プログラミング・モデル ...................................................................................................... 54 3.3.1 汎用レジスタ .............................................................................................................. 55 3.3.2 専用レジスタ .............................................................................................................. 56 3.4 データ構造............................................................................................................................ 62 3.5 メモリマップ ........................................................................................................................ 64 3.6 分岐命令 ............................................................................................................................... 65 3.6.1 遅延スロット付き動作 ............................................................................................... 66 3.6.2 遅延スロットなし動作 ............................................................................................... 68 3.7 EIT ( 例外・割込み・トラップ ) ........................................................................................... 69 3.7.1 EIT の割込みレベル.................................................................................................... 70 3.7.2 ICR (Interrupt Control Register).................................................................................. 72 3.7.3 SSP (System Stack Pointer)....................................................................................... 73 3.7.4 3.7.5 割込みスタック .......................................................................................................... 74 TBR (Table Base Register) ........................................................................................ 75 3.7.6 EIT ベクタテーブル.................................................................................................... 76 3.7.7 多重 EIT 処理.............................................................................................................. 79 3.7.8 動作 ............................................................................................................................ 81 3.8 動作モード............................................................................................................................ 85 3.8.1 バスモード ................................................................................................................. 86 3.8.2 モード設定 ................................................................................................................. 87 3.9 リセット ( デバイス初期化 ) ................................................................................................. 89 3.9.1 リセットレベル .......................................................................................................... 90 3.9.2 リセット要因 .............................................................................................................. 91 3.9.3 リセットシーケンス ................................................................................................... 93 3.9.4 発振安定待ち時間....................................................................................................... 94 v 3.9.5 リセット動作モード ................................................................................................... 96 3.10 クロック生成制御 ................................................................................................................. 98 3.10.1 PLL 制御 ..................................................................................................................... 99 3.10.2 発振安定待ち・PLL ロック待ち時間........................................................................ 101 3.10.3 クロック分配 ............................................................................................................ 103 3.10.4 クロック分周 ............................................................................................................ 105 3.10.5 クロック生成制御部のブロックダイヤグラム.......................................................... 106 3.10.6 クロック生成制御部のレジスタ詳細説明................................................................. 107 3.10.7 クロック制御部が持つ周辺回路 ............................................................................... 122 3.11 デバイス状態制御 ............................................................................................................... 126 3.11.1 デバイス状態と各遷移 ............................................................................................. 127 3.11.2 低消費電力モード..................................................................................................... 131 3.12 時計タイマ.......................................................................................................................... 136 3.13 メイン発振安定待ちタイマ................................................................................................. 142 3.14 周辺停止制御 ...................................................................................................................... 147 第4章 外部バスインタフェース........................................................................ 151 4.1 外部バスインタフェースの特長 ......................................................................................... 152 4.2 外部バスインタフェースのレジスタ .................................................................................. 156 4.2.1 ASR0 ∼ ASR3 (Area Select Register) ..................................................................... 157 4.2.2 ACR0 ∼ ACR7 (Area Configuration Register) ......................................................... 158 4.2.3 AWR0 ∼ AWR7 (Area Wait Register)...................................................................... 164 4.2.4 IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) ..................................................... 170 4.2.5 CSER (Chip Select Enable register)......................................................................... 172 4.2.6 TCR (Terminal and timing Control Register) ............................................................ 173 4.3 チップセレクト領域 ........................................................................................................... 175 4.4 エンディアンとバスアクセス ............................................................................................. 176 4.4.1 データバス幅と制御信号との関係............................................................................ 177 4.4.2 ビッグエンディアンのバスアクセス ........................................................................ 178 4.4.3 リトルエンディアンのバスアクセス ........................................................................ 183 4.4.4 外部アクセス ............................................................................................................ 187 4.5 通常バスインタフェース .................................................................................................... 191 4.6 アドレス / データマルチプレックスインタフェース.......................................................... 201 4.7 プリフェッチ動作 ............................................................................................................... 205 4.8 DMA アクセス .................................................................................................................... 209 4.9 バスアービトレーション .................................................................................................... 215 4.10 レジスタ設定手順 ............................................................................................................... 217 第5章 5.1 5.2 I/O ポート............................................................................................... 219 I/O ポートの概要 ................................................................................................................ 220 I/O ポートのレジスタ ......................................................................................................... 222 第6章 8/16 ビットアップダウンカウンタ / タイマ・U-TIMER ........................ 231 6.1 8/16 ビットアップダウンカウンタ / タイマ ....................................................................... 232 6.1.1 8/16 ビットアップダウンカウンタ / タイマの概要 .................................................. 233 6.1.2 8/16 ビットアップダウンカウンタ / タイマのレジスタ ........................................... 238 6.1.3 8/16 ビットアップダウンカウンタ / タイマの動作説明 ........................................... 244 6.2 U-TIMER............................................................................................................................. 252 6.2.1 U-TIMER の概要....................................................................................................... 253 vi 6.2.2 6.2.3 第7章 U-TIMER のレジスタ................................................................................................ 254 U-TIMER の動作説明................................................................................................ 257 16 ビットフリーランタイマ・16 ビットリロードタイマ ...................... 259 7.1 16 ビットフリーランタイマ ............................................................................................... 260 7.1.1 16 ビットフリーランタイマの構造 .......................................................................... 261 7.1.2 16 ビットフリーランタイマのレジスタ ................................................................... 262 7.1.3 16 ビットフリーランタイマの動作説明 ................................................................... 266 7.2 16 ビットリロードタイマ................................................................................................... 269 7.2.1 16 ビットリロードタイマの構造.............................................................................. 270 7.2.2 16 ビットリロードタイマのレジスタ....................................................................... 272 7.2.3 16 ビットリロードレジスタの動作説明 ................................................................... 275 第8章 PPG タイマ ............................................................................................ 279 8.1 PPG タイマの概要.............................................................................................................. 280 8.2 PPG タイマのレジスタ ...................................................................................................... 283 8.2.1 コントロールステータスレジスタ (PCNH/PCNL) ................................................... 284 8.2.2 PPG 周期設定レジスタ (PCSR) ............................................................................... 287 8.2.3 PPG デューティ設定レジスタ (PDUT) .................................................................... 288 8.2.4 PPG タイマレジスタ (PTMR) .................................................................................. 289 8.2.5 ジェネラルコントロールレジスタ 10 (GCN10) ....................................................... 290 8.2.6 ジェネラルコントロールレジスタ 20 (GCN20) ....................................................... 292 8.3 PPG タイマの動作説明 ...................................................................................................... 293 8.3.1 PWM 動作タイミングチャート ................................................................................ 294 8.3.2 ワンショット動作タイミングチャート .................................................................... 295 8.3.3 割込み要因とタイミングチャート (PPG 出力は , 通常極性 )................................... 296 8.3.4 PPG 出力オール "L" またはオール "H" の出力方法例............................................... 297 8.3.5 ジェネラルコントロールレジスタを使った複数チャネル起動 ................................ 298 第9章 割込みコントローラ............................................................................... 299 9.1 割込みコントローラの概要................................................................................................. 300 9.2 割込みコントローラのレジスタ ......................................................................................... 303 9.2.1 割込み制御レジスタ (ICR)........................................................................................ 304 9.2.2 ホールドリクエスト取下げ要求レジスタ (HRCL).................................................... 305 9.3 割込みコントローラの動作説明 ......................................................................................... 306 第 10 章 外部割込み・NMI 制御部 ....................................................................... 313 10.1 外部割込み・NMI 制御部の概要 ......................................................................................... 314 10.2 外部割込み・NMI 制御部のレジスタ.................................................................................. 316 10.2.1 割込み許可レジスタ (ENIRn: ENable Interrupt Request Register) .......................... 317 10.2.2 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register).................. 318 10.2.3 外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register) ................. 319 10.3 外部割込み・NMI 制御部の動作説明.................................................................................. 320 第 11 章 REALOS 関連ハード ............................................................................. 323 11.1 遅延割込みモジュール........................................................................................................ 324 11.1.1 遅延割込みモジュールの概要................................................................................... 325 11.1.2 遅延割込みモジュールのレジスタ............................................................................ 326 11.1.3 遅延割込みモジュールの動作説明............................................................................ 327 vii 11.2 ビットサーチモジュール .................................................................................................... 328 11.2.1 ビットサーチモジュールの概要 ............................................................................... 329 11.2.2 ビットサーチモジュールのレジスタ ........................................................................ 330 11.2.3 ビットサーチモジュールの動作説明 ........................................................................ 332 第 12 章 A/D コンバータ ...................................................................................... 335 12.1 A/D コンバータの概要 ........................................................................................................ 336 12.2 A/D コンバータのレジスタ................................................................................................. 338 12.2.1 コントロール・ステータスレジスタ (ADCS1)......................................................... 339 12.2.2 コントロール・ステータスレジスタ (ADCS2)......................................................... 341 12.2.3 変換時間設定レジスタ (ADCT) ................................................................................ 343 12.2.4 データレジスタ (ADTHx, ADTLx) ............................................................................ 345 12.3 A/D コンバータの動作説明................................................................................................. 346 第 13 章 8 ビット D/A コンバータ........................................................................ 349 13.1 8 ビット D/A コンバータの概要 ......................................................................................... 350 13.2 8 ビット D/A コンバータのレジスタ .................................................................................. 352 13.3 8 ビット D/A コンバータの動作説明 .................................................................................. 354 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア ............ 355 14.1 UART .................................................................................................................................. 356 14.1.1 UART の特長 ............................................................................................................ 357 14.1.2 UART のレジスタ..................................................................................................... 359 14.1.3 UART の動作説明..................................................................................................... 366 14.1.4 応用例....................................................................................................................... 372 14.2 拡張 I/O シリアルインタフェース (SIO)............................................................................. 375 14.2.1 拡張 I/O シリアルインタフェース (SIO) 概要 .......................................................... 376 14.2.2 拡張 I/O シリアルインタフェースのレジスタ .......................................................... 378 14.2.3 拡張 I/O シリアルインタフェース (SIO) の動作説明................................................ 383 14.3 インプットキャプチャ........................................................................................................ 389 14.3.1 インプットキャプチャの概要................................................................................... 390 14.3.2 インプットキャプチャのレジスタ............................................................................ 392 14.3.3 インプットキャプチャの動作説明............................................................................ 394 14.4 アウトプットコンペア........................................................................................................ 395 14.4.1 アウトプットコンペアの特長................................................................................... 396 14.4.2 アウトプットコンペアのレジスタ............................................................................ 398 14.4.3 アウトプットコンペアの動作説明............................................................................ 401 第 15 章 I2C インタフェース ................................................................................ 405 15.1 I2C インタフェースの概要.................................................................................................. 406 15.2 I2C インタフェースのレジスタ .......................................................................................... 410 15.2.1 バスステータスレジスタ (IBSR) .............................................................................. 411 15.2.2 バスコントロールレジスタ (IBCR) .......................................................................... 414 15.2.3 クロックコントロールレジスタ (ICCR) ................................................................... 420 15.2.4 10 ビットスレーブアドレスレジスタ (ITBA) ........................................................... 422 15.2.5 10 ビットスレーブアドレスマスクレジスタ (ITMK)................................................ 423 15.2.6 7 ビットスレーブアドレスレジスタ (ISBA) ............................................................. 425 15.2.7 7 ビットスレーブアドレスマスクレジスタ (ISMK).................................................. 426 15.2.8 データレジスタ (IDAR) ............................................................................................ 427 viii 15.2.9 クロックディセーブルレジスタ (IDBL).................................................................... 428 2 15.3 I C インタフェースの動作説明 .......................................................................................... 429 15.4 動作フローチャート ........................................................................................................... 434 第 16 章 DMAC (DMA コントローラ ) ................................................................. 437 16.1 概要 .................................................................................................................................... 438 16.2 レジスタ詳細説明 ............................................................................................................... 441 16.2.1 DMAC-ch0, 1, 2, 3, 4 コントロール / ステータスレジスタ A ................................... 442 16.2.2 DMAC-ch0, 1, 2, 3, 4 コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4)............................................................................................ 447 16.2.3 DMAC-ch0, 1, 2, 3, 4 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4)........................................................ 452 16.2.4 DMAC-ch0, 1, 2, 3, 4 DMAC 全体制御レジスタ....................................................... 454 16.3 動作説明 ............................................................................................................................. 456 16.3.1 動作概要 ................................................................................................................... 457 16.3.2 転送要求の設定 ........................................................................................................ 460 16.3.3 転送シーケンス ........................................................................................................ 462 16.3.4 DMA 転送全般 .......................................................................................................... 466 16.3.5 アドレッシングモード ............................................................................................. 468 16.3.6 データの種類 ............................................................................................................ 469 16.3.7 転送回数制御 ............................................................................................................ 470 16.3.8 CPU 制御.................................................................................................................. 471 16.3.9 ホールド調停 ............................................................................................................ 472 16.3.10 動作開始 ................................................................................................................... 473 16.3.11 転送要求の受付けと転送 .......................................................................................... 474 16.3.12 DMA による周辺割込みクリア ................................................................................. 475 16.3.13 一時停止 ................................................................................................................... 476 16.3.14 動作終了 / 停止 ......................................................................................................... 477 16.3.15 エラーによる停止..................................................................................................... 478 16.3.16 DMAC 割込み制御 .................................................................................................... 479 16.3.17 スリープ中の DMA 転送 ........................................................................................... 480 16.3.18 チャネル選択と制御 ................................................................................................. 481 16.3.19 外部端子と内部動作タイミングに関する補足.......................................................... 483 16.4 動作フロー.......................................................................................................................... 487 16.5 データパス.......................................................................................................................... 490 16.6 DMA 外部インタフェース .................................................................................................. 493 第 17 章 フラッシュメモリ .................................................................................. 499 17.1 フラッシュメモリの概要 .................................................................................................... 500 17.2 フラッシュメモリのレジスタ ............................................................................................. 506 17.2.1 フラッシュコントロール / ステータスレジスタ (CPU モード ): FLCR.................... 507 17.2.2 ウェイトレジスタ : FLWC........................................................................................ 509 17.3 フラッシュメモリの動作説明 ............................................................................................. 511 17.4 フラッシュメモリ自動アルゴリズム .................................................................................. 513 17.4.1 コマンドシーケンス ................................................................................................. 514 17.4.2 自動アルゴリズム実行状態の確認............................................................................ 519 17.5 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 524 17.5.1 読出し / リセット状態にする.................................................................................... 525 17.5.2 データ書込みを行う ................................................................................................. 526 ix 17.5.3 17.5.4 17.5.5 17.5.6 第 18 章 18.1 18.2 18.3 18.4 18.5 データ消去を行う ( チップ消去 ).............................................................................. 528 データ消去を行う ( セクタ消去 ).............................................................................. 529 セクタ消去を一時停止する ...................................................................................... 531 セクタ消去を再開する ............................................................................................. 532 MB91F353A/F355A/F356B/F357B シリアル書込み接続 ...................... 533 MB91F353A/F355A/F356B/F357B 書込み基本構成........................................................... 534 富士通標準シリアルオンボード書込みに使用する端子 ..................................................... 535 シリアル書込み接続例........................................................................................................ 536 フラッシュマイコンプログラマシステム構成.................................................................... 538 その他の注意事項 ............................................................................................................... 539 第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能 ..................................................................................................... 541 19.1 概要 .................................................................................................................................... 542 19.2 レジスタ詳細説明 ............................................................................................................... 543 19.3 動作説明 ............................................................................................................................. 545 付録 付録 A 付録 B 付録 C 付録 D 索引 ............................................................................................................... 547 I/O マップ ...................................................................................................................... 548 割込みベクタ ................................................................................................................. 559 各 CPU ステートにおける端子状態 .............................................................................. 561 命令一覧表..................................................................................................................... 567 ............................................................................................................... 583 x 本版での主な変更内容 ページ 変更内容(詳細は本文を参照してください。) - - 品種 を変更 (MB91F353A/352A/353A → MB91F353A/351A/352A/353A) (MB91F35 → MB91F353A/351A/352A/353A) (MB91F35A → MB91F353A/351A/352A/353A) (MB91F355A/353A → MB91F353A/F355A/F356B/F357B) (MB91F355A/355A/354A → MB91F355A/355A/354A/F356B/ F357B) - - レジスタ名を変更 (UTIM(U-TIMER) → U-TIMER レジスタ (UTIM)) (UTIMR(reload register) → リロードレジスタ (UTIMR) (UTIMC(U-TIMer Control register) → U-TIMER コントロールレ ジスタ (UTIMC)) - - フラッシュメモリ を変更 (256 キロバイト → 256K バイト /128K バイト ) (512 キロバイト → 512K バイト /256K バイト ) - - 用語を統一 (FR シリーズ → FR ファミリ ) (FR30 シリーズ → FR30 ファミリ ) (Advanced Micro Device 社 → Advanced Micro Devices 社 ) 3 1.1 特長 表 1.1-1 内蔵メモリの詳細 を変更 (MB91351A の列を追加 ) (MB91F356B と MB91F357B の列を追加 ) 4 ■ A/D コンバータ を変更 ( 変換時間 : 1.48ms → 変換時間 : 1.48µs) 5 ■ その他の特長 を変更 (LQFP-176( リードピッチ 0.50 mm) → MB91F355A/F356B/ F357B/355A/354A:LQFP-176( リードピッチ 0.50 mm) 6 表 1.1-2 機能比較 : 内蔵メモリ ( メモリ容量展開品 , メモリ構成については検討中 ) を変更 (MB91351A の列を追加 ) 7, 8 1.2 ブロックダイヤグ ラム 図 1.2-1 MB91F353A/353A/352A/351A のブロックダイヤグラ ム を変更 9, 10 1.2 ブロックダイヤグ ラム 図 1.2-2 MB91F356B/F357B/F355A/355A/354A の ブロックダイヤグラム を変更 14 1.4 端子配列図 ■ MB91352A/MB91F353A(LQFP-120) 端子配列図 を削除 24 1.5 端子機能一覧 表 1.5-1 端子機能一覧 の 端子名 BRQ を変更 ( 外部バスを開放したいときに 1 を入力します。→ 外部バスを開放したいときに "H" を入力します。) xi ページ 44 変更内容(詳細は本文を参照してください。) 3.1 メモリ空間 図 3.1-1 MB91F355A/MB91355A/MB91F353A/MB91353A/ MB91F357B のメモリマップ を変更 ( 内蔵 ROM → 内蔵 RAM) 図 3.1-2 MB91351A のメモリマップ を追加 45 図 3.1-3 MB91354A/MB91352A のメモリマップ を変更 ( 内蔵 ROM → 内蔵 RAM) 図 3.1-4 MB91F356B のメモリマップ を追加 46 ■ メモリマップ を変更 (MB91V350A では,MB91355A/F355A/353A/F353A メモリ マップにおいて内蔵 ROM512KB の領域がエミュレーション RAM となります。また,内蔵 RAM(Instruction) が 8KB から 16KB に拡張されています。→ MB91V350A では , MB91355A/F355A/353A/F353A/F357B メモ リマップにおいて内蔵 ROM512K バイトの領域が , MB91F356B メモリマップにおいて内蔵 ROM256K バイトの領 域が , エミュレーション RAM となります。また , 内蔵 RAM(Instruction) が 8K バイトから 16K バイトに拡張されてい ます。) 163 4.2.2 ACR0 ∼ ACR7 (Area Configuration Register) <注意事項> を変更 (ASR, ACR はワードアクセスで同時設定してください。ASR, ACR をハーフワードでアクセスする場合には , ASR 設定後 , ACR を設定してください。を追加 ) 217 4.10 レジスタ設定手順 ■ 外部バスインタフェースの設定手順 を変更 226 ∼ 229 5.2 I/O ポートの レジスタ 表 5.2-1 PFR レジスタの初期値と機能 を変更 (*2 を削除 ) 232 6.1 8/16 ビットアップ ダウンカウンタ / タイマ ■ 8/16 ビットアップダウンカウンタ / タイマの概要 を変更 (MB91F355A/355A/354A/V350A → MB91F355A/355A/354A/ F356B/F357B) 254 6.2.2 U-TIMER の レジスタ ■ リロードレジスタ (UTIMR) を変更 ( <注意事項> を追加 ) 257 6.2.3 U-TIMER の 動作説明 ■ ボーレートの計算 を変更 ( <注意事項> を追加 ) 320 10.3 外部割込み・NMI 制御部の動作説明 ■ 外部割込みの動作手順 を変更 (1. 外部割込み入力として使用する端子と兼用する汎用入出力 ポートを入力ポートに設定する。を追加 ) 354 13.3 8 ビット D/A コンバータの動作説明 表 13.3-1 D/A コンバータの出力電圧の論理式 を変更 (DADR1 DADR2 DADR3 の設定値 → DADR0 DADR1 DADR2 の設定値 ) 368 14.1.3 UART の 動作説明 図 14.1-3 転送データフォーマット ( モード 2) を変更 xii ページ 変更内容(詳細は本文を参照してください。) 378, 379 14.2.2 拡張 I/O シリア ルインタフェースの レジスタ [ ビット 15, 14, 13] シフトクロック選択ビット (SMD2, SMD1, SMD0:Serial Shift Clock モード ) を変更 416 15.2.2 バスコントロー ルレジスタ (IBCR) [ ビット 12] MSS (Master Slave Select) を変更 ( <注意事項> を追加 ) 417 ∼ 419 15.2.2 バスコントロー ルレジスタ (IBCR) ■ バスコントロールレジスタ (IBCR) を変更 ( <注意事項> を変更 ) 445 16.2.1 DMAC-ch0, 1, 2, 3, 4 コントロール / ステータスレジスタ A [ ビット 28 ∼ 24] IS4 ∼ 0(Input Select): 転送要因選択 を変更 458 16.3.1 動作概要 ● フライバイ転送 (I/O →メモリ ) ( 注意事項 : MB91F353A/ 351A/352A/353A はフライバイ転送不可能 ) を変更 (MB91350A でのフライバイ転送のアクセス領域は必ず外部領 域でなければいけません。→ MB91F355A/F356B/F357B/355A でのフライバイ転送のアクセス領域は必ず外部領域でなけれ ばいけません。) 500 17.1 フラッシュメモリ の概要 17.1 Outline of Flash Memory の 要約 を変更 503 17.1 フラッシュメモリ の概要 図 17.1-3 MB91F356B フラッシュメモリのメモリマップ を 追加 504, 505 17.1 フラッシュメモリ の概要 ■ フラッシュメモリのセクタアドレス表 を変更 510 17.2.2 ウェイトレジス タ : FLWC [ ビット 2 ∼ 0] WTC2, 1, 0:Wait Cycle ビット を変更 526 17.5.2 データ書込みを 行う ■ アドレス指定方法 を変更 534 18.1 MB91F353A/ F355A/F356B/F357B 書 込み基本構成 ■ MB91F353A/F355A/F356B/F357B 書込み基本構成 を変更 ( シングルチップモードで動作するプログラムあるいは , 内 ROM 外バスモードで動作するプログラムのどちらかを選択し て書き込むことができます。を追加 ) 535 18.2 富士通標準シリア ルオンボード書込みに 使用する端子 表 18.2-1 富士通標準シリアルオンボード書込みに使用する端 子の機能 を変更 539 18.5 その他の注意事項 ● 原発振クロック周波数 を変更 (4.0MHz から 12.0MH → 10.0MHz から 12.5MHz) ● フラッシュメモリ書込み時のポート状態 を変更 ( リセット状態 → シングルチップモードの初期化状態 ) 550 付録 A I/O マップ 付表 A-1 I/O マップ の アドレス 00009CH を変更 (*1 を追加 ) 変更箇所は , 本文中のページ左側の│によって示しています。 xiii xiv 第1章 概要 FR ファミリは 32 ビット高性能 RISC CPU を使用 し , 高性能 / 高速な CPU 処理を要求される組込み 制御用に各種 I/O リソースやバス制御機構を内蔵し た , 標準シングルチップマイクロコントローラで す。 本品種は , FR30/40 ファミリ CPU をベースにバス アクセスの強化を行った FR60 ファミリです。豊 富な周辺リソースを内蔵した , シングルチップ指向 のマイクロコントローラです。 1.1 特長 1.2 ブロックダイヤグラム 1.3 外形寸法図 1.4 端子配列図 1.5 端子機能一覧 1.6 入出力回路形式 1 第 1 章 概要 1.1 特長 FR60 ファミリの特長を説明します。 ■ FR CPU の特長 • 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段 • 最大動作周波数 50MHz[PLL 使用 : 原振 12.5MHz の場合 ] • 16 ビット固定長命令 ( 基本命令 ) , 1 命令 /1 サイクル • メモリ - メモリ間転送 , ビット処理 , バレルシフト等の命令 組込み用途に適した命令 • 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 高級言語対応命令 • レジスタインターロック機能 アセンブラ記述の容易化 • 乗算器の内蔵 / 命令レベルでのサポート - 符号付き 32 ビット乗算: 5 サイクル - 符号付き 16 ビット乗算: 3 サイクル • 割込み (PC, PS の退避 ) : 6 サイクル , 16 プライオリティレベル • ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に 実行可能 • FR ファミリとの命令互換 ■ バスインタフェース • 最大動作周波数 25MHz • 24 ビットアドレスフル出力可能 (16M バイト空間 ) (21 ビットアドレスフル出力可能 (2M バイト空間 ) : MB91F353A/351A/352A/353A) • 8/16 ビットデータ出力 • プリフェッチバッファ搭載 • 未使用データ / アドレス端子は汎用入出力ポートとして使用可能 • 最小 64K バイト単位で設定可能な完全独立な 4 領域のチップセレクト出力が可能 • 各種メモリに対するインタフェースのサポート SRAM, ROM/FLASH ページモード FLASH ROM, ページモード ROM インタフェース • 基本バスサイクル : 2 サイクル • 領域ごとに , プログラマブルでウェイト挿入可能な自動ウェイトサイクル発生機構 • RDY 入力による外部ウェイトサイクル • DMA は , 独立した I/O 用ウェイト制御が可能なフライバイ転送をサポート (MB91F353A/351A/352A/353A はフライバイ転送使用不可能 ) 2 第 1 章 概要 ■ 内蔵メモリ 表 1.1-1 に内蔵メモリの詳細を示します。 表 1.1-1 内蔵メモリの詳細 メモリ ROM MB91V350A MB91F355A MB91F356B MB91F357B MB91355A MB91354A MB91F353A MB91353A MB91352A MB91351A なし 512K バイト 256K バイト 512K バイト 512K バイト 384K バイト 512K バイト 512K バイト 384K バイト 384K バイト RAM ( スタック ) 16K バイト 16K バイト 16K バイト 16K バイト 16K バイト 8K バイト 16K バイト 16K バイト 8K バイト 16K バイト RAM ( 命令実行 可能 ) 16K バイト 8K バイト 8K バイト 8K バイト 8K バイト 8K バイト 8K バイト 8K バイト 8K バイト 8K バイト ■ DMAC (DMA Controller) • 同時に最大 5 チャネルの動作が可能 ( 外部→外部は 3 チャネル ) • 3 つの転送要因 ( 外部端子 / 内部ペリフェラル / ソフトウェア ) • 起動要因はソフトウェアにて選択可能 (UART0, 1, 2 からの起動可能 ) • アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 ) • 転送モード ( デマンド転送 / バースト転送 / ステップ転送 / ブロック転送 ) • フライバイ転送サポート ( 外部 I/O とメモリ間 ) • 転送データサイズは 8/16/32 ビットから選択可能 • 多バイト転送可能 ( ソフトにて決定 ) • DMAC ディスクリプタは I/O 領域 (200H ∼ 240H, 1000H ∼ 1024H) (MB91F353A/351A/352A/353A は外部インタフェースなし。) 外部端子転送不可能。デマンド転送 , フライバイ転送使用不可能 ■ ビットサーチモジュール (REALOS 使用 ) 1 ワード中の MSB から最初の "1"/"0" の変化ビット位置をサーチ ■ 各種タイマ • 16 ビットリロードタイマ 4 チャネル (REALOS 用 1 チャネルを含む ) 内部クロックは 2/8/32 分周から選択可能 (ch 3 のみ , 64/128 分周も選択可能 ) • 16 ビットフリーランタイマ 1 チャネル アウトプットコンペア : 8 チャネル (MB91F353A/351A/352A/353A: 2 チャネル ) インプットキャプチャ : 4 チャネル • 16 ビット PPG タイマ : 6 チャネル (MB91F353A/351A/352A/353A: 3 チャネル ) ■ UART • UART 全二重ダブルバッファ • 5 チャネル , (MB91F353A/351A/352A/353A: 4 チャネル ) • パリティあり / なし選択可能 • 非同期 ( 調歩同期 ) , CLK 同期通信の選択可能 • 専用ボーレート用タイマ内蔵 • 外部クロックを転送クロックとして使用可能 • 豊富なエラー検出機能あり ( パリティ , フレーム , オーバラン ) • 115 kbps 対応 3 第 1 章 概要 ■ SIO • 8 ビットデータのシリアル転送 • 3 チャネル , (MB91F353A/351A/352A/353A: 2 チャネル ) • シフトクロックは内部 3 種類 , 外部 1 種類から選択 • シフト方向の LSB/MSB 切換え ■ 割込みコントローラ • 外部割込み合計 - 17 本 - (MB91F353A/351A/352A/353A: (9) 本 ) ( マスク不可能割込み端子 1 本と通常割込み端子 16/ (8) 本 ストップ時のウェイクアップ用として使用可能 ) • 内部ペリフェラルからの割込み • マスク不可能割込み以外は , 優先レベルをプログラマブルに設定可能 (16 レベル ) ■ D/A コンバータ 8 ビット分解能 , 3 チャネル , (MB91F353A/351A/352A/353A: 2 チャネル ) ■ A/D コンバータ • 10 ビット分解能 , 12 チャネル , (MB91F353A/351A/352A/353A: 8 チャネル ) • 直並列変換型 変換時間 : 1.48µs • 変換モード ( 単発変換モード , 連続変換モード ) • 起動要因 ( ソフト / 外部トリガ / ペリフェラル割込み ) ■ その他のインターバルタイマ / カウンタ • 8/16 ビットアップダウンカウンタ MB91F353A/351A/352A/353A は 8 ビットアップダウンカウンタのみ • 16 ビットタイマ (U-TIMER), 5 チャネル , (MB91F353A/351A/352A/353A: 4 チャネル ) • ウォッチドッグタイマ ■ I2C* バスインタフェース (400kbps 対応 ) • 1 チャネルマスタ / スレーブ送受信 - アービトレーション機能 , クロック同期化機能 ■ I/O ポート • 3V 入出力ポート ( ただし外部割込み兼用ポート (16 本 , MB91F353A/351A/352A/353A は 8 本 ) は 5V 入力対応 ) • 最大 126 ポート (MB91F353A/351A/352A/353A: 最大 84 ポート ) 4 第 1 章 概要 ■ その他の特長 • クロックソースとして発振回路を内蔵し , PLL 逓倍も選択可能 • リセット端子として INIT を用意 (INIT 端子解除後 , 発振安定待ちなしですぐに CPU 動作 ) • その他 , ウォッチドッグタイマリセット , ソフトウェアリセットあり • 低消費電力モードとしてストップモードとスリープモードをサポート 32kHz CPU 動作による低消費電力動作が可能 • ギア機能 • タイムベースタイマ内蔵 • パッケージ MB91F355A/F356B/F357B/355A/354A: QFP-176( リードピッチ 0.50 mm) MB91F353A/351A/352A/353A: LQFP-120(リードピッチ0.50 mm) • CMOS テクノロジ (0.35 µm) • 電源電圧 : 3.3V ± 0.3V *: I2C ライセンス 本製品には , お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で 使用されることを条件に , Philips 社 I2C 特許がライセンスされております。 Purchase of Fujitsu I2C components conveys a license under the Philips I2C Patent Rights to use, these components in an I2C system provided that the system conforms to the I2C Standard Specification as defined by Philips. 5 第 1 章 概要 ■ 機能比較 表 1.1-2 に FR60 ファミリの機能比較を示します。 表 1.1-2 機能比較 : 内蔵メモリ ( メモリ容量展開品 , メモリ構成については検討中 ) 機能 ROM MB91F355A MB91F353A MB91V350A MB91355A MB91F356B MB91354A MB91352A MB91351A MB91353A MB91F357B なし 512K バイト 256K バイト 384K バイト 512K バイト 384K バイト 384K バイト RAM( スタック ) 16K バイト 16K バイト 16K バイト 8K バイト 16K バイト 8K バイト 16K バイト RAM( 命令実行可能 ) 16K バイト 8K バイト 8K バイト 8K バイト 8K バイト 8K バイト 8K バイト DMAC 5ch 5ch 5ch 5ch 5ch 5ch 5ch A/D 入力 12ch 12ch 12ch 12ch 8ch 8ch 8ch D/A 入力 3ch 3ch 3ch 3ch 2ch 2ch 2ch UART 5ch 5ch 5ch 5ch 4ch 4ch 4ch U-TIMER 5ch 5ch 5ch 5ch 4ch 4ch 4ch SIO 3ch 3ch 3ch 3ch 2ch 2ch 2ch 外部割込み 16ch 16ch 16ch 16ch 8ch 8ch 8ch フリーランタイマ PPG 1ch 1ch 1ch 1ch 1ch 1ch 1ch 6ch 6ch 6ch 6ch 3ch 3ch 3ch リロードタイマ 4ch 4ch 4ch 4ch 4ch 4ch 4ch インプットキャプチャ 4ch 4ch 4ch 4ch 4ch 4ch 4ch アウトプットコンペア 8ch 8ch 8ch 8ch 2ch 2ch 2ch 8 ビットアップダウン カウンタ 2ch 2ch 2ch 2ch 1ch 1ch 1ch I2C 1ch 1ch 1ch 1ch 1ch 1ch 1ch 端子数 279 176 176 176 120 120 120 6 第 1 章 概要 1.2 ブロックダイヤグラム 図 1.2-1 に MB91F353A/353A/352A/351A の , 図 1.2-2 に MB91F356B/F357B/ F355A/355A/354A のブロックダイヤグラムを示します。 ■ MB91F353A/353A/352A/351A のブロックダイヤグラム 図 1.2-1 MB91F353A/353A/352A/351A のブロックダイヤグラム FR CPU コア 32 32 DMAC 5チャネル ビットサーチ RAM (スタック) ROM/Flash A20~A00 D31~D16 バスコンバータ RAM (命令実行可能) 32 RD WR1,WR0 32 外部メモリ I/F 32 X0,X1 MD0~MD2 INIT X0A,X1A クロック 制御 RDY BRQ BGRNT SYSCLK 16 アダプタ 時計タイマ 割込み コントローラ INT0~INT7 NMI 8チャネル 外部割込み SI0~SI3 SO0~SO3 SCK0~SCK3 4チャネル UART 4チャネル U-TIMER SI6~SI7 SO6~SO7 SCK6~SCK7 2チャネル 4 SIO SIO AN0~AN7 ATG AVRH,AVCC AVSS/AVRL 8チャネル A/D DA0~DA1 DAVC,DAVS 2チャネル D/A ポート 16 3チャネル 16 ビットPPG 4チャネル リロードタイマ PORT TRG0~TRG4 PPGO,PPG2, PPG4 フリーランタイマ FRCK 4チャネル インプットキャプチャ IN0~IN3 2チャネル アウトプットコンペア OC0,OC2 1チャネル I2C 1チャネル アップダウンカウンタ SDA SCL AIN0 BIN0 ZIN0 7 第 1 章 概要 MB91F353A MB91353A MB91352A MB91351A Flash 512K バイト 512K バイト 384K バイト 384K バイト RAM ( スタック ) 16K バイト 16K バイト 8K バイト 16K バイト RAM ( 命令実行可能 ) 8K バイト 8K バイト 8K バイト 8K バイト ROM/Flash 8 第 1 章 概要 ■ MB91F356B/F357B/F355A/355A/354A のブロックダイヤグラム 図 1.2-2 MB91F356B/F357B/F355A/355A/354A のブロックダイヤグラム FR CPU コア 32 32 DMAC 5チャネル ビットサーチ DREQ0~DREQ2 DACK0~DACK2 EOP/DSTP0~DSTP2 IOWR IORD RAM(スタック) ROM/Flash 512KB (F356Bのみ 256KB) A23~A00 D31~D16 バスコンバータ RAM (命令実行可能) 32 RD WR1,WR0 32 外部メモリ I/F 32 X0,X1 MD0~MD2 INIT X0A,X1A クロック 制御 時計タイマ 割込み コントローラ INT0~INT15 NMI 16チャネル 外部割込み SI0~SI4 SO0~SO4 SCK0~SCK4 5チャネル UART 5チャネル U-TIMER SI5~SI7 SO5~SO7 SCK5~SCK7 43チャネル SIO SIO AN0~AN11 ATG AVRH,AVCC AVSS/AVRL 12チャネル A/D DA0~DA2 DAVC,DAVS 3チャネル D/A RDY BRQ BGRNT SYSCLK 16 アダプタ 16 ポート 6チャネル 16ビットPRG PORT TRG0~TRG5 PPGO~PPG5 4チャネル リロードタイマ TOT0~TOT3 フリーランタイマ FRCK 4チャネル インプットキャプチャ IN0~IN3 2チャネル アウトプットコンペア OC0~OC7 1チャネル I2C SDA SCL 1チャネル アップダウンカウンタ AIN0,AIN1 BIN0,BIN1 ZIN0,ZIN1 9 第 1 章 概要 MB91F356B MB91F357B MB91F355A MB91355A MB91354A ROM/Flash Flash 256K バイト Flash 512K バイト Flash 512K バイト 512K バイト 384K バイト RAM ( スタック ) 16K バイト 16K バイト 16K バイト 16K バイト 8K バイト RAM ( 命令実行可能 ) 8K バイト 8K バイト 8K バイト 8K バイト 8K バイト 10 第 1 章 概要 外形寸法図 1.3 図 1.3-1 , 図 1.3-2 に外形寸法図を示します。 ■ MB91F355A/F356B/F357B/354A/355A 外形寸法図 図 1.3-1 MB91F355A/F356B/F357B/354A/355A 外形寸法図 プラスチック・LQFP, 176 ピン (FPT-176P-M02) プラスチック・LQFP, 176 ピン (FPT-176P-M02) リードピッチ 0.50mm パッケージ幅× パッケージ長さ 24.0 × 24.0mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 1.70mm MAX 質量 1.86g コード(参考) P-LFQFP176-24×24-0.50 注 1)* 印寸法はレジン残りを含まず。レジン残りは片側 +0.25(.010)MAX 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 26.00±0.20(1.024±.008)SQ * 24.00±0.10(.945±.004)SQ 0.145±0.055 (.006±.002) 132 89 133 88 0.08(.003) Details of "A" part +0.20 1.50 –0.10 +.008 .059 –.004 0°~8° (Mounting height) 0.10±0.10 (.004±.004) (Stand off) INDEX 176 45 "A" LEAD No. 1 44 0.50(.020) C 2003 FUJITSU LIMITED F176006S-c-4-6 0.22±0.05 (.009±.002) 0.08(.003) 0.50±0.20 (.020±.008) 0.60±0.15 (.024±.006) 0.25(.010) M 単位:mm (inches) 注意:括弧内の値は参考値です。 11 第 1 章 概要 ■ MB91F353A/351A/352A/353A 外形寸法図 図 1.3-2 MB91F353A/351A/352A/353A 外形寸法図 プラスチック・LQFP, 120 ピン (FPT-120P-M21) リードピッチ 0.50mm パッケージ幅× パッケージ長さ 16.0 × 16.0mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 1.70mm MAX 質量 0.88g コード(参考) P-LFQFP120-16×16-0.50 プラスチック・LQFP, 120 ピン (FPT-120P-M21 ) 注 1)* 印寸法はレジン残りを含む。 レンジ残りは,片側 +0.25(.010)MAX。 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 18.00±0.20(.709±.008)SQ +0.40 * 16.00 –0.10 .630 +.016 –.004 SQ 90 61 91 60 0.08(.003) Details of "A" part +0.20 1.50 –0.10 +.008 (Mounting height) .059 –.004 INDEX 0~8° 120 LEAD No. 1 30 0.50(.020) C 12 "A" 31 2002 FUJITSU LIMITED F120033S-c-4-4 0.22±0.05 (.009±.002) 0.08(.003) M 0.145 .006 +0.05 –0.03 +.002 –.001 0.60±0.15 (.024±.006) 0.10±0.05 (.004±.002) (Stand off) 0.25(.010) 単位:mm (inches) 注意:括弧内の値は参考値です。 第 1 章 概要 1.4 端子配列図 図 1.4-1 , 図 1.4-2 に , MB91350A シリーズの端子配列図を示します。 ■ MB91F355A/MB91F356B/MB91F357B/MB91354A/MB91355A 端子配列図 搭載パッケージは FPT-176P-M02 です。 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 PG4/SO5 PG3/SI5 PG2/SCK4 PG1/SO4 PG0/SI4 PH5/SCK3 PH4/SO3 PH3/SI3 PH2/SCK2 PH1/SO2 PH0/SI2 PI5/SCK1 PI4/SO1 PI3/SI1 PI2/SCK0 PI1/SO0 PI0/SI0 VCC VSS PJ7/INT15 PJ6/INT14 PJ5/INT13 PJ4/INT12 PJ3/INT11 PJ2/INT10 PJ1/INT9 PJ0/INT8 PK7/INT7/ATG PK6/INT6/FRCK PK5/INT5 PK4/INT4 PK3/INT3 PK2/INT2 PK1/INT1 PK0/INT0 VCC VSS PL1/SCL PL0/SDA VSS PM5/SCK7/ZIN1/TRG5 PM4/SO7/BIN1/TRG4 PM3/SI7/AIN1/TRG3 PM2/SCK6/ZIN0/TRG2 図 1.4-1 MB91F355A/MB91F356B/MB91F357B/MB91354A/MB91355A 端子配列図 MB91F355A/MB91355A/MB91354A/ MB91F356B/MB91F357B TOP VIEW (LQFP176) 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 PM1/SO6/BIN0/TRG1 PM0/SI6/AIN0/TRG0 PN5/PPG5 PN4/PPG4 PN3/PPG3 PN2/PPG2 PN1/PPG1 PN0/PPG0 VCC VSS PO7/OC7 PO6/OC6 PO5/OC5 PO4/OC4 PO3/OC3 PO2/OC2 PO1/OC1 PO0/OC0 PP3/TOT3 PP2/TOT2 PP1/TOT1 PP0/TOT0 VCC VSS AVSS/AVRL AVRH AVCC AN11 AN10 AN9 AN8 AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 DA2 DA1 DA0 DAVC DAVS 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 33 34 35 36 37 38 39 40 41 42 43 44 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 P20/D16 P21/D17 P22/D18 P23/D19 P24/D20 P25/D21 P26/D22 P27/D23 P30/D24 P31/D25 P32/D26 P33/D27 P34/D28 P35/D29 P36/D30 P37/D31 VSS VCC P40/A00 P41/A01 P42/A02 P43/A03 P44/A04 P45/A05 P46/A06 P47/A07 P50/A08 P51/A09 P52/A10 P53/A11 P54/A12 P55/A13 P56/A14 P57/A15 VSS VCC P60/A16 P61/A17 P62/A18 P63/A19 P64/A20 P65/A21 P66/A22 P67/A23 PG5/SCK5 NMI X1A VSS X0A MD2 MD1 MD0 X0 VCC X1 INIT VSS VCC PC0/DREQ2 PC1/DACK2 PC2/DSTP2/DEOP2 PB0/DREQ0 PB1/DACK0 PB2/DSTP0/DEOP0 PB3/DREQ1 PB4/DACK1 PB5/DSTP1/DEOP1 PB6/IOWR PB7/IORD PA0/CS0 PA1/CS1 PA2/CS2 PA3/CS3 VSS VCC P80/IN0/RDY P81/IN1/BGRNT P82/IN2/BRQ P83/RD P84/WR0 P85/IN3/WR1 P90/SYSCLK P91 P92/MCLK P93 P94/AS VSS VCC 13 第 1 章 概要 ■ MB91F353A/MB91351A/MB91352A/MB91353A 端子配列図 搭載パッケージは FPT-120P-M21 です。 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 1 2 3 4 5 6 7 8 9 10 MB91F353A/MB91351A/MB91352A/MB91353A 11 12 13 14 15 16 TOP VIEW 17 18 19 20 21 22 23 24 (LQFP-120) 25 26 27 28 29 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 P54/A12 P55/A13 P56/A14 P57/A15 P60/A16 P61/A17 P62/A18 P63/A19 P64/A20 VSS PL1/SCL PL0/SDA VSS VCC P80/IN0/RDY P81/IN1/BGRNT P82/IN2/BRQ P83/RD P84/WR0 P85/IN3/WR1 NMI MD2 MD1 MD0 INIT VCC X1 X0 VSS X0A 32 30 31 P20/D16 P21/D17 P22/D18 P23/D19 P24/D20 P25/D21 P26/D22 P27/D23 P30/D24 P31/D25 P32/D26 P33/D27 P34/D28 P35/D29 P36/D30 P37/D31 P40/A00 VSS VCC P41/A01 P42/A02 P43/A03 P44/A04 P45/A05 P46/A06 P47/A07 P50/A08 P51/A09 P52/A10 P53/A11 119 120 AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 VSS AVSS/AVRL AVRH AVCC DAVC DAVS DA0 DA1 PH5/SCK3 PH4/SO3 PH3/SI3 PH2/SCK2 PH1/SO2 PH0/SI2 PO2/OC2 PO0/OC0 VSS VCC PI5/SCK1 PI4/SO1 PI3/SI1 PI2/SCK0 図 1.4-2 MB91F353A/MB91351A/MB91352A/MB91353A 端子配列図 14 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 PI1/SO0 PI0/SI0 PK7/INT7/ATG PK6/INT6/FRCK PK5/INT5 PK4/INT4 PK3/INT3 PK2/INT2 PK1/INT1 PK0/INT0 PM5/SCK7 PM4/SO7/TRG4 PM3/SI7/TRG3 VCC VSS PM2/SCK6/ZIN0/TRG2 PM1/SO6/BIN0/TRG1 PM0/SI6/AIN0/TRG0 PN4/PPG4 PN2/PPG2 PN0/PPG0 PA3/CS3 PA2/CS2 PA1/CS1 PA0/CS0 P94/AS P93 P91 P90/SYSCLK X1A 第 1 章 概要 端子機能一覧 1.5 表 1.5-1 に端子機能一覧を , 表 1.5-2 に電源・GND 端子を示します。 端子配列については図 1.4-1 , 図 1.4-2 を参照してください。 ■ 端子機能一覧 表 1.5-1 端子機能一覧 (1 / 11) 端子番号 LQFP-176 LQFP-120 1∼8 1∼8 端子名 D16 ∼ D23 I/O 回路 形式 C P20 ∼ P27 9 ∼ 16 9 ∼ 16 D24 ∼ D31 27 ∼ 34 37 ∼ 41 42 ∼ 44 17, 20 ∼ 26 27 ∼ 34 C C 外部アドレスバスのビット 0 ∼ 7 です。 外バスモードのとき有効となります。 P40 ∼ P47 シングルチップモード時はポートとして使用できます。 A08 ∼ A15 C 外部アドレスバスのビット 8 ∼ 15 です。 外バスモードのとき有効となります。 A00 ∼ A07 P50 ∼ P57 シングルチップモード時はポートとして使用できます。 A16 ∼ A20 外部アドレスバスのビット 16 ∼ 20 です。 外バスモードのとき有効となります。 C 35 ∼ 39 P60 ∼ P64 シングルチップモード時または外部アドレスバス未使用時は , ポートとして使用できます。 A21 ∼ A23 外部アドレスバスのビット 21 ∼ 23 です。 外バスモードのとき有効となります。 - C 47, 48 106, 105 DA0, DA1 49 - 58 ∼ 61 67 ∼ 70 D/A コンバータの出力端子です。 DA2 - D/A コンバータの出力端子です。 113 ∼ 120 AN0 ∼ AN7 G アナログ入力端子です。 - AN8 ∼ AN11 G - TOT0 ∼ TOT3 D 97 PO0 PO1 リロードタイマ出力ポートです。 この機能はタイマ出力許可のときに有効になります。 アウトプットコンペア出力端子です。 D OC1 - アナログ入力端子です。 汎用入出力ポートです。 この機能はタイマ出力機能が禁止のときに有効になります。 OC0 72 シングルチップモード時または外部アドレスバス未使用時は , ポートとして使用できます。 - PP0 ∼ PP3 71 外部データバスのビット 24 ∼ 31 です。 外バスモードのとき有効となります。 シングルチップモード時はポートとして使用できます。 P65 ∼ P67 50 ∼ 57 外部データバスのビット 16 ∼ 23 です。 外バスモードのとき有効となります。 外バス 8 ビットモードのときはポートとして使用できます。 P30 ∼ P37 19 ∼ 26 機 能 汎用の入出力ポートです。 この機能は , アウトプットコンペア出力が未使用時はポートとし て使用できます。 アウトプットコンペア出力端子です。 D 汎用の入出力ポートです。 この機能は , アウトプットコンペア出力が未使用時はポートとし て使用できます。 15 第 1 章 概要 表 1.5-1 端子機能一覧 (2 / 11) 端子番号 LQFP-176 LQFP-120 端子名 I/O 回路 形式 OC2 73 98 PO2 アウトプットコンペア出力端子です。 D OC3 ∼ OC7 74 ∼ 78 - PO3 ∼ PO7 70 PN0 D - PN1 D 71 PN2 D - PN3 D 72 PN4 D 87 16 - PN5 汎用の入出力ポートです。 この機能は , PPG タイマ出力が未使用時はポートとして使用でき ます。 PPG タイマ出力端子です。 D PPG5 86 汎用の入出力ポートです。 この機能は , PPG タイマ出力が未使用時はポートとして使用でき ます。 PPG タイマ出力端子です。 PPG4 85 汎用の入出力ポートです。 この機能は , PPG タイマ出力が未使用時はポートとして使用でき ます。 PPG タイマ出力端子です。 PPG3 84 汎用の入出力ポートです。 この機能は , PPG タイマ出力が未使用時はポートとして使用でき ます。 PPG タイマ出力端子です。 PPG2 83 汎用の入出力ポートです。 この機能は , アウトプットコンペア出力が未使用時はポートとし て使用できます。 PPG タイマ出力端子です。 PPG1 82 汎用の入出力ポートです。 この機能は , アウトプットコンペア出力が未使用時はポートとし て使用できます。 アウトプットコンペア出力端子です。 PPG0 81 機 能 汎用の入出力ポートです。 この機能は , PPG タイマ出力が未使用時はポートとして使用でき ます。 PPG タイマ出力端子です。 D 汎用の入出力ポートです。 この機能は , PPG タイマ出力が未使用時はポートとして使用でき ます。 SI6 シリアル I/O6 のデータ入力です。 シリアル I/O6 が入力動作をしている間はこの入力を随時使用し ていますので , 意図的に行うとき以外はポートによる出力を停止 させておく必要があります。 AIN0 アップダウンタイマの入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 73 D TRG0 PPG タイマ 0 の外部トリガ入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 PM0 汎用の入出力ポートです。 この機能は , シリアル I/O, アップダウンタイマ , PPG タイマ出力 が未使用時はポートとして使用できます。 第 1 章 概要 表 1.5-1 端子機能一覧 (3 / 11) 端子番号 LQFP-176 LQFP-120 88 89 90 端子名 I/O 回路 形式 機 能 SO6 シリアル I/O6 のデータ出力です。 この機能は , シリアル I/O6 のデータ出力指定が許可のときに有 効になります。 BIN0 アップダウンタイマの入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 74 D TRG1 PPG タイマ 1 の外部トリガ入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 PM1 汎用の入出力ポートです。 この機能はシリアル I/O, アップダウンタイマ , PPG タイマ出力が 未使用時はポートとして使用できます。 SCK6 シリアル I/O6 のクロック入出力です。 この機能はシリアル I/O6 のクロック出力指定が許可のとき , ま たは外部シフトクロック入力のときに有効になります。 ZIN0 アップダウンタイマの入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 75 D TRG2 PPG タイマ 2 の外部トリガ入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 PM2 汎用の入出力ポートです。 この機能はシリアル I/O, アップダウンタイマ , PPG タイマ出力が 未使用時はポートとして使用できます。 SI7 シリアル I/O7 のデータ入力です。 シリアル I/O7 が入力動作をしている間はこの入力を随時使用し ていますので , 意図的に行うとき以外はポートによる出力を停止 させておく必要があります。 AIN1* アップダウンタイマの入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 78 D TRG3 PPG タイマ 3 の外部トリガ入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 PM3 汎用の入出力ポートです。 この機能は , シリアル I/O, アップダウンタイマ , PPG タイマ出力 が未使用時はポートとして使用できます。 17 第 1 章 概要 表 1.5-1 端子機能一覧 (4 / 11) 端子番号 LQFP-176 LQFP-120 91 92 94 95 端子名 I/O 回路 形式 SO7 シリアル I/O7 のデータ出力です。 この機能は , シリアル I/O7 のデータ出力指定が許可のときに有 効になります。 BIN1* アップダウンタイマの入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 79 D TRG4 PPG タイマ 4 の外部トリガ入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 PM4 汎用の入出力ポートです。 この機能はシリアル I/O, アップダウンタイマ , PPG タイマ出力が 未使用時はポートとして使用できます。 SCK7 シリアル I/O7 のクロック入出力です。 この機能はシリアル I/O7 のクロック出力指定が許可のとき , 外 部シフトクロック入力のときに有効になります。 ZIN1* アップダウンタイマの入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 80 D TRG5* PPG タイマ 5 の外部トリガ入力です。 入力を許可している場合はこの入力を随時使用していますので , 意図的に行うとき以外はポートによる出力を停止させておく必 要があります。 PM5 汎用の入出力ポートです。 この機能はシリアル I/O, アップダウンタイマ , PPG タイマ出力が 未使用時はポートとして使用できます。 SDA I2C バス用 DATA 入出力端子です。 この機能は I2C が標準モード動作許可のときに有効となります。 意図的に行うとき以外はポートによる出力を停止させておく必 要があります ( オープンドレイン出力 ) 。 42 F PL0 汎用入出力ポートです。 この機能は , I2C が動作禁止のときポートとして使用できます ( オープンドレイン出力 ) 。 SCL I2C バス用 CLK 入出力端子です。 この機能は I2C が標準モード動作許可のときに有効となります。 意図的に行うとき以外はポートによる出力を停止させておく必 要があります ( オープンドレイン出力 ) 。 41 F 汎用入出力ポートです。 この機能は I2C が動作禁止のときポートとして使用できます ( オープンドレイン出力 ) 。 PL1 98 ∼ 103 81 ∼ 86 INT0 ∼ INT5 PK0 ∼ PK5 18 機 能 E 外部割込み入力です。 対応する外部割込みを許可している間はこの入力を随時使用し ていますので , 意図的に行う以外はポートによる出力を停止させ ておく必要があります。 汎用入出力ポートです。 第 1 章 概要 表 1.5-1 端子機能一覧 (5 / 11) 端子番号 LQFP-176 LQFP-120 端子名 I/O 回路 形式 外部割込み入力です。 対応する外部割込みを許可している間はこの入力を随時使用し ていますので , 意図的に行う以外はポートによる出力を停止させ ておく必要があります。 INT6 104 87 E FRCK 105 106 ∼ 113 汎用入出力ポートです。 INT7 外部割込み入力です。 対応する外部割込みを許可している間はこの入力を随時使用し ていますので , 意図的に行う以外はポートによる出力を停止させ ておく必要があります。 ATG A/D コンバータ外部トリガ入力です。 A/D の起動要因として選択した場合はこの入力を随時使用しま すので , 意図的に行う以外はポートによる出力を停止させておく 必要があります。 PK7 汎用入出力ポートです。 E INT8 ∼ INT15 E PJ0 ∼ PJ7 116 117 118 119 89 SI0 外部割込み入力です。 対応する外部割込みを許可している間はこの入力を随時使用し ていますので , 意図的に行う以外はポートによる出力を停止させ ておく必要があります。 汎用入出力ポートです。 D UART0 のデータ入力です。 UART0 が入力動作をしている間はこの入力を随時使用していま すので , 意図的に行うとき以外はポートによる出力を停止させて おく必要があります。 PI0 汎用入出力ポートです。 SO0 UART0 のデータ出力です。 この機能は UART0 のデータ出力指定が許可のときに有効になり ます。 90 D PI1 汎用入出力ポートです。 この機能は UART0 のデータ出力機能が禁止のときに有効になり ます。 SCK0 UART0 のクロック入出力です。 この機能は UART0 のクロック出力指定が許可のとき , または外 部クロック入力のときに有効になります。 91 92 フリーランタイマの外部クロック入力端子です。 フリーランタイマの外部クロック入力として選択した場合はこ の入力を随時使用しますので , 意図的に行う以外はポートによる 出力を停止させておく必要があります。 PK6 88 - 機 能 D PI2 汎用入出力ポートです。 この機能は UART0 のクロック出力機能が禁止 , または外部ク ロック入力を使用しないときに有効になります。 SI1 UART1 のデータ入力です。 UART1 が入力動作をしている間はこの入力を随時使用していま すので , 意図的に行うとき以外はポートによる出力を停止させて おく必要があります。 PI3 D 汎用入出力ポートです。 19 第 1 章 概要 表 1.5-1 端子機能一覧 (6 / 11) 端子番号 LQFP-176 LQFP-120 端子名 I/O 回路 形式 SO1 120 121 122 123 124 125 126 127 93 D 汎用入出力ポートです。 この機能は UART1 のデータ出力機能が禁止のときに有効になり ます。 SCK1 UART1 のクロック入出力です。 この機能は UART1 のクロック出力指定が許可のときに , または 外部クロック入力のときに有効になります。 D PI5 汎用入出力ポートです。 この機能は UART1 のクロック出力機能が禁止 , または外部ク ロック入力を使用しないときに有効になります。 SI2 UART2 のデータ入力です。 UART2 が入力動作をしている間はこの入力を随時使用していま すので , 意図的に行う以外はポートによる出力を停止させておく 必要があります 汎用入出力ポートです。 SO2 UART2 のデータ出力です。 この端子は UART2 のデータ出力指定が許可のときに有効になり ます。 D PH1 汎用入出力ポートです。 この機能は UART2 のデータ出力機能が禁止のときに , または外 部シフトクロック入力のときに有効になります。 SCK2 UART2 のクロック入出力です。 この機能は UART2 のクロック出力指定が許可のときに , または 外部クロック入力のときに有効になります。 101 D PH2 汎用入出力ポートです。 この機能は UART2 のクロック出力機能が禁止 , または外部ク ロック入力を使用しないときに有効になります。 SI3 UART3 のデータ入力です。 UART3 が入力動作をしている間はこの入力を随時使用していま すので , 意図的に行うとき以外はポートによる出力を停止させて おく必要があります。 D PH3 汎用入出力ポートです。 SO3 UART3 のデータ出力です。 この機能は UART3 のデータ出力指定が許可のときに有効になり ます。 103 D PH4 汎用入出力ポートです。 この機能は UART3 のデータ出力機能が禁止のときに有効になり ます。 SCK3 UART3 のクロック入出力です。 この機能は UART3 のクロック出力指定が許可のときに , または 外部クロック入力のときに有効になります。 104 D PH5 20 D PH0 100 102 UART1 のデータ出力です。 この機能は UART1 のデータ出力指定が許可のときに有効になり ます。 PI4 94 99 機 能 汎用入出力ポートです。 この機能は UART3 のクロック出力機能が禁止 , または外部ク ロック入力を使用しないときに有効になります。 第 1 章 概要 表 1.5-1 端子機能一覧 (7 / 11) 端子番号 LQFP-176 LQFP-120 128 129 130 131 132 133 - 端子名 SI4 D 機 能 UART4 のデータ入力です。 UART4 が入力動作をしている間はこの入力を随時使用していま すので , 意図的に行うとき以外はポートによる出力を停止させて おく必要があります。 PG0 汎用入出力ポートです。 SO4 UART4 のデータ出力です。 この機能はシリアル I/O4 のデータ出力指定が許可のときに有効 になります。 - D PG1 汎用入出力ポートです。 この機能はシリアル I/O4 のデータ出力機能が禁止のときに有効 になります。 SCK4 UART4 のクロック入出力です。 この機能はシリアル I/O4 のクロック出力指定が許可のとき , ま たは外部クロック入力のときに有効になります。 - - I/O 回路 形式 D PG2 汎用入出力ポートです。 この機能はシリアル I/O4 のクロック出力機能が禁止のとき , ま たは外部クロック入力を使用しないときに有効になります。 SI5 シリアル I/O5 のデータ入力です。 シリアル I/O5 が入力動作をしている間はこの入力を随時使用し ていますので , 意図的に行うとき以外はポートによる出力を停止 させておく必要があります。 D PG3 汎用入出力ポートです。 SO5 シリアル I/O5 のデータ出力です。 この機能はシリアル I/O5 のデータ出力指定が許可のときに有効 になります。 - D PG4 汎用入出力ポートです。 この機能はシリアル I/O5 のデータ出力機能が禁止のときに有効 になります。 SCK5 シリアル I/O5 のクロック入出力です。 この機能はシリアル I/O5 のクロック出力指定が許可のときに , または外部シフトクロック入力のときに有効になります。 - D PG5 汎用入出力ポートです。この機能はシリアル I/O5 のクロック出 力機能が禁止のとき , または外部クロック入力を使用しないとき に有効になります。 134 51 NMI H NMI(Non Maskable Interrupt) 入力です。 135 61 X1A B クロック ( 発振 ) 出力です ( サブクロック )。 137 60 X0A B クロック ( 発振 ) 入力です ( サブクロック )。 H モード端子 2 ∼ 0 です。 これらの端子の設定により基本動作モードを設定します。VCC 138 ∼ 140 52 ∼ 54 MD2 ∼ MD0 または VSS に接続してください。 J 入力回路形式 : • 量産版 ( マスク ROM 版 ) は "H" タイプ • FLASH ROM 版は "J" タイプ 141 58 X0 A 143 57 X1 A クロック ( 発振 ) 出力です ( メインクロック )。 144 55 INIT I 外部リセット入力です。 クロック ( 発振 ) 入力です ( メインクロック )。 21 第 1 章 概要 表 1.5-1 端子機能一覧 (8 / 11) 端子番号 LQFP-176 LQFP-120 147 - 端子名 DREQ2 I/O 回路 形式 C PC0 149 150 - - - C 汎用入出力ポートです。 この機能は DMA の転送要求受付け出力指定が許可のときに有効 になります。 DEOP2 DMA 外部転送終了出力です。 この機能は DMA の外部転送終了出力指定が許可のときに有効に なります。 DSTP2 C 汎用入出力ポートです。 この機能は DMA の外部転送終了出力指定 , 外部転送停止入力指 定が禁止のときに有効になります。 DREQ0 DMA 外部転送要求入力です。 DMA の起因要因として選択した場合はこの入力を随時使用しま すので , 意図的に行うとき以外はポートによる出力を停止させて おく必要があります。 153 - - - C 汎用入出力ポートです。 C DMA 外部転送要求受付け出力です。 この機能は DMA の転送要求受付け出力指定が許可のときに有効 になります。 PB1 汎用入出力ポートです。 この機能は DMA の転送要求受付け出力指定が禁止のときに有効 になります。 DEOP0 DMA 外部転送終了出力です。 この機能は DMA の外部転送終了出力指定が許可のときに有効に なります。 DSTP0 C DMA 外部転送停止入力です。 この機能は DMA の外部転送停止入力指定が許可のときに有効に なります。 PB2 汎用入出力ポートです。 この機能は DMA の外部転送終了出力指定 , 外部転送停止入力指 定が禁止のときに有効になります。 DREQ1 DMA 外部転送要求入力です。 DMA の起因要因として選択した場合はこの入力を随時使用しま すので , 意図的に行うとき以外はポートによる出力を停止させて おく必要があります。 PB3 22 DMA 外部転送停止入力です。 この機能は DMA の外部転送停止入力指定が許可のときに有効に なります。 PC2 DACK0 152 DMA 外部転送要求受付け出力です。 この機能は DMA の転送要求受付け出力指定が許可のときに有効 になります。 PC1 PB0 151 DMA 外部転送要求入力です。 DMA の起因要因として選択した場合はこの入力を随時使用しま すので , 意図的に行うとき以外はポートによる出力を停止させて おく必要があります。 汎用入出力ポートです。 DACK2 148 機 能 C 汎用入出力ポートです。 第 1 章 概要 表 1.5-1 端子機能一覧 (9 / 11) 端子番号 LQFP-176 LQFP-120 端子名 I/O 回路 形式 DACK1 154 155 156 157 158 159 160 161 - - C 機 能 DMA 外部転送要求受付け出力です。 この機能は DMA の転送要求受付け出力指定が許可のときに有効 になります。 PB4 汎用入出力ポートです。 この機能は DMA の外部転送要求受付け出力指定が禁止のときに 有効になります。 DEOP1 DMA 外部転送終了出力です。 この機能は DMA の外部転送終了出力指定が許可のときに有効に なります。 DSTP1 C DMA 外部転送停止入力です。 この機能は DMA の外部転送停止入力指定が許可のときに有効に なります。 PB5 汎用入出力ポートです。 この機能は DMA の外部転送終了出力指定 , 外部転送停止入力指 定が禁止のときに有効になります。 IOWR DMA フライバイ転送時のライトストローブ出力です。 この機能は DMA フライバイ転送ライトストローブ出力指定が許 可のときに有効になります。 - C PB6 汎用入出力ポートです。 この機能は DMA フライバイ転送ライトストローブ出力指定が禁 止のときに有効になります。 IORD DMA フライバイ転送時のリードストローブ出力です。 この機能は DMA フライバイ転送リードストローブ出力指定が許 可のときに有効になります。 - C PB7 汎用入出力ポートです。 この機能は DMA フライバイ転送リードストローブ出力指定が禁 止のときに有効になります。 CS0 チップセレクト 0 出力です。 外バスモード時有効になります。 66 C PA0 汎用入出力ポートです。 シングルチップモード時有効になります。 CS1 チップセレクト 1 出力です。 この機能はチップセレクト 1 出力指定が許可のときに有効にな ります。 67 C PA1 汎用入出力ポートです。 この機能はチップセレクト 1 出力指定が禁止のときに有効にな ります。 CS2 チップセレクト 2 出力です。 この機能はチップセレクト 2 出力指定が許可のときに有効にな ります。 68 C PA2 汎用入出力ポートです。 この機能はチップセレクト 2 出力指定が禁止のときに有効にな ります。 CS3 チップセレクト 3 出力です。 この機能はチップセレクト 3 出力指定が許可のときに有効にな ります。 69 C PA3 汎用入出力ポートです。 この機能はチップセレクト 3 出力指定が禁止のときに有効にな ります。 23 第 1 章 概要 表 1.5-1 端子機能一覧 (10 / 11) 端子番号 LQFP-176 LQFP-120 164 45 端子名 I/O 回路 形式 RDY 外部レディ入力です。 この機能は外部レディ入力指定が許可のときに有効になります。 IN0 インプットキャプチャ入力端子です。 インプットキャプチャ入力として選択した場合はこの入力を随 時使用しますので , 意図的に行う以外はポートによる出力を停止 させておく必要があります。 D 汎用入出力ポートです。 この機能は外部レディ入力指定が禁止のときに有効になります。 P80 外部バス開放受付け出力です。 外部バスを開放したときに "L" を出力します。出力指定が許可 のときに有効になります。 BGRNT 165 166 167 168 169 46 47 IN1 D 汎用入出力ポートです。 この機能は外部バス開放受付け指定が禁止のときに有効になり ます。 BRQ 外部バス開放要求入力です。 外部バスを開放したいときに "H" を入力します。 入力指定が許可のときに有効になります。 IN2 インプットキャプチャ入力端子です。 インプットキャプチャ入力として選択した場合はこの入力を随 時使用しますので , 意図的に行う以外はポートによる出力を停止 させておく必要があります。 D P82 汎用入出力ポートです。 この機能は外部バス開放要求指定が禁止のときに有効になりま す。 RD 外バスリードストローブ出力です。 外バスモード時に有効になります。 D P83 汎用入出力ポートです。 シングルチップモード時に有効になります。 WR0 外バスライトストローブ出力です。 外バスモード時に有効になります。 D 49 P84 汎用入出力ポートです。 シングルチップモード時に有効になります。 WR1 外バスライトストローブ出力です。 外バスモード時 WR1 の出力を許可にすると有効になります。 IN3 インプットキャプチャ入力端子です。 インプットキャプチャ入力として選択した場合はこの入力を随 時使用しますので , 意図的に行う以外はポートによる出力を停止 させておく必要があります。 D 汎用入出力ポートです。 外バスライトイネーブル出力設定を禁止にしたときに有効にな ります。 P85 SYSCLK 170 62 C P90 24 インプットキャプチャ入力端子です。 インプットキャプチャ入力として選択した場合は , この入力を随 時使用しますので意図的に行う以外はポートによる出力を停止 させておく必要があります。 P81 48 50 機 能 システムクロック出力です。 この機能はシステムクロック出力指定が許可のときに有効にな ります。外バス動作周波数と同じクロックを出力します ( ストッ プ時に停止します )。 汎用入出力ポートです。 この機能はシステムクロック出力指定が禁止のときに有効にな ります。 第 1 章 概要 表 1.5-1 端子機能一覧 (11 / 11) 端子名 I/O 回路 形式 P91 C 汎用入出力ポートです。 C メモリ用クロック出力です。 この機能はメモリ用クロック出力指定が許可のときに有効にな ります。外バス動作周波数と同じクロックを出力します ( スリー プ時に停止します )。 端子番号 LQFP-176 LQFP-120 171 63 機 能 MCLK 172 - 汎用入出力ポートです。 この機能はメモリ用クロック出力指定が禁止のときに有効にな ります。 P92 173 64 P93 C 汎用入出力ポートです。 アドレスストローブ出力です。 この機能はアドレスストローブ出力が許可のときに有効になり ます。 AS 174 C 65 汎用入出力ポートです。 この機能はアドレスロード出力指定が禁止のときに有効になり ます。 P94 *: LQFP-120 版には , この機能がありません。 表 1.5-2 電源・GND 端子 端子番号 176 ピン 120 ピン 端子名 機 能 17, 35, 65, 79, 93, 96, 18, 40, 43, 59, 114, 136, 145, 162, 175 76, 96, 112 VSS GND 端子です。すべて同電位でお使いください。 18, 36, 66, 80, 97, 115, 142, 146, 163, 176 19, 44, 56, 77, 95 VCC 3.3V 電源端子です。すべて同電位でお使いください。 45 107 DAVS D/A コンバータ用の GND 端子です。 46 108 DAVC D/A コンバータ用の電源端子です。 62 109 AVCC A/D コンバータ用アナログ電源端子です。 63 110 AVRH A/D コンバータ用の基準電源端子です。 64 111 AVSS/ AVRL A/D コンバータ用アナログ GND 端子です。 25 第 1 章 概要 1.6 入出力回路形式 表 1.6-1 に入出力回路形式を示します。 ■ 入出力回路形式 表 1.6-1 入出力回路形式 (1 / 3) 分 類 回路形式 備 考 高速用 ( メインクロック原発振 ) 発振帰還抵抗 約 1MΩ X1 クロック入力 A X0 スタンバイ コントロール 低速用 ( サブクロック原発振 ) 発振帰還抵抗 約 7MΩ X1A クロック入力 B X0A スタンバイ コントロール プルアップ制御 デジタル出力 • CMOS レベル出力 • CMOS レベル入力 スタンバイ制御あり プルアップ制御あり プルアップ抵抗値=約 50kΩ (Typ) C デジタル出力 IOL = 8mA デジタル入力 スタンバイコントロール 26 第 1 章 概要 表 1.6-1 入出力回路形式 (2 / 3) 分 類 回路形式 備 考 プルアップ制御 • CMOS レベル出力 • CMOS レベルヒステリシス入力 スタンバイ制御あり プルアップ制御あり プルアップ抵抗値=約 50kΩ (Typ) デジタル出力 D デジタル出力 IOL = 4mA デジタル入力 スタンバイコントロール • CMOS レベル出力 • CMOS レベルヒステリシス入力 デジタル出力 5V 耐圧 IOL = 4mA E デジタル出力 デジタル入力 • Nch オープンドレイン出力 • CMOS レベルヒステリシス入力 デジタル出力 スタンバイ制御あり 5V 耐圧 F デジタル入力 IOL = 15mA スタンバイコントロール アナログ入力スイッチ付き G アナログ入力 コントロール 27 第 1 章 概要 表 1.6-1 入出力回路形式 (3 / 3) 分 類 回路形式 備 考 CMOS レベルヒステリシス入力 H デジタル入力 CMOS レベルヒステリシス入力 プルアップ抵抗付き プルアップ抵抗値=約 50kΩ (Typ) I デジタル入力 CMOS レベル入力 ( フラッシュ ROM 品のみ ) J 制御信号 モード入力 拡散抵抗 28 第2章 デバイスの取扱いについて この章では , FR ファミリの取扱い上の注意につい て説明します。 2.1 デバイス取扱い上の注意 29 第 2 章 デバイスの取扱いについて 2.1 デバイス取扱い上の注意 ラッチアップ防止 , 端子処理 , 回路の取扱い , および電源投入時の入力などについて 説明します。 ■ ラッチアップ防止のために CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加した 場合 , または , VCC ∼ VSS 間に定格を超える電圧を印加した場合に , ラッチアップ現象 を生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊に 至ることがありますので使用に際しては最大定格を超えることのないよう十分に注意 してください。 ■ 未使用入力端子の処理について 使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま すので , プルアップまたはプルダウンの処理をしてください。 ■ 電源端子について VCC・VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止するた めにデバイス内部で同電位にすべきものどうしを接続してありますが , 不要輻射の低 減・グランドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流規格を 遵守などのために , 必ずそれらすべてを外部で電源およびグランドに接続してくださ い。また , 電流供給源からできるかぎり低インピーダンスで本デバイスの VCC, VSS に 接続するような配慮をお願いします。 さらに , 本デバイスの近くで , VCC と VSS の間に 0.1 µF 程度のセラミックコンデンサ をバイパスコンデンサとして接続することをお勧めします。 ■ 水晶発振回路について X0, X1, X0A, X1A 端子の近辺のノイズは本デバイスの誤動作の原因となります。X0 と X1, X0A と X1A および水晶発振子 ( あるいはセラミック発振子 ) さらにグランドへの バイパスコンデンサはできるかぎり近くに配置するようにプリント板を設計してくだ さい。 また , X0, X1, X0A, X1A 端子の回りをグランドで囲むようなプリント板アートワーク は安定した動作を期待できますので , 強くお勧めします。 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。 30 第 2 章 デバイスの取扱いについて ■ 外部クロック使用時の注意 外部クロックを使用する際には , 原則として X0 端子 , また X1 端子には X0 と逆相のク ロックを同時に供給してください。ただし , この場合にはストップモード ( 発振停止 モード ) は使用しないでください ( ストップ時 X1 端子が "H" 出力で停止するため )。 外部クロック使用例 ( 通常 ) X0 X1 <注意事項> ストップモード ( 発振停止モード ) は使用できません。 ■ サブクロックを使用しない場合の注意について X0A, X1A 端子に発振器を接続しない場合は , X0A 端子をプルダウン処理に , X1A 端子 を開放にしてください。 X0A 開放 X1A MB91350A ■ NC, OPEN 端子の処理について NC 端子 , OPEN 端子は , 必ず開放にして使用してください。 ■ モード端子 (MD0 ∼ MD2) について これらの端子は , VCC または VSS に直接つないで使用してください。ノイズにより誤っ てテストモードに入ってしまうことを防ぐために , プリント板上の各モード端子と VCC または VSS 間のパターン長をできる限り短くし , これらを低インピーダンスで接 続するようにしてください。 ■ 電源投入時について 電源投入時は , INIT 端子を "L" レベルにしておくことが必要です。 また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子に よる INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。 ■ 電源投入時の原振入力について 電源投入時は , 必ず発振安定待ち解除されるまでの間クロックを入力してください。 ■ PLL クロックモード動作中の注意について 本マイコンで PLL クロックを選択しているときに発振子が外れたり , クロック入力が 停止した場合には PLL 内部の自励発振回路の自走周波数で動作を継続し続ける場合が あります。この動作は保証外の動作です。 31 第 2 章 デバイスの取扱いについて ■ 外バスの設定 本品種は , 外バス 25MHz の保証となっています。 DIVR1 ( 外バス基本クロック分周設定レジスタ ) を初期値のまま , ベースクロックを 50MHz に設定すると , 外バスも 50MHz になります。ベースクロックを変更する際には , 外バスが 25MHz を超えないように設定した後 , ベースクロックを変更してください。 ■ MCLK と SYSCLK MCLK は SLEEP/STOP モード時停止し , SYSCLK は STOP モード時のみ停止するとい う違いがあります。用途に応じて使い分けてください。 イニシャライズ後 , MCLK は無効 ( ポート ) , SYSCLK は有効となっています。MCLK を使用する場合は , PFR ( ポートファンクションレジスタ ) にて , MCLK を使用するた めの設定が必要です。 ■ プルアップコントロール 外バス端子として使用する端子に対してプルアップ抵抗をつけると AC 規格を保証で きません。 また , プルアップ抵抗を設定してあるポートであっても , HIZ = 1 のストップモード , ハードウェアスタンバイ時は無効となります。 ■ クロック制御部 INIT への "L" 入力時には , 発振安定待ち時間を確保してください。 ■ サブクロック切換え クロックソースとしてメインクロックからサブクロックモードに切り換えた直後は , NOP 命令を一個以上挿入してください。 (ldi #0x0b, r0) (ldi #_CLKR ,r12) stb r0, @r12 // sub-clock mode nop // Must insert NOP instruction ■ ビットサーチモジュール BSD0, BSD1, BDSC レジスタはワードアクセスのみとなります。 ■ D-bus メモリ コード領域を , D-bus へは命令フェッチを行わないため , D-bus 上のメモリに設定しな いでください。 D-bus 領域へ命令フェッチを行った場合 , 誤ったデータをコードとして解釈するため , 暴走する可能性があります。 32 第 2 章 デバイスの取扱いについて ■ 低消費電力モード スリープモード , ストップモードに入れる場合は , スタンバイ制御レジスタ (STCR) へ の書込み直後に , 同レジスタを必ず読み出してください。 具体的には , 以下のシーケンスを使用してください。 (ldi #value_of_standby, r0) (ldi #_STCR, r12) stb r0, @r12 // set STOP/SLEEP bit ldub @r12, r0 // Must read STCR ldub @r12, r0 // after reading, go into standby mode nop // Must insert NOP *5 nop nop nop nop ■ プリフェッチ リトルエンディアンに設定した領域に対して , プリフェッチを許可する場合 , 該当する 領域へのアクセスは , ワード (32 ビット ) 長アクセス限定としてください。 バイト / ハーフワードアクセスでは , 正しくアクセスできません。 ■ I/O ポートアクセス ポートへのアクセスはバイトアクセスのみです。 ■ 兼用ポートの機能切換え PORT と兼用端子の切換えは , PFR ( ポートファンクションレジスタ ) で行います。た だし , バス端子は外バスの設定により切り換わります。 ■ 内蔵 RAM リセット解除直後は , 内蔵 RAM 容量の制限機能が働いており , デバイスに搭載されて いる RAM 容量に関わらず , データ用 / プログラム実行用ともに , 4K バイトしか使用で きません。 制限機能を解除するには , 設定を書き換えてください。 また , 上記の設定を書き換えた場合 , 直後に最低 1 つの nop 命令を置いてください。 ■ フラッシュメモリ プログラミングモード時は , フラッシュメモリを割込みベクタテーブルとして使用で きません ( リセットは可能です ) 。 33 第 2 章 デバイスの取扱いについて ■ PS レジスタに関する注意事項 一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ ご使用時に割込み処理ルーチンでブレークしたり , PS レジスタ内のフラグの表示内容 が更新されたりする場合があります。いずれの場合も , EIT から復帰後以降に , 正しく 再処理を行うように設計されていますので , EIT 前後の動作は仕様どおりの処理を行い ます。 1) DIV0U/DIV0S 命令の直前の命令では , ユーザ割込み・NMI を受け付けた場合 , ス テップ実行を行った場合 , データイベントまたはエミュレータメニューにてブレー クした場合 , 以下の動作を行う場合があります。 • D0, D1 フラグが , 先行して更新されます。 • EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。 • EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0, D1 フラグが 1) と同じ値に更新 されます。 2) ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために ORCCR/ STILM/MOV Ri, PS の各命令が実行されると , 以下のような動作を行います。 • PS レジスタが先行して更新されます。 • EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。 • EIT から復帰後 , 上記命令が実行され , PS レジスタが 1) と同じ値に更新されます。 ■ デバッガ関連の注意事項 ● RETI 命令のステップ実行 ステップ実行する際 , 割込みが頻繁に発生する環境下では , 該当割込み処理ルーチンだ けを繰り返して実行します。その結果 , メインルーチンや割込みレベルの低いプログラ ムの実行が行われなくなります ( 例えば , タイムベースタイマの割込みを許可していた 場合, RETIをステップ実行すると, 必ずタイムベースタイマのルーチンの先頭でブレー クします ) 。 該当割込み処理ルーチンのデバッグが不要になった段階で , 該当割込みを禁止してく ださい。 ● ブレーク機能 ハードウェアブレーク ( イベントブレーク含む ) の対象アドレスが現在のシステムス タックポインタのアドレスや , スタックポインタを含む領域に設定されていると , ユー ザプログラムに実際のデータアクセス命令がないにもかかわらず , 1 命令実行後にブ レークしてしまいます。 回避するために , システムスタックポインタのアドレスを含む領域に対する ( ワード ) アクセスを , ハードウェアブレーク ( イベントブレーク含む ) の対象に設定しないでく ださい。 ● 内蔵 ROM ( フラッシュメモリ , MASKROM) 内蔵 ROM 領域を DMAC 転送先に設定しないでください。 内蔵 ROM 領域を DMAC 転送先に設定した場合 , DMAC 転送中にブレークが発生する と , 内蔵 ROM 領域が書きかえられるおそれがあります。内蔵 ROM 領域を DMAC 転 送元とすることは , 可能です。 34 第 2 章 デバイスの取扱いについて ● ソフトウェアブレーク (INTE 命令 ) とユーザ割込み /NMI の同時発生 ソフトウェアブレークとユーザ割込み /NMI が同時に発生した場合 , デバッガにて , 以 下の現象が発生することがあります。 • 設定したブレークポイントでないところを示して停止します。 • 停止後の再実行が正しく行われません。 本現象が発生した場合は , ソフトウェアブレークではなく , ハードウェアブレークをご 使用ください。また , モニタデバッガをご使用の場合は , 該当個所にブレークを設定し ないようにしてください。 ● オペランドブレークについて DSU のオペランドブレークとして設定している領域にスタックポインタがあると誤動 作の原因となります。システムスタックポインタのアドレスを含む領域に対するアク セスを , データイベントブレークの対象にしないでください。 35 第 2 章 デバイスの取扱いについて 2.1.1 C コンパイラ (fcc911) C 言語でプログラミングをするにあたって , リトルエンディアン領域に対して次のよ うな操作を行ったときは動作が保証できません。ご注意ください。 • 初期値付き変数の配置 • 構造体代入 • 文字列操作関数を使った文字型配列以外の操作 • 文字列操作関数使用時の -K lib オプションの指定 • double 型 , long double 型の利用 • スタックのリトルエンディアン領域への配置 ■ 初期値付き変数の配置 リトルエンディアン領域に , 初期値付きの変数を配置することはできません。 コンパイラは , リトルエンディアンの初期値を生成する機能を持っていません。また , リトルエンディアン領域に変数を配置することはできますが , 初期値を設定すること はできません。 プログラムの先頭で , 初期値を設定する処理を行ってください。 [ 例 ] リトルエンディアン領域の変数 little_data に初期値を設定する場合 extern int little_data; void little_init(void) { little_data = 初期値 ; } void main(void) { little_init(); ... } 36 第 2 章 デバイスの取扱いについて ■ 構造体代入 構造体どうしの代入を行うとき , コンパイラは最適な転送方法を選択してバイト , ハー フワード , ワードごとの転送を行います。 このため , 通常の領域に割り当てられた構造体変数とリトルエンディアンの領域に割 り当てられた構造体変数の間で構造体代入を行うと , 正しい結果が得られません。 構造体のメンバをそれぞれ代入してください。 [ 例 ] リトルエンディアン領域の構造体変数 little_st に構造体代入する場合 struct tag { char c; int i; } normal_st; extern struct tag little_st; #define STRMOVE(DEST,SRC) DEST.c=SRC.c;DEST.i=SRC.i; void main(void) { STRMOVE(little_st,normal_st); } また , 構造体のメンバの配置はコンパイラごとに違うので , ほかのコンパイラでコンパ イルされた構造体とは , メンバの配置が違っていることが考えられます。このようなと きには , 前述の方法においても正しい結果が得られません。 構造体のメンバの配置が一致しないときは , リトルエンディアン領域に構造体変数を 配置しないでください。 ■ 文字列操作関数を使った文字型配列以外の操作 標準ライブラリとして用意されている文字列操作関数はバイト単位での処理を行いま す。 このためリトルエンディアン領域に配置された char, unsigned char, signed char 型以外の 型を持つ領域に対し , 文字列操作関数を使った処理を行うと , 正しい結果が得られませ ん。 このような処理は行わないでください。 [ 不具合例 ] memcpy でのワードデータの転送 int big = 0x01020304; /* ビッグエンディアン領域 */ extern int little; /* リトルエンディアン領域 */ memcpy(&little,&big,4); /* memcpy による転送 */ 上記の実行結果は以下のようになり , ワードデータの転送結果としては誤りになりま す。 (ビッグエンディアン領域) 01 02 03 04 (リトルエンディアン領域) → memcpy → (正しい結果) 04 03 02 01 02 03 04 01 37 第 2 章 デバイスの取扱いについて ■ 文字列操作関数使用時の -K lib オプションの指定 -K lib オプションを指定すると , コンパイラはいくつかの文字列操作関数に対し , イン ライン展開を行います。このとき最適な処理を選択するため , ハーフワードまたはワー ドごとの処理に変更される場合があります。 このため , リトルエンディアン領域に対する処理が正しく実行されません。 リトルエンディアン領域に対し文字列操作関数を使った処理を行っているときは , -K lib オプションを指定しないでください。また , -K lib オプションを包含する -O 4 オプ ションや -K speed オプションも同様に指定しないでください。 ■ double 型 , long double 型の利用 double 型および long double 型へのアクセスは , 上位 1 ワード , 下位 1 ワードをそれぞれ アクセスする方法で行われます。 このため , リトルエンディアン領域に配置された double 型および long double 型変数に 対するアクセスは , 正しい結果が得られません。 リトルエンディアン領域に割り当てられた同一型の変数どうしの代入は可能ですが , 最適化の結果これらの代入が定数の代入に置き換えられるときもあります。 double 型および long double 型変数をリトルエンディアン領域に配置しないでください。 [ 不具合例 ] double 型データの転送 double big = 1.0; /* ビッグエンディアン領域 */ extern int little; /* リトルエンディアン領域 */ little = big; /* double 型データの転送 */ 上記の実行結果は以下のように , double 型データの転送結果としては誤りになります。 (ビッグエンディアン領域) 3f f0 00 00 (正しい結果) 00 00 00 00 00 (リトルエンディアン領域) 00 00 → 00 00 00 00 00 f0 f0 3f 00 00 00 00 3f ■ スタックのリトルエンディアン領域への配置 リトルエンディアン領域にスタックの一部あるいは全部が配置された場合 , 動作を保 証しません。 38 第 2 章 デバイスの取扱いについて 2.1.2 アセンブラ (fasm911) FR ファミリのアセンブラ言語でプログラミングをするにあたって , リトルエンディ アン領域に関して以下の項目に注意してください。 ■ セクション リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク ションとして定義してください。 もし , リトルエンディアン領域にコードやスタック , 初期値付きデータセクションなど の指定をした場合には , MB91350A シリーズでのアクセス動作は保証できなくなりま す。 [例] /* 正しいリトルエンディアン領域のセクション定義 */ .SECTION Little_Area, DATA, ALIGN=4 Little_Word: .RES.W 1 Little_Half: .RES.H 1 Little_Byte: .RES.B 1 39 第 2 章 デバイスの取扱いについて ■ データのアクセス リトルエンディアン領域へのデータのアクセスを行う場合 , そのデータの値は , エン ディアンを意識せずにコーディングできます。 ただし , リトルエンディアン領域のデータへのアクセスは , 必ずデータサイズと同じサ イズでアクセスしてください。 [例] LDI #0x01020304, r0 LDI #Little_Word, r1 LDI #0x0102, r2 LDI #Little_Half, r3 LDI #0x01, r4 LDI #Little_Byte, r5 /* 32 ビットデータは , ST 命令 ( や LD 命令など ) でアクセスします。*/ ST r0, @r1 /* 16 ビットデータは , STH 命令 ( や LDH 命令など ) でアクセスします。*/ STH r2, @r3 /* 8 ビットデータは , STB 命令 ( や LDB 命令など ) でアクセスします。*/ STB r4, @r5 本品種でデータサイズと異なるサイズでアクセスした場合には , その値の保証はでき ません。例えば , 連続する 2 つの 16 ビットデータを , 32 ビットアクセス命令を使って 一度にアクセスした場合には , データの値の保証はできません。 40 第 2 章 デバイスの取扱いについて 2.1.3 リンカ (flnk911) リトルエンディアン領域を使用するプログラムの作成にあたって , リンク時のセク ション配置では以下の項目に注意してください。 ■ セクション種別の制限 リトルエンディアン領域には , 初期値なしデータセクションのみ配置することができ ます。 リトルエンディアン領域に初期値付きデータセクション , スタックセクション , および コードセクションを配置した場合 , リンカの内部では , ビッグエンディアンでアドレス 解決などの演算処理を行っていますので , プログラム動作は保証できなくなります。 ■ エラーの未検出 リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し た配置が行われても , エラーメッセージを通知することはありません。 リトルエンディアン領域に配置したセクションの内容を十分にご確認のうえ , ご使用 ください。 41 第 2 章 デバイスの取扱いについて 2.1.4 デバッガ (sim911, eml911, mon911) リトルエンディアン領域を使用するプログラムの作成にあたって , デバッガに関し ては以下の項目に注意してください。 ■ シミュレータデバッガ リトルエンディアン領域を示すような , メモリ空間指定コマンドはありません。 したがって , メモリ操作コマンドやメモリを操作する命令実行は , ビッグエンディアン として扱われます。 ■ エミュレータデバッガ , モニタデバッガ 以下のコマンドでリトルエンディアン領域をアクセスした場合 , 正常な値として扱わ れませんので注意してください。 • set memory/show memory/enter/examine/set watch コマンド : 浮動小数点 (single/double) のデータを扱った場合 , 指定した値が設定・表示ともにで きません。 • search memory コマンド : ハーフワード , ワードのデータの検索を行った場合 , 指定した値で検索が行われま せん。 • 行 / 逆アセンブル ( ソースウィンドウの逆アセンブル表示を含む ) 正常な命令コードが設定・表示ともにできません ( リトルエンディアン領域には , 命令コードを配置しないようにしてください ) 。 • call/show call コマンド : スタック領域がリトルエンディアン領域に置かれた場合 , 正常に動作しません ( リ トルエンディアン領域にスタック領域を配置しないようにしてください ) 。 42 第3章 CPU および制御部 この章では , FR ファミリの CPU コアの機能を知 るために , アーキテクチャ , 仕様 , 命令などの基本 的なことについて説明します。 3.1 メモリ空間 3.2 内部アーキテクチャ 3.3 プログラミング・モデル 3.4 データ構造 3.5 メモリマップ 3.6 分岐命令 3.7 EIT ( 例外・割込み・トラップ ) 3.8 動作モード 3.9 リセット ( デバイス初期化 ) 3.10 クロック生成制御 3.11 デバイス状態制御 3.12 時計タイマ 3.13 メイン発振安定待ちタイマ 3.14 周辺停止制御 43 第 3 章 CPU および制御部 3.1 メモリ空間 FR ファミリの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニアにアク セスを行います。 ■ ダイレクトアドレッシング領域 アドレス空間の下記の領域は I/O 用に使用されます。 この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ スを指定できます。 ダイレクト領域は , アクセスするデータのサイズにより , 以下のように異なります。 • バイトデータアクセス 000H ∼ 0FFH • ハーフワードアクセス 000H ∼ 1FFH • ワードデータアクセス 000H ∼ 3FFH ■ メモリマップ 図 3.1-1 から図 3.1-4 に , FR ファミリのメモリ空間を示します。 図 3.1-1 MB91F355A/MB91355A/MB91F353A/MB91353A/MB91F357B のメモリマップ シングルチップモード 内ROM外バスモード 外ROM外バスモード 0000 0000 H 0000 0400 H I/O I/O I/O I/O I/O I/O アクセス禁止 アクセス禁止 アクセス禁止 内蔵RAM 8KB (Instruction) 内蔵RAM 8KB (Instruction) 内蔵RAM 8KB (Instruction) 内蔵RAM 16KB (Data) 内蔵RAM 16KB (Data) 内蔵RAM 16KB (Data) アクセス禁止 アクセス禁止 0001 0000 H 0003 E000 H 0004 0000 H 0004 4000 H 0005 0000 H アクセス禁止 外部領域 0008 0000 H 内蔵ROM 512KB 内蔵ROM 512KB 0010 0000 H アクセス禁止 FFFF FFFF H 44 外部領域 外部領域 ダイレクト アドレッシング領域 I/Oマップ参照 第 3 章 CPU および制御部 図 3.1-2 MB91351A のメモリマップ シングルチップモード 内ROM外バスモード 外ROM外バスモード 0000 0000 H 0000 0400 H 0001 0000 H 0003 E000 H 0004 0000 H 0004 4000 H 0005 0000 H I/O I/O I/O I/O I/O I/O アクセス禁止 アクセス禁止 アクセス禁止 内蔵RAM 8KB (Instruction) 内蔵RAM 8KB (Instruction) 内蔵RAM 8KB (Instruction) 内蔵RAM 16KB (Data) 内蔵RAM 16KB (Data) 内蔵RAM 16KB (Data) アクセス禁止 アクセス禁止 アクセス禁止 0008 0000 H 000A 0000 H ダイレクト アドレッシング領域 I/Oマップ参照 外部領域 アクセス禁止 内蔵ROM 384KB 内蔵ROM 384KB アクセス禁止 外部領域 外部領域 0010 0000 H FFFF FFFF H 図 3.1-3 MB91354A/MB91352A のメモリマップ シングルチップモード 内ROM外バスモード 外ROM外バスモード 0000 0000 H 0000 0400 H I/O I/O I/O I/O I/O I/O アクセス禁止 アクセス禁止 アクセス禁止 内蔵RAM8KB (Instruction) 内蔵RAM8KB (Instruction) 内蔵RAM8KB (Instruction) 内蔵RAM8KB (Data) 内蔵RAM8KB (Data) 内蔵RAM8KB (Data) アクセス禁止 アクセス禁止 0001 0000 H 0003 E000 H 0004 0000 H 0004 2000 H 0005 0000 H アクセス禁止 0008 0000 H ダイレクト アドレッシング領域 I/Oマップ参照 外部領域 アクセス禁止 000A 0000 H 内蔵ROM384KB 内蔵ROM384KB 外部領域 0010 0000 H アクセス禁止 外部領域 FFFF FFFF H 45 第 3 章 CPU および制御部 図 3.1-4 MB91F356B のメモリマップ シングルチップモード 内ROM外バスモード 外ROM外バスモード 0000 0000 H 0000 0400 H I/O I/O I/O I/O I/O I/O アクセス禁止 アクセス禁止 アクセス禁止 内蔵RAM 8KB (Instruction) 内蔵RAM 8KB (Instruction) 内蔵RAM 8KB (Instruction) 内蔵RAM 16KB (Data) 内蔵RAM 16KB (Data) 内蔵RAM 16KB (Data) アクセス禁止 アクセス禁止 ダイレクト アドレッシング領域 I/Oマップ参照 0001 0000 H 0003 E000 H 0004 0000 H 0004 4000 H 0005 0000 H 0008 0000 H 000C 0000 H アクセス禁止 外部領域 アクセス禁止 内蔵ROM 256KB 内蔵ROM 256KB アクセス禁止 外部領域 外部領域 0010 0000 H FFFF FFFF H • 各モードの設定は , INIT ネゲート後のモードベクタフェッチにより決定します ( モードの設定に関しては , 「3.8.2 モード設定」を参照してください ) 。 • MB91V350A では , MB91355A/F355A/353A/F353A/F357B メモリマップにおいて内蔵 ROM512K バイトの領域が , MB91F356B メモリマップにおいて内蔵 ROM256K バイト の領域が , エミュレーション RAM となります。また , 内蔵 RAM(Instruction) が 8K バイ トから 16K バイトに拡張されています。 • 内蔵 RAM は , リセット解除直後は使用可能領域が制限されています。また , 使用可 能領域の設定を書き換えた場合 , 直後に最低 1 つの nop 命令を置いてください。 46 第 3 章 CPU および制御部 3.2 内部アーキテクチャ FR ファミリの内部アーキテクチャの構造および命令概要について説明します。 ■ 内部アーキテクチャの概要 FR ファミリ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向けた 高機能命令を導入した , 高性能コアです。 47 第 3 章 CPU および制御部 3.2.1 内部アーキテクチャ 内部アーキテクチャの特長および構造について説明します。 ■ 内部アーキテクチャの特長 • RISC アーキテクチャの採用 基本命令 1 命令 1 サイクル • 32 ビットアーキテクチャ 汎用レジスタ 32 ビット× 16 本 • 4G バイトのリニアなメモリ空間 • 乗算器の搭載 - 32 ビット× 32 ビット乗算 5 サイクル - 16 ビット× 16 ビット乗算 3 サイクル • 割込み処理機能の強化 - 高速応答速度 (6 サイクル ) - 多重割込みのサポート - レベルマスク機能 (16 レベル ) • I/O 操作用命令の強化 - メモリ - メモリ転送命令 - ビット処理命令 • 高いコード効率 基本命令語長 16 ビット • 低消費電力 - スリープモードストップモード - ギア機能 48 第 3 章 CPU および制御部 ■ 内部アーキテクチャの構造 FR の CPU は命令バスとデータバスが独立したはハーバードアーキテクチャ構造を採 用しています。 32 ビット←→ 16 ビットバスコンバータは 32 ビットバス (F-bus) に接続され , CPU と周 辺リソースとのインタフェースを実現します。 ハーバード←→プリンストン バスコンバータは I-bus, D-bus 双方に接続され , CPU とバ スコントローラとのインタフェースを実現します。 図 3.2-1 に内部アーキテクチャの構造を示します。 図 3.2-1 内部アーキテクチャの構造 FRex CPU D-bus I-bus 32 I アドレス ハーバード 32 外部アドレス 24 I データ D アドレス データ RAM 32 外部データ 16 プリンストン バス D データ コンバータ 32 32ビット アドレス 32 16ビット データ 32 バスコンバータ 16 F-bus R-bus 周辺リソース 内部I/O バスコンバータ 49 第 3 章 CPU および制御部 ■ CPU CPU は 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの です。1 サイクルあたり 1 命令の実行を行うため , 5 段階の命令パイプライン方式を採 用しています。パイプラインは以下のステージから構成されています。 図 3.2-2 に , 命令パイプラインの構成を示します。 • 命令フェッチ (IF) :命令アドレスを出力し , 命令をフェッチします。 • 命令デコード (ID) :フェッチした命令をデコードします。レジスタの読出しも行 います。 • 実行 (EX) :演算を実行します。 • メモリアクセス (MA) :メモリに対するロードまたはストアのアクセスを行います。 • ライトバック (WB) :演算結果 ( またはロードされたメモリデータ ) をレジスタに 書き込みます。 図 3.2-2 命令パイプライン CLK ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 命令1 WB 命令2 MA WB 命令3 EX MA WB 命令4 ID EX MA WB 命令5 IF ID EX MA WB IF ID EX MA 命令6 WB 命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。 命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ リウェイトを伴ったロード・ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイ クル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い 場合も命令の実行速度が低下します。 ■ 32 ビット←→ 16 ビットバスコンバータ 32 ビット←→ 16 ビットバスコンバータは , 32 ビット幅で高速アクセスされる F-bus と , 16 ビット幅でアクセスされる R-bus とのインタフェースを行い , CPU から内蔵周辺回 路へのデータアクセスを実現します。 CPU から R-bus に対し 32 ビット幅のアクセスがあった場合 , このバスコンバータがそ れを 2 回の 16 ビット幅アクセスに変換してアクセスを行います。内蔵周辺回路の一部 にはアクセス幅に関して制限のあるものがあります。 50 第 3 章 CPU および制御部 ■ ハーバード←→プリンストン バスコンバータ ハーバード←→プリンストン バスコンバータは , CPU の命令アクセスとデータアクセ スの整合をとり , 外部バスとのスムーズなインタフェースを実現します。 CPU は命令バスとデータバスが独立したはハーバードアーキテクチャ構造です。一方 , 外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構 造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつ け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス アクセス順位が常に最適化されたものになります。 51 第 3 章 CPU および制御部 3.2.2 命令概要 FR は , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理演算と ビット操作およびダイレクトアドレッシング命令をサポートしています。命令セッ トの一覧は「付録 D 命令一覧表」に示します。 各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効 率を持ちます。 命令セットは以下の機能グループに分けることができます。 • 算術演算 • ロードとストア • 分岐 • 論理演算とビット操作 • ダイレクトアドレッシング • その他 ■ 算術演算 標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付演算や , アドレス計算に便利なフラグ値を変化させない演算も可能です。 さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32 ビットのステップ除算命令を持ちます。 また , レジスタに即値をセットする即値転送命令や , レジスタ間転送命令も備えていま す。 算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行 います。 ■ ロードとストア ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内 の周辺回路 (I/O) への読出しと書込みにも使用されます。 ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま た一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ スプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付きレ ジスタ間接のメモリアドレッシングも可能です。 ■ 分岐 分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと 持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ いては「3.6 分岐命令」に記述します。 ■ 論理演算とビット操作 論理演算命令は汎用レジスタ間または汎用レジスタとメモリ ( および I/O) 間で AND, OR, EOR の論理演算を行うことが可能です。またビット操作命令はメモリ ( および I/O) の内 容を直接操作することができます。 メモリアドレッシングは一般的なレジスタ間接です。 52 第 3 章 CPU および制御部 ■ ダイレクトアドレッシング ダイレクトアドレッシング命令は , I/O と汎用レジスタ間または I/O とメモリ間のアク セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す ることにより , 高速 , 高効率なアクセスを行うことができます。一部の命令については レジスタインクリメント・デクリメント付きレジスタ間接のメモリアドレッシングも 可能です。 ■ その他の命令概要 PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また , 高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。 53 第 3 章 CPU および制御部 3.3 プログラミング・モデル FR ファミリのプログラミングモデル , 汎用レジスタ , および専用レジスタについて 説明します。 ■ 基本プログラミングモデル 図 3.3-1 に , FR ファミリの基本プログラミングモデルを示します。 図 3.3-1 基本プログラミングモデル 32ビット 〔初期値〕 R0 XXXX XXXX H R1 … … … 汎用レジスタ R12 … … … … … R13 … R14 R15 AC FP XXXX XXXX H SP 0000 0000 H プログラムカウンタ PC プログラムステータス PS テーブルベースレジスタ TBR リターンポインタ RP システムスタックポインタ SSP ユーザスタックポインタ USP 乗除算結果レジスタ 54 MDH MDL - ILM - SCR CCR 第 3 章 CPU および制御部 3.3.1 汎用レジスタ レジスタ R0 ∼ R15 は汎用レジスタです。 各種演算におけるアキュムレータ , およびメモリアクセスのポインタとして使用さ れます。 ■ 汎用レジスタ 図 3.3-2 に , 汎用レジスタの構成を示します。 図 3.3-2 汎用レジスタの構成 32ビット 〔初期値〕 R0 R1 … … R12 R13 R14 R15 … … AC FP SP XXXX XXXXH … … … … … XXXX XXXXH 0000 0000H 16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために 一部の命令が強化されています。 • R13: 仮想アキュムレータ • R14: フレームポインタ • R15: スタックポインタ リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H (SSP の値 ) とな ります。 55 第 3 章 CPU および制御部 3.3.2 専用レジスタ 専用レジスタは , 特定の目的のために使用します。 FR ファミリでは , 以下の専用レジスタが用意されています。 • PS (Program Status) • CCR (Condition Code Register) • SCR (System Condition code Register) • ILM • PC (Program Counter) • TBR (Table Base Register) • RP (Return Pointer) • SSP (System Stack Pointer) • USP (User Stack Pointer) • 乗除算レジスタ (Multiply & Divide register) ■ PS (Program Status) PS は , プログラムステータスを保持するレジスタで , ILM と SCR, CCR の 3 つのパー トに分かれています。 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。 書込みは無効です。 PS(Program Status) のレジスタ構成は , 以下のとおりです。 ビット位置→ 31 20 16 ── ── ILM 56 10 8 7 SCR CCR 0 第 3 章 CPU および制御部 ■ CCR (Condition Code Register) CCR (Condition Code Register) のレジスタ構成は , 以下のとおりです。 7 - 6 - 5 S 4 I 3 2 N Z 1 V 0 [ 初期値 ] C --00XXXXB [ ビット 5] スタックフラグ R15 として使用されるスタックポインタを指定します。 値 内 容 0 SSP が R15 として使用されます。 EIT 発生時 , 自動的に "0" となります ( ただし , スタックに退避される値はクリアされる 前の値です ) 。 1 USP が R15 として使用されます。 • リセットにより "0" にクリアされます。 • RETI 命令実行時は "0" に設定してください。 [ ビット 4] 割込み許可フラグ ユーザ割込み要求の許可・禁止を制御します。 値 内 容 0 ユーザ割込み禁止。 INT 命令実行時 , "0" にクリアされます ( ただし , スタック退避させる値はクリアする前 の値です ) 。 1 ユーザ割込み許可。 ユーザ割込み要求のマスク処理は , ILM の保持する値により制御されます。 リセットにより "0" にクリアされます。 [ ビット 3] ネガティブフラグ 演算結果を 2 の補数で表現された整数とみなしたときの符号を示します。 値 内 容 0 演算結果が正の値であったことを示します。 1 演算結果が負の値であったことを示します。 リセットによる初期状態は不定です。 [ ビット 2] ゼロフラグ 演算結果が "0" であったかどうかを示します。 値 内 容 0 演算結果が "0" 以外の値であったことを示します。 1 演算結果が "0" であったことを示します。 リセットによる初期状態は不定です。 57 第 3 章 CPU および制御部 [ ビット 1] オーバフローフラグ 演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 , オーバフローが生じたかどうかを示します。 値 内 容 0 演算の結果 , オーバフローは生じていないことを示します。 1 演算の結果 , オーバフローが生じたことを示します。 リセットによる初期状態は不定です。 [ ビット 0] キャリフラグ 演算により , 最上位ビットからのキャリまたはボローが発生したかどうかを示します。 値 内 容 0 キャリもボローも発生していないことを示します。 1 キャリまたはボローが発生したことを示します。 リセットによる初期状態は不定です。 ■ SCR (System Condition code Register) SCR (System Condition code Register) のレジスタ構成は , 以下のとおりです。 10 9 8 [ 初期値 ] D1 D0 T XX0B [ ビット 10, 9] ステップ除算用フラグ ステップ除算実行時の中間データを保持します。 除算処理の実行途中は , 変更してはいけません。ステップ除算実行途中にほかの処理を 行う場合は , PS レジスタの値を退避・復帰することによりステップ除算の再開が保証 されます。 • リセットによる初期状態は不定です。 • DIV0S 命令の実行により被除数と除数を参照して設定されます。 • DIV0U 命令の実行により , 強制的にクリアされます。 • DIV0S/DIV0U 命令とユーザ割込み , NMI 同時受付け EIT 処理ルーチン内で , EIT 分 岐前の PS レジスタの D0/D1 ビットを期待した処理を行わないでください。 • DIV0S/DIV0U 命令の直前に , ブレーク , ステップ等で停止させた場合 , PS レジスタ の D0/D1 ビットの表示は正しい値とならないことがあります。ただし , 復帰後の演 算結果は正しいものになります。 [ ビット 8] ステップトレーストラップフラグ ステップトレーストラップを有効にするかどうかを指定するフラグです。 値 内 容 0 ステップトレーストラップ無効です。 1 ステップトレーストラップ有効です。 このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となります。 • リセットにより "0" に初期化されます。 • ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用 時 , ユーザプログラム中で使用することはできません。 58 第 3 章 CPU および制御部 ■ ILM ILM のレジスタ構成は , 以下のとおりです。 20 19 18 17 16 [ 初期値 ] ILM4 ILM3 ILM2 ILM1 ILM0 01111B [ ビット 20 ∼ 16] 割込みレベルマスク値を保持するレジスタで , この ILM の保持する値がレベルマスク に使用されます。 CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される レベルよりも強い場合にのみ割込み要求が受け付けられます。 レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。 プログラムから設定可能な値には制限があります。 • 元の値が 16 ∼ 31 の時 : 新たな値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令を実行すると , ( 指定した値+ 16) という値が転送されます。 • 元の値が 0 ∼ 15 の時 : 0 ∼ 31 の任意の値が設定可能です。 リセットにより , 15 (01111B) に初期化されます。 ■ PC (Program Counter) PC(Program Counter) のレジスタ構成は , 以下のとおりです。 31 0 [ 初期値 ] XXXXXXXXH PC [ ビット 31 ∼ 0] プログラムカウンタで , 実行している命令のアドレスを示しています。 命令の実行を伴う PC の更新時に , ビット 0 は "0" に設定されます。ビット 0 が "1" に なる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。 ただし , その場合でもビット 0 は無効であり , 命令は 2 の倍数のアドレスに置く必要が あります。 リセットによる初期値は不定です。 ■ TBR (Table Base Register) TBR(Table Base Register) のレジスタ構成は , 以下のとおりです。 31 TBR 0 [ 初期値 ] 000FFC00H テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス を保持します。 リセットによる初期値は , 000FFC00H です。 59 第 3 章 CPU および制御部 ■ RP (Return Pointer) RP(Return Pointer) のレジスタ構成は , 以下のとおりです。 31 0 [ 初期値 ] XXXXXXXXH RP リターンポインタで , サブルーチンから復帰するアドレスを保持します。 CALL 命令実行時 , PC の値がこの RP に転送されます。 RETI 命令実行時 , RP の内容が PC に転送されます。 リセットによる初期値は不定です。 ■ SSP (System Stack Pointer) SSP(System Stack Pointer) のレジスタ構成は , 以下のとおりです。 31 0 [ 初期値 ] 00000000H SSP SSP は , システムスタックポインタです。 S フラグが "0" のとき , R15 として機能します。 SSP を明示的に指定することも可能です。 また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして も使用されます。 リセットによる初期値は 00000000H です。 ■ USP (User Stack Pointer) USP(User Stack Pointer) のレジスタ構成は , 以下のとおりです。 31 USP USP は , ユーザスタックポインタです。 S フラグが "1" のとき , R15 として機能します。 USP を明示的に指定することも可能です。 リセットによる初期値は不定です。 RETI 命令で使用することはできません。 60 0 [ 初期値 ] XXXXXXXXH 第 3 章 CPU および制御部 ■ 乗除算レジスタ (Multiply & Divide register) 乗除算レジスタ (Multiply & Divide register) のレジスタ構成は , 以下のとおりです。 31 0 MDH MDL 乗除算用のレジスタで , 各々 32 ビット長です。 リセットによる初期値は不定です。 • 乗算実行時 : 32 ビット× 32 ビットの乗算のとき , 64 ビット長の演算結果は , 以下の配置で乗除 算結果格納レジスタに格納されます。 MDH……上位 32 ビット MDL……下位 32 ビット 16 ビット× 16 ビットの乗算のときは , 以下のように結果が格納されます。 MDH……不定 MDL……結果 32 ビット • 除算実行時 : 計算開始時 , 被除数を MDL に格納します。 DIV0S/DIV0U, DIV1, DIV2, DIV3, DIV4S 命令の実行により除算を計算すると , 結果 が MDL と MDH に格納されます。 MDH……剰余 MDL……商 61 第 3 章 CPU および制御部 データ構造 3.4 FR ファミリのデータ構造について説明します。 ■ ビットオーダリング FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。 図 3.4-1 に , ビットオーダリングのデータ配置を示します。 図 3.4-1 ビットオーダリングのデータ配置 bit 31 29 30 27 28 25 26 23 24 21 22 19 20 17 18 15 16 13 14 11 12 9 10 7 8 5 6 3 4 1 2 MSB 0 LSB ■ バイトオーダリング FR ファミリでは , バイトオーダリングとして , ビッグエンディアンを採用しています。 図 3.4-2 に , バイトオーダリングのデータ配置を示します。 図 3.4-2 バイトオーダリングのデータ配置 MSB LSB メモリ ビット 31 23 15 7 0 10101010 11001100 11111111 00010001 ビット 7 0 n番地 10101010 (n+1)番地 11001100 (n+2)番地 11111111 (n+3)番地 00010001 62 第 3 章 CPU および制御部 ■ ワードアライメント ● プログラムアクセス FR ファミリのプログラムは , 2 の倍数のアドレスに配置する必要があります。 PC のビット 0 は , 命令の実行に伴う PC の更新時に , "0" に設定されます。 "1" になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけで す。 ただし , その場合でもビット 0 は無効であり , 命令は 2 の倍数のアドレスに置く必要が あります。 奇数アドレス例外はありません。 ● データアクセス FR ファミリでは , データアクセスを行う際 , その幅により以下のように強制的なアラ イメントがアドレスに対して施されます。 ワードアクセス : アドレスは , 4 の倍数 ( 最下位 2 ビットは強制的に "00") ハーフワードアクセス : アドレスは , 2 の倍数 ( 最下位ビットは強制的に "0") バイトアクセス : ── ワードおよびハーフワードデータアクセス時に , 一部のビットが強制的に "0" にされる のは , 実効アドレスの計算結果に対してです。 例えば , @ (R13, Ri) のアドレッシングモードの場合 , 加算前のレジスタは ( たとえ最下 位ビットが "1" であっても ) そのまま計算に使用され , 加算結果の下位ビットがマスク されます。計算前のレジスタがマスクされるわけではありません。 [ 例 ] LD @ (R13, R2) , R0 R13 00002222H R2 00000003H +) ──────────────── 加算結果 00002225H ↓ 下位 2ビット強制マスク アドレス 端子 00002224H 63 第 3 章 CPU および制御部 3.5 メモリマップ FR ファミリのメモリマップについて説明します。 ■ メモリマップ アドレス空間は 32 ビットリニアです。 図 3.5-1 に , メモリマップを示します。 図 3.5-1 メモリマップ 0000 0000 H バイト データ 0000 0100 H ハーフワード データ 0000 0200 H ワードデータ ダイレクト アドレッシング領域 0000 0400 H ~ ~ 000F FC00 H ベクタテーブル 初期領域 000F FFFF H ~ ~ FFFF FFFF H ● ダイレクトアドレッシング領域 アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ ングにより , 命令中で直接オペランドアドレスを指定することができます。 ダイレクトアドレス指定可能なアドレス領域の大きさは , データ長ごとに異なります。 • バイトデータ (8 ビット ) : 000H ∼ 0FFH • ハーフワードデータ (16 ビット ) : 000H ∼ 1FFH • ワードデータ (32 ビット ) : 000H ∼ 3FFH ● ベクタテーブル初期領域 000FFC00H ∼ 000FFFFFH の領域は EIT ベクタテーブル初期領域です。 EIT処理時に使用されるベクタテーブルは, TBRを書き換えることにより任意のアドレ スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。 64 第 3 章 CPU および制御部 3.6 分岐命令 FR ファミリの分岐命令について説明します。 ■ 分岐命令の概要 FR ファミリでは , 分岐命令に遅延スロット付きの動作と遅延スロットなしの動作を指 定することができます。 65 第 3 章 CPU および制御部 3.6.1 遅延スロット付き動作 分岐命令に遅延スロット付き動作を指定した場合について説明します。 ■ 遅延スロット付き動作の命令 以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。 JMP:D @Ri CALL:D label12 CALL:D @Ri RET:D BRA:D label9 BNO:D label9 BEQ:D label9 BNE:D label9 BC:D label9 BNC:D label9 BN:D label9 BP:D label9 BV:D label9 BNV:D label9 BLT:D label9 BGE:D label9 BLE:D label9 BGT:D label9 BLS:D label9 BHI:D label9 ■ 遅延スロット付き動作の動作説明 遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延 スロット」とよびます ) に置かれた命令を実行した後に分岐します。 分岐動作の前に遅延スロットの命令を実行するため, 見かけ上の実行速度が1サイクル となります。その代わり , 遅延スロットに有効な命令を入れることができないときは , NOP 命令を置く必要があります。 [例] ; 命令の並び ADD R1, R2 ; BRA:D LABEL ; 分岐命令 MOV R2, R3; 遅延スロット……分岐の前に実行される … R3, @R4 ; 分岐先 LABEL: ST 条件分岐命令の場合 , 分岐条件が成立するかしないかに関わらず , 遅延スロットに置か れた命令は実行されます。 遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の 更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで 記述された順番で実行されます。 以下に , 具体的な説明をします。 1) JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を更 新しても影響を受けません。 [例] LDI:32 #Label, R0 JMP:D @R0 ;Label に分岐 LDI:8 #0, ; 分岐先アドレスには影響を与えない … 66 R0 第 3 章 CPU および制御部 2) RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受 けません。 [例] RET:D ; これより前に設定された RP の示すアドレスへ分岐 MOV R8, RP ; リターン動作には影響を与えない … 3) Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。 [例] ; フラグ変化 ADD #1, R0 BC:D Overflow ; 上記の命令の実行結果により分岐 ANDCCR #0 ; このフラグ更新は上記分岐命令では参照しない … 4) CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により更 新された内容が読み出されます。 [例] CALL:D Label MOV ;RP を更新して分岐 RP, R0 ; 上記 CALL:D の実行結果の RP を転送 … ■ 遅延スロット付き動作の制限事項 ● 遅延スロットに置くことができる命令 遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。 • 1 サイクル命令 • 分岐命令ではないこと • 順番が変化した場合でも動作に影響を与えない命令 「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」または「a」または「b」 または「c」または「d」と記載された命令です。 ● ステップトレーストラップ 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト ラップは発生しません。 ● 割込み・NMI 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理し ません。 ● 未定義命令例外 遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このとき , 未定義命令は NOP 命令として動作します。 67 第 3 章 CPU および制御部 3.6.2 遅延スロットなし動作 分岐命令に遅延スロットなし動作を指定した場合について説明します。 ■ 遅延スロットなし動作の命令 以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。 JMP @Ri CALL label12 CALL @Ri RET BRA label9 BNO label9 BEQ label9 BNE label9 BC label9 BNC label9 BN label9 BP label9 BV label9 BNV label9 BLT label9 BGE label9 BLE label9 BGT label9 BLS label9 BHI label9 ■ 遅延スロットなし動作の動作説明 遅延スロットなしの動作では , あくまで命令の並びの順に実行します。 直後の命令が分岐前に実行されることはありません。 [例] ; 命令の並び ADD R1, R2 ; BRA LABEL ; 分岐命令 ( 遅延スロットなし ) MOV R2, R3 ; 実行されない … LABEL ST R3, @R4 ; 分岐先 遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな いとき 1 サイクルとなります。 遅延スロットなしの分岐命令は , 遅延スロットに適当な命令を入れることができない ために NOP を明記した遅延スロット付き分岐命令に比べて , 命令コード効率を上げる ことができます。 遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ うでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率を 両立させることが可能となります。 68 第 3 章 CPU および制御部 3.7 EIT ( 例外・割込み・トラップ ) EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断 してほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt), トラップ (Trap) の総称です。 例外とは , 実行中のコンテキストに関連して発生する事象です。例外を起こした命 令から再実行します。 割込みとは , 実行中のコンテキストに無関係に発生する事象です。イベント要因は , ハードウェアです。 トラップとは , 実行中のコンテキストに関連して発生する事象です。システムコー ルのようにプログラムで指示するものがあります。トラップを起こした命令の次の 命令から再実行します。 ■ EIT の特長 • 割込みに多重割込みをサポート • 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 ) • トラップ命令 (INT) • エミュレータ起動用 EIT ( ハードウェア / ソフトウェア ) ■ EIT 要因 EIT 要因として , 以下のものがあります。 • リセット • ユーザ割込み ( 内部リソース , 外部割込み ) • NMI • 遅延割込み • 未定義命令例外 • トラップ命令 (INT) • トラップ命令 (INTE) • ステップトレーストラップ • コプロセッサ不在トラップ • コプロセッサエラートラップ <注意事項> 分岐命令の遅延スロットには , EIT に関して制約があります。詳細は , 「3.6 分岐命令」を 参照してください。 ■ EIT からの復帰 EIT から復帰するためには , RETI 命令を実行します。 69 第 3 章 CPU および制御部 3.7.1 EIT の割込みレベル 割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。 ■ EIT の割込みレベル 表 3.7-1 に , 各レベルの割当てを示します。 表 3.7-1 割込みレベル レベル 割込み要因 2 進数 10 進数 00000 0 ( システム予約 ) … … … … 00011 … 3 ( システム予約 ) 00100 4 00101 5 ( システム予約 ) … … … … 01110 … 14 … 01111 15 NMI ( ユーザ用 ) 10000 16 割込み 10001 17 割込み … … … … 11110 … 30 … 割込み 11111 31 ─ 注意事項 … { INTE 命令 ステップトレーストラップ ILM の元の値が 16 ∼ 31 のとき , この 範囲の値をプログラムにより ILM に設 定することはできません。 ( システム予約 ) ILM 設定時 , ユーザ割込み禁止 ICR 設定時 , 割込み禁止 ( 注意事項 ) 操作が可能なのは , 16 ∼ 31 のレベルです。 未定義命令例外, コプロセッサ不在トラップ, コプロセッサエラートラップ, そしてINT 命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。 ■ I フラグ I フラグは , 割込みの許可・禁止を指定するフラグです。PS レジスタの CCR のビット 4 として設けられています。 70 値 内 容 0 割込み禁止。 INT 命令実行時 "0" にクリアされます ( ただし , スタック退避させる値はクリアする前 の値です ) 。 1 割込み許可。 割込み要求のマスク処理は , ILM の保持する値により制御されます。 第 3 章 CPU および制御部 ■ ILM ILM は , 割込みレベルマスク値を保持する PS レジスタ (20 ∼ 16) です。 CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される レベルよりも強い場合にのみ割込み要求が受け付けられます。 レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。 プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値 として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指定 した値+ 16) という値が転送されます。 元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。任意の値を設定するに は STILM 命令を使用します。 ■ 割込み・NMI に対するレベルマスク NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.7-1 ) が ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したとき はマスクされ , 要求は受理されません。 要因の持つ割込みレベル ≧ レベルマスク値 71 第 3 章 CPU および制御部 3.7.2 ICR (Interrupt Control Register) 割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを 設定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O 空間にマッピングされており , CPU からはバスを通してアクセスされます。 ■ ICR ビット構成 ICR のビット構成は , 以下のとおりです。 7 6 5 4 3 2 1 0 - - - ICR4 R ICR3 R/W ICR2 R/W ICR1 R/W ICR0 R/W [ 初期値 ] ---111111B [ ビット 4] ICR4 は , 常に "1" です。 [ ビット 3 ∼ 0] ICR3 ∼ 0 対応する割込み要因の割込みレベルの下位 4 ビットです。リード・ライト可能です。 ビット 4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定することができます。 ■ ICR マッピング 表 3.7-2 に , 割込み要因と割込み制御レジスタ , 割込みベクタの割当てを示します。 表 3.7-2 割込み要因と割込み制御レジスタ , 割込みベクタ 割込み制御レジスタ 割込み要因 対応する割込みベクタ 番号 番号 アドレス IRQ00 ICR00 IRQ01 10 進 00000440H 10H 16 TBR+3BCH ICR01 00000441H 11H 17 TBR+3B8H IRQ02 ICR02 00000442H 12H 18 TBR+3B4H … … … … … … … IRQ45 … ICR45 … 0000046DH … 3DH … 61 … TBR+308H IRQ46 ICR46 0000046EH 3EH 62 TBR+304H IRQ47 ICR47 0000046FH 3FH 63 TBR+300H ・TBR 初期値 :000F FC00H ・「第 9 章 割込みコントローラ」を参照してください。 72 アドレス 16 進 第 3 章 CPU および制御部 3.7.3 SSP (System Stack Pointer) SSP が , EIT の受理および復帰動作時のデータ退避・復帰用スタックを示すポイン タとして使用されます。 ■ SSP (System Stack Pointer) SSP のレジスタ構成は , 以下のとおりです。 31... SSP ...0 [ 初期値 ] 00000000H EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加 算されます。 リセットによる初期値は 00000000H です。 SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。 73 第 3 章 CPU および制御部 割込みスタック 3.7.4 SSP により示される領域で , PC および PS の値が退避・復帰されます。 割込み後は SSP の示すアドレスに PC, (SSP + 4) のアドレスに PS が格納されてい ます。 ■ 割込みスタック 図 3.7-1 に , 割込みスタックの例を示します。 図 3.7-1 割込みスタック [割込前] SSP 80000000H [割込後] SSP 7FFFFFF8H メモリ 80000000H 7FFFFFFCH 7FFFFFF8H 74 80000000H 7FFFFFFCH 7FFFFFF8H PS PC 第 3 章 CPU および制御部 3.7.5 TBR (Table Base Register) Table Base Register は , EIT 用ベクタテーブルの先頭アドレスを示すレジスタで す。 ■ TBR (Table Base Register) TBR のレジスタ構成は , 以下のとおりです。 31... TBR ...0 [ 初期値 ] 000FFC00H TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ スとなります。 リセットによる初期値は 000FFC00H です。 75 第 3 章 CPU および制御部 3.7.6 EIT ベクタテーブル TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。 ■ EIT ベクタテーブル 1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は以下のと おりです。 vctadr=TBR + vctofs =TBR + (3FCH − 4 × vct) vctadr: ベクタアドレス vctofs: ベクタオフセット vct: ベクタ番号 加算結果の下位 2 ビットは常に "00" として扱われます。 000FFC00H ∼ 000FFFFFH の領域がリセットによるベクタテーブルの初期領域です。 ベクタの一部には特殊な機能が割り当てられています。 表 3.7-3 に , アーキテクチャ上のベクタテーブルを示します。 表 3.7-3 ベクタテーブル (1 / 3) 割込み番号 割込みレベル オフセット TBR デフォルト のアドレス 00 - 3FCH 000FFFFCH 1 01 - 3F8H 000FFFF8H システム予約 2 02 - 3F4H 000FFFF4H システム予約 3 03 - 3F0H 000FFFF0H 000FFFECH 割込み要因 リセット *1 モードベクタ *1 16 進 0 システム予約 4 04 - 3ECH システム予約 5 05 - 3E8H 000FFFE8H システム予約 6 06 - 3E4H 000FFFE4H コプロセッサ不在トラップ 7 07 - 3E0H 000FFFE0H コプロセッサエラートラップ 8 08 - 3DCH 000FFFDCH INTE 命令 9 09 - 3D8H 000FFFD8H 命令ブレーク例外 10 0A - 3D4H 000FFFD4H オペランドブレークトラップ 11 0B - 3D0H 000FFFD0H ステップトレーストラップ 12 0C - 3CCH 000FFFCCH NMI 要求 (tool) 13 0D - 3C8H 000FFFC8H 未定義命令例外 14 0E - 3C4H 000FFFC4H NMI 要求 15 0F 15(FH) 固定 3C0H 000FFFC0H 外部割込み 0 16 10 ICR00 3BCH 000FFFBCH 外部割込み 1 17 11 ICR01 3B8H 000FFFB8H 外部割込み 2 18 12 ICR02 3B4H 000FFFB4H ICR03 3B0H 000FFFB0H 外部割込み 3 76 10 進 19 13 第 3 章 CPU および制御部 表 3.7-3 ベクタテーブル (2 / 3) 割込み番号 割込み要因 割込みレベル オフセット TBR デフォルト のアドレス 10 進 16 進 外部割込み 4 20 14 ICR04 3ACH 000FFFACH 外部割込み 5 21 15 ICR05 3A8H 000FFFA8H 外部割込み 6 22 16 ICR06 3A4H 000FFFA4H 外部割込み 7 23 17 ICR07 3A0H 000FFFA0H リロードタイマ 0 24 18 ICR08 39CH 000FFF9CH リロードタイマ 1 25 19 ICR09 398H 000FFF98H リロードタイマ 2 26 1A ICR10 394H 000FFF94H マスク可能要因 *2 27 1B ICR11 390H 000FFF90H マスク可能要因 *2 28 1C ICR12 38CH 000FFF8CH マスク可能要因 *2 29 1D ICR13 388H 000FFF88H マスク可能要因 *2 30 1E ICR14 384H 000FFF84H マスク可能要因 *2 31 1F ICR15 380H 000FFF80H マスク可能要因 *2 32 20 ICR16 37CH 000FFF7CH マスク可能要因 *2 33 21 ICR17 378H 000FFF78H マスク可能要因 *2 34 22 ICR18 374H 000FFF74H マスク可能要因 *2 35 23 ICR19 370H 000FFF70H マスク可能要因 *2 36 24 ICR20 36CH 000FFF6CH マスク可能要因 *2 37 25 ICR21 368H 000FFF68H マスク可能要因 *2 38 26 ICR22 364H 000FFF64H マスク可能要因 *2 39 27 ICR23 360H 000FFF60H マスク可能要因 *2 40 28 ICR24 35CH 000FFF5CH マスク可能要因 *2 41 29 ICR25 358H 000FFF58H マスク可能要因 *2 42 2A ICR26 354H 000FFF54H マスク可能要因 *2 43 2B ICR27 350H 000FFF50H マスク可能要因 *2 44 2C ICR28 34CH 000FFF4CH マスク可能要因 *2 45 2D ICR29 348H 000FFF48H マスク可能要因 *2 46 2E ICR30 344H 000FFF44H タイムベースタイマ オーバフロー 47 2F ICR31 340H 000FFF40H マスク可能要因 *2 48 30 ICR32 33CH 000FFF3CH マスク可能要因 *2 49 31 ICR33 338H 000FFF38H マスク可能要因 *2 50 32 ICR34 334H 000FFF34H マスク可能要因 *2 51 33 ICR35 330H 000FFF30H マスク可能要因 *2 52 34 ICR36 32CH 000FFF2CH マスク可能要因 *2 53 35 ICR37 328H 000FFF28H マスク可能要因 *2 54 36 ICR38 324H 000FFF24H マスク可能要因 *2 55 37 ICR39 320H 000FFF20H マスク可能要因 *2 56 38 ICR40 31CH 000FFF1CH マスク可能要因 *2 57 39 ICR41 318H 000FFF18H 77 第 3 章 CPU および制御部 表 3.7-3 ベクタテーブル (3 / 3) 割込み番号 割込み要因 割込みレベル オフセット TBR デフォルト のアドレス 10 進 16 進 マスク可能要因 *2 58 3A ICR42 314H 000FFF14H マスク可能要因 *2 59 3B ICR43 310H 000FFF10H マスク可能要因 *2 60 3C ICR44 30CH 000FFF0CH マスク可能要因 *2 61 3D ICR45 308H 000FFF08H *2 62 3E ICR46 304H 000FFF04H 遅延割込み要因ビット 63 3F ICR47 300H 000FFF00H システム予約 (REALOS にて使用 ) 64 40 - 2FCH 000FFEFCH システム予約 (REALOS にて使用 ) 65 41 - 2F8H 000FFEF8H システム予約 66 42 - 2F4H 000FFEF4H システム予約 67 43 - 2F0H 000FFEF0H 000FFEECH マスク可能要因 システム予約 68 44 - 2ECH システム予約 69 45 - 2E8H 000FFEE8H システム予約 70 46 - 2E4H 000FFEE4H システム予約 71 47 - 2E0H 000FFEE0H システム予約 72 48 - 2DCH 000FFEDCH システム予約 73 49 - 2D8H 000FFED8H システム予約 74 4A - 2D4H 000FFED4H システム予約 75 4B - 2D0H 000FFED0H システム予約 76 4C - 2CCH 000FFECCH システム予約 77 4D - 2C8H 000FFEC8H システム予約 78 4E - 2C4H 000FFEC4H - 2C0H 000FFEC0H 2BCH 000FFEBCH ∼ 000H ∼ 000FFC00H システム予約 INT 命令で使用 79 4F 80 50 ∼ ∼ 255 FF - *1: TBR の値を変更してもリセットベクタとモードベクタは常に固定アドレス 000FFFFCH, 000FFFF8H が使用さ れます。 *2: マスク可能要因は各品種により定義されます。本品種におけるベクタテーブルは「付録 B 割込みベクタ」を 参照してください。 78 第 3 章 CPU および制御部 3.7.7 多重 EIT 処理 複数の EIT 要因が同時に発生した場合 , CPU はひとつの EIT 要因を選択して受理 し , EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返 します。 EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要 因のハンドラの命令を実行します。 そのため , 複数の EIT 要因が同時に発生した場合の各要因のハンドラの実行順序は , 次の 2 つの要素によって決まります。 • EIT 要因受理の優先順位 • 受理した場合にほかの要因をどのようにマスクするか ■ EIT 要因受理の優先度 EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの 要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で す。 必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。 表 3.7-4 に , EIT 要因受理の優先度を示します。 表 3.7-4 EIT 要因の受理の優先度とほかの要因へのマスク 受理の優先順位 要因 ほかの要因に対するマスク 1 リセット ほかの要因は破棄されます。 2 未定義命令例外 取消 3 INT 命令 I フラグ= 0 4 コプロセッサ不在トラップ コプロセッサエラートラップ 5 ユーザ割込み ILM =受理した要因のレベル 6 NMI ( ユーザ用 ) ILM = 15 7 (INTE 命令 ) ILM = 4 * 8 NMI ( エミュレータ用 ) ILM = 4 9 ステップトレーストラップ ILM = 4 10 INTE 命令 ILM = 4 ― *: INTE 命令とエミュレータ用 NMI が同時に発生したときのみ優先度が 6 になります ( 本品 種ではエミュレータ用 NMI をデータアクセスによるブレークに使用しています ) 。 79 第 3 章 CPU および制御部 EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し た EIT 要因の各ハンドラの実行順序は , 表 3.7-5 のようになります。 表 3.7-5 EIT ハンドラの実行順序 ハンドラの実行順序 要因 1 リセット *1 2 未定義命令例外 3 ステップトレーストラップ *2 4 INTE 命令 *2 5 NMI ( ユーザ用 ) 6 INT 命令 7 ユーザ割込み 8 コプロセッサ不在トラップ , コプロセッサエラートラップ *1: ほかの要因は破棄されます。 *2: INTE 命令をステップ実行した時はステップトレーストラップの EIT のみ発生します。 INTE による要因は無視されます。 図 3.7-2 に多重 EIT 処理の例を示します。 図 3.7-2 多重 EIT 処理 メイン ルー チン NMIのハ ンド ラ INT命令 のハンドラ 優先度 (高) NMI 発生 ①最初 に実 行 (低) INT 命令実行 ②次に 実行 80 第 3 章 CPU および制御部 3.7.8 動作 FR ファミリの各動作について説明します。 以降の説明で , 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示すも のとします。また , 「次の命令のアドレス」は , EIT を検出した命令によって以下の ようになります。 • LDI:32 のとき……PC + 6 • LDI:20, COPOP, COPLD, COPST, COPSV のとき……PC + 4 • その他の命令のとき……PC + 2 ■ ユーザ割込み・NMI の動作 ユーザ割込みまたはユーザ用 NMI の割込み要求が発生すると , 以下の順序で要求受理 の可否が判定されます。 [ 割込み要求受理の可否判定 ] 1) 同時に発生した要求の割込みレベルを比較し , 最も強いレベル ( 最も小さい数値 ) を 保持するものが選択されます。 比較に使用されるレベルは , マスク可能割込みについては対応する ICR の保持する 値が , NMI についてはあらかじめ定められた定数が使用されます。 2) 同じレベルを持つ割込み要求が複数発生しているときは , 最も若い割込み番号を持 つ割込み要求が選択されます。 3) 割込みレベル≧レベルマスク値のとき , 割込み要求はマスクされ受理されない。 割込みレベル<レベルマスク値のとき , 4) へ。 4) 選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割込み 要求はマスクされ , 受理されません。I フラグが 1 ならば 5) へ。 選択された割込み要求が NMI であるとき , I フラグの値にかかわらず 5) へ。 5) 上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。 EIT 要求検出時にユーザ割込み・NMI の要求が受理されると , 受理された割込み要求に 対応した割込み番号を使用して , CPU は以下のように動作します。 ( 注意事項 )〔動作〕における () はレジスタの指すアドレスを表します。 [ 動作 ] 1) SSP-4 → SSP 2) PS → (SSP) 3) SSP-4 → SSP 4) 次の命令のアドレス → (SSP) 5) 受理した要求の割込みレベル → ILM 6) "0" → S フラグ 7) (TBR +受理した割込み要求のベクタオフセット ) → PC 割込みシーケンス終了後ハンドラの先頭の命令を実行する前に , 新たな EIT の検出を 行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス 81 第 3 章 CPU および制御部 に遷移します。 ユーザ割込み, またはNMI要因が発生している状態で割込みを許可するためにORCCR, STILM, および MOV Ri, PS の各命令が実行されると , 割込みハンドラの前後で上記命 令が 2 回実行される場合があります。ただし , CPU 内のレジスタに対して , 同じ値を 2 度設定するだけですので , 動作的に問題ありません。 EIT 処理ルーチン内では EIT 分岐前の PS レジスタの内容を期待した処理を行わないで ください。 ■ INT 命令の動作 INT#u8: u8 で示されるベクタの割込みハンドラへ分岐します。 [ 動作 ] 1) SSP-4 → SSP 2) PS → (SSP) 3) SSP-4 → SSP 4) PC + 2 → (SSP) 5) "0" → I フラグ 6) "0" → S フラグ 7) (TBR + 3FCH-4 × u8) → PC ■ INTE 命令の動作 INTE: ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。 [ 動作 ] 1) SSP-4 → SSP 2) PS → (SSP) 3) SSP-4 → SSP 4) PC + 2 → (SSP) 5) "00100" → ILM 6) "0" → S フラグ 7) (TBR + 3D8H) → PC INTE 命令 , およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用 しないでください。 また , ステップ実行中は INTE による EIT の発生はありません。 82 第 3 章 CPU および制御部 ■ ステップトレーストラップの動作 PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに しておくと , 1 命令実行ごとにトラップが発生し , ブレークします。 [ ステップトレーストラップ検出の条件 ] 1) T フラグ= 1 2) 遅延分岐命令ではないとき。 3) INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき。 4) 以上の条件が成立すると , 命令動作の切れ目でブレークします。 [ 動作 ] 1) SSP-4 → SSP 2) PS → (SSP) 3) SSP-4 → SSP 4) 次の命令のアドレス → (SSP) 5) "00100" → ILM 6) "0" → S フラグ 7) (TBR + 3CCH) → PC Tフラグをセットしてステップトレーストラップをイネーブルにしたとき, ユーザ用の NMI とユーザ割込みは禁止状態となります。また , INTE 命令による EIT は発生しなく なります。 FR ファミリでは , T フラグをセットした次の命令からトラップが発生します。 ■ 未定義命令例外の動作 命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま す。 [ 未定義命令例外の検出条件 ] 1) 命令のデコード時に , 未定義命令であることを検出します。 2) 遅延スロット外に置かれています ( 遅延分岐命令の直後ではない ) 。 3) 以上の条件が成立すると未定義命令例外が発生し , ブレークします。 [ 動作 ] 1) SSP-4 → SSP 2) PS → (SSP) 3) SSP-4 → SSP 4) PC → (SSP) 5) "0" → S フラグ 6) (TBR + 3C4H) → PC PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。 83 第 3 章 CPU および制御部 ■ コプロセッサ不在トラップ 実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ サ不在トラップが発生します。 [ 動作 ] 1) SSP-4 → SSP 2) PS → (SSP) 3) SSP-4 → SSP 4) 次の命令のアドレス→ (SSP) 5) "0" → S フラグ 6) (TBR + 3E0H) → PC ■ コプロセッサエラートラップ コプロセッサを使用しているときにエラーが発生した場合 , 次にそのコプロセッサを 操作するコプロセッサ命令を実行したとき , コプロセッサエラートラップが発生しま す。 [ 動作 ] 1) SSP-4 → SSP 2) PS → (SSP) 3) SSP-4 → SSP 4) 次の命令のアドレス → (SSP) 5) "0" → S フラグ 6) (TBR + 3DCH) → PC ■ RETI 命令の動作 RETI 命令は , EIT 処理ルーチンから復帰する命令です。 [ 動作 ] 1) (R15) → PC 2) R15 + 4 → R15 3) (R15) → PS 4) R15 + 4 → R15 RETI 命令は , S フラグが "0" の状態で実行する必要があります。 84 第 3 章 CPU および制御部 3.8 動作モード FR ファミリの動作モードについて説明します。 ■ 動作モードの概要 動作モードには , バスモードとアクセスモードがあります。 ■ バスモード バスモードとは, 内部ROMの動作と外部アクセス機能の動作を制御するモードを指し, モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定し ます。 ■ アクセスモード アクセスモードとは , 外部データバス幅を制御するモードを示し , モードレジスタ内の WTH1, WTH0 ビットと ACR0 ∼ ACR7(Area Configuration Register) 内の DBW1, DBW0 ビットで指定します。 85 第 3 章 CPU および制御部 3.8.1 バスモード FR ファミリには , 次に示す 3 つのバスモードがあります。 詳細は「3.1 メモリ空間」を参照してください。 ■ バスモード 0 ( シングルチップモード ) 内部 I/O, D-bus RAM, F-bus RAM, F-bus ROM が有効で , それ以外の領域へのアクセスは 無効であるモードです。 外部端子はペリフェラル , または汎用ポートの機能を果たします。バス端子としては機 能しません。 ■ バスモード 1 ( 内 ROM 外バスモード ) 内部 I/O, D-bus RAM, F-bus RAM, F-bus ROM が有効で , 外部アクセスが可能な領域への アクセスは外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子とし て機能します。 ■ バスモード 2 ( 外 ROM 外バスモード ) 内部 I/O, D-bus RAM が有効で , F-bus RAM, F-bus ROM へのアクセスを禁止にしてすべ てのアクセスが外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子 として機能します。 86 第 3 章 CPU および制御部 モード設定 3.8.2 FR ファミリでは , モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で動作 モードの設定を行います。 ■ モード端子 MD2, MD1, MD0 の 3 端子で , モードベクタフェッチに関する指定を行います。 表 3.8-1 にモードベクタフェッチに関する指定を示します。 表 3.8-1 モードベクタフェッチに関する指定 モード端子 MD2 MD1 MD0 リセットベクタ アクセス領域 モード名 000 内 ROM モードベクタ 内部 001 外 ROM モードベクタ 外部 備考 バス幅はモードレジスタで設定 ただし , 表に示した設定以外は禁止とします。 ■ モードレジスタ (MODR) モードベクタフェッチによってモードレジスタに書き込むデータを , モードデータと よびます。モードベクタフェッチについては , 「3.9.3 リセットシーケンス」を参照し てください。 モードレジスタ (MODR) に設定が行われた後 , 本レジスタの設定にしたがった動作 モードで動作します。 モードレジスタは , すべてのリセット要因で設定されます。また , ユーザプログラムか らは書き込むことはできません。 <参考> 従来 FR ファミリのモードレジスタのアドレス (0000_07FFH) には , なにも存在しません。 エミュレータモードでは , 書き換え可能です。この場合 , 8 ビット長のデータ転送命令 を使用してください。 16/32 ビット長の転送命令では書き込めません。 モードレジスタの詳細は以下のとおりです。 〔レジスタ詳細説明〕 MODR 000FFFF8H 7 6 5 4 3 − − − − − 2 1 0 ROMA WTH1 WTH0 初期値 XXXXXXXXB 動作モード設定ビット 87 第 3 章 CPU および制御部 [ ビット 7 ∼ 3] 予約ビット 必ず "00000" を設定してください。 "00000" 以外の値を設定したときの動作は保証できません。 [ ビット 2] ROMA ( 内部 ROM イネーブルビット ) 内部 F-bus RAM, F-bus ROM 領域を有効にするかどうかを設定します。 ROMA 機 能 0 外 ROM モード 1 内 ROM モード 備 考 内蔵 F-bus RAM は有効 , 内部 ROM 領域 (80000H ∼ 100000H) が外 部領域になります。 内蔵 F-bus RAM, F-bus ROM が有効になります。 [ ビット 1, 0] WTH1, WTH0 ( バス幅指定ビット ) 外バスモード時のバス幅指定の設定を行います。 外バスモード時 , この値が ACROH (CS0 領域 ) の DBW1, DBW0 ビットに設定されます。 88 WTH1 WTH0 0 0 8 ビットバス幅 外バスモード 0 1 16 ビットバス幅 外バスモード 1 0 ― 設定禁止 1 1 シングルチップモード シングルチップモード 機 能 備 考 第 3 章 CPU および制御部 3.9 リセット ( デバイス初期化 ) 本品種の初期化であるリセット動作について説明します。 ■ リセット ( デバイス初期化 ) の概要 リセット要因が発生すると , デバイスはすべてのプログラムおよびハードウェア動作 を停止し , 状態を初期化します。この状態をリセット状態とよびます。 リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェア 動作を開始します。このリセット状態から動作開始にいたる一連の動作をリセット シーケンスとよびます。 89 第 3 章 CPU および制御部 3.9.1 リセットレベル 本品種のリセット動作は , 2 種類のレベルに分かれており , それぞれ発生要因および 初期化の内容が異なります。 ここでは , 各リセットレベルについて説明します。 ■ 設定初期化リセット (INIT) すべての設定を初期化する最強レベルのリセットを設定初期化リセット (INIT) とよび ます。 設定初期化リセット (INIT) により初期化される主な内容は , 以下のとおりです。 〔設定初期化リセット (INIT) による初期化箇所〕 • デバイスの動作モード ( バスモードおよび外部バス幅の設定 ) • 内部クロックに関するすべての設定 ( クロックソース選択 , PLL 制御 , 分周比設定 ) • 外部バスの CS0 領域に関するすべての設定 • その他端子状態に関するすべての設定 • 動作初期化リセット (RST) で初期化されるすべての箇所 詳細はそれぞれの機能の説明を参照してください。 なお , 電源投入後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。 ■ 動作初期化リセット (RST) プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ びます。 設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。 動作初期化リセット (RST) により初期化される主な内容は , 以下のとおりです。 〔動作初期化リセット (RST) による初期化箇所〕 • プログラム動作 • CPU および内部バス • 周辺回路のレジスタ設定値 • I/O ポート設定 • 外部バスの CS0 領域に関するすべての設定 詳細はそれぞれの機能の説明を参照してください。 90 第 3 章 CPU および制御部 3.9.2 リセット要因 本品種における各リセット発生要因と発生するリセットレベルについて説明します。 過去に発生したリセット要因は , RSRR ( リセット要因レジスタ ) を読み出すことで 確認できます ( 各説明にあるレジスタ , フラグの詳細な説明は , 「3.10.5 クロック 生成制御部のブロックダイヤグラム」および「3.10.6 クロック生成制御部のレジス タ詳細説明」を参照してください ) 。 ■ INIT 端子入力 ( 設定初期化リセット端子 ) 外部端子の INIT 端子は , 設定初期化リセット端子として機能します。 本端子へ "L" レベル入力を行っている間 , 設定初期化リセット (INIT) 要求が発生しま す。 本端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除さ れます。 本端子要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセット要因レ ジスタ ) 中のビット 15:INIT ビットがセットされます。本端子要求による設定初期化リ セット (INIT) は , すべてのリセット要因中で最強のものであり , すべての入力・動作・ 状態よりも優先されます。 なお, 電源投入直後は必ずINIT端子にて設定初期化リセット (INIT) をかけてください。 また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への Low レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子 による INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。 • 発生要因 : 外部 INIT 端子への Low レベル入力 • 解除要因 : 外部 INIT 端子への High レベル入力 • 発生レベル : 設定初期化リセット (INIT) • 対応フラグ : ビット 15:INIT 91 第 3 章 CPU および制御部 ■ STCR:SRST ビット書込み ( ソフトウェアリセット ) STCR ( スタンバイ制御レジスタ ) 中のビット 4:SRST ビットに "0" が書き込まれると , ソフトウェアリセット要求が発生します。 ソフトウェアリセット要求は , 動作初期化リセット (RST) 要求です。 要求が受け付けられ動作初期化リセット (RST) が発生するとソフトウェアリセット要 求は解除されます。 ソフトウェアリセット要求による動作初期化リセット (RST) が発生した場合 , RSRR ( リセット要因レジスタ ) 中のビット 11:SRST ビットがセットされます。 ソフトウェアリセット要求による動作初期化リセット (RST) は , TBCR ( タイムベース カウンタ制御レジスタ ) 中のビット 7:SYNCR ビットがセットされている場合 ( 同期リ セットモード ) , すべてのバスアクセスが停止してからでないと発生しません。 このため , バスの使用状況によっては動作初期化リセット (RST) が発生するまでに長 時間を要する場合があります。 • 発生要因 : STCR ( スタンバイ制御レジスタ ) 中のビット 4:SRST ビットへの "0" が書込み • 解除要因 : 動作初期化リセット (RST) の発生 • 発生レベル : 動作初期化リセット (RST) • 対応フラグ : ビット 11:SRST ■ ウォッチドッグリセット RSRR ( ウォッチドッグタイマ制御レジスタ ) に対し書込みを行うと , ウォッチドッグ タイマが起動します。その後 , RSRR 中のビット 9, 8:WT1, WT0 ビットにて設定した周 期内に WPR ( ウォッチドッグリセット発生延期レジスタ ) への A5H/5AH 書込みが行わ れないと , ウォッチドッグリセット要求が発生します。 ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付 けられ設定初期化リセット (INIT) が発生するか , または動作初期化リセット (RST) が 発生すると , ウォッチドッグリセット要求は解除されます。 ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合, RSRR ( リセット要因レジスタ ) 中のビット 13:WDOG ビットがセットされます。 なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合 では , 発振安定待ち時間の設定は初期化されません。 • 発生要因 : ウォッチドッグタイマの設定周期経過 • 解除要因 : 設定初期化リセット (INIT) または動作初期化リセット (RST) の発生 • 発生レベル : 設定初期化リセット (INIT) • 対応フラグ : ビット 13:WDOG 92 第 3 章 CPU および制御部 3.9.3 リセットシーケンス リセット要因の消失により , デバイスはリセットシーケンスの実行を開始します。 リセットシーケンスは , リセットレベルによりそれぞれ動作内容が異なります。 ここでは , 各リセットレベルにおけるリセットシーケンスの動作内容について説明 します。 ■ 設定初期化リセット (INIT) 解除シーケンス 設定初期化リセット (INIT) 要求が解除されると , デバイスは以下の動作を順に実行し ます。 1) 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移 2) 発振安定待ち時間 (STCR のビット 3, 2:OS1, OS0 にて設定 ) の間 , 動作初期化リセッ ト (RST) 状態を保持 , 内部クロック停止 3) 動作初期化リセット (RST) 状態 , 内部クロック動作開始 4) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移 5) 000FFFF8H 番地より , モードベクタの読出し 6) 000007FDH 番地の MODR ( モードレジスタ ) へ , モードベクタの書込み 7) 000FFFFCH 番地より , リセットベクタの読出し 8) PC ( プログラムカウンタ ) へ , リセットベクタの書込み 9) PC ( プログラムカウンタ ) の示す番地より , プログラム動作開始 ■ 動作初期化リセット (RST) 解除シーケンス 動作初期化リセット (RST) 要求が解除されると , デバイスは以下の動作を順に実行し ます。 1) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移 2) 000FFFF8H 番地より , モードベクタの読出し 3) 000007FDH 番地の MODR ( モードレジスタ ) へ , モードベクタの書込み 4) 000FFFFCH 番地より , リセットベクタの読出し 5) PC ( プログラムカウンタ ) へ , リセットベクタの書込み 6) PC ( プログラムカウンタ ) の示す番地より , プログラム動作開始 93 第 3 章 CPU および制御部 3.9.4 発振安定待ち時間 デバイスの原発振が停止していたかまたはその可能性がある状態から復帰したとき , 自動的に発振安定待ち状態に遷移します。 本機能により発振開始後の安定していない発振器出力を使用しないようにします。 発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベー スカウンタのみが動作して , STCR ( スタンバイ制御レジスタ ) にて設定された安定 待ち時間の経過を待ちます。 ここでは , 発振安定待ち動作の詳細について説明します。 ■ 発振安定待ち発生要因 発振安定待ち発生要因を , 以下に示します。 ● 設定初期化リセット (INIT) の解除時 各種要因による設定初期化リセット (INIT) が解除された直後に , 発振安定待ち状態へ 遷移します。 発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。 なお, INIT端子による初期化時は発振安定待ち時間は最小値に設定されるため, 発振安 定待ちは行いません。電源投入時および発振停止後は発振安定待ち時間 INIT を入力し てください。 ● ストップモードからの復帰時 ストップモードが解除された直後に , 発振安定待ち状態へ遷移します。 ただし, 設定初期化リセット (INIT) 要求により解除された場合は, 設定初期化リセット (INIT) 状態に遷移し , 設定初期化リセット (INIT) が解除された後, 発振安定待ち状態へ 遷移します。 発振安定待ち時間経過後は , ストップモードが解除された要因に対応した状態へと遷 移します。 • 有効な外部割込み要求入力 (NMI 含む ) および , 時計タイマ / メイン発振安定待ちタ イマ割込みの発生による復帰時 : 通常動作状態へ遷移します。 • 設定初期化リセット (INIT) 要求による復帰時 : 動作初期化リセット (RST) 状態へ遷移します。 ● PLL 選択時の異常状態の発生からの復帰時 PLL をソースクロックとして動作しているときに , PLL 制御に何らかの異常 * が発生し た場合 , PLL ロックタイムの確保のために , 自動的に発振安定待ち時間に遷移します。 発振安定待ち時間経過後は , 通常動作状態へ遷移します。 *: PLL 使用中の逓倍率変更や , PLL 動作許可ビット化けの発生など。 94 第 3 章 CPU および制御部 ● サブクロックでメイン発振停止中のウォッチドッグリセット発生時 サブクロックをソースクロックとして動作しているときに , OSCCR( 発振制御レジス タ ) のビット 0:OSCDS1 ビットによってメイン発振停止中にウォッチドッグリセット が発生した場合 , リセット (INIT) が解除された直後に発振安定待ち状態に遷移します。 発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。 なお , サブクロックで OSCDS1 ビットが "0" の時およびメインクロック時は発振安定 待ちを行いません。 ■ 発振安定待ち時間の選択 発振安定待ち時間は , 内蔵タイムベースカウンタを用いて計時されます。 発振安定待ち発生要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカ ウンタはいったん初期化された後 , 発振安定待ち時間の計測を開始します。 STCR ( スタンバイ制御レジスタ ) のビット 3, 2:OS1, OS0 ビットにより , 発振安定待ち 時間を 4 種類のうちから選択して設定することができます。 いったん選択した設定は , 外部 INIT 端子による設定初期化リセット (INIT) 以外では初 期化されません。それ以外の , ウォッチドッグリセットによる設定初期化リセット (INIT) や , 動作初期化リセット (RST) では , リセット発生以前に設定した発振安定待ち 時間が保持されます。 発振安定待ち時間の選択の 4 種類の設定は , それぞれ以下の用途を想定してあります。 • OS1, OS0="00B": 発振安定待ち時間なし ( ストップモードで PLL も発振器を停止させない場合 ) • OS1, OS0="01B": PLL ロック待ち時間 ( ストップモードで発振器を停止させない場合 ) • OS1, OS0="10B": 発振安定待ち時間 ( 中 ) ( セラミック振動子などの安定が速い発振子を使用する場合 ) • OS1, OS0="11B": 発振安定待ち時間 ( 長 ) ( 一般の水晶発振子などを使用する場合 ) なお, 電源投入直後は必ずINIT端子にて設定初期化リセット (INIT) をかけてください。 また , 下記状態では , 発振回路の発振安定待ち時間を確保するため , INIT 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子によ る INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。 • 電源投入直後の INIT 端子入力 • ストップモードで発振停止中の INIT 端子入力 • クロックソースとしてサブクロック選択中かつメイン発振停止状態での INIT 端子 入力 したがって , メイン , サブ両方の安定発振を行うためには , INIT 端子入力はメインク ロック , サブクロック両方の発振安定待ち時間を満たす期間 "L" レベルを入力してくだ さい。 95 第 3 章 CPU および制御部 3.9.5 リセット動作モード 動作初期化リセット (RST) には , 通常 ( 非同期 ) リセットモードと同期リセットモー ドの 2 つのモードがあり , TBCR ( タイムベースカウンタ制御レジスタ ) 中の ビット 7:SYNCR ビットによってどちらのモードで動作するかを設定します。 本モード設定は , 設定初期化リセット (INIT) のみで初期化されます。 設定初期化リセット (INIT) は , 常に非同期でリセット動作を行います。 ここでは , 各モード動作について説明します。 ■ 通常リセット動作 動作初期化リセット (RST) 要求が発生した際に , 即座に動作初期化リセット (RST) 状 態への遷移を行う動作を , 通常リセット動作とよびます。 本モードにおいては , リセット (RST) 要求が受け付けられると , 内部バスアクセスの動 作状態に関わらず , 即時にリセット (RST) 状態へ遷移します。 本モードでは , 各状態へ遷移する時点で行われていたバスアクセスについては , その結 果を保証できません。しかし , それら要求を確実に受け付けることが可能です。 TBCR ( タイムベースカウンタ制御レジスタ ) 中のビット 7:SYNCR ビットが "0" のとき , 通常リセットモードとなります。 設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードとなります。 96 第 3 章 CPU および制御部 ■ 同期リセット動作 動作初期化リセット (RST) 要求が発生した際に , すべてのバスアクセスが停止してか ら動作初期化リセット (RST) 状態への遷移を行う動作を , 同期リセット動作とよびま す。 本モードにおいては , リセット (RST) 要求が受け付けられても , 内部バスアクセスが行 われている間は , リセット (RST) 状態への遷移は行いません。 上記要求が受け付けられると , それにより内部バスに対してスリープ要求が発行され ます。各バスが動作を切り上げてスリープ状態に移行すると , 動作初期化リセット (RST) 状態へ遷移します。 本モードでは , 各状態へ遷移する時点ではすべてのバスアクセスが停止しているため , すべてのバスアクセスの結果を保証できます。 しかし , バスアクセスが何らかの理由により停止しない場合 , その間各要求を受け付け ることができなくなります (この様な場合でも, 設定初期化リセット (INIT) は即座に有 効となります ) 。 バスアクセスが停止しない要因には以下のものがあげられます。 • 外部拡張バスインタフェースに対し BRQ ( バス解放要求 ) が入力され続け , BGRNT ( バス解放アクノリッジ ) が有効となっている場合で , 内部バスから新たなバスアク セス要求が発生しているような場合 • 外部拡張バスインタフェースに対し RDY ( レディ要求 ) が入力され続け , バスウェ イトが有効となっている場合 ( また , 以下の場合においては , 最終的には各状態へ遷 移しますが , 遷移するまでに長時間かかってしまいます。) • SDRAM インタフェースが起動されており , スリープ時のセルフリフレッシュを行 う設定となっている場合 ( セルフリフレッシュモード設定完了までは状態遷移しま せん。) <参考> • DMA コントローラについては , 各要求の受付けにより転送停止を行いますので , 各状 態への遷移を遅延させることはありません。 • TBCR ( タイムベースカウンタ制御レジスタ ) 中のビット 7:SYNCR ビットが "1" のと き , 同期リセットモードとなります。 <注意事項> 設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードに戻ります。 97 第 3 章 CPU および制御部 3.10 クロック生成制御 クロック生成制御について説明します。 ■ 内部動作クロックの生成 本品種の内部動作クロックは , 以下のようにして生成されます。 • ソースクロックの選択 : クロックの供給源を選択します。 • ベースクロックの生成 : ソースクロックを 2 分周または PLL 発振させ , 基本クロックを生成します。 • 各内部クロックの生成 : ベースクロックを分周し , 各部に供給する 4 種類の動作クロックを生成します。 以降 , 各クロック生成とその制御について説明します。 各説明にあるレジスタ , フラグの詳細な説明は「3.10.5 クロック生成制御部のブロック ダイヤグラム」および「3.10.6 クロック生成制御部のレジスタ詳細説明」を参照して ください。 ■ ソースクロックの選択 ソースクロックの選択について説明します。 外部発振端子である X0/X1, X0A/X1A 端子入力に発振子を接続し , 内蔵発振回路にて生 成した原発振がソースクロックとなります。 外部バスクロックを含むすべてのクロック供給源は , 本品種自身となります。 外部発振端子および内蔵発振回路は, メインクロックとサブクロックの2種類を使用で き , 動作中に任意に切り換えて使用することが可能です。 • メインクロック : X0/X1端子入力から生成し, 高速クロックとして使用することを 想定したものです。 • サブクロック : X0A/X1A 端子入力から生成し , 低速クロックとして使用するこ とを想定したものです。 メイン , サブそれぞれのクロックは , それぞれ独立に制御可能な内蔵メイン PLL を用 いて逓倍されます。 内部ベースクロックは , 以下のソースクロックのうちから選択して生成します。 • メインクロックを 2 分周したもの • メインクロックをメイン PLL で逓倍したもの • サブクロックそのもの ソースクロックの選択制御は , CLKR ( クロックソース制御レジスタ ) の設定によって 行います。 98 第 3 章 CPU および制御部 3.10.1 PLL 制御 メインクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍 率設定を制御することが可能です。 各制御は , CLKR ( クロックソース制御レジスタ ) の設定によって行います。 ここでは , 各制御内容について説明します。 ■ PLL 動作許可 メイン PLL 発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) のビット 10:PLL1EN ビットの設定によって行います。 サブクロック発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) のビッ ト 11:PLL2EN ビットの設定によって行います。 PLL1EN, PLL2EN ビットとも , 設定初期化リセット (INIT) 後は "0" に初期化され , PLL の発振動作は停止しています。停止中は , ソースクロックとして PLL 出力を選択する ことはできません。 プログラム動作を開始したら , まずクロックソースとして使用する PLL の逓倍率を設 定しかつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切り換え てください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用する ことをお奨めします。 ソースクロックとして PLL 出力を選択している間は , その PLL は動作停止させること はできません ( レジスタへの書込みは無効となります ) 。ストップモードに移行する際 などで PLL を停止させたい場合は , いったんソースクロックをメインクロックの 2 分 周したものに選択し直した後 , PLL を停止させてください。 なお , STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットやビット 1:OSCD2 ビットにより , ストップモード中の発振が停止するように設定してある場合 , 対応する PLL はストップモード遷移時に自動的に停止しますので , 動作停止を改めて設定する 必要はありません。その後 , ストップモードから復帰する際 , PLL は自動的に発振動作 を開始します。ストップモード中の発振が停止しないように設定してある場合は , PLL は自動では停止しません。この場合は , 必要であればストップモード移行前にあらかじ め動作停止を設定してください。 99 第 3 章 CPU および制御部 ■ PLL 逓倍率 メイン PLL の逓倍率は , CLKR ( クロックソース制御レジスタ ) のビット 14-12:PLL1S2, PLL1S1, PLL1S0 ビットによって設定します。 どちらのビットも設定初期化リセット (INIT) 後は全ビット "0" に初期化されています。 〔PLL 逓倍率設定〕 PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許可す る前または同時に設定してください。逓倍率変更後は , ロック待ち時間経過後にソース クロックを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタイ マ割込みを使用することをお奨めします。 動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを該当 PLL 以外に 切り換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間経過後 にソースクロックを切り換えてください。 PLL 逓倍率設定の変更を , PLL 使用中に変更することも可能ですが , この際は逓倍率設 定書換え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待ち時間が 経過するまでの間はプログラム動作が停止します。PLL 以外にクロックソースを切り 換えた場合は , プログラム動作は停止しません。 100 第 3 章 CPU および制御部 3.10.2 発振安定待ち・PLL ロック待ち時間 ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち 時間が必要となります (「3.9.4 発振安定待ち時間」参照 ) 。 PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待 ち時間が必要となります。 ここでは , 各種ケースにおける待ち時間について説明します。 ■ 電源投入後の待ち時間 電源投入後は , まずメインクロック用発振回路の発振安定待ち時間が必要となります。 発振安定待ち時間の設定は , INIT 端子入力 ( 設定初期化リセット端子 ) により最小値に 初期化されるため , この発振安定待ち時間は , INIT 端子入力へ "L" レベルを入力する時 間により確保します。 この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間はこ こでは考慮する必要がありません。 ■ 設定初期化後の待ち時間 設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで は , 設定された発振安定待ち時間を内部的に発生します。 INIT 端子入力後の初めの発振安定待ち状態では , 設定時間は最小値に初期化されてい るため , すぐに本状態は終了し , 動作初期化リセット (RST) 状態へと遷移します。 プログラム動作開始後 , INIT 端子入力以外の要因により設定初期化リセット (INIT) が 発生した場合の解除時には , プログラムにて設定された時間の発振安定待ち時間を内 部的に発生します。 これらの状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間 はここでは考慮する必要がありません。 ■ PLL 動作許可後の待ち時間 プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過 しないとその PLL 出力を使用してはいけません。 ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ グラム動作は実行可能です。 この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用することをお奨め します。 ■ PLL 逓倍率変更後の待ち時間 プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち 時間が経過しないとその PLL 出力を使用してはいけません。 ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ グラム動作は実行可能です。 この際の PLL ロック待ち時間に , タイムベースタイマ割込みを使用できます。 101 第 3 章 CPU および制御部 ■ ストップモード復帰後の待ち時間 プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて 設定された時間の発振安定待ち時間を内部的に発生します。 ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止 させる設定であった場合は , その発振回路の発振安定待ち時間と使用している PLL の ロック待ち時間のうち長い方の時間が必要となります。ストップモードに遷移させる 前に , あらかじめその発振安定待ち時間を設定しておいてください。 ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止 させない設定であった場合は , PLL は自動では動作停止しません。したがって , PLL を 停止させない限り発振安定待ち時間は必要となりません。ストップモードに遷移させ る前に , あらかじめ発振安定待ち時間を最小値に設定しておくことをお奨めします。 ■ サブクロックからメインクロック切換え後の待ち時間 サブクロックからメインクロックに切り換えた後に PLL を使用する場合 , CLKR( ク ロックソースレジスタ ) のビット 2-PLL1EN の値に関わらず , ロック待ち時間が経過し ないとその PLL 出力を使用してはいけません。 ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ グラム動作は実行可能です。 この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用することをお奨め します。 102 第 3 章 CPU および制御部 3.10.3 クロック分配 ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを それぞれ作成します。 内部動作クロックは全部で 3 種類あり , それぞれが独立に分周比を設定することが できます。 ここでは , 各内部動作クロックについて説明します。 ■ CPU クロック (CLKB) CPU と内部メモリおよび内部バスに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • CPU • 命令キャッシュ • 内蔵 RAM, 内蔵 ROM • ビットサーチモジュール • I バス , D バス , X バス , F バス • DMA コントローラ • DSU 動作可能な上限周波数は 50MHz ですので , これを超える周波数になる逓倍率と分周比 の組合せは設定しないでください。 ■ 周辺クロック (CLKP) 周辺回路およびペリフェラルバスに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • ペリフェラル ( 周辺 ) バス • クロック制御部 ( バスインタフェース部のみ ) • 割込みコントローラ • 周辺 I/O ポート • I/O ポートバス • 外部割込み入力 • UART • 16 ビットタイマ • A/D コンバータ • ICU • フリーランタイマ • リロードタイマ • アップダウンカウンタ • インプットキャプチャ • アウトプットコンペア • I2C インタフェース • PPG 動作可能な上限周波数は 25MHz ですので , これを超える周波数になる逓倍率と分周比 の組合せは設定しないでください。 103 第 3 章 CPU および制御部 ■ 外部バスクロック (CLKT) 外部拡張バスインタフェースに使用されるクロックです。 本クロックを使用する回路には , 以下のようなものがあります。 • 外部拡張バスインタフェース • 外部 CLK 出力 <注意事項> • 動作可能な上限周波数は 25MHz ですので , これを超える周波数になる逓倍率と分周比 の組合せは設定しないでください。 • CPU の処理能力はウェイトレジスタ (FLWC) の設定にも影響を受けます。必ず本レジ スタの設定を最適な値にしてご利用ください。 「17.2.2 ウェイトレジスタ : FLWC」も ご参照ください。 104 第 3 章 CPU および制御部 クロック分周 3.10.4 各内部動作クロックは , それぞれ独立に , ベースクロックからの分周比を設定するこ とができます。この機能により , 各回路に最適な動作周波数を設定することができ ます。 ■ 分周比の設定 分周比は , DIVR0 ( 基本クロック分周設定レジスタ 0) および DIVR1 ( 基本クロック分 周設定レジスタ 1) にて設定します。 各レジスタには各クロックに対応する 4 ビットずつの設定ビットがあり , ( レジスタ設 定値+ 1) がそのクロックのベースクロックに対する分周比となります。分周比設定が 奇数であっても , 常にデューティは 50 % となります。 設定値の変更があった場合 , 設定後次のクロックの立上りから変更後の分周比が有効 となります。 ■ 分周比設定の初期化 分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の 設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。 初期状態では , 周辺クロック (CLKP) 以外はすべて分周比が "1" となりますので , ソー スクロックを高速なものに変更する前に必ず分周比の設定を行ってください。 <注意事項> 各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は 保証されません。特に , ソースクロック選択の変更設定との順序を間違えないようにご注 意願います。 105 第 3 章 CPU および制御部 3.10.5 クロック生成制御部のブロックダイヤグラム 図 3.10-1 に , クロック生成制御部のブロックダイヤグラムを示します。 図中のレジスタの詳細な説明は , 「3.10.6 クロック生成制御部のレジスタ詳細説明」 を参照してください。 ■ クロック生成制御部のブロックダイヤグラム 図 3.10-1 クロック生成制御部のブロックダイヤグラム 周辺停止制御レジスタ [クロック生成部] DIVR0,1レジスタ CPUクロック分周 R-bus セレ クタ 外部バスクロック分周 メイン発振 安定待ちタイマ (サブ選択時用) メイン発振 PLL 1/2 X0A X1A 発振回路 時計タイマ 各周辺クロック 外部バスクロック セレクタ 発振回路 CPU クロック CLKRレジスタ X0 X1 セレ クタ 停止制御 周辺クロック分周 周辺停止制御 セレ クタ サブ発振 [ストップ・ スリープ制御部] 内部割込み STCRレジスタ 内部リセット ストップ状態 状態遷移 制御回路 スリープ状態 リセット発生 F/F 内部リセット(RST) リセット発生 F/F 内部リセット(INIT) [リセット要因回路] INIT端子 RS RRレジスタ [ウォッチドッグ制御部] ウォッチドッグ F/ F WPRレジスタ タイムベースカウンタ CTBRレジスタ TBCRレジスタ 割込み許可 106 カウンタクロック セレクタ オーバフロー検出 F/F タイムベースタイマ 割込み要求 第 3 章 CPU および制御部 3.10.6 クロック生成制御部のレジスタ詳細説明 クロック生成制御部のレジスタについて説明します。 ■ RSRR: リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ リセット要因レジスタおよびウォッチドッグタイマ制御レジスタのレジスタ構成は , 以下のとおりです。 ビット アドレス : 0000 0480H 15 14 13 12 11 10 9 8 INIT R R WDOG R R SRST R R WT1 R/W WT0 R/W 1 * X 0 * X 0 * X 0 X * 0 X * 0 * X 0 0 0 0 0 0 初期値 (INIT 端子 ) 初期値 (INIT) 初期値 (RST) *: 要因により変化します。 X: 初期化されません。 直前に発生したリセットの要因の保持 , およびウォッチドッグタイマの周期設定およ び起動制御を行うレジスタです。 本レジスタを読むと , 保持されたリセット要因は読出し後にクリアされます。読み出す までの間に複数回のリセットが発生した場合 , リセット要因フラグは累積され , 複数の フラグがセットされることになります。 本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リセッ ト (RST) が発生するまで , ウォッチドッグタイマは動作を続けます。 [ ビット 15] INIT(INITialize reset occurred) INIT 端子入力によるリセット (INIT) の発生の有無を示します。 値 内 容 0 INIT 端子入力による INIT は発生していません。 1 INIT 端子入力による INIT が発生しました。 • 読出し直後に "0" に初期化されます。 • 読出し可能で , 書込みはビット値に影響を与えません。 [ ビット 14] (reserved ビット ) 予約ビットです。 [ ビット 13] WDOG(WatchDOG reset occurred) ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。 値 内 容 0 ウォッチドッグタイマによる INIT は発生していません。 1 ウォッチドッグタイマによる INIT が発生しました。 • INIT 端子入力によるリセット (INIT) , または読出し直後に "0" に初期化されます。 • 読出し可能で , 書込みは意味を持ちません。 107 第 3 章 CPU および制御部 [ ビット 12] (reserved ビット ) 予約ビットです。 [ ビット 11] SRST(Software ReSeT occurred) STCR レジスタの SRST ビット書込み ( ソフトウェアリセット ) によるリセット (RST) の発生の有無を示します。 値 内 容 0 ソフトウェアリセットによる RST は発生していません。 1 ソフトウェアリセットによる RST が発生しました。 • INIT 端子入力によるリセット (INIT) , または読出し直後に "0" に初期化されます。 • 読出し可能で , 書込みは意味を持ちません。 [ ビット 10] (reserved ビット ) 予約ビットです。 [ ビット 9, 8] WT1, WT0(Watchdog interval Time select) ウォッチドッグタイマの周期を設定します。 本ビットに書き込む値により, ウォッチドッグタイマの周期を下表に示す4種類のうち から選択します。 WT1 WT0 ウォッチドッグリセットの発生を 抑止するために最低限必要な WPR への書込み間隔 WPR への最終 5AH 書込みから ウォッチドッグリセットが 発生するまでの時間 0 0 φ × 216 ( 初期値 ) φ × 216 ∼ φ × 217 0 1 φ × 218 φ × 218 ∼ φ × 219 1 0 φ × 220 φ × 220 ∼ φ × 221 1 1 φ × 222 φ × 222 ∼ φ × 223 φ : システムベースクロックの周期 • リセット (RST) により "00" に初期化されます。 • 読出し可能です。書込みはリセット (RST) 後 1 回のみ有効で , それ以降の 書込みは 無効です。 108 第 3 章 CPU および制御部 ■ STCR: スタンバイ制御レジスタ スタンバイ制御レジスタのレジスタ構成は , 以下のとおりです。 7 6 ビット アドレス : 0000 0481H STOP SLEEP R/W R/W 初期値 (INIT 端子 ) 初期値 (HST 端子 )* 初期値 (INIT) 初期値 (RST) 0 0 0 0 0 0 0 0 5 4 3 HIZ R/W SRST R/W OS1 R/W 1 1 1 X 1 1 1 1 0 1 X X 2 1 0 OS0 OSCD2 OSCD1 R/W R/W R/W 0 1 X X 1 1 1 X 1 1 1 X * : INIT 端子による初期化と同時の場合のみ。それ以外は INIT 時と同じ。 デバイスの動作モードを制御するレジスタです。 ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を 行います。 <注意事項> スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ 制御レジスタのビット 8 SYNCS ビットにて設定します ) を使用した上で , 以下のシーケ ンスを必ず使用してください。 (LDI#value_of_standby,R0) ;value_of_standby は , STCR へのライトデータ (LDI#_STCR,R12) ;_STCR は , STCR のアドレス (481H) STB R0,@R12 ;スタンバイ制御レジスタ (STCR) への書込み LDUB @R12,R0 ;同期スタンバイのための STCR リード LDUB @R12,R0 ;もう一度 STCR をダミーリード NOP ; タイミング調整用の NOP × 5 NOP NOP NOP NOP [ ビット 7] STOP(STOP mode) ストップモードへの遷移を指示します。ビット 6:SLEEP ビットと本ビット両方に "1" を書き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。 値 内 容 0 ストップモードへの遷移は行いません ( 初期値 ) 。 1 ストップモードへ遷移します。 • リセット (RST) およびストップ復帰要因により "0" に初期化されます。 • 読出しおよび書込みが可能です。 109 第 3 章 CPU および制御部 [ ビット 6] SLEEP(SLEEP mode) スリープモードへの遷移を指示します。ビット 7:STOP ビットと本ビット両方に "1" を 書き込んだ場合は , ビット 7:STOP ビットの方が優先となり , ストップモードへ遷移し ます。 値 内 容 0 スリープモードへの遷移は行いません ( 初期値 ) 。 1 スリープモードへ遷移します。 • リセット (RST) およびスリープ復帰要因により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 5] HIZ(HIZ mode) ストップモード時の端子状態を制御します。 値 内 容 0 ストップモード遷移前の端子状態を維持します。 1 ストップモード中は端子出力をハイインピーダンス状態にします ( 初期値 ) 。 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 4] SRST(Software ReSeT) ソフトウェアリセット (RST) の発行を指示します。 値 内 容 0 ソフトウェアリセットを発行します。 1 ソフトウェアリセットの発行は行いません ( 初期値 ) 。 • リセット (RST) により "1" に初期化されます。 • 読出しおよび書込みが可能です。読出し値は , 常に "1" となります。 [ ビット 3, 2] OS1, OS0(Oscillation Stabilization time select) リセット (INIT) 後, およびストップモード復帰後などにおける, 発振安定待ち時間を設 定します。 本ビットに書き込む値により, 発振安定待ち時間を下表に示す4種類のうちから選択し ます。 OS1 OS0 発振安定待ち時間 原発振 12.5MHz の場合 サブ 32kHz の場合 0 0 φ × 21 ( 初期値 ) 0.32[µs] 120[µs] 0 1 φ × 211 328[µs] 123[ms] 1 0 φ × 216 10.5[ms] 3.9[s] 1 1 φ × 222 671[ms] 251[s] φ : システムベースクロックの周期 , この場合は原発振入力の 2 倍の周期 • INIT 端子入力によるリセット (INIT) により "00" に初期化されます。ただし , INIT 端子入力と HST 端子入力によるリセット (INIT) が同時に有効であった場合 , "11B" に初期化されます。 • 読出しおよび書込みが可能です。 110 第 3 章 CPU および制御部 [ ビット 1] OSCD2(OSCillation Disable mode for XIN2) サブ発振入力 (XIN2) における , ストップモード時の発振停止を制御します。 値 内 容 0 ストップモード中もサブ発振は停止しません。 1 ストップモード中はサブ発振を停止します ( 初期値 ) 。 • リセット (INIT) により "1" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 0] OSCD1(OSCillation Disable mode for XIN1) メイン発振入力 (XIN1) における , ストップモード時の発振停止を制御します。 値 内 容 0 ストップモード中もメイン発振は停止しません。 1 ストップモード中はメイン発振を停止します ( 初期値 ) 。 • リセット (INIT) により "1" に初期化されます。 • 読出しおよび書込みが可能です。 ■ TBCR: タイムベースカウンタ制御レジスタ タイムベースカウンタ制御レジスタのレジスタ構成は , 以下のとおりです。 ビット 15 アドレス : 0000 0482H TBIF R/W 初期値 (INIT) 初期値 (RST) 0 0 14 13 12 11 TBIE R/W TBC2 R/W TBC1 R/W TBC0 R/W 0 0 X X X X X X 10 9 8 SYNCR SYNCS R/W R/W R/W X X 0 X 0 X タイムベースタイマ割込みなどを制御するレジスタです。 タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行うほか , および リセット動作のオプション機能の設定を行います。 [ ビット 15] TBIF(TimeBasetimer Interrupt Flag) タイムベースタイマ割込みフラグです。 タイムベースカウンタが設定されたインターバル時間 ( ビット 13-11:TBC2-0 ビットに て設定 ) を経過したことを示します。 ビット 14:TBIE ビットにより割込み発生が許可 (TBIE="1") されているときに , 本ビッ トが "1" になると , タイムベースタイマ割込み要求が発生します。 クリア要因 セット要因 命令による "0" の書込み 設定されたインターバル時間の経過 ( タイムベースカウンタ出力の立下りエッ ジ検出 ) • リセット (RST) により "0" に初期化されます。 • 読出しおよび書込み可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込んで もビット値は変化しません。 また , リードモディファイライト系命令での読出し値は , 常に "1" となります。 111 第 3 章 CPU および制御部 [ ビット 14] TBIE(TimeBasetimer Interrupt Enable) タイムベースタイマ割込み要求出力許可ビットです。 タイムベースカウンタのインターバル時間経過による割込み要求出力を制御します。 本ビットが "1" のときに , ビット 15:TBIF ビットが "1" になると , タイムベースタイマ 割込み要求が発生します。 値 内 容 0 タイムベースタイマ割込み要求出力禁止 ( 初期値 ) 1 タイムベースタイマ割込み要求出力許可 • リセット (RST) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 13 ∼ 11] TBC2, TBC1, TBC0(TimeBasetimer Counting time select) タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定しま す。 本ビットに書き込む値により, インターバル時間を下表に示す8種類のうちから選択し ます。 TBC2 TBC1 TBC0 タイマインターバル 時間 原発振 12.5MHz かつ PLL が 4 逓倍の場合 サブクロック 32kHz の場合 0 0 0 φ × 211 41.0[µs] 61.4[ms] 0 0 1 φ × 212 81.9[µs] 123[ms] 0 1 0 φ × 213 164 [µs] 246[ms] 0 1 1 φ × 222 83.9[ms] 126[s] 1 0 0 φ × 223 168 [ms] 256[s] 1 0 1 φ × 224 336 [ms] 512[s] 1 1 0 φ × 225 672 [ms] 1024[s] 1 1 1 φ × 226 1342[ms] 2048[s] φ : システムベースクロックの周期 • 初期値は不定です。割込みを許可する前に必ず値を設定してください。 • 読出しおよび書込みが可能です。 [ ビット 10] (reserved ビット ) 予約ビットです。読出し値は不定で , 書込みは意味を持ちません。 [ ビット 09] SYNCR(SYNChronous Reset enable) 同期リセット動作許可ビットです。 動作初期化リセット (RST) 要求が発生した際に , 即座にリセット (RST) を行う通常リ セット動作を行うか, すべてのバスアクセスが停止してから動作初期化リセット (RST) を行う同期リセット動作を行うかを選択します。 値 内 容 0 通常リセット動作 ( 初期値 ) 1 同期リセット動作 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 112 第 3 章 CPU および制御部 [ ビット 08] SYNCS(SYNChronous Standby enable) 同期スタンバイ動作許可ビットです。 スタンバイ要求 (スリープモード要求またはストップモード要求) を発生する際, STCR レジスタの制御ビットへの書込みのみでスタンバイ遷移を行う通常スタンバイ動作を 行うか , STCR レジスタの制御ビットへの書込み後に STCR レジスタを読み出すことに よってスタンバイ遷移を行う同期スタンバイ動作を行うかを選択します。 値 内 容 0 通常スタンバイ動作 ( 初期値 ) 1 同期スタンバイ動作 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 <注意事項> スタンバイモードに遷移する際には , 必ず "1" を設定し , 同期スタンバイ動作としてくだ さい。 ■ CTBR: タイムベースカウンタクリアレジスタ タイムベースカウンタクリアレジスタのレジスタ構成は , 以下のとおりです。 ビット アドレス : 0000 0483H 初期値 (INIT) 初期値 (RST) 7 6 5 4 3 2 1 0 D7 W D6 W D5 W D4 W D3 W D2 W D1 W D0 W X X X X X X X X X X X X X X X X タイムベースカウンタを初期化するためのレジスタです。 本レジスタに連続して {A5h} , {5Ah} を書き込むと , {5Ah} 書込みの直後にタイムベー スカウンタを全ビット"0"にクリアします。{A5h} 書込みと {5Ah} 書込みの間の時間制 限はありませんが , {A5h} 書込みの後に {5Ah} 以外のデータを書き込むと , 再度 {A5h} を書き込まないと {5Ah} を書き込んでもクリア動作は行いません。 本レジスタの読出し値は不定です。 <注意事項> 本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 , ウォッ チドッグタイマ周期 , およびタイムベースタイマの周期が一時的に変動します。 113 第 3 章 CPU および制御部 ■ CLKR: クロックソース制御レジスタ クロックソース制御レジスタのレジスタ構成は , 以下のとおりです。 14 13 12 11 10 9 8 ビット 15 アドレス : 0000 0484H PLL2S0 PLL1S2 PLL1S1 PLL1S0 PLL2EN PLL1EN CLKS1 CLKS0 R/W R/W R/W R/W R/W R/W R/W R/W 0 X 初期値 (INIT) 初期値 (RST) 0 X 0 X 0 X 0 X 0 X 0 X 0 X システムのベースクロックとするクロックソースの選択や PLL の制御を行うレジスタ です。 本レジスタにてクロックソースを 3 種類 ( 本品種では 2 種類 ) のうちから選択します。 また , メイン・サブ 2系統の PLLそれぞれの動作許可および逓倍率の選択を制御します。 [ ビット 15] PLL2S0(PLL2 ratio Select 0) サブクロックの逓倍率選択ビットです。 サブクロックの逓倍率を , 2 種類のうちから選択します。 本品種では , 本ビットへの書込みは常に "0" を書き込んでください。 値 内 容 0 逓倍率設定 1 ( 初期値 ) 1 逓倍率設定 1 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 14 ∼ 12] PLL1S2, PLL1S1, PLL1S0(PLL1 ratio Select 2-0) メイン PLL の逓倍率選択ビットです。 メイン PLL の逓倍率を , 8 種類 * のうちから選択します。 * : 本品種では 4 種類 本ビットは , クロックソースとしてメインPLLを選択している間は書換えを禁止します。 動作可能な上限周波数は 50MHz ですので , これを超える設定をしないでください。 PLL1S2 PLL1S1 PLL1S0 メイン PLL 逓倍率 0 0 0 × 1 ( 等倍 ) 原発振 12.5[MHz] の場合 , φ = 80[ns] (12.5[MHz]) 0 0 1 × 2 (2 逓倍 ) 原発振 12.5[MHz] の場合 , φ = 40[ns] (25[MHz]) 0 1 0 × 3 (3 逓倍 ) 原発振 12.5[MHz] の場合 , φ = 26[ns] (37.5[MHz]) 0 1 1 × 4 (4 逓倍 ) 原発振 12.5[MHz] の場合 , φ = 20[ns] (50[MHz]) 1 0 0 × 5 (5 逓倍 ) 本品種では未サポート 1 0 1 × 6 (6 逓倍 ) 本品種では未サポート 1 1 0 × 7 (7 逓倍 ) 本品種では未サポート 1 1 1 × 8 (8 逓倍 ) 本品種では未サポート φ : システムベースクロックの周期 • リセット (INIT) により "000B" に初期化されます。 • 読出しおよび書込みが可能です。 114 第 3 章 CPU および制御部 [ ビット 11] PLL2EN(PLL2 ENable) サブクロックの選択許可ビットです。 本ビットは , クロックソースとしてサブクロックを選択している間は書換えを禁止し ます。 また , 本ビットが "0" の間はクロックソースとしてサブクロックを選択することを禁止 します ( ビット 9, 8:CLKS1, 0 ビットの設定による ) 。 STCR のビット 1:OSCD2 が "1" であると , ストップモード中は本ビットが "1" であって もサブクロックは停止します。ストップモードからの復帰後は動作許可に戻ります。 値 内 容 0 サブクロック選択禁止 ( 初期値 ) 1 サブクロック選択許可 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 10] PLL1EN(PLL1 ENable) メイン PLL の動作許可ビットです。 本ビットは , クロックソースとしてメインPLLを選択している間は書換えを禁止します。 また , 本ビットが "0" の間はクロックソースとしてメイン PLL を選択することを禁止 します ( ビット 9, 8:CLKS1, 0 ビットの設定による ) 。 STCR のビット 0:OSCD1 が "1" であると , ストップモード中は本ビットが "1" であって もメイン PLL は停止します。ストップモードからの復帰後は動作許可に戻ります。 値 内 容 0 メイン PLL 停止 ( 初期値 ) 1 メイン PLL 動作許可 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 115 第 3 章 CPU および制御部 [ ビット 9, 8] CLKS1, CLKS0(CLocK source Select) FRex コアで使用するクロックソースを設定します。 本ビットに書き込む値により, クロックソースを下表に示す3種類のうちから選択しま す。 なお , ビット 9:CLKS1 が "1" の間はビット 8:CLKS0 の値を変更することができません。 変更不可能な組合せ 変更可能な組合せ "00" → "11" "00" → "01" または "10" "01" → "10" "01" → "11" または "00" "10" → "01" または "11" "10" → "00" "11" → "00" または "10" "11" → "01" このため , INIT 後の状態からサブクロックを選択したい場合は , まず "01B" を書き込ん だ後に , "11B" を書き込むようにしてください。 <注意事項> サブクロックのソースである X0A/X1A からの原発振入力の 2 分周は選択できません。ま た , "01" を書き込んだ直後は NOP 命令を 1 つ以上挿入してください。 CLKS1 CLKS0 0 0 X0/X1 からの原発振入力の 2 分周 ( 初期値 ) 0 1 X0/X1 からの原発振入力の 2 分周 1 0 メイン PLL 1 1 サブクロック クロックソース設定 • リセット (INIT) により "00B" に初期化されます。 • 読出しおよび書込みが可能です。 116 第 3 章 CPU および制御部 ■ WPR: ウォッチドッグリセット発生延期レジスタ ウォッチドッグリセット発生延期レジスタのレジスタ構成は , 以下のとおりです。 ビット アドレス : 0000 0485H 初期値 (INIT) 初期値 (RST) 7 6 5 4 3 2 1 0 D7 W D6 W D5 W D4 W D3 W D2 W D1 W D0 W X X X X X X X X X X X X X X X X ウォッチドッグリセットの発生を延期するためのレジスタです。 本レジスタに連続して {A5H} , {5AH} を書き込むと , {5AH} 書込みの直後にウォッチ ドッグタイマの検出用 FF をクリアし , ウォッチドッグリセットの発生を延期します。 {A5H} 書込みと {5AH} 書込みの間の時間制限はありませんが , {A5H} 書込みの後に {5AH} 以外のデータを書き込んだ場合 , 再度 {A5H} を書き込まないと {5AH} を書き込 んでもクリア動作は行いません。 表 3.10-1 に , ウォッチドッグリセット発生に関する時間間隔と RSRR レジスタの値の 関係を示します。 この期間内に両データの書込みを終えないとウォッチドッグリセットを発生します。 ウォッチドッグリセット発生までの時間や発生抑止のために必要な書込み間隔は , RSRR レジスタの WT1( ビット 9), WT0( ビット 8) の状態によって変化します。 表 3.10-1 ウォッチドッグリセット発生に関する時間間隔 WT1 WT0 WPR への最終 5AH 書込みから RSRR のウォッチドッグリセットの発生を 抑止するために最低限必要な WPR への書 込み間隔 ウォッチドッグリセットが発生す るまでの時間 0 0 φ × 216 ( 初期値 ) φ × 216 ∼ φ × 217 0 1 φ × 218 φ × 218 ∼ φ × 219 1 0 φ × 220 φ × 220 ∼ φ × 221 1 1 φ × 222 φ × 222 ∼ φ × 223 φ : システムベースクロックの周期 WT1, WT0: RSRR のビット 9, 8 でウォッチドッグタイマ周期設定 ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを 行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ れます。 ただし, 外部バスのホールド要求 (BRQ) が受け付けられている場合ではウォッ チドッグリセットは延期されませんので , 長期間外部バスをホールドする場合はス リープモードにしてからホールド要求 (BRQ) を入力してください。 本レジスタの読出し値は不定です。 117 第 3 章 CPU および制御部 ■ DIVR0: 基本クロック分周設定レジスタ 0 基本クロック分周設定レジスタ 0 のレジスタ構成は , 以下のとおりです。 ビット アドレス : 0000 0486H 初期値 (INIT) 初期値 (RST) 15 14 13 12 11 10 9 8 B3 R/W B2 R/W B1 R/W B0 R/W P3 R/W P2 R/W P1 R/W P0 R/W 0 X 0 X 0 X 0 X 0 X 0 X 1 X 1 X 各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , CPU および内部バスのクロック (CLKB) , 周辺回路 , およびペリフェ ラルバスクロック (CLKP) の分周比の設定を行います。 <注意事項> 各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は 保証されません。特にソースクロック選択の変更設定との順序を間違えないようにご注意 ください。 本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周 比が有効となります。 [ ビット 15 ∼ 12] B3, B2, B1, B0(clkB divide select 3-0) CPU クロック (CLKB) クロック分周比設定ビットです。CPU と内部メモリおよび内部 バスのクロック (CLKB) のクロック分周比を設定します。 本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに対 する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。 動作可能な上限周波数は 50MHz ですので , これを超える周波数になる分周比は設定し ないでください。 B3 B2 B1 B0 クロック分周比 クロック周波数 : 原発振 12.5[MHz] および PLL4 逓倍の場合 0 0 0 0 φ 50[MHz] ( 初期値 ) 0 0 0 1 φ × 2 (2 分周 ) 25[MHz] 0 0 1 0 φ × 3 (3 分周 ) 16.7[MHz] 0 0 1 1 φ × 4 (4 分周 ) 12.5[MHz] 0 1 0 0 φ × 5 (5 分周 ) 10[MHz] 0 1 0 1 φ × 6 (6 分周 ) 8.33[MHz] 0 1 1 0 φ × 7 (7 分周 ) 7.01[MHz] 0 1 1 1 φ × 8 (8 分周 ) 6.25[MHz] … 1 … 1 … 1 … 1 … φ × 16 (16 分周 ) … 3.13[MHz] φ : システムベースクロックの周期 • リセット (INIT) により "0000" に初期化されます。 • 読出しおよび書込みが可能です。 118 第 3 章 CPU および制御部 [ ビット 11 ∼ 8] P3, P2, P1, P0(clkP divide select 3-0) 周辺クロック (CLKP) クロック分周比設定ビットです。 周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定します。 本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベース クロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択しま す。 動作可能な上限周波数は 25MHz ですので , これを超える周波数になる分周比は設定し ないでください。 P3 P2 P1 P0 クロック分周比 クロック周波数 : 原発振 12.5[MHz] および PLL4 逓倍の場合 0 0 0 0 φ 50[MHz] 0 0 0 1 φ × 2 (2 分周 ) 25[MHz] 0 0 1 0 φ × 3 (3 分周 ) 16.7[MHz] 0 0 1 1 φ × 4 (4 分周 ) 12.5[MHz] ( 初期値 ) 0 1 0 0 φ × 5 (5 分周 ) 10[MHz] 0 1 0 1 φ × 6 (6 分周 ) 8.33[MHz] 0 1 1 0 φ × 7 (7 分周 ) 7.01[MHz] 0 1 1 1 φ × 8 (8 分周 ) 6.25[MHz] … 1 … 1 … 1 … 1 … φ × 16 (16 分周 ) … 3.13[MHz] φ : システムベースクロックの周期 • リセット (INIT) により "0011" に初期化されます。 • 読出しおよび書込みが可能です。 ■ DIVR1: 基本クロック分周設定レジスタ 1 基本クロック分周設定レジスタ 1 のレジスタ構成は , 以下のとおりです。 ビット アドレス : 0000 0487H 初期値 (INIT) 初期値 (RST) 7 6 5 4 3 2 1 0 T3 R/W T2 R/W T1 R/W T0 R/W R/W R/W R/W R/W 0 X 0 X 0 X 0 X 0 X 0 X 0 X 0 X 各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。 本レジスタでは , 外部拡張バスインタフェースのクロック (CLKT) の分周比の設定を 行います。 <注意事項> 各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は 保証されません。特に , ソースクロック選択の変更設定との順序を間違えないようにご注 意ください。 119 第 3 章 CPU および制御部 本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周 比が有効となります。 [ ビット 7 ∼ 4] T3, T2, T1, T0(clkT divide select 3-0) 外部バスクロック (CLKT) クロック分周比設定ビットです。 外部拡張バスインタフェースのクロック (CLKT) のクロック分周比を設定します。 本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースク ロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。 動作可能な上限周波数は 25MHz ですので , これを超える周波数になる分周比は設定し ないでください。 T3 T2 T1 T0 クロック分周比 クロック周波数 : 原発振 12.5[MHz] および PLL4 逓倍の場合 0 0 0 0 φ 50[MHz] ( 初期値 ) 0 0 0 1 φ × 2 (2 分周 ) 25[MHz] 0 0 1 0 φ × 3 (3 分周 ) 16.7[MHz] 0 0 1 1 φ × 4 (4 分周 ) 12.5[MHz] 0 1 0 0 φ × 5 (5 分周 ) 10[MHz] 0 1 0 1 φ × 6 (6 分周 ) 8.33[MHz] 0 1 1 0 φ × 7 (7 分周 ) 7.01[MHz] 0 1 1 1 φ × 8 (8 分周 ) 6.25[MHz] … 1 … 1 … 1 … 1 … φ × 16 (16 分周 ) … 3.13[MHz] φ : システムベースクロックの周期 • リセット (INIT) により "0000B" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 3 ∼ 0] (reserved ビット ) 予約ビットです。 120 第 3 章 CPU および制御部 ■ OSCCR: 発振制御レジスタ 発振制御レジスタのレジスタ構成は , 以下のとおりです。 ビット アドレス : 0000 048AH 初期値 (INIT) 初期値 (RST) 15 14 13 12 11 10 9 8 R/W R/W R/W R/W R/W R/W R/W OSCDS1 X X X X X X X X X X X X X X 0 X R/W サブクロック動作時のメイン発振を制御するレジスタです。 [ ビット 8] OSCDS1(OSCillation Disable on Subclock for XIN1) サブクロック選択中のメイン発振停止ビットです。 クロックソースとしてサブクロック選択中に , 本ビットに "1" を書き込むとメイン発振 を停止します。 本ビットは , メインクロックを選択中は "1" を書くことはできません。 本ビットが "1" の間はメインクロックを選択することを禁止します。本ビットを "0" に してメイン発振の安定を待ってからメインクロックに切り換えてください。このとき , メイン発振安定待ちタイマを用いて発振安定待ち時間を確保してください。 また, 本ビットによってメイン発振を停止させた状態で, INITによってクロックソース がメインクロックに切り換わった場合もメイン発振安定待ち時間が必要になります。 このとき , STCR( スタンバイ制御レジスタ ) のビット 3, 2:OS1, OS0 の設定がメイン発 振安定待ち時間を満たさない場合 , 復帰後の動作が保証されません。 この様な場合は , STCR:OS1, OS0 ビットはサブ発振安定待ち時間およびメイン発振安 定待ち時間両方を満たした値を設定してください。 INIT端子によるINIT時は, メイン発振が安定するまでINIT端子に"L"を入力し続ける必 要があります。 発振安定待ちについては , 「3.10.2 発振安定待ち・PLL ロック待ち時間」も参照して ください。 値 内 容 0 サブクロック実行中 , メイン発振を停止しません ( 初期値 ) 。 1 サブクロック実行中 , メイン発振を停止します。 • リセット (INIT) により "0" に初期化されます。 • 読出しおよび書込みが可能です。 121 第 3 章 CPU および制御部 3.10.7 クロック制御部が持つ周辺回路 クロック制御部が持つ周辺回路機能について説明します。 ■ タイムベースカウンタ クロック制御部には , 26 ビット長のタイムベースカウンタがあり , システムベースク ロックで動作しています。 タイムベースカウンタは , 発振安定待ち時間の計測 (「3.9.4 発振安定待ち時間」を参 照 ) のほか , 以下の用途に使用されます。 • ウォッチドッグタイマ : システムの暴走検出用のウォッチドッグタイマを , タイムベースカウンタのビット 出力を用いて計測します。 • タイムベースタイマ : タイムベースカウンタ出力を用いて , インターバル割込みを発生します。 ● ウォッチドッグタイマ ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。 プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生 延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット (INIT) 要求を発生します。 〔ウォッチドッグタイマの起動と周期設定〕 ウォッチドッグタイマは , リセット (RST) 後の 1 回目の RSRR ( リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。 このとき , ウォッチドッグタイマのインターバル時間をビット 09, 08:WT1, WT0 ビット により設定します。インターバル時間の設定は , この最初の書込みで設定した時間のみ が有効となり , それ以降の書込みはすべて無視されます。 〔ウォッチドッグリセットの発生延期〕 いったんウォッチドッグタイマを起動すると , プログラムで定期的に WPR ( ウォッチ ドッグリセット発生延期レジスタ) に対して {A5h} , {5Ah} の順でデータを書き込む必 要があります。 この操作により , ウォッチドッグリセット発生用フラグが初期化されます。 〔ウォッチドッグリセットの発生〕 ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカウ ンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出時にフ ラグがセットされていると , ウォッチドッグリセットとして設定初期化リセット (INIT) 要求を発生します。 122 第 3 章 CPU および制御部 〔ウォッチドッグタイマの停止〕 いったんウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生する までは , ウォッチドッグタイマを停止することはできません。 動作初期化リセット (RST) の発生する以下の状態では , ウォッチドッグタイマは停止 し , 再度プログラム動作にて起動するまでは , 機能しません。 • 動作初期化リセット (RST) 状態 • 設定初期化リセット (INIT) 状態 • 発振安定待ちリセット (RST) 状態 〔ウォッチドッグタイマの一時停止 ( 自動発生延期 ) 〕 ウォッチドッグタイマは , CPU のプログラム動作が停止している場合にはいったん ウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発生を 延期します。プログラム動作の停止とは具体的には以下の動作を示します。 • スリープ状態 • ストップ状態 • 発振安定待ち RUN 状態 • エミュレータデバッガ , モニタデバッガを使用時のブレーク中 • INTE 命令の実行から RETI 命令の実行までの期間 • ステップトレーストラップ (PS レジスタのTフラグ=1による1命令ごとのブレーク) • 命令キャッシュ制御レジスタ (ISIZE, ICHCR) , RAMモード時のキャッシュメモリへ のデータ また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発生用 フラグも初期化され , ウォッチドッグリセットの発生が延期されます。 なお , システムの暴走により上記状態となってしまった場合 , ウォッチドッグリセット が発生しない可能性があります。その場合 , 外部 INIT 端子よりリセット (INIT) をかけ てください。 ● タイムベースタイマ タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生 用タイマです。PLL のロック待ち時間やサブクロックなどの発振安定待ち時間など , 最 大で { ベースクロック× 227} サイクルまでの , 比較的長時間の時間計測を行う用途に 適しています。 設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出 すると , タイムベースタイマ割込み要求を発生します。 〔タイムベースタイマの起動とインターバル設定〕 タイムベースタイマは , TBCR ( タイムベースカウンタ制御レジスタ ) のビット 13-11: TBC2, TBC1, TBC0 ビットにてインターバル時間を設定します。 設定したインターバルに対応するタイムベースカウンタの出力の立下がりエッジは常 に検出されているため , インターバル時間の設定後はまずビット 15:TBIF ビットをクリ アしてから , ビット 14:TBIE ビットを "1" にして割込み要求出力を許可してください。 インターバル時間を変更する際は , あらかじめビット 14:TBIE ビットを "0" にして割込 み要求出力を禁止しておいてください。 タイムベースカウンタはこれら設定に影響されず常にカウント動作を行っていますの 123 第 3 章 CPU および制御部 で , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタイムベー スカウンタをクリアしてください。そうでないと , 割込み許可直後に割込み要求が発生 することもあり得ます。 〔プログラムによるタイムベースカウンタのクリア〕 CTBR ( タイムベースカウンタクリアレジスタ ) に対して {A5h} , {5Ah} の順でデータ を書き込むと , {5Ah} 書込みの直後に , タイムベースカウンタを全ビット "0" にクリア します。{A5h} 書込みと {5Ah} 書込みの間の時間制限はありませんが , {A5h} 書込み の後に {5Ah} 以外のデータを書き込むと , 再度 {A5h} を書き込まないと {5Ah} を書き 込んでもクリア動作は行いません。 このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリセッ ト発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期されま す。 〔デバイス状態によるタイムベースカウンタのクリア〕 タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にクリ アされます。 • ストップ状態 • 設定初期化リセット (INIT) 状態 特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタが 使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生してし まう可能性があります。 そのため , ストップモードを設定する前には , タイムベースタイマ割込みを禁止し , タ イムベースタイマを使用しないでください。 それ以外の状態については , 動作初期化リセット (RST) が発生するため , タイムベース タイマ割込みは自動的に禁止されます。 ● 時計タイマ クロックソースの選択や分周設定の影響を受けず, 32kHzのサブクロックに同期してカ ウントアップする 15 ビットのフリーランタイマです。 サブクロックの安定待ち時間の計時や , サブクロックを用いて一定周期ごとに処理し たい用途に使用します。 時計タイマはサブクロック動作時にカウントアップを行いますが , STCR( スタンバイ 制御レジスタ ) のビット 1:OSCD2 が "1" の設定でストップモードに移行させると時計 タイマも停止します。ストップモードで停止させたくない場合は , ストップモードに移 行させる前に OSCD2 ビットに "0" を設定し , サブクロックを停止させないでください。 時計タイマを用いてクロックソースをメインクロックからサブクロックに切り換える 場合は , 以下の手順で行います。 1) 時計タイマを発振安定待ち時間に設定しておきます。必要であれば 0 クリアも行っ てください。 2) 時計タイマを用いてサブクロックが安定するまで待ちます。この時計割込みを使用 して発振安定待ち時間を確保してください。 3) サブクロック安定後 , CLKR( クロックソースレジスタ ) のビット 9, 8:CLKS1, CLKS0 にてメインクロックからサブクロックに切り換えます。 124 第 3 章 CPU および制御部 <注意事項> 安定を待たずサブクロックに切り換えると , 不安定なクロックが供給され , その後の動作 は保証されません。必ず安定を待った後にサブクロックに切り換えてください。 時計タイマの詳細については , 「3.12 時計タイマ」を参照してください。 ● メイン発振安定待ちタイマ ( サブクロック選択時用 ) クロックソースの選択や分周設定の影響を受けず , メインクロックに同期してカウン トアップする 26 ビットのタイマです。 サブクロック動作中のメイン発振安定待ち時間の計時に使用します。 サブクロックで動作中 , OSCCR( 発振制御レジスタ ) のビット 0:OSCDS1 にて , メイン 発振の制御を行えますが , メイン発振を停止させた後で再度発振開始させた際に , 本タ イマを用いて発振安定待ち時間を計時します。 メインクロックを停止させたサブクロック動作状態からメインクロックに切り換える 際は , 以下の手順で行います。 1) メイン発振安定待ちタイマをクリアします。 2) OSCCR( 発振制御レジスタ ) のビット 0:OSCDS1 を "0" にしてメイン発振を開始し ます。 3) メイン発振安定待ちタイマを用いてメインクロックが安定するまで待ちます。 4) メインクロック安定後 , CLKR( クロックソースレジスタ ) のビット 9, 8:CLKS1, CLKS0 にてサブクロックからメインクロックに切り換えます。 <注意事項> 安定を待たずメインクロックに切り換えると , 不安定なクロックが供給され , その後の動 作は保証されませんので , 必ず安定を待った後にメインクロックに切り換えてください。 メイン発振安定待ちタイマの詳細については , 「3.13 メイン発振安定待ちタイマ」を参 照してください。 ● 周辺停止制御 各周辺リソースへのクロック供給を制御します。 使用しない周辺リソースへのクロック供給を停止することで , 省電力化を行います。 詳細は「3.14 周辺停止制御」を参照してください。 125 第 3 章 CPU および制御部 3.11 デバイス状態制御 本品種の各種状態とその制御について説明します。 ■ デバイス状態制御の概要 本品種のデバイス状態には , 以下のものがあります。 • RUN 状態 ( 通常動作 ) • スリープ状態 • ストップ状態 • 発振安定待ち RUN 状態 • 発振待ちリセット (RST) 状態 • 動作初期化リセット (RST) 状態 • 設定初期化リセット (INIT) 状態 以降 , 上記各種状態の詳細と , 低消費電力モードであるスリープモードおよびストップ モードの詳細について説明します。 126 第 3 章 CPU および制御部 3.11.1 デバイス状態と各遷移 図 3.11-1 に , 本品種のデバイスの状態遷移を示します。 ■ デバイス状態 図 3.11-1 デバイス状態 1 2 3 4 5 6 7 8 9 10 11 12 13 INTX 端子 =0(INIT) INIT 端子=1(INIT解除) 発振安定待ち終了 リセット(RST)解除 ソフトウェアリセット(RST) スリープ(命令書込み) ストップ(命令書込み ) 割込み クロックを必要としない外部割込み メイン→サブ切替え(命令 書込み ) サブ→メイン切替え(命令 書込み ) ウォッチドックリセット(INIT ) サブスリープ(命令 書込み ) 最強 ↓ ↓ ↓ ↓ 最弱 パワーオン 1 遷移要求の優先順位 設定初期化リセット(INIT) 発振安 定待ち終了 動作初 期化リセット(RST) 割込み要求 ストッ プ スリープ 設定初期化 (INIT) 2 メインクロックモード 1 メイン発振安定待ち 1 リセット メインストップ 9 3 1 発振安定待ちRUN プログラムリセット 1 (RST) 3 7 1 6 メインスリープ 5 4 12 メインRUN 8 1 10 サブクロックモード 1 サブスリープ 発振安定待ちRUN 9 サブストップ ( 時計状態*2 ) 12 サブRUN 13 3 1 1 11 8 7 5 1 4 プログラムリセット 1 (RST) サブストップ (時計状態*2) *1: クロックソースをメイン←→サブに切り替える場合は, RUN状態にて, 切替え 後のクロックが安定供給されている状態にて, クロックソースレジスタ (CLKR)-ビット1:0(CLKS1,CLKS0)ビットを切り替えてください。 *2: 時計タイマ以外を停止(時計状態)させるには, サブRUN状態にてスタンバイ制 御レジスタ(STCR)ビット1:OSCD2を0, ビット0:OSCD1を1に設定した状態でス トップモードに移行してください(同時書込み可)。 127 第 3 章 CPU および制御部 ■ デバイスの動作状態 本品種のデバイスの動作状態には以下のものがあります。 ● RUN 状態 ( 通常動作 ) プログラム実行状態です。 すべての内部クロックが供給され , すべての回路が動作可能な状態です。 ただし , 16 ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間は バスクロックのみ停止しています。 各状態遷移要求を受け付けますが , 同期リセットモードを選択している場合 , 通常リ セットモードの場合と一部要求に対する状態遷移動作が異なります。 詳細は , 「3.9.5 リセット動作モード」の「■同期リセット動作」を参照してください。 ● スリープ状態 プログラム停止状態です。プログラム動作により遷移します。 CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。命令キャッシュ は停止し , 各種内蔵メモリおよび内部 / 外部バスは DMA コントローラが要求しない限 り停止状態です。 有効な割込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移しま す。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷移 します。 ● ストップ状態 デバイス停止状態です。プログラム動作により遷移します。 すべての内部回路が停止します。内部クロックはすべて停止し , 発振回路および PLL は設定により停止させることが可能です。また , 設定により , 外部端子を一律ハイイン ピーダンスにすることが可能です ( 一部端子を除く ) 。 特定の ( クロックを必要としない ) 有効な割込みや , 発振動作中の時計タイマ / メイン 発振安定待ちタイマ割込み要求の発生により , 発振安定待ち RUN 状態へ遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷 移します。 128 第 3 章 CPU および制御部 ● 発振安定待ち RUN 状態 デバイス停止状態です。ストップ状態からの復帰後に遷移します。 クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許 可されていた PLL は動作しています。 ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。 設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷 移します。 ● 発振安定待ちリセット (RST) 状態 デバイス停止状態です。ストップ状態または設定初期化リセット (INIT) 状態からの復 帰後に遷移します。 クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許 可されていた PLL は動作しています。 ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。 内部回路に対し , 動作初期化リセット (RST) を出力します。 設定された発振安定待ち時間の経過により , 発振安定待ちリセット (RST) 状態へ遷移 します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 ● 動作初期化リセット (RST) 状態 プログラム初期化状態です。動作初期化リセット (RST) 要求の受付け , または発振安定 待ちリセット (RST) 状態の終了により遷移します。 CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は 一部を除き初期化されます。すべての内部クロックと発振回路および動作許可されて いた PLL は動作しています。 内部回路に対し , 動作初期化リセット (RST) を出力します。 動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動作初 期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの復帰後 だった場合は , 設定初期化リセットシーケンスを実行します。 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移 します。 129 第 3 章 CPU および制御部 ● 設定初期化リセット (INIT) 状態 全設定初期化状態です。設定初期化リセット (INIT) 要求の受付け , またはハードウェ アスタンバイ状態の終了により遷移します。 CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は すべて初期化されます。発振回路は動作しますが , PLL は動作を停止します。すべて の内部クロックは , 外部 INIT 端子への "L" レベル入力期間は停止しますが , それ以外 では動作します。 内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力 します。 設定初期化リセット (INIT) 要求の消失により, 本状態は解除され, 発振安定待ちリセッ ト (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期 化リセットシーケンスを実行します。 ● 各状態遷移要求の優先順位 どの状態においても , 各状態遷移要求は以下の優先順位にしたがいます。 ただし , 一部要求は特定の状態でしか発生しませんので , その状態でしか有効になりま せん。 【最強】設定初期化リセット (INIT) 要求 ↓ 発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安定待ち RUN 状態のみ発生 ) ↓ 動作初期化リセット (RST) 要求 ↓ 有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 ) ↓ ストップモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 ) 【最弱】スリープモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 ) 130 第 3 章 CPU および制御部 3.11.2 低消費電力モード 本品種の状態のうち , 各低消費電力モードとその使用方法について説明します。 本品種の低消費電力モードには , 以下のものがあります。 • スリープモード レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。 • ストップモード レジスタ書込みにより , デバイスをストップ状態へ遷移させます。 以下 , 各モードについて説明します。 ■ スリープモード STCR ( スタンバイ制御レジスタ ) のビット 6:SLEEP ビットに "1" を書き込むと , スリー プモードとなり , スリープ状態へ遷移します。 以降 , スリープ状態からの復帰要因が発生するまでは , スリープ状態を維持します。 STCR ( スタンバイ制御レジスタ ) のビット 7:STOP ビットと本ビット両方に "1" を書き 込んだ場合は , ビット 7:STOP ビットの方が優先となり , ストップ状態へ遷移します。 スリープ状態については , 「3.11.1 デバイス状態と各遷移」の「●スリープ状態」も参 照してください。 〔スリープモードへの移行〕 スリープモードへに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウン タ制御レジスタのビット8 SYNCSビットにて設定します) を使用した上で, 以下のシー ケンスを必ず使用してください。 (LDI#value_of_sleep,R0) ;value_of_sleep は , STCR へのライトデータ (LDI#_STCR,R12) ;_STCR は , STCR のアドレス (481H) STB R0,@R12 ;スタンバイ制御レジスタ (STCR) への書込み LDUB@R12,R0 ;同期スタンバイのための STCR リード LDUB@R12,R0 ;もう一度 STCR をダミーリード NOP ; タイミング調整用の NOP × 5 NOP NOP NOP NOP 131 第 3 章 CPU および制御部 〔ストップモードへの移行〕 ストップモードへに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウン タ制御レジスタのビット8 SYNCSビットにて設定します) を使用した上で, 以下のシー ケンスを必ず使用してください。 (LDI#value_of_sleep,R0) ;value_of_sleep は , STCR へのライトデータ (LDI#_STCR,R12) ;_STCR は , STCR のアドレス (481H) STB R0,@R12 ;スタンバイ制御レジスタ (STCR) への書込み LDUB@R12,R0 ;同期スタンバイのための STCR リード LDUB@R12,R0 ;もう一度 STCR をダミーリード NOP ; タイミング調整用の NOP × 5 NOP NOP NOP NOP 〔スリープ状態で停止する回路〕 • CPU のプログラム実行 • データキャッシュ • ビットサーチモジュール (DMA 転送が発生した場合は動作します。) • 各種内蔵メモリ (DMA 転送が発生した場合は動作します。) • 内部 / 外部バス (DMA 転送が発生した場合は動作します。) 〔スリープ状態で停止しない回路〕 • 発振回路 • 動作許可された PLL • クロック発生制御部 • 割込みコントローラ • 周辺回路 • DMA コントローラ • DSU • 時計タイマ • メイン発振安定待ちタイマ 132 第 3 章 CPU および制御部 〔スリープ状態からの復帰要因〕 • 有効な割込み要求の発生 割込み禁止(1Fh)以外の割込みレベルを持つ割込み要求が発生すると, スリープモー ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。 割込み要求が発生しても , スリープモードを解除したくない場合は , 該当する ICR に割込みレベルとして割込み禁止 (1Fh) を設定してください。 • 設定初期化リセット (INIT) 要求の発生 設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT) 状態へ遷移します。 • 動作初期化リセット (RST) 要求の発生 動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST) 状態へ遷移します。 各要因の優先順位については , 「3.11.1 デバイス状態と各遷移」を参照してください。 〔同期スタンバイ動作〕 タイムベースカウンタ制御レジスタ (TBCR) のビット 8(SYNCS ビット ) に "1" が設定 してある場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書込 みのみではスリープ状態へは遷移しません。 その後 , STCR レジスタを読み出すことによってスリープ状態へ遷移します。 スリープモードを使用する場合は , 【スリープモードへの移行】にあるシーケンスを , 必ず使用してください。 133 第 3 章 CPU および制御部 ■ ストップモード STCR ( スタンバイ制御レジスタ ) のビット 7:STOP ビットに "1" を書き込むと , ストッ プモードとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発 生するまでは , ストップ状態を維持します。 STCR ( スタンバイ制御レジスタ ) のビット 6:SLEEP ビットと本ビット両方に "1" を書 き込んだ場合は , ビット 7:STOP ビットの方が優先となり , ストップ状態へ遷移します。 ストップ状態については , 「3.11.1 デバイス状態と各遷移」の「●ストップ状態」も参 照してください。 〔ストップ状態で停止する回路〕 • 停止するよう設定された発振回路 : STCR ( スタンバイ制御レジスタ ) のビット 1:OSCD2 ビットに "1" が設定してある とき , ストップ状態中のサブクロック用発振回路を停止状態にします。このとき時 計タイマも停止します。 STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "1" が設定してある とき , ストップ状態中のメインクロック用発振回路を停止状態にします。このとき メイン発振安定待ちタイマも停止します。 • 動作許可されていないか , 停止するよう設定された発振回路に接続された PLL: STCR ( スタンバイ制御レジスタ ) のビット 1:OSCD2 ビットに "1" が設定してある とき , CLKR ( クロックソース制御レジスタ ) のビット 11:PLL2EN ビットに "1" が設 定してあっても , ストップ状態中のサブクロック用 PLL を停止状態にします。 STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "1" が設定してある とき , CLKR ( クロックソース制御レジスタ ) のビット 10:PLL1EN ビットに "1" が設 定してあっても , ストップ状態中のメインクロック用 PLL を停止状態にします。 • 〔ストップ状態で停止しない回路〕を除くすべての内部回路 〔ストップ状態で停止しない回路〕 • 停止するよう設定されていない発振回路 : STCR ( スタンバイ制御レジスタ ) のビット 1:OSCD2 ビットに "0" が設定してある とき , ストップ状態中のサブクロック用発振回路は停止しません。このとき時計タ イマも停止しません。 STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "0" が設定してある とき , ストップ状態中のメインクロック用発振回路は停止しません。このときメイ ン発振安定待ちタイマも停止しません。 • 動作許可されていて , PLL: かつ停止するよう設定されていない発振回路に接続された STCR ( スタンバイ制御レジスタ ) のビット 1:OSCD2 ビットに "0" が設定してある とき , CLKR ( クロックソース制御レジスタ ) のビット 11:PLL2EN ビットに "1" が設 定してあると , ストップ状態中のサブクロック用 PLL は停止しません。 STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "0" が設定してある とき , CLKR ( クロックソース制御レジスタ ) のビット 10:PLL1EN ビットに "1" が設 定してあると , ストップ状態中のメインクロック用 PLL は停止しません。 134 第 3 章 CPU および制御部 〔ストップ状態での端子のハイインピーダンス制御〕 STCR ( スタンバイ制御レジスタ ) のビット 5:HIZ ビットに "1" が設定してあると , ス トップ状態中の端子出力をハイインピーダンス状態にします。本制御の対象となる端 子は「付録 C 各 CPU ステートにおける端子状態」を参照してください。 STCR ( スタンバイ制御レジスタ ) のビット 5:HIZ ビットに "0" が設定してあると , ス トップ状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は「付録 C 各 CPU ステートにおける端子状態」を参照してください。 〔ストップ状態からの復帰要因〕 • 特定の ( クロックを必要としない ) 有効な割込み要求の発生 : 外部割込み入力端子 (INTn 端子 ) , メイン発振中のメイン発振安定待ちタイマ割込 み , およびサブ発振中の時計割込みのみ有効です。 割込み禁止 (1Fh) 以外の割込みレベルを持つ割込み要求が発生するとストップモー ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。 割込み要求が発生してもストップモードを解除したくない場合は , 該当する ICR に 割込みレベルとして割込み禁止 (1Fh) を設定してください。 • 時計タイマ割込み : STCR( スタンバイ制御レジスタ ) のビット 1:OSCD2 ビットに "0" が設定してあると き , 時計タイマの割込み要求が発生するとストップモードは解除され RUN 状態 ( 通 常状態 ) へ遷移します。 割込み要求が発生してもストップモードを解除したくない場合は , 時計タイマの割 込み許可ビットを割込み禁止に設定してください。 • メイン発振安定待ちタイマ割込み : サブクロック選択中で OSCCR( 発振制御レジスタ ) のビット 0:OSCDS1 ビットに "0" が設定時もしくはメインクロック選択中において, STCR(スタンバイ制御レジスタ) のビット 0:OSCD1 ビットに "0" が設定してあるとき , メイン発振安定待ちタイマの 割込み要求が発生するとストップモードは解除され RUN 状態 ( 通常状態 ) へ遷移し ます。 割込み要求が発生してもストップモードを解除したくない場合は , メイン発振安定 待ちタイマを停止させるか , またはメイン発振安定待ちタイマの割込み許可ビット を割込み禁止に設定してください。 • 設定初期化リセット (INIT) 要求の発生 : 設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT) 状態へ遷移します。 • 動作初期化リセット (RST) 要求の発生 : 動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST) 状態へ遷移します。 各要因の優先順位については , 「3.11.1 デバイス状態と各遷移」の「●各状態遷移要求 の優先順位」を参照してください。 〔ストップモード時のクロックソース選択〕 ストップモードを設定する前に, メインクロックの2分周をソースクロックとするよう あらかじめ選択しておいてください。詳細は , 「3.10 クロック生成制御」, 特にその節 の「3.10.1 PLL 制御」を参照してください。 なお , 分周比の設定に関しては , 通常動作時と制限事項は変わりません。 135 第 3 章 CPU および制御部 3.12 時計タイマ 時計タイマはサブクロックに同期してカウントアップする 15 ビットのフリーランカ ウンタです。 一定の時間間隔で繰り返し割込みを発生するインターバルタイマ機能があります。 ■ インターバル時間 表 3.12-1 にインターバル時間の種類を示します。インターバル時間は次の 4 種類の中 から選択できます。 表 3.12-1 インターバル時間の種類 サブクロック周期 インターバル時間 210/FCL(31.25ms) 213/FCL(0.25s) 1/FCL( 約 30.5 µs) 214/FCL(0.50s) 215/FCL(1.00s) FCL: サブクロック発振周波数 ■ 時計タイマのブロックダイヤグラム 図 3.12-1 に , 時計タイマのブロックダイヤグラムを示します。 図 3.12-1 時計タイマのブロックダイヤグラム 時計タイマ用 カウンタ FCL 0 1 2 1 2 2 2 3 2 3 4 2 4 5 5 2 6 2 6 7 7 2 8 2 8 9 9 10 11 12 13 14 10 2 2 211 212 213 214 215 ( 31.25ms) インター バル タイマ セレクタ (0.25s) (0.5s) (1.0s) リセット (INIT) カウンタ クリア回路 時計割込み 時計タイマ 制御レジスタ (WPCR) WIF WIE - - - WS1 WS0 WCL FCL:サブクロック原発振 ( )内の数字は,サブクロック原発振32.768kHzの場合の周期 136 第 3 章 CPU および制御部 ● 時計タイマ サブクロック原発振をカウントクロックとする 15 ビットのアップカウンタです。 ● カウンタクリア回路 WPCR レジスタによる設定 (WCL=0) 以外に , リセット (INIT) 時にカウンタをクリアし ます。 ● インターバルタイマセレクタ 時計タイマ用カウンタの 4 種類の分周出力からインターバルタイマ用の 1 種類を選択 する回路で , 選択した分周出力の立下がりエッジが割込み要因になります。 ● 時計タイマ制御レジスタ (WPCR) インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを行い ます。 ■ 時計タイマのレジスタ説明 時計タイマのレジスタ構成は , 以下のとおりです。 WPCR ビット アドレス :0000 048CH 初期値 (INIT) 初期値 (RST) 15 14 13 12 11 10 9 8 WIF R/W WIE R/W - - - WS1 R/W WS0 R/W WCL R/W 0 X 0 X X X X 0 X 0 X 0 X [ ビット 15] WIF(Watch timer Interrupt Flag) 時計割込み要求フラグです。 選択されたインターバルタイマ用分周出力の立下がりエッジによって "1" にセットさ れます。 このビットと割込み要求許可ビットが "1" のとき , 時計割込み要求を出力します。 値 内 容 0 時計割込みの要求なし ( 初期値 ) 1 時計割込みの要求あり • リセット (INIT) で "0" に初期化されます。 • リードおよびライトが可能です。ただしライトは "0" のみ可能で , "1" をライトして もビット値は変化しません。 • また , リードモディファイライト系命令でのリード値では常に "1" となります。 137 第 3 章 CPU および制御部 [ ビット 14] WIE(Watch timer Interrupt Enable) CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットと時計割込み要 求フラグビットが "1" のとき , 時計割込み要求を出力します。 値 内 容 0 時計割込み要求出力禁止 ( 初期値 ) 1 時計割込み要求出力許可 • リセット (INIT) で "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 13 ∼ 11](reserved ビット ) 予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 )。 読出し値は不定です。 [ ビット 10, 9] WS1, WS0(Watch timer interval Select 1, 0) インターバルタイマの周期を選択します。 時計タイマ用カウンタの出力ビットを , 表 3.12-2 に示す 4 種類のうちから選択します。 表 3.12-2 時計タイマ用カウンタの出力ビット WS1 WS0 0 0 210/FCL(31.25ms)( 初期値 ) 0 1 213/FCL(0.25s) 1 0 214/FCL(0.50s) 1 1 215/FCL(1.00s) インターバルタイマ周期 (FCL=32.768kHz 時 ) • リセット (INIT) で "00B" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 8] WCL(Watch timer CLear) "0" 書込みで時計タイマを "0" にクリアします。 書込みは "0" のみ可能で , "1" を書き込んでも意味を持ちません。 • 読出し値は常に "1" となります。 138 第 3 章 CPU および制御部 ■ 時計割込み 時計タイマ用カウンタがサブクロックでカウント動作し , 設定したインターバル時間 が経過すると , 時計割込み要求フラグ (WIF) を "1" にセットします。そのとき , 割込み 要求許可ビットを許可 (WIE="1") していると CPU へ割込み要求が発生します。 ただし , サブクロックが発振停止しているとき (「3.13 メイン発振安定待ちタイマ」の 「■インターバルタイマ機能の動作」を参照 ) ではカウント動作も停止しますので , 時 計割込みは発生しません。 割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ い。なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下がる とセットされます。 <注意事項> • リセット解除後に割込み要求出力を許可 (WIE=1) する場合および WS1:0 ビットの変更 時は , 必ず WIF, WCL ビットを同時にクリア (WIF=WCL=0) してください。 • WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , 直ちに割込み 要求が発生します。 • カウンタクリア(WPCR:WCL=1)と選択したビットのオーバフローが同時に起こった場 合は , WIF ビットのセットは行われません。 ■ インターバルタイマ機能の動作 時計タイマ用カウンタはサブクロックが発振中は常にカウントアップをしていますが, 以下の状態時はサブクロック発振が停止するため , カウント動作が停止します。 • ストップモードでサブ発振が停止する設定 ( スタンバイ制御レジスタ STCR のビッ ト 1:OSCD2="1") でストップモードに移行すると , ストップモード中 , カウント動作 が停止します。 本品種では , リセット (INIT) 時 OSCD2="1" に初期化しますので , ストップモード中 も時計タイマを動かしたい場合は , スタンバイ移行前に OSCD2="0" を設定してくだ さい。 カウンタをクリア (WCL="0") すると , "0000H" からカウント動作を行い , "7FFFH" に達 すると , "0000H" に戻ってカウントを継続します。カウントアップ中に選択されたイン ターバルタイマ用の分周出力に立下がりエッジが発生すると , 時計割込み要求ビット (WIF) を "1" にセットします。すなわち , クリアされた時間を基準にして , 選択された インターバル時間ごとに時計割込み要求を発生することになります。 139 第 3 章 CPU および制御部 ■ クロック供給機能の動作 本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ ンタが使用されますが , クロックソースとしてメインクロックを選択中にサブクロッ クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にサブクロッ クで動作する本時計タイマを使用します。 メインクロック動作からサブクロックの発振安定待ちを行うには , 次の手順で行って ください。 1) 時計タイマのインターバル時間を 1s(FCL=32.768kHz 時 ) にし , カウンタを "0" にク リアします (WS1, WS0="11", WCL="0" 書込み )。 発振安定待ち完了後の処理を割込みで行いたい場合は , 割込みフラグの初期化も行 います (WIF="0", WIE="1" 書込み )。 2) サブクロックの発振を開始します (CLKR ビット 11:PLL2EN="1" 書込み )。 3) プログラムにて , WIF フラグが "1" になるまで待ちます。 4) WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま た , 割込みを許可した場合は , WIF="1" 時に割込みが発生しますので , 割込みルーチ ンで発振安定待ち完了後の処理を行ってください。 メインクロックからサブクロックに切り換える場合も , (4) の WIF="1" の確認を待っ てから行ってください ( 発振安定を待たずにサブクロックへ切り換えると , デバイ ス全体に不安定なクロックが供給され , その後の動作は保証されません ) 。 ■ 時計タイマの動作 時計タイマを起動したとき , サブクロックへの移行時 , サブクロック動作でストップ モードへ移行時のカウンタ状態を , 図 3.12-2 に示します。 図 3.12-2 サブクロックへの移行およびストップモードへ移行時のカウンタ状態 7FFFH カウンタ値 4000H サブクロック 発振安定待ち時間 ・タイマクリア(WS1,WS0=1) 0以外の時 ・インターバル時間設定(WS1,0=11B) インターバル時間 割込みルーチンでクリア WIF クロックソース クロックモード メインクロック RU N サブクロック ストップ* RU N ストップモード移行命令 ・インターバル時間を変更(WS1,WS0=10B) ・メイン→サブクロック変更 *: STCR:OSCD2=0(ストップ時発振停止しない)設定時 140 第 3 章 CPU および制御部 ■ 時計タイマ使用時の注意事項 発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。 サブクロックが発振停止中は時計タイマも停止しますので , 時計割込みも発生しませ ん。時計割込みを使った処理を行う場合は , サブクロックの発振を停止しないでくださ い。 WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合ハーフラグ セットが優先し , "0" クリアは無効となります。 141 第 3 章 CPU および制御部 3.13 メイン発振安定待ちタイマ メイン発振安定待ちタイマは , メインクロックに同期してカウントアップする 23 ビットのカウンタで , 一定の時間間隔で繰り返し割込みを発生するインターバルタ イマ機能があります。 本タイマは , サブクロックで動作中に OSCCR( 発振制御レジスタ ) のビット 0: OSCDS1 によってメイン発振を一度止めて再度発振させた場合に , メインクロック を発振安定待ち時間の確保に使用します。 ■ メイン発振安定待ちタイマのインターバル時間 表 3.13-1 にインターバル時間の種類を示します。インターバル時間は次の 3 種類の中 から選択できます。 表 3.13-1 メイン発振安定待ちタイマのインターバル時間 メインクロック周期 インターバル時間 211/FCL(164µs) 216/FCL(5.25ms) 1/FCL( 約 80ns) 223/FCL(671ms) FCL: メインクロック発振周波数 ■ メイン発振安定待ちタイマのブロックダイヤグラム 図 3.13-1 に , メイン発振安定待ちタイマのブロックダイヤグラムを示します。 図 3.13-1 メイン発振安定待ちタイマのブロックダイヤグラム メイン発振安定待ち タイマ用カウンタ FCL 0 1 2 3 4 5 6 7 8 10 15 22 21 22 23 24 25 26 27 28 29 2 11 2 16 2 23 (164μs) インター バル タイマ セレクタ ( 671ms ) リセット (INIT) メイン発振安定待ち タイマ割込み メイン発振安定待ちタイマ 制御レジスタ (OSCR) (5.25ms) WIF WIE WEN - - WS1 カウンタ クリア回路 WS0 WCL FCL:メインクロック原発振 ( )内の数字は,メインクロック原発振12.5Hzの場合の周期 142 第 3 章 CPU および制御部 ● メイン発振安定待ちタイマ メインクロック原発振をカウントクロックとする 23 ビットのアップカウンタです。 ● カウンタクリア回路 OSCR レジスタによる設定 (WCL=0) 以外に , リセット (INIT) 時にカウンタをクリアし ます。 ● インターバルタイマセレクタ メイン発振安定待ちタイマ用カウンタの 3 種類の分周出力からインターバルタイマ用 の 1 種類を選択する回路で , 選択した分周出力の立下りエッジが割込み要因になりま す。 ● メイン発振安定待ちレジスタ (OSCR) インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを行い ます。 ■ メイン発振安定待ちタイマのレジスタ説明 メイン発振安定待ちタイマレジスタのレジスタ構成は , 以下のとおりです。 OSCR ビット アドレス :0000 048CH 初期値 (INIT) 初期値 (RST) 15 14 13 12 11 10 9 8 WIF R/W WIE R/W WEN - - WS1 R/W WS0 R/W WCL R/W 0 X 0 X 0 X X X 0 X 0 X 0 X [ ビット 15] WIF(timer Interrupt Flag) メイン発振安定待ち割込み要求フラグです。 選択されたインターバルタイマ用分周出力の立下りエッジによって "1" にセットされ ます。 このビットと割込み要求許可ビットが "1" のとき , メイン発振安定割込み要求を出力し ます。 値 内 容 0 メイン発振安定割込みの要求なし ( 初期値 ) 1 メイン発振安定割込みの要求あり • リセット (INIT) で "0" に初期化されます。 • 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込ん でもビット値は変化しません。 また , リードモディファイライト系命令での読出し値では常に "1" となります。 143 第 3 章 CPU および制御部 [ ビット 14] WIE(timer Interrupt Enable) CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットとメイン発振安 定割込み要求フラグビットが "1" のとき , メイン発振安定割込み要求を出力します。 値 内 容 0 メイン発振安定割込み要求出力禁止 ( 初期値 ) 1 メイン発振安定割込み要求出力許可 • リセット (INIT) で "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 13] WEN(timer enable) タイマ動作許可ビットです。 本ビットが "1" のときタイマはカウント動作を行います。 値 内 容 0 タイマ動作停止 ( 初期値 ) 1 タイマ動作 • リセット (INIT) で "0" に初期化されます。 • 読出しおよび書込みが可能です。 [ ビット 12, 11](reserved ビット ) 予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 )。 読出し値は不定です。 [ ビット 10, 9] WS1, WS0(timer interval Select 1, 0) インターバルタイマの周期を選択します。 メイン発振安定待ちタイマ用カウンタの出力ビットの下記 3 種類のうちから選択しま す。 WS1 WS0 0 0 設定禁止 ( 初期値 ) 0 1 211/FCL(164µs) 1 0 216/FCL(5.25ms) 1 1 223/FCL(671ms) インターバルタイマ周期 (FCL=12.5MHz 時 ) • リセット (INIT) で "00B" に初期化されます。 • 読出しおよび書込みが可能です。 • メイン発振安定待ち時間タイマを使用する場合 , 本レジスタにデータの書込みを 行ってください。 [ ビット 8] WCL(timer CLear) "0" 書込みでメイン発振安定待ちタイマを "0" にクリアします。 書込みは "0" のみ可能で , "1" をライトしても動作に影響を与えません。 • 読出し値は常に "1" となります。 144 第 3 章 CPU および制御部 ■ メイン発振安定待ち割込み メイン発振安定待ちタイマ用カウンタは , メインクロックでカウント動作し , 設定した インターバル時間が経過すると , メイン発振安定待ち割込み要求フラグ (WIF) を "1" に セットします。そのとき , 割込み要求許可ビットを許可 (WIE="1") していると CPU へ 割込み要求が発生します。ただし , メインクロックが発振停止しているとき (「■イン ターバルタイマ機能の動作」を参照 ) ではカウント動作も停止しますので , メイン発振 安定待ち割込みは発生しません。 割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ い。なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下がる とセットされます。 <注意事項> • リセット解除後に割込み要求出力を許可 (WIE=1) する場合および WS1:0 ビット変更時 は , 必ず WIF と WCL ビットを同時にクリア (WIF=WCL=0) してください。 • WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , 直ちに割込み 要求が発生します。 • カウンタクリア(WPCR:WCL=1)と選択したビットのオーバフローが同時に起こった場 合は , WIF ビットのセットは行われません。 ■ インターバルタイマ機能の動作 メイン発振安定待ちタイマ用カウンタはメインクロックにてカウントアップを行いま すが , 以下の状態ではメインクロック発振が停止するため , カウント動作も停止しま す。 • WEN ビットが "0" のとき • ストップモードでメイン発振が停止する設定(スタンバイ制御レジスタSTCRのビッ ト 0:OSCD1="1") でストップモードに移行すると , ストップモード中 , カウント動作 が停止 本品種では , リセット (INIT) 時 OSCD1="1" に初期化しますので , ストップモード中 もメイン発振安定待ちタイマを動かしたい場合は , スタンバイ移行前に OSCD2="0" を設定してください。 • サブクロックモードで OSCCR( 発振制御レジスタ ) のビット 0:OSCDS1 に "1" を設 定時 , メイン発振が停止 タイマカウント動作も停止します。 カウンタをクリア (WCL="0") すると , "000000H" からカウント動作を行い , "7FFFFFH" に達すると , "000000H" に戻ってカウントを継続します。カウントアップ中に選択され たインターバルタイマ用の分周出力に立下がりエッジが発生すると , メイン発振安定 待ち割込み要求ビット (WIF) を "1" にセットします。すなわち , クリアされた時間を基 準にして , 選択されたインターバル時間ごとにメイン発振安定待ちタイマ割込み要求 を発生することになります。 145 第 3 章 CPU および制御部 ■ クロック供給機能の動作 本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ ンタが使用されますが , クロックソースとしてサブクロックを選択中にメインクロッ クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にメインク ロックで動作する本メイン発振安定待ちタイマを使用します。 サブクロック動作にてメイン発振停止状態からメインクロックの発振安定待ちを行う には , 次の手順で行ってください。 1) メインクロックの発振安定に必要な時間を WT1, 0 ビットに設定し , カウンタを "0" にクリアします (WT1, WT0= 発振安定待ち時間 , WCL="0" 書込み )。 発振安定待ち完了後の処理を割込みで行いたい場合は , 割込みフラグの初期化も行 います (WIF="0", WIE="0" 書込み )。 2) メインクロックの発振を開始します OSCR ビット 0:OCSDS1="1" 書込み )。 3) プログラムにて , WIF フラグが "1" になるまで待ちます。 4) WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま た , 割込みを許可した場合は , WIF="1" 時に割込みが発生しますので , 割込みルーチ ンで発振安定待ち完了後の処理を行ってください。 サブクロックからメインクロックに切り換える場合も , 4) の WIF="1" の確認を待っ てから行ってください ( 発振安定を待たずにメインクロックへ切り換えると , デバ イス全体に不安定なクロックが供給され , その後の動作は保証されません ) 。 ■ メイン発振安定待ちタイマの動作 図 3.13-2 に , メイン発振安定待ちタイマ起動時のメインクロックへの移行時のカウン タ状態を示します。 図 3.13-2 メイン発振安定待ちタイマ起動時のメインクロックへの移行時のカウンタ状態 7FFFFFH カウンタ値 メインクロック 発振安定待ち時間 ・タイマクリア(WCL=1)※0以外の時 ・インターバル時間設定(WS1,0=11B) ・メイン発振開始(OSCR:OSCDS1=0) 割込みルーチンでクリア WIF(割込み要求) WIE(割込みマスク) クロックモード サブクロック メインクロック ・サブ→メインクロック変更 ■ メイン発振安定待ちタイマ使用時の注意事項 発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。 メインクロックが発振停止中はカウンタも停止しますので , メイン発振安定割込みも 発生しません。メイン発振安定割込みを使った処理を行う場合は , メイン発振を停止し ないでください。 WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合ハーフラグ セットが優先し , "0" クリアは無効となります。 146 第 3 章 CPU および制御部 周辺停止制御 3.14 周辺停止制御は , 使用していない周辺リソースへのクロック供給を停止することに より , デバイスの省電力化を行うものです。 各周辺リソースのチャネルごとにクロック供給もしくは停止を設定できますので , リソース使用状態に合わせた細かな設定が可能です。 ■ 周辺停止制御のレジスタ一覧 周辺停止レジスタのレジスタ構成は , 以下のとおりです。 RSTOP0 初期値 bit 0000 0494H 15 14 13 12 11 10 9 8 ST07 ST06 ST05* ST04* ST03 ST02 ST01 ST00 6 5 4 3 2 1 0 ST16 ST15* ST14 ST13* ST12 ST11* ST10 14 13 12 11 10 9 8 ST26* ST25 ST24 ST23 ST22 ST21 ST20 7 6 5 4 3 2 1 0 - - - - - ST32 ST31 ST30 INIT 時 RST 時 アクセス xxH 00000000B W RSTOP1 bit 7 0000 0495H ST17 00000000B xxH W 00000000B xxH W ------00B xxH W RSTOP2 bit 15 0000 0496H ST27* RSTOP3 bit 0000 0497H *: MB91F353A/351A/352A/353A では , ST05, ST04, ST15, ST13, ST11, ST27, ST26 のビット設定は無効です。 ■ 周辺停止制御のブロックダイヤグラム 図 3.14-1 に , 周辺停止制御のブロックダイヤグラムを示します。 図 3.14-1 周辺停止制御のブロックダイヤグラム ST32 ST31 ST02 ST01 ST00 各リソースクロック UART ch0 / U-TIMER ch0 UART ch1 / U-TIMER ch1 R-bus UART ch2 / U-TIMER ch2 : A/D D/A CLKP 147 第 3 章 CPU および制御部 ■ 周辺停止制御のレジスタ詳細説明 レジスタの各ビットについて説明します。 RSTOP0 ∼ RSTOP3( 周辺停止レジスタ ) の各々のビット値が "0" のとき , 該当する周辺 リソースへクロック供給されますが , "1" を書き込むことで該当リソースへのクロック 供給を停止します。 リセット (INIT) 時は全ビットクリアされ , すべての周辺リソースはクロック供給状態 となります。 ● 周辺停止レジスタ 0(RSTOP0) UART および同期シリアル I/F へのクロック供給を制御します。 周辺停止レジスタ 0 のレジスタ構成は , 以下のとおりです。 RSTOP0 初期値 bit 0000 0494H 15 14 13 12 11 10 9 ST07 ST06 ST05* ST04* ST03 ST02 ST01 8 INIT 時 RST 時 アクセス xxH 00000000 ST00 W B ビット 名称 15 ST07 0: 同期シリアル I/Fch7 へクロック供給します ( 初期値 )/1: 供給を停止します 14 ST06 0: 同期シリアル I/Fch6 へクロック供給します ( 初期値 )/1: 供給を停止します 13 ST05* 0: 同期シリアル I/Fch5 へクロック供給します ( 初期値 )/1: 供給を停止します 12 ST04* 0: UARTch4/U-TIMERch4 へクロック供給します ( 初期値 )/1: 供給を停止します 11 ST03 0: UARTch3/U-TIMERch3 へクロック供給します ( 初期値 )/1: 供給を停止します 10 ST02 0: UARTch2/U-TIMERch2 へクロック供給します ( 初期値 )/1: 供給を停止します 9 ST01 0: UARTch1/U-TIMERch1 へクロック供給します ( 初期値 )/1: 供給を停止します 8 ST00 0: UARTch0/U-TIMERch0 へクロック供給します ( 初期値 )/1: 供給を停止します *: MB91F353A/351A/352A/353A は , ST05, ST04 ビットの設定は無効です。 ● 周辺停止レジスタ 1(RSTOP1) リロードタイマ , PPG へのクロック供給を制御します。 周辺停止レジスタ 1 のレジスタ構成は , 以下のとおりです。 RSTOP1 初期値 bit 0000 0495H 148 7 6 5 4 3 2 1 ST17 ST16 ST15* ST14 ST13* ST12 ST11* 0 INIT 時 RST 時 アクセス ST10 00000000B xxH W 第 3 章 CPU および制御部 ビット 名称 7 ST17 6 ST16 5 ST15 * 0: PPGch5 へクロック供給します ( 初期値 )/1: 供給を停止します 4 ST14 0: PPGch4 へクロック供給します ( 初期値 )/1: 供給を停止します 3 ST13* 0: PPGch3 へクロック供給します ( 初期値 )/1: 供給を停止します 2 ST12 0: PPGch2 へクロック供給します ( 初期値 )/1: 供給を停止します 1 ST11* 0: PPGch1 へクロック供給します ( 初期値 )/1: 供給を停止します 0 ST10 0: PPGch0 へクロック供給します ( 初期値 )/1: 供給を停止します 0: リロードタイマ ch3 へクロック供給します ( 初期値 )/1: 供給を停止します 0: リロードタイマ ch0 ∼ ch2 へクロック供給します ( 初期値 )/1: 供給を停止します *: MB91F353A/351A/352A/353A は , ST15, ST13, ST11 ビットの設定は無効です。 ● 周辺停止レジスタ 2(RSTOP2) アップダウンカウンタ , フリーランタイマ , インプットキャプチャおよび , アウトプッ トコンペアへの クロック供給を制御します。 周辺停止レジスタ 2 のレジスタ構成は , 以下のとおりです。 RSTOP2 初期値 bit 0000 0496H 15 14 13 12 11 10 9 ST27* ST26* ST25 ST24 ST23 ST22 ST21 8 INIT 時 RST 時 アクセス xxH ST20 00000000B W ビット 名称 15 ST27* 0: アウトプットコンペア ch6, ch7 へクロック供給します ( 初期値 )/1: 供給を停止します 14 * ST26 0: アウトプットコンペア ch4, ch5 へクロック供給します ( 初期値 )/1: 供給を停止します 13 ST25 0: アウトプットコンペア ch2, ch3 へクロック供給します ( 初期値 )/1: 供給を停止します 12 ST24 0: アウトプットコンペア ch0, ch1 へクロック供給します ( 初期値 )/1: 供給を停止します 11 ST23 0: インプットキャプチャ ch2, ch3 へクロック供給します ( 初期値 )/1: 供給を停止します 10 ST22 0: インプットキャプチャ ch0, ch1 へクロック供給します ( 初期値 )/1: 供給を停止します 9 ST21 0: フリーランタイマへクロック供給します ( 初期値 )/1: 供給を停止します 8 ST20 0: アップダウンカウンタ ch0, ch1 へクロック供給します ( 初期値 )/1: 供給を停止します *: MB91F353A/351A/352A/353A は , ST27, ST26 ビットの設定は無効です。 149 第 3 章 CPU および制御部 ● 周辺停止レジスタ 3(RSTOP3) I2C, A/D コンバータ , D/A コンバータへのクロック供給を制御します。 周辺停止レジスタ 3 のレジスタ構成は , 以下のとおりです。 RSTOP3 初期値 bit 0000 0497H 7 6 5 4 3 2 1 0 - - - - - ST32 ST31 ST30 INIT 時 -----000B RST 時 アクセス xxH W ビット 名称 7 - (reserved ビット ) * 本ビットへの "1" 書込みは禁止です。リード時は "0" が読み出されます。 6 - (reserved ビット ) * 本ビットへの "1" 書込みは禁止です。リード時は "0" が読み出されます。 5 - (reserved ビット ) * 本ビットへの "1" 書込みは禁止です。リード時は "0" が読み出されます。 4 - (reserved ビット ) * 本ビットへの "1" 書込みは禁止です。リード時は "0" が読み出されます。 3 - (reserved ビット ) * 本ビットへの "1" 書込みは禁止です。リード時は "0" が読み出されます。 2 ST32 0: D/A コンバータへクロック供給します ( 初期値 ) / 1: 供給を停止します 1 ST31 0: A/D コンバータへクロック供給します ( 初期値 ) / 1: 供給を停止します 0 ST30 0: I2C I/F へクロック供給します ( 初期値 ) / 1: 供給を停止します <注意事項> 本レジスタ設定を用いて周辺停止制御を行う場合は , 以下の点に注意してください。 • 停止したリソースのレジスタはリード / ライトできません。クロックを停止する場合は , 該当リソースが停止した状態にて停止してください。 • "1" を書き込むと該当リソースのクロック供給が停止するため , リソースの起動も行え ません。停止したリソースを使用する際は , 該当ビットを "0" にしてクロックを供給状 態にした後にリソースを起動してください。 • DMA 対象になっていて DMA 許可状態にある周辺リソースを停止しないでください。 また , 本ビットで停止したリソースに対して DMA 転送を許可しないでください。 • 動作中や DMA 転送中のリソースを停止しないでください。 • 周辺停止レジスタは RST 時 ( ソフトウェアリセット ) 初期化されません (INIT 時は初期 化されます )。ソフトウェアリセット後に初期化したい場合は , プログラムにて再度設 定してください。 150 第4章 外部バスインタフェース 外部バスインタフェースコントローラは , LSI の内 部バスと外部のメモリおよび I/O デバイスとのイン タフェースを制御します。 本章では , 外部バスインタフェースの各機能につい て説明します。 4.1 外部バスインタフェースの特長 4.2 外部バスインタフェースのレジスタ 4.3 チップセレクト領域 4.4 エンディアンとバスアクセス 4.5 通常バスインタフェース 4.6 アドレス / データマルチプレックスインタフェース 4.7 プリフェッチ動作 4.8 DMA アクセス 4.9 バスアービトレーション 4.10 レジスタ設定手順 151 第 4 章 外部バスインタフェース 4.1 外部バスインタフェースの特長 外部バスインタフェースの特長について説明します。 ■ 外部バスインタフェースの特長 • 最大 23 ビット長のアドレス出力 • 各種外部メモリ (8 ビット /16 ビット ) を直結できるほか , 複数のアクセスタイミン グを混在制御可能 - 非同期 SRAM, 非同期 ROM/FLASH メモリ ( 複数ライトストローブ方式またはバ イトイネーブル方式 ) - ページモード ROM/FLASH メモリ ( ページサイズ 2/4/8 が可能 ) - アドレス / データマルチプレックスバス (8 ビット /16 ビット幅のみ ) - 同期メモリ (ASIC 内蔵メモリ等 ) ( 注意事項 ) Synchronous SRAM は直結できません。 • 独立した 4 個のバンク ( チップセレクト領域 ) を設定でき , それぞれに対応したチッ プセレクト出力が可能 - 各領域のサイズは 64K バイトの倍数単位で設定可能 (1 チップセレクト領域あたり 64K バイト∼ 2G バイトまで ) - 各領域は論理アドレス空間上の任意の位置に設定可能 ( 領域サイズによりバウン ダリの制限あり ) • チップセレクト領域ごとに以下の機能が独立に設定可能 - チップセレクト領域の許可・禁止 ( 禁止された領域はアクセスを行いません ) - 各種メモリ対応などのアクセスタイミングタイプ設定 - 詳細アクセスタイミング設定 ( ウェイトサイクルなどのアクセスタイプ個別設定 ) - データバス幅設定 (8 ビット /16 ビット ) - バイトオーダリングのエンディアン設定 ( ビッグまたはリトル ) ( 注意事項 ) CS0 領域は , ビッグエンディアンのみ可能 - 書込み禁止設定 ( 読出し専用領域 ) - 内蔵キャッシュへの取込み許可・禁止設定 - プリフェッチ機能の許可・禁止設定 - 最大バースト長設定 (1, 2, 4, 8) 152 第 4 章 外部バスインタフェース • アクセスタイミングタイプごとに異なる詳細なタイミングが設定可能 - 同一タイプでもチップセレクト領域ごとに異なる設定が混在可能 - オートウェイトは , 最大 15 サイクルまで設定可能 ( 非同期 SRAM, ROM, Flash, I/O 領域 ) - 外部 RDY 入力によるバスサイクルの延長が可能 ( 非同期 SRAM, ROM, Flash, I/O 領域 ) - ファーストアクセスウェイトとページウェイトが設定可能(バースト・ページモー ド ROM/FLASH 領域 ) - 各種アイドル・リカバリサイクル , セットアップ遅延などの挿入が可能 • DMA によるフライバイ転送が可能 - メモリと I/O 間の 1 アクセスでの転送が可能 - メモリウェイトサイクルをフライバイ時に I/O のウェイト周期に同期させること が可能 - 転送元アクセスのみを延長してホールドタイムを確保することが可能 - フライバイ転送時固有のアイドル / リカバリサイクルを設定することが可能 - BRQ と BGRNT を使用した外部バスアービトレーションが可能 - 外部インタフェースの未使用ピンは , 設定により汎用 I/O ポートとして使用可能 153 第 4 章 外部バスインタフェース ■ 外部バスインタフェースのブロックダイヤグラム 図 4.1-1 に , 外部バスインタフェースのブロックダイヤグラムを示します。 図 4.1-1 外部バスインタフェースのブロックダイヤグラム 内部 アドレスパス 32 内部 データパス 32 外部 データパス MUX ライトバッファ スイッチ リードバッファ スイッチ データブロック アドレスブロック +1 または +2 外部 アドレスパス アドレスバッファ ASR CS0~CS3 ASZ comparator 外部端子制御部 RD WR0, WR1 全ブロック制御 レジスタ & 制御 AS BRQ BGRNT RDY 154 第 4 章 外部バスインタフェース ■ I/O ピン 外部バスインタフェースの端子です ( 一部のピンは兼用端子です )。 〔通常バスインタフェース〕 A23 ∼ A00, D31 ∼ D16 (AD15 ∼ AD00) CS0, CS1, CS2, CS3, AS, SYSCLK, MCLK RD WR0, WR1, RDY, BRQ, BGRNT 〔メモリインタフェース〕 MCLK 〔DMA インタフェース〕 IOWR, IORD, DACK0, DACK1, DACK2 DREQ0, DREQ1, DREQ2 DEOP0/DSTP0, DEOP1/DSTP1, DEOP2/DSTP2 ■ 外部バスインタフェースのレジスタ一覧 外部バスインタフェースのレジスタ構成は , 以下のとおりです。 アドレス 00000640H 00000644H 00000648H 0000064CH 00000650H 00000654H 00000658H 0000065CH 00000660H 00000664H 00000668H 0000066CH 00000670H 00000674H 00000678H 0000067CH 00000680H 00000684H 00000688H 0000068CH 000007F8H 000007FCH 31 24 23 16 15 8 7 ASR0 ASR1 ASR2 ASR3 ASR4 ASR5 ASR6 ASR7 AWR0 AWR2 AWR4 AWR6 予約 予約 IOWR0 予約 予約 IOWR1 予約 予約 IOWR2 予約 CSER 予約 予約 予約 予約 予約 予約 予約 予約 予約 予約 予約 予約 予約 予約 予約 予約 0 ACR0 ACR1 ACR2 ACR3 ACR4 ACR5 ACR6 ACR7 AWR1 AWR3 AWR5 AWR7 予約 予約 予約 予約 (MODR) 予約 予約 予約 予約 TCR 予約 予約 予約 予約 予約 予約 予約 : 予約レジスタです。書き換える場合には , 必ず "0" を設定してください。 MODR はユーザプログラムからはアクセスできません。 155 第 4 章 外部バスインタフェース 4.2 外部バスインタフェースのレジスタ 外部バスインタフェースのレジスタについて説明します。 ■ 外部バスインタフェースのレジスタ概要 外部バスインタフェースには , 以下の 6 種類のレジスタがあります。 • ASR0 ∼ ASR7 (Area Select Register) • ACR0 ∼ ACR7 (Area Configuration Register) • AWR0 ∼ AWR7 (Area Wait Register) • IOWR0 ∼ IOWR2 (I/O Wait Register for DMAC) • CSER (Chip Select Enable register) • TCR (Terminal and timing Control Register) 156 第 4 章 外部バスインタフェース 4.2.1 ASR0 ∼ ASR3 (Area Select Register) Area Select Register の詳細を説明します。 ■ ASR0 ∼ ASR3 (Area Select Register) のレジスタ構成 ASR0 ∼ ASR3 のレジスタ構成は , 以下のとおりです。 初期値 ASR0 15 14 13 0000 0640H A31 A30 A29 ASR1 0000 0644H 15 14 13 A31 A30 A29 ASR2 0000 0648H 15 14 13 A31 A30 A29 ASR3 15 0000 064CH A31 14 13 A30 A29 15 14 13 A31 A30 A29 15 14 13 A31 A30 A29 15 14 13 A31 A30 A29 14 13 A30 A29 ASR4 0000 0650H ASR5 0000 0654H ASR6 0000 0658H ASR7 15 0000 065CH A31 12 ... ... ... 2 1 0 INIT 時 A17 A16 0000000000000000H RST 時 0000H アクセス A18 12 ... ... ... 2 1 0 A18 A17 A16 0000000000000000H XXXXH R/W 12 ... ... ... 2 1 0 A18 A17 A16 0000000000000000H XXXXH R/W 12 ... ... ... 2 1 0 A18 A17 A16 0000000000000000H XXXXH R/W 12 ... ... ... 2 1 0 A18 A17 A16 0000000000000000H XXXXH R/W 12 ... ... ... 2 1 0 A18 A17 A16 0000000000000000H XXXXH R/W 12 ... ... ... 2 1 0 A18 A17 A16 0000000000000000H XXXXH R/W 12 ... ... ... 2 1 0 A18 A17 A16 0000000000000000H XXXXH R/W R/W ASR0 ∼ ASR7(Area Select Register 0 ∼ 7) は , CS0 ∼ CS7 の各チップセレクト領域の開 始アドレスを指定します。 開始アドレスは, A31∼A16の上位16ビットを設定できます。各チップセレクト領域は, このレジスタに設定されたアドレスから始まり , ACR0 ∼ ACR7 レジスタの ASZ3 ∼ ASZ0 ビットで設定された範囲をとります。 各チップセレクト領域のバウンダリは , ACR0 ∼ ACR7 レジスタの ASZ3 ∼ ASZ0 ビッ トの設定にしたがいます。例えば , ASZ3 ∼ ASZ0 ビットにより , 1M バイトの領域を設 定した場合は , ASR0 ∼ ASR7 レジスタの下位 4 ビットは無視され , A31 ∼ A20 ビット のみ意味を持ちます。 ASR0 レジスタは , INIT および RST により , 0000H に初期化されます。ASR1 ∼ ASR7 は , INIT および RST によっては初期化されず , 不定となります。LSI の動作開始後 , CSER レジスタにより各チップセレクト領域を有効にする前に , 必ず対応する ASR レ ジスタを設定してください。 157 第 4 章 外部バスインタフェース 4.2.2 ACR0 ∼ ACR7 (Area Configuration Register) Area Configuration Register の詳細を説明します。 ■ ACR0 ∼ ACR7 (Area Configuration Register) のレジスタ構成 ACR0 ∼ ACR7 のレジスタ構成は , 以下のとおりです。 初期値 ACR0H 12 11 10 9 8 ACR0L 7 6 5 0000 0643H SREN PFEN WREN 4 3 2 1 0 ACR1H 0000 0646H 12 0000 0642H 15 14 13 RST 時 アクセス ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 1111xx00B 1111**00B R/W 15 14 13 0 INIT 時 TYP3 TYP2 TYP1 TYP0 00000000B 00000000B 11 10 9 R/W 8 ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W ACR1L 7 6 5 4 3 2 1 0 0000 0647H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W ACR2H 0000 064AH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W ACR2L 7 6 5 4 3 2 1 0 0000 064BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W ACR3H 0000 064EH 15 14 13 12 11 10 9 8 ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W ACR3L 7 6 5 4 3 2 1 0 0000 064FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W ACR4H 0000 0652H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W ACR4L 7 6 5 4 3 2 1 0 0000 0653H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W ACR5H 0000 0656H 15 14 13 12 11 10 9 8 ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W ACR5L 7 6 5 4 3 2 1 0 0000 0657H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W 15 15 14 14 13 13 12 12 11 11 10 10 9 9 8 8 ( 続く ) 158 第 4 章 外部バスインタフェース ( 続き ) 初期値 ACR6H 0000 065AH 15 14 13 12 11 10 9 8 INIT 時 RST 時 アクセス ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W ACR6L 7 6 5 4 3 2 1 0 0000 065BH SREN PFEN WREN LEND TYP3 TYP2 TYP3 TYP0 xxxxxxxxB xxxxxxxxB R/W ACR7H 0000 065EH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W ACR7L 7 6 5 4 3 2 1 0 0000 065FH SREN PFEN WREN LEND TYP3 TYP2 TYP3 TYP0 xxxxxxxxB xxxxxxxxB R/W 15 14 13 12 11 10 9 8 ACR0 ∼ ACR7(Area Configuration Register 0 ∼ 7) は , 各チップセレクト領域の機能を設 定します。 [ ビット 15 ∼ 12] ASZ3 ∼ 0= Area Size ビット 3 ∼ 0 各チップセレクト領域のサイズを , 表 4.2-1 のように設定します。 表 4.2-1 Area Size ビットの各チップセレクト領域の設定サイズ ASZ3 ASZ2 ASZ1 ASZ0 各チップセレクト領域のサイズ 0 0 0 0 64K バイト (00010000H バイト , ASR A31 ∼ A16 ビット指定が有効 ) 0 0 0 1 128K バイト (00020000H バイト , ASR A31 ∼ A17 ビット指定が有効 ) 0 0 1 0 256K バイト (00040000H バイト , ASR A31 ∼ A18 ビット指定が有効 ) 0 0 1 1 512K バイト (00080000H バイト , ASR A31 ∼ A19 ビット指定が有効 ) 0 1 0 0 1M バイト (00100000H バイト , ASR A31 ∼ A20 ビット指定が有効 ) 0 1 0 1 2M バイト (00200000H バイト , ASR A31 ∼ A21 ビット指定が有効 ) 0 1 1 0 4M バイト (00400000H バイト , ASR A31 ∼ A22 ビット指定が有効 ) 0 1 1 1 8M バイト (00800000H バイト , ASR A31 ∼ A23 ビット指定が有効 ) 1 0 0 0 16M バイト (01000000H バイト , ASR A31 ∼ A24 ビット指定が有効 ) 1 0 0 1 32M バイト (02000000H バイト , ASR A31 ∼ A25 ビット指定が有効 ) 1 0 1 0 64M バイト (04000000H バイト , ASR A31 ∼ A26 ビット指定が有効 ) 1 0 1 1 128M バイト (08000000H バイト , ASR A31 ∼ A27 ビット指定が有効 ) 1 1 0 0 256M バイト (10000000H バイト , ASR A31 ∼ A28 ビット指定が有効 ) 1 1 0 1 512M バイト (20000000H バイト , ASR A31 ∼ A29 ビット指定が有効 ) 1 1 1 0 1024M バイト (40000000H バイト , ASR A31, A30 ビット指定が有効 ) 1 1 1 1 2048M バイト (80000000H バイト , ASR A31 ビット指定が有効 ) ASZ3 ∼ ASZ0 では , ASR とのアドレス比較のビット数を変更させることにより , 各領 域のサイズを設定します。そのため ASR は比較されないビットが存在します。 ACR0 の ASZ3 ∼ ASZ0 ビットは , RST により 1111B(0FH) に初期化されますが , この設 定にかかわらず RST 直後の CS0 領域は特別に 00000000H から FFFFFFFFH( 全領域 ) に 設定されています。ACR0 への最初の書込み後より , 全領域設定が解除され , 上記の表 にしたがったサイズに設定されます。 159 第 4 章 外部バスインタフェース [ ビット 11, 10] DBW1, DBW0= Data Bus Width1, 0 各チップセレクト領域のデータバス幅を , 以下のように設定します DBW1 DBW0 0 0 8 ビット ( バイトアクセス ) 0 1 16 ビット ( ハーフワードアクセス ) 1 0 Reserved 設定禁止 1 1 Reserved 設定禁止 データバス幅 ACR0 の DBW1, DBW0 ビットは , リセットシーケンス中にモードベクタの WTH ビッ トの値と同じ値が自動的に書き込まれます。 [ ビット 9, 8] BST1, BST0= Burst Size1, 0 各チップセレクト領域のデータバス幅を , 以下のように設定します BST1 BST0 最大バースト長 0 0 1( シングルアクセス ) 0 1 2 バースト ( アドレス境界 1 ビット ) 1 0 4 バースト ( アドレス境界 2 ビット ) 1 1 8 バースト ( アドレス境界 3 ビット ) シングルアクセス以外のバースト長が設定された領域は , プリフェッチアクセスまた はバス幅を超えるサイズのデータの読出しを行った場合のみ , バースト長から決まる アドレス境界内で連続したバーストアクセスを行います。 バス幅 32 ビット領域の最大バースト長は 4 バースト以下しか設定してはいけません。 2 バースト以下を推奨します。 バス幅 16 ビット領域の最大バースト長は 2 バースト以下を推奨します。 シングルアクセス以外のバースト長設定を行った領域では RDY 入力を無視します。 [ ビット 7] SREN=ShaRed ENable 各チップセレクト領域の BRQ/BGRNT による共有の許可・禁止を , 以下のように設定 します SREN 共有の許可・禁止 0 BRQ/BGRNT による共有を禁止 (CS はハイインピーダンスになりません ) 1 BRQ/BGRNT による共有を許可 (CS はハイインピーダンスになります ) 共有が許可された領域は , バス開放中 (BGRNT=Low 出力中 ) はチップセレクト出力 (CSn) がハイインピーダンスになります。 共有が禁止された領域は , バス開放中 (BGRNT=Low 出力中 ) もチップセレクト出力 (CSn) がハイインピーダンスになりません。 CSER により許可されたすべての領域の共有が許可されている場合のみ , アクセススト ローブ出力 (AS, RD, WR0, WR1) がハイインピーダンスになります。 160 第 4 章 外部バスインタフェース [ ビット 6] PFEN=PreFetch ENable 各チップセレクト領域のプリフェッチの許可・禁止を , 以下のように設定します PFEN プリフェッチ許可・禁止 0 プリフェッチ禁止 1 プリフェッチ許可 プリフェッチが許可された領域に対しての読出しを行うと , それに続くアドレスに対 し先読みを行い , 内蔵プリフェッチバッファに蓄積します。蓄積されたアドレスに対し 内部バスからのアクセスがあると , 外部アクセスを行わずにプリフェッチバッファに 先読みされたデータを返します。 詳細は「4.7 プリフェッチ動作」を参照してください。 [ ビット 5] WREN=WRite ENable 各チップセレクト領域の書込みの許可・禁止を設定します。 WREN 書込み許可・禁止 0 書込み禁止 1 書込み許可 書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , そのア クセスは無視され , 外部アクセスを一切行いません。 データ領域等 , 書込みが必要な領域は , WREN ビットに "1" を設定してください。 [ ビット 4] LEND=Little ENDian select 各チップセレクト領域のバイトオーダリングを設定します。 LEND バイトオーダリング 0 ビッグエンディアン 1 リトルエンディアン ACR0 の LEND ビットには , 必ず "0" を設定してください。CS0 領域はビッグエンディ アンのみをサポートします。 161 第 4 章 外部バスインタフェース [ ビット 3 ∼ 0] TYP3 ∼ TYP0= TYPe select 各チップセレクト領域のアクセスタイプを , 以下のように設定します TYP3 TYP2 TYP1 TYP0 0 1 0 x 1 x アクセスタイプ x 通常アクセス ( 非同期 SRAM, I/O, single/page) x x アドレスデータマルチプレックスアクセス (8/16 ビットバス幅限定 ) x 0 RDY 端子による WAIT 挿入無効 x 1 RDY 端子による WAIT 挿入有効 ( バースト時は無効 ) 0 x WR0∼WR3端子をライトストローブとして使用(WRは"H"固定) 1 x 設定禁止 0 設定禁止 1 設定禁止 0 0 0 1 0 設定禁止 0 1 1 設定禁止 1 0 0 設定禁止 1 0 1 設定禁止 1 1 0 設定禁止 1 1 1 マスク領域設定 ( アクセスタイプは重複した領域のものになり ます。) * 各ビットは , 組み合わせて設定します。 *: CS 領域マスク設定機能 ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更した 領域を定義したい場合 , 別の CS 領域の設定にて , ACR:TYPE3 ∼ TYPE0=1111 を設 定し , マスク設定領域として機能させることができます。 マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定は 禁止します。 マスク設定領域へのアクセスは , 以下のような動作を行います。 - マスク設定領域に対応する CS はアサートされません。 - ベース設定領域に対応する CS がアサートされます。 - ACR の以下の設定はマスク設定領域側のものが有効になります。 ビット 11, 10 DBW1, 0: バス幅設定 ビット 9, 8 BST1, 0: バースト長設定 ビット 7 SREN: 共有許可設定 ビット 6 PFEN: プリフェッチ許可設定 ビット 5 WREN: ライト許可設定 ( 注意 : この設定のみ , ベース設定領域と異な る設定は禁止します ) 。 ビット 4 LEND: リトルエンディアン設定 - ACR の以下の設定はベース設定領域側のものが有効になります。 ビット 3 ∼ 0 TYPE3 ∼ 0: アクセスタイプ設定 - AWR の設定はマスク設定領域側のものが有効になります。 - CHER の設定はマスク設定領域側のものが有効になります。 162 第 4 章 外部バスインタフェース マスク設定領域は , ほかの CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設定でき ます。ベース設定領域がない領域に対して , マスク設定領域を設けてはいけません。ま た , マスク設定領域を複数重複させてもいけません。ASR および ACR:ASZ3 ∼ ASZ0 ビットの設定には十分注意してください。 <注意事項> [ ビット 3 ∼ 0] TYP3 ∼ TYP0] についての制限事項は以下のとおりです。 • ライト許可設定をマスクで実現することはできません。 • ライト許可設定は , ベースとなる CS 領域と , マスク設定領域とで , 同じ設定としてく ださい。 • マスク設定領域でライト禁止を設定すると , その領域はマスクされずベース CS 領域と して動作します。 • ベース CS 領域でライト禁止を設定し , マスク設定領域でライト許可を設定すると , ベース設定のない領域となり , 誤動作します。 • MB91350A シリーズでは CS4 ∼ CS7 端子がありませんので CS 領域 4 ∼ 7 は ACR:TYPE 3 ∼ TYPE0 = 1111 マスク領域設定のみ有効となります。 • ASR, ACR はワードアクセスで同時設定してください。ASR, ACR をハーフワードで アクセスする場合には , ASR 設定後 , ACR を設定してください。 163 第 4 章 外部バスインタフェース 4.2.3 AWR0 ∼ AWR7 (Area Wait Register) Area Wait Register の詳細を説明します。 ■ AWR0 ∼ AWR7 (Area Wait Register) のレジスタ構成 AWR0 ∼ AWR7 のレジスタ構成は , 以下のとおりです。 初期値 AWR0H 31 30 29 28 27 26 25 0000 0660H W15 W14 W13 W12 W11 W10 W09 AWR0L 0000 0661H 23 22 21 20 19 18 17 W07 W06 W05 W04 W03 W02 W01 24 INIT 時 RST 時 アクセス W08 01111111B 01111111B R/W 16 W00 11111111B 11111011B R/W AWR1H 0000 0662H 15 14 13 12 11 10 9 8 W15 W14 W13 W12 W11 W10 W09 W08 xxxxxxxxB xxxxxxxxB R/W AWR1L 0000 0663H 7 6 5 4 3 2 1 W07 W06 W05 W04 W03 W02 W01 0 W00 xxxxxxxxB xxxxxxxxB R/W AWR2H 0000 0664H 31 30 29 28 27 26 25 W15 W14 W13 W12 W11 W10 W09 W08 xxxxxxxxB xxxxxxxxB R/W AWR2L 0000 0665H 23 22 21 20 19 18 17 W07 W06 W05 W04 W03 W02 W01 16 W00 xxxxxxxxB xxxxxxxxB R/W AWR3H 0000 0666H 15 14 13 12 11 10 9 W15 W14 W13 W12 W11 W10 W09 8 W08 xxxxxxxxB xxxxxxxxB R/W AWR3L 0000 0667H 7 6 5 4 3 2 1 W07 W06 W05 W04 W03 W02 W01 0 W00 xxxxxxxxB xxxxxxxxB R/W AWR4H 0000 0668H 31 30 29 28 27 26 25 W15 W14 W13 W12 W11 W10 W09 AWR4L 0000 0669H 23 22 21 20 19 18 17 W07 W06 W05 W04 W03 W02 W01 W00 xxxxxxxxB xxxxxxxxB R/W AWR5H 0000 066AH 15 14 13 12 11 10 9 W15 W14 W13 W12 W11 W10 W09 8 W08 xxxxxxxxB xxxxxxxxB R/W AWR5L 0000 066BH 7 6 5 4 3 2 1 W07 W06 W05 W04 W03 W02 W01 0 W00 xxxxxxxxB xxxxxxxxB R/W 24 24 W08 xxxxxxxxB xxxxxxxxB R/W 16 ( 続く ) 164 第 4 章 外部バスインタフェース ( 続き ) 初期値 AWR6H 31 30 29 28 27 26 25 24 0000 066CH W15 W14 W13 W12 W11 W10 W09 AWR6L 0000 066DH 23 22 21 20 19 18 17 W07 W06 W05 W04 W03 W02 W01 AWR7H 0000 066EH 15 14 13 12 11 10 9 W15 W14 W13 W12 W11 W10 W09 W08 xxxxxxxxB xxxxxxxxB R/W AWR7L 0000 066FH 7 6 5 4 3 2 1 W07 W06 W05 W04 W03 W02 W01 0 W00 xxxxxxxxB xxxxxxxxB R/W INIT 時 RST 時 アクセス W08 xxxxxxxxB xxxxxxxxB R/W 16 W00 xxxxxxxxB xxxxxxxxB R/W 8 AWR0 ∼ AWR7 は , 各チップセレクト領域の各種ウェイトタイミングを指定します。 ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定により , 各 ビットの働きが変わります。 ■ 通常アクセスおよびアドレス / データマルチプレックスアクセス ACR0 ∼ ACR3 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に以下の設定を行っ たチップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレックスアク セス動作を行う領域となります。 TYP3 TYP2 TYP1 TYP0 0 0 x x 通常アクセス ( 非同期 SRAM, I/O, single/page) 0 1 x x アドレスデータマルチプレックスアクセス (8/16 ビットバス幅限定 ) アクセスタイプ 通常アクセスまたはアドレス / データマルチプレックスアクセス領域に対しての , AWR0 ∼ AWR7 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定ですので , 各 領域を CSER レジスタによって有効にする前に , 設定を行ってください。 [ ビット 15 ∼ 12] W15 ∼ W12= ファーストアクセスウェイトサイクル (First Access Wait Cycle) 各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイクル数を設定し ます。バーストアクセスサイクル以外は , このウェイト設定のみ使用されます。 CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。 W15 W14 W13 W12 0 0 0 0 自動ウェイトサイクル 0 0 0 0 1 自動ウェイトサイクル 1 1 1 1 1 ファーストアクセスウェイトサイクル … … 自動ウェイトサイクル 15 165 第 4 章 外部バスインタフェース [ ビット 11 ∼ 8] W11 ∼ 08=ページ内アクセスウェイトサイクル (Inpage Access Wait Cycle) バーストアクセス時 , ページ内アクセスサイクルに挿入するオートウェイトサイクル 数を設定します。バーストアクセスサイクル以外では , 意味を持ちません。 W11 W10 W09 W08 0 0 0 0 自動ウェイトサイクル 0 0 0 0 1 自動ウェイトサイクル 1 1 1 1 1 自動ウェイトサイクル 15 ページ内アクセスウェイトサイクル … … ファーストアクセスウェイトサイクルとページ内アクセスウェイトサイクルに同じ値 を設定しても , それぞれのアクセスサイクルでのアドレスからのアクセスタイムは同 じにはならないことに注意してください (ページ内アクセスサイクルでは , アドレス出 力遅延が含まれるため ) 。 [ ビット 7, 6] W07, 06= リード→ライトアイドルサイクル (Read → Write Idle Cycle) リード→ライトアイドルサイクルは , リードサイクル後にライトサイクルが続く場合 に , リードデータとライトデータのデータバス上での衝突を防ぐために設定します。ア イドルサイクル中はすべてのチップセレクト信号をネゲートし , データ端子はハイイ ンピーダンス状態を維持します。 リード後にライトが続く場合 , もしくは , リードの後に別のチップセレクト領域へのア クセスが発生した場合に , 指定したアイドルサイクルを挿入します。 W07 W06 0 0 0 サイクル 0 1 1 サイクル 1 0 2 サイクル 1 1 3 サイクル リード→ライトアイドルサイクル [ ビット 5, 4] W05, W04= ライトリカバリサイクル (Write Recovery Cycle) ライトリカバリサイクルは , ライトアクセス後に続けてアクセスする際の間隔に制限 のあるデバイスへのアクセスを制御する場合に設定します。ライトリカバリサイクル 中はすべてのチップセレクト信号をネゲートし , データ端子はハイインピーダンスを 維持します。 ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必ずラ イトリカバリサイクルが挿入されます。 166 W05 W04 0 0 0 サイクル 0 1 1 サイクル 1 0 2 サイクル 1 1 3 サイクル ライトリカバリサイクル 第 4 章 外部バスインタフェース [ ビット 3] W03=WR0 ∼ WR1 出力タイミング選択 WR0 ∼ WR1 出力タイミング設定は , ライトストローブ出力を , 非同期ストローブとし て使用するか , 同期ライトイネーブルとして使用するかを選択します。非同期ストロー ブとすることにより通常メモリ I/O に対応し , 同期イネーブルとすることによりクロッ ク同期のメモリ I/O(ASIC 内蔵メモリなど ) に対応します。 W03 WR0 ∼ WR1 出力タイミング選択 0 MCLK 同期ライトイネーブル出力 (AS="L" から有効 ) 1 非同期ライトストローブ出力 ( 通常動作 ) 同期ライトイネーブルとした場合 (AWR:W03 ビットが "0") , 以下のような動作となり ます。 • 同期ライトイネーブル出力のタイミングは , 外部メモリアクセスクロックの MCLK 出力の立上がりエッジで取り込まれることを前提としたタイミングになります。非 同期ストローブ出力とはタイミングが異なります。 • WR0 ∼ WR1 端子出力は , AS 端子出力がアサートされているタイミングから , 同期 ライトイネーブル出力をアサートします。外部バスへのライトが行われる場合 , 同 期ライトイネーブル出力は "L" を出力します。外部バスからのリードが行われる場 合 , 同期ライトイネーブル出力は "H" を出力します。 • 同期ライトイネーブル出力をアサートしたクロックサイクルにて , 外部データ出力 端子よりライトデータを出力します。 • リードストローブ出力 (RD) は, WR0∼WR1 出力タイミング設定の内容に関わらず, 非同期リードストローブとして機能します。データの入出力方向制御にそのまま用 いてください。 同期ライトイネーブル出力を使用する場合 , 以下の制限があります。 以下の追加ウェイト設定はしないでください。 • CS → RD/WR セットアップ設定 (AWR:W01 ビットは常に "0" を書いてください ) ファーストアクセスウェイトサイクル設定 (AWR:W15-W12 ビットは常に "0000B" を 書いてください ) • 以下のアクセスタイプ設定 (ACR レジスタ中の TYPE3 ∼ TYPE0 ビット ( ビット 3 ∼ビット 0)) は設定しないでください。 アドレス / データマルチプレックスバス設定 (ACR:TYPE2 ビットは常に "0" を書い てください ) • WR0 ∼ WR1 をライトストローブとして使用する設定 (ACR:TYP1 ビットは常に "0" を書いてください ) RDY 入力有効設定 (ACR:TYPE0 ビットは常に "0" を書いてください ) • 同期ライトイネーブル出力の場合 , バースト長は常に 1(ACR:BST1, 0 ビットに "00B") を設定してください。 167 第 4 章 外部バスインタフェース [ ビット 2] W02= アドレス→ CS 遅延 (Address → CS Delay) アドレス→ CS 遅延設定は , CS の立下りに対してアドレスなどが一定のセットアップ を必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際にも CS の エッジを必要とする場合などに設定します。 アドレスおよび AS 出力から , CS0 ∼ CS3 出力のディレイを設定します。 W02 アドレス→ CS 遅延 0 遅延なし 1 遅延あり "0" を設定し , 遅延なしを選択した場合は , AS のアサートと同じタイミングで CS0 ∼ CS3 がアサート開始されます。このとき , 同じチップセレクト領域に連続したアクセス を実行した場合 , 両アクセスの間も CS0 ∼ CS3 はアサートを継続したまま変化しない ことがあります。 "1" を設定し , 遅延ありを選択した場合は , 外部メモリクロック MCLK 出力の立上りか ら CS0 ∼ CS3 がアサート開始されます。このとき , 同じチップセレクト領域に連続し たアクセスを実行した場合でも , 両アクセスの間に CS0 ∼ CS7 ネゲートタイミングが 発生します。 CS 遅延ありを選択した場合は , 遅延させた CS のアサートから , リード / ライトスト ローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します (W01 の CS → RD/WR セットアップ設定と同等の動作となります ) 。 アドレス→ CS 遅延設定は , 同一領域に対し出力される DACK 信号 ( 基本モード ) にも 同様に作用します。基本モードでの DACK 出力は , その領域に対する CS と同じ波形 となります。 [ ビット 1] W01=CS → RD/WR セットアップ延長サイクル (CS → RD/WR setup) CS→RD/WRセットアップ延長サイクルは, CSアサート後, リード/ライトストローブを アサートするまでの期間を延長する場合に設定します。CS アサート後 , リード / ライ トストローブをアサートする前に最低 1 サイクルのセットアップ延長サイクルを挿入 します。 W01 CS → RD/WR セットアップ延長サイクル 0 0 サイクル 1 1 サイクル "0" を設定し , 0 サイクルを選択した場合は , 最速で , CS アサート直後の外部メモリク ロック MCLK 出力の立上がりから RD/WR0 ∼ WR1 が出力されます。WR0 ∼ WR1 は , 内部バスの状態により , 1 サイクル以上遅れることもあります。 "1" を設定し , 1 サイクルを選択した場合は , RD/WR0 ∼ WR1 とも , 必ず 1 サイクル以 上遅れて出力されます。 同一チップセレクト領域内で , CS をネゲートしないまま連続してアクセスする場合 , このセットアップ延長サイクルは挿入されません。アドレス確定のセットアップ延長 サイクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CS 遅延を挿入するこ とにより , 毎アクセス時に CS がいったんネゲートされるため , このセットアップ延長 サイクルが有効となります。 W02 の CS 遅延設定を挿入してある場合 , W01 ビットの設定によらず常にこのセット アップサイクルが有効となります。 168 第 4 章 外部バスインタフェース [ ビット 0] W00=RD/WR → CS ホールド延長サイクル (RD/WR → CS Hold Cycle) RD/WR→CSホールド延長サイクルは, リード/ライトストローブネゲート後, CSネゲー トまでの期間を延長する場合に設定します。リード / ライトストローブネゲート後 , CS をネゲートする前に , 1 サイクルのホールド延長サイクルを挿入します。 W00 RD/WR → CS ホールド延長サイクル 0 0 サイクル 1 1 サイクル "0" を設定し , 0 サイクルを選択した場合は , RD/WR0 ∼ WR1 がネゲートされた後の外 部メモリクロックMCLK出力の立上がりエッジよりホールド遅延経過後に, CS0∼CS3 がネゲートされます。 "1" を設定し , 1 サイクルを選択した場合は , CS0 ∼ CS3 は 1 サイクル遅れてネゲート されます。 同一チップセレクト領域内で , CS をネゲートしないまま連続してアクセスする場合 , このホールド延長サイクルは挿入されません。アドレス確定のホールド延長サイクル が必須となる場合, W02ビットを有効にしてアドレス→CS遅延を挿入することにより, 毎アクセス時に CS がいったんネゲートされるため , このホールド延長サイクルが有効 となります。 169 第 4 章 外部バスインタフェース 4.2.4 IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) I/O Wait Register for DMAC の詳細を説明します。 ■ IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) のレジスタ構成 IOWR0 ∼ IOWR3 のレジスタ構成は , 以下のとおりです。 IOWR0 初期値 31 0000 0678H IOWR1 0000 0679H 30 29 28 27 26 25 24 INIT 時 RST 時 RYE0 HLD0 WR01 WR00 IW03 IW02 IW01 IW00 xxxxxxxxB xxxxxxxxB 23 22 21 20 19 18 17 14 13 12 11 10 9 R/W 16 RYE1 HLD1 WR11 WR10 IW13 IW12 IW11 IW10 xxxxxxxxB xxxxxxxxB 15 アクセス R/W IOWR2 0000 067AH 8 RYE2 HLD2 WR21 WR20 IW23 IW22 IW21 IW20 xxxxxxxxB xxxxxxxxB R/W IOWR3 * 0000 067BH 15 14 13 12 11 10 9 8 RYE3 HLD3 WR31 WR30 IW33 IW32 IW31 IW30 xxxxxxxxB xxxxxxxxB R/W *: MB91F355A/355A/354A/F356B/F357B のみです。 DMA フライバイアクセス時の , 各種ウェイトを設定します。 [ ビット 31, 23, 15] RYE0, 1, 2=RDY 機能設定 (ReadY Enable0, 1, 2, 3) DMA フライバイアクセス時のチャネル 0 ∼ 2 のチャネルごとの RDY によるウェイト 制御の設定を行います。 RYEn RDY 機能設定 0 I/O アクセスに対する RDY 入力は無効となります。 1 I/O アクセスに対する RDY 入力が有効になります。 "1" を設定することにより , 該当するチャネルのフライバイ転送時 , RDY 端子による ウェイト挿入が可能となります。IOWR, IORD は RDY 端子がイネーブルになるまで , 延長されます。 また , メモリ側の RD/WR0 ∼ WR3/WR もそれに同期して延長されます。 フライバイ転送相手のチップセレクト領域が ACR レジスタにより RDY 有効に設定さ れていれば , IOWR 側の RYEn ビットとは関係なく , RDY 端子によるウェイト挿入が 可能となります。また , フライバイ転送相手のチップセレクト領域で ACR レジスタに より RDY 無効にされている場合でも , IOWR 側の RYEn ビットにより RDY 有効に設 定されていれば , フライバイアクセス時のみ , RDY 端子によるウェイト挿入が可能と なります。 170 第 4 章 外部バスインタフェース [ ビット 30, 22, 14] HLD0, 1, 2= ホールドウェイト設定 (HoLD wait control) DMA フライバイアクセス時の , 転送元アクセス側のリードストローブ信号のホールド サイクルを制御します。 HLDn ホールドウェイト設定 0 ホールド延長サイクルを挿入しません。 1 ホールド延長サイクルを挿入し , リードサイクルを 1 サイクル延長します。 "0" 設定時は , 転送元アクセス側のリードストローブ信号 ( メモリ→ I/O の場合は RD, I/O →メモリの場合は IORD) とライトストローブ信号 ( メモリ→ I/O の場合は IOWR, I/O →メモリの場合は , WR0 ∼ WR3 および WRX) は同じタイミングで , 出力されます。 "1" 設定時は , 転送元アクセス側データの転送先に対するホールドタイムを確保するた め , ライトストローブ信号に対し , リードストローブ信号を , "1" サイクル長く出力し ます。 [ ビット 29, 28, 21, 20, 13, 12] WR01, WR00, WR11, WR10, WR21, WR20 =I/O アイドルサイクル設定 (I/O Idle Wait) DMA フライバイアクセス時に , 連続した I/O アクセスに対するアイドルサイクルを設 定します。 WRn1 WRn0 0 0 0 サイクル 0 1 1 サイクル 1 0 2 サイクル 1 1 3 サイクル I/O アイドルサイクル設定 アイドルサイクルを 1 サイクル以上設定した場合 , DMA フライバイアクセス時に , I/O アクセスの後に設定したサイクル数のアイドルサイクルを挿入します。アイドルサイ クル中は , すべての CS およびストローブ出力はネゲートされ , データ端子はハイイン ピーダンスとなります。 [ビット27∼24, 19∼16, 11∼8] IW03∼W00, IW13∼IW10, IW23∼IW20, IW33∼IW30 =I/O ウェイトサイクル (I/O access Wait) DMA フライバイアクセス時の , I/O アクセスの自動ウェイトサイクルを指定します。 IWn3 IWn2 IWn1 IWn0 I/O ウェイトサイクル 0 0 0 0 0 サイクル 0 0 0 1 1 サイクル 1 … 1 … 1 1 15 サイクル ウェイトサイクルの挿入数は , 転送元と転送先とでのデータの同期のため , IWnn ビッ トによる I/O 側の設定とフライバイ転送相手 ( メモリなど ) のウェイト設定のうち , 大 きいほうを使用します。そのため , IWnn ビットに設定したサイクル数より多いウェイ トが挿入される場合があります。 171 第 4 章 外部バスインタフェース 4.2.5 CSER (Chip Select Enable register) Chip Select Enable register の詳細を説明します。 ■ CSER (Chip Select Enable register) のレジスタ構成 CSER のレジスタ構成は , 以下のとおりです。 初期値 31 0000 0680H 30 29 28 27 26 25 24 INIT 時 RST 時 アクセス CSE7 CSE6 CSE5 CSE4 CSE3 CSE2 CSE1 CSE0 00000001B 00000001B R/W 各チップセレクト領域の許可 / 禁止を設定します。 [ ビット 31 ∼ 24] CSE7 ∼ CSE0= チップセレクト領域許可 (Chip select enable 0-7) CS0 ∼ CS7 の各チップセレクト領域許可ビットです。 初期値は , 00000001B で CS0 領域のみ許可されています。 "1" を書き込むことにより ASR0 ∼ ASR7, ACR0 ∼ ACR7, AWR0 ∼ AWR7 の設定にし たがい , 動作します。 許可にする前に , 必ず対応するチップセレクト領域のすべての設定を行ってください。 CSE7 ∼ CSE0 領域コントロール 0 禁止 1 許可 表 4.2-2 に , CSE のビットと対応する CSK を示します。 表 4.2-2 CSE のビットと対応する CSK 172 CSE のビット 対応する CS ビット 24:CSE0 CS0 ビット 25:CSE1 CS1 ビット 26:CSE2 CS2 ビット 27:CSE3 CS3 ビット 28:CSE4 CS4 ビット 29:CSE5 CS5 ビット 30:CSE6 CS6 ビット 31:CSE7 CS7 第 4 章 外部バスインタフェース 4.2.6 TCR (Terminal and timing Control Register) Terminal and timing Control Register の詳細を説明します。 ■ TCR (Terminal and timing Control Register) のレジスタ構成 TCR のレジスタ構成は , 以下のとおりです。 初期値 7 6 5 4 0000 0683H BREN PSUS PCLR 予約 3 予約 2 1 0 INIT 時 RST 時 アクセス 0000xxxx 00000000 RDW1 RDW0 R/W 予約 B B 共通端子機能設定やタイミング制御など , 外部バスインタフェースコントローラ全般 に関わる機能を制御します。 [ ビット 7] BREN=BRQ 入力許可設定 (BRQ enable) BRQ 端子入力を許可し , 外部バス共有を可能にします。 BREN BRQ 入力許可設定 0 BRQ/BGRNT によるバス共有をしません。BRQ 入力は無効となります。 1 BRQ/BGRNT によるバス共有を行います。BRQ 入力は有効となります。 初期状態 ("0") のときは , BRQ の入力を無視します。 "1" を設定すると , BRQ 入力が "H" になった後 , バス開放が可能になった時点で , バス を開放 ( ハイインピーダンス制御 ) し BGRNT をアクティブ ("L" 出力 ) にします。 [ ビット 6] PSUS= プリフェッチ抑止 (Prefetch SUSpend) すべての領域に対するプリフェッチの一時停止を制御します。 PSUS プリフェッチ制御 0 プリフェッチ許可 1 プリフェッチ抑止 "1" を設定すると , "0" を書き込むまでの間 , 新規のプリフェッチ動作を行いません。こ の間 , プリフェッチバッファへのミスが発生しない限りはプリフェッチバッファの内 容は消去されませんので , プリフェッチを再開する前にビット 5:PCLR ビット機能によ りプリフェッチバッファのクリアを行ってください。 173 第 4 章 外部バスインタフェース [ ビット 5] PCLR= プリフェッチバッファ全クリア (Prefetch buffer CleaR) プリフェッチバッファのすべての内容をクリアします。 PCLR プリフェッチバッファ制御 0 通常状態 1 プリフェッチバッファクリア "1" を書き込むと 1 度だけプリフェッチバッファをすべてクリアします。バッファクリ アが完了すると自動的にビット値は "0" に戻ります。PSUS ビットでプリフェッチを中 断 ("1" に設定 ) しておいてからバッファのクリアを行ってください (PSUS と PCLR の 両ビットに同時に "11B" を書き込んで結構です ) 。 [ ビット 4 ∼ 2] 予約 (reserved) 予約ビットです。必ず "0" を設定してください。 [ ビット 1, 0] RDW1, RDW0= ウェイトサイクル短縮 (ReDuce Wait cycle) すべてのチップセレクト領域およびフライバイ用 I/O チャネルに対し , 自動アクセスサ イクルウェイトの設定値を , AWR レジスタの設定値はそのままで自動ウェイトサイク ルのみ一律に削減します。アイドルサイクルやリカバリサイクル , セットアップやホー ルドサイクルの設定には影響しません。SDRAM 制御領域でも機能しません。 RDW1 RDW0 0 0 通常ウェイト (AWR0 ∼ AWR7 の設定値 ) 0 1 AWR0 ∼ AWR3 の設定値の 1/2 (1 ビット右シフト ) 1 0 AWR0 ∼ AWR3 の設定値の 1/4 (2 ビット右シフト ) 1 1 AWR0 ∼ AWR3 の設定値の 1/8 (3 ビット右シフト ) ウェイトサイクル短縮 この機能は , ベースクロックを低速にしている間や , 外部バスクロックの分周比設定を 大きくしている間など , 低速クロックで動作している間 , 過剰なアクセスサイクルウェ イトがかかることを防ぐためのものです。 通常このような場合にウェイトサイクルを設定し直すには , すべての AWR をそれぞれ 書き換えなければなりませんが , RDW1, RDW0 ビットの機能を使うと , すべての AWR の設定は高速クロックのときの設定のままで, アクセスサイクルウェイトのみ1度に削 減することができます。 クロックを高速に戻す前に , 必ず RDW1, RDW0 ビットは "00B" に設定し直してくださ い。 174 第 4 章 外部バスインタフェース 4.3 チップセレクト領域 外部バスインタフェースは全 4 領域分のチップセレクト領域が設定できます。 各領域のアドレス空間は ASR0 ∼ ASR7 (Area Select Register) と ACR0 ∼ ACR7 (Area Configuration Register) で 4G バイトの空間に , 最小 64K バイト単位で任意 に配置することができます。 これらのレジスタによって指定された領域に対してバスアクセスを行うと , アクセ スサイクル中に対応するチップセレクト信号 CS0 ∼ CS3 がアクティブ ("L" 出力 ) になります。 ■ ASR および ASZ3 ∼ ASZ0 の設定例 1) ASR1=0003H ACR1->ASZ3 ∼ ASZ0=0000B チップセレクト領域 1 は , 00030000H から 0003FFFFH に割り当てられます。 2) ASR2=0FFCH ACR2->ASZ3 ∼ ASZ0=0010B チップセレクト領域 2 は , 0FFC0000H から 10000000H に割り当てられます。 3) ASR3=0011H ACR3->ASZ3 ∼ ASZ0=0100B チップセレクト領域 3 は , 00100000H から 00200000H に割り当てられます。 このとき , ACR->ASZ3 ∼ ASZ0 が 1M バイトの設定になっていますので , バウンダリ は 1M バイト単位となり , ASR3[19:16] は無視されます。 リセット後は , ACR0 に書込みが行われるまでの間 , 00000000H ∼ FFFFFFFFH がチップ セレクト領域 0 に割り当てられます。 <注意事項> チップセレクト領域は , お互いにオーバラップしないように設定してください。 図 4.3-1 にチップセレクト領域を示します。 図 4.3-1 チップセレクト領域 (初期値) (例) 00000000 H 00000000 H 00030000 H 領域 1 64Kバイト 領域 3 1Mバイト 領域 2 256Kバイト 00040000 H 00100000 H 領域0 00200000 H 0FFC0000 H 0FFFFFFF H FFFFFFFF H FFFFFFFF H 175 第 4 章 外部バスインタフェース 4.4 エンディアンとバスアクセス エンディアンとバスアクセスについて説明します。 ■ エンディアンの概要 FR ファミリは特定の領域を除いて , チップセレクトごとにビッグエンディアンとリト ルエンディアンを切り換えて使用することができます。 176 第 4 章 外部バスインタフェース 4.4.1 データバス幅と制御信号との関係 WR 3 ∼ WR0 の制御信号は , データバス幅に関係なくデータバスのバイト位置に常に 1 対 1 に対応します。 下記にバスモード別に , 設定されたデータバス幅で使用されるデータバスのバイト 位置とそれに対応する制御信号をまとめます。 ■ 通常バスインタフェースの制御信号 図 4.4-1 に , 通常バスインタフェースの 16 ビットバス幅および 8 ビット幅の制御信号 を示します。 図 4.4-1 通常バスインタフェースの制御信号 a)16ビットバス幅 データバス 制御記号 b)8ビットバス幅 データバス WR0 制御記号 WR0 WR1 - - - - - - - - - - (D23~16は未使用) ■ 時分割入出力インタフェースの制御信号 図 4.4-2 に , 時分割入出力インタフェースの 16 ビットバス幅および 8 ビット幅の制御 信号を示します。 図 4.4-2 時分割入出力インタフェースの制御信号 a)16ビットバス幅 b)8ビットバス幅 データバス 出力アドレス 制御記号 データバス 出力アドレス 制御記号 D31 D16 A15~8 WR0 A7~0 WR1 - - - A7~0 WR0 - - - - - - - - - - - (D23~16は未使用) 177 第 4 章 外部バスインタフェース 4.4.2 ビッグエンディアンのバスアクセス FR ファミリは CS0 領域を除いて , チップセレクトごとにビッグエンディアン / リト ルエンディアンを切り換えて使用可能です。ACR レジスタの LEND ビットを "0" に 設定した場合は , その領域はビッグエンディアンとして扱います。 通常 FR ファミリは , ビッグエンディアンで外部バスアクセスを行います。 ■ ビッグエンディアンのデータフォーマット 図 4.4-3 に , ワードアクセス (LD, ST 命令実行時 ) のデータフォーマットによる内部レ ジスタと外部データバスとの関係を示します。 図 4.4-3 ワードアクセス (LD, ST 命令実行時 ) 内部レジスタ D31 AA D23 BB D15 CC D7 DD D0 外部バス D31 AA D23 BB D15 CC D7 DD D0 図 4.4-4 に , ハーフワードアクセス (LDUH, STH 命令実行時 ) のデータフォーマットに よる内部レジスタと外部データバスとの関係を示します。 図 4.4-4 ハーフワードアクセス (LDUH, STH 命令実行時 ) 178 a)出力アドレス下位"00" b)出力アドレス下位"10" 内部レジスタ 外部バス D31 D31 AA D23 D23 BB D15 D15 AA D7 D7 BB D0 D0 内部レジスタ 外部バス D31 D31 D23 D23 D15 D15 AA AA BB BB D7 D0 D7 D0 第 4 章 外部バスインタフェース 図 4.4-5 に , バイトアクセス (LDUB, STB 命令実行時 ) のデータフォーマットによる内 部レジスタと外部データバスとの関係を示します。 図 4.4-5 バイトアクセス (LDUB, STB 命令実行時 ) a)出力アドレス下位"00" b)出力アドレス下位"01" c)出力アドレス下位"10" d)出力アドレス下位"11" 内部レジスタ 外部バス D31 D31 AA D23 D23 内部レジスタ 外部バス D31 D31 内部レジスタ 外部バス D31 D31 内部レジスタ 外部バス D31 D31 D23 D23 D23 D23 D23 D23 D15 D15 D15 D15 D15 D7 D7 AA D15 D15 D15 AA D7 D7 D7 D7 D7 AA AA D0 AA D0 D0 D0 D0 D7 AA D0 D0 AA D0 ■ ビッグエンディアンのデータバス幅 図 4.4-6 に , 16 ビットバス幅のデータバス幅を示します。 図 4.4-6 16 ビットバス幅のデータバス幅 内部レジスタ 外部バス 出力アドレス下位 “00”“10” D31 D23 D15 D07 AA リード/ライト BB AA CC BB DD D31 D23 CC DD 図 4.4-7 に , 8 ビットバス幅のデータバス幅を示します。 図 4.4-7 8 ビットバス幅のデータバス幅 内部レジスタ 外部バス 出力アドレス下位 D31 D23 D15 D07 AA BB リード/ライト “00” “01” “10” “11” AA BB CC DD D31 CC DD 179 第 4 章 外部バスインタフェース ■ 外部バスアクセス ビッグエンディアンは , 外部バスアクセスを「16 ビット /8 ビットバス幅」「ワード / ハーフワード / バイトアクセス」の項目で , そのときの以下の項目をまとめます。 • アクセスバイト位置 • プログラムアドレスと出力アドレス • バスアクセス回数 PA1/PA0 出力 A1/A0 + ①∼④ : プログラムで指定したアドレス下位 2 ビット : 出力するアドレスの下位 2 ビット : 出力するアドレスの先頭バイト位置 : アクセスするデータバイト位置 : バスアクセス回数 FR ファミリは , ミスアラインエラーを検出しません。 したがってワードアクセスの場合には, プログラムで指定したアドレス下位2ビットが "00B" "01B" "10B" "11B" であっても , 出力するアドレスの下位 2 ビットはすべて "00B" となり , ハーフワードアクセスの場合には "00B" "01B" のときには "00B" に , "10B" "11B" のとき には "10B" になります。 ● 16 ビットバス幅 図 4.4-8 に , 16 ビットバス幅の各アクセスを示します。 図 4.4-8 16 ビットバス幅の各アクセス (A)ワードアクセス (c)PA1/PA0=“10” (d)PA1/PA0=“11” (a) PA1/PA0= “00” (b) PA1/PA0= “01” →①出力A1/A0=“00” →①出力A1/A0=“00” →①出力A1/A0=“00” →①出力A1/A0=“00” ②出力A1/A0=“10” ②出力A1/A0=“10” ②出力A1/A0=“10” ②出力A1/A0=“10” MSB LSB ① 00 01 ① 00 01 ① 00 01 ① 00 01 ② 10 11 ② 10 11 ② 10 11 ② 10 11 16ビット (B) ハーフワードアクセス (c)PA1/PA0=“10” (d)PA1/PA0=“11” (a) PA1/PA0= “00” (b) PA1/PA0= “01” →①出力A1/A0=“10” →①出力A1/A0=“10” →①出力A1/A0=“00” →①出力A1/A0=“00” ① 00 01 10 11 ① 00 01 10 11 ① 00 01 10 11 ① 00 01 10 11 (C) バイトアクセス (c)PA1/PA0=“10” (d)PA1/PA0=“11” (a) PA1/PA0= “00” (b) PA1/PA0= “01” →①出力A1/A0=“10” →①出力A1/A0=“11” →①出力A1/A0=“00” →①出力A1/A0=“01” ① 180 00 01 10 11 ① 00 01 10 11 ① 00 01 10 11 ① 00 01 10 11 第 4 章 外部バスインタフェース ● 8 ビットバス幅 図 4.4-9 に , 8 ビットバス幅の各アクセスを示します。 図 4.4-9 8 ビットバス幅の各アクセス (A)ワードアクセス (c)PA1/PA0=“10” (d)PA1/PA0=“11” (a) PA1/PA0= “00” (b) PA1/PA0= “01” →①出力A1/A0=“00” →①出力A1/A0=“00” →①出力A1/A0=“00” →①出力A1/A0=“00” ②出力A1/A0=“01” ②出力A1/A0=“01” ②出力A1/A0= “01” ②出力A1/A0=“01” ③出力A1/A0=“10” ③出力A1/A0=“10” ③出力A1/A0= “10” ③出力A1/A0=“10” ④出力A1/A0=“11” ④出力A1/A0=“11” ④出力A1/A0= “11” ④出力A1/A0=“11” MSB LSB ① 00 ① 00 ① 00 ① 00 ② 01 ② 01 ② 01 ② 01 ③ 10 ③ 10 ③ 10 ③ 10 ④ 11 ④ 11 ④ 11 ④ 11 8ビット (B) ハーフワードアクセス (c)PA1/PA0=“10” (d)PA1/PA0=“11” (a) PA1/PA0= “00” (b) PA1/PA0= “01” →①出力A1/A0=“10” →①出力A1/A0=“10” →①出力A1/A0=“00” →①出力A1/A0=“00” ②出力A1/A0=“11” ②出力A1/A0=“11” ②出力A1/A0= “01” ②出力A1/A0=“01” ① 00 ① 00 00 00 ② 01 ② 01 01 01 10 10 ① 10 ① 10 11 11 ② 11 ② 11 (C) バイトアクセス (c)PA1/PA0=“10” (d)PA1/PA0=“11” (a) PA1/PA0= “00” (b) PA1/PA0= “01” →①出力A1/A0=“10” →①出力A1/A0=“11” →①出力A1/A0=“00” →①出力A1/A0=“01” ① 00 01 00 00 00 01 01 01 10 10 10 10 11 11 ① ① 11 ① 11 181 第 4 章 外部バスインタフェース ■ 外部との接続例 図 4.4-10 に LSI と外部装置との接続の例を示します。 図 4.4-10 外部装置との接続 本LSI D31 D23 | WR0 | WR1 D24 D16 *:16ビット/8ビットデバイスの場合は, 本LSIのMSB側のデータバスを使用します。 0 1 0 D15 D08D07 D00 D07 D00 8ビットデバイス* 16ビットデバイス* (“0”/“1”アドレス下位1ビット) 182 第 4 章 外部バスインタフェース 4.4.3 リトルエンディアンのバスアクセス FR ファミリは CS0 領域を除いて , チップセレクトごとにビッグエンディアン / リト ルエンディアンを切り換えて使用可能です。ACR レジスタの LEND ビットを "1" に 設定した場合は , その領域はリトルエンディアンとして扱います。 ■ リトルエンディアンの概要 FR ファミリのリトルエンディアンバスアクセスは , ビッグエンディアン時のバスアク セス動作を利用し , 基本的にはビッグエンディアン時の出力アドレスの順番と制御信 号の出力は同じで , データバスのバイト位置をバス幅に応じてスワップすることによ り実現しています。 接続時には , ビッグエンディアン領域とリトルエンディアン領域を物理的に分ける必 要がありますので , 十分注意が必要です。 • 出力するアドレスの順番はビッグエンディアン / リトルエンディアンで変わりませ ん。 • ワードアクセス : ビッグエンディアンのアドレス A1, A0=00 に対応する MSB 側のバイトデータが , リ トルエンディアンでは LSB 側のバイトデータになります。 ワードアクセスの場合は , ワード内の 4 バイトすべてのバイト位置が反転します。 • ハーフワードアクセス : ビッグエンディアンのアドレス A0 に対応する MSB 側のバイトデータが , リトルエ ンディアンでは LSB 側のバイトデータになります。 ハーフワードアクセスの場合は , ハーフワード内の 2 バイトのバイト位置が反転し ます。 • バイトアクセス : ビッグエンディアン / リトルエンディアンとも同じです。 • 16/8 ビットバス幅で使用するデータバス / 制御信号は , ビッグエンディアン / リトル エンディアン で変わりません。 〔リトルエンディアン領域に対する制限事項〕 • リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に 対するアクセスは必ずワードアクセスにて行ってください。プリフェッチバッファ に読み込まれたデータをワード長以外でアクセスすると , 正しくエンディアン変換 が行われず , 誤ったデータを読み込んでしまいます。これは , エンディアン変換機 構のハードウェア的な制限によるものです。 • リトルエンディアン領域には , 命令コードを配置しないでください。 183 第 4 章 外部バスインタフェース ■ リトルエンディアンのデータフォーマット 図 4.4-11 に , ワードアクセス時 (LD, ST 命令実行時 ) のデータフォーマットによる内部 レジスタと外部データバスとの関係を示します。 図 4.4-11 ワードアクセス時 (LD, ST 命令実行時 ) 内部レジスタ 外部バス D31 D31 AA DD D23 D23 BB CC D15 D15 CC BB D7 D7 DD AA D0 D0 図 4.4-12 に , ハーフワードアクセス時 (LDUH, STH 命令実行時 ) のデータフォーマット による内部レジスタと外部データバスとの関係を示します。 図 4.4-12 ハーフワードアクセス時 (LD, ST 命令実行時 ) a)出力アドレス下位"00B" b)出力アドレス下位"10B" 内部レジスタ 外部バス D31 D31 BB D23 D23 AA D15 D15 AA D7 D7 BB D0 D0 内部レジスタ 外部バス D31 D31 D23 D23 D15 D15 AA BB BB AA D7 D7 D0 D0 図 4.4-13 に , バイトアクセス時 (LDUB, STB 命令実行時 ) のデータフォーマットによる 内部レジスタと外部データバスとの関係を示します。 図 4.4-13 バイトアクセス時 (LDUB, STB 命令実行時 ) a)出力アドレス下位"00B" 内部レジスタ 外部バス D31 D31 AA D23 D23 b)出力アドレス下位"01B" c)出力アドレス下位"10B" d)出力アドレス下位"11B" 内部レジスタ 外部バス 内部レジスタ 外部バス D31 D31 D31 D31 内部レジスタ 外部バス D31 D31 D23 D23 D23 D23 D15 D15 D15 D7 D7 D23 D23 AA D15 D15 D15 D15 D15 AA D7 D7 D7 AA D0 184 D7 D7 AA D0 D0 AA D0 D0 D7 AA D0 D0 AA D0 第 4 章 外部バスインタフェース ■ リトルエンディアンのデータバス幅 図 4.4-14 に , 16 ビットバス幅のデータバス幅を示します。 図 4.4-14 16 ビットバス幅のデータバス幅 内部レジスタ 外部バス 出力アドレス下位 D31 D23 D15 D07 AA BB “00B” “10B” D31 DD BB リード/ライト D23 CC AA CC DD 図 4.4-15 に , 8 ビットバス幅のデータバス幅を示します。 図 4.4-15 8 ビットバス幅のデータバス幅 内部レジスタ 外部バス 出力アドレス下位 D31 D23 D15 D07 AA リード/ライト “00B”“01B”“10B”“11B” DD CC BB AA D31 BB CC DD 185 第 4 章 外部バスインタフェース ■ 本 LSI とエンディアンの接続 図 4.4-16 に , 本 LSI とエンディアンの接続を示します。 図 4.4-16 本 LSI とエンディアンの接続 ● 16 ビットバス幅 本LSI D31 D23 | WR0 | WR1 D24 D16 0 1 1 0 D15 D08D07 D00 D15 D08D07 D00 ビッグエンディアン領域 リトルエンディアン領域 ● 8 ビットバス幅 本LSI D31 | WR0 D24 D07 D00 ビッグエンディアン領域 186 D07 D00 リトルエンディアン領域 第 4 章 外部バスインタフェース 4.4.4 外部アクセス エンディアンモードおよびバス幅による , 内部レジスタと外部データバスとの関係 について説明します。 ■ ワードアクセス ワードアクセスの場合は以下のとおりです。 ビッグエンディアンモード 16 ビット バス幅 内部レジスタ D31 アドレス:“0”“2” D31 AA AA CC BB D00 BB DD 内部レジスタ 外部端子 制御端子 WR0 アドレス:“0”“2” D31 AA DD BB WR0 WR1 BB CC AA WR1 CC - - - DD - - - D31 D16 - - - DD - - - 内部レジスタ D31 D16 制御端子 CC D00 8 ビット バス幅 外部端子 リトルエンディアンモード D00 ① ② ① ② 外部端子 制御端子 アドレス:“0” “1” “2” “3” D31 AA AA BB CC DD D24 - - - - BB 内部レジスタ 外部端子 制御端子 WR0 - アドレス:“0” “1” “2” “3” D31 AA DD CC BB AA D24 BB - - - - CC - - - - - DD - - - - - D31 WR0 CC - - - - - DD - - - - - - D00 ① ② ③ ④ ① ② ③ ④ 187 第 4 章 外部バスインタフェース ■ ハーフワードアクセス ハーフワードアクセスの場合は以下のとおりです。 ビッグエンディアンモード 16 ビット バス幅 内部レジスタ D31 外部端子 アドレス:“0” D31 AA BB 制御端子 リトルエンディアンモード 内部レジスタ D31 WR0 アドレス:“0” D31 BB WR1 AA - - BB - - WR1 AA - - BB - - D00 ① 外部端子 制御端子 アドレス:“2” D31 CC WR0 DD WR1 ① 内部レジスタ D31 外部端子 アドレス:“2” D31 DD - - DD - - WR1 CC - - DD - - D00 D00 ① ① D31 外部端子 AA BB D00 内部レジスタ D31 188 - - - AA - - - WR0 D00 BB D00 制御端子 D00 内部レジスタ - ① ② 外部端子 - - - CC - - - ① ② DD D00 D00 - - - - WR0 WR0 - - - D31 制御端子 - - アドレス:“2”“3” D31 DD CC D24 - - アドレス:“2”“3” D31 CC DD DD 外部端子 - 外部端子 CC 内部レジスタ D31 ① ② D24 D00 制御端子 アドレス:“0”“1” D31 BB AA D24 - - アドレス:“0”“1” D31 AA BB D24 - - D00 WR0 D16 CC 内部レジスタ 制御端子 CC D16 8 ビット バス幅 WR0 D16 D00 D31 制御端子 AA D16 内部レジスタ 外部端子 制御端子 WR0 - - - - - - - ① ② 第 4 章 外部バスインタフェース ■ バイトアクセス バイトアクセスの場合は以下のとおりです。 ビッグエンディアンモード 16 ビット バス幅 内部レジスタ D31 外部端子 アドレス:“0” D31 AA 制御端子 リトルエンディアンモード 内部レジスタ D31 WR0 外部端子 アドレス:“0” D31 AA - D16 - - - - D00 AA - - - - D00 ① 内部レジスタ D31 外部端子 ① 制御端子 アドレス:“1” D31 内部レジスタ D31 外部端子 BB - WR1 D16 BB BB WR1 - - - - D16 - - - - D00 外部端子 アドレス:“2” D31 CC BB D00 ① 内部レジスタ 制御端子 ① 内部レジスタ D31 WR0 外部端子 アドレス:“2” D31 CC - WR0 D16 - - - - D00 CC - - - - D00 ① 内部レジスタ D31 制御端子 - D16 CC 制御端子 アドレス:“1” D31 - D31 WR0 - D16 AA 制御端子 外部端子 ① 制御端子 アドレス:“3” D31 内部レジスタ D31 外部端子 アドレス:“3” D31 - DD - WR1 D16 DD 制御端子 DD WR1 - - - - D16 - - - - D00 ① DD D00 ① 189 第 4 章 外部バスインタフェース ビッグエンディアンモード 8 ビット バス幅 内部レジスタ 外部端子 アドレス:“0” D31 D31 AA D24 - AA 制御端子 リトルエンディアンモード 内部レジスタ D31 WR0 AA WR0 - - - - - - - - - - - D24 AA D00 ① 内部レジスタ 外部端子 アドレス:“1” D31 D31 BB D24 - BB ① 制御端子 内部レジスタ 外部端子 制御端子 アドレス:“1” D31 D31 WR0 BB WR0 - - - - - - - - - - - D24 D00 BB D00 ① 内部レジスタ 外部端子 アドレス:“2” D31 CC D24 - CC ① 制御端子 内部レジスタ 外部端子 制御端子 アドレス:“2” D31 D31 WR0 CC WR0 - - - - - - - - - - - D24 D00 CC D00 ① 内部レジスタ 外部端子 アドレス:“3” D31 D31 DD D24 - DD ① 制御端子 内部レジスタ 外部端子 制御端子 アドレス:“3” D31 D31 WR0 DD WR0 - - - - - - - - - - - D00 D24 DD D00 ① 190 制御端子 アドレス:“0” D31 D00 D31 外部端子 ① 第 4 章 外部バスインタフェース 4.5 通常バスインタフェース 通常バスインタフェースでは , リードアクセス / ライトアクセス共に 2 クロックサイ クルが基本バスサイクルになります。 ■ 基本タイミング ( アクセスが連続する場合 )(TYP3 ∼ TYP0= 0000B, AWR=0008H) 図 4.5-1 に , アクセスが連続する場合の基本タイミングを示します。 図 4.5-1 アクセスが連続する場合の基本タイミング MCLK A[23:0] #2 #1 AS CSn RD リード D[31:16] #1 #2 WRn ライト D[31:16] #1 #2 • AS は , バスアクセス開始サイクルに 1 サイクルアサートします。 • A23 ∼ A0 は , ワード / ハーフワード / バイトアクセスの先頭バイト位置のアドレス をバスアクセス開始サイクルからバスアクセス終了サイクルまで出力します。 • CS0 ∼ CS3 は , AWR0 ∼ AWR3 レジスタの W02 ビットが "0" のときは , AS と同じ タイミングでアサートし , 連続するアクセスがある場合 CS0 ∼ CS3 がネゲートしま せん。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了後に CS0 ∼ CS3 をネゲートし , W00 ビットが "1" の場合はバスアクセス終了の 1 サイクル後にネ ゲートします。 • RD, WR0, WR1 は , バスアクセス第 2 サイクルからアサートします。AWR レジスタ 191 第 4 章 外部バスインタフェース W15-W12 ビットのウェイトサイクルを挿入した後ネゲートします。RD, WR0, WR1 をアサートするタイミングは AWR レジスタ W01 ビットを "1" に設定することによ り 1 サイクル遅らせることができます。 • リードアクセスの場合, RDアサート後ウェイトサイクルが終了したサイクルのMCLK の立上りで D31 ∼ D0 を取り込みます。 • ライトアクセスの場合 , WR0, WR1 をアサートしたタイミングから D[31:0] にデータ を出力します。 ■ リード→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0048H) 図 4.5-2 に , リード→ライトタイミングを示します。 図 4.5-2 リード→ライトタイミング リード アイドル ライト MCLK A[23:0] AS CSn RD WRn D[31:16] • AWR レジスタ W07, W06 ビットの設定により , 0 ∼ 3 サイクルまでのアイドルサイ クル挿入が可能です。 • リード側の CS 領域の設定が有効になります。 • リードアクセスの次のアクセスがライトアクセス , または別の領域へのアクセスで ある場合このアイドルサイクルを挿入します。 192 第 4 章 外部バスインタフェース ■ ライト→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0018H) 図 4.5-3 に , ライト→ライトタイミングを示します。 図 4.5-3 ライト→ライトタイミング ライト ライト リカバリ ライト MCLK A[23:0] AS CSn WRn D[31:16] • AWR レジスタ W05, W04 ビットの設定により , 0 ∼ 3 サイクルまでのライトリカバ リサイクルを挿入可能です。 • すべてのライトサイクル後に , リカバリサイクルが発生します。 • 設定したバス幅以上のアクセスによってライトアクセスが分割された場合もライ トリカバリサイクルは発生します。 193 第 4 章 外部バスインタフェース ■ 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B, AWR=2008H) 図 4.5-4 に , 自動ウェイトタイミングを示します。 図 4.5-4 自動ウェイトタイミング 基本サイクル ウェイトサイクル MCLK A[23:0] AS CSn RD D[31:16] WRn D[31:16] • AWRレジスタW15-12ビット(first wait cycle)の設定により自動ウェイトサイクルを, 0 ∼ 15 まで設定可能です。 • 上図では , 自動ウェイトサイクルを 2 サイクル挿入し合計 4 サイクルのアクセスと なっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル + (first wait cycle) となります。ライトの場合は内部状態によりさらに長くなることが あります。 194 第 4 章 外部バスインタフェース ■ 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B, AWR=2008H) 図 4.5-5 に , 外部ウェイトタイミングを示します。 図 4.5-5 外部ウェイトタイミング 基本サイクル 自動ウェイト 2サイクル RDYによる ウェイト サイクル MCLK A[23:0] AS CSn RD D[31:16] WRn D[31:16] RDY 解除 ウェイト • ACR レジスタ TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることに より外部ウェイトサイクルを挿入可能です。上図において , 自動ウェイトサイクル によるウェイトが有効であるため , RDY 端子の斜線部分は無効になります。自動 ウェイトサイクルの最後のサイクル以降から , RDY 入力端子の値を判定します。ま た , いったんウェイトサイクルを終了した後は , 次のアクセスサイクルの開始まで , RDY 入力端子の値は無効になります。 195 第 4 章 外部バスインタフェース ■ 同期ライトイネーブル出力タイミング (TYP3 ∼ TYP0=0000B, AWR=0000H) 図 4.5-6 に , 同期ライトイネーブル出力タイミングを示します。 図 4.5-6 同期ライトイネーブル出力タイミング MCLK #2 #1 A[23:0] AS CSn RD リード D[31:16] #1 #2 WRn ライト #1 D[31:16] #2 • 同期ライトイネーブルとした場合 (AWR:W03 ビットが 1) , 以下のような動作となり ます。 • WR0, WR1 端子出力は , AS 端子出力がアサートされているタイミングで , 同期ライ トイネーブル出力をアサートします。外部バスへのライトが行われる場合 , 同期ラ イトイネーブル出力は "L" を出力します。外部バスからのリードが行われる場合 , 同期ライトイネーブル出力は "H" を出力します。 • 同期ライトイネーブル出力をアサートしたクロックサイクルにて , 外部データ出力 端子よりライトデータを出力します。 • リードストローブ出力 (RD) は , WR0 ∼ WR3, WR 出力タイミング設定の内容に関わ らず , 非同期リードストローブとして機能します。データの入出力制御にそのまま 用いてください。 同期ライトイネーブル出力を使用する場合 , 以下の制限があります。 - 同期ライトイネーブル出力のタイミングが無意味なものとなりますので , 以下の 追加ウェイト設定はしないでください。 196 第 4 章 外部バスインタフェース ・CS → RD/WR セットアップ設定 (AWR:W01 ビットは常に "0" を書いてください ) ・ファーストウェイトサイクル設定 (AWR:W15-W12 ビットは常に "0000" を書い てください ) - 同期ライトイネーブル出力のタイミングが無意味なものとなりますので , 以下の アクセスタイプ設定 (ACR レジスタ中の TYPE3 ∼ TYPE0 ビット ( ビット 3 ∼ ビット 0)) は設定しないでください。 ・マルチプレックスバス設定 (ACR:TYPE2 ビットは常に "0" を書いてください ) ・RDY 入力有効設定 (ACR:TYPE0 ビットは常に "0" を書いてください ) - 同期ライトイネーブル出力の場合 , バースト長は常に 1(BST1, BST0 ビットに "0") を設定してください。 ■ CS 遅延設定 (TYP3 ∼ TYP0=0000B, AWR=000CH) 図 4.5-7 に , CS 遅延設定を示します。 図 4.5-7 CS 遅延設定 MCLK A[23:0] AS CSn RD リード D[31:16] WRn ライト D[31:16] • W02 ビットが "1" のときは AS アサートの次のサイクルからアサートし , 連続する アクセスがある場合ネゲート期間を挿入します。 197 第 4 章 外部バスインタフェース ■ CS → RD/WR セットアップ・RD/WR → CS ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) 図 4.5-8 に , CS → RD/WR セットアップ・RD/WR → CS ホールド設定を示します。 図 4.5-8 CS → RD/WR セットアップ・RD/WR → CS ホールド設定 MCLK A[23:0] AS CSn CSX->RDX/WRX 遅延 RDX/WRX->CSX 遅延 RD リード D[31:16] WRn ライト D[31:16] • AWR レジスタ W01 ビットを "1" に設定することにより , CS → RD/WR セットアッ プディレイを設定可能です。チップセレクトアサート後 , リード / ライトストロー ブまでの期間を延長する場合に設定します。 • AWR レジスタ W00 ビットを "1" に設定することにより , RD/WR → CS ホールドディ レイを設定可能です。 リード / ライトストローブネゲート後 , チップセレクトネゲー トまでの期間を延長する場合に設定します。 • CS → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CS ホールドディレ イ (W00 ビット ) は独立に設定可能です。 • 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク セスする場合は , CS → RD/WR セットアップディレイ , RD/WR → CS ホールドディ レイ共に挿入されません。 • アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク ルが必要な場合は , アドレス→ CS 遅延設定 (AWR レジスタ W02 ビット ) を "1" に 設定してください。 198 第 4 章 外部バスインタフェース ■ DMAフライバイ転送(I/O→メモリ)(TYP3∼TYP0=0000B, AWR=0008H, IOWR=51H) 図 4.5-9 に , DMA フライバイ転送 (I/O →メモリ ) を示します。 • メモリ側のウェイト設定なしの場合 図 4.5-9 DMA フライバイ転送 (I/O →メモリ ) 基本サイクル I/Oウェイト I/Oウェイト I/Oアイドル サイクル サイクル サイクル 基本サイクル I/Oウェイト I/Oボールド サイクル ウェイト MCLK A[23:0] AS CSn WRn D[31:16] IORD • IOWR0 ∼ IOWR3 レジスタの HLD ビットを "1" に設定することにより , I/O リード サイクルを 1 サイクル延長します。 • IOWR0 ∼ IOWR3 レジスタの IW03 ∼ IW00, IW13 ∼ IW10, IW23 ∼ IW20 ビットの 設定により , 0 ∼ 15 サイクルまでのウェイトサイクルを挿入可能です。 • メモリ側にもウェイトの設定がある場合 (AWR15 ∼ AWR12 が "0" でないとき ) は , I/O ウェイト (IW03 ∼ IW00, IW13 ∼ IW10, IW23 ∼ IW20 ビット ) と比較して大きい ほうの値をウェイトサイクルとして使用します。 199 第 4 章 外部バスインタフェース ■ DMAフライバイ転送(メモリ→I/O)(TYP3∼TYP0=0000B, AWR=0008H, IOWR=51H) 図 4.5-10 に , DMA フライバイ転送 ( メモリ→ I/O) を示します。 • メモリ側のウェイト設定なしの場合 図 4.5-10 DMA フライバイ転送 ( メモリ→ I/O) 基本サイクル I/Oウェイト I/Oボールド I/Oアイドル サイクル ウェイト サイクル 基本サイクル I/Oウェイト I/Oボールド サイクル ウェイト MCLK A[23:0] AS CSn RD D[31:16] IOWR • IOWR0 ∼ IOWR3 レジスタの HLD ビットを "1" に設定することにより , I/O リード サイクルを 1 サイクル延長します。 • IOWR0 ∼ IOWR3 レジスタの WR1, WR0 ビットの設定により , 0 ∼ 3 サイクルまで のライトリカバリサイクルを挿入可能です。 • ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必 ずライトリカバリサイクルを挿入します。 • IOWR0 ∼ IOWR3 レジスタの IW03 ∼ IW00, IW13 ∼ IW10, IW13 ∼ IW20 ビットの 設定により , 0 ∼ 15 サイクルまでのウェイトサイクルを挿入可能です。 • メモリ側にもウェイトの設定がある場合 (AWR15 ∼ AWR12 が "0" でないとき ) は , I/O ウェイト (IW03 ∼ IW00, IW13 ∼ IW10, IW13 ∼ IW20 ビット ) と比較して大きい ほうの値をウェイトサイクルとして使用します。 200 第 4 章 外部バスインタフェース アドレス / データマルチプレックスインタフェース 4.6 アドレス / データマルチプレックスインタフェースの設定について説明します。 ■ 外部ウェイトなし (TYP3 ∼ TYP0=0100B, AWR=0008H) 図 4.6-1 に , 外部ウェイトがない場合のアドレス / データマルチプレックスインタ フェース設定を示します。 図 4.6-1 外部ウェイトがない場合のアドレス / データマルチプレックスインタフェース設定 MCLK アドレス[23:0] A[23:0] AS CSn RD リード D[31:16] データ [15:0] アドレス[15:0] WR ライト D[31:16] アドレス[15:0] データ[15:0] • ACR レジスタ TYP3 ∼ TYP0=01xxB と設定することによりアドレス / データマルチ プレックスインタフェース設定が可能です。 • アドレス / データマルチプレックスインタフェースに設定した場合 , データバス幅 (DBW1, DBW0 ビット ) の設定は 8 ビットもしくは 16 ビットに設定してください。 32 ビット幅はサポートしていません。 • アドレス / データマルチプレックスインタフェースでは , アドレス出力サイクル 2 サ イクル + データサイクル 1 サイクルの計 3 サイクルが基本アクセスサイクルとなり ます。 201 第 4 章 外部バスインタフェース • アドレス出力サイクルでは, 出力アドレスラッチイネーブル信号としてASをアサー トしますが , CS → RD/WR セットアップ遅延 (AWR1) が "0" に設定してある場合 , 上 図のようにマルチプレックスアドレス出力サイクルが 1 サイクルのみとなり , アド レスを AS の立上りエッジで直接ラッチすることは不可能となります。このため , AS に Low がアサートされているサイクルの MCLK の立上りエッジでアドレスを取 り込んでください。 • A23 ∼ A0 には , 時分割バスサイクル中 , 通常インタフェースと同様にアクセスの先 頭を示すアドレスを出力しますので , アドレス / データマルチプレックスインタ フェースで 8/16 ビット以上のアドレスを使用したい場合に使用してください。 • 自動ウェイト (AWR15 ∼ AWR12), リード→ライトアイドルサイクル (AWR7, 6), ラ イトリカバリ (AWR5, 4), アドレス→ CS 遅延 (AWR2), CS → RD/WR セットアップ遅 延 (AWR1), RD/WR → CS ホールド遅延 (AWR0) の設定は , 通常インタフェースと同 様に設定可能です。 • アドレス / データマルチプレックスインタフェースを設定した領域では , バースト 長を "1"(DBW1, 0]=00B) に設定してください。 202 第 4 章 外部バスインタフェース ■ 外部ウェイトあり (TYP3 ∼ TYP0=0101B, AWR=1008H) 図 4.6-2 に , 外部ウェイトがある場合のアドレス / データマルチプレックスインタ フェース設定を示します。 図 4.6-2 外部ウェイトがある場合のアドレス / データマルチプレックスインタフェース設定 MCLK アドレス[23:0] A[23:0] AS CSn RD リード D[31:16] データ [15:0] アドレス[15:0] WR ライト D[31:16] データ[15:0] アドレス[15:0] 外部ウェイト 解除 RDY • ACR レジスタ TYP3 ∼ TYP0=01x1B と設定することにより , アドレス / データマル チプレックスインタフェースにおいて RDY 入力を有効とすることが可能です。 203 第 4 章 外部バスインタフェース ■ CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH) 図 4.6-3 に , CS → RD/WR セットアップ設定を示します。 図 4.6-3 CS → RD/WR セットアップ設定 MCLK アドレス[23:0] A[23:0] AS CSn RD リード D[31:16] アドレス[15:0] データ [15:0] WR ライト D[31:16] アドレス[15:0] データ[15:0] • CS → RD/WR セットアップ遅延 (AWR1) を "1" に設定すると , 上図のようにマルチ プレックスアドレス出力サイクルが 1 サイクル延長され , アドレスを AS の立上り エッジで直接ラッチすることが可能となります。MCLK を使用せずに AS を ALE (Address Latch Enable) ストローブとして使用したい場合にこの設定を使用してくだ さい。 204 第 4 章 外部バスインタフェース 4.7 プリフェッチ動作 外部バスインタフェースコントローラは 8 ビット× 16 本で構成されるプリフェッチ バッファを内蔵しています。 TCR レジスタの PSUS ビットが "0" の場合 , ACR レジスタの PFEN ビットをセッ ト ("1") してある領域に対するリードアクセスが発生すると , それ以降続くアドレス に対してプリフェッチを行い , プリフェッチバッファ内に蓄積します。 蓄積されたアドレスに対し内部バスからのアクセスがあると , 外部アクセスを行わ ずにプリフェッチバッファに先読みされたデータを返します。これにより , 外部バ ス領域への連続したアクセスでの待ち時間を少なくすることができます。 ■ プリフェッチによる外部アクセスを開始する基本条件 プリフェッチによる外部バスアクセスは , 以下の条件が揃っている場合に発生します。 • TCR レジスタの PSUS ビットが "0" であること。 • スリープまたはストップモードでないこと。 • プリフェッチ許可されたチップセレクト領域への外部バスリードアクセスが行わ れたこと。ただし , DMA アクセスおよびリードモディファイライト系命令による リードアクセスを除きます。 • プリフェッチアクセス以外の外部バスアクセス要求 ( プリフェッチを許可していな い領域への外部バス領域アクセスや , 外部バス領域との間の DMA 転送など ) が発生 していないこと。 • 次の 1 回のプリフェッチアクセスで取り込む部分のプリフェッチバッファがすべて 空であること。 • これらの条件が成立する間 , プリフェッチアクセスを続けます。なお , プリフェッ チアクセス後に , プリフェッチを許可していない領域への外部バス領域アクセスが 発生した後でも , プリフェッチバッファクリア条件が発生しない限り , プリフェッ チ許可領域へのプリフェッチアクセスは引き続き行われます。 複数のプリフェッチ許可領域と複数のプリフェッチ禁止領域とを混在させてアクセス を行っている場合 , プリフェッチバッファは常に最後にアクセスされたプリフェッチ 許可領域に対するプリフェッチを行い , そのデータを保持しています。この場合 , プリ フェッチ禁止領域へのアクセスはプリフェッチバッファの状態には一切影響を及ぼさ ないため , プリフェッチ禁止のデータアクセスとプリフェッチ許可の命令フェッチと が混在しても , プリフェッチバッファ内のデータを無駄にすることはありません。 205 第 4 章 外部バスインタフェース ■ プリフェッチアクセスの一時停止と任意クリア TCR レジスタの PSUS ビットに "1" をセットすると , プリフェッチは一時停止します。 PSUS ビットに "0" を設定すると再開します。このときミス発生 , PCLR ビットのセッ トなどのバッファクリアが発生しなければ , バッファ内容は保持されます。 TCR レジスタの PCLR ビットに "1" をセットすると , プリフェッチバッファをすべてク リアします。バッファのクリアは , PSUS ビットをセットし , プリフェッチを中断して いるときに行ってください。 アドレス上位 16 ビットが変化する境界=チップセレクト領域の最小単位 (64K バイト ごと ) では , プリフェッチはいったん停止します。境界を超えた場合 , いったんバッ ファリードミスが発生し , 引き続き新しい領域でプリフェッチを開始します。 ■ 1 回のプリフェッチアクセス動作の単位 1 回のプリフェッチアクセスの単位は , ACR レジスタの DBW ビット ( バス幅 ) と BST ビット ( バースト長 ) によって決まります。 プリフェッチアクセスは常に DBW ビットで設定されたバス幅いっぱいのサイズでア クセスし , BST ビットにて設定されたバースト長の回数のアクセスを 1 回のアクセス で行います。すなわち , BST ビットに "00B" 以外を設定した場合 , プリフェッチアクセ スは常にページモード / バーストモードでのアクセスとなります。対応していない ROM/RAM やアクセスタイム不足には注意してください (AWR レジスタの W15 ∼ W08 ビットに適切な値を設定してください )。 バーストアクセス時は , バースト長に依存したアドレスバウンダリ内でしか連続アク セスを行いません。そのため , バッファの空きバイト数が例えば 4 バイトあったとして も , バウンダリをまたいでいる場合 , 4 バイト分を 1 回でアクセスすることはできませ ん ( プリフェッチバッファ先頭が xxxxxx0EH で , バッファに 4 バイト空きがあり , バス 幅 16 ビットであっても , 2 バーストを設定した場合は , 次のプリフェッチアクセスでは xxxxxx0EH と xxxxxx0FH の 2 バイトしか取り込みません ) 。 〔例〕 • バス幅 16 ビット , バースト長 2 を設定した領域 : 1 回のプリフェッチでバッファに読み込まれるデータ量は , 4 バイト分となります。 この場合 , プリフェッチバッファに 4 バイト分の空きができるまでプリフェッチア クセスは行われません。 • バス幅 8 ビット , バースト長 8 を設定した領域 : 1 回のプリフェッチでバッファに読み込まれるデータ量は , 8 バイト分となります。 この場合 , プリフェッチバッファに 8 バイト分の空きができるまでプリフェッチア クセスは行われません。 206 第 4 章 外部バスインタフェース ■ バースト長設定とプリフェッチ効率 「■ 1 回のプリフェッチアクセス動作の単位」で説明した 1 回のプリフェッチアクセス が行われている間に , プリフェッチアクセス以外の外部バスアクセス要求や , プリ フェッチバッファへのミスが発生した場合でも , 実行中のプリフェッチバッファのア クセスが終了するまでは , それらアクセス要求は待たされます。 そのため , バースト長をあまり大きく設定しますと , プリフェッチ以外のバスアクセス の効率や反応が低下します。反面 , バースト長を "1" に設定しますと , バースト / ペー ジアクセスメモリを接続している場合でも常にシングルアクセスを行うため , 読込み サイクルの無駄が多く発生します。 また , 1 回のプリフェッチアクセスで読み込まれるデータが多い設定ですと , それだけ プリフェッチバッファの空きができないとプリフェッチアクセスが開始できないため, プリフェッチバッファへのアクセス頻度が少ないと外部バスがアイドル状態になり易 くなります。例えば , バス幅が 16 ビット・バースト長 8 を設定した場合 , 1 回のプリ フェッチでバッファに読み込まれるデータ量は, 16バイト分となるため, プリフェッチ バッファがすべて空にならないと , 新たなプリフェッチアクセスができなくなります。 これらのことを念頭に置いた上で , 使用状況・環境に応じて最適なバースト長設定を調 整してください。一般に , バースト / ページアクセスのできない非同期メモリを接続す る場合は , バースト長は 1 ( シングルアクセス ) を設定するのが最適です。逆に , SDRAM などのバースト / ページアクセスサイクルの短いメモリを接続する場合は , バースト長 は 1 ( シングルアクセス ) 以外を設定するのが最適です。こちらの場合は , バス幅に応 じて 1 回で 8 バイト ( バッファの半分 ) を読み込む設定をするのが最適ですが , 外部ア クセスの頻度や外部アクセスクロックの分周比設定などによっても条件は変わってき ます。 ■ プリフェッチバッファからの読込み プリフェッチバッファ内にストアされたデータは , 内部バスからのアクセスでアドレ スが一致したものがあれば読み出され , 外部へのアクセスを行いません。バッファの読 込みは順方向であればアドレスが連続していなくてもヒット可能 ( 最大 16 バイト ) で すので, 短い前方への分岐などでも極力外部バスへの2度読みが発生しないようになっ ています。 内部バスからのアクセスで , 現在プリフェッチアクセス中のアドレスが一致した場合 , プリフェッチアクセスが完了してデータが取り込まれるまでの間は , 内部に対しウェ イトを返します。この場合 , バッファミス扱いにはなりません。 DMA 転送でのリードにて , プリフェッチバッファ内のアドレスが一致した場合は , プ リフェッチバッファ内のデータは使用されず , 外部バスから新たに読込みを行います。 この場合 , バッファミス扱いになりますが , 引き続きプリフェッチを継続はせずに , プ リフェッチ許可領域への新たな外部アクセスが発生するまでは , プリフェッチアクセ スを行いません。 207 第 4 章 外部バスインタフェース ■ プリフェッチバッファのクリア , 更新 プリフェッチバッファは , 以下の条件のいずれかが成立した場合にすべてクリアされ ます。 • TCR レジスタの PCLR ビットに "1" が書き込まれたとき。 • バッファリードミス ( 後述 ) が発生したとき。 • バッファライトヒット ( 後述 ) が発生したとき。 プリフェッチバッファは , 以下の条件が成立した場合に一部のみクリアされます。 • バッファリードヒットが発生したとき。 この場合 , ヒットしたアドレス以前のバッファのみクリアされます。 バッファリードミスとは , 以下のものを示します。 • プリフェッチ許可領域へのリードアクセスで , バッファ内のアドレスに一致するも のがない場合。 この場合 , 外部バスに対し新たにアクセスを行います。この際のリードデータは , バッファ内にはストアされませんが , 続くアドレスからプリフェッチアクセスを開 始し , バッファにストアしていきます。 • プリフェッチ許可領域へのリードアクセスで , リードモディファイライト系命令に よるリードである場合。 この場合 , 外部バスに対し新たにアクセスを行います。この際のリードデータは , バッファ内にはストアされませんし , 続けてプリフェッチアクセスは行いません ( 次にそのアドレスに対しライトが行われるため ) 。 • プリフェッチ許可領域へのリードアクセスで , DMA 転送によるリードである場合。 この場合 , 外部バスに対し新たにアクセスを行います。この際のリードデータは , バッファ内にはストアされませんし , 続けてプリフェッチアクセスは行いません。 バッファライトヒットとは , 以下のものを示します。 • プリフェッチ許可領域へのライトアクセスで , バッファ内のアドレスに 1 バイトで も一致するものがあった場合。 この場合 , 外部バスに対し新たにアクセスを行いますが , プリフェッチアクセスは , 新たなリードアクセスが発生するまでは行われません。 ■ プリフェッチ許可領域に対する制限事項 リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に対 するアクセスは必ずワードアクセスにて行ってください。プリフェッチバッファに読 み込まれたデータをワード長以外でアクセスすると , 正しくエンディアン変換が行わ れず , 誤ったデータを読み込んでしまいます。これは , エンディアン変換機構のハード ウェア的な制限によるものです。 208 第 4 章 外部バスインタフェース 4.8 DMA アクセス DMA アクセスの設定について説明します。 ■ DMAフライバイ転送(I/O→メモリ)(TYP3∼TYP0=0000B, AWR=0008H, IOWR=41H) 図 4.8-1 に , DMA フライバイ転送 (I/O →メモリ ) の設定を示します。 • メモリ側のウェイト設定なしの場合 図 4.8-1 DMA フライバイ転送 (I/O →メモリ ) の設定 基本サイクル I/Oウェイト I/Oホールド サイクル *1 ウェイト *2 MCLK A[23:0] メモリアドレス AS CSn WRn D[31:16] FR30 互換モード DACKn EOPn DACKn 基本モード EOPn IORD DREQn ディマンドモード時の センスタイミング • AWR レジスタ W01 ビットを "1" に設定することにより , CS → RD/WR セットアッ プディレイを設定可能です。チップセレクトアサート後 , リード / ライトストロー ブまでの期間を延長する場合に設定します。 • AWR レジスタ W00 ビットを "1" に設定することにより , RD/WR → CS ホールドディ レイを設定可能です。 リード / ライトストローブネゲート後 , チップセレクトネゲー トまでの期間を延長する場合に設定します。 209 第 4 章 外部バスインタフェース • CS → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CS ホールドディレ イ (W00 ビット ) は独立に設定可能です。 • 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク セスする場合は , CS → RD/WR セットアップディレイ , RD/WR → CS ホールドディ レイ共に挿入されません。 • アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク ルが必要な場合は , アドレス→ CS 遅延設定 (AWR レジスタ W02 ビット ) を "1" に 設定してください。 データ出力側である I/O に対して , I/O ウェイトサイクルと I/O ホールドウェイトサイ クルにより延長された , 3 バスサイクル分のリードストローブが発生しています。 受け取り側であるメモリに対しては , I/O ウェイトサイクルで延長された , 2 バスサイ クル分のライトストローブが発生しています。I/O ホールドウェイトサイクルは , ライ トストローブには影響を与えません。 ただし , アドレスと CS 信号は , フライバイによるバスアクセスサイクル終了まで保持 されます。 ■ DMAフライバイ転送(メモリ→I/O)(TYP3∼TYP0=0000B, AWR=0008H, IOWR=41H) 図 4.8-2 に , DMA フライバイ転送 ( メモリ→ I/O) の設定を示します。 • メモリ側のウェイト設定なしの場合 図 4.8-2 DMA フライバイ転送 ( メモリ→ I/O) の設定 基本サイクル I/Oウェイト I/Oホールド サイクル *1 ウェイト *2 MCLK A[23:0] メモリアドレス AS CSn RD D[31:16] DACKn FR30 互換モード EOPn DACKn 基本モード EOPn IOWR DREQn 210 ディマンドモード時の センスタイミング 第 4 章 外部バスインタフェース • IOWR0 ∼ IOWR3 レジスタの HLD ビットを "1" に設定することにより , I/O リード サイクルを 1 サイクル延長します。 • IOWR0 ∼ IOWR3 レジスタの WR1, WR0 ビットの設定により , 0 ∼ 3 サイクルまで のライトリカバリサイクルを挿入可能です。 • ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必 ずライトリカバリサイクルを挿入します。 • IOWR0 ∼ IOWR3 レジスタの IW3 ∼ IW0 ビットの設定により , 0 ∼ 15 サイクルま でのウェイトサイクルを挿入可能です。 • メモリ側にもウェイトの設定がある場合 (AWR0H ∼AWR7Hレジスタの W15∼ W12 ビットが "0" でないとき ) は , I/O ウェイト (IW3 ∼ IW0 ビット ) と比較して大きい ほうの値をウェイトサイクルとして使用します。 データ出力側であるメモリに対して , I/O ウェイトサイクルと I/O ホールドウェイトサ イクルにより延長された , 3 バスサイクル分のリードストローブが発生しています。 受け取り側である I/O に対しては , I/O ウェイトサイクルで延長された , 2 バスサイクル 分のライトストローブが発生しています。I/O ホールドウェイトサイクルは , ライトス トローブには影響を与えません。 ただし , アドレスと CS 信号は , フライバイによるバスアクセスサイクル終了まで保持 されます。 フライバイ転送を行う場合は , 必ず同じデータバス幅間で行ってください。 211 第 4 章 外部バスインタフェース ■ 2サイクル転送(内部RAM→外部I/O, RAM, 外部I/O, RAM→内部RAMもタイミング は同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H) 図 4.8-3 に , 2 サイクル転送の設定を示します。 ● I/O 側のウェイト設定なしの場合 図 4.8-3 2 サイクル転送の設定 MCLK A[23:0] I/O アドレス AS CSnX(I/O側) WRn D[31:16] DACKn FR30 互換モード EOPn DACKn 基本モード EOPn DREQn ディマンドモード時の センスタイミング • バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 • DACKn/EOPn は , 内部 RAM アクセスのサイクルでは出力されません。 212 第 4 章 外部バスインタフェース ■ 2 サイクル転送 ( 外部→ I/O)(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H) 図 4.8-4 に , 2 サイクル転送 ( 外部→ I/O) の設定を示します。 ● メモリ , I/O のウェイト設定なしの場合 図 4.8-4 2 サイクル転送 ( 外部→ I/O) の設定 MCLK メモリアドレス A[23:0] アイドル I/O アドレス AS CSn RD CSn WRn D[31:16] FR30 互換モード DACKn EOPn DACKn 基本モード EOPn DREQn • バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 • 基本モードでは DACKn/EOPn は転送元バスアクセス , 転送先バスアクセスの両方で 出力されます。 213 第 4 章 外部バスインタフェース ■ 2 サイクル転送 (I/O →外部 )(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H) 図 4.8-5 に , 2 サイクル転送 (I/O →外部 ) の設定を示します。 ● メモリ , I/O のウェイト設定なしの場合 図 4.8-5 2 サイクル転送 (I/O →外部 ) の設定 MCLK A[23:0] I/O アドレス アイドル メモリアドレス AS CSn WRn CSn RD D[31:16] FR30 互換モード DACKn EOPn DACKn 基本モード EOPn DREQn • バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。 • 基本モードでは DACKn/EOPn は転送元バスアクセス , 転送先バスアクセスの両方で 出力されます。 214 第 4 章 外部バスインタフェース 4.9 バスアービトレーション バスアービトレーションを行うための設定について説明します。 ■ バス権開放 図 4.9-1 に , バス権開放時の設定を示します。 図 4.9-1 バス権開放時の設定 MCLK A23~A00 AS CSn RD リード D31~D16 BRQ BGRNT 1サイクル 215 第 4 章 外部バスインタフェース ■ バス権獲得 図 4.9-2 に , バス権獲得時の設定を示します。 図 4.9-2 バス権獲得時の設定 MCLK A23~A00 AS CSn WR D31~D16 BRQ BGRNT 1サイクル • TRC レジスタ BREN ビットを "1" に設定することにより , BRQ/BGRNT によるバス アービトレーションを行うことができます。 • バス権開放時は , 端子をハイインピーダンスにしてから 1 サイクル後に BGRNT を アサートします。 • バス権獲得時は , BGRNT をネゲートしてから 1 サイクル後に各端子をアクティブに します。 • CSn は , ACR0 ∼ ACR7 レジスタの SREN ビットがセットしてある場合のみハイイ ンピーダンスにします。 • CSER レジスタで許可している領域がすべて共有許可 (ACR レジスタ SREN ビット が "1") の場合 , AS, BAA, RD, WR, WR0 ∼ WR1 をハイインピーダンスにします。 216 第 4 章 外部バスインタフェース 4.10 レジスタ設定手順 外部バスインタフェースに関する設定手順は , 以下の原則にしたがってください。 ■ 外部バスインタフェースの設定手順 1) レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用し ない設定 ("0") にして行ってください。"1" のまま設定を変更した場合 , その前後の アクセスは保証されません。 2) レジスタの変更は以下の手順で行ってください。 ① 該当領域に対応する CSER のビットを "0" に設定してください。 ② ASR と ACR をワードアクセスで同時に設定してください。 ASR, ACR をハーフワードでアクセスする場合には , ASR 設定後 , ACR を設定 してください。 ③ AWR を設定してください。 ④ 該当領域に対する CSER のビットを設定してください。 3) CS0 領域はリセット解除後から有効になっており , プログラム領域として使用して いる場合は CSER を "1" のままで書き換える必要がありますが , この場合は内部ク ロックが低い初期状態で上記②∼③の設定を行ってください。そのあと , クロック を高速クロックに切り換えてください。 4) プリフェッチ許可を設定した領域のレジスタ値の変更は以下の手順で行ってくだ さい。 ① 該当領域に対応する CSER のビットを "0" に設定してください。 ② TCR レジスタ PSUS ビットおよび PCLR ビットを共に "1" に設定してください。 ③ ASR と ACR をワードアクセスにて同時に設定してください。 ④ AWR を設定してください。 ⑤ TCR レジスタ PSUS ビットおよび PCLR ビットに "0" を設定してください。 ⑥ 該当領域に対応する CSER のビットを "1" に設定してください。 217 第 4 章 外部バスインタフェース 218 第5章 I/O ポート この章では , I/O ポートの概要 , レジスタの構成 , および機能について説明します。 5.1 I/O ポートの概要 5.2 I/O ポートのレジスタ 219 第 5 章 I/O ポート 5.1 I/O ポートの概要 I/O ポートの概要について説明します。 ■ ポート基本ブロックダイヤグラム 本LSIは, 各端子に対応する外部バスインタフェースやペリフェラルが入出力として端 子を使用しない設定になっているとき , I/O ポートとして使用することができます。 図 5.1-1 に , ポートの基本的な構成を示します。 図 5.1-1 ポート基本ブロックダイヤグラム ペリフェラル入力 ポートバス プルアップ抵抗 ( 約 50kΩ ) 0 1 ペリフェラル出力 PDRリード 1 PDR Pin 0 PFR DDR PCR PCR=0:プルアップ抵抗なし PCR=1:プルアップ抵抗あり DDR:ポ-ト方向レジスタ PDR:ポートデータレジスタ PFR:ポート機能レジスタ PCR:プルアップ抵抗制御レジスタ ■ プルアップ抵抗付き入出力ポート プルアップ付き I/O ポートは , 以下のもので構成されています。 • PDR( ポートデータレジスタ /Port Data Register) • DDR( ポート方向レジスタ /Data Direction Register) • PFR( ポート機能レジスタ /Port Function Register) • PCR( プルアップ抵抗制御レジスタ /Pull-up Control Register) ● ポート入力モード時 (PFR="0" & DDR="0") PDR リード : 対応する外部端子のレベルが読み出されます。 PDR ライト : PDR に設定値が書き込まれます。 ● ポート出力モード時 (PFR="0" & DDR="1") PDR リード : PDR の値が読み出されます。 PDR ライト : PDR の値が対応する外部端子に出力されます。 220 第 5 章 I/O ポート ● ペリフェラル出力モード時 (PFR="1" & DDR="x") PDR リード : 対応するペリフェラル出力の値が読み出されます。 PDR ライト : PDR に設定値が書き込まれます。 <注意事項> • ポートへのアクセスは , バイトアクセスで行ってください。 ポート 0 ∼ポート A ( ポート 9 のビット 3 を除く ) を外部バス端子として使用している 場合は , 外バス機能が優先されます。このため , 外部バス端子として動作させていると きに DDR レジスタを書き換えても入出力の切換えは , 起こりません。DDR レジスタ の値が有効になるのは , PFR レジスタを切り換えて汎用端子としたときです。 • ストップモード時 (HIZ=0) には , プルアップ抵抗制御レジスタの設定が優先されます。 • ストップモード時 (HIZ=1) には , プルアップ抵抗制御レジスタの設定は無効となりま す。 • 当該端子を外バス端子として使用する場合は , プルアップ抵抗は使用禁止です。Pull Up Control Register(PCR) の当該ビットに "1" を書き込まないようにしてください。 • シングルチップモードでのご使用時には PFR6, 8, 9, A, B1, B2, C の外部バス機能は使 用できません。これらのレジスタの書換えはしないでください。また , シングルチップ モード時には PFR6, 8, 9, A の初期値 "1" の機能 (A23-A16, WR1, SYSCLK, CS3-CS0) に関しては外バス機能出力とはなりません ( 汎用ポートとしてのご使用となります )。 221 第 5 章 I/O ポート 5.2 I/O ポートのレジスタ I/O ポートで使用するレジスタの構成および機能について説明します。 ■ ポートデータレジスタ (PDR) ポートデータレジスタ (PDR) の構成は , 以下のとおりです。 PDR2 アドレス:00000002 H 7 P27 6 P26 5 P25 4 P24 3 P23 2 P22 1 P21 0 P20 初期値 XXXXXXXX B アクセス R/W PDR3 アドレス:00000003 7 P37 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 P30 初期値 XXXXXXXX B アクセス R/W PDR4 アドレス:00000004 H 7 P47 6 P46 5 P45 4 P44 3 P43 2 P42 1 P41 0 P40 初期値 XXXXXXXX B アクセス R/W PDR5 アドレス:00000005 H 7 P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 P50 初期値 XXXXXXXX B アクセス R/W PDR6 アドレス:00000006 H 7 *P67 6 *P66 5 *P65 4 P64 3 P63 2 P62 1 P61 0 P60 初期値 XXXXXXXX B アクセス R/W PDR8 アドレス:00000008 H 7 - 6 - 5 P85 4 P84 3 P83 2 P82 1 P81 0 P80 初期値 --XXXXXX B アクセス R/W PDR9 アドレス:00000009 H 7 - 6 - 5 - 4 P94 3 P93 2 *P92 1 P91 0 P90 初期値 ---XXXXX B アクセス R/W PDRA アドレス:0000000A H 7 - 6 - 5 - 4 - 3 PA3 2 PA2 0 PA0 初期値 ----XXXX B アクセス R/W * PDRB アドレス:0000000B H 7 *PB7 6 *PB6 5 *PB5 4 *PB4 3 *PB3 2 *PB2 1 PA1 1 *PB1 0 *PB0 初期値 XXXXXXXX B アクセス R/W * PDRC アドレス:0000000C H 7 - 6 - 5 - 4 - 3 - 2 *PC2 1 *PC1 0 *PC0 初期値 -----XXX B アクセス R/W * PDRG アドレス:00000010 H 7 - 6 - 5 *PG5 4 *PG4 3 *PG3 2 *PG2 1 *PG1 0 *PG0 初期値 --XXXXXX B アクセス R/W PDRH アドレス:00000011 H 7 - 6 - 5 PH5 4 PH4 3 PH3 2 PH2 1 PH1 0 PH0 初期値 --XXXXXX B アクセス R/W PDRI アドレス:00000012 H 7 - 6 - 5 PI5 4 PI4 3 PI3 2 PI2 1 PI1 0 PI0 初期値 --XXXXXX B アクセス R/W * PDRJ アドレス:00000013 H 7 *PJ7 6 *PJ6 5 *PJ5 4 *PJ4 3 *PJ3 2 *PJ2 1 *PJ1 0 *PJ0 初期値 XXXXXXXX B アクセス R/W PDRK アドレス:00000014 H 7 PK7 6 PK6 5 PK5 4 PK4 3 PK3 2 PK2 1 PK1 0 PK0 初期値 XXXXXXXX B アクセス R/W PDRL アドレス:00000015 H 7 - 6 - 5 - 4 - 3 - 2 - 1 PL1 0 PL0 初期値 ------XX B アクセス R/W PDRM アドレス:00000016 H 7 - 6 - 5 PM5 4 PM4 3 PM3 2 PM2 1 PM1 0 PM0 初期値 --XXXXXX B アクセス R/W PDRN アドレス:00000017 H 7 - 6 - 5 *PN5 4 PN4 3 *PN3 2 PN2 1 *PN1 0 PN0 初期値 --XXXXXX B アクセス R/W PDRO アドレス:00000018 H 7 *PO7 6 *PO6 5 *PO5 4 *PO4 3 *PO3 2 PO2 1 *PO1 0 PO0 初期値 XXXXXXXX B アクセス R/W * PDRP アドレス:00000019 H 7 - 6 - 5 - 4 - 3 *PP3 2 *PP2 1 *PP1 0 *PP0 初期値 XXXXXXXX B アクセス R/W PDR0 ∼ PDRP は , I/O ポートの入出力データレジスタです。対応する DDR2 ∼ DDRP, PFR6 ∼ PFRP で , 入出力制御が行われます。 P20 ∼ P27, P30 ∼ P37, P40 ∼ P47, P50 ∼ P57, P91, PJ0 ∼ PJ7, PK0 ∼ PK7, PG0, PG3, PH0, PH3, PI0, PI3, PM1, PM3 に対する PFR (Port Function Register) はありません。 *: MB91F353A/351A/352A/353A は , PDRB, PDRC, PDRG, PDRJ, PDRP の PDR がありま せん。また , P65, P66, P67, P92, PN1, PN3, PN5, PO1, PO3, PO4, PO5, PO6, PO7 のビッ ト値は無効です。 222 第 5 章 I/O ポート ■ ポート方向レジスタ (DDR) ポート方向 (DDR) レジスタの構成は , 以下のとおりです。 DDR2 アドレス:00000602 H 7 P27 6 P26 5 P25 4 P24 3 P23 2 P22 1 P21 0 P20 初期値 00000000 B アクセス R/W DDR3 アドレス:00000603 H 7 P37 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 P30 初期値 00000000 B アクセス R/W DDR4 アドレス:00000604 H 7 P47 6 P46 5 P45 4 P44 3 P43 2 P42 1 P41 0 P40 初期値 00000000 B アクセス R/W DDR5 アドレス:00000605 H 7 P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 P50 初期値 00000000 B アクセス R/W DDR6 アドレス:00000606 H 7 *P67 6 *P66 5 *P65 4 P64 3 P63 2 P62 1 P61 0 P60 初期値 00000000 B アクセス R/W DDR8 アドレス:00000608 H 7 - 6 - 5 P85 4 P84 3 P83 2 P82 1 P81 0 P80 初期値 --000000 B アクセス R/W DDR9 アドレス:00000609 H 7 - 6 - 5 - 4 P94 3 P93 2 *P92 1 P91 0 P90 初期値 ---00000 B アクセス R/W DDRA アドレス:0000060A H 7 - 6 - 5 - 4 - 3 PA3 2 PA2 1 PA1 0 PA0 初期値 ----0000 B アクセス R/W * DDRB アドレス:0000060B H 7 *PB7 6 *PB6 5 *PB5 4 *PB4 3 *PB3 2 *PB2 1 *PB1 0 *PB0 初期値 00000000 B アクセス R/W * DDRC アドレス:0000060C H 7 - 6 - 5 - 4 - 3 - 2 *PC2 1 *PC1 0 *PC0 初期値 -----000 B アクセス R/W * DDRG アドレス:00000400 H 7 - 6 - 5 *PG5 4 *PG4 3 *PG3 2 *PG2 1 *PG1 0 *PG0 初期値 --000000 B アクセス R/W DDRH アドレス:00000401 H 7 - 6 - 5 PH5 4 PH4 3 PH3 2 PH2 1 PH1 0 PH0 初期値 --000000 B アクセス R/W DDRI アドレス:00000402 H 7 - 6 - 5 PI5 4 PI4 3 PI3 2 PI2 1 PI1 0 PI0 初期値 --000000 B アクセス R/W * DDRJ アドレス:00000403 H 7 *PJ7 6 *PJ6 5 *PJ5 4 *PJ4 3 *PJ3 2 *PJ2 1 *PJ1 0 *PJ0 初期値 00000000 B アクセス R/W DDRK アドレス:00000404 H 7 PK7 6 PK6 5 PK5 4 PK4 3 PK3 2 PK2 1 PK1 0 PK0 初期値 00000000 B アクセス R/W DDRL アドレス:00000405 H 7 - 6 - 5 - 4 - 3 - 2 - 1 PL1 0 PL0 初期値 ------00 B アクセス R/W DDRM アドレス:00000406 H 7 - 6 - 5 PM5 4 PM4 3 PM3 2 PM2 1 PM1 0 PM0 初期値 --000000 B アクセス R/W DDRN アドレス:00000407 H 7 - 6 - 5 *PN5 4 PN4 3 *PN3 2 PN2 1 *PN1 0 PN0 初期値 --000000 B アクセス R/W DDRO アドレス:00000408 H 7 *PO7 6 *PO6 5 *PO5 4 *PO4 3 *PO3 2 PO2 1 *PO1 0 PO0 初期値 00000000 B アクセス R/W * DDRP アドレス:00000409 H 7 - 6 - 5 - 4 - 3 *PP3 2 *PP2 1 *PP1 0 *PP0 初期値 ----0000 B アクセス R/W DDR0 ∼ DDRP は , 対応する I/O ポートの入出力方向をビット単位で制御します。 • PFR=0 のとき DDR=0: ポート入力 DDR=1: ポート出力 • PFR=1 のとき DDR=0: ペリフェラル入力 DDR=1: ペリフェラル出力 *: MB91F353A/351A/352A/353A は , DDRB, DDRC, DDRG, DDRJ, DDRP の DDR が ありません。また , P65, P66, P67, P92, PN1, PN3, PN5, PO1, PO3, PO4, PO5, PO6, PO7 のビット値は無効です。 223 第 5 章 I/O ポート ■ プルアップ抵抗レジスタ (PCR) プルアップ抵抗レジスタ (PCR) の構成は , 以下のとおりです。 PCR2 アドレス:00000622 H 7 P27 6 P26 5 P25 4 P24 3 P23 2 P22 1 P21 0 P20 初期値 00000000 B アクセス R/W PCR3 アドレス:00000623 H 7 P37 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 P30 初期値 00000000 B アクセス R/W PCR4 アドレス:00000624 H 7 P47 6 P46 5 P45 4 P44 3 P43 2 P42 1 P41 0 P40 初期値 00000000 B アクセス R/W PCR5 アドレス:00000625 H 7 P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 P50 初期値 00000000 B アクセス R/W PCR6 アドレス:00000626 H 7 *P67 6 *P66 5 *P65 4 P64 3 P63 2 P62 1 P61 0 P60 初期値 00000000 B アクセス R/W PCR8 アドレス:00000628 H 7 - 6 - 5 P85 4 P84 3 P83 2 P82 1 P81 0 P80 初期値 --000000 B アクセス R/W PCR9 アドレス:00000629 H 7 - 6 - 5 - 4 P94 3 P93 2 *P92 1 P91 0 P90 初期値 ---00000 B アクセス R/W PCRA アドレス:0000062A H 7 - 6 - 5 - 4 - 3 PA3 2 PA2 1 PA1 0 PA0 初期値 ----0000 B アクセス R/W * PCRB アドレス:0000062B H 7 *PB7 6 *PB6 5 *PB5 4 *PB4 3 *PB3 2 *PB2 1 *PB1 0 *PB0 初期値 00000000 B アクセス R/W * PCRC アドレス:0000062C H 7 - 6 - 5 - 4 - 3 - 2 *PC2 1 *PC1 0 *PC0 初期値 -----000 B アクセス R/W * PCRG アドレス:00000420 H 7 - 6 - 5 *PG5 4 *PG4 3 *PG3 2 *PG2 1 *PG1 0 *PG0 初期値 --000000 B アクセス R/W PCRH アドレス:00000421 H 7 - 6 - 5 PH5 4 PH4 3 PH3 2 PH2 1 PH1 0 PH0 初期値 --000000 B アクセス R/W PCRI アドレス:00000422 H 7 - 6 - 5 PI5 4 PI4 3 PI3 2 PI2 1 PI1 0 PI0 初期値 --000000 B アクセス R/W PCRM アドレス:00000426 H 7 - 6 - 5 PM5 4 PM4 3 PM3 2 PM2 1 PM1 0 PM0 初期値 --000000 B アクセス R/W PCRN アドレス:00000427 H 7 - 6 - 5 *PN5 4 PN4 3 *PN3 2 PN2 1 *PN1 0 PN0 初期値 --000000 B アアクセス R/W PCRO アドレス:00000428 H 7 *PO7 6 *PO6 5 *PO5 4 *PO4 3 *PO3 2 PO2 1 *PO1 0 PO0 初期値 00000000 B アクセス R/W * PCRP アドレス:00000429 H 7 - 6 - 5 - 4 - 3 *PP3 2 *PP2 1 *PP1 0 *PP0 初期値 ----0000 B アクセス R/W PCR2 ∼ PCRP は , 対応する I/O ポートのプルアップ抵抗制御を行います。 • PCR=0: プルアップ抵抗なし • PCR=1: プルアップ抵抗あり PJ0 ∼ PJ7, PK0 ∼ PK7, PL0 ∼ PL1 は , プルアップ抵抗はありません。 *: MB91F353A/351A/352A/353A は , PCRB, PCRC, PCRG, PCRP の PCR がありません。 また, P65, P66, P67, P92, PN1, PN3, PN5, PO1, PO3, PO4, PO5, PO6, PO7のビット値は 無効です。 224 第 5 章 I/O ポート ■ ポート機能レジスタ (PFR) ポート機能レジスタ (PFR) の構成は , 以下のとおりです。 PFR6 アドレス:00000616 H 7 *A23E 6 *A22E 5 *A21E 4 A20E 3 A19E 2 A18E 1 A17E 0 A16E 初期値 アクセス 11111111 B R/W PFR8 アドレス:00000618 H 7 - 6 - 5 WR1XE 4 - 3 - 2 BRQE 1 - 0 - 初期値 アクセス --1--0-- B R/W PFR9 アドレス:00000619 H 7 - 6 - 5 - 4 ASXE 3 *1 2 *MCKE 1 - 0 SYSE 初期値 アクセス ---010-1 B R/W PFRA アドレス:0000061A H 7 - 6 - 5 - 4 - 3 CS3XE 2 CS2XE 1 CS1XE 0 CS0XE 初期値 アクセス ----1111 B R/W * PFRB1 アドレス:0000061B H 7 *DES1 6 *AK12 5 *AK11 4 *AK10 3 *DES0 2 *AK02 1 *AK01 0 *AK00 初期値 アクセス 00000000 B R/W * PFRB2 アドレス:0000061C H 7 *DRDE 6 *DWRE 5 - 4 - 3 - 2 - 1 *AKH1 0 *AKH0 初期値 アクセス 00----00 B R/W * PFRC アドレス:0000061D H 7 - 6 - 5 - 4 *AKH2 3 *DES2 2 *AK22 1 *AK21 0 *AK20 初期値 アクセス ---00000 B R/W * PFRG アドレス:00000410 H 7 - 6 - 5 *SCE5 4 *SOE5 3 - 2 *SCE4 1 *SOE4 0 - 初期値 アクセス --00-00- B R/W PFRH アドレス:00000411 H 7 - 6 - 5 SCE3 4 SOE3 3 - 2 SCE2 1 SOE2 0 - 初期値 アクセス --00-00- B R/W PFRI アドレス:00000412 H 7 - 6 - 5 SCE1 4 SOE1 3 - 2 SCE0 1 SOE0 0 - 初期値 アクセス --00-00- B R/W PFRL アドレス:00000415 H 7 - 6 - 5 - 4 - 3 - 2 - 1 TEST 0 I2CE 初期値 アクセス ------00 B R/W PFRM アドレス:00000416 H 7 - 6 - 5 SCE7 4 SOE7 3 - 2 SCE6 1 SOE6 0 - 初期値 アクセス --00-00- B R/W PFRN アドレス:00000417 H 7 - 6 - 5 *PGE5 4 PGE4 3 *PGE3 2 PGE2 1 *PGE1 0 PGE0 初期値 アクセス --000000 B R/W PFRO アドレス:00000418 H 7 *OTE7 6 *OTE6 5 *OTE5 4 *OTE4 3 *OTE3 2 OTE2 1 *OTE1 0 OTE0 初期値 アクセス 00000000 B R/W * PFRP アドレス:00000419 H 7 - 6 - 5 - 4 - 3 *TOE3 2 *TOE2 1 *TOE1 0 *TOE0 初期値 アクセス ----0000 B R/W PFR6 ∼ PFRO は , 対応する外部バスインタフェースやペリフェラルの出力をビット単 位で制御します。 PFR の空きビットには , 必ず 0 を設定してください ( ただし , *1 のビットは必ず "1" を 書いてください ) 。 シングルチップモードでのご使用時には PFR6, 8, 9, A, B1, B2, Cの外部バス機能は使用 できません。これらのレジスタの書換えはしないでください。また , シングルチップ モード時には PFR6, 8, 9, A の初期値 "1" の機能 (A23-A16, WR1, SYSCLK, CS3-CS0) に 関しては外バス機能出力とはなりません ( 汎用ポートとしてのご使用となります )。 *: MB91F353A/351A/352A/353A は , PFRB1, PFRB2, PFRC, PFRG, PFRP の PFR があり ま せ ん。ま た , A23E, A22E, A21E, MCKE, PGE1, PGE3, PGE5, OTE1, OTE3, OTE4, OTE5, OTE6, OTE7 のビット値は無効です。 225 第 5 章 I/O ポート ■ PFR レジスタの初期値と機能 表 5.2-1 に , 各 PFR レジスタについてその初期値と機能をまとめます。 シングルチップモードでのご使用時には PFR6, 8, 9, A, B1, B2, Cの外部バス機能は使用 できません。これらのレジスタの書換えはしないでください。また , シングルチップ モード時には PFR6, 8, 9, A の初期値 "1" の機能 (A23-A16, WR1, SYSCLK, CS3-CS0) に 関しては外バス機能出力とはなりません ( 汎用ポートとしてのご使用となります )。 表 5.2-1 PFR レジスタの初期値と機能 (1 / 4) レジスタ名称 PFR6(A16E ∼ A23E) [P60/A16 ∼ P67/A23] ビット名称 A16E A17E P65/A21E, P66/A22E, P67/A23E * A18E A19E A20E A21E* ビット 0 1 0 1 0 1 0 1 0 1 0 1 A22E* 0 1 A23E* 0 PFR8(BRQE) [P81/IN1/BGRNT, P82/IN2/BRQ] PFR8(WR1XE) [P85/IN3/WR1] BRQE 0 PFR9(SYSE) [P90/SYSCLK] SYSE PFR9(MCKE) [P92/MCLK] * MCKE* PFR9(ASXE) [P94/AS] ASXE PFRA(CS0XE ∼ CS3XE) [PA0/CS0 ∼ PA3/CS3] CS0XE CS1XE CS2XE CS3XE 226 汎用ポート アドレス出力 ( 初期値 ) 汎用ポート * アドレス出力 ( 初期値 ) 汎用ポート * アドレス出力 ( 初期値 ) 汎用ポート * アドレス出力 ( 初期値 ) 汎用ポート * アドレス出力 ( 初期値 ) 汎用ポート * アドレス出力 ( 初期値 ) * 汎用ポート * アドレス出力 ( 初期値 ) * 1 汎用ポート * アドレス出力 ( 初期値 ) * 汎用ポート ( 初期値 ) BRQ, BGRNT 0 1 0 1 汎用ポート WR1/ULB 出力 ( 初期値 ) 汎用ポート SYSCLK 出力使用時 "1" を設定してください ( 初期値 ) 。 0 汎用ポート ( 初期値 ) * 1 メモリクロック出力使用時 "1" を設定してください *。 汎用ポート ( 初期値 ) アドレスストローブ出力使用時に設定してください。 汎用ポート CS0 出力 ( 初期値 ) 汎用ポート CS1 出力 ( 初期値 ) 汎用ポート CS2 出力 ( 初期値 ) 汎用ポート CS3 出力 ( 初期値 ) 1 WR1XE 機 能 * 0 1 0 1 0 1 0 1 0 1 第 5 章 I/O ポート 表 5.2-1 PFR レジスタの初期値と機能 (2 / 4) レジスタ名称 ビット名称 ビット PFRB1(AK02, AK01, AK00) [PB1/DACK0] * AK02, AK01, AK00 * 0,0,0 0,0,1 0,1,0 0,1,1 1,0,0 1,0,1 1,1,0 PFRB1(DES0), DDRB(PB2) DES0, PB2 * [PB2/DSTP0/DEOP0] * PFRB1(AK12, AK11, AK10) [PB4/DACK1] * AK12, AK11, AK10 * 1,1,1 0,0 0,1 1,0 1,1 0,0,0 0,0,1 0,1,0 0,1,1 1,0,0 1,0,1 1,1,0 PFRB1(DES1), DDRB(PB5) DES1, PB5 * [PB5/DSTP1/DEOP1] * PFRB2(DWRE) [PB6/IOWR] * PFRB2(DRDE) [PB7/IORD] * PFRB2(AKH0) [PB1/DACK0] * PFRB2(AKH1) [PB4/DACK1] * DWRE * DRDE * AKH0 * AKH1 * 1,1,1 0,0 0,1 1,0 1,1 0 1 0 1 0 1 0 1 機 能 汎用ポート ( 初期値 ) DACK0, DEOP0 出力 ( フライバイ転送時 FR30 互換 ) DACK0, DEOP0 出力 (2 サイクル転送 RD タイミング FR30 互換 ) DACK0, DEOP0 出力 (2 サイクル転送 WRn タイミング FR30 互換 ) DACK0, DEOP0 出力 (2 サイクル転送 WE タイミング FR30 互換 ) DACK0, DEOP0 出力 (2 サイクル転送 WRn, RD タイミング FR30 互換 ) DACK0, DEOP0 出力 (2 サイクル転送 WE, RD タイミング FR30 互換 ) DACK0, DEOP0 出力 ( チップセレクトタイミング ) 汎用ポート入力 ( 初期値 ) 汎用ポート出力 DMAC: DSTP0 入力 DMAC: DEOP0 出力 汎用ポート ( 初期値 ) DACK1, DEOP1 出力 ( フライバイ転送時 FR30 互換 ) DACK1, DEOP1 出力 (2 サイクル転送 RD タイミング FR30 互換 ) DACK1, DEOP1 出力 (2 サイクル転送 WRn タイミング FR30 互換 ) DACK1, DEOP1 出力 (2 サイクル転送 WE タイミング FR30 互換 ) DACK1, DEOP1 出力 (2 サイクル転送 WRn, RD タイミング FR30 互換 ) DACK1, DEOP1 出力 (2 サイクル転送 WE, RD タイミング FR30 互換 ) DACK1, DEOP1 出力 ( チップセレクトタイミング ) 汎用ポート入力 ( 初期値 ) 汎用ポート出力 DMAC: DSTP1 入力 DMAC: DEOP1 出力 汎用ポート ( 初期値 ) IOWR 出力 汎用ポート ( 初期値 ) IORD 出力 DACK0 出力がアクティブ L ( 初期値 ) DACK0 出力がアクティブ H DACK1 出力がアクティブ L ( 初期値 ) DACK1 出力がアクティブ H 227 第 5 章 I/O ポート 表 5.2-1 PFR レジスタの初期値と機能 (3 / 4) レジスタ名称 ビット名称 PFRC(AK22, AK21, AK20) AK22, AK21, [PC1/DACK2] * AK20 * ビット 0,0,0 0,0,1 0,1,0 0,1,1 1,0,0 1,0,1 1,1,0 PFRC(DES2), DDRC(PC2) [PC2/DEOP2] * DES2, PC2 PFRC(AKH2) [PC1/DACK2] * PFRG(SOE4) [PG1/SO4] * PFRG(SCE4) [PG2/SCK4] * PFRG(SOE5) [PG4/SO5] * PFRG(SCE5) [PG5/SCK5] * PFRH(SOE2) [PH1/SO2] AKH2 * SOE4 * SCE4 * SOE5 * SCE5 * SOE2 PFRH(SCE2) [PH2/SCK2] SCE2 PFRH(SOE3) [PH4/SO3] SOE3 PFRH(SCE3) [PH5/SCK3] SCE3 PFRI(SOE0) [PI1/SO0] SOE0 PFRI(SCE0) [PI2/SCK0] SCE0 PFRI(SOE1) [PI4/SO1] SOE1 PFRI(SCE1) [PI5/SCK1] SCE1 PFRL(I2CE) [PL1/SDL, PL0/SDA] I2CE PFRL(TEST) TEST PFRM(SOE6) [PM1/SO6/BIN0/TRG1] SOE6 228 * 1,1,1 0,0 0,1 1,0 1,1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 機 能 汎用ポート ( 初期値 ) DACK2, DEOP2 出力 ( フライバイ転送時 FR30 互換 ) DACK2, DEOP2 出力 (2 サイクル転送 RD タイミング FR30 互換 ) DACK2, DEOP2 出力 (2 サイクル転送 WRn タイミング FR30 互換 ) DACK2, DEOP2 出力 (2 サイクル転送 WE タイミング FR30 互換 ) DACK2, DEOP2 出力 (2 サイクル転送 WRn, RD タイミング FR30 互換 ) DACK2, DEOP2 出力 (2 サイクル転送 WE, RD タイミング FR30 互換 ) DACK2, DEOP2 出力 ( チップセレクトタイミング ) 汎用ポート入力 ( 初期値 ) 汎用ポート出力 DMAC: DSTP2 入力 DMAC: DEOP2 出力 DACK2 出力がアクティブ L ( 初期値 ) DACK2 出力がアクティブ H 汎用ポート ( 初期値 ) SO4 出力 汎用ポート ( 初期値 ) SCK4 出力 汎用ポート ( 初期値 ) SO5 出力 汎用ポート ( 初期値 ) SCK5 出力 汎用ポート ( 初期値 ) SO2 出力 汎用ポート ( 初期値 ) SCK2 出力 汎用ポート ( 初期値 ) SO3 出力 汎用ポート ( 初期値 ) SCK3 出力 汎用ポート ( 初期値 ) SO0 出力 汎用ポート ( 初期値 ) SCK0 出力 汎用ポート ( 初期値 ) SO1 出力 汎用ポート ( 初期値 ) SCK1 出力 汎用ポート ( 初期値 ) SDA, SDL 入出力 必ず "0" にしてください ( 初期値 ) 。 テスト機能。設定禁止です。 汎用ポート ( 初期値 ) SO6 出力 第 5 章 I/O ポート 表 5.2-1 PFR レジスタの初期値と機能 (4 / 4) レジスタ名称 ビット名称 PFRM(SCE6) [PM2/SCK6/ZIN0/TRG2] SCE6 PFRM(SOE7) [PM4/SO7/BIN1/TRG4] SOE7 PFRM(SCE7) [PM5/SCK7/ZIN1/TRG5] SCE7 PGE0 PFRN(PGE0 ∼ 5) [PN0/PPG0 ∼ PN5/PPG7] * PGE1 * PFRO(OTE0 ∼ 7) [PO0/OC0 ∼ PO7/OC7] * 機 能 0 1 0 1 0 1 0 1 汎用ポート ( 初期値 ) SCK6 出力 汎用ポート ( 初期値 ) SO7 出力 汎用ポート ( 初期値 ) SCK7 出力 汎用ポート ( 初期値 ) PPG0 出力 0 汎用ポート ( 初期値 ) * 1 PGE2 0 1 PPG1 出力 * 汎用ポート ( 初期値 ) PPG2 出力 PGE3 * 0 汎用ポート ( 初期値 ) * 1 PGE4 0 1 PPG3 出力 * 汎用ポート ( 初期値 ) PPG4 出力 PGE5 * 0 汎用ポート ( 初期値 ) * 1 OTE0 0 1 PPG5 出力 * 汎用ポート ( 初期値 ) OC0 出力 OTE1 * 0 汎用ポート ( 初期値 ) * 1 OTE2 0 1 OC1 出力 * 汎用ポート ( 初期値 ) OC2 出力 OTE3 * 0 汎用ポート ( 初期値 ) * 1 OC3 出力 * 0 汎用ポート ( 初期値 ) * 1 OC4 出力 * 0 汎用ポート ( 初期値 ) * 1 OC5 出力 * 0 汎用ポート ( 初期値 ) * 1 OC6 出力 * 0 汎用ポート ( 初期値 ) * 1 OC7 出力 * 0 汎用ポート ( 初期値 ) * 1 TOT0 出力 * 0 汎用ポート ( 初期値 ) * 1 TOT1 出力 * 0 汎用ポート ( 初期値 ) * 1 TOT2 出力 * 0 汎用ポート ( 初期値 ) * OTE4 * OTE5 * OTE6 * OTE7 * PFRP(TOE0 ∼ TOE3) [PP0/TOT0 ∼ PP3/TOT3] * ビット TOE0 * TOE1 * TOE2 * TOE3 * TOT3 出力 * * : MB91F353A/351A/352A/353A は設定無効です。 1 229 第 5 章 I/O ポート 230 第6章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER この章では , 8/16 ビットアップダウンカウンタ / タ イマと U-TIMER の概要 , レジスタの構成 / 機能 , および動作について説明します。 6.1 8/16 ビットアップダウンカウンタ / タイマ 6.2 U-TIMER 231 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER 6.1 8/16 ビットアップダウンカウンタ / タイマ 8/16 ビットアップダウンカウンタ / タイマの概要 , レジスタの構成 / 機能 , および動 作について説明します。 ■ 8/16 ビットアップダウンカウンタ / タイマの概要 本ブロックは , イベント入力端子 6 本 , 8 ビットアップ / ダウンカウンタ× 2 本 , 8 ビッ トリロード / コンペアレジスタ× 2 本と , それらの制御回路から構成されるアップダウ ンカウンタ / タイマです。 MB91F355A/355A/354A/F356B/F357B は本ブロック 8 ビットアップダウンカウンタ / タ イマを 2 チャネル内蔵しています。 MB91F353A/351A/352A/353A は 8 ビットアップダウンカウンタ / タイマを 1 チャネル 内蔵しています。 16 ビットモードは使用不可能です。 232 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER 6.1.1 8/16 ビットアップダウンカウンタ / タイマの概要 本ブロックは , イベント入力端子 6 本 , 8 ビットアップ / ダウンカウンタ× 2 本 , 8 ビットリロード / コンペアレジスタ× 2 本と , それらの制御回路から構成されるアッ プダウンカウンタ / タイマです。 ■ 8/16 ビットアップダウンカウンタ / タイマの特徴 • 8 ビットカウントレジスタにより , (0)d ∼ (255)d の範囲でカウント可能 (16 ビット× 1 動作モードでは (0)d ∼ (65535)d の範囲でカウント可能 ) • カウントクロックの選択による 4 種のカウントモード カウントモード - タイマモード - アップ / ダウンカウンタモード - 位相差カウントモード (2 逓倍 ) - 位相差カウントモード (4 逓倍 ) • タイマモード時には , カウントクロックとして内部クロック 2 種類 , 内部回路から の入力を選択可能 カウントクロック (25MHz 動作時 ) - 80ns (12.5MHz:2 分周 ) - 320ns (3.125Hz:8 分周 ) • アップ / ダウンカウントモード時には , 外部端子入力信号の検出エッジを選択可能 - 立上りエッジ検出 - 立下り / 立上りエッジ両エッジ検出 - エッジ検出禁止 • 位相差カウントモードは , モータ等のエンコーダのカウントに適し, エンコーダのA 相 , B 相 , および Z 相出力をそれぞれ入力することで , 高精度で回転角度 , 回転数等 のカウントを容易に行うことが可能 • ZIN 端子は , 2 種の機能を選択可能 ( すべてのモードで有効 ) - カウンタクリア機能 - ゲート機能 • コンペア機能およびリロード機能を有し , それぞれの機能のみで , また組み合わせ ても使用可能で , 両機能を組み合わせて使用することで任意幅でのアップダウンカ ウントを行うことが可能 コンペア / リロード機能 - コンペア機能 ( コンペア時割込み要求出力 ) - コンペア機能 ( コンペア時割込み要求出力およびカウンタクリア ) - リロード機能 ( アンダフロー時割込み要求出力およびリロード ) 233 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER - コンペア / リロード機能 ( コンペア時割込み要求出力およびカウンタクリア , アンダフロー時割込み要求 出力およびリロード ) - コンペア / リロード禁止 • カウント方向フラグにより , 直前のカウント方向を識別可能 • コンペア一致時 , リロード ( アンダフロー) 時またはオーバフロー時 , およびカウン ト方向が変わった場合の割込みの発生を , それぞれ個別に制御可能 ■ 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧は , 以下のとおりです。 31 24 23 RCR1* CCRH0 CCRH1* 16 15 RCR0 CCRL0 CCRL1* 8 7 UDCR1* - 0 UDCR0 CSR0 CSR1* *: MB91F353A/351A/352A/353A は RCR1, UDCR1, CCRH1, CCRL1, CSR1 のレジスタア クセス禁止です。 ● アップダウンカウントレジスタ (UDCR) アップダウンカウントレジスタ (UDCR) のビット構成は , 以下のとおりです。 ビット アドレス : 0000B3H ビット アドレス : 0000B2H 7 6 5 4 3 2 1 D07 D06 D05 D04 D03 D02 D01 15 14 13 12 11 10 9 D15 D14 D13 D12 D11 D10 D09 0 アップダウンカウントレジスタ ch0 D00 (UDCR0) 8 アップダウンカウントレジスタ ch1 D08 (UDCR1) ● リロードコンペアレジスタ (RCR) リロードコンペアレジスタ (RCR) のビット構成は , 以下のとおりです。 ビット アドレス : 0000B1H ビット アドレス : 0000B0H 7 6 5 4 3 2 1 D07 D06 D05 D04 D03 D02 D01 15 14 13 12 11 10 9 D15 D14 D13 D12 D11 D10 D09 0 リロードコンペアレジスタ ch0 D00 (RCR0) 8 リロードコンペアレジスタ ch1 D08 (RCR1) ● カウンタステータスレジスタ (CSR) カウンタステータスレジスタ (CSR) のビット構成は , 以下のとおりです。 ビット 7 アドレス : 0000B7H CSTR 0000BBH 234 6 CITE 5 4 3 2 1 0 カウンタステータスレジスタ ch0,1 UDIE CMPF OVFF UDFF UDF1 UDF0 (CSR0, CSR1) 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER ● カウンタコントロールレジスタ (CCRL) カウンタコントロールレジスタ (CCRL) のビット構成は , 以下のとおりです。 ビット 7 アドレス : 0000B5H 予約 0000B9H 6 5 4 3 2 1 0 カウンタコントロールレジスタ ch0,1 CTUT UCRE RLDE UDCC CGSC CGE1 CGE0 (CCRL0, CCRL1) ● カウンタコントロールレジスタ (CCRH) カウンタコントロールレジスタ (CCRH) のビット構成は , 以下のとおりです。 ビット 15 14 アドレス : 0000B4H M16E CDCF ビット 15 アドレス : 0000B8H 予約 13 CFIE 14 13 CDCF CFIE 12 11 10 9 8 12 11 10 9 8 カウンタコントロールレジスタ ch0 CLKS CMS1 CMS0 CES1 CES0 (CCRH0) カウンタコントロールレジスタ ch1 CLKS CMS1 CMS0 CES1 CES0 (CCRH1) 235 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER ■ 8/16 ビットアップダウンカウンタ / タイマ (ch0) のブロックダイヤグラム 図 6.1-1 に 8/16 ビットアップダウンカウンタ / タイマ (ch0) のブロックダイヤグラムを 示します。 図 6.1-1 8/16 ビットアップダウンカウンタ / タイマ (ch0) のブロックダイヤグラム データバス 8ビット CGE1 ZIN0 CGE0 RCR0(リロード/ コンペアレジスタ 0) CGSC CTUT リロード制御 UCRE RLDE M16E Ch1へ Carry エッジ/レベル検出 UDCC カウンタクリア 8ビット CES1 CES0 CMS1 CMS0 UDCR0(アップ/ ダウンカウントレジスタ 0) CMPF UDFF AIN0 BIN0 アップ/ダウン カウント クロック 選択 カウント クロック CSTR UDF1 UDIE UDF0 プリスケーラ CDCF CITE CLKS CFIE 割込み出力 236 OVFF 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER ■ 8/16 ビットアップダウンカウンタ / タイマ (ch1) のブロックダイヤグラム 図 6.1-2 に 8/16 ビットアップダウンカウンタ / タイマ (ch1) のブロックダイヤグラムを 示します。 図 6.1-2 8/16 ビットアップダウンカウンタ / タイマ (ch1) のブロックダイヤグラム データバス 8ビット CGE1 ZIN1 CGE0 RCR1(リロード/ コンペアレジスタ 1) CGSC CTUT リロード制御 UCRE RLDE エッジ/レベル検出 カウンタクリア UDCC 8ビット CES1 CES0 CMS1 CMS0 Carry AIN1 BIN1 UDCR1(アップ/ ダウンカウントレジスタ 1) CMPF M16E アップ/ダウン カウント クロック カウント クロック 選択 UDFF OVFF UDIE CSTR UDF1 UDF0 CDCF プリスケーラ CITE CLKS CFIE 割込み出力 ( 注意事項 ) MB91F353A/351A/352A/353A には ch1 がありません。 237 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER 8/16 ビットアップダウンカウンタ / タイマのレジス タ 6.1.2 8/16 ビットアップダウンカウンタ / タイマで使用するレジスタの構成および機能に ついて説明します。 ■ CCRH/L ch0 (Counter Control Register High/Low ch0) CCRH/L ch0 (Counter Control Register High/Low ch0) のビット構成は , 以下のとおりで す。 14 ビット 15 アドレス : 0000B4H M16E CDCF R/W 0000B5H R/W 7 予約 R/W 13 CFIE R/W 12 11 10 9 8 CLKS CMS1 CMS0 CES1 CES0 R/W R/W R/W R/W R/W 初期値 00000000B 6 5 4 3 2 1 0 CTUT UCRE RLDE UDCC CGSC CGE1 CGE0 R/W R/W R/W R/W R/W R/W R/W 初期値 00001000B [ ビット 15] M16E:16 ビットモード許可設定ビット 8 ビット× 2 チャネル /16 ビット× 1 チャネル動作モード選択 ( 切換え ) ビットです。 M16E 16 ビットモード許可設定 0 8 ビット× 2 チャネル動作モード ( 初期値 ) 1 16 ビット× 1 チャネル動作モード [ ビット 14] CDCF: カウント方向転換フラグ カウント方向が変わった場合にセットされるフラグです。カウント起動中にカウン ト方向がアップ→ダウン , またはダウン→アップに変わった場合に "1" にセットされ ます。 "0" 書込みでクリアされます。 "1" 書込みは無視され , 本ビットの値は変化しません。 CDCF 方向転換検出 0 方向転換は行われていない ( 初期値 ) 1 方向転換が 1 回以上行われた <注意事項> リセット直後のカウント方向はダウンカウント方向になっています。したがって , リセッ ト直後のアップカウント時は CDCF に "1" がセットされます。 リードモディファイライト系命令における読出し時には "1" が読み出されます。 238 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER [ ビット 13] CFIE: カウント方向転換割込みイネーブルビット CDCF がセットされた場合の , CPU に対しての割込み出力を制御するビットです。カ ウント起動中に一度でもカウント方向が変わった場合に割込みを発生します。 CFIE 方向転換割込み出力 0 方向転換割込み出力禁止 ( 初期値 ) 1 方向転換割込み出力許可 [ ビット 12] CLKS: 内蔵プリスケーラ選択ビット タイマモード選択時に , 内蔵プリスケーラの周波数を選択するビットです。 タイマモードでのみ有効で , このときはダウンカウントのみとなります。 CLKS 選択内部クロック 0 2 マシンサイクル ( 初期値 ) 1 8 マシンサイクル [ ビット 11, 10] CMS1, CMS0: カウントモード選択ビット カウントモードを選択するビットです。 CMS1 CMS0 0 0 タイマモード〔ダウンカウント〕( 初期値 ) 0 1 アップ / ダウンカウントモード 1 0 位相差カウントモード 2 逓倍 1 1 位相差カウントモード 4 逓倍 カウントモード [ ビット 9, 8] CES1, CES0: カウントクロックエッジ選択ビット アップ / ダウンカウントモード時において , 内部回路の入力 , 外部端子 AIN および BIN の検出エッジを選択するビットです。 アップ / ダウンカウントモード以外では , この設定は無効です。 CES1 CES0 0 0 エッジ検出禁止 ( 初期値 ) 0 1 立下りエッジ検出 1 0 立上りエッジ検出 1 1 立上り / 立下り両エッジ検出 選択エッジ [ ビット 7] 予約 : 予約ビット 予約ビットです。必ず "0" を設定してください。 [ ビット 6] CTUT: カウンタライトビット RCR から UDCR へのデータ転送を行います。 このビットに "1" を書き込むと RCR から UDCR にデータが転送されます。 "0" 書込みは無効であり , 読出し値は常に "0" です。 カウント動作中 (CSR の CSTR ビットが "1" のとき ) に本ビットに "1" を書き込まな いでください。 239 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER [ ビット 5] UCRE:UDCR クリアイネーブルビット コンペアによる UDCR のクリアを制御するビットです。 コンペア発生によるクリア以外の UDCR クリア機能 (ZIN 端子によるものなど ) には 影響しません。 UCRE コンペアによるカウンタのクリア 0 カウンタクリア禁止 ( 初期値 ) 1 カウンタクリア許可 [ ビット 4] RLDE: リロードイネーブルビット リロード機能の起動を制御するビットです。リロード機能起動時に UDCR がアンダ フローを発生した場合に RCR の値を UDCR に転送します。 RLDE リロード機能 0 リロード機能禁止 ( 初期値 ) 1 リロード機能許可 [ ビット 3] UDCC:UDCR クリアビット UDCR をクリアするビットです。このビットに "0" を書き込むと UDCR が 0000H に クリアされます。 "1" 書込みは無効であり , 読出し値は常に "1" です。 [ ビット 2] CGSC: カウンタクリア / ゲート選択ビット 外部端子 ZIN の機能を選択するビットです。 CGSC ZIN の機能 0 カウンタクリア機能 ( 初期値 ) 1 ゲート機能 [ ビット 1, 0] CGE1, CGE0: カウンタクリア / ゲートエッジ選択ビット 外部端子 ZIN の検出エッジ / レベルを選択するビットです。 240 CGE1 CGE0 0 0 エッジ検出禁止 ( 初期値 ) レベル検出禁止 ( カウントディセーブル ) 0 1 立下りエッジ "L" レベル 1 0 立上りエッジ "H" レベル 1 1 設定禁止 設定禁止 カウンタクリア機能選択時 ゲート機能選択時 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER ■ CCRH/L ch1 (Counter Control Register High/Low ch1) CCRH/L ch1 (Counter Control Register High/Low ch1) のビット構成は , 以下のとおりで す。 ビット 15 アドレス : 0000B8H 予約 0000B9H R/W 7 予約 R/W 14 CDCF R/W 13 CFIE R/W 12 11 10 9 8 CLKS CMS1 CMS0 CES1 CES0 R/W R/W R/W R/W R/W 初期値 00000000B 6 5 4 3 2 1 0 CTUT UCRE RLDE UDCC CGSC CGE1 CGE0 R/W R/W R/W R/W R/W R/W R/W 初期値 00001000B [ ビット 15] 予約 : 予約ビット 予約ビットです。必ず "0" を設定してください。 [ ビット 14 ∼ 0] 各ビットの詳細は CCRH/L ch0 を参照してください。 ■ CSR0/1 (Counter Status Register 0/1) CSR0/1 (Counter Status Register 0/1) のビット構成は , 以下のとおりです。 7 ビット アドレス : 0000B7H CSTR 0000BBH R/W 6 CITE R/W 5 4 3 2 1 0 UDIE CMPF OVFF UDFF UDF1 UDF0 R/W R/W R/W R/W R R 初期値 00000000B [ ビット 7] CSTR: カウント起動ビット UDCR のカウント動作の起動 / 停止を制御するビットです。 CSTR 動作内容 0 カウント動作停止 ( 初期値 ) 1 カウント動作起動 [ ビット 6] CITE: コンペア割込み出力制御ビット CMPF がセットされた ( コンペアが発生した ) 場合に , CPU への割込み出力を行うか の許可 / 禁止を制御するビットです。 CITE コンペア割込み出力 0 コンペア割込み出力禁止 ( 初期値 ) 1 コンペア割込み出力許可 [ ビット 5] UDIE: オーバフロー / アンダフロー割込み出力制御ビット OVFF/UDFF がセットされた ( オーバフロー/ アンダフローが発生した ) 場合に , CPU への割込み出力を行うかの許可 / 禁止を制御するビットです。 UDIE オーバフロー / アンダフロー割込み出力 0 オーバフロー / アンダフロー割込み出力の禁止 ( 初期値 ) 1 オーバフロー / アンダフロー割込み出力の許可 241 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER [ ビット 4] CMPF: コンペア検出フラグ UDCR の値と RCR の値の比較結果が等しくなったことを示すフラグです。 "0" 書込みのみ可能で , "1" 書込みはできません。 リードモディファイライト系命令における読出し時には "1" が読み出されます。 CMPF フラグ内容 0 比較結果が一致していない ( 初期値 ) 1 比較結果が一致した [ ビット 3] OVFF: オーバフロー検出フラグ オーバフローの発生を示すフラグです。"0" 書込みのみ可能で "1" 書込みはできませ ん。 リードモディファイライト系命令における読出し時には "1" が読み出されます。 OVFF フラグ内容 0 オーバフローなし ( 初期値 ) 1 オーバフローあり [ ビット 2] UDFF: アンダフロー検出フラグ アンダフローの発生を示すフラグです。"0" 書込みのみ可能で "1" 書込みはできませ ん。 リードモディファイライト系命令における読出し時には "1" が読み出されます。 UDFF フラグ内容 0 アンダフローなし ( 初期値 ) 1 アンダフローあり [ ビット 1, 0] UDF1, UDF0: アップダウンフラグ 直前のカウント動作 ( アップ / ダウン ) を示すビットです。 読出しのみ可能で , 書込みはできません。 UDF1 UDF0 242 検出エッジ 0 0 入力なし ( 初期値 ) 0 1 ダウンカウント 1 0 アップカウント 1 1 アップ / ダウン同時発生 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER ■ UDCR0/1 (Up Down Count Register 0/1) UDCR0/1 (Up Down Count Register 0/1) のビット構成は , 以下のとおりです。 ビット 15 アドレス : 0000B2H D15 R 0000B3H 14 D14 R 13 D13 R 12 D12 R 11 D11 R 10 D10 R 9 D09 R 8 D08 R 初期値 00000000B 7 D07 R 6 D06 R 5 D05 R 4 D04 R 3 D03 R 2 D02 R 1 D01 R 0 D00 R 初期値 00000000B 本レジスタは , 8 ビットカウントレジスタです。内部回路からの入力 , 内部プリスケー ラ , または AIN 端子 , BIN 端子の入力によってアップ / ダウンカウント動作を行いま す。 また, 16ビットカウントモードでは, 16ビットカウントレジスタとして動作します。 本レジスタは , 直接書込み動作を行うことができません。本レジスタに書込みを行う場 合は , RCR を介して行う必要があります。本レジスタに書き込みたい値をまず RCR に 書き込み , この後 CCRL レジスタの CTUT ビットに "1" を書き込むことで RCR から本 レジスタに転送されます ( ソフトウェアによるリロード ) 。 本レジスタは , 16 ビットモード起動時には 16 ビット一度に読み出してください。 ■ RCR0/1 (Reload/Compare Register 0/1) RCR0/1 (Reload/Compare Register 0/1) のビット構成は , 以下のとおりです。 ビット 15 アドレス : 0000B0H D15 0000B1H W 14 D14 W 13 D13 W 12 D12 W 11 D11 W 10 D10 W 9 D09 W 8 D08 W 初期値 00000000B 7 D07 W 6 D06 W 5 D05 W 4 D04 W 3 D03 W 2 D02 W 1 D01 W 0 D00 W 初期値 00000000B 本レジスタは , 8 ビットリロード / コンペアレジスタです。本レジスタにより , リロー ド値およびコンペア値を設定します。リロード値とコンペア値は同一であり , リロード 機能およびコンペア機能を起動することで 00H ∼本レジスタ値の間 (16 ビット動作 モード :0000H ∼本レジスタ値 ) でアップ / ダウンカウントが可能になります。 本レジスタは書込みのみ可能で , 読出しはできません。カウント停止中に CCR0/1 レジ スタの CTUT ビットに "1" を書き込むことで , 本レジスタの値を UDCR に転送するこ とが可能です ( ソフトウェアによるリロード ) 。 16 ビットモード (M16E=1) のときは , 本レジスタに 16 ビットで一度に書き込んでくだ さい。 243 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER 6.1.3 8/16 ビットアップダウンカウンタ / タイマの動作説 明 8/16 ビットアップダウンカウンタ / タイマの動作について説明します。 ■ カウントモード選択 本タイマ / カウンタは , 4 種類のカウントモードを有します。これらのカウントモード の選択は , CCR レジスタの CMS1, CMS0 ビットで制御します。図 6.1-1 にカウントモー ド選択を示します。 表 6.1-1 カウントモード選択 CMS1, CMS0 カウントモード 00 B タイマモード〔ダウンカウント〕 01 B アップ / ダウンカウントモード 10 B 位相差カウントモード 2 逓倍 11 B 位相差カウントモード 4 逓倍 (a) タイマモード〔ダウンカウント〕 タイマモードでは , 内部プリスケーラの出力をダウンカウントします。内蔵プリスケー ラについては , CCRH レジスタの CLKS ビットによって 2 マシンサイクル /8 マシンサ イクルの選択が可能です。 (b) アップ / ダウンカウントモード アップダウンカウントモードでは , 外部端子 AIN および BIN の入力をカウントするこ とでアップ / ダウンカウントを行います。AIN 端子の入力はアップカウントを , BIN 端 子の入力はダウンカウントをそれぞれ制御します。 AIN 端子 , BIN 端子の入力はエッジ検出され , CCRH レジスタの CES1, CES0 ビットに よって検出エッジの選択が可能です。図 6.1-2 に , 検出エッジ選択を示します。 表 6.1-2 検出エッジ選択 CES1, CES0 244 検出エッジ 00 B エッジ検出禁止 01 B 立下りエッジ検出 10 B 立上りエッジ検出 11 B 立下り / 立上り両エッジ検出 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER (c) 位相差カウントモード (2 逓倍 /4 逓倍 ) 位相差カウントモードでは , エンコーダの出力信号 A 相 , B 相の位相差をカウントする ため , AIN 端子の入力エッジ検出時に BIN 端子の入力レベルを , BIN 端子の入力エッジ 検出時に AIN 端子の入力レベルを検出し , カウントを行います。 2 逓倍 /4 逓倍モードでは , AIN 端子入力と BIN 端子入力の位相差について , AIN の方 が早い場合にアップカウントを , BIN の方が早い場合にダウンカウントを行います。 2 逓倍モードでは , BIN 端子の立上り / 立下り両方のエッジのタイミングで AIN 端子の 値を検出することでカウントを行います。このとき , 以下の処理を行います。 • BIN 端子の立上りエッジで検出した AIN 端子の値が "H" のとき , アップカウント • BIN 端子の立上りエッジで検出した AIN 端子の値が "L" のとき , ダウンカウント • BIN 端子の立下りエッジで検出した AIN 端子の値が "H" のとき , ダウンカウント • BIN 端子の立下りエッジで検出した AIN 端子の値が "L" のとき , アップカウント 図 6.1-3 に位相差カウントモード (2 逓倍 ) 動作概略を示します。 図 6.1-3 位相差カウントモード (2 逓倍 ) 動作概略 AIN 端子 BIN 端子 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +1 +1 +1 +1 +1 -1 +1 -1 -1 -1 -1 -1 カウント値 0 1 2 3 4 5 4 5 4 3 2 1 0 4 逓倍モードでは , BIN 端子の立上り / 立下り両エッジのタイミングで AIN 端子の値を 検出し , また AIN 端子の立上り / 立下り両方のエッジのタイミングで BIN 端子の値を 検出することでカウントを行います。このとき , 以下の処理を行います。 • BIN 端子の立上りエッジで検出した AIN 端子の値が "H" のとき , アップカウント • BIN 端子の立上りエッジで検出した AIN 端子の値が "L" のとき , ダウンカウント • BIN 端子の立下りエッジで検出した AIN 端子の値が "H" のとき , ダウンカウント • BIN 端子の立下りエッジで検出した AIN 端子の値が "L" のとき , アップカウント • AIN 端子の立上りエッジで検出した BIN 端子の値が "H" のとき , ダウンカウント • AIN 端子の立上りエッジで検出した BIN 端子の値が "L" のとき , アップカウント • AIN 端子の立下りエッジで検出した BIN 端子の値が "H" のとき , アップカウント • AIN 端子の立下りエッジで検出した BIN 端子の値が "L" のとき , ダウンカウント 図 6.1-4 に位相差カウントモード (4 逓倍 ) 動作概略を示します。 図 6.1-4 位相差カウントモード (4 逓倍 ) 動作概略 AIN 端子 ↓ ↑↓ ↑ ↓ BIN 端子 +1 +1+1 カウント値 0 1 2 3 ↑↓ +1 +1 +1+1 4 5 6 7 ↑ ↓ ↑ ↑ ↑ ↑ ↓ ↑ ↓↑ ↓ ↑ ↓↑ +1 8 +1 +1 -1 9 10 9 +1 -1 -1 -1 -1-1 -1 -1 -1-1 10 9 8 7 6 5 4 3 2 1 245 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER エンコーダ出力のカウントの際には A 相を AIN 端子に , B 相を BIN 端子に , Z 相を ZIN 端子に入力することで , 高精度で回転角度や回転数のカウント , 回転方向の検出等が可 能です。 なお , このカウントモード選択時は , CES1, CES0 による検出エッジの選択は無効です。 ■ リロード / コンペア機能 本カウンタでは , リロード機能およびコンペアによるクリア機能を有しています。この 2 つの機能は組み合わせて処理を行うことが可能です。表 6.1-3 に , 設定例を示します。 表 6.1-3 リロード / コンペアによるクリア機能選択の設定例 RLDE, UCRE リロード / コンペア機能 00 B リロード / コンペアによるクリア禁止 ( 初期値 ) 01 B コンペアによるクリア許可 10 B リロード許可 11 B リロード / コンペアによるクリア許可 ● リロード機能起動時 リロード機能起動時は , アンダフロー発生の次のダウンカウントクロックのタイミン グで RCR の値を UDCR に転送します。このとき , UDFF がセットされると共に割込み 要求を発生します。 ダウンカウントを行わないモードでは , 本機能の起動は無効となります。 図 6.1-5 にリロード機能動作概略を示します。 図 6.1-5 リロード機能動作概略 (0FFFFH ) 0FF H リロード、割込み発生 リロード、割込み発生 RCR 00 H 246 アンダフロー アンダフロー 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER ● コンペアによるクリア機能 コンペアによるクリア機能は , タイマモード以外のすべてのモードで使用可能です。コ ンペア機能起動時は , RCR と UDCR の値が一致した場合に , CMPF がセットされると 共に割込み要求を発生します。また , コンペアクリア機能起動時は , その次のアップカ ウントクロックのタイミングで UDCR をクリアします ( ダウンカウント時はクリアさ れません ) 。 アップカウントを行わないモードでは , 本機能の起動は無効となります。 図 6.1-6 にコンペア機能動作概略を示します。 図 6.1-6 コンペア機能動作概略 (0FFFFH ) 0FF H コンペア一致 コンペア一致 RCR 00 H カウンタクリア、割込み発生 カウンタクリア、割込み発生 ■ リロード / コンペア機能起動時の , 任意幅でのアップ / ダウンカウント リロード / コンペア機能起動時は , 任意幅でのアップ / ダウンカウントが可能です。 リロード機能により , アンダフロー時に起動して RCR の値を UDCR に転送します。ま た , コンペア機能により , RCR と UDCR の値が一致した場合に UDCR をクリアします。 この両機能を利用して , 0000H ∼ RCR の値の間でアップ / ダウンカウントを行います。 図 6.1-7 にリロード / コンペア機能同時起動時動作概略を示します。 図 6.1-7 リロード / コンペア機能同時起動時動作概略 0FF H RCR 00 H コンペア一致 カウンタ クリア コンペア一致 カウンタ クリア リロード アンダ フロー リロード リロード アンダ フロー アンダ フロー コンペア一致 カウンタ クリア コンペア一致時またはリロード ( アンダフロー ) 時に CPU に割込みを発生することが できます。 247 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER また , これらの割込み出力のイネーブルは個別に制御可能です。 UDCR に対しクリアを行う場合のタイミングについて , カウント起動中と停止中では 異なります。 カウント動作中のソフトウェアによるリロード (CTUT への "1" 書込み ) は禁止です。 • カウント動作中にクリアのイベントが発生した場合は , すべてカウントクロックに 同期して行われます。 図 6.1-8 に , カウント動作中の UDCR クリアタイミングを示します。 図 6.1-8 カウント動作中の UDCR クリアタイミング 0065H UDCR 0066H 0000H クリアイベント 0001H このクロックに同期する カウントクロック ( 注意事項 ) カウント動作中のアンダフローによるリロードはカウントクロックに同 期して行われます。 • カウント動作中にクリアのイベントが発生した場合で , カウントクロック同期待ち (同期させるためのカウント入力を待っている状態) のままカウントを停止させたと きは , 停止した時点でクリアが行われます。 図 6.1-9 に , カウント停止中の UDCR クリアタイミングを示します。 図 6.1-9 カウント停止中の UDCR クリアタイミング 0065H UDCR 0066H 0000H クリアイベント カウントクロック カウントイネーブル イネーブル(カウント許可) ディセーブル(カウント禁止) • カウント停止中にリロードおよびクリアのイベントが発生した場合は , イベント発 生時点で UDCR のリロードおよびクリアが行われます ( 図は 80H をリロードした場 合)。 図 6.1-10 に, カウント停止中のUCDRリロードおよびクリアタイミングを示します。 図 6.1-10 カウント停止中の UCDR リロードおよびクリアタイミング UDCR リロード/ クリアイベント 248 065H 080H 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER コンペアによるクリアについては , UDCR と RCR の値が一致し , さらにアップカウン トが行われたときにクリアが行われます。UDCR と RCR の値が一致した場合において も , その後ダウンカウントやカウント停止 , また RCR 値を書き換えた後にアップカウ ントが発生した場合はクリアは行われません。 クリア / リロードのタイミングについて , クリアについてはリセット入力以外のすべて のイベントで , またリロードもすべてのイベントにおいて上記タイミングにしたがい ます。 クリアイベントとリロードイベントが同時期に発生した場合はクリアイベントが優先 となります。 ■ UDCR へのデータの書込み UDCR へデータバスから直接データを書き込むことはできません。UDCR に任意の データを書き込む場合は , 以下のような手順で書き込む必要があります。 a. UDCR に書き込むデータを , まず RCR に書き込む (RCR のデータは失われるので注 意)。 b. CCR の CTUT に "1" を書き込むことにより , RCR から UDCR にデータが転送される。 以上の動作は , カウント停止中 (CSR の CSTR ビットが "0" のとき ) に行ってください。 誤って , カウント中に CTUT に "1" を書き込むと , 書き込んだタイミングで , RCR の値 が UDCR に転送されます。 カウンタのクリアについては , 上記以外の方法以外に以下のような方法があります。 • リセット入力によるクリア ( 初期化 ) • ZIN 端子からのエッジ入力によるクリア • CCR の UDCC に "0" を書き込むことによるクリア • コンペア機能によるクリア これらの書込みは , カウント起動 / 停止にかかわらず行うことができます。 ● カウントクリア / ゲート機能 ZIN 端子は CCR レジスタの CGSC ビットによって , カウントクリア機能またはゲート 機能を選択して使用可能です。 カウントクリア機能起動時は , ZIN 端子によりカウンタのクリアを行います。ZIN 端子 のどのエッジ入力でカウントクリアを行うかを CCRL レジスタの CGE1, CGE0 ビット で制御可能です。 ゲート機能起動時は, ZIN端子によりカウントのイネーブル/ディセーブルを行います。 ZIN 端子のどのレベル入力でイネーブルとするかを CCR レジスタの CGE1, CGE0 ビッ トで制御可能です。 本機能は , すべてのモードで有効です。 表 6.1-4 に , ZIN 端子機能選択を示します。 表 6.1-4 ZIN 端子機能選択 CGSC 0 1 ZIN 端子の機能 CGE1, CGE0 カウンタクリア機能時 ゲート機能時 カウンタクリア機能 00B 検出禁止 検出禁止 ゲート機能 01B 立上りエッジ "L" レベル 10B 立下りエッジ "H" レベル 249 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER ● カウント方向フラグ カウント方向フラグ (UDF1, UDF0) は , アップ / ダウンカウント時に , 直前のカウント がアップカウントであったかダウンカウントであったかを示します。AIN, BIN 両端子 の入力から生成されたカウントクロックから判断して , カウントのたびにフラグを書 き換えます。モータの制御等で , 現在の回転方向を知りたい場合等にこのフラグをみる ことで回転方向を判別できます。 表 6.1-5 に , カウント方向フラグを示します。 表 6.1-5 カウント方向フラグ UDF1, UDF0 カウント方向 01B ダウンカウント 10B アップカウント 11B アップ / ダウン同時発生 ( カウント動作は行われない ) ● カウント方向転換フラグ カウント方向転換フラグ (CDCF) は , カウント方向がアップ←→ダウンで変わった場 合にセットされます。また , このフラグがセットされると同時に CPU に対して割込み 要求を発生させることができます。この割込みとカウント方向フラグを参照すること により , カウント方向がどちらからどちらへ変化したかを判断することができます。 ただし , 方向転換の期間が短く , 連続して発生した場合などは , 方向転換後のフラグの 示す方向が元に戻り同一方向となる場合がありますので注意が必要です。 表 6.1-7 に , カウント方向転換フラグを示します。 表 6.1-6 カウント方向転換フラグ CDCF カウント方向転換検出 0 方向転換なし 1 方向転換あり (1 回以上 ) ● コンペア検出フラグ コンペア検出フラグ (CMPF) は , カウント動作中に UDCR の値と RCR の値が等しく なったときにセットされます。カウントアップ / ダウン一致のほか , リロードイベント 発生による一致 , カウント起動時にすでに一致している場合もセットされます。 ● 8 ビット× 2 チャネル , 16 ビット× 1 チャネル動作 このモジュールは , 8 ビットアップダウンカウンタ× 2 チャネル , または , 16 ビットアッ プダウンカウンタ× 1 チャネルとして使用できます。CCRH0 レジスタの M16E ビット に "0" を書き込むことにより , 8 ビット× 2 チャネルモードとなり , "1" を書き込むこと により , 16 ビット× 1 チャネルモードとなります。 16 ビット× 1 チャネルとして動作する場合 , CSR0, CCRL0, CCRH0, レジスタが有効と なり , CSR1, CCRL1, CCRH1 レジスタは使用できません。また入力端子は , AIN0, BIN0, ZIN0 端子が有効となり , AIN1, BIN1, ZIN1 端子は使われません。 250 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER ■ 割込み発生タイミング 表 6.1-7 に割込み発生タイミングを示します。 表 6.1-7 割込み発生タイミング 割込みフラグ フラグセット割込み CDCF ( カウント方向転換フラグ ) カウント方向が変わったカ ウント時に , セットと同時 に割込み発生 CMPF ( コンペア検出フラグ ) アップカウント / ダウンカ ウント / リロード / カウント 起動時に , RCR と UDCR が 一致すると , フラグセット と同時に割込み発生 リロード クリア − − − RCR と UDCR の一致の 次のアップカウントタ イミングで UDCR をク リア ( ダウンカウント時はク リアされません ) カウント "FFFFH" の次の OVFF ( オーバフロー検出フラグ ) カウント "0000H" の次のダ UDFF ( アンダフロー検出フラグ ) カウント "FFFFH" の次 アップカウントタイミング で , フラグセットと同時に 割込み発生 − のカウントタイミング で UDCR をクリア カウント "0000H" の次の ウンカウントタイミングで , カウントタイミングで フラグセットと同時に割込 RCR の値を UDCR に転送 み発生 − RCRはリロード値とコンペア値を兼用しているため, リロードが実行されると, コンペ アフラグが必ずセットされます。 クリア機能を有効にしたダウンカウント実行時 , コンペア一致が発生した後 , アップカ ウントが行われるとクリア発生します。 リードモディファイライト系命令における読出し時には "1" が読み出されます。 UDCR と RCR の値が一致した場合においても , その後ダウンカウントやカウント停止 , また RCR 値を書き換えた後にアップカウントが発生した場合はクリア動作は行われま せん。 <注意事項> カウントリセット直後のカウント方向はダウンカウント方向になっています。したがっ て , リセット直後のアップカウント時は方向転換が行われたことを示す CDCF に "1" が セットされます。 アップダウンカウントレジスタ (UDCR) がフルカウントになった場合, キャリなしでカウ ントを続けます。見かけ上 , アップダウンカウントレジスタがクリアされカウントを続け ることになります。 AIN, BIN, ZIN の最小パルス幅は , 2・T (T: 周辺系クロックマシンサイクル ) です。 251 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER 6.2 U-TIMER U-TIMER の概要 , レジスタの構成 / 機能 , および動作について説明します。 ■ U-TIMER の概要 U-TIMER は , UART のボーレートを発生するための 16 ビットタイマです。チップの動 作周波数と , U-TIMER のリロード値の組合せで任意のボーレートを設定できます。 252 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER 6.2.1 U-TIMER の概要 MB91F355A/355A/354A/F356B/F357B は , U-TIMER を 5 チャネル内蔵しています。 MB91F353A/351A/352A/353A は , U-TIMER を 4 チャネル内蔵しています。 ■ U-TIMER のレジスタ一覧 U-TIMER のレジスタ一覧は , 以下のとおりです。 15 8 7 UTIM 0 (R) UTIMR (W) UTIMC (R/W) ■ U-TIMER のブロックダイヤグラム 図 6.2-1 に , U-TIMER のブロックダイヤグラムを示します。 図 6.2-1 U-TIMER のブロックダイヤグラム 15 0 UTIMR(リロードレジスタ) load 15 0 UTIM(U-TIMERレジスタ) クロック Φ (周辺 系クロック) アンダフロー コントロール f.f. UARTへ 253 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER U-TIMER のレジスタ 6.2.2 U-TIMER で使用するレジスタの構成および機能について説明します。 ■ U-TIMER レジスタ (UTIM) U-TIMER レジスタ (UTIM) のビット構成は , 以下のとおりです。 ( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。 UTIM ch0 アドレス : 0000 0064H 15 14 ch1 アドレス : 0000 006CH b15 b14 ................................... 2 1 0 b2 b1 b0 ch2 アドレス : 0000 0074H R アクセス ch3 アドレス : 0000 00C4H 0 初期値 ch4 アドレス : 0000 00CCH UTIM は , タイマの値を示します。16 ビット転送命令でアクセスしてください。 ■ リロードレジスタ (UTIMR) リロードレジスタ (UTIMR) のビット構成は , 以下のとおりです。 ( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。 UTIMR ch0 アドレス : 0000 0064H 15 14 ch1 アドレス : 0000 006CH b15 b14 ................................... 2 1 0 b2 b1 b0 ch2 アドレス : 0000 0074H W アクセス ch3 アドレス : 0000 00C4H 0 初期値 ch4 アドレス : 0000 00CCH UTIMR は , UTIM がアンダフローしたときに UTIM にリロードされる値を格納するレ ジスタです。 このレジスタは必ず 16 ビット転送命令でアクセスしてください。 <注意事項> UART のモード 2 (CLK 同期モード ) で , U-TIMER をボーレートとして使用する場合 , UTIMR ( リロードレジスタ ) に "0" を設定しないでください。 254 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER ■ U-TIMER コントロールレジスタ (UTIMC) U-TIMER コントロールレジスタ (UTIMC) のビット構成は , 以下のとおりです。 ( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。 UTIMC ch2 アドレス : 0000 0077H 7 UCC1 R/W 6 - 5 - 4 UTIE R/W ch3 アドレス : 0000 00C7H 0 - - 0 ch0 アドレス : 0000 0067H ch1 アドレス : 0000 006FH 3 2 UNDR CLKS R/W R/W 0 1 UTST R/W 0 0 UTCR R/W アクセス 0 1 初期値 ch4 アドレス : 0000 00CFH UTIMC は , U-TIMER の動作を制御します。 このレジスタは , 必ずバイト転送命令でアクセスしてください。 [ ビット 7] UCC1(U-timer Count Control 1) UCC1 ビットは , U-TIMER のカウント方法を制御します。 UCC1 動作 0 通常動作 . α=2n+2 ( 初期値 ) 1 +1 モード α=2n+3 n---UTIMR の設定値 α---UART に対する出力クロックの周期 U-TIMER は , UART に対して通常の 2(n+1) の周期のクロックのほかに奇数分周を設 定できます。 UCC1 を "1" に設定すると 2n+3 の周期を発生します。 設定例 : 1.UTIMR=5, UCC1=0 ──→発生周期 =2n+2=12 サイクル 2.UTIMR=25, UCC1=1 ──→発生周期 =2n+3=53 サイクル 3.UTIMR=60, UCC1=0 ──→発生周期 =2n+2=122 サイクル U-TIMER をインターバルタイマとして使用する場合は , UCC1 の値を "0" に設定して ください。 [ ビット 6, 5](reserved) 予約ビットです。 [ ビット 4] UTIE(U-Timer Interrupt Enable) <注意事項> 本製品では U-TIMER 割込みがないので常に "0" を設定してください。 UTIE は , U-TIMER のアンダフローによる割込み許可ビットです。 UTIE 動 作 0 割込み禁止 ( 初期値 ) 1 許可 255 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER [ ビット 3] UNDR(UNDeR flow flag) UNDR は , アンダフローが発生したことを示すフラグです。UNDR はリセット , また は "0" 書込みによりクリアされます。リードモディファイライト系命令のリード時は , 常に "1" が読み出されます。 また , UNDR に対する "1" 書込みは無効です。 [ ビット 2] CLKS(CLocK Select) <注意事項> 本製品ではこのビットは常に "0" を設定してください。 [ ビット 1] UTST(U-Timer STart) UTST は , U-TIMER の動作許可ビットです。 UTST 動 作 0 停止。動作中でも "0" 書込みで停止します ( 初期値 ) 。 1 動作。動作中に "1" を書き込んでも動作は続行されます。 [ ビット 0] UTCR(U-Timer CleaR) UTCR に "0" を書き込むと U-TIMER は 0000H にクリアされます (f.f. も "0" にクリア )。 常に "1" が読まれます。 <注意事項> • ストップ状態からスタートビット UTST をアサート ( スタート ) すると自動的にリロー ドします。 • ストップ状態からクリアビット UTCR とスタートビット UTST を同時にアサートする と , カウンタを "0" クリアして , 直後のカウントダウンでアンダフローが発生します。 • 動作中にクリアビット UTCR をアサートすると , カウンタも "0" クリアされます。この ため , 出力波形にヒゲ状の短いパルスが出力される場合があり , UART が誤動作する可 能性があります。 出力クロックを使用している場合には , 動作中にクリアビットによるクリアを行わないで ください。 • U-TIMER コントロールレジスタのビット 1 (U-TIMER スタートビット :UTST) および , ビット0 (U-TIMERのクリアビット:UTCR) をタイマ停止状態で同時にアサートすると, クリアした後のカウンタロードのタイミングで同レジスタのビット 3 ( アンダフローフ ラグ :UNDR) がセットします。また , 内部ボーレートクロックは同タイミングで "H" レ ベルになります。 • アンダフローフラグセットタイミングとクリアタイミングが重複した場合には , フラ グセットが優先され , クリア動作は , 無効となります。 • UTIMC(U-TIMer Control register) のビット 4(UTIE) およびビット 2(CLKS) には常に "0" を書き込んでください。 • U-TIMER リロードレジスタへの書込みとリロードのタイミングが重複した場合には , 旧データがカウンタにロードされ , 新データがカウンタにロードされるのは , 次のリ ロードのタイミングとなります。 • タイマクリアとタイマカウント / リロードのタイミングが重複した場合には , タイマク リアが最優先されます。 256 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER U-TIMER の動作説明 6.2.3 U-TIMER の動作について説明します。 ■ ボーレートの計算 UART は , 対応する U-TIMER(U-TIMER0 -> UART0, U-TIMER1 -> UART1, U-TIMER2 -> UART2, U-TIMER3 -> UART3, U-TIMER4 -> UART4) のアンダフローフリップフロップ ( 図 6.2-1 中の f.f.) をボーレート用クロックソースとして使用します。 ● 非同期 ( 調歩同期 ) モード UART は , U-TIMER の出力を 8 分周して使用します。 Φ n … UTIMR (リロード 値) bps = ──────── ……… UCC1=0 時 (2n+2) × 8 Φ … 周辺系マシンクロック周波数 (ギアにより変動) Φ bps = ──────── ……… UCC1=1 時 (2n+3) × 8 最大 bps 周辺系 クロック(CLKP) 25MHz時 1562500bps ● CLK 同期モード Φ bps = ──────── ……… (2n+2) UCC1=0 時 Φ bps = ──────── ……… (2n+3) UCC1=1 時 n … UTIMR (リロード 値) Φ … 周辺系マシンクロック周波数 (ギアにより変動) 最大 bps 周辺系 クロック(CLKP) 25MHz時 12500000bps <注意事項> UART のモード 2 (CLK 同期モード ) で , U-TIMER をボーレートとして使用する場合 , UTIMR ( リロードレジスタ ) に "0" を設定しないでください。 257 第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER 258 第7章 16 ビットフリーランタイマ・ 16 ビットリロードタイマ この章では , 16 ビットフリーランタイマと 16 ビッ トリロードタイマの概要 , レジスタの構成 / 機能 , および動作について説明します。 7.1 16 ビットフリーランタイマ 7.2 16 ビットリロードタイマ 259 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ 7.1 16 ビットフリーランタイマ 16 ビットフリーランタイマの概要 , レジスタの構成 / 機能 , および動作について説明 します。 ■ 16 ビットフリーランタイマの概要 16 ビットフリーランタイマのカウント値はアウトプットコンペア , インプットキャプ チャの基本時間 ( ベースタイマ ) として使用されます。 260 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ 16 ビットフリーランタイマの構造 7.1.1 16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロール・ステータ スレジスタより構成されています。 • カウントクロックは 4 種類から選択可能です。 • カウンタオーバフローにより割込みを発生することができます。 • モード設定により , アウトプットコンペアのコンペアレジスタ 0 の値との一致に よるカウンタの初期化が可能です。 ■ 16 ビットフリーランタイマのレジスタ一覧 16 ビットフリーランタイマのレジスタ一覧は , 以下のとおりです。 15 14 13 12 11 10 9 8 T15 T14 T13 T12 T11 T10 T09 T08 7 6 5 4 3 2 1 0 T07 T06 T05 T04 T03 T02 T01 T00 7 6 5 4 3 2 1 0 ECLK IVF IVFE CLR CLK1 STOP MODE タイマデータレジスタ上位 タイマデータレジスタ下位 (TCDT) タイマコントロールステータス CLK0 レジスタ下位 (TCCS) ■ 16 ビットフリーランタイマのブロックダイヤグラム 図 7.1-1 に , 16 ビットフリーランタイマのブロックダイヤグラムを示します。 図 7.1-1 16 ビットフリーランタイマのブロックダイヤグラム 割込み ECLK IVF IVFE STOP MODE CLR CLK1 CLK0 分周器 φ FRCK Rバス クロック 選択 16ビットフリーランタイマ (TCDT) クロック 内部回路へ(T15~T00) コンパレータ0 261 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ 7.1.2 16 ビットフリーランタイマのレジスタ 16 ビットフリーランタイマで使用するレジスタの構成および機能について説明しま す。 ■ タイマデータレジスタ (TCDT) タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出すことの できるレジスタです。 タイマデータレジスタ (TCDT) のビット構成は , 以下のとおりです。 TCDT アドレス : 0000D4H 15 14 13 12 11 10 9 8 T15 T14 T13 T12 T11 T10 T09 T08 R/W R/W R/W R/W R/W R/W R/W R/W 7 T07 R/W 6 T06 R/W 5 T05 R/W 4 T04 R/W 3 T03 R/W 2 T02 R/W 1 T01 R/W 0 T00 R/W 初期値 0000H カウンタ値は , リセット時に "0000" にクリアされます。このレジスタに書き込むこと でタイマ値を設定できますが , 必ず停止 (STOP=1) 状態で行ってください。このレジス タは , ワードアクセスしてください。 16 ビットフリーランタイマの初期化は次の要因で行われます。 • リセットによる初期化 • コントロール・ステータスレジスタのクリア (CLR) による初期化 • コンペアクリアレジスタ (ch.0のコンペアレジスタ) 値とタイマカウンタ値の一致に よる初期化 ( モード設定が必要です ) ■ タイマコントロールステータスレジスタ (TCCS) タイマコントロールステータスレジスタ (TCCS) のビット構成は , 以下のとおりです。 TCCS bit 7 アドレス : 0000D7H ECLK R/W I 初期値 (0) 6 5 IVF R/W IVFE R/W (0) (0) 4 3 STOP MODE R/W R/W (0) (0) 2 1 0 CLR R/W CLK1 R/W CLK0 R/W (0) (0) (0) [ ビット 7] ECLK 16 ビットフリーランタイマのカウントクロックソースを内部か外部を選択するビッ トです。 本ビットに書込み後すぐにクロックは変更されますのでアウトプットコンペア , イ ンプットキャプチャが停止状態のときに変更してください。 ECLK 262 クロック選択 0 内部クロックソースを選択 ( 初期値 ) 1 外部端子 (FRCK) よりクロックを入力します 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ <注意事項> • 内部クロックを選択した場合は , ビット 1, ビット 0(CLK1, CLK0) にカウントクロック の設定を行ってください。このカウントクロックがベースクロックとなります。また , FRCKよりクロックを入力する場合は, 対応するDDRビットを"0"に設定してください。 • 外部クロックに必要な最低パルス幅は , 2・T (T: 周辺系クロックマシンサイクル ) です。 外部クロックを指定しアウトプットコンペアを使用した場合 , コンペア一致および割 込みは次のクロックで発生します。そのため , コンペア一致出力 , および割込みを発生 させるためには , コンペア一致後最低 "1 クロック " 入力する必要があります。 [ ビット 6] IVF 16 ビットフリーランタイマの割込み要求フラグです。 16ビットフリーランタイマがオーバフローを起こしたとき, またはモード設定により コンペアレジスタ 0 とコンペアマッチしてカウンタクリアされたときに , 本ビットは "1" にセットされます。 割込み要求許可ビット ( ビット 5:IVFE) がセットされていると割込みが発生します。 本ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リー ドモディファイライト系命令では , 常に "1" が読めます。 IVF 割込み要求フラグ 0 割込み要求なし ( 初期値 ) 1 割込み要求あり [ ビット 5] IVFE 16 ビットフリーランタイマの割込み許可ビットです。 本ビットが "1" のとき , 割込みフラグ ( ビット 6:IVF) が "1" セットされると割込みが 発生します。 IVFF 割込みイネーブル 0 割込み禁止 ( 初期値 ) 1 割込み許可 [ ビット 4] STOP 16 ビットフリーランタイマのカウントを停止するためのビットです。 本ビットに "1" 書込み時にタイマのカウント停止します。 本ビットに "0" 書込み時にタイマのカウントを開始します。 STOP カウント動作 0 カウント許可 ( 動作 ) ( 初期値 ) 1 カウント禁止 ( 停止 ) 263 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ <注意事項> 16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。 [ ビット 3] MODE 16 ビットフリーランタイマの初期化条件を設定します。 本ビットが "0" のときは , リセットとクリアビット ( ビット 2:CLR) でカウンタ値を初 期化することができます。 本ビットが "1" のときは , リセットとクリアビット ( ビット 2:CLR) のほかにアウト プットコンペアのコンペアレジスタ0の値との一致によりカウンタ値を初期化するこ とができます。 MODE リセットの初期化 0 リセット , クリアビットによる初期化 ( 初期値 ) 1 リセット , クリアビット , コンペアレジスタ 0 による初期化 <注意事項> カウンタ値の初期化はカウント値の変化点で行われます。 [ ビット 2] CLR 動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。 本ビットに "1" 書込み時にカウンタを "0000H" に初期化します。 本ビットに "0" を書き込んでも意味を持ちません。読出し値は , 常に "0" です。 CLR フラグの意味 0 意味を持ちません ( 初期値 ) 1 カウンタ値を "0000H" に初期化します <注意事項> カウンタ値の初期化は , カウント値の変化点で行われます。タイマ停止中に初期化する場 合は , データレジスタに "0000H" を書き込んでください。 264 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ [ ビット 1, 0] CLK1, CLK0 16 ビットフリーランタイマのカウントクロックを選択するビットです。 本ビットに書込み後 , すぐにクロックは変更されますのでアウトプットコンペア , イ ンプットキャプチャが停止状態のときに変更してください。 CLK1 CLK0 カウント クロック Φ=25MHz Φ=12.5MHz Φ=6.25MHz Φ=3.125MHz 0 0 Φ/4 160 ns 320 ns 640 ns 1.28 µs 0 1 Φ/16 640 ns 1.28 µs 2.56 µs 5.12 µs 1 0 Φ/32 1.28 µs 2.56 µs 5.12 µs 10.24 µs 1 1 Φ/64 2.56 µs 5.12 µs 10.24 µs 20.48 µs Φ =マシンクロック 265 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ 16 ビットフリーランタイマの動作説明 7.1.3 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント を開始します。 このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットインプットキャプ チャの基準時間となります。 ■ 16 ビットフリーランタイマのカウンタクリア カウンタ値は , 次の条件でクリアされます。 • オーバフローが発生したとき • コンペアクリアレジスタ ( アウトプットコンペア Ch.0 のコンペアレジスタ ) 値とコ ンペアマッチしたとき ( モード設定が必要 ) • 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき • タイマ停止中に TCDT に "0000H" を書き込んだとき • リセットをかけたとき 割込みはオーバフローが発生した時 , カウンタの値がコンペアクリアレジスタの値と 一致した時に発生します ( コンペアマッチ割込みは , モード設定が必要です ) 。 図 7.1-2 にオーバフローによるカウンタクリアを , 図 7.1-3 にコンペアクリアレジスタ 値とコンペアマッチしたときのカウンタクリアを示します。 図 7.1-2 オーバフローによるカウンタクリア カウンタ 値 FFFFH BFFFH 7FFFH 3FFFH 0000H リセット 割込み 266 時間 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ 図 7.1-3 コンペアクリアレジスタ値とコンペアマッチしたときのカウンタクリア カウンタ値 FFFFH 一致 BFFFH 一致 7FFFH 3FFFH 0000H 時間 リセット コンペアレジスタ BFFFH 割込み ■ 16 ビットフリーランタイマのクリアタイミング カウンタのクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行 われます。 リセットとソフトウェアでのカウンタクリアはクリア発生とともに行われますが , コ ンペアクリアレジスタ 0 との一致によるカウンタクリアはカウントタイミングに同期 して行われます。 図 7.1-4 に , 16 ビットフリーランタイマのクリアタイミングを示します。 図 7.1-4 16 ビットフリーランタイマのクリアタイミング Φ コンペアクリア レジスタ値 N カウンタクリア カウンタ値 N 0000H 267 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ ■ 16 ビットフリーランタイマのカウントタイミング 16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により カウントアップされます。外部クロック選択時は , 外部クロックの立下りエッジ↓をシ ステムクロックで同期化したのち内部カウントクロックの立下りでカウントされま す。 図 7.1-5 に , 16 ビットフリーランタイマのカウントタイミングを示します。 図 7.1-5 16 ビットフリーランタイマのカウントタイミング Φ 外部クロック入力 内部カウントクロック N カウンタ値 N+1 <注意事項> • 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラグ セットが優先しクリア動作は無効となります。 • タイマコントロールステータスレジスタのビット 2 ( カウンタ初期ビット :CLR) は "1" が書き込まれると , 内部カウンタをクリアするタイミングまで , 値を保持し , そのタイ ミングで自身もクリアします。クリアタイミングと "1" の書込みが重複した場合には , 書込みが優先し , カウンタ初期化ビットは , 次のクリアタイミングまで "1" を保持し続 けます。 • カウンタクリア動作は , 内部カウンタが動作中 ( 内部プリスケーラも動作中 ) のみ有効 となります。停止中にカウンタをクリアする場合は , タイマカウントデータレジスタに 0000H を書き込むようにしてください。 268 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ 7.2 16 ビットリロードタイマ 16 ビットリロードタイマの概要 , レジスタの構成 / 機能 , および動作について説明し ます。 ■ 16 ビットリロードタイマの概要 16 ビットタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジスタ , 内部 カウント , クロック作成用プリスケーラ , およびコントロールレジスタで構成されてい ます。 269 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ 16 ビットリロードタイマの構造 7.2.1 クロックソースとして内部クロック 3 種類 ( マシンクロックの 2 / 8 / 32 分周 , ただ し , ch3 のみ 64/128 分周まで選択可能 ) , 外部イベントから選択できます。 • 割込みによる DMA 転送の起動が可能です。 • 本タイマを 4 チャネル内蔵しています。 • MB91F353A/351A/352A/353A にはタイマ出力 (TOT0 ∼ TOT3) はありません。 ■ 16 ビットリロードタイマのレジスタ一覧 16 ビットリロードタイマのレジスタ一覧は , 以下のとおりです。 15 14 13 12 11 10 9 8 - - 予約 CSL2 CSL1 CSL0 予約 予約 (ch3 のみ ) 7 6 5 4 3 2 1 0 予約 - OUTL RELD INTE UF CNTE TRG 15 コントロールステータスレジスタ (TMCSR) 0 16 ビットタイマレジスタ (TMR) 15 0 16 ビットリロードレジスタ (TMRLR) 270 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ ■ 16 ビットリロードタイマのブロックダイヤグラム 図 7.2-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。 図 7.2-1 16 ビットリロードタイマのブロックダイヤグラム 16 16ビットリロードレジスタ (TMRLR) 7 リロード 16 16ビットダウンカウンタ (TMR) RELD UF OUTL OUT CTL. カウントイネーブル R-bus CSL2 クロックセレクタ 3 リトリガ INTE UF CSL1 CNTE CSL0 TRG EXCK 外部タイマ出力 (TOT0 to TOT3) IN CTL. T0E0 to T0E3 φ φ − − φ φ φ − − − IRQ PFRK内のビット プリスケーラ クリア (ch.3のみ) マシンクロック入力 ( 注意事項 ) MB91F353A/351A/352A/353A は外部タイマ出力 (TOT0 ∼ TOT3) がありません。 271 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ 7.2.2 16 ビットリロードタイマのレジスタ 16 ビットリロードタイマで使用するレジスタの構成および機能について説明しま す。 ■ コントロールステータスレジスタ (TMCSR) コントロールステータスレジスタ (TMCSR) のビット構成は , 以下のとおりです。 TMCSR アドレス : ch0: 00004EH ch1: 000056H ch2: 00005EH ch3: 0000AEH 15 14 - - 7 13 12 11 10 9 8 初期値 ( 予約 ) CSL2 CSL1 CSL0 予約 予約 ----0000 00000000B - (R/W) R/W R/W R/W R/W R/W 6 5 4 3 2 1 0 予約 - OUTL RELD INTE UF CNTE TRG R/W R R/W R/W R/W R/W R/W R/W 16 ビットタイマの動作モードおよび割込みの制御をします。 UF, CNTE, TRG ビット以外のビットの書換えは , CNTE=0 のときに行うようにしてく ださい。 同時書込みは可能です。 [ ビット 13] 予約 予約ビットです。必ず "0" を設定してください。 なお , ch0, ch1, ch2, はこのビットが無く , ch3 のみにあります。 [ ビット 12, 11, 10] CSL2, CSL1, CSL0(Conut source SeLect) カウントソースセレクトビットです。カウントソースは , 内部クロックと外部イベン トを選択できます。表 7.2-1 に , 選択可能なカウントソースを示します。 また外部イベントをカウントソースに設定した場合のカウント有効エッジは MOD1, MOD0 ビットにより設定されます。 リロードタイマ (ch0 ∼ ch2) には CSL2 レジスタは存在しません。ch3 のみ CSL2 レジ スタが存在し 64/128 分周まで選択可能です。 表 7.2-1 CSL ビット設定カウントソース CSL2 CSL1 CSL0 0 0 0 内部クロック φ/21 (ch0 ∼ ch3) 0 0 1 内部クロック φ/23 (ch0 ∼ ch3) 0 1 0 内部クロック φ/25 (ch0 ∼ ch3) 0 1 1 設定禁止 (ch0 ∼ ch3) 1 0 1 内部クロック φ/26 (ch3 のみ ) 1 1 0 内部クロック φ/27(ch3 のみ ) カウントソース (φ: マシンクロック ) ただし , 表に記載されていない設定は禁止です。また , ch0, ch1, ch2 には CSL2 はあり ません。 272 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ [ ビット 9, 8, 7] 予約 予約ビットです。必ず "0" を設定してください。 [ ビット 6] (reserved) 未使用ビットです。読出し時に常に "0" が読めます。 [ ビット 5] OUTL: 外部タイマ出力レベルを設定するビットです。本ビットが "0" のときと , "1" のとき では出力レベルが逆になります。 表 7.2-2 に , TOEx, OUTL, RELD の設定方法を示します。 表 7.2-2 RTIM-5 TOEx, OUTL, RELD の設定方法 TOEx OUTL RELD 0 X X 出力禁止 1 0 0 カウント中 "H" の矩形波 1 1 0 カウント中 "L" の矩形波 1 0 1 カウントスタート時 "L" のトグル出力 1 1 1 カウントスタート時 "H" のトグル出力 出力波形 表中の "X" は , 任意の値を示します。 TOEx は PFR (Port Function Register) 中の TOE0 ∼ 3 を示します。 [ ビット 4] RELD: リロード許可ビットです。"1" のときリロードモードになり , カウンタの値が 0000H → FFFFH へのアンダフローと同時にリロードレジスタの内容をカウンタへロードしてカ ウント動作を続けます。 "0" のときワンショットモードになり , カウンタの値が 0000H → FFFFH へのアンダフ ローによりカウント動作を停止します。 [ ビット 3] INTE: 割込み要求許可ビットです。"1" のとき , UF ビットが "1" になると割込み要求を発生 します。"0" のときは , 割込み要求を発生しません。 [ ビット 2] UF: タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へのアンダフローに より "1" にセットされます。"0" の書込みによってクリアされます。 このビットへの "1" 書込みは , 意味がありません。 リードモディファイライト系命令における読出し時には , "1" が読み出されます。 [ ビット 1] CNTE: タイマのカウントイネーブルビットです。このビットに "1" を書き込むと , 起動トリ ガ待ち状態になります。"0" 書込みによりカウント動作は停止します。 [ ビット 0] TRG: ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。 "0" 書込み動作は意味を持ちません。読出し値は , 常に "0" です。 このレジスタによるトリガ入力は , CNTE="1" のときのみ有効となります。 CNTE="0" のときには , 何も起こりません。 273 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ ■ 16 ビットタイマレジスタ (TMR) 16 ビットタイマレジスタ (TMR) のビット構成は , 以下のとおりです。 TMR 15 アドレス : ch0: 00004AH ch1: 000052H R ch2: 00005AH ch3: 0000AAH 0 初期値 XXXXH R R R R R R R 16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定で す。 このレジスタの読出しは , 必ず 16 ビットデータ転送命令で行ってください。 ■ 16 ビットリロードレジスタ (TMRLR) 16 ビットリロードレジスタ (TMRLR) のビット構成は , 以下のとおりです。 TMRLR 15 アドレス : ch0: 000048H ch1: 000050H W ch2: 000058H ch3: 0000A8H 0 初期値 XXXXH W W W W W W W 16 ビットリロードレジスタは , カウントの初期値を保持しておくレジスタです。 初期値は不定です。このレジスタへの書込みは , 必ず 16 ビットデータ転送命令で行っ てください。 274 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ 7.2.3 16 ビットリロードレジスタの動作説明 16 ビットリロードレジスタの動作について説明します。 ■ クロック動作 クロックの分周クロックでタイマを動作させる場合 , カウントソースとしてマシンク ロックの 2/8/32 分周のクロックから選択することができます ( ただし , ch3 のみ 64・128 分周のクロックまで選択可能です ) 。 カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ ジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。 TRG ビットによるトリガ入力は , タイマが起動状態のとき (CNTE="1") 動作モードにか かわらず常に有効です。 図 7.2-2 にカウンタの起動および動作を示します。 カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ ロードされるまでに , T (T: 周辺系クロックマシンサイクル ) の時間がかかります。 図 7.2-2 カウンタの起動および動作 カウントクロック リロードデータ カウンタ -1 -1 -1 データロード CNTE(ビット) TRG(ビット) T 275 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ ■ アンダフロー動作 カウンタの値が 0000H から FFFFH になるときをアンダフローとしています。したがっ て , 〔リロードレジスタの設定値+ 1〕カウントでアンダフローが発生します。 アンダフロー発生時コントロールレジスタの RELD ビットが "1" のときリロードレジ スタの内容をカウンタへロードしてカウント動作を継続します。RELD ビットが "0" の ときカウンタは , FFFFH で停止します。 アンダフローによりコントロールレジスタの UF ビットがセットされ , INTE ビットが "1" のとき割込み要求を発生します。 図 7.2-3 にアンダフロー動作を示します。 図 7.2-3 アンダフロー動作 カウントクロック カウンタ 0000 H リロードデータ データロード アンダフローセット [RELD=1] カウントクロック カウンタ 0000 H アンダフローセット [RELD=0] 276 FFFF H -1 -1 -1 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ ■ 出力端子機能 TOT(0-3) 出力端子は , リロードモード時はアンダフローにより反転するトグル出力と して , ワンショットモード時はカウント中を示すパルス出力として機能します。出力極 性はレジスタの OUTL ビットにより設定できます。OUTL="0" のときトグル出力は , 初 期値が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OTUL="1" に すると出力波形は , 反転します。 ( 注意事項 ) MB91F353A/351A/352A/353A には TOT(0-3) 出力機能がありません。 図 7.2-4 と図 7.2-5 に , 出力端子機能を示します。 図 7.2-4 出力端子機能 (1) カウント開始 アンダフロー OUTL=1 のときは反転 TOT(0-3) CNTE 汎用ポート 起動トリガ [ RE LD=1 ,OUTL=0 ] 図 7.2-5 出力端子機能 (2) カウント開始 アンダフロー OUTL=1 で反転 TOT(0-3) CNTE 汎用ポート 起動トリガ 起動トリガ待ち状態 [ RE LD=0 ,OUTL=0 ] 277 第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ ■ カウンタの動作状態 カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号に よって決まっています。 設定可能な状態として CNTE="0", WAIT="1" の停止状態 (STOP 状態 ) , CNTE="1", WAIT="1" の起動トリガ待ち状態 (WAIT 状態 ) , CNTE= "1", WAIT= "0" の動作状態 (RUN 状態 ) があります。 図 7.2-6 に各状態の遷移を示します。 図 7.2-6 カウンタ状態遷移 リセ ット ハードウェアによる状態遷移 レジスタアクセスによる状態遷移 STOP ST OP CNTE=0,WAIT=1 カウンタ:停止時の値を保持 リセット直後は不定 CNTE="1" TRG="0" WAIT WA CNTE="1" TRG="1" CNTE=1,WAIT=1 RUN カウンタ:停止時の値を保持 リセット直後リロードする までは不定 TRG="1" LOAD RELD・UF CNTE=1,WAIT=0 カウンタ:動作 T RG="1" CNTE=1,WAIT=0 リロードレジスタの内容を カウンタへロード RELD・UF ロード終了 ■ その他 リロードタイマのチャネル 2 の TOT2 出力は , LSI 内部で A/D コンバータに接続されて います。したがって , リロードレジスタに設定された周期で A/D 変換を起動すること が可能です。 <注意事項> • 内部プリスケーラは , コントロールステータスレジスタのビット 1( タイマ許可 :CNTE) が "1" に設定されている状態でトリガがかけられることにより動作可能になります。 • 割込み要求フラグセットタイミングとクリアタイミングが重複した場合にはフラグ セットが優先し , クリア動作は無効になります。 • 16 ビットタイマリロードレジスタへの書込みと , リロードのタイミングが重なった場 合には , 旧データがカウンタにロードされ新データがカウンタにロードされるのは , 次 のリロードのときになります。 • 16 ビットタイマレジスタはロードとカウントのタイミングが重複した場合には , ロー ド ( リロード ) 動作の方が優先されます。 278 第8章 PPG タイマ この章では , PPG(Programable Pulse Generator) タイマの概要 , レジスタの構成 / 機能 , および動作 について説明します。 8.1 PPG タイマの概要 8.2 PPG タイマのレジスタ 8.3 PPG タイマの動作説明 279 第 8 章 PPG タイマ 8.1 PPG タイマの概要 PPG(Programable Pulse Generator) は , 精度の高い PWM 波形を効率良く出力す ることができます。 MB91F355A/355A/354A/F356B/F357B は , PPG タイマを 6 チャネル内蔵していま す。MB91F353A/351A/352A/353A は , PPG タイマを 3 チャネル内蔵しています。 ■ PPG タイマの特長 • 各チャネルは , 16 ビットダウンカウンタ , 周期設定用バッファ付き 16 ビットデータ レジスタ , デューティ設定用バッファ付き 16 ビットコンペアレジスタ , 端子制御部 から構成されます。 • 16 ビットダウンカウンタのカウントクロックは , 以下の 4 種類から選択が可能です。 - 周辺系クロック - φ - φ/4 - φ/16 - φ/64 • カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化することができます。 • チャネルごとに PPG 出力 (PPG0 ∼ PPG5) があります。 ( 注意事項 ) MB91F353A/351A/352A/353A は PPG 出力 (PPG0, 2, 4) の 3 チャネルあ ります。PPG1, 3, 5 はありません。 • レジスタ概要 - 周期設定レジスタ : バッファ付き , リロード用データレジスタ バッファからの転送は起動トリガ検出およびカウンタボローにより行います。 カウンタボローにより PPG 出力は反転します。 - デューティ設定レジスタ : バッファ付き , コンペアレジスタ 本レジスタ値とカウンタ値一致により PPG 出力は反転します。 • 端子制御概要 - デューティ一致で , "1" にセット ( 優先 ) - カウンタボローで , "0" にリセット - 出力値固定モード : オール "L" ( または "H") を簡単に出力できます。 - 極性指定可能 • 割込み要求は , 以下の組合せから選択して発生することができます。 - 本タイマ起動 ( ソフトトリガ もしくはトリガ入力 ) - カウンタボロー発生 ( 周期一致 ) - デューティ一致発生 - カウンタボロー発生 ( 周期一致 ) または , デューティ一致発生 • ソフトウェア , またはほかのインターバルタイマで複数チャネルの同時起動が設定 できます。また , 動作中の再起動も設定可能です。 280 第 8 章 PPG タイマ ■ PPG タイマのレジスタ一覧 図 8.1-1 に , PPG タイマのレジスタ一覧を示します。 図 8.1-1 PPG タイマのレジスタ一覧 15 アドレス 00000118H GCN10 0 Access R/W ジェネラルコントロールレジスタ 10 0000011BH GCN20 R/W ジェネラルコントロールレジスタ 20 00000120H PTMR0 R ch0 PPG タイマレジスタ 00000122H PCSR0 W ch0 PPG 周期設定レジスタ 00000124H PDUT0 W ch0 PPG デューティ設定レジスタ 00000126H PCNH0 PCNL0 R/W ch0 コントロールステータスレジスタ 00000128H PTMR1 R ch1 PPG タイマレジスタ 0000012AH PCSR1 W ch1 PPG 周期設定レジスタ 0000012CH PDUT1 W ch1 PPG デューティ設定レジスタ 0000012EH PCNH1 PCNL1 R/W ch1 コントロールステータスレジスタ 00000130H PTMR2 R ch2 PPG タイマレジスタ 00000132H PCSR2 W ch2 PPG 周期設定レジスタ 00000134H PDUT2 W ch2 PPG デューティ設定レジスタ 00000136H PCNH2 PCNL2 R/W ch2 コントロールステータスレジスタ 00000138H PTMR3 R ch3 PPG タイマレジスタ 0000013AH PCSR3 W ch3 PPG 周期設定レジスタ 0000013CH PDUT3 W ch3 PPG デューティ設定レジスタ 0000013EH PCNH3 PCNL3 R/W ch3 コントロールステータスレジスタ 00000140H PTMR4 R ch4 PPG タイマレジスタ 00000142H PCSR4 W ch4 PPG 周期設定レジスタ 00000144H PDUT4 W ch4 PPG デューティ設定レジスタ 00000146H PCNH4 PCNL4 R/W ch4 コントロールステータスレジスタ 00000148H PTMR5 R ch5 PPG タイマレジスタ 0000014AH PCSR5 W ch5 PPG 周期設定レジスタ 0000014CH PDUT5 W ch5 PPG デューティ設定レジスタ 0000014EH PCNH5 PCNL5 R/W ch5 コントロールステータスレジスタ 281 第 8 章 PPG タイマ ■ PPG タイマのブロックダイヤグラム ( 全体構成 , 1 チャネル分 ) 図 8.1-2 に , PPG タイマのブロックダイヤグラム ( 全体構成 ) を示します。 図 8.1-2 PPG タイマのブロックダイヤグラム ( 全体構成 ) 16ビットリロード タイマ ch0 TRG 入力 16ビットリロード タイマ ch1 ジェネラル コントロール レジスタ 10 (要因選択) ジェネラル コントロール レジスタ 20 外部 TRG0-3 PPG0 PPG タイマ ch0 TRG 入力 PPG1 PPG タイマ ch1 TRG 入力 PPG2 PPG タイマ 4 ch2 TRG 入力 PPG3 PPG タイマ ch3 TRG 入力 外部 TRG4 PPG4 PPG タイマ ch4 TRG 入力 外部 TRG5 PPG5 PPG タイマ ch5 ( 注意事項 ) MB91F353A/351A/352A/353A には PPG1, PPG3, PPG5 がありません。外部 TRG5 もありません。 図 8.1-3 に , PPG タイマのブロックダイヤグラム (1 チャネル分 ) を示します。 図 8.1-3 PPG タイマのブロックダイヤグラム (1 チャネル分 ) PCRS PDUT プリスケーラ Comp 1/1 1/4 1/16 1/64 CK ロード 16ビット ダウンカウンタ スタート ボロー PPG マスク PPG 出力 S Q R 周辺系クロック 反転ビット TRG 入力 エッジ検出 ソフトトリガ 282 割込選択 イネーブル IRQ 第 8 章 PPG タイマ 8.2 PPG タイマのレジスタ PPG タイマで使用するレジスタの構成および機能について説明します。 ■ PPG タイマのレジスタの概要 PPG タイマには , 以下の 6 種類のレジスタがあります。 • コントロールステータスレジスタ • PCSR (PPG 周期設定レジスタ ) • PDUT (PPG デューティ設定レジスタ ) • PTMR (PPG タイマレジスタ ) • ジェネラルコントロールレジスタ 10 • ジェネラルコントロールレジスタ 20 283 第 8 章 PPG タイマ 8.2.1 コントロールステータスレジスタ (PCNH/PCNL) MB91F353A/351A/352A/353A では , コントロールステータスレジスタ ch1, ch3, ch5 の設定は無効です。 ■ コントロールステータスレジスタの構成 コントロールステータスレジスタの構成は , 以下のとおりです。 PCNH 14 13 12 ビット 15 アドレス : ch0 000126H CNTE STGR MDSE RTRG R/W R/W R/W ch1 00012EH R/W ch2 000136H 0 0 0 0 ch3 00013EH X X ○ ○ ch4 000146H ch5 00014EH 11 CKS1 R/W 0 X 10 9 CKS0 PGMS R/W R/W 0 X 0 ○ 8 - ←属性 ←初期値 ← 動作中の書換 PCNL 7 ビット アドレス : ch0 000127H EGS1 ch1 00012FH R/W ch2 000137H 0 ch3 00013EH X ch4 000147H ch5 00014FH 6 5 4 3 2 1 EGS0 R/W IREN R/W IRQF R/W IRS1 R/W IRS0 R/W - 0 0 X 0 0 0 0 X 0 ←初期値 ○ ○ X X - X ←動作中の書換 OSEL R/W ←属性 [ ビット 15] CNTE: タイマ許可ビット 16 ビットダウンカウンタの動作を許可するビットです。 値 内 容 0 停止 ( 初期値 ) 1 許可 [ ビット 14] STGR: ソフトウェアトリガビット このビットに "1" を書き込むことによりソフトウェアトリガが掛かります。 STGR ビットの読出し値は , 常に "0" です。 [ ビット 13] MDSE: モード選択ビット 連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択し ます。 値 284 内 容 0 PWM 動作 ( 初期値 ) 1 ワンショット動作 第 8 章 PPG タイマ [ ビット 12] RTRG: 再起動許可ビット ソフトウェアトリガ , またはトリガ入力による再起動を許可するビットです。 値 内 容 0 再起動禁止 ( 初期値 ) 1 再起動許可 [ ビット 11, 10] CKS1, CKS0: カウンタクロック選択ビット 16 ビットダウンカウンタのカウントクロックを選択します。 CKS1 CKS0 0 0 Φ ( 初期値 ) 0 1 Φ/4 1 0 Φ/16 1 1 Φ/64 周期 Φ: 周辺系マシンクロック [ ビット 9] PGMS:PPG 出力マスク選択ビット このビットに "1" を書き込むことによりモード設定 , 周期設定値 , デューティ設定値 に関わらず PPG 出力を "0" または , "1" にマスクすることができます。 表 8.2-1 に , PGMS に "1" 書込み時の PPG 出力を示します。 表 8.2-1 PGMS に "1" 書込み時の PPG 出力 極性 PPG 出力 通常極性 "L" 出力 反転極性 "H" 出力 通常極性時にオール "H" または , 反転極性時にオール "L" を出力したい場合は , 周期 設定レジスタとデューティ設定レジスタに同値をライトすれば上記マスク値の反転 を出力することができます。 [ ビット 8] 未使用ビットです。 [ ビット 7, 6] EGS1, EGS0: トリガ入力エッジ選択ビット ジェネラルコントロールレジスタ 1 で選んだ起動要因の有効エッジを選択します。 どのモードを選択していてもソフトトリガのビットに"1"を書き込むとソフトトリガ は有効になります。 EGS1 EGS0 0 0 無効 ( 初期値 ) 0 1 立上りエッジ 1 0 立下りエッジ 1 1 両エッジ エッジ選択 285 第 8 章 PPG タイマ [ ビット 5] IREN: 割込み要求許可ビット 値 内 容 0 禁止 ( 初期値 ) 1 許可 [ ビット 4] IRQF: 割込み要求フラグ ビット 5 IREN が許可されていてビット 3, 2 IRS1, IRS0 にて選択した割込み要因が発 生すると , 本ビットがセットされ CPU に割込み要求を発生します。 本ビットは , "0" 書込みによりクリアされます。 "1" を書き込んでもビット値は変化しません。 リードモディファイライト系命令におけるリード値は, ビット値に関わらず"1"です。 [ ビット 3, 2] IRS1, IRS0: 割込み要因選択ビット ビット 4IRQF をセットする要因を選択します。 IRS1 IRS0 0 0 ソフトウェアトリガ , またはトリガ入力あり ( 初期値 ) 0 1 カウンタボロー発生 ( 周期一致 ) 1 0 デューティ一致発生 1 1 カウンタボロー発生 ( 周期一致 ) , またはデューティ一致発生 割込み要因 [ ビット 1](reserved) 未使用ビットです。 [ ビット 0] OSEL: PPG 出力極性指定ビット PPG 出力の極性を設定します。 ビット 9PGMS との組合せで , 以下のようになります。 286 PGMS OSEL 0 0 通常極性 ( 初期値 ) 0 1 反転極性 1 0 出力 "L" 固定 1 1 出力 "H" 固定 PPG 出力 極性 リセット後 通常極性 "L" 出力 反転極性 "H" 出力 デューティ一致 カウンタボロー 第 8 章 PPG タイマ PPG 周期設定レジスタ (PCSR) 8.2.2 PPG 周期設定レジスタ (PCSR) は , 周期を設定するためのバッファ付きレジスタです。 MB91F353A/351A/352A/353A では , PPG 周期設定レジスタ ch1, ch3, ch5 の設定は無 効です。 ■ PPG 周期設定レジスタ (PCSR) の構成 PPG 周期設定レジスタ (PCSR) の構成は , 以下のとおりです。 PCSR ビット アドレス : ch0 000122H ch1 00012AH ch2 000132H ch3 00013AH ch4 000142H ch5 00014AH 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 属性→ W 初期値→不定 バッファからの転送は , カウンタボローで行われます。 <注意事項> • 周期設定レジスタの初期設定時 , および書換え時は , 周期設定レジスタの書込み後 , 必 ずデューティ設定レジスタへの書込み動作を行ってください。 • 本レジスタは , 16 ビットデータでアクセスしてください。 287 第 8 章 PPG タイマ PPG デューティ設定レジスタ (PDUT) 8.2.3 PPG デューティ設定レジスタ (PDUT) は , デューティを設定するためのバッファ付 きレジスタです。 MB91F353A/351A/352A/353A では , PPG デューティ設定レジスタ ch1, ch3, ch5 の設定は無効です。 ■ PPG デューティ設定レジスタ (PDUT) の構成 PPG デューティ設定レジスタ (PDUT) の構成は , 以下のとおりです。 PDUT ビット アドレス : ch0 000124H ch1 00012CH ch2 000134H ch3 00013CH ch4 000144H ch5 00014CH 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 属性→ W 初期値→不定 バッファからの転送は , カウンタボローで行われます。 周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に オール "H" を , 反転極性時にオール "L" を出力します。 <注意事項> • PCSR < PDUT となるような値を設定しないでください。 PPG 出力は不定となります。 • 本レジスタは , 16 ビットデータでアクセスしてください。 288 第 8 章 PPG タイマ PPG タイマレジスタ (PTMR) 8.2.4 PPG タイマレジスタ (PTMR) は , 16 ビットダウンカウンタの値を読み出すことがで きます。MB91F353A/351A/352A/353A では , PPG タイマレジスタ ch1, ch3, ch5 の設定は無効です。 ■ PPG タイマレジスタ (PTMR) の構成 PPG タイマレジスタ (PTMR) の構成は , 以下のとおりです。 PTMR ビット アドレス : ch0 000120H ch1 000128H ch2 000130H ch3 000138H ch4 000140H ch5 000148H 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 属性→ R 初期値→ FFFFH <注意事項> 本レジスタは , 16 ビットデータでアクセスしてください。 289 第 8 章 PPG タイマ ジェネラルコントロールレジスタ 10 (GCN10) 8.2.5 ジェネラルコントロールレジスタ 10 は , PPG タイマのトリガ入力の要因を選択する レジスタです。 ■ ジェネラルコントロールレジスタ 10 の構成 ジェネラルコントロールレジスタ 10 の構成は , 以下のとおりです。 GCN10 ビット アドレス: 000118H 15 14 13 12 11 10 9 8 TSEL33:30 TSEL23:20 R/W R/W R/W R/W R/W R/W 0 0 1 1 0 0 R/W R/W 1 0 ←属性 ←初期値 ビット 7 6 5 4 3 2 1 0 TSEL13:10 TSEL03:00 R/W R/W R/W R/W R/W R/W R/W R/W ←属性 0 0 0 1 0 0 0 0 ←初期値 PPG ch4, 5 については本レジスタに対応する機能はありません。 [ ビット 15 ∼ 12] TSEL33 ∼ TSEL30:ch3 トリガ入力選択ビット ( 注意事項 ) MB91F353A/351A/352A/353A は ch3 トリガ入力選択ビットの指定は無 効です。 TSEL33-30 290 ch3 トリガ入力 0 0 0 0 GCN2 の EN0 ビット 0 0 0 1 GCN2 の EN1 ビット 0 0 1 0 GCN2 の EN2 ビット 0 0 1 1 GCN2 の EN3 ビット ( 初期値 ) 0 1 0 0 16 ビットリロードタイマ ch0 0 1 0 1 16 ビットリロードタイマ ch1 0 1 1 X 設定禁止 1 0 0 0 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 X X 設定禁止 第 8 章 PPG タイマ [ ビット 11 ∼ 8] TSEL23 ∼ TSEL20:ch2 トリガ入力選択ビット TSEL23-20 ch2 トリガ入力 0 0 0 0 GCN2 の EN0 ビット 0 0 0 1 GCN2 の EN1 ビット 0 0 1 0 GCN2 の EN2 ビット ( 初期値 ) 0 0 1 1 GCN2 の EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch0 0 1 0 1 16 ビットリロードタイマ ch1 0 1 1 0 1 0 X 0 設定禁止 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 X X 設定禁止 [ ビット 7 ∼ 4] TSEL13 ∼ TSEL10:ch1 トリガ入力選択ビット TSEL13-10 0 0 0 ch1 トリガ入力 0 GCN2 の EN0 ビット 0 0 0 1 GCN2 の EN1 ビット ( 初期値 ) 0 0 1 0 GCN2 の EN2 ビット 0 0 1 1 GCN2 の EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch0 0 1 0 1 16 ビットリロードタイマ ch1 0 1 1 0 1 0 X 0 設定禁止 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 X X 設定禁止 ( 注意事項 ) MB91F353A/351A/352A/353A は ch1 トリガ入力選択ビットの指定は無効で す。 [ ビット 3 ∼ 0] TSEL03 ∼ TSEL00:ch0 トリガ入力選択ビット TSEL03-00 ch0 トリガ入力 0 0 0 0 GCN2 の EN0 ビット ( 初期値 ) 0 0 0 1 GCN2 の EN1 ビット 0 0 1 0 GCN2 の EN2 ビット 0 0 1 1 GCN2 の EN3 ビット 0 1 0 0 16 ビットリロードタイマ ch0 0 1 0 1 16 ビットリロードタイマ ch1 0 1 1 0 1 0 X 0 設定禁止 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 X X 設定禁止 291 第 8 章 PPG タイマ ジェネラルコントロールレジスタ 20 (GCN20) 8.2.6 ジェネラルコントロールレジスタ 20 は , ソフトウェアによって , 起動トリガを発生 させるためのレジスタです。 ■ ジェネラルコントロールレジスタ 20 の構成 ジェネラルコントロールレジスタ 20 の構成は , 以下のとおりです。 GCN20 ビット アドレス : 00011BH 7 6 5 4 3 2 1 0 - - - - EN3 EN2 EN1 EN0 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 ← 属性 ←初期値 PPG ch4, 5 については本レジスタに対応する機能はありません。 GCN10 で本レジスタの EN ビットを選択した場合 , レジスタの値がそのまま PPG タイ マのトリガ入力に伝わります。 コントロールステータスレジスタの EGS1, EGS0 ビットで選択したエッジをソフト ウェアで発生させることにより , 複数チャネルの PPG タイマを同時に起動することが できます。 <注意事項> 本ビットのビット 7 ∼ビット 4 には , 必ず "0" を設定してください。 292 第 8 章 PPG タイマ 8.3 PPG タイマの動作説明 PPG タイマの動作について説明します。 ■ 注意点 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラグ セットが優先され , クリア動作は , 無効となります。 PPG コントロールレジスタのビット 11, 10 ( カウントロック選択ビット CKS1 および , CKS0) は , 書込み後すぐに反映されるので , 設定変更は , カウント停止状態で行ってく ださい。 PPG ダウンカウンタ (PPGC:16 ビットダウンカウンタ ) は , ロードとカウントのタイミ ングが重複した場合は , ロード動作の方を優先します。 293 第 8 章 PPG タイマ 8.3.1 PWM 動作タイミングチャート PWM 動作タイミングチャートについて説明します。 ■ 再起動禁止の場合 図 8.3-1 に , 再起動禁止の場合の PWM 動作タイミングチャートを示します。 図 8.3-1 再起動禁止の場合の PWM 動作タイミングチャート 立上りエッジ検出 トリガは、無視されます。 起動 トリガ m n 0 PPG ① ② ① = T(n+1) ms ② = T(m+1) ms T:カウントクロック周期 m:PCSR値 n:PDUT値 ■ 再起動許可の場合 図 8.3-2 に , 再起動許可の場合の PWM 動作タイミングチャートを示します。 図 8.3-2 再起動許可の場合の PWM 動作タイミングチャート 立上りエッジ検出 トリガにより再起動します。 起動 トリガ m n 0 PPG ① m:PCSR値 n:PDUT値 ② 〔PWM 動作〕 PWM動作では, 起動トリガの検出時より連続してパルスを出力することができます。 出力パルスの周期は , PCSR 値を変えることにより制御することができ , またデュー ティ比は , PDUT 値を変えることにより制御できます。 ( 注意事項 ) PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってくだ さい。 294 第 8 章 PPG タイマ 8.3.2 ワンショット動作タイミングチャート ワンショット動作タイミングチャートについて説明します。 ■ 再起動禁止の場合 図 8.3-3 に , 再起動禁止の場合のワンショット動作タイミングチャートを示します。 図 8.3-3 再起動禁止の場合のワンショット動作タイミングチャート 立上りエッジ検出 トリガは、無視されます。 起動 トリガ m n 0 PPG ① m:PCSR値 ② n:PDUT値 ■ 再起動許可の場合 図 8.3-4 に , 再起動許可の場合のワンショット動作タイミングチャートを示します。 図 8.3-4 再起動許可の場合のワンショット動作タイミングチャート 立上りエッジ検出 トリガにより再起動します。 起動 トリガ m n 0 PPG ① m:PCSR値 ② n:PDUT値 〔ワンショット動作〕 ワンショット動作では, トリガにより任意の幅の単一パルスを出力することができま す。 再起動許可の場合は , 動作中にエッジを検出するとカウンタをリロードします。 295 第 8 章 PPG タイマ 割込み要因とタイミングチャート (PPG 出力は , 通常 極性 ) 8.3.3 割込み要因とタイミングチャートについて説明します。 ■ 割込み要因とタイミングチャート 図 8.3-5 に , 割込み要因とタイミングチャートを示します。 図 8.3-5 割込み要因とタイミングチャート 起動 トリガ ┌─────┐ ─┘ └───────────────────────────── →最大2.5T← ┌┐ ┌┐ ─────┘└─────────────────────┘└─────── ┌┐ ┌┐ ┌┐ ┌┐ ──────────┘└────┘└────┘└──────────┘└─ ロード クロック カウント値 X 0003H 0002H 0001H 0000H 0003H ┌───────────┐ PPG ────────────────┘ └──────── ↑ ↑ ↑ 割込み ─────┴──────────┴───────────┴──────── 有効エッジ デューティ一致 カウンタボロー <注意事項> 起動トリガがかかってから, カウント値がロードされるまで, 最大2.5T(T:カウントクロッ ク周期 ) を必要とします。 296 第 8 章 PPG タイマ PPG 出力オール "L" またはオール "H" の出力方法例 8.3.4 PPG 出力オール "L" または , オール "H" の出力方法について説明します。 ■ PPG 出力オール "L" またはオール "H" の出力方法の例 図 8.3-6 に , PPG 出力オール "L" またはオール "H" の出力方法の例を示します。 図 8.3-6 PPG 出力オール "L" またはオール "H" の出力方法の例 PPG デューティ値 ↑ を小さくして ボローによる割込みでPGMS(マスクビット) いく → → → に"1"を書き込みます。 また、ボローによる割込みでPGMS (マスクビット)に"0"を書き込めば ヒゲを出力する事なくPWM波形を 出力できます。 PPG ↑ デューティ値 コンペア一致による割込みでデュー を大きくして ティ設定レジスタに周期設定レジス いく → → → タ値と同じ値を書き込みます。 297 第 8 章 PPG タイマ 8.3.5 ジェネラルコントロールレジスタを使った複数チャ ネル起動 GCN10 で起動トリガを選択することにより , 複数チャネルを同時に起動することが できます。 ここでは , GCN20 を使ったソフトウェア起動の例を示します。 ■ 設定手順 1) PCSR に周期を設定します。 2) PDUT にデューティを設定します。 必ず PCSR → PDUT の順で書込みを行ってください。 3) GCN10 で , 起動するチャネルのトリガ入力要因を決めます。 ここでは , GCN20 を使うので , 初期設定のままとします。 (ch0 -> EN0, ch1 -> EN1, ch2 -> EN2, ch3 -> EN3) 4) 起動するチャネルのコントロールステータスレジスタを設定します。 - CNTE:1 -> タイマ動作を許可 - STGR:0 -> GCN20 で起動するので , ここでは起動しない - MDSE:0 -> PWM 動作 - RTRG:0 -> 再起動禁止とする - CSK1,0:00 -> カウントクロック= Φ - PGMS:0 -> 出力マスクしない ( ビット 8:0 -> 未使用ビット , 何を設定しても構いません ) - EGS1,0:01 -> 立上りエッジ起動 - IREN:1 -> 割込み要求許可 - IRQF:0 -> 割込み要因をクリア - IRS1,0:01 -> カウンタボロー発生で割込み要求発生 - OSEL:0 -> 通常極性 5) GCN20 にデータを書き込むことで , 起動トリガを発生させます。 上記の設定で ch0 と ch1 を同時に起動させる場合 , GCN20 の EN0, EN1 に "1" を書き 込みます。立上りエッジが発生し , PPG0, PPG1 からパルスが出力されます。 16 ビットリロードタイマを使用して起動する場合は , 下記を行ってください。 3) の GCN10 で要因として 16 ビットリロードタイマを選択 5) で GCN20 の代わりに 16 ビットリロードタイマを起動 また , コントロールステータスレジスタの設定で下記のようにすることで , 一定時 間ごとに PPG タイマを再起動することも可能です。 - RTRG:1 -> 再起動許可とする - EGS1,0:11 -> 両エッジ起動 - 16 ビットリロードタイマ出力をトグル出力設定にする 298 第9章 割込みコントローラ この章では , 割込みコントローラの概要 , レジスタ の構成 / 機能 , および動作について説明します。 9.1 割込みコントローラの概要 9.2 割込みコントローラのレジスタ 9.3 割込みコントローラの動作説明 299 第 9 章 割込みコントローラ 9.1 割込みコントローラの概要 割込みコントローラは , 割込み受付け / 調停処理を行います。 ■ 割込みコントローラのハードウェア構成 本モジュールは , 以下のものより構成されます。 • ICR レジスタ • 割込み優先度判定回路 • 割込みレベル , 割込み番号 ( ベクタ ) 発生部 • ホールドリクエスト取下げ要求発生部 ■ 割込みコントローラの主要機能 本モジュールには , 主に以下のような機能があります。 • NMI 要求 / 割込み要求の検出 • 優先度判定 ( レベルおよび番号による ) • 判定結果の要因の割込みレベル伝達 (CPU へ ) • 判定結果の要因の割込み番号伝達 (CPU へ ) • NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復帰 指示 (CPU へ ) • バスマスタへのホールドリクエスト取下げ要求発生 300 第 9 章 割込みコントローラ ■ 割込みコントローラのレジスタ一覧 図 9.1-1 に , 割込みコントローラのレジスタ一覧を示します。 図 9.1-1 割込みコントローラのレジスタ一覧 ( 続く ) 7 6 5 4 3 2 1 0 アドレス : 00000440H bit - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR00 アドレス : 00000441H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR01 アドレス : 00000442H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR02 アドレス : 00000443H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR03 アドレス : 00000444H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR04 アドレス : 00000445H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR05 アドレス : 00000446H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR06 アドレス : 00000447H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR07 アドレス : 00000448H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR08 アドレス : 00000449H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR09 アドレス : 0000044AH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR10 アドレス : 0000044BH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR11 アドレス : 0000044CH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR12 アドレス : 0000044DH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR13 アドレス : 0000044EH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR14 アドレス : 0000044FH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR15 アドレス : 00000450H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR16 アドレス : 00000451H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR17 アドレス : 00000452H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR18 アドレス : 00000453H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR19 アドレス : 00000454H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR10 アドレス : 00000455H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR21 アドレス : 00000456H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR22 アドレス : 00000457H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR23 アドレス : 00000458H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR24 アドレス : 00000459H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR25 アドレス : 0000045AH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR26 アドレス : 0000045BH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR27 アドレス : 0000045CH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR28 アドレス : 0000045DH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR29 アドレス : 0000045EH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR30 アドレス : 0000045FH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR31 アドレス : 00000460H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR32 アドレス : 00000461H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR33 アドレス : 00000462H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR34 アドレス : 00000463H - - - ICR4 R ICR3 R/W ICR2 R/W ICR1 R/W ICR0 R/W ICR35 301 第 9 章 割込みコントローラ 図 9.1-1 割込みコントローラのレジスタ一覧 ( 続き ) 7 6 5 4 3 2 1 0 アドレス : 00000464H bit - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR36 アドレス : 00000465H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR37 アドレス : 00000466H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR38 アドレス : 00000467H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR39 アドレス : 00000468H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR40 アドレス : 00000469H - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR41 アドレス : 0000046AH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR42 アドレス : 0000046BH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR43 アドレス : 0000046CH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR44 アドレス : 0000046DH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR45 アドレス : 0000046EH - - - ICR4 ICR3 ICR2 ICR1 ICR0 ICR46 アドレス : 0000046FH - - - ICR4 R ICR3 R/W ICR2 R/W ICR1 R/W ICR0 R/W ICR47 - - LVL4 R LVL3 R/W LVL2 R/W LVL1 R/W LVL0 R/W HRCL アドレス : 00000045H MHALTI R/W ■ 割込みコントローラのブロックダイヤグラム 図 9.1-2 に割込みコントローラのブロックダイヤグラムを示します。 図 9.1-2 割込みコントローラのブロックダイヤグラム UNMI WAKEUP (レベル≠11111のとき‘1’) 優先度判定 NMI 処理 レベル4~0 5 / HLDREQ 取下げ 要求 レベル判定 RI00 ・ ・ ・ RI47 (DLYIRQ) ICR00 ・ ・ ・ ICR47 ベクタ 判定 R-bus 302 6 / レベル, ベクタ 発生 MHALTI VCT5~0 第 9 章 割込みコントローラ 9.2 割込みコントローラのレジスタ 割込みコントローラのレジスタ構成および機能について説明します。 ■ 割込みコントローラのレジスタ詳細 割込みコントローラには , 以下の 2 種類のレジスタがあります。 • ICR ( 割込み制御レジスタ ) • HRCL ( ホールドリクエスト取下げ要求レジスタ ) 303 第 9 章 割込みコントローラ 9.2.1 割込み制御レジスタ (ICR) 割込み制御レジスタ (ICR) は , 各割込み入力に対して 1 つずつ設けられており , 対応 する割込み要求の割込みレベルを設定します。 ■ 割込み制御レジスタ (ICR) のビット構成 割込み制御レジスタ (ICR) のビット構成は以下のとおりです。 ビット アドレス ch0:000440H 7 6 5 4 3 2 1 0 初期値 - - - ICR4 ICR3 ICR2 ICR1 ICR0 ---11111B R R/W R/W R/W R/W ∼ ch7:00046FH [ ビット 4 ∼ 0] ICR4 ∼ ICR0 割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。 本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定した ( された ) レ ベルマスク値以上の場合は , CPU 側にて割込み要求はマスクされます。 リセットにより , "11111B" に初期化されます。 表 9.2-1 に , 設定可能な割込みレベル設定ビットと割込みレベルの対応を示します。 表 9.2-1 設定可能な割込みレベル設定ビットと割込みレベルの対応 ICR4 * ICR3 ICR2 ICR1 ICR0 0 0 0 0 0 0 0 1 1 1 0 14 0 1 1 1 1 15 NMI 1 0 0 0 0 16 設定可能な最強レベル 1 0 0 0 1 17 1 0 0 1 0 18 1 0 0 1 1 19 1 0 1 0 0 20 1 0 1 0 1 21 1 0 1 1 0 22 1 0 1 1 1 23 1 1 0 0 0 24 1 1 0 0 1 25 1 1 0 1 0 26 1 1 0 1 1 27 1 1 1 0 0 28 1 1 1 0 1 29 1 1 1 1 0 30 1 1 1 1 1 31 割込みレベル *: ICR4 は "1" 固定で , "0" を書き込むことはできません。 304 システム予約 (強) (弱) 割込み禁止 第 9 章 割込みコントローラ 9.2.2 ホールドリクエスト取下げ要求レジスタ (HRCL) ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。 ■ ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成は , 以下のとおりです。 ビット アドレス :00000045H 7 6 5 4 3 2 1 0 MHALTI - - LVL4 LVL3 LVL2 LVL1 LVL0 R R/W R/W R/W R/W R/W HRCL 0--11111B ( 初期値 ) [ ビット 7] MHALTI MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1" に セットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後で通 常の割込みルーチンと同様にクリアしてください。 [ ビット 4 ∼ 0] LVL4 ∼ LVL0 バスマスタへのホールドリクエスト取下げ要求を発生させるための割込みレベルを 設定します。 本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した場 合は , バスマスタに対してホールドリクエスト取下げ要求を出します。 LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。 305 第 9 章 割込みコントローラ 9.3 割込みコントローラの動作説明 割込みコントローラの動作について説明します。 ■ 優先順位判定 本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選 択し , その要因の割込みレベルと割込み番号を CPU へ出力します。 割込み要因の優先順位判定基準は , 以下のとおりです。 1) NMI 2) 以下の条件を満たす要因 - 割込みレベルの数値が "31" 以外 ("31" は割込み禁止 ) 。 - 割込みレベルの数値が最も小さい要因。 - その中で , 最も小さい割込み番号を持つ要因。 上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし て 31(11111B) を出力します。そのときの割込み番号は不定です。 表 9.3-1 に , 割込み要因と割込み番号 , 割込みレベルの関係を示します。 表 9.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 3) 割込み番号 割込み要因 10 進 16 進 割込みレベル オフセット TBR デフォルト のアドレス RN リセット 0 00 - 3FCH 000FFFFCH - モードベクタ 1 01 - 3F8H 000FFFF8H - システム予約 2 02 - 3F4H 000FFFF4H - システム予約 3 03 - 3F0H 000FFFF0H - システム予約 4 04 - 3ECH 000FFFECH - システム予約 5 05 - 3E8H 000FFFE8H - システム予約 6 06 - 3E4H 000FFFE4H - コプロセッサ不在トラップ 7 07 - 3E0H 000FFFE0H - コプロセッサエラートラップ 8 08 - 3DCH 000FFFDCH - INTE 命令 9 09 - 3D8H 000FFFD8H - 命令ブレーク例外 10 0A - 3D4H 000FFFD4H - オペランドブレークトラップ 11 0B - 3D0H 000FFFD0H - ステップトレーストラップ 12 0C - 3CCH 000FFFCCH - NMI 要求 (tool) 13 0D - 3C8H 000FFFC8H - 未定義命令例外 14 0E - 3C4H 000FFFC4H - NMI 要求 15 0F 15(FH) 固定 3C0H 000FFFC0H - 外部割込み 0 16 10 ICR00 3BCH 000FFFBCH 6 外部割込み 1 17 11 ICR01 3B8H 000FFFB8H 7 外部割込み 2 18 12 ICR02 3B4H 000FFFB4H 11 外部割込み 3 19 13 ICR03 3B0H 000FFFB0H - 外部割込み 4 20 14 ICR04 3ACH 000FFFACH - 306 第 9 章 割込みコントローラ 表 9.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 3) 割込み番号 割込み要因 10 進 16 進 割込みレベル オフセット TBR デフォルト のアドレス RN 外部割込み 5 21 15 ICR05 3A8H 000FFFA8H - 外部割込み 6 22 16 ICR06 3A4H 000FFFA4H - 外部割込み 7 23 17 ICR07 3A0H 000FFFA0H - リロードタイマ 0 24 18 ICR08 39CH 000FFF9CH 8 リロードタイマ 1 25 19 ICR09 398H 000FFF98H 9 リロードタイマ 2 26 1A ICR10 394H 000FFF94H 10 UART0 ( 受信完了 ) 27 1B ICR11 390H 000FFF90H 0 UART1 ( 受信完了 ) 28 1C ICR12 38CH 000FFF8CH 1 UART2 ( 受信完了 ) 29 1D ICR13 388H 000FFF88H 2 UART0 ( 送信完了 ) 30 1E ICR14 384H 000FFF84H 3 UART1 ( 送信完了 ) 31 1F ICR15 380H 000FFF80H 4 UART2 ( 送信完了 ) 32 20 ICR16 37CH 000FFF7CH 5 DMAC0 ( 終了 , エラー ) 33 21 ICR17 378H 000FFF78H - DMAC1 ( 終了 , エラー ) 34 22 ICR18 374H 000FFF74H - DMAC2 ( 終了 , エラー ) 35 23 ICR19 370H 000FFF70H - DMAC3 ( 終了 , エラー ) 36 24 ICR20 36CH 000FFF6CH - DMAC4 ( 終了 , エラー ) 37 25 ICR21 368H 000FFF68H - A/D 38 26 ICR22 364H 000FFF64H 15 39 27 ICR23 360H 000FFF60H - 40 28 ICR24 35CH 000FFF5CH - 41 29 ICR25 358H 000FFF58H 12 SIO 6 42 2A ICR26 354H 000FFF54H 13 SIO 7 43 2B ICR27 350H 000FFF50H 14 UART3 ( 受信完了 ) 44 2C ICR28 34CH 000FFF4CH - UART3 ( 送信完了 ) 45 2D ICR29 348H 000FFF48H - 000FFF44H - I 2C UART4 ( 受信完了 ) SIO 5 *1 *1 リロードタイマ 3/ メイン発振安定待ちタイマ 46 2E ICR30 344H タイムベースタイマオーバフロー 47 2F ICR31 340H 000FFF40H - 外部割込み 8-15 *2 48 30 ICR32 33CH 000FFF3CH - 時計カウンタ 49 31 ICR33 338H 000FFF38H - U/D カウンタ 0 50 32 ICR34 334H 000FFF34H - U/D カウンタ 1 *2 51 33 ICR35 330H 000FFF30H - PPG 0/1 52 34 ICR36 32CH 000FFF2CH - PPG 2/3 53 35 ICR37 328H 000FFF28H - PPG 4/5 54 36 ICR38 324H 000FFF24H - 16 ビット フリーランタイマ 55 37 ICR39 320H 000FFF20H - ICU 0( 取込み ) 56 38 ICR40 31CH 000FFF1CH - ICU 1( 取込み )/UART4 ( 送信完了 ) *2 57 39 ICR41 318H 000FFF18H - ICU 2/3( 取込み ) 58 3A ICR42 314H 000FFF14H - OCU0/1 ( 一致 ) 59 3B ICR43 310H 000FFF10H - OCU2/3 ( 一致 ) 60 3C ICR44 30CH 000FFF0CH - 307 第 9 章 割込みコントローラ 表 9.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (3 / 3) 割込み番号 割込み要因 10 進 16 進 割込みレベル オフセット TBR デフォルト のアドレス RN OCU4/5 ( 一致 ) *2 61 3D ICR45 308H 000FFF08H - OCU6/7 ( 一致 ) *2 62 3E ICR46 304H 000FFF04H - 遅延割込み要因ビット 63 3F ICR47 300H 000FFF00H - システム予約 (REALOS にて使用 ) 64 40 - 2FCH 000FFEFCH - システム予約 (REALOS にて使用 ) 65 41 - 2F8H 000FFEF8H - システム予約 66 42 - 2F4H 000FFEF4H - システム予約 67 43 - 2F0H 000FFEF0H - システム予約 68 44 - 2ECH 000FFEECH - システム予約 69 45 - 2E8H 000FFEE8H - システム予約 70 46 - 2E4H 000FFEE4H - システム予約 71 47 - 2E0H 000FFEE0H - システム予約 72 48 - 2DCH 000FFEDCH - システム予約 73 49 - 2D8H 000FFED8H - システム予約 74 4A - 2D4H 000FFED4H - システム予約 75 4B - 2D0H 000FFED0H - システム予約 76 4C - 2CCH 000FFECCH - システム予約 77 4D - 2C8H 000FFEC8H - システム予約 78 4E - 2C4H 000FFEC4H - システム予約 79 4F - 2C0H 000FFEC0H - 80 ∼ 255 50 ∼ FF 2BCH 000FFEBCH INT 命令で使用 - ∼ 000H ∼ 000FFC00H - *1: MB91F353A/351A/352A/353A は , UART4, SIO5 の割込み要因がありません *2: MB91F353A/351A/352A/353A は , 外部割込み 8-15, U/D カウンタ 1, UART4, OCU4/5, OCU6/7 の割込み要因が ありません。 308 第 9 章 割込みコントローラ ■ NMI (Non Maskable Interrupt) NMI は , 本モジュールが取り扱う割込み要因の中では最も優先順位が高くなっていま す。 そのため , ほかの割込み要因と同時発生の場合は常に NMI が選択されます。 ● NMI 発生 NMI が発生すると , CPU に対して次の情報を伝えます。 割込みレベル :15 (01111B) 割込み番号 :15 (0001111B) ● NMI 検出 NMI の設定および検出は , 外部割込み /NMI モジュールで行います。本モジュールでは NMI 要求により , 割込みレベル / 割込み番号 , MHALTI の生成のみを行います。 ● NMI による DMA 転送の抑止 NMI 要求が発生すると , HRCL レジスタの MHALTI ビットが "1" になり , DMA 転送が 抑止されます。DMA 転送の抑止を解除したい場合は , NMI ルーチンの最後にて MHALTI ビットを "0" にクリアしてください。 ■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request) 優先度の高い割込み処理を , CPU のホールド中に行いたい場合は , ホールドリクエスト 発生元においてリクエストを取り下げてもらう必要があります。この取下げ要求発生 の基準となる割込みレベルを HRCL レジスタに設定します。 ● 発生基準 HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合 は , ホールドリクエスト取下げ要求を発生します。 HRCL レジスタの割込みレベル > 優先度判定後の割込みレベル →取下げ要求発生 HRCL レジスタの割込みレベル ≦ 優先度判定後の割込みレベル →取下げ要求なし 取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効 であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割 込み要因をクリアしてください。 また , NMI を使用したときは , HRCL レジスタの MHALTI ビットが "1" となっている ため , 取下げ要求が有効になっています。 ● 設定可能なレベル HRCL レジスタに設定可能な値は , ICR と同様に 10000B から 11111B までです。 11111B に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また , 10000B に設定した場合は NMI でのみ取下げ要求を発生することになります。 表 9.3-2 に , ホールドリクエスト取下げ要求発生となる割込みレベルの設定を示しま す。 309 第 9 章 割込みコントローラ 表 9.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定 HRCL レジスタ 取下げ要求発生となる割込みレベル 16 NMI のみ 17 NMI, 割込みレベル 16 18 NMI, 割込みレベル 16, 17 31 NMI, 割込みレベル 16 ∼ 30[ 初期値 ] リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割 込みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値 に設定してください。 ■ スタンバイモード ( ストップ / スリープ ) からの復帰 割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し ます。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが 11111B 以外 ) が 1 つでも 発生すると , クロック制御部に対してストップモードからの復帰要求を発生します。 優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので , 優 先度判定部の結果が出るまでの間 CPU は命令を実行することになります。 スリープ状態からの復帰においても , 同様に動作します。 また , スリープ中であっても , 本モジュール内のレジスタはアクセス可能です。 <注意事項> • NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効 な入力を検出するように NMI の設定を行ってください。 • ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺 の制御レジスタにて割込みレベルを 11111B にしてください。 ■ ホールドリクエスト取下げ要求機能 (HRCR) の使用例 DMA 転送中に , CPU が優先度の高い処理を行いたいときは , DMA に対してホールド リクエストを取り下げてもらってホールド状態を解除する必要があります。ここでは , 割込みを利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先 動作を実現します。 ● 制御レジスタ 1) HRCL ( ホールドリクエストキャンセルレベル設定レジスタ ) : 本モジュール : 本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に , DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベ ルを設定します。 2) ICR: 本モジュール : 使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し ます。 310 第 9 章 割込みコントローラ ● ハードウェア構成 図 9.3-1 に , ホールドリクエストの各信号の流れを示します。 図 9.3-1 ホールドリクエストの各信号の流れ 本モジュール IRQ バスアクセス要求 MHALTI DHREQ DMA I-ユニット DHREQ:Dバスホールドリクエスト CPU B-ユニット DHACK:Dバスホールドアクノリッジ (ICR) IRQ :割込み要求 (HRCL) DHACK MHALTI:ホールドリクエスト 取下げ要求 ● シーケンス 図 9.3-2 に , HRCL レジスタに設定したレベルより強い場合を , 以下に示します。 図 9.3-2 割込みレベル HRCL < ICR (LEVEL) RUN バスホールド 割込み処理 バスホールド (DMA転送) ① ② CPU 割込みルーチンの例 バスアクセス要求 ①割込み要因クリア DHREQ ~ DHACK ②RETI IRQ LEVEL MHALTI 割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA はアクセス要求を下げ , CPU はホールド状態から復帰して割込み処理を行います。 図 9.3-3 に , 多重割込みの場合を , 以下に示します。 図 9.3-3 割込みレベル HRCL < ICR( 割込みⅠ )< ICR( 割込みⅡ ) RUN CPU バスホールド 割込み I 割込み処理II ③ ④ 割込み処理I ① バスホールド (DMA転送) ② バスアクセス要求 DHREQ DHACK IRQ1 IRQ2 LEVEL MHALTI 311 第 9 章 割込みコントローラ 〔割込みルーチンの例〕 ① , ③割込み要因クリア ∼ ② , ④ RETI 上記の例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した 場合を示しています。 HRCL レジスタに設定した割込みレベルより高い割込みレベルが発生している間は , DHREQ はさがっています。 <注意事項> HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してください。 312 第 10 章 外部割込み・NMI 制御部 この章では , 外部割込み・NMI 制御部の概要 , レジ スタの構成 / 機能 , および動作について説明しま す。 10.1 外部割込み・NMI 制御部の概要 10.2 外部割込み・NMI 制御部のレジスタ 10.3 外部割込み・NMI 制御部の動作説明 313 第 10 章 外部割込み・NMI 制御部 10.1 外部割込み・NMI 制御部の概要 外部割込み制御部は , NMI および INT0 ∼ 15 に入力される外部割込み要求の制御を 行うブロックです。 検出する要求のレベルとして , 以下の 4 種類から選択できます (NMI 以外 )。 • "H" • "L" • " 立上りエッジ " • " 立下りエッジ " ( 注意事項 ) MB91F353A/351A/352A/353A に INT8 ∼ 15 はありません ■ 外部割込み・NMI 制御部のレジスタ一覧 外部割込み・NMI 制御部のレジスタ一覧は以下のとおりです。 ビット ビット ビット ビット 7 EN7 6 EN6 5 EN5 4 EN4 3 EN3 2 EN2 1 EN1 0 EN0 15 ER7 14 ER6 13 ER5 12 ER4 11 ER3 10 ER2 9 ER1 8 ER0 15 LB7 14 LA7 13 LB6 12 LA6 11 LB5 10 LA5 9 LB4 8 LA4 7 LB3 6 LA3 5 LB2 4 LA2 3 LB1 2 LA1 1 LB0 0 LA0 割込み許可レジスタ (ENIR) 外部割込み要因レジスタ (EIRR) 外部割込み要求レベル 設定レジスタ (ELVR) 上記レジスタ (8 チャネル分 ) が 2 セットあり , 合計 16 チャネルあります。 314 第 10 章 外部割込み・NMI 制御部 ■ 外部割込み・NMI 制御部のブロックダイヤグラム 図 10.1-1 に , 外部割込み・NMI 制御部のブロックダイヤグラムを示します。 図 10.1-1 図外部割込み・NMI 制御部のブロックダイヤグラム R-bus 8 割込み許可レジスタ 割込み 要求 17 8 ゲート 要因 F/F エッジ検出回路 17 INT0~15 NMI 外部割込み要因レジスタ 16 外部割込み要求レベル設定レジスタ 315 第 10 章 外部割込み・NMI 制御部 10.2 外部割込み・NMI 制御部のレジスタ 外部割込み・NMI 制御部のレジスタ構成および機能について説明します。 ■ 外部割込み・NMI 制御部のレジスタ詳細 外部割込み・NMI 制御部のレジスタには , 以下の 3 種類があります。 • 割込み許可レジスタ (ENIRn: ENable Interrupt Request Register) • 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) • 外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register) 316 第 10 章 外部割込み・NMI 制御部 10.2.1 割込み許可レジスタ (ENIRn: ENable Interrupt Request Register) ENIRn は外部割込み要求出力のマスク制御を行います。 ■ 割込み許可レジスタ (ENIRn: ENable Interrupt Request Register) のビット構成 割込み許可レジスタのビット構成は , 以下のとおりです。 ビット 7 ENIR0 アドレス :000041H EN7 6 5 4 3 2 1 0 初期値 EN6 EN5 EN4 EN3 EN2 EN1 EN0 00000000B [R/W] ビット 7 ENIR1 アドレス :0000D1H EN15 6 EN14 5 EN13 4 EN12 3 EN11 2 EN10 1 EN9 0 初期値 EN8 00000000B [R/W] このレジスタの "1" を書かれたビットに対応する割込み要求出力は許可され (INT0 の 許可を EN0 が制御 ) , 割込みコントローラに対して要求が出力されます。"0" が書かれ たビットの対応する端子は割込み要因を保持しますが , 割込みコントローラに対して は要求を発生しません。 また , NMI に対するマスクビットは , 存在しません。 317 第 10 章 外部割込み・NMI 制御部 10.2.2 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) EIRRn は読出し時には対応する外部割込み要求があることを示し , 書込み時にはこ の要求を示すフリップフロップ (NMI フラグ ) 内容をクリアするレジスタです。 ■ 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) のビット 構成 外部割込み要因レジスタのビット構成は , 以下のとおりです。 ビット 15 EIRR0 アドレス :000040H ER7 14 ER6 13 ER5 12 ER4 11 ER3 10 ER2 9 ER1 8 初期値 ER0 00000000B [R/W] ビット 15 EIRR1 アドレス :0000D0H ER15 14 ER14 13 ER13 12 ER12 11 ER11 10 ER10 9 ER9 8 初期値 ER8 00000000B [R/W] この EIRR レジスタを読み出したとき , その値によって動作が以下のようになります。 "1" であった場合に , そのビットに対応する端子に外部割込み要求があることを示しま す。 また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップがク リアされます。 "1" の書込みは無効です。 リード・モディファイ・ライトのリード時には "1" が読まれます。 NMI フラグは , ユーザから読出し / 書込みできません。 ( 注意事項 ) NMI フラグについては , 図 10.3-4 を参照してください。 318 第 10 章 外部割込み・NMI 制御部 10.2.3 外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register) ELVRn は要求検出の選択を行うレジスタです。 ■ 外部割込み要求レベル設定レジスタ(ELVRn: External LeVel Register)のビット構 成 外部割込み要求レベル設定レジスタのビット構成は , 以下のとおりです。 ビット ELVR0 アドレス :000042H ビット 000043H 15 14 13 12 11 10 9 8 初期値 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 00000000B 7 6 5 4 3 2 1 0 初期値 LA0 00000000B LB3 LA3 LB2 LA2 LB1 LA1 LB0 [R/W] ビット 15 ELVR1 アドレス :0000D2H LB15 ビット 7 000043H LB11 14 13 12 11 10 9 8 初期値 LA15 LB14 LA14 LB13 LA13 LB12 LA12 00000000B 6 5 4 3 2 1 0 初期値 LA11 LB10 LA10 LB9 LA9 LB8 LA8 00000000B [R/W] INT0 ∼ 15 に 2 ビットずつが割り当てられていて , 以下のような設定になります。 要求入力がレベルの場合 , EIRR の各ビットをクリアしても入力がアクティブレベルな らば該当するビットは再びセットされます。 表 10.2-1 に , ELVR 割当てを示します。 表 10.2-1 ELVR 割当て LBx LAx 0 0 "L" レベルで要求あり 0 1 "H" レベルで要求あり 1 0 立上りエッジで要求あり 1 1 立下りエッジで要求あり 動 作 NMI は常にその立下りエッジが検出されます ( ストップ時を除く ) 。 ストップ時は , "L" レベル検出となります。 319 第 10 章 外部割込み・NMI 制御部 10.3 外部割込み・NMI 制御部の動作説明 外部割込み・NMI 制御部の動作について説明します。 ■ 外部割込みの動作 要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された要 求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号を発 生します。割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本 リソースからの割込みが最も優先順位が高かったときに , 該当する割込みが発生しま す。 図 10.3-1 に , 外部割込みの動作を示します。 図 10.3-1 外部割込みの動作 外部割込み CPU 割込みコントローラ リソース要求 ELVR EIRR ENIR IL ICR y y Comp ICR x x Comp ILM 要因 ■ スタンバイからの復帰 クロック停止モードのスタンバイ状態からの復帰に外部割込みを使う場合は , 入力要 求を "H" レベル要求または , "L" レベル要求としてください。 エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。 ■ 外部割込みの動作手順 外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。 1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに 設定する。 2. 許可レジスタの対象となるビットをディセーブル状態にする。 3. 要求レベル設定レジスタの対象となるビットを設定する。 4. 要因レジスタの対象となるビットをクリアする。 5. 許可レジスタの対象となるビットをイネーブル状態にする。 ただし , 4. と 5. は 16 ビットデータによる同時書込みが可能です。 本モジュール内のレジスタを設定するときには必ず許可レジスタをディセーブル状態 に設定しておかなくてはなりません。また , 許可レジスタをイネーブル状態にする前に 必ず要因レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み 許可状態時に誤って割込み要因が起こってしまうことを避けるためです。 320 第 10 章 外部割込み・NMI 制御部 ■ 外部割込み要求レベル 要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス幅は 最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。 要求入力レベルがレベル設定のとき , 外部より要求入力が入ってその後取り下げられ ても内部に要因保持回路が存在するので , 割込みコントローラへの要求はアクティブ のままです。 割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があり ます。 図 10.3-2 にレベル設定時の要因保持回路のクリアについて示します。 図 10.3-2 レベル設定時の要因保持回路のクリア 割込み入力 レベル検出 要因 F/F (要因保持回路) 許可ゲート 割込み コントローラ クリアしない限り要因を保持し続ける 図 10.3-3 に , 割込み許可時の割込み要因と割込みコントローラへの割込み要求を示し ます 図 10.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求 "H"レベル 割込み入力 割込みコントローラ への割込み要求 要因 F/Fのクリアによってinactiveとなる 321 第 10 章 外部割込み・NMI 制御部 ■ NMI • NMI は , ユーザ割込みの中で最強の割込みで , マスクすることは不可能です。ただ し , NMI を使用前に ILM に設定しないで NMI を起動すると , NMI 要因は検出され ますが , CPU は NMI を受け付けません。このとき , ILM を NMI が受け付けられる レベルに設定するまで NMI 要因が保持されつづけます。 このため , リセット後 , ILMを 16 以上の値に設定してから NMI を使用してください。 • NMI の受付けは下記のとおりです。 - 通常時 : 立下りエッジ - ストップ時 : "L" レベル • NMI によってストップモードの解除が可能です。ストップ状態で "L" レベルが入力 されるとストップ状態が解除され発振安定待ち時間が取られます。 NMI 要求検出部は NMI フラグがあり , NMI 要求によりセットされ , NMI 自身の割 込みの受付け , もしくは , リセットでのみクリアされます。なお , このビットはリー ド / ライトできません。 図 10.3-4 に , NMI 要求検出を示します。 図 10.3-4 NMI 要求検出 (NMIフラグ) 0 NMI要求 (ストップ解除) 立下り エッジ検出 Q SX R 1 φ STOP clear (RST,interrupt acknowledge) 322 NMI 第 11 章 REALOS 関連ハード REALOS 関連ハードは , リアルタイム OS により 使用されます。したがって , REALOS を使用する 場合にはユーザプログラムで使用することはでき ません。 11.1 遅延割込みモジュール 11.2 ビットサーチモジュール 323 第 11 章 REALOS 関連ハード 11.1 遅延割込みモジュール 遅延割込みモジュールの概要 , レジスタの構成 / 機能 , および動作について説明しま す。 ■ 遅延割込みモジュールの概要 遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールです。 本モジュールを使用することで , ソフトウェアで CPU に対して割込要求の発生 / 取消 しを行うことができます。 324 第 11 章 REALOS 関連ハード 11.1.1 遅延割込みモジュールの概要 遅延割込みモジュールのレジスタ一覧 , 詳細 , および動作について説明します。 ■ 遅延割込みモジュールのレジスタ一覧 遅延割込みモジュールのレジスタ一覧は , 以下のとおりです。 ビット 7 6 5 4 3 2 1 アドレス : 00000044H - - - - - - - 0 DLYI DICR [R/W] ■ 遅延割込みモジュールのブロックダイヤグラム 図 11.1-1 に , 遅延割込みモジュールのブロックダイヤグラムを示します。 図 11.1-1 遅延割込みモジュールのブロックダイヤグラム R‐bus DLYI 割込み要求 325 第 11 章 REALOS 関連ハード 11.1.2 遅延割込みモジュールのレジスタ 遅延割込みモジュールのレジスタの構成および機能について説明します。 ■ DICR ( 遅延割込みモジュールレジスタ ) DICR は , 遅延割込みを制御するレジスタです。 遅延割込みモジュールレジスタ (DICR) のビット構成は , 以下のとおりです。 ビット アドレス : 00000044H 7 6 5 4 3 2 1 0 - - - - - - - DLYI [R/W] [ ビット 0] DLYI DLYI 説明 0 遅延割込み要因の解除・要求なし ( 初期値 ) 1 遅延割込み要因の発生 本ビットにより , 該当する割込み要因の発生・解除を制御します。 326 -------0B( 初期値 ) 第 11 章 REALOS 関連ハード 11.1.3 遅延割込みモジュールの動作説明 遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用するこ とにより , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことがで きます。 ■ 割込み番号 遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。 本品種では , 遅延割込みを , 割込み番号 63 (3FH) に割り当てています。 ■ DICR の DLYI ビット このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き 込むことで , 遅延割込み要因を解除します。 本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ ンの中で本ビットをクリアし , 合わせてタスクの切換えを行うようにしてください。 327 第 11 章 REALOS 関連ハード 11.2 ビットサーチモジュール ビットサーチモジュールの概要 , レジスタの構成 / 機能 , および動作について説明し ます。 ■ ビットサーチモジュールの概要 ビットサーチモジュールは , 入力レジスタに書き込まれたデータに対して , "0" または "1" または変化点を検索し , 検出したビット位置を返します。 328 第 11 章 REALOS 関連ハード 11.2.1 ビットサーチモジュールの概要 ビットサーチモジュールのレジスタの構成および機能について説明します。 ■ ビットサーチモジュールのレジスタ一覧 ビットサーチモジュールのレジスタ一覧は , 以下のとおりです。 31 0 アドレス : 000003F0H BSD0 0 検出用データレジスタ アドレス : 000003F4H BSD1 1 検出用データレジスタ アドレス : 000003F8H BSDC 変化点検出用データレジスタ アドレス : 000003FCH BSRR 検出結果レジスタ ■ ビットサーチモジュールのブロックダイヤグラム 図 11.2-1 に , ビットサーチモジュールのブロックダイヤグラムを示します。 図 11.2-1 ビットサーチモジュールのブロックダイヤグラム D-bus 入力ラッチ アドレスデコーダ 検出モード 1検出データ化 ビットサーチ回路 検索結果 329 第 11 章 REALOS 関連ハード 11.2.2 ビットサーチモジュールのレジスタ ビットサーチモジュールのレジスタの構成および機能について説明します。 ■ 0 検出用データレジスタ (BSD0) 書き込んだ値に対して , 0 検出を行います。 0 検出用データレジスタ (BSD0) のレジスタ構成は , 以下のとおりです。 31 0 000003F0H 読出し / 書込み → W 初期値 → XXXXXXXXH リセットによる初期値は不定です。読出し値は不定です。 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は , 使わないでください ) 。 ■ 1 検出用データレジスタ (BSD1) 1 検出用データレジスタ (BSD1) のレジスタ構成は , 以下のとおりです。 31 0 000003F4H 読出し / 書込み → R/W 初期値 → XXXXXXXXH データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は , 使わないでください ) 。 • 書込み時 : 書き込んだ値に対して , "1" を検出します。 • 読出し時 : ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハン ドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避・復帰する ときに使用します。 0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー タレジスタのみ操作することで退避・復帰できます。 リセットによる初期値は不定です。 330 第 11 章 REALOS 関連ハード ■ 変化点検出用データレジスタ (BSDC) 書き込んだ値に対して , 変化点の検出を行います。 変化点検出用データレジスタ (BSDC) のレジスタ構成は , 以下のとおりです。 31 0 000003F8H 読出し / 書込み → W 初期値 → XXXXXXXXH リセットによる初期値は不定です。 読出し値は不定です。 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は , 使わないでください ) 。 ■ 検出結果レジスタ (BSRR) 0 検出 , 1 検出 , または変化点検出の結果が読み出されます。 どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ れます。 検出結果レジスタ (BSRR) のレジスタ構成は , 以下のとおりです。 31 0 000003FCH 読出し / 書込み → R 初期値 → XXXXXXXXH 331 第 11 章 REALOS 関連ハード 11.2.3 ビットサーチモジュールの動作説明 ビットサーチモジュールの動作について説明します。 ■ 0 検出 0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "0" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と , 返す数 値の関係は , 表 11.2-1 を参照してください。 "0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ) , "32" という値をサー チ結果として返します。 【実行例】 書込みデータ 読出し値 (10 進 ) 11111111111111111111000000000000B (FFFFF000H) → 20 11111000010010011110000010101010B (F849E0AAH) → 5 10000000000000101010101010101010B (8002AAAAH) → 1 11111111111111111111111111111111B (FFFFFFFFH) → 32 ■ 1 検出 1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の "1" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と返す値と の関係は , 表 11.2-1 を参照してください。 "1" が存在しないとき ( すなわち 00000000H という数値のとき ) , "32" という値をサー チ結果として返します。 【実行例】 書込みデータ 332 読出し値 (10 進 ) 00100000000000000000000000000000B (20000000H) → 2 00000001001000110100010101100111B (01234567H) → 7 00000000000000111111111111111111B (0003FFFFH) → 14 00000000000000000000000000000001B (00000001H) → 31 00000000000000000000000000000000B (00000000H) → 32 第 11 章 REALOS 関連ハード ■ 変化点検出 変化点検出用データレジスタに書き込まれたデータを , ビット 30 から LSB へスキャン し , MSB の値と比較します。 最初に MSB と異なる値を検出した位置を返します。検出結果は , 検出結果レジスタを 読み出すことで得られます。 検出した位置と返す値は , 表 11.2-1 を参照してください。 変化点が存在しないときは , "32" を返します。変化点検出では , 結果として "0" を返す ことはありません。 【実行例】 書込みデータ 読出し値 (10 進 ) 00100000000000000000000000000000B (20000000H) → 2 00000001001000110100010101100111B (01234567H) → 7 00000000000000111111111111111111B (0003FFFFH) → 14 00000000000000000000000000000001B (00000001H) → 31 00000000000000000000000000000000B (00000000H) → 32 11111111111111111111000000000000B (FFFFF000H) → 20 11111000010010011110000010101010B (F849E0AAH) → 5 10000000000000101010101010101010B (8002AAAAH) → 1 11111111111111111111111111111111B (FFFFFFFFH) → 32 表 11.2-1 に , ビット位置と返す値 (10 進 ) を示します。 表 11.2-1 ビット位置と返す値 (10 進 ) 検出した ビット位置 返す値 検出した ビット位置 返す値 検出した ビット位置 返す値 検出した ビット位置 返す値 31 0 23 8 15 16 7 24 30 1 22 9 14 17 6 25 29 2 21 10 13 18 5 26 28 3 20 11 12 19 4 27 27 4 19 12 11 20 3 28 26 5 18 13 10 21 2 29 25 6 17 14 9 22 1 30 24 7 16 15 8 23 0 31 存在しない 32 333 第 11 章 REALOS 関連ハード ■ 退避・復帰の処理 割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順にしたがってく ださい。 1) 1 検出用データレジスタを読出し , この内容を保存 ( 退避 ) 2) ビットサーチモジュールを使用 3) 1) で退避したデータを 1 検出用データレジスタに書込み ( 復帰 ) 以上の操作により, 次に検出結果レジスタを読み出したときに得られる値は, 1)以前に, ビットサーチモジュールに書き込まれた内容に応じたものとなります。 最後に書き込まれたデータレジスタが0検出用または変化点検出用であっても, 上記の 手順で正しく元に戻ります。 334 第 12 章 A/D コンバータ この章では , A/D コンバータの概要 , レジスタの構 成 / 機能 , および動作について説明します。 12.1 A/D コンバータの概要 12.2 A/D コンバータのレジスタ 12.3 A/D コンバータの動作説明 335 第 12 章 A/D コンバータ 12.1 A/D コンバータの概要 A/D コンバータは , アナログ入力電圧をデジタル値に変換するものです。 ここでは , A/D コンバータの概要について説明します。 ■ A/D コンバータの特長 A/D コンバータの特長は , 以下のとおりです。 • 変換時間 :1 チャネルあたり最小 1.48 µS • サンプル & ホールド回路付き直並列変換方式を採用 • 10 ビットの分解能 (8/10 ビット切換え可能 ) • アナログ入力は 12 チャネルからプログラムで選択できます。 ( 注意事項 ) MB91F353A/351A/352A/353A は入力 8 チャネルです。 • 変換モード シングル変換モード : 選択した 1 チャネルを 1 回変換します。 スキャン変換モード : 最大 4 チャネルのスキャン変換をします。 • 変換データはデータバッファに格納されます ( データバッファは全部で 4 つ )。 • A/D 変換終了時には , CPU に対して A/D 変換終了の割込み要求を発生させることが できます。この割込み発生で DMA 転送を起動することもできます。 • 起動要因は , ソフト , 外部トリガ ( 立下りエッジ ) , リロードタイマ ch2 ( 立上りエッ ジ ) から選択できます。 ■ A/D コンバータのレジスタ一覧 A/D コンバータのレジスタ一覧は , 以下のとおりです。 ビット 15 8 アドレス:000078 H ADCS1 ADCS2 アドレス:00007A H コントロール・ステータス レジスタ 変換時間設定レジスタ ADCT アドレス:00007C H アドレス:00007E H ADTH0 ADTL0 データレジスタ0 ADTH1 ADTL1 データレジスタ1 アドレス:000080 H ADTH2 ADTL2 データレジスタ2 ADTH3 ADTL3 データレジスタ3 アドレス:000082 H 336 7 0 第 12 章 A/D コンバータ ■ A/D コンバータのブロックダイヤグラム 図 12.1-1 に , A/D コンバータのブロックダイヤグラムを示します。 ( 注意事項 ) MB91F353A/351A/352A/353A は AN8 ∼ AN11 入力はありません。 図 12.1-1 A/D コンバータのブロックダイヤグラム アナログ入力 AV CC ,AVRH,AV SS ,AVRL M P X S/H 10ビット A/D コンバータ M P X ADTH/L0 ADTH/L1 ADTH/L2 ADTH/L3 R-bus AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 AN8 AN9 AN10 AN11 コントロールロジック 割込み リロードタイマch2 外部入力 337 第 12 章 A/D コンバータ 12.2 A/D コンバータのレジスタ A/D コンバータで使用するレジスタの構成および機能について説明します。 ■ A/D コンバータのレジスタの概要 A/D コンバータのレジスタには , 以下の 4 種類があります。 • コントロール・ステータスレジスタ (ADCS1) • コントロール・ステータスレジスタ (ADCS2) • 変換時間設定レジスタ (ADCT) • データレジスタ (ADTHx, ADTLx) 338 第 12 章 A/D コンバータ 12.2.1 コントロール・ステータスレジスタ (ADCS1) 本レジスタは A/D コンバータの制御およびステータス表示を行います。 ■ コントロール・ステータスレジスタ (ADCS1) のレジスタ構成 コントロール・ステータスレジスタ (ADCS1) のレジスタ構成は , 以下のとおりです。 7 ビット BUSY アドレス : 000079H 0 R/W 6 INT 5 INTE 4 - 3 STS1 2 STS0 1 STAR 0 0 X 0 0 0 R/W R/W - R/W R/W R/W 0 ADCS1 予約 0 ←初期値 R/W ←ビット属性 [ ビット 7] BUSY(busy): • リード時 値 内 容 0 A/D コンバータ停止中 1 A/D コンバータ動作中 • ライト時 値 内 容 0 A/D コンバータ強制停止 1 意味を持ちません ソフト起動と強制停止は同時に行わないでください (STAR ビット =1, BUSY ビット =0)。 リードモディファイライト系命令では , "1" が読まれます。リセット時は "0" に初期 化されます。 [ ビット 6] INT(INTerrupt): 本ビットは変換終了によりセットされます ( シングル変換時は 1 回の変換の終了によ りセットされ , スキャン変換時はチャネルすべての変換が終了したらセットされま す)。 値 内 容 0 割込み要求なし 1 割込み要求あり 本ビットは "0" 書込み , 変換開始時 , DMA 転送による割込みクリア , およびリセット によりクリアされます。 "1" の書込みは意味を持ちません。 リードモディファイライト系命令では , "1" が読まれます。 339 第 12 章 A/D コンバータ [ ビット 5] INTE(INTerrupt Enable): 本ビットは変換終了による割込みの許可・禁止を指定します。 値 内 容 0 割込み禁止 1 割込み許可 DMA による自動転送を使用するときは本ビットをセットしてください。 リセット時 "0" に初期化されます。 [ ビット 4] 未使用ビット : 未使用ビットです。 [ ビット 3, 2] STS1, STS0(STart Select): 本ビット群の設定により A/D 起動要因を選択します。 STS1 STS0 0 0 ソフト起動 0 1 外部端子トリガでの起動とソフト起動 1 0 リロードタイマでの起動とソフト起動 1 1 外部端子トリガ , リロードタイマでの起動とソフト起動 機 能 起動が兼用になっているモードでは , 最初に検出した要因で起動します。 A/D 動作中 (BUSY ビット =1) に来た起動要因はすべて無視されます ( 再起動不可 )。 再起動する場合は一度 A/D 変換を停止 (BUSY ビットに "0" 書込み ) してから行って ください。 外部トリガ起動は立下がり , リロードタイマ起動は立上りエッジを検出します。 リセット時 "00B" に初期化されます。 [ ビット 1] STAR(STARt): 本ビットに "1" を書き込むことにより A/D コンバータを起動します。 A/D 起動中 (BUSY=1) に "1" を書き込んでも無視されます。 読出し時は常に "0" が読めます。 ソフト起動と強制停止は同時に行わないでください (STAR=1, BUSY=0)。 [ ビット 0] 予約ビット : 本ビットには "0" を書き込んでください。 340 第 12 章 A/D コンバータ 12.2.2 コントロール・ステータスレジスタ (ADCS2) 本レジスタは A/D コンバータの制御およびステータス表示を行います。 ■ コントロール・ステータスレジスタ (ADCS2) のレジスタ構成 コントロール・ステータスレジスタ (ADCS2) のレジスタ構成は , 以下のとおりです。 14 13 12 ビット 15 ACS3 ACS2 ACS1 ACS0 アドレス : 000078H 0 0 0 0 11 - 10 - - - 0 R/W - - R/W R/W R/W R/W 9 8 CREG SCAN ADCS2 0 ←初期値 R/W ←ビット属性 [ ビット 15, 14, 13, 12] ACS3, ACS2, ACS1, ACS0(Analog Channel Set): 本ビット群より A/D 変換のチャネルを設定します。 • シングル変換モード時は , 本ビットの設定チャネルを変換します。 • スキャン変換モード時は , 本ビットの設定チャネルがスキャンのスタートチャネル になります (「12.3 A/D コンバータの動作説明」を参照 )。 - AN0∼AN3を設定したときは, 設定チャネルからAN3までをスキャン変換します。 - AN4∼AN7を設定したときは, 設定チャネルからAN7までをスキャン変換します。 - AN8 ∼ AN11 を設定したときは , 設定チャネルから AN11 までをスキャン変換し ます。 • 変換するチャネルにより格納されるレジスタはかわります。 AN0 ∼ AN3 と AN4 ∼ AN7 と AN8 ∼ AN11 データレジスタは重複しますので注意 してください。 AN0 を変換後に AN4 や AN8 を変換すると , データが上書きされてしまい AN0 の変 換データは壊れてしまいます。 341 第 12 章 A/D コンバータ • ACS3..ACS0 への 1100B ∼ 1111B の設定は禁止です。これらの値の書込み変換を行っ た場合 , ADTH0 ∼ ADTH3 レジスタ値は壊れます。 ACS3 ACS2 ACS1 ACS0 チャネル 対応するデータレジスタ 0 0 0 0 AN0 ADTH0, ADTL0 0 0 0 1 AN1 ADAH1, ADTL1 0 0 1 0 AN2 ADTH2, ADTL2 0 0 1 1 AN3 ADTH3, ADTL3 0 1 0 0 AN4 ADTH0, ADTL0 0 1 0 1 AN5 ADAH1, ADTL1 0 1 1 0 AN6 ADTH2, ADTL2 0 1 1 1 AN7 ADTH3, ADTL3 1 0 0 0 AN8 ADTH0, ADTL0 1 0 0 1 AN9 ADAH1, ADTL1 1 0 1 0 AN10 ADTH2, ADTL2 1 0 1 1 AN11 ADTH3, ADTL3 1 1 0 0 - - 設定禁止 1 1 0 1 - - 設定禁止 1 1 1 0 - - 設定禁止 1 1 1 1 - - 設定禁止 備 考 ( 注意事項 ) MB91F353A/351A/352A/353A は AN8, AN9, AN10, AN11 がありません。設 定禁止です。 [ ビット 11, 10] 未使用ビット : 未使用ビットです。 [ ビット 9] CREG: 本ビットは A/D 変換結果の格納ビット数を指定します。 • 0:10 ビットモード : 変換値の上位 2 ビットを ADTHx, 下位 8 ビットを ADTLx に格納します。 • 1:8 ビットモード : 変換値の上位 8 ビットを ADTLx に格納します。 リセット時 "0" に初期化されます。 [ ビット 8] SCAN: 本ビットにより変換モードを設定します。 リセット時 "0" に初期化されます。 値 342 機 能 0 シングル変換モード 1 スキャン変換モード 第 12 章 A/D コンバータ 12.2.3 変換時間設定レジスタ (ADCT) 本レジスタによりサンプリング期間 , 変換期間 a ∼ c の長さを設定します ( 図 12.21 参照 ) 。各期間幅は , ( レジスタ設定値× 2 + 1) × 0.04 µs( 周辺系クロック 25MHz 時 ) で表されます。 このレジスタは , 16 ビットまたは , 32 ビットデータでアクセスしてください。 このレジスタはリセット時不定です。A/D を起動する前に必ず設定してください。 ■ 変換時間設定レジスタ (ADCT) のレジスタ構成 変換時間設定レジスタ (ADCT) のレジスタ構成は , 以下のとおりです。 7 ビット アドレス : 00007AH CV13 X 6 CV12 5 CV11 4 CV10 3 CV23 2 CV22 1 CV21 0 CV20 X X X X X X X R/W R/W R/W R/W R/W R/W R/W 15 14 13 12 11 SMP3 SMP2 SMP1 SMP0 CV03 X X X X X 10 CV02 X 9 CV01 X R/W R/W ビット R/W R/W R/W R/W R/W ←初期値 R/W ←ビット属性 8 CV00 X ←初期値 R/W ←ビット属性 図 12.2-1 に , 変換時間を示します。 図 12.2-1 変換時間 │サンプリング期間│変換期間a│変換期間b│変換期間c│ │ │ │ │ │ │ │ │ │ │ A/D 起動 変換終了(割込み発生) [ ビット 15, 14, 13, 12] SMP3, SMP2, SMP1, SMP0(sampling time): 本ビットにサンプリング期間の長さを設定します。 [ ビット 11, 10, 9, 8] CV03, CV02, CV01, CV00(convert time a): 本ビットに変換期間 a の長さを設定します。 [ ビット 7, 6, 5, 4] CV13, CV12, CV11, CV10(convert time b): 本ビットに変換期間 b の長さを設定します。 [ ビット 3, 2, 1, 0] CV23, CV22, CV21, CV20(convert time c): 本ビットに変換期間 c の長さを設定します。 343 第 12 章 A/D コンバータ <注意事項> 1 チャネルあたりの起動から変換終了までの A/D 変換時間は , 「サンプリング時間 + 変換 時間 a+ 変換時間 b+ 変換時間 c+3 マシンサイクル」となります。 ■ 推奨レジスタ値 周辺系クロック 25MHz のときは , 以下のレジスタ値を推奨します ( サンプリング時間 , 変換時間 a, 変換時間 b, 変換時間 c は , それぞれ 245ns 以上になるように設定してくだ さい )。 ADCT : 0101 0011B : 0011 0100B サンプリング時間+変換時間 a+ 変換時間 b+ 変換時間 c+ 3 = 37 サイクル (1.48 µs) (5 × 2+1) 344 (3 × 2+1) (3 × 2+1) (4 × 2+1) 第 12 章 A/D コンバータ 12.2.4 データレジスタ (ADTHx, ADTLx) 本レジスタは変換結果であるデジタル値が格納されます。 ■ データレジスタ (ADTHx, ADTLx) の概要 データレジスタは , ADCS2 の CREG ビットの値により格納形式が異なります (A/D の 変換動作に関係なく切り換えることができます ) 。 このレジスタの値は 1 回の変換終了ごとに更新されます。通常は最終変換値が格納さ れています。 このレジスタはリセット時不定です。 ● CREG ビット= "0" 時 CREG ビット= "0" 時の場合のレジスタ構成は , 以下のとおりです。 ビット アドレス ch0:00007DH ch1:00007FH ch2:000081H ch3:000083H ビット アドレス ch0:00007CH ch1:00007EH ch2:000080H ch3:000082H 7 D7 X 6 D6 X 5 D5 X 4 D4 X 3 D3 X 2 D2 X 1 D1 X 0 D0 X R R R R R R R R 15 14 13 12 11 10 9 8 0 0 0 0 0 0 0 0 0 0 0 0 D9 X D8 X - - - - - - R R ADTLx ←初期値 ←ビット属性 ADTHx ←初期値 ←ビット属性 ADTHx は変換値の上位 2 ビット , ADTLx は下位 8 ビットに相当します。 ADTLx のビット 15 ∼ 10 はリード時 "0" です。 ● CREG ビット= "1" 時 CREG ビット= "1" 時の場合のレジスタ構成は , 以下のとおりです。 ビット アドレス ch0:00007DH ch1:00007FH ch2:000081H ch3:000083H ビット アドレス ch0:00007CH ch1:00007EH ch2:000080H ch3:000082H 7 6 5 4 3 2 1 0 D7 X D6 X D5 X D4 X D3 X D2 X D1 X D0 X R R R R R R R R 15 14 13 12 11 10 9 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - - - - - - - - ADTLx ←初期値 ←ビット属性 ADTHx ←初期値 ←ビット属性 ADTLx は変換値の上位 8 ビットに相当します。 ADTHx はリード時 00H です。 345 第 12 章 A/D コンバータ 12.3 A/D コンバータの動作説明 A/D コンバータは , 10 ビット直並列方式を用いており最小 1.48 µs の時間により変 換が可能になっています。 本 A/D コンバータにはシングル変換とスキャン変換の 2 つのモードを選択できます。 ■ シングル変換モード コントロール・ステータスレジスタの SCAN = 0 でシングル変換モードになります。 コントロール・ステータスレジスタの ACS2 から ACS0 で設定したアナログ入力を 1 回 変換して終了します。 図 12.3-1 に , シングル変換モードを示します。 ( 例 ) ACS 値= 010B(AN2 選択 ) 図 12.3-1 シングル変換モード (例) ACS値=010B(AN2選択) STAR INT A/D スタート A/Dストップ A/D 変換期間 A/D 変換をスタートすると AN2 のアナログ入力を変換し , 終了すると INT ビットを セットして終了します。 割込み要求フラグは 1 回の変換ごとにセットされます。 ■ スキャン変換モード コントロール・ステータスレジスタの SCAN = 1 でスキャン変換モードになります。 コントロール・ステータスレジスタの ACS2 から ACS0 で設定したアナログ入力チャ ネルからスキャン変換を開始します。 スキャン終了チャネルは , ACS2 から ACS0 の設定により変わります。最大 4 チャネル のスキャン変換が可能です。 表 12.3-1 に , スキャン変換モード時のチャネル設定を示します。 346 第 12 章 A/D コンバータ 表 12.3-1 スキャン変換モード時のチャネル設定 ACS3 ACS2 ACS1 ACS0 開始チャネル 終了チャネル 備 考 0 0 0 0 AN0 AN3 4 チャネルスキャン変換 0 0 0 1 AN1 AN3 3 チャネルスキャン変換 0 0 1 0 AN2 AN3 2 チャネルスキャン変換 0 0 1 1 AN3 AN3 1 チャネルシングル変換 0 1 0 0 AN4 AN7 4 チャネルスキャン変換 0 1 0 1 AN5 AN7 3 チャネルスキャン変換 2 チャネルスキャン変換 0 1 1 0 AN6 AN7 0 1 1 1 AN7 AN7 1 チャネルシングル変換 1 0 0 0 AN8 AN11 4 チャネルスキャン変換 1 0 0 1 AN9 AN11 3 チャネルスキャン変換 1 0 1 0 AN10 AN11 2 チャネルスキャン変換 1 チャネルシングル変換 1 0 1 1 AN11 AN11 1 1 0 0 - - 設定禁止 1 1 0 1 - - 設定禁止 1 1 1 0 - - 設定禁止 1 1 1 1 - - 設定禁止 ( 注意事項 ) MB91F353A/351A/352A/353A は AN8, AN9, AN10, AN11 がありません。設定 禁止です。 図 12.3-2 に , スキャン変換モードを示します。 図 12.3-2 スキャン変換モード (例) ACS値=000B (AN0~AN3までをスキャン変換) STAR INT A/Dスタート A/Dストップ AN0 AN1 AN2 AN3 変換 変換 変換 変換 順次変換する A/D 変換をスタートすると AN0 から AN3 まで順次変換していき変換をすべて終了す ると INT ビットをセットして終了します。 割込み要求フラグはスキャン変換終了時にセットされます。 347 第 12 章 A/D コンバータ 348 第 13 章 8 ビット D/A コンバータ この章では , 8 ビット D/A コンバータの概要 , レジ スタの構成 / 機能 , および動作について説明しま す。 13.1 8 ビット D/A コンバータの概要 13.2 8 ビット D/A コンバータのレジスタ 13.3 8 ビット D/A コンバータの動作説明 349 第 13 章 8 ビット D/A コンバータ 13.1 8 ビット D/A コンバータの概要 本ブロックは , 8 ビット分解能の D/A コンバータを 3 チャネル (MB91F353A/351A/ 352A/353A は D/A コンバータを 2 チャネル ) 内蔵しており , D/A 制御レジスタにて それぞれ独立に出力制御を行うことができます 。 ■ 8 ビット D/A コンバータの特長 8 ビット D/A コンバータの特長は , 以下のとおりです。 • パワーダウン機能あり • 3.3V インタフェース ■ 8 ビット D/A コンバータのレジスタ一覧 8 ビット D/A コンバータのレジスタ一覧は , 以下のとおりです。 ( 注意事項 ) MB91F353A/351A/352A/353A は DADR2, DACR2 がありません。 7 アドレス ch0:000085H ch1:000086H DA7 ch2:000087H 350 6 5 4 3 2 1 0 DA6 DA5 DA4 DA3 DA2 DA1 DA0 7 6 5 4 3 2 1 0 - - - - - - - DAE D/A データレジスタ 0 ∼ 2 (DADR0 ∼ 2) D/A コントロールレジスタ 0 ∼ 2(DACR0 ∼ 2) 第 13 章 8 ビット D/A コンバータ ■ 8 ビット D/A コンバータのブロックダイヤグラム 図 13.1-1 に , 8 ビット D/A コンバータのブロックダイヤグラムを示します。 ( 注意事項 ) MB91F353A/351A/352A/353A は D/A コンバータ ch2 がありません。 図 13.1-1 8 ビット D/A コンバータのブロックダイヤグラム R-bus D/Aコントロール レジスタ D/Aデータ レジスタ0 DAE0 D/Aデータ レジスタ1 DAE1 PD STOP D/A コンバータ ch0 D/A 出力 0 D/Aデータ レジスタ2 DAE2 PD STOP D/A コンバータ ch1 D/A 出力 1 PL STOP D/A コンバータ ch2 D/A 出力 2 351 第 13 章 8 ビット D/A コンバータ 13.2 8 ビット D/A コンバータのレジスタ 8 ビット D/A コンバータで使用するレジスタの構成および機能について説明します。 ■ D/A データレジスタ 0 (DADR0) D/A データレジスタ 0 (DADR0) のレジスタ構成は , 以下のとおりです。 7 ビット DA7 アドレス : 00008BH R/W 6 DA6 5 DA5 4 DA4 3 DA3 2 DA2 1 DA1 0 DA0 R/W R/W R/W R/W R/W R/W R/W 初期値 XXH • D/A コンバータ ch0 の出力電圧設定を行います。 • リセットによって初期化されません。 ■ D/A データレジスタ 1 (DADR1) D/A データレジスタ 1 (DADR1) のレジスタ構成は , 以下のとおりです。 7 ビット DA7 アドレス : 00008AH R/W 6 DA6 5 DA5 4 DA4 3 DA3 2 DA2 1 DA1 0 DA0 R/W R/W R/W R/W R/W R/W R/W 初期値 XXH • D/A コンバータ ch1 の出力電圧設定を行います。 • リセットによって初期化されません。 ■ D/A データレジスタ 2 (DADR2) D/A データレジスタ 2 (DADR2) のレジスタ構成は , 以下のとおりです。 ( 注意事項 ) MB91F353A/351A/352A/353A は DADR2 がありません。 7 ビット DA7 アドレス : 000089H R/W 6 DA6 5 DA5 4 DA4 3 DA3 2 DA2 1 DA1 0 DA0 R/W R/W R/W R/W R/W R/W R/W • D/A コンバータ ch2 の出力電圧設定を行います。 • リセットによって初期化されません。 352 初期値 XXH 第 13 章 8 ビット D/A コンバータ ■ D/A コントロールレジスタ 0 (DACR0) D/A コントロールレジスタ 0 (DACR0) のレジスタ構成は , 以下のとおりです。 ビット アドレス : 000087H 7 - 6 - 5 - 4 - 3 - 2 - 1 - 0 DAE - - - - - - - R/W 初期値 -------0B [ ビット 0] DAE D/A コンバータ ch0 の出力の許可 / 禁止を行います。 値 内 容 0 D/A 出力禁止 ( 出力 0.0V) 1 D/A 出力許可 ■ D/A コントロールレジスタ 1 (DACR1) D/A コントロールレジスタ 1 (DACR1) のレジスタ構成は , 以下のとおりです。 ビット アドレス : 000086H 7 6 5 4 3 2 1 0 - - - - - - - DAE - - - - - - - R/W 初期値 -------0B [ ビット 0] DAE D/A コンバータ ch1 の出力の許可 / 禁止を行います。 値 内 容 0 D/A 出力禁止 ( 出力 0.0V) 1 D/A 出力許可 ■ D/A コントロールレジスタ 2 (DACR2) D/A コントロールレジスタ 2 (DACR2) のレジスタ構成は , 以下のとおりです。 ( 注意事項 ) MB91F353A/351A/352A/353A は DACR2 がありません。 ビット アドレス : 000085H 7 - 6 - 5 - 4 - 3 - 2 - 1 - 0 DAE - - - - - - - R/W 初期値 -------0B [ ビット 0] DAE D/A コンバータ ch2 の出力の許可 / 禁止を行います。 値 内 容 0 D/A 出力禁止 ( 出力 0.0V) 1 D/A 出力許可 353 第 13 章 8 ビット D/A コンバータ 13.3 8 ビット D/A コンバータの動作説明 D/A データレジスタに D/A 出力値をセットして , D/A コントロールレジスタに "1" をセットすれば , D/A 出力が開始されます。 D/A 出力の禁止を行うと , 禁止したチャネルの D/A コンバータ出力は 0.0V が出力さ れます。これは , ストップモード時にも同様です。 出力許可時の D/A コンバータの出力電圧は , 0V から 255/256 × DAVC の範囲とな ります。DAVC 端子を外部で調整することによって , 出力電圧範囲を変えることが可 能です。 ■ D/A コンバータの出力電圧の論理式 表 13.3-1 に , D/A コンバータの出力電圧の論理式を示します。 表 13.3-1 D/A コンバータの出力電圧の論理式 00H 0/256 × DAVC(=0V) 01H 1/256 × DAVC 02H 2/256 × DAVC ∼ D/A コンバータ出力 ∼ DADR0 DADR1 DADR2 の設定値 FDH 253/256 × DAVC FEH 254/256 × DAVC FFH 255/256 × DAVC ( 注意事項 ) 本 D/A コンバータの出力には , バッファアンプを内蔵していません。 354 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア この章では , UART・SIO・インプットキャプ チャ・アウトプットコンペアの概要 , レジスタの構 成 / 機能 , および動作について説明します。 14.1 UART 14.2 拡張 I/O シリアルインタフェース (SIO) 14.3 インプットキャプチャ 14.4 アウトプットコンペア 355 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア 14.1 UART UART の概要 , レジスタの構成 / 機能 , および動作について説明します。 ■ UART の概要 UART は , 非同期 ( 調歩同期 ) 通信 , または CLK 同期通信を行うためのシリアル I/O ポートで , 以下の特長があります。MB91F355A/355A/354A/F356B/F357B は , UART を 5 チャネル内蔵します。MB91F353A/351A/352A/353A は , 4 チャネル内蔵しています。 356 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア UART の特長 14.1.1 UART の特長 , レジスタ一覧 , およびブロックダイヤグラムについて説明します。 ■ UART の特長 UART の特長は , 以下のとおりです。 • 全二重ダブルバッファ • 非同期 ( 調歩同期 ) , CLK 同期通信が可能 • マルチプロセッサモードのサポート • 完全プログラマブルボーレート • 内蔵タイマにより任意のボーレートを設定可能 (「6.2 U-TIMER」参照 ) • 外部クロックによる自由なボーレートの設定が可能 • エラー検出機能 ( パリティ , フレーミング , オーバラン ) • 転送信号は NRZ 符号 • UART ch0 ∼ 2 は割込みによる DMA 転送の起動が可能 (ch3, 4 は DMA 起動不可 ) • DRCL レジスタへの書込み動作による DMAC の割込み要因クリア ■ UART のレジスタ一覧 UART のレジスタ一覧は , 以下のとおりです。 15 8 7 0 SCR SSR SMR SIDR(R)/SODR(W) DRCL 8 ビット 8 ビット (W) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 15 14 13 12 11 10 9 8 PE ORE FRE BDS RIE TIE 7 6 5 4 3 2 1 0 MD1 MD0 - - CS0 - - - 15 14 13 12 11 10 9 8 PEN P SBL CL A/D REC RXE TXE 7 6 5 4 3 2 1 0 - - - - - - - - RDRF TDRE (R/W) (R/W) シリアルインプットレジスタ シリアルアウトプットレジスタ (SIDR /SODR) シリアルステータスレジスタ (SSR) シリアルモードレジスタ (SMR) シリアルコントロールレジスタ (SCR) DRCL レジスタ (DRCL) 357 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア ■ UART のブロックダイヤグラム 図 14.1-1 に , UART のブロックダイヤグラムを示します。 図 14.1-1 UART のブロックダイヤグラム 制御信号 受信割込み (CPU へ) SCK(クロック) 送信クロック U-TIMER より 外部クロック SCK クロック 送信割込み (CPU へ) 受信クロック 選択回路 受信制御回路 SI(受信データ) 送信制御回路 スタートビット 送信スタート 検出回路 受信ビット 回路 送信ビット カウンタ カウンタ 送信パリティ 受信パリティ カウンタ カウンタ SO(送信データ) 受信状態判定回路 受信用シフタ 送信用シフタ 受信終了 SIDR 送信開始 SODR DMA 用 受信エラー発生信号 (DMAC へ) R-bus MD1 MD0 SMR レジスタ CS0 SCR レジスタ PEN P SBL CL A/D REC RXE TXE SSR レジスタ PE ORE FRE RDRF TDRE BDS RIE TIE 制御信号 358 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア 14.1.2 UART のレジスタ UART で使用するレジスタの構成および機能について説明します。 ■ シリアルモードレジスタ (SMR) シリアルモードレジスタ (SMR) のレジスタ構成は , 以下のとおりです。 ( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。 SMR アドレス : ch0 000063H 7 ch1 00006BH MD1 ch2 000073H R/W ch3 0000C3H ch3 0000CBH 6 5 4 3 2 1 0 MD0 R/W - - CS0 W - - - 初期値 00--0---B シリアルモードレジスタ (SMR) は , UART の動作モードを指定します。動作モードの 設定は動作停止中に行い , 動作中にこのレジスタへの書込みは行わないでください。 [ ビット 7, 6] MD1, MD0(MoDe select): UART の動作モードを選択します。表 14.1-1 に動作モードの選択について示します。 表 14.1-1 動作モード選択 モード MD1 MD0 0 0 0 非同期 ( 調歩同期 ) ノーマルモード ( 初期値 ) 1 0 1 非同期 ( 調歩同期 ) マルチプロセッサモード 2 1 0 CLK 同期モード - 1 1 設定禁止 動作モード <注意事項> モード 1 の CLK 非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU に数台の スレーブ CPU が接続される使用法です。本リソースでは , 受信データのデータ形式を 判別できません。したがって , マルチプロセッサモードのマスタのみをサポートしま す。 また , パリティチェック機能は使用できませんので SCR レジスタの PEN は "0" に設定 してください。 [ ビット 5, 4] (reserved) 常に "1" を書き込んでください 。 359 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア [ ビット 3] CS0(Clock Select) UART の動作クロックを選択します。 内 容 値 0 内蔵タイマ (U-TIMER) ( 初期値 ) 1 外部クロック [ ビット 2, 1] (reserved) 常に "0" を書き込んでください。 [ ビット 0] (Reverse) : 未使用ビットです。 ■ シリアルコントロールレジスタ (SCR) シリアルコントロールレジスタ (SCR) のレジスタ構成は , 以下のとおりです。 ( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。 SCR アドレス : ch0 000062H 7 ch1 00006AH PEN ch2 000072H R/W ch3 0000C2H ch3 0000CAH 6 5 4 3 2 1 0 P R/W SBL R/W CL R/W A/D R/W REC W RXE R/W TXE R/W 初期値 00000100B シリアルコントロールレジスタ (SCR) はシリアル通信を行う場合の転送プロトコルを 制御します。 [ ビット 7] PEN (Parity Enable): シリアル通信において , パリティを付加してデータ通信を行うかどうかを指定します。 内 容 値 0 パリティなし ( 初期値 ) 1 パリティあり <注意事項> パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード ( モード 0) のみです。マルチプロセッサモード ( モード 1) および CLK 同期通信 ( モード 2) では , パ リティを付加することはできません。 [ ビット 6] P (Parity) : パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指定します。 内 容 値 360 0 偶数パリティ ( 初期値 ) 1 奇数パリティ 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア [ ビット 5] SBL (Stop ビット Length) : 非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークである , ストップビット のビット長を指定します。 内 容 値 0 1 ストップビット ( 初期値 ) 1 2 ストップビット [ ビット 4] CL (Character Length) : 送受信する 1 フレームのデータ長を指定します。 内 容 値 0 7 ビットデータ ( 初期値 ) 1 8 ビットデータ <注意事項> 7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) 通信のうちのノーマルモード ( モード 0) のみです。マルチプロセッサモード ( モード 1) および CLK 同期通信 ( モード 2) では , 8 ビットデータとしてください。 [ ビット 3] A/D (Address/Data) : 非同期 ( 調歩同期 ) 通信のマルチプロセッサモード ( モード 1) において , 送受信する フレームのデータ形式を指定します。 内 容 値 0 データフレーム ( 初期値 ) 1 アドレスフレーム [ ビット 2] REC (Receiver Error Clear) : "0"を書き込むことで, SSRレジスタのエラーフラグ (PE, ORE, FRE) をクリアします。 "1" 書込みは無効であり , 読出し値は常に "1" になります。 [ ビット 1] RXE (Receiver Enable) : UART の受信動作を制御します。 内 容 値 0 受信動作を禁止します ( 初期値 )。 1 受信動作を許可します。 <注意事項> 受信中 ( 受信シフトレジスタにデータが入力されているとき ) に受信動作を禁止した場合 には , そのフレームの受信を完了し受信データバッファ SIDR レジスタに受信データをス トアしたところで受信動作を停止します。 361 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア [ ビット 0] TXE (Transmitter Enable) : UART の送信動作を制御します。 内 容 値 0 送信動作を禁止します ( 初期値 )。 1 送信動作を許可します。 <注意事項> 送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は , 送信データバッファ SODR レジスタにデータがなくなった後に送信動作を停止します。 ■ シリアルインプットデータレジスタ (SIDR) / シリアルアウトプットデータレジス タ (SODR) シリアルインプットデータレジスタ (SIDR) およびシリアルアウトプットデータレジ スタ (SODR) のレジスタ構成は , 以下のとおりです。 ( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。 SIDR アドレス : ch0 000061H ch1 000069H ch2 000071H ch3 0000C1H ch4 0000C9H 7 6 5 4 3 2 1 0 D7 R D6 R D5 R D4 R D3 R D2 R D1 R D0 R 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 SODR アドレス : 同上 XXXXXXXXB 本レジスタは , 受信 / 送信用のデータバッファレジスタです。 データ長が 7 ビットの場合 SIDR, SODR のビット 7 (D7) は無効データとなります。 BDS="1" のときは , SIDR と SODR のアクセス時に , バス上のデータの上位側と下位側 を入れかえるため , 見かけ上 ビット 0(D0) が無視されたように見えます。 SODR レジスタへの書込みは , SSR レジスタの TDRE が "1" のときに書き込んでくださ い。 <注意事項> このアドレスへの書込みは SODR レジスタへの書込みを , リードは SIDR レジスタの読出 しを意味します。 362 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア ■ シリアルステータスレジスタ (SSR) シリアルステータスレジスタ (SSR) のレジスタ構成は , 以下のとおりです。 ( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。 SSR アドレス : ch0 000060H ch1 000068H ch2 000070H ch3 0000C0H ch4 0000C8H 15 14 13 PE R ORE R FRE R 12 11 RDRF TDRE R R 10 9 8 BDS R/W RIE R/W TIE R/W 初期値 00001000B SSR は UART の動作状態を表すフラグで構成されています。 [ ビット 7] PE (Parity Error): 受信時にパリティエラーが発生したときにセットされる , 割込要求フラグです。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビット ( ビット 10) に "0" を書き込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 内 容 値 0 パリティエラーなし ( 初期値 ) 1 パリティエラーが発生 [ ビット 6] ORE (Over Run Error) : 受信時にオーバランエラーが発生したときにセットされる , 割込要求フラグです。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書 き込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 内 容 値 0 オーバランエラーなし ( 初期値 ) 1 オーバランエラー発生 [ ビット 5] FRE (FRaming Error) : 受信時にフレーミングエラーが発生したときにセットされる , 割込要求フラグです。 一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書 き込みます。 本ビットがセットされた場合には , SIDR のデータは無効データとなります。 内 容 値 0 フレーミングエラーなし ( 初期値 ) 1 フレーミングエラー発生 363 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア <注意事項> • シリアルモードレジスタのビット 3 による内 / 外ボーレートクロックの切換えは書込み 後 , すぐに反映されるので , UART が動作停止状態のときに行ってください。 • シリアルモードレジスタのビット 3 はライトオンリーです。 [ ビット 4] RDRF (Receiver Data Register Full) : SIDR レジスタに受信データがあることを示す , 割込み要求フラグです。 SIDR レジスタに受信データがロードされるとセットされ , SIDR レジスタを読み出す と自動的にクリアされます。 内 容 値 0 受信データなし ( 初期値 ) 1 受信データあり [ ビット 3] TDRE (Transmitter Data Register Empty) : SODR に送信データを書き込めることを示す , 割込み要求フラグです。 SODR レジスタに送信データを書き込むとクリアされます。書き込んだデータが送 信用シフタにロードされて転送が開始されると再びセットされ , 次の送信データを 書き込めることを表します。 内 容 値 0 送信データの書込み禁止 1 送信データの書込み許可 ( 初期値 ) [ ビット 2] BDS( ビット Direction Select) 転送方向選択ビットです。 値 内 容 0 最下位ビット (LSB) 側から転送します ( 初期値 )。 1 最上位ビット (MSB) 側から転送します。 <注意事項> シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側を入れ換えるた め SDR レジスタへデータを書き込んだ後 , このビットを書き換えると , そのデータは無 効になります。 ハーフワード (16 ビット ) にて , SODR レジスタと BDS を同時に書き換えた場合には , 書 換え前の BDS の値にしたがい , SODR レジスタへの書込みが行われます。 364 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア [ ビット 1] RIE (Receiver Interrupt Enable) : 受信割込みを制御します。 内 容 値 0 割込みを禁止します ( 初期値 )。 1 割込みを許可します。 <注意事項> 受信割込み要因は , PE, ORE, FRE によるエラー発生のほか , RDRF による正常受信があ ります。 [ ビット 0] TIE (Transmitter Interrupt Enable) : 送信割込みを制御します。 内 容 値 0 割込みを禁止します ( 初期値 )。 1 割込みを許可します。 <注意事項> 送信割込み要因は , TDRE による送信要求があります。 ■ DRCL レジスタ (DRCL) DRCL レジスタ (DRCL) のレジスタ構成は , 以下のとおりです。 DRCL アドレス : ch0 000066H ch1 00006EH ch2 000076H 15 14 13 12 11 10 9 8 W W W W W W W W 初期値 --------B DRCL は , DMAC の割込み要因をクリアするためのレジスタです。任意の値を書き込 むことによって DMAC への割込み要因がクリアされます。本レジスタは , 必ずバイト でアクセスしてください。 割込みが発生すると , DMAC 転送が終了し DMAC が DMAC 割込み要因をクリアする まで DMAC 要因を保持します。 DMAC を起動しない割込み処理により , 各種「割込み要求フラグ」がクリアされても , DMAC の割込み要因は保持したままとなります。 このため , DMAC の割込み要因が残ったまま , DMAC 起動要因に , UART を指定し DMAC を動作許可すると , 各種「割込み要求フラグ」がセットされていないにもかか わらず , DMAC が起動され意図しない動作をします。 したがって , 初めて DMAC を起動する際 , または DMAC 起動以前に , DMAC を起動し ない割込みを用いて UART を使用している場合 , このレジスタを利用して DMAC の割 込み要因をクリアしてください ( このレジスタは書込み専用です ) 。 365 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア 14.1.3 UART の動作説明 UART の動作について説明します。 ■ UART の動作モード UART は , 表 14.1-2 に示す動作モードを持ち , SMR レジスタ , SCR レジスタに値を設 定することによりモードを切り換えることができます。 表 14.1-2 に UART の動作モードを示します。 表 14.1-2 UART の動作モード モード パリティ データ長 有/無 7 有/無 8 1 無 8+1 2 無 8 0 動作モード 非同期 ( 調歩同期 ) ノーマルモード 非同期 ( 調歩同期 ) マルチプロセッサ モード CLK 同期モード ストップビット長 1 ビットまたは 2 ビット 無 ただし , 非同期 ( 調歩同期 ) モードでのストップビット長については送信動作のみ指定 が可能です。受信動作については常に 1 ビット長となります。上記モード以外では動 作しませんので , 設定しないでください。 ■ UART のクロック選択 a) 内部タイマ CS0 を "0" に設定して U-TIMER を選択した場合は , U-TIMER に設定したリロード 値でボーレートが決まります。このときのボーレートの算出式は , 以下のとおりで す。 非同期 ( 調歩同期 ) Φ / (8 × β) CLK 同期 Φ / β Φ: 周辺系マシンクロック 周波数 β:U-TIMER で設定した周期 (2n+2 または 2n+3, n はリロード値 ) 非同期 ( 調歩同期 ) モードのボーレートは , 設定したボーレートの -1% ∼+ 1% ま での範囲で転送が可能です。 b) 外部クロック CS0 を "1" に設定して外部クロックを選択した場合のボーレートは , 外部クロック の周波数を f とすると次のようになります。 非同期 ( 調歩同期 ) f/8 CLK 同期 f ただし , f は最大 3.125MHz までです。 366 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア ■ 非同期 ( 調歩同期 ) モード ● 転送データフォーマット UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。図 14.1-2 に , 転送 データフォーマットを示します。 図 14.1-2 転送データフォーマット ( モード 0, 1) SI,SO 0 1 Start LSB 1 1 0 0 1 0 1 1 MSB Stop A/D Stop (モード0) (モード1) 転送されたデータは 01001101 B 図 14.1-2 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始 まり , LSB ファーストで指定されたデータビット長の転送が行われ , ストップビット ("H" レベルデータ ) で終了します。外部クロックを選択している場合は , 常にクロック を入力してください。 ノーマルモード ( モード 0) ではデータ長を 7 ビットまたは 8 ビットに設定することが できますが , マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。 また, マルチプロセッサモードではパリティを付加することはできません。そのかわり, A/D ビットが必ず付加されます。 ● 受信動作 SCR レジスタの RXE ビット ( ビット 1) が "1" ならば , 常に受信動作が行われています。 受信ラインにスタートビットが現れると , SCR レジスタで決められたデータフォー マットにしたがい 1 フレームデータの受信が行われます。 1 フレームの受信が終わると , エラーが発生した場合にはエラーフラグのセットが行われた後 RDRF フラグ (SSR レジ スタビット 4) がセットされます。このとき同じ SSR レジスタの RIE ビット ( ビット 1) が "1" にセットされていれば CPU に対して受信割込みが発生します。SSR レジスタの 各フラグを調べ , 正常受信なら SIDR レジスタをリードして , エラーが発生していれば 必要な処理を行うようにしてください。 RDRF フラグは , SIDR レジスタをリードするとクリアされます。 ● 送信動作 SSR レジスタの TDRE フラグ ( ビット 3) が "1" のとき , SODR レジスタに送信データ を書き込みます。ここで , SCR レジスタの TXE ビット ( ビット 0) が "1" なら送信が行 われます。 SODR レジスタにセットしたデータが送信用シフトレジスタにロードされて送信が開 始されると TDRE フラグが再びセットされ , 次の送信データをセットできるようにな ります。このとき同じ SSR レジスタの TIE ビット ( ビット 0) が "1" にセットされてい れば CPU に対して送信割込みが発生して , SODR レジスタに送信データをセットする ように要求します。 TDRE フラグは , SODR レジスタにデータをセットするといったんクリアされます。 367 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア ■ CLK 同期モード ● 転送データフォーマット UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。図 14.1-3 に , 送受信 クロックとデータとの関係を示します。 図 14.1-3 転送データフォーマット ( モード 2) SODR 書込み マーク SCK RXE,TXE SI,SO 1 LSB 0 1 1 0 0 1 0 MSB (モード2) 転送されたデータは 01001101B 内部クロック (U-TIMER) を選択している場合は , データを送信するとデータ受信用同 期クロックが自動的に生成されます。 また , 外部クロックを選択している場合は , 送信側 UART の送信用データバッファ SODR レジスタにデータがあること (TDRE フラグが "0") を確かめた後 , 正確に 1 バイ ト分のクロックを供給する必要があります。また , 送信開始前と終了後は , 必ずマーク レベルにしてください。 データ長は 8 ビットのみとなり , パリティを付加することはできません。また , スター ト / ストップビットがないのでオーバランエラー以外のエラー検出は行われません。 ● 初期化 CLK 同期モードを使用する場合の , 各制御レジスタの設定値を示します。 ① SMR レジスタ MD1, MD0:10 CS: クロック入力を指定 ② PFR( ポートファンクション ) レジスタ SCE: 内部タイマの場合 1, 外部クロックの場合 "0" SOE: 送信を行う場合 1, 受信のみの場合 "0" ③ SCR レジスタ PEN:0 P, SBL, A/D: これらのビットは意味を持ちません CL:1 REC:0 ( 初期化するため ) RXE, TXE: 少なくとも , どちらか一方を "1" ④ SSR レジスタ RIE: 割込みを使用する場合 "1", 割込みを使用しない場合 "0" TIE: 0 368 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア ● 通信開始 SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の 送信データを SODR レジスタに書き込む必要があります。 ● 通信終了 SSR レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR レジス タの ORE ビットによって , 通信が正常に行われたかを判断してください。 ■ 割込み発生およびフラグのセットタイミング UART には , 5 つのフラグと 2 つの割込み要因を持ちます。 5 つのフラグは , PE/ORE/FRE/RDRF/TDRE です。PE はパリティエラー , ORE はオーバ ランエラー, FRE はフレーミングエラーのことで , 受信時エラーが発生したときにセッ トされ , SCR レジスタの REC に "0" を書き込むとクリアされます。RDRF は受信デー タが SIDR レジスタにロードされるとセットされ , SIDR レジスタを読み出すことでク リアされます。ただし , モード 1 ではパリティ検出機能 , モード 2 ではパリティ検出機 能とフレーミングエラー検出機能はありません。TDRE は , SODR レジスタが空になり 書込み可能な状態になるとセットされ , SODR レジスタへ書き込むとクリアされます。 2 つの割込み要因は , 受信用のものと送信用のものです。受信時は , PE/ORE/FRE/RDRF により割込みを要求します。送信時は , TDRE により割込みを要求します。各動作モー ドによる割込みフラグのセットタイミングを以下に示します。 ● モード 0 の受信動作時 PE, ORE, FRE, RDRF は受信転送が終了し最後のストップビットを検出するときにフラ グがセットされ , CPU への割込要求が発生します。PE, ORE, FRE がアクティブ時は , SIDR のデータは無効データとなります。 図 14.1-4 に , モード 0 の場合の ORE, FRE, RDRF のセットタイミングを示します。 図 14.1-4 ORE, FRE, RDRF のセットタイミング ( モード 0) データ D6 D7 Stop PE,ORE,FRE RDRF 受信割込み 369 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア ● モード 1 の受信動作時 ORE, FRE, RDRF は受信転送が終了し最後のストップビットを検出するときにフラグ がセットされ , CPU への割込要求が発生します。また , 受信可能なデータ長は 8 ビット のため最後の 9 ビット目のアドレス / データを示すデータは無効データとなります。 ORE, FRE がアクティブ時は , SIDR のデータは無効データとなります。図 14.1-5 に , モード 1 の場合の ORE, FRE, RDRF のセットタイミングを示します。 図 14.1-5 ORE, FRE, RDRF のセットタイミング ( モード 1) データ D7 アドレス/ データ STOP ORE,FRE RDRF 受信割込み ● モード 2 の受信動作時 ORE, RDRF は受信転送が終了し , 最後のデータ (D7) を検出するときにフラグがセット され , CPU への割込要求が発生します。ORE がアクティブ時は , SIDR のデータは無効 データとなります。図 14.1-6 に , モード 2 の場合の ORE, RDRF のセットタイミングを 示します。 図 14.1-6 ORE, RDRF のセットタイミング ( モード 2) データ D5 D6 D7 ORE RDRF 受信割込み ● モード 0, モード 1, モード 2 の送信動作時 TDRE は SODR レジスタへ書き込まれるとクリアされて内部のシフトレジスタに転送 され , 次のデータ書込みが可能な状態になるとセットされ , CPU への割込要求が発生し ます。 送信動作中に SCR レジスタの TXE に "0" ( モード 2 のときは RXE も含む ) を書き込む と , SSR レジスタの TDRE が "1" となり , 送信用のシフタが停止してから UART の送信 動作を禁止します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 のときは RXE も含む ) を書き込んだ後 , 送信が停止する前に SODR レジスタへ書き込まれたデータは 送信されます。 図 14.1-7 に , モード 0 または 1 の場合の TDRE のセットタイミングを示します。 370 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア 図 14.1-7 TDRE のセットタイミング ( モード 0, 1) SODR 書込み TDRE CPU へ割込みを要求する SO 割込み SO 出力 ST D0 D1 D2 D3 D4 D5 D6 ST:スタートビット D0~D7:デ ータビット SP:ストップビット A/D :アドレス/データマルチプレクサ D7 SP SP A/D ST D0 D1 D2 D3 D5 D6 D7 図 14.1-8 に , モード 2 の場合の TDRE のセットタイミングを示します。 図 14.1-8 TDRE のセットタイミング ( モード 2) SODR 書込み TDRE CPU へ割込みを要求する SO 割込み SO 出力 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 <注意事項> • SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮 の送信データを SODR レジスタに書き込む必要があります。 • 通信モードの設定は , 動作停止中に行ってください。モード設定時の送受信したデータ は保証されません。 • 割込みによる DMA 転送を最初に起動する前に DRCL レジスタに書き込んでください。 371 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア 14.1.4 応用例 モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU が接続されるような場合に 使用されます。 ■ システム構築例 ( モード 1 使用時 ) 図 14.1-9 に , モード 1 を使用時のシステム構築の例を示します。このリソースでは , ホ スト側の通信インタフェースのみサポートします。 図 14.1-9 モード 1 を使用時のシステム構築例 SO SI ホスト CPU SO SI スレーブCPU#0 SO SI スレーブCPU#1 通信はホスト CPU がアドレスデータを転送することによって始まります。アドレス データとは , SCR レジスタの A/D が "1" のときのデータで , それにより通信先となるス レーブ CPU が選択され , ホスト CPU との通信が可能になります。通常データは , SCR レジスタの A/D が "0" のときのデータです。図 14.1-10 に , そのフローチャートを示し ます。 このモードにおいては , パリティチェック機能は使用できませんので SCR レジスタの PEN ビットは "0" としてください。 372 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア 図 14.1-10 モード 1 使用時の通信フローチャート (ホスト CPU ) START 転送モードを1とする D0~D7 にスレーブ CPU を 選択するデータ、 A/D に "1"をセットし 1バイト転送 A/D に"0"をセット 受信動作許可 スレーブ CPU と通信 No 通信終了? Yes 他の スレーブ CPU と 通信 No Yes 受信動作禁止 END 373 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア ■ ボーレートと U-TIMER のリロード値の設定例 表 14.1-3 に非同期 ( 調歩同期 ) モードでのボーレートと U-TIMER のリロード値の設定 例を , 表 14.1-4 に CLK 同期モード時のボーレートと U-TIMER のリロード値の設定例 を示します。 表中の周波数は , 周辺系マシンクロック周波数を表します。また , UCC1 は , U-TIMER の UTIMC レジスタ UCC1 ビットに設定する値です。 表中の "-" 部は , 誤差が± 1% を超えてしまうため使用できないことを示します。 下記 U-TIMER リロード値は 10 進数で表示してあります。 表 14.1-3 非同期 ( 調歩同期 ) モード時のボーレートと U-TIMER のリロード値の設定 例 φ : 周辺系クロック周波数 ボーレート ms φ=25MHz φ=20MHz φ=12.5MHz φ=10MHz 1200 833.33 1301(UCC1=0) 1040(UCC1=1) 650(UCC1=0) 520(UCC1=0) 2400 416.67 650(UCC1=0) 520(UCC1=0) 324(UCC1=1) 259(UCC1=1) 4800 208.33 324(UCC1=1) 259(UCC1=1) 162(UCC1=1) 129(UCC1=0) 9600 104.17 161(UCC1=1) 129(UCC1=0) 80(UCC1=1) 64(UCC1=0) 19200 52.08 80(UCC1=1) 64(UCC1=0) 39(UCC1=1) 31(UCC1=1) 38400 26.04 39(UCC1=1) 31(UCC1=1) 19(UCC1=1) ── 57600 17.36 26(UCC1=0) 20(UCC1=1) 12(UCC1=1) ── 115200 8.681 12(UCC1=1) 10400 96.15 149(UCC1=0) ── 119(UCC1=0) ── 74(UCC1=0) ── 59(UCC1=0) 31250 32.00 49(UCC1=0) 39(UCC1=0) 24(UCC1=0) 19(UCC1=0) 62500 16.00 24(UCC1=0) 19(UCC1=0) 11(UCC1=1) 9(UCC1=0) *: ± 1% 以上の誤差あり 表 14.1-4 CLK 同期モード時のボーレートと U-TIMER のリロード値の設定例 φ : 周辺系クロック周波数 ボーレート ms φ=25MHz φ=20MHz φ=12.5MHz φ=10MHz 250K 4.00 49(UCC1=0) 39(UCC1=0) 24(UCC1=0) 19(UCC1=0) 11(UCC1=1) 9(UCC1=0) * 4(UCC1=0) 500K 2.00 24(UCC1=0) 19(UCC1=0) 1M 1.00 11(UCC1=1) 9(UCC1=0) *: ± 1% 以上の誤差あり 374 5(UCC1=0) 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア 14.2 拡張 I/O シリアルインタフェース (SIO) 拡張 I/O シリアルインタフェース (SIO) の概要 , レジスタの構成 / 機能 , および動作 について説明します。 ■ 拡張 I/O シリアルインタフェースの概要 本ブロックは , 8 ビット× 1 チャネル . 構成のクロック同期式によるデータ転送可能な シリアル I/O インタフェースです。 375 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア 14.2.1 拡張 I/O シリアルインタフェース (SIO) 概要 本ブロックでは , データ転送において LSB ファースト /MSB ファーストの選択が可 能です。MB91F355A/355A/354A/F356B/F357B はこの SIO を 3 チャネル内蔵して います。MB91F353A/351A/352A/353A は SIO を 2 チャネル内蔵しています。 ■ シリアル I/O の動作モード シリアル I/O の動作モードには , 以下の 2 種類があります。 • 内部シフトクロックモード : 内部クロックに同期してデータ転送を行います。 • 外部シフトクロックモード : 外部端子 (SCK) から入力されるクロックに同期してデータ転送を行います。この モードで外部端子 (SCK) を共有している汎用ポートを操作することにより , CPU の 命令による転送動作も可能です。 ■ 拡張 I/O シリアルインタフェース (SIO) のレジスタ一覧 拡張 I/O シリアルインタフェース (SIO) のレジスタ一覧は , 以下のとおりです。 15 14 13 アドレス ch5: 000024H SMD2 SMD1 SMD0 ch6: 000028H ch7: 00002CH 12 SIE アドレス ch5: 000025H ch6: 000029H ch7: 00002DH 7 - 6 - 5 - 4 - 3 MODE 2 BDS 1 - アドレス ch5: 000026H ch6: 00002AH ch7: 00002EH 15 - 14 - 13 - 12 - 11 - 10 - 9 TST1 アドレス ch5: 000027H ch6: 00002BH ch7: 00002FH アドレス ch5: 000032H ch6: 000034H ch7: 000036H アドレス ch5: 000039H ch6: 00003AH ch7: 00003BH 376 11 SIR 10 9 8 BUSY STOP STRT 0 - シリアルモード コントロールステータス レジスタ (SMCS) 8 TST0 SIO テストレジスタ (SES) 7 6 5 4 3 2 1 0 D7 D6 D5 D4 D3 D2 D1 D0 15 14 13 12 11 10 9 8 MD - - - DIV3 DIV2 DIV1 7 - 6 - 5 - 4 - 3 - 2 - 1 - シリアルデータレジスタ (SDR) DIV0 専用プリスケーラ コントロールレジスタ (CDCR) 0 - DMAC 割込み要因クリア レジスタ (SRCL) 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア ■ 拡張 I/O シリアルインタフェース (SIO) のブロックダイヤグラム 図 14.2-1 に , 拡張 I/O シリアルインタフェース (SIO) のブロックダイヤグラムを示しま す。 図 14.2-1 拡張 I/O シリアルインタフェースのブロックダイヤグラム 内 部 デ ー タ バ ス MSB (ファースト)D0~ D7 初期値 D7~D0( LS B ファースト) 転送方向選択 SI5~SI7 リード ライト SDR(シリアルデータレジスタ) SO5~SO7 SCK5~SCK7 シフトクロック カウンタ 制御回路 内部クロック 2 1 0 SMD2 SMD1 SMD0 SIE SIR BUSY STOP STRT MODE BDS 割込み 要求 SCE PFRレジスタ 内 部 デ ー タ バ ス ( 注意事項 ) MB91F353A/351A/352A/353A は SI5, SCK5, SO5 がありません。 377 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア 14.2.2 拡張 I/O シリアルインタフェースのレジスタ 拡張 I/O シリアルインタフェースで使用するレジスタの構成および機能について説 明します。 ■ シリアルモードコントロールステータスレジスタ (SMCS) シリアルモードコントロールステータスレジスタ (SMCS) のレジスタ構成は , 以下の とおりです。 SMCS 15 14 13 アドレス : 000024H SMD2 SMD1 SMD0 R/W R/W 000028H R/W 00002CH 12 11 10 9 8 SIE R/W SIR R/W BUSY R/W STOP R/W STRT R/W *1 初期値 00000010B *2 SMCS 7 6 5 4 3 2 1 0 アドレス : 000025H 000029H 00002DH - - - - MODE R/W BDS R/W - - 初期値 ----00--B *1 : ライト動作は , "0" のみ可能 *2 : ライト動作は , "0" のみ可能 , リード動作は常に "0" シリアル I/O の転送動作モードを制御するレジスタです。以下に各ビットの機能につ いて説明します。 ( 注意事項 ) MB91F353A/351A/352A/353A は SIO ch5 がありません (000024H, 000025H の設定は無効です ) 。 [ビット15, 14, 13] シフトクロック選択ビット (SMD2, SMD1, SMD0:Serial Shift Clock モード ) シリアルシフトクロックモードを以下のように選択します。 378 SMD2 SMD1 SMD0 0 0 0 φ=25MHz div=3 φ=20MHz div=4 φ=10MHz div=5 分周値 2.5MHz 1MHz 2 0 0 1 設定禁止 2.08MHz 1.25MHz 500kHz 4 0 1 0 520kHz 312kHz 125kHz 16 0 1 1 260kHz 156kHz 62.5kHz 32 1 0 0 130kHz 78kHz 31.2kHz 64 1 0 1 1 1 0 外部シフトクロックモード reserved 1 1 1 reserved 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア 通信プリスケーラ (CDCR) の設定 ( マシンクロック ) div MD DIV3 DIV2 DIV1 DIV0 3 1 1 1 0 1 4 1 1 1 0 0 5 1 1 0 1 1 6 1 1 0 1 0 7 1 1 0 0 1 8 1 1 0 0 0 リセットにより "000" に初期化されます。本ビットの転送中の書換えは禁止します。 シフトクロックは内部シフトクロック 5 種類と , 外部シフトクロックが選択できま す。 SMD2, 1, 0 = "110", "111" はリザーブですので設定しないでください。 外部シフトクロックモード選択時 , SCK5-7 端子を共有しているポートを操作するこ とによって命令ごとにシフト動作させることも可能です。 [ ビット 12] シリアル I/O 割込み許可ビット (SIE:Serial I/0 Interrupt Enable) シリアル I/O の割込み要求を以下のように制御します。 値 内 容 0 シリアル I/O 割込み禁止 ( 初期値 ) 1 シリアル I/O 割込み許可 リセットにより "0" に初期化され , リード / ライトが可能です。 [ ビット 11] シリアル I/O 割込み要求ビット (SIR:Serial I/0 Interrupt Request) シリアルデータの転送が終了すると "1" にセットされ , 割込許可時 (SIE = "1") にこ のビットが "1" になると , CPU へ割込要求が発生します。クリア条件はモードビット によって異なります。モードビットが "0" のとき , SIR ビットへの "0" 書込みにより クリアされます。モードビットが "1" のとき , SDR の読出し , または書込み動作によ りクリアされます。モードビットの値に関わらずリセット , または STOP ビットへの "1" 書込み動作によりクリアされます。 本ビットに "1" を書き込んでも意味がありません。リードモディファイライト系命令 の読出し時は , 常に , "1" が読み出されます。 [ ビット 10] 転送状態ビット (BUSY) シリアル転送が実行中かどうかを示すビットです。 BUSY 動 作 0 停止またはシリアルデータレジスタ R/W 待機状態 ( 初期値 ) 1 シリアル転送状態 リセットにより "0" に初期化されます。本ビットは , 読出しのみ可能です。 379 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア [ ビット 9] ストップビット (STOP) シリアル転送を強制的に中断させるビットです。本ビットを "1" にすると STOP = 1 による停止状態となります。 STOP 動 作 0 通常動作 1 STOP = 1 による転送停止 ( 初期値 ) リセットにより "1" に初期化されます。本ビットは , リード / ライトが可能です。 [ ビット 8] スタートビット (STRT:Start) シリアル転送の起動を行うビットです。停止状態で "1" を書くことによって転送が開 始されます。シリアル転送動作中およびシリアルシフトレジスタ R/W 待機中の "1" のライトは無視され , "0" の書込みは意味を持ちません。 読出し時には常に "0" が読み出されます。 [ ビット 3] シリアルモード選択ビット ( モード ) このビットにより停止状態からの起動条件の選択を行います。ただし , 動作中の書換 えは禁止します。 モード 動 作 0 STRT = 1 にすることにより起動します ( 初期値 ) 。 1 シリアルデータレジスタのリード / ライトにより起動します。 リセットにより "0" に初期化され , 読出し / 書込みが可能です。DMA を起動する際 には , "1" にしておいてください。 [ ビット 2] 転送方向選択ビット (BDS: ビット Direction Select) シリアルデータ入出力時に , 最下位ビット側から先に転送するか (LSB ファースト ) , 最上位ビット側から先に転送するか (MSBファースト) を, 以下のように選択します。 値 内 容 0 LSB ファースト ( 初期値 ) 1 MSB ファースト <注意事項> • 転送方向の選択は SDR にデータを書き込む前に , 設定しておいてください。 • リセットにより "0" に初期化されます。本ビットは , 読出し / 書込み可能です。 [ ビット 7 ∼ 4, 1, 0] 未使用ビット 未使用ビットです。 380 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア ■ シリアルシフトデータレジスタ (SDR) シリアルシフトデータレジスタ (SDR) のレジスタ構成は , 以下のとおりです。 本レジスタは必ずバイトでアクセスしてください。 SDR 7 アドレス : 000027H D7 00002BH R/W 00002FH 6 D6 R/W 5 D5 R/W 4 D4 R/W 3 D3 R/W 2 D2 R/W 1 D1 R/W 0 D0 R/W 初期値 XXXXXXXXB ( 不定 ) シリアル I/O の転送データを保持するシリアルデータレジスタです。転送中の SDR へ の書込み , および読出しは禁止です。 ( 注意事項 ) MB91F353A/351A/352A/353A は SIO ch5 がありません (000027H の設定は 無効です ) 。 ■ SIO テストレジスタ (SES) SIO テストレジスタ (SES) のレジスタ構成は , 以下のとおりです。 本レジスタは必ずバイトでアクセスしてください。 SES アドレス : 000026H 00002AH 00002EH 15 - 14 - 13 - 12 - 11 - 10 - 9 TST1 R/W 8 TST0 R/W 初期値 ------00B ( 不定 ) [ ビット 9, 8] TST1, TST0 テスト用のビットです。必ず "0" を書き込んでください。 ( 注意事項 ) MB91F353A/351A/352A/353A は SIO ch5 がありません (000026 H の設定 は無効です ) 。 ■ 専用プリスケーラコントロールレジスタ (CDCR) 専用プリスケーラコントロールレジスタ (CDCR) のレジスタ構成は , 以下のとおりで す。 本レジスタは必ずバイトでアクセスしてください。 CDCR 15 MD アドレス : 000032H 000034H R/W 000036H 14 - 13 - 12 - 11 DIV3 R/W 10 DIV2 R/W 9 DIV1 R/W 8 DIV0 R/W 初期値 0---1111B ( 注意事項 ) MB91F353A/351A/352A/353A は SIO ch5 がありません (000032 H の設定は 無効です ) 。 [ ビット 15] MD (Machine clock divide moDe select) 通信プリスケーラの動作許可ビットです。 値 内 容 0 通信プリスケーラは停止します ( 初期値 )。 1 通信プリスケーラは動作します。 381 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア [ ビット 11, 10, 9, 8] DIV3, DIV2, DIV1, DIV0 (DIVide3 ∼ 0) 周辺系クロック (CLKP) の分周比を決定します。 DIV3 ∼ 0 分周比 1101B 3 分周 1100B 4 分周 1011B 5 分周 1010B 6 分周 1001B 7 分周 1000B 8 分周 <注意事項> 分周比を変えた場合には , クロックの安定時間として 2 分周分の時間をおいてから通信を 行ってください。 ■ DMAC 割込み要因クリアレジスタ (SRCL) DMAC 割込み要因クリアレジスタ (SRCL) のレジスタ構成は , 以下のとおりです。 本レジスタは必ずバイトでアクセスしてください。 SRCL 7 アドレス : 000039H R/W 00003AH 00003BH 6 R/W 5 R/W 4 R/W 3 R/W 2 R/W 1 R/W 0 R/W 初期値 --------B ( 不定 ) SIO の割込み要因をクリアするためのレジスタです。任意の値を書き込むことによっ て DMAC への割込み要因がクリアされます。本レジスタは , 必ずバイトでアクセスし てください。 割込みが発生すると , DMAC 転送が終了し DMAC が DMAC 割込み要因をクリアする まで DMAC 要因を保持します。 DMAC を起動しない割込み処理により , シリアル I/O 割込み要求フラグがクリアされ ても , DMAC の割込み要因は保持したままとなります。 このため , DMAC の割込み要因が残ったまま , DMAC 起動要因に , SIO を指定し DMAC を動作許可すると , シリアル I/O 割込み要求フラグがセットされていないにもかかわら ず , DMAC が起動され意図しない動作をします。 したがって , 初めて DMAC を起動する際または DMAC 移動以前に , DMAC を起動しな い割込みを用いて SIO を使用している場合 , このレジスタを利用して DMAC の割込み 要因をクリアしてください ( このレジスタは書込み専用です ) 。 ( 注意事項 ) MB91F353A/351A/352A/353A は SIO ch5 がありません (000039H の設定は 無効です ) 。 382 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア 14.2.3 拡張 I/O シリアルインタフェース (SIO) の動作説明 本ブロックはシリアルモードコントロールステータスレジスタ (SMCS) , シリアルシ フトデータレジスタ (SDR) により構成され , 8 ビットのシリアルデータの入出力に 使用します。 ■ 拡張 I/O シリアルインタフェース (SIO) の動作概要 シリアルデータの入出力は , シフトレジスタの内容がシリアルシフトクロック ( 外部ク ロック , 内部クロック ) の立下がりに同期してビット直列にシリアル出力端子 (SO5-7 端子 ) に出力され , 立上がりに同期してシリアル入力端子 (SI5-7 端子 ) からビット直列 に SDR ( シフトレジスタ ) に入力されます。 シフトの方向 (MSB からの転送または LSB からの転送 ) は , SMCS ( シリアルモードコ ントロールステータスレジスタ ) の方向指定ビット (BDS) により指定することができ ます。 転送が終了するとシリアルモードコントロールステータスレジスタ (SMCS) のモード ビットによって停止状態または , データレジスタ R/W 待機状態に入ります。 各々の状態から転送状態に移るには , それぞれ次のことを行います。 1) 停止状態からの復帰のときは STOP ビットに "0", STRT ビットに "1" を書き込みま す (STOP と STRT は同時設定が可能です ) 。 2) シリアルシフトデータレジスタR/W待機状態からの復帰時はデータレジスタをリー ド , またはライトします。 ■ シフトクロック シフトクロックは内部シフトクロックモード, 外部シフトクロックモードの2種類があ り , SMCS の設定で指定します。 モードの切換えは , シリアル I/O が停止した状態で行ってください。停止状態の確認は , BUSY ビットを読み出すことで可能です。 ● 内部シフトクロックモード 内部クロックにより動作し , 同期タイミング出力としてデューティ比 50% のシフトク ロックが SCK 端子より出力可能です。 データが 1 クロックごとに 1 ビット転送されます。転送の速度は , 転送速度 (S) = A 内部クロックのマシンサイクル (Hz) A は SMCS の SMD ビットで示す分周比で下記の通り。 (φ ÷ div) /2, (φ ÷ div) /22, (φ ÷ div) /24, (φ ÷ div) /25, (φ ÷ div) /26 383 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア ● 外部シフトクロックモード SCK 端子から入力される外部シフトクロックに同期して , データが 1 クロックごとに 1 ビット転送されます。転送速度は DC から 1/ (8 周辺系クロックサイクル ) まで可能 です。例えば , "1" 周辺系クロックサイクル= 0.04 µs のとき , 3.125MHz まで可能です。 命令ごとに転送することもでき , 次のような設定をすることによって実現します。 外部シフトクロックモードを選択し , ポートファンクション (PFR) レジスタの SCK 対 応ビットを "0" に設定します。さらに , SCK 端子を共有しているポートの方向レジスタ に "1" を書き込み , ポートを出力モードに設定します。以上の設定をした後 , ポートの データレジスタ (PDR) に "1", "0" を書き込むと , SCK 端子に出力されるポートの値を外 部クロックとして取り込み , 転送動作を行います。シフトクロックの開始は "H" から のスタートさせてください。 <注意事項> シリアル I/O 動作中の SMCS・SDR への書込みは禁止です。 ■ シリアル I/O の動作状態 シリアル I/O の動作状態として STOP 状態 , 停止状態 , SDR の R/W 待機状態 , 転送状態 の 4 種類の状態があります。 ● STOP 状態 リセット時 , または SMCS の STOP ビットに "1" を書き込んだときの状態でシフトカウ ンタは初期化され , SIR = "0" となります。 STOP 状態からの復帰は , STOP = "0", STRT = "1" ( 同時設定可能 ) とすることによっ て行われます。STOP ビットは STRT ビットより優先ビットですので STOP = 1 のとき STRT = 1 としても転送動作は行われません。 ● 停止状態 モードビットが "0" のとき , 転送が終了したことによって SMCS が BUSY = "0", SIR = "1" となり , カウンタが初期化され停止状態に入ります。 停止状態からの復帰は STRT = "1" にすると転送動作が再開されます。 ● シリアルデータレジスタ R/W 待機状態 SMCS のモードビットが "1" のとき , シリアル転送が終了すると , BUSY = "0", SIR = "1" となりシリアルデータレジスタ R/W 待機状態に入ります。割込み許可レジスタが 許可状態ならば本ブロックより割込み信号を出します。 R/W 待機状態からの復帰はシリアルデータレジスタが読み出されたり , 書き込まれた りすると BUSY = 1 となり転送動作が再開されます。 384 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア ● 転送状態 BUSY = 1 でシリアル転送を行っている状態です。モードビットによりそれぞれ停止 状態および R/W 待機状態に遷移します。 図 14.2-2 に , 各状態の動作遷移図を示します。 図 14.2-2 I/O 拡張シリアルインタフェース動作遷移図 リセット STOP=0 & STRT=0 転送終了 STRT=0, BUSY=0 MODE=0 STOP=1 MODE=0 STOP=0 & & STOP=0 STRT=1 & 終了 転送 動作 STRT=1, BUSY=1 STOP STRT=0, BUSY=0 STOP=1 STOP=1 STOP=0 & STRT=1 シリアルデータレジスタR/W待機 MODE=1 & 終了 & STOP=0 SDRのR/W & MODE=1 STRT=1, BUSY=0 MODE=1 図 14.2-3 に , シリアルデータレジスタへのリード , ライト概念図を示します。 シリアルデータ 図 14.2-3 シリアルデータレジスタへのリード , ライト概念図 SOT SIN データバス データバス リード ライト 割込み出力 I/O 拡張 シリアル インタフェース リード ライト CPU ① ② 割込み入力 割込みコントローラ データバス ① モード= 1 のとき , シフトクロックカウンタによって転送終了し , SIR = 1 となって リード / ライト待機状態に入ります。SIE ビットが "1" ならば割込み信号を発生しま す。ただし , SIE がインアクティブのときや STOP へ "1" を書き込むことによる転送 中断のときは割込み信号は発生しません。 ② シリアルデータレジスタがリード / ライトされると , 割込み要求はクリアされシリ アル転送を開始します。 ■ シフト動作のスタート / ストップタイミングと入出力のタイミング • スタート : SMCS の STOP ビットを "0", STRT ビット "1" に設定します。 • ストップ : 転送終了によって停止するときと STOP = 1 によって停止するときがあります。 - STOP = 1 によって停止 : モードビットにかかわらず SIR = 0 のまま停止します。 - 転送終了で停止 : モードビットにかかわらず SIR = 1 となり停止します。 385 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア BUSY ビットはモードビットにかかわらずシリアル転送状態のとき "1" となり , 停止状 態 , または R/W 待機状態のとき "0" となります。転送状態を確認したいときはこのビッ トをリードしてください。 図 14.2-4 に , 内部クロックの場合のシフト動作のスタート / ストップタイミングを示し ます。 図 14.2-4 シフト動作のスタート / ストップタイミング ( 内部クロック ) SCK5~7 (転送スタート) STRT MODE=0 のとき BUSY DO0 SO5~7 "1"出力 (転送終了) DO7 (データ保持) ・ ・ ・ 図 14.2-5 に , 外部ファーストの場合のシフト動作のスタート / ストップタイミングを示 します。 図 14.2-5 シフト動作のスタート / ストップタイミング ( 外部ファースト ) SCK5~7 STRT (転送スタート) MODE=0 のとき (転送終了) BUSY DO0 SO5~7 ・ ・ ・ DO7 (データ保持) 図 14.2-6 に , 外部シフトクロックモードで命令ごとにシフトさせた場合のシフト動作 のスタート / ストップタイミングを示します。 図 14.2-6 シフト動作のスタート / ストップタイミング ( 外部シフトクロックモードで命令ごとにシフトさせた場合 ) SCK5~7 STRT PDRのSCKビット"0" PDRのSCKビット"1" (転送終了) MODE=0 のとき PDRのSCKビット"0" BUSY SO5~7 ・ ・ ・ DO6 DO7 (データ保持) <参考> 命令シフトでは , PDR の SCK に対応するビットに "1" が書き込まれたとき "H" が出力さ れ , "0" が書き込まれたとき "L" が出力されます ( ただし , 外部シフトクロックモード選択 で , PFR の SCE = 0 のとき ) 。 386 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア 図 14.2-7 に , STOP ビットを "1" としたときストップタイミングを示します。 図 14.2-7 STOP ビットを "1" としたときストップタイミング SCK5~7 (転送 スタート) STRT "1"出力 (転送終了) MODE=0 のとき BUSY STOP SO5~7 ・ ・ ・ DO3 DO4 DO5 (データ保持) <注意事項> DO7 ∼ DO0 出力データを示します。 シリアルデータの転送中は , シフトクロックの立下がりでシリアル出力端子 (SO5-7) からのデータが出力され , 立上がりでシリアル入力端子 (SI5-7) のデータが入力されま す。 図 14.2-8 に , 入出力のシフトタイミングを示します。 図 14.2-8 入出力のシフトタイミング ○ LSBファースト(BDSビットが"0"の時) SCK5~7 SI5~7 DI0 DI1 SO5~7 DO0 DO1 SIN 入力 DI2 DI3 DI4 SOT 出力 DO2 DO3 DO4 DI5 DI6 DI7 DO5 DO6 DO7 DI2 DI1 DI0 DO2 DO1 DO0 ○ LSBファースト(BDSビットが"1"の時) SCK5~7 SI5~7 DI7 DI6 SO5~7 DO7 DO6 SIN 入力 DI5 DI4 DI3 SOT 出力 DO5 DO4 DO3 387 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア ■ 割込み機能 本ブロックは , CPU に対し割込み要求を発生することができます。データの転送終了 時に割込みフラグである SIR ビットがセットされ , 割込みを許可する SMCS の SIE ビッ トが "1" のとき , CPU へ割込み要求を出力します。図 14.2-9 に , 割込み信号出力タイミ ングを示します。 図 14.2-9 割込み信号出力タイミング SCK5~7 (転送終了) BUSY SIR (注意事項) MODE=1の時 SIE=1 SDR の RD/WR SO5~7 388 DO6 DO7 (データ保持) 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア 14.3 インプットキャプチャ インプットキャプチャの概要 , レジスタの構成 / 機能 , および動作について説明しま す。 ■ インプットキャプチャの概要 本モジュールは外部から入力された信号の立上りエッジ , 立下りエッジまたは両エッ ジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保持する機能を 持っています。また , エッジ検出時に割込みを発生することができます。 389 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア 14.3.1 インプットキャプチャの概要 インプットキャプチャは , インプットキャプチャデータレジスタ , コントロールレジ スタで構成されています。 ■ 各インプットキャプチャに対応する外部入力端子 各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。 • 外部入力の有効エッジを 3 種類から選択可能です。 - 立上りエッジ - 立下りエッジ - 両エッジ • 外部入力有効エッジを検出したときに割込みを発生することができます。 MB91350A は本インプットキャプチャを 4 チャネル内蔵しています。 ■ インプットキャプチャのレジスタ一覧 インプットキャプチャのレジスタ一覧は , 以下のとおりです。 15 アドレス : ch0: 0000DAH CP15 ch1: 0000D8H ch2: 0000DEH ch3: 0000DCH アドレス :0000E1H アドレス :0000E3H 390 14 13 12 11 10 9 CP14 CP13 CP12 CP11 CP10 CP09 CP08 インプットキャプチャ データレジスタ上位 (IPCP) 0 インプットキャプチャ CP00 データレジスタ下位 (IPCP) 7 6 5 4 3 2 1 CP07 CP06 CP05 CP04 CP03 CP02 CP01 7 6 5 4 3 2 1 ICP3 ICP2 ICE3 ICE2 EG31 EG30 EG21 7 6 5 4 3 2 1 ICP1 ICP1 ICE1 ICE0 EG11 EG10 EG01 8 0 インプットキャプチャ EG20 コントロールレジスタ (ICS23) 0 インプットキャプチャ EG00 コントロールレジスタ (ICS01) 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア ■ インプットキャプチャのブロックダイヤグラム 図 14.3-1 に , インプットキャプチャのブロックダイヤグラムを示します。 図 14.3-1 インプットキャプチャのブロックダイヤグラム 16ビットタイマカウント値(T15~T00) キャプチャデータレジスタ ch0,ch2 IN0,2 入力端子 R-bus エッジ検出 EG11 EG10 EG01 EG00 EG31 EG30 EG21 EG20 16ビットタイマカウント値(T15~T00 ) キャプチャデータレジスタ ch1,ch3 IN1,3 入力端子 エッジ検出 ICP1 ICP0 ICE1 ICE0 ICP3 ICP2 ICE3 ICE2 割込み 割込み 391 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア 14.3.2 インプットキャプチャのレジスタ インプットキャプチャで使用するレジスタの構成および機能について説明します。 インプットキャプチャデータレジスタには次の 2 つのレジスタがあります。 • インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) • インプットキャプチャコントロールレジスタ (ICS01, ICS23) ■ インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) のレジスタ構成は , 以下のとお りです。 IPCP0 ∼ 3 15 アドレス ch0: 0000DAH CP15 R ch1: 0000D8H ch2: 0000DEH 7 ch3: 0000DCH CP07 R 14 13 12 11 10 9 8 CP14 R CP13 R CP12 R CP11 R CP10 R CP09 R CP08 R 6 5 4 3 2 1 0 CP06 R CP05 R CP04 R CP03 R CP02 R CP01 R CP00 R 初期値 XXXXXXXXB 初期値 XXXXXXXXB 本レジスタは , 対応した外部端子から入力される波形の有効エッジを検出したとき , 16 ビットフリーランタイマ値を保持するレジスタです。リセット時は不定です。 このレジスタは 16 ビットデータまたは , 32 ビットデータでアクセスしてください。書 込みはできません。 ■ インプットキャプチャコントロールレジスタ (ICS01, ICS23) インプットキャプチャコントロールレジスタ (ICS01, ICS23) のレジスタ構成は , 以下 のとおりです。 ICS23 アドレス : 0000E1H ICS01 アドレス : 0000E3H 392 15 14 13 12 11 10 9 8 初期値 ICP3 ICP2 ICE3 ICE2 EG31 EG30 EG21 EG20 00000000B R/W R/W R/W R/W R/W R/W R/W R/W 7 6 5 4 3 2 1 0 初期値 ICP1 ICP1 ICE1 ICE0 EG11 EG10 EG01 EG00 00000000B R/W R/W R/W R/W R/W R/W R/W R/W 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア [ ビット 7, 6] ICP3, ICP2, ICP1, ICP0 インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると 本ビットを "1" にセットします。割込み許可ビット (ICE3, ICE2, ICE1, ICE0) がセッ トされていると , 有効エッジを検出することにより割込みを発生することができま す。本ビットは , "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。 リードモディファイライト系の命令では "1" が読めます。 ICPn インプットキャプチャ割込みフラグ 0 有効エッジ検出なし ( 初期値 ) 1 有効エッジ検出あり ICPn: n の番号がインプットキャプチャのチャネル番号に対応します。 [ ビット 5, 4] ICE3, ICE2, ICE1, ICE0 インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき割込みフラグ (ICP3, ICP2, ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発生 します。 ICEn インプットキャプチャ割込み指定 0 割込み禁止 ( 初期値 ) 1 割込み許可 ICEn: n の番号がインプットキャプチャのチャネル番号に対応します。 [ ビット 3 ∼ 0] EG31, EG30, EG21, EG20, EG11, EG10, EG01, EG00 外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作許可 も兼用しています。 EGn1 EGn0 0 0 エッジ検出なし ( 停止状態 ) ( 初期値 ) 0 1 立上がりエッジ検出↑ 1 0 立下がりエッジ検出↓ 1 1 両エッジ検出↑ & ↓ エッジ検出極性 EGn1/EGn0: n の番号がインプットキャプチャのチャネル番号に対応します。 393 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア インプットキャプチャの動作説明 14.3.3 16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビット フリーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することが できます。 ■ 16 ビットインプットキャプチャの動作 図 14.3-2 に , インプットキャプチャの取込みタイミングの例を示します。 図 14.3-2 インプットキャプチャの取込みタイミング例 カウンタ値 FFFF H BFFF H 7FFF H 3FFF H 時間 0000 H リセット IN 0 IN 1 IN 2 データ レジスタ0 不定 3FFFH データ レジスタ1 データ レジスタ2 不定 不定 B FFFH BFFFH 7FFF H キャプチャ0 割込み キャプチャ1 割込み キャプチャ2割込み キャプチャ0=立上りエッジ キャプチャ1=立下りエッジ キャプチャ2=両エッジ 再度有効エッジにより割込み発生 ソフトウェアにより割込みクリア ■ 16 ビットインプットキャプチャの入力タイミング 図 14.3-3 に , 16 ビットインプットキャプチャの入力タイミングの例を示します。 図 14.3-3 16 ビットインプットキャプチャの入力タイミング Φ カウンタ値 N N+1 インプットキャプチャ入力 有効エッジ キャプチャ信号 キャプチャレジスタ値 割込み 394 N+1 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア 14.4 アウトプットコンペア アウトプットコンペアの概要 , レジスタの構成 / 機能 , および動作について説明しま す。 ■ アウトプットコンペアの概要 アウトプットコンペアは 16 ビットコンペアレジスタ , コンペア出力用ラッチ , コント ロールレジスタより構成されています。16 ビットフリーランタイマ値とコンペアレジ スタ値が , 一致したとき出力レベルを反転すると共に割込みを発生することができま す。 395 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア 14.4.1 アウトプットコンペアの特長 MB91F355A/355A/354A/F356B/F357B はアウトプットコンペアを 8 チャネル内蔵 しています。 MB91F353A/351A/352A/353A はアウトプットコンペア 2 チャネル内蔵しています。 ■ アウトプットコンペアの特長 本モジュールの特長は , 以下のとおりです。 • 8 本のコンペアレジスタを独立して動作が可能です。各コンペアレジスタに対応し た出力端子と割込みフラグ • 2 本のコンペアレジスタをペアにして出力端子を制御することが可能です。コンペ アレジスタ 2 本を使用して出力端子を反転します。 • 各出力端子の初期値を設定することが可能です。 • 割込みはコンペア一致により発生可能です。 • ch0 のコンペアレジスタは 16 ビットフリーランタイマのコンペアクリアレジスタと して使用されます。 ■ アウトプットコンペアのレジスタ一覧 アウトプットコンペアのレジスタ一覧は , 以下のとおりです。 アドレス : ch0:0000E6H ch1:0000E4H ch2:0000EAH ch3:0000E8H ch4:0000EEH ch5:0000ECH ch6:0000F2H ch7:0000F0H アドレス : ch01:0000F6H ch23:0000F4H ch45:0000FAH ch67:0000F8H 396 15 14 13 12 11 10 9 8 C15 C14 C13 C12 C11 C10 C09 C08 7 6 5 4 3 2 1 0 C07 C06 C05 C04 C03 C02 C01 C00 15 14 13 12 11 10 9 8 - - - CMOD - - OTD1 7 6 5 4 3 2 1 ICP1 ICP0 ICE1 ICE0 - - CST1 コンペアレジスタ上位 (OCCP) コンペアレジスタ下位 (OCCP) アウトプットコントロール OTD0 レジスタ上位 (OCS) 0 アウトプットコントロール CST0 レジスタ下位 (OCS) 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア ■ アウトプットコンペアのブロックダイヤグラム 図 14.4-1 に , アウトプットコンペアのブロックダイヤグラムを示します。 図 14.4-1 アウトプットコンペアのブロックダイヤグラム OTD1 OTD0 (ch0のみフリーランタイマのクリア レジスタとして使用される) コンペアレジスタ コンペア 出力用ラッチ コンペア回路 R-bus コンペア 出力用ラッチ コンペア回路 CST1 出力 (ch0,2,4,6) OTE0 ~ 7 は, PFRO にあります CMOD コンペアレジスタ OTE0,2,4,6 OTE1,3,5,7 出力 (ch1,3,5,7) CST0 ICP1 ICP 0 ICE1 ICE 0 16ビットフリーランタイマ 割込み出力 割込み出力 397 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア 14.4.2 アウトプットコンペアのレジスタ アウトプットコンペアで使用するレジスタの構成および機能について説明します。 アウトプットコンペアのレジスタには , 次の 2 つのレジスタがあります。 ■ コンペアレジスタ (OCCP0 ∼ OCCP7) コンペアレジスタ (OCCP0 ∼ OCCP7) のレジスタ構成は , 以下のとおりです。 CCCP0 ∼ 7 アドレス : ch0:0000E6H ch1:0000E4H ch2:0000EAH ch3:0000E8H ch4:0000EEH ch5:0000ECH ch6:0000F2H ch7:0000F0H 15 14 13 12 11 10 9 8 C15 R/W C14 R/W C13 R/W C12 R/W C11 R/W C10 R/W C09 R/W C08 R/W 7 6 5 4 3 2 1 0 C07 R/W C06 R/W C05 R/W C04 R/W C03 R/W C02 R/W C01 R/W C00 R/W 初期値 XXXXH ( 注意事項 ) MB91F353A/351A/352A/353A は OCCP0, OCCP2 の 2 チャネルがあります。 その他 OCCP1, OCCP3 ∼ 7 はありません。 16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。本レジス タ値は , 初期値不定ですのでコンペア値を設定してから起動を許可してください。本レ ジスタは 16 ビットまたは 32 ビットでアクセスしてください。本レジスタ値と 16 ビッ トフリーランタイマ値が一致したとき , コンペア信号が発生してアウトプットコンペ ア割込みフラグをセットします。また , ポートファンクションレジスタ (PFRO) の対応 する OTE をセットし出力許可している場合は , コンペアレジスタに対応した出力レベ ルを反転します。 ■ アウトプットコントロールレジスタ (OCS0 ∼ 7) アウトプットコントロールレジスタ (OCS0 ∼ 7) のレジスタ構成は , 以下のとおりです。 OCP01, 23, 45, 67 15 アドレス : ch01:0000F6H ch23:0000F4H ch45:0000FAH ch67:0000F8H 14 13 12 11 10 9 8 初期値 11101100B - - - CMOD R/W - - OTD1 R/W OTD0 R/W 7 6 5 4 3 2 1 0 ICP1 R/W ICP0 R/W ICE1 R/W ICE0 R/W - - CST1 R/W CST0 R/W 初期値 00001100B ch0, 1 について説明しますので , ch2, ch3, ch4, ch5, ch6, ch7 はそれぞれ ch0 → ch2, ch4, ch6, ch1 → ch3, ch5, ch7 と読み替えてください。 ( 注意事項 ) MB91F353A/351A/352A/353A は OCS45, OCS67 がありません。 398 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア [ ビット 15 ∼ビット 13] 未使用ビット 読出しは , 必ず "1" が読めます。 [ ビット 12] CMOD 端子出力を許可した場合 (OTE1=0 または OTE0=1:PFRO) のコンペア一致における端 子出力レベル反転動作モードを切り換えます。 CMOD = 0 のとき ( 初期値 ) はコンペアレジスタに対応した端子の出力レベルを反 転します。 • OC0: コンペアレジスタ 0 の一致によりレベルを反転します。 • OC1: コンペアレジスタ 1 の一致によりレベルを反転します。 CMOD = 1 のときはコンペアレジスタ 0 は , CMOD = 0 と同じく出力レベルを反転 しますが , コンペアレジスタ 1 に対応した端子 (OC1) の出力レベルは , コンペアレジ スタ 0 の一致とコンペアレジスタ 1 の一致の両方で出力レベルを反転します。 コンペアレジスタ 0 と 1 が同じ値のときはコンペアレジスタ 1 本のときと同じ動作 をします。 • OC0: コンペアレジスタ 0 の一致によりレベルを反転します。 • OC1: コンペアレジスタ 0 と 1 の一致によりレベルを反転します。 [ ビット 11, 10] 未使用ビット 読出しは , 必ず "1" が読めます。 [ ビット 9, 8] OTD1, OTD0 アウトプットコンペアレジスタの端子出力を許可した場合の端子出力レベルを変更 するときに使用します。コンペア端子出力の初期値は "0" となります。書込み時はコ ンペア動作を停止してから行ってください。読出し時は , アウトプットコンペア端子 出力値が読めます。 OTD1, OTD0 コンペア端子出力レベル 0 コンペア端子出力を "0" にします ( 初期値 ) 1 コンペア端子出力を "1" にします OTD1: アウトプットコンペア 1 に対応 OTD0: アウトプットコンペア 0 に対応 399 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア [ ビット 7, 6] ICP1, ICP0 アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリーラ ンタイマ値が一致した場合に "1" にセットされます。割込み要求ビット (ICE1, ICE0) が許可されているときに本ビットが"1"セットされるとアウトプットコンペア割込み が発生します。本ビットは "0" 書込みによりクリアされ "1" 書込みでは意味を持ちま せん。リードモディファイライト系の命令では "1" が読めます。 ICP1, ICP0 割込みフラグ 0 アウトプットコンペア一致なし ( 初期値 ) 1 アウトプットコンペア一致あり ICP1: アウトプットコンペア 1 に対応 ICP0: アウトプットコンペア 0 に対応 フリーランタイマに外部クロックを指定した場合 , コンペア一致および割込みは次 のクロックで発生します。そのため , コンペア一致出力 , および割込みを発生させる ためには , フリーランタイマの外部クロックに , コンペア一致後最低 "1 クロック " 入 力する必要があります。 [ ビット 5, 4] ICE1, ICE0 アウトプットコンペアの割込みを許可するビットです。本ビットが "1" のとき , 割込 みフラグ (ICP1, ICP0) が "1" にセットされるとアウトプットコンペア割込みが発生し ます。 ICE1, ICE0 割込み許可指定 0 アウトプットコンペア割込み禁止 ( 初期値 ) 1 アウトプットコンペア割込み許可 ICE1: アウトプットコンペア 1 に対応 ICE0: アウトプットコンペア 0 に対応 [ ビット 3, 2] 未使用ビット 読出しは , 必ず "1" が読めます。 [ ビット 1, 0] CST1, CST0 16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許 可する前に必ずコンペアレジスタ値およびアウトプットコントロールレジスタ値を 設定してください。 CST1, CST0 ビットフリーランタイマとの一致動作を許可 0 コンペア動作禁止 ( 初期値 ) 1 コンペア動作許可 CST1: アウトプットコンペア 1 に対応 CST0: アウトプットコンペア 0 に対応 アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16 ビッ トフリーランタイマを停止させるとコンペア動作も停止します。 400 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア 14.4.3 アウトプットコンペアの動作説明 16 ビットアウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフ リーランタイマ値との値を比較して一致したら割込みフラグをセットするとともに , 出力レベルを反転することができます。 ■ 16 ビットアウトプットコンペアの動作 1 チャネル独立でコンペア動作を行うことができます (CMOD=0 のとき ) 。 図 14.4-2 に , コンペアレジスタ 0, 1 を使用したときの出力波形の例を示します ( 出力の 初期値は "0") 。 図 14.4-2 コンペアレジスタ 0, 1 を使用したときの出力波形例 カウンタ値 FFFF H BFFF H 7FFF H 3FFF H 0000 H リセット コンペアレジスタ 0 値 B FFFH コンペアレジスタ 1 値 7FFFH 時間 OC0 OC1 コンペア 0 割込み コンペア 1 割込み 2 組のコンペアレジスタを使い出力レベルを変えることができます。(CMOD=1 のとき 1) を示します。 図 14.4-3 に , コンペアレジスタ 0, 1 を使用したときの出力波形の例を示します ( 出力の 初期値は "0") 。 図 14.4-3 コンペアレジスタ 0, 1 を使用したときの出力波形例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000 時間 H リセット コンペアレジスタ 0 値 B FFFH コンペアレジスタ 1 値 7FFFH OC0 OC1 コンペア 0 割込み コンペア 1 割込み 401 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア ■ 16 ビットアウトプットコンペアのタイミング 2 組のコンペアレジスタを使い , 出力レベルを変えることができます (CMOD=1 のとき 1) 。 アウトプットコンペアは , フリーランタイマと設定したコンペアレジスタの値が一致 したときにコンペアマッチ信号が発生して出力を反転するとともに割込みを発生する ことができます。コンペアマッチ時の出力反転タイミングは , カウンタのカウントタイ ミングに同期して行われます。 〔コンペアレジスタライトタイミング〕 コンペアレジスタ書換え時には , カウンタ値とはコンペアしません。 図 14.4-4 に , コンペアレジスタライトタイミングを示します。 図 14.4-4 コンペアレジスタライトタイミング N カウンタ値 N+1 _ N+ 2 N+ 3 一致信号は発生しない コンペアクリアレジスタ0値 N+ 1 M コンペアレジスタ0ライト コンペアクリアレジスタ1値 N+ 3 L コンペアレジスタ1ライト コンペア0停止 コンペア1停止 〔コンペアマッチ , 割込みタイミング〕 図 14.4-5 に , コンペアマッチ , 割込みタイミングを示します。 図 14.4-5 コンペアマッチ , 割込みタイミング Φ カウントクロック カウンタ値 コンペアレジスタ値 コンペアマッチ 端子出力 割込み 402 N N+1 _ N N+2 _ N+3 第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア 〔端子出力タイミング〕 図 14.4-6 に , 端子出力タイミングを示します。 図 14.4-6 端子出力タイミング カウンタ値 コンペアレジスタ値 N N+1 _ N N+1 _ N コンペアマッチ 端子出力 403 第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア 404 第 15 章 I2C インタフェース この章では , I2C インタフェースの概要 , レジスタ の構成 / 機能 , および動作について説明します。 15.1 I2C インタフェースの概要 15.2 I2C インタフェースのレジスタ 15.3 I2C インタフェースの動作説明 15.4 動作フローチャート 405 第 15 章 I2C インタフェース 15.1 I2C インタフェースの概要 I2C インタフェースは , Inter IC BUS をサポートするシリアル I/O ポートで , I2C バ ス上のマスタ / スレーブデバイスとして動作します。 ■ I2C インタフェースの特長 I2C インタフェースの特長は , 以下のとおりです。 • マスタ / スレーブ送受信 • アービトレーション機能 • クロック同期化機能 • スレーブアドレス / ジェネラルコールアドレス検出機能 • 転送方向検出機能 • 反復「START」条件発生および検出機能 • バスエラー検出機能 • 10 ビット /7 ビット スレーブアドレス • マスタモード時スレーブアドレス受信アクノリッジ制御 • 複合スレーブアドレス対応 • 送信 , バスエラー時に割込み可能 • 標準モード ( 最大 100kbps)/ 高速モード ( 最大 400kbps) に対応 406 第 15 章 I2C インタフェース ■ I2C インタフェースのレジスタ一覧 I2C インタフェースのレジスタ一覧は , 以下のとおりです。 • バスコントロールレジスタ (IBCR) アドレス : 000094H 初期値 → 15 14 13 12 11 10 9 8 BER BEIE SCC MSS ACK GCAA INTE INT R/W R/W W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 • バスステータスレジスタ (IBSR) アドレス : 000095H 初期値 → 7 6 5 4 3 2 1 0 BB R 0 RSC R 0 AL R 0 LRB R 0 TRX R 0 AAS R 0 GCA R 0 ADT R 0 • 10 ビットスレーブアドレスレジスタ (ITBA) アドレス : 000096H 初期値 → アドレス : 000097H 初期値 → 15 14 13 12 11 10 9 8 - - - - - - TA9 TA8 R R R R R R R/W R/W 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 TA7 R/W TA6 R/W TA5 R/W TA4 R/W TA3 R/W TA2 R/W TA1 R/W TA0 R/W 0 0 0 0 0 0 0 0 • 10 ビットスレーブアドレスマスクレジスタ (ITMK) アドレス : 000098H 15 ENTB 14 RAL 13 - 12 - 11 - 10 - 9 TM9 8 TM8 R 0 R R R R R/W R/W 1 1 1 1 1 1 7 6 5 4 3 2 1 0 TM7 R/W TM6 R/W TM5 R/W TM4 R/W TM3 R/W TM2 R/W TM1 R/W TM0 R/W 1 1 1 1 1 1 1 1 R/W 0 初期値 → アドレス : 000099H 初期値 → • 7 ビットスレーブアドレスレジスタ (ISBA) アドレス : 00009BH 初期値 → 7 6 5 4 3 2 1 0 - SA6 R/W 0 SA5 R/W 0 SA4 R/W 0 SA3 R/W 0 SA2 R/W 0 SA1 R/W 0 SA0 R/W 0 R 0 407 第 15 章 I2C インタフェース • 7 ビットスレーブアドレスマスクレジスタ (ISMK) 15 アドレス : 00009AH ENSB R/W 0 初期値 → 14 13 12 11 10 9 8 SM6 R/W 1 SM5 R/W 1 SM4 R/W 1 SM3 R/W 1 SM2 R/W 1 SM1 R/W 1 SMA R/W 1 • データレジスタ (IDAR) 7 アドレス : 00009DH D7 R/W 0 初期値 → 6 5 4 3 2 1 0 D6 R/W 0 D5 R/W 0 D4 R/W 0 D3 R/W 0 D2 R/W 0 D1 R/W 0 D0 R/W 0 • クロックコントロールレジスタ (ICCR) 15 アドレス : 00009EH TEST W 0 初期値 → 14 13 12 11 10 9 8 R 0 EN R/W 0 CS4 R/W 1 CS3 R/W 1 CS2 R/W 1 CS1 R/W 1 CS0 R/W 1 • クロックディセーブルレジスタ (IDBL) アドレス : 00009FH 初期値 → 408 7 6 5 4 3 2 1 0 R - R - R - R - R - R - R - DBL R/W 0 第 15 章 I2C インタフェース ■ I2C インタフェースのブロックダイヤグラム 図 15.1-1 に , I2C インタフェースのブロックダイヤグラムを示します。 図 15.1-1 I2C インタフェースのブロックダイヤグラム ICCR EN I2C 動作許可 IDBL DBL ICCR CS4 CS3 CS2 CS1 CS0 IBSR BB RSC CLKP クロック許可 クロック分周2 2345 32 シフトクロック エッジ変化タイミング バスビジィ リピート スタート Last ビット スタート・ストップ コンディション検出 送/受 TRX エラー First バイト ADT AL アビトレーションロスト検出 SCLI SCLO IBCR BER BEIE IBCR MSS ACK IRQ 割 込み要求 INTE INT SCC シフトクロック発生 クロック選択2 (1/12) LRB R-bus Sync 終了 スタート マスタ ACK 許可 SDA SDAO スタート・ストップ コンディション発生 GC-ACK許可 GCAA IDAR IBSR スレーブ AAS グローバル コール GCA スレーブアドレス 比較 ISMK FNSB ITMK ENTB RAL ITBA ITMK ISBA ISMK 409 第 15 章 I2C インタフェース 15.2 I2C インタフェースのレジスタ I2C インタフェースで使用するレジスタの構成および機能について説明します。 ■ I2C インタフェースのレジスタ概要 I2C インタフェースには , 次の 9 種類のレジスタがあります。 • バスステータスレジスタ (IBSR) • バスコントロールレジスタ (IBCR) • クロックコントロールレジスタ (ICCR) • 10 ビットスレーブアドレスレジスタ (ITBA) • 10 ビットスレーブアドレスマスクレジスタ (ITMK) • 7 ビットスレーブアドレスレジスタ (ISBA) • 7 ビットスレーブアドレスマスクレジスタ (ISMK) • データレジスタ (IDAR) • クロックディセーブルレジスタ (IDBL) 410 第 15 章 I2C インタフェース 15.2.1 バスステータスレジスタ (IBSR) レジスタは , 全ビット読出し専用です。I2C が動作停止 (ICCR 中の EN = 0) すると 全ビットクリアされます。 ■ バスステータスレジスタ (IBSR) バスステータスレジスタ (IBSR) のレジスタ構成は , 以下のとおりです。 アドレス : 000095H 初期値 → 7 6 5 4 3 2 1 0 BB R 0 RSC R 0 AL R 0 LRB R 0 TRX R 0 AAS R 0 GCA R 0 ADT R 0 [ ビット 7] BB (Bus Busy) I2C バスの状態を示すビットです。 値 内 容 0 「STOP」条件を検出した。 1 「START」条件を検出した ( バス使用中 ) 。 [ ビット 6] RSC (Repeated Start Condition) 反復「START」条件検出ビットです。 値 内 容 0 反復「START」条件は検出されていない。 1 バス使用中に , 反復「START」条件を検出した。 このビットは , スレーブ・アドレス転送終了 (ADT="0") , または「STOP」条件の検出 でクリアされます。 [ ビット 5] AL (Arbitration Lost) アービトレーションロスト検出ビットです。 値 内 容 0 アービトレーションロストが検出されていない。 1 マスタ送信中にアービトレーションロストが発生した。 このビットは INT ビットへの "0" 書込み , または IBCR レジスタ中の MSS ビットに "1" を書き込むことによってクリアされます。 〔アービトレーションロストが発生する例〕 • データ送信が SCL の立上がりエッジで SDA ライン上のデータと一致しない。 • データのファーストビットで , ほかのマスタによって , 反復「START」条件が発生 した。 • I2C インタフェースが , ほかのスレーブデバイスによって SCL ラインが "L" にドラ イブされているために , 「START」条件 , または「STOP」条件を生成できない。 411 第 15 章 I2C インタフェース [ ビット 4] LRB (Last Received ビット ) アクノリッジ格納ビットです。受信側からのアクノリッジを格納します。 値 内 容 0 スレーブアクノリッジを検出した。 1 スレーブアクノリッジを検出していない。 アクノリッジの検出 ( 受信 9 ビット ) により書き換わります。 「START」条件または「STOP」条件の検出でクリアされます。 [ ビット 3] TRX (Transferring data) データ転送中に送信状態を示すビットです。 値 内 容 0 データ送信中でない。 1 データ送信中。 1 セット : マスタモードで「START」条件が生成された スレーブモードでリードアクセス時 ( 送信 ) , 第一バイトの転送終了 マスタモードで送信中 0 セット : バスがアイドル状態 (BB="0":IBCR) アービトレーションロス発生 マスタ割込み中 (MSS="1", INT="1") に SCC に "1" が書き込まれた。 マスタ割込み中 (MSS="1", INT="1") に MSS ビットがクリアされた。 スレーブ時 , 転送の最後にアクノリッジが発生しなかった。 スレーブモードでの受信中 マスタモードでのスレーブからデータ受信中 [ ビット 2] AAS (Addressed As Slave) スレーブ・アドレッシング検出ビットです。 値 内 容 0 スレーブに指定されていない。 1 スレーブに指定された。 ( 反復 )「START」または「STOP」条件の検出でクリアされます。 7/10 ビットのスレーブアドレスを検出したときにセットされます。 [ ビット 1] GCA (General Call Address) ジェネラルコールアドレス (00H) 検出ビットです。 値 内 容 0 スレーブとして , ジェネラルコールアドレスを受信していない。 1 スレーブとして , ジェネラルコールアドレスを受信した。 ( 反復 )「START」または「STOP」条件の検出でクリアされます。 412 第 15 章 I2C インタフェース [ ビット 0] ADT (Address Data Transfer) スレーブ・アドレス受信検出ビットです。 値 内 容 0 受信データがスレーブ・アドレスでない ( またはバス開放中 ) 。 1 受信データがスレーブ・アドレスである。 「START」の検出で "1" にセットされます。10 ビットライトアクセスでのスレーブ・ア ドレスのヘッダが検出されると , 第二バイトのあとクリアされ , それ以外のときは , 第 一バイトのあとでクリアされます。 〔第一バイト / 第二バイトのあととは〕 • マスタ割込み (MSS="1", INT="1":IBCR) 中に MSS ビットに "0" が書き込まれた • マスタ割込み (MSS="1", INT="1":IBCR) 中に SCC ビットに "1" が書き込まれた • INT ビットがクリアされた • マスタ , またはスレーブとして転送対象でなければ , すべての転送バイトの最初 413 第 15 章 I2C インタフェース 15.2.2 バスコントロールレジスタ (IBCR) I2C インタフェースが停止 (EN="0":ICCR) すると , BER, BEIE ビットを除きすべて のビットがクリアされます。 ■ バスコントロールレジスタ (IBCR) バスコントロールレジスタ (IBCR) のレジスタ構成は , 以下のとおりです。 アドレス : 000094H 初期値 → 15 14 13 12 11 10 9 8 BER BEIE SCC MSS ACK GCAA INTE INT R/W R/W W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 [ ビット 15] BER (Bus ERror) バスエラー割込要求フラグビットです。このビットは , リードモディファイライト 系の命令では , 常に "1" が読まれます。 ( ライト時 ) 値 内 容 0 バスエラー割込み要求フラグをクリアする。 1 意味をもちません。 ( リード時 ) 値 内 容 0 バスエラーは検出されていない。 1 エラーコンディションを検出した。 このビットがセットされた場合 , CCR レジスタの EN ビットはクリアされ , I2C インタ フェースは停止状態になり , データ転送は中断されます。また , BER, BEIE を除き IBSR と IBCR レジスタのすべてのビットはクリアされます。このビットは , I2C インタフェー スを再度イネーブル (EN = 1) する前にクリアしてください。 〔"1" がセットされる場合〕 1)「START」条件 , または「STOP」条件が不正な場所で検出された ( スレーブ・アド レス転送中 , データ転送中 ) 。 2) 10 ビットリードアクセス時に , 第一バイトにて 10 ビットライトアクセスする前に , リードアクセスのスレーブ・アドレスヘッダが受信された。 3) マスタモードで転送中に「STOP」条件が検出された。 1), 2) の検出は , 転送実行中に I2C インタフェースが動作許可されていると , 不正バス エラーレポートを抑止するために , 最初の「STOP」条件の受信後フラグセットされま す。 414 第 15 章 I2C インタフェース [ ビット 14] BEIE (Bus Error Interrupt Enable) バスエラー割込み許可ビットです。 値 内 容 0 バスエラー割込み禁止。 1 バスエラー割込み許可。 このビットが "1" のとき , BER ビットに "1" がセットされると割込みを発生します。 [ ビット 13] SCC (Start Condition Continue) 反復「START」条件発生ビットです。 ( ライト時 ) 値 内 容 0 意味をもちません。 1 マスタ転送時に反復「START」条件を発生させる。 このビットの読出し値は常に "0" です。 マスタモード (MSS="1", INT="1") 中にこのビットに "1" を書き込むと , 反復「START」 条件が発生し , 自動的に INT ビットをクリアします。 [ ビット 12] MSS (Master Slave Select) マスタ / スレーブの選択ビットです。 値 内 容 0 スレーブモードとなります。 1 マスタモードとなり「START」条件を発生し IDAR レジスタの値をスレーブアドレスと して送信します。 • このビットは , マスタ送信中にアービトレーションロストが発生した場合クリアさ れ , スレーブモードになります。 • マスタ割込みフラグセット中 (MSS="1", INT="1") に "0" を書き込むと INT ビットは 自動的にクリアされ , 「STOP」条件が発生し転送が終了します。 • 注 ) MSS ビットは直接的なリセットとして機能します。 「STOP」条件の発生は , IBSR レジスタの BB ビットを調査することによって確認できます。 • バスがアイドル中 (MSS="0", BB="0") に "1" を書き込むと「START」条件が発生し , IDAR の値が送信されます。 • バス使用中 (BB="1", TRX=="0", MSS="0") に "1" を書き込むと I2C インタフェースは バスが開放されるまで待ち , 送信を開始します。その間に I2C インタフェースはラ イトアクセスを伴うスレーブとしてアドレス指定されると , 転送終了後にバスは開 放されます。その間 , スレーブとして送信中の場合 (AAS="1", TRX="1":IBCR) , バス が開放されてもデータ送信しません。I2C インタフェースがスレーブ (AAS="1": IBSR) として指定されたか , 次の割込み時にデータ送信が正常終了にした (MSS="1":IBCR) か , 不正終了した (AL="1":IBSR) かどうか確認することが重要とな ります。 415 第 15 章 I2C インタフェース <注意事項> 下記条件で使用する場合 , スレーブとして受信できませんのでジェネラルコールアドレス の送信は禁止です。 ・ 本 LSI のほかにマスタモードとなる他の LSI がバス上に存在し , 本 LSI がマスタとして ジェネラルコールアドレスを送信し , 第 2 バイト目以降でアービトレーションロストが 発生する場合 [ ビット 11] ACK (ACKnowledge) データを受信許可ビットにしたがいアクノリッジを発生するビットです。 値 内 容 0 データ受信に対しアクノリッジを発生しない。 1 データ受信に対しアクノリッジを発生する。 • このビットは , スレーブ時のスレーブ・アドレス受信時には無効となります。I2C イ ンタフェースが 7 ビット , または 10 ビットのスレーブ・アドレス指定を検出したと き , 対応するイネーブルビット (ENTB:ITMK, ENSB:ISMK) がセットされていると , アクノリッジを返します。 • このビットへの書込みは , 割込みフラグセット中 (INT="1") , またはバスが開放中 (BB="0":IBSR) , I2C インタフェースが停止中 (EN="0":ICCR) に行ってください。 [ ビット 10] GCAA (General Call Address Ackowledge) ジェネラルコールアドレスを受信した場合のアクノリッジ発生許可ビットです。 値 内 容 0 ジェネラルコールアドレスを受信に対しアクノリッジ発生しない。 1 ジェネラルコールアドレスを受信に対しアクノリッジ発生する。 このビットへの書込みは , 割込みフラグセット中 (INT="1") , またはバスが開放中 (BB="0":IBSR) , I2C インタフェースが停止中 (EN="0":ICCR) に行ってください。 [ ビット 9] INTE (INTerrupt Enable) 割込み許可ビットです。 値 内 容 0 割込み禁止。 1 割込み許可。 このビットが "1" のとき , INT ビットが "1" なら割込みを発生します。 416 第 15 章 I2C インタフェース [ ビット 8] INT (INTerrupt) 転送終了割込み要求フラグビットです。このビットは , リードモディファイ系の命 令では常に "1" が読み出されます。 ( ライト時 ) 値 内 容 0 転送終了割込み要求フラグをクリアする。 1 意味をもちません。 ( リード時 ) 値 内 容 0 転送が終了していない , または転送対象でない , バスが開放状態である。 1 アクノリッジビットを含めた 1 バイト転送が終了したときに次の条件に該当する場合 セットされます。 ・バスマスタである。 ・スレーブ・アドレスに指定された。 ・ジェネラルコールアドレスを受信した。 ・アービトレーションロストが起こった。 スレーブ・アドレスに指定されているとき , アクノリッジを含むスレーブ・アドレス受 信の最後にセットされます。 このビットが "1" のとき , SCL ラインは "L" レベルに保たれます。このビットへ "0" を 書込みによりクリアされ , SCL ラインを開放し , 次バイトの転送を行い , 反復「START」 条件 , または「STOP」条件を生成します。 このビットは, SCCビット, またはMSSビットに"1"が書き込まれると, クリアされます。 <注意事項> SCC, MSS, INT ビットの競合について SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , 反復「START」条件 , または 「STOP」条件発生の競合が起こります。このときの優先度は次のようになります。 1. 次のバイト転送と「STOP」条件発生 INT ビットに "0", MSS ビットに "0" を書き込むと , MSS ビットの書込みが優先され , 「STOP」条件が発生されます。 2. 次のバイト転送と「START」条件発生 INT ビットに "0", SCC ビットに "1" を書き込むと , SCC ビットの書込みが優先され , 反復「START」条件が発生し IDAR の値が送信されます。 3. 反復「START」条件発生と「STOP」条件発生 SCC ビットに "1", MSS ビットに "0" を書き込むと , MSS ビットのクリアが優先され ます。「STOP」条件が発生し I2C インタフェースはスレーブモードになります。 4. 図 1 と図 2 に示したタイミングで , スタートコンディションを発生させる命令を実行 (MSS ビットへの 1 設定 ) すると , アービトレーションロスト検出 (AL ビット =1) によ る割込み (INT ビット =1) が発生しません。 417 第 15 章 I2C インタフェース 5. AL ビット =1 検出による割込み (INT ビット =1) が発生しない条件 1 スタートコンディション未検出 (BB ビット =0) 状態で , SDA 端子または SCL 端子レベ ルが "L" の時に , スタートコンディションを発生させる命令を実行 (IBCR レジスタの MSS ビットに 1 を設定 ) した場合。 図 15.2-1 AL ビット =1 検出による割込みが発生しないタイミング図 SCL端子またはSDA端子が"L"レベル SCL端子 "L" SDA端子 "L" I 2C動作許可状態(ENビット=1) 1 マスタモード設定(MSSビット=1) アービトレーションロスト検出 (ALビット=1) バスビジー(BBビット) 0 割込み(INTビット) 0 6. AL ビット =1 検出による割込み (INT ビット =1) が発生しない条件 2 他のマスタに I2C バスが占有されている状態で , I2C 動作許可 (EN ビット =1) してス タートコンディションを発生させる命令を実行 (IBCR レジスタの MSS ビットに 1 を 設定 ) した場合。 図 2 に示した通り , I2C が動作禁止 (EN ビット =0) の状態で , I2C バス上の他のマスタ が通信を開始すると , スタートコンディション未検出 (BB ビット =0) で I2C バスが占 有されている状態になるためです。 図 15.2-2 AL ビット =1 検出による割込みが発生しないタイミング図 Start Condition 9クロック目でINTビット 割込みが発生しない Stop Condition SCL端子 SDA端子 SLAVE ADDRESS ACK DATA ACK ENビット MSSビット ALビット 418 BBビット 0 INTビット 0 第 15 章 I2C インタフェース 上記のような現象が発生する可能性がある場合には , 以下の手順でソフト処理をお願 いします。 1) スタートコンディションを発生させる命令を実行 (MSS ビットへの 1 設定 )。 2) タイマ機能などを用いて , ICCR レジスタに設定されている I2C 転送周波数での 3 ビットデータ送信時間ウェイト * する。 例 : I2C 転送周波数 100 kHz の場合 {1/ (100 × 103)} × 3 = 30 µs 3 ビットデータ送信時間 3) IBSR レジスタの AL ビットと BB ビットを確認し , AL ビット =1, BB ビット =0 の場合には , ICCR レジスタの EN ビットを 0 にして I2C を初期化する。AL ビッ トと BB ビットがその他の状態の時は通常処理を行う。 以下にフロー例を示します。 マスタモード設定 バス制御レジスタ (IBCR) の MSS ビットに "1" を設定 クロック制御レジスタ (ICCR) に設定されている I2C 転送周波数での 3 ビットデータ送信時間ウェイト * no BB ビット = 0 でかつ AL ビット = 1 yes EN ビットを "0" にして I2C の初期化 通常処理へ * : アービトレーションロストが検出された場合 , MSS ビット =1 設定後 I2C 転送 周波数での 3 ビットデータ送信時間後には確実に AL ビット =1 となります。 7. AL ビット =1 検出による割込み (INT ビット =1) が発生する例 バスビジー検出 (BB ビット =1) されている状態で , スタートコンディションを発生さ せる命令を実行 (MSS ビットへの 1 設定 ) しアービトレーションロストした場合には , AL ビット =1 検出時に INT ビット割込みが発生します。 図 15.2-3 AL ビット =1 時に割込みが発生するタイミング図 9クロック目で割込み Start Condition SCL端子 SDA端子 SLAVE ADDRESS ACK DATA ENビット MSSビット ALビット BBビット ソフトでのALビットクリア ソフトでのINTビット クリアでSCL開放 INTビット 419 第 15 章 I2C インタフェース 15.2.3 クロックコントロールレジスタ (ICCR) クロックコントロールレジスタは , I2C インタフェースの動作許可およびシリアルク ロックの周波数を設定します。 ■ クロックコントロールレジスタ (ICCR) クロックコントロールレジスタ (ICCR) のレジスタ構成は以下のとおりです。 15 アドレス : 00009EH TEST W 0 初期値 → 14 13 12 11 10 9 8 R 0 EN R/W 0 CS4 R/W 1 CS3 R/W 1 CS2 R/W 1 CS1 R/W 1 CS0 R/W 1 [ ビット 15] テストビット 必ず "0" を設定してください。 [ ビット 14] 未使用ビット 必ず "0" を設定してください。 [ ビット 13] EN (ENable) I2C インタフェース動作許可ビットです。 値 内 容 0 動作禁止。 1 動作許可。 EN ビットが "0" のとき , IBSR レジスタ , IBCR レジスタ (BER, BEIE ビットを除く ) の各ビットはクリアされます。バスエラー発生 (BER="1":IBCR) によりこのビットは クリアされます。 ( 注意事項 ) 動作禁止にすると , I2C インタフェースは , 直ちに送受信を停止します。 [ ビット 12 ∼ 8] CS4 ∼ CS0 (Clock Period Select 4 ∼ 0) シリアルクロックの周波数を設定するビットです。 このビットは , I2C インタフェースを動作禁止 (EN="0") にするか , EN ビットがクリ アされたときにのみ書込み可能です。 シフトクロックの周波数 fsck は次式のように設定されます。 fsck = 420 φ N×12 + 16 N>0 φ:周辺マシンクロック(=CLKP) 第 15 章 I2C インタフェース レジスタ設定 n CS4 CS3 CS2 CS1 CS0 1 0 0 0 0 1 2 0 0 0 1 0 3 0 0 0 1 1 ••• ••• ••• ••• ••• ••• 31 1 1 1 1 1 CS4 ∼ CS0=00000 は設定禁止です。 クロック周波数 CLKP[MHz] 100K bps 400K bps n n fsck fsck 25 20 98 4 396.8 12.5 9 101.6 2 320.5 16.7 13 97.6 3 327.4 8.33 6 95.7 1 308.5 7.14 5 95.2 1 264.4 6.25 4 99.2 1 231.4 421 第 15 章 I2C インタフェース 15.2.4 10 ビットスレーブアドレスレジスタ (ITBA) 10 ビットスレーブアドレスレジスタの書換えは動作停止中に行ってください (EN=0:ICCR)。 ■ 10 ビットスレーブアドレスレジスタ (ITBA) 10 ビットスレーブアドレスレジスタ (ITBA) のレジスタ構成は , 以下のとおりです。 アドレス : 000096H 初期値 → アドレス : 000097H 初期値 → 15 - 14 - 13 - 12 - 11 - 10 - 9 TA9 8 TA8 R R R R R R R/W R/W 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 TA7 R/W TA6 R/W TA5 R/W TA4 R/W TA3 R/W TA2 R/W TA1 R/W TA0 R/W 0 0 0 0 0 0 0 0 ITBAH ITBAL [ ビット 15 ∼ 10] リード時は常に "0" です。 [ ビット 9 ∼ 0] 10 ビットスレーブアドレスビット (A9 ∼ A0) 10 ビットアドレスが有効 (ITMK:ENTB="1") のとき , スレーブモードでスレーブ・ア ドレスを受信すると , 受信アドレスと ITBA と比較します。 アクノリッジは , 10 ビットライトアクセスのアドレスヘッダ受信後 , マスタに送信 されます。 第一 , 第二バイト受信データと ITBA レジスタと比較されます。一致が検出されると , アクノリッジ信号が , マスタデバイスに送信し , AAS ビットがセットされます。 I2C インタフェースは , 反復「START」条件のあと 10 ビットリードアクセスのアド レスヘッダの受信に応答します。 スレーブ・アドレスの全ビットは , ITMK の設定によりマスクされます。受信スレー ブ・アドレスは , ITBA レジスタに上書きされます。このレジスタが有効なのは , AAS (IBSR レジスタ ) が "1" のときのみです。 422 第 15 章 I2C インタフェース 15.2.5 10 ビットスレーブアドレスマスクレジスタ (ITMK) 10 ビットスレーブアドレスマスクレジスタ (ITMK) について説明します。 ■ 10 ビットスレーブアドレスマスクレジスタ (ITMK) 10ビットスレーブアドレスマスクレジスタ (ITMK) のレジスタ構成は, 以下のとおりで す。 アドレス : 000098H 15 ENTB 14 RAL 13 - 12 - 11 - 10 - 9 TM9 8 TM8 R 0 R R R R R/W R/W 1 1 1 1 1 1 7 6 5 4 3 2 1 0 TM7 R/W TM6 R/W TM5 R/W TM4 R/W TM3 R/W TM2 R/W TM1 R/W TM0 R/W 1 1 1 1 1 1 1 1 R/W 0 初期値 → アドレス : 000099H 初期値 → [ ビット 15] ENTB: 10 ビットスレーブアドレス許可ビット 10 ビットスレーブアドレス動作許可ビットです。 値 内 容 0 10 ビットスレーブアドレス動作禁止。 1 10 ビットスレーブアドレス動作許可。 このビットへの書込みは , I2C インタフェースが停止状態 (ICCR:EN="0") で行ってくだ さい。 [ ビット 14] RAL: スレーブアドレス長ビット このビットは , スレーブアドレス長を示します。 値 内 容 0 7 ビットスレーブアドレス。 1 10 ビットスレーブアドレス。 このビットは , 10 ビット / 7 ビットスレーブアドレスの動作許可ビットが両方許可 (ENTB=1, ENSB=1) になっている場合に , 10 ビット , 7 ビットスレーブアドレス動作の どちらの転送長が有効になるかの決定に使用できます。 このビットは AAS ビット (IBSR) が "1" のときに有効です。 このビットはインタフェースの動作を禁止 (ICCR:EN="0") したときにクリアされま す。 このビットはリードのみ可能です。 [ ビット 13 ∼ 10] 未使用ビット リード時は常に "1" が読まれます。 423 第 15 章 I2C インタフェース [ ビット 9 ∼ 0] 10 ビットスレーブアドレスマスクビット このビットは 10 ビットスレーブアドレスレジスタ (ITBA) のビットをマスクします。 このレジスタへの書込みは , I2C インタフェースが動作禁止 (EN="0":ICCR) のとき 行ってください。 値 内 容 0 当該ビットをスレーブアドレス比較に使用しない。 1 当該ビットをスレーブアドレス比較に使用する。 このビットを設定することにより複合 10 ビットスレーブアドレスに対してアクノリッ ジを送信することが可能になります。このレジスタを , 10 ビットスレーブアドレス比 較に使用されるときに , このビットを "1" にセットしてください。受信したスレーブア ドレスは , ITBA に上書きされます。ASS = "1" (IBSR) のとき ITBA レジスタを読み出 すことによって実際の指定されたスレーブ・アドレスを特定できます。 ITMK の TM9-0 の各ビットが ITBA のアドレスの各ビットに対応しており TM9-0 の値 が "1" のときは ITBA のアドレスが有効になり "0" のときは無効になります。 例: ITBA アドレス 0010010111B ITMK アドレス 1111111100B のとき スレーブアドレスは 0010010100B ∼ 0010010111B の空間になります。 424 第 15 章 I2C インタフェース 15.2.6 7 ビットスレーブアドレスレジスタ (ISBA) 7 ビットスレーブアドレスレジスタの書換えは動作停止中に行ってください (EN=0 in ICCR)。 ■ 7 ビットスレーブアドレスレジスタ (ISBA) 7 ビットスレーブアドレスレジスタ (ISBA) のレジスタ構成は , 以下のとおりです。 アドレス : 00009BH 初期値 → 7 R 0 6 5 4 3 2 1 0 SA6 R/W 0 SA5 R/W 0 SA4 R/W 0 SA3 R/W 0 SA2 R/W 0 SA1 R/W 0 SA0 R/W 0 [ ビット 7] 未使用ビット リード時は "0" です。 [ ビット 6 ∼ 0] スレーブアドレスビット (SA6 ∼ SA0) スレーブモードでスレーブ・アドレスを受信したとき , 7 ビットスレーブアドレスが 許可 (ISMK:ENSB="1") されていると , 受信スレーブ・アドレスと ISBA と比較を行 います。スレーブ・アドレス一致が検出されると , マスタに対してアクノリッジを 送信し , AAS ビットをセットします。 I2C インタフェースは , 反復「START」条件のあと 7 ビットリードアクセスのアドレ スヘッダの受信にアクノリッジを返します。 スレーブ・アドレスの全ビットは , ISMK の設定によりマスクされます。受信スレー ブ・アドレスは , ISBA レジスタに上書きされます。このレジスタが有効なのは , AAS (IBSR レジスタ ) が "1" のときのみです。 I2C インタフェースは , 10 ビットスレーブアドレス指定 , またはジェネラルコールが 受信されたとき , ISBA と受信スレーブ・アドレスとの比較を行いません。 425 第 15 章 I2C インタフェース 15.2.7 7 ビットスレーブアドレスマスクレジスタ (ISMK) 7 ビットスレーブアドレスマスクレジスタの書換えは動作停止中に行ってください (EN=0 in ICCR)。 ■ 7 ビットスレーブアドレスマスクレジスタ (ISMK) 7 ビットスレーブアドレスマスクレジスタ (ISMK) のレジスタ構成は , 以下のとおりで す。 アドレス : 00009AH 初期値 → 15 ENSB R/W 0 14 13 12 11 10 9 8 SM6 R/W 1 SM5 R/W 1 SM4 R/W 1 SM3 R/W 1 SM2 R/W 1 SM1 R/W 1 SM0 R/W 1 [ ビット 15] ENSB: 7 ビットスレーブアドレス許可ビット 7 ビットスレーブアドレス動作許可ビットです。 値 内 容 0 7 ビットスレーブアドレス動作禁止。 1 7 ビットスレーブアドレス動作許可。 [ ビット 14 ∼ 8] SM6 ∼ SM0: 7 ビットスレーブアドレスマスクビット このビットは 7 ビットスレーブアドレスレジスタ (ISBA) のビットをマスクします。 値 内 容 0 当該ビットをスレーブアドレス比較に使用しない。 1 当該ビットをスレーブアドレス比較に使用する。 このビットを設定することにより複合 7 ビットスレーブアドレスに対してアクノリッ ジを送信することが可能になります。このレジスタを , 7 ビットスレーブアドレス比較 に使用されるときに , このビットを "1" にセットしてください。受信したスレーブアド レスは , ISBA に上書きされます。ASS = "1" (IBSR) のとき ISBA レジスタを読み出す ことによって実際の指定されたスレーブ・アドレスを特定できます。 I2C インタフェースが許可になった後 , スレーブ・アドレス (ISBA) は , 受信動作によっ て書き換えられるため , SMK が書き換えたときは , SMK を再設定しないと期待どおり の動作をしないことがあります。 ISMK の SM6-0 の各ビットが ISBA のアドレスの各ビットに対応しており SM6-0 の値 が "1" のときは ISBA のアドレスが有効になり "0" のときは無効になります。 例: ISBA アドレス 0010111B ISMK アドレス 1111100B のとき スレーブアドレスは 0010100B ∼ 0010111B の空間になります。 426 第 15 章 I2C インタフェース 15.2.8 データレジスタ (IDAR) データレジスタ (IDAR) について説明します。 ■ データレジスタ (IDAR) データレジスタ (IDAR) のレジスタ構成は , 以下のとおりです。 7 アドレス : 00009DH D7 R/W 0 初期値 → 6 5 4 3 2 1 0 D6 R/W 0 D5 R/W 0 D4 R/W 0 D3 R/W 0 D2 R/W 0 D1 R/W 0 D0 R/W 0 [ ビット 7 ∼ 0] データビット (D7 ∼ D0) シリアル転送に使用されるデータレジスタであり , MSB から転送されます。 このレジスタの書込み側はダブルバッファになっており, バスが使用中 (BB=1) であ る場合 , 書込みデータはシリアル転送用のレジスタにロードされます。INT ビット (IBCR) がクリアされるか , バスがアイドル状態 (BB="0":IBSR) のとき転送データは 内部転送レジスタにロードされます。 読出し時はシリアル転送用のレジスタを直接読み出すため , 本レジスタの受信デー タは INT ビット (IBCR) がセットされている場合のみ有効です。 427 第 15 章 I2C インタフェース クロックディセーブルレジスタ (IDBL) 15.2.9 クロックディセーブルレジスタ (IDBL) について説明します。 ■ クロックディセーブルレジスタ (IDBL) クロックディセーブルレジスタ (IDBL) のレジスタ構成は , 以下のとおりです。 アドレス : 00009FH 初期値 → 7 6 5 4 3 2 1 0 R - R - R - R - R - R - R - DBL R/W 0 [ ビット 0] クロックディセーブルビット (DBL) このビットは I2C インタフェース用の動作クロック供給の許可 , 停止を指示します。 低消費電力時に使用できます。 値 内 容 0 I2C のクロックを供給します。 1 I2C のクロックを停止します。I2C ラインは開放されます。 本ビットは , リセットにより "0" に初期化されます。 本ビットに "1" を書き込むと , 本レジスタ (IDBL) を除き , 読出し値は不定値となり , 本 ビット ( 本レジスタ ) 以外の書込みは無効になります。 <注意事項> このビットを "1" にすると I2C は送受信中でも直ちに停止します。 428 第 15 章 I2C インタフェース 15.3 I2C インタフェースの動作説明 I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン (SCL) の 2 本の双方向バスラインにより転送が行われます。 I2C インタフェースはそれに対して 2 本のオープンドレイン入出力端子 (SDA, SCL) を有し , ワイヤード論理を可能にします。 ■「START」条件 バスが開放されている状態 (BB=0, MSS=0) で MSS ビットに "1" を書き込むと , I2C イ ンタフェースはマスタモードとなり , 「START」条件を発生します。そのとき , スレー ブ・アドレスとして IDAR レジスタの値を送信します。 バスマスタモードで割込みフラグがセットされているとき (MSS="1", INT="1":IBCR) , SCC ビットに "1" を書き込むことで , 反復「START」条件が生成されます。 バス使用時 (BB="1", TRX="0":IBSR, MSS="0" または INT="0":IBCR) に , MSS ビットに "1" を書き込むとバスが開放され , 送信が開始されます。 スレーブモード時ライト ( 受信 ) アクセスされると , 転送終了しバスが開放された後 , 送信開始します。そのとき , インタフェースがデータ送信中であれば , バスが開放され ても送信しません。 インタフェースは , 次のことをチェックする必要があります。 • スレーブとして指定された (MSS="0":IBCR, AAS="1":IBSR) かどうか。 • 次の割込みで , データバイトを正常に送れた (AL="1":IBSR) かどうか。 ■「STOP」条件 マスタモード (MSS=1, INT="1":IBCR) 時に , MSS ビットに "0" を書き込むと , 「STOP」 条件を発生し , スレーブモードになります。ほかの条件での , MSS に "0" 書込みは , 無 視されます。 MSS ビットがクリアされたあと , 「STOP」条件を生成しようとします。 「STOP」条件 を生成する前に , SCL ラインが "L" にドライブされているときは , 生成されません。次 のバイトが転送されたあと割込みが生成されます。 <注意事項> MSS ビットに "0" を書き込んでから , 「STOP」条件を発生するまでに時間を要します。 「STOP」条件を発生前に I2C インタフェースを動作禁止 (DBL="1":IDAR or EN="0":ICCR) にすると , 直ちに動作停止し SCL ラインに不正クロックが発生します。I2C インタフェー スを動作禁止する際には , 「STOP」条件の発生を確認 (BB=0:IBSR) した後 , 動作を禁止 (DBL="1":IDAR or EN="0":ICCR) してください。 429 第 15 章 I2C インタフェース ■ スレーブアドレス検出 スレーブモードでは , 「START」条件発生後 , BB=1 にセットされ , マスタからの送信 データを IDAR レジスタへ受信します。 〔7 ビットスレーブアドレス動作許可の場合〕(ENSB=1 in ISMK) 8 ビットデータ受信後 IDAR レジスタと ISBA レジスタとの比較が行われます。このと き , ISMK レジスタによりビットマスクされた値との比較になります。 一致している場合 , AAS=1 にセットし , マスタに対してアクノリッジを送信します。そ の後 , 受信データのビット 0 ( 受信後の IDAR レジスタのビット 0) を反転して TRX ビッ トへ格納します。 〔10 ビットスレーブアドレス動作許可の場合〕(ENTB=1 in ITMK) 10 ビットアドレスのヘッダ部 (11110, TA1, TA0, write) を検出したらマスタに対してア クノリッジを送信し受信データのビット 0 を反転して TRX ビットへ格納します。この とき割込みは発生しません。 続いて , 次の転送データと ITBA レジスタの下位データとの比較が行われます。このと き ISMK レジスタによりビットマスクされた値との比較になります。 一致している場合 , AAS に "1" をセットし , マスタに対してアクノリッジを送信しま す。このとき割込みが発生します。 スレーブとしてアドレス指定され , 反復「START」条件を検出した場合 , 10 ビットア ドレスのヘッダ部 (11110, TA1, TA0, read) を受信後に AAS に "1" をセットし , 割込みを 発生します。 10 ビットスレーブアドレスレジスタ (ITBA) と 7 ビットスレーブアドレスレジスタ (ISBA) を搭載しているので , 両方の動作許可 (ENSB=1 in ISMK, ENTB=1 in ITMK) をす ることにより , 10 ビットアドレス / 7 ビットアドレスに対してアクノリッジを送信す ることができます。 スレーブモード時 (AAS="1") の受信スレーブアドレス長は, ITMKレジスタのRALビッ ト に よ っ て 決 定 し ま す。マ ス タ モ ー ド 時 は , 両 方 の 動 作 を 禁 止 (ENSB=0:ISMK, ENTB=0:ITMK) することにより , I2C インタフェースにスレーブアドレスを生成しない ことが可能です。 全スレーブアドレスは , ITMK, ISMK レジスタを設定することによりマスクできます。 ■ スレーブアドレスマスク スレーブアドレスマスクレジスタ (ITMK, ISMK) は , スレーブアドレスレジスタの各 ビットに対してマスクすることができます。マスクレジスタに "1" をセットされたビッ トはアドレス比較を行いますが , "0" に設定されているビットは無視されます。スレー ブモード (AAS="1":IBSR) 時 , 受信スレーブアドレスは , ITBA (10 ビットアドレス時 ) , ISBA (7 ビットアドレス時 ) レジスタから読み出せます。 ビットマスクがクリアされていると , 常にスレーブとしてアクセスされるので , バスの モニタとして使用できます。 <注意事項> ほかのスレーブデバイスがない場合でも , スレーブアドレスを受信するとアクノリッジを 返すので , この機能は , リアルバスモニタとはなりません。 430 第 15 章 I2C インタフェース ■ マスタアドレッシング マスタモードでは , 「START」条件発生後 , BB=1, TRX=1 をセットし , IDAR レジスタ の内容を MSB から出力します。アドレスデータ送信後 , スレーブからアクノリッジを 受信すると , 送信データのビット 0 ( 送信後の IDAR レジスタのビット 0) を反転して TRX ビットへ格納します。この動作は , 反復「START」条件でも実行されます。 ライト 10 ビットスレーブアドレスのために , 2 バイト送信します。第一バイトは , 10 ビットシーケンスを示すヘッダ"1 1 1 1 0 A9 A8 0"であり, 続いて, 第二バイトでスレー ブアドレスの下位 8 ビット (A7-A0) を送信します。 リード 10 ビットスレーブデバイスは上記のバイトを送信し , 反復「START」条件とと もに , リードアクセスを示すヘッダ "1 1 1 1 0 A9 A8 1" を生成します。 7 ビット スレーブアクセス 10 ビット スレーブアクセス ライト 「START」条件 -A6 A5 A4 A3 A2 A1 A0 0 リード 「START」条件 -A6 A5 A4 A3 A2 A1 A0 1 ライト 「START」条件 -1 1 1 1 0 A9 A8 0-A7 A6 A5 A4 A3 A2 A1 A0 リード 「START」条件 -1 1 1 1 0 A9 A8 0-A7 A6 A5 A4 A3 A2 A1 A0 - 反復「START」条件 -1 1 1 1 0 A9 A8 1 ■ アービトレーション マスタ送信時に , ほかのマスタも同時にデータを送信している場合 , アービトレーショ ンが起こります。自身の送信データが "1", SDA ライン上のデータが "L" レベルの場合 , 自身はアービトレーションを失ったと見なし , AL=1 にセットします。 インタフェースがデータの最初のビットで , 不要な「START」条件を検出されるか 「START」条件 , 「STOP」条件の生成が失敗した場合 , AL=1 がセットされます。 アービトレーションロストが発生すると , MSS=0, TRX=0 となり , スレーブ受信モード となり , 自身のスレーブアドレスを受信するとアクノリッジを返します。 ■ アクノリッジ アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , ACK ビット (IBCR) によって , 受信時にアクノリッジを送信するかどうかを選択することができま す。 スレーブモード時のデータ送信 ( ほかのマスタからのリードアクセス ) に , マスタから アクノリッジがなくても , TRX ビットは "0" にセットし , 受信モードになります。これ により , マスタはスレーブが SCL ラインを開放したときに , ストップコンディション を発生することができます。 マスタモード時 , LRB ビット (IBSR) を読み出すことにより , アクノリッジがあったか どうかをチェックできます。 ■ バスエラー 以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に なります。 • データ転送中 (ACK ビット含む ) の I2C バス 上の基本規定違反の検出 • マスタ時のストップコンディション検出 • バスアイドル時の I2C バス上の基本規定違反の検出 431 第 15 章 I2C インタフェース ■ エラーを発生しない通信エラー マスタモード送信時 , SCL ラインにノイズ等で不正クロックが発生すると , I2C インタ フェースの送信ビットカウンタが早く進み , ACK サイクルでスレーブが SDA ラインに "L" を出したまま , ハングアップすることがあります。このようなクロックの不正に対 し , エラー (AL="1", BER="1") が発生しません。 この場合次の方法でエラー処理をしてください。 1) MSS = "1", TRX = "1", INT = "1" のとき , LRB = "1" であれば , 通信エラーと判断。 2) ここで , EN = "0" とし , その後 EN = "1" とすることにより , 擬似的に SCL が 1 ク ロック発生します。 これにより , スレーブにバスを開放させます。 EN = "0" から EN = "1" の期間は , スレーブ側が , クロックと認識できる期間 ( 送信 クロックの "H" 期間と同じ程度 ) としてください。 3) EN = "0" の時点で , IBSR, IBCR はクリアされますので , 「START」コンディション から再送信処理をしてください。このとき , BSS = "0" による「STOP」コンディ ションは生成されません。 このとき , EN = "1" から MSS = "1" (「START」コンディション ) までに , "n × 7 × tCPP" 以上の時間を空けてください。 例 : 高速モードの場合 : 6 × 7 × 40 ≒ 1.680µs 標準モードの場合 :27 × 7 × 40 ≒ 7.560µs (CLKP=25MHz 時 ) <注意事項> BER がセットされている場合は , EN = "0" でクリアされません。クリア後 , 再送信して ください。 432 第 15 章 I2C インタフェース ■ その他 1) アービトレーションロストした後 , 自分がアドレッシングされている場合と , アド レッシングされていなかった場合をソフトで判断しなければなりません。 アービトレーションロストするとハード的にスレーブになりますが , 1 バイト転送 終了後 , CLK ライン , DATA ライン双方を "L" に引っ張ります。このため , アドレッ シングされていなければ , 即座に CLK ライン , DATA ラインを開放し , アドレッシ ングされていた場合には , スレーブ送信または , スレーブ受信の準備をしてから , CLK ライン , DATA ラインを開放する必要があります ( すべてソフトにて処理する 必要があります ) 。 2) I2C バスには 1 つの割込みしかなく , 1 バイト転送終了した時点で , あるいは割込み 条件に該当していた場合 , 割込み要因が発生する仕様になっています。 1 つの割込みで , 複数の割込み条件を判断しなければならないため , 割込みルーチン 内で , 各フラグをチェックしなければなりません。1 バイト転送終了時点での割込 み条件を下記に示します。 - バスマスタであった場合 - アドレスされたスレーブであった場合 - ジェネラルコールアドレスを受信した場合 - アービトレーションロストが生じた場合 3) アービトレーションロストを検出した場合 , 即座に割込み要因が発生するのではな く , 1 バイト転送終了した時点で要因が発生します。 アービトレーションロストを検出するとハード的にスレーブになりますが , スレー ブになっても , 割込み要因を発生させるために , トータル 9 クロック出力をします。 そのため , 即座に割込み要因が発生しないので , アービトレーションロスト後に処 理を行うことはできません。 433 第 15 章 I2C インタフェース 15.4 動作フローチャート スレーブアドレスとデータ転送および受信データを例に , 動作フローチャートを示 します。 ■ スレーブアドレスとデータ転送の例 図 15.4-1 に , スレーブアドレスとデータ転送の例を示します。 図 15.4-1 スレーブアドレスとデータ転送例 7ビットスレーブアドレッシング 転送データ スタート スタート インタフェース動作許可 EN=1 BER ビットクリア(セット) ライトアクセスの スレーブアドレス IDAR =S. アドレス≪1+R W IDAR = バイトデータ MSS=1 N Y INT=0 INT=0 INT=1? INT=1? Y Y N Y BER=1? バスエラー BER=1? N N Y A L=1? AAS の検査 Y により再起動 AAS の検査 により再起動 A L=1? 転送 転送 N N N ACK? (LRB=0? ) N ACK? (LRB=0? ) Y Y データ転送の準備 最終バイト の転送 Y N 転送 終了 ・スレーブがACKを発生しない、 もしくはマスタがACKを受信できない ・いったんEN=0にし、再送信 転送 終了 ・反復「START」条件、「STOP」 条件を発生する ・「STOP」条件発生(BB=0) を確認し、EN=0 転送 終了 送信時: ・スレーブがACKを発生 しない、もしくはマスタが ACKを受信できない ・いったんEN=0にし、再送信 受信時: ACKなし、反復 「START」条件、「STOP」 条件を発生する 434 第 15 章 I2C インタフェース ■ 受信データの例 図 15.4-2 に , 受信データの例を示します。 図 15.4-2 受信データ例 スタート リードアクセスの スレーブアドレス スレーブからの最終リード データならACKビットを クリアする。 INT=0 INT=1? N Y BER=1? Y バスエラー 再起動 N N 最終バイト の転送 Y 転送終了 反復「START」条件、「STOP」条件 を発生する 435 第 15 章 I2C インタフェース ■ 割込み処理 図 15.4-3 に , 割込み処理を示します。 図 15.4-3 割込み処理 スタート INT=1? N 他のモジュールから の受信割込み Y BER=1? バスエラー Y 再起動 N GCA=1? Y スレーブ時にゼネラルコール 検出 N N 転送の失敗 再トライを行う Y A AS=1? Y A L=1? A L=1? Y アビトレーション ロスト 再転送 N スレーブの ACKなし N LRB=1? Y 次の割込みで 新データ転送開始 必要であれば A CKビットを変更 「STOP」条件,反復 「START」条件の生成 A DT=1 N N TRX=1? Y TRX=1? Y Y N N IDAR から受信データ を読む。必要であれば ACK ビットを変更する IDAR に 次の送信 データを ライト IDARから受信データ を読む。必要であ ればACKビットを 変更する クリア INT ビット ISR 終了 436 IDARに次の送信 データをライト またはMSSビット のクリア 第 16 章 DMAC (DMA コントローラ ) この章では DMAC の概要 , レジスタの構成 / 機能 , および DMAC の動作について説明します。 16.1 概要 16.2 レジスタ詳細説明 16.3 動作説明 16.4 動作フロー 16.5 データパス 16.6 DMA 外部インタフェース 437 第 16 章 DMAC (DMA コントローラ ) 16.1 概要 本モジュールは , FR ファミリデバイスにて DMA (Direct Memory Access) 転送を 実現するためのモジュールです。 本モジュールの制御による DMA 転送により , CPU を介さずに各種データ転送を高 速に行うことが可能となり , システムのパフォーマンスを増加させます。 ■ DMAC のハードウェア構成 本モジュールは , 主に以下のものより構成されます。 • 独立した DMA チャネル× 5 チャネル • 5 チャネル独立アクセス制御回路 • 32 ビットアドレスレジスタ ( リロード指定可能 : 各チャネル 2 本 ) • 16 ビット転送回数レジスタ ( リロード指定可能 : 各チャネル 1 本 ) • 4 ビットブロック回数レジスタ ( 各チャネル 1 本 ) • 外部転送要求入力端子 DREQ0, DREQ1, DREQ2 (ch0, 1, 2 のみ ) ( 注意事項 ) MB91F353A/351A/352A/353A は外部インタフェースなし。 • 外部転送要求受付け出力端子 DACK0, DACK1, DACK2 (ch0, 1, 2 のみ ) ( 注意事項 ) MB91F353A/351A/352A/353A は外部インタフェースなし。 • DMA 終了出力端子 DEOP0, DEOP1, DEOP2 (ch0, 1, 2 のみ ) ( 注意事項 ) MB91F353A/351A/352A/353A は外部インタフェースなし。 • フライバイ転送 ( メモリ→ I/O, I/O →メモリ ) (ch0, 1, 2 のみ ) ( 注意事項 ) MB91F353A/351A/352A/353A はフライバイ転送不可能 • 2 サイクル転送 ■ DMAC の主要機能 本モジュールによるデータ転送には , 主に以下のような機能があります。 ● 複数チャネルの独立したデータ転送が可能 (5 チャネル ) • 優先順位 (ch0>ch1>ch2>ch3>ch4) • ch0 ∼ ch1 間にて順位回転が可能 • DMAC 起動要因 - 外部専用端子入力 ( エッジ検出 / レベル検出 ch0-ch2 のみ ) ( 注意事項 ) MB91F353A/351A/352A/353A は外部インタフェースなし。 - 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込み含む ) - ソフトウェア要求 ( レジスタ書込み ) • 転送モード - デマンド転送 / バースト転送 / ステップ転送 / ブロック転送 ( 注意事項 ) MB91F353A/351A/352A/353A はデマンド転送不可能 - アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 ) ( アドレス増減幅は -255 ∼+ 255 まで指定可能 ) - データの種類バイト / ハーフワード / ワード長 - シングルショット / リロード選択可能 438 第 16 章 DMAC (DMA コントローラ ) ■ DMAC のレジスタ概要 図 16.1-1 に , DMAC のレジスタ概要を示します。 図 16.1-1 DMAC のレジスタ概要 (ビット) 31 ch0 DMACA0 00000200H レジスタ B DMACB0 00000204H コントロール/ステータス レジスタ A DMACA1 00000208H レジスタ B DMACB1 0000020CH コントロール/ステータス レジスタ A DMACA2 00000210H レジスタ B DMACB2 00000214H c h3 コントロール/ステータス レジスタ A DMACA3 00000218H レジスタ B DMACB3 0000021CH c h4 コントロール/ステータス レジスタ A DMACA4 00000220H DMACB4 00000224H 全体制御レジスタ DMACR 00000240H c h0 転送元アドレスレジスタ DMASA0 00001000H 転送先 DMADA0 コントロール/ステータス レジスタ A 〃 ch1 〃 ch2 〃 〃 〃 〃 c h1 〃 / 〃 / 〃 / 〃 / 〃 / 〃 レジスタ B 〃 〃 DMASA1 00001008H 転送先 DMADA1 転送元アドレスレジスタ DMASA2 00001010H 〃 転送先 DMADA2 c h3 転送元アドレスレジスタ DMASA3 00001018H 転送先 DMADA3 〃 c h4 〃 〃 〃 08 07 00 00001014H 0000101CH 転送元アドレスレジスタ DMASA4 00001020H 転送先 DMADA4 〃 〃 15 0000100CH c h2 〃 〃 16 00001004H 転送元アドレスレジスタ 〃 〃 24 23 00001024H 439 第 16 章 DMAC (DMA コントローラ ) ■ DMAC のブロックダイヤグラム 図 16.1-2 に , DMAC のブロックダイヤグラムを示します。 カウンタ バスコントローラへ DMA転送要求 バッファ セレクタ ライトバック 図 16.1-2 DMAC のブロックダイヤグラム DTC2段レジスタ DTCR DMA起動要因 選択回路 & 要求受付 制御 ペリフェラル起動要求/停止入力 外部端子起動要求/停止入力 カウンタ DSS[3:0] バッファ Read Write 優先度回路 割込みコントローラへ IRQ[4:0] 周辺割込みクリア MCLREQ ERIR,EDIR セレクタ リード/ライト 制御 BLK register 440 DSAD2段レジスタ SADM,SASZ[7:0] SADR ライトバック ライトバック DDAD2段レジスタ DADM,DASZ[7:0] DADR バス制御部 DMAコントロール セレクタ カウンタバッファ DDNO register セレクタ アドレス カウンタバッファ アクセス アドレスカウンタ DDNO バス制御部 バスコン トローラ へ セレクタ 状態遷移回路 X-bus TYPE.MOD,WS 第 16 章 DMAC (DMA コントローラ ) 16.2 レジスタ詳細説明 DMAC の各レジスタの詳細について説明します。 ■ レジスタ設定時の注意 本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。 マークは DMAC 転送中に設定すると動作に影響するビットです。このビットの書換え は DMAC 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。 DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定 した場合は , 起動許可後に設定は有効になります。 DMA 転送の一時停止状態 (DMACR:DMAH[3:0] ≠ 0000 または DMACA:PAUS=1 のと き ) で設定した場合は , 一時停止解除後に設定は有効になります。 441 第 16 章 DMAC (DMA コントローラ ) 16.2.1 DMAC-ch0, 1, 2, 3, 4 コントロール / ステータスレジ スタ A [DMACA0 ∼ DMACA4] は DMAC 各チャネルの動作制御を行うレジスタで , チャネ ルごとに独立して存在します。 ■ [DMACA0 ∼ DMACA4] のビット機能 [DMACA0 ∼ DMACA4] の各ビット機能は , 以下に示すとおりです。 ビット 31 30 29 28 27 14 13 25 24 23 IS [4 : 0] アドレス ch0:0000200H DENB PAUS STRG ch1:0000208H ch2:0000210H ch3:0000218H ch4:0000220H ビット 15 26 11 11 10 22 21 20 19 DDN [3 : 0] 9 8 7 6 5 18 17 16 BLK [3 : 0] 4 3 2 1 0 DTC [15 : 0] ( 初期値 : 00000000_0000XXXX_XXXXXXXX_XXXXXXXXB) [ ビット 31] DENB(Dma ENaBle):DMA 動作許可ビット 各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。 起動されたチャネルは , 転送要求が発生し受け付けられると DMA 転送を開始しま す。起動許可されていないチャネルに対して発生した転送要求は , すべて無効とな ります。 起動されたチャネルの転送が指定回数分すべて終了した場合, 本ビットは"0"になり, 転送は停止します。 本ビットに "0" を書込みすると強制停止しますが , 必ず PAUS ビット [DMACA: ビッ ト 30] で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してください。一 時停止しないで強制停止した場合 , DMA は停止しますが転送データは保証されませ ん。停止の確認は DSS[2:0] ビット (DMACB: ビット 18-16) で行ってください。 DENB 機 能 0 対応チャネル DMA 動作禁止 ( 初期値 ) 1 対応チャネル DMA 動作許可 • リセット時 , 停止要求が受け付けられた場合 : "0" に初期化されます。 • 読出し / 書込み可能です。 DMAC 全体制御レジスタ DMACR のビット 15:DMAE ビットにより , 全チャネルの動 作が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状態を維持しま す。また , 本ビットにより動作が許可されている状態にて前記ビットにより動作が禁止 された場合 , 本ビットは "0" となり転送は中断します ( 強制停止 ) 。 442 第 16 章 DMAC (DMA コントローラ ) [ ビット 30] PAUS(PAUSe): 一時停止指示 対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ ると , 再び本ビットがクリアされるまでの間は , DMA 転送を行いません (DMA が停 止中は DSS ビットが "1xxB" になります ) 。 起動前に本ビットをセットしてから起動した場合 , 一時停止状態のままとなります。 本ビットがセットされている間に新たに発生した転送要求は受け付けられますが , 本ビットをクリアしないと転送は開始しません 「 ( 16.3.11 転送要求の受付けと転送」 を参照 ) 。 PAUS 機 能 0 対応チャネル DMA 動作許可 ( 初期値 ) 1 対応チャネル DMA 一時停止 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 29] STRG(Software TRiGger): 転送要求 対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開 始します。 ただし, 対応するチャネルが起動されていない場合は, 本ビットへの操作は無効とな ります。 <参考> DMAE ビットの書込みによる起動と同時に本ビットによる転送要求が同時の場合 , 転送要 求は有効となり , 転送を開始します。また , PAUS ビットへの "1" 書込みと同時である場合 , 転送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送は開始しません。 STRG 機 能 0 無効 1 DMA 起動要求 • リセット時 :"0" に初期化されます。 • 読出し値は常に "0" となります。 書込み値は "1" のみ有効で , "0" は動作に影響を与えません。 443 第 16 章 DMAC (DMA コントローラ ) [ ビット 28 ∼ 24] IS4 ∼ 0(Input Select): 転送要因選択 転送要求の要因を以下のように選択します。ただし , STRG ビット機能によるソフト ウェア転送要求は本設定に関わらず有効となります。 IS 機 能 00000 ハードウェア 00001 ↓ 01101 設定禁止 ↓ 設定禁止 01110 * 外部端子 (DREQ) "H" レベルまたは↑エッジ 01111 * 外部端子 (DREQ) "L" レベルまたは↓エッジ 10000 UART0 ( 受信完了 ) 10001 UART1 ( 受信完了 ) 10010 UART2 ( 受信完了 ) 10011 UART0 ( 送信完了 ) 10100 UART1 ( 送信完了 ) 10101 UART2 ( 送信完了 ) 10110 外部割込み 0 10111 外部割込み 1 11000 リロードタイマ 0 11001 リロードタイマ 1 11010 リロードタイマ 2 11011 外部割込み 2 11100 * SIO5 11101 SIO6 11110 SIO7 11111 A/D *: MB91F353A/351A/352A/353A には , 外部端子 , SIO5 の転送要因がありません。 • リセット時 :00000B に初期化されます。 • リード / ライト可能です。 周辺機能の割込みによる DMA 起動を設定した場合 (IS=1xxxx), 選択した機能は ICR レ ジスタで割込みを禁止状態にしてください。 デマンド転送モードを選択した場合は , IS[4:0]=01110B, 01111B のみ設定可能です。ほ かの要因での起動は禁止です。 外部要求入力は , ch0, 1, 2 のみ有効です。ch3, 4 は外部要求入力は選択できません。ま たレベル検出かエッジ検出かはモード設定により決定されます ( デマンド転送はレベ ル , ほかはエッジ検出になります ) 。 444 第 16 章 DMAC (DMA コントローラ ) 外部割込み 0 ∼ 2 および A/D 割込みの転送要因を選択する場合は , 基本クロック分周 設定レジスタの (DIVR0) による CPU クロックおよび , 周辺クロックの設定が下記に示 す条件での使用はできません。 CPU クロックの分周比 周辺クロックの分周比 CLKB 分周比= 1 CLKP 分周比> 3 CLKB 分周比= 2 CLKP 分周比> 6 CLKB 分周比= 3 CLKP 分周比> 9 CLKB 分周比= 4 CLKP 分周比> 12 CLKB 分周比= 5 CLKP 分周比> 15 [ ビット 23 ∼ 20] DDNO3 ∼ DDNO0( ダイレクトアクセスナンバー ): 内蔵周辺へのフライバイ機能 対応するチャネルで使用する転送先 / 元の内蔵周辺を指定します。 DDNO 機 能 0000 設定禁止 0001 未使用 0010 未使用 0011 未使用 0100 未使用 0101 未使用 0110 未使用 0111 未使用 1000 未使用 1001 未使用 1010 未使用 1011 未使用 1100 未使用 1101 未使用 1110 未使用 1111 設定禁止 • リセット時 : "0000B" に初期化されます。 • 読出し / 書込み可能です。 <注意事項> 本品種はこの機能はサポートされません。書込みデータは無視されます。 445 第 16 章 DMAC (DMA コントローラ ) [ ビット 19 ∼ 16] BLK3 ∼ BLK0(BLocK size): ブロックサイズ指定 対応するチャネルのブロック転送時のブロックサイズを指定します。本ビットに設 定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰り返し回 数 ) となります。 ブロック転送を行わない場合は 01H ( サイズ 1) を設定してください ( デマンド転送 時 , 本レジスタ値は無視されます。サイズ 1 となります ) 。 BLK XXXX 機 能 対応チャネルのブロックサイズ指定 • リセット時 : 初期化されません。 • 読出し / 書込み可能です。 • 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。 読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。 [ ビット 15 ∼ 00] DTC(Dma Terminal Count register): 転送回数レジスタ 転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。 すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設 定値をレジスタに戻します。 DTC XXXX 機 能 対応チャネルの転送回数指定 DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウン タバッファに格納して 1 転送単位ごとに -1 カウントします ( 減算 ) 。DMA の転送終了 時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了します。そ のため DMA 動作中の転送回数指定値を読み出すことはできません。 • リセット時 : 初期化されません。 • 読出し / 書込み可能です。DTC のアクセスは , 必ずハーフワード長またはワード長 にてアクセスしてください。 • 読出し時の値は , カウント値となります。リロード値の読出しはできません。 • リセット時 : 初期化されません。 446 第 16 章 DMAC (DMA コントローラ ) 16.2.2 DMAC-ch0, 1, 2, 3, 4 コントロール / ステータスレジ スタ B (DMACB0 ∼ DMACB4) コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) は , DMAC 各チャネ ルの動作制御を行うレジスタで , チャネルごとに独立して存在します。 ■ コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) のビット機能 コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) の各ビット機能は , 以下 に示すとおりです。 ビット 31 30 29 28 27 26 25 24 23 22 21 20 19 アドレス ch0:0000204 TYPE [1 : 0] MOD [1 : 0] WS [1 : 0] SADM DADM DTCRSADRDADR ERIE EDIE ch1:000020C ch2:0000214 ch3:000021C ch4:0000224 ビット 15 14 13 11 11 10 9 8 7 6 5 SASZ [7 : 0] 4 3 18 17 16 DSS [2 : 0] 2 1 0 DASZ [7 : 0] ( 初期値 : 00000000_00000000_XXXXXXXX_XXXXXXXXB) [ ビット 31, 30] TYPE(TYPE)*: 転送タイプ設定 対応チャネルの動作タイプを以下のように設定します。 2 サイクル転送モード : 転送元アドレス (DMASA) と転送先アドレス (DMADA) を設定してリード動作とラ イト動作を転送回数分繰り返して転送するモードです。転送元 / 転送先ともに全領 域 (32 ビットアドレス ) 指定可能です。 フライバイ転送モード : 転送先アドレス (DMADA) にメモリアドレスを設定することにより外部⇔外部転送 を 1 サイクルで行うモードです。メモリアドレスは必ず外部領域を指定してくださ い。 TYPE 機 能 00 2 サイクル 転送 ( 初期値 ) 01 フライバイ : メモリ→ I/O 転送 10 フライバイ : I/O →メモリ 転送 11 設定禁止 • リセット時 : "00B" に初期化されます。 • 読出し / 書込み可能です。 *: MB91F353A/351A/352A/353A はフライバイ転送不可能。TYP ビット "01B", "10B" の 設定は禁止です。 447 第 16 章 DMAC (DMA コントローラ ) [ ビット 29, 28] MOD1, MOD0 (MODe)*: 転送モード設定 対応チャネルの動作モードを以下のように設定します。 MOD 機 能 00 ブロック / ステップ転送モード ( 初期値 ) 01 バースト転送モード 10 デマンド転送モード 11 設定禁止 • リセット時 : "00B" に初期化されます。 • 読出し / 書込み可能です。 *: MB91F353A/351A/352A/353A はデマンド転送不可能。MOD ビット "10" の設定は禁 止です。 [ ビット 27, 26] WS1, WS0 (Word Size): 転送データ幅選択 対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で 指定回数分の転送を行います。 WS 機 能 00 バイト単位で転送 ( 初期値 ) 01 ハーフワード単位で転送 10 ワード幅単位で転送 11 設定禁止 • リセット時 : "00" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 25] SADM(Source-ADdr, count-Mode select): 転送元アドレスカウントモー ド指定 対応するチャネルの転送元アドレスの , 1 転送ごとのアドレス処理を指定します。 アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) にしたがって , 1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス レジスタ (DMASA) に書き込まれます。 そのため DMA 転送が終了されるまで転送元アドレスレジスタは更新されません。 アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウント 幅 (SASZ, DASZ) を "0" としてください。 SADM 機 能 0 転送元アドレスは増加します ( 初期値 )。 1 転送元アドレスは減少します。 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 448 第 16 章 DMAC (DMA コントローラ ) [ ビット 24] DADM(Destination-ADdr, Count-Mode select) : 転送先アドレスカウント モード指定 対応するチャネルの転送先アドレスの , 1 転送ごとのアドレス処理を指定します。 アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) にしたがって , 1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス レジスタ (DMADA) に書き込まれます。 そのため DMA 転送が終了されるまで転送先アドレスレジスタは更新されません。 アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウント 幅 (SASZ, DASZ) を "0" としてください。 DADM 機 能 0 転送先アドレスは増加します ( 初期値 )。 1 転送先アドレスは減少します。 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 23] DTCR(DTC-reg, Reload): 転送回数レジスタリロード指定 対応するチャネルの転送回数レジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に回数レジスタ値 を初期設定値に戻して停止し , 転送要求 (STRG または , IS 設定による起動要求 ) 待 ち状態になります ( 本ビットが "1" の場合 , DENB ビットはクリアされません ) 。 DENB=0, または DMAE=0 を設定すると強制停止します。 回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード 指定をしていても , 転送終了にて停止するシングルショット動作となります。この 場合 DENB ビットはクリアされます。 DTCR 機 能 0 転送回数レジスタリロードを禁止 ( 初期値 ) 1 転送回数レジスタリロードを許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 22] SADR(Source-ADdr.-reg, Reload): 転送元アドレスレジスタリロード指定 対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス レジスタ値を初期設定値に戻します。 回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード 指定をしていても , 転送終了にて停止するシングルショット動作となります。この 場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。 本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し ている場合は , 増加したアドレスとなります ) 。 449 第 16 章 DMAC (DMA コントローラ ) SADR 機 能 0 転送元アドレスレジスタリロード禁止 ( 初期値 ) 1 転送元アドレスレジスタリロード許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 21] DADR(Dest.-ADdr.-reg, Reload): 転送先アドレスレジスタリロード指定 対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。 本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス レジスタ値を初期設定値に戻します。 その他 , 機能の詳細はビット 22:SADR の内容と等価になります。 DADR 機 能 0 転送先アドレスレジスタリロード禁止 ( 初期値 ) 1 転送先アドレスレジスタリロード許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 20] ERIE(ERror Interrupt Enable): エラー割込み出力許可 エラー発生による終了時の割込み発生を制御します。 発生したエラーの内容はDSS2∼ 0 にて示されます。すべての終了要因で本割込みが発生するのではなく , 特定の終了 要因の際のみ割込みが発生することに注意してください (DSS2 ∼ 0 ビットの説明を参 照してください ) 。 ERIE 機 能 0 エラー割込み要求出力禁止 ( 初期値 ) 1 エラー割込み要求出力許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 19] EDIE(EnD Interrupt Enable): 終了割込み出力許可 正常終了時の割込み発生を制御します。 EDIE 機 能 0 終了割込み要求出力禁止 ( 初期値 ) 1 終了割込み要求出力許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 450 第 16 章 DMAC (DMA コントローラ ) [ ビット 18 ∼ 16] DSS2 ∼ DSS0(DMA Stop Status)*: 転送停止要因表示 対応するチャネルのDMA転送停止/終了の要因を示す3ビットのコード (終了コード) を表示します。 終了コードの内容は以下のとおりです。 DSS 機 能 割込み発生 000 初期値 x01 アドレスエラー ( アンダ / オーバフロー ) エラー x10 転送停止要求 エラー x11 正常終了 終了 1xx DMA 一時停止中 (DMAH, PAUS ビット , 割込みなど ) なし なし 転送停止要求は , 周辺回路からの要求と外部端子 DSTP 機能を使用した場合のみセット されます。 ただし , MB91F353A/351A/352A/353A は外部端子 DSTP 機能がありません。 なお「割込み発生」欄は , 発生可能な割込み要求の種類を示します。 • リセット時 : "000B" に初期化されます。 • "000B" を書き込むことによりクリアされます。 • 読出し / 書込み可能ですが , 本ビットへの書込みは "000B" のみ有効となります。 [ ビット 15 ∼ 8] SASZ(Source Addr count SiZe)*: 転送元アドレスカウントサイズ指定 対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。 本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド レスの増減幅は転送元アドレスカウントモード (SADM) の指定にしたがいます。 SASZ 機 能 XXXX 転送元アドレスの増減幅を指定します。0 ∼ 255 • リセット時 : 初期化されません。 • 読出し / 書込み可能です。 [ ビット 7 ∼ 0] DASZ(Des Addr count SiZe)*: 転送先アドレスカウントサイズ指定 対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。 本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド レスの増減幅は転送先アドレスカウントモード (DADM) の指定にしたがいます。 DASZ 機 能 XXXX 転送先アドレスの増減幅を指定します。0 ∼ 255 • リセット時 : 初期化されません。 • 読出し / 書込み可能です。 451 第 16 章 DMAC (DMA コントローラ ) 16.2.3 DMAC-ch0, 1, 2, 3, 4 転送元 / 転送先アドレス設定レ ジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4) 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4) は , DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立 して存在します。 ■ 転送元/転送先アドレス設定レジスタ(DMASA0∼DMASA4/DMADA0∼DMADA4) のビット機能 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4) の 各ビット機能は , 以下に示すとおりです。 ビット 31 30 29 28 27 26 25 23 22 21 20 19 18 17 16 5 4 3 2 1 0 DMASA [31 : 16] アドレス ch0:00001000H ch1:00001008H ch2:00001010H ch3:00001018H ch4:00001020H ビット 15 24 14 13 11 11 10 9 8 7 6 DMASA [15 : 0] ( 初期値 : XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX bit) ビット 31 30 29 28 27 26 25 23 22 21 20 19 18 17 16 5 4 3 2 1 0 DMADA [31 : 16] アドレス ch0:00001004H ch1:0000100CH ch2:00001014H ch3:0000101CH ch4:00001024H ビット 15 24 14 13 11 11 10 9 8 7 6 DMADA [15 : 0] ( 初期値 : XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX bit) 転送元 / 転送先アドレスを格納するレジスタ群です。各レジスタは 32 ビット長で構成 されています。 [ ビット 31 ∼ 0] DMASA(DMA Source Addr): 転送元アドレス設定 転送元アドレスの設定を行います。 [ ビット 31 ∼ 0] DMADA(DMA Destination Addr): 転送先アドレス設定 転送先アドレスの設定を行います。 DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ ンタバッファに格納して 1 転送ごとに設定にしたがいアドレスカウントします。 DMA の転送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了します。そのため DMA 動作中のアドレスカウンタ値を読み出すことは できません。 すべてのレジスタは , 専用のリロードレジスタを持っています。転送元 / 転送先アド 452 第 16 章 DMAC (DMA コントローラ ) レスレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に自 動的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには影 響を与えません。 • リセット時 : 初期化されません。 • 読出し / 書込み可能です。本レジスタは , 必ず 32 ビットデータでアクセスしてくだ さい。 • 読出し時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスアド レス値となります。リロード値のリードはできません。そのため転送アドレスをリ アルタイムで読み出すことはできません。 <注意事項> 本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ に DMA 転送を行うことはできません。 453 第 16 章 DMAC (DMA コントローラ ) 16.2.4 DMAC-ch0, 1, 2, 3, 4 DMAC 全体制御レジスタ 全体制御レジスタ (DMACR) は , DMAC5 チャネル分全体の動作制御を行うレジスタ です。本レジスタは必ずバイト長でアクセスしてください。 ■ 全体制御レジスタ (DMACR) のビット機能 全体制御レジスタ (DMACR) の各ビット機能は , 以下に示すとおりです。 ビット 31 アドレス : 000240H 30 29 - 27 26 25 24 DMAH[3:0] PM01 DMAE ビット 15 28 23 22 21 20 19 18 17 16 - - - - - - - - 14 13 11 11 10 9 8 7 6 5 4 3 2 1 0 - - - - - - - - - - - - - - - ( 初期値 : 0XX00000_XXXXXXXX_XXXXXXXX_XXXXXXXXB) [ ビット 31] DMAE(DMA Enable):DMA 動作許可 DMA 全チャネルの動作制御を行います。 本ビットにより DMA 動作が禁止されている場合 , チャネルごとの起動 / 停止の設定 や動作状態に関わらず , 全チャネルの転送動作が禁止されます。転送中であったチャ ネルは要求を取り下げ , ブロック境界にて転送を停止します。禁止状態にて , 各チャ ネルに対して行われる起動操作は , すべて無効となります。 本ビットにより DMA 動作が許可されている場合 , チャネルごとに起動 / 停止操作が 有効となります。本ビットで DMA 動作許可を行ったのみでは , 各チャネルに対する 起動は行われません。 本ビットに "0" を書込みすると強制停止しますが , 必ず DMAH[3:0] ビット (DMACR: ビット 27-24) で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してくださ い。一時停止しないで強制停止した場合 , DMA は停止しますが転送データは保証さ れません。停止の確認は DSS[2:0] ビット (DMACB: ビット 18-16) で行ってください。 DMAE 機 能 0 全チャネル DMA 動作禁止 ( 初期値 ) 1 全チャネル DMA 動作許可 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 28] PM01(Priority Mode ch0, 1 robin): チャネル優先度回転 ch0, ch1 の優先度を転送ごとに順位を回転させるときに設定します。 PM01 機 能 0 優先順位固定 (ch0>ch1) ( 初期値 ) 1 優先順位回転 (ch1>ch0) • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 454 第 16 章 DMAC (DMA コントローラ ) [ ビット 27 ∼ 24] DMAH(DMA Halt):DMA 一時停止 DMA 全チャネルの一時停止制御を行います。本ビットがセットされると , 再び本 ビットがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。 起動前に本ビットをセットしてから起動した場合 , 全チャネルが一時停止のままと なります。 本ビットがセットされている間に DMA 転送が許可 (DENB=1) されているチャネル に発生した転送要求は, すべて有効となり, 本ビットをクリアすることにより転送を 開始します。 DMAH 0000 0000 以外 機 能 全チャネル DMA 動作許可 ( 初期値 ) 全チャネル DMA 一時停止 • リセット時 : "0" に初期化されます。 • 読出し / 書込み可能です。 [ ビット 30, 29, 23 ∼ 0] (Reserved): 未使用ビット 読出し値は不定です。 ■ その他の機能 MB91350A は , 外部転送用として DACK, DEOP, DREQ の端子がありますが汎用ポート と兼用になっています。 この機能を使用するときはポート機能から DMA 端子機能に切り換える必要がありま す。PFR レジスタの設定で切り換えてください。 ( 注意事項 ) MB91F353A/351A/352A/353A は外部インタフェースがありません。 455 第 16 章 DMAC (DMA コントローラ ) 16.3 動作説明 DMAC の動作概要 , 転送要求設定や転送シーケンスなどの詳細 , 動作中の詳細など について説明します。 ■ DMAC の概要 本ブロックは , FR ファミリに内蔵され , CPU の命令動作を介することなく高速にデー タ転送を制御する多機能 DMA コントローラです。 456 第 16 章 DMAC (DMA コントローラ ) 16.3.1 動作概要 DMAC の動作概要を説明します。 ■ DMAC の主要動作 各転送チャネルは , 独立に各種機能を設定します。 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いません。 転送要求検出により , バスコントローラに対し DMA 転送要求を出力し , バスコント ローラの制御によりバス権を取得して転送を開始します。転送はチャネルごとに独立 に設定されたモード設定にしたがったシーケンスで行われます。 ■ 転送モード DMA の各チャネルは , それぞれの DMACB レジスタの MOD[1:0] ビットで設定された 転送モードにしたがって転送動作を行います。 ● ブロック / ステップ転送 1 回の転送要求にて 1 ブロック転送単位のみ転送を行い , その後次の転送要求が受け付 けられるまでは DMA はバスコントローラに対し転送要求を停止します。 1 ブロック転送単位 : 設定されたブロックサイズ分 (DMACA:BLK[3:0]) ● バースト転送 1 回の転送要求にて指定転送回数終了まで連続して転送を行います。 指定転送回数 : ブロックサイズ分×転送回数分 (DMACA:BLK[3:0] × DMACA:DTC[15:0]) ● デマンド転送 ( 注意 : MB91F353A/351A/352A/353A はデマンド転送不可能 ) 外部からの転送要求入力 (DREQ 端子のレベル検出 ) 終了か , 指定転送回数終了までは 連続して転送を行います。 デマンド転送での指定転送回数 : 設定した転送回数分 (DMACA:DTC[15:0]) ブロックサイズは "1" 固定となりレジスタ値は無視されます。 ■ 転送タイプ ● 2 サイクル転送 ( 通常転送 ) DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作を行い ます。 転送元レジスタのアドレスからデータを読出しして転送先レジスタのアドレスへデー タを書込みします。 ● フライバイ転送(メモリ→I/O)(注意: MB91F353A/351A/352A/353Aはフライバイ転送不可能) DMA コントローラの動作は , リード動作を 1 つの単位として動作を行います。 フライバイ転送を設定して DMA 転送を行うと DMA はバスコントローラに対しフライ バイ転送 ( リード ) 要求を出しバスコントローラは外部インタフェースにフライバイ転 送 ( リード ) をさせます。 457 第 16 章 DMAC (DMA コントローラ ) ● フライバイ転送 (I/O →メモリ ) ( 注意事項 : MB91F353A/351A/352A/353A はフライバイ転 送不可能 ) DMA コントローラの動作は , ライト動作を 1 つの単位として動作を行います。ほかは フライバイ転送 ( メモリ→ I/O) と同等です。 MB91F355A/F356B/F357B/355A でのフライバイ転送のアクセス領域は必ず外部領域で なければいけません。 ■ 転送アドレス アドレッシングには以下のようなものがあり , チャネル転送元 / 転送先ごとに独立に設 定します。 2 サイクル転送とフライバイ転送でのアドレス設定レジスタ (DMASA, DMADA) の指 定方法は異なります。 ● 2 サイクル転送でのアドレスの指定 あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を アドレスとしてアクセスします。 転送要求を受け付けたら DMA はレジスタからアドレスを一時記憶バッファに格納し て転送を開始します。 1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加 算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッファ の内容は 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライトバック されます。 そのためアドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか更 新されませんので転送中のアドレスをリアルタイムに知ることはできません。 ● フライバイ転送でのアドレスの指定 ( 注意 : MB91F353A/351A/352A/353A はフライバイ転送 不可能 ) フライバイ転送では転送先アドレスレジスタ (DMADA) から読み出した値をアドレス としてアクセスします。転送元アドレスレジスタ (DMASA) は無視されます。設定す るアドレスは必ず外部領域にしてください。 転送要求を受け付けたら DMA はレジスタからアドレスを一時記憶バッファに格納し て転送を開始します。 1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加 算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッファ の内容は 1 ブロック転送単位終了ごとにレジスタ (DMADA) へライトバックされます。 そのためアドレスレジスタ (DMADA) 値は , 1 ブロック転送単位ごとにしか更新されま せんので転送中のアドレスをリアルタイムに知ることはできません。 ■ 転送回数と転送終了 ● 転送回数 1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント (-1) します。転送回 数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停止または 再起動 (1) します。 転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更新 されません。 転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可されて いる場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。 458 第 16 章 DMAC (DMA コントローラ ) ● 転送終了 転送終了要因には , 以下のようなものがあり , 終了時は終了コードとして要因が表示さ れます (DMACB:DSS[2:0])。 • 指定転送回数の終了 (DMACA:BLK[3:0] × DMACA:DTC[15:0]) →正常終了 • 周辺回路または外部端子 (DSTP) からの転送停止要求の発生→エラー • アドレスエラーの発生→エラー • リセットの発生→リセット 各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを 発生可能です。 459 第 16 章 DMAC (DMA コントローラ ) 転送要求の設定 16.3.2 DMA 転送を起動する転送要求は , 以下の 3 種類があります。 • 外部転送要求端子 • 内蔵周辺要求 • ソフトウェア要求 ソフトウェア要求については , ほかの要求の設定に関わらず常に使用することがで きます。 ■ 外部転送要求端子 チャネルごとに 1 本用意された入力端子への入力により , 転送要求を発生します。 MB91350A では ch0 ∼ 2 のみ対応しています (DREQ0, 1, 2)。 この際の有効入力は , 転送タイプと起動要因設定により次の要因が選択されます。 〔エッジ検出〕 転送タイプがブロック / ステップ / バースト転送のときはエッジ検出が選択されます。 • 立下がりエッジ検出 : 転送要因選択レジスタで設定。DMACA:IS[4:0]=01110B のとき。 • 立上がりエッジ検出 : 転送要因選択レジスタで設定。DMACA:IS[4:0]=01111B のとき。 転送タイプがデマンド転送のときはレベル検出が選択されます。 • "H" レベル検出 : 転送要因選択レジスタで設定。DMACA:IS[4:0]=01110B のとき。 • "L" レベル検出 : 転送要因選択レジスタで設定。DMACA:IS[4:0]=01111B のとき。 MB91F353A/351A/352A/353A は使用不可能です。 ■ 内蔵周辺要求 内蔵周辺回路の割込み発生により , 転送要求を発生します。 チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します (DMACA:IS[4:0]=1xxxxB)。 外部転送要求とは同時に使用することができません。 <注意事項> 転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン トローラの設定を割込み禁止に設定してください (ICR レジスタ )。 460 第 16 章 DMAC (DMA コントローラ ) ■ ソフトウェア要求 レジスタのトリガビットへの書込みにより , 転送要求を発生します (DMACA:STRG)。 上記 2 つの転送要求とは独立で , 常に使用することができます。 起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントローラに 対し DMA 転送要求を出力し転送を開始します。 461 第 16 章 DMAC (DMA コントローラ ) 16.3.3 転送シーケンス チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転 送モードを独立して設定することができます (DMACB:TYPE[1:0], MOD[1:0] の 設定 )。 ■ 転送シーケンスの選択 レジスタの設定により , 以下のシーケンスが選択可能です。 • バースト 2 サイクル転送 • デマンド 2 サイクル転送 ( 注意 : MB91F353A/351A/352A/353A は使用不可能 ) • ブロック / ステップ 2 サイクル転送 • バーストフライバイ転送 ( 注意 : MB91F353A/351A/352A/353A は使用不可能 ) • デマンド フライバイ転送 ( 注意 : MB91F353A/351A/352A/353A は使用不可能 ) • ブロック / ステップフライバイ転送 ( 注意 : MB91F353A/351A/352A/353A は使用不可 能) ■ バースト 2 サイクル転送 1 回の転送要因にて指定転送回数の転送を続けて行います。2 サイクル転送の場合は転 送元 / 転送先アドレスは 32 ビット全領域指定可能です。 転送要因は , 周辺転送要求 / ソフトウェア転送要求 / 外部端子 (DREQ) エッジ入力検出 要求を選択できます。 表 16.3-1 にバースト 2 サイクル転送の指定可能転送アドレスを示します。 表 16.3-1 バースト 2 サイクル転送の指定可能転送アドレス 転送元アドレス指定 方向 転送先アドレス指定 32 ビット全領域指定可能 → 32 ビット全領域指定可能 〔バースト転送の特徴〕 • 転送要求を 1 回受け付けると , 転送回数レジスタが 0 になるまで連続して転送を行 います。転送回数はブロックサイズ分×転送回数分になります (DMACA:BLK[3:0] × DMACA:DTC[15:0])。 • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要求 を受け付けます。 • 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック転 送単位の境目でチャネルを切り換え , そのチャネルの転送要求がクリアされるまで 復帰しません。 図 16.3-1 に , バースト転送例を示します。 462 第 16 章 DMAC (DMA コントローラ ) 図 16.3-1 バースト転送例 転送要求 (↑エッジ) バス動作 CPU SA 転送回数 DA SA DA SA 43 DA 2 SA DA CPU 0 1 転送終了 (外部端子立上りエッジ起動,ブロック数=1 , 転送回数=4のときのバースト転送例) ■ バーストフライバイ転送 転送領域が外部領域のみであること , 転送単位がリード ( メモリ→ I/O) またはライト (I/O →メモリ ) だけであることを除けば 2 サイクル転送と同じです。 表 16.3-2 に , バーストフライバイ転送の指定可能転送アドレスを示します。 表 16.3-2 バーストフライバイ転送の指定可能転送アドレス 転送元アドレス指定 方向 転送先アドレス指定 指定不要 ( 無効 ) なし 外部領域 ■ デマンド転送 2 サイクル転送 転送要求として , 外部端子の "H" または "L" レベルを選択している場合のみ , デマンド 転送シーケンスとなります ( レベル選択は , DMACA:IS[3:0] にて設定する ) 。 〔連続転送の特徴〕 • 転送要求を 1 回の転送ごとにチェックし , 外部からの入力レベルが設定した転送要 求レベルの間は要求をクリアせずに連続して転送を行います。外部入力が変化する と要求がクリアされ , 転送は転送の境目にて停止します。これを指定転送回数終了 まで繰り返します。 • その他はバースト転送と同等に動作します。 図 16.3-2 に , デマンド転送例を示します。 図 16.3-2 デマンド転送例 転送要求("H"レベル) バス動作 CPU SA 転送回数 DA SA DA CPU SA 32 DA 1 0 転送終了 (外部端子"H"レベル起動,ブロック数=1, 転送回数=3のときのデマンド転送例) 表 16.3-3 にデマンド転送 2 サイクル転送の指定可能転送アドレスを示します。 表 16.3-3 デマンド転送 2 サイクル転送の指定可能転送アドレス 転送元アドレス 方向 転送先アドレス 外部領域 → 外部領域 外部領域 → 内蔵 I/O 外部領域 → 内蔵 RAM 内蔵 I/O → 外部領域 内蔵 RAM → 外部領域 463 第 16 章 DMAC (DMA コントローラ ) デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して ください。デマンド転送モード時は , DMA 転送を外バスタイミングに合わせているた め必ず外部領域へのアクセスが必要になります。 デマンド転送時 , 転送元 / 転送先共に SDRAM 領域はサポートしていませんので設定禁 止です。 ■ デマンド転送フライバイ転送 転送領域が外部領域のみであること , 転送単位がリード ( メモリ→ I/O) またはライト (I/O →メモリ ) だけであることを除けば 2 サイクル転送と同じです。 表 16.3-4 に , デマンド転送フライバイ転送の指定可能転送アドレスを示します。 表 16.3-4 デマンド転送フライバイ転送の指定可能転送アドレス 転送元アドレス指定 方向 転送先アドレス指定 指定不要 ( 無効 ) なし 外部領域 ■ ステップ / ブロック転送 2 サイクル転送 ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場 合は転送元 / 転送先アドレスは 32 ビット全領域指定可能です。 表 16.3-5 にステップ / ブロック転送 2 サイクル転送の指定可能転送アドレスを示しま す。 表 16.3-5 ステップ / ブロック転送 2 サイクル転送の指定可能転送アドレス 転送元アドレス指定 方向 転送先アドレス指定 32 ビット全領域指定可能 → 32 ビット全領域指定可能 ■ ステップ転送 ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。 〔ステップ転送の特徴〕 • 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送を 停止します ( バスコントローラに対し DMA 転送要求を取り下げる ) 。 • 転送中に再度要求が発生した場合 , 要求は無視されます。 • 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止後 に , チャネルを切り換えて続けて転送を開始します。ステップ転送における優先順 位は , 転送要求が同時に発生した場合のみ意味を持ちます。 464 第 16 章 DMAC (DMA コントローラ ) ■ ブロック転送 ブロックサイズに "1" 以外を設定すると , ブロック転送シーケンスとなります。 [ ブロック転送の特徴 ] 1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ス テップ転送と全く同じ動作となります。図 16.3-3 にブロック転送例を示します。 図 16.3-3 ブロック転送例 転送要求 (↑エッジ) バス動作 ブロック数 CPU SA DA SA DA 21 転送回数 CPU 0 2 SA DA SA 2 DA 1 1 転送終了 (外部端子立上がりエッジ起動,ブロック数=2 , 転送回数=2のときのブロック転送例) ■ ステップ / ブロック転送 2 サイクル転送フライバイ転送 転送領域が外部領域のみであること , 転送単位がリード ( メモリ→ I/O) またはライト (I/O →メモリ ) だけであることを除けば 2 サイクル転送と同じです。 表 16.3-6 に , ステップ / ブロック転送 2 サイクル転送フライバイ転送の指定可能転送ア ドレスを示します。 表 16.3-6 ステップ / ブロック転送 2 サイクル転送フライバイ転送の指定可能転送ア ドレス 転送元アドレス指定 方向 転送先アドレス指定 指定不要 ( 無効 ) なし 外部領域 465 第 16 章 DMAC (DMA コントローラ ) 16.3.4 DMA 転送全般 DMA の転送動作について説明します。 ■ ブロックサイズ 転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数 ( ×データ幅 ) の データの集合となります。 1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転送 単位はブロックサイズ指定値分の転送サイクル数より構成されることになります。 転送中により高位の優先順位の転送要求が受け付けられた場合または転送の一時停止 要求が発生した場合において, ブロック転送時においても1転送単位の境界にならない と停止しません。これにより分割・一時停止を希望しないデータブロックのデータ保 護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させる原因ともな ります。 リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容などは保 証されません。 ■ リロード動作 本モジュールでは , チャネルごとに , 以下の 3 種類のリロード機能の設定が可能です。 (1) 転送回数レジスタリロード機能 指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起動受 付け待ちします。 全転送シーケンスを繰り返し行う際に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が 0 のままと なり , 以降の転送は行われません。 (2) 転送元アドレスレジスタリロード機能 指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定しま す。 転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。 リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が 終了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。 (3) 転送先アドレスレジスタリロード機能 指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定しま す。 転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。 ( 以下 (2) と同じ ) 転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了後の 再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。 466 第 16 章 DMAC (DMA コントローラ ) 〔動作モードとリロード動作の特殊な例〕 外部端子入力レベル検出による連続転送モードで転送している場合 , 転送回数レジ スタのリロード機能を使用すると , 入力が連続している間に転送終了となってもそ のままリロードして転送を継続します。この場合も終了コードはセットされます。 転送終了にていったん停止し, 再度入力検出から行いたい場合は, リロード指定を行 わないようにしてください。 バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となる とリロード後いったん転送を中断し , あらためて転送要求入力が検出されるまで転 送を行いません。 467 第 16 章 DMAC (DMA コントローラ ) アドレッシングモード 16.3.5 各転送チャネルの転送先および転送元アドレスは , それぞれ独立して指定します。 ここでは , その指定方法について説明します。転送シーケンスによって設定してく ださい。 ■ アドレスレジスタ指定 2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アドレ スを,転送先アドレス設定レジスタ(DMADA)には転送先アドレスを設定してください。 フライバイ転送モードでは , 転送先アドレス設定レジスタ (DMASA) にはメモリアドレ スを設定してください。このときの転送先アドレス設定レジスタ (DMADA) の値は無 視されます。 〔アドレスレジスタの特徴〕 • 最大 32 ビット長のレジスタです。32 ビット長の場合メモリマップ上の全空間がア クセス可能です。 〔アドレスレジスタの機能〕 • 毎アクセス時に読み出され , アドレスバスへ放出されます。 • 同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ , 計算結果の アドレスにてアドレスレジスタを更新します。 • アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算の内より 選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値によりま す (DMACB:SASZ, DASZ)。 • 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最終 アドレスにアドレス計算をした結果のアドレスが残されます。 • リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。 <参考> 32 ビット長フルアドレス計算の結果オーバフロー/ アンダフローが発生した場合 , アドレ スエラーとして検出され , そのチャネルの転送を中止します (DMACB0 ∼ 4 レジスタの DSS ビットを参照してください ) 。 <注意事項> ・アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。 ・デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して ください。 ・DMAC により DMAC 自身のレジスタへの転送は行わないでください。 468 第 16 章 DMAC (DMA コントローラ ) 16.3.6 データの種類 1 回の転送で転送されるデータ長 ( データ幅 ) は , 以下から選択します。 • バイト • ハーフワード • ワード ■ アクセスアドレス DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ ス指定においてデータ長と一致しないアドレスが設定された場合 , 異なる下位ビット は無視されます。 • ワード : 実際のアクセスアドレスは下位 2 ビットが "00B" から始まる 4 バイトとなります。 • ハーフワード : 実際のアクセスアドレスは下位 1 ビットが "0" から始まる 2 バイトとなります。 • バイト : 実際のアクセスアドレスとアドレス指定が一致します。 転送元アドレスと転送先アドレスの下位ビットが一致しない場合 , 内部アドレスバス 上には設定そのままのアドレスが出力されますが , バス上の各転送対象において , 上記 の決まりにしたがってアドレスが修正されてアクセスが行われます。 469 第 16 章 DMAC (DMA コントローラ ) 16.3.7 転送回数制御 転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回 数指定値は転送回数レジスタ (DMACA:DTC) に設定します。 ■ 転送回数レジスタとリロード動作 レジスタ値は転送開始時に一時記憶バッファに格納され , 転送回数カウンタにより減 算されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され , そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。 〔転送回数レジスタ群の特徴〕 • 各レジスタ 16 ビット長です。 • すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。 • レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。 〔リロード動作〕 • リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有効で す。 • 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。 • 転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知すると共 に , リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。 470 第 16 章 DMAC (DMA コントローラ ) CPU 制御 16.3.8 DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発 行します。 バスコントローラはバス動作の切れ目で内部バス使用権を DMA に明け渡し , DMA 転送が開始されます。 ■ DMA 転送と割込み DMA 転送中は , 基本的に転送終了まで割込みの受付けは停止します。 また割込み処理動作中に DMA 転送要求があった場合 , 転送要求は受け付けられ , 転送 終了まで割込み処理動作は停止します。 例外として , NMI 要求 , または割込みコントローラにて設定されたホールド抑止レベル より高いレベルの割込み要求が発生した場合には , DMAC は転送単位 (1 ブロック ) の 境界にてバスコントローラの転送要求を一時取り下げ , 割込み要求がクリアされるま では転送を一時停止状態にします。この間転送要求は内部で保持されます。割込み要 求がクリアされた後に再度 DMAC のバスコントローラは転送要求を発行してバス使用 権を取得し , DMA 転送を再開します。 ■ DMA 抑止 FR ファミリは DMA 転送中に , より優先度の高い割込み要因が発生すると DMA 転送 を中断して該当割込みルーチンへ分岐します。この機能は割込み要求がある限り有効 ですが , 割込み要因をクリアすると抑止機能が働かなくなり , 割込み処理ルーチン内で DMA 転送を再開します。 このため , DMA 転送を中断するレベルの割込み要因の処理ルーチン内で , 割込み要因 クリア後の DMA 再転送開始を抑止したいときは , DMA 抑止機能を使用します。 DMA 抑止機能は , DMA 全体制御レジスタの DMAH[3:0] ビットに "0" 以外の値を書く ことで起動し , "0" を書くことで停止します。 本機能は主として割込み処理ルーチン内で使用します。割込み処理ルーチンで割込み 要因をクリアする前に DMA 抑止レジスタの内容を 1 つ増加させます。このようにす ると , 以降 , DMA 転送は行いません。 割込み処理への対応を行った後 , 復帰する前に DMAH[3:0] ビットの内容を 1 つ減少さ せます。 もし , 多重割込みであれば DMAH[3:0] ビットの内容は , まだ "0" にならないため , 引き 続いて DMA 転送は抑止されます。また , 多重割込みでなければ , DMAH[3:0] ビットの 内容は "0" になるため , その後すぐに DMA 要求を有効にします。 <注意事項> • レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みで本機能を使 用することができません。 • DMA タスクの優先順位は必ずほかの割込みレベルより 15 レベルは上に置いてくださ い。 471 第 16 章 DMAC (DMA コントローラ ) 16.3.9 ホールド調停 デバイスが外部バス拡張モードで動作している場合 , 外部からのホールド機能が使用 可能となります。ここでは , この際の外部ホールド要求と本モジュールによる DMA 転送要求との関係について説明します。 ■ 外部ホールド中の DMA 転送要求 DMA 転送を開始しますが , 外部バス領域へのアクセスがあった場合 , その時点で DMA 転送を一時停止します。外部ホールドが解除され次第 , DMA 転送を再開します。 ■ DMA 転送中の外部ホールド要求 外部ホールド状態となります。DMA 転送による外部バス領域へのアクセスがあった場 合 , その時点で DMA 転送は一時停止します。外部ホールドが解除され次第 , DMA 転 送を再開します。 ■ DMA 転送要求と外部ホールド要求の同時発生 外部ホールド状態となり , また内部では DMA 転送を開始します。DMA 転送による外 部バス領域へのアクセスがあった場合 , その時点で DMA 転送は一時停止します。外部 ホールドが解除され次第 , DMA 転送を再開します。 472 第 16 章 DMAC (DMA コントローラ ) 16.3.10 動作開始 DMA 転送の開始は , チャネルごとに独立に制御しますが , その前に全チャネルの動 作を許可しておく必要があります。 ■ 全チャネル動作許可 DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら かじめ全チャネルの動作を許可する必要があります。 許可されていない状態で行った起動設定,および発生した転送要求はすべて無効となり ます。 ■ 転送起動 チャネルごとの制御レジスタにある動作許可ビットで , 転送動作を起動します。起動さ れたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転送 動作が開始されます。 ■ 一時停止状態からの起動 チャネルごとまたは全チャネル制御にて , 起動前に一時停止状態にしてあった場合 , 転 送動作を起動しても一時停止状態を維持しています。この間に転送要求が発生した場 合は , 要求を受け付け , 保持します。 一時停止を解除した時点より転送を開始します。 473 第 16 章 DMAC (DMA コントローラ ) 16.3.11 転送要求の受付けと転送 転送要求の受付けと転送の内容を説明します。 ■ 転送要求の受付けと転送 起動後より , 各チャネルに対し設定した転送要求のサンプリングが開始されます。 外部端子起動要因でエッジ検出を選択した場合 , 転送要求が検出されると転送要求ク リア条件を満たすまで DMAC 内部で要求を保持します ( ブロック / ステップ / バース ト転送で外部端子起動要因を選択したとき ) 。 外部端子起動要因でレベル検出 , または周辺割込み起動を選択した場合は , 転送要求が クリアされるまで DMAC は転送を続けますがクリアされたら 1 転送単位で転送を停止 します ( デマンド転送 / 周辺割込み起動 ) 。 周辺割込みはレベル検出扱いとなりますので割込みは DMA による割込みクリアで行 うようにしてください。 転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に受け 付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネルを決定 しています。 474 第 16 章 DMAC (DMA コントローラ ) 16.3.12 DMA による周辺割込みクリア 本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に 周辺割込みを選択したときに機能します (IS[4:0]=1xxxx のとき )。 周辺割込みのクリアは設定された起動要因にのみ行われます。すなわち IS[4:0] で設 定された周辺機能のみクリアされます。 ■ DMA による割込みクリアの発生タイミング 転送モードにより発生するタイミングが違います (「16.4 動作フロー」を参照 ) 。 〔ブロック / ステップ転送〕 ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号は発生 します。 〔バースト転送〕 バースト転送を選択した場合は , 指定転送回数がすべて終了したらクリア信号は発 生します。 〔デマンド転送〕 デマンド転送では外部端子からの起動要求のみサポートするためクリア信号はでま せん。 475 第 16 章 DMAC (DMA コントローラ ) 16.3.13 一時停止 DMA 転送が一時停止する場合について説明します。 ■ 制御レジスタへの書込みによる一時停止の設定 (各チャネル独立または全チャネル 同時に設定 ) 一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って ください。 一時停止を解除すると , 転送を再開します。 ■ NMI/ ホールド抑止レベル割込み処理中 NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転 送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込 み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , その まま保持され , NMI 処理の終了を待ちます。 要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。 476 第 16 章 DMAC (DMA コントローラ ) 16.3.14 動作終了 / 停止 DMA 転送の終了は , チャネルごとに独立に制御しますが , 全チャネルの動作を禁止 することも可能です。 ■ 転送終了 リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了 コードにて「正常終了」を表示した後 , 以降の転送要求は無効となります (DMACA: DENB ビットをクリアする )。 リロード動作が有効である場合, 転送回数レジスタが"0"になると初期値をリロードし, 終了コードにて「正常終了」を表示した後 , 再度転送要求待ちとなります (DMACA: DENB ビットをクリアしない )。 ■ 全チャネル動作禁止 DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を 許可しても , チャネルごとに再起動しないと転送は行われません。この場合 , 割込みは 一切発生しません。 477 第 16 章 DMAC (DMA コントローラ ) 16.3.15 エラーによる停止 指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー 発生による停止および強制停止があります。 ■ 周辺回路よりの転送停止要求の発生 転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発 生するものがあります ( 例 : 通信系周辺における受信 / 送信エラーなど ) 。 この転送停止要求を受け取った DMAC は , 終了コードにて「転送停止要求」を表示し て対応するチャネルの転送を停止します。 IS 機 能 転送停止要求 00000 ハードウェア ↑ ↓ 01111 ↓ なし 外部端子 L レベルまたは↓エッジ ↓ 10000 UART0 ( 受信完了 ) ↑ ↓ 10010 ↓ あり UART2 ( 受信完了 ) ↓ 10011 UART0 ( 送信完了 ) ↑ ↓ 11111 ↓ A/D なし ↓ ( 注意事項 ) 各転送停止要求の発生条件についての詳細は , 各周辺回路の仕様を参照してくだ さい。 ■ アドレスエラーの発生 各アドレッシングモードにて , 不適切なアドレッシングが行われたとき , アドレスエ ラーとして検出されます。 「不適切なアドレッシング」とは , 例えば「32 ビットアドレ ス指定時に , アドレスカウンタにてオーバ / アンダフローが発生した場合」です。 アドレスエラーを検出すると , 終了コードにて「アドレスエラーの発生」を表示して対 応するチャネルの転送を停止します。 478 第 16 章 DMAC (DMA コントローラ ) 16.3.16 DMAC 割込み制御 DMAC 割込み制御は , 転送要求となる周辺割込みとは独立に DMAC チャネルごとに 割込みを出力することが可能です。 ■ DMAC 割込み制御が出力できる割込み • 転送終了割込み : 正常終了した場合のみ発生する。 • エラー割込み : 周辺回路よりの転送停止要求 ( 周辺に起因するエラー ) アドレスエラーの発生 ( ソフトウェアに起因するエラー ) これら割込みはすべて終了コードの内容にしたがって出力されます。 割込み要求のクリアは , DMACS の DSS2 ∼ 0 ( 終了コード ) に "000B" を書き込むこと により行います。なお , 終了コードは再起動する際には必ず "000B" を書き込んでクリ アしてください。 リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。 終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し た場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて いる終了コードにしたがいます。 終了コードの表示の優先順位を以下に示します ( 上から , 優先度の高い順 ) 。 • リセット • "000B" 書込みによるクリア • 周辺停止要求または , 外部端子入力 (DSTP) の停止要求 • 正常終了 • アドレスエラー検出による停止 • チャネル選択と制御 479 第 16 章 DMAC (DMA コントローラ ) 16.3.17 スリープ中の DMA 転送 DMAC は , スリープモード中でも動作させることができます。 ここでは , スリープ状態のときの DMA 転送について説明します。 ■ スリープモード中の DMA 転送の注意 スリープモードでの動作を期待する場合 , 次のことに注意する必要があります。 1) CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー プモードに入る前に設定は済ませておいてください。 2) スリープモードは , 割込みで解除されますので DMAC 起動要因で周辺での割込みを 選択した場合は , 割込みコントローラで割込みを禁止する必要があります。 同様に DMAC 終了割込みでスリープモードを解除したくない場合は割込みを禁止にし てください。 480 第 16 章 DMAC (DMA コントローラ ) 16.3.18 チャネル選択と制御 転送チャネルの数は 5 チャネルまで同時設定が可能です。 各チャネルは基本的に各機能を独立に設定することが可能です。 ■ チャネル間優先順位 DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され ます。順位設定には , 固定 / 回転の 2 モードがありチャネルグループ ( 後述 ) ごとに選 択します。 ● 固定モード チャネル番号の小さい順に固定されます。 (ch0 > ch1 > ch2 > ch3 > ch4) 転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサイ ズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で , 転送チャネルが高 優先度側に切り換わります。 高優先度側の転送が終了すると , 元のチャネルの転送を再開します。 図 16.3-4 に固定モード時の DMA 転送を示します。 図 16.3-4 固定モード時の DMA 転送 ch0 転送要求 ch1 転送要求 バス動作 CPU SA 転送ch DA SA ch1 DA SA ch0 DA SA ch0 DA CPU ch1 ch0 転送終了 ch1 転送終了 ● 回転モード (ch0, ch1 間のみ ) 動作許可後の初期状態は固定モードと同じ順位に設定されますが,一転送終了ごとにそ のチャネルの優先度は逆転します。そのため , 同時に転送要求が出力されている場合 , 1 転送単位ごとにチャネルが切り換わります。 連続 / バースト転送を設定した場合に効果のあるモードです。 図 16.3-5 に回転モード時の DMA 転送を示します。 図 16.3-5 回転モード時の DMA 転送 ch0 転送要求 ch1 転送要求 バス動作 転送ch CPU SA DA ch1 SA DA ch0 SA DA ch1 SA DA CPU ch0 ch0 転送終了 ch1 転送終了 481 第 16 章 DMAC (DMA コントローラ ) ■ チャネルグループ 優先順位の選択は , 以下の単位で設定します。 表 16.3-7 に , DMA 優先順位選択の設定を示します。 表 16.3-7 DMA 優先順位選択の設定 482 モード 優先度 固定 ch0>ch1 回転 ch0>ch1 ↑↓ ch0<ch1 備 考 初期状態は上側の順位です。 上側が転送されると反転します。 第 16 章 DMAC (DMA コントローラ ) 16.3.19 外部端子と内部動作タイミングに関する補足 外部端子と内部動作タイミングに関する補足説明をします。 ■ DREQ 端子入力の最小有効パルス幅について (MB91F353A/351A/352A/353A には 0, 1, 2 チャネルはありません。) バースト / ステップ / ブロック / デマンド転送すべての転送モードで動作時最小 5 シス テムクロックサイクル (= 外バスクロック (CLKT) の 5 周期分 ) の幅が必要です。 ( 注意事項 ) DACK 出力は , DREQ 入力の受付けを示すものではありません。DMA 許 可状態で転送前であれば DREQ 入力は常に受け付けられます。そのため , DACK 出力のアサートまで DREQ 入力を保持する必要はありません ( デマ ンド転送モードは除く ) 。 ■ デマンド転送要求の停止時の DREQ 端子入力のネゲートタイミングについて ● 2 サイクル転送時 デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して ください。 • 転送対象が外部⇔外部の場合 : 最後の DMA 転送の転送元アクセス時の外部 WR 端子出力が "L" 区間の間にネゲー トしてください (DACK=L & WR=L の区間 ) 。これより後に DREQ をネゲートした 場合 , 次の転送まで行う可能性があります。 • 転送対象が外部⇔内部の場合 : 最後の DMA 転送の転送元アクセス時の外部 RD 端子出力が "L" 区間の間にネゲー トしてください (DACK=L & RD=L の区間 ) 。これより後に DREQ をネゲートした 場合 , 次の転送まで行う可能性があります。 図 16.3-6 に 2 サイクル外部→内部転送時の DREQ 端子入力のネゲートタイミング例 を示します。 図 16.3-6 2 サイクル外部→内部転送時の DREQ 端子入力のネゲートタイミング例 バス動作 領域 CPU SA DA SA DA 外部 内部 外部 内部 CPU SA DA SA DA 外部 内部 外部 内部 外部D-bus DACK DEOP RD WR DREQ("H"レベル) • 転送対象が内部⇔外部の場合 : 最後の DMA 転送の転送元アクセス時の外部 WR 端子出力が "L" 区間の間にネゲー トしてください (DACK=L & WR=L の区間 ) 。これより後に DREQ をネゲートした 場合 , 次の転送まで行う可能性があります。 483 第 16 章 DMAC (DMA コントローラ ) ● フライバイ ( リード / ライト ) 転送時 デマンド転送時は , 必ず外部領域のアドレスを転送先に設定してください。 • フライバイ ( リード ) の場合 : 最後の DMA 転送の IOWR 端子出力が "H" になった後の外部 RD 端子出力が "L" 区 間の間にネゲートしてください (DACK=L & RD=L の区間 ) 。これより後に DREQ をネゲートした場合 , 次の転送まで行う可能性があります。 • フライバイ ( ライト ) の場合 : 最後の DMA 転送の外部 WR 端子出力が "H" になった後の IORD が "L" 区間の間に ネゲートしてください (DACK=L & RD=L の区間 ) 。これより後に DREQ をネゲー トした場合 , 次の転送まで行う可能性があります。 図 16.3-7 にフライバイ ( ライト ) の場合の DREQ 端子入力のネゲートタイミング例 を示します。 図 16.3-7 フライバイ ( ライト ) の場合の DREQ 端子入力のネゲートタイミング例 バス動作 CPU 領域 DA DA DA DA 外部 外部 外部 外部 CPU DA DA DA DA 外部 外部 外部 外部 外部D-bus DACK DEOP RD WR IORD DREQ("H"レベル) ■ 同一チャネルで引き続き転送を行うための DREQ 端子入力のタイミングについて ● バースト / ステップ / ブロック / デマンド転送時 DREQ端子入力によって同一チャネルの転送を連続させることは動作保証できません。 転送終了によって内部に保持した要求をクリアするため , 最速タイミングで DREQ が 再度アサートされたとしても最低でも 1 システムクロックサイクル (CLK 出力の 1 周 期分) はほかのチャネルの転送要求の検出が有効になっており , 結果ほかのチャネルの 優先度が高ければそちらの転送が開始されます。 また , それより以前に DREQ が再度アサートされても , 転送が終了していないので無視 されます。ほかのチャネルの転送要求が発生していない場合であれば , DACK 端子出 力がアサートされた時点で DREQ を再度アサートすることにより , 同一チャネルでの 転送が再開します。 ■ DACK 端子出力のタイミングについて 本 DMAC の DACK 出力は , 受け付けられた転送要求に対する転送が行われていること を示します。 DACK の出力は , 基本的に外部バスアクセスタイミングのアドレス出力に同期してい ます。DACK 出力を使用する場合は , ポートで DACK 出力イネーブルにする必要があ ります。 484 第 16 章 DMAC (DMA コントローラ ) ■ DEOP 端子出力のタイミングについて 本 DMA での DEOP 出力は , 受け付けられたチャネルの DMA 転送が指定転送回数分終 了したことを示すものです。 DEOP 出力は最終転送ブロックの外部領域アクセスが開始されると出力されます。そ のため , ブロックサイズを "1" 以外に設定 ( ブロック転送モード ) している場合 , 最終 ブロックの最後のデータ転送時に DEOP が出力されます。この場合 , 転送がまだ行わ れている間 (DEOP 出力される前 ) でも , DACK 端子出力がアサートされていれば , 次 の DREQ の受付けは開始されています。 DEOP の出力は外部バスアクセスタイミングの RD, WR に同期しています。しかし , 転 送元 / 転送先が内部アクセスであった場合 DEOP は出力されません。DEOP 出力を使用 する場合は , ポートレジスタで DEOP 出力イネーブルにする必要があります。 ■ DSTP 端子入力のタイミングについて バースト / ステップ / ブロック / デマンド転送すべての転送モードで動作時最小 5 シス テムクロックサイクル (=1/2θ, CPU 系のクロックの 2 周期分 ) の幅が必要です。 DSTP の入力タイミングは DREQ と同様に外部アクセスと同期させて使用することを お奨めします (DACK 出力と RD または WR でデコードした信号を使用してください ) 。 DMA の転送を強制的に停止する場合に使用します。この端子入力を使用することで転 送を強制的に停止することができますが , ステータスレジスタ (DMACB:DSS[2:0]) は 「転送停止要求」を示しエラーとして扱われます。割込みを許可していれば割込みを発 生します。 この機能は DEOP 端子と兼用になっているので両方の機能を使用することはできませ ん。機能の切換えはポートレジスタで設定してください。 ■ 転送中に外部端子転送要求が再度入力された場合について ● バースト / ステップ / ブロック転送時 DACK 信号が DMAC 内部でアサートされるまでの間 , 次の転送要求は入力されても無 効となります。しかし , 外部バス制御ユニットと DMAC の動作は完全に同期してはい ないため , DREQ 入力で転送要求を有効にすためには DACK と DEOP 出力により DREQ 端子入力を作成する回路を初期化する必要があります。 ● デマンド転送時 全転送回数が終了した際に転送回数レジスタのリロードを指定している場合 , 再度転 送要求が受け付けられます。 ■ ブロック転送中にほかの転送要求が発生した場合について 指定したブロックの転送が終了するまでは , ほかの要求は検出されません。 ブロックの境界にて , その時点で受け付けられている転送要求を評価し , もっとも優先 順位の高いチャネルの転送を行います。 ■ 外部 I/O −外部メモリ間の転送について 本 DMAC の転送対象として , 外部 I/O と外部メモリの区別は存在しません。外部 I/O は , アドレス固定の外部アドレスとして設定してください。 フライバイ転送を行う場合 , 外部メモリは転送先アドレスレジスタにアドレスを設定 してください。また外部 I/O に対しては DACK 出力と RD または WR でデコードした 信号を使用してください。 485 第 16 章 DMAC (DMA コントローラ ) ■ DMAC の AC 特性について DMAC に関連する外部端子は DREQ 端子入力と DACK 端子出力 , DEOP 端子出力があ りますが , 出力タイミングは外部バスアクセスに同期しています (DMAC の AC 規格を 参照してください ) 。 486 第 16 章 DMAC (DMA コントローラ ) 16.4 動作フロー 図 16.4-1 ∼ 図 16.4-3 に , DMA 転送の動作フローを示します。 ■ ブロック転送の動作フロー 図 16.4-1 ブロック転送 DMA停止 DENB=>0 DENB=1 リロード許可 起動要求待機 起動要求 initial アドレス,転送回数, ブロック数ロード 転送元アドレスアクセス アドレス演算 フライバイ時は1回のアクセス 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 周辺割込み起動要因選択時のみ アドレス,転送回数,ブロック数 ライトバック 割込みクリア 割込みクリア発生 DTC=0 DMA転送終了 DMA割込み発生 ブロック転送 ・全ての起動要因で起動できる(選択)。 ・全ての領域へのアクセスができる。 ・ブロック数の設定可能。 ・ブロック数終了で割込みクリア発行。 ・指定転送回数終了でDMA割込みを発行。 487 第 16 章 DMAC (DMA コントローラ ) ■ バースト転送の動作フロー 図 16.4-2 バースト転送 DMA停止 DENB=>0 DENB=1 起動要求待機 リロード許可 initial アドレス,転送回数, ブロック数ロード 転送元アドレスアクセス アドレス演算 フライバイ時は1回のアクセス 転送先アドレスアクセス アドレス演算 ブロック数-1 BLK=0 転送回数-1 DTC=0 アドレス,転送回数,ブロック数 ライトバック 周辺割込み起動要因選択時のみ 割込みクリア発生 割込みクリア DMA転送終了 バースト転送 ・全ての起動要因で起動できる(選択)。 ・全ての領域へのアクセスができる。 ・ブロック数の設定可能。 ・指定転送回数終了で割込みクリア,DMA割込みを発行。 488 DMA割込み発生 第 16 章 DMAC (DMA コントローラ ) ■ デマンド転送の動作フロー 図 16.4-3 デマンド転送 DMA停止 DENB=>0 なし リロード許可 DENB=1 起動要求待機 起動要求あり initial アドレス,転送回数, ブロック数ロード 転送元アドレスアクセス アドレス演算 フライバイ時は1回のアクセス 転送先アドレスアクセス アドレス演算 転送回数-1 アドレス,転送回数,ブロック数 ライトバック DTC=0 割込みクリア 周辺割込み起動要因選択時のみ 割込みクリア発生 DMA転送終了 DMA割込み発生 デマンド転送 ・外部端子(DREQ)からの要求(レベル検出)のみ受け付け。他の要因での起動禁止。 ・外部領域へのアクセスは必須条件(外部領域へのアクセスが次の起動要因となるため) ・ブロック数は,設定に関係なく1固定になる。 ・指定転送回数終了で割込みクリア,DMA割込みを発行。 489 第 16 章 DMAC (DMA コントローラ ) データパス 16.5 ここでは , 各転送時のデータの動作を示します。 ■ 2 サイクル転送時のデータの動作 図 16.5-1 から図 16.5-6 に 2 サイクル転送時のデータの動作を示します。 図 16.5-1 外部領域→外部領域転送 MB91xxx リードサイクル CPU I-bus X-bus バスコントローラ D-bus データバッファ DMAC ライトサイクル I-bus CPU DMAC 外部バス I/F MB91xxx X-bus バスコントローラ D-bus データバッファ F-bus F-bus RAM 外部バス I/F 外部領域=>外部領域 転送 I/O RAM I/O 図 16.5-2 外部領域→内部 RAM 領域転送 MB91xxx リードサイクル CPU I-bus X-bus バスコントローラ D-bus データバッファ DMAC ライトサイクル I-bus CPU DMAC 外部バス I/F MB91xxx X-bus バスコントローラ D-bus データバッファ F-bus RAM 490 F-bus I/O RAM I/O 外部バス I/F 外部領域=>内部RAM領域 転送 第 16 章 DMAC (DMA コントローラ ) 図 16.5-3 外部領域→内蔵 I/O 領域転送 MB91xxx リードサイクル CPU I-bus X-bus バスコントローラ D-bus データバッファ DMAC ライトサイクル I-bus CPU DMAC 外部バス I/F MB91xxx X-bus バスコントローラ D-bus データバッファ F-bus RAM 外部バス I/F 外部領域=>内蔵I/O領域 転送 F-bus RAM I/O I/O 図 16.5-4 内蔵 I/O 領域→内蔵 RAM 領域転送 MB91xxx リードサイクル CPU I-bus X-bus バスコントローラ D-bus データバッファ DMAC ライトサイクル I-bus CPU DMAC 外部バス I/F MB91xxx D-bus X-bus バスコントローラ F-bus RAM 外部バス I/F 内蔵I/O領域=>内蔵RAM領域 転送 F-bus RAM I/O I/O 図 16.5-5 内部 RAM 領域→外部領域転送 MB91xxx リードサイクル CPU I-bus X-bus バスコントローラ D-bus データバッファ DMAC ライトサイクル I-bus CPU DMAC 外部バス I/F MB91xxx X-bus バスコントローラ D-bus データバッファ F-bus RAM I/O 外部バス I/F 内部RAM領域=>外部領域 転送 F-bus RAM I/O 491 第 16 章 DMAC (DMA コントローラ ) 図 16.5-6 内部 RAM 領域→内蔵 I/O 領域転送 MB91xxx リードサイクル X-bus I-bus CPU バスコントローラ D-bus DMAC ライトサイクル X-bus I-bus CPU DMAC 外部バス I/F MB91xxx データバッファ バスコントローラ D-bus データバッファ F-bus F-bus RAM RAM I/O I/O ■ フライバイ転送時のデータの動作 図 16.5-7 および図 16.5-8 に , フライバイ転送時のデータの動作を示します。 図 16.5-7 フライバイ転送 ( メモリ→ I/O) DMAC リードサイクル CPU I-bus X-bus バスコントローラ D-bus memory MB91xxx 外部バス I/F フライバイ転送 (メモリ→I/O) RD ,CSxでメモリリードする。 データバッファ RAM I/O F-bus I/O RD, DACKでI/Oライトする。 SDRAMでのフライバイ転送は不可。 図 16.5-8 フライバイ転送 (I/O →メモリ ) CPU I-bus X-bus バスコントローラ D-bus memory DMAC リードサイクル WR, CSxでメモリライトする。 データバッファ F-bus RAM I/O I/O MB91xxx 外部バス I/F フライバイ転送 (I/O→メモリ) WR, DACKでI/Oリードする。 SDRAMでのフライバイ転送は不可。 492 外部バス I/F 内部RAM領域=>内蔵I/O領域 転送 第 16 章 DMAC (DMA コントローラ ) 16.6 DMA 外部インタフェース DMA 外部インタフェースについて説明します。 ただし , MB91F353A/351A/352A/353A は DMA 外部インタフェースがありません。 ■ DMA 外部インタフェースの動作概要 DMA ch0 ∼ 2 は , DMA 専用端子 (DREQ, DACK, DEOP) を持っています。 • DREQ: デマンド転送を行うときの DMA 転送要求入力端子です。"1" 入力で転送要求。 • DACK: DMA が外部インタフェースを通して外部領域にアクセスした場合にアクティブ ("L" 出力 ) になります。 • DEOP: DMA 転送がすべて終了する最後のアクセスに同期してアクティブ ("L" 出力 ) にな ります。 • IORD: フライバイ転送時に I/O →メモリの方向選択時にアクティブになります。 • IOWR: フライバイ転送時にメモリ→ I/O の方向選択時にアクティブになります。 ■ 動作例 ( 簡易波形 ) ● 2 サイクル転送 ( 外部→外部転送時 , 転送回数 =2 の場合 ) 図 16.6-1 に 2 サイクル転送 ( 外部→外部転送時 , 転送回数 =2 の場合 ) の簡易波形を示 します。 図 16.6-1 2 サイクル転送 ( 外部→外部転送時 , 転送回数 =2 の場合 ) の簡易波形 A24~A0 #RD1 #WR1 #RD2 #WR2 RD WR EOP DACK CS1 1回目リード 1回目ライト 2回目リード 2回目ライト 493 第 16 章 DMAC (DMA コントローラ ) ● フライバイ転送 (I/O →メモリ転送時 , 転送回数 =3 の場合 ) 図 16.6-2 に , フライバイ転送 (I/O →メモリ転送時 , 転送回数 =3 の場合 ) の簡易波形を 示します。 図 16.6-2 フライバイ転送 (I/O →メモリ転送時 , 転送回数 =3 の場合 ) の簡易波形 A24~A0 CPU #1 #2 #3 RD WR IORD EOP DACK CS1 CPUリード フライバイ1回目 フライバイ2回目 フライバイ3回目 ● フライバイ転送 ( メモリ→ I/O 転送時 , 転送回数 =3 の場合 ) 図 16.6-3 に , フライバイ転送 ( メモリ→ I/O 転送時 , 転送回数 =3 の場合 ) の簡易波形を 示します。 図 16.6-3 フライバイ転送 ( メモリ→ I/O 転送時 , 転送回数 =3 の場合 ) の簡易波形 A24~A0 CPU #1 #2 #3 RD WR IOWR EOP DACK CS1 CPUリード フライバイ1回目 フライバイ2回目 フライバイ3回目 ■ DREQx 端子の入力タイミング DREQx 端子は DMA の起動要求信号です。ポートと兼用になっている場合は PFR レジ スタで DREQ 入力を許可してください。 494 第 16 章 DMAC (DMA コントローラ ) ● タイミング 1) デマンド転送以外の場合は , DMA の起動要因をエッジ検出に設定してください。立 上り / 立下りタイミングに規定はありませんが , DREQ 信号の保持時間は , 3 クロッ ク以上必要です。再度転送要求をする場合は DMA 転送が終了したあとに要求入力 を入れてください (DEOP が出力されたあとに要求する ) 。DEOP 出力前に要求を入 れても無視されることがあります。 図 16.6-4 に , DREQx エッジ要求時 (2 サイクル転送時 ) を示します。 2) デマンド転送の場合は , DMA の起動要因をレベル検出に設定してください。起動開 始時に規定はありませんが , 停止時は , DMA 転送の RD/WR に同期させてください。 センスタイミングは最終外部アクセスの MCLK の立上りになります。 図 16.6-5 に , DREQx レベル要求時 (2 サイクル転送時 ) を示します。 図 16.6-4 DREQx エッジ要求時 (2 サイクル転送時 ) MCLK DREQ A24~A0 #RD1 #WR1 #RD2 #WR2 RD WR DEOP CPU動作 CPU DMA転送 3サイクル以上 次の要求はDEOP出力後 図 16.6-5 DREQx レベル要求時 (2 サイクル転送時 ) MCLK DREQ A24~A0 #RD1 #WR1 #RD2 #WR2 RD WR CPU動作 DMA転送 CPU 3回目の転送要求のセンスポイント この場合は 2 サイクル転送で転送元 / 先が外部領域のため , 2 回の DMA 転送で停止さ せるときは , #RD2 の立下りから #WR2 の最終の MCLK 立上りの前までにネゲートし てください。 495 第 16 章 DMAC (DMA コントローラ ) ■ DACK の FR30 互換モード この DACK の FR30 互換モードは , DACK のタイミングを FR30 ファミリの DMA と同 じタイミングにするモードです。このモードは DACK 端子に対応する PFR レジスタで 設定してください。 PFR 設定時は対応する DMA チャネルの転送モード ( フライバイ , 2 サイクル ) と合わ せてください。 <注意事項> FR30 互換モードで 2 サイクル転送の設定時 RD または WR/WRn に同期します。WR を 使用する場合は外部インタフェース ACR レジスタの TYPE3-0 を "0x1xB" にして WR を有 効にしてください。 図 16.6-6 に 2 サイクル転送モード時の , 図 16.6-7 にフライバイ転送モード時の転送例 を示します。 〔設定例〕 図 16.6-6 2 サイクル転送モード時設定例 RD DQMU/L WR/WRn DACK(AKxx=111B) チップセレクトと同じタイミング転送 DACK(AKxx=001B) 2サイクル転送時設定禁止 DACK(AKxx=010B) DACK(AKxx=011B) DACK(AKxx=100B) DACK(AKxx=101B) DACK(AKxx=110B) AKxx : DMAチャネルに対応するPFRレジスタの設定値です。 496 第 16 章 DMAC (DMA コントローラ ) 図 16.6-7 フライバイ転送モード時 RD DQMU/L WR/WRn IORD IOWR DACK(AKxx=111B) チップセレクトと同じタイミング DACK(AKxx=001B) DACK(AKxx=010B) フライバイ転送時設定禁止 DACK(AKxx=011B) フライバイ転送時設定禁止 DACK(AKxx=100B) フライバイ転送時設定禁止 DACK(AKxx=101B) フライバイ転送時設定禁止 DACK(AKxx=110B) フライバイ転送時設定禁止 メモリ→IO IO→メモリ メモリ→IO IO→メモリ AKxx : DMAチャネルに対応するPFRレジスタの設定値です。 497 第 16 章 DMAC (DMA コントローラ ) 498 第 17 章 フラッシュメモリ この章では , フラッシュメモリの概要 , レジスタの 構成 / 機能 , および動作について説明します。 17.1 フラッシュメモリの概要 17.2 フラッシュメモリのレジスタ 17.3 フラッシュメモリの動作説明 17.4 フラッシュメモリ自動アルゴリズム 17.5 フラッシュメモリ書込み / 消去の詳細説明 499 第 17 章 フラッシュメモリ 17.1 フラッシュメモリの概要 MB91F355A/MB91F353A/MB91F357B は , 256K バイトのフラッシュメモリを 2 個内 蔵しており , 合計 512K バイトのフラッシュメモリ容量があります。 MB91F356B は , 128K バイトのフラッシュメモリを 2 個内蔵しており , 合計 256K バイトのフラッシュメモリ容量があります。 内蔵フラッシュメモリは , 3.3V 単一電源にて , FR-CPU による , セクタ単位での 消去 , 全セクタ一括消去 , およびハーフワード (16 ビット ) 単位での書込みが可能で す。 ■ フラッシュメモリの概要 内蔵の 3.3V 動作 256K バイト /128K バイト FLASH メモリは , 当社フラッシュメモリ製 品MBM29LV400Cと同等の機能を持ち (ただし, 容量, セクタ構成が異なります) , ROM ライタによるデバイス外部からの書込みも可能です。本書と併せて「MBM29LV400C データシート」もご参照ください。 また , MBM29LV400C 相当の機能に加え , FR-CPU の内蔵 ROM として使用する場合に は , ワード (32 ビット ) 単位での命令 / データ読出しが可能であり , デバイスの高速動 作に寄与します。MB91F355A/MB91F353A/MB91F356B/MB91F357B ではこの FLASH メモリを 2 個搭載しています。 MB91F355A/MB91F353A/MB91F356B/MB91F357B では , 内蔵フラッシュメモリと FRCPU インタフェース回路の組合せにより , 以下の機能を実現します。 • CPU のプログラム / データ格納用メモリとして機能 ( 以下 , CPU モードと表記 ) - ROM として使用する際は 32 ビットバス幅でアクセス可能 - CPU の命令動作による読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) • 単体フラッシュメモリ製品の MBM29LV400C 相当の機能 ( 以下 , FLASH モードと表 記) ROM ライタによる読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) ここでは , FR-CPU から本フラッシュメモリを使用する場合について記載しています。 ROM ライタから本フラッシュメモリを使用する場合の詳細については , 別途 ROM ラ イタの取扱説明書を参照してください。 * : 自動プログラムアルゴリズム= Embedded AlgorithmTM Embedded AlgorithmTM は Advanced Micro Devices 社の商標です。 500 第 17 章 フラッシュメモリ ■ フラッシュメモリのブロックダイヤグラム 図 17.1-1 に , フラッシュメモリのブロックダイヤグラムを示します。 図 17.1-1 フラッシュメモリのブロックダイヤグラム 立上りエッジ検出 制御信号生成 RDY/BUSYX RESETX BYTEX 256Kバイト/128Kバイト OEX フラッシュメモリ (2個搭載) WEX RDYEG RDY WE バス制御信号 CEX FA17~0 DI15~0 DO31~0 アドレスバッファ FA17~0 データバッファ FD31~0 FR-Fバス(命令/データ) 501 第 17 章 フラッシュメモリ ■ フラッシュメモリのメモリマップ フラッシュメモリのアドレスマッピングは FLASH モードと CPU モードでは異なりま す。図 17.1-2 に , 各モードでのフラッシュメモリのメモリマップを示します。 図 17.1-2 MB91F353A/F355A/F356B/F357B フラッシュメモリのメモリマップ CPU モード FLASH モード 0000_0000H I/O ,etc 0008_0000H 32ビット 32ビット 内蔵 ROM 1 内蔵 ROM 2 0 010_0000H 512K バイト 0010_0000H 8ビット/16ビット 内蔵 ROM1 256 K バイト 内蔵 ROM2 256 K バイト 0014_0000H 0017_FFFFH 外部 FFFF_FFFFH 502 第 17 章 フラッシュメモリ 図 17.1-3 MB91F356B フラッシュメモリのメモリマップ CPU モード FLASH モード 0000_0000H I/O ,etc 000C_0000H 32ビット 32ビット 内蔵 ROM 1 内蔵 ROM 2 0 010_0000H 外部 256K バイト 0010_0000H 0011_0000H 0012_0000H 0013_0000H 0014_0000H 0015_0000H 0016_0000H 0017_0000H 0017_FFFFH 8ビット/16ビット アクセス禁止 内蔵ROM1 アクセス禁止 内蔵ROM1 アクセス禁止 内蔵ROM2 アクセス禁止 内蔵ROM2 64K バイト FFFF_FFFFH CPU モードでは , 32 ビットフラッシュメモリを 2 個並列接続して 64 ビットアクセスす るので上位側 ROM (ROM1) と下位側 ROM (ROM2) という配置になっています。 FLASH モードでは ROM1 と ROM2 は A18 で切り換わります。ROM ライタからの A18 は接続せずにスイッチなどを接続して 256K バイト /128K バイトのフラッシュメモリ 2 個を切り換えるイメージで使用します。 503 第 17 章 フラッシュメモリ ■ フラッシュメモリのセクタアドレス表 〔フラッシュメモリのセクタマップ〕 フラッシュメモリのセクタ配置は , 以下のとおりです。 • CPU モード (MB91F355A/MB91F353A/FMB91F357B) 0xFFFFFH 0xF0000H 0xEF000H 0xE8000H 0xE7FFFH 0xE0000H 0xDFFFFH 0xC0000H 0xBFFFFH 0x80000H SAA9(16K) SAA4(16K) SAB9(16K) SAB4(16K) SAA8(8K) SAA3(8K) SAB8(8K) SAB3(8K) SAA7(8K) SAA2(8K) SAB7(8K) SAB2(8K) SAA6(32K) SAA1(32K) SAB6(32K) SAB1(32K) SAA5(64K) SAA0(64K) SAB5(64K) SAB0(64K) 31… 24,23… 16 15… 8,7… 0 31… 24,23… 16 15… 8,7… 0 +4/+5 +6/+7 +0/+1 ROM 1 +2/+3 • FLASH モード (MB91F355A/MB91F353A/FMB91F357B) 0x13FFFFH 0x13C000H 0x13BFFFH 0x13A000H 0x139FFFH 0x138000H 0x137FFFH 0x130000H 0x12FFFFH 0x120000H 0x11FFFFH 0x11C000H 0x11BFFFH 0x11A000H 0x119FFFH 0x118000H 0x117FFFH 0x110000H 0x10FFFFH 0x100000H A18 504 SAA9 (16K ) SAB9(16K ) SAA8 (8K ) SAB8(8K ) SAA7 (8K ) SAB7(8K) SAA6 (32K ) SAB6(32K) SAA5 (64K ) SAB5(64K) ROM 2 ROM 1 SAA4 (16K ) SAB4(16K) SAA3 (8K ) SAB3(8K) SAA2 (8K ) SAB2(8K ) SAA1 (32K ) SAB1(32K) SAA0 (64K ) SAB0(64K) 15… 8,7… 01 5… 8,7… 0 0 1 ROM 2 第 17 章 フラッシュメモリ • CPU モード (SAA0, SAA5, SAB0, SAB5 はアクセス禁止です ) (MB91F356B) 0xFFFFFH 0xF0000H 0xEF000H 0xE8000H 0xE7FFFH 0xE0000H 0xDFFFFH 0xC0000H 0xBFFFFH 0x80000H SAA9(16K) SAA4(16K) SAB9(16K) SAB4(16K) SAA8(8K) SAA3(8K) SAB8(8K) SAB3(8K) SAA7(8K) SAA2(8K) SAB7(8K) SAB2(8K) SAA6(32K) SAA1(32K) SAB6(32K) SAB1(32K) - - - - 31… 24,23… 16 15… 8,7… 0 31… 24,23… 16 15… 8,7… 0 +4/+5 +6/+7 +0/+1 ROM 1 +2/+3 ROM 2 ( 注意事項 ) FLCR レジスタの WE ビットに "1" の時は 32 ビット幅アクセスは不可能 • FLASH モード (SAA0, SAA5, SAB0, SAB5 はアクセス禁止です ) (MB91F356B) 0x13FFFFH 0x13C000H 0x13BFFFH 0x13A000H 0x139FFFH 0x138000H 0x137FFFH 0x130000H 0x12FFFFH 0x120000H 0x11FFFFH 0x11C000H 0x11BFFFH 0x11A000H 0x119FFFH 0x118000H 0x117FFFH 0x110000H 0x10FFFFH 0x100000H A18 SAA9 (16K ) SAB9(16K ) SAA8 (8K ) SAB8(8K ) SAA7 (8K ) SAB7(8K) SAA6 (32K ) SAB6(32K) - - ROM 1 ROM 2 SAA4 (16K ) SAB4(16K) SAA3 (8K ) SAB3(8K) SAA2 (8K ) SAB2(8K ) SAA1 (32K ) SAB1(32K) - - 15… 8,7… 01 5… 8,7… 0 0 1 ROM1 と ROM2 は A18 端子で切り換わりますが , 512K バイト /256K バイトのフラッ シュメモリ 1 個としては扱えません。 A18 端子には ROM ライタからの A18 の代わりにスイッチなどを接続し , 256K バイト / 128K バイトのフラッシュメモリとして切換えで使用してください。 505 第 17 章 フラッシュメモリ 17.2 フラッシュメモリのレジスタ フラッシュメモリで使用するレジスタの構成および機能について説明します。 ■ フラッシュメモリのレジスタ概要 フラッシュメモリのレジスタには , 以下の 2 種類があります。 • フラッシュコントロール / ステータスレジスタ (CPU モード ): FLCR • フラッシュメモリウェイトレジスタ : FLWC 506 第 17 章 フラッシュメモリ 17.2.1 フラッシュコントロール / ステータスレジスタ (CPU モード ): FLCR フラッシュメモリの動作状態を示すレジスタです。フラッシュメモリへの書込み制 御などを行います。CPU モードでのみアクセスすることが可能です。 本レジスタは , リードモディファイライト系命令ではアクセスしないでください。 ■ フラッシュコントロール/ステータスレジスタ (CPUモード): FLCRのレジスタ構成 フラッシュコントロール / ステータスレジスタ (CPU モード ):FLCR のレジスタ構成は , 以下のとおりです。 アドレス : 00007000H 初期値 → 7 6 5 R/W (0) R/W (1) R/W (1) 4 3 RDYEG RDY R R (0) (X) 2 1 0 R/W (0) WE R/W (0) R/W (0) [ ビット 7] Reserve: 予約ビット 必ず "0" を設定してください。 [ ビット 6, 5] Reserve: 予約ビット 必ず "1" を設定してください。 [ ビット 4] RDYEG: フラッシュメモリの自動アルゴリズム ( 書込み / 消去など ) の終了により "1" になり ます。 本ビットは , 読み出すとクリアされます。 値 内 容 0 自動アルゴリズムの終了は検出していません。 1 自動アルゴリズムの終了を検出しました。 • リセット時 : "0" に初期化されます。 [ ビット 3] RDY: 自動アルゴリズム ( 書込み / 消去 ) の動作状態を表示します。 本ビットが "0" の期間は , 自動アルゴリズムによる書込みまたは消去が行われており , 新たな書込みまた消去コマンドを受け付けることはできません。また , フラッシュメ モリアドレスからのデータ読出しはできません。 読み出したデータはフラッシュメモリのステータスを示します。 値 内 容 0 書込み / 消去動作中で , データの読出しや書込み / 消去コマンドの受付けはできません。 1 データの読出しおよび書込み / 消去コマンドの受付けが可能です。 • リセット時に初期化されません ( その時点でのフラッシュメモリの状態にしたがい ます ) 。 • 読出しのみ可能です。書込みは本ビット値に影響を与えません。 507 第 17 章 フラッシュメモリ [ ビット 2] Reserve: 予約ビット 必ず "0" を設定してください。 [ ビット 1] WE (Write Enable) : CPU モードにおけるフラッシュメモリへのデータおよびコマンドの書込みを制御し ます。 本ビットが "0" の間は , フラッシュメモリへのデータおよびコマンドの書込みはすべ て無効になります。また , フラッシュメモリからのデータ読出しが倍速化します (32 ビット /16 ビット /8 ビットアクセスが可能 ) 。 本ビットが "1" の間は , フラッシュメモリへのデータおよびコマンドの書込みが有効 となり , 自動アルゴリズムの起動が可能となります。ただし , フラッシュメモリから のデータ読出しは低速になります (16 ビット /8 ビットアクセスのみ可能 ) 。 本ビットの書換えは , 必ず RDY ビットにより自動アルゴリズム ( 書込み / 消去 ) が 停止していることを確認してから行ってください。RDY ビットが "0" の間は , 本ビッ トの値を書き換えることができません。 なお , FLASH モードにおいては , 本ビットの状態に関わらず書込み動作が有効とな ります。 値 内 容 0 フラッシュメモリへの書込み禁止 , および読出しの倍速化 1 フラッシュメモリへの書込み許可 , および読出しの低速化 • リセット時には "0" に初期化されます。 • 読出し / 書込み可能です。 <注意事項> FLCR レジスタの WE ビットを変更する場合 , 直後に本 FLCR レジスタを必ずダミーリー ドしてください。ダミーリードを行わないと , 正常に動作しないことがあります。 (例) ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ STB R1,@R2 LDUB @R2,R1 // WE 変更 // ダミーリード ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ただし , レジスタ番号は任意 [ ビット 0] Reserve: 予約ビット 必ず "0" を設定してください。 508 第 17 章 フラッシュメモリ 17.2.2 ウェイトレジスタ : FLWC FLWC は , CPU モードにおいてフラッシュメモリアクセスのウェイト制御を行いま す。 ■ ウェイトレジスタ :FLWC のレジスタ構成 ウェイトレジスタ :FLWC のレジスタ構成は , 以下のとおりです。 アドレス : 00007004H 初期値 → 7 6 5 4 3 2 R (0) R/W (0) FAC1 R/W (0) FAC0 R/W (1) R/W (0) 1 0 WTC2 WTC1 WTC0 R/W R/W R/W (0) (1) (1) [ ビット 7, 6] Reserve: 予約ビット 必ず "0" を設定してください。 [ ビット 5, 4] FAC1, 0: フラッシュ制御の内部パルス生成を制御するための設定ビットです。 MB91F355A/F353A/F356B/F357B では , ATDIN/EQIN パルス幅の設定になります。 FAC1 FAC0 ATDIN EQIN 0 0 0.5 CLKB クロック 1.0 CLKB クロック 0 1 1.0 CLKB クロック 1.5 CLKB クロック 初期値 1 0 1.5 CLKB クロック 2.0 CLKB クロック 設定禁止 1 1 2.0 CLKB クロック 2.5 CLKB クロック 設定禁止 設定禁止 • リセット時 , FAC1 ビットは "0", FAC0 ビットは "1" に初期化されます。 • MB91F355A/F353A/F356B/F357B では , 必ず FAC1 ビットに "0" を , FAC0 ビットに "1" を設定してください。 [ ビット 3] Reserve: 予約ビット 必ず "0" を設定してください。 509 第 17 章 フラッシュメモリ [ ビット 2 ∼ 0] WTC2, 1, 0:Wait Cycle ビット フラッシュメモリのウェイト制御をします。 VDD=3.0V@50MHz 時 VDD=2.7V@50MHz 時 WTC2 WTC1 WTC0 ウェイト数 WE ビット "0" 時 WE ビット "1" 時 WE ビット "0" 時 WE ビット "1" 時 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 動作可能 動作可能 動作可能 動作可能 初期値 • リセット時 , WTC2 ビットは "0", WTC1 ビットは "1", WTC0 ビットは "1" に初期化 されます。 • MB91F355A/F353A/F356B/F357Bでは, 動作可能なウェイト数最小動作電源電圧によ り , 上記となります。 また , 動作可能なウェイト数は , FLCR レジスタの WE ビットの設定状態により変化 します。 510 第 17 章 フラッシュメモリ 17.3 フラッシュメモリの動作説明 フラッシュメモリの動作について説明します。 ■ フラッシュメモリのアクセスモード FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。 • ROM モード : ワード (32 ビット ) 長データを一括で読み出すことができますが , 書込みはできま せん。 • プログラミングモード : ワード (32 ビット ) 長アクセスは禁止されていますが , ハーフワード (16 ビット ) 長 での書込みが可能になります。 ■ FR-CPU ROM モード (32 ビット , リードのみ ) FR-CPU の内蔵 ROM として機能するモードです。ワード (32 ビット ) 長データの一括 読出しが可能となりますが , フラッシュへの書込み , 自動アルゴリズムの起動はできま せん。 • モードの指定方法 - FLCR レジスタの WE ビットが "0" のとき , 本モードとなります。 - CPU 動作時でのリセット解除後は常に本モードになります。 - CPU 動作時以外では本モードにすることができません。 • 動作内容 フラッシュメモリ領域の読出し時 , メモリよりワード (32 ビット ) 長データを一括 で読み出します。 • 制限事項 - ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。 - 本モードでは , フラッシュメモリへのコマンド / データともに書込みはできませ ん。 ■ FR-CPU プログラミングモード (16 ビット , リード / ライト可能 ) データの消去 / 書込みが可能になるモードです。ワード (32 ビット ) 長データの一括ア クセスは不可能ですので , 本モードで動作している間はフラッシュメモリ上のプログ ラムは実行が不可能となります。 • モードの指定方法 - FLCR レジスタの WE ビットが "1" のとき本モードとなります。 - CPU 動作時でのリセット解除後は WE ビットが "0" になっています。本モードに するためには "1" を書き込んでください。再度 "0" を書き込むか , またはリセッ トの発生により WE ビットが "0" になると ROM モードに戻ります。 - FLCR レジスタの RDY ビットが "0" の期間は WE ビットを書き換えることができ ません。RDY ビットが "1" になったことを確認してから WE ビットを書き換えて ください。 511 第 17 章 フラッシュメモリ • 動作内容 - フラッシュメモリ領域の読出し時 , メモリよりハーフワード (16 ビット ) 長デー タを一括で読み出します。 - フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動すること ができます。自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込み が可能となります。自動アルゴリズムの詳細については , 「17.4 フラッシュメモ リ自動アルゴリズム」を参照してください。 • 制限事項 - ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。 - 本モードではワード (32 ビット ) 長でデータを読み出すことを禁止します。 - MB91F355A/MB91F353A/MB91F356B/MB91F357B は 256K バイト /128K バイト FLASH を 2 個搭載しており , それぞれの FLASH (ROM1, ROM2) について , 独立 に制御しなければなりません。詳しくは「17.4.1 コマンドシーケンス」を参照し てください。 ■ 自動アルゴリズム実行状態 CPU プログラミングモードにて自動実行アルゴリズムを起動した場合には , 内部レ ディ / ビジー信号 (RDY/BUSY) により自動実行アルゴリズムの動作状態を知ることが できます。このレディ / ビジー信号のレベルは FLCR レジスタの RDY ビットとして読 むことができます。 RDY ビットが "0" の期間は , 自動アルゴリズムによる書込み , または消去が行われてお り , 新たな書込み , または消去コマンドを受け付けることはできません。また , フラッ シュメモリアドレスからのデータ読出しはできません。 RDY ビットが "0" の期間に読み出したデータは , フラッシュメモリのステータスを示 すハードウェアシーケンスフラグとなっています。 512 第 17 章 フラッシュメモリ 17.4 フラッシュメモリ自動アルゴリズム フラッシュメモリ自動アルゴリズムのコマンドシーケンス , 実行状態の確認方法 , お よびフラッシュメモリ書込み / 消去の詳細を説明します。 ■ フラッシュメモリ自動アルゴリズムの概要 フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書 込み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停止と再開 の制御が可能です。 513 第 17 章 フラッシュメモリ コマンドシーケンス 17.4.1 自動アルゴリズムを起動するためのコマンドシーケンスについて説明します。 ■ 自動アルゴリズムのコマンドシーケンス 自動アルゴリズムを起動するには , フラッシュメモリに対して 1 ∼ 6 回のハーフワード (16 ビット ) データの連続書込みを実行します。これをコマンドとよびます。 不正なアドレスとデータを書き込んだり , 誤った順番でアドレスとデータを書き込ん だりすると , フラッシュメモリはリードモードにリセットされます。 <注意事項> MB91F355A/MB91F353A/MB91F357B は 256K バイトフラッシュメモリを 2 個 , MB91F356B は 128K バイトフラッシュメモリを 2 個搭載しており , コマンドアドレスは それぞれのフラッシュメモリで異なりますので , 注意が必要です。また , 512K バイト / 256K バイトの領域を消去するには , チップ消去を ROM1 側 , ROM2 側とそれぞれ実行し なくてはいけません。 514 第 17 章 フラッシュメモリ 表 17.4-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま す。 FR-CPU により書込みを行う場合 , 書込みデータは , ハーフワード (16 ビット ) データ で行ってください ( アドレスは CPU モード時のアドレスを記載してあります ) 。 表 17.4-1 コマンドシーケンス表 バ ス ラ イ コマンド ト シーケンス サ イ ク ル ROM 読出し / リセット 1 共通 読出し / リセット 3 書込み チップ消去 4 6 6 セクタ消去 1st バス 2nd バス ライトサイクル ライトサイクル 3rd バス ライトサイクル 4th バス リード / ライト サイクル 5th バス 6th バス ライトサイクル ライトサイクル アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ *XXXXH F0H − − − − − − − − − − ROM1 *AAAAH AAH *5552H 55H *AAAAH F0H (RAH) (RDH) − − − − ROM2 *AAAEH AAH *5556H 55H *AAAEH F0H (RAH) (RDH) − − − − ROM1 *AAAAH AAH *5552H 55H *AAAAH A0H (PAH) (PDH) − − − − ROM2 *AAAEH AAH *5556H 55H *AAAEH A0H (PAH) (PDH) − − − − ROM1 *AAAAH AAH *5552H 55H *AAAAH 80H *AAAAH AAH *5552H 55H *AAAAH 10H ROM2 *AAAEH AAH *5556H 55H *AAAEH 80H *AAAEH AAH *5556H 55H *AAAEH 10H ROM1 *AAAAH AAH *5552H 55H *AAAAH 80H *AAAAH AAH *5552H 55H (SAH) 30H ROM2 *AAAEH AAH *5556H 55H *AAAEH 80H *AAAEH AAH *5556H 55H (SAH) 30H セクタ消去一時停止 アドレス (*XXXXH) , データ (B0H) の入力で , セクタ消去中の消去一時停止 セクタ消去再開 アドレス (*XXXXH) , データ (30H) の入力で , セクタ消去一時停止後 , 消去再開 ・コマンドシーケンスにおいて , 上位 16 ビットアドレスは , 任意のフラッシュメモリ空間としてください ( 表 17.4-1 では上位アドレ スを * で表記 ) 。 ・ワードモード / バイトモード共にコマンドは同じで , 表記されていないビットのデータは任意です。 ・アドレス , データはすべて 16 進数で表記しています。 (RA) : 読出しアドレス (PA) : 書込みアドレス (SA) : セクタアドレス ( セクタ内の任意の 1 アドレスを指定 ) (RD) : 読出しデータ (PD) : 書込みデータ ・消去一時停止コマンド (B0H) と , 消去再開コマンド (30H) は , セクタ消去動作中のみ有効です。 ・2 種類のリセットコマンドは , どちらもフラッシュメモリを読出しモードにリセットすることができます。 515 第 17 章 フラッシュメモリ ■ リード ( 読出し ) / リセットコマンド フラッシュメモリを読出し / リセットモードにセットします。フラッシュメモリは , ほ かのコマンドが入力されるまで読出し状態を保ちます。フラッシュメモリは , 電源投入 時自動的に読出し / リセットモードにセットされます。この場合は , データ読出しコマ ンドは必要ありません。 タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー タを読み出します。 ■ プログラム ( 書込み ) CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書 込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック " サ イクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そし て最後の書込みサイクルでメモリへの書込みが開始されます。 自動書込みアルゴリズムコマンドシーケンス実行後は , フラッシュメモリはそれ以上 の外部よりの制御を必要としません。 フラッシュメモリは , 自動的に内部で作られた適切な書込みパルスを発生し , 書き込ま れたセルのマージンを検証します。自動書込み動作は , データポーリング機能により , ビット 7 のデータがこのビットに書き込んだデータに一致したとき終了し (「17.4.2 自 動アルゴリズム実行状態の確認」の「■ ハードウェアシーケンスフラグ」参照 ) , この 時点で読出しモードに戻ってこれ以上書込みアドレスは受け付けなくなります。この 結果 , フラッシュメモリはこの時点で次の有効アドレスを要求します。このようにデー タポーリングは , メモリが書込み中であることを示します。 書込み中はフラッシュメモリに書き込まれたすべてのコマンドが無視されます。書込 み中にハードウェアリセットが起動された場合は , 書き込んでいるアドレスのデータ は保証されません。 書込みはどのようなアドレスの順番でも , またセクタの境界を越えても可能です。 書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー タ "1" を書き込むと , データ・ポーリングアルゴリズムにより , 素子が不良と判定され るか , あるいは見かけ上データ "1" が書き込まれたように見えるかのどちらかです。し かし , リセット / 読出しモードでデータを読み出すとデータは "0" のままです。消去動 作のみが "0" データを "1" データにすることができます。 ■ チップ消去 チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。最初に 2 つの " アンロック " サイクルがあり , 引き続き " セットアップ " コマンドが書き込まれます。 チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。 チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ ん。自動消去アルゴリズム実行に際して , フラッシュメモリは自動的にすべてのセルを 消去する前に "0" のパターンに書き込んで検証します ( プリプログラム ) 。この動作中 には , フラッシュメモリは外部からの制御は必要としません。 自動消去はコマンドシーケンス中の書込みで開始され , ビット 7 が "1" になったときに 終了し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セ クタ消去時間×全セクタ数+チップ書込み時間 ( プリプログラム )」となります。 516 第 17 章 フラッシュメモリ ■ セクタ消去 セクタ消去は , 6 回のアクセスで行われます。2 つの " アンロック " サイクルがあり , 引 き続き " セットアップ " コマンドを書き込み , その後さらに 2 つの " アンロック " サイ クルが続いて 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が 始まります。 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間中 , 次のセクタ消去 コマンドの受付けが可能です。 複数のセクタ消去は, 前述したような6つのバスサイクルを書き込むことで同時に受付 け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ消去 コマンド (30h) を引き続き書き込むことで行います。 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間終了により , セクタ 消去が開始されます。すなわち , 複数のセクタを同時に消去する場合には , 次の消去セ クタをそれぞれ 50 µs 以内に入力する必要があり , それ以降ではコマンドが受け付けら れないことがあります。引き続くセクタ消去コマンドが有効かどうかはビット 3 にて モニタ可能です (「17.4.2 自動アルゴリズム実行状態の確認」の「■ ハードウェアシー ケンスフラグ」参照 ) 。 タイムアウト中のセクタ消去コマンド , あるいは消去一時停止以外のいかなるコマン ドも読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , そ のセクタを再度消去することにより消去が完了します。セクタ消去バッファへのセク タアドレス入力は , セクタのどのような組合せや数でも実行可能です。 セクタ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ ん。フラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行い ます ( プリプログラム ) 。また , セクタ消去中はほかの消去されないセクタは何の影響 も受けません。これらの動作中において , フラッシュメモリは外部からの制御は必要と しません。 自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間 の後に開始され , ビット 7 のデータが "1" になったとき終了し , フラッシュメモリは読 出しモードに戻ります。ほかのコマンドは無視されます。 データポーリングは消去されたセクタ内のどのアドレスでも機能します。複数セクタ 消去時間は「( セクタ消去時間+セクタ書込み時間 ( プリプログラム )) ×消去セクタ 数」となります。 517 第 17 章 フラッシュメモリ ■ 消去一時停止 消去一時停止コマンドは , ユーザがセクタ消去中にフラッシュメモリの自動アルゴリ ズムを一時停止して消去中でないセクタからのデータ読出しと書込みを可能にするも のです。このコマンドはセクタ消去中のみ有効で , チップ消去や書込みの動作中は無視 されます。 消去一時停止コマンド (B0H) はセクタ消去コマンド (30H) 後のセクタ消去タイムアウ ト期間を含むセクタ消去動作中にのみ有効です。このコマンドがタイムアウト期間中 に入力されると直ちにタイムアウトを終了し , 消去動作を中断します。消去再開コマン ドが書き込まれると消去動作が再開されます。消去一時停止 , 消去再開コマンドの入力 時のアドレスは任意であってかまいません。 セクタ消去動作中に消去一時停止コマンドが入力されると , フラッシュメモリが消去 動作を停止するために最大 20 µs の時間がかかります。フラッシュメモリが消去一時停 止モードに入ると , レディ / ビジー出力とビット 7 が "1" を出力し , ビット 6 がトグル 動作をやめます。消去しているセクタのアドレスを入力しビット 6 とビット 7 の読出 し値をモニタすることによって , 消去動作を停止しているかどうかを確かめられます。 さらに , 消去一時停止コマンドの書込みは無視されます。 消去動作が停止したとき , フラッシュメモリは消去一時停止読出しモードになります。 このモードでのデータの読出しはデータが消去一時停止していないセクタに有効とな りますが , それ以外は標準的な読出しと同じです。消去一時停止読出し中 , その消去一 時停止したセクタからの連続的な読出しに対しては , ビット 2 はトグル動作をします。 消去一時停止読出しモードに入った後 , ユーザは書込みのコマンドシーケンスを書き 込むことによりフラッシュメモリに書込みができます。この書込みモードは , 消去一時 停止書込みモードとなります。このモードでの書込みは , データが消去一時停止してい ないセクタに有効となりますが , それ以外は通常のバイト書込みと同じです。消去一時 停止書込みモード中 , その消去一時停止したセクタからの連続的な読出しに対しては , ビット2はトグル動作をします。消去一時停止ビット (ビット6) によって検出できます。 使用上の注意として , ビット 6 はどんなアドレスに対しても読出し可能ですが , ビット 7 は書込みアドレスに対して読出しを行わなければなりません。 セクタ消去動作を再開するためには , 再開コマンド (30H) を入力する必要があります。 この時点でさらに再開コマンドを入力しても無視されます。他方 , 消去一時停止コマン ドはフラッシュメモリが消去再開した後に入力することができます。 518 第 17 章 フラッシュメモリ 17.4.2 自動アルゴリズム実行状態の確認 フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアを持ち ます。 この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内蔵フ ラッシュメモリの動作状態の確認ができます。 ■ レディ / ビジー信号 (RDY/BUSY) フラッシュメモリは内部の自動アルゴリズムが実行中か終了したかを知らせる手段と して , ハードウェアシーケンスフラグのほかに , レディ / ビジー信号を持っています。 このレディ / ビジー信号はフラッシュメモリインタフェース回路に接続され , フラッ シュメモリ / コントロールステータスレジスタの RDY ビットとして読み出すことが可 能です。 RDY ビットの読出し値が "0" のとき , フラッシュメモリは書込み , あるいは消去動作中 です。このときは書込みコマンドも消去コマンドも受け付けません。RDY ビットの読 出し値が "1" のときフラッシュメモリは読出し / 書込み , あるいは消去動作待ちの状態 です。 ■ ハードウェアシーケンスフラグ ハードウェアシーケンスフラグは , 以下のとおりです。 ハーフワード読出し時 1 (不定) 8 バイト読出し時(奇数アドレスのみ) 7 ハードウェアシーケンスフラグ 0 7 ハードウェアシーケンスフラグ 0 <注意事項> ワード読出しは禁止です。FR-CPU プログラミングモードのみ使用してください。 ハードウェアシーケンスフラグは , 自動アルゴリズム実行中にフラッシュメモリの任 意のアドレス (バイトアクセス時は奇数アドレス) を読み出すことによりデータとして 取得できます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズム の状態を示します。 ROM1 の自動アルゴリズム実行中は ROM1 の任意のアドレスを , ROM2 の自動アルゴ リズム実行中は ROM2 の任意のアドレスを指定してください。 ビット ( ハーフワード , バイトアクセス時 ) 7 6 5 4 DPOLL TOGGLE TLOVER ( 不定 ) 3 2 1 SETIMR TOGGL2 ( 不定 ) 0 ( 不定 ) なお , これらのフラグについては FR-CPU ROM モード時に意味を持ちません。必ず FRCPU プログラミングモードのみで , ハーフワードまたはバイト読出しを行ってくださ い。 519 第 17 章 フラッシュメモリ 表 17.4-2 に , ハードウェアシーケンスフラグ状態一覧を示します。 表 17.4-2 ハードウェアシーケンスフラグ状態一覧 DPOLL 状 態 自動書込み動作 自動消去動作 反転データ 0 トグル 0 0 1 トグル 0 1 トグル 1 1 0 0 トグル データ データ データ データ データ トグル 0 0 トグル 1 0 1 トグル 1 1 *4 トグル 1 1 *4 消去一時停止読み出し ( 消去一時停止しているセクタ ) 実行中 消去 一時停止 モード 消去一時停止読み出し ( 消去一時停止していないセクタ ) 消去一時停止読み出し ( 消去一時停止しているセクタ ) タイム リミット 超過 自動消去動作 消去一時停止モード TOGGLLE TLOVER SETIMR TOGGL2 反転データ 反転データ 0 消去一時停止時の書込み動作 0 *2 *1 1 *3 *1: 消去一時停止セクタからの連続的な読出し時に TOGGLE2 はトグル動作をします。 *2: どんなアドレスからの連続的な読出し時でも , TOGGLE はトグル動作をします。 *3: 消去一時停止書込み中 , その書込みされているアドレスの読出し時は , TOGGL2 は "1" となります。しかし , 消去一時停止しているセクタからの連続的な読出し時は , TOGGL2 はトグル動作をします。 *4:TLOVER が "1" のとき ( タイムリミット超過 ) , 書込み / 消去中セクタへの連続的な読み出しに対して , TOGGL2 はトグル動作をし , 他のセクタへの読出しに対してはトグルしません。 表中の各ビットは , 以下の内容を示します。 [ ビット 7] DPOLL: データポーリング [ ビット 6] TOGGLE: トグルビット [ ビット 5] TLOVER: タイムリミット超過 [ ビット 3] SETIMR: セクタ消去タイマ [ ビット 2] TOGGL2: トグルビット 2 以下に , それぞれのビットについて簡単に説明します。 [ ビット 7] DPOLL データポーリングフラグ データポーリングフラグは , 自動アルゴリズム実行が進行中もしくは終了状態であ ることをデータポーリング機能によって知らせるためのフラグです。 ● 書込み動作時 : 自動書込みアルゴリズム実行中にリードアクセスすると , フラッシュメモリはアドレ スの指す番地にアクセスせず, 最後に書き込まれたデータのビット7の反転データを出 力します。 自動書込みアルゴリズム終了時にリードアクセスすると , フラッシュメモリはアドレ スの指す番地の読出し値のビット 7 を出力します。 ● チップ / セクタ消去動作時 : 消去 / セクタ消去アルゴリズム実行中にリードアクセスすると , セクタ消去時は現在消 去しているセクタから , チップ消去時はアドレスの指す番地に関係なく , フラッシュメ モリは "0" を出力します。同様に終了時には "1" を出力します。 520 第 17 章 フラッシュメモリ ● セクタ消去一時停止時 : セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指す 番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければアドレスの指 す番地の読出し値のビット 7 を出力します。 トグルビットフラグと共に参照することで , 現在セクタ一時停止状態であるか , どのセ クタが消去中であるかの判定が可能です。 <注意事項> 自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。データ の読出しは , データポーリングフラグの終了を受けてほかのビットの出力が可能となりま す。 このため自動アルゴリズム終了後のデータの読出しは , データポーリング終了を確認した リードアクセスの次に行うようにしてください。 [ ビット 6] TOGGLE: トグルビットフラグ トグルビットフラグはデータポーリングフラグと同様に , 主に自動アルゴリズム実 行が進行中または終了状態であることを , トグルビット機能によって知らせるため のフラグです。 ● 書込み / チップ • セクタ消去時 : 自動書込みアルゴリズムおよびチップ • セクタ消去アルゴリズム実行中に連続した リードアクセスを行うと , フラッシュメモリはアドレスの指す番地にアクセスせず , リードごとに "1" と "0" を交互に出力するトグル状態を出力します。 自動書込みアルゴリズムおよびチップ / セクタ消去アルゴリズム終了時に連続した リードアクセスを行うと , フラッシュメモリはビット 6 のトグル動作を中止し , アドレ スの指す番地の読出し値のビット 6 (DATA:6) を出力します。 ● セクタ消去一時停止時 : セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指す 番地が消去中のセクタに属するならば , "1" を出力します。 消去中のセクタに属さないのであれば , アドレスの指す番地の読出し値のビット 6 (DATA:6) を出力します。 <参考> 書込みの際 , 書き込もうとしているセクタが書換え保護されているセクタの場合は , 約 2 µs のトグル動作をした後 , データを書き換えることなくトグル動作を終了します。消 去の際 , 選択されたすべてのセクタが書換え保護されている場合 , トグルビットは 約 100 µs のトグル動作をし , その後データを書き換えないで読出し / リセット状態に戻り ます。 521 第 17 章 フラッシュメモリ [ ビット 5] TLOVER タイミングリミット超過フラグ タイミングリミット超過フラグは , 自動アルゴリズムの実行がフラッシュメモリ内 部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラグで す。 ● 書込み / チップ • セクタ消去時 : 書込みまたはチップ • セクタ消去自動アルゴリズム起動後にリードアクセスすると , 規 定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えてしまってい る場合は "1" を出力します。 これは , 自動アルゴリズムが実行中か終了状態にあるかとは無関係ですので , 書込み / 消去が成功したか失敗したかの判定が可能です。すなわち , このフラグが "1" を出力し たとき , データポーリング機能もしくはトグルビット機能により自動アルゴリズムが まだ実行中であれば , 書込みが失敗していると判断することができます。 例えば, "0"が書込まれているフラッシュメモリアドレスに"1"を書込もうとするとフェ イルが発生します。この場合フラッシュメモリはロックされ , 自動アルゴリズムは終了 しません。したがって , データポーリングフラグから有効なデータが出力されません。 またトグルビットフラグはトグル動作を中止せず , タイムリミットを超え , タイミング リミット超過フラグは "1" を出力します。この状態はフラッシュメモリが不良ではな く , 正しく使用されなかったということを表しています。この状態が発生したときは , リセットコマンドを実行してください。 [ ビット 4] SETIMR セクタ消去タイマフラグ セクタ消去タイマフラグは , セクタ消去コマンド起動後セクタ消去ウェイト期間中 であるかどうかを知らせるフラグです。 ● セクタ消去動作時 : セクタ消去コマンド起動後にリードアクセスすると , フラッシュメモリはコマンドを 発行したセクタのアドレス信号の指す番地にアクセスせず , セクタ消去ウェイト期間 中であれば "0" を , セクタ消去ウェイト期間を超えてしまっている場合は "1" を出力し ます。 データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示して いる場合 , このフラグが "1" であれば内部で制御される消去が始まっています。続けて のセクタ消去コードの書込み , または消去一時停止以外のコマンドは , 消去が終了され るまで無視されます。 このフラグが "0" であればフラッシュメモリは , 追加のセクタ消去コードの書込みを受 け付けます。このことを確認するために , 続くセクタ消去コードの書込みに先立ちこの フラグの状態をチェックすることをお奨めします。もし 2 回目の状態チェックで "1" で あったなら追加セクタの消去コードは受け付けられてない可能性があります。 ● セクタ消去動作時 セクタ消去一時停止中にリードアクセスすると , フラッシュメモリはアドレスの指す 番地が , 消去中のセクタに属するならば "1" を出力します。消去中のセクタに属さない のであれば , アドレスの指す番地の読出し値のビット 3 (DATA:3) を出力します。 522 第 17 章 フラッシュメモリ [ ビット 6] TOGGL2: トグルビットフラグ 2 このトグルビットフラグはビット 6 のトグルビットに加えて , フラッシュメモリが 自動消去動作中であるか , 消去一時停止中であるかをトグルビット機能によって知 らせるためのフラグです。 ● 書込み / チップ • セクタ消去時 : トグルビット ( ビット 2) と同様のトグル動作をします。 ● セクタ消去一時停止時 フラッシュメモリが消去一時停止読出しモードならば , 消去一時停止しているセクタ から連続して読出しを行うと , ビット 2 はトグル動作をします。 消去一時停止書込みモードのときは , 消去一時停止していないセクタのアドレスから 連続して読出しを行うと , ビット 2 は "1" が読み出されます。 ビット 6 はビット 2 と異なり , 通常の書込み , 消去 , または消去一時停止書込み動作中 にのみトグル動作をします。 <参考> ビット 2 とビット 6 は , 消去一時停止読出しモードを検出するために , 同時に使われます ( ビット 2 はトグル動作をするがビット 6 はトグル動作をしない ) 。さらにビット 2 は消 去しているセクタの検出にも使われます。フラッシュメモリが消去動作のときは , ビット 2 は消去しているセクタからの読出しならばトグル動作をします。 523 第 17 章 フラッシュメモリ 17.5 フラッシュメモリ書込み / 消去の詳細説明 自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , およびセクタ消去再開 のそれぞれの動作を行う手順を説明します。 ■ フラッシュメモリ書込み / 消去の概要 フラッシュメモリは , 以下の動作がコマンドシーケンスのバスへのライトサイクルを 行うことで自動アルゴリズムを実行することが可能です。 • 読出し / リセット • 書込み • チップ消去 • セクタ消去 • セクタ消去一時停止 • 消去再開 それぞれのバスへのライトサイクルは必ず続けて行う必要があります。 また , 自動アルゴリズムはデータ • ポーリング機能などで終了時を確認できます。正常 終了後は読出し / リセット状態に戻ります。 524 第 17 章 フラッシュメモリ 17.5.1 読出し / リセット状態にする 読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす る手順について説明します。 ■ フラッシュメモリの読出し / リセット方法 フラッシュメモリを読出し/リセット状態にするには, コマンドシーケンス表の読出し/ リセットコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能 です。 読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 通りのコマンドシーケ ンスがありますが , これらの本質的な違いはありません。 読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの 正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ マンドの入力待ち状態です。 読出し/リセット状態では通常のリードアクセスでデータを読み出せます。マスクROM と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに このコマンドは必要ありません。何らかの理由でコマンドが正常に終了しなかったと きなど , 自動アルゴリズムを初期化する場合に , 主にこのコマンドを使用します。 525 第 17 章 フラッシュメモリ 17.5.2 データ書込みを行う 書込みコマンドを発行し , フラッシュメモリにデータ書込みを行う手順について説 明します。 ■ フラッシュメモリのデータ書込み方法 フラッシュメモリの , データ書込み自動アルゴリズムを起動するには , コマンドシーケ ンス表の書込みコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実 行可能です。 4 サイクル目に目的のアドレスへのデータ書込みが終了した時点で , 自動アルゴリズム が起動され自動書込みが開始します。 ■ アドレス指定方法 書込みはどのようなアドレスの順番でも , また , セクタの境界を越えても可能ですが , 1 回の書込みコマンドによって書込まれるデータは 1 ハーフワードのみです。 ■ データ書込み上の注意 書込みによって , データ "0" をデータ "1" に戻すことはできません。 データ "0" にデータ "1" を書き込むと , データポーリングアルゴリズムまたはトグル動 作が終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超えタイミ ングリミット超過フラグがエラーと判定するか , あるいは見かけ上データ "1" が書込ま れたように見えるかのどちらかとなります。ただし , 読出し / リセット状態でデータを 読み出すとデータは "0" のままです。消去動作のみが "0" データを "1" にすることがで きます。 自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリ セットが起動されると , 書き込んでいるアドレスのデータは保証されませんので注意 が必要です。 ■ フラッシュメモリ書込み手順 図 17.5-1 に , フラッシュメモリ書込みの手順の例を示します。 ハードウェアシーケンスフラグを用いることでフラッシュメモリ内部の自動アルゴリ ズムの状態判定が可能です。ここでは , 書込み終了の確認にデータポーリングフラグ (DPOLL) を用いています。 フラグチェックのために読み込むデータは最後に書込みを行ったアドレスからの読み 込みとなります。 データポーリングフラグ (DPOLL) は , タイミングリミット超過フラグ (TLOVER) と同 時に変わるので , たとえタイミングリミット超過フラグ (TLOVER) が "1" であっても データポーリングフラグビット (DPOLL) は再チェックする必要があります。 トグルビットフラグ (TOGGLE) でも同様にタイミングリミット超過フラグビット (TLOVER) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (TOGGLE) を再チェックする必要があります。 526 第 17 章 フラッシュメモリ 図 17.5-1 フラッシュメモリ書込み手順の例 書込み開始 FLCR:WE(ビット1) フラッシュメモリ書込み許可 書込みコマンドシーケンス ・AAAAA (ROM1)/AAAAE( ROM2)←AA ・D5552 (ROM1)/D5556( ROM2)←55 ・AAAAA (ROM1)/AAAAE( ROM2)←A0 ・書込みアドレス←書込みデータ 内部アドレスリード データ ポーリング (DPOLL) 次アドレス Dat Dat 0 タイミング リミット (TLOVER) 1 内部アドレスリード Dat データ ポーリング (DPOLL) Dat 書込みエラー 最終アドレス No Yes FLCR :WE (ビット1) フラッシュメモリ書込み禁止 書込み完了 ハードウェアシーケンス・ フラグによる確認 527 第 17 章 フラッシュメモリ 17.5.3 データ消去を行う ( チップ消去 ) チップ消去コマンドを発行し , フラッシュメモリの全データ消去を行う手順につい て説明します。 ■ フラッシュメモリのデータ消去 ( チップ消去 ) 方法 フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表のチッ プ消去コマンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能で す。 チップ消去コマンドは 6 回のバス動作で行われます。 6サイクル目の書込みが完了した時点でチップ消去動作が開始します。チップ消去では, 消去前にユーザがフラッシュメモリに書込みを行う必要はありません。自動消去アル ゴリズム実行中には , フラッシュメモリは自動的にすべてのセルを消去する前に "0" を 書き込んで検証します。 528 第 17 章 フラッシュメモリ 17.5.4 データ消去を行う ( セクタ消去 ) セクタ消去コマンドを発行し , フラッシュメモリの任意のセクタ消去を行う手順に ついて説明します。セクタごとの消去が可能であり , 複数のセクタを同時に指定す ることも可能です。 フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表のセ クタ消去コマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可 能です。 ■ セクタ指定方法 セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) を書き込むことに より 50 µs のセクタ消去ウェイトが開始します。 複数のセクタ消去を行う場合は , 上記の処理に引き続き消去する目的のセクタ内のア ドレスに消去コード (30H) を書き込みます。 ■ 複数のセクタを指定するときの注意 最後のセクタ消去コードの書込みから50 µsのセクタ消去ウェイト期間終了により消去 が開始します。すなわち , 複数のセクタを同時に消去する場合は , 次の消去セクタのア ドレスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50 µs 以内に入力 する必要があり , それ以降では受け付けられないことがあります。 続くセクタ消去コードの書込みが有効かどうかはセクタ消去タイマ ( ハードウェア • シーケンス • フラグ : SETIMR) によって調べることができます。このとき , セクタ消去 タイマをリードするアドレスは , 消去しようとしているセクタを指すようにします。 ■ セクタ消去手順 ハードウェア • シーケンス • フラグを用いることでフラッシュメモリ内部の自動アルゴ リズムの状態判定が可能です。図 17.5-2 に , フラッシュメモリセクタ消去の手順の例 を示します。 ここでは , 消去終了の確認にトグルビットフラグ (TOGGLE) を用いています。 フラグチェックのために読込むデータは , 消去しようとしているセクタからの読込み となりますので , 注意が必要です。 トグルビットフラグ (TOGGLE) は, タイミングリミット超過フラグ (TLOVER) が"1"に 変わるのと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (TLOVER) が "1" であってもトグルビットフラグ (TOGGLE) は再チェックする必要が あります。 デ ー タ ポ ー リ ン グ フ ラ グ (DPOLL) で も 同 様 に , タ イ ミ ン グ リ ミ ッ ト 超 過 フ ラ グ (TLOVER) と同時に変わるので , データポーリングフラグ (DPOLL) を再チェックする 必要があります。 529 第 17 章 フラッシュメモリ 図 17.5-2 セクタ消去手順の例 消去開始 FLCR:WE(ビット1) フラッシュメモリ消去許可 セクタ消去タイマ (SETIMR) 0 1 消去コマンドシーケンス ・AAAAA (ROM1)/AAAAE( ROM2)←AA ・D5552 (ROM1)/D5556( ROM2)←55 ・AAAAA (ROM1)/AAAAE( ROM2)←80 ・AAAAA (ROM1)/AAAAE( ROM2)←AA ・D5552 (ROM1)/D5556( ROM2)←55 ・ 消去セクタへコード入力(30h) Yes 消去セクタが 他にあるか No 内部アドレスリード1 内部アドレスリード 次セクタ 内部アドレスリード2 Yes トグルビット(TOGGLE) データ1=データ2 No ハードウェアシーケンス・ フラグによる確認 0 タイミングリミット (TLOVER) 1 内部アドレスリード1 内部アドレスリード2 No トグルビット(TOGGLE) データ1=データ2 Yes 消去エラー 最終セクタ No Yes (ビット1) フラッシュメモリ消去禁止 消去完了 530 第 17 章 フラッシュメモリ 17.5.5 セクタ消去を一時停止する セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を 行う手順について説明します。消去中でないセクタから , データを読み出すことが 可能です。 ■ フラッシュメモリのセクタ消去一時停止方法 フラッシュメモリのセクタ消去を一時停止するには , フラッシュメモリ内に表 17.4-1 のセクタ消去一時停止コマンドを送ることで実行可能です。 セクタ消去一時停止コマンドは , セクタ消去中に , 消去を一時停止し消去中でないセク タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込 みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で , チップ消去中や書込み動作中は無視されます。 消去一時停止コード (B0H) の書込みを行うことで実施されますが , このときアドレス はフラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度 の消去一時停止コマンドは無視されます。 セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセ クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去 ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 20 µs の時間の後 , 消去一時停止状態に入ります。セクタ消去一時停止コマンドは , セクタ 消去コマンドあるいはセクタ消去再開コマンド発行後, 20 µs以上後に行ってください。 531 第 17 章 フラッシュメモリ 17.5.6 セクタ消去を再開する セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再 開する手順について説明します。 ■ フラッシュメモリのセクタ消去再開方法 一時停止したセクタ消去を再開させるには , フラッシュメモリ内に表 17.4-1 のセクタ 消去再開コマンドを送ることで実行可能です。 セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止 状態から , セクタ消去を再開するためのコマンドです。このコマンドは消去再開コード (30H) の書込みを行うことで実施されますが , このときのアドレスはフラッシュメモリ 領域内の任意のアドレスを指すようにします。 なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。 532 第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続 この章では , 横河ディジタルコンピュータ株式会社 製 AF220/AF210/AF120/AF110 フラッシュマイコ ンプログラマを用いた場合の , シリアルオンボード 書込み ( 富士通標準 ) 接続について説明します。 18.1 MB91F353A/F355A/F356B/F357B 書込み基本構成 18.2 富士通標準シリアルオンボード書込みに使用する端子 18.3 シリアル書込み接続例 18.4 フラッシュマイコンプログラマシステム構成 18.5 その他の注意事項 533 第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続 18.1 MB91F353A/F355A/F356B/F357B 書込み基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ製 AF220/ AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。 ■ MB91F353A/F355A/F356B/F357B 書込み基本構成 富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ製 AF220/ AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。シングルチップ モードで動作するプログラムあるいは , 内 ROM 外バスモードで動作するプログラムの どちらかを選択して書き込むことができます。 図 18.1-1 に , MB91F353A/F355A/F356B/F357B シリアル書込み接続例の基本構成を示し ます。 図 18.1-1 MB91F353A/F355A/F356B/F357B シリアル書込み接続例の基本構成 ホストインタフェースケーブル 汎用共通ケーブル(AZ210) RS232C AF220/AF210/ AF120/AF110 CLK 同期シリアル フラッシュマイ コンプログラマ + メモリカード MB91F353A/F355A/ F356B/F357B ユーザシステム スタンドアロンで動作可能 ( 注意事項 ) MB91351A/352A/353A/354A/355A はマスク品なので Flash 書込みができません。 <参考> AF220/AF210/AF120/AF110 フラッシュマイコンプログラマの機能・操作方法および接続 用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株 式会社にお問い合わせください。 534 第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続 18.2 富士通標準シリアルオンボード書込みに使用する端子 富士通標準シリアルオンボード書込みに使用する端子について説明します。 ■ 富士通標準シリアルオンボード書込みに使用する端子 表 18.2-1 に , 富士通標準シリアルオンボード書込みに使用する端子の機能を示します。 表 18.2-1 富士通標準シリアルオンボード書込みに使用する端子の機能 端子 機能 補足説明 書込みモードに制御します。 フラッシュシリアル書込みモード : MD2=1, MD1=0, MD0=0 <参考> シングルチップモード : MD2=0, MD1=0, MD0=0 MD2, MD1, MD0 モード端子 PN0, PN2 INIT 書込みプログラム起動端子 PN0 に "L" レベル , PN2 に "H" レベルを入力してください。 リセット端子 SI3 シリアルデータ入力端子 SO3 シリアルデータ出力端子 SCK3 シリアルクロック入力端子 UART のチャネル 3 リソースをクロック同期モードとして使用し ます。 VCC 電源電圧供給端子 書込み電圧をユーザシステムから供給してください。 ( 注意事項 ) 接続時にはユーザ側の電源と短絡しないようにしてください。 VSS GND 端子 フラッシュマイコンプログラマの GND と共通にします。 PN0, PN2, SI3, SO3, SCK3 端子をユーザシステムでも使用する場合には , 図 18.2-1 に示 す制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シ リアル書込み中はユーザ回路を切り離すことができます )。 AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。 図 18.2-1 ユーザシステムで使用する場合の制御回路 AF220/AF210/ AF120/AF110 書込み制御端子 10kΩ AF220/AF210/ AF120/AF110 /TICS端子 MB91F353A/F355A/ F356B/F357B 書込み制御端子 ユーザ回路 535 第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続 18.3 シリアル書込み接続例 シリアル書込み接続例を示します。 ■ シリアル書込み接続例 図 18.3-1 および図 18.3-2 に , シリアル書込み接続例を示します。 図 18.3-1 MB91F353A シリアル書込み接続例 ユーザシステム AF200 フラッシュマイコン MB91F353A(LQFP-120) コネクタ DX10-28S 使用MODEに合わせ Pull_UP/Pull_DOWN TAUX3 (19) TMODE (12) TAUX (23) シリアル書換時 同期通信="H" 52 MD1 53 MD0 54 PN0 70 PN2 71 WDT (18) /TICS (10) /TRES (5) INTX 55 TTXD (13) SI3 102 TRXD (27) SO3 103 TCK (6) TVcc (2) ユーザ回路 SCK3 104 ユーザ電源(3.3V) GND (14,15, 1,28) 3,4,9,11,16,17,18, 20,24,25,26ピンは OPEN DX10-28S:ライトアングルタイプ Vcc (19,44,56, 77,95) Vss (18,40,43,59, 76,96,112) 14ピン 1ピン DX10-28S 28ピン 15ピン コネクタ(ヒロセ電機製)のピン ( 注意事項 ) プルアップ / プルダウン 抵抗はすべて 10kΩ です。 536 MD2 第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続 図 18.3-2 MB91F355A/MB91F356B/MB91F357B シリアル書込み接続例 ユーザシステム AF200 フラッシュマイコン MB91F355A/MB91F356B/ MB91F357B (LQFP-176) コネクタ DX10-28S 使用MODEに合わせ Pull_UP/Pull_DOWN TAUX3 (19) TMODE (12) TAUX (23) シリアル書換時 同期通信="H" MD2 138 MD1 139 MD0 140 PN0 81 PN2 83 144 WDT (18) /TICS (10) /TRES (5) INIT TTXD (13) SI3 125 TRXD (27) SO3 126 TCK (6) TVcc (2) ユーザ回路 SCK3 127 ユーザ電源(3.3V) GND (14,15, 1,28) 3,4,9,11,16,17,18, 20,24,25,26ピンは OPEN DX10-28S:ライトアングルタイプ 14ピン Vcc (18,36,46,62, 66,80,97,115, 142,146,163, 176) Vss (17,35,45,64, 65,79,93,96 114,136,145 162,175) 1ピン DX10-28S 15ピン 28ピン コネクタ(ヒロセ電機製)のピン ( 注意事項 ) プルアップ / プルダウン 抵抗はすべて 10kΩ です。 537 第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続 フラッシュマイコンプログラマシステム構成 18.4 AF220/AF210/AF120/AF110 フラッシュマイコンプログラマ ( 横河ディジタルコン ピュータ株式会社製 ) のシステム構成を示します。 ■ フラッシュマイコンプログラマシステム構成 AF220/AF210/AF120/AF110 フラッシュマイコンプログラマ ( 横河ディジタルコンピュー タ株式会社製 ) のシステム構成と問い合わせ先は次のとおりです。 表 18.4-1 フラッシュマイコンプログラマシステム構成 型 格 本 体 機 能 AF220 /AC4P イーサーネットインタフェースモデル /100V ∼ 220V 電源アダプタ AF210 /AC4P スタンダードモデル /100V ∼ 220V 電源アダプタ AF120 /AC4P 単キー イーサーネットインタフェースモデル /100V ∼ 220V 電源アダプタ AF110 /AC4P 単キーモデル /100V ∼ 220V 電源アダプタ AZ221 ライタ専用 PC-AT 用 RS232C ケーブル AZ210 標準ターゲットプローブ (a) 長さ :1m FF201 富士通 フラッシュマイコン用コントロールモジュール AZ290 リモートコントローラ /P2 2M バイト PC Card (Option) フラッシュメモリ容量 128K バイトまで /P4 4M バイト PC Card (Option) フラッシュメモリ容量 512K バイトまで 問い合わせ先 : 横河ディジタルコンピュータ株式会社 電話 :042-333-6224 538 第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続 18.5 その他の注意事項 MB91F353A/F355A/F356B/F357B シリアル書込み接続時の注意事項を示します。 ■ MB91F353A/F355A/F356B/F357B シリアル書込み接続時の注意事項 ● 原発振クロック周波数 フラッシュメモリ書込み時に使用可能な原発振クロックは 10.0MHz から 12.5MHz と なっております。 ● フラッシュメモリ書込み時のポート状態 シリアルライタを用いてフラッシュメモリ書込み時のポート状態は , 書込みに使用し ている端子を除きシングルチップモードの初期化状態と同じです。 539 第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続 540 第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能 この章では内蔵 RAM ( データ ) および内蔵 RAM ( 命令実行可能 ) アクセス制限機能について説明し ます。 19.1 概要 19.2 レジスタ詳細説明 19.3 動作説明 541 第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能 19.1 概要 本機能は , デバイスに搭載している内蔵 RAM 領域のうち , 使用可能な領域を制限し ます。デバイス初期状態では , 使用可能な領域は 4K バイトに制限されていますので , 設定変更してから使用する必要があります。 ■ 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能レジスタ一覧 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能のレジスタは , 以下 のとおりです。 DRLR アドレス 00000390 H アドレス 00000280 H FRLR ■ 内蔵RAM (データ) /内蔵RAM (命令実行可能) アクセス制限機能 のブロックダイヤ グラム 図 19.1-1 に , 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能のブ ロックダイヤグラムを示します。 図 19.1-1 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能のブロックダイヤグラム RAM制御信号 D-bus RAM 制御回路 リード値 レジスタ値 DRLR ライト値 バス制御信号 バス制御信号 D-bus(データ) D-bus RAM F-bus RAM 制御回路 リード値 レジスタ値 RAM 制御信号 FRLR ライト値 バス制御信号 バス制御信号 F-bus(命令/データ) F-bus RAM 542 第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能 19.2 レジスタ詳細説明 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能の各レジスタの 詳細を説明します。 ■ DRLR: データ RAM 制限コントロールレジスタ (D-bus RAM Limit control Register) データ RAM 制限コントロールレジスタのレジスタ構成は , 以下のとおりです。 アドレス 00000390 H 初期値 7 6 5 4 3 2 1 0 - - - - - - DL1 D L0 - - - - - - 0 1 (R/W ) [ ビット 7 ∼ 2] Reseve 予約ビットです。書込み時は "0" を書き込んでください。読出し値は不定です。 [ ビット 1, 0] DL1, DL0 スタック用 RAM の領域制限をすることができます。 DL1 DL0 0 0 ( 設定禁止 ) 0 1 アドレス 40000H ∼ 40FFFH の 4K バイトが使用できます ( 初期値 ) 。 1 0 アドレス 40000H ∼ 41FFFH の 8K バイトが使用できます。 1 1 アドレス 40000H ∼ 43FFFH の 16K バイトが使用できます。 説 明 <注意事項> デバイスが搭載する RAM 容量を超えた設定を行わないでください。 本設定を書き換えた場合 , 直後に最低 1 つの nop 命令を置いてください。 543 第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能 ■ FRLR: 命令 RAM 制限コントロールレジスタ (F-Bus RAM Limit control Register) 命令 RAM 制限コントロールレジスタのレジスタ構成は , 以下のとおりです。 アドレス 00000280 H 初期値 7 6 5 4 3 2 1 0 - - - - - - FL1 F L0 - - - - - - 0 1 (R/W ) [ ビット 7 ∼ 2] Reseve 予約ビットです。書込み時は "0" を書き込んでください。読出し値は不定です。 [ ビット 1, 0] FL1, FL0 命令実行可能 RAM の領域制限をすることができます。 FL1 FL0 0 0 ( 設定禁止 ) 0 1 アドレス 3F000H ∼ 3FFFFH の 4K バイトが使用できます ( 初期値 ) 。 1 0 アドレス 3E000H ∼ 3FFFFH の 8K バイトが使用できます。 1 1 アドレス 3C000H ∼ 3FFFFH の 16K バイトが使用できます。 説明 <注意事項> デバイスが搭載する RAM 容量を超えた設定を行わないでください。 本設定を書き換えた場合 , 直後に最低 1 つの nop 命令を置いてください。 544 第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能 19.3 動作説明 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能の動作について 説明します。 ■ 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能の動作 本機能は , デバイスに搭載している内蔵 RAM 領域のうち , 使用可能な領域を制限しま す。 使用できないように設定された RAM 領域に対しては , 書込み無効 , 読出し値不定とな ります。 デバイス初期状態では , データ用 RAM, 命令実行可能 RAM ともに , 4K バイトのみ使 用可能に制限されていますので , 4K バイト以上使用する場合 , 本機能を設定変更して から使用する必要があります。 545 第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能 546 付録 付録として , I/O マップ , 割込みベクタ , CPU ス テートでの端子状態 , および命令一覧について記載 しています。 付録 A I/O マップ 付録 B 割込みベクタ 付録 C 各 CPU ステートにおける端子状態 付録 D 命令一覧表 547 付録 A I/O マップ 付録 A I/O マップ 本品種に内蔵された周辺機能の各レジスタは , 付表 A-1 に示すアドレスが割り当て られています。 ■ I/O マップの読み方 アドレス 000000H レジスタ +0 PDR0 [R/W]B XXXXXXXX +1 PDR1 [R/W]B XXXXXXXX +2 PDR2 [R/W]B XXXXXXXX +3 PDR3 [R/W]B XXXXXXXX ブロック T-unit ポートデータ レジスタ リード/ライトアトリビュート, アクセス単位 (B:バイト, H:ハーフワード, W:ワード) リセット後のレジスタ初期値 レジスタ名(1コラムのレジスタが4n番地,2コラムが4n+1番地・・・) 最左のレジスタ番地(ワードでアクセスした際は,1コラム目の レジスタがデータのMSB側となる) レジスタのビット値は , 以下のように初期値を表します。 • "1": 初期値 "1" • "0": 初期値 "0" • "X": 初期値 "X" • "-": その位置に物理的にレジスタがない 548 付録 A I/O マップ ■ メモリ空間領域と周辺リソースの各レジスタの対応 付表 A-1 I/O マップ (1 / 10) アドレス 000000H 000004H 000008H 00000CH 000010H 000014H 000018H レジスタ +0 +1 ─── ─── PDR4[R/W]B XXXXXXXX PDR8[R/W]B --XXXXXX PDR5[R/W]B XXXXXXXX PDR9[R/W]B ---XXXXX 000024H 000028H 00002CH PDR2[R/W]B XXXXXXXX PDR6[R/W]B XXXXXXXX PDRA[R/W]B ----XXXX PDR3[R/W]B XXXXXXXX ─── *3 PDRB[R/W]B XXXXXXXX T- ユニット ポートデータ レジスタ *3 ─── PDRH[R/W]B --XXXXXX PDRL[R/W]B ------XX PDRI[R/W]B --XXXXXX PDRM[R/W]B --XXXXXX PDRJ[R/W]B *3 XXXXXXXX PDRN[R/W]B --XXXXXX PDRP[R/W]B *3 ----XXXX ─── ─── 00001CH 000020H +3 PDRC[R/W]B *3 -----XXX PDRG[R/W]B *3 --XXXXXX PDRK[R/W]B XXXXXXXX PDRO[R/W]B XXXXXXXX ブロック +2 R-bus ポートデータ レジスタ *3 ─── ─── ─── *3 SMCS5[R/W]B,H 00000010----00-SMCS6[R/W]B,H 00000010----00-SMCS7[R/W]B,H 00000010----00-- ─── Reserved ─── *3 *3 SES5[R/W]B ------00 SES6[R/W]B ------00 SES7[R/W]B ------00 SDR5[R/W]B XXXXXXXX SDR6[R/W]B XXXXXXXX SDR7[R/W]B XXXXXXXX CDCR5[R/W]B *3 ─── *1 SIO5 *3 SIO6 SIO7 SIO プリスケーラ 5 000030H ─── ─── 000034H CDCR6[R/W]B 0---1111 ─── *1 CDCR7[R/W]B 0---1111 ─── *1 SIO プリスケーラ 6, 7 000038H ─── SRCL5[W]B *3 -------- SRCL6[W]B -------- SRCL7[W]B -------- SIO5 ∼ 7 *3 00003CH 000048H ─── ─── EIRR0[R/W]B,H,W ENIR0[R/W]B,H,W 00000000 00000000 DICR[R/W]B,H,W HRCL[R/W]B,H,W -------0 0--11111 TMRLR0[W]H,W XXXXXXXXXXXXXXXX 00004CH ─── 000050H TMRLR1[W]H,W XXXXXXXXXXXXXXXX 000054H ─── 000058H TMRLR2[W]H,W XXXXXXXXXXXXXXXX 00005CH ─── 000040H 000044H 000060H SSR0[R/W]B,H,W 00001000 SIDR0[R] SORR0[W]B,H,W 0---1111 ─── ─── ELVR0[R/W]B,H,W 00000000 ─── TMR0[R]H,W XXXXXXXXXXXXXXXX TMCSR0[R/W]B,H,W ----000000000000 TMR1[R]H,W XXXXXXXXXXXXXXXX TMCSR1[R/W]B,H,W ----000000000000 TMR2[R]H,W XXXXXXXXXXXXXXXX TMCSR2[R/W]B,H,W ----000000000000 SCR0 SMR0[R/W]B,H,W [R/W]B,H,W 00--0--00000100 *3 Reserved Extint(INT0-7) DLYI/I- ユニット リロードタイマ 0 リロードタイマ 1 リロードタイマ 2 UART0 XXXXXXXX *1: テスト用レジスタです。アクセス禁止です。 *3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。 549 付録 A I/O マップ 付表 A-1 I/O マップ (2 / 10) アドレス 000064H 000068H 00006CH 000070H 000074H 000078H レジスタ +0 +1 +2 +3 UTIM0[R]H(UTIMR0[W]H) DRCL0[W]B UTIMC0[R/W]B 0000000000000000 SIDR1[R] SSR1[R/W]B,H,W SODR1[W]B,H,W 00001000 XXXXXXXX UTIM1[R]H(UTIMR1[W]H) -------SCR1[R/ W]B,H,W 0--00001 0000000000000000 SIDR2[R] SSR2[R/W]B,H,W SODR2[W]B,H,W 00001000 XXXXXXXX UTIM2[R]H(UTIMR2[W]H) 0000000000000000 ADCS2[R/W]B,H,W ADCS1[R/W]B,H,W 00000100 DRCL1[W]B -------SCR2[R/W] B,H,W 00000100 DRCL2[W]B SMR1[R/W]B,H,W 00--0--UTIMC1[R/W]B 0--00001 SMR2[R/W]B,H,W 00--0--UTIMC2[R/W]B -------0--00001 ADCT[R/W]H,W 0000XX00 000X0000 ADTH0[R]B,H,W ADTL0[R]B,H,W 000000XX XXXXXXXX ADTH2[R]B,H,W ADTL2[R]B,H,W 000000XX XXXXXXXX ─── DACR2[R/W] B,H,W *3 XXXXXXXX_XXXXXXXX ADTH1[R] ADTL1[R]B,H,W B,H,W XXXXXXXX 000000XX ADTH3[R] ADTL3[R]B,H,W B,H,W XXXXXXXX 000000XX DACR0[R/W] DACR1[R/W] B,H,W B,H,W 000088H ─── -------0 DADR2[R/W] B,H,W *3 -------0 DADR1[R/W] B,H,W -------0 DADR0[R/W] B,H,W XXXXXXXX ─── ─── IBCR[R]B,H,W XXXXXXXX ─── ─── IBSR[R]B,H,W XXXXXXXX 00008CH 000090H 00000000 00000000 00007CH 000080H 000084H 000094H 000098H 00009CH 0000A0H 0000A4H 0000A8H 0000ACH ITMK[R/W]B,H,W 0011111111111111 ─── *1 IDAR[R/W]B,H,W 00000000 ─── ─── ─── ─── TMRLR3[W]H,W XXXXXXXXXXXXXXXX ─── *1 *1 ─── ─── *1 ─── ─── ITBA[R/W]B,H,W 0000000000000000 ISMK[R/ ISBA[R/W]B,H,W W]B,H,W 00000000 01111111 ICCR[R/ IDBL[R/W]B,H,W W]B,H,W -------0 00011111 ─── *1 ─── *1 ─── ─── *1 TMR3[R]H,W XXXXXXXXXXXXXXXX TMCSR3[R/W]B,H,W ----000000000000 *1: テスト用レジスタです。アクセス禁止です。 *3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。 550 ブロック U- タイマ /UART0 UART1 U- タイマ /UART1 UART2 U- タイマ /UART2 A/D コンバータ D/A コンバータ *3 Reserved Reserved I2C インタフェース Reserved リロードタイマ 3 付録 A I/O マップ 付表 A-1 I/O マップ (3 / 10) アドレス 0000B0H 0000B4H 0000B8H 0000BCH 0000C0H 0000C4H 0000C8H 0000CCH 0000D0H 0000D4H 0000D8H 0000DCH 0000E0H 0000E4H 0000E8H 0000ECH 0000F0H 0000F4H 0000F8H 0000FCH レジスタ +0 +1 RCR1[W]B,H,W *3 RCR0[W]B,H,W 00000000 00000000 CCRH0[R/W]B,H,W CCRL0[R/W]B,H,W 00000000 00001000 CCRH1[R/W]B,H,W *3 CCRL1[R/W]B,H,W *3 00000000 00001000 ─── ─── SIDR3[R] SSR3[R/W]B,H,W SODR3[W]B,H,W 00001000 XXXXXXXX UTIM4[R]H(UTIMR4[W]H) 0000000000000000 SSR[R/W]B,H,W *3 00001000 SIDR[R/W]B,H,W *3 XXXXXXXX UTIM[R]H(UTIMR[W]H) *3 0000000000000000 *3 ENIR1[R/W]B,H,W *3 EIRR1[R/W]B,H,W 00000000 00000000 TCDT[R/W]H,W 0000000000000000 IPCP1[R]H,W XXXXXXXXXXXXXXXX IPCP3[R]H,W XXXXXXXXXXXXXXXX ICS23[R/W]B,H,W ─── 00000000 OCCP1[R/W]H,W *3 XXXXXXXXXXXXXXXX OCCP3[R/W]H,W *3 XXXXXXXXXXXXXXXX OCCP5[R/W]H,W *3 XXXXXXXXXXXXXXXX OCCP7[R/W]H,W *3 XXXXXXXXXXXXXXXX OCS23[R/W]B,H,W 1110110000001100 OCS67[R/W]B,H,W *3 1110110000001100 +2 UDCR1[R] B,H,W *3 00000000 ─── ─── +3 ブロック UDCR0[R]B,H,W 00000000 CSR0[R/W]B,H,W 00000000 CSR1[R/W]B,H,W *3 8/16 ビット アップダウン カウンタ 0, 1 *3 00000000 ─── Reserved SMR3[R/W]B,H,W 00--0--- UART3 ─── UTIMC4[R/W]B 0--00001 U- タイマ /UART 3 SCR[R/W] B,H,W *3 00000100 SMR[R/W]B,H,W *3 00--0--- ─── UTIMC[R/W]B *3 0--00001 ─── SCR3 [R/W]B,H,W 00000100 UART4 *3 U- タイマ /UART 4 *3 *3 ELVR1[R/W]B,H,W 00000000 TCCS[R/W]B,H,W ─── 00000000 IPCP0[R]H,W XXXXXXXXXXXXXXXX IPCP2[R]H,W XXXXXXXXXXXXXXXX ICS01[R/W]B,H,W ─── 00000000 OCCP0[R/W]H,W XXXXXXXXXXXXXXXX Ext int(INT8-15) *3 16 ビットフリー ランタイマ 16 ビット ICU OCCP2[R/W]H,W XXXXXXXXXXXXXXXX OCCP4[R/W]H,W *3 XXXXXXXXXXXXXXXX OCCP6[R/W]H,W *3 XXXXXXXXXXXXXXXX OCS01[R/W]B,H,W 1110110000001100 16 ビット OCU *3 OCS45[R/W]B,H,W *3 1110110000001100 ─── ─── ─── ─── Reserved ─── ─── ─── ─── Reserved ─── GCN20[R/W]B 00000000 PPG 制御 0 000100H | 000114H 000118H 00011CH GCN10[R/W]H 0011001000010000 ─── PTMR0[R]H,W 1111111111111111 ─── PCSR0[W]H,W 000120H XXXXXXXXXXXXXXXX PCNH0[R/ PCNL0[R/W] PDUT0[W]H,W 000124H W]B,H,W B,H,W XXXXXXXXXXXXXXXX 00000000 000000X0 *3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。 Reserved PPG0 551 付録 A I/O マップ 付表 A-1 I/O マップ (4 / 10) アドレス レジスタ +0 +1 000128H PTMR1[R]H,W *3 1111111111111111 00012CH PDUT1[W]H,W *3 XXXXXXXXXXXXXXXX 000130H PTMR2[R]H,W 1111111111111111 000134H PDUT2[W]H,W XXXXXXXXXXXXXXXX 000138H PTMR3[R]H,W *3 1111111111111111 00013CH PDUT3[W]H,W *3 XXXXXXXXXXXXXXXX 000140H PTMR4[R]H,W 1111111111111111 000144H PDUT4[W]H,W XXXXXXXXXXXXXXXX 000148H PTMR5[R]H,W *3 1111111111111111 00014CH PDUT5[W]H,W *3 XXXXXXXXXXXXXXXX 000150H | 0001FCH +2 PCSR1[W]H,W *3 XXXXXXXXXXXXXXXX PCNH1[R/W] PCNL1[R/W]B,H,W *3 B,H,W *3 000000X0 00000000 PCSR2[W]H,W XXXXXXXXXXXXXXXX PCNH2[R/ PCNL2[R/W]B,H,W W]B,H,W 000000X0 00000000 PCSR3[W]H,W *3 XXXXXXXXXXXXXXXX PCNH3[R/ PCNL3[R/W]B,H,W *3 W]B,H,W *3 000000X0 00000000 PCSR4[W]H,W XXXXXXXXXXXXXXXX PCNH4[R/ PCNL4[R/W]B,H,W W]B,H,W 000000X0 00000000 PCSR5[W]H,W *3 XXXXXXXXXXXXXXXX PCNH5[R/W] PCNL5[R/W]B,H,W *3 B,H,W *3 000000X0 00000000 ─── 000224H DMACA0[R/W]B,H,W *4 000000000000XXXXXXXXXXXXXXXXXXXX DMACB0[R/W]B,H,W 0000000000000000XXXXXXXXXXXXXXXX DMACA1[R/W]B,H,W *4 000000000000XXXXXXXXXXXXXXXXXXXX DMACB1[R/W]B,H,W 0000000000000000XXXXXXXXXXXXXXXX DMACA2[R/W]B,H,W *4 000000000000XXXXXXXXXXXXXXXXXXXX DMACB2[R/W]B,H,W 0000000000000000XXXXXXXXXXXXXXXX DMACA3[R/W]B,H,W *4 000000000000XXXXXXXXXXXXXXXXXXXX DMACB3[R/W]B,H,W 0000000000000000XXXXXXXXXXXXXXXX DMACA4[R/W]B,H,W *4 000000000000XXXXXXXXXXXXXXXXXXXX DMACB4[R/W]B,H,W 0000000000000000XXXXXXXXXXXXXXXX 000228H ─── 00022CH | 00023CH ─── 000200H 000204H 000208H 00020CH 000210H 000214H 000218H 00021CH 000220H +3 *3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。 *4: DMACA0 ∼ DMACA4 の下位 16 ビット (DTC[15: 0]) は , バイトでのアクセスはできません。 552 ブロック PPG1 *3 PPG2 PPG3 *3 PPG4 PPG5 *3 Reserved DMAC Reserved 付録 A I/O マップ 付表 A-1 I/O マップ (5 / 10) アドレス レジスタ +0 +1 +2 +3 ブロック 000240H DMACR[R/W]B 0XX00000XXXXXXXXXXXXXXXXXXXXXXXX DMAC 000244H | 00027CH ─── Reserved 000280H FRLR[R/W]B,H,W *2 ------01 ─── 000284H | 00038CH 000390H 0003F4H 0003F8H 0003FCH 000400H 000404H 000408H DRLR[R/W]B,H,W *2 ------01 PFRG[R/W]B *3 --00-00─── 000418H PFRO[R/W]B 00000000 00041CH PCRG[R/W]B --000000 *3 000424H ─── 000428H PCRO[R/W]B 00000000 00042CH | 00043CH ─── ─── ─── PFRH[R/W]B PFRI[R/W]B ─── --00-00--00-00PFRL[R/W]B PFRM[R/W]B PFRN[R/W]B ------00 --00-00--000000 PFRP[R/W]B *3 ─── ----0000 ─── PCRH[R/W]B PCRI[R/W]B --000000 --000000 PCRM[R/W]B ─── --000000 PCRP[R/W]B *3 ----0000 D-bus RAM 容量制限 Reserved BSD0[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX BSD1[R/W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX BSDC[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX BSRR[R] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DDRH[R/W]B DDRI[R/W]B DDRG[R/W]B *3 DDRJ[R/W]B *3 --000000 --000000 --000000 00000000 DDRK[R/W]B DDRL[R/W]B DDRM[R/W]B DDRN[R/W]B 00000000 ------00 --000000 --000000 *3 DDRO[R/W]B DDRP[R/W]B ─── 00000000 ----0000 000414H 000420H ─── F-bus RAM 容量制限 Reserved ─── 00040CH 000410H ─── ─── 000394H | 0003ECH 0003F0H ─── ─── ビットサーチ モジュール R-bus データ方向 レジスタ *3 R-bus ポート機能 レジスタ *3 Reserved ─── PCRN[R/W]B --000000 R-bus プルアップ制御 レジスタ *3 ─── ─── Reserved *3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。 553 付録 A I/O マップ 付表 A-1 I/O マップ (6 / 10) アドレス レジスタ +0 +1 000440H ICR00[R/W]B,H,W ---11111 ICR01[R/W]B,H,W ---11111 000444H ICR04[R/W]B,H,W ---11111 ICR05[R/W]B,H,W ---11111 000448H ICR08[R/W]B,H,W ---11111 ICR09[R/W]B,H,W ---11111 00044CH ICR12[R/W]B,H,W ---11111 ICR13[R/W]B,H,W ---11111 000450H ICR16[R/W]B,H,W ---11111 ICR17[R/W]B,H,W ---11111 000454H ICR20[R/W]B,H,W ---11111 ICR21[R/W]B,H,W ---11111 000458H ICR24[R/W]B,H,W ---11111 ICR25[R/W]B,H,W ---11111 00045CH ICR28[R/W]B,H,W ---11111 ICR29[R/W]B,H,W ---11111 000460H ICR32[R/W]B,H,W ---11111 ICR33[R/W]B,H,W ---11111 000464H ICR36[R/W]B,H,W ---11111 ICR37[R/W]B,H,W ---11111 000468H ICR40[R/W]B,H,W ---11111 ICR41[R/W]B,H,W ---11111 00046CH ICR44[R/W]B,H,W ---11111 ICR45[R/W]B,H,W ---11111 000470H | 00047CH 000480H 000484H RSRR[R/W]B,H,W 10000000 STCR[R/W]B,H,W 00110011 CLKR[R/W]B,H,W 00000000 WPR[W]B,H,W XXXXXXXX ─── 000494H WPCR[R/W]B 00---000 OSCR[R/W]B 00---000 RSTOP0[W]B 00000000 000498H ─── 000490H 554 ICR02[R/W] B,H,W ---11111 ICR06[R/W] B,H,W ---11111 ICR10[R/W] B,H,W ---11111 ICR14[R/W] B,H,W ---11111 ICR18[R/W] B,H,W ---11111 ICR22[R/W] B,H,W ---11111 ICR26[R/W] B,H,W ---11111 ICR30[R/W] B,H,W ---11111 ICR34[R/W] B,H,W ---11111 ICR38[R/W] B,H,W ---11111 ICR42[R/W] B,H,W ---11111 ICR46[R/W] B,H,W ---11111 +3 ブロック ICR03[R/W]B,H,W ---11111 ICR07[R/W]B,H,W ---11111 ICR11[R/W]B,H,W ---11111 ICR15[R/W]B,H,W ---11111 ICR19[R/W]B,H,W ---11111 ICR23[R/W]B,H,W ---11111 ICR27[R/W]B,H,W ---11111 割込み制御 ユニット ICR31[R/W]B,H,W ---11111 ICR35[R/W]B,H,W ---11111 ICR39[R/W]B,H,W ---11111 ICR43[R/W]B,H,W ---11111 ICR47[R/W]B,H,W ---11111 ─── 000488H 00048CH +2 TBCR[R/W] B,H,W 00XXXX00 DIVR0[R/W] B,H,W 00000011 OSCCR[R/W]B XXXXXXX0 CTBR[W]B,H,W XXXXXXXX DIVR1[R/W]B,H,W 00000000 クロック制御 ユニット ─── 発振制御 ─── ─── ─── 時計タイマ ─── ─── ─── メイン発振安定待ち タイマ RSTOP1[W]B 00000000 RSTOP2[W]B 00000000 RSTOP3[W]B -----000 周辺停止制御 ─── ─── ─── Reserved 付録 A I/O マップ 付表 A-1 I/O マップ (7 / 10) アドレス レジスタ +0 +1 00049CH | 0005FCH 000600H 000604H 000608H +2 ─── ─── DDR4[R/W]B 00000000 DDR8[R/W]B --000000 DDR5[R/W]B 00000000 DDR9[R/W]B ---00000 DDRC[R/W]B *3 -----000 000610H ─── ─── 000614H ─── ─── 000618H PFR8[R/W]B --1--0-- PFR9[R/W]B ---010-1 00061CH PFRB2[R/W]B *3 00----00 PFRC[R/W]B *3 ---00000 000620H ─── ─── PCR4[R/W]B 00000000 PCR8[R/W]B --000000 PCRC[R/W]B *3 -----000 000628H 00062CH 000630H | 00063CH Reserved ─── 00060CH 000624H ブロック +3 DDR2[R/W]B 00000000 DDR6[R/W]B 00000000 DDRA[R/W]B ----0000 DDR3[R/W]B 00000000 ─── DDRB[R/W]B *3 00000000 T- ユニット データ方向 レジスタ *3 ─── ─── PFR6[R/W]B 11111111 PFRA[R/W]B ----1111 ─── PFRB1[R/W]B *3 00000000 ─── ─── PCR3[R/W]B 00000000 PCR5[R/W]B 00000000 PCR9[R/W]B 00000000 PCR2[R/W]B 00000000 PCR6[R/W]B 00000000 PCRA[R/W]B 00000000 ─── ─── ─── ─── PCRB[R/W]B 00000000 *3 T- ユニット ポート機能 レジスタ *3 T- ユニット プルアップ制御 レジスタ *3 ─── ─── ASR0[R/W]H,W ACR0[R/W]B,H,W 0000000000000000 1111XX0000000000 ASR1[R/W]H,W ACR1[R/W]B,H,W 000644H 0000000000000000 XXXXXXXXXXXXXXXX ASR2[R/W]H,W ACR2[R/W]B,H,W 000648H 0000000000000000 XXXXXXXXXXXXXXXX ASR3[R/W]H,W ACR3[R/W]B,H,W 00064CH 0000000000000000 XXXXXXXXXXXXXXXX ASR4[R/W]H,W ACR4[R/W]B,H,W 000650H 0000000000000000 XXXXXXXXXXXXXXXX ASR5[R/W]H,W ACR5[R/W]B,H,W 000654H 0000000000000000 XXXXXXXXXXXXXXXX ASR6[R/W]H,W ACR6[R/W]B,H,W 000658H 0000000000000000 XXXXXXXXXXXXXXXX ASR7[R/W]H,W ACR7[R/W]B,H,W 00065CH 0000000000000000 XXXXXXXXXXXXXXXX AWR0[R/W]B,H,W AWR1[R/W]B,H,W 000660H 0111111111111111 XXXXXXXXXXXXXXXX *3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。 Reserved 000640H T- ユニット 555 付録 A I/O マップ 付表 A-1 I/O マップ (8 / 10) アドレス 000664H 000668H 00066CH レジスタ +0 +1 +2 AWR2[R/W]B,H,W XXXXXXXXXXXXXXXX AWR4[R/W]B,H,W XXXXXXXXXXXXXXXX AWR6[R/W]B,H,W XXXXXXXXXXXXXXXX ─── 000674H ─── IOWR0[R/W]B,H,W IOWR1[R/W]B,H,W XXXXXXXX XXXXXXXX 00067CH 000680H 000B04H 000B08H 000B0CH 000B10H IOWR2[R/ W]B,H,W XXXXXXXX ─── ─── TCR[W]B,H,W 00000000 ─── Reserved ─── ─── MODR[W] *5 XXXXXXXX 000800H | 000AFCH 000B00H T- ユニット ─── CSER[R/W]B,H,W 000000001 000684H | 0007F8H 0007FCH ─── ─── Reserved ─── ESTS0[R/W] ESTS1[R/W] ESTS2[R] X0000000 ECTL0[R/W] XXXXXXXX ECTL1[R/W] 1XXXXXXX ECTL2[W] ECTL3[R/W] 0X000000 ECNT0[W] 00000000 ECNT1[W] 000X0000 EUSA[W] 00X00X11 EDTC[W] XXX00000 0000XXXX XXXXXXXX XXXXXXXX EWPT[R] ─── ─── 0000000000000000 EDTR0[W] EDTR1[W] XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 000B14H | ブロック AWR3[R/W]B,H,W XXXXXXXXXXXXXXXX AWR5[R/W]B,H,W XXXXXXXXXXXXXXXX AWR7[R/W]B,H,W XXXXXXXXXXXXXXXX 000670H 000678H +3 DSU ( エバチップ ─── のみ ) 000B1CH 000B20H 000B24H 000B28H 000B2CH EIA0[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EIA1[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EIA2[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EIA3[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *5: このレジスタは , モードベクタフェッチによりアクセスされます。通常動作時にはアクセスできません。 556 付録 A I/O マップ 付表 A-1 I/O マップ (9 / 10) アドレス レジスタ +0 +1 +2 +3 ブロック EIA4[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EIA5[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EIA6[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EIA7[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EDTA[R/W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EDTM[R/W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EOA0[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EOA1[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EPCR[R/W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EPSR[R/W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EIAM0[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EIAM1[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EOAM0/EODM0[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EOAM1/EODM1[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EOD0[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX EOD1[W] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DSU ( エバチップ のみ ) 000B70H | 000BFCH ─── Reserved 000C00H TEST 用レジスタアクセス禁止 割込み制御 ユニット 000C04H | 000C14H TEST 用レジスタアクセス禁止 R-bus test 000C18H | 000FFCH ─── Reserved 000B30H 000B34H 000B38H 000B3CH 000B40H 000B44H 000B48H 000B4CH 000B50H 000B54H 000B58H 000B5CH 000B60H 000B64H 000B68H 000B6CH 557 付録 A I/O マップ 付表 A-1 I/O マップ (10 / 10) アドレス 001000H 001004H 001008H 00100CH 001010H 001014H 001018H 00101CH 001020H 001024H レジスタ +0 +1 +2 +3 DMASA0[R/W]W XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX DMADA0[R/W]W XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX DMASA1[R/W]W XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX DMADA1[R/W]W XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX DMASA2[R/W]W XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX DMADA2[R/W]W XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX DMASA3[R/W]W XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX DMADA3[R/W]W XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX DMASA4[R/W]W XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX DMADA4[R/W]W XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX DMAC ─── Reserved 001028H | 001FFCH 007004H FLCR[R/W] 0110X000 FLWC[R/W] 00010011 007008H ─── ─── ─── ─── 00700CH ─── ─── ─── ─── 007010H ─── ─── ─── ─── 007000H 007014H | 0070FFH ブロック ─── ─── ─── ─── ─── ─── ─── フラッシュ メモリ Reserved *1: テスト用レジスタです。アクセス禁止です。 *2: 内蔵 RAM は , リセット解除直後は , 「第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制 限機能」に記載の機能により , 使用可能領域が制限されています。 また , 使用可能領域の設定を書き換えた場合 , 直後に最低 1 つの nop 命令を置いてください *3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。 *4: DMACA0 ∼ DMACA4 の下位 16 ビット (DTC[15: 0]) は , バイトでのアクセスはできません *5: このレジスタは , モードベクタフェッチによりアクセスされます。通常動作時にはアクセスできません。 558 付録 B 割込みベクタ 付録 B 割込みベクタ 付表 B-1 に割込みベクタテーブルを示します。 割込みベクタテーブルには , 本品種の割込み要因と割込みベクタ / 割込み制御レジス タの割当てが記載されています。 ■ 割込みベクタ 付表 B-1 割込みベクタテーブル (1/2) 割込み要因 割込み番号 割込みレベル 10 進 16 進 0 00 リセット 1 01 モードベクタ 2 02 システム予約 3 03 システム予約 4 04 システム予約 5 05 システム予約 6 06 システム予約 7 07 コプロセッサ不在トラップ 8 08 コプロセッサエラートラップ 9 09 INTE 命令 10 0A 命令ブレーク例外 11 0B オペランドブレークトラップ 12 0C ステップトレーストラップ 13 0D NMI 要求 (tool) 14 0E 未定義命令例外 15(FH) 固定 15 0F NMI 要求 16 10 ICR00 外部割込み 0 17 11 ICR01 外部割込み 1 18 12 ICR02 外部割込み 2 19 13 ICR03 外部割込み 3 20 14 ICR04 外部割込み 4 21 15 ICR05 外部割込み 5 22 16 ICR06 外部割込み 6 23 17 ICR07 外部割込み 7 24 18 ICR08 リロードタイマ 0 25 19 ICR09 リロードタイマ 1 26 1A ICR10 リロードタイマ 2 27 1B ICR11 UART0 ( 受信完了 ) 28 1C ICR12 UART1 ( 受信完了 ) 29 1D ICR13 UART2 ( 受信完了 ) 30 1E ICR14 UART0 ( 送信完了 ) 31 1F ICR15 UART1 ( 送信完了 ) 32 20 ICR16 UART2 ( 送信完了 ) 33 21 ICR17 DMAC0 ( 終了 , エラー ) 34 22 ICR18 DMAC1 ( 終了 , エラー ) 35 23 ICR19 DMAC2 ( 終了 , エラー ) 36 24 ICR20 DMAC3 ( 終了 , エラー ) 37 25 ICR21 DMAC4 ( 終了 , エラー ) A/D 38 26 ICR22 39 27 ICR23 I 2C 40 28 ICR24 UART4 ( 受信完了 ) *1 *1: MB91F353A/351A/352A/353A には割込み要因はありません。 オフセット 3FCH 3F8H 3F4H 3F0H 3ECH 3E8H 3E4H 3E0H 3DCH 3D8H 3D4H 3D0H 3CCH 3C8H 3C4H 3C0H 3BCH 3B8H 3B4H 3B0H 3ACH 3A8H 3A4H 3A0H 39CH 398H 394H 390H 38CH 388H 384H 380H 37CH 378H 374H 370H 36CH 368H 364H 360H 35CH TBR デフォルトの アドレス 000FFFFCH 000FFFF8H 000FFFF4H 000FFFF0H 000FFFECH 000FFFE8H 000FFFE4H 000FFFE0H 000FFFDCH 000FFFD8H 000FFFD4H 000FFFD0H 000FFFCCH 000FFFC8H 000FFFC4H 000FFFC0H 000FFFBCH 000FFFB8H 000FFFB4H 000FFFB0H 000FFFACH 000FFFA8H 000FFFA4H 000FFFA0H 000FFF9CH 000FFF98H 000FFF94H 000FFF90H 000FFF8CH 000FFF88H 000FFF84H 000FFF80H 000FFF7CH 000FFF78H 000FFF74H 000FFF70H 000FFF6CH 000FFF68H 000FFF64H 000FFF60H 000FFF5CH RN 6 7 11 8 9 10 0 1 2 3 4 5 15 - 559 付録 B 割込みベクタ 付表 B-1 割込みベクタテーブル (2/2) 割込み要因 SIO5 *1 SIO6 SIO7 UART3 ( 受信完了 ) UART3 ( 送信完了 ) リロードタイマ 3/ メイン発振安定待ちタイマ タイムベースタイマ オーバフロー 外部割込み 8-15 *1 時計カウンタ U/D カウンタ 0 U/D カウンタ 1 *1 PPG0/1 PPG2/3 PPG4/5 16 ビットフリーランタイマ ICU0( 取込み ) ICU1( 取込み )/ UART4 ( 送信完了 ) *2 ICU2/3( 取込み ) OCU0/1 ( 一致 ) OCU2/3 ( 一致 ) OCU4/5 ( 一致 ) *1 OCU6/7 ( 一致 ) *1 遅延割込み要因ビット システム予約 (REALOS にて使用 ) システム予約 (REALOS にて使用 ) システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 システム予約 割込み番号 割込みレベル オフセット ICR25 ICR26 ICR27 ICR28 ICR29 358H 354H 350H 34CH 348H TBR デフォルトの アドレス 000FFF58H 000FFF54H 000FFF50H 000FFF4CH 000FFF48H 2E ICR30 344H 000FFF44H - 2F ICR31 340H 000FFF40H - 000FFF3CH 000FFF38H 000FFF34H 000FFF30H 000FFF2CH 000FFF28H 000FFF24H 000FFF20H 000FFF1CH - 10 進 41 42 43 44 45 16 進 29 2A 2B 2C 2D 46 47 RN 12 13 14 - 48 49 50 51 52 53 54 55 56 30 31 32 33 34 35 36 37 38 ICR32 ICR33 ICR34 ICR35 ICR36 ICR37 ICR38 ICR39 ICR40 33CH 338H 334H 330H 32CH 328H 324H 320H 31CH 57 39 ICR41 318H 000FFF18H - 58 59 60 61 62 63 3A 3B 3C 3D 3E 3F ICR42 ICR43 ICR44 ICR45 ICR46 ICR47 314H 310H 30CH 308H 304H 300H 000FFF14H 000FFF10H 000FFF0CH 000FFF08H 000FFF04H 000FFF00H - 64 40 - 2FCH 000FFEFCH - 65 41 - 2F8H 000FFEF8H - 2F4H 66 42 2F0H 67 43 2ECH 68 44 2E8H 69 45 2E4H 70 46 2E0H 71 47 2DCH 72 48 2D8H 73 49 2D4H 74 4A 2D0H 75 4B 2CCH 76 4C 2C8H 77 4D 2C4H 78 4E 2C0H 79 4F 2BCH 80 50 INT 命令で使用 ∼ ∼ ∼ 000H 255 FF *1: MB91F353A/351A/352A/353A には割込み要因はありません。 *2: MB91F353A/351A/352A/353A は UART4 ( 送信完了 ) がありません。 000FFEF4H 000FFEF0H 000FFEECH 000FFEE8H 000FFEE4H 000FFEE0H 000FFEDCH 000FFED8H 000FFED4H 000FFED0H 000FFECCH 000FFEC8H 000FFEC4H 000FFEC0H 000FFEBCH - ∼ 000FFC00H - 560 付録 C 各 CPU ステートにおける端子状態 付録 C 各 CPU ステートにおける端子状態 付表 C-1 に端子状態一覧表で使用されている用語の説明を , 付表 C-2 および付表 C-3 に各 CPU ステートにおける端子状態を示します。 ■ 端子状態一覧表の用語説明 端子の状態に対する語句は以下の意味を持ちます。 付表 C-1 端子状態一覧表の用語説明 用 語 説 明 入力可能 入力機能が使用可能な状態であることを意味します。 入力 0 固定 端子からすぐの入力ゲートで , 外部入力を遮断して内部へ "0" を伝え ている状態です。 出力 Hi-Z 端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダ ンスにすることを意味します。 出力保持 本モードになる直前に出力していた状態をそのまま出力することを意 味します。 すなわち , 出力のある内蔵周辺が動作中であれば , その内蔵周辺にした がって出力を行い , ポートなどとして出力している場合には , その出力 を保持します。 直前の状態を保持 本モードになる直前に出力していた状態をそのまま出力 , あるいは入 力であれば入力可能を意味します。 561 付録 C 各 CPU ステートにおける端子状態 ■ 各 CPU ステートにおける端子状態 付表 C-2 外バスモード時の端子状態 (1/3) P: 汎用ポート選択時 , F: 指定機能選択時 ストップ時 時計モード時 イニシャライズ時 (INIT) PIN № ポート名 初期値 指定 機能名 機能名 1∼8 9 ∼ 16 外 ROM モード 内 ROM モード ベクタ ベクタ (MD2-0=001) (MD2-0=000) 19 ∼ 26 A00 ∼ A07 A00 ∼ A07 27 ∼ 34 - A08 ∼ A15 A08 ∼ A15 バス開放 (BGRNT) HIZ=0 HIZ=1 P: 直前状態 保持 F: 出力 Hi-Z P: 直前状態保持 F: 出力保持 or Hi-Z 同左 P20 ∼ P27 D16 ∼ D23 P20 ∼ P27 出力 Hi-Z/ 入力可能 D24 ∼ D31 D24 ∼ D31 - スリープ時 サブスリープ時 出力保持 or Hi-Z 出力 Hi-Z アドレス出力 同左 37 ∼ 44 P60 ∼ P67 A16 ∼ A23 A16 ∼ A23 P: 直前状態保持 F: アドレス出力 同左 169 P: 直前状態保持 F(WR1): H 出力 F(IN3): 直前状態 保持 P: 直前状態 保持 F: H 出力 直前の状態の保持 H 出力 FF 出力 P85 WR1/IN3 WR1 H 出力 168 - WR0 WR0 167 - RD RD 166 P82 BRQ/IN2 P82 出力 Hi-Z/ 入力可能 165 164 158 ∼ 161 170 P81 P80 BGRNT/IN1 P81 RDY/IN0 出力 Hi-Z/ 入力可能 P80 PA0 ∼ PA3 CS0 ∼ CS3 CS0 ∼ CS3 H 出力 P90 SYSCLK SYSCLK アサート時 : L 出力 ネゲート時 : CLK 出力 *3 P: 直前状態保持 F(BRQ): 入力無効 F(IN2): 直前状態 保持 P: 直前状態保持 F(BGNT): H 出力 F(IN1): 直前状態 保持 P: 直前状態 保持 F: 出力 Hi-Z 直前 状態 保持 出力 Hi- BRQ 入力 Z/ 入力 0 固定 L 出力 P: 直前状態保持 F(RDY): RDY 入力 F(IN0): 直前状態 保持 P: 直前状態 保持 F: RDY 入力 P: 直前状態保持 F: CS 出力 P: 直前状態 保持 F: SREN=0: H 出力 SREN=1: 出力 Hi-Z P: 直前状態保持 F: SYSCLK 出力 P: 直前 状態 保持 F: H また は L 出力 *1: INT0 ∼ INT15 の入力可能状態は , 出力 Hi-Z で入力可能を示します。本端子は , stop からの復帰に使用できます。 *2: 電源投入直後の出力は不定です。 *3: すべての CS に対して SREN=1 を設定したとき出力は , Hi-Z になります。 562 *3 P: 直前状態 保持 F: CLK 出力 備 考 付録 C 各 CPU ステートにおける端子状態 付表 C-2 外バスモード時の端子状態 (2/3) P: 汎用ポート選択時 , F: 指定機能選択時 ストップ時 時計モード時 イニシャライズ時 (INIT) PIN № ポート名 指定 機能名 初期値 機能名 171 172 P91 P92 - MCLK 173 P93 - 174 P94 AS HIZ=0 P92 P: 直前 P: 直前状態保持 状態保持 F: H 出力 F: H 出力 P93 直前状態保持 P94 P: 直前状態保持 F: LBAX 出力 PB0 DREQ0 PB0 PB1 DACK0 PB1 152 PB2 DEOP0/ DSTP0 PB2 153 PB3 DREQ1 PB3 154 PB4 DACK1 PB4 155 PB5 DEOP1/ DSTP1 PB5 IOWR PB6 PB7 157 PB7 IORD 147 PC0 DREQ2 PC0 148 PC1 DACK2 PC1 149 PC2 DEOP2/ DSTP2 PC2 128 PG0 SI4 PG0 129 PG1 SO4 PG1 130 PG2 SCK4 PG2 131 PG3 SI5 PG3 132 PG4 SO5 PG4 133 PG5 SCK5 PG5 122 PH0 SI2 PH0 123 PH1 SO2 PH1 124 PH2 SCK2 PH2 125 PH3 SI3 PH3 126 PH4 SO3 PH4 127 PH5 SCK3 PH5 HIZ=1 直前状態 保持 直前状態保持 150 PB6 外 ROM モード 内 ROM モード ベクタ ベクタ (MD2-0=001) (MD2-0=000) バス開放 (BGRNT) P91 151 156 スリープ時 サブスリープ時 直前の状態の 保持 P: 直前状態 保持 F: CLK 出力 *3 直前状態 保持 直前状態保持 P: 直前状態 保持 F: H 出力 *3 出力 Hi-Z/ 入力 0 固定 出力 Hi-Z/ 入力可能 直前状態保持 直前状態 保持 直前状態 保持 *1: INT0 ∼ INT15 の入力可能状態は , 出力 Hi-Z で入力可能を示します。本端子は , stop からの復帰に使用できます。 *2: 電源投入直後の出力は不定です。 *3: すべての CS に対して SREN=1 を設定したとき出力は , Hi-Z になります。 563 備 考 付録 C 各 CPU ステートにおける端子状態 付表 C-2 外バスモード時の端子状態 (3/3) P: 汎用ポート選択時 , F: 指定機能選択時 ストップ時 時計モード時 イニシャライズ時 (INIT) PIN № ポート名 初期値 指定 機能名 機能名 116 PI0 SI0 PI0 117 PI1 SO0 PI1 118 PI2 SCK0 PI2 119 PI3 SI1 PI3 120 PI4 SO1 PI4 121 PI5 SCK1 PI5 106 ∼ 113 INT8 ∼ PJ0 ∼ PJ7 INT15 外 ROM モード 内 ROM モード ベクタ ベクタ (MD2-0=001) (MD2-0=000) スリープ時 サブスリープ時 出力 Hi-Z/ 入力 0 固定 PJ0 ∼ PJ7 P: 直前 状態保持 F: 入力可 能 P: 出力 Hi-Z F: 入力可 能 PK0 ∼ PK7 P: 直前 状態保持 F: 入力可 能 P: 出力 Hi-Z F: 入力可 能 *1 94 PL0 95 SDA PL0 PL1 SCL PL1 PM0 SI6/AIN0/ TRG0 PM0 88 PM1 SO6/BIN0/ PM1 TRG1 89 PM2 SCK6/ PM2 ZIN0/TRG2 90 PM3 SI7/AIN1/ TRG3 87 HIZ=1 直前状態 保持 *1 INT0 ∼ INT5 INT6/ 98 ∼ 103 PK0 ∼ PK7 FRCK INT7/ATG HIZ=0 出力 Hi-Z/ 入力可能 直前状態 保持 直前状態保持 直前状態 保持 出力 Hi-Z/ 入力 0 固定 PM3 91 PM4 SO7/BIN1/ PM4 TRG4 92 PM5 SCK7/ PM5 ZIN1/TRG5 81 ∼ 86 PN0 ∼ PN5 PPG0 ∼ PPG5 PN0 ∼ PN5 71 ∼ 78 PO0 ∼ PO7 OC0 ∼ OC7 PO0 ∼ PO7 67 ∼ 70 PP0 ∼ PP3 TOT0 ∼ TOT3 PP0 ∼ PP3 50 ∼ 61 - AN0 ∼ AN11 AN0 ∼ AN11 入力無効 入力無効 入力無効 47 ∼ 49 - DA0 ∼ DA2 DA0 ∼ DA2 L レベル出力 L レベル 出力 L レベル 出力 *1: INT0 ∼ INT15 の入力可能状態は , 出力 Hi-Z で入力可能を示します。本端子は , stop からの復帰に使用できます。 *2: 電源投入直後の出力は不定です。 *3: すべての CS に対して SREN=1 を設定したとき出力は , Hi-Z になります。 564 バス開放 備 (BGRNT) 考 付録 C 各 CPU ステートにおける端子状態 付表 C-3 シングルチップモード時の端子状態 (1 / 2) P: 汎用ポート選択時 , F: 指定機能選択時 ストップ時 , 時計モード時 イニシャライズ時 (INIT) PIN № 指定 機能名 ポート名 初期値 機能名 1∼8 P20 ∼ P27 - P20 ∼ P27 9 ∼ 16 P30 ∼ P37 - P30 ∼ P37 19 ∼ 26 P40 ∼ P47 - P40 ∼ P47 27 ∼ 34 P50 ∼ P57 - P50 ∼ P57 - P60 ∼ P67 37 ∼ 44 P60 ∼ P67 164 P80 IN0 165 P81 IN1 166 P82 IN2 P85 備 考 IN3 - P90 ∼ P94 158 ∼ 161 PA0 ∼ PA3 - PA0 ∼ PA3 150 ∼ 157 PB0 ∼ PB7 - PB0 ∼ PB7 147 ∼ 149 PC0 ∼ PC2 - PC0 ∼ PC2 128 PG0 SI4 PG0 129 PG1 SO4 PG1 130 PG2 SCK4 PG2 131 PG3 SI5 PG3 132 PG4 SO5 PG4 PG5 133 PG5 SCK5 122 PH0 SI2 PH0 123 PH1 SO2 PH1 PH2 124 PH2 SCK2 125 PH3 SI3 PH3 126 PH4 SO3 PH4 127 PH5 SCK3 PH5 116 PI0 SI0 PI0 117 PI1 SO0 PI1 118 PI2 SCK0 PI2 119 PI3 SI1 PI3 120 PI4 SO1 PI4 121 PI5 SCK1 PI5 98 ∼ 105 HIZ=1 P80 ∼ P85 170 ∼ 174 P90 ∼ P94 106 ∼ 113 PJ0 ∼ PJ7 HIZ=0 - 167 ∼ 168 P83 ∼ P84 169 内 ROM モードベクタ (MD2-0=000) スリープ時 サブスリープ時 INT8 ∼ INT15 * PJ0 ∼ PJ7 INT0 ∼ INT5 PK0 ∼ PK7 INT6/FRCK PK0 ∼ PK7 INT7/ATG * 直前状態保持 出力 Hi-Z/ 入力可能 出力 Hi-Z/ 入力 0 固定 直前状態保持 P: 直前状態保持 P: 出力 Hi-Z F: 入力可能 F: 入力可能 P: 直前状態保持 P: 出力 Hi-Z F: 入力可能 F: 入力可能 565 付録 C 各 CPU ステートにおける端子状態 付表 C-3 シングルチップモード時の端子状態 (2 / 2) P: 汎用ポート選択時 , F: 指定機能選択時 ストップ時 , 時計モード時 イニシャライズ時 (INIT) PIN № ポート名 指定 機能名 初期値 機能名 94 PL0 SDA PL0 95 PL1 SCL PL1 87 PM0 SI6/AIN0/ TRG0 PM0 88 PM1 SO6/BIN0/ TRG1 PM1 89 PM2 SCK6/ZIN0/ TRG2 PM2 90 PM3 SI7/AIN1/ TRG3 PM3 PM4 SO7/BIN1/ TRG4 PM4 92 PM5 SCK7/ZIN1/ TRG5 PM5 81 ∼ 86 PN0 ∼ PN5 PPG0 ∼ PPG5 PN0 ∼ PN5 71 ∼ 78 PO0 ∼ PO7 OC0 ∼ OC7 PO0 ∼ PO7 67 ∼ 70 PP0 ∼ PP3 50 ∼ 61 47 ∼ 49 91 内 ROM モードベクタ (MD2-0=000) スリープ時 サブスリープ時 出力 Hi-Z/ 入力可能 HIZ=0 HIZ=1 直前状態保持 出力 Hi-Z/ 入力 0 固定 入力無効 入力無効 L レベル出力 L レベル出力 直前状態保持 TOT0 ∼ TOT3 PP0 ∼ PP3 - AN0 ∼ AN11 AN0 ∼ AN11 - DA0 ∼ DA2 DA0 ∼ DA2 L レベル出力 入力無効 *: INT0 ∼ INT15 の入力可能状態は , 出力 Hi-Z で入力可能を示します。本端子は , stop からの復帰に使用できます。 566 備 考 付録 D 命令一覧表 付録 D 命令一覧表 付表 D-1 にアドレッシングモードの記号 , 付図 D-1 に命令フォーマット , そして付 表 D-2 ∼付表 D-21 に FR ファミリの命令一覧を命令種別ごとに示します。 ■ 命令一覧表の読み方 ニーモニック ADD Rj, Rj *ADD #s5, Rj , , 型 OP CYC NZVC A C , , AG A4 , , 1 1 , , CCCC CCCC , , 動 作 備考 Ri + Rj -> Rj Ri + s5 -> Ri , , (1) (2) (3) (4) (5) (6) (7) (1) 命令名が示されています。 * 印は , CPU 仕様にはなくアセンブラで命令を拡張または追加した拡張命令です。 (2) オペランドに指定可能なアドレッシングモードを記号で示されています。 記号の意味は , 「付表 D-1 アドレッシングモードの記号」を参照してください。 (3) 命令フォーマットが示されています。 (4) 命令コードが 16 進数表示されています。 (5) マシンサイクル数を表しています。 a, b, c, d とも最小は 1 サイクルです。 a: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。 b: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。 ただし , LD 動作の対象となるレジスタを直後の命令が参照する場合には , インタ ロックがかかり , 実行サイクル数が+ 1 増加します。 c: 直後の命令が , R15 または SSP または USP に対し , 読出しあるいは書込みを行う 命令であるとき , あるいは命令フォーマット A の命令であるとき , インタロック がかかり , 実行サイクル数は+ 1 増加して "2" となります。 d: 直後の命令が MDH/MDL を参照する場合 , インタロックがかかり , 実行サイクル 数は増加して "2" となります。 ただし , DIV1 命令の直後に , 特殊レジスタ (TBR, RP, USP, SSP, MDH, MDL) を ST Rs,@R15- 命令でアクセスすると , 常にインタロックが掛かって , 実行サイクル数は増 加して "2" となります。 (6) フラグ変化を表しています。 フラグ変化 C ・・・ 変化する - ・・・ 変化しない 0 ・・・ クリア 1 ・・・ セット N Z V C フラグの意味 ・・・ ネガティブフラグ ・・・ ゼロフラグ ・・・ オーバーフラグ ・・・ キャリフラグ (7) 命令動作が表記されています。 567 付録 D 命令一覧表 ■ アドレッシングモードの記号 付表 D-1 に , アドレッシングモードの記号と内容を示します。 付表 D-1 アドレッシングモードの記号 記 号 Ri Rj R13 Ps Rs Cri CRj #i8 #i20 #i32 #s5 #s10 #u4 #u5 #u8 #u10 @dir8 @dir9 @dir10 label9 label12 label20 label32 @Ri @Rj @(R13,Rj) @(R14,disp10) @(R14,disp9) @(R14,disp8) @(R15,udisp6) @Ri+ @R13+ @SP+ @-SP (reglist) 568 内 容 レジスタ直接 (R0 ∼ R15, AC, FP, SP) レジスタ直接 (R0 ∼ R15, AC, FP, SP) レジスタ直接 (R13, AC) レジスタ直接 ( プログラムステータスレジスタ ) レジスタ直接 (TBR, RP, SSP, USP, MDH, MDL) レジスタ直接 (CR0 ∼ CR15) レジスタ直接 (CR0 ∼ CR15) 符号なし 8 ビット即値 (-128 ∼ 255) ( 注意事項 ) -128 ∼ -1 は , 128 ∼ 255 として扱います。 符号なし 20 ビット即値 (-0X80000 ∼ 0XFFFFF) ( 注意事項 ) -0X7FFFF ∼ -1 は , 0X7FFFF ∼ 0XFFFFF として扱います。 符号なし 32 ビット即値 (-0X80000000 ∼ 0XFFFFFFFF) ( 注意事項 ) -0X80000000 ∼ -1 は , 0X80000000 ∼ 0XFFFFFFFF として扱い ます。 符号付き 5 ビット即値 (-16 ∼ 15) 符号付き 10 ビット即値 (-512 ∼ 5084 の倍数のみ ) 符号なし 4 ビット即値 (0 ∼ 15) 符号なし 5 ビット即値 (0 ∼ 31) 符号なし 8 ビット即値 (0 ∼ 255) 符号なし 10 ビット即値 (0 ∼ 10204 の倍数のみ ) 符号なし 8 ビット直接アドレス (0 ∼ 0XFF) 符号なし 9 ビット直接アドレス (0 ∼ 0X1FE2 の倍数のみ ) 符号なし 10 ビット直接アドレス (0 ∼ 0X3FC4 の倍数のみ ) 符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC2 の倍数のみ ) 符号付き 12 ビット分岐アドレス (-0X800 ∼ 0X7FC2 の倍数のみ ) 符号付き 20 ビット分岐アドレス (-0X80000 ∼ 0X7FFFF) 符号付き 32 ビット分岐アドレス (-0X80000000 ∼ 0X7FFFFFFF) レジスタ間接 (R0 ∼ R15, AC, FP, SP) レジスタ間接 (R0 ∼ R15, AC, FP, SP) レジスタ相対間接 (RjR0 ∼ R15, AC, FP, SP) レジスタ相対間接 (disp10-0X200 ∼ 0X1FC4 の倍数のみ ) レジスタ相対間接 (disp9-0X100 ∼ 0XFE2 の倍数のみ ) レジスタ相対間接 (disp8-0X80 ∼ 0X7F) レジスタ相対間接 (udisp60 ∼ 604 の倍数のみ ) ポストインクリメント付きレジスタ間接 (R0 ∼ R15, AC, FP, SP) ポストインクリメント付きレジスタ間接 (R13, AC) スタックポップ スタックプッシュ レジスタリスト 付録 D 命令一覧表 ■ 命令フォーマット 付図 D-1 に命令フォーマットを示します。 付図 D-1 命令フォーマット MSB A B LSB 16ビット OP Rj Ri 8 4 4 OP i8/08 Ri 4 8 4 OP u4/m4 Ri 8 4 4 C ADD,ADDN,CMP,LSL,LSR,ASR命令のみ *C' OP s5/u5 7 5 D E F Ri 4 OP u8/rel8/dir/ reglist 8 8 OP SUB-OP 8 4 OP rel11 5 11 Ri 4 569 付録 D 命令一覧表 付表 D-2 加減算 ニーモニック ADD Rj, Ri *ADD #s5, Ri 型 A C' OP CYCLE NZVC A6 A4 1 1 動 作 CCCC Ri+Rj->Ri CCCC Ri+s5->Ri ADD #u4, Ri ADD2 #u4, Ri ADDN Rj, Ri ADDN Rj, Ri *ADDN #s5, Ri C C A A C' A4 A5 A7 A2 A0 1 1 1 1 1 CCCC CCCC CCCC ------- Ri+extu(i4)->Ri Ri+extu(i4)->Ri Ri+Rj+c->Ri Ri+Rj->Ri Ri+s5->Ri ADDN #u4, Ri ADDN2 #u4, Ri SUB Rj, Ri SUBC Rj, Ri SUBN Rj, Ri C C A A A A0 A1 AC AD AE 1 1 1 1 1 ------CCCC CCCC ---- Ri+extu(i4)->Ri Ri+extu(i4)->Ri Ri-Rj->Ri Ri-Rj-c->Ri Ri-Rj->Ri 備 考 アセンブラでは上位 1 ビットを符号と見る ゼロ拡張 マイナス拡張 キャリ付き加算 アセンブラでは上位 1 ビットを符号と見る ゼロ拡張 マイナス拡張 キャリ付き減算 付表 D-3 比較演算 ニーモニック CMP Rj, Ri *CMP #s5, Ri 型 A C' OP CYCLE NZVC AA A8 1 1 CCCC Ri-Rj CCCC Ri-s5 CMP #u4, Ri CMP2 #u4, Ri C C A8 A9 1 1 CCCC Ri-extu(i4) CCCC Ri-extu(i4) 動 作 備 考 アセンブラでは上位 1 ビッ トを符号と見る ゼロ拡張 マイナス拡張 付表 D-4 論理演算 ニーモニック AND Rj, Ri AND Rj, @Ri ANDH Rj, @Ri ANDB Rj, @Ri OR Rj, Ri OR Rj, @Ri ORH Rj, @Ri ORB Rj, @Ri EOR Rj, Ri EOR Rj, @Ri EORH Rj, @Ri EORB Rj, @Ri 570 型 A A A A A A A A A A A A OP CYCLE NZVC 82 84 85 86 92 94 95 96 9A 9C 9D 9E 1 1+2a 1+2a 1+2a 1 1+2a 1+2a 1+2a 1 1+2a 1+2a 1+2a CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-- 動 作 Ri &= Rj (Ri)&= Rj (Ri)&= Rj (Ri)&= Rj Ri |= Rj (Ri)|= Rj (Ri)|= Rj (Ri)|= Rj Ri ^= Rj (Ri)^= Rj (Ri)^= Rj (Ri)^= Rj 備 考 ワード ワード ハーフワード バイト ワード ワード ハーフワード バイト ワード ワード ハーフワード バイト 付録 D 命令一覧表 付表 D-5 ビット操作命令 ニーモニック 型 OP CYCLE NZVC 動 作 備 考 BANDL #u4, @Ri C 80 1+2a ---- (Ri)&=(0xF0+u4) 下位 4 ビットを操作 BANDH #u4, @Ri C 81 1+2a ---- (Ri)&=((u4<<4)+0x0F) 上位 4 ビットを操作 *BAND #u8, @Ri ---- (Ri)&=u8 ( 注 1) BORL #u4, @Ri C 90 1+2a ---- (Ri) | = u4 下位 4 ビットを操作 BORH #u4, @Ri C 91 1+2a ---- (Ri) | =(u4<<4) 上位 4 ビットを操作 *BOR #u8, @Ri ---- (Ri) | = u8 ( 注 2) BEORL #u4, @Ri C 98 1+2a ---- (Ri) ^ = u4 下位 4 ビットを操作 BEORH #u4, @Ri C 99 1+2a ---- (Ri) ^ =(u4<<4) 上位 4 ビットを操作 *BEOR #u8, @Ri ---- (Ri) ^ = u8 ( 注 3) BTSTL #u4, @Ri C 88 2+a 0C-- (Ri)& u4 下位 4 ビットをテスト BTSTH #u4, @Ri C 89 2+a CC-- (Ri)&(u4<<4) 上位 4 ビットをテスト ( 注 1) アセンブラは , u8&0x0F でビットが立っていれば , BANDL を生成し , u8&0xF0 でビッ トが立っていれば , BANDH を生成します。BANDL, BANDH 両方生成する場合もあり ます。 ( 注 2) アセンブラは , u8&0x0F でビットが立っていれば , BORL を生成し , u8&0xF0 でビット が立っていれば , BORH を生成します。BORL, BORH 両方生成する場合もあります。 ( 注 3) アセンブラは , u8&0x0F でビットが立っていれば , BEORL を生成し , u8&0xF0 でビッ トが立っていれば , BEORH を生成します。BEORL, BEORH 両方生成する場合もあり ます。 付表 D-6 乗除算 ニーモニック MUL Rj,Ri MULU Rj,Ri MULH Rj,Ri MULUH Rj,Ri DIV0S Ri DIV0U Ri DIV1 Ri DIV2 Ri DIV3 DIV4S *DIV Ri ( 注 1) *DIVU Ri ( 注 2) ( 注 1) ( 注 2) 型 A A A A E E E E E E OP AF AB BF BB 97-4 97-5 97-6 97-7 9F-6 9F-7 CYCLE NZVC 5 5 3 3 1 1 d 1 1 1 36 CCCCCCCC-CC--------C-C -C-C -------C-C 動 作 Ri*Rj->MDH,MDL Ri*Rj->MDH,MDL Ri*Rj->MDL Ri*Rj->MDL 備 考 32 ビット *32 ビット =64 ビット 符号なし 16 ビット *16 ビット =32 ビット 符号なし ステップ演算 32 ビット /32 ビット =32 ビット MDL/Ri->MDL, MDL%Ri->MDH -C-C MDL/Ri->MDL, MDL%Ri->MDH DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成します。命令コード長は , 72 バイトとな ります。 DIV0U, DIV1 × 32 を生成します。命令コード長は , 66 バイトとなります。 571 付録 D 命令一覧表 付表 D-7 シフト LSL *LSL LSL LSL2 LSR *LSR LSR LSR2 ASR *ASR ASR ASR2 ニーモニック Rj, Ri #u5, Ri(u5: 0 ∼ 31) #u4, Ri #u4, Ri Rj, Ri #u5, Ri(u5: 0 ∼ 31) #u4, Ri #u4, Ri Rj, Ri #u5, Ri(u5: 0 ∼ 31) #u4, Ri #u4, Ri 型 A C' C C A C' C C A C' C C OP CYCLE NZVC B6 B4 B4 B5 B2 B0 B0 B1 BA B8 B8 B9 1 1 1 1 1 1 1 1 1 1 1 1 CC-C CC-C CC-C CC-C CC-C CC-C CC-C CC-C CC-C CC-C CC-C CC-C 動作 Ri<<Rj->Ri Ri<<u5->Ri Ri<<u4->Ri Ri<<(u4+16)->Ri Ri>>Rj->Ri Ri>>u5->Ri Ri>>u4->Ri Ri>>(u4+16)->Ri Ri>>Rj->Ri Ri>>u5->Ri Ri>>u4->Ri Ri>>(u4+16)->Ri 備 考 論理シフト 論理シフト 算術シフト 付表 D-8 即値セット /16 ビット /32 ビット即値転送命令 ニーモニック LDI: 32 #i32, Ri LDI: 20 #i20, Ri LDI: 8 #i8, Ri *LDI # {i8|i20|i32} ,Ri (注) 型 E C B OP 9F-8 9B C0 CYCLE NZVC 3 2 1 ---------- 動 作 備 考 i32->Ri 上位 12 ビットはゼロ拡張 i20->Ri 上位 24 ビットはゼロ拡張 i8->Ri {i8 | i20 | i32} ->Ri ( 注 ) 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行います。即値が , 相 対値または外部参照シンボルを含む場合は , i32 が選択されます。 付表 D-9 メモリロード OP CYCLE NZVC ニーモニック 型 動 作 備 考 LD @Rj, Ri A 04 b ---- (Rj)->Ri LD @(R13,Rj), Ri A 00 b ---- (R13+Rj)->Ri LD @(R14,disp10),Ri B 2 b ---- (R14+disp10)->Ri LD @(R15,udisp6),Ri C 03 b ---- (R15+udisp6)->Ri LD @R15+, Ri E 07-0 b ---- (R15)->Ri,R15+=4 LD @R15+, Rs E 07-8 b ---- (R15)->Rs,R15+=4 Rs: 特殊レジスタ LD @R15+, PS E 07-9 1+a+b CCCC (R15)->PS, R15+=4 ( 注 ) LDUH @Rj, Ri A 05 b ---- (Rj)->Ri ゼロ拡張 LDUH @(R13,Rj), Ri A 01 b ---- (R13+Rj)->Ri ゼロ拡張 LDUH @(R14,disp9), Ri B 4 b ---- (R14+disp9)->Ri ゼロ拡張 LDUB @Rj, Ri A 06 b ---- (Rj)->Ri ゼロ拡張 LDUB @(R13,Rj), Ri A 02 b ---- (R13+Rj)->Ri ゼロ拡張 LDUB @(R14,disp8), Ri B 6 b ---- (R14+disp8)->Ri ゼロ拡張 ( 注 ) ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま す。 disp10/4->o8, disp9/2->o8, disp8->o8, disp10,disp9,disp8 は符号付き udisp6/4->o4 udisp6 は符号なし 572 付録 D 命令一覧表 付表 D-10 メモリストア OP CYCLE NZVC ニーモニック 型 動 作 備 考 STRi,@Rj A 14 a ---- Ri->(Rj) ワード STRi,@(R13,Rj) A 10 a ---- Ri->(R13+Rj) ワード STRi,@(R14,disp10) B 3 a ---- Ri->(R14+disp10) ワード STRi,@(R15,udisp6) C 13 a ---- Ri->(R15+udisp6) STRi,@-R15 E 17-0 a ---- R15-=4,Ri->(R15) STRs,@-R15 E 17-8 a ---- R15-=4,Rs->(R15) Rs 特殊レジスタ STPS,@-R15 E 17-9 a ---- R15-=4,PS->(R15) (注) STHRi,@Rj A 15 a ---- Ri->(Rj) ハーフワード STHRi,@(R13,Rj) A 11 a ---- Ri->(R13+Rj) ハーフワード STHRi,@(R14,disp9) B 5 a ---- Ri->(R14+disp9) ハーフワード STBRi,@Rj A 16 a ---- Ri->(Rj) バイト STBRi,@(R13,Rj) A 12 a ---- Ri->(R13+Rj) バイト STBRi,@(R14,disp8) B 7 a ---- Ri->(R14+disp8) バイト ( 注 ) ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま す。 disp10/4->o8, disp9/2->o8, disp8->o8, disp10,disp9,disp8 は符号付き udisp6/4->o4 udisp6 は符号なし 付表 D-11 レジスタ間転送 OP CYCLE NZVC ニーモニック 型 動 作 MOVRj,Ri A 8B 1 ---Rj->Ri MOVRs,Ri A B7 1 ---Rs->Ri MOVRi,Rs E B3 1 ---Ri->Rs MOVPS,Ri E 17-1 1 ---PS->Ri MOVRi,PS E 07-1 c CCCC Ri->PS ( 注 ) 特殊レジスタ Rs: TBR, RP, USP, SSP, MDH, MDL 備 考 汎用レジスタ間転送 Rs: 特殊レジスタ Rs: 特殊レジスタ (注) 573 付録 D 命令一覧表 付表 D-12 通常分岐 ( 遅延なし ) OP CYCLE NZVC E D 97-0 D0 97-1 97-2 1F 2 2 2 2 3+3a ---------------- E 9F-3 3+3a ---- E DD D 97-3 E0 E1 E2 2+2A 2 1 2/1 CCCC ---------- ニーモニック JMP @Ri CALL label12 CALL @Ri RET INT #u8 型 E EF INTE RETI BRA label9 BNO label9 BEQ label9 動 作 備 考 Ri->PC PC+2->RP,PC+2+(label12-PC-2)->PC PC+2->RP,Ri->PC RP->PC リターン SSP-=4,PS->(SSP),SSP-=4,PC+2->(SSP), 0->I フラグ , 0->S フラグ , (TBR+0x3FC-u8 × 4)->PC SSP-=4,PS->(SSP),SSP-=4,PC+2->(SSP), 0->S フラグ ,(TBR+0x3D8)->PC エミュレータ用 (R15)->PC,R15-=4,(R15)->PS,R15-=4 PC+2+(label9-PC-2)->PC 非分岐 if(Z==1) then PC+2+(label9-PC-2)->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 DD BNE label9 DD E3 2/1 ---BC label9 DD E4 2/1 ---BNC label9 DD E5 2/1 ---BN label9 DD E6 2/1 ---BP label9 DD E7 2/1 ---BV label9 D E8 2/1 ---BNV label9 E9 2/1 ---BLT label9 EA 2/1 ---BGE label9 EB 2/1 ---BLE label9 EC 2/1 ---BGT label9 ED 2/1 ---BLS label9 EE 2/1 ---BHI label9 EF 2/1 ---( 注意事項 ) ・CYCLE 数の「2/1」は , 分岐するとき 2, 分岐しないとき "1" であることを示します。 ・ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定します。 (label12-PC-2)/2->rel11,(label9-PC-2)/2->rel8, label12, label9 は符号付きです。 ・RETI 命令を実行するときは S フラグが "0" であることが必要です。 574 付録 D 命令一覧表 付表 D-13 遅延分岐 ニーモニック JMP: D @Ri CALL: D label12 CALL: D @Ri RET: D BRA: D label9 BNO: D label9 BEQ: D label9 型 E FE E D D D OP 9F-0 D8 9F-1 9F-2 F0 F1 F2 CYCLE NZVC 1 1 1 1 1 1 1 ---------------------- 動 作 備 考 Ri->PC PC+4->RP,PC+2+(label12-PC-2)->PC PC+4->RP,Ri->PC RP->PC リターン PC+2+(label9-PC-2)->PC 非分岐 if(Z==1) then PC+2+(label9-PC-2)->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 BNE: D label9 D F3 1 ---BC: D label9 D F4 1 ---BNC: D label9 D F5 1 ---BN: D label9 D F6 1 ---BP: D label9 D F7 1 ---BV: D label9 D F8 1 ---BNV: D label9 D F9 1 ---BLT: D label9 D FA 1 ---BGE: D label9 D FB 1 ---BLE: D label9 D FC 1 ---BGT: D label9 D FD 1 ---BLS: D label9 D FE 1 ---BHI: D label9 D FF 1 ---( 注意事項 ) ・ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定しま す。(label12-PC-2)/2->rel11,(label9-PC-2)/2->rel8, label12, label9 は符号付きです。 ・遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。 ・遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル命令です。 複数サイクル命令は置けません。 575 付録 D 命令一覧表 付表 D-14 その他 ニーモニック NOP ANDCCR #u8 ORCCR #u8 STILM #u8 ADDSP #s10 ( 注 1) EXTSB Ri EXTUB Ri EXTSH Ri EXTUH Ri LDM0 (reglist) LDM1 (reglist) OP CYCLE NZVC D D 9F-A 83 93 87 A3 1 c c 1 1 ---cccc cccc ------- 何も変化しない CCRandu8->CCR CCRoru8->CCR i8->ILM R15+=s10 E E E E D 97-8 97-9 97-A 97-B 8C 1 1 1 1 ---------------- D 8D 符号拡張 8->32 ビット ゼロ拡張 8->32 ビット 符号拡張 16->32 ビット ゼロ拡張 16->32 ビット (R15)->reglist, R15 インクリメント (R15)->reglist, R15 インクリメント (R15)->reglist, R15 インクリメント 型 E DD ---- *LDM (reglist) ---- ( 注 2) STM0 (reglist) D 8E ---- STM1 (reglist) D 8F ---- *STM (reglist) ---- 動 作 備 考 ILM 即値セット ADD SP 命令 ロードマルチ R0-R7 ロードマルチ R8-R15 ロードマルチ R0-R15 R15 デクリメント , reglist->(R15) R15 デクリメント , reglist->(R15) R15 デクリメント , reglist->(R15) ストアマルチ R0-R7 ストアマルチ R8-R15 ストアマルチ R0-R15 ( 注 3) ENTER #u10 D 0F 1+a ---- R14->(R15-4), R15-4->R14, R15-u10->R15 関数の入口処理 ( 注 4) LEAVE E 9F-9 b ---- 関数の出口処理 XCHB @Rj, Ri A 8A 2a ---- R14+4->R15, (R15-4)->R14 Ri->TEMP (Rj)->Ri TEMP->(Rj) セマフォ管理用 バイトデータ ( 注意事項 ) ・LDM0 (reglist) , LDM1 (reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき , a*(n-1)+b+1 サイクルと なります。 ・STM0(reglist), STM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき , a*n+1 サイクルとなりま す。 ( 注 1) s10 はアセンブラが , s10/4 を計算して s8 にして値を設定します。s10 は符号付きです。 ( 注 2) reglist で , R0-R7 のいずれかの指定があれば , LDM0 を生成し , R8-R15 のいずれかの指定があれば , LDM1 を生成します。LDM0, LDM1 両方生成する場合もあります。 ( 注 3) reglist で , R0-R7 のいずれかの指定があれば , STM0 を生成し , R8-R15 のいずれかの指定があれば , STM1 を生成します。STM1, STM0 両方生成する場合もあります。 ( 注 4) u10 はアセンブラが ,u10/4 を計算して u8 にして値を設定します。u10 は符号なしです。 576 付録 D 命令一覧表 付表 D-15 20 ビット通常分岐マクロ命令 ニーモニック *CALL20 label20,Ri *BRA20 *BEQ20 *BNE20 *BC20 *BNC20 *BN20 *BP20 *BV20 *BNV20 *BLT20 *BGE20 *BLE20 *BGT20 *BLS20 *BHI20 label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri 動 作 次の命令のアドレス ->RP, label20->PC label20->PC if(Z==1) then label20->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 備 考 Ri: テンポラリレジスタ「参考 : 1」参照 Ri: テンポラリレジスタ「参考 : 2」参照 Ri: テンポラリレジスタ「参考 : 3」参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 参考 : 1 CALL20 (1) label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL label12 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 LDI: 20 #label20,Ri CALL @Ri 参考 : 2 BRA20 (1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 LDI: 20 #label20,Ri JMP @Ri 参考 : 3 Bcc20 (1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 Bxcc false xcc は cc の背反条件 LDI: 20 #label20,Ri JMP @Ri false: 577 付録 D 命令一覧表 付表 D-16 20 ビット遅延分岐マクロ命令 ニーモニック *CALL20: D label20,Ri *BRA20: D *BEQ20: D *BNE20: D *BC20: D *BNC20: D *BN20: D *BP20: D *BV20: D *BNV20: D *BLT20: D *BGE20: D *BLE20: D *BGT20: D *BLS20: D *BHI20: D label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri label20,Ri 動 作 次の命令のアドレス +2->RP, label20->PC label20->PC if(Z==1) then label20->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 備 考 Ri: テンポラリレジスタ「参考 : 1」参照 Ri: テンポラリレジスタ「参考 : 2」参照 Ri: テンポラリレジスタ「参考 : 3」参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 参考 : 1 CALL20: D (1) label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL: D label12 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 LDI: 20 #label20,Ri CALL: D @Ri 参考 : 2 BRA20: D (1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA: D label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 LDI: 20 #label20,Ri JMP: D @Ri 参考 : 3 Bcc20: D (1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc: D label9 (2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 Bxcc false xcc は , cc の背反条件 LDI: 20 #label20,Ri JMP: D @Ri false: 578 付録 D 命令一覧表 付表 D-17 32 ビット通常分岐マクロ命令 ニーモニック *CALL32 label32,Ri *BRA32 *BEQ32 *BNE32 *BC32 *BNC32 *BN32 *BP32 *BV32 *BNV32 *BLT32 *BGE32 *BLE32 *BGT32 *BLS32 *BHI32 label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri 動 作 次の命令のアドレス ->RP, label32->PC label32->PC if(Z==1) then label32->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 備 考 Ri: テンポラリレジスタ「参考 : 1」参照 Ri: テンポラリレジスタ「参考 : 2」参照 Ri: テンポラリレジスタ「参考 : 3」参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 参考 : 1 CALL32 (1) label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL label12 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 LDI: 32 #label32,Ri CALL @Ri 参考 : 2 BRA32 (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 LDI: 32 #label32,Ri JMP @Ri 参考 : 3 Bcc32 (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 Bxcc false xcc は , cc の背反条件 LDI: 32 #label32,Ri JMP @Ri false: 579 付録 D 命令一覧表 付表 D-18 32 ビット遅延分岐マクロ命令 ニーモニック *CALL32D label32,Ri *BRA32: D *BEQ32: D *BNE32: D *BC32: D *BNC32: D *BN32: D *BP32: D *BV32: D *BNV32: D *BLT32: D *BGE32: D *BLE32: D *BGT32: D *BLS32: D *BHI32: D label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri label32,Ri 動 作 次の命令のアドレス +2->RP, label32->PC label32->PC if(Z==1) then label32->PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 備 考 Ri: テンポラリレジスタ 「参考 : 1」参照 Ri: テンポラリレジスタ「参考 : 2」参照 Ri: テンポラリレジスタ「参考 : 3」参照 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 参考 : 1 CALL32: D (1) label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。 CALL: D label12 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 LDI: 32 #label32,Ri CALL: D @Ri 2 BRA32: D 参考 : 2 BRA32: D (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 BRA: D label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 LDI: 32 #label32,Ri JMP: D @Ri 3 Bcc32: D 参考 : 3 Bcc32: D (1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc: D label9 (2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次 のように命令を生成します。 Bxcc false xcc は , cc の背反条件 LDI: 32 #label32,Ri JMP: D @Ri false: 580 付録 D 命令一覧表 付表 D-19 ダイレクトアドレッシング ニーモニック 型 OP CYCLE NZVC 動 作 備 考 DMOV @dir10, R13 D 08 b ---- (dir10)->R13 ワード DMOV R13, @dir10 D 18 a ---- R13->(dir10) ワード DMOV @dir10, @R13+ D 0C 2a ---- (dir10)->(R13),R13+=4 ワード DMOV @R13+, @dir10 D 1C 2a ---- (R13)->(dir10),R13+=4 ワード DMOV @dir10, @-R15 D 0B 2a ---- R15-=4,(R15)->(dir10) ワード DMOV @R15+, @dir10 D 1B 2a ---- (R15)->(dir10),R15+=4 ワード DMOVH @dir9, R13 D 09 b ---- (dir9)->R13 ハーフワード DMOVH R13, @dir9 D 19 a ---- R13->(dir9) ハーフワード DMOVH @dir9, @R13+ D 0D 2a ---- (dir9)->(R13),R13+=2 ハーフワード DMOVH @R13+, @dir9 D 1D 2a ---- (R13)->(dir9),R13+=2 ハーフワード DMOVB @dir8, R13 D 0A b ---- (dir8)->R13 バイト DMOVB R13, @dir8 D 1A a ---- R13->(dir8) バイト DMOVB @dir8, @R13+ D 0E 2a ---- (dir8)->(R13),R13++ バイト DMOVB @R13+, @dir8 D 1E 2a ---- (R13)->(dir8),R13++ バイト ( 注意事項 ) dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。 dir8->dir, dir9/2->dir, dir10/4->dir dir8, dir9, dir10 は符号なしです。 付表 D-20 リソース命令 ニーモニック LDRES @Ri+, #u4 型 C OP CYCLE NZVC BC a ---- STRES #u4, @Ri+ C BD a ---- 動 作 (Ri)->u4 のリソース Ri+=4 u4 のリソース ->(Ri) Ri+=4 備 考 u4: チャネル番号 u4: チャネル番号 <注意事項> MB91350A では , チャネル番号を持つリソースを搭載していないので , 使用できません。 581 付録 D 命令一覧表 付表 D-21 コプロセッサ制御命令 { CRi| CRj} := CR0| CR1| CR2| CR3| CR4| CR5| CR6| CR7| CR8| CR9| CR10| CR11 |CR12| CR13 |CR14| |CR15 u4: : = チャネル指定 u8: : = コマンド指定 COPOP COPLD COPST COPSV ニーモニック #u4, #u8, CRj, Cri #u4, #u8, Rj, Cri #u4, #u8, CRj, Ri #u4, #u8, CRj, Ri 型 E E E E OP 9F-C 9F-D 9F-E 9F-F CYCLE NZVC 2+a 1+2a 1+2a 1+2a ------------- 動作 演算指示 Rj->CRi CRj->Ri CRj->Ri <注意事項> MB91350A では , コプロセッサを搭載していないため使用できません。 582 備 考 エラートラップ なし 索引 索引 Numerics 0 検出 0 検出 ......................................................................332 0 検出用データレジスタ 0 検出用データレジスタ (BSD0) ........................330 10 ビットスレーブアドレスマスクレジスタ 10 ビットスレーブアドレスマスクレジスタ (ITMK) .............................................................423 10 ビットスレーブアドレスレジスタ 10 ビットスレーブアドレスレジスタ (ITBA) ..............................................................422 16 ビット 32 ビット←→ 16 ビットバスコンバータ ............50 FR-CPU プログラミングモード (16 ビット , リード / ライト可能 ) ...............511 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアの タイミング ......................................................402 16 ビットアウトプットコンペアの動作 ............401 16 ビットインプットキャプチャ 16 ビットインプットキャプチャの動作 ............394 16 ビットインプットキャプチャの 入力タイミング ..............................................394 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR) .......................274 16 ビットフリーランタイマ 16 ビットフリーランタイマの概要 ....................260 16 ビットフリーランタイマの カウンタクリア ..............................................266 16 ビットフリーランタイマの カウントタイミング ......................................268 16 ビットフリーランタイマの クリアタイミング ..........................................267 16 ビットフリーランタイマの ブロックダイヤグラム ..................................261 16 ビットフリーランタイマの レジスタ一覧 ..................................................261 16 ビットリロードタイマ 16 ビットリロードタイマの概要 ........................269 16 ビットリロードタイマの ブロックダイヤグラム ..................................271 16 ビットリロードタイマのレジスタ一覧 ........270 16 ビットリロードレジスタ 16 ビットリロードレジスタ (TMRLR) ..............274 1 検出 1 検出 ......................................................................332 1 検出用データレジスタ 1 検出用データレジスタ (BSD1) ........................330 2 サイクル転送 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................214 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................213 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同 じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................212 2 サイクル転送時のデータの動作 .....................490 ステップ / ブロック転送 2 サイクル転送 ......... 464 ステップ / ブロック転送 2 サイクル転送 フライバイ転送 .............................................. 465 デマンド転送 2 サイクル転送 ............................463 バースト 2 サイクル転送 .................................... 462 32 ビット 32 ビット←→ 16 ビットバスコンバータ ........... 50 FR-CPU ROM モード (32 ビット , リードのみ ) ..............................511 400kbps I2C バスインタフェース (400kbps 対応 ) ............... 4 7 ビットスレーブアドレスマスクレジスタ 7 ビットスレーブアドレスマスクレジスタ (ISMK) .............................................................426 7 ビットスレーブアドレスレジスタ 7 ビットスレーブアドレスレジスタ (ISBA) .............................................................. 425 8/16 ビットアップダウンカウンタ 8/16 ビットアップダウンカウンタ / タイマ (ch0) のブロックダイヤグラム ..............................236 8/16 ビットアップダウンカウンタ / タイマ (ch1) のブロックダイヤグラム ..............................237 8/16 ビットアップダウンカウンタ / タイマの 概要 .................................................................. 232 8/16 ビットアップダウンカウンタ / タイマの 特徴 .................................................................. 233 8/16 ビットアップダウンカウンタ / タイマの レジスタ一覧 ..................................................234 8 ビット D/A コンバータ 8 ビット D/A コンバータの特長 ........................ 350 8 ビット D/A コンバータの ブロックダイヤグラム ..................................351 8 ビット D/A コンバータのレジスタ一覧 ........350 583 索引 A A/D コンバータ A/D コンバータ .........................................................4 A/D コンバータの特長 .........................................336 A/D コンバータのブロックダイヤグラム .........337 A/D コンバータのレジスタ一覧 .........................336 A/D コンバータのレジスタの概要 .....................338 ACR ACR0 ∼ ACR7 (Area Configuration Register) の レジスタ構成 ..................................................158 AC 特性 DMAC の AC 特性について ................................486 ADCS コントロール・ステータスレジスタ (ADCS1) の レジスタ構成 ..................................................339 コントロール・ステータスレジスタ (ADCS2) の レジスタ構成 ..................................................341 ADCT 変換時間設定レジスタ (ADCT) のレジスタ 構成 ..................................................................343 ADTHx データレジスタ (ADTHx,ADTLx) の概要 .........345 ADTLx データレジスタ (ADTHx,ADTLx) の概要 .........345 Area Configuration Register ACR0 ∼ ACR7 (Area Configuration Register) の レジスタ構成 ..................................................158 Area Select Register ASR0 ∼ ASR3 (Area Select Register) のレジスタ 構成 ..................................................................157 Area Wait Register AWR0 ∼ AWR7(Area Wait Register) のレジスタ 構成 ..................................................................164 ASR ASR0 ∼ ASR3 (Area Select Register) のレジスタ 構成 ..................................................................157 ASR および ASZ3 ∼ ASZ0 の設定例 .................175 ASZ ASR および ASZ3 ∼ ASZ0 の設定例 .................175 AWR 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................214 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................213 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同 じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................212 AWR0 ∼ AWR7(Area Wait Register) のレジスタ 構成 ..................................................................164 CS 遅延設定 (TYP3 ∼ TYP0=0000B,AWR=000CH) ...........197 CS → RD/WR セットアップ・RD/WR → CS ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) ..................................................198 CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH) ..........204 584 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................209 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................199 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................210 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................200 外部ウェイトあり (TYP3 ∼ TYP0=0101B,AWR=1008H) ........... 203 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B,AWR=2008H) ........... 195 外部ウェイトなし (TYP3 ∼ TYP0=0100B,AWR=0008H) ........... 201 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ........... 191 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B,AWR=2008H) ........... 194 同期ライトイネーブル出力タイミング (TYP3 ∼ TYP0=0000B,AWR=0000H) ........... 196 ライト→ライトタイミング (TYP3 ∼ TYP0=0000B,AWR=0018H) ........... 193 リード→ライトタイミング (TYP3 ∼ TYP0=0000B,AWR=0048H) ........... 192 B BSD 0 検出用データレジスタ (BSD0) ........................ 330 1 検出用データレジスタ (BSD1) ........................ 330 BSDC 変化点検出用データレジスタ (BSDC) ..............331 BSRR 検出結果レジスタ (BSRR) ..................................331 BUSY レディ / ビジー信号 (RDY/BUSY) .....................519 C CCR CCR (Condition Code Register) ............................... 57 CCRH CCRH/L ch0 (Counter Control Register High/Low ch0) ....... 238 CCRH/L ch1 (Counter Control Register High/Low ch1) ....... 241 CDCR 専用プリスケーラコントロールレジスタ (CDCR) .............................................................381 Chip Select Enable register CSER (Chip Select Enable register) のレジスタ 構成 .................................................................. 172 CLK CLK 同期モード ................................................... 368 CLKB CPU クロック (CLKB) .........................................103 CLKP 周辺クロック (CLKP) .......................................... 103 索引 CLKR CLKR: クロックソース制御レジスタ ................114 CLKT 外部バスクロック (CLKT) ..................................104 CLK 同期モード CLK 同期モード ....................................................368 Condition Code Register CCR (Condition Code Register) ...............................57 SCR (System Condition code Register) ....................58 Controller DMAC (DMA Controller) ..........................................3 Counter Control Register CCRH/L ch0 (Counter Control Register High/Low ch0) .......238 CCRH/L ch1 (Counter Control Register High/Low ch1) .......241 Counter Status Register CSR0/1 (Counter Status Register 0/1) ....................241 CPU CPU ...........................................................................50 CPU クロック (CLKB) ..........................................103 FR-CPU ROM モード (32 ビット , リードのみ ) ...............................511 各 CPU ステートにおける端子状態 ...................562 CPU モード フラッシュコントロール / ステータスレジスタ (CPU モード ): FLCR のレジスタ構成 .........507 CSER CSER (Chip Select Enable register) のレジスタ 構成 ..................................................................172 CSR CSR0/1 (Counter Status Register 0/1) ....................241 CS 遅延設定 CS 遅延設定 (TYP3 ∼ TYP0=0000B,AWR=000CH) ...........197 CS → RD/WR セットアップ CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH) ..........204 CS → RD/WR セットアップ・RD/WR → CS ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) ..................................................198 CTBR CTBR: タイムベースカウンタクリア レジスタ ..........................................................113 D D/A コントロールレジスタ D/A コントロールレジスタ 0 (DACR0) .............353 D/A コントロールレジスタ 1 (DACR1) .............353 D/A コントロールレジスタ 2 (DACR2) .............353 D/A コンバータ 8 ビット D/A コンバータの特長 .........................350 8 ビット D/A コンバータの ブロックダイヤグラム ..................................351 8 ビット D/A コンバータのレジスタ一覧 .........350 D/A コンバータ .........................................................4 D/A コンバータの出力電圧の論理式 .................354 D/A データレジスタ D/A データレジスタ 0 (DADR0) .........................352 D/A データレジスタ 1 (DADR1) .........................352 D/A データレジスタ 2 (DADR2) .........................352 DACK DACK の FR30 互換モード ................................. 496 DACK 端子出力 DACK 端子出力のタイミングについて ............484 DACR D/A コントロールレジスタ 0 (DACR0) ............. 353 D/A コントロールレジスタ 1 (DACR1) ............. 353 D/A コントロールレジスタ 2 (DACR2) ............. 353 DADR D/A データレジスタ 0 (DADR0) ........................ 352 D/A データレジスタ 1 (DADR1) ........................ 352 D/A データレジスタ 2 (DADR2) ........................ 352 D-bus D-bus メモリ ............................................................ 32 DDR ポート方向レジスタ (DDR) ................................223 DEOP 端子出力 DEOP 端子出力のタイミングについて ............. 485 DICR DICR ( 遅延割込みモジュールレジスタ ) ......... 326 DICR の DLYI ビット .......................................... 327 DIVR DIVR0: 基本クロック分周設定レジスタ 0 ....... 118 DIVR1: 基本クロック分周設定レジスタ 1 ....... 119 DLYI DICR の DLYI ビット .......................................... 327 DMA DMAC (DMA Controller) .......................................... 3 DMA 転送中の外部ホールド要求 ...................... 472 DMA による割込みクリアの発生 タイミング ......................................................475 DMA 抑止 .............................................................. 471 外部ホールド中の DMA 転送要求 .....................472 DMAC DMAC (DMA Controller) .......................................... 3 DMAC の AC 特性について ................................486 DMAC の概要 ....................................................... 456 DMAC の主要機能 ............................................... 438 DMAC の主要動作 ............................................... 457 DMAC のハードウェア構成 ............................... 438 DMAC のブロックダイヤグラム .......................440 DMAC のレジスタ概要 .......................................439 DMAC 割込み制御が出力できる割込み ........... 479 IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) の レジスタ構成 ..................................................170 DMACA [DMACA0 ∼ DMACA4] のビット機能 ............. 442 DMACB コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) のビット機能 ....... 447 DMACR 全体制御レジスタ (DMACR) の ビット機能 ......................................................454 DMAC 割込み要因クリアレジスタ DMAC 割込み要因クリアレジスタ (SRCL) ...... 382 DMADA 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/ DMADA0 ∼ DMADA4) のビット機能 ........452 DMASA 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/ DMADA0 ∼ DMADA4) のビット機能 ........452 585 索引 DMA 外部インタフェース DMA 外部インタフェースの動作概要 ..............493 DMA 転送 DMA 転送と割込み ..............................................471 スリープモード中の DMA 転送の注意 .............480 DMA 転送要求 DMA 転送要求と外部ホールド要求の 同時発生 ..........................................................472 DMA フライバイ転送 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................209 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................199 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................210 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................200 double 型 double 型 ,long double 型の利用 .............................38 DRCL DRCL レジスタ (DRCL) .......................................365 DRCL レジスタ DRCL レジスタ (DRCL) .......................................365 DREQ DREQ 端子入力の最小有効パルス幅について (MB91F353A/351A/352A/353A には 0,1,2 チャ ネルはありません。) .....................................483 DREQx 端子 DREQx 端子の入力タイミング ...........................494 DREQ 端子入力 デマンド転送要求の停止時の DREQ 端子入力の ネゲートタイミングについて ......................483 同一チャネルで引き続き転送を行うための DREQ 端子入力のタイミングについて ..................484 DRLR DRLR: データ RAM 制限コントロールレジスタ (D-bus RAM Limit control Register) ...............543 DSTP 端子入力 DSTP 端子入力のタイミングについて ..............485 E EIT EIT からの復帰 .......................................................69 EIT の特長 ...............................................................69 EIT の割込みレベル ...............................................70 EIT ベクタテーブル ...............................................76 EIT 要因 ...................................................................69 EIT 要因受理の優先度 ...........................................79 ELVRn 外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register) のビット構成 .........319 ENable Interrupt Request Register 割込み許可レジスタ (ENIRn: ENable Interrupt Request Register) のビット構成 .....................317 ENIRn 割込み許可レジスタ (ENIRn: ENable Interrupt Request Register) のビット構成 .....................317 586 External Interrupt 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) のビット構成 .....................318 External Interrupt Request Register 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) のビット構成 .....................318 External LeVel Register 外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register) のビット構成 ......... 319 F F-Bus RAM Limit control Register FRLR: 命令 RAM 制限コントロールレジスタ (F-Bus RAM Limit control Register) ............... 544 FLCR フラッシュコントロール / ステータスレジスタ (CPU モード ): FLCR のレジスタ構成 ........507 FLWC ウェイトレジスタ :FLWC のレジスタ構成 ...... 509 FR30 DACK の FR30 互換モード ................................. 496 FRCPU FRCPU の特長 ........................................................... 2 FR-CPU ROM モード FR-CPU ROM モード (32 ビット , リードのみ ) ..............................511 FR-CPU プログラミングモード FR-CPU プログラミングモード (16 ビット , リード / ライト可能 ) ............... 511 FRLR FRLR: 命令 RAM 制限コントロールレジスタ (F-Bus RAM Limit control Register) ............... 544 H Hold Request Cancel Request ホールドリクエスト取下げ要求 (Hold Request Cancel Request) ........................ 309 HRCL ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................305 HRCR ホールドリクエスト取下げ要求機能 (HRCR) の 使用例 .............................................................. 310 I I/O 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................214 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................213 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同 じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................212 索引 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................209 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................199 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................210 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................200 I/O ピン ..................................................................155 I/O ポート ..................................................................4 I/O ポートアクセス ................................................33 外部 I/O −外部メモリ間の転送について .........485 拡張 I/O シリアルインタフェース (SIO) の ブロックダイヤグラム ..................................377 拡張 I/O シリアルインタフェース (SIO) の レジスタ一覧 ..................................................376 拡張 I/O シリアルインタフェース (SIO) の 動作概要 ..........................................................383 拡張 I/O シリアルインタフェースの概要 .........375 シリアル I/O の動作状態 .....................................384 シリアル I/O の動作モード .................................376 I/O Wait Register IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) の レジスタ構成 ..................................................170 I/O ポート I/O ポート ..................................................................4 I/O ポートアクセス ................................................33 I/O マップ I/O マップの読み方 ..............................................548 I2 C I2C バスインタフェース (400kbps 対応 ) ...............4 I2C インタフェース I2C インタフェースの特長 ..................................406 I2C インタフェースの ブロックダイヤグラム ..................................409 I2C インタフェースのレジスタ一覧 ..................407 I2C インタフェースのレジスタ概要 ..................410 IBCR バスコントロールレジスタ (IBCR) ....................414 IBSR バスステータスレジスタ (IBSR) ........................411 ICCR クロックコントロールレジスタ (ICCR) ............420 ICR ICR ビット構成 .......................................................72 ICR マッピング .......................................................72 割込み制御レジスタ (ICR) のビット構成 .........304 ICS インプットキャプチャコントロールレジスタ (ICS01,ICS23) ..................................................392 IDAR データレジスタ (IDAR) .......................................427 IDBL クロックディセーブルレジスタ (IDBL) ............428 ILM ILM .....................................................................59, 71 INIT 設定初期化リセット (INIT) ...................................90 設定初期化リセット (INIT) 解除シーケンス ............................................................................93 INIT INIT 端子入力 ( 設定初期化リセット端子 ) ........ 91 INT INT 命令の動作 ....................................................... 82 INTE INTE 命令の動作 ....................................................82 Interrupt 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) のビット構成 .....................318 IOWR 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................214 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................213 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同 じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................212 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................209 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................199 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................210 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................200 IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) の レジスタ構成 ..................................................170 IPCP インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) .............................................392 ISBA 7 ビットスレーブアドレスレジスタ (ISBA) .............................................................. 425 ISMK 7 ビットスレーブアドレスマスクレジスタ (ISMK) .............................................................426 ITBA 10 ビットスレーブアドレスレジスタ (ITBA) .............................................................. 422 ITMK 10 ビットスレーブアドレスマスクレジスタ (ITMK) .............................................................423 I フラグ I フラグ .................................................................... 70 L lib オプション 文字列操作関数使用時の -K lib オプションの 指定 .................................................................... 38 long double 型 double 型 ,long double 型の利用 ............................ 38 587 索引 LSI 本 LSI とエンディアンの接続 .............................186 M MCLK MCLK と SYSCLK ..................................................32 MD モード端子 (MD0 ∼ MD2) について ...................31 MODR モードレジスタ (MODR) .......................................87 Multiply & Divide register 乗除算レジスタ (Multiply & Divide register) ........61 N NC NC,OPEN 端子の処理について .............................31 NMI NMI .........................................................................322 NMI (Non Maskable Interrupt) ...............................309 NMI/ ホールド抑止レベル割込み処理中 ...........476 外部割込み・NMI 制御部の ブロックダイヤグラム ..................................315 外部割込み・NMI 制御部のレジスタ一覧 ........314 外部割込み・NMI 制御部のレジスタ詳細 ........316 ユーザ割込み・NMI の動作 ..................................81 割込み・NMI に対するレベルマスク ..................71 Non Maskable Interrupt NMI (Non Maskable Interrupt) ...............................309 O OCCP コンペアレジスタ (OCCP0 ∼ OCCP7) ..............398 OCS アウトプットコントロールレジスタ (OCS0 ∼ 7) ......................................................398 OPEN 端子 NC,OPEN 端子の処理について .............................31 OSCCR OSCCR: 発振制御レジスタ .................................121 P PC PC (Program Counter) ..............................................59 PCR プルアップ抵抗レジスタ (PCR) .........................224 PCSR PPG 周期設定レジスタ (PCSR) の構成 ..............287 PDR ポートデータレジスタ (PDR) .............................222 PDUT PPG デューティ設定レジスタ (PDUT) の 構成 ..................................................................288 PFR ポート機能レジスタ (PFR) ..................................225 PFR レジスタ PFR レジスタの初期値と機能 ............................226 588 PLL PLL 逓倍率 ............................................................ 100 PLL 動作許可 .......................................................... 99 PLL クロック PLL クロックモード動作中の注意について ...... 31 PLL 逓倍率変更後 PLL 逓倍率変更後の待ち時間 ............................101 PLL 動作許可後 PLL 動作許可後の待ち時間 ................................101 Pointer RP (Return Pointer) ..................................................60 SSP (System Stack Pointer) ................................ 60, 73 USP (User Stack Pointer) .........................................60 PPG PPG 出力オール "L" またはオール "H" の出力方法 の例 .................................................................. 297 PPG 周期設定レジスタ PPG 周期設定レジスタ (PCSR) の構成 ..............287 PPG タイマ PPG タイマの特長 ................................................280 PPG タイマのブロックダイヤグラム ( 全体構成 ,1 チャネル分 ) ............................282 PPG タイマのレジスタ一覧 ................................281 PPG タイマのレジスタの概要 ............................283 PPG タイマレジスタ PPG タイマレジスタ (PTMR) の構成 ................ 289 PPG デューティ設定レジスタ PPG デューティ設定レジスタ (PDUT) の 構成 .................................................................. 288 Program Counter PC (Program Counter) .............................................. 59 Program Status PS (Program Status) ..................................................56 PS PS (Program Status) ..................................................56 PS レジスタ PS レジスタに関する注意事項 ............................. 34 PTMR PPG タイマレジスタ (PTMR) の構成 ................ 289 R RAM 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同 じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................212 FRLR: 命令 RAM 制限コントロールレジスタ (F-Bus RAM Limit control Register) ............... 544 内蔵 RAM ................................................................ 33 内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 ) アクセス制限機能の動作 ..............................545 内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 ) アクセス制限機能のブロックダイヤグラム ..........................................................................542 内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 ) アクセス制限機能レジスタ一覧 .................. 542 RCR RCR0/1 (Reload/Compare Register 0/1) ................ 243 索引 RD/WR → CS ホールド設定 CS → RD/WR セットアップ・RD/WR → CS ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) ..................................................198 RDY レディ / ビジー信号 (RDY/BUSY) ......................519 REALOS ビットサーチモジュール (REALOS 使用 ) ...........3 Reload/Compare Register RCR0/1 (Reload/Compare Register 0/1) ................243 Request Register 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) のビット構成 .....................318 RETI RETI 命令の動作 .....................................................84 Return Pointer RP (Return Pointer) ...................................................60 ROM FR-CPU ROM モード (32 ビット , リードのみ ) ...............................511 バスモード 1 ( 内 ROM 外バスモード ) ...............86 RP RP (Return Pointer) ...................................................60 RSRR RSRR: リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ......................................107 RST 動作初期化リセット (RST) ....................................90 動作初期化リセット (RST) 解除シーケンス .......93 S SCR SCR (System Condition code Register) ....................58 シリアルコントロールレジスタ (SCR) .............360 SDR シリアルシフトデータレジスタ (SDR) .............381 SES SIO テストレジスタ (SES) ...................................381 SIDR シリアルインプットデータレジスタ (SIDR)/ シリアルアウトプットデータレジスタ (SODR) .............................................................362 SIO SIO ..............................................................................4 拡張 I/O シリアルインタフェース (SIO) の ブロックダイヤグラム ..................................377 拡張 I/O シリアルインタフェース (SIO) の レジスタ一覧 ..................................................376 拡張 I/O シリアルインタフェース (SIO) の 動作概要 ..........................................................383 SIO テストレジスタ SIO テストレジスタ (SES) ...................................381 SMCS シリアルモードコントロールステータスレジスタ (SMCS) .............................................................378 SMR シリアルモードレジスタ (SMR) ........................359 SODR シリアルインプットデータレジスタ (SIDR)/ シリアルアウトプットデータレジスタ (SODR) .............................................................362 SRCL DMAC 割込み要因クリアレジスタ (SRCL) ...... 382 SRST ビット書込み STCR:SRST ビット書込み ( ソフトウェアリセット ) ............................... 92 SSP SSP (System Stack Pointer) ................................ 60, 73 SSR シリアルステータスレジスタ (SSR) .................. 363 Stack Pointer SSP (System Stack Pointer) ................................ 60, 73 USP (User Stack Pointer) .........................................60 START 「START」条件 ......................................................429 STCR STCR:SRST ビット書込み ( ソフトウェアリセット ) ............................... 92 STCR: スタンバイ制御レジスタ ........................ 109 STOP 「STOP」条件 .........................................................429 SYSCLK MCLK と SYSCLK ..................................................32 System Condition code Register SCR (System Condition code Register) .................... 58 System Stack Pointer SSP (System Stack Pointer) ................................ 60, 73 T Table Base Register TBR (Table Base Register) .................................59, 75 TBCR TBCR: タイムベースカウンタ制御 レジスタ .......................................................... 111 TBR TBR (Table Base Register) .................................59, 75 TCCS タイマコントロールステータスレジスタ (TCCS) .............................................................262 TCDT タイマデータレジスタ (TCDT) .......................... 262 TCR TCR (Terminal and timing Control Register) の レジスタ構成 ..................................................173 Terminal and timing Control Register TCR (Terminal and timing Control Register) の レジスタ構成 ..................................................173 TMCSR コントロールステータスレジスタ (TMCSR) .......................................................... 272 TMR 16 ビットタイマレジスタ (TMR) .......................274 TMRLR 16 ビットリロードレジスタ (TMRLR) ..............274 TYP 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................214 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................213 589 索引 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同 じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................212 CS 遅延設定 (TYP3 ∼ TYP0=0000B,AWR=000CH) ...........197 CS → RD/WR セットアップ・RD/WR → CS ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) ..................................................198 CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH) ..........204 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................209 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................199 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................210 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................200 外部ウェイトあり (TYP3 ∼ TYP0=0101B,AWR=1008H) ...........203 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B,AWR=2008H) ...........195 外部ウェイトなし (TYP3 ∼ TYP0=0100B,AWR=0008H) ...........201 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ...........191 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B,AWR=2008H) ...........194 同期ライトイネーブル出力タイミング (TYP3 ∼ TYP0=0000B,AWR=0000H) ...........196 ライト→ライトタイミング (TYP3 ∼ TYP0=0000B,AWR=0018H) ...........193 リード→ライトタイミング (TYP3 ∼ TYP0=0000B,AWR=0048H) ...........192 U UART UART ..........................................................................3 UART の概要 .........................................................356 UART のクロック選択 .........................................366 UART の動作モード .............................................366 UART の特長 .........................................................357 UART のブロックダイヤグラム .........................358 UART のレジスタ一覧 .........................................357 UDCR UDCR0/1 (Up Down Count Register 0/1) ..............243 UDCR へのデータの書込み ................................249 Up Down Count Register UDCR0/1 (Up Down Count Register 0/1) ..............243 User Stack Pointer USP (User Stack Pointer) ..........................................60 USP USP (User Stack Pointer) ..........................................60 UTIM U-TIMER レジスタ (UTIM) .................................254 590 UTIMC U-TIMER コントロールレジスタ (UTIMC) ...... 255 U-TIMER U-TIMER の概要 ................................................... 252 U-TIMER のブロックダイヤグラム ...................253 U-TIMER のレジスタ一覧 ................................... 253 ボーレートと U-TIMER のリロード値の 設定例 .............................................................. 374 U-TIMER コントロールレジスタ U-TIMER コントロールレジスタ (UTIMC) ...... 255 U-TIMER レジスタ U-TIMER レジスタ (UTIM) ................................. 254 UTIMR リロードレジスタ (UTIMR) ................................254 W WPR WPR: ウォッチドッグリセット発生延期 レジスタ .......................................................... 117 索引 あ アーキテクチャ 内部アーキテクチャの概要 ...................................47 内部アーキテクチャの構造 ...................................49 内部アーキテクチャの特長 ...................................48 アービトレーション アービトレーション .............................................431 アウトプットコントロールレジスタ アウトプットコントロールレジスタ (OCS0 ∼ 7) ......................................................398 アウトプットコンペア 16 ビットアウトプットコンペアの タイミング ......................................................402 16 ビットアウトプットコンペアの動作 ............401 アウトプットコンペアの概要 .............................395 アウトプットコンペアの特長 .............................396 アウトプットコンペアの ブロックダイヤグラム ..................................397 アウトプットコンペアのレジスタ一覧 .............396 アクセスアドレス アクセスアドレス .................................................469 アクセスモード アクセスモード .......................................................85 フラッシュメモリのアクセスモード .................511 アクノリッジ アクノリッジ .........................................................431 アップ / ダウンカウント リロード / コンペア機能起動時の , 任意幅での アップ / ダウンカウント ...............................247 アップダウンカウンタ 8/16 ビットアップダウンカウンタ / タイマ (ch0) のブロックダイヤグラム ..............................236 8/16 ビットアップダウンカウンタ / タイマ (ch1) のブロックダイヤグラム ..............................237 8/16 ビットアップダウンカウンタ / タイマの 概要 ..................................................................232 8/16 ビットアップダウンカウンタ / タイマの 特徴 ..................................................................233 8/16 ビットアップダウンカウンタ / タイマの レジスタ一覧 ..................................................234 アドレス / データマルチプレックスアクセス 通常アクセスおよびアドレス / データマルチ プレックスアクセス ......................................165 アドレスエラー アドレスエラーの発生 .........................................478 アドレス検出 スレーブアドレス検出 .........................................430 アドレス指定方法 アドレス指定方法 .................................................526 アドレスレジスタ アドレスレジスタ指定 .........................................468 アドレッシング アドレッシングモードの記号 .............................568 ダイレクトアドレッシング ...................................53 ダイレクトアドレッシング領域 ...........................44 マスタアドレッシング .........................................431 アルゴリズム 自動アルゴリズム実行状態 .................................512 自動アルゴリズムのコマンドシーケンス .........514 フラッシュメモリ自動アルゴリズムの 概要 ..................................................................513 アンダフロー動作 アンダフロー動作 ................................................276 い 一時停止 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に設 定 ) ....................................................................476 プリフェッチアクセスの一時停止と 任意クリア ......................................................206 一時停止状態 一時停止状態からの起動 .................................... 473 インターバル時間 インターバル時間 ................................................136 メイン発振安定待ちタイマのインターバル 時間 .................................................................. 142 インターバルタイマ インターバルタイマ機能の動作 ................139, 145 その他のインターバルタイマ / カウンタ ............. 4 インタフェース DMA 外部インタフェースの動作概要 ..............493 I2C インタフェースの特長 ..................................406 I2C インタフェースの ブロックダイヤグラム ..................................409 I2C インタフェースのレジスタ一覧 .................. 407 I2C インタフェースのレジスタ概要 .................. 410 I2C バスインタフェース (400kbps 対応 ) ............... 4 外部バスインタフェースの設定手順 ................ 217 拡張 I/O シリアルインタフェース (SIO) の ブロックダイヤグラム ..................................377 拡張 I/O シリアルインタフェース (SIO) の レジスタ一覧 ..................................................376 拡張 I/O シリアルインタフェース (SIO) の 動作概要 .......................................................... 383 拡張 I/O シリアルインタフェースの概要 ......... 375 時分割入出力インタフェースの制御信号 ........177 通常バスインタフェースの制御信号 ................ 177 バスインタフェース ................................................ 2 インプットキャプチャ 16 ビットインプットキャプチャの動作 ........... 394 16 ビットインプットキャプチャの 入力タイミング .............................................. 394 インプットキャプチャの概要 ............................389 インプットキャプチャの ブロックダイヤグラム ..................................391 インプットキャプチャのレジスタ一覧 ............390 各インプットキャプチャに対応する 外部入力端子 ..................................................390 インプットキャプチャコントロールレジスタ インプットキャプチャコントロールレジスタ (ICS01,ICS23) ..................................................392 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) .............................................392 う ウェイト 外部ウェイトあり (TYP3 ∼ TYP0=0101B,AWR=1008H) ........... 203 591 索引 外部ウェイトなし (TYP3 ∼ TYP0=0100B,AWR=0008H) ...........201 ウェイトタイミング 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B,AWR=2008H) ...........195 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B,AWR=2008H) ...........194 ウェイトレジスタ ウェイトレジスタ :FLWC のレジスタ構成 ......509 ウォッチドッグ ウォッチドッグリセット .......................................92 ウォッチドッグタイマ RSRR: リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ......................................107 ウォッチドッグタイマ制御レジスタ RSRR: リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ......................................107 ウォッチドッグリセット発生延期レジスタ WPR: ウォッチドッグリセット発生延期 レジスタ ..........................................................117 内 ROM 外バスモード バスモード 1 ( 内 ROM 外バスモード ) ...............86 え エミュレータデバッガ エミュレータデバッガ , モニタデバッガ ............42 エラー アドレスエラーの発生 .........................................478 エラーの未検出 .......................................................41 エラーを発生しない通信エラー .........................432 コプロセッサエラートラップ ...............................84 バスエラー .............................................................431 エンディアン エンディアンの概要 .............................................176 本 LSI とエンディアンの接続 .............................186 お オーダリング バイトオーダリング ...............................................62 ビットオーダリング ...............................................62 か 外形寸法図 MB91F353A/351A/352A/353A 外形寸法図 ..........12 MB91F355A/F356B/F357B/354A/355A 外形寸法図 ............................................................................11 解除シーケンス 設定初期化リセット (INIT) 解除シーケンス ............................................................................93 動作初期化リセット (RST) 解除シーケンス ............................................................................93 外部 I/O 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同 じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................212 外部 I/O −外部メモリ間の転送について .........485 592 外部アクセス プリフェッチによる外部アクセスを開始する 基本条件 .......................................................... 205 外部インタフェース DMA 外部インタフェースの動作概要 ..............493 外部ウェイト 外部ウェイトあり (TYP3 ∼ TYP0=0101B,AWR=1008H) ........... 203 外部ウェイトなし (TYP3 ∼ TYP0=0100B,AWR=0008H) ........... 201 外部ウェイトタイミング 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B,AWR=2008H) ........... 195 外部クロック 外部クロック使用時の注意 ..................................31 外部端子転送要求 転送中に外部端子転送要求が再度入力された場合 について .......................................................... 485 外部転送要求端子 外部転送要求端子 ................................................460 外部入力端子 各インプットキャプチャに対応する 外部入力端子 ..................................................390 外部バスアクセス 外部バスアクセス ................................................180 外部バスインタフェース 外部バスインタフェースの設定手順 ................ 217 外部バスインタフェースの特長 ........................ 152 外部バスインタフェースの ブロックダイヤグラム ..................................154 外部バスインタフェースのレジスタ一覧 ........155 外部バスインタフェースのレジスタ概要 ........156 外部バスクロック 外部バスクロック (CLKT) ..................................104 外部ホールド 外部ホールド中の DMA 転送要求 .....................472 外部ホールド要求 DMA 転送中の外部ホールド要求 ...................... 472 DMA 転送要求と外部ホールド要求の 同時発生 .......................................................... 472 外部メモリ 外部 I/O −外部メモリ間の転送について ......... 485 外部割込み 外部割込みの動作 ................................................320 外部割込みの動作手順 ........................................ 320 外部割込み要求レベル ........................................ 321 外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register) のビット構成 ......... 319 外部割込み・NMI 制御部の ブロックダイヤグラム ..................................315 外部割込み・NMI 制御部のレジスタ一覧 ........314 外部割込み・NMI 制御部のレジスタ詳細 ........316 外部割込み要因レジスタ 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) のビット構成 .....................318 外部割込み要求レベル 外部割込み要求レベル ........................................ 321 外部割込み要求レベル設定レジスタ 外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register) のビット構成 ......... 319 カウンタ カウンタの動作状態 ............................................ 278 その他のインターバルタイマ / カウンタ ............. 4 索引 カウントタイミング 16 ビットフリーランタイマの カウントタイミング ......................................268 カウントモード カウントモード選択 .............................................244 書込み 富士通標準シリアルオンボード書込みに使用する 端子 ..................................................................535 書込み基本構成 MB91F353A/F355A/F356B/F357B 書込み基本構成 ..........................................................................534 拡張 I/O シリアルインタフェース 拡張 I/O シリアルインタフェース (SIO) の 動作概要 ..........................................................383 拡張 I/O シリアルインタフェース (SIO) の ブロックダイヤグラム ..................................377 拡張 I/O シリアルインタフェース (SIO) の レジスタ一覧 ..................................................376 拡張 I/O シリアルインタフェースの概要 .........375 簡易波形 動作例 ( 簡易波形 ) ...............................................493 関数 文字列操作関数使用時の -K lib オプションの 指定 ....................................................................38 文字列操作関数を使った文字型配列以外の 操作 ....................................................................37 き 機能比較 機能比較 .....................................................................6 基本クロック分周設定レジスタ DIVR0: 基本クロック分周設定レジスタ 0 ........118 DIVR1: 基本クロック分周設定レジスタ 1 ........119 基本条件 プリフェッチによる外部アクセスを開始する 基本条件 ..........................................................205 基本タイミング 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0=0000B,AWR=0008H) ...........191 基本プログラミングモデル 基本プログラミングモデル ...................................54 供給機能 クロック供給機能の動作 .............................140, 146 く 空間領域 メモリ空間領域と周辺リソースの各レジスタの 対応 ..................................................................549 クリアタイミング 16 ビットフリーランタイマの クリアタイミング ..........................................267 クロック CPU クロック (CLKB) ..........................................103 PLL クロックモード動作中の注意について ......31 UART のクロック選択 .........................................366 外部クロック使用時の注意 ...................................31 クロック供給機能の動作 .............................140, 146 クロック制御部 .......................................................32 クロック生成制御部の ブロックダイヤグラム ..................................106 クロック動作 ........................................................ 275 サブクロックからメインクロック切換え後の待ち 時間 .................................................................. 102 サブクロック切換え .............................................. 32 サブクロックを使用しない場合の注意に ついて ................................................................ 31 周辺クロック (CLKP) .......................................... 103 内部動作クロックの生成 ...................................... 98 クロックコントロールレジスタ クロックコントロールレジスタ (ICCR) ........... 420 クロック制御部 クロック制御部 ......................................................32 クロック選択 UART のクロック選択 ........................................ 366 クロックソース制御レジスタ CLKR: クロックソース制御レジスタ ................ 114 クロックディセーブルレジスタ クロックディセーブルレジスタ (IDBL) ........... 428 クロックモード PLL クロックモード動作中の注意について ...... 31 け 検出結果レジスタ 検出結果レジスタ (BSRR) ..................................331 原振入力 電源投入時の原振入力について .......................... 31 兼用ポート 兼用ポートの機能切換え ...................................... 33 こ 構造体代入 構造体代入 .............................................................. 37 互換モード DACK の FR30 互換モード ................................. 496 コプロセッサ コプロセッサエラートラップ ..............................84 コプロセッサ不在トラップ ..................................84 コマンドシーケンス 自動アルゴリズムのコマンドシーケンス ........514 コントロール / ステータスレジスタ コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) のビット機能 ....... 447 コントロールステータスレジスタ コントロールステータスレジスタ (TMCSR) .......................................................... 272 コントロールステータスレジスタの構成 ........284 コントロール・ステータスレジスタ コントロール・ステータスレジスタ (ADCS1) の レジスタ構成 ..................................................339 コントロール・ステータスレジスタ (ADCS2) の レジスタ構成 ..................................................341 コンペア リロード / コンペア機能 .....................................246 リロード / コンペア機能起動時の , 任意幅での アップ / ダウンカウント ............................... 247 コンペアレジスタ コンペアレジスタ (OCCP0 ∼ OCCP7) ..............398 593 索引 さ 再起動許可 再起動許可の場合 .........................................294, 295 再起動禁止 再起動禁止の場合 .........................................294, 295 サイクル転送 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................214 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................213 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同 じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................212 最小有効パルス幅 DREQ 端子入力の最小有効パルス幅について (MB91F353A/351A/352A/353A には 0,1,2 チャ ネルはありません。) .....................................483 サブクロック サブクロックからメインクロック切換え後の待ち 時間 ..................................................................102 サブクロック切換え ...............................................32 サブクロックを使用しない場合の注意に ついて ................................................................31 算術演算 算術演算 ...................................................................52 し シーケンス 自動アルゴリズムのコマンドシーケンス .........514 設定初期化リセット (INIT) 解除シーケンス ............................................................................93 転送シーケンスの選択 .........................................462 動作初期化リセット (RST) 解除シーケンス ............................................................................93 ジェネラルコントロールレジスタ ジェネラルコントロールレジスタ 10 の 構成 ..................................................................290 ジェネラルコントロールレジスタ 20 の 構成 ..................................................................292 システム構築例 システム構築例 ( モード 1 使用時 ) ...................372 自動アルゴリズム 自動アルゴリズム実行状態 .................................512 自動アルゴリズムのコマンドシーケンス .........514 フラッシュメモリ自動アルゴリズムの 概要 ..................................................................513 自動ウェイトタイミング 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B,AWR=2008H) ...........194 シフトクロック シフトクロック .....................................................383 シフト動作 シフト動作のスタート / ストップタイミングと 入出力のタイミング ......................................385 時分割入出力インタフェース 時分割入出力インタフェースの制御信号 .........177 594 シミュレータデバッガ シミュレータデバッガ .......................................... 42 周辺回路 周辺回路よりの転送停止要求の発生 ................ 478 周辺クロック 周辺クロック (CLKP) .......................................... 103 周辺停止制御 周辺停止制御のブロックダイヤグラム ............147 周辺停止制御のレジスタ一覧 ............................147 周辺停止制御のレジスタ詳細説明 .................... 148 周辺リソース メモリ空間領域と周辺リソースの各レジスタの 対応 .................................................................. 549 受信データ 受信データの例 ....................................................435 出力タイミング 同期ライトイネーブル出力タイミング (TYP3 ∼ TYP0=0000BB,AWR=0000H) ........196 出力端子 出力端子機能 ........................................................ 277 出力電圧 D/A コンバータの出力電圧の論理式 ................ 354 消去 フラッシュメモリ書込み / 消去の概要 ............. 524 フラッシュメモリのデータ消去 ( チップ消去 ) 方法 .................................................................. 528 消去一時停止 消去一時停止 ........................................................ 518 消去一時停止方法 フラッシュメモリのセクタ消去一時停止 方法 .................................................................. 531 消去再開方法 フラッシュメモリのセクタ消去再開方法 ........532 消去手順 セクタ消去手順 ....................................................529 条件 「START」条件 ......................................................429 「STOP」条件 .........................................................429 乗除算レジスタ 乗除算レジスタ (Multiply & Divide register) ........ 61 状態制御 デバイス状態制御の概要 .................................... 126 初期化 INIT 端子入力 ( 設定初期化リセット端子 ) ........ 91 設定初期化リセット (INIT) ................................... 90 設定初期化リセット (INIT) 解除シーケンス ............................................................................93 分周比設定の初期化 ............................................ 105 リセット ( デバイス初期化 ) の概要 .................... 89 初期値 PFR レジスタの初期値と機能 ............................226 初期値付き変数 初期値付き変数の配置 .......................................... 36 シリアル I/O シリアル I/O の動作状態 .....................................384 シリアル I/O の動作モード ................................. 376 シリアルアウトプットデータレジスタ シリアルインプットデータレジスタ (SIDR)/ シリアルアウトプットデータレジスタ (SODR) .............................................................362 索引 シリアルインプットデータレジスタ シリアルインプットデータレジスタ (SIDR)/ シリアルアウトプットデータレジスタ (SODR) .............................................................362 シリアルオンボード書込み 富士通標準シリアルオンボード書込みに使用する 端子 ..................................................................535 シリアル書込み接続 MB91F353A/F355A/F356B/F357B シリアル書込み 接続時の注意事項 ..........................................539 シリアル書込み接続例 .........................................536 シリアルコントロールレジスタ シリアルコントロールレジスタ (SCR) .............360 シリアルシフトデータレジスタ シリアルシフトデータレジスタ (SDR) .............381 シリアルステータスレジスタ シリアルステータスレジスタ (SSR) ..................363 シリアルモードコントロールステータスレジスタ シリアルモードコントロールステータスレジスタ (SMCS) .............................................................378 シリアルモードレジスタ シリアルモードレジスタ (SMR) ........................359 シングルチップモード バスモード 0 ( シングルチップモード ) ..............86 シングル変換モード シングル変換モード .............................................346 す 水晶発振回路 水晶発振回路について ...........................................30 推奨レジスタ 推奨レジスタ値 .....................................................344 スキャン変換モード スキャン変換モード .............................................346 スタート / ストップタイミング シフト動作のスタート / ストップタイミングと 入出力のタイミング ......................................385 スタック スタックのリトルエンディアン領域への 配置 ....................................................................38 割込みスタック .......................................................74 スタンバイ スタンバイからの復帰 .........................................320 スタンバイ制御レジスタ STCR: スタンバイ制御レジスタ ........................109 スタンバイモード スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................310 ステップ / ブロック転送 ステップ / ブロック転送 2 サイクル転送 .........464 ステップ / ブロック転送 2 サイクル転送 フライバイ転送 ..............................................465 ステップ転送 ステップ転送 .........................................................464 ステップトレーストラップ ステップトレーストラップの動作 .......................83 ストア ロードとストア .......................................................52 ストップ スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................310 ストップモード ストップモード ....................................................134 ストップモード復帰後の待ち時間 .................... 102 スリープ スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 310 スリープモード スリープモード ....................................................131 スリープモード中の DMA 転送の注意 ............. 480 スレーブアドレス スレーブアドレスとデータ転送の例 ................ 434 スレーブアドレスマスク .................................... 430 スレーブアドレス検出 スレーブアドレス検出 ........................................ 430 せ 制御信号 時分割入出力インタフェースの制御信号 ........177 通常バスインタフェースの制御信号 ................ 177 制御レジスタ 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に設 定 ) ....................................................................476 セクション セクション .............................................................. 39 セクション種別の制限 .......................................... 41 セクタ 複数のセクタを指定するときの注意 ................ 529 フラッシュメモリのセクタ消去一時停止 方法 .................................................................. 531 フラッシュメモリのセクタ消去再開方法 ........532 セクタアドレス フラッシュメモリのセクタアドレス表 ............504 セクタ指定 セクタ指定方法 ....................................................529 セクタ消去 セクタ消去 ............................................................ 517 セクタ消去手順 ....................................................529 接続例 外部との接続例 ....................................................182 シリアル書込み接続例 ........................................ 536 設定初期化 INIT 端子入力 ( 設定初期化リセット端子 ) ........ 91 設定初期化後の待ち時間 .................................... 101 設定初期化リセット (INIT) ................................... 90 設定初期化リセット (INIT) 解除シーケンス ............................................................................93 セットアップ CS → RD/WR セットアップ・RD/WR → CS ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) ..................................................198 CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH) ......... 204 セットタイミング 割込み発生およびフラグの セットタイミング .......................................... 369 全体構成 PPG タイマのブロックダイヤグラム ( 全体構成 ,1 チャネル分 ) ............................282 595 索引 全体制御レジスタ 全体制御レジスタ (DMACR) の ビット機能 ......................................................454 全チャネル 全チャネル動作許可 .............................................473 全チャネル動作禁止 .............................................477 専用プリスケーラ 専用プリスケーラコントロールレジスタ (CDCR) .............................................................381 そ ソースクロック ソースクロックの選択 ...........................................98 外 ROM 外バスモード バスモード 2 ( 外 ROM 外バスモード ) ...............86 外バス 外バスの設定 ...........................................................32 バスモード 1 ( 内 ROM 外バスモード ) ...............86 バスモード 2 ( 外 ROM 外バスモード ) ...............86 ソフトウェア要求 ソフトウェア要求 .................................................461 ソフトウェアリセット STCR:SRST ビット書込み ( ソフトウェアリセット ) ................................92 た 退避 退避・復帰の処理 .................................................334 タイマ 16 ビットタイマレジスタ (TMR) .......................274 16 ビットリロードタイマの概要 ........................269 16 ビットリロードタイマのレジスタ一覧 ........270 8/16 ビットアップダウンカウンタ / タイマ (ch0) のブロックダイヤグラム ..............................236 8/16 ビットアップダウンカウンタ / タイマ (ch1) のブロックダイヤグラム ..............................237 8/16 ビットアップダウンカウンタ / タイマの 概要 ..................................................................232 8/16 ビットアップダウンカウンタ / タイマの 特徴 ..................................................................233 8/16 ビットアップダウンカウンタ / タイマの レジスタ一覧 ..................................................234 PPG タイマの特長 ................................................280 PPG タイマのブロックダイヤグラム ( 全体構成 ,1 チャネル分 ) .............................282 PPG タイマのレジスタ一覧 ................................281 PPG タイマのレジスタの概要 ............................283 PPG タイマレジスタ (PTMR) の構成 .................289 各種タイマ .................................................................3 時計タイマ使用時の注意事項 .............................141 時計タイマの動作 .................................................140 時計タイマのブロックダイヤグラム .................136 時計タイマのレジスタ説明 .................................137 メイン発振安定待ちタイマ使用時の 注意事項 ..........................................................146 メイン発振安定待ちタイマのインターバル 時間 ..................................................................142 メイン発振安定待ちタイマの動作 .....................146 メイン発振安定待ちタイマの ブロックダイヤグラム ..................................142 596 メイン発振安定待ちタイマのレジスタ 説明 .................................................................. 143 タイマコントロールステータスレジスタ タイマコントロールステータスレジスタ (TCCS) .............................................................262 タイマデータレジスタ タイマデータレジスタ (TCDT) .......................... 262 タイマレジスタ 16 ビットタイマレジスタ (TMR) .......................274 タイミング 割込み発生タイミング ........................................ 251 16 ビットアウトプットコンペアの タイミング ......................................................402 DACK 端子出力のタイミングについて ............484 DEOP 端子出力のタイミングについて ............. 485 DMA による割込みクリアの発生 タイミング ......................................................475 DSTP 端子入力のタイミングについて ..............485 シフト動作のスタート / ストップタイミングと 入出力のタイミング ...................................... 385 同一チャネルで引き続き転送を行うための DREQ 端子入力のタイミングについて .................. 484 タイミングチャート 割込み要因とタイミングチャート .................... 296 タイムベースカウンタ タイムベースカウンタ ........................................ 122 タイムベースカウンタクリアレジスタ CTBR: タイムベースカウンタクリア レジスタ .......................................................... 113 タイムベースカウンタ制御レジスタ TBCR: タイムベースカウンタ制御 レジスタ .......................................................... 111 ダイレクトアドレッシング ダイレクトアドレッシング ..................................53 ダイレクトアドレッシング領域 .......................... 44 端子機能 端子機能一覧 .......................................................... 15 端子状態 各 CPU ステートにおける端子状態 ...................562 端子状態一覧表の用語説明 ................................561 端子配列図 MB91F353A/MB91351A/MB91352A/MB91353A 端子配列図 ........................................................14 MB91F355A/MB91F356B/MB91F357B/MB91354A/ MB91355A 端子配列図 ....................................13 ち 遅延スロット 遅延スロット付き動作の制限事項 ...................... 67 遅延スロット付き動作の動作説明 ...................... 66 遅延スロット付き動作の命令 ..............................66 遅延スロットなし動作の動作説明 ...................... 68 遅延スロットなし動作の命令 ..............................68 遅延設定 CS 遅延設定 (TYP3 ∼ TYP0=0000B,AWR=000CH) ..........197 遅延割込みモジュール 遅延割込みモジュールの概要 ............................324 遅延割込みモジュールの ブロックダイヤグラム ..................................325 遅延割込みモジュールのレジスタ一覧 ............325 索引 遅延割込みモジュールレジスタ DICR ( 遅延割込みモジュールレジスタ ) .........326 チップ消去 チップ消去 .............................................................516 フラッシュメモリのデータ消去 ( チップ消去 ) 方法 ..................................................................528 チャネル間優先順位 チャネル間優先順位 .............................................481 チャネルグループ チャネルグループ .................................................482 チャネル独立 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に設 定 ) ....................................................................476 注意事項 PS レジスタに関する注意事項 .............................34 デバッガ関連の注意事項 .......................................34 時計タイマ使用時の注意事項 .............................141 メイン発振安定待ちタイマ使用時の 注意事項 ..........................................................146 注意点 注意点 .....................................................................293 調歩同期 非同期 ( 調歩同期 ) モード ..................................367 つ 通常アクセス 通常アクセスおよびアドレス / データマルチ プレックスアクセス ......................................165 通常バスインタフェース 通常バスインタフェースの制御信号 .................177 通常リセット 通常リセット動作 ...................................................96 通信エラー エラーを発生しない通信エラー .........................432 て 低消費電力モード 低消費電力モード ...................................................33 逓倍率 PLL 逓倍率 .............................................................100 逓倍率変更後 PLL 逓倍率変更後の待ち時間 ............................101 データ RAM 制限コントロールレジスタ DRLR: データ RAM 制限コントロールレジスタ (D-bus RAM Limit control Register) ...............543 データ書込み データ書込み上の注意 .........................................526 フラッシュメモリのデータ書込み方法 .............526 データ消去 フラッシュメモリのデータ消去 ( チップ消去 ) 方法 ..................................................................528 データ転送 スレーブアドレスとデータ転送の例 .................434 データバス幅 ビッグエンディアンのデータバス幅 .................179 リトルエンディアンのデータバス幅 .................185 データフォーマット ビッグエンディアンのデータ フォーマット ..................................................178 リトルエンディアンのデータ フォーマット ..................................................184 データレジスタ データレジスタ (ADTHx,ADTLx) の概要 ......... 345 データレジスタ (IDAR) .......................................427 ポートデータレジスタ (PDR) ............................. 222 デバイス デバイス状態 ........................................................ 127 デバイス状態制御の概要 .................................... 126 デバイスの動作状態 ............................................ 128 リセット ( デバイス初期化 ) の概要 .................... 89 デバッガ デバッガ関連の注意事項 ...................................... 34 デマンド デマンド転送要求の停止時の DREQ 端子入力の ネゲートタイミングについて ...................... 483 デマンド転送 デマンド転送 2 サイクル転送 ............................463 デマンド転送の動作フロー ................................489 デマンド転送フライバイ転送 ............................464 電源端子 電源端子について ..................................................30 電源投入 電源投入後の待ち時間 ........................................ 101 電源投入時について .............................................. 31 電源投入時の原振入力について .......................... 31 転送アドレス 転送アドレス ........................................................ 458 転送回数 転送回数と転送終了 ............................................ 458 転送回数レジスタ 転送回数レジスタとリロード動作 .................... 470 転送起動 転送起動 ................................................................ 473 転送シーケンス 転送シーケンスの選択 ........................................ 462 転送終了 転送回数と転送終了 ............................................ 458 転送終了 ................................................................ 477 転送タイプ 転送タイプ ............................................................ 457 転送停止要求 周辺回路よりの転送停止要求の発生 ................ 478 転送モード 転送モード ............................................................ 457 転送元 / 転送先アドレス設定レジスタ 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/ DMADA0 ∼ DMADA4) のビット機能 ........452 転送要求 外部ホールド中の DMA 転送要求 .....................472 デマンド転送要求の停止時の DREQ 端子入力の ネゲートタイミングについて ...................... 483 転送要求の受付けと転送 .................................... 474 ブロック転送中にほかの転送要求が発生した場合 について .......................................................... 485 と 同期ライトイネーブル出力タイミング 同期ライトイネーブル出力タイミング (TYP3 ∼ TYP0=0000B,AWR=0000H) ........... 196 597 索引 同期リセット 同期リセット動作 ...................................................97 動作初期化 動作初期化リセット (RST) ....................................90 動作初期化リセット (RST) 解除シーケンス .......93 動作フロー デマンド転送の動作フロー .................................489 バースト転送の動作フロー .................................488 ブロック転送の動作フロー .................................487 動作モード UART の動作モード .............................................366 シリアル I/O の動作モード .................................376 動作モードの概要 ...................................................85 同時発生 DMA 転送要求と外部ホールド要求の 同時発生 ..........................................................472 時計タイマ 時計タイマ使用時の注意事項 .............................141 時計タイマの動作 .................................................140 時計タイマのブロックダイヤグラム .................136 時計タイマのレジスタ説明 .................................137 時計割込み 時計割込み .............................................................139 トラップ コプロセッサエラートラップ ...............................84 コプロセッサ不在トラップ ...................................84 取下げ要求 ホールドリクエスト取下げ要求 (Hold Request Cancel Request) ........................309 ホールドリクエスト取下げ要求機能 (HRCR) の 使用例 ..............................................................310 な 内蔵 RAM 内蔵 RAM .................................................................33 内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 ) アクセス制限機能の動作 ..............................545 内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 ) アクセス制限機能のブロックダイヤグラム ..........................................................................542 内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 ) アクセス制限機能レジスタ一覧 ..................542 内蔵周辺要求 内蔵周辺要求 .........................................................460 内蔵メモリ 内蔵メモリ .................................................................3 内部 RAM 2 サイクル転送 ( 内部 RAM →外部 I/O,RAM, 外部 I/O,RAM →内部 RAM もタイミングは同 じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=00H) ......................................................212 内部アーキテクチャ 内部アーキテクチャの概要 ...................................47 内部アーキテクチャの構造 ...................................49 内部アーキテクチャの特長 ...................................48 内部動作 内部動作クロックの生成 .......................................98 598 に 入出力 シフト動作のスタート / ストップタイミングと 入出力のタイミング ...................................... 385 入出力回路形式 入出力回路形式 ......................................................26 入出力ポート プルアップ抵抗付き入出力ポート .................... 220 入力タイミング 16 ビットインプットキャプチャの 入力タイミング .............................................. 394 DREQx 端子の入力タイミング .......................... 494 ね ネゲートタイミング デマンド転送要求の停止時の DREQ 端子入力の ネゲートタイミングについて ...................... 483 は バースト バースト長設定とプリフェッチ効率 ................ 207 バースト 2 サイクル転送 バースト 2 サイクル転送 .................................... 462 バースト転送 バースト転送の動作フロー ................................488 バーストフライバイ転送 バーストフライバイ転送 .................................... 463 ハードウェア構成 DMAC のハードウェア構成 ............................... 438 割込みコントローラのハードウェア構成 ........300 ハードウェアシーケンスフラグ ハードウェアシーケンスフラグ ........................ 519 ハーバード ハーバード←→プリンストン バスコンバータ ................................................ 51 ハーフワードアクセス ハーフワードアクセス ........................................ 188 バイトアクセス バイトアクセス ....................................................189 バイトオーダリング バイトオーダリング .............................................. 62 バスアクセス 外部バスアクセス ................................................180 バスインタフェース I2C バスインタフェース (400kbps 対応 ) ............... 4 外部バスインタフェースの設定手順 ................ 217 外部バスインタフェースの特長 ........................ 152 外部バスインタフェースの ブロックダイヤグラム ..................................154 外部バスインタフェースのレジスタ一覧 ........155 外部バスインタフェースのレジスタ概要 ........156 通常バスインタフェースの制御信号 ................ 177 バスインタフェース ................................................ 2 バスエラー バスエラー ............................................................ 431 バスクロック 外部バスクロック (CLKT) ..................................104 バス権開放 バス権開放 ............................................................ 215 索引 バス権獲得 バス権獲得 .............................................................216 バスコントロールレジスタ バスコントロールレジスタ (IBCR) ....................414 バスコンバータ 32 ビット←→ 16 ビットバスコンバータ ............50 ハーバード←→プリンストン バスコンバータ ................................................51 バスステータスレジスタ バスステータスレジスタ (IBSR) ........................411 バスモード バスモード ...............................................................85 バスモード 0 ( シングルチップモード ) ..............86 バスモード 1 ( 内 ROM 外バスモード ) ...............86 バスモード 2 ( 外 ROM 外バスモード ) ...............86 発振安定待ち 発振安定待ち時間の選択 .......................................95 発振安定待ち発生要因 ...........................................94 メイン発振安定待ちタイマ使用時の 注意事項 ..........................................................146 メイン発振安定待ちタイマのインターバル 時間 ..................................................................142 メイン発振安定待ちタイマの動作 .....................146 メイン発振安定待ちタイマの ブロックダイヤグラム ..................................142 メイン発振安定待ちタイマのレジスタ 説明 ..................................................................143 メイン発振安定待ち割込み .................................145 発振安定待ち時間 発振安定待ち時間の選択 .......................................95 発振制御レジスタ OSCCR: 発振制御レジスタ .................................121 発生タイミング DMA による割込みクリアの発生 タイミング ......................................................475 パルス幅 DREQ 端子入力の最小有効パルス幅について (MB91F353A/351A/352A/353A には 0,1,2 チャ ネルはありません。) .....................................483 汎用レジスタ 汎用レジスタ ...........................................................55 ひ ビッグエンディアン ビッグエンディアンのデータバス幅 .................179 ビッグエンディアンのデータ フォーマット ..................................................178 ビットオーダリング ビットオーダリング ...............................................62 ビット構成 ICR ビット構成 .......................................................72 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................305 割込み許可レジスタ (ENIRn: ENable Interrupt Request Register) のビット構成 .....................317 割込み制御レジスタ (ICR) のビット構成 .........304 ビットサーチモジュール ビットサーチモジュール .......................................32 ビットサーチモジュール (REALOS 使用 ) ...........3 ビットサーチモジュールの概要 .........................328 ビットサーチモジュールの ブロックダイヤグラム ..................................329 ビットサーチモジュールのレジスタ一覧 ........329 ビット操作 論理演算とビット操作 .......................................... 52 非同期 非同期 ( 調歩同期 ) モード ..................................367 ふ フォーマット ビッグエンディアンのデータ フォーマット ..................................................178 命令フォーマット ................................................569 リトルエンディアンのデータ フォーマット ..................................................184 複数 複数のセクタを指定するときの注意 ................ 529 不在 コプロセッサ不在トラップ ..................................84 富士通標準 富士通標準シリアルオンボード書込みに使用する 端子 .................................................................. 535 復帰 EIT からの復帰 ....................................................... 69 スタンバイからの復帰 ........................................ 320 スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 310 退避・復帰の処理 ................................................334 フライバイ転送 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................209 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................199 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................210 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................200 ステップ / ブロック転送 2 サイクル転送 フライバイ転送 .............................................. 465 デマンド転送フライバイ転送 ............................464 フライバイ転送時 フライバイ転送時のデータの動作 .................... 492 フラグ I フラグ .................................................................... 70 割込み発生およびフラグの セットタイミング .......................................... 369 フラッシュコントロール / ステータスレジスタ フラッシュコントロール / ステータスレジスタ (CPU モード ): FLCR のレジスタ構成 ........507 フラッシュマイコンプログラマシステム フラッシュマイコンプログラマシステム 構成 .................................................................. 538 フラッシュメモリ フラッシュメモリ ..................................................33 フラッシュメモリ書込み / 消去の概要 ............. 524 フラッシュメモリ書込み手順 ............................526 フラッシュメモリのアクセスモード ................ 511 599 索引 フラッシュメモリの概要 .....................................500 フラッシュメモリのセクタアドレス表 .............504 フラッシュメモリのセクタ消去一時停止 方法 ..................................................................531 フラッシュメモリのセクタ消去再開方法 .........532 フラッシュメモリのデータ書込み方法 .............526 フラッシュメモリのデータ消去 ( チップ消去 ) 方法 ..................................................................528 フラッシュメモリの ブロックダイヤグラム ..................................501 フラッシュメモリのメモリマップ .....................502 フラッシュメモリの読出し / リセット 方法 ..................................................................525 フラッシュメモリのレジスタ概要 .....................506 フラッシュメモリ自動アルゴリズム フラッシュメモリ自動アルゴリズムの 概要 ..................................................................513 フリーランタイマ 16 ビットフリーランタイマの概要 ....................260 16 ビットフリーランタイマの カウンタクリア ..............................................266 16 ビットフリーランタイマの カウントタイミング ......................................268 16 ビットフリーランタイマの クリアタイミング ..........................................267 16 ビットフリーランタイマの ブロックダイヤグラム ..................................261 16 ビットフリーランタイマの レジスタ一覧 ..................................................261 プリフェッチ バースト長設定とプリフェッチ効率 .................207 プリフェッチ ...........................................................33 プリフェッチ許可領域に対する制限事項 .........208 プリフェッチによる外部アクセスを開始する 基本条件 ..........................................................205 プリフェッチアクセス 1 回のプリフェッチアクセス動作の単位 ..........206 プリフェッチアクセスの一時停止と 任意クリア ......................................................206 プリフェッチ効率 バースト長設定とプリフェッチ効率 .................207 プリフェッチバッファ プリフェッチバッファからの読込み .................207 プリフェッチバッファのクリア , 更新 ..............208 プリンストン ハーバード←→プリンストン バスコンバータ ................................................51 プルアップコントロール プルアップコントロール .......................................32 プルアップ抵抗 プルアップ抵抗付き入出力ポート .....................220 プルアップ抵抗レジスタ プルアップ抵抗レジスタ (PCR) .........................224 プログラミングモード FR-CPU プログラミングモード (16 ビット , リード / ライト可能 ) ...............511 プログラミングモデル 基本プログラミングモデル ...................................54 プログラム プログラム ( 書込み ) ...........................................516 ブロック ブロックサイズ .....................................................466 600 ブロックダイヤグラム 16 ビットフリーランタイマの ブロックダイヤグラム ..................................261 16 ビットリロードタイマの ブロックダイヤグラム ..................................271 8/16 ビットアップダウンカウンタ / タイマ (ch0) のブロックダイヤグラム ..............................236 8/16 ビットアップダウンカウンタ / タイマ (ch1) のブロックダイヤグラム ..............................237 8 ビット D/A コンバータの ブロックダイヤグラム ..................................351 A/D コンバータのブロックダイヤグラム ........337 DMAC のブロックダイヤグラム .......................440 I2C インタフェースの ブロックダイヤグラム ..................................409 MB91F353A/353A/352A/351A の ブロックダイヤグラム ......................................7 MB91F356B/F357B/F355A/355A/354A の ブロックダイヤグラム ......................................9 PPG タイマのブロックダイヤグラム ( 全体構成 ,1 チャネル分 ) ............................282 UART のブロックダイヤグラム ........................ 358 U-TIMER のブロックダイヤグラム ...................253 アウトプットコンペアの ブロックダイヤグラム ..................................397 インプットキャプチャの ブロックダイヤグラム ..................................391 外部バスインタフェースの ブロックダイヤグラム ..................................154 外部割込み・NMI 制御部の ブロックダイヤグラム ..................................315 拡張 I/O シリアルインタフェース (SIO) の ブロックダイヤグラム ..................................377 クロック生成制御部の ブロックダイヤグラム ..................................106 周辺停止制御のブロックダイヤグラム ............147 遅延割込みモジュールの ブロックダイヤグラム ..................................325 時計タイマのブロックダイヤグラム ................ 136 ビットサーチモジュールの ブロックダイヤグラム ..................................329 フラッシュメモリの ブロックダイヤグラム ..................................501 ポート基本ブロックダイヤグラム .................... 220 メイン発振安定待ちタイマの ブロックダイヤグラム ..................................142 割込みコントローラの ブロックダイヤグラム ..................................302 ブロック転送 ブロック転送 ........................................................ 465 ブロック転送の動作フロー ................................487 ブロック転送中 ブロック転送中にほかの転送要求が発生した場合 について .......................................................... 485 分岐 分岐 ..........................................................................52 分岐命令 分岐命令の概要 ......................................................65 分周比 分周比設定の初期化 ............................................ 105 分周比の設定 ........................................................ 105 索引 へ ベクタテーブル EIT ベクタテーブル ...............................................76 変化点検出 変化点検出 .............................................................333 変化点検出用データレジスタ 変化点検出用データレジスタ (BSDC) ..............331 変換時間設定レジスタ 変換時間設定レジスタ (ADCT) のレジスタ 構成 ..................................................................343 変換モード シングル変換モード .............................................346 スキャン変換モード .............................................346 変数 初期値付き変数の配置 ...........................................36 ほ ポート I/O ポートアクセス ................................................33 兼用ポートの機能切換え .......................................33 プルアップ抵抗付き入出力ポート .....................220 ポート基本ブロックダイヤグラム .....................220 ポート機能レジスタ ポート機能レジスタ (PFR) ..................................225 ポートデータレジスタ ポートデータレジスタ (PDR) .............................222 ポート方向レジスタ ポート方向レジスタ (DDR) ................................223 ホールド設定 CS → RD/WR セットアップ・RD/WR → CS ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH) ..................................................198 ホールド要求 DMA 転送中の外部ホールド要求 ......................472 DMA 転送要求と外部ホールド要求の 同時発生 ..........................................................472 ホールド抑止 NMI/ ホールド抑止レベル割込み処理中 ...........476 ホールドリクエスト取下げ要求 ホールドリクエスト取下げ要求 (Hold Request Cancel Request) ........................309 ホールドリクエスト取下げ要求機能 (HRCR) の 使用例 ..............................................................310 ホールドリクエスト取下げ要求レジスタ ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................305 ボーレート ボーレートと U-TIMER のリロード値の 設定例 ..............................................................374 ボーレートの計算 .................................................257 ま マスク スレーブアドレスマスク .....................................430 マスタアドレッシング マスタアドレッシング .........................................431 待ち時間 PLL 逓倍率変更後の待ち時間 ............................101 PLL 動作許可後の待ち時間 ................................101 サブクロックからメインクロック切換え後の待ち 時間 .................................................................. 102 ストップモード復帰後の待ち時間 .................... 102 設定初期化後の待ち時間 .................................... 101 電源投入後の待ち時間 ........................................ 101 マッピング ICR マッピング ....................................................... 72 み 未使用入力端子 未使用入力端子の処理について .......................... 30 未定義命令 未定義命令例外の動作 .......................................... 83 め 命令 INTE 命令の動作 ....................................................82 INT 命令の動作 ....................................................... 82 RETI 命令の動作 ....................................................84 その他の命令概要 ..................................................53 遅延スロット付き動作の命令 ..............................66 遅延スロットなし動作の命令 ..............................68 内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 ) アクセス制限機能の動作 ..............................545 内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 ) アクセス制限機能のブロックダイヤグラム ..........................................................................542 内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 ) アクセス制限機能レジスタ一覧 .................. 542 分岐命令の概要 ......................................................65 未定義命令例外の動作 .......................................... 83 命令一覧表の読み方 ............................................ 567 命令フォーマット ................................................569 命令 RAM 制限コントロールレジスタ FRLR: 命令 RAM 制限コントロールレジスタ (F-Bus RAM Limit control Register) ............... 544 メインクロック サブクロックからメインクロック切換え後の待ち 時間 .................................................................. 102 メイン発振安定待ち メイン発振安定待ち割込み ................................145 メイン発振安定待ちタイマ メイン発振安定待ちタイマ使用時の 注意事項 .......................................................... 146 メイン発振安定待ちタイマのインターバル 時間 .................................................................. 142 メイン発振安定待ちタイマの動作 .................... 146 メイン発振安定待ちタイマの ブロックダイヤグラム ..................................142 メイン発振安定待ちタイマのレジスタ 説明 .................................................................. 143 メモリ D-bus メモリ ............................................................ 32 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................209 DMA フライバイ転送 (I/O →メモリ ) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................199 601 索引 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=41H) ......................................................210 DMA フライバイ転送 ( メモリ→ I/O) (TYP3 ∼ TYP0=0000B,AWR=0008H, IOWR=51H) ......................................................200 外部 I/O −外部メモリ間の転送について .........485 内蔵メモリ .................................................................3 フラッシュメモリ ...................................................33 フラッシュメモリ書込み / 消去の概要 .............524 フラッシュメモリ書込み手順 .............................526 フラッシュメモリ自動アルゴリズムの 概要 ..................................................................513 フラッシュメモリのアクセスモード .................511 フラッシュメモリの概要 .....................................500 フラッシュメモリのセクタアドレス表 .............504 フラッシュメモリのセクタ消去一時停止 方法 ..................................................................531 フラッシュメモリのセクタ消去再開方法 .........532 フラッシュメモリのデータ書込み方法 .............526 フラッシュメモリのデータ消去 ( チップ消去 ) 方法 ..................................................................528 フラッシュメモリの ブロックダイヤグラム ..................................501 フラッシュメモリのメモリマップ .....................502 フラッシュメモリの読出し / リセット 方法 ..................................................................525 フラッシュメモリのレジスタ概要 .....................506 メモリ空間領域と周辺リソースの各レジスタの 対応 ..................................................................549 メモリマップ フラッシュメモリのメモリマップ .....................502 メモリマップ .....................................................44, 64 も モード CLK 同期モード ....................................................368 DACK の FR30 互換モード .................................496 FR-CPU ROM モード (32 ビット , リードのみ ) ...............................511 UART の動作モード .............................................366 アクセスモード .......................................................85 アドレッシングモードの記号 .............................568 カウントモード選択 .............................................244 システム構築例 ( モード 1 使用時 ) ...................372 シングル変換モード .............................................346 スキャン変換モード .............................................346 スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................310 ストップモード .....................................................134 ストップモード復帰後の待ち時間 .....................102 スリープモード .....................................................131 バスモード 2 ( 外 ROM 外バスモード ) ...............86 低消費電力モード ...................................................33 転送モード .............................................................457 動作モードの概要 ...................................................85 バスモード ...............................................................85 バスモード 0 ( シングルチップモード ) ..............86 バスモード 1 ( 内 ROM 外バスモード ) ...............86 非同期 ( 調歩同期 ) モード ..................................367 602 フラッシュコントロール / ステータスレジスタ (CPU モード ): FLCR のレジスタ構成 ........507 フラッシュメモリのアクセスモード ................ 511 モード端子 モード端子 .............................................................. 87 モード端子 (MD0 ∼ MD2) について ................... 31 モードレジスタ モードレジスタ (MODR) .......................................87 文字列操作関数 文字列操作関数使用時の -K lib オプションの 指定 .................................................................... 38 文字列操作関数を使った文字型配列以外の 操作 .................................................................... 37 モニタデバッガ エミュレータデバッガ , モニタデバッガ ........... 42 ゆ ユーザ ユーザ割込み・NMI の動作 ..................................81 優先順位判定 優先順位判定 ........................................................ 306 優先度 EIT 要因受理の優先度 ...........................................79 よ 要因 EIT 要因 ................................................................... 69 ら ライト→ライトタイミング ライト→ライトタイミング (TYP3 ∼ TYP0=0000B,AWR=0018H) ........... 193 ラッチアップ ラッチアップ防止のために ..................................30 り リード→ライトタイミング リード→ライトタイミング (TYP3 ∼ TYP0=0000B,AWR=0048H) ........... 192 リセット INIT 端子入力 ( 設定初期化リセット端子 ) ........ 91 RSRR: リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ...................................... 107 STCR:SRST ビット書込み ( ソフトウェアリセット ) ............................... 92 ウォッチドッグリセット ...................................... 92 設定初期化リセット (INIT) ................................... 90 設定初期化リセット (INIT) 解除シーケンス ............................................................................93 通常リセット動作 ..................................................96 同期リセット動作 ..................................................97 動作初期化リセット (RST) ................................... 90 動作初期化リセット (RST) 解除シーケンス ............................................................................93 フラッシュメモリの読出し / リセット 方法 .................................................................. 525 リセット ( デバイス初期化 ) の概要 .................... 89 索引 リセットコマンド リード ( 読出し )/ リセットコマンド .................516 リセット要因 RSRR: リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ......................................107 リソース メモリ空間領域と周辺リソースの各レジスタの 対応 ..................................................................549 リトルエンディアン スタックのリトルエンディアン領域への 配置 ....................................................................38 リトルエンディアンの概要 .................................183 リトルエンディアンのデータバス幅 .................185 リトルエンディアンのデータ フォーマット ..................................................184 リロード 転送回数レジスタとリロード動作 .....................470 リロード / コンペア機能 .....................................246 リロード / コンペア機能起動時の , 任意幅での アップ / ダウンカウント ...............................247 リロード動作 .........................................................466 リロードタイマ 16 ビットリロードタイマの概要 ........................269 16 ビットリロードタイマの ブロックダイヤグラム ..................................271 16 ビットリロードタイマのレジスタ一覧 ........270 リロード値 ボーレートと U-TIMER のリロード値の 設定例 ..............................................................374 リロードレジスタ リロードレジスタ (UTIMR) ................................254 れ 例外 未定義命令例外の動作 ...........................................83 レジスタ 0 検出用データレジスタ (BSD0) ........................330 10 ビットスレーブアドレスマスクレジスタ (ITMK) .............................................................423 10 ビットスレーブアドレスレジスタ (ITBA) ..............................................................422 16 ビットタイマレジスタ (TMR) .......................274 16 ビットフリーランタイマの レジスタ一覧 ..................................................261 16 ビットリロードレジスタ (TMRLR) ..............274 1 検出用データレジスタ (BSD1) ........................330 7 ビットスレーブアドレスマスクレジスタ (ISMK) ..............................................................426 7 ビットスレーブアドレスレジスタ (ISBA) ...............................................................425 8/16 ビットアップダウンカウンタ / タイマの レジスタ一覧 ..................................................234 8 ビット D/A コンバータのレジスタ一覧 .........350 A/D コンバータのレジスタ一覧 .........................336 A/D コンバータのレジスタの概要 .....................338 ACR0 ∼ ACR7 (Area Configuration Register) の レジスタ構成 ..................................................158 ASR0 ∼ ASR3 (Area Select Register) のレジスタ 構成 ..................................................................157 AWR0 ∼ AWR7(Area Wait Register) のレジスタ 構成 ..................................................................164 CLKR: クロックソース制御レジスタ ................ 114 CSER (Chip Select Enable register) のレジスタ 構成 .................................................................. 172 CTBR: タイムベースカウンタクリア レジスタ .......................................................... 113 D/A コントロールレジスタ 0 (DACR0) ............. 353 D/A コントロールレジスタ 1 (DACR1) ............. 353 D/A コントロールレジスタ 2 (DACR2) ............. 353 D/A データレジスタ 0 (DADR0) ........................ 352 D/A データレジスタ 1 (DADR1) ........................ 352 D/A データレジスタ 2 (DADR2) ........................ 352 DICR ( 遅延割込みモジュールレジスタ ) ......... 326 DIVR0: 基本クロック分周設定レジスタ 0 ....... 118 DIVR1: 基本クロック分周設定レジスタ 1 ....... 119 DMAC のレジスタ概要 .......................................439 DMAC 割込み要因クリアレジスタ (SRCL) ..........................................................................382 DRCL レジスタ (DRCL) ...................................... 365 DRLR: データ RAM 制限コントロールレジスタ (D-bus RAM Limit control Register) ............... 543 FRLR: 命令 RAM 制限コントロールレジスタ (F-Bus RAM Limit control Register) ............... 544 I2C インタフェースのレジスタ一覧 .................. 407 I2C インタフェースのレジスタ概要 .................. 410 IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) の レジスタ構成 ..................................................170 OSCCR: 発振制御レジスタ ................................. 121 PFR レジスタの初期値と機能 ............................226 PPG 周期設定レジスタ (PCSR) の構成 ..............287 PPG タイマのレジスタ一覧 ................................281 PPG タイマのレジスタの概要 ............................283 PPG タイマレジスタ (PTMR) の構成 ................ 289 PPG デューティ設定レジスタ (PDUT) の 構成 .................................................................. 288 PS レジスタに関する注意事項 ............................. 34 RSRR: リセット要因レジスタ / ウォッチドッグ タイマ制御レジスタ ...................................... 107 SIO テストレジスタ (SES) ..................................381 STCR: スタンバイ制御レジスタ ........................ 109 TBCR: タイムベースカウンタ制御 レジスタ .......................................................... 111 TCR (Terminal and timing Control Register) の レジスタ構成 ..................................................173 UART のレジスタ一覧 ........................................ 357 U-TIMER コントロールレジスタ (UTIMC) ..........................................................................255 U-TIMER のレジスタ一覧 ................................... 253 U-TIMER レジスタ (UTIM) ................................. 254 WPR: ウォッチドッグリセット発生延期 レジスタ .......................................................... 117 アウトプットコントロールレジスタ (OCS0 ∼ 7) ......................................................398 アウトプットコンペアのレジスタ一覧 ............396 アドレスレジスタ指定 ........................................ 468 インプットキャプチャコントロールレジスタ (ICS01,ICS23) ..................................................392 インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) .............................................392 インプットキャプチャのレジスタ一覧 ............390 ウェイトレジスタ :FLWC のレジスタ構成 ..........................................................................509 外部バスインタフェースのレジスタ一覧 ........155 外部バスインタフェースのレジスタ概要 ........156 603 索引 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) のビット構成 .....................318 外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register) のビット構成 .........319 外部割込み・NMI 制御部のレジスタ一覧 ........314 外部割込み・NMI 制御部のレジスタ詳細 ........316 拡張 I/O シリアルインタフェース (SIO) の レジスタ一覧 ..................................................376 クロックコントロールレジスタ (ICCR) ............420 クロックディセーブルレジスタ (IDBL) ............428 検出結果レジスタ (BSRR) ...................................331 コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) のビット機能 .......447 コントロールステータスレジスタ (TMCSR) ..........................................................272 コントロールステータスレジスタの構成 .........284 コントロール・ステータスレジスタ (ADCS1) の レジスタ構成 ..................................................339 コントロール・ステータスレジスタ (ADCS2) の レジスタ構成 ..................................................341 コンペアレジスタ (OCCP0 ∼ OCCP7) ..............398 ジェネラルコントロールレジスタ 10 の 構成 ..................................................................290 ジェネラルコントロールレジスタ 20 の 構成 ..................................................................292 周辺停止制御のレジスタ一覧 .............................147 周辺停止制御のレジスタ詳細説明 .....................148 乗除算レジスタ (Multiply & Divide register) ........61 シリアルインプットデータレジスタ (SIDR)/ シリアルアウトプットデータレジスタ (SODR) .............................................................362 シリアルコントロールレジスタ (SCR) .............360 シリアルシフトデータレジスタ (SDR) .............381 シリアルステータスレジスタ (SSR) ..................363 シリアルモードコントロールステータスレジスタ (SMCS) .............................................................378 シリアルモードレジスタ (SMR) ........................359 推奨レジスタ値 .....................................................344 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に設 定 ) ....................................................................476 全体制御レジスタ (DMACR) の ビット機能 ......................................................454 専用プリスケーラコントロールレジスタ (CDCR) .............................................................381 タイマコントロールステータスレジスタ (TCCS) ..............................................................262 タイマデータレジスタ (TCDT) ..........................262 遅延割込みモジュールのレジスタ一覧 .............325 データレジスタ (IDAR) .......................................427 データレジスタ (ADTHx,ADTLx) の概要 .........345 転送回数レジスタとリロード動作 .....................470 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/ DMADA0 ∼ DMADA4) のビット機能 ........452 時計タイマのレジスタ説明 .................................137 内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 ) アクセス制限機能レジスタ一覧 ..................542 バスコントロールレジスタ (IBCR) ....................414 バスステータスレジスタ (IBSR) ........................411 汎用レジスタ ...........................................................55 ビットサーチモジュールのレジスタ一覧 .........329 604 フラッシュコントロール / ステータスレジスタ (CPU モード ): FLCR のレジスタ構成 ........507 フラッシュメモリのレジスタ概要 .................... 506 プルアップ抵抗レジスタ (PCR) .........................224 変化点検出用データレジスタ (BSDC) ..............331 変換時間設定レジスタ (ADCT) のレジスタ 構成 .................................................................. 343 ポート機能レジスタ (PFR) ..................................225 ポートデータレジスタ (PDR) ............................. 222 ポート方向レジスタ (DDR) ................................223 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成 ..................................................305 メイン発振安定待ちタイマのレジスタ 説明 .................................................................. 143 メモリ空間領域と周辺リソースの各レジスタの 対応 .................................................................. 549 モードレジスタ (MODR) .......................................87 リロードレジスタ (UTIMR) ................................254 レジスタ設定時の注意 ........................................ 441 割込み許可レジスタ (ENIRn: ENable Interrupt Request Register) のビット構成 .....................317 割込みコントローラのレジスタ一覧 ................ 301 割込みコントローラのレジスタ詳細 ................ 303 割込み制御レジスタ (ICR) のビット構成 ......... 304 16 ビットリロードタイマのレジスタ一覧 ....... 270 CCR (Condition Code Register) ............................... 57 SCR (System Condition code Register) .................... 58 TBR (Table Base Register) .................................59, 75 レジスタ一覧 16 ビットフリーランタイマの レジスタ一覧 ..................................................261 8/16 ビットアップダウンカウンタ / タイマの レジスタ一覧 ..................................................234 8 ビット D/A コンバータのレジスタ一覧 ........350 A/D コンバータのレジスタ一覧 ........................ 336 I2C インタフェースのレジスタ一覧 .................. 407 PPG タイマのレジスタ一覧 ................................281 UART のレジスタ一覧 ........................................ 357 U-TIMER のレジスタ一覧 ................................... 253 アウトプットコンペアのレジスタ一覧 ............396 インプットキャプチャのレジスタ一覧 ............390 外部バスインタフェースのレジスタ一覧 ........155 外部割込み・NMI 制御部のレジスタ一覧 ........314 拡張 I/O シリアルインタフェース (SIO) の レジスタ一覧 ..................................................376 周辺停止制御のレジスタ一覧 ............................147 遅延割込みモジュールのレジスタ一覧 ............325 内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 ) アクセス制限機能レジスタ一覧 .................. 542 ビットサーチモジュールのレジスタ一覧 ........329 割込みコントローラのレジスタ一覧 ................ 301 16 ビットリロードタイマのレジスタ一覧 ....... 270 レディ / ビジー信号 レディ / ビジー信号 (RDY/BUSY) .....................519 レベルマスク 割込み・NMI に対するレベルマスク .................. 71 ろ ロード ロードとストア ......................................................52 索引 論理演算 論理演算とビット操作 ...........................................52 論理式 D/A コンバータの出力電圧の論理式 .................354 わ ワードアクセス ワードアクセス .....................................................187 ワードアライメント ワードアライメント ...............................................63 割込み DICR ( 遅延割込みモジュールレジスタ ) .........326 DMAC 割込み制御が出力できる割込み ............479 DMAC 割込み要因クリアレジスタ (SRCL) ..........................................................................382 DMA 転送と割込み ..............................................471 DMA による割込みクリアの発生 タイミング ......................................................475 EIT の割込みレベル ...............................................70 NMI/ ホールド抑止レベル割込み処理中 ...........476 外部割込みの動作 .................................................320 外部割込みの動作手順 .........................................320 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) のビット構成 .....................318 外部割込み要求レベル .........................................321 外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register) のビット構成 .........319 外部割込み・NMI 制御部の ブロックダイヤグラム ..................................315 外部割込み・NMI 制御部のレジスタ一覧 ........314 外部割込み・NMI 制御部のレジスタ詳細 ........316 遅延割込みモジュールの概要 .............................324 遅延割込みモジュールの ブロックダイヤグラム ..................................325 遅延割込みモジュールのレジスタ一覧 .............325 時計割込み .............................................................139 メイン発振安定待ち割込み .................................145 ユーザ割込み・NMI の動作 ..................................81 割込み機能 .............................................................388 割込み処理 ............................................................ 436 割込みスタック ......................................................74 割込み発生タイミング ........................................ 251 割込み番号 ............................................................ 327 割込みベクタ ........................................................ 559 割込み要因とタイミングチャート .................... 296 割込み・NMI に対するレベルマスク .................. 71 割込み許可レジスタ 割込み許可レジスタ (ENIRn: ENable Interrupt Request Register) のビット構成 .....................317 割込みコントローラ 割込みコントローラ ................................................ 4 割込みコントローラの主要機能 ........................ 300 割込みコントローラのハードウェア構成 ........300 割込みコントローラの ブロックダイヤグラム ..................................302 割込みコントローラのレジスタ一覧 ................ 301 割込みコントローラのレジスタ詳細 ................ 303 割込み制御 DMAC 割込み制御が出力できる割込み ........... 479 割込み制御レジスタ 割込み制御レジスタ (ICR) のビット構成 ......... 304 割込み発生およびフラグ 割込み発生およびフラグの セットタイミング .......................................... 369 割込みベクタ 割込みベクタ ........................................................ 559 割込み要因 DMAC 割込み要因クリアレジスタ (SRCL) ..........................................................................382 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) のビット構成 .....................318 割込み要因とタイミングチャート .................... 296 割込み要求 外部割込み要求レベル ........................................ 321 外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register) のビット構成 ......... 319 割込みレベル EIT の割込みレベル ...............................................70 605 索引 606 CM71-10121-3 富士通半導体デバイス • CONTROLLER MANUAL FR60 32 ビット・マイクロコントローラ MB91350A Series ハードウェアマニュアル 2007 年 11 月 第 3 版発行 発行 富士通株式会社 編集 マーケティング統括部 販売戦略部 電子デバイス事業本部