8.8MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通半導体デバイス
CONTROLLER MANUAL
CM71-10127-2
FR60Lite
32 ビット・マイクロコントローラ
MB91260B Series
ハードウェアマニュアル
FR60Lite
32 ビット・マイクロコントローラ
MB91260B Series
ハードウェアマニュアル
開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。
『Check Sheet』は , 下記サポートページに掲載されています。
URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html
『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目を
リストにしたものです。
富士通株式会社
はじめに
■ 本書の目的と対象読者
富士通半導体製品につきまして , 平素より格別のご愛顧を賜り厚くお礼申し上げます。
FR ファミリは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理が要求
される組込み制御用に各種 I/O リソースを内蔵したマイクロコントローラです。
DVD プレーヤ , プリンタ , TV, PDP 制御用等 , 高性能な CPU 処理パワーを要求される
組込み用途に最適な仕様となっています。
本品種は , CPU として FR ファミリと互換性のある FR60Lite を使用しています。
本書は , 実際に MB91260B シリーズを使用して製品を開発される技術者を対象に ,
MB91260B シリーズの機能や動作について解説したものです。本書をご一読ください。
■ 商標
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.
■ サンプルプログラム
FRファミリの周辺機能を動作させるためのサンプルプログラムを無償で提供しており
ます。当社マイコンの動作仕様や使用方法の確認などにお役立てください。
マイコンサポート情報
http://jp.fujitsu.com/microelectronics/products/micom/support/
* サンプルプログラムについては , 予告なしに変更することがあります。本ソフトは ,
標準的な動作や使い方を示したものですので,お客様のシステム上でご使用の際は十分
評価の上でご使用ください。また , これらの使用に起因し生じた損害については , 当社
は一切その責任を負いません。
■ 本書の全体構成
本書は , 以下に示す 18 の章 , および付録から構成されています。
第1章
概要
この章では , MB91260B シリーズの特長 , ブロックダイヤグラム , 機能概要など全体
を知るための基本的なことがらについて説明します。
第2章
デバイスの取扱いについて
この章では , MB91260B シリーズの取扱い上の注意について説明します。
第3章
CPU および制御部
この章では , FR ファミリの機能を知るために , アーキテクチャ , 仕様 , 命令などの
基本的なことがらについて説明します。
i
第4章
I/O ポート
この章では , I/O ポートの概要 , レジスタの構成 , および機能について説明します。
第5章
割込みコントローラ
この章では , 割込みコントローラの概要 , レジスタの構成 / 機能 , 動作 , およびホー
ルドリクエスト取下げ要求機能の使用例について説明します。
第6章
外部割込み・NMI 制御部
この章では , 外部割込み・NMI 制御部の概要 , レジスタの構成 / 機能 , および動作に
ついて説明します。
第7章
REALOS 関連ハード
この章では , REALOS 関連ハードの遅延割込みモジュールとビットサーチモジュー
ルについて , 概要 , レジスタの構成 / 機能 , および動作を説明します。
第8章
リロードタイマ
この章では , リロードタイマの概要 , レジスタの構成 / 機能 , および動作について説
明します。
第9章
PPG
この章では , PPG の概要 , レジスタの構成 / 機能 , および動作について説明します。
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
この章では, PWC の概要 , レジスタの構成 /機能 , および動作について説明します。
第 11 章 多機能タイマ
この章では , 多機能タイマの概要 , レジスタの構成 / 機能および動作について説明し
ます。
第 12 章 U-TIMER (16 bit timer for UART baud rate generation)
この章では , U-TIMER の概要 , レジスタの構成 / 機能および動作について説明しま
す。
第 13 章 UART
この章では, UARTの概要とレジスタの構成/機能, および動作について説明します。
第 14 章 8/10 ビット A/D コンバータ
この章では , 8/10 ビット A/D コンバータの概要 , レジスタの構成 / 機能 , および動作
について説明します。
第 15 章 積和演算回路
この章では , 積和演算回路の特長 , レジスタの構成 / 機能 , および積和演算マクロ
( 定義と各命令 ) について説明します。
第 16 章 DMAC (DMA コントローラ )
この章では , DMAC (DMA コントローラ ) の概要 , レジスタの構成 / 機能 , および動
作について説明します。
第 17 章 フラッシュメモリ
この章では , フラッシュメモリの概要 , レジスタの構成 / 機能 , アクセスモード , 自
動アルゴリズムおよびセクタプロテクトオペレーションについて説明します。
第 18 章 シリアル書込み接続
この章では , シリアル書込みの基本構成 , および接続例について説明します。
ii
付録
付録として , I/O マップ , 割込みベクタ , 端子状態一覧 , リトル・エンディアン領域
を利用する際の注意事項 , 命令一覧 , および使用上の注意事項について記載してい
ます。
iii
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認
ください。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって
はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当
社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従
いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ) , ならびに極めて高い信頼性
が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く
ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承
ください。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該
当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。
Copyright ©2005-2006 FUJITSU LIMITED All rights reserved.
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
第2章
2.1
第3章
概要 .............................................................................................................1
概要 ........................................................................................................................................ 2
ブロックダイヤグラム............................................................................................................ 4
外形寸法図.............................................................................................................................. 5
端子配列図.............................................................................................................................. 7
端子機能一覧表 ...................................................................................................................... 9
入出力回路形式 .................................................................................................................... 19
デバイスの使用上の注意...........................................................................23
デバイスの使用上の注意 ...................................................................................................... 24
CPU および制御部 ....................................................................................27
3.1 メモリ空間............................................................................................................................ 28
3.2 内部アーキテクチャ ............................................................................................................. 30
3.3 プログラミングモデル.......................................................................................................... 35
3.4 データ構造............................................................................................................................ 42
3.5 ワードアライメント ............................................................................................................. 43
3.6 メモリマップ ........................................................................................................................ 44
3.7 分岐命令 ............................................................................................................................... 47
3.8 EIT ( 例外・割込み・トラップ ) ........................................................................................... 50
3.8.1
割込みレベル .............................................................................................................. 51
3.8.2
ICR (Interrupt Control Register )................................................................................. 53
3.8.3
SSP (System Stack Pointer)....................................................................................... 54
3.8.4
TBR (Table Base Register) ........................................................................................ 55
3.8.5
多重 EIT 処理.............................................................................................................. 58
3.8.6
動作 ............................................................................................................................ 60
3.9 動作モード............................................................................................................................ 64
3.10 リセット ( デバイス初期化 ) ................................................................................................. 66
3.11 クロック生成制御 ................................................................................................................. 73
3.11.1
PLL 制御 ..................................................................................................................... 74
3.11.2
発振安定待ち・PLL ロック待ち時間.......................................................................... 75
3.11.3
クロック分配 .............................................................................................................. 77
3.11.4
クロック分周 .............................................................................................................. 78
3.11.5
クロック生成制御部のブロック図.............................................................................. 79
3.11.6
クロック生成制御部のレジスタ詳細説明................................................................... 80
3.11.7
クロック制御部が持つ周辺回路 ................................................................................. 92
3.12 デバイス状態制御 ................................................................................................................. 95
第4章
4.1
4.2
4.3
I/O ポート................................................................................................103
I/O ポートの概要 ................................................................................................................ 104
I/O ポートのレジスタ ......................................................................................................... 106
アナログ入力ポート ........................................................................................................... 112
v
第5章
5.1
5.2
5.3
割込みコントローラ................................................................................115
概要 .................................................................................................................................... 116
割込みコントローラのレジスタ ......................................................................................... 120
割込みコントローラの動作................................................................................................. 122
第6章
6.1
6.2
6.3
外部割込み・NMI 制御部 ........................................................................131
外部割込み /NMI 制御部の概要........................................................................................... 132
外部割込み /NMI 制御部のレジスタ.................................................................................... 133
外部割込み /NMI 制御部の動作........................................................................................... 135
第7章
7.1
7.2
7.3
7.4
7.5
7.6
REALOS 関連ハード ..............................................................................141
遅延割込みモジュール........................................................................................................ 142
遅延割込みモジュールのレジスタ...................................................................................... 143
遅延割込みモジュールの動作 ............................................................................................. 144
ビットサーチモジュール .................................................................................................... 145
ビットサーチモジュールのレジスタ .................................................................................. 146
ビットサーチモジュールの動作 ......................................................................................... 148
第8章
8.1
8.2
8.3
8.4
16 ビットリロードタイマ .......................................................................151
概要 .................................................................................................................................... 152
16 ビットリロードタイマのブロックダイヤグラム ........................................................... 153
16 ビットリロードタイマのレジスタ................................................................................. 154
16 ビットリロードタイマの動作 ........................................................................................ 158
第9章
9.1
9.2
9.3
9.4
PPG(Programable Pulse Generator) ...................................................163
概要 .................................................................................................................................... 164
ブロックダイヤグラム........................................................................................................ 167
PPG のレジスタ ................................................................................................................. 171
動作説明 ............................................................................................................................. 176
第 10 章
10.1
10.2
10.3
10.4
PWC (Pulse Width Count: パルス幅測定 )............................................183
概要 .................................................................................................................................... 184
ブロックダイヤグラム........................................................................................................ 185
PWC のレジスタ ................................................................................................................ 186
動作説明 ............................................................................................................................. 192
第 11 章
多機能タイマ...........................................................................................203
11.1 概要 .................................................................................................................................... 204
11.2 ブロックダイヤグラム........................................................................................................ 206
11.3 多機能タイマの端子 ........................................................................................................... 212
11.4 多機能タイマのレジスタ .................................................................................................... 213
11.4.1
コンペアクリアバッファレジスタ (CPCLRBH, CPCLRBL) /
コンペアクリアレジスタ (CPCLRH, CPCLRL)........................................................ 218
11.4.2
タイマデータレジスタ (TCDTH, TCDTL) ................................................................ 220
11.4.3
タイマ状態制御レジスタ (TCCSH, TCCSL) ............................................................ 221
11.4.4
A/D トリガ制御レジスタ (ADTRGC)........................................................................ 227
11.4.5
アウトプットコンペアバッファレジスタ
(OCCPBH0 ∼ OCCPBH5, OCCPBL0 ∼ OCCPBL5)/
アウトプットコンペアレジスタ
(OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5)........................................................ 228
vi
11.4.6
11.4.7
11.4.8
11.4.9
11.4.10
11.4.11
11.4.12
11.4.13
コンペア制御レジスタ (OCSH0 ∼ OCSH5, OCSL0 ∼ OCSL5)............................. 230
コンペアモード制御レジスタ (OCMOD).................................................................. 237
インプットキャプチャデータレジスタ
(IPCPH0 ∼ IPCPH3, IPCPL0 ∼ IPCPL3)................................................................ 239
インプットキャプチャ状態制御 /PPG 出力制御レジスタ
(ICSH23, ICSL23, PICSH01, PICSL01) ................................................................... 240
16 ビットデッドタイマレジスタ
(TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2)........................................................ 247
16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2)...................................... 248
波形制御レジスタ (SIGCR1, SIGCR2)..................................................................... 257
A/D 起動コンペアレジスタ
(ADCOMP0, ADCOMP1, ADCOMP2, ADCOMPC) ................................................. 260
11.5 多機能タイマ割込み ........................................................................................................... 262
11.6 多機能タイマの動作 ........................................................................................................... 266
11.6.1
16 ビットフリーランタイマの動作 .......................................................................... 267
11.6.2
16 ビットアウトプットコンペアの動作 ................................................................... 273
11.6.3
16 ビットインプットキャプチャの動作 ................................................................... 283
11.6.4
波形ジェネレータの動作 .......................................................................................... 285
11.6.4.1 タイマモードの動作 ............................................................................................ 289
11.6.4.2 デッドタイムタイマモード時の動作................................................................... 291
11.6.4.3 DTTI 端子制御の動作 .......................................................................................... 295
11.6.5
A/D 起動コンペアの動作 .......................................................................................... 297
11.7 多機能タイマの使用上の注意 ............................................................................................. 298
11.8 多機能タイマのプログラム例 ............................................................................................. 301
第 12 章
U-TIMER (16-bit timer for UART baud rate generation) .....................305
12.1 概要 .................................................................................................................................... 306
12.2 レジスタ説明 ...................................................................................................................... 308
12.3 動作説明 ............................................................................................................................. 311
第 13 章
13.1
13.2
13.3
13.4
13.5
UART ......................................................................................................313
概要 .................................................................................................................................... 314
レジスタ詳細説明 ............................................................................................................... 317
UART の動作 ...................................................................................................................... 323
応用例 ................................................................................................................................. 329
ボーレートと U-TIMER のリロード値の設定例 ................................................................. 331
第 14 章
8/10 ビット A/D コンバータ....................................................................333
14.1 概要 .................................................................................................................................... 334
14.2 構成 .................................................................................................................................... 335
14.3 端子 .................................................................................................................................... 338
14.4 レジスタ ............................................................................................................................. 340
14.4.1
A/D チャネル制御レジスタ (ADCH) ......................................................................... 341
14.4.2
A/D モード設定レジスタ (ADMD) ............................................................................ 343
14.4.3
A/D 制御ステータスレジスタ (ADCS)...................................................................... 346
14.4.4
A/D データレジスタ (ADCD).................................................................................... 349
14.4.5
アナログ入力制御レジスタ (AICR) .......................................................................... 350
14.5 割込み ................................................................................................................................. 351
14.6 動作説明 ............................................................................................................................. 352
14.7 A/D 変換データ保護機能 .................................................................................................... 356
vii
14.8 使用上の注意 ...................................................................................................................... 357
第 15 章
15.1
15.2
15.3
15.4
概要 .................................................................................................................................... 360
レジスタ説明 ...................................................................................................................... 365
動作説明 ............................................................................................................................. 370
命令詳細説明 ...................................................................................................................... 374
第 16 章
16.1
16.2
16.3
16.4
16.5
16.6
16.7
16.8
積和演算回路...........................................................................................359
DMAC (DMA コントローラ ) ..................................................................379
概要 .................................................................................................................................... 380
DMAC のレジスタ .............................................................................................................. 383
DMAC の動作 ..................................................................................................................... 397
転送要求の設定 .................................................................................................................. 399
転送シーケンス .................................................................................................................. 400
DMA 転送全般 .................................................................................................................... 402
動作フローチャート ........................................................................................................... 410
データパス.......................................................................................................................... 412
第 17 章
フラッシュメモリ ...................................................................................415
17.1 フラッシュメモリの概要 .................................................................................................... 416
17.2 レジスタ ............................................................................................................................. 421
17.2.1
フラッシュメモリステータスレジスタ (FLCR)........................................................ 422
17.2.2
フラッシュウェイトレジスタ (FLWC) ..................................................................... 424
17.3 フラッシュメモリのアクセスモード .................................................................................. 426
17.4 自動アルゴリズム起動方法................................................................................................. 428
17.5 自動アルゴリズム実行状態................................................................................................. 432
17.6 セクタプロテクトオペレーション...................................................................................... 438
第 18 章
シリアル書込み接続................................................................................443
18.1 概要 .................................................................................................................................... 444
付録
付録 A
付録 B
付録 C
付録 D
付録 E
付録 F
索引
................................................................................................................449
I/O マップ ....................................................................................................................... 450
ベクタテーブル .............................................................................................................. 458
各 CPU ステートにおける端子状態 ............................................................................... 462
リトル・エンディアン領域を利用する際の注意事項..................................................... 465
命令一覧表...................................................................................................................... 471
使用上の注意 .................................................................................................................. 486
................................................................................................................491
viii
本版での主な変更内容
ページ
i
55,56
変更内容(詳細は本文を参照してください。
)
■ サンプルプログラム を追加
表 3.8-3 ベクタテーブル を変更
( 命令ブレーク例外 → システム予約 )
( オペランドブレークトラップ → システム予約 )
68
● ウォッチドッグリセット を変更
(WPR ( ウォッチドッグリセット発生延期レジスタ ) → CTBR ( タイムベースカウンタ
クリアレジスタ ))
73
■ ソースクロックの選択 を変更
(・φ はソースクロックを 2 分周または ,PLL 発振させた基本クロックを指します。し
たがって , システムベースクロックは , 上記の内部ベースクロック発生のところで生
成されるクロックです。の文を追加 )
79
図 3.11-1 ブロックダイヤグラム を変更
([ ウォッチドッグ制御部]の WPR レジスタ の部分を削除 )
81
[ ビット 9, ビット 8] WT1,WT0 (Watchdog interval Time select) の表を変更
(WPR → CTBR)
82
■ STCR : スタンバイ制御レジスタ を変更
86
■ CTBR : タイムベースカウンタクリアレジスタ を変更
( ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリア
を行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延
期されます。詳細は , 「3.11.7 クロック制御部が持つ周辺回路」の項を参照してくだ
さい。の文を追加 )
89
■ WPR: ウォッチドッグリセット発生延期レジスタ を削除
92
● ウォッチドッグタイマ の ウォッチドッグリセットの発生延期 を変更
(WPR ( ウォッチドッグリセット発生延期レジスタ ) → CTBR ( タイムベースカウンタ
クリアレジスタ ) )
98
● スリープモード を変更
100
● ストップモード を変更
123
表 5.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 3) を変更
( 命令ブレーク例外 → システム予約 )
( オペランドブレークトラップ → システム予約 )
138
■ 外部割込みを使用した STOP 状態からの復帰時における注意事項 を追加
139
■ STOP 状態からの復帰動作について を追加
314
■ UART の特長 を変更
(・DRCL レジスタへの書込み動作による DMAC の割込み要因クリア の記述を削除 )
ix
ページ
変更内容(詳細は本文を参照してください。
)
315
■ レジスタ一覧 を変更
(DRCL の部分を削除 )
322
■ DRCL を削除
328
■ 使用上の注意 を変更
( 割込みによる DMA 転送を最初に起動する前に DRCL レジスタに書き込んでくださ
い。の文を削除 )
373
<注意事項> を追加
451, 456
表 A-1 I/O マップ において , 下記レジスタのレジスタの欄を変更
(DRCL0, DRCL1, DRCL2, WPR)
456
表 A-1 I/O マップを変更
(*3: 予約レジスタです。アクセス禁止です。の文を追加 )
459
表 B-1 ベクタテーブル (1 / 3) を変更
( 命令ブレーク例外 → システム予約 )
( オペランドブレークトラップ → システム予約 )
487
● 低消費電力モード を変更
x
第1章
概要
MB91260B シリーズの特長 , ブロックダイヤグラ
ム , 機能概要など全体を知るための基本的なことに
ついて説明します 。
1.1 概要
1.2 ブロックダイヤグラム
1.3 外形寸法図
1.4 端子配列図
1.5 端子機能一覧表
1.6 入出力回路形式
1
第 1 章 概要
概要
1.1
MB91260B シリーズは高速処理を要求される組込み制御用途向けに設計された汎用
の富士通 32 ビット RISC マイクロコントローラです。CPU には , FR ファミリと互
換の FR60Lite を使用しています。
■ 特長
● FR60Lite CPU
• 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段
• 最大動作周波数 : 33 MHz ( 原発振 4.192 MHz 原発振 8 逓倍 (PLL クロック逓倍方式 ))
• 16 ビット固定長命令 ( 基本命令 )
• 命令実行速度 : 1 命令 /1 サイクル
• メモリ−メモリ間転送命令 , ビット処理命令 , バレルシフト命令など :
組込み用途に適した命令
• 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 : C 言語対応命令
• レジスタのインターロック機能 : アセンブラ記述も容易に可能
• 乗算器の内蔵 / 命令レベルでのサポート
• 符号付き 32 ビット乗算 : 5 サイクル
• 符号付き 16 ビット乗算 : 3 サイクル
• 割込み (PC/PS 退避 ) : 6 サイクル (16 プライオリティレベル )
• ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に
実行可能
• FR ファミリとの命令互換
● 内蔵周辺機能
• 内蔵 ROM 容量と ROM タイプ
マスク ROM: 128 K バイト (MB91263B), 256 K バイト (MB91264B)
フラッシュ ROM:256 K バイト (MB91F264B)
• 内蔵 RAM 容量 : 8 K バイト
• A/D コンバータ ( 逐次比較型 )
分解能 : 10 ビット : 8 チャネル× 1 ユニット , 2 チャネル× 2 ユニット
変換時間 :
1.2 µs ( 最小変換時間システムクロック 33 MHz 時 )
1.35 µs ( 最小変換時間システムクロック 20 MHz 時 )
• 外部割込み入力 : 10 チャネル
• ビットサーチモジュール (REALOS 使用 )
1 ワード中の MSB ( 上位ビット ) から最初の "1" → "0" 変化ビット位置をサーチす
る機能
2
第 1 章 概要
• UART ( 全二重ダブルバッファ方式 ): 3 チャネル
パリティあり / なし選択可能
非同期 ( 調歩同期 )/ クロック同期通信の選択可能
専用ボーレートタイマ (U-TIMER) を各チャネルに内蔵
外部クロックを転送クロックとして使用可能
パリティ , フレーム , オーバランエラー検出機能あり
• 8/16 ビット PPG タイマ : 16 チャネル (8 ビット時 ) / 8 チャネル (16 ビット時 )
• 16 ビットリロードタイマ : 3 チャネル ( カスケードモードあり , リロードタイマ 0 の
出力なし )
• 16 ビットフリーランタイマ : 1 チャネル
• 16 ビット PWC タイマ : 2 チャネル
• インプットキャプチャ : 4 チャネル ( フリーランタイマと連動 )
• アウトプットコンペア : 6 チャネル ( フリーランタイマと連動 )
• 波形ジェネレータ
アウトプットコンペア出力 , 16 ビット PPG タイマ 0, 16 ビットデッドタイマを使用
してさまざまな波形を生成できます。
• 積和演算回路
RAM: 命令 RAM 256 × 16 ビット
XRAM 64 × 16 ビット
YRAM 64 × 16 ビット
積和演算 (16 ビット× 16 ビット+ 40 ビット ) を 1 サイクル実行
演算結果は 40 ビットから 16 ビットへの丸め処理で抽出
• DMAC (DMA Controller): 5 チャネル
内蔵ペリフェラル割込み , ソフトウェアによって転送起動が可能
• ウォッチドッグタイマ
• 低消費電力モード
スリープ / ストップ機能
● その他
• パッケージ : QFP-100, LQFP-100
• CMOS 0.35 µm テクノロジ
• 電源 1 電源 [Vcc=4.0 V ∼ 5.5 V]
3
第 1 章 概要
1.2
ブロックダイヤグラム
MB91260B シリーズのブロックダイヤグラムを示します。
■ MB91260B シリーズのブロックダイヤグラム
図 1.2-1 MB91260B シリーズのブロックダイヤグラム
FR 60Lite
CPU コア
32
32
DMAC 5チャネル
ビットサーチ
積和マクロ
バス
コンバータ
ROM 128 Kバイト/
ROM 256 Kバイト/
Flash 256 Kバイト
RAM 8 Kバイト
X0,X1
MD0~MD2
INIT
クロック
制御
32
32 to 16
アダプタ
16
割込み
コントローラ
INT0~INT9
NMI
SIN0~SIN2
SOT0~SOT2
SCK0~SCK2
10チャネル
外部割込み
PORT I/F
3チャネル
16ビット リロードタイマ
2チャネル
16ビット PWCタイマ
3チャネル
UART
8チャネル
8/16ビット
PPGタイマ
PORT
TIN0~TIN2
TOT1,TOT2
PWI0,PWI1
PPG0~PPG15
3チャネル
U-TIMER
AVcc
ADTG0
AN0~AN7
AVRH0
ADTG1
AVRH1
AN8,AN9
ADTG2
AVRH2
AN10,AN11
4
多機能タイマ
8チャネル 入力
8/10ビット A/D-0
2チャネル 入力
8/10ビット A/D-1
2チャネル 入力
8/10ビット A/D-2
フリーランタイマ
1チャネル
CKI
インプットキャプチャ
4チャネル
IC0~IC3
アウトプットコンペア
6チャネル
波形ジェネレータ
RTO0~RTO5
DTTI
第 1 章 概要
外形寸法図
1.3
MB91260B シリーズには ,2 種類のパッケージが用意されています。図 1.3-1 , 図
1.3-2 に MB91260B の外形寸法図を示します。
■ FPT-100P-M05 の外形寸法図
図 1.3-1 FPT-100P-M05 の外形寸法図
プラスチック・LQFP, 100 ピン
(FPT-100P-M05)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
14.0 × 14.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
0.65g
コード (参考)
P-LFQFP100-14×14-0.50
プラスチック・LQFP, 100 ピン
(FPT-100P-M05)
注 1) * 印寸法はレジン残りを含まず。
注 2) 端子幅および端子厚さはメッキ厚を含む。
注 3) 端子幅はタイバ切断残りを含まず。
16.00±0.20(.630±.008)SQ
* 14.00±0.10(.551±.004)SQ
75
51
76
50
0.08(.003)
Details of "A" part
+0.20
100
26
25
1
C
2003 FUJITSU LIMITED F100007S-c-4-6
0.20±0.05
(.008±.002)
0.08(.003)
M
0.10±0.10
(.004±.004)
(Stand off)
0 ~8
"A"
0.50(.020)
+.008
1.50 –0.10 .059 –.004
(Mounting height)
INDEX
0.145±0.055
(.0057±.0022)
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
0.25(.010)
単位: mm (inches)
注意:括弧内の値は参考値です。
5
第 1 章 概要
■ FPT-100P-M06 の外形寸法図
図 1.3-2 FPT-100P-M06 の外形寸法図
プラスチック・ QFP, 100 ピン
リードピッチ
0.65mm
パッケージ幅×
パッケージ長さ
14.00 × 20.00mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
3.35mm MAX
コード (参考)
P-QFP100-14×20-0.65
(FPT-100P-M06)
プラスチック・QFP, 100 ピン
(FPT-100P-M06)
注 1) * 印寸法はレジン残りを含まず。
注 2) 端子幅および端子厚さはメッキ厚を含む。
注 3) 端子幅はタイバ切断残りを含まず。
23.90±0.40(.941±.016)
* 20.00±0.20(.787±.008)
80
51
81
50
0.10(.004)
17.90±0.40
(.705±.016)
*14.00±0.20
(.551±.008)
INDEX
Details of "A" part
100
1
30
0.65(.026)
"A"
C
6
0.25(.010)
+0.35
3.00 –0.20
+.014
.118 –.008
(Mounting height)
0~8
31
2002 FUJITSU LIMITED F100008S-c-5-5
0.32±0.05
(.013±.002)
0.13(.005)
M
0.17±0.06
(.007±.002)
0.80±0.20
(.031±.008)
0.88±0.15
(.035±.006)
0.25±0.20
(.010±.008)
(Stand off)
単位: mm (inches)
注意:括弧内の値は参考値です。
第 1 章 概要
1.4
端子配列図
MB91260B シリーズの端子配列図を示します。
■ 端子配列図
P22/SCK0
P21/SOT0
P20/SIN0
P17
P16/PPG15
X0
X1
Vss
Vcc
P15/PPG14
P14/PPG13
P13/PPG12
P12/PPG11
P11/PPG10
P10/PPG9
P07/PPG8
P06/PPG7
P05/PPG6
P04/PPG5
P03/PPG4
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
図 1.4-1 QFP-100
P23/SIN1
1
80
P02/PPG3
P24/SOT1
2
79
P01/PPG2
P25/SCK1
3
78
P00/PPG1
P26/INT6
4
77
INIT
P27/INT7
5
76
MD0
P50
6
75
MD1
P51/TIN0
7
74
MD2
P52/TIN1
8
73
NMI
P53/TIN2
9
72
P77/ADTG2
P54/INT0
10
71
P76/ADTG1
P55/INT1
11
70
P75/ADTG0
P56/INT2
12
69
P74/PWI1
P57/INT3
13
68
Vss
PG0/CKI/INT4
14
67
Vcc
PG1/PPG0/INT5
15
66
P73/PWI0
PG2
16
65
P72/DTTI
Vcc
17
64
P71/TOT2
Vss
18
63
P70/TOT1
C
19
62
P63/INT9
PG3/SIN2
20
61
P62/INT8
PG4/SOT2
21
60
P61/IC3
PG5/SCK2
22
59
P60/IC2
P40
23
58
P37/IC1
P41
24
57
P36/IC0
P42
25
56
P35/RTO5
P43
26
55
P34/RTO4
P44
27
54
P33/RTO3
P45
28
53
P32/RTO2
P46
29
52
P31/RTO1
P47
30
51
P30/RTO0
TOP VIEW
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
PE1/AN11
PE0/AN10
AVRH2
ACC
AVcc
AVRH1
AVss
PD1/AN9
PD0/AN8
AVRH0
PC7/AN7
PC6/AN6
PC5/AN5
PC4/AN4
PC3/AN3
PC2/AN2
PC1/AN1
PC0/AN0
Vcc
Vss
FPT-100P-M06
7
第 1 章 概要
8
P24/SOT1
P23/SIN1
P22/SCK0
P21/SOT0
P20/SIN0
P17
P16/PPG15
X0
X1
Vss
Vcc
P15/PPG14
P14/PPG13
P13/PPG12
P12/PPG11
P11/PPG10
P10/PPG9
P07/PPG8
P06/PPG7
P05/PPG6
P04/PPG5
P03/PPG4
P02/PPG3
P01/PPG2
P00/PPG1
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
図 1.4-2 LQFP-100
P25/SCK1
1
75
INIT
P26/INT6
2
74
MD0
P27/INT7
3
73
MD1
P50
4
72
MD2
P51/TIN0
5
71
NMI
P52/TIN1
6
70
P77/ADTG2
P53/TIN2
7
69
P76/ADTG1
P54/INT0
8
68
P75/ADTG0
P55/INT1
9
67
P74/PWI1
P56/INT2
10
66
Vss
P57/INT3
11
65
Vcc
64
P73/PWI0
PG0/CKI/INT4
12
PG1/PPG0/INT5
13
PG2
14
Vcc
Vss
TOP VIEW
63
P72/DTTI
62
P71/TOT2
15
61
P70/TOT1
16
60
P63/INT9
C
17
59
P62/INT8
PG3/SIN2
18
58
P61/IC3
PG4/SOT2
19
57
P60/IC2
PG5/SCK2
20
56
P37/IC1
P40
21
55
P36/IC0
P41
22
54
P35/RTO5
P42
23
53
P34/RTO4
P43
24
52
P33/RTO3
P44
25
51
P32/RTO2
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
P45
P46
P47
PE1/AN11
PE0/AN10
AVRH2
ACC
AVcc
AVRH1
AVss
PD1/AN9
PD0/AN8
AVRH0
PC7/AN7
PC6/AN6
PC5/AN5
PC4/AN4
PC3/AN3
PC2/AN2
PC1/AN1
PC0/AN0
Vcc
Vss
P30/RTO0
P31/RTO1
FPT-100P-M05
第 1 章 概要
端子機能一覧表
1.5
MB91260B シリーズの端子機能の一覧を示します。
■ 端子機能一覧表
表 1.5-1 端子機能一覧表 (1 / 10)
端子番号
端子名
QFP LQFP
入出力
回路
形式
SIN1
1
2
3
4
99
D
汎用入出力ポートです。UART1 のデータ入力指定が禁止のときに有効
になります。
SOT1
UART1 のデータ出力です。この機能は UART1 のデータ出力指定が許
可のときに有効になります。
100
D
P24
汎用入出力ポートです。UART1 のデータ出力指定が禁止のときに有効
になります。
SCK1
UART1 のクロック入出力です。この機能は UART1 のクロック出力指
定が許可のときに有効になります。
1
D
P25
汎用入出力ポートです。この機能は UART1 のクロック出力指定が禁止
のときに有効になります。
INT6
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので , 意図的に行う以外はポートによる出力を
停止させておく必要があります。
2
E
汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき
に有効になります。
INT7
3
E
4
P50
C
TIN0
7
5
C
P51
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので , 意図的に行う以外はポートによる出力を
停止させておく必要があります。
汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき
に有効になります。
P27
6
UART1 のデータ入力です。UART1 が入力動作をしている間は , この入
力を随時使用しますので , 意図的に行う以外はポートによる出力を停止
させておく必要があります。
P23
P26
5
機能説明
汎用入出力ポートです。シングルチップモードのときに有効になりま
す。
リロードタイマ 0 の外部トリガ入力です。トリガ入力を許可している
間は , この入力を随時使用していますので , 意図的に行う以外はポート
による出力を停止させておく必要があります。
汎用入出力ポートです。この機能はリロードタイマ 0 の外部クロック
入力指定が禁止のときに有効になります。
9
第 1 章 概要
表 1.5-1 端子機能一覧表 (2 / 10)
端子番号
端子名
QFP LQFP
入出力
回路
形式
TIN1
8
9
6
C
汎用入出力ポートです。この機能はリロードタイマ 1 の外部クロック
入力指定が禁止のときに有効になります。
TIN2
リロードタイマ 2 の外部トリガ入力です。トリガ入力を許可している
間は , この入力を随時使用していますので , 意図的に行う以外はポート
による出力を停止させておく必要があります。
7
C
汎用入出力ポートです。この機能はリロードタイマ 2 の外部クロック
入力指定が禁止のときに有効になります。
INT0
8
E
INT1
9
E
INT2
10
E
INT3
14
10
11
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので , 意図的に行う以外はポートによる出力を
停止させておく必要があります。
汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき
に有効になります。
P56
13
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので , 意図的に行う以外はポートによる出力を
停止させておく必要があります。
汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき
に有効になります。
P55
12
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので , 意図的に行う以外はポートによる出力を
停止させておく必要があります。
汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき
に有効になります。
P54
11
リロードタイマ 1 の外部トリガ入力です。トリガ入力を許可している
間は , この入力を随時使用していますので , 意図的に行う以外はポート
による出力を停止させておく必要があります。
P52
P53
10
機能説明
E
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので , 意図的に行う以外はポートによる出力を
停止させておく必要があります。
P57
汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき
に有効になります。
CKI
フリーランタイマの外部クロック入力端子です。フリーランタイマの
外部クロック入力として選択した場合は , この入力を随時使用しますの
で , 意図的に行う以外はポートによる出力を停止させておく必要があり
ます。
12
E
INT4
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので , 意図的に行う以外はポートによる出力を
停止させておく必要があります。
PG0
汎用入出力ポートです。フリーランタイマの外部クロック入力指定お
よび外部割込み入力指定が禁止のときに有効になります。
第 1 章 概要
表 1.5-1 端子機能一覧表 (3 / 10)
端子番号
端子名
QFP LQFP
入出力
回路
形式
PPG タイマ 0 の出力です。この機能は PPG タイマ 0 の出力指定が許可
のときに有効になります。
PPG0
15
13
INT5
E
14
PG2
C
汎用入出力ポートです。
D
UART2 のデータ入力です。UART2 が入力動作をしている間は , この入
力を随時使用しますので , 意図的に行う以外はポートによる出力を停止
させておく必要があります。
SIN2
20
21
22
18
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので , 意図的に行う以外はポートによる出力を
停止させておく必要があります。
汎用入出力ポートです。PPG タイマ 0 の出力指定および外部割込み入
力が禁止のときに有効になります。
PG1
16
機能説明
PG3
汎用入出力ポートです。UART2 のデータ入力指定が禁止のときに有効
になります。
SOT2
UART2 のデータ出力です。この機能は UART2 のデータ出力指定が許
可のときに有効になります。
19
D
PG4
汎用入出力ポートです。UART2 のデータ出力指定が禁止のときに有効
になります。
SCK2
UART2 のクロック入出力です。この機能は UART2 のクロック出力指
定が許可のときに有効になります。
20
D
汎用入出力ポートです。この機能は UART2 のクロック出力指定が禁止
のときに有効になります。
PG5
23
21
P40
C
汎用入出力ポートです。
24
22
P41
C
汎用入出力ポートです。
25
23
P42
C
汎用入出力ポートです。
26
24
P43
C
汎用入出力ポートです。
27
25
P44
C
汎用入出力ポートです。
28
26
P45
C
汎用入出力ポートです。
29
27
P46
C
汎用入出力ポートです。
30
28
P47
C
汎用入出力ポートです。
AN11
31
29
G
PE1
A/D コンバータのアナログ入力です。AICR2 レジスタの指定がアナロ
グ入力のときに有効となります。
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
11
第 1 章 概要
表 1.5-1 端子機能一覧表 (4 / 10)
端子番号
端子名
QFP LQFP
入出力
回路
形式
AN10
32
38
39
41
42
43
44
45
46
30
G
A/D コンバータのアナログ入力です。AICR2 レジスタの指定がアナロ
グ入力のときに有効となります。
PE0
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
AN9
A/D コンバータのアナログ入力です。AICR1 レジスタの指定がアナロ
グ入力のときに有効となります。
36
G
PD1
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
AN8
A/D コンバータのアナログ入力です。AICR1 レジスタの指定がアナロ
グ入力のときに有効となります。
37
G
PD0
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
AN7
A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ
グ入力のときに有効となります。
39
G
PC7
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
AN6
A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ
グ入力のときに有効となります。
40
G
PC6
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
AN5
A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ
グ入力のときに有効となります。
41
G
PC5
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
AN4
A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ
グ入力のときに有効となります。
42
G
PC4
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
AN3
A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ
グ入力のときに有効となります。
43
G
PC3
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
AN2
A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ
グ入力のときに有効となります。
44
G
PC2
12
機能説明
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
第 1 章 概要
表 1.5-1 端子機能一覧表 (5 / 10)
端子番号
端子名
QFP LQFP
入出力
回路
形式
AN1
47
48
45
G
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
AN0
A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ
グ入力のときに有効となります。
46
G
汎用入出力ポートです。この機能はアナログ入力指定が禁止のときに
有効になります。
RTO0
49
J
RTO1
50
J
RTO2
51
J
RTO3
52
J
RTO4
53
J
RTO5
54
J
P35
多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ
レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ
出力が許可のときに有効となります。
汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止
のときに有効になります。
P34
56
多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ
レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ
出力が許可のときに有効となります。
汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止
のときに有効になります。
P33
55
多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ
レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ
出力が許可のときに有効となります。
汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止
のときに有効になります。
P32
54
多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ
レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ
出力が許可のときに有効となります。
汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止
のときに有効になります。
P31
53
多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ
レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ
出力が許可のときに有効となります。
汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止
のときに有効になります。
P30
52
A/D コンバータのアナログ入力です。AICR0 レジスタの指定がアナロ
グ入力のときに有効となります。
PC1
PC0
51
機能説明
多機能タイマの波形ジェネレータ出力です。この端子は , 波形ジェネ
レータに指定した波形を出力します。波形の出力は , 波形ジェネレータ
出力が許可のときに有効となります。
汎用入出力ポートです。この機能は波形ジェネレータ出力指定が禁止
のときに有効になります。
13
第 1 章 概要
表 1.5-1 端子機能一覧表 (6 / 10)
端子番号
端子名
QFP LQFP
入出力
回路
形式
IC0
57
58
59
60
55
D
汎用入出力ポートです。この機能はインプットキャプチャトリガ入力
指定が禁止のときに有効になります。
IC1
インプットキャプチャ 1 のトリガ入力です。インプットキャプチャト
リガ入力を設定し , 入力ポートを設定した場合に入力できます。イン
プットキャプチャ入力として選択した場合は , この入力を随時使用しま
すので , 意図的に行う以外はポートによる出力を停止させておく必要が
あります。
56
D
P37
汎用入出力ポートです。この機能はインプットキャプチャトリガ入力
指定が禁止のときに有効になります。
IC2
インプットキャプチャ 2 のトリガ入力です。インプットキャプチャト
リガ入力を設定し , 入力ポートを設定した場合に入力できます。イン
プットキャプチャ入力として選択した場合は , この入力を随時使用しま
すので , 意図的に行う以外はポートによる出力を停止させておく必要が
あります。
57
D
P60
汎用入出力ポートです。この機能はインプットキャプチャトリガ入力
指定が禁止のときに有効になります。
IC3
インプットキャプチャ 3 のトリガ入力です。インプットキャプチャト
リガ入力を設定し , 入力ポートを設定した場合に入力できます。イン
プットキャプチャ入力として選択した場合は , この入力を随時使用しま
すので , 意図的に行う以外はポートによる出力を停止させておく必要が
あります。
58
D
汎用入出力ポートです。この機能はインプットキャプチャトリガ入力
指定が禁止のときに有効になります。
INT8
59
E
INT9
60
E
P63
14
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので , 意図的に行う以外はポートによる出力を
停止させておく必要があります。
汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき
に有効になります。
P62
62
インプットキャプチャ 0 のトリガ入力です。インプットキャプチャト
リガ入力を設定し , 入力ポートを設定した場合に入力できます。イン
プットキャプチャ入力として選択した場合は , この入力を随時使用しま
すので , 意図的に行う以外はポートによる出力を停止させておく必要が
あります。
P36
P61
61
機能説明
外部割込み入力です。対応する外部割込みを許可している間は , この入
力を随時使用していますので , 意図的に行う以外はポートによる出力を
停止させておく必要があります。
汎用入出力ポートです。この機能は外部割込み入力指定が禁止のとき
に有効になります。
第 1 章 概要
表 1.5-1 端子機能一覧表 (7 / 10)
端子番号
端子名
QFP LQFP
入出力
回路
形式
TOT1
63
64
65
66
69
70
71
72
61
C
機能説明
リロードタイマ 1 の出力です。この機能はリロードタイマ出力許可の
ときに有効になります。
P70
汎用入出力ポートです。この機能はリロードタイマ出力指定が禁止の
ときに有効になります。
TOT2
リロードタイマ 2 の出力です。この機能はリロードタイマ出力許可の
ときに有効になります。
62
C
P71
汎用入出力ポートです。この機能はリロードタイマ出力指定が禁止の
ときに有効になります。
DTTI
多機能タイマの波形ジェネレータ出力 RTO0 ∼ RTO5 を制御する入力
信号です。この機能は DTTI 入力が許可のときに有効になります。
63
D
P72
汎用入出力ポートです。この機能は DTTI 入力指定が禁止のときに有効
になります。
PWI0
PWC タイマ 0 のパルス幅カウンタ入力です。この機能は PWC タイマ 0
のパルス幅カウンタ入力が許可のときに有効になります。
64
D
P73
汎用入出力ポートです。この機能は PWC タイマ 0 のパルス幅カウンタ
入力指定が禁止のときに有効になります。
PWI1
PWC タイマ 1 のパルス幅カウンタ入力です。この機能は PWC タイマ 1
のパルス幅カウンタ入力が許可のときに有効になります。
67
D
P74
汎用入出力ポートです。この機能は PWC タイマ 1 のパルス幅カウンタ
入力指定が禁止のときに有効になります。
ADTG
0
A/D コンバータ 0 の外部トリガ入力です。A/D の起動要因として選択し
た場合は , この入力を随時使用しますので , 意図的に行う以外はポート
出力を停止させておく必要があります。
68
C
P75
汎用入出力ポートです。この機能は , A/D コンバータ 0 の外部トリガ入
力指定が禁止のときに有効になります。
ADTG
1
A/D コンバータ 1 の外部トリガ入力です。A/D の起動要因として選択し
た場合は , この入力を随時使用しますので , 意図的に行う以外はポート
出力を停止させておく必要があります。
C
69
P76
汎用入出力ポートです。この機能は , A/D コンバータ 1 の外部トリガ入
力指定が禁止のときに有効になります。
ADTG
2
A/D コンバータ 2 の外部トリガ入力です。A/D の起動要因として選択し
た場合は , この入力を随時使用しますので , 意図的に行う以外はポート
出力を停止させておく必要があります。
70
C
汎用入出力ポートです。この機能は , A/D コンバータ 2 の外部トリガ入
力指定が禁止のときに有効になります。
P77
73
71
NMI
H
NMI(Non Maskable Interrupt) 入力です。
74
72
MD2
K
モード端子 2 です。この端子の設定により基本動作モードを設定しま
す。Vcc または Vss に接続してください。
15
第 1 章 概要
表 1.5-1 端子機能一覧表 (8 / 10)
端子番号
端子名
入出力
回路
形式
QFP LQFP
機能説明
75
73
MD1
K
モード端子 1 です。この端子の設定により基本動作モードを設定しま
す。Vcc または Vss に接続してください。
76
74
MD0
K
モード端子 0 です。この端子の設定により基本動作モードを設定しま
す。Vcc または Vss に接続してください。
77
75
INIT
I
外部リセット入力です。
PPG1
78
79
80
81
82
83
84
85
76
C
P00
汎用入出力ポートです。この機能は , PPG タイマ 1 の出力指定が禁止の
ときに有効になります。
PPG2
PPG タイマ 2 の出力です。この機能は PPG タイマ 2 の出力指定が許可
のときに有効になります。
77
C
P01
汎用入出力ポートです。この機能は , PPG タイマ 2 の出力指定が禁止の
ときに有効になります。
PPG3
PPG タイマ 3 の出力です。この機能は PPG タイマ 3 の出力指定が許可
のときに有効になります。
78
C
P02
汎用入出力ポートです。この機能は , PPG タイマ 3 の出力指定が禁止の
ときに有効になります。
PPG4
PPG タイマ 4 の出力です。この機能は PPG タイマ 4 の出力指定が許可
のときに有効になります。
79
C
P03
汎用入出力ポートです。この機能は , PPG タイマ 4 の出力指定が禁止の
ときに有効になります。
PPG5
PPG タイマ 5 の出力です。この機能は PPG タイマ 5 の出力指定が許可
のときに有効になります。
80
C
P04
汎用入出力ポートです。この機能は , PPG タイマ 5 の出力指定が禁止の
ときに有効になります。
PPG6
PPG タイマ 6 の出力です。この機能は PPG タイマ 6 の出力指定が許可
のときに有効になります。
81
C
P05
汎用入出力ポートです。この機能は , PPG タイマ 6 の出力指定が禁止の
ときに有効になります。
PPG7
PPG タイマ 7 の出力です。この機能は PPG タイマ 7 の出力指定が許可
のときに有効になります。
82
C
P06
汎用入出力ポートです。この機能は , PPG タイマ 7 の出力指定が禁止の
ときに有効になります。
PPG8
PPG タイマ 8 の出力です。この機能は PPG タイマ 8 の出力指定が許可
のときに有効になります。
83
C
P07
16
PPG タイマ 1 の出力です。この機能は PPG タイマ 1 の出力指定が許可
のときに有効になります。
汎用入出力ポートです。この機能は , PPG タイマ 8 の出力指定が禁止の
ときに有効になります。
第 1 章 概要
表 1.5-1 端子機能一覧表 (9 / 10)
端子番号
端子名
QFP LQFP
入出力
回路
形式
PPG9
86
87
88
89
90
91
84
C
機能説明
PPG タイマ 9 の出力です。この機能は PPG タイマ 9 の出力指定が許可
のときに有効になります。
P10
汎用入出力ポートです。この機能は , PPG タイマ 9 の出力指定が禁止の
ときに有効になります。
PPG10
PPG タイマ 10 の出力です。この機能は PPG タイマ 10 の出力指定が許
可のときに有効になります。
85
C
P11
汎用入出力ポートです。この機能は , PPG タイマ 10 の出力指定が禁止
のときに有効になります。
PPG11
PPG タイマ 11 の出力です。この機能は PPG タイマ 11 の出力指定が許
可のときに有効になります。
86
C
P12
汎用入出力ポートです。この機能は , PPG タイマ 11 の出力指定が禁止
のときに有効になります。
PPG12
PPG タイマ 12 の出力です。この機能は PPG タイマ 12 の出力指定が許
可のときに有効になります。
87
C
P13
汎用入出力ポートです。この機能は , PPG タイマ 12 の出力指定が禁止
のときに有効になります。
PPG13
PPG タイマ 13 の出力です。この機能は PPG タイマ 13 の出力指定が許
可のときに有効になります。
88
C
P14
汎用入出力ポートです。この機能は , PPG タイマ 13 の出力指定が禁止
のときに有効になります。
PPG14
PPG タイマ 14 の出力です。この機能は PPG タイマ 14 の出力指定が許
可のときに有効になります。
89
C
汎用入出力ポートです。この機能は , PPG タイマ 14 の出力指定が禁止
のときに有効になります。
P15
94
92
X1
A
クロック ( 発振 ) 出力です。
95
93
X0
A
クロック ( 発振 ) 入力です。
PPG15
96
94
C
汎用入出力ポートです。この機能は , PPG タイマ 15 の出力指定が禁止
のときに有効になります。
P16
97
95
P17
C
汎用入出力ポートです。
D
UART0 のデータ入力です。UART0 が入力動作をしている間は , この入
力を随時使用しますので , 意図的に行う以外は ポートによる出力を停止
させておく必要があります。
SIN0
98
96
P20
PPG タイマ 15 の出力です。この機能は PPG タイマ 15 の出力指定が許
可のときに有効になります。
汎用入出力ポートです。UART0 のデータ入力指定が禁止のときに有効
になります。
17
第 1 章 概要
表 1.5-1 端子機能一覧表 (10 / 10)
端子番号
端子名
QFP LQFP
入出力
回路
形式
SOT0
99
100
97
D
機能説明
UART0 のデータ出力です。この機能は UART0 のデータ出力指定が許
可のときに有効になります。
P21
汎用入出力ポートです。UART0 のデータ出力指定が禁止のときに有効
になります。
SCK0
UART0 のクロック入出力です。この機能は UART0 のクロック出力指
定が許可のときに有効になります。
98
D
汎用入出力ポートです。この機能は UART0 のクロック出力指定が禁止
のときに有効になります。
P22
[ 電源・GND 端子 ]
端子番号
端子名
機能説明
QFP
LQFP
18, 50, 68, 93
16, 48, 66, 91
Vss
GND 端子です。すべて同電位でお使いください。
17, 49, 67, 92
15, 47, 65, 90
Vcc
電源端子です。すべて同電位でお使いください。
35
33
AVcc
A/D コンバータ用のアナログ電源端子です。
33
31
AVRH2
A/D コンバータ 2 用のアナログ基準電源端子です。
36
34
AVRH1
A/D コンバータ 1 用のアナログ基準電源端子です。
40
38
AVRH0
A/D コンバータ 0 用のアナログ基準電源端子です。
37
35
AVss
19
17
C
34
32
ACC
18
A/D コンバータ用のアナログ GND 端子です。
内部レギュレータ用のコンデンサ結合端子です。
アナログ用のコンデンサ結合端子です。
第 1 章 概要
入出力回路形式
1.6
MB91260B シリーズの入出力回路形式を示します。
■ 入出力回路形式
表 1.6-1 入出力回路形式 (1 / 3)
分類
回路形式
備考
高速用 ( メインクロック原発振 )
X1
クロック入力
発振帰還抵抗 : 約 1 MΩ
A
X0
スタンバイ制御
プルアップ制御
• CMOS レベル出力
• CMOS レベル入力
デジタル出力
• スタンバイ制御あり
C
デジタル出力
R
デジタル入力
• プルアップ制御あり
プルアップ抵抗値=約 50 kΩ (Typ)
• IOL = 4 mA
スタンバイ制御
プルアップ制御
• CMOS レベル出力
• CMOS レベルヒステリシス入力
デジタル出力
• スタンバイ制御あり
D
デジタル出力
R
デジタル入力
• プルアップ制御あり
プルアップ抵抗値=約 50 kΩ (Typ)
• IOL = 4 mA
スタンバイ制御
19
第 1 章 概要
表 1.6-1 入出力回路形式 (2 / 3)
分類
回路形式
備考
プルアップ制御
• CMOS レベル出力
• CMOS レベルヒステリシス入力
デジタル出力
• スタンバイ制御なし
E
デジタル出力
R
デジタル入力
• プルアップ制御あり
プルアップ抵抗値=約 50 kΩ (Typ)
• IOL = 4 mA
• アナログ /CMOS レベル入出力端子
- CMOS レベル出力
デジタル出力
- CMOS レベル入力
( スタンバイ制御付き )
G
デジタル出力
- アナログ入力
(AICR レジスタの対応するビット
デジタル入力
が "1" のときアナログ入力が有効に
スタンバイ制御
なります )
R
アナログ入力
• IOL=4 mA
• CMOS レベルヒステリシス入力
• スタンバイ制御なし
H
R
デジタル入力
• CMOS レベルヒステリシス入力
R
• プルアップ抵抗付き
プルアップ抵抗値=約 50 kΩ (Typ)
I
• スタンバイ制御なし
R
デジタル入力
20
第 1 章 概要
表 1.6-1 入出力回路形式 (3 / 3)
分類
回路形式
備考
• CMOS レベル出力
• CMOS レベルヒステリシス入力
デジタル出力
• スタンバイ制御あり
J
デジタル出力
R
• IOL = 12 mA
デジタル入力
スタンバイ制御
• CMOS レベル入力
• スタンバイ制御なし
K
R
デジタル入力
21
第 1 章 概要
22
第2章
デバイスの使用上の注意
MB91260B シリーズの使用上の注意について説明
します。
2.1 デバイスの使用上の注意
23
第 2 章 デバイスの使用上の注意
2.1
デバイスの使用上の注意
ラッチアップ防止および端子処理などの使用上の注意について説明します。
■ デバイスの使用上の注意
● ラッチアップ防止のために
CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加した
場合 , または VCC ∼ VSS 間に定格を超える電圧を印加した場合に , ラッチアップ現象
を生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊に
至ることがありますので使用に際しては最大定格を超えることのないよう十分に注意
してください。
● 未使用入力端子の処理について
使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま
すので , プルアップまたはプルダウンなどの処理をしてください。
● 電源端子について
VCC または VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止
するためにデバイス内部で同電位にすべきものどうしを接続してありますが , 不要輻
射の低減・グランドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流
規格を遵守などのために , 必ずそれらすべてを外部で同電位の電源およびグランドに
接続してください。また , 電流供給源からできるかぎり低インピーダンスで本デバイス
の VCC, VSS に接続するような配慮をお願いします。
さらに , 本デバイスの近くで , VCC 端子と VSS 端子との間に 0.1 µF 程度のセラミックコンデン
サをバイパスコンデンサとして接続することをお勧めいたします。
● 水晶発振回路について
X0 端子 , X1 端子の近辺のノイズは本デバイスの誤動作の原因となります。X0 端子と
X1 端子および水晶発振子 ( あるいはセラミック発振子 ) さらにグランドへのバイパス
コンデンサはできるかぎり近くに配置するようにプリント板を設計してください。ま
た , X0 端子 , X1 端子の回りをグランドで囲むようなプリント板アートワークは安定し
た動作を期待できますので , 強くお勧めいたします。
● モード端子 (MD0 ∼ MD2) について
これらの端子は , VCC または VSS に直接つないで使用してください。ノイズにより誤ってテス
トモードに入ってしまうことを防ぐために, プリント板上の各モード端子とVCC またはVSS 間
のパターン長をできるかぎり短くし , これらを低インピーダンスで接続するようにしてくだ
さい。
● 電源投入時について
電源投入直後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。ま
た, 電源投入直後は, 発振回路の発振安定待ち時間およびレギュレータの安定待ち時間
を確保するため , INIT 端子への "L" レベル入力を発振回路の要求する安定待ち時間の
間持続してください (INIT 端子による INIT では , 発振安定待ち時間の設定は最小値に
初期化されています ) 。
24
第 2 章 デバイスの使用上の注意
● 電源投入時の原発振入力について
電源投入時は , 必ず発振安定待ち解除されるまでの間クロックを入力してください。
● PLL クロックモード動作中の注意について
本デバイスで , PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ
ク入力が停止した場合 , 本デバイスは PLL 内部の自励発振回路の自走周波数で動作を
継続し続ける場合があります。この動作は保証外の動作です。
● 外部クロックについて
外部クロックを使用する際には原則として X0 端子 , また , X1 端子には X0 と逆相のク
ロックを同時に供給してください。ただし , STOP モード ( 発振停止モード ) を併用す
る場合は , STOP モード時に X1 端子が "H" 出力で停止しますので , 出力どうしの衝突
を避けるために , 外部に 1 kΩ 程度の抵抗を入れるようにしてください。
下図に外部クロック使用方法例について示します。
図 2.1-1 外部クロック使用例
X0
~
X1
MB91260Bシリーズ
● C 端子について
本品種はレギュレータを内蔵しており , C 端子にはレギュレータ用に 0.1 µF 程度のバ
スコンデンサを必ず入れてください。
図 2.1-2 C 端子について
C
MB91260Bシリーズ
0.1 F
Vss
GND
● ACC 端子について
本品種は , A/D コンバータを内蔵しており , ACC 端子と AVss 端子の端子間には , 0.1 µF
程度のコンデンサを必ず入れてください。
図 2.1-3 ACC 端子について
ACC
MB91260Bシリーズ
AVss
0.1 F
25
第 2 章 デバイスの使用上の注意
26
第3章
CPU および制御部
MB91260B シリーズの CPU コアの機能を知るた
めに , アーキテクチャ , 仕様 , 命令などの基本的な
ことについて説明します。
3.1 メモリ空間
3.2 内部アーキテクチャ
3.3 プログラミングモデル
3.4 データ構造
3.5 ワードアライメント
3.6 メモリマップ
3.7 分岐命令
3.8 EIT ( 例外・割込み・トラップ )
3.9 動作モード
3.10 リセット ( デバイス初期化 )
3.11 クロック生成制御
3.12 デバイス状態制御
27
第 3 章 CPU および制御部
3.1
メモリ空間
MB91260B シリーズの論理アドレス空間は 4 G バイト (2 32 番地 ) あり , CPU はリ
ニアにアクセスを行います。
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は I/O 用に使用されます。
この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ
スを指定できます。
ダイレクトアドレッシング領域は , アクセスするデータのサイズにより , 以下のように
異なります。
•
バイトデータアクセス
•
ハーフワードデータアクセス : 000H ∼ 1FFH
•
ワードデータアクセス
: 000H ∼ 0FFH
: 000H ∼ 3FFH
■ メモリマップ
図 3.1-1 メモリマップ
0000 0000H
バイトデータ
0000 0100H
0000 0200H
ハーフワードデータ
ワードデータ
0000 0400H
~
~
000F FC00H
ベクタテーブル
初期領域
000F FFFFH
~
FFFF FFFFH
28
~
ダイレクト
アドレッシング領域
第 3 章 CPU および制御部
図 3.1-2 MB91F264B, MB91264B のメモリマップ
シングルチップモード
0000 0000H
I/O
ダイレクト
アドレッシング領域
0000 0400H
I/O
0001 0000H
0003 E000H
I/Oマップを参照
アクセス禁止
内蔵RAM 8 Kバイト
0004 0000H
アクセス禁止
000C 0000H
内蔵ROM
256 Kバイト
0010 0000H
アクセス禁止
FFFF FFFFH
図 3.1-3 MB91263B のメモリマップ
シングルチップモード
0000 0000H
I/O
ダイレクト
アドレッシング領域
0000 0400H
I/O
0001 0000H
I/Oマップを参照
アクセス禁止
0003 E000H
内蔵RAM 8 Kバイト
0004 0000H
アクセス禁止
000E 0000H
0010 0000H
内蔵ROM
128 Kバイト
アクセス禁止
FFFF FFFFH
29
第 3 章 CPU および制御部
3.2
内部アーキテクチャ
FR60Lite CPU は , RISC アーキテクチャを採用し , 組込み用途向けの高機能命令を
導入した高性能コアです。
■ 特長
• RISC アーキテクチャの採用
基本命令 : 1 命令 1 サイクル
• 32 ビットアーキテクチャ
汎用レジスタ 32 ビット× 16 本
• 4 G バイトのリニアなメモリ空間
• 乗算器の搭載
32 ビット× 32 ビット乗算 : 5 サイクル
16 ビット× 16 ビット乗算 : 3 サイクル
• 割込み処理機能の強化
高速応答速度 (6 サイクル )
多重割込みのサポート
レベルマスク機能 (16 レベル )
• I/O 操作用命令の強化
メモリ−メモリ転送命令
ビット処理命令
• 高いコード効率
基本命令語長 : 16 ビット
• 低消費電力
スリープモード・ストップモード
• クロック分周比設定機能
■ 内部アーキテクチャ
FR60Lite の CPU は , 命令バスとデータバスが独立したハーバードアーキテクチャ構造
を採用しています。
32 ビット←→ 16 ビットバスコンバータは 32 ビットバス (F-bus) に接続され , CPU と周
辺リソースとのインタフェースを実現します。ハーバード←→プリンストンバスコン
バータは I-bus, D-bus 双方に接続され , CPU とバスコントローラとのインタフェースを
実現します。
30
第 3 章 CPU および制御部
図 3.2-1 内部アーキテクチャ
FR CPU
I-bus
内蔵RAM
内蔵ROM
D-bus
32
32
32
32
ハーバード プリンストン
バスコンバータ
F-bus
32
32
X-bus 32
32
24
外バス
アドレス
32ビット⇔16ビット
バスコンバータ
バスコントローラ
データ
16
16
R-bus
周辺/ポート
<注意事項>
外バス機能はサポートしていません。
31
第 3 章 CPU および制御部
■ CPU
CPU は 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの
です。
1 サイクルあたり 1 命令の実行を行うため , 5 段階の命令パイプライン方式を採用して
います。
パイプラインは以下のステージから構成されています。
• 命令フェッチ (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 │
└─────┼─────┼─────┼─────┼─────┼─────┐
命令6 │ IF │ ID │ EX │ MA │ WB │
└─────┴─────┴─────┴─────┴─────┘
命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ
イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。
命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ
リウェイトを伴ったロード・ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイ
クル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い
場合も命令の実行速度が低下します。
■ 32 ビット←→ 16 ビットバスコンバータ
32 ビット幅で高速アクセスされる F-bus と , 16 ビット幅でアクセスされる R-bus との
インタフェースを行い , CPU から内蔵周辺回路へのデータアクセスを実現します。
CPU から 32 ビット幅のアクセスがあった場合 , このバスコンバータがそれを 2 回の 16
ビット幅アクセスに変換して R-bus へのアクセスを行います。内蔵周辺回路の一部に
はアクセス幅に関して制限のあるものがあります。
32
第 3 章 CPU および制御部
■ ハーバード←→プリンストンバスコンバータ
CPU の命令アクセスとデータアクセスの整合をとり , 外部バスとのスムーズなインタ
フェースを実現します。
CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 ,
外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構
造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつ
け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス
アクセス順位が常に最適化されたものになります。
■ 命令概要
一般的な RISC の命令体系に加え , 組込み用途に最適化された論理演算とビット操作お
よびダイレクトアドレッシング命令をサポートしています。命令セットの一覧は「付録
E」に示します。各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れた
メモリ使用効率を持ちます。
命令セットは以下の機能グループに分けることができます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
● 算術演算
標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シ
フト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付き演
算や , アドレス計算に便利なフラグ値を変化させない演算も可能です。
さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32
ビットのステップ除算命令を持ちます。また , レジスタに即値をセットする即値転送命
令や , レジスタ間転送命令も備えています。
算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行
います。
● ロードとストア
ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内
の周辺リソース (I/O) への読出しと書込みにも使用されます。
ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま
た , 一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ
スプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付きレ
ジスタ間接のメモリアドレッシングも可能です。
● 分岐
分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと
持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ
いては後述します。
33
第 3 章 CPU および制御部
● 論理演算とビット操作
論理演算命令は汎用レジスタ間 , または汎用レジスタとメモリ ( および I/O) 間で AND,
OR, EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( および I/
O) の内容を直接操作できます。メモリアドレッシングは一般的なレジスタ間接です。
● ダイレクトアドレッシング
ダイレクトアドレッシング命令は I/O と汎用レジスタ間 , または I/O とメモリ間のアク
セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す
ることにより , 高速 , 高効率なアクセスを行えます。一部の命令についてはレジスタイ
ンクリメント・デクリメント付きレジスタ間接のメモリアドレッシングも可能です。
● その他
PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また ,
高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。
34
第 3 章 CPU および制御部
3.3
プログラミングモデル
MB91260B シリーズのプログラミングモデルについて説明します。
■ 基本プログラミングモデル
図 3.3-1 基本プログラミングモデル
32ビット
〔初期値〕
XXXX XXXXH
R0
…
R1
汎用レジスタ
… … R12
…
…
R13
…
…
…
…
AC
R14
XXXX XXXXH
FP
R15
0000 0000H
SP
プログラムカウンタ PC プログラムステータス PS -
ILM
- SCR
CCR
テーブルベースレジスタ TBR
リターンポインタ RP システムスタックポインタ SSP
ユーザスタックポインタ USP
乗除算結果レジスタ MDH
MDL
35
第 3 章 CPU および制御部
■ レジスタ
● 汎用レジスタ
32ビット
〔初期値〕
XXXX
R0
R1
… …
… …
R12
R13
AC
R14
FP
R15
SP
XXXXH
… … … … … XXXX
XXXXH
0000
0000H
レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータ , およびメ
モリアクセスのポインタとして使用されます。
16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために
一部の命令が強化されています。
R13: 仮想アキュムレータ
R14: フレームポインタ
R15: スタックポインタ
リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , "00000000H" (SSP の値 ) とな
ります。
● PS (Program Status)
プログラムステータスを保持するレジスタで , ILM, SCR と CCR の 3 つのパートに分か
れています。
図中 , 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。
書込みは無効です。
ビット位置→ 31 20
16
10
87
0
┌──────────┬────┬────┬──┬───────┐
│ │ │ │ │ │
└──────────┴┴┴┴┴┴────┴┴┴┴┴┴┴┴┴┴┴┘
└─┬──┘ └┬─┴───┬───┘
ILM
SCR
CCR
● CCR (Condition Code Register)
36
7
6
5
4
3
2
1
0
Å|
Å|
S
I
N
Z
V
C
[ 初期値 ]
-00XXXXB
第 3 章 CPU および制御部
[ ビット 5] S: スタックフラグ
R15 として使用されるスタックポインタを指定します。
値
内容
0
SSP が R15 として使用されます。
EIT 発生時 , 自動的に "0" となります。
( ただし , スタックに退避される値はクリアされる前の値です。)
1
USP が R15 として使用されます。
リセットにより "0" にクリアされます。
RETI 命令実行時は "0" にしてください。
[ ビット 4] I: 割込み許可フラグ
ユーザ割込み要求の許可・禁止を制御します。
値
内容
0
ユーザ割込みを禁止します。
INT 命令実行時 , "0" にクリアされます。
( ただし , スタック退避させる値はクリアする前の値です。)
1
ユーザ割込みを許可します。
ユーザ割込み要求のマスク処理は , ILM の保持する値により制御されます。
リセットにより "0" にクリアされます。
[ ビット 3] N: ネガティブフラグ
演算結果を "2" の補数で表現された整数とみなしたときの符号を示します。
値
内容
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
リセットによる初期状態は不定です。
[ ビット 2]Z : ゼロフラグ
演算結果が "0" であったかどうかを示します。
値
内容
0
演算結果が "0" 以外の値であったことを示します。
1
演算結果が "0" であったことを示します。
リセットによる初期状態は不定です。
37
第 3 章 CPU および制御部
[ ビット 1] V : オーバフローフラグ
演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 ,
オーバフローが生じたかどうかを示します。
値
内容
0
演算の結果 , オーバフローは生じていないことを示します。
1
演算の結果 , オーバフローが生じたことを示します。
リセットによる初期状態は不定です。
[ ビット 0] C : キャリフラグ
演算により, 最上位ビットからのキャリ, またはボローが発生したかどうかを示しま
す。
値
内容
0
キャリもボローも発生していないことを示します。
1
キャリまたはボローが発生したことを示します。
リセットによる初期状態は不定です。
● SCR (System Condition code Register)
10
9
8
D1
D0
T
[ 初期値 ]
XX0B
[ ビット 10, ビット 9] D1, D0 : ステップ除算用フラグ
ステップ除算実行時の中間データを保持します。
除算処理の実行途中に , 変更してはいけません。
ステップ除算実行途中に他の処理を行う場合は , PS レジスタの値を退避・復帰する
ことによりステップ除算の再開が保証されます。
リセットによる初期状態は不定です。
DIV0S 命令の実行により被除数と除数を参照して設定されます。
DIV0U 命令の実行により , 強制的にクリアされます。
[ ビット 8] T : ステップトレーストラップフラグ
ステップトレーストラップを有効にするかどうかを指定するフラグです。
値
内容
0
ステップトレーストラップを無効にします。
1
ステップトレーストラップを有効にします。
このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となります。
リセットにより "0" に初期化されます。
ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用
時 , ユーザプログラム中で使用することはできません。
38
第 3 章 CPU および制御部
● ILM
20
19
18
17
16
ILM4
ILM3
ILM2
ILM1
ILM0
[ 初期値 ]
01111B
割込みレベルマスク値を保持するレジスタで , この ILM の保持する値がレベルマスク
に使用されます。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。
プログラムから設定可能な値には制限があります。
元の値が 16 ∼ 31 のとき
新たな値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令の実行後は ,
( 指定した値+ 16) という値が転送されます。
元の値が 0 ∼ 15 のとき
0 ∼ 31 の任意の値が設定可能です。
リセットにより , 15 (01111B) に初期化されます。
[PS レジスタに関する注意事項 ]
一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ
使用時に割込み処理ルーチンでブレークしたり , PS フラグの表示内容が更新されたり
する場合があります。
いずれの場合も EIT から復帰後以降に , 正しく再処理を行うように設計されています
ので , EIT 前後の動作は仕様どおりの処理を行います。
1. DIV0U/DIV0S 命令の直前の命令で , (a) ユーザ割込み・NMI を受け付けた場合 , (b)
ステップ実行を行った場合 , (c) データイベントまたはエミュレータメニューにてブ
レークした場合 , 以下のような動作を行う場合があります。
(1) D0, D1 フラグが先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI またはエミュレータ ) を実行します。
(3) EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0/D1 フラグが (1) と同じ値に
更新されます。
2. ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために ORCCR,
STILM, MOV Ri, PS の各命令が実行されると , 以下のような動作を行います。
(1) PS レジスタが先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI) を実行します。
(2) EITから復帰後, 上記命令が実行され, PSレジスタが(1)と同じ値に更新されます。
39
第 3 章 CPU および制御部
● PC (Program Counter)
31
0
PC
[ 初期値 ]
XXXXXXXXH
[ ビット 31 ∼ビット 0]
プログラムカウンタで実行している命令のアドレスを示しています。
命令の実行を伴う PC の更新時に , ビット 0 は "0" に設定されます。ビット 0 が "1"
になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。
ただし, その場合でもビット0は無効であり, 命令は2の倍数のアドレスに置く必要が
あります。
リセットによる初期値は不定です。
● TBR (Table Base Register)
31
0
TBR
[ 初期値 ]
000FFC00H
テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス
を保持します。
リセットによる初期値は , "000FFC00H" です。
● RP (Return Pointer)
31
0
RP
[ 初期値 ]
XXXXXXXXH
リターンポインタで , サブルーチンから復帰するアドレスを保持します。
CALL 命令実行時 , PC の値が RP に転送されます。
RETI 命令実行時 , RP の内容が PC に転送されます。
リセットによる初期値は不定です。
● SSP (System Stack Pointer)
31
SSP
0
[ 初期値 ]
00000000H
SSP は , システムスタックポインタです。
S フラグが "0" のとき , 汎用レジスタの R15 として機能します。
SSP を明示的に指定することも可能です。また , EIT 発生時に , PS と PC を退避するス
タックを指定するスタックポインタとしても使用されます。
リセットによる初期値は "00000000H" です。
40
第 3 章 CPU および制御部
● USP (User Stack Pointer)
31
0
USP
[ 初期値 ]
XXXXXXXXH
USP は , ユーザスタックポインタです。
S フラグが "1" のとき , 汎用レジスタの R15 として機能します。
USP を明示的に指定することも可能です。
リセットによる初期値は不定です。
RETI 命令で使用することはできません。
● 乗除算レジスタ : MDH, MDL (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: 商
41
第 3 章 CPU および制御部
データ構造
3.4
MB91260B シリーズのデータ配置には次の 2 種類があります。
• ビットオーダリング
• バイトオーダリング
■ ビットオーダリング
ビットオーダリングとして , リトルエンディアンを採用しています。
図 3.4-1 ビットオーダリング
ビット 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
MSB
1
2
0
LSB
■ バイトオーダリング
バイトオーダリングとして , ビッグエンディアンを採用しています。
図 3.4-2 バイトオーダリング
MSB
LSB
ビット31
23
15
7
0
メモリ
10101010B 11001100B 11111111B 00010001B
│ │
ビット
│7 0 │ ↑ ↑ ↑ ↑
├────┤ │ │ │ │
n 番地│10101010B│←──────┘ │ │ │
├────┤ │ │ │
(n+1) 番地│11001100B│←───────────┘ │ │
├────┤ │ │
(n+2) 番地│11111111B│←────────────────┘ │
├────┤ │
(n+3) 番地│00010001B│←─────────────────────┘
├────┤
│ │
│ │ 42
第 3 章 CPU および制御部
3.5
ワードアライメント
命令やデータはバイト単位でアクセスするため , 配置するアドレスは命令長やデータ
幅で異なります。
■ プログラムアクセス
MB91260Bシリーズのプログラムは, "2"の倍数のアドレスに配置する必要があります。
PC のビット 0 は , 命令の実行に伴う PC の更新時に "0" に設定されます。"1" になる可
能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。ただし , そ
の場合でもビット 0 は無効であり , 命令は "2" の倍数のアドレスに置かなくてはなりま
せん。
奇数アドレスの例外はありません。
■ データアクセス
データアクセスを行う際 , その幅により以下のように強制的なアライメントがアドレ
スに対して施されます。
ワードアクセス
: アドレスは , "4" の倍数 ( 最下位 2 ビットは強制的に "00B")
ハーフワードアクセス : アドレスは , "2" の倍数 ( 最下位ビットは強制的に "0")
バイトアクセス
:
−
ワードおよびハーフワードアクセス時に , 一部のビットが強制的に "0" にされるのは実
効アドレスの計算結果に対してです。例えば , @ (R13, Ri) のアドレッシングモードの
場合 , 加算前のレジスタは ( たとえ最下位ビットが "1" であっても ) そのまま計算に使
用され , 加算結果の下位ビットがマスクされます。計算前のレジスタがマスクされるわ
けではありません。
[ 例 ] LD @ (R13, R2) , R0
R13
00002222 H
R2
00000003 H
+)
加算結果
00002225 H
↓ 下位2ビット強制マスク
アドレス端子 00002224 H
43
第 3 章 CPU および制御部
3.6
メモリマップ
MB91260B シリーズでのメモリマップを示します。
■ メモリマップ
アドレス空間は 32 ビットリニアです。
図 3.6-1 にメモリマップを示します。
図 3.6-1 メモリマップ
0000 0000H
バイトデータ
0000 0100H
0000 0200H
ハーフワードデータ
ワードデータ
0000 0400H
~
~
000F FC00H
ベクタテーブル
初期領域
000F FFFFH
~
FFFF FFFFH
44
~
ダイレクト
アドレッシング領域
第 3 章 CPU および制御部
図 3.6-2 MB91F264B, MB91264B のメモリマップ
シングルチップモード
0000 0000H
I/O
ダイレクト
アドレッシング領域
0000 0400H
I/O
0001 0000H
0003 E000H
I/Oマップを参照
アクセス禁止
内蔵RAM 8 Kバイト
0004 0000H
アクセス禁止
000C 0000H
内蔵ROM
256 Kバイト
0010 0000H
アクセス禁止
FFFF FFFFH
図 3.6-3 MB91263B のメモリマップ
シングルチップモード
0000 0000H
I/O
ダイレクト
アドレッシング領域
0000 0400H
I/O
0001 0000H
I/Oマップを参照
アクセス禁止
0003 E000H
内蔵RAM 8 Kバイト
0004 0000H
アクセス禁止
000E 0000H
0010 0000H
内蔵ROM
128 Kバイト
アクセス禁止
FFFF FFFFH
45
第 3 章 CPU および制御部
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ
ングにより , 命令中で直接オペランドアドレスを指定できます。
ダイレクトアドレス指定可能なアドレス領域の大きさは , データ長ごとに異なります。
• バイトデータ
(8 ビット )
• ハーフワードデータ
(16 ビット ) :000H ∼ 1FFH
• ワードデータ
(32 ビット ) :000H ∼ 3FFH
:000H ∼ 0FFH
■ ベクタテーブル初期領域
"000FFC00H" ∼ "000FFFFFH" の領域は EIT ベクタテーブル初期領域です。
EIT処理時に使用されるベクタテーブルは, TBRを書き換えることにより任意のアドレ
スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。
46
第 3 章 CPU および制御部
3.7
分岐命令
分岐命令には , 遅延スロット付きの動作と遅延スロットなしの動作を指定できます。
■ 遅延スロット付き動作
● 命令
以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。
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,
JMP:D
@R0
LDI:8
#0,
R0
; Label に分岐
R0
; 分岐先アドレスには影響を与えない。
…
47
第 3 章 CPU および制御部
(2) RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受
けません。
[例]
; これより前に設定された RP の示すアドレスへ分岐
RET:D
MOV
R8,
RP
; リターン動作には影響を与えない。
…
(3) Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。
[例]
ADD
#1,
R0
BC:D
Overflow
; フラグ変化
; 上記の命令の実行結果により分岐
; このフラグ更新は上記分岐命令では参照しない。
ANDCCR#0
…
(4) CALL:D 命令の遅延スロット中の命令で RP を参照すると , CALL:D 命令により更新
された内容が読み出されます。
[例]
; RP を更新して分岐
CALL:D Label
MOV
RP,
R0
; 上記 CALL:D の実行結果の RP を転送
…
● 制限事項
(1) 遅延スロット内で実行できる命令
遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。
•
1 サイクル命令
•
分岐命令ではないこと
•
順番が変化した場合でも動作に影響を与えない命令
「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」, 「a」, 「b」, 「c」
または「d」と記載された命令です。
(2) ステップトレーストラップ
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト
ラップは発生しません。
(3) 割込み・NMI
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理
しません。
(4) 未定義命令例外
遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このと
き , 未定義命令は NOP 命令として動作します。
48
第 3 章 CPU および制御部
■ 遅延スロットなし動作
● 命令
以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。
JMP
@Ri
CALL label12
CALL @Ri
RET
BRA label9
BNO
label9
BEQ label9
BNE label9
BC
label9
BNC
label9
BN
BP
BV
label9
BNV
label9
BLT label9
BGE label9
BLE label9
BGT
label9
BLS
BHI
label9
label9
label9
label9
● 動作説明
遅延スロットなしの動作では , あくまで命令の並びの順に実行します。直後の命令が
分岐前に実行されることはありません。
[例]
;
命令の並び
ADD
R1, R2
;
BRA
LABEL
; 分岐命令 ( 遅延スロットなし )
MOV
R2, R3
; 実行されない
…
LABEL
ST
R3, @R4 ; 分岐先
遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな
いとき 1 サイクルとなります。
遅延スロットに適当な命令を入れることができないために NOP を明記した遅延スロッ
ト付き分岐命令に比べ , 命令コード効率を上げることができます。
遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し ,
そうでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率
を両立させることができます。
49
第 3 章 CPU および制御部
3.8
EIT ( 例外・割込み・トラップ )
EIT とは , 現プログラム実行時にイベントの発生により , そのプログラムの実行を中
断し , 他のプログラムを実行することを指します。例外 (Exception), 割込み
(Interrupt), トラップ (Trap) の総称です。
■ EIT( 例外・割込み・トラップ )
例外とは , 実行中のコンテキストに関連して発生する事象です。例外を起こした命令か
ら再実行します。
割込みとは , 実行中のコンテキストとは無関係に発生する事象です。イベント要因は ,
ハードウェアです。
トラップとは , 実行中のコンテキストに関連して発生する事象です。システムコールの
ようにプログラムで指示するものがあります。トラップを起こした命令の次の命令か
ら再実行します。
■ 特長
• 割込みに多重割込みをサポート
• 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 )
• トラップ命令 (INT)
• エミュレータ起動用 EIT ( ハードウェア / ソフトウェア )
■ EIT 要因
EIT 要因を以下に示します。
• リセット
• ユーザ割込み ( 内部リソース , 外部割込み )
NMI
• 遅延割込み
• 未定義命令例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
• コプロセッサ不在トラップ
• コプロセッサエラートラップ
■ EIT からの復帰
EIT から復帰するためには RETI 命令を実行します。
50
第 3 章 CPU および制御部
3.8.1
割込みレベル
割込みレベルは 0 ∼ 31 あり , 5 ビットで管理されます。
■ 割込みレベル
各レベルの割当てを以下に示します。
表 3.8-1 割込みレベル
レベル
割込み要因
2 進数
10 進数
00000B
0
( システム予約 )
…
…
…
…
…
…
00011B
3
( システム予約 )
00100B
4
00101B
5
( システム予約 )
…
…
…
…
…
…
01110B
14
( システム予約 )
01111B
15
NMI ( ユーザ用 )
10000B
16
割込み
10001B
17
割込み
…
…
…
…
…
…
11110B
30
割込み
11111B
31
─
{
INTE 命令
ステップトレーストラップ
注意事項
ILM の元の値が 16 ∼ 31 のとき ,
この範囲の値をプログラムにより
ILM に設定することはできません。
ILM 設定時 , ユーザ割込み禁止
ICR 設定時 , 割込み禁止
操作が可能なのは , 16 ∼ 31 のレベルです。
未定義命令例外 , コプロセッサ不在トラップ , コプロセッサエラートラップおよび INT
命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。
51
第 3 章 CPU および制御部
■ I フラグ
割込みの許可・禁止を指定するフラグです。PS レジスタの CCR のビット 4 として設
けられています。
値
内容
0
割込みを禁止します。
INT 命令実行時は "0" にクリアされます
( ただし , スタック退避させる値はクリアする前の値です ) 。
1
割込みを許可します。
割込み要求のマスク処理は , 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.8-1) が
ILM の保持するレベルマスク値と比較されます。比較した結果 , 次の条件が成立した
ときはマスクされ , 要求は受理されません。
要因の持つ割込みレベル ≧ レベルマスク値
52
第 3 章 CPU および制御部
3.8.2
ICR (Interrupt Control Register )
割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを
設定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O
空間にマッピングされており , CPU からはバスを通してアクセスされます。
■ ICR ビット構成
ICR00 ∼ ICR47
7
6
5
4
3
2
1
0
アドレス
000440H ∼ 00046FH
−
−
−
−
−
−
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
初期値
---11111B
[R/W, R]
[ ビット 4] ICR4
ICR4 は , 常に "1" です。
[ ビット 3 ∼ビット 0] ICR3 ∼ ICR0
対応する割込み要因の割込みレベルの下位 4 ビットです。
ビット 4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定できます。
読出し・書込み可能です。
■ ICR マッピング
割込み要因と割込み制御レジスタ , および割込みベクタを表 3.8-2 に示します。
なお , 割込みに関する詳細は「第 5 章 割込みコントローラ」を参照してください。
表 3.8-2 割込み要因と割込み制御レジスタ , 割込みベクタ
対応する割込みベクタ
割込み要因
割込み制御レジスタ
番号
アドレス
16 進
10 進
IRQ00
ICR00
00000440H
10H
16
TBR + 3BCH
IRQ01
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 初期値 : "000FFC00H"
53
第 3 章 CPU および制御部
3.8.3
SSP (System Stack Pointer)
EIT の受理および復帰動作時のデータ退避・復帰用スタックを示すポインタとして
使用されます。
EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加
算されます。
31
0
SSP
[ 初期値 ]
00000000H
SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。
リセットによる初期値は "00000000H" です。
■ 割込みスタック
SSP により示される領域で , PC および PS の値が退避・復帰されます。割込み後は SSP
の示すアドレスに PC, (SSP + 4) のアドレスに PS が格納されています。
図 3.8-1 割込みスタック
[例]
SSP
[割込み前]
80000000H
[割込み後]
SSP
7FFFFFF8H
メモリ
54
80000000H
80000000H
7FFFFFFCH
7FFFFFFCH
7FFFFFF8H
7FFFFFF8H
PS
PC
第 3 章 CPU および制御部
3.8.4
TBR (Table Base Register)
EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。
■ TBR(Table Base Register)
31
0
TBR
[ 初期値 ]
000FFC00H
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ
スとなります。
リセットによる初期値は "000FFC00H" です。
■ EIT ベクタテーブル
TBR の示すアドレスから 1 K バイトの領域が EIT 用ベクタ領域となっています。
1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ
うに表されます。
vctadr
= TBR + vctofs
= TBR + (3FCH − 4 × vct)
vctadr:
ベクタアドレス
vctofs:
ベクタオフセット
vct:
ベクタ番号
加算結果の下位 2 ビット は常に "00B" として扱われます。
"000FFC00H" ∼ "000FFFFFH" の領域がリセットによるベクタテーブルの初期領域です。
ベクタの一部には特殊な機能が割り当てられています。
なお , アーキテクチャ上のベクタテーブルを表 3.8-3 に示します。
表 3.8-3 ベクタテーブル (1 / 3)
割込み要因
割込み番号
割込みレベル
オフセット
TBR デフォルト
のアドレス
10 進
16 進
リセット *
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
55
第 3 章 CPU および制御部
表 3.8-3 ベクタテーブル (2 / 3)
割込み要因
割込み番号
割込みレベル
オフセット
TBR デフォルト
のアドレス
10 進
16 進
システム予約
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
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
外部割込み 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
UART0 ( 受信 )
27
1B
ICR11
390H
000FFF90H
UART0 ( 送信 )
28
1C
ICR12
38CH
000FFF8CH
DTTI
29
1D
ICR13
388H
000FFF88H
DMAC0 ( 終了 , エラー )
30
1E
ICR14
384H
000FFF84H
DMAC1 ( 終了 , エラー )
31
1F
ICR15
380H
000FFF80H
DMAC2/3/4 ( 終了 , エラー )
32
20
ICR16
37CH
000FFF7CH
000FFF78H
56
UART1 ( 受信完了 )
33
21
ICR17
378H
UART1 ( 送信完了 )
34
22
ICR18
374H
000FFF74H
UART2 ( 受信完了 )
35
23
ICR19
370H
000FFF70H
UART2 ( 送信完了 )
36
24
ICR20
36CH
000FFF6CH
積和
PPG0
37
25
ICR21
368H
000FFF68H
38
26
ICR22
364H
000FFF64H
PPG1
39
27
ICR23
360H
000FFF60H
PPG2/3
40
28
ICR24
35CH
000FFF5CH
PPG4/5/6/7
41
29
ICR25
358H
000FFF58H
PPG8/9/10/11/12/13/14/15
42
2A
ICR26
354H
000FFF54H
外部割込み 8/9
43
2B
ICR27
350H
000FFF50H
波形 0( アンダフロー )
44
2C
ICR28
34CH
000FFF4CH
波形 1( アンダフロー )
45
2D
ICR29
348H
000FFF48H
波形 2( アンダフロー )
46
2E
ICR30
344H
000FFF44H
タイムベースタイマ
オーバフロー
フリーランタイマ
( コンペアクリア )
47
2F
ICR31
340H
000FFF40H
48
30
ICR32
33CH
000FFF3CH
第 3 章 CPU および制御部
表 3.8-3 ベクタテーブル (3 / 3)
割込み要因
割込み番号
割込みレベル
オフセット
TBR デフォルト
のアドレス
10 進
16 進
フリーランタイマ
( ゼロ検出 )
49
31
ICR33
338H
000FFF38H
A/D0
50
32
ICR34
334H
000FFF34H
A/D1
51
33
ICR35
330H
000FFF30H
A/D2
52
34
ICR36
32CH
000FFF2CH
PWC0 ( 測定完了 )
53
35
ICR37
328H
000FFF28H
PWC1 ( 測定完了 )
54
36
ICR38
324H
000FFF24H
PWC0 ( オーバフロー )
55
37
ICR39
320H
000FFF20H
PWC1 ( オーバフロー )
56
38
ICR40
31CH
000FFF1CH
ICU 0 ( 取込み )
57
39
ICR41
318H
000FFF18H
ICU 1 ( 取込み )
58
3A
ICR42
314H
000FFF14H
ICU 2/3 ( 取込み )
59
3B
ICR43
310H
000FFF10H
000FFF0CH
OCU0/1 ( 一致 )
60
3C
ICR44
30CH
OCU2/3 ( 一致 )
61
3D
ICR45
308H
000FFF08H
OCU4/5 ( 一致 )
62
3E
ICR46
304H
000FFF04H
遅延割込み要因ビット
システム予約
(REALOS にて使用 )
63
3F
ICR47
300H
000FFF00H
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
000FFEC4H
システム予約
78
4E
−
2C4H
システム予約
79
4F
−
2C0H
000FFEC0H
80
50
2BCH
000FFEBCH
∼
255
∼
FF
∼
000H
∼
000FFC00H
INT 命令で使用
−
*: TBR の値を変更してもリセットベクタとモードベクタは常に固定アドレス "000FFFFCH" ,
"000FFFF8H" が使用されます。
57
第 3 章 CPU および制御部
3.8.5
多重 EIT 処理
複数の EIT 要因が同時に発生した場合 , CPU は 1 つの EIT 要因を選択して受理し ,
EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返しま
す。
EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要
因のハンドラの命令を実行します。
そのため , 複数の EIT 要因が同時に発生した場合 , 各要因のハンドラの実行順序は ,
次の 2 つの要素により決まります。
• EIT 要因受理の優先順位
• 受理した場合に他の要因をどのようにマスクするか
■ EIT 要因受理の優先度
EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) 他の要
因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番です。
必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。
EIT 要因受理の優先度は , 表 3.8-4 のようになっています。
表 3.8-4 EIT 要因の受理の優先度と他の要因へのマスク
受理の優先順位
要因
他の要因に対するマスク
1
リセット
他の要因は破棄されます。
2
未定義命令例外
取消し
3
INTE 命令
ILM = 4
他の要因は破棄されます。
4
INT 命令
I フラグ= 0
5
コプロセッサ不在トラップ
コプロセッサエラートラップ
6
ユーザ割込み
ILM =受理した要因のレベル
7
NMI ( ユーザ用 )
ILM = 15
8
NMI ( エミュレータ用 )
ILM = 4
9
ステップトレーストラップ
ILM = 4
―
EIT 要因を受理した後の他の要因に対するマスクの処理を考慮すると , 同時に発生した
EIT 要因の各ハンドラの実行順序は , 表 3.8-5 のようになります。
58
第 3 章 CPU および制御部
表 3.8-5 EIT ハンドラの実行順序
ハンドラの実行順序
要因
1
リセット *
2
未定義命令例外
3
INTE 命令 *
4
ステップトレーストラップ
5
NMI ( ユーザ用 )
6
INT 命令
7
ユーザ割込み
8
コプロセッサ不在トラップ , コプロセッサエラートラップ
*: 他の要因は破棄されます。
[例]
図 3.8-2 多重 EIT 処理
メインルーチン
NMIのハンドラ
INT命令
のハンドラ
優先度
(高) NMI発生
①最初に実行
(低) INT命令実行
②次に実行
59
第 3 章 CPU および制御部
3.8.6
動作
EIT の動作について説明します。
転送元の「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 処理シーケンス
に移行します。
60
第 3 章 CPU および制御部
■ 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. "00100B"
6. "0"
→ ILM
→ S フラグ
7. (TBR + 3D8H) → PC
INTE 命令およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用
しないでください。また , ステップ実行中は INTE による EIT の発生はありません。
■ ステップトレーストラップの動作
PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに
しておくと , 1 命令実行ごとにトラップが発生し , ブレークします。
● ステップトレーストラップ検出の条件
• T フラグ = 1
• 遅延分岐命令ではないとき
• INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき
• 以上の条件が成立すると , 命令動作の切れ目でブレークします。
61
第 3 章 CPU および制御部
● 動作
1. SSP − 4
→ SSP
2. PS
→ (SSP)
3. SSP − 4
→ SSP
4. 次の命令のアドレス → (SSP)
5. "00100B"
6. "0"
→ ILM
7. (TBR + 3CCH)
→ PC
→ S フラグ
Tフラグをセットしてステップトレーストラップをイネーブルにしたとき, ユーザ用の
NMI とユーザ割込みは禁止状態となります。また , INTE 命令による EIT は発生しなく
なります。
T フラグをセットした次の命令からトラップが発生します。
■ 未定義命令例外の動作
命令のデコード時に未定義命令を検出すると , 未定義命令例外が発生します。
● 未定義命令例外の検出条件
• 命令のデコード時に未定義命令であることを検出
• 遅延スロット外に置かれている ( 遅延分岐命令の直後ではないこと )
• 以上の条件が成立すると , 未定義命令例外が発生し , ブレークします。
● 動作
1. SSP − 4
→ SSP
2. PS
→ (SSP)
3. SSP − 4
→ SSP
4. PC
→ (SSP)
5. "0"
→ S フラグ
6. (TBR + 3C4H)
→ PC
PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。
■ コプロセッサ不在トラップ
実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ
サ不在トラップが発生します。
● 動作
1. SSP − 4
→ SSP
2. PS
→ (SSP)
3. SSP − 4
→ SSP
4. 次の命令のアドレス → (SSP)
62
5. "0"
→ S フラグ
6. (TBR + 3E0H)
→ PC
第 3 章 CPU および制御部
■ コプロセッサエラートラップ
コプロセッサを使用しているときにエラーが発生した場合 , 次にそのコプロセッサを操
作するコプロセッサ命令を実行したとき , コプロセッサエラートラップが発生します。
● 動作
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" の状態で実行する必要があります。
<注意事項>
分岐命令の遅延スロットには , EIT に関して制約があります。
「3.7 分岐命令」を参照してください。
63
第 3 章 CPU および制御部
3.9
動作モード
MB91260B シリーズの動作モードには , バスモードとアクセスモードがあります。
ただし , シングルチップモードのみサポートします。
■ 動作モード
バスモード
シングルチップ
● バスモード
バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを指し ,
モード設定端子 (MD2, MD1, MD0) で指定します。
<注意事項>
本品種では , 外バスモードをサポートしておりません。
■ バスモード
バスモードの詳細は 「3.6 メモリマップ」を参照してください。
● シングルチップモード
内部 I/O, 内蔵 RAM, 内蔵 ROM が有効で , それ以外の領域へのアクセスは無効である
モードです。外部端子は , 周辺リソースまたは汎用ポートとして機能します。バス端子
としては機能しません。
<注意事項>
本品種では , 外バスモードをサポートしておりません。
■ モード設定
動作モードの設定は , モード端子 (MD2, MD1, MD0)とモードデータによって行います。
● モード端子
MD2, MD1, MD0 の 3 端子で , モードベクタ , リセットベクタフェッチに関する指定を
行います。
表に示した設定以外は禁止です。
64
第 3 章 CPU および制御部
モード端子
MD2, MD1, MD0
モード名
リセットベクタ
アクセス領域
0 0 0B
内 ROM モードベクタ
内部
備考
<注意事項>
MD2, MD1, MD0: 000B 以外の設定は禁止です。
● モードデータ
モードベクタフェッチ (「3.10 リセット ( デバイス初期化 ) ■リセットシーケンス」を
参照 ) によって内部のモードレジスタ (MODR) に書き込むデータを モードデータとよ
びます。
モードレジスタに設定が行われた後 , 本レジスタの設定に従った動作モードで動作し
ます。
モードデータは , すべてのリセット要因で設定されます。また , ユーザプログラムから
は設定することはできません。
<モードデータ詳細説明>
31
20
29
28
27
26
25
24
0
0
0
0
0
1
1
1
動作モード設定ビット
[ ビット 31 ∼ビット 24] 予約ビット
必ず "00000111B" を設定してください。"00000111B" 以外の値を設定したときの動作
は保証できません。
<注意事項>
モードベクタに設定するモードデータは, "0x000FFFF8H"にバイトデータとして配置する
必要があります。
MB91260B シリーズは , バイトエンディアンとしてビッグエンディアンを採用しています
ので , 下図のように , ビット 31 ∼ビット 24 の最上位バイトに配置してください。
31
24 23
16 15
8 7
0
誤
0x000FFFF8H
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
Mode
正
0x000FFFF8H
Mode
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
0x000FFFFCH
リセットベクタ
65
第 3 章 CPU および制御部
3.10
リセット ( デバイス初期化 )
本品種の初期化であるリセット動作について示します。
リセット要因が発生すると , デバイスはすべてのプログラムおよびハードウェア動
作を停止し , 状態を初期化します。この状態をリセット状態とよびます。
リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェ
ア動作を開始します。このリセット状態から動作開始にまでの一連の動作をリセッ
トシーケンスとよびます。
■ リセットレベル
リセット動作は , 2 種類のレベルに分けられ , それぞれ発生要因および初期化の内容が
異なります。各リセットレベルについて以下に示します。
● 設定初期化リセット (INIT)
すべての設定を初期化する最強レベルのリセットを設定初期化リセット (INIT) とよび
ます。
設定初期化リセット (INIT) により初期化される主な内容は以下のとおりです。
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
• 内部クロックに関するすべての設定 (クロックソース選択, PLL制御, 分周比設定)
• 外部バスの CS0 領域に関するすべての設定
• その他端子状態に関するすべての設定
• 動作初期化リセット (RST) で初期化されるすべての箇所
詳細はそれぞれの機能の説明を参照してください。
なお , 電源投入後は必ず INIT 端子にて設定初期化リセット (INIT) を行ってください。
● 動作初期化リセット (RST)
プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ
びます。
設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。
動作初期化リセット (RST) により初期化される主な内容は以下のとおりです。
• プログラム動作
• CPU および内部バス
• 周辺回路のレジスタ設定値
• I/O ポート設定
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
詳細はそれぞれの機能の説明を参照してください。
66
第 3 章 CPU および制御部
■ リセット要因
過去に発生したリセット要因は , RSRR ( リセット要因レジスタ ) を読み出すことによ
り知ることが可能です。
各解説にあるレジスタ , フラグの詳細な説明は ,「3.11.5 クロック生成制御部のブロッ
ク図 」, 「3.11.6 クロック生成制御部のレジスタ詳細説明 」を参照してください。
各リセット発生要因と発生するリセットレベルについて以下に示します。
● INIT 端子入力 ( 設定初期化リセット端子 )
外部端子の INIT 端子は , 設定初期化リセット端子として機能します。
本端子へ "L" レベル入力を行っている間 , 設定初期化リセット (INIT) 要求が発生しま
す。
本端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除さ
れます。
本端子要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセット要因レ
ジスタ ) 中のビット 15:INIT ビットがセットされます。
本端子要求による設定初期化リセット (INIT) は , すべてのリセット要因中で最強のも
のであり , すべての入力・動作・状態よりも優先されます。
なお, 電源投入直後は必ずINIT端子にて設定初期化リセット (INIT) を行ってください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L" レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子に
よる INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
• 発生要因 : 外部 INIT 端子への "L" レベル入力
• 解除要因 : 外部 INIT 端子への "H" レベル入力
• 発生レベル : 設定初期化リセット (INIT)
• 対応フラグ : ビット 15:INIT
●STCR:SRST ビット書込み ( ソフトウェアリセット )
STCR ( スタンバイ制御レジスタ ) 中のビット 4:SRST ビットに "0" が書き込まれると ,
ソフトウェアリセット要求が発生します。
ソフトウェアリセット要求は , 動作初期化リセット (RST) 要求です。
要求が受け付けられ動作初期化リセット (RST) が発生するとソフトウェアリセット要
求は解除されます。
ソフトウェアリセット要求による動作初期化リセット (RST) が発生した場合 , RSRR
( リセット要因レジスタ ) 中のビット 11:SRST ビットがセットされます。
ソフトウェアリセット要求による動作初期化リセット (RST) は , TBCR ( タイムベース
カウンタ制御レジスタ ) 中のビット 9:SYNCR ビットがセットされている場合 ( 同期リ
セットモード ) , すべてのバスアクセスが停止した後でないと発生しません。
このため , バスの使用状況によっては動作初期化リセット (RST) が発生するまでに長
時間を要する場合があります。
• 発生要因 : STCR ( スタンバイ制御レジスタ ) 中のビット 4:SRST ビットへの "0" 書
込み
• 解除要因 : 動作初期化リセット (RST) の発生
• 発生レベル : 動作初期化リセット (RST)
67
第 3 章 CPU および制御部
• 対応フラグ : ビット 11:SRST
●ウォッチドッグリセット
RSRR ( ウォッチドッグタイマ制御レジスタ ) に対し書込みを行うと , ウォッチドッグ
タイマが起動します。その後 , RSRR 中のビット 9, 8:WT1,WT0 ビットにて設定した周
期内に CTBR ( タイムベースカウンタクリアレジスタ ) への A5H/5AH 書込みが行われ
ないと , ウォッチドッグリセット要求が発生します。
ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付
けられ設定初期化リセット (INIT) が発生するか , または動作初期化リセット (RST) が
発生すると , ウォッチドッグリセット要求は解除されます。
ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合, RSRR
( リセット要因レジスタ ) 中のビット 13:WDOG ビットがセットされます。
なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合
では , 発振安定待ち時間の設定は初期化されません。また , メインランおよびサブラン
中にメイン発振を停止しない場合は , 発振安定待ち時間を確保しません。
• 発生要因 : ウォッチドッグタイマの設定周期経過
• 解除要因 : 設定初期化リセット (INIT) または動作初期化リセット (RST) の発生
• 発生レベル : 設定初期化リセット (INIT)
• 対応フラグ : ビット 13:WDOG
■ リセットシーケンス
リセット要因の消失により , デバイスはリセットシーケンスの実行を開始します。
リセットシーケンスは , リセットレベルによりそれぞれ動作内容が異なります。
各リセットレベルにおけるリセットシーケンスの動作内容について以下に示します。
● 設定初期化リセット (INIT) 解除シーケンス
設定初期化リセット (INIT) 要求が解除されると , デバイスは以下の動作を順に実行し
ます。ただし , メインランおよびサブラン中にメイン発振を停止しない場合のウォッチ
ドッグリセットでは , (2) の発振安定待ち時間を確保しません。
(1) 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移
(2) 発振安定待ち時間 (STCR のビット 3, ビット 2:OS1, OS0 にて設定 ) の間 , 動作初期
化リセット (RST) 状態を保持 , 内部クロック停止
(3) 動作初期化リセット (RST) 状態 , 内部クロック動作開始
(4) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
(5) "000FFFF8H" 番地よりモードベクタの読出し
(6) MODR ( モードレジスタ ) へモードベクタの書込み
(7) "000FFFFCH" 番地よりリセットベクタの読出し
(8) PC ( プログラムカウンタ ) へリセットベクタの書込み
(9) PC ( プログラムカウンタ ) の示す番地よりプログラム動作開始
68
第 3 章 CPU および制御部
● 動作初期化リセット (RST) 解除シーケンス
動作初期化リセットは , ソフトウェアリセットで発生します。
動作初期化リセット (RST) 要求が解除されると , デバイスは以下の動作を順に実行し
ます。
(1) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
(2) "000FFFF8H" 番地よりモードベクタの読出し
(3) MODR ( モードレジスタ ) へモードベクタの書込み
(4) "000FFFFCH" 番地よりリセットベクタの読出し
(5) PC ( プログラムカウンタ ) へリセットベクタの書込み
(6) PC ( プログラムカウンタ ) の示す番地より , プログラム動作開始
■ 発振安定待ち時間
デバイスの原発振が停止していたか , またはその可能性がある状態から復帰したとき ,
自動的に発振安定待ち状態に遷移します。本機能により発振開始後の安定していない
発振器出力を使用しないようにします。
発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベース
カウンタのみが動作して , STCR ( スタンバイ制御レジスタ ) にて設定された安定待ち
時間の経過を待ちます。
発振安定待ち動作の詳細について以下に示します。
● 発振安定待ち発生要因
発振安定待ち発生要因を以下に示します。
(1) 設定初期化リセット (INIT) の解除時
各種要因による設定初期化リセット (INIT) が解除された直後に , 発振安定待ち状態
へ遷移します。
発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。
なお , INIT 端子による初期化時は発振安定待ち時間は最小値に設定されるため , 発
振安定待ちは行いません。INIT 端子の入力幅にて発振安定待ち時間を確保してくだ
さい。
(2) ストップモードからの復帰時
ストップモードが解除された直後に , 発振安定待ち状態へ遷移します。ただし , 設
定初期化リセット (INIT) 要求により解除された場合は , 設定初期化リセット (INIT)
状態に遷移し , 設定初期化リセット (INIT) が解除された後 , 発振安定待ち状態へ遷
移します。
発振安定待ち時間経過後は , ストップモードが解除された要因に対応した状態へと
遷移します。
• 有効な外部割込み要求入力 (NMI 含む ) の発生による復帰時
→ 通常動作状態へ遷移します。
• 設定初期化リセット (INIT) 要求による復帰時
→ 設定初期化リセット (INIT) 状態へ遷移します。
69
第 3 章 CPU および制御部
(3) PLL 選択時の異常状態からの復帰時
PLL をソースクロックとして動作しているときに PLL 制御に何らかの異常 * が発
生した場合 , PLL ロックタイムの確保のために自動的に発振安定待ち時間に遷移し
ます。
発振安定待ち時間経過後は , 通常動作状態へ遷移します。
*: PLL 使用中の逓倍率変更や , PLL 動作許可ビット化けの発生などです。
● 発振安定待ち時間の選択
発振安定待ち時間は , 内蔵タイムベースカウンタを用いて計測されます。
発振安定待ち発生要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカ
ウンタはいったん初期化された後 , 発振安定待ち時間の計測を開始します。
STCR ( スタンバイ制御レジスタ ) の ビット 3, ビット 2:OS1, OS0 ビットにより , 発振安
定待ち時間を 4 種類のうちから選択して設定できます。
いったん選択した設定は , 外部 INIT 端子による設定初期化リセット (INIT) 以外では初
期化されません。それ以外の設定初期化リセット (INIT) や動作初期化リセット (RST)
では , リセット発生以前に設定した発振安定待ち時間が保持されます。
発振安定待ち時間として選択可能な4種類の設定は, それぞれ以下の用途を想定してあ
ります。
•
OS1, OS0 = "00B" : 発振安定待ち時間なし
( ストップモードでメイン発振は停止させないで , PLL 発振器
を停止させる場合 )
<注意事項>
クロックソースとしてメイン PLL クロックを使用中で OSCD1=0 でのストップモードか
らの復帰の際には , 必ず , STCR の OS1, OS0 ビットを OS1, OS0=00B 以外の設定にして
メイン PLL のロック待ち時間を確保してください。
• OS1, OS0 = "01B" : PLL ロック待ち時間
( 外部クロック入力や , ストップモードで発振器を停止させな
い場合 )
• OS1, OS0 = "10B" : 発振安定待ち時間 ( 中 )
( セラミック振動子などの安定が速い発振子を使用する場合 )
• OS1, OS0 = "11B" : 発振安定待ち時間 ( 長 )
( 一般の水晶発振子などを使用する場合 )
なお, 電源投入直後は必ずINIT端子にて設定初期化リセット (INIT) を行ってください。
また , 下記状態では , 発振回路の発振安定待ち時間を確保するため , INIT 端子への "L"
レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子によ
る INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
• 電源投入直後の INIT 端子入力
• ストップモードで発振停止中の INIT 端子入力
70
第 3 章 CPU および制御部
• クロックソースとしてサブクロック選択中かつメイン発振停止状態での INIT 端
子入力
したがって, 安定発振を行うためには, INIT 端子入力はメインクロックの発振安定待ち
時間を満たす期間 , "L" レベルを入力してください。
■ リセット動作モード
動作初期化リセット (RST) には , 通常 ( 非同期 ) リセットモードと同期リセットモード
の 2 つのモードがあり , TBCR ( タイムベースカウンタ制御レジスタ ) 中の ビット
9:SYNCR ビットによってどちらのモードで動作するかを設定します。
本モード設定は , 設定初期化リセット (INIT) のみで初期化されます。
設定初期化リセット (INIT) は , 常に非同期でリセット動作を行います。
各モード動作について以下に示します。
● 通常リセット動作
動作初期化リセット (RST) 要求が発生した際に , 即座に動作初期化リセット (RST) 状
態への遷移を行う動作を通常リセット動作とよびます。
本モードにおいては , リセット (RST) 要求が受け付けられると , 内部バスアクセスの動
作状態にかかわらず , 即時にリセット (RST) 状態へ遷移します。
本モードでは , 各状態へ遷移する時点で行われていたバスアクセスについては , その結
果を保証できません。しかし , 動作初期化リセット (RST) 要求を確実に受け付けること
が可能です。
TBCR ( タイムベースカウンタ制御レジスタ ) 中の ビット 9:SYNCR ビットが "0" のと
き , 通常リセットモードとなります。
設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードとなります。
● 同期リセット動作
動作初期化リセット (RST) 要求が発生した際に , すべてのバスアクセスが停止した後 ,
動作初期化リセット (RST) 状態への遷移を行う動作を同期リセット動作とよびます。
本モードにおいては , リセット (RST) 要求が受け付けられても , 内部バスアクセスが行
われている間は , リセット (RST) 状態への遷移は行いません。
上記要求が受け付けられると , それにより内部バスに対してスリープ要求が発行され
ます。各バスが動作を切り上げてスリープ状態に移行すると , 動作初期化リセット
(RST) 状態へ遷移します。
本モードでは , 各状態へ遷移する時点ではすべてのバスアクセスが停止しているため ,
すべてのバスアクセスの結果を保証できます。しかし , バスアクセスが何らかの理由に
より停止しない場合 , その間各要求を受け付けることができなくなります ( このような
場合でも , 設定初期化リセット (INIT) は即座に有効となります )。
バスアクセスが停止しない要因は , 外部拡張バスインタフェースに対し RDY ( レディ
要求 ) が入力され続け , バスウェイトが有効となっている場合です。
設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードに戻ります。
71
第 3 章 CPU および制御部
<注意事項>
• DMA コントローラについては , 各要求の受付けにより転送停止を行いますので , 各状
態への遷移を遅延させることはありません。
• TBCR ( タイムベースカウンタ制御レジスタ ) の ビット 9:SYNCR ビットが "1" のとき ,
同期リセットモードとなります。
72
第 3 章 CPU および制御部
3.11
クロック生成制御
各クロック生成とその制御について示します。
内部動作クロックは以下のようにして生成されます。
• ベースクロックの生成 : ソースクロックを 2 分周または PLL 発振させ , 基本ク
ロックを生成します。
• 各内部クロックの生成 : ベースクロックを分周し , 各部に供給する動作クロック
を生成します。
各解説にあるレジスタ , フラグの詳細な説明は , 「3.11.5 クロック生成制御部のブ
ロック図」, 「3.11.6 クロック生成制御部のレジスタ詳細説明」を参照してくださ
い。
■ ソースクロックの選択
ソースクロックの選択について解説します。
外部発振端子である X0/X1 端子入力に発振子を接続し , 内蔵発振回路にて生成した原
発振がソースクロックとなります。
外部バスクロックを含むすべてのクロック供給源は , 本品種自身となります。
外部発振端子および内蔵発振回路は , メインクロックを動作中に任意に切り換えて使
用することが可能です。
メインクロック : X0/X1 端子入力から生成し , 高速クロックとして使用することを想定
しています。
内部ベースクロックは , 以下のソースクロックのうちから選択して生成します。
• メインクロックを 2 分周したもの
• メインクロックを PLL で逓倍したもの
φ はソースクロックを 2 分周または ,PLL 発振させた基本クロックを指します。したがっ
て , システムベースクロックは , 上記の内部ベースクロック発生のところで生成される
クロックです。
ソースクロックの選択制御は , CLKR ( クロックソース制御レジスタ ) の設定によって
行います。
73
第 3 章 CPU および制御部
3.11.1
PLL 制御
メインクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍
率設定を制御することができます。
各制御は , CLKR ( クロックソース制御レジスタ ) の設定によって行います。
■ PLL 動作許可
メイン PLL 発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) の ビット
10: PLL1EN ビットの設定によって行います。
PLL1EN ビットは , 設定初期化リセット (INIT) 後は "0" に初期化され , メイン PLL の発
振動作は停止しています。停止中は , ソースクロックとしてメイン PLL 出力を選択す
ることはできません。
プログラム動作を開始後は , クロックソースとして使用するメイン PLL の逓倍率を設
定し , かつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切り換え
てください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用する
ことを推奨致します。
ソースクロックとしてメイン PLL 出力を選択している間は , PLL は動作停止させるこ
とはできません。レジスタへの書込みは無効となります。ストップモードに移行する
際などで PLL を停止させたい場合は , いったんソースクロックをメインクロックの 2
分周したものに選択し直した後 , PLL を停止させてください。
なお , STCR ( スタンバイ制御レジスタ ) の ビット 0:OSCD1 ビットにより , ストップ
モード中の発振が停止するように設定してある場合 , PLL はストップモード遷移時に
自動的に停止しますので , 動作停止をあらためて設定する必要はありません。その後 ,
ストップモードから復帰する際 , PLL は自動的に発振動作を開始します。ストップモー
ド中 , メイン発振を停止させないで , PLL 発振を停止させる場合は , メイン発振は自動
では停止しません ( このときのストップモードからの復帰時は必ず PLL のロック待ち
時間を確保してください ) 。この場合は , 必要であればストップモード移行前にあらか
じめ動作停止を設定してください。
■ PLL 逓倍率
メイン PLL の逓倍率は , CLKR ( クロックソース制御レジスタ ) の ビット 14 ∼ビット
12:PLL1S2, PLL1S1, PLL1S0 ビットによって設定します。
これらのビットは,設定初期化リセット (INIT) 後は全ビット"0"に初期化されています。
● PLL 逓倍設定
PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許可す
る前または同時に設定してください。逓倍率変更後は , ロック待ち時間経過後にソース
クロックを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタイ
マ割込みを使用することを推奨致します。
動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを PLL 以外に切り
換えてから変更してください。逓倍率変更後は , 上記と同様にロック待ち時間経過後に
ソースクロックを切り換えてください。
PLL 逓倍率設定の変更を , PLL 使用中に変更することも可能ですが , この際は逓倍率設
定書換え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待ち時間が
経過するまでの間はプログラム動作が停止します。PLL 以外にクロックソースを切り
換えた場合は , プログラム動作は停止しません。
74
第 3 章 CPU および制御部
3.11.2
発振安定待ち・PLL ロック待ち時間
ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち時
間が必要です (「3.10 リセット ( デバイス初期化 ) ■発振安定待ち時間」を参照 )。
PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待
ち時間が必要です。
■ 電源投入後の待ち時間
電源投入後は , まずメインクロック用発振回路の発振安定待ち時間が必要となります。
発振安定待ち時間の設定は , INIT 端子入力 ( 設定初期化リセット端子 ) により最小値に
初期化されるため , この発振安定待ち時間は , INIT 端子入力へ "L" レベルを入力する時
間により確保します。
この状態において , PLL は動作許可されていないため , ロック待ち時間をここでは考慮
する必要がありません。
■ 設定初期化後の待ち時間
設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで
は , 設定された発振安定待ち時間を内部的に発生します。
INIT 端子入力後の初めの発振安定待ち状態では , 設定時間は最小値に初期化されている
ため , すぐに本状態は終了し , 動作初期化リセット (RST) 状態へと遷移します。また , メ
インランおよびサブラン中にメイン発振を停止しない場合のウォッチドッグリセット
では , 発振安定待ち時間を確保しません。
これらの状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間
をここでは考慮する必要がありません。
■ PLL 動作許可後の待ち時間
プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過
しないとその PLL 出力を使用してはいけません。
ソースクロックとしてメイン PLL を選択していなければ , ロック待ち時間中もプログ
ラム動作は実行可能です。この際の PLL ロック待ち時間は , タイムベースタイマ割込
みを使用することを推奨致します。
■ PLL 逓倍率変更後の待ち時間
プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち
時間が経過しないとその PLL 出力を使用してはいけません。
ソースクロックとしてメイン PLL を選択していなければ , ロック待ち時間中もプログ
ラム動作は実行可能です。この際の PLL ロック待ち時間は , タイムベースタイマ割込
みを使用することを推奨致します。
75
第 3 章 CPU および制御部
■ ストップモード復帰後の待ち時間
プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて
設定された時間の発振安定待ち時間を内部的に発生します。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止さ
せる設定の場合 , その発振回路の発振安定待ち時間または 使用している PLL のロック
待ち時間のうち, 長い方の時間が必要となります。ストップモードに遷移させる前に,あ
らかじめ長い方の発振安定待ち時間を設定しておいてください。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止
させない設定においても , PLL は動作を停止します。よって , ストップモードに遷移さ
せる前に , あらかじめ発振安定待ち時間を OS1, OS0=0, 0 以外の設定にしてください。
76
第 3 章 CPU および制御部
3.11.3
クロック分配
ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを
それぞれ作成します。
内部動作クロックは , 全部で 3 種類あり , それぞれが独立に分周比を設定することが
できます。
■ CPU クロック (CLKB)
CPU と内部メモリおよび内部バスに使用されるクロックです。
本クロックを使用する回路を以下に示します。
• CPU
• 内蔵 RAM, 内蔵 ROM
• ビットサーチモジュール
• I-bus, D-bus, F-bus, X-bus
• DMA コントローラ
• On chip Debug Support Unit (DSU)
動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは 設定しないで
ください。
■ 周辺クロック (CLKP)
周辺リソースおよびペリフェラルバスに使用されるクロックです。
周辺クロックを使用する回路を以下に示します。
• ペリフェラル ( 周辺 ) バス
• クロック制御部 ( バスインタフェース部のみ )
• 割込みコントローラ
• I/O ポート
• 外部割込み入力 , UART, 16 ビットタイマなどの周辺リソース
動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは設定しないで
ください。
■ 外部バスクロック (CLKT)
外部拡張バスインタフェースに使用されるクロックです。
本クロックを使用する回路を以下に示します。
• 外部拡張バスインタフェース
• 外部 CLK 出力
動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは設定しないで
ください。
ただし , MB91260B シリーズでは , 外バスモードをサポートしておりません。
77
第 3 章 CPU および制御部
3.11.4
クロック分周
内部動作クロックは , それぞれ独立にベースクロックからの分周比を設定できます。
この機能により , 各回路に最適な動作周波数を設定できます。
分周比は , DIVR0 ( 基本クロック分周設定レジスタ 0) および DIVR1 ( 基本クロック分
周設定レジスタ 1) によって設定します。各レジスタには各クロックに対応する 4 ビッ
トずつの設定ビットがあり , ( レジスタ設定値+ 1) がそのクロックのベースクロックに
対する分周比となります。分周比設定が奇数であっても , 常にデューティ比は 50% と
なります。
設定値の変更があった場合 , 設定後 , 次のクロックの立上りから変更後の分周比が有効
となります。
分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の
設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。
初期状態からソースクロックを高速なものに変更する前に必ず分周比の設定を行って
ください。
<注意事項>
ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波
数を超える設定をした場合 , 動作は保証されませんので十分にご注意願います
( ソースクロック選択の変更設定との順序を間違えないよう , 特に留意願います ) 。
78
第 3 章 CPU および制御部
3.11.5
クロック生成制御部のブロック図
クロック生成制御部のブロック図を示します。図中のレジスタの詳細は , 「3.11.6
クロック生成制御部のレジスタ詳細説明」を参照してください。
■ ブロックダイヤグラム
図 3.11-1 ブロックダイヤグラム
R-bus
[クロック生成部]
セレクタ
外部バスクロック分周
セレクタ
周辺クロック分周
停止制御
CPUクロック分周
セレクタ
DIVR0,DIVR1レジスタ
CPUクロック
周辺クロック
外部バスクロック
X0
X1
発振回路
セレクタ
CLKRレジスタ
PLL
メイン
発振
1/2
[ストップ・スリープ制御部]
内部割込み
ストップ状態
STGRレジスタ
内部リセット
状態遷移
制御回路
スリープ状態
リセット発生
FF
リセット発生
FF
内部リセット(RST)
内部リセット(INIT)
[リセット要因回路]
INIT端子
RSRRレジスタ
[ ウォッチドッグ制御部]
ウォッチドッグFF
カウンタクロック
タイムベースカウンタ
CTBRレジスタ
セレクタ
TBCRレジスタ
割込み許可
オーバフロー検出FF
タイムベースタイマ
割込み要求
MB91260B シリーズでは , 外バスモードをサポートしておりません。
79
第 3 章 CPU および制御部
3.11.6
クロック生成制御部のレジスタ詳細説明
クロック発生制御部において使用するレジスタの機能を説明します。
■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ
bit
15
14
13
12
11
10
9
8
アドレス:000480H
INIT
R
1
−
R
0
WDOG
R
0
−
R
0
SRST
R
0
−
R
0
*
×
*
×
*
×
×
*
×
*
*
×
WT1
R/W
0
0
0
WT0
R/W
0
0
0
初期値 (INIT 端子 )
初期値 (INIT)
初期値 (RST)
「*」…要因により変化します。
「×」…初期化されません。
直前に発生したリセットの要因の保持 , ウォッチドッグタイマの周期設定 , および起動
制御を行うレジスタです。
本レジスタを読むと , 保持されたリセット要因は読出し後にクリアされます。読み出す
までの間に複数回のリセットが発生した場合 , リセット要因フラグは , 累積され , 複数
のフラグがセットされることになります。
本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リセッ
ト (RST) が発生するまで , ウォッチドッグタイマは動作を続けます。
[ ビット 15] INIT (INITialize reset occured)
INIT 端子入力によるリセット (INIT) の発生の有無を示します。
0
INIT 端子入力による INIT は発生していません。
1
INIT 端子入力による INIT が発生しました。
• 読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[ ビット 14] (reserved ビット )
[ ビット 13] WDOG (WatchDOG reset occured)
ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。
0
ウォッチドッグタイマによる INIT は発生していません。
1
ウォッチドッグタイマによる INIT が発生しました。
• INIT 端子入力によるリセット (INIT) , または読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[ ビット 12] (reserved ビット )
80
第 3 章 CPU および制御部
[ ビット 11] SRST (Software ReSeT occured)
STCRレジスタのSRSTビット書込み (ソフトウェアリセット) によるリセット (RST)
の発生の有無を示します。
0
ソフトウェアリセットによる RST は発生していません。
1
ソフトウェアリセットによる RST が発生しました。
• INIT 端子入力によるリセット (INIT) , または読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[ ビット 10] (reserved ビット )
[ ビット 9, ビット 8] WT1,WT0 (Watchdog interval Time select)
ウォッチドッグタイマの周期を設定します。
本ビットに書き込む値により , ウォッチドッグタイマの周期を下表に示す 4 種類の
うちから選択します。
ウォッチドッグリセットの発生を
抑止するために最低限必要な
CTBR への書込み間隔
CTBR への最終 5AH 書込みから
WT1
WT0
0
0
φ × 216 ( 初期値 )
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
ウォッチドッグリセットが
発生するまでの時間
( 注意事項 )φ は内部ベースクロックの周期です。
• リセット (RST) により "00B" に初期化されます。
• 読出し可能で , 書込みはリセット (RST) 後 1 回のみ有効で , それ以降の書込みは
無効です。
81
第 3 章 CPU および制御部
■ STCR : スタンバイ制御レジスタ
bit
7
6
アドレス:000481H
STOP SLEEP
R/W
R/W
0
0
初期値 (INIT 端子 )
0
0
初期値 (INIT)
0
0
初期値 (RST)
5
4
3
2
1
0
HIZ
R/W
1
1
SRST
R/W
1
1
1
OS1
R/W
0
OS0
R/W
0
×
×
×
×
−
R/W
1
1
OSCD1
R/W
1
1
×
×
×
デバイスの動作モードを制御するレジスタです。
ストップ , スリープの 2 種類のスタンバイモードへの遷移 , ストップモード中の端子お
よび発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行
を行います。
<注意事項>
スタンバイモードに移行する場合は , 同期スタンバイモード (TBCR: タイムベースカウン
タ制御レジスタのビット 8:SYNCS ビットにて設定します ) を使用したうえで , 以下の
シーケンスを必ず使用してください。
/* STCR ライト */
ldi
#_STCR, R0
; STCR レジスタ (0x0481)
ldi
#Val_of_Stby, rl
; Val_of_Stby は , STCR へのライトデータ
stb
rl,@r0
; STCR へのライト
/* STBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0x0483)
ldi
#0xA5, rl
; クリアコマンド (1)
stb
rl,@r2
; CTBR への A5 ライト
ldi
#0xA5, rl
; クリアコマンド (2)
stb
rl,@r2
; CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
@r0, rl
; STCR ダミーリード
; タイミング調整用の NOP × 5
nop
nop
nop
nop
スタンバイ制御レジスタ (STCR) の各ビットの機能を以下に示します。
82
第 3 章 CPU および制御部
[ ビット 7] STOP (STOP mode)
ストップモードへの遷移を指示します。ビット 6:SLEEP ビットと本ビット両方に "1"
を書き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。
0
ストップモードへの遷移は行いません ( 初期値 ) 。
1
ストップモードへ遷移します。
• リセット (RST) およびストップ復帰要因により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 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 種類のうちから選
択します。
83
第 3 章 CPU および制御部
OS1
OS0
発振安定待ち時間 *
メイン発振 4 MHz の場合
0
0
φ × 21 ( 初期値 )
1.0 µs
0
1
φ × 211
1.0 ms
1
0
φ × 216
32.7 ms
1
1
φ × 222
2.0 s
*:φ は内部ベースクロックの周期であり , メイン発振の 2 倍の周期です。
• INIT 端子入力によるリセット (INIT) により "00B" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 1] (reserved ビット )
予約ビットです。本ビットへは常に "1" を書き込んでください。
[ ビット 0] OSCD1 (Oscillation Disable mode for XIN1)
メイン発振入力 (X0, X1) における , ストップモード時の発振停止を制御します。
0
ストップモード中もメイン発振は停止しませんが , PLL 発振は停止します。
1
ストップモード中はメイン発振を停止します ( 初期値 )。
• リセット (INIT) により "1" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
クロックソースとしてメイン PLL クロックを使用中で OSCD1=0 でのストップモードか
らの復帰の際には , 必ず , STCR の OS1, OS0 ビットを OS1, OS0=00B 以外の設定にして
メイン PLL のロック待ち時間を確保してください。
■ TBCR : タイムベースカウンタ制御レジスタ
bit
15
14
13
12
11
10
アドレス:000482H
TBIF
R/W
0
0
TBIE
R/W
0
0
TBC2
R/W
×
×
TBC1
R/W
×
×
TBC0
R/W
×
×
−
R/W
×
×
初期値 (INIT)
初期値 (RST)
9
8
SYNCR SYNCS
R/W
R/W
0
0
×
×
タイムベースタイマ割込みなどを制御するレジスタです。
タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択 , およびリセット動
作のオプション機能の設定を行います。
タイムベースカウンタ制御レジスタ (TBCR) の各ビットの機能を以下に示します。
[ ビット 15] TBIF (TimeBasetimer Interrupt Flag)
タイムベースタイマ割込みフラグです。
タイムベースカウンタが設定されたインターバル時間 ( ビット 13 ∼ビット 11:TBC2 ∼
TBC0 ビットにて設定 ) を経過したことを示します。
84
第 3 章 CPU および制御部
ビット 14:TBIE ビットにより割込み発生が許可 (TBIE=1) されているときに , 本ビッ
トが "1" になると , タイムベースタイマ割込み要求が発生します。
クリア要因
命令による "0" の書込み
セット要因
設定されたインターバル時間の経過
( タイムベースカウンタ出力の立下りエッジ検出 )
• リセット (RST) により "0" に初期化されます。
• 読出し / 書込み可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込みして
もビット値は変化しません。また , リードモディファイライト系命令での読出し
値は , 常に "1" となります。
[ ビット 14] TBIE (TimeBasetimer Interrupt Enable)
タイムベースタイマ割込み要求出力許可ビットです。
タイムベースカウンタのインターバル時間経過による割込み要求出力を制御しま
す。本ビットが "1" のときに , ビット 15:TBIF ビットが "1" になると , タイムベース
タイマ割込み要求が発生します。
0
タイムベースタイマ割込み要求の出力を禁止 します ( 初期値 ) 。
1
タイムベースタイマ割込み要求の出力を許可します。
• リセット (RST) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 13 ∼ビット 11] TBC2 ∼ TBC0 (TimeBasetimer Counting time select)
タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定し
ます。
本ビットに書き込む値により , インターバル時間を下表に示す 8 種類のうちから選
択します。
TBC2
TBC1
TBC0
タイマインターバル時間 *
原発振 4 MHz かつ
PLL が 8 逓倍の場合
0
0
0
φ × 211
64 µs
0
0
1
φ × 212
128 µs
0
1
0
φ × 213
256 µs
0
1
1
φ × 222
131 ms
1
0
0
φ × 223
262 ms
1
0
1
φ × 224
524 ms
1
1
0
φ × 225
1048 ms
1
1
1
φ × 226
2097 ms
*:φ は内部ベースクロックの周期であり , メイン PLL の出力周期です。
• 初期値は不定です。割込みを許可する前に必ず値を設定してください。
85
第 3 章 CPU および制御部
• 読出しおよび書込みが可能です。
[ ビット 10] (reserved ビット )
予約ビットです。読出し値は不定で , 書込みは動作に影響を与えません。
[ ビット 9] SYNCR (SYNChronous Reset enable)
同期リセット動作許可ビットです。
動作初期化リセット (RST) 要求またはハードウェアスタンバイ要求が発生した際に ,
即座にリセット (RST) またはハードウェアスタンバイ遷移を行う通常リセット動作
を行うか , すべてのバスアクセスが停止した後に動作初期化リセット (RST) または
ハードウェアスタンバイ遷移を行う同期リセット動作を行うかを選択します。
0
通常リセット動作を行います ( 初期値 ) 。
1
同期リセット動作を行います 。
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 8] SYNCS (SYNChronous Standby enable)
同期スタンバイ動作許可ビットです。
スタンバイモード (スリープモードまたはストップモード) を使用する際は, 必ず"1"
を設定してください。
0
通常スタンバイ動作を行います ( 初期値 ) 。
1
同期スタンバイ動作を行います。
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
■ CTBR : タイムベースカウンタクリアレジスタ
bit
7
6
5
4
3
2
1
0
アドレス:000483H
D7
W
×
×
D6
W
×
×
D5
W
×
×
D4
W
×
×
D3
W
×
×
D2
W
×
×
D1
W
×
×
D0
W
×
×
初期値 (INIT)
初期値 (RST)
タイムベースカウンタを初期化するためのレジスタです。
本レジスタに連続して "A5H" , "5AH" を書き込むと , "5AH" 書込みの直後にタイムベー
スカウンタを全ビット "0" にクリアします。"5AH" 書込みと "5AH" 書込みの間の時間
に制限はありませんが , "A5H" 書込みの後に "5AH" 以外のデータを書き込むと , 再度
"A5H" を書き込まないと "5AH" を書き込んでもクリア動作は行いません。
ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを
行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ
れます。詳細は , 「3.11.7 クロック制御部が持つ周辺回路」の項を参照してください。
本レジスタの読出し値は不定です。
86
第 3 章 CPU および制御部
<注意事項>
本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 , ウォッ
チドッグタイマ周期およびタイムベースタイマの周期が一時的に変動します。
■ CLKR : クロックソース制御レジスタ
bit
15
アドレス:000484H
−
R/W
0
初期値 (INIT)
初期値 (RST)
×
14
13
12
PLL1S2 PLL1S1 PLL1S0
R/W
R/W
R/W
0
0
0
×
×
×
11
10
−
R/W
0
9
8
PLL1EN CLKS1 CLKS0
R/W
R/W
R/W
0
0
0
×
×
×
×
内部ベースクロックとなるクロックソースの選択やメイン PLL の制御を行うレジスタ
です。
本レジスタにてクロックソースを選択します。また , メイン PLL の動作許可および逓
倍率の選択を制御します。
[ ビット 15] (reserved ビット )
予約ビットです。本ビットへは常に "0" を書き込んでください。
[ ビット 14 ∼ビット 12] PLL1S2 ∼ PLL1S0 (PLL1 ratio Select 2 ∼ 0)
メイン PLL の逓倍率選択ビットです。
メイン PLL の逓倍率を , 下記の組合せのうちから選択します。
本ビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止し
ます。また , 動作可能な上限周波数を超える設定をしないでください。
PLL1S2
PLL1S1
PLL1S0
メイン PLL 逓倍率
メイン発振 4 MHz の場合 *1
0
0
0
× 1 ( 等倍 ) *2
φ = 250 ns ( 4 MHz 時 )
0
0
1
× 2 (2 逓倍 )
φ = 125 ns ( 8 MHz 時 )
0
1
0
× 3 (3 逓倍 )
φ = 83.33 ns ( 12 MHz 時 )
0
1
1
× 4 (4 逓倍 )
φ = 62.50 ns ( 16 MHz 時 )
1
0
0
× 5 (5 逓倍 )
φ = 50.00 ns ( 20 MHz 時 )
1
0
1
× 6 (6 逓倍 )
φ = 41.67 ns ( 24 MHz 時 )
1
1
0
× 7 (7 逓倍 )
φ = 35.71 ns ( 28 MHz 時 )
1
1
1
× 8 (8 逓倍 )
φ = 31.25 ns ( 32 MHz 時 )
*1:φ は内部ベースクロックの周期です。
*2: 等倍時は , 8 MHz 以上を入力してください。
• リセット (INIT) により "000B" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 11] (reserved ビット )
予約ビットです。本ビットへは常に "0" を書き込んでください。
87
第 3 章 CPU および制御部
[ ビット 10] PLL1EN (PLL1 ENable)
メイン PLL の動作許可ビットです。
本ビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止し
ます。また , 本ビットが "0" の間はクロックソースとしてメイン PLL を選択するこ
とを禁止します ( ビット 9, 8:CLKS1, CLKS0 ビットの設定を参照 )。
STCR の ビット 0:OSCD1 が "1" であると , ストップモード中は本ビットが "1" であっ
てもメイン PLL は停止します。ストップモードからの復帰後は動作許可に戻ります。
0
メイン PLL 停止 ( 初期値 )
1
メイン PLL 動作許可
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 9, ビット 8] CLKS1, CLKS0 (CLocK source Select)
使用するクロックソースを設定します。
本ビットに書き込む値により, クロックソースを下表に示す3種類のうちから選択しま
す。
CLKS1
CLKS0
0
0
X0/X1 からの原発振入力の 2 分周 ( 初期値 )
0
1
設定禁止
1
0
メイン PLL
1
1
設定禁止
クロックソース設定
• リセット (INIT) により "00B" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
ビット 9:CLKS1 が "1" の間は ビット 8:CLKS0 の値を変更することができません。
[ 変更可能な組合せ ]
"00B" → "10B"
"10B" → "00B"
上記の組合せ以外は設定禁止です。
88
第 3 章 CPU および制御部
● DIVR0: 基本クロック分周設定レジスタ 0
bit
15
14
13
12
11
10
9
8
アドレス:000486H
B3
R/W
0
B2
R/W
0
B1
R/W
0
B0
R/W
0
P3
R/W
0
P2
R/W
0
P1
R/W
1
P0
R/W
1
×
×
×
×
×
×
×
×
初期値 (INIT)
初期値 (RST)
各内部クロックの ベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , CPU および内部バスのクロック (CLKB) と周辺回路およびペリフェ
ラルバスクロック (CLKP) との分周比の設定を行います。
ソースクロックの選択 , メイン PLL の逓倍率の設定および 分周比の設定の組合せによ
り , 上限周波数を超える設定をした場合 , 動作は保証されませんので , 十分ご注意願い
ます。また , ソースクロック選択の変更設定との順序を間違えないように注意してくだ
さい。
本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周
比が有効となります。
[ ビット 15 ∼ビット 12] B3 ∼ B0 (clkB divide select 3 ∼ 0)
CPU クロック (CLKB) クロック分周比設定ビットです。
CPU と内部メモリおよび内部バスのクロック (CLKB) のクロック分周比を設定しま
す。
本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに対
する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。
動作可能な上限周波数を超える周波数になる分周比は設定しないでください。
B3
B2
B1
B0
クロック分周比 *
クロック周波数 : 原発振 4 MHz
およびメイン PLL8 逓倍の場合
0
0
0
0
φ
32 MHz ( 初期値 )
0
0
0
1
φ × 2 (2 分周 )
16 MHz
0
0
1
0
φ × 3 (3 分周 )
10.7 MHz
0
0
1
1
φ × 4 (4 分周 )
8 MHz
0
1
0
0
φ × 5 (5 分周 )
6.4 MHz
0
1
0
1
φ × 6 (6 分周 )
5.33 MHz
0
1
1
0
φ × 7 (7 分周 )
4.57 MHz
0
1
1
1
φ × 8 (8 分周 )
4 MHz
…
1
…
1
…
1
…
1
…
…
2 MHz
φ × 16 (16 分周 )
*:φ は内部ベースクロックの周期です。
• リセット (INIT) により "0000B" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 11 ∼ビット 8] P3 ∼ P0 (clkP divide select 3 ∼ 0)
周辺クロック (CLKP) クロック分周比設定ビットです。
周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定します。
89
第 3 章 CPU および制御部
本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベース
クロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択しま
す。
動作可能な上限周波数を超える周波数になる分周比は設定しないでください。
P3
P2
P1
P0
クロック分周比 *
クロック周波数 : 原発振 4 MHz
およびメイン PLL8 逓倍の場合
0
0
0
0
φ
32 MHz
0
0
0
1
φ × 2 (2 分周 )
16 MHz
0
0
1
0
φ × 3 (3 分周 )
10.7 MHz
0
0
1
1
φ × 4 (4 分周 )
8 MHz ( 初期値 )
0
1
0
0
φ × 5 (5 分周 )
6.4 MHz
0
1
0
1
φ × 6 (6 分周 )
5.33 MHz
0
1
1
0
φ × 7 (7 分周 )
4.57 MHz
0
1
1
1
φ × 8 (8 分周 )
4 MHz
…
1
…
1
…
1
…
1
…
…
2 MHz
φ × 16 (16 分周 )
*:φ はシステムベースクロックの周期です。
• リセット (INIT) により "0011B" に初期化されます。
• 読出しおよび書込みが可能です。
● DIVR1: 基本クロック分周設定レジスタ 1
bit
7
6
5
4
3
2
1
0
アドレス:000487H
T3
R/W
0
T2
R/W
0
T1
R/W
0
T0
R/W
0
−
R/W
0
−
R/W
0
−
R/W
0
−
R/W
0
×
×
×
×
×
×
×
×
初期値 (INIT)
初期値 (RST)
各内部クロックのベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , 外部バスインタフェースのクロック (CLKT) の分周比の設定を行い
ます。
ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで上限周
波数を超える設定をした場合 , 動作は保証されませんので十分ご注意願います。また ,
ソースクロック選択の変更設定との順序を間違えないように注意してください。
本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周
比が有効となります。
[ ビット 7 ∼ビット 4] T3 ∼ T0 (clkT divide select 3 ∼ 0)
外部バスクロック (CLKT) クロック分周比設定ビットです。
外部バスインタフェースのクロック (CLKT) のクロック分周比を設定します。
本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースク
ロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択しま
す。
動作可能な上限周波数を超える周波数になる分周比は設定しないでください。
90
第 3 章 CPU および制御部
T3
T2
T1
T0
クロック分周比 *
クロック周波数 : 原発振 4 MHz
およびメイン PLL8 逓倍の場合
0
0
0
0
φ
32 MHz ( 初期値 )
0
0
0
1
φ × 2 (2 分周 )
16 MHz
0
0
1
0
φ × 3 (3 分周 )
10.7 MHz
0
0
1
1
φ × 4 (4 分周 )
8 MHz
0
1
0
0
φ × 5 (5 分周 )
6.4 MHz
0
1
0
1
φ × 6 (6 分周 )
5.33 MHz
0
1
1
0
φ × 7 (7 分周 )
4.57 MHz
0
1
1
1
φ × 8 (8 分周 )
4 MHz
…
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
2 MHz
*:φ はシステムベースクロックの周期です。
• リセット (INIT) により "0000B" に初期化されます。
• 読出しおよび書込みが可能です。
本品種では , 外部バスインタフェースを使用しないため , "1111B" (16 分周 ) に設定す
ることを推奨致します。
<注意事項>
MB91260B シリーズでは , 外バスモードをサポートしておりません。
[ ビット 3 ∼ビット 0] (reserved ビット )
• リセット (INIT) により "0000B" に初期化されます。
• 本ビットへの書込みは , 常に "0000B" を書き込んでください。
91
第 3 章 CPU および制御部
3.11.7
クロック制御部が持つ周辺回路
クロック制御部内の周辺回路機能について説明します。
■ タイムベースカウンタ
クロック制御部には, 26ビット長のタイムベースカウンタがあり, 内部ベースクロック
で動作しています。
タイムベースカウンタは , 発振安定待ち時間の計測 (「3.10 リセット ( デバイス初期化 )
■発振安定待ち時間」を参照 ) のほか , 以下の用途に使用されます。
• ウォッチドッグタイマ
システムの暴走検出用のウォッチドッグタイマをタイムベースカウンタのビット
出力を用いて計測します。
• タイムベースタイマ
タイムベースカウンタ出力を用いて , インターバル割込みを発生します。
これらの機能について以下に示します。
● ウォッチドッグタイマ
ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。
プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生
延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット
(INIT) 要求を発生します。
ウォッチドッグタイマの起動と周期設定
ウォッチドッグタイマは, リセット (RST) 後の1回目のRSRR (リセット要因レジスタ/
ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。このとき ,
ウォッチドッグタイマのインターバル時間をビット 9, 8:WT1,WT0 ビットにより設定
します。インターバル時間の設定は , この最初の書込みで設定した時間のみが有効と
なり , それ以降の書込みはすべて無視されます。
ウォッチドッグリセットの発生延期
いったんウォッチドッグタイマを起動すると , プログラムで定期的に CTBR ( タイム
ベースカウンタクリアレジスタ ) に対して "A5H", "5AH" の順でデータを書き込む必
要があります。この操作により , ウォッチドッグリセット発生用フラグが初期化さ
れます。
ウォッチドッグリセットの発生
ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカ
ウンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出
時にフラグがセットされていると , ウォッチドッグリセットとして設定初期化リ
セット (INIT) 要求を発生します。
ウォッチドッグタイマの停止
いったんウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生す
るまでは , ウォッチドッグタイマを停止することはできません。
動作初期化リセット (RST) の発生する以下の状態ではウォッチドッグタイマは停止
し , 再度プログラム動作にて起動するまでは機能しません。
92
第 3 章 CPU および制御部
- 動作初期化リセット (RST) 状態
- 設定初期化リセット (INIT) 状態
- 発振安定待ちリセット (RST) 状態
ウォッチドッグタイマの一時停止 ( 自動発生延期 )
ウォッチドッグタイマは , CPU のプログラム動作が停止している場合にはいったん
ウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発生
を延期します。プログラム動作の停止とは具体的には以下の動作を示します。
- スリープ状態
- ストップ状態
- 発振安定待ち RUN 状態
- D-bus ( データバス ) に対する DMA 転送中
- エミュレータデバッガを使用中のブレーク中
また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発生
用フラグも初期化され , ウォッチドッグリセットの発生が延期されます。
● タイムベースタイマ
タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生
用タイマです。メイン PLL のロック待ち時間やサブクロックなどの発振安定待ち時間
など , 最大で { ベースクロック× 227} サイクルまでの比較的長時間の時間計測を行う
用途に適しています。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出
すると , タイムベースタイマ割込み要求を発生します。
タイムベースタイマの起動とインターバル設定
タイムベースタイマは , TBCR ( タイムベースカウンタ制御レジスタ ) のビット 13 ∼
ビット 11:TBC2, TBC1, TBC0 ビットにてインターバル時間を設定します。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジは常
に検出されているため , インターバル時間の設定後は , まず , ビット 15:TBIF ビット
をクリアした後 , ビット 14:TBIE ビットを "1" にして割込み要求出力を許可してくだ
さい。
インターバル時間を変更する際は , あらかじめビット 14:TBIE ビットを "0" にして割
込み要求出力を禁止しておいてください。
タイムベースカウンタはこれらの設定に影響されず , 常にカウント動作を行ってい
ますので , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタ
イムベースカウンタをクリアしてください。クリアしないと , 割込み許可直後に割
込み要求が発生することがあります。
93
第 3 章 CPU および制御部
プログラムによるタイムベースカウンタのクリア
CTBR ( タイムベースカウンタクリアレジスタ ) に対して "A5H", "5AH" の順でデータ
を書き込むと , "5AH" 書込みの直後に , タイムベースカウンタを全ビット "0" にクリ
アします。"A5H" 書込みと "5AH" 書込み間の時間は制限がありませんが , "A5H" 書込
みの後に "5AH" 以外のデータを書き込むと , 再度 "A5H" を書き込まないと "5AH" を
書き込んでもクリア動作は行いません。
このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリ
セット発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期
されます。
デバイス状態によるタイムベースカウンタのクリア
タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビットが "0" に
クリアされます。
- ストップ状態
- 設定初期化リセット (INIT) 状態
- ハードウェアスタンバイ状態
特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタ
が使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生し
てしまうことがあり得ます。そのため , ストップモードを設定する前にはタイムベー
スタイマ割込みを禁止し , タイムベースタイマを使用しないようにしてください。
それ以外の状態については , 動作初期化リセット (RST) が発生するため , タイムベー
スタイマ割込みは自動的に禁止されます。
94
第 3 章 CPU および制御部
3.12
デバイス状態制御
MB91260B シリーズの各種状態とその制御について説明します。
■ デバイス状態と各遷移
状態遷移を図 3.12-1 に示します。
図 3.12-1 デバイス状態の遷移
1 INIT端子=0(INIT)
2 INIT端子=1(INIT解除)
3 発振安定待ち終了
4 リセット(RST)解除
5 ソフトウェアリセット(RST)
6 スリープ(命令書込み)
7 ストップ(命令書込み)
8 割込み
9 クロックを必要としない外部割込み
10 ウォッチドッグリセット(INIT)
遷移要求の優先順位
最強
↓
↓
↓
↓
最弱
パワーオン
1
設定初期化リセット(INIT)
発振安定待ち終了
動作初期化リセット(RST)
割込み要求
ストップ
スリープ
設定初期化
(INIT)
2
メインクロックモード
1
メイン発振安定待ち
リセット
メインストップ
9
1
3
1
プログラムリセット
(RST)
発振安定待ちRUN
3
7
1
6
メインスリープ
5
メインRUN
1
4
10
1
8
本品種のデバイスの動作状態には以下のものがあります。
● RUN 状態 ( 通常動作 )
プログラム実行状態です。
すべての内部クロックが供給され , すべての回路が動作可能な状態です。ただし , 16
ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間はバスクロッ
クのみ停止しています。
各状態遷移要求を受け付けますが , 同期リセットモードを選択している場合 , 通常リ
セットモードの場合と一部要求に対する状態遷移動作が異なります。詳細は ,「3.10 リ
セット ( デバイス初期化 ) ● 同期リセット動作」を参照してください。
95
第 3 章 CPU および制御部
● スリープ状態
プログラム停止状態です。プログラム動作により遷移します。
CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。各種内蔵メモリ
および内部 / 外部バスは DMA コントローラが要求しない限り停止状態です。
有効な割込み要求の発生により, 本状態は解除され, RUN状態 (通常動作) へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷移
します。
● ストップ状態
デバイス停止状態です。プログラム動作により遷移します。
すべての内部回路が停止します。内部クロックはすべて停止し , 発振回路およびメイン
PLL は設定により停止させることが可能です。また , 設定により外部端子を一律ハイ
インピーダンスにすることが可能です ( 一部端子を除く )。
特定の ( クロックを必要としない ) 有効な割込み要求の発生により , 発振安定待ち RUN
状態へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷
移します。
● 発振安定待ち RUN 状態
デバイス停止状態です。ストップ状態からの復帰後に遷移します。
クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて
の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許
可されていたメイン PLL は動作しています。
ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷
移します。
● 発振安定待ちリセット (RST) 状態
デバイス停止状態です。ストップ状態または設定初期化リセット (INIT) 状態からの復
帰後に遷移します。
クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて
の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許
可されていたメイン PLL は動作しています。
ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
内部回路に対し , 動作初期化リセット (RST) を出力します。
設定された発振安定待ち時間の経過により , 発振安定待ちリセット (RST) 状態へ遷移
します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
96
第 3 章 CPU および制御部
します。
● 動作初期化リセット (RST) 状態
プログラム初期化状態です。動作初期化リセット (RST) 要求の受付け , または発振安定
待ちリセット (RST) 状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
一部を除き初期化されます。すべての内部クロックと発振回路および動作許可されて
いたメイン PLL は動作しています。
内部回路に対し , 動作初期化リセット (RST) を出力します。
動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動作初
期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの復帰後
だった場合は , 設定初期化リセットシーケンスを実行します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
● 設定初期化リセット (INIT) 状態
全設定初期化状態です。設定初期化リセット (INIT) 要求の受付けにより遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
すべて初期化されます。発振回路は動作しますが , メイン PLL は動作を停止します。
すべての内部クロックは , 外部 INIT 端子への "L" レベル入力期間は停止しますが , そ
れ以外では動作します。
内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力
します。
設定初期化リセット (INIT) 要求の消失により, 本状態は解除され, 発振安定待ちリセッ
ト (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期
化リセットシーケンスを実行します。
● 各状態遷移要求の優先順位
どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部要求
は特定の状態でしか発生しませんので , その状態でしか有効になりません。
[ 最強 ]
設定初期化リセット (INIT) 要求
↓
発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安
定待ち RUN 状態のみ発生 )
↓
動作初期化リセット (RST) 要求
↓
有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 )
↓
ストップモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
[ 最弱 ]
スリープモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
97
第 3 章 CPU および制御部
■ 低消費電力モード
本品種の状態のうち , 各低消費電力モードとその使用方法について説明します。
本品種の低消費電力モードには , 以下のものがあります。
• スリープモード
レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。
• ストップモード
レジスタ書込みにより , デバイスをストップ状態へ遷移させます。
以下 , 各モードについて説明します。
● スリープモード
STCR ( スタンバイ制御レジスタ ) のビット 6:SLEEP ビットに "1" を書き込むと , スリー
プモードとなり , スリープ状態へ遷移します。以降 , スリープ状態からの復帰要因が発
生するまでは , スリープ状態を維持します。
スリープ状態については , 「3.12 デバイス状態制御 ●スリープ状態」も参照してくだ
さい。
スリープモードへの移行
スリープモードに移行する場合は , 同期スタンバイモード (TBCR: タイムベースカウン
タ制御レジスタのビット 8:SYNCS ビットにて設定します ) を使用したうえで , 以下の
シーケンスを必ず使用してください。
/* STCR ライト */
ldi
#_STCR, R0
; STCR レジスタ (0x0481)
ldi
#Val_of_Stby, rl
; Val_of_Stby は , STCR へのライトデータ
stb
rl,@r0
; STCR へのライト
/* STBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0x0483)
ldi
#0xA5, rl
; クリアコマンド (1)
stb
rl,@r2
; CTBR への A5 ライト
ldi
#0xA5, rl
; クリアコマンド (2)
stb
rl,@r2
; CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
@r0, rl
; STCR ダミーリード
; タイミング調整用の NOP × 5
nop
nop
nop
nop
STCR ( スタンバイ制御レジスタ ) のビット 7:STOP ビットと本ビット両方に "1" を書き
込んだ場合は , ビット 7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
98
第 3 章 CPU および制御部
スリープ状態で停止する回路
CPU のプログラム実行
以下は , DMA 転送が発生した場合は動作します。
• ビットサーチモジュール
• 各種内蔵メモリ
• 内部 / 外部バス
ただし , MB91260B シリーズでは , 外バスモードをサポートしておりません。
スリープ状態で停止しない回路
• 発振回路
• 動作許可されたメイン PLL
• クロック発生制御部
• 割込みコントローラ
• 周辺回路
• 時計タイマ
• メイン発振安定待ちタイマ
• DMA コントローラ
• On chip Debug Support Unit (DSU)
スリープ状態からの復帰要因
• 有効な割込み要求の発生
ICR レジスタの設定が , 割込み禁止 (1111B) 以外の割込み要求が発生すると , スリープ
モードは解除され , RUN 状態 ( 通常動作 ) へ遷移します。このとき , CPU の PS レジス
タの I フラグを "1" に設定して割込みの受付けを許可状態にし , スリープ復帰後 , 割込
みハンドラを実行するようにしてください。
ICR レジスタの設定が , 割込み禁止 (1111B) の割込み要求が発生しても , スリープモー
ドは解除されません。
• 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット
(INIT) 状態へ遷移します。
• 動作初期化リセット (RST) 要求の発生
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット
(RST) 状態へ遷移します。
各要因の優先順位については ,「3.12 デバイス状態制御 ●各状態遷移要求の優先順位」
を参照してください。
同期スタンバイ動作
タイムベースカウンタ制御レジスタ (TBCR) のビット 8(SYNCS ビット ) に "1" が設定
してある場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書込
みのみではスリープ状態へは遷移しません。その後 , STCR レジスタを読み出すことに
よってスリープ状態へ遷移します。
スリープモードを使用する場合は , 「スリープモードへの移行」にあるシーケンスを
必ず使用してください。
99
第 3 章 CPU および制御部
● ストップモード
STCR ( スタンバイ制御レジスタ ) のビット 7:STOP ビットに "1" を書き込むと , ストッ
プモードとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発
生するまでは , ストップ状態を維持します。
ストップ状態については , 「3.12 デバイス状態制御 ●ストップ状態」も参照してくだ
さい。
ストップモードへの移行
ストップモードに移行する場合は , 同期スタンバイモード (TBCR: タイムベースカウン
タ制御レジスタのビット 8:SYNCS ビットにて設定します ) を使用したうえで , 以下の
シーケンスを必ず使用してください。
/* STCR ライト */
ldi
#_STCR, R0
; STCR レジスタ (0x0481)
ldi
#Val_of_Stby, rl
; Val_of_Stby は , STCR へのライトデータ
stb
rl,@r0
; STCR へのライト
/* STBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0x0483)
ldi
#0xA5, rl
; クリアコマンド (1)
stb
rl,@r2
; CTBR への A5 ライト
ldi
#0xA5, rl
; クリアコマンド (2)
stb
rl,@r2
; CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
@r0, rl
nop
; STCR ダミーリード
; タイミング調整用の NOP × 5
nop
nop
nop
nop
STCR ( スタンバイ制御レジスタ ) のビット 6:SLEEP ビットと本ビット両方に "1" を書
き込んだ場合は , ビット 7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
ストップ状態で停止する回路
下記を除くすべての内部回路
ストップ状態で停止しない回路
• 停止するよう設定されていない発振回路
STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "0" が設定してあると
き , ストップ状態中のメインクロック用発振回路は停止しません。
• 動作許可されていて , かつ停止するよう設定されていない発振回路に接続されたメ
イン発振回路
STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "0" が設定してあると
き , CLKR ( クロックソース制御レジスタ ) のビット 10:PLL1EN ビットに "1" を設定
100
第 3 章 CPU および制御部
すると , ストップ状態中のメイン発振回路は停止しませんが , PLL 発振回路は停止
します。
ストップ状態での端子のハイインピーダンス制御
STCR ( スタンバイ制御レジスタ ) のビット 5:HIZ ビットに "1" を設定すると , ストップ
状態中の端子出力がハイインピーダンス状態になります。本制御の対象となる端子は ,
「付録 C 各 CPU ステートにおける端子状態」を参照してください。
STCR ( スタンバイ制御レジスタ ) のビット 5:HIZ ビットに "0" を設定すると , ストップ
状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は , 「付録 C 各
CPU ステートにおける端子状態」を参照してください。
ストップ状態からの復帰要因
• 特定の ( クロックを必要としない ) 有効な割込み要求の発生
一部の外部割込みおよび NMI 入力端子のみが有効です。
ICR レジスタの設定が , 割込み禁止 (1111B) 以外の割込み要求が発生すると , ス
トップモードは解除され , 発振安定待ち RUN 状態へ遷移します。このとき , CPU
の PS レジスタの I フラグを "1" に設定して割込みの受付けを許可状態にし , ス
トップ復帰後 , 割込みハンドラを実行するようにしてください。
ICR レジスタの設定が , 割込み禁止 (1111B) の割込み要求が発生しても , ストップ
モードは解除されません。
• 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット
(INIT) 状態へ遷移します。
• 動作初期化リセット (RST) 要求の発生
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット
(RST) 状態へ遷移します。
各要因の優先順位については「
, 3.12 デバイス状態制御 ●各状態遷移要求の優先順位」
を参照してください。
ストップモード時のクロックソース選択
自励発振モードでは , ストップモードを設定する前に , メインクロックの 2 分周をソー
スクロックとするようあらかじめ選択しておいてください。詳細は , 「3.11.1 PLL 制
御」を参照してください。
なお , 分周比の設定に関しては , 通常動作時と制限事項は同じです。
同期スタンバイ動作
タイムベースカウンタ制御レジスタ (TBCR) のビット 8(SYNCS ビット ) に "1" が設定
してある場合 , 同期スタンバイ動作が許可されます。この場合 , STOP ビットへの書込
みのみではストップ状態へは遷移しません。その後 , STCR レジスタを読み出すことに
よってストップ状態へ遷移します。
ストップモードを使用する場合は ,「ストップモードへの移行」にあるシーケンスを必
ず使用してください。
101
第 3 章 CPU および制御部
102
第4章
I/O ポート
I/O ポートの概要 , レジスタの構成 , および機能に
ついて説明します。
4.1 I/O ポートの概要
4.2 I/O ポートのレジスタ
4.3 アナログ入力ポート
103
第 4 章 I/O ポート
I/O ポートの概要
4.1
MB91260B シリーズは , 各端子に対応する外部バスインタフェースやペリフェラル
が入出力として端子を使用しない設定になっているとき , I/O ポートとして使用する
ことができます。
■ ポート基本ブロックダイヤグラム
プルアップ付き I/O ポートは , 以下のレジスタにより構成されています。
• PDR( ポートデータレジスタ /Port Data Register)
• DDR( ポート方向レジスタ /Data Direction Register)
• PFR( ポート機能レジスタ /Port Function Register)
• PCR( プルアップ抵抗制御レジスタ /Pull-up Control Register)
ポートの基本的な構成を図 4.1-1 に示します。
図 4.1-1 I/O ポートの基本ブロックダイヤグラム
ペリフェラル入力
ポートバス
プルアップ抵抗
(約50 k )
0
1
ペリフェラル出力 PDRリード
1
PDR
0
端子
PFR
DDR
PCR
PCR=0:プルアップ抵抗なし
PCR=1:プルアップ抵抗あり
DDR:Data Direction Register
PDR:Port Data Register
PFR:Port Function Register
PCR:Pull-up Control Register
■ I/O ポートのモード
● ポート入力モード時 (PFR="0" & DDR="0")
PDR 読出し : 対応する外部端子のレベルが読み出されます。
PDR 書込み : PDR に設定値が書き込まれます。
● ポート出力モード時 ( PFR="0" & DDR="1")
PDR 読出し : PDR の値が読み出されます。
PDR 書込み : PDR の値が対応する外部端子に出力されます。
104
第 4 章 I/O ポート
● ペリフェラル出力モード時 ( PFR="1" & DDR="x")
PDR 読出し : 対応するペリフェラル出力の値が読み出されます。
PDR 書込み : PDR に設定値が書き込まれます。
<注意事項>
• ポートへのアクセスは , バイトアクセスで行ってください。
• ストップモード時 (HIZ=0) には , プルアップ抵抗制御レジスタの設定が優先されます。
• ストップモード時 (HIZ=1) には , プルアップ抵抗制御レジスタの設定は無効となりま
す。
105
第 4 章 I/O ポート
4.2
I/O ポートのレジスタ
I/O ポートで使用するレジスタの構成および機能について説明します。
■ Port Data Register (PDR:PDR0 ∼ PDR7, PDRC, PDRD, PDRE, PDRG)
PDR0
7
P07
6
P06
5
P05
4
P04
3
P03
2
P02
1
P01
0
P00
初期値
XXXXXXXXB
アクセス
R/W
7
P17
6
P16
5
P15
4
P14
3
P13
2
P12
1
P11
0
P10
初期値
XXXXXXXXB
アクセス
R/W
7
P27
6
P26
5
P25
4
P24
3
P23
2
P22
1
P21
0
P20
初期値
XXXXXXXXB
アクセス
R/W
7
P37
6
P36
5
P35
4
P34
3
P33
2
P32
1
P31
0
P30
初期値
XXXXXXXXB
アクセス
R/W
7
P47
6
P46
5
P45
4
P44
3
P43
2
P42
1
P41
0
P40
初期値
XXXXXXXXB
アクセス
R/W
アドレス:00000005H
7
P57
6
P56
5
P55
4
P54
3
P53
2
P52
1
P51
0
P50
初期値
XXXXXXXXB
アクセス
R/W
PDR6
7
6
5
4
3
2
1
0
−
P63
P62
P61
P60
アドレス:00000000H
PDR1
アドレス:00000001H
PDR2
アドレス:00000002H
PDR3
アドレス:00000003H
PDR4
アドレス:00000004H
PDR5
アドレス:00000006H
−
−
−
初期値
アクセス
R/W
----XXXXB
PDR7
7
6
5
4
3
2
1
0
アドレス:00000007H
P77
P76
P75
P74
P73
P72
P71
P70
初期値
XXXXXXXXB
アクセス
R/W
PDRC
7
PC7
6
PC6
5
PC5
4
PC4
3
PC3
2
PC2
1
PC1
0
PC0
初期値
XXXXXXXXB
アクセス
R/W
アドレス:0000000CH
PDRD
7
6
5
4
3
2
アドレス:0000000DH
−
−
−
−
−
−
1
PD1
0
PD0
初期値
アクセス
R/W
- - - - - - X XB
PDRE
7
6
5
4
3
2
1
0
アドレス:0000000EH
−
−
−
−
−
−
PE1
PE0
初期値
アクセス
R/W
- - - - - - X XB
PDRG
7
6
5
4
3
2
1
0
−
PG5
PG4
PG3
PG2
PG1
PG0
アドレス:00000010H
−
初期値
アクセス
R/W
--XXXXXX B
PDR0∼PDR7, PDRC, PDRD, PDRE, PDRG は, I/Oポートの入出力データレジスタです。
対応する DDR0 ∼ DDR7, DDRC, DDRD, DDRE, DDRG, PFR0 ∼ PFR2, PFR7, PFRG で入
出力制御が行われます。
106
第 4 章 I/O ポート
■ Data Direction Register (DDR:DDR0 ∼ DDR7, DDRC, DDRD, DDRE, DDRG)
DDR0
7
P07
6
P06
5
P05
4
P04
3
P03
2
P02
1
P01
0
P00
初期値
00000000B
アクセス
R/W
7
P17
6
P16
5
P15
4
P14
3
P13
2
P12
1
P11
0
P10
初期値
00000000B
アクセス
R/W
7
P27
6
P26
5
P25
4
P24
3
P23
2
P22
1
P21
0
P20
初期値
00000000B
アクセス
R/W
アドレス:00000403H
7
P37
6
P36
5
P35
4
P34
3
P33
2
P32
1
P31
0
P30
初期値
00000000B
アクセス
R/W
DDR4
7
6
5
4
3
2
1
0
アドレス:00000404H
P47
P46
P45
P44
P43
P42
P41
P40
初期値
00000000B
アクセス
R/W
DDR5
アドレス:00000405H
7
P57
6
P56
5
P55
4
P54
3
P53
2
P52
1
P51
0
P50
初期値
00000000B
アクセス
R/W
DDR6
7
6
5
4
3
2
1
0
アドレス:00000406H
−
−
−
−
P63
P62
P61
P60
初期値
----0000B
アクセス
R/W
DDR7
7
P77
6
P76
5
P75
4
P74
3
P73
2
P72
1
P71
0
P70
初期値
00000000B
アクセス
R/W
初期値
00000000B
アクセス
R/W
初期値
- - - - - - 0 0B
アクセス
R/W
初期値
- - - - - - 0 0B
アクセス
R/W
初期値
--000000 B
アクセス
R/W
アドレス:00000400H
DDR1
アドレス:00000401H
DDR2
アドレス:00000402H
DDR3
アドレス:00000407H
DDRC
7
6
5
4
3
2
1
0
アドレス:0000040CH
PC7
PC6
PC5
PC4
PC3
PC2
PC1
PC0
DDRD
7
6
5
4
3
2
1
0
アドレス:0000040DH
−
−
−
−
−
−
PD1
PD0
DDRE
7
6
5
4
3
2
1
0
アドレス:0000040EH
−
−
−
−
−
−
PE1
PE0
DDRG
7
6
5
4
3
2
1
0
アドレス:00000410H
−
−
PG5
PG4
PG3
PG2
PG1
PG0
DDR0 ∼ DDR7, DDRC, DDRD, DDRE, DDRG は , 対応する I/O ポートの入出力方向を
ビット単位で制御します。
PFR=0 のとき DDR=0: ポート入力
DDR=1: ポート出力
PFR=1 のとき DDR=0: ペリフェラル入力
DDR=1: ペリフェラル出力
107
第 4 章 I/O ポート
■ Pull-up Control Register (PCR:PCR0 ∼ PCR7, PCRG)
PCR0
7
P07
6
P06
5
P05
4
P04
3
P03
2
P02
1
P01
0
P00
初期値
00000000B
アクセス
R/W
7
P17
6
P16
5
P15
4
P14
3
P13
2
P12
1
P11
0
P10
初期値
00000000B
アクセス
R/W
7
P27
6
P26
5
P25
4
P24
3
P23
2
P22
1
P21
0
P20
初期値
00000000B
アクセス
R/W
7
P37
6
P36
5
4
3
2
1
0
アドレス:00000603H
−
−
−
−
−
−
初期値
00------B
アクセス
R/W
PCR4
7
6
5
4
3
2
1
0
アドレス:00000604H
P47
P46
P45
P44
P43
P42
P41
P40
初期値
00000000B
アクセス
R/W
PCR5
アドレス:00000605H
7
P57
6
P56
5
P55
4
P54
3
P53
2
P52
1
P51
0
P50
初期値
00000000B
アクセス
R/W
PCR6
7
6
5
4
3
2
1
0
アドレス:00000606H
−
−
−
−
P63
P62
P61
P60
初期値
- - - - 0 0 0 0B
アクセス
R/W
PCR7
7
P77
6
P76
5
P75
4
P74
3
P73
2
P72
1
P71
0
P70
初期値
00000000B
アクセス
R/W
初期値
--000000B
アクセス
R/W
アドレス:00000600H
PCR1
アドレス:00000601H
PCR2
アドレス:00000602H
PCR3
アドレス:00000607H
PCRG
7
6
5
4
3
2
1
0
アドレス:00000610H
−
−
PG5
PG4
PG3
PG2
PG1
PG0
PCR0 ∼ PCR7, PCRG は , 対応する I/O ポートのプルアップ抵抗制御を行います。
PCR=0: プルアップ抵抗なし
PCR=1: プルアップ抵抗あり
P30 ∼ P35, PC0 ∼ PC7, PD0 ∼ PD1, PE0 ∼ PE1 に は , プルアップ抵抗はありません。
108
第 4 章 I/O ポート
■ Port Function Register (PFR:PFR0 ∼ PFR2, PFR7, PFRG)
PFR0
7
PFR1
7
6
5
4
3
2
1
0
6
5
4
3
2
1
0
初期値
アクセス
00000000
アドレス:00000420H PPG8E PPG7E PPG6E PPG5E PPG4E PPG3E PPG2E PPG1E
R/W
B
アドレス:00000421H
−
PFR2
7
6
アドレス:00000422H
−
−
PFR7
7
6
PPG15E PPG14E PPG13E PPG12E PPG11E PPG10E PPG9E
5
4
SCK1E SO1E
5
4
3
−
3
2
1
SCK0E SO0E
2
1
0
−
0
アドレス:00000427H
−
−
−
−
−
−
PFRG
7
6
5
4
3
2
1
0
アドレス:00000430H
−
−
−
−
PPG0E
−
SCK2E SO2E
TO2E TO1E
初期値
アクセス
-0000000B
R/W
初期値
アクセス
--00-0 0-B
R/W
初期値
- - - - - - 0 0B
アクセス
R/W
初期値
アクセス
- - 0 0 - - 0 -B
R/W
PFR0 ∼ PFR2, PFR7, PFRG は , 対応するペリフェラルの出力をビット単位で制御しま
す。
PFR の空きビットには , 必ず "0" を書いてください。
109
第 4 章 I/O ポート
以下に各 PFR レジスタについてその初期値と機能をまとめます。
レジスタ
ビット
ビット名
0
PPG1E
1
2
3
設定値
機能
0
汎用 ポート
1
PPG タイマ 1 出力
0
汎用 ポート
1
PPG タイマ 2 出力
0
汎用 ポート
1
PPG タイマ 3 出力
0
汎用 ポート
1
PPG タイマ 4 出力
0
汎用 ポート
1
PPG タイ 5 出力
0
汎用 ポート
1
PPG タイマ 6 出力
0
汎用 ポート
1
PPG タイマ 7 出力
0
汎用 ポート
1
PPG タイマ 8 出力
0
汎用 ポート
1
PPG タイマ 9 出力
0
汎用 ポート
1
PPG タイマ 10 出力
0
汎用 ポート
1
PPG タイマ 11 出力
0
汎用 ポート
1
PPG タイマ 12 出力
0
汎用 ポート
1
PPG タイマ 13 出力
0
汎用 ポート
1
PPG タイマ 14 出力
0
汎用 ポート
1
PPG タイマ 15 出力
[ 初期値 ]
[ 初期値 ]
PPG2E
[ 初期値 ]
PPG3E
[ 初期値 ]
PPG4E
PFR0
4
5
6
7
0
1
2
PFR1
3
4
5
6
110
[ 初期値 ]
PPG5E
[ 初期値 ]
PPG6E
[ 初期値 ]
PPG7E
[ 初期値 ]
PPG8E
[ 初期値 ]
PPG9E
[ 初期値 ]
PPG10E
[ 初期値 ]
PPG11E
[ 初期値 ]
PPG12E
[ 初期値 ]
PPG13E
[ 初期値 ]
PPG14E
PPG15E
[ 初期値 ]
第 4 章 I/O ポート
レジスタ
ビット
ビット名
1
SO0E
2
設定値
機能
0
汎用 ポート
1
UART0 のデータ出力
0
汎用 ポート
1
UART0 のクロック入出力
0
汎用 ポート
1
UART1 のデータ出力
0
汎用 ポート
1
UART1 のクロック入出力
0
汎用 ポート
1
リロードタイマ 1 出力
0
汎用 ポート
1
リロードタイマ 2 出力
0
汎用 ポート
1
PPG タイマ 0 出力
0
汎用 ポート
1
UART2 のデータ出力
0
汎用 ポート
1
UART2 のクロック入出力
[ 初期値 ]
[ 初期値 ]
SCK0E
PFR2
4
5
0
[ 初期値 ]
SO1E
[ 初期値 ]
SCK1E
[ 初期値 ]
TO1E
PFR7
1
1
PFRG
4
5
[ 初期値 ]
TO2E
[ 初期値 ]
PPG0E
[ 初期値 ]
SO2E
[ 初期値 ]
SCK2E
111
第 4 章 I/O ポート
4.3
アナログ入力ポート
8/10 ビット A/D コンバータの端子のブロック図およびレジスタの構成を示します。
■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム
図 4.3-1 AN0 ∼ AN11 端子のブロックダイヤグラム
AICR0,
AICR1,
AICR2
PDR(ポートデータレジスタ)
アナログ入力
PDRリード
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御
<注意事項>
• 入力ポートとして使用する端子は , 対応する DDR レジスタのビットを "0" に設定し , か
つ外部端子にプルアップ抵抗を付加してください。また , AICR レジスタの対応する
ビットを "0" に設定してください。
• アナログ入力端子として使用する端子は , 対応する AICR レジスタのビットを "1" に設
定してください。
このときのPDRレジスタの読出し値は, PDRのレジスタ値になります。
112
第 4 章 I/O ポート
■ アナログ入力制御レジスタ (AICR:AICR0 ∼ AICR2)
AICR0
7
6
5
4
3
2
1
0
初期値
アクセス
アドレス:0000007EH AN7E AN6E AN5E AN4E AN3E AN2E AN1E AN0E 00000000B
R/W
AICR1
7
6
5
4
3
2
アドレス:00000086H
−
−
−
−
−
−
AICR2
7
6
5
4
3
2
アドレス:0000008EH
−
−
−
−
−
−
1
0
AN9E AN8E
1
0
AN11E AN10E
初期値
------00B
アクセス
初期値
------00B
アクセス
R/W
R/W
AICR は , 対応する I/O ポートの各端子を以下のように制御します。
AICR=0: ポート入力モード
AICR=1: アナログ入力モード
リセットで "0" になります。
113
第 4 章 I/O ポート
114
第5章
割込みコントローラ
割込みコントローラの概要 , レジスタの構成 / 機能 ,
割込みコントローラの動作 , およびホールドリクエ
スト取下げ要求機能の使用例について説明します。
5.1 概要
5.2 割込みコントローラのレジスタ
5.3 割込みコントローラの動作
115
第 5 章 割込みコントローラ
5.1
概要
割込みコントローラは , 割込みの受付け / 調停処理を行います。
■ ハードウェア構成
本モジュールは , 以下のレジスタおよび回路より構成されます。
• ICR レジスタ
• 割込み優先度判定回路
• 割込みレベル , 割込み要因 ( ベクタ ) 発生部
• ホールドリクエスト取下げ要求発生部
■ 主要機能
本モジュールには , 主に以下のような機能があります。
• NMI 要求 / 割込み要求の検出
• 優先度判定 ( レベルおよび番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み要因伝達 (CPU へ )
• NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復
帰指示 (CPU へ )
• DMAC へのホールドリクエスト取下げ要求発生
116
第 5 章 割込みコントローラ
■ レジスタ一覧
図 5.1-1 レジスタ一覧 (1/2)
7
5
4
3
2
1
0
←ビット No.
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR00
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR01
−
−
−
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
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR07
ICR3
ICR2
ICR1
ICR0
ICR08
アドレス
00000440H
−
00000441H
−
00000442H
00000447H
−
6
−
00000448H
−
−
−
ICR4
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
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR15
ICR3
ICR2
ICR1
ICR0
ICR16
0000044FH
−
−
00000450H
−
−
−
ICR4
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
ICR20
00000455H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR21
00000456H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR22
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR23
ICR3
ICR2
ICR1
ICR0
ICR24
00000457H
−
−
00000458H
−
−
−
ICR4
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
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR31
R
R/W
R/W
R/W
R/W
0000045FH
−
−
117
第 5 章 割込みコントローラ
図 5.1-1 レジスタ一覧 (2/2)
5
4
3
2
1
0
←ビット No.
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR32
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR33
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR34
00000463H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR35
00000464H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR36
00000465H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR37
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR38
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR39
ICR3
ICR2
ICR1
ICR0
ICR40
−
00000461H
−
00000462H
00000466H
00000467H
−
−
6
−
−
00000468H
−
−
−
ICR4
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
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR46
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR47
−
R
LVL4
R/W
LVL3
R/W
LVL2
R/W
LVL1
R/W
LVL0
HRCL
R
R/W
R/W
R/W
R/W
0000046EH
0000046FH
00000045H
118
7
アドレス
00000460H
−
−
MHALTI
−
−
−
第 5 章 割込みコントローラ
■ ブロックダイヤグラム
図 5.1-2 ブロックダイヤグラム
UNMI
WAKEUP (LEVEL ≠111111B のとき "1" )
優先度判定
NMI
NMI
処理
5
/
LVL4~LVL0
HLDREQ
取下げ
要求
LEVEL判定
RI00
・
・
・
RI47
(DLYIRQ)
ICR00
・
・
・
ICR47
MHALTI
LEVEL,
VECTOR
判定
6
/
VECTOR
発生
VCT5~VCT0
R-bus
119
第 5 章 割込みコントローラ
5.2
割込みコントローラのレジスタ
割込みコントローラのレジスタ構成および機能について説明します。
■ 割込み制御レジスタ (ICR:ICR00 ∼ ICR47)
ビット No. →
7
6
5
4
3
2
1
0
アドレス
000440H ∼ 00046FH
−
−
−
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
ICR00 ∼ ICR47
初期値
---11111B
割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対応する割
込み要求の割込みレベルを設定します。
[ ビット 4 ∼ビット 0] ICR4 ∼ ICR0
割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。
本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定されたレベルマ
スク値以上の場合は , CPU 側にて割込み要求はマスクされます。
リセットにより , "11111B" に初期化されます。
設定可能な割込みレベル設定ビットと割込みレベルの対応を表 5.2-1 に示します。
表 5.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" を書き込むことはできません。
120
第 5 章 割込みコントローラ
■ Hold Request Cancel Level register (HRCL)
アドレス
00000045H
7
6
5
4
3
2
1
0
←ビット No.
MHALTI
−
−
LVL4
R
LVL3
R/W
LVL2
R/W
LVL1
R/W
LVL0
R/W
0--11111B ( 初期値 )
R/W
HRCL
ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。
[ ビット 7] MHALTI
MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1"
にセットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後で
通常の割込みルーチンと同様にクリアしてください。
[ ビット 4 ∼ビット 0] LVL4 ∼ LVL0
バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定し
ます。
本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した場
合は , バスマスタに対してホールドリクエスト取下げ要求を出します。
LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。
121
第 5 章 割込みコントローラ
5.3
割込みコントローラの動作
割込みコントローラの以下の動作について説明します。
• 優先順位判定
• NMI
• ホールドリクエストの取下げ要求
• スタンバイモード ( ストップ / スリープ ) からの復帰
■ 優先順位判定
本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選
択し , その要因の割込みレベルと割込み要因を CPU へ出力します。
割込み要因の優先順位判定基準は , 次のとおりです。
1. NMI
2. 以下の条件を満たす要因
• 割込みレベルの数値が 31 以外 (31 は割込み禁止 )
• 割込みレベルの数値が最も小さい要因
• その中で , 最も小さい割込み要因を持つ要因
上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし
て 31(11111B) を出力します。そのときの割込み番号は不定です。
割込み要因と割込み番号 , 割込みレベルの関係を表 5.3-1 に示します。
122
第 5 章 割込みコントローラ
表 5.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
−
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
−
外部割込み 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
8
リロードタイマ 1
25
19
ICR09
398H
000FFF98H
9
リロードタイマ 2
26
1A
ICR10
394H
000FFF94H
10
UART0 ( 受信完了 )
27
1B
ICR11
390H
000FFF90H
0
UART0 ( 送信完了 )
28
1C
ICR12
38CH
000FFF8CH
3
123
第 5 章 割込みコントローラ
表 5.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 3)
割込み番号
割込み要因
割込みレベル オフセット
10 進 16 進
TBR デフォルト
のアドレス
RN
DTTI
29
1D
ICR13
388H
000FFF88H
−
DMAC0 ( 終了 , エラー )
30
1E
ICR14
384H
000FFF84H
−
DMAC1 ( 終了 , エラー )
31
1F
ICR15
380H
000FFF80H
−
DMAC2/3/4 ( 終了 , エラー )
32
20
ICR16
37CH
000FFF7CH
−
UART1 ( 受信完了 )
33
21
ICR17
378H
000FFF78H
1
UART1 ( 送信完了 )
34
22
ICR18
374H
000FFF74H
4
UART2 ( 受信完了 )
35
23
ICR19
370H
000FFF70H
2
UART2 ( 送信完了 )
36
24
ICR20
36CH
000FFF6CH
5
積和
37
25
ICR21
368H
000FFF68H
-
PPG0
38
26
ICR22
364H
000FFF64H
−
PPG1
39
27
ICR23
360H
000FFF60H
−
PPG2/3
40
28
ICR24
35CH
000FFF5CH
−
PPG4/5/6/7
41
29
ICR25
358H
000FFF58H
−
PPG8/9/10/11/12/13/14/15
42
2A
ICR26
354H
000FFF54H
−
外部割込み 8/9
43
2B
ICR27
350H
000FFF50H
−
波形 0( アンダフロー )
44
2C
ICR28
34CH
000FFF4CH
−
波形 1( アンダフロー )
45
2D
ICR29
348H
000FFF48H
−
波形 2( アンダフロー )
46
2E
ICR30
344H
000FFF44H
−
タイムベースタイマ
オーバフロー
47
2F
ICR31
340H
000FFF40H
−
フリーランタイマ
( コンペアクリア )
48
30
ICR32
33CH
000FFF3CH
−
フリーランタイマ ( ゼロ検出 )
49
31
ICR33
338H
000FFF38H
−
A/D0
50
32
ICR34
334H
000FFF34H
−
A/D1
51
33
ICR35
330H
000FFF30H
−
A/D2
52
34
ICR36
32CH
000FFF2CH
−
PWC0 ( 測定完了 )
53
35
ICR37
328H
000FFF28H
−
PWC1 ( 測定完了 )
54
36
ICR38
324H
000FFF24H
−
PWC0 ( オーバフロー )
55
37
ICR39
320H
000FFF20H
−
PWC1 ( オーバフロー )
56
38
ICR40
31CH
000FFF1CH
−
ICU 0 ( 取込み )
57
39
ICR41
318H
000FFF18H
−
124
第 5 章 割込みコントローラ
表 5.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (3 / 3)
割込み番号
割込み要因
割込みレベル オフセット
10 進 16 進
TBR デフォルト
のアドレス
RN
ICU 1 ( 取込み )
58
3A
ICR42
314H
000FFF14H
−
ICU 2/3 ( 取込み )
59
3B
ICR43
310H
000FFF10H
−
OCU0/1 ( 一致 )
60
3C
ICR44
30CH
000FFF0CH
−
OCU2/3 ( 一致 )
61
3D
ICR45
308H
000FFF08H
−
OCU4/5 ( 一致 )
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
50
2BCH
000FFEBCH
∼
∼
∼
∼
255
FF
000H
000FFC00H
INT 命令で使用
−
−
125
第 5 章 割込みコントローラ
■ NMI (Non Maskable Interrupt)
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 のホールド中 (DMA 転送中 ) に行う場合は , ホールド
リクエスト発生元においてリクエストを取り下げてもらう必要があります。この取下
げ要求発生の基準となる割込みレベルを HRCL レジスタに設定します。
● 発生基準
HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合
は , DMAC に対してホールドリクエスト取下げ要求を発生します。
HRCL レジスタの割込みレベル> 優先度判定後の割込みレベル→取下げ要求発生
HRCL レジスタの割込みレベル≦ 優先度判定後の割込みレベル→取下げ要求なし
取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効
であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割
込み要因をクリアしてください。また , NMI を使用したときは , HRCL レジスタの
MHALTI ビットが "1" となっているため , 取下げ要求が有効になっています。
● 設定可能なレベル
HRCL レジスタに設定可能な値は , ICR と同様に "10000B" から "11111B" までです。
"11111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また ,
"10000B" に設定した場合は , NMI でのみ取下げ要求を発生します。
ホールドリクエスト取下げ要求発生となる割込みレベルの設定を表 5.3-2 に示します。
126
第 5 章 割込みコントローラ
表 5.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定
HRCL レジスタ
取下げ要求発生となる割込みレベル
17
NMI, 割込みレベル 16
18
NMI, 割込みレベル 16, 17
31
∼
NMI のみ
∼
16
NMI, 割込みレベル 16 ∼ 30[ 初期値 ]
リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割
込みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値
に設定してください。
■ スタンバイモード ( ストップ / スリープ ) からの復帰
割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し
ます。
NMI を含む , 周辺からの割込み要求 ( 割込みレベルが 11111B 以外 ) が 1 つでも発生す
ると , クロック制御部に対してストップモードからの復帰要求を発生します。
優先度判定部は , ストップ復帰後クロックが供給された後 , 動作を再開しますので , 優
先度判定部の結果が出るまでの間 ,CPU は命令を実行します。
スリープ状態からの復帰においても同様に動作します。また , スリープ中であっても ,
本モジュール内のレジスタはアクセス可能です。
<注意事項>
• NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効
な入力レベルを NMI 端子に与えるようにしてください。
• ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺の
制御レジスタにて割込みレベルを "11111B" にしてください。
■ ホールドリクエスト取下げ要求機能 (HRCL) の使用例
DMA 転送中に , CPU が優先度の高い処理を行いたいときは , DMA に対してホールド
リクエストを取り下げてもらってホールド状態を解除する必要があります。ここでは ,
割込みを利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先
動作を実現します。
127
第 5 章 割込みコントローラ
● 制御レジスタ
HRCL ( ホールドリクエストキャンセルレベル設定レジスタ )
HRCL に設定した割込みレベルより強いレベルの割込みが発生した場合に , DMA に
対してホールドリクエスト取下げ要求を発生します。その基準となるレベルを設定
します。
ICR ( 割込み制御レジスタ )
使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し
ます。
● ハードウェア構成
各信号の流れを図 5.3-1 に示します。
図 5.3-1 各信号の流れ
本モジュール
IRQ
バスアクセス要求
MHALTI
I-UNIT
(ICR)
(HRCL)
DHREQ: D-busホールドリクエスト
DHREQ
DMAC
バス
コンバータ
CPU
DHACK
D-busホールドアクノリッジ
IRQ :
割込み要求
MHALTI: ホールドリクエスト
取下げ要求
DHACK
● シーケンス
図 5.3-2 割込みレベル HRCL < ICR (LEVEL)
RUN
CPU
バスホールド
割込み処理
①
バスアクセス要求
②
バスホールド(DMA転送)
割込みルーチンの例
① 割込み要因クリア
DHREQ
~
DHACK
② RETI
IRQ
LEVEL
MHALTI
割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した
レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA
はアクセス要求を下げ , CPU はホールド状態から復帰して割込み処理を行います。
多重割込みの場合を 図 5.3-3 に示します。
128
第 5 章 割込みコントローラ
図 5.3-3 割込みレベル HRCL < ICR( 割込みⅠ ) < ICR( 割込みⅡ )
RUN
バスホールド
割込みI
割込み処理II
割込み処理I
バスホールド(DMA転送)
CPU
バスアクセス要求
DHREQ
DHACK
IRQ1
IRQ2
LEVEL
MHALTI
割込みルーチンの例
① , ③割込み要因クリア
∼
② , ④ RETI
上記例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した場
合を示しています。
HRCL レジスタに設定した割込みレベルより高い割込みレベルが発生している間は ,
DHREQ は "L" レベルになっています。
<注意事項>
HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してください。
129
第 5 章 割込みコントローラ
130
第6章
外部割込み・NMI 制御部
外部割込み /NMI 制御部の概要 , レジスタの構成 /
機能 , および動作について説明します。
6.1 外部割込み /NMI 制御部の概要
6.2 外部割込み /NMI 制御部のレジスタ
6.3 外部割込み /NMI 制御部の動作
131
第 6 章 外部割込み・NMI 制御部
6.1
外部割込み /NMI 制御部の概要
外部割込み制御部は , NMI および INT0 ∼ INT9 に入力される外部割込み要求の制御
を行います。
外部割込み入力は , 検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下
りエッジ " から選択できます。
■ レジスタ一覧
外部割込み /NMI 制御部のレジスタ一覧を示します。
外部割込み要因レジスタ
7
6
5
4
3
2
1
0
初期値
EIRR0 アドレス : 00000040H
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
00000000B [R/W]
EIRR1 アドレス : 000000B8H
−
−
−
−
−
−
ER9
ER8
- - - - - - 0 0B [R/W]
7
6
5
4
3
2
1
0
初期値
ENIR0 アドレス : 00000041H
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
00000000B [R/W]
ENIR1 アドレス : 000000B9H
−
−
−
−
−
−
EN9
EN8
- - - - - - 0 0B [R/W]
15
14
13
12
11
10
9
8
初期値
ELVR0 アドレス : 00000042H
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
00000000B [R/W]
ELVR1 アドレス : 000000BAH
−
−
−
−
−
−
−
−
- - - - - - - -B [R/W]
7
6
5
4
3
2
1
0
初期値
ELVR0 アドレス : 00000043H
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
00000000B [R/W]
ELVR1 アドレス : 000000BBH
−
−
−
−
LB9
LA9
LB8
LA8
- - - - 0 0 00B [R/W]
ビット No. →
割込み許可レジスタ
ビット No. →
外部割込み要求レベル設定レジスタ
ビット No. →
ビット No. →
■ ブロックダイヤグラム
外部割込み /NMI 制御部のブロックダイヤグラムを図 6.1-1 に示します。
図 6.1-1 ブロックダイヤグラム
10
外部割込み許可レジスタ
割込み要求
132
11
10
10
ゲート
要因 F/F
エッジ検出回路
外部割込み要因レジスタ
外部割込み要求レベル設定レジスタ
11
INT0~INT9
NMI
第 6 章 外部割込み・NMI 制御部
6.2
外部割込み /NMI 制御部のレジスタ
外部割込み /NMI 制御部で使用するレジスタの構成および機能について説明します。
■ 割込み許可レジスタ [ENIR (ENIR0, ENIR1) : ENable Interrupt request Register]
ビット No. →
ENIR0 アドレス : 00000041H
ENIR1 アドレス : 000000B9H
7
6
5
4
3
2
1
0
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
初期値
00000000B [R/W]
−
EN9
EN8
- - - - - - 0 0B [R/W]
−
−
−
−
−
ENIR レジスタは外部割込み要求出力のマスク制御を行います。このレジスタの "1" を
書かれたビットに対応する割込み要求出力は許可され (INT0 の許可を EN0 が制御 ) , 割
込みコントローラに対して要求が出力されます。"0" が書かれたビットの対応する端子
は割込み要因を保持しますが , 割込みコントローラに対しては要求を発生しません。
ENIR1 レジスタのビット 7 ∼ビット 2 には , 必ず "0" を書き込んでください。
NMI に対する許可ビットは , 存在しません。
■ 外部割込み要因レジスタ [EIRR (EIRR0, EIRR1) : External Interrupt Request
Register]
ビット No. →
EIRR0 アドレス : 00000040H
EIRR1 アドレス : 000000B8H
7
6
5
4
3
2
1
0
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
初期値
00000000B [R/W]
−
ER9
ER8
- - - - - - 0 0B [R/W]
−
−
−
−
−
EIRR レジスタは読出し時には対応する外部割込み要求があることを示し , 書込み時に
はこの要求を示すフリップフロップの内容をクリアするレジスタです。
この EIRR レジスタを読み出したときに "1" であった場合 , そのビットに対応する端子
に外部割込み要求があることを示します。また , このレジスタに "0" を書き込むと , 対
応するビットの要求フリップフロップがクリアされます。
"1" の書込みは無効です。
リード・モディファイ・書込みの読出し時には "1" が読まれます。
NMI に対するフラグは , ユーザからアクセスできません。
133
第 6 章 外部割込み・NMI 制御部
■ 外部割込み要求レベル設定レジスタ [ELVR (ELVR0, ELVR1) : External LeVel
Register]
15
14
13
12
11
10
9
8
ELVR0 アドレス : 00000042H
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
初期値
00000000B [R/W]
ELVR1 アドレス : 000000BAH
−
−
−
−
−
−
−
−
- - - - - - - -B [R/W]
ビット No. →
7
6
5
4
3
2
1
0
ELVR0 アドレス : 00000043H
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
初期値
00000000B [R/W]
ELVR1 アドレス : 000000BBH
−
−
−
−
LB9
LA9
LB8
LA8
- - - - 0 0 0 0B [R/W]
ビット No. →
ELVR は要求検出の選択を行うレジスタです。INT0 ∼ INT9 に 2 ビットずつが割り当て
られていて , 以下のような設定になります。要求入力がレベルの場合 , EIRR の各ビッ
トをクリアしても入力がアクティブレベルならば該当するビットは再びセットされま
す。
ストップ状態からの復帰に使用する場合は , "H" レベル , または "L" レベル要求に設定
してください。
表 6.2-1 ELVR 割当て表
LBx, LAx
動作
0 0B
"L" レベルで要求あり
0 1B
"H" レベルで要求あり
1 0B
立上りエッジで要求あり
1 1B
立下りエッジで要求あり
NMI の検出レベルは , 常に立下りエッジです。また , ストップ状態からの復帰に NMI
を使用する場合は , "L" レベル検出となります。
134
第 6 章 外部割込み・NMI 制御部
6.3
外部割込み /NMI 制御部の動作
要求レベル , 許可レジスタの設定後 , 対応する端子に ELVR レジスタで設定された要
求が入力されると , 本モジュールは割込みコントローラに対して割込み要求信号を発
生します。割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 ,
本リソースからの割込みが最も優先順位が高かったときに該当する割込みが発生し
ます。
■ 外部割込みの動作について
外部割込みの動作を図 6.3-1 に示します。
図 6.3-1 外部割込みの動作
割込み
割込みコントローラ
外部割込み
CPU
リソース 要求
ELVR
ENIR
IL
ICRyy
EIRR CMP
ICRxx
CMP
ILM
要因
■ スタンバイからの復帰について
クロック停止モードのスタンバイ状態からの復帰に外部割込みを使う場合は , 入力要
求を "H" レベル , または "L" レベル要求に設定してください。
エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。
使用しないチャネルは , スタンバイに入る前に必ずディセーブル状態にしてください。
■ 外部割込みの動作手順について
外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2. 許可レジスタの対象となるビットをディセーブル状態にする。
3. 要求レベル設定レジスタの対象となるビットを設定する。
4. 要因レジスタの対象となるビットをクリアする。
5. 許可レジスタの対象となるビットをイネーブル状態にする。
( ただし , 4. と 5. は 16 ビットデータによる同時書込み可能。)
本モジュール内のレジスタを設定するときには必ず許可レジスタをディセーブル状態
に設定しておかなくてはなりません。また , 許可レジスタをイネーブル状態にする前に
必ず要因レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み
許可状態時に誤って割込み要因が起こってしまうことを避けるためです。
135
第 6 章 外部割込み・NMI 制御部
■ 外部割込み要求レベルについて
1. 要求レベルがエッジ要求時 , エッジがあったことを検出するためには , パルス幅は
最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。
2. 要求入力レベルがレベル設定時 , 外部より要求入力が入ってその後 , 取り下げられ
ても内部に要因保持回路が存在するため , 割込みコントローラへの要求はアクティ
ブのままです。
割込みコントローラへの要求を取り下げるには外部割込み要因レジスタをクリアする
必要があります。
図 6.3-2 レベル設定時の外部割込み要因レジスタのクリア
割込み入力
レベル検出
外部割込み要因レジスタ
(要因保持回路)
許可ゲート
割込み
コントローラ
クリアしない限り要因を保持し続ける
図 6.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求
"H"レベル
割込み入力
割込みコントローラ
への割込み要求
136
外部割込み要因レジスタのクリアによってインアクティブとなる
第 6 章 外部割込み・NMI 制御部
■ NMI
1. NMI は , ユーザ割込みの中で最強の割込みで , マスクすることはできません。
例外として , NMI の使用前に ILM を設定しないで NMI を起動すると , NMI 要因は
検出されますが , CPU は NMI 要求を受け付けません。このとき , ILM を NMI が受
け付けられるレベルに設定されるまで , NMI 要因は保持され続けます。このため ,
リセット後 , ILM を 16 以上の値に設定した後 , NMI を使用してください。また , NMI
の内部要因フラグは CPU からアクセスできませんので , リセット後の NMI 端子は
"H" レベルを保持してください。
2. NMI の受付けは下記のとおりです。
通常時
:立下りエッジ
ストップ時 :"L" レベル
3. NMI によってストップモードの解除が可能です。ストップ状態で "L" レベルが入力
されるとストップ状態が解除され発振安定待ち時間がとられます。
NMI 要求検出部は NMI フラグがあり , NMI 要求によりセットされ , NMI 自身の割
込みの受付け , もしくは , リセットでのみクリアされます。
なお , このビットは読出し / 書込みできません。
図 6.3-4 NMI 要求検出
(NMIフラグ)
0
NMI要求
(ストップ解除)
Q
SX
立下り
エッジ検出
R
NMI
1
STOP
クリア (RST,割込み アクノリッジ)
137
第 6 章 外部割込み・NMI 制御部
■ 外部割込みを使用した STOP 状態からの復帰時における注意事項
STOP 状態時に , INT 端子への最初に入力された外部割込み信号は非同期で入力され ,
STOP 状態から復帰することが可能です。ただし , その STOP 解除から , 発振安定待ち
時間経過するまでの期間においては , 他の外部割込み信号の入力を認識できな期間が
存在します ( 図 6.3-5 の b+c+d 期間 )。STOP 解除後の外部入力信号を内部クロックに
同期させるため , クロックが安定していない期間内は , その割込み要因を保持できない
ためです。
そのため , STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に
外部割込み信号を入力してください。
図 6.3-5 STOP 状態からの外部割込みによる復帰動作のシーケンス
INT1
INT0
内部STOP
Regulator
12uS
High
Low
内部動作(RUN)
命令実行(run)
X0
内部Clock
割込みフラグクリア
INTR0
INTE0
‘1’(STOPモードに遷移前にenableへ設定)
INTR1
INTE1
‘1’(STOPモードに遷移前にenableへ設定)
(a)STOP
(b)レギュレータ安定待ち時間
(d)発振安定待ち時間
(c) 振動子の発振時間
138
(e)RUN
第 6 章 外部割込み・NMI 制御部
■ STOP 状態からの復帰動作について
現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行われます。
● STOP 遷移前の処理
外部割込みの設定
デバイスが STOP 状態に遷移する前に STOP 状態時の割込み入力パスを許可する必
要があります。これは PFR レジスタ (Port Function Register) で設定を行います。通
常状態 (STOP 以外の状態 ) では割込みの入力パスは許可状態ですので意識する必要
はありません。しかし STOP 状態では PFR レジスタ値により入力パスが制御されて
おります。
端子名
外部割込みによる STOP 状態からの復帰時の設定
P63/INT9
PCR6 の bit3 を "0" としてください。
P62/INT8
PCR6 の bit2 を "0" としてください。
P26/INT7
PCR2 の bit7 を "0" としてください。
P27/INT6
PCR2 の bit6 を "0" としてください。
P62/INT5/PPG0
PCR6 の bit1 を "0" としてください。
P60/INT4/CKI
PCR6 の bit0 を "0" としてください。
P57/INT3
PFR5 の bit7 を "0" としてください。
P56/INT2
PFR5 の bit6 を "0" としてください。
P55/INT1
PFR5 の bit5 を "0" としてください。
P54/INT0
PFR5 の bit4 を "0" としてください。
外部割込みの入力
STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状
態となっています。この割込み入力がアサートされると直ちにに内部 STOP 信号を
立ち下げる動作が行われます。同時に外部割込み回路では他のレベル割込み入力の
同期化を行うように切り換わります。
● レギュレータ安定待ち時間
内部 STOP 信号が立ち下がると STOP 時のレギュレータから RUN 時のレギュレー
タへ切換え動作が開始されます。RUN 時のレギュレータの電圧出力が安定する前
に内部動作が開始されると動作が不安定になるため , 内部出力電圧の安定待ち時間
として , 約 12µs のレギュレータの安定待ち時間を確保しています。この期間はク
ロックが停止しています。
● 振動子の発振時間
レギュレータ安定待ち時間が終了後 , クロックの発振が開始されます。振動子の発
振時間は使用される振動子により異なります。
● 発振安定待ち時間
振動子の発振時間後にデバイス内部で発振安定待ち時間がとられます。発振安定待
ち時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安定
139
第 6 章 外部割込み・NMI 制御部
待ち時間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が開
始されると共に , STOP からの復帰要因以外の外部割込み要因が受け付け可能にな
ります。
140
第7章
REALOS 関連ハード
REALOS 関連ハードは , リアルタイム OS により
使用されます。したがって , REALOS を使用する
場合にはユーザプログラムで使用することはでき
ません。
7.1 遅延割込みモジュール
7.2 遅延割込みモジュールのレジスタ
7.3 遅延割込みモジュールの動作
7.4 ビットサーチモジュール
7.5 ビットサーチモジュールのレジスタ
7.6 ビットサーチモジュールの動作
141
第 7 章 REALOS 関連ハード
7.1
遅延割込みモジュール
遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールで
す。
本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 /
取消しを行うことができます
■ レジスタ一覧
アドレス
00000044H
7
6
5
4
3
2
1
0
←ビット No.
−
−
−
−
−
−
−
DLYI
[R/W]
DICR
■ ブロックダイヤグラム
図 7.1-1 ブロックダイヤグラム
R‐bus
DLYI
割込み要求
142
第 7 章 REALOS 関連ハード
7.2
遅延割込みモジュールのレジスタ
遅延割込みモジュールで使用するレジスタの構成および機能について説明します。
■ DICR (Delayed Interrupt Control Register)
アドレス
000044H
7
6
5
4
3
2
1
−
−
−
−
−
−
−
0
DLYI
[R/W]
初期値
-------0B
遅延割込みを制御するレジスタです。
[ ビット 0] DLYI
DLYI
説明
0
遅延割込み要因の解除・要求なし〔初期値〕
1
遅延割込み要因の発生
本ビットにより , 該当する割込み要因の発生・解除を制御します。
143
第 7 章 REALOS 関連ハード
7.3
遅延割込みモジュールの動作
遅延割込みは , タスク切換え用の割込みを発生します。本機能により , ソフトウェア
で CPU に対して割込み要求の発生 , 取消しを行うことができます。
■ 割込み番号
遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。
本品種では , 遅延割込みを割込み番号 63 (3FH) に割り当てています。
■ DICR の DLYI ビット
このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き
込むことで , 遅延割込み要因を解除します。
本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ
ンの中で本ビットをクリアし , 併せてタスクの切換えを行うようにしてください。
144
第 7 章 REALOS 関連ハード
7.4
ビットサーチモジュール
入力レジスタに書き込まれたデータに対して , "0", "1" または変化点を検索し , 検出
したビット位置を返します。
■ レジスタ一覧
ビットサーチモジュールのレジスタ一覧を図 7.4-1 に示します。
図 7.4-1 レジスタ一覧
アドレス
000003F0H
31
0
BSD0
0 検出用データレジスタ
000003F4H
BSD1
1 検出用データレジスタ
000003F8H
BSDC
変化点検出用データレジスタ
000003FCH
BSSR
検出結果レジスタ
■ ブロックダイヤグラム
図 7.4-2 ブロックダイヤグラム
D-bus
入力ラッチ
アドレスデコーダ
検出モード
1検出データ化
ビットサーチ回路
検索結果
145
第 7 章 REALOS 関連ハード
7.5
ビットサーチモジュールのレジスタ
ビットサーチモジュールで使用するレジスタの構成および機能について説明します。
■ 0 検出用データレジスタ (BSD0)
アドレス
000003F0H
31
0
リード / ライト→ W
初期値→ 不定
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX B
書き込んだ値に対して , 0 検出を行います。
リセットによる初期値は不定です。読出し値は不定です。
データ転送には , 32 ビット 長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト 長のデータ転送命令は使わないでください )。
■ 1 検出用データレジスタ (BSD1)
アドレス
000003F4H
31
0
リード / ライト→ R/W
初期値→ 不定
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXXB
データ転送には , 32 ビット 長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト 長のデータ転送命令は使わないでください )。
• 書込み時
書き込んだ値に対して , "1" を検出します。
• 読出し時
ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハン
ドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避 / 復帰する
ときに使用します。
0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー
タレジスタのみ操作することで退避 / 復帰できます。
リセットによる初期値は不定です。
146
第 7 章 REALOS 関連ハード
■ 変化点検出用データレジスタ (BSDC)
31
アドレス
000003F8H
0
リード / ライト→ W
初期値→ 不定
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXXB
書き込んだ値に対して , 変化点の検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット 長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト 長のデータ転送命令は使わないでください )。
■ 検出結果レジスタ (BSRR)
アドレス
000003FCH
31
0
リード / ライト→ R
初期値→ 不定
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX B
0 検出 , 1 検出 , または変化点検出の結果が読み出されます。
どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ
れます。
147
第 7 章 REALOS 関連ハード
7.6
ビットサーチモジュールの動作
ビットサーチモジュールの 3 種類の動作について説明します。
• 0 検出
• 1 検出
• 変化点検出
■ 0 検出
0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"0" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す数値の関係は , 表 7.6-1 のとおりです。
"0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ), 32 という値を検出結
果として返します。
[ 実行例 ]
書込みデータ
読出し値 (10 進 )
11111111111111111111000000000000B (FFFFF000H)
→
20
11111000010010011110000010101010B (F849E0AAH)
→
5
10000000000000101010101010101010B (8002AAAAH)
→
1
11111111111111111111111111111111B (FFFFFFFFH)
→
32
■ 1 検出
1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"1" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す値との関係は , 表 7.6-1 のとおりです。
"1" が存在しないとき ( すなわち 00000000H という数値のとき ), 32 という値を検出結
果として返します。
[ 実行例 ]
書込みデータ
148
読出し値 (10 進 )
00100000000000000000000000000000B (20000000H)
→
2
00000001001000110100010101100111B (01234567H)
→
7
00000000000000111111111111111111B (0003FFFFH)
→
14
00000000000000000000000000000001B (00000001H)
→
31
00000000000000000000000000000000B (00000000H)
→
32
第 7 章 REALOS 関連ハード
■ 変化点検出
変化点検出用データレジスタに書き込まれたデータをビット 30 から LSB へスキャン
し , MSB の値と比較します。最初に MSB と異なる値を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す値は , 表 7.6-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
表 7.6-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 を返します。
149
第 7 章 REALOS 関連ハード
■ 退避・復帰の処理
割込みハンドラ中でビットサーチモジュールを使う場合のように , ビットサーチモ
ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ
い。
1. 1 検出用データレジスタを読み出し , この内容を保存する ( 退避 ) 。
2. ビットサーチモジュールを使用する。
3. 1. で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 )。
以上の操作により , 次に検出結果レジスタを読み出したときに得られる値は , 1. 以前に
ビットサーチモジュールに書き込まれた内容に応じたものとなります。最後に書き込
まれたデータレジスタが0検出用または変化点検出用であっても, 上記手順で正しく元
に戻ります。
150
第8章
16 ビットリロードタイマ
16 ビットリロードタイマの概要 , レジスタの構成 /
機能 , および 16 ビットリロードタイマの動作につ
いて説明します。
8.1 概要
8.2 16 ビットリロードタイマのブロックダイヤグラム
8.3 16 ビットリロードタイマのレジスタ
8.4 16 ビットリロードタイマの動作
151
第 8 章 16 ビットリロードタイマ
8.1
概要
16 ビットタイマは , 16 ビット のダウンカウンタ , 16 ビット のリロードレジスタ ,
内部カウント , クロック作成用プリスケーラ , コントロールレジスタで構成されてい
ます。
クロックソースとして内部クロック 3 種類 ( マシンクロックの 2/8/32/64/128 分周ま
で選択可能 ) , 外部トリガから選択できます。
本品種では , 本タイマを 3 チャネル内蔵しています。
リロードタイマ 0 の端子への出力はありません。
■ レジスタ一覧
コントロールステータスレジスタ (TMCSR:TMCSR0 ∼ TMCSR2)
TMCSR0 アドレス 00004EH
TMCSR1 アドレス 000056H
TMCSR2 アドレス 00005EH
リード / ライト→
初期値→
リード / ライト→
初期値→
15
14
13
12
11
10
9
8
−
−
−
CSL2
CSL1
CSL0
−
(X)
−
(X)
−
(X)
R/W
R/W
R/W
R/W
R/W
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
MOD0
OUTL
RELD
INTE
UF
CNTE
TRG
R/W
−
R
R/W
R/W
R/W
R/W
R/W
R/W
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
←ビット No.
MOD2 MOD1
←ビット No.
16 ビットタイマレジスタ (TMR:TMR0 ∼ TMR2)
15
14
13
12
11
10
9
8
リード / ライト→
R
R
R
R
R
R
R
R
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
7
6
5
4
3
2
1
0
リード / ライト→
R
−
R
R
R
R
R
R
R
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
TMR0 アドレス 00004AH
TMR1 アドレス 000052H
TMR2 アドレス 00005AH
←ビット No.
←ビット No.
16 ビットリロードレジスタ (TMRLR:TMRLR0 ∼ TMRLR2)
15
14
13
12
11
10
9
8
リード / ライト→
W
W
W
W
W
W
W
W
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
7
6
5
4
3
2
1
0
リード / ライト→
W
−
W
W
W
W
W
W
W
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
TMRLR0 アドレス 000048H
TMRLR1 アドレス 000050H
TMRLR2 アドレス 000058H
152
←ビット No.
←ビット No.
第 8 章 16 ビットリロードタイマ
8.2
16 ビットリロードタイマのブロックダイヤグラム
リロードタイマのブロックダイヤグラムを示します。
■ リロードタイマのブロックダイヤグラム
図 8.2-1 リロードタイマのブロックダイヤグラム
16ビットリロードレジスタ
(TMRLR0~TMRLR2)
リロード
RELD
16ビットダウンカウンタ
(TMR0~TMR2) UF
OUTL
INTE
OUT
CTL
カウント
イネーブル
IRQ
UF
CNTE
R-bus
TRG
CSL2
クロック
セレクタ
外部タイマ出力
TOT1(P70)
TOT2(P71)
CSL1
CSL0
EXCK
プリスケーラ
IN
プリスケーラ
クリア
CTL
CSL2
CSL1
CSL0
TO1E,
TO2E
外部トリガ
選択
PFR7のビット
外部トリガ入力
TIN0(P51)
TIN1(P52)
TIN2(P53)
153
第 8 章 16 ビットリロードタイマ
8.3
16 ビットリロードタイマのレジスタ
リロードタイマのレジスタの構成と機能について説明します。
■ コントロールステータスレジスタ (TMCSR:TMCSR0 ∼ TMCSR2)
コントロールステータスレジスタ (TMCSR)
15
アドレス
14
13
12
11
10
CSL1
CSL0
9
8
←ビット No.
TMCSR0:00004EH
−
−
−
CSL2
TMCSR1:000056H
−
(X)
−
(X)
−
(X)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
←リード / ライト
←初期値
7
6
5
4
3
2
1
0
←ビット No.
MOD0
−
R
(0)
OUTL
RELD
INTE
UF
CNTE
TRG
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
TMCSR2:00005EH
R/W
(0)
MOD2 MOD1
←リード / ライト
←初期値
16 ビットタイマの動作モードおよび割込みの制御を行います。
UF, CNTE, TRG ビット以外の書換えは , CNTE=0 のときに行うようにしてください。
[ ビット 12 ∼ビット 10] CSL2, CSL1, CSL0 (Count source select)
カウントソースセレクトビットです。カウントソースは内部クロックと外部トリガ
を選択できます。選択可能なカウントソースは以下のとおりです。
CSL2 CSL1 CSL0 カウントソース (φ: マシンクロック )
φ=32MHz
φ=16MHz
0
0
0
内部クロック φ/21 ( 初期値 )
62.5 ns
125 ns
0
0
1
内部クロック φ/23
250 ns
0.5 µs
0
1
0
内部クロック φ/25
1.0 µs
2.0 µs
0
1
1
外部トリガ
−
−
1
0
0
設定禁止
−
−
1
0
1
内部クロック φ/26
2.0 µs
4.0 µs
1
1
0
内部クロック φ/27
4.0 µs
8.0 µs
1
1
1
ch.1 タイマ出力 (ch.2 のみ設定可能 )
ch.1
ch.1
外部トリガをカウントソースに設定した場合のカウント有効エッジは MOD1, MOD0
ビットにより設定されます。
外部トリガに必要な最小パルス幅は , 2 × T (T: マシンクロックサイクル ) です。
CSL2, CSL1, CSL0=111B は , ch.1 + ch.2 のカスケード接続で , ch.2 のレジスタのみ設定
可能です。ch.1 では設定禁止です。
154
第 8 章 16 ビットリロードタイマ
[ ビット 9 ∼ビット 7] MOD2, MOD1, MOD0 (Mode)
動作モードを選択するビットです。カウントソースが「内部クロック」の場合と「外
部トリガ」の場合で機能が変わります。
• 内部クロックモードのとき : リロードトリガ設定
• 外部トリガモードのとき
: カウント有効エッジの設定
また , MOD2 は必ず "0" を設定してください。
[ 内部クロック選択時のリロードトリガ設定 ]
カウントソースとして , 内部クロックが選択されている場合は , MOD2 ∼MOD0ビッ
トの設定により有効エッジが入力されるとリロードレジスタの内容をロードしてカ
ウント動作を継続します。
MOD2
MOD1
MOD0
有効エッジ
0
0
0
ソフトウェアトリガ ( 初期値 )
0
0
1
外部トリガ ( 立上りエッジ )
0
1
0
外部トリガ ( 立下りエッジ )
0
1
1
外部トリガ ( 両エッジ )
1
X
X
設定禁止
[ 外部トリガ選択時の有効エッジ設定 ]
カウントソースとして , 外部クロックが設定されている場合は , MOD2 ∼MOD0ビッ
トの設定により外部トリガの有効エッジをカウントします。
MOD2
MOD1
MOD0
有効エッジ
X
0
0
−
X
0
1
外部トリガ ( 立上りエッジ )
X
1
0
外部トリガ ( 立下りエッジ )
X
1
1
外部トリガ ( 両エッジ )
X
X
X
設定禁止
外部トリガ選択時のリロードは , ソフトウェアトリガとアンダフローで発生します。
[ ビット 6] 未使用ビットです。
常に "0" が読み出されます。
[ ビット 5] OUTL
外部タイマ出力レベルを設定するビットです。本ビットが "0" のときと "1" のときで
は出力レベルが逆になります。
155
第 8 章 16 ビットリロードタイマ
[ ビット 4] RELD
リロード許可ビットです。"1" のときリロードモードになり , カウンタの値が "0000H"
→ "FFFFH" へのアンダフローと同時にリロードレジスタの内容をカウンタへロード
してカウント動作を続けます。
"0" のときワンショットモードになり , カウンタの値が "0000H" → "FFFFH" へのアン
ダフローによりカウント動作を停止します。
TOxE
OUTL
RELD
0
X
X
出力禁止
1
0
0
カウント中 "H" の矩形波
1
1
0
カウント中 "L" の矩形波
1
0
1
カウントスタート時 "L" のトグル出力
1
1
1
カウントスタート時 "H" のトグル出力
出力波形
TOxE は PFR7(Port Function Register) 中の TO1E, TO2E を示します。ただし , リロー
ドタイマ 0 の端子への出力はありません。
[ ビット 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 のと
きには何も起こりません。
156
第 8 章 16 ビットリロードタイマ
■ TMR レジスタ (16 ビットタイマレジスタ )
16 ビットタイマレジスタ (TMR)
アドレス
15
14
13
12
11
10
9
8
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
←リード / ライト
←初期値
7
6
5
4
3
2
1
0
←ビット No.
R
(X)
−
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
←リード / ライト
←初期値
←ビット No.
TMR0:00004AH
TMR1:000052H
TMR2:00005AH
16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定で
す。読出しは必ず 16 ビットデータ転送命令で行ってください。
■ TMRLR レジスタ (16 ビットリロードレジスタ )
16 ビットリロードレジスタ (TMRLR)
アドレス
15
14
13
12
11
10
9
8
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
←リード / ライト
←初期値
7
6
5
4
3
2
1
0
←ビット No.
W
(X)
−
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
←リード / ライト
←初期値
←ビット No.
TMRLR0:000048H
TMRLR1:000050H
TMRLR2:000058H
カウントの初期値を保持しておくためのレジスタです。初期値は不定です。読出しは
必ず 16 ビットデータ転送命令で行ってください。
157
第 8 章 16 ビットリロードタイマ
8.4
16 ビットリロードタイマの動作
リロードタイマの動作について説明します。
■ 内部クロック動作
内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマシ
ンクロックの 2, 8, 32, 64, 128 分周のクロックから選択できます。
カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ
ジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。TRG ビット
によるトリガ入力は , タイマが起動状態のとき (CNTE=1) 動作モードにかかわらず常に
有効です。
カウンタの起動およびカウンタの動作について , 図 8.4-1 に示します。
カウントスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ
ロードされるまでに , T (T: 周辺系クロックマシンサイクル ) の時間が必要です。
図 8.4-1 カウンタの起動および動作
カウントクロック
カウンタ
-1
リロードデータ
データロード
CNTE(レジスタ)
TRG(レジスタ)
T
158
-1
-1 第 8 章 16 ビットリロードタイマ
■ アンダフロー動作
カウンタの値が "0000H" から "FFFFH" になるときをアンダフローと定義しています。し
たがって , [ リロードレジスタの設定値+ 1] カウントでアンダフローが発生します。
アンダフロー発生時コントロールステータスレジスタの RELD ビットが "1" のとき , リ
ロードレジスタの内容をカウンタへロードしてカウント動作を継続します。RELD ビッ
トが "0" のとき , カウンタは "FFFFH" で停止します。
アンダフローが発生すると , コントロールステータスレジスタの UF ビットをセットし
ます。このときに INTE ビットが "1" の場合 , 割込み要求を発生します。
アンダフロー発生時の動作について図 8.4-2 に示します。
図 8.4-2 アンダフロー動作
カウントクロック
カウンタ
0000H
リロードデータ
-1
-1 -1
データロード
アンダフローセット
[RELD=1]
カウントクロック
カウンタ
0000H
FFFFH
アンダフローセット
[RELD=0]
159
第 8 章 16 ビットリロードタイマ
■ 出力端子機能
TOT1, TOT2 出力端子は , リロードモード時はアンダフローにより反転するトグル出力
として , ワンショットモード時はカウント中を示すパルス出力として機能します。出力
極性はレジスタの OUTL ビットにより設定できます。OUTL=0 のときトグル出力は初
期値が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OUTL=1 にす
ると出力波形は反転します。
図 8.4-3 出力端子機能 [RELD=1, OUTL=0]
カウント開始
アンダフロー
OUTL=1のときは
反転
TOT1,TOT2
汎用ポート
CNTE
起動トリガ
図 8.4-4 出力端子機能 [RELD=0, OUTL=0]
カウント開始
アンダフロー
OUTL=1で
反転
TOT1,TOT2
汎用ポート
CNTE
起動トリガ
起動トリガ待ち状態
160
第 8 章 16 ビットリロードタイマ
■ カウンタの動作状態
カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号に
よって決まっています。設定可能な状態として CNTE=0,WAIT=1 の停止状態 (STOP 状
態 ) , CNTE=1,WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ) , CNTE=1,WAIT=0 の動作
状態 (RUN 状態 ) があります。各状態の遷移を図 8.4-5 に示します。
図 8.4-5 カウンタ状態遷移
ハードウェアによる状態遷移
リセット
レジスタアクセスによる状態遷移
STOP
CNTE=0,WAIT=1
カウンタ: 停止時の値を保持
リセット直後は不定
CNTE="1"
TRG="0"
WAITST
CNTE="1"
TRG="1"
RUN
CNTE=1,WAIT=1
カウンタ: 停止時の値を保持
リセット直後ロード
するまでは不定
RELD・UF
TRG="1"
CNTE=1,WAIT=0
カウンタ: 動作
TRG="1"
RELD・UF
LOAD
CNTE=1,WAIT=0
リロードレジスタの内容をカウンタへロード
ロード終了
■ 注意点
• 内部プリスケーラは , コントロールステータスレジスタのビット 1 ( タイマ許可 :
CNTE) が "1" に設定されている状態でトリガ ( ソフトトリガ , あるいは 外部トリガ )
が発生することにより動作可能になります。
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合にはフラ
グセットが優先し , クリア動作は無効になります。
• 16 ビットタイマリロードレジスタへの書込みと , リロードのタイミングが重なった
場合には , 旧データがカウンタにロードされ , 新しいデータがカウンタにロードさ
れるのは , 次のリロードのときになります。
• 16 ビットタイマレジスタは , ロードとカウントのタイミングが重複した場合には ,
ロード ( リロード ) 動作の方が優先されます。
161
第 8 章 16 ビットリロードタイマ
162
第9章
PPG(Programable Pulse
Generator)
PPG(Programable Pulse Generator) タイマの概
要 , レジスタの構成 / 機能および動作について説明
します。
9.1 概要
9.2 ブロックダイヤグラム
9.3 PPG のレジスタ
9.4 動作説明
163
第 9 章 PPG(Programable Pulse Generator)
9.1
概要
PPG は , 8 ビットのリロードタイマモジュールで , タイマ動作に応じたパルス出力制
御により , PPG 出力を行います。
ハードウェアとして , 8 ビットダウンカウンタ 16 個 , 8 ビットリロードレジスタ 32
個 , 制御レジスタ , 外部パルス出力 16 本 , 割込み出力 16 本を有します。
MB91260B シリーズは , 8 ビット PPG として 16 チャネル分 , 16 ビット PPG とし
て 8 チャネル分を内蔵しています。
■ PPG の機能
● 8 ビット PPG 出力独立動作モード
独立した PPG 出力動作が可能です。
● 16 ビット PPG 出力動作モード
1 チャネルの 16 ビットの PPG 出力動作が可能です。
● 8+8 ビット PPG 出力動作モード
ch(n+1) の出力を ch(n) のクロック入力とすることにより , 任意周期の 8 ビット PPG 出
力動作が可能です (n=0, 2, 4, 6, 8, 10, 12, 14)。
● 16+16 ビット PPG 出力動作モード
ch(n+3)+ch(n+2) の 16 ビットプリスケーラ出力を ch(n+1)+ch(n) の 16 ビット PPG のク
ロック入力とするモードです (n=0, 4, 8, 12)。
● PPG 出力動作
任意周期・デューティ比のパルス波を出力します。
外付け回路により , D/A コンバータとしても使用可能です。
● 出力反転機能
PPG の出力値を反転させることが可能です。
■ レジスタ一覧
• PPG 起動レジスタ (TRG)
15
14
13
12
11
10
9
8
←ビット No.
アドレス : 000130H PEN15 PEN14 PEN13 PEN12 PEN11 PEN10 PEN09 PEN08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リード / ライト→ R/W
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
7
6
5
4
3
2
1
0
PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00
リード / ライト→
初期値→
164
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
←ビット No.
第 9 章 PPG(Programable Pulse Generator)
• 出力反転レジスタ (REVC)
15
14
13
12
11
10
9
8
←ビット No.
アドレス : 000134H REV15 REV14 REV13 REV12 REV11 REV10 REV09 REV08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リード / ライト→ R/W
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
7
6
5
4
3
2
1
0
←ビット No.
REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00
リード / ライト→
初期値→
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
• GATE 機能制御レジスタ (GATEC)
7
6
5
4
3
2
1
0
アドレス : 000133H
−
−
−
−
−
−
STGR
EDGE
リード / ライト→
初期値→
−
(X)
−
(X)
−
(X)
−
(X)
−
(X)
−
(X)
R/W
(0)
R/W
(0)
←ビット No.
• PPG0 ∼ PPG15 動作モード制御レジスタ (PPGC0 ∼ PPGC15)
Bit7
アドレス:
ch.0:000108 H
ch.1:000109 H
ch.2:00010A H
ch.3:00010B H
ch.4:000114 H
ch.5:000115 H
ch.6:000116 H
ch.7:000117 H
ch.8:000120 H
ch.9:000121 H
ch.10:000122 H
ch.11:000123 H
ch.12:00012C H
ch.13:00012D H
ch.14:00012E H
ch.15:00012F H
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
*
*
Bit0
PIEn
PUFn
PCS1
PCS0
MD1
MD0
-
PEN07
PEN06 INTMn
PEN05
PEN04
PEN03
PEN02
PEN01
PEN00
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN07
PEN06
PEN05
PEN04
PEN03
PEN01
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01 PEN00
PEN00
PEN07
PEN06
PEN05
PEN04
リード/ライト → R/W
初期値 → (0)
R/W
(0)
R/W
(0)
R/W
(0)
n = 0 ~ 15
R/W
(0)
R/W
(0)
R/W
(0)
-
(X)
*:MD1,MD0は、偶数チャネルのみ存在し、奇数チャ
ネルには存在しません。奇数チャネルの初期値は
不定です。ライトは意味がありません。
● リロードレジスタ : 8 ビット PPG モード
• リロードレジスタ H (PRLH0 ∼ PRLH15)
アドレス:
ch.0 :000100 H
ch.1 :000102 H
ch.2 :000104 H
ch.3 :000106 H
ch.4 :00010C H
ch.5 :00010E H
ch.6 :000110 H
ch.7 :000112 H
ch.8 :000118 H
ch.9 :00011A H
ch.10:00011C H
ch.11:00011E H
ch.12:000124 H
ch.13:000126 H
ch.14:000128 H
ch.15:00012A H
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01
PEN00
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01
PEN00
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01 PEN00
PEN00
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01
PEN00
リード/ライト → R/W
初期値 → (X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
165
第 9 章 PPG(Programable Pulse Generator)
• リロードレジスタ L (PRLL0 ∼ PRLL15)
アドレス:
ch.0 :000101 H
ch.1 :000103 H
ch.2 :000105 H
ch.3 :000107 H
ch.4 :00010D H
ch.5 :00010F H
ch.6 :000111 H
ch.7 :000113 H
ch.8 :000119 H
ch.9 :00011B H
ch.10:00011D H
ch.11:00011F H
ch.12:000125 H
ch.13:000127 H
ch.14:000129 H
ch.15:00012B H
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01
PEN00
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN07
PEN06
PEN05
PEN04
PEN03
PEN01
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01 PEN00
PEN00
PEN07
PEN06
PEN05
PEN04
リード/ライト → R/W
初期値 → (X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
● リロードレジスタ : 16 ビット PPG モード
• リロードレジスタ H (PRLH0, PRLH2, PRLH4, PRLH6, PRLH8, PRLH10, PRLH12,
PRLH14)
Bit15
リード/ライト → R/W
初期値→ (X)
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
リード/ライト → R/W
初期値→ (X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
アドレス:
ch.0 :000100 H
ch.2 :000104 H
ch.4 :00010C H
ch.6 :000110 H
ch.8 :000118 H
ch.10:00011C H
ch.12:000124 H
ch.14:000128 H
• リロードレジスタ L (PRLL0, PRLL2, PRLL4, PRLL6, PRLL8, PRLL10, PRLL12,
PRLL14)
Bit15
リード/ライト → R/W
初期値→ (X)
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
リード/ライト → R/W
初期値→ (X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
アドレス:
ch.0 :000102 H
ch.2 :000106 H
ch.4 :00010E H
ch.6 :000112 H
ch.8 :00011A H
ch.10:00011E H
ch.12:000126 H
ch.14:00012A H
166
Bit14
第 9 章 PPG(Programable Pulse Generator)
9.2
ブロックダイヤグラム
PPG のブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 9.2-1 8 ビット PPG ch.0, ch.2, ch.4, ch.6, ch.8, ch.10, ch.12, ch.14 のブロックダイヤグラム
ch(n+1)のボロー
マシンクロックの64分周
マシンクロックの16分周
マシンクロックの4分周
マシンクロック
ポートへ
PPG
出力ラッチ
クリア
反転
PEN(n+1)
カウントクロック
選択
S
R
PCNT(ダウンカウンタ)
Q
IRQn
リロード
H/Lセレクト
H/Lセレクタ
PRLLn
PRLBHn
PRLHn
PIEn
PUFn
"L"側データバス
"H"側データバス
PPGCn/TRG
n = 0,2,4,6,8,10,12,14
動作モード
(制御)
167
第 9 章 PPG(Programable Pulse Generator)
図 9.2-2 8 ビット PPG ch.1, ch.5, ch.9, ch.13 のブロックダイヤグラム
ch(n+1)のボロー
マシンクロックの64分周
マシンクロックの16分周
マシンクロックの4分周
マシンクロック
ポートへ
PPG
出力ラッチ
反転
クリア
PENn
S
R
カウントクロック
選択
Q
IRQn
PCNT(ダウンカウンタ)
ch(n-1)
のボロー
リロード
"H"/"L"セレクト
H/Lセレクタ
PRLLn
PRLBHn
PUFn
PIEn
PRLHn
"L"側データバス
"H"側データバス
PPGCn/TRG
n = 1,5,9,13
168
動作モード
(制御)
第 9 章 PPG(Programable Pulse Generator)
図 9.2-3 8 ビット PPG ch.3, ch.7, ch.11, ch.15 のブロックダイヤグラム
ポートへ
マシンクロックの64分周
マシンクロックの16分周
マシンクロックの4分周
マシンクロック
PPG
出力ラッチ
反転
クリア
PENn
S
R
カウントクロック
選択
Q
IRQn
PCNT(ダウンカウンタ)
ch(n-1)
のボロー
リロード
"H"/"L"セレクト
H/Lセレクタ
PRLLn
PRLBHn
PUFn
PIEn
PRLHn
"L"側データバス
"H"側データバス
PPGCn/TRG
n = 3,7,11,15
動作モード
(制御)
169
第 9 章 PPG(Programable Pulse Generator)
図 9.2-4 ゲート機能のブロックダイヤグラム
TRGレジスタより
PEN00 PEN01
レベル検出
セレクタ
0
1
PPG ch0のPEN00
セレクタ
多機能タイマの
GATEより
セレクタ
PPG ch1のPEN01
STGR
0
1
170
0
X
1
X
1
X
EDGE
GATEC
MD1
MD0
ch0
MD1
MD0
ch1
第 9 章 PPG(Programable Pulse Generator)
9.3
PPG のレジスタ
PPG のレジスタ詳細説明します。
■ PPGn 動作モード制御レジスタ (PPGC:PPGC0 ∼ PPGC15)
PPGC0 ∼ PPGC15 動作モード制御レジスタ (PPGCn) n=0 ∼ 15
アドレス:
ch. 0 :000108H
ch. 1 :000109H
ch. 2 :00010AH
ch. 3 :00010BH
ch. 4 :000114H
ch. 5 :000115H
ch. 6 :000116H
ch. 7 :000117H
ch. 8 :000120H
ch. 9 :000121H
ch. 10 :000122H
ch. 11 :000123H
ch. 12 :00012CH
ch. 13 :00012DH
ch. 14 :00012EH
ch. 15 :00012FH
リード / ライト→
初期値→
Bit 7
PIEn
R/W
(0)
Bit 6
Bit 5
Bit 4
PUFn INTMn PCS1
R/W
R/W
R/W
(0)
(0)
(0)
Bit 3
PCS0
R/W
(0)
Bit 2
MD1
R/W
(0)
Bit 1
MD0
R/W
(0)
Bit 0
−
−
(X)
[ ビット 7] PIEn(Ppg Interrupt Enable) : PPG 割込み許可ビット
PPG の割込み許可を以下のように制御します。
0
割込み禁止
1
割込み許可
• 本ビットが "1" のとき , PUFn が "1" になると割込み要求が発生します。
• 本ビットが "0" のときは , 割込み要求を発生しません。
• リセットにより , "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 6] PUFn(Ppg Underflow Flag) : PPG カウンタアンダフロービット
PPG カウンタアンダフロービットを以下のように制御します。
0
PPG のカウンタアンダフローを検出していません
1
PPG のカウンタアンダフローを検出しました
• 8 ビット PPG 2 チャネルモードおよび 8 ビットプリスケーラ+ 8 ビット PPG モー
ド時には , ch.0 のカウント値が "00H" から "FFH" になったときのアンダフローに
より "1" にセットされます。
• 16 ビット PPG 1 チャネルモード時には , ch.1/ch.0 のカウント値が "0000H" から
"FFFFH" になったときのアンダフローにより "1" にセットされます。
• "0" の書込みにより , "0" になります。
171
第 9 章 PPG(Programable Pulse Generator)
• このビットへの "1" の書込みは意味がありません。
• リードモディファイライトへの読出し時は , "1" が読まれます。
• リセットにより , "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 5] INTMn(Interrupt Mode) : 割込みモードビット
PUFn のビットの検出を PRLBHn からのアンダフロー時のみに限定することができ
ます。
0
アンダフロー時 , PUFn を "1" にする
1
PRLBHn からのアンダフロー時のみ , PUFn を "1" にする
• リセットにより , "0" に初期化されます。
• 読出し / 書込み可能です。
• 本ビットを "1" にすれば , PPG の波形の 1 周期出力時に割込みを発生することが
可能となります。
• 本ビットは , 割込み許可時に書き換えないでください。
[ ビット 4, ビット 3] PCS1/PCS0(Ppg Count Select) : カウントクロック選択ビット
ダウンカウンタの動作クロックを以下のように選択します。
PCS1
PCS0
0
0
マシンクロック (62.5 ns マシンクロック 16 MHz 時 )
0
1
マシンクロック /4 (250 ns マシンクロック 16 MHz 時 )
1
0
マシンクロック /16 (1 µs マシンクロック 16 MHz 時 )
1
1
マシンクロック /64 (4 µs マシンクロック 16 MHz 時 )
動作モード
• リセットにより , "00B" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 2, ビット 1] MD1/MD0(ppg count MoDe) : 動作モード選択ビット
PPG タイマの動作モードを以下のように選択します。
MD1
MD0
0
0
8 ビット PPG 2 チャネル独立モード
0
1
8 ビットプリスケーラ+ 8 ビット PPG モード
1
0
16 ビット PPG モード
1
1
16 ビットプリスケーラ+ 16 ビット PPG モード
動作モード
• リセットにより , "00B" に初期化されます。
• 読出し / 書込み可能です。
• 本ビットは偶数チャネルのみに存在します。
172
第 9 章 PPG(Programable Pulse Generator)
■ リロードレジスタ (PRLL/PRLH)
リロードレジスタH(PRLH0~PRLH15)
アドレス:
ch.0:000100 H
ch.1:000102 H
ch.2:000104 H
ch.3:000106 H
ch.4:00010C H
ch.5:00010E H
ch.6:000110 H
ch.7:000112 H
ch.8:000118 H
ch.9:00011A H
ch.10:00011C H
ch.11:00011E H
ch.12:000124 H
ch.13:000126 H
ch.14:000128 H
ch.15:00012A H
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01
PEN00
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01
PEN00
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01 PEN00
PEN00
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01
PEN00
リード/ライト → R/W
初期値→ (X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
リロードレジスタL(PRLL0~PRLL15)
Bit7
アドレス:
ch.0:000101 H
ch.1:000103 H
ch.2:000105 H
ch.3:000107 H
ch.4:00010D H
ch.5:00010F H
ch.6:000111 H
ch.7:000113 H
ch.8:000119 H
ch.9:00011B H
ch.10:00011D H
ch.11:00011F H
ch.12:000125 H
ch.13:000127 H
ch.14:000129 H
ch.15:00012B H
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01
PEN00
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN07
PEN06
PEN05
PEN04
PEN03
PEN01
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01 PEN00
PEN00
PEN07
PEN06
PEN05
PEN04
リード/ライト → R/W
初期値→ (X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
ダウンカウンタ PCNT へのリロード値を保持するレジスタです。それぞれ , 以下に示
す役割を持っています。
レジスタ名
機能
PRLL
"L" 側リロード値保持
PRLH
"H" 側リロード値保持
どのレジスタも , 読出し / 書込み可能です。
<注意事項>
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット
PPG モードで使用する場合には , プリスケーラ側の PRLL と PRLH に異なる値を設定す
ると, PPG波形がサイクルごとに異なる場合があるので, プリスケーラ側のPRLLとPRLH
は , 同じ値に設定することを推奨します。
173
第 9 章 PPG(Programable Pulse Generator)
■ PPG 起動レジスタ (TRG)
PPG 起動レジスタ (TRG)
15
14
13
12
11
10
9
8
←ビット No.
アドレス : 000130H PEN15 PEN14 PEN13 PEN12 PEN11 PEN10 PEN09 PEN08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リード / ライト→ R/W
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
7
6
5
4
3
2
1
0
←ビット No.
PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00
リード / ライト→
初期値→
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
[ ビット 15 ∼ビット 0] PEN15 ∼ PEN0 (Ppg ENable) : PPG 動作許可ビット
PPG の動作開始および動作モードを以下のように選択します。
PEN15 ∼ PEN0
動作状態
0
動作停止 ("L" レベル出力保持 )
1
PPG 動作許可
• リセットにより , "0" に初期化されます。
• 読出し / 書込み可能です。
■ 出力反転レジスタ (REVC)
出力反転レジスタ (REVC)
15
14
13
12
11
10
9
8
←ビット No.
アドレス : 000134H REV15 REV14 REV13 REV12 REV11 REV10 REV09 REV08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リード / ライト→ R/W
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
7
6
5
4
3
2
1
0
←ビット No.
REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00
R/W
(0)
リード / ライト→
初期値→
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
[ ビット 15 ∼ビット 0] REV15 ∼ REV0 : 出力反転ビット
PPG の出力値を初期レベルも含めて反転します。
REV15 ∼ REV0
出力レベル
0
通常
1
反転
• リセットにより , "0" に初期化されます。
• 読出し / 書込み可能です。
• 単に , PPG 出力を反転するだけですので , 初期レベルも反転します。
また , リロードレジスタの "L", "H" の関係も逆になります。
174
第 9 章 PPG(Programable Pulse Generator)
■ GATE 機能制御レジスタ (GATEC )
GATE 機能制御レジスタ (GATEC)
7
6
5
4
3
2
1
0
アドレス : 000133H
−
−
−
−
−
−
STGR
EDGE
リード / ライト→
初期値→
−
(X)
−
(X)
−
(X)
−
(X)
−
(X)
−
(X)
R/W
(0)
R/W
(0)
←ビット No.
[ ビット 1] STGR: ゲート機能選択ビット
多機能タイマからの起動信号を用いるか , TRG レジスタによる起動を行うかを以下
のように選択します。
STGR
動作モード
0
TRG レジスタによる起動
1
多機能タイマからの起動信号による起動
• リセットにより , "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 0] EDGE: 起動有効エッジ選択ビット
多機能タイマからの起動有効エッジを以下のように選択します。
EDGE
動作モード
0
立上り起動→立下り停止 *1
1
立下り起動→立上り停止 *2
• リセットにより , "0" に初期化されます。
• 読出し / 書込み可能です。
*1: "H" の間 , 起動します。
*2: "L" の間 , 起動します。
175
第 9 章 PPG(Programable Pulse Generator)
9.4
動作説明
PPG には , 8 ビット長の PPG ユニットが 16 チャネルあり , 独立モード以外に , 連
結動作させることにより , 8 ビットプリスケーラ+ 8 ビット PPG モード , 16 ビット
PPG 1 チャネルモードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードの計
4 種類の動作を行うことができます。
■ 動作概要
8 ビット長の PPG ユニットそれぞれは , 8 ビット長のリロードレジスタが , "L" 側と "H"
側の 2 本あります (PRLL, PRLH) 。このレジスタに書き込まれた値が , 8 ビットダウン
カウンタ (PCNT) に "L" 側 /"H" 側交互にリロードされてカウントクロックごとにダウ
ンカウントされ , カウンタのボロー発生によるリロード時に , 端子出力 (PPG) の値を反
転させます。この動作により , 端子出力 (PPG) はリロードレジスタ値に対応した "L" 幅 /
"H" 幅をもつパルス出力となります。
動作開始 / 再スタートは , レジスタのビット書込みによります。
リロード動作とパルス出力の関係を以下に示します。
リロード動作
PRLH → PCNT
PRLL → PCNT
端子出力変化
PPGn [0 → 1]
PPGn [1 → 0]
n=0 ∼ 15
また , PPGCn レジスタのビット 7: PIEn が "1" のとき , カウンタの "00H" から "FFH" へ
のボロー (16 ビット PPG モードの場合には , "0000H" から "FFFFH" へのボロー) によっ
て割込み要求が出力されます。
■ 動作モードについて
PPG は , 独立モード , 8 ビットプリスケーラ+ 8 ビット PPG モード , 16 ビット PPG 1
チャネルモードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種類の動
作モードがあります。
• 独立モードは , 8 ビット PPG として独立に動作させる動作モードです。PPG(n) 端
子は , ch(n) の PPG 出力が接続されます。(n=0 ∼ 15)
• 8 ビットプリスケーラ+ 8 ビット PPG モードは , 1 チャネルを 8 ビットプリスケー
ラとして動作させ , そのボロー出力でカウントすることにより , 任意周期の 8 ビッ
ト PPG 波形を出力できるようにする動作モードです。例えば , PPG1 端子は , ch.1
のプリスケーラ出力が接続され , PPG0 端子は , ch.0 の PPG 出力が接続されます。
• 16 ビット PPG 1 チャネルモードは , 2 つのチャネルを連結させ , 16 ビット PPG と
して動作させる動作モードです。例えば , ch.0 と ch.1 を連結させると , PPG0 端子
と PPG1 端子は , 両方とも 16 ビット PPG 出力が接続されます。
176
第 9 章 PPG(Programable Pulse Generator)
■ PPG 出力動作について
PPG は , TRG レジスタ (PPG 起動レジスタ ) の各チャネルのビットを "1" にセットする
ことによって起動され , カウントを開始します。動作を開始した後は , TRG レジスタの
各チャネルビットに "0" を書き込むことによってカウント動作を停止し , 停止した後 ,
パルス出力は "L" レベルを保持します。
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ
ト PPG モード時には , プリスケーラチャネルを停止状態で , PPG チャネルを動作状態
に設定しないでください。
16 ビット PPG モード時には , 各チャネルの TRG レジスタの PENn をそれぞれ , 同時に
開始 / 停止の制御を行ってください (n=0 ∼ 15) 。
以下に PPG 出力動作について説明します。
PPG 動作時は , 任意周波数 / 任意デューティ比 ( パルス波の "H" レベル期間と "L" レベ
ル期間の比 ) のパルス波出力を連続して出力します。PPG はパルス波出力を開始する
と , 動作停止を設定するまで停止しません。
PPG の出力動作および出力波形を図 9.4-1 に示します。
図 9.4-1 PPG 出力動作および出力波形
PENn
出力端子
PPG
PENnにより
動作開始
(”L”側から)
T×(L+1)
T×(H+1)
スタート
n=0~15
L:PRLLの値
H:PRLHの値
T:マシンクロック
( , /4, /16)
または
タイマベースカウンタからの入力
(PPGCのクロックセレクトによる)
■ リロード値とパルス幅の関係について
リロードレジスタに書かれた値に " + 1" した値に , カウントクロックの周期を掛けた
値が出力されるパルス幅となります。つまり , 8 ビット PPG 動作時のリロードレジス
タ値が "00H" のとき , および 16 ビット PPG 動作時のリロードレジスタ値が "0000H" の
ときは, カウントクロック1周期分のパルス幅をもつことになりますので注意してくだ
さい。また , 8 ビット PPG 動作時のリロードレジスタ値が "FFH" のとき , カウントク
ロック 256 周期分のパルス幅をもつことになり , 16 ビット PPG 動作時のリロードレジ
スタ値が "FFFFH" のときは , カウントクロック 65536 周期分のパルス幅をもつことに
なりますので注意してください。
パルス幅の計算式を以下に示します。
Pl = T × (L + 1)
Ph = T × (H + 1)
{
L : PRLL の値
H : PRLH の値
T : 入力クロック周期
Ph: "H" パルス幅
Pl: "L" パルス幅
177
第 9 章 PPG(Programable Pulse Generator)
■ カウントクロックの選択について
PPG の動作に使用するカウントクロックは , 周辺クロックおよびタイムベースカウン
タの入力を使用しており , 4 種類のカウントクロック入力が選択できます。
カウントクロックは以下のように動作します。
PPGC0 ∼ PPGC15
レジスタ
カウントクロック動作
PCS1
PCS0
0
0
カウントクロックは , 周辺クロックごとに 1 カウント
0
1
カウントクロックは , 周辺クロック 4 サイクルごとに 1 カウント
1
0
カウントクロックは , 周辺クロック 16 サイクルごとに 1 カウント
1
1
カウントクロックは , 周辺クロック 64 サイクルごとに 1 カウント
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ
ト PPG モードで , プリスケーラ側が動作状態で PPG 側が停止状態であるときに , PPG
側の起動を行うと , 最初のカウント周期がずれる可能性がありますので注意してくだ
さい。
■ パルスの端子出力の制御について
PPG の動作によって生成されたパルス出力は , 外部端子 PPG0 ∼ PPG15 より出力させ
ることができます。
16 ビット PPG モードでは , PPG(m) と PPG(m+1) は同じ波形が出力されるので , どちら
の外部端子出力を許可しても同じ出力を得ることができます (m=0, 2, 4, 6, 8, 10, 12,
14) 。
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ
ト PPG モードでは , プリスケーラ側は 8 ビットプリスケーラのトグル波形が出力され ,
PPG 側は 8 ビット PPG の波形が出力されます。このモードのときの出力波形の例を図
9.4-2 に示します。
178
第 9 章 PPG(Programable Pulse Generator)
図 9.4-2 8+8PPG モードおよび 16+16PPG モードの出力波形
Ph1
Pl1
PPG1
PPG0
Ph0
Pl1=
Ph1=
Pl0=
Ph0=
T
T
T
T
×
×
×
×
Pl0
(L1+1)
(L1+1)
(L1+1) × (L0+1)
(L1+1) × (H0+1)
注意:ch.1のPRLLとch.1のPRLHは,
同じ値を設定することを
推奨します。
L1 :ch.1のPRLLの値 および
ch.1のPRLHの値
L0 :ch.0 のPRLLの値
H0 :ch.0 のPRLHの値
T :入力クロック周期
Ph0:PPG0の"H"パルス幅
Pl0:PPG0の"L"パルス幅
Ph1:PPG1の"H"パルス幅
Pl1:PPG1の"L"パルス幅
■ 割込みについて
本モジュールの割込みは , リロード値がカウントアウトし , ボローが発生したときにア
クティブになります。ただし , INTMn ビットを "1" にしたときは , PRLBHn からのアン
ダフロー時 ( ボロー ) のみアクティブになります。つまり , "H" 幅パルス終了時に割込
みが発生します。
8 ビット PPG モードおよび 8 ビットプリスケーラ+ 8 ビット PPG モードのときには ,
それぞれのカウンタのボローにより, それぞれの割込み要求が行われますが, 16ビット
PPG モードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードでは , 16 ビットカウ
ンタのボローにより , PUF(m) と PUF(m + 1) が同時にセットされます。このため , 割
込み要因を一本化するために , PIE(m) または PIE(m+1) のどちらか一方のみを許可にす
ることを推奨します。また , 割込み要因のクリアも PUF(m) と PUF(m+1) を同時に行う
ことを推奨します (m = 0, 2, 4, 6, 8, 10, 12, 14) 。
■ GATE 機能について
多機能タイマからの信号により , PPG を起動→停止させることができます。
• 8 ビット PPG モード , 8 ビットプリスケーラ+ 8 ビット PPG モードにおいて , PPG
ch.0 を本機能により起動できます。
• 16 ビット PPG モード , 16 ビットプリスケーラ+ 16 ビット PPG モードにおいて ,
PPG ch.0, ch.1 を本機能により起動できます。
各モードの起動切換えは , 各 PPG の MD レジスタの設定によって定まります。
• PPG ch.0: MD1, MD0 = 0, X 時 , PPG ch.0 が起動 (8 ビット PPG)
• PPG ch.0: MD1, MD0 = 1, X 時 , PPG ch.0, ch.1 が起動 (16 ビット PPG)
EDGE ビットと多機能タイマの信号により , PPG の起動有効期間の制御ができます。
EDGE ビットと多機能タイマによる PPG カウント動作を図 9.4-3 に示します。
179
第 9 章 PPG(Programable Pulse Generator)
図 9.4-3 EDGE ビットと多機能タイマによる PPG カウント動作
EDGE=0(立上り起動 → 立下り停止)
多機能タイマ信号
PPGカウント
開始
停止
開始
停止
開始
EDGE=1(立下り起動 → 立上り停止)
多機能タイマ信号
PPGカウント
開始
■ PPG の初期値について
PPG は , リセット時に以下のように初期化されます。
<レジスタ>
PPGC(n) → 0000000XB
TRG
→ 0000000000000000B
REVC
→ 0000000000000000B
GATEC
→ XXXXXX00B
<パルス出力>
PPG(n) → "L"
<割込み要求>
IRQ(n) → "L" (n=0 ∼ 15)
上記以外のレジスタは , 初期化されません。
180
第 9 章 PPG(Programable Pulse Generator)
■ PPG の組合せについて
各 PPG の動作モードの組合せは , 以下のとおりです。
ch.0: PPGC
ch.2: PPGC
MD1
MD0
MD1
MD0
0
0
0
0
0
0
ch.0
ch.1
ch.2
ch.3
0
8 ビット PPG
8 ビット PPG
8 ビット PPG
8 ビット PPG
0
1
8 ビット PPG
8 ビット PPG
8 ビット PPG
8 ビット
プリスケーラ
0
1
0
8 ビット PPG
8 ビット PPG
0
0
1
1
0
1
0
0
8 ビット PPG
8 ビット
プリスケーラ
8 ビット PPG
8 ビット PPG
0
1
0
1
8 ビット PPG
8 ビット
プリスケーラ
8 ビット PPG
8 ビット
プリスケーラ
0
1
1
0
8 ビット PPG
8 ビット
プリスケーラ
0
1
1
1
1
0
0
0
16 ビット PPG
8 ビット PPG
8 ビット PPG
1
0
0
1
16 ビット PPG
8 ビット PPG
8 ビット
プリスケーラ
1
0
1
0
16 ビット PPG
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
16 ビット PPG
設定禁止
16 ビット PPG
設定禁止
16 ビット PPG
設定禁止
16 ビット PPG
16 ビットプリスケーラ
ch(4, 5, 6, 7), ch(8, 9, 10, 11), ch(12, 13, 14, 15) も , それぞれ , ch(0, 1, 2, 3) と同じ動作組合せが可能です。
以下のように置き換えてください。
{
ch.0=ch.4/ch.8/ch.12
ch.1=ch.5/ch.9/ch.13
ch.2=ch.6/ch.10/ch.14
ch.3=ch.7/ch.11/ch.15
181
第 9 章 PPG(Programable Pulse Generator)
182
第 10 章
PWC (Pulse Width Count:
パルス幅測定 )
PWC (Pulse Width Count: パルス幅測定 ) タイマ
の概要 , レジスタの構成 / 機能および動作について
説明します。
10.1 概要
10.2 ブロックダイヤグラム
10.3 PWC のレジスタ
10.4 動作説明
183
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
概要
10.1
16 ビットアップカウンタ 1 個 , 入力パルス分周器 & 分周比制御レジスタ 1 個 , 測定
入力端子 1 本 , 16 ビット制御レジスタ 1 個を 1 チャネルとして , 合計 2 チャネルを
有しています。
■ パルス幅測定機能
外部から入力されたパルス入力の任意イベント間の時間を測定します。
基準となる内部クロックは 3 種類の中から選択可能です ( マシンクロックの 4/16/32 分
周 )。
"H" パルス幅 ( ↑∼↓ ) /" L" パルス幅 ( ↓∼↑ )
各種測定モード
立上り周期 ( ↑∼↑ ) / 立下り周期 ( ↓∼↓ )
エッジ間測定 ( ↑ or ↓∼↓ or ↑ )
8 ビット入力分周器で , 入力パルスを 2n 分周 (n=1, 2, 3, 4, 5, 6, 7, 8) して周期測定を行う
ことが可能です。
測定終了時に割込み要求を発生することが可能です。
1 回のみの測定か , 連続測定かを選択することが可能です。
■ レジスタ一覧
アドレス
Bit 15 ∼ Bit 8
Bit 7 ∼ Bit 0
0000E9H
PDIVR0
0000E0H
0000E1H
PWCSR0
0000E2H
0000E3H
PWCR0
0000EBH
0000E5H
PWCSR1
0000E6H
0000E7H
PWCR1
184
コントロール / ステータスレジスタ 0
データバッファレジスタ 0
PDIVR1
0000E4H
分周比制御レジスタ 0
分周比制御レジスタ 1
コントロール / ステータスレジスタ 1
データバッファレジスタ 1
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
ブロックダイヤグラム
10.2
PWC のブロックダイヤグラムを示します。
■ PWC のブロックダイヤグラム
図 10.2-1 PWC のブロックダイヤグラム
PWCR0/PWCR1リード
エラー検出
16
/
/
16
ERR
PWCR0/PWCR1
内部クロック
(マシンクロック/4)
/ 16
書込み許可
リロード
データ転送
/ 16
16ビット アップカウンタ
クリア
カウント許可
制御ビット出力
フラグセットなど
制御回路
終了エッジ
選択
開始エッジ
選択
測定開始エッジ
測定終了エッジ
22 クロック
23
オーバフロー
R-bus
クロック
CKS1/
CKS0
分周器クリア
分周
ON/OFF
入力波形
比較器
エッジ
検出
ERR
PWI0
PWI1
8ビット
分周器
PIS1/PSI0
測定終了割込み要求
分周器
CKS1/CKS0
オーバフロー割込み要求
15
/
分周比
選択
PWCSR0/PWCSR1
2
/
PDIVR0/PDIVR1
185
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
10.3
PWC のレジスタ
PWC のレジスタ詳細を説明します。
■ PWC コントロール / ステータスレジスタ (PWCSR:PWCSR0/PWCSR1)
PWCSR0/PWCSR1( 上位 )
ビット No. →
ch.0: 0000E0H
ch.1: 0000E4H
リード / ライト→
初期値→
15
14
13
12
11
10
9
8
STRT
STOP
EDIR
EDIE
OVIR
OVIE
ERR
−
R/W
(0)
R/W
(0)
R
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R
(0)
−
(0)
7
6
5
4
3
2
1
0
CKS1
CKS0
PIS1
PIS0
SC
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
PWCSR0/PWCSR1( 下位 )
ビット No. →
ch.0: 0000E1H
ch.1: 0000E5H
リード / ライト→
初期値→
MOD2 MOD1 MOD0
R/W
(0)
R/W
(0)
R/W
(0)
[ ビット 15] STRT: カウンタスタートビット
[ ビット 14] STOP: カウンタストップビット
16 ビットアップカウンタの起動 / 再起動 / 停止を行うビットで , 読出し時にはカウン
タの動作状態を表示します。以下にビット機能を示します。
[ 書込み時機能 ( 動作制御 )]
STRT
STOP
0
0
機能なし / 動作に影響なし
0
1
カウンタ起動 / 再起動 ( カウント許可 ) *
1
0
カウンタ動作強制停止 ( カウント禁止 ) *
1
1
機能なし / 動作に影響なし
動作制御機能
*: クリアビット命令使用可能
[ 読出し時機能 ( 動作状態表示 )]
186
STRT
STOP
0
0
カウント停止中 ( 起動されていないか , または測定終了 )
[ 初期値 ]
1
1
カウント動作中 ( 測定中 )
動作状態表示
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
• リセット時 : "00B" に初期化されます。
• 読出し / 書込み可能です。ただし , 書込み時と読出し時では上記のように意味が
異なります。
• リードモディファイライト系命令における読出しでは, 動作にかかわらず"11B"が
読み出されます。
• カウンタの起動 / 停止のための STRT, STOP ビットへの書込みは , それぞれのビッ
トに対応するビット処理命令 ( ビットクリアなど ) を用いることが可能ですが , 動
作状態の読出しにはビット処理命令は使用できません ( 読むと必ず動作中となり
ますので注意してください ) 。
[ ビット 13] EDIR: 測定終了割込み要求フラグ
パルス幅測定モード時 , 測定終了したことを示すフラグです。測定終了割込み要求
が許可されているとき ( ビット 12: EDIE=1) に , 本ビットがセットされると , 測定終
了割込み要求が発生します。
セット要因
パルス幅測定が終了するとセット (PWCR0, PWCR1 に測定結果が
収納される )
クリア要因
PWCR0, PWCR1 ( 測定結果 ) を読み出すことによりクリア
• リセット時 : "0" に初期化されます。
• 読出しのみ可能です。書込みしてもビット値は変化しません。
[ ビット 12] EDIE: 測定終了割込み要求許可ビット
パルス幅測定モード時の測定終了割込み要求を以下のように制御します。
0
測定終了割込み要求出力禁止
(EDIR がセットされても割込みは発生せず ) [ 初期値 ]
1
測定終了割込み要求出力許可
(EDIR がセットされると割込みが発生する )
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 11] OVIR: カウンタオーバフロー割込み要求フラグ
全モードにおいて , 16 ビットアップカウンタが "FFFFH" から "0000H" へオーバフロー
したことを示すフラグです。カウンタオーバフロー割込み要求が許可されていると
き ( ビット 10: OVIE=1) に本ビットがセットされると , カウンタオーバフロー割込み
要求が発生します。
セット要因
カウンタオーバフローが発生するとセット
("FFFFH" から "0000H" へ )
クリア要因
"0" 書込みによりクリア
187
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。ただし , 書込みは "0" のみ可能です。"1" を書込みして
もビット値は変化しません。
• リードモディファイライト系命令における読出し値は, ビット値にかかわらず"1"
です。
[ ビット 10] OVIE: カウンタオーバフロー割込み要求許可ビット
カウンタオーバフロー割込み要求を以下のように制御します。
0
オーバフロー割込み要求出力禁止
(OVIR がセットされても割込みは発生せず ) [ 初期値 ]
1
オーバフロー割込み要求出力許可
(OVIR がセットされると割込みが発生する )
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 9] ERR: エラーフラグ
パルス幅測定モードの連続測定モード時において , PWCR0, PWCR1 内の測定結果を
読み出さないうちに , 次の測定が終了してしまったことを示すフラグです。この際 ,
PWCR0, PWCR1 の値は新しい測定結果に更新され , 1 つ前の測定結果は消失します。
測定は , 本ビット値に関係なく続行されます。
セット要因
読み出していない測定結果が次の結果により消失するとセット
クリア要因
PWCR0, PWCR1 ( 測定結果 ) を読み出すことによりクリア
• リセット時 : "0" に初期化されます。
• 読出しのみ可能です。書込みしてもビット値は変化しません。
[ ビット 8] (Reserved)
本ビットは予約ビットです。読出し値は "0" です。
必ず , "0" を書き込んでください。
[ ビット 7, ビット 6] CKS1, CKS0: クロック選択ビット
内部カウントを以下のように選択します。
188
CKS1
CKS0
0
0
マシンクロックの 4 分周クロック [ 初期値 ]
0
1
マシンクロックの 16 分周クロック
1
0
マシンクロックの 32 分周クロック
1
1
設定禁止
カウントクロック選択
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
• リセット時 : "00B" に初期化されます。
• 読出し / 書込み可能です。ただし , "11B" を設定してはいけません。
• 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでください。
[ ビット 5, ビット 4] PIS1, PIS0: パルス幅測定入力端子選択ビット
これらのビットは , パルス幅測定入力端子を選択します。
PIS1
PIS0
0
0
(PWI0 端子を選択 ) [ 初期値 ]
0
1
2 入力比較選択 ( 立上りエッジ比較 )
1
0
2 入力比較選択 ( 立下りエッジ比較 )
1
1
設定禁止
入力クロック選択
• リセット時 "00B" に初期化されます。
• 読出し / 書込みが可能です。ただし , "11B" は設定してはいけません。
• このビットは , PWC ch.0 のみに有効です (PWI0/PWI1 を入力として使用します )。
詳細は「10.4 動作説明 ■パルス幅測定動作詳細」を参照してください。
• 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでください。
[ ビット 3] SC: 測定モード ( 単発 / 連続 ) 選択ビット
測定モードを以下のように選択します。
SC
測定モード選択
パルス幅測定モード時
0
単発測定モード [ 初期値 ]
1 回測定後停止
1
連続測定モード
連続測定 : バッファレジスタ有効
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
• 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでください。
[ ビット 2 ∼ビット 0] MOD2, MOD1, MOD0: 動作モード / 測定エッジ選択ビット
動作モードおよび幅測定を行うエッジを以下のように選択します。
189
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
MOD2
MOD1
MOD0
0
0
0
全エッジ間パルス幅測定モード ( ↑ or ↓∼↓ or ↑ ) [ 初期値 ]
0
0
1
分周周期測定モード ( 入力分周器有効 )
0
1
0
立上りエッジ間周期測定モード ( ↑∼↑ )
0
1
1
"H" パルス幅測定モード ( ↑∼↓ )
1
0
0
"L" パルス幅測定モード ( ↓∼↑ )
1
0
1
立下りエッジ間周期測定モード ( ↓∼↓ )
1
1
0
1
1
1
動作モード / 測定エッジ選択
設定禁止
• リセット時 : "000B" に初期化されます。
• 読出し / 書込み可能です。
• 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでください。
■ PWC データバッファレジスタ (PWCR0, PWCR1)
PWCR0/PWCR1( 上位 )
ビット No. →
ch.0: 0000E2H
ch.1: 0000E6H
15
14
13
12
11
10
9
8
リード / ライト→
初期値→
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
7
6
5
4
3
2
1
0
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
PWCR0/PWCR1( 下位 )
ビット No. →
ch.0: 0000E3H
ch.1: 0000E7H
リード / ライト→
初期値→
● パルス幅測定モード
連続測定モード時 (PWCSR0, PWCSR1 ビット 3: SC=1) は , 前回の測定結果を保持する
バッファレジスタとなります。この場合は読出しのみ可能で , 書き込んでもレジスタ値
は変化しません。
単発測定モード時 (PWCSR0, PWCSR1 ビット 3: SC=0) は , アップカウンタを直接アク
セスする窓口となります。この場合も , 読出しのみ可能で , 書き込んでもレジスタ値は
変化しません。読出しは随時可能で , カウント中のカウント値が得られます。測定終了
後は , 測定結果を保存します。
本レジスタのアクセスは , 必ずハーフワードもしくはワード転送命令で行ってくださ
い。
• リセット時 : "0000H" に初期化されます。
• 読出しのみ可能
190
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
■ 分周比制御レジスタ (PDIVR)
PDIVR0/PDIVR1
ビット No. →
ch.0: 0000E9H
ch.1: 0000EBH
リード / ライト→
初期値→
7
6
5
4
3
2
1
0
−
−
−
−
−
DIV2
DIV1
DIV0
−
(X)
−
(X)
−
(X)
−
(X)
−
(X)
R/W
(0)
R/W
(0)
R/W
(0)
分周周期測定モード (PWCSR0, PWCSR1 ビット 2, 1, 0: MOD2, MOD1, MOD0=001B) の
ときに使用するレジスタで , ほかのモードでは意味を持ちません。
分周周期測定モード時には , 本レジスタにより設定された分周比だけ測定端子に入力
されたパルスを分周し , 分周後の 1 周期幅を測定します。分周比は以下のように選択し
ます。
DIV2
DIV1
DIV0
分周比選択
0
0
0
21=2 分周 [ 初期値 ]
0
0
1
22=4 分周
0
1
0
23=8 分周
0
1
1
24=16 分周
1
0
0
25=32 分周
1
0
1
26=64 分周
1
1
0
27=128 分周
1
1
1
28=256 分周
• リセット時 : "000B" に初期化されます。
• 読出し / 書込み可能です。
• 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでください。
191
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
10.4
動作説明
測定入力端子と 8 ビット入力分周などを組み込んでいます。PWC は , パルス幅測定
機能があり , 3 種類のカウントクロックを選択可能です。パルス幅測定機能における
基本機能および動作について説明します。
■ パルス幅測定機能
入力パルスの任意イベント間の時間・周期をカウンタで測定できます。
起動後 , 設定した測定開始エッジが入力されるまでカウントは行われません。開始エッ
ジを検出するカウンタを "0000H" にクリア後 , カウントアップを開始し , 停止エッジを
検出するとカウントを停止します。この間のカウント値がパルス幅としてレジスタに
保存されます。
測定終了時 , およびオーバフロー発生時に割込み要求を発生できます。
測定終了後は , 測定モードに応じて以下のように動作します。
• 単発測定モード時 : 動作を停止します。
• 連続測定モード時 : カウンタ値をバッファレジスタに転送後 , 再度測定開始エッ
ジが入力されるまでカウントを停止します。
図 10.4-1 パルス幅測定動作 ( 単発測定モード / "H" 幅測定 )
(実線はカウント値)
PWC入力
被測定パルス
カウント値
FFFFH
0000H
カウントクリア
測定開始
カウントスタート カウントストップ
時間
EDIRフラグセット(測定終了)
図 10.4-2 パルス幅測定動作 ( 連続測定モード / "H" 幅測定 )
(実線はカウント値)
PWC入力
被測定パルス
カウント値
オーバフロー
FFFFH
PWCRへデータ転送
カウントクリア
0000H
測定開始
PWCRへデータ転送
カウントクリア
カウントスタート カウントストップ
カウントスタート
OVIRフラグセット
カウントストップ
時間
EDIRフラグセット(測定終了)
192
EDIRフラグセット
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
■ カウントクロックの選択
カウンタのカウントクロックは , PWCSR0, PWCSR1 レジスタのビット 7, ビット 6:
CKS1, CKS0 の設定によって , 内部クロックソースのうち 3 種類を選択できます。
選択できるカウントクロックは以下のとおりです。
PWCSR0, PWCSR1
選択される内部カウントクロック
CKS1, CKS0
00B
マシンクロックの 4 分周 [ 初期値 ]
01B
マシンクロックの 16 分周
10B
マシンクロックの 32 分周
リセット後の初期値では , マシンクロックの 4 分周クロックが選択されています。
カウントクロックの選択は , 必ずカウンタ起動前に行ってください。
■ 動作モードの選択
各動作モード / 測定モードの選択は , PWCSR0, PWCSR1 の設定により行います。
• 動作モードの設定 : PWCSR0, PWCSR1 ビット 2 ∼ビット 0: MOD2, MOD1, MOD0
( パルス幅測定モードの選択 , 測定エッジの決定など )
• 測定モードの設定 : PWCSR0, PWCSR1 ビット 3: SC
( 単発測定 / 連続測定の選択 )
モード設定ビットの組合せによる動作モードの選択の一覧を以下に示します。
動作モード
パルス幅
測定
SC
MOD2
MOD1
MOD0
↑ or ↓∼↑ or ↓
全エッジ間測定
単発測定 : バッファ無効
0
0
0
0
連続測定 : バッファ有効
1
0
0
0
分周周期測定
(1 ∼ 256 分周 )
単発測定 : バッファ無効
0
0
0
1
連続測定 : バッファ有効
1
0
0
1
↑∼↑立上り間
周期測定
単発測定 : バッファ無効
0
0
1
0
連続測定 : バッファ有効
1
0
1
0
↑∼↓
"H" パルス幅測定
単発測定 : バッファ無効
0
0
1
1
連続測定 : バッファ有効
1
0
1
1
↓∼↑
"L" パルス幅測定
単発測定 : バッファ無効
0
1
0
0
連続測定 : バッファ有効
1
1
0
0
↓∼↓立下り間
周期測定
単発測定 : バッファ無効
0
1
0
1
連続測定 : バッファ有効
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
設定禁止
リセット後の初期値では , 全エッジ間測定−単発測定モードが選択されています。
193
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
<注意事項>
起動モードの選択は , 必ずカウンタ起動前に行ってください。
■ パルス幅測定の起動と停止
各動作の起動 / 再起動 / 強制停止は , PWCSR0, PWCSR1 のビット 15, ビット 14: STRT,
STOP ビットにより行います。
パルス幅測定の起動 / 再起動は STRT ビット , 強制停止は STOP ビットと機能が分かれ
ており , それぞれ , "0" を書き込むことにより機能しますが , 両ビットに書き込む値が
排他でないと機能しません。ビット操作命令以外の命令によって ( バイト単位以上 ) 書
き込む際は , 必ず以下に示す組合せを書き込んでください。
機能
STRT
STOP
パルス幅測定の起動 / 再起動
0
1
パルス幅測定の強制停止
1
0
ビット操作命令 ( ビットクリア命令 ) を用いる場合 , ハードウェアにより自動的に上記
組合せにて書き込まれるため , 特に意識する必要がありません。
● 起動後の動作
パルス幅測定モードの起動後の動作は , 以下のとおりです。
パルス幅測定モード : 測定開始エッジが入力されるまでカウントは行われません。
測定開始エッジ検出後 , 16 ビットアップカウンタを "0000H" にク
リアし , カウントを開始します。
● 再起動について
パルス幅測定起動後 , 動作中に起動をかける (STRT ビットに "0" を書き込む ) ことを再
起動とよびます。再起動をかけると , 以下のような動作が行われます。
測定開始エッジ待ち状態の場合 , 動作に影響はありません。測定中の場合 , カウントを
停止し , 再度測定開始エッジ待ち状態となります。この際 , 測定終了エッジ検出と再起
動が同時になると , 測定終了フラグ (EDIR) がセットされ , 連続測定モード時は測定結
果が PWCR0, PWCR1 に転送されます。
● 停止について
単発測定モードでは , カウンタのオーバフローまたは測定終了により , 自動的にカウン
ト動作を停止しますので , 特に意識する必要はありません。それ以外のモードや自動停
止する前に停止させたい場合は , 強制停止させる必要があります。
2 入力比較選択時
選択されている PWI1 のエッジが強制停止の前に入っていないと , 再起動後 1 回目の
測定結果が誤ったものとなります。強制停止は PWI1 のエッジの入力後にしてくだ
さい。
194
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
● 動作状態の確認
STRT, STOP ビットは読出し時には動作状態表示ビットとして機能します。表示される
値は以下の内容を示します。
STRT
STOP
0
0
カウンタ停止中 ( 測定開始エッジ待ち状態を除く )
起動されていないか , または測定が終了したことを示します。
1
1
カウント動作中 , または測定開始エッジ待ち状態
動作状態
STRT, STOP のどちらのビットを読み出しても同じ値となります。ただし , リードモ
ディファイライト系命令 ( ビット処理命令など ) にて本ビットを読み出すと常に "11B"
になるため , これらの命令を使用して読み出さないでください。
■ カウンタのクリア
16 ビットアップカウンタは , 以下に示す場合に "0000H" にクリアされます。
• リセット時
• パルス幅測定モードにて , 測定開始エッジを検出しカウントを開始する場合
■ パルス幅測定動作詳細
● 単発測定と連続測定
パルス幅測定には , 1 回のみの測定を行うモードと連続して測定を行うモードがありま
す。各モードは PWCSR0, PWCSR1 の SC ビットによって選択します (「■動作モード
の選択」を参照 ) 。両モードにおける相違点は以下のとおりです。
• 単発測定モード : 1 回目の測定終了エッジが入力されるとカウンタのカウントは
停止し , PWCSR0, PWCSR1 中の測定終了フラグ (EDIR) がセッ
トされ , 以降の測定は行われません。ただし , 同時に再起動が
かかった場合は測定開始待ち状態となります。
• 連続測定モード : 測定終了エッジが入力されるとカウンタのカウントは停止し ,
PWCSR0, PWCSR1 中の測定終了フラグ (EDIR) がセットされ ,
再度測定開始エッジが入力されるまでカウントを停止します。
再度 , 測定開始エッジが入力されるとカウンタを "0000H" にク
リアした後 , 測定を開始します。測定終了時 , カウンタの測定
結果は PWCR0, PWCR1 に転送されます。
測定モードの選択 / 変更は , 必ずカウンタ停止中に行ってください。
195
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
● 測定結果データ
単発測定モードと連続測定モードでは, 測定結果とカウンタ値の扱い, PWCR0, PWCR1
の機能に違いがあります。両モードにおける測定結果の相違点は以下のとおりです。
• 単発測定モード : PWCR0, PWCR1 を動作中に読み出すと測定中のカウント値が
得られます。
PWCR0, PWCR1 を測定終了後に読み出すと測定結果データが
得られます。
• 連続測定モード : 測定終了時, カウンタ内の測定結果はPWCR0, PWCR1に転送さ
れます。
PWCR0, PWCR1 を読み出すと直前の測定結果が得られ , 測定動
作中も前回の測定結果を保持しています。測定中のカウント値
は読み出せません。
連続測定モードにて , 測定結果を読み出さないうちに次の測定が終了してしまった場
合 , 前回の測定結果は新しい測定結果に消されてしまいます。この際 , PWCSR0,
PWCSR1 中のエラーフラグ (ERR) がセットされます。エラーフラグ (ERR) は , PWCR0,
PWCR1 を読み出すと自動的にクリアされます。
● 入力端子の選択
PWC は , 2 チャネル用意されており ,パルス幅カウント用の信号入力に使用する端子は ,
PWI0, PWI1 の 2 チャネルがあります。したがって , チャネルごとに単独での使用も可
能です。また , 入力端子 PWI0, PWI1 については , PWCSR0 中の PIS1, PIS0 の組合せで ,
各入力波形の立上り / 立下り間の時間を測定することができます。この際に使用する
PWCR0, PWCR1 レジスタは , PWI0 を使用しますので注意してください。このとき ,
PWC内部測定波形の"H"幅を測定します。
MOD2, MOD1, MOD0の設定は無視されます。
図 10.4-3 入力波形と内部測定波形
PWI0
入力波形
PWI1
入力波形
PIS1,PIS0=01 時の
PWC内部測定波形
PIS1,PIS0=10 時の
PWC内部測定波形
立上り/立下り間の時間は,
この内部測定波形の"H"幅
を測定します
• 2 入力比較の場合 , 立上り / 立下り検出でも PWI0 からカウントを開始し , PWI1 で
カウントを停止してください。
• 立上りと立下りの検出モードを変える場合 , 必ず測定終了後に行ってください。
196
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
● 測定モードとカウント動作
入力されたパルスのどこを測定するかによって, 測定モードは5種類のうちから選択で
きます。さらに , 高い周波数のパルスの幅を精度よく測定できるように , 入力されたパ
ルスを任意分周して周期を測定するモードも用意されています。以下に , それらについ
て説明します。
測定モード
MOD2
MOD1
MOD0
測定内容 (W: 測定するパルス幅 )
W
全エッジ間パルス
幅測定
↑カウント
スタート
0
0
0
W
0
0
1
1
W
↓
ストップ
W
W
↑カウント
スタート
0
W
↑カウントストップ
↑スタート
分周比設定レジスタ PDIVR0, PDIVR1 で選択した
分周比だけ入力パルスを分周してその周期を測定
します。
カウント ( 測定 ) 開始 : 起動直後の立上りエッジ
検出時
カウント ( 測定 ) 終了 : 分周後の 1 周期終了時
W
立上りエッジ間
周期測定
↑カウントストップ
↑ストップ
↑スタート
↑スタート
0
↑
ストップ
立上りエッジ間の周期を測定します。
カウント ( 測定 ) 開始 : 立上りエッジ検出時
カウント ( 測定 ) 終了 : 立上りエッジ検出時
W
"H" パルス幅測定
↓
ストップ
連続して入力されるエッジ間の幅を測定します。
カウント ( 測定 ) 開始 : エッジ検出時
カウント ( 測定 ) 終了 : エッジ検出時
↓カウント
スタート
(4分周の例)
分周周期測定
W
W
↓カウントストップ
↑ストップ
↓スタート
↑スタート
0
1
1
↑カウント
スタート
W
↓カウント
ストップ
"H" 期間の幅を測定します。
カウント ( 測定 ) 開始 : 立上りエッジ検出時
カウント ( 測定 ) 終了 : 立下りエッジ検出時
W
W
"L" パルス幅測定
1
0
0
↓カウント
スタート
↓カウント
スタート
1
0
1
↑カウント
ストップ
↓
スタート
↑
ストップ
"L" 期間の幅を測定します。
カウント ( 測定 ) 開始 : 立下りエッジ検出時
カウント ( 測定 ) 終了 : 立上りエッジ検出時
W
立上りエッジ間
周期測定
↓
ストップ
↑
スタート
W
W
↓カウントストップ
↓ストップ
↓スタート
↓スタート
↓
ストップ
立下りエッジ間の周期を測定します。
カウント ( 測定 ) 開始 : 立下りエッジ検出時
カウント ( 測定 ) 終了 : 立下りエッジ検出時
197
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
どのモードでも , 測定起動後 , 測定開始エッジが入力されるまではカウンタはカウント
動作を行いません。測定開始エッジが入力されると , カウンタは "0000H" にクリアされ
た後 , 測定終了エッジが入力されるまでの間 , カウントクロックごとにアップカウント
を続けます。
測定終了エッジが入力されると , 以下の動作が行われます。
1. PWCSR0, PWCSR1 中の測定終了フラグ (EDIR) がセットされます。
2. カウンタのカウント動作が停止します ( 再起動と同時であった場合を除く ) 。
3. 連続測定モード時 : カウンタの値 (= 測定結果 ) が PWCR0, PWCR1 に転送され , 次の
測定開始エッジが入力されるまでカウントを停止して待ちま
す。
4. 単発測定モード時 : 測定を終了します ( 再起動と同時であった場合を除く ) 。
連続測定モードの場合で , 全エッジ間パルス幅測定や周期測定などを行った場合 , 終了
エッジが次の測定開始エッジとなります。
● 最小入力パルス幅について
パルス幅測定入力端子 (PWI1, PWI0) に入力できるパルスには以下の制限があります。
最小入力幅 : マシンサイクル× 4 以上
(16 MHz のマシンクロックの場合は , 0.25 µs 以上とする )
上記パルスより小さい幅のパルスを入力した場合の動作は保証できません。
● パルス幅 / 周期算出方法
測定終了後 , PWCR0, PWCR1 に得られた測定結果データから , 被測定パルス幅 / 周期算
出方法は以下のように求められます。
TW : 被測定パルス幅 / 周期 [ µs]
TW = n × t ÷ DIV [µs]
n : PWCR0, PWCR1 内の測定結果データ
t
: カウントクロックの周期 [ µs]
DIV : 分周比レジスタ PDIVR0,PDIVR1 で
選択した分周比
( 分周周期測定モード以外は "1" を代入 )
198
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
● パルス幅 / 周期測定レンジ
カウントクロック , および入力分周器の分周比の選択の組合せにより , 測定可能なパル
ス幅 / 周期のレンジが変化します。
一例として , マシンクロック ( 以下 φ とする )=16 MHz 時の測定レンジの一覧表を以下
に示します。
CKS1, CKS0=00B
CKS1, CKS0=01B
CKS1, CKS0=10B
(φ/4) 時
(φ/16) 時
(φ/32) 時
−
0.25 µs ∼ 16.4 ms
[250 ns]
0.25 µs ∼ 65.5 ms
[1.0 µs]
0.25 µs ∼ 131 ms
[2.0 µs]
2 分周
000B
0.25 µs ∼ 8.19 ms
[125 ns]
0.25 µs ∼ 32.8 ms
[0.5 µs]
0.25 µs ∼ 65.5 ms
[1.0 µs]
4 分周
001B
0.25 µs ∼ 4.10 ms
[62.5 ns]
0.25 µs ∼ 16.4 ms
[250 ns]
0.25 µs ∼ 32.8 ms
[0.5 µs]
8 分周
010B
0.25 µs ∼ 2.05 ms
[31.25 ns]
0.25 µs ∼ 8.19 ms
[125 ns]
0.25 µs ∼ 16.4 ms
[250 ns]
16 分周
011B
0.25 µs ∼ 1.02 ms
[15.6 ns]
0.25 µs ∼ 4.10 ms
[62.5 ns]
0.25 µs ∼ 8.19 ms
[125 ns]
64 分周
100B
0.25 µs ∼ 256 µs
[3.91 ns]
0.25 µs ∼ 1.024 ms
[15.6 ns]
0.25 µs ∼ 2.05 ms
[31.25 ns]
256 分周
101B
0.25 µs ∼ 64.0 µs
[0.98 ns]
0.25 µs ∼ 256 µs
[3.91 ns]
0.25 µs ∼ 512 µs
[7.81 ns]
−
その他
分周比
DIV2, DIV1, DIV0
分周無
し
設定禁止
• マシンクロック φ = 16 MHz 時
• [ ] 内は 1 ビットあたりの分解能を示します。
●割込み要求発生
パルス幅測定モードにおいては , 以下の 2 つの割込み要求を発生することが可能です。
• カウンタのオーバフローによる割込み要求
測定中 , カウントアップによりオーバフローが発生するとオーバフローフラグが
セットされ , オーバフロー割込み要求が許可されていると割込み要求が発生しま
す。
• 測定終了による割込み要求
測定終了エッジを検出すると , PWCSR0, PWCSR1 中の測定終了フラグ (EDIR) が
セットされ , 測定終了割込み要求が許可されていると割込み要求が発生します。
測定終了フラグ (EDIR) は , 測定結果 PWCR0, PWCR1 を読み出すと自動的にクリ
アされます。
199
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
● パルス幅測定動作フロー
各種設定
再起動
カウントクロック選択
動作/測定モード選択
割込みフラグクリア
割込み許可
測定入力端子選択
STRTビットにより起動
単発測定モード
連続測定モード
測定開始エッジ検出
カウンタをクリア
カウンタをクリア
カウント開始
カウント開始
アップカウント
アップカウント
オーバフローの発生
→ OVIRフラグセット
オーバフローの発生
→ OVIRフラグセット
測定終了エッジ検出
→ EDIRフラグセット
測定終了エッジ検出
→ EDIRフラグセット
カウント停止
カウント停止
カウント値をPWCRに転送
200
測定開始エッジ検出
動作停止
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
■ 注意事項
● レジスタ書換えに関する注意事項
PWCSR0, PWCSR1 レジスタの以下に示すビットは動作中に書き換えることを禁止し
ます。書換えは必ず起動前か停止後に行ってください。
[ ビット 7, ビット 6] CKS1, CKS0: クロック選択ビット
[ ビット 5, ビット 4] PIS1, PIS0: パルス幅測定入力端子選択ビット
[ ビット 3] SC: 測定モード ( 単発 / 連続 ) 選択ビット
[ ビット 2 ∼ビット 0] MOD2, MOD1, MOD0: 動作モード / 測定エッジ選択ビット
PDIVR レジスタは動作中に書き換えることを禁止します。書換えは必ず起動前か停止
後に行ってください。
● PWCSR0, PWCSR1 レジスタの STRT, STOP ビットについて
両ビット共に , 書込み時と読出し時では意味が異なるので注意してください (「10.3
PWC のレジスタ」を参照 ) 。また , リードモディファイライト系命令における読出し値
は , ビット値にかかわらず "11B" です。このため , 動作状態の読出しには , ビット処理
命令は使用できません ( 読むと必ず動作中となります ) ので注意してください。
カウンタの起動 / 停止のための STRT, STOP ビットへの書込みは , それぞれのビットに
対するビット処理命令 ( ビットクリア命令など ) を用いることが可能です。
● カウンタのクリアについて
パルス幅測定モードの場合 , 測定開始エッジでカウンタがクリアされますので , 起動前
にカウント中であったデータは無効になります。
● 最小入力パルス幅について
パルス幅測定入力端子に入力できるパルスには , 以下の制限があります。
• 最小入力幅
: マシンサイクル× 4 ( マシンサイクルが 62.5 ns 時 , ≧ 250 ns)
• 最大入力周波数: マシンクロックの4分周 (マシンサイクルが16 MHz時, ≦ 4 MHz)
上記パルスより小さい幅 , 高い周波数のパルスを入力した場合の動作は保証できませ
ん。入力信号にそのようなノイズがのる可能性がある場合は , チップ外部でフィルタな
どを通して除去した後 , 入力してください。
● 分周周期測定モードについて
パルス幅測定モードのうちの分周周期測定モードでは , 入力パルスを分周するため , 測
定結果より算出して得られるパルス幅は平均値となりますので注意してください。
● クロック選択ビットについて
PWCSR0, PWCSR1 レジスタの [ ビット 7, ビット 6] CKS1, CKS0: クロック選択ビット
において "11B" は設定禁止です。
● 予約ビットについて
PWCSR0, PWCSR1 レジスタの [ ビット 8] は予約ビットになっています。このビットに
書込みを行う場合は , 必ず "0" にしてください。
201
第 10 章 PWC (Pulse Width Count: パルス幅測定 )
● 動作中の再起動について
カウント動作を開始した後に再起動を行う場合は , そのタイミングによっては以下に
示すようなことが起こり得ます。
• パルス幅単発測定モード時 , 測定終了エッジと同時であった場合
再起動を行い , 測定開始エッジ待ち状態となりますが , 測定終了フラグ (EDIR) は
セットされます。
• パルス幅連続測定モード時 , 測定終了エッジと同時であった場合
再起動を行い , 測定開始エッジ待ち状態となりますが , 測定終了フラグ (EDIR) は
セットされ , その時点での測定結果は PWCR0, PWCR1 に転送されます。
以上のように , 動作中の再起動時には , フラグの動作に注意して割込み制御などを行う
ようにしてください。
202
第 11 章
多機能タイマ
多機能タイマ ( フリーランタイマ , アウトプットコ
ンペア , インプットキャプチャ , PPG タイマ , 波形
ジェネレータ , A/D 起動コンペアにより構成 ) の概
要 , レジスタの構成 / 機能および動作について説明
します。
11.1 概要
11.2 ブロックダイヤグラム
11.3 多機能タイマの端子
11.4 多機能タイマのレジスタ
11.5 多機能タイマ割込み
11.6 多機能タイマの動作
11.7 多機能タイマの使用上の注意
11.8 多機能タイマのプログラム例
203
第 11 章 多機能タイマ
11.1
概要
多機能タイマは , 1 つの 16 ビットフリーランタイマ , 6 つの 16 ビットアウトプット
コンペア , 4 つの 16 ビットインプットキャプチャ , 8 チャネルの 8/16 ビット PPG
タイマ , および 1 つの波形ジェネレータ , 3 個の A/D 起動コンペアから構成されてい
ます。この波形ジェネレータを使用すると , 12 個の別々の波形を 16 ビットフリーラ
ンタイマから出力することができ , 入力パルス幅と外部クロックサイクルを測定す
ることもできます。
■ 多機能タイマの構成
● 16 ビットフリーランタイマ ( × 1)
• 16 ビットフリーランタイマは 16 ビットアップ / ダウンカウンタ , 制御レジスタ ,
16 ビットコンペアクリアレジスタ ( バッファレジスタを持っています ) , およびプ
リスケーラから構成されています。
• 9種類のカウンタ動作クロック (φ, φ/2,φ/4,φ/8,φ/16,φ/32,φ/64,φ/128,φ/256)を選択でき
ます (φ: マシンクロック ) 。
• コンペアクリア割込みは , コンペアクリアレジスタと 16 ビットフリーランタイマ
が比較され , 一致した場合に生成されます。ゼロ検出割込みは , 16 ビットフリー
ランタイマがカウント値 "0" を検出している間に生成されます。
• コンペアクリアレジスタは , 選択可能なバッファレジスタを持っています ( この
バッファレジスタに書き込まれたデータはコンペアクリアレジスタへ転送されま
す ) 。16 ビットフリーランタイマが停止し , バッファにデータが書き込まれると ,
転送は直ちに実行されます。16 ビットフリーランタイマの動作中にタイマ値 "0"
が検出されると , バッファからデータが転送されます。
• アップカウントモードにおいてリセットやソフトウェアクリア , あるいはコンペ
アクリアレジスタとのコンペア一致が発生すると, カウンタ値は"0000H"にリセッ
トされます。
• このカウンタの出力値は , 多機能タイマのアウトプットコンペアとインプットキャ
プチャのクロックカウントとして使用できます。
• "1" 検出またはコンペア一致時に , A/D コンバータの起動が可能です。
● 16 ビットアウトプットコンペア ( × 6)
• 16 ビットアウトプットコンペアは , 6 つの 16 ビットコンペアレジスタ ( 選択可能
なバッファレジスタを持っています ) , コンペア出力ラッチ , コンペア制御レジス
タから構成されています。16 ビットフリーランタイマ値とコンペアレジスタが一
致すると , 割込みが生成され出力レベルが反転します。
• 6 つのコンペアレジスタは , 別々に動作させることができます。出力端子と割込み
フラグは , 各コンペアレジスタに対応しています。
• 2 つのコンペアレジスタを対 ( ペア ) にして出力端子を制御することができます。
2 つのコンペアレジスタを一緒に使用することによって出力端子を反転させます。
• 各出力端子の初期値を設定することができます。
• 割込みはアウトプットコンペアレジスタが16ビットフリーランタイマと一致した
場合に生成されます。
204
第 11 章 多機能タイマ
●16 ビットインプットキャプチャ ( × 4)
• インプットキャプチャは, 4つの独立した外部入力端子と, この端子に対応するキャ
プチャレジスタおよびキャプチャ制御レジスタから構成されています。外部端子
において入力信号のエッジを検出すると , 16 ビットフリーランタイマの値をキャ
プチャレジスタへ格納することができ , また , 割込みも同時に生成されます。
• 外部入力信号の 3 種類のトリガエッジ ( 立上りエッジ , 立下りエッジおよびその両
方のエッジ ) を選択することができ , また , トリガエッジが立上りエッジであるか
立下りエッジであるかを示すレジスタを持っています。
• 4 つのインプットキャプチャを別々に動作させることができます。
• 割込みは外部入力からの有効エッジが検出されると生成されます。
● 8/16 ビット PPG タイマ ( × 8)
PPG タイマ 0 は , 波形ジェネレータへ PPG 信号を供給するために使用します。PPG タ
イマ 0 の詳細については , 「第 9 章 PPG(Programable Pulse Generator)」を参照してくだ
さい。
● 波形ジェネレータ
• 波形ジェネレータは , 3 つの 16 ビットデッドタイマレジスタ , 3 つのタイマ制御レ
ジスタおよび 1 つの 16 ビット波形制御レジスタから構成されています。
• 波形ジェネレータは , リアルタイム出力 , 16 ビット PPG 波形出力 , ノンオーバラッ
プ 3 相波形出力 ( インバータ制御用 ) , および DC チョッパ波形出力を生成するこ
とができます。
• 16 ビットデッドタイマのデッドタイムに基づいてノンオーバラップ波形出力を生
成することができます ( デッドタイムタイマ機能 ) 。
• 2 チャネルモード時にリアルタイムアウトプットを動作させることにより , ノン
オーバラップ波形出力を生成することができます ( デッドタイムタイマ機能 ) 。
• リアルタイムアウトプットコンペア一致を検出すると GATE 信号が生成され , こ
の信号により PPG タイマの動作が開始または停止します (GATE 機能 ) 。
• リアルタイムアウトプットコンペア一致が検出されると 16 ビットデッドタイマが
アクティブになり , PPG 動作の制御用 GATE 信号を生成することによって , PPG タ
イマ 0 を容易に開始または停止させることができます (GATE 機能 ) 。
• DTTI 端子を使用することによって , 強制的に停止を制御することができます。
• DTTI レジスタにより , 強制的に停止を制御することも可能です。
●AD 起動コンペア ( × 3)
• 16ビットフリーランタイマ値とコンペアレジスタが一致したときに, A/Dコンバー
タを起動することができます。
• コンペア 0 が A/D コンバータのユニット 0 を起動できます。
• コンペア 1 が A/D コンバータのユニット 1 を起動できます。
• コンペア 2 が A/D コンバータのユニット 2 を起動できます。
205
第 11 章 多機能タイマ
11.2
ブロックダイヤグラム
多機能タイマのブロックダイヤグラムを示します。
■ 多機能タイマのブロックダイヤグラム
図 11.2-1 多機能タイマのブロックダイヤグラム
リアルタイム I/O
RTO0 → 端子 RTO0(U)
RTO1 → 端子 RTO1(X)
割込み
割込み
割込み
割込み
割込み
割込み
→ アウトプットコンペア0
→ アウトプットコンペア1
→ アウトプットコンペア2
→ アウトプットコンペア3
→ アウトプットコンペア4
→ アウトプットコンペア5
RT0~RT5
バッファからの
カウンタ値
データ転送
RTO4 → 端子 RTO4(W)
RT0~RT5
RTO5 → 端子 RTO5(Z)
DTTI ← 端子 DTTI
割込み
割込み → ゼロ検出
割込み → コンペアクリア
→16ビットデッド
タイマ0,1,2
割込み → DTTI立下り
エッジ検出
PPG0 ← PPG0
A/Dトリガ
内部データバス
RTO3 → 端子 RTO3(Y)
波形ジェネレータ
波形ジ
ェネレータ
16ビットアウト
ビットアウト
プットコンペア
16ビット
ビット
フリーランタイマ
GATE → GATE
EXCK
カウンタ値
割込み
割込み
割込み
割込み
16ビットインプット
ビットインプット IC0
キャプチャ
RTO2 → 端子 RTO2(V)
端子 CKI
インプットキャプチャ0
インプットキャプチャ1
インプットキャプチャ2
インプットキャプチャ3
端子 IC0
IC1
端子 IC1
IC2
端子 IC2
IC3
端子 IC3
カウンタ値
A/D起動コンペア
A/D
起動コンペア
A/Dコンバータのユニット0 起動
A/Dコンバータのユニット1 起動
A/Dコンバータのユニット2 起動
206
第 11 章 多機能タイマ
図 11.2-2 16 ビットフリーランタイマのブロックダイヤグラム
STOP
MODE
STOP
UP/UP-DOWN
SCLR
CLK2
CLK1
CLK0
プリスケーラ
CLR
ゼロ検出回路
停止 アップ/アップダウン
16ビットフリーランタイマ
ビットフリーランタイマ
ゼロ検出
(アウトプットコンペアへ)
CK
インプットキャプチャおよび
アウトプットコンペアへ
16ビットコンペア
ビットコンペア
クリアレジスタ
転送
コンペア回路
コンペアクリア一致
(アウトプットコンペアへ)
内部データバス
16ビットコンペアクリア
ビットコンペアクリア
バッファレジスタ
I0
O
I1
セレク
セレクタ
セレクタ
I0
O
I1
割込み
I0
O
I1
セレク
セレクタ
マスク回路
MSI2
MSI1
MSI0
ICLR
ICRE
IRQZF
割込み
IRQZE
I0
O
I1
セレクタ
AD1起動
(AD起動コンペアへ)
I0
O
I1
セレクタ
SEL2
SEL1
AD2E
AD2起動
(AD起動コンペアへ)
AD1E
207
第 11 章 多機能タイマ
図 11.2-3 16 ビットアウトプットコンペアのブロックダイヤグラム
フリーランタイマからのカウント値
BUF0
BTS0
コンペアバッファレジスタ
フリーランタイマからの
ゼロ検出
フリーランタイマからの
コンペアクリア一致
I0
O
I1
セレクタ
転送
コンペアレジスタ 0,2,4
BUF1
BTS1
コンペア回路
内部データバス
I0
O
I1
セレク
セレクタ
コンペアバッファレジスタ
転送
コンペアレジスタ 1,3,5
CMOD
コンペア回路
IOP1
IOP0
IOE1
T
Q
RT0,RT2,RT4
(波形ジェネレータ)
T
Q
RT1,RT3,RT5
(波形ジェネレータ)
IOE0
割込み
割込み
208
第 11 章 多機能タイマ
図 11.2-4 16 ビットインプットキャプチャのブロックダイヤグラム
フリーランタイマからのカウント値
キャプチャレジスタ 0
エッジ検出
ICP0
ICE0
EG01
IC0
EG00
割込み0
内部データバス
キャプチャレジスタ 1
エッジ検出
ICP1
ICE1
EG11
IC1
EG10
割込み1
エッジ検出
キャプチャレジスタ 2
ICP2
ICE2
EG21
EG20
IC2
IEI2
割込み2
エッジ検出
キャプチャレジスタ 3
ICP3
ICE3
EG31
EG30
IC3
IEI3
割込み3
(注意事項) インプットキャプチャ0,1には、検出エッジレジスタはありません。
209
第 11 章 多機能タイマ
図 11.2-5 波形ジェネレータのブロックダイヤグラム
DTTI
SIGCR2
DTTI
SIGCR1
DCK2
DCK1
DCK0
NRSL
DTIF
NWS1
DTIE
ノイズキャンセル
DTTI 制御回路
分周器
NWS0
PICSH01 PGEN1 PGEN0
DTCR0
TMD8
GATE0/GATE1
TMD7
TMD6
GTEN5
GATE
(PPG0 へ)
GTEN4
TO0
波形制御
RT0
セレクタ
デッドタイム
ジェネレータ
16ビットデッドタイマレジスタ
ビットデッドタイマレジスタ0
内部データバス
PICSH01 PGEN3
RTO0(U)
RTO2(V)
RTO4(W)
RTO1(X)
X
PGEN2
DTCR1
TMD5
U
出力制御
コンペア回路
出力制御
16ビット
ビット
タイマ
タイマ0
出力制御
セレクタ
TO1
RT1
GATE2/GATE3
TMD4
TMD3
GTEN3
GTEN2
TO2
波形制御
RT2
TO3
16ビット
タイマ1
コンペア回路
セレク
セレクタ
デッドタイム
ジェネレータ
ビットデッドタイマレジスタ1
16ビットデッドタイマレジスタ
PICSH01 PGEN5
RTO3(Y)
V
Y
PGEN4
DTCR2
TMD2
セレクタ
RT3
GATE4/GATE5
TMD1
TMD0
GTEN1
GTEN0
TO4
波形制御
RT4
TO5
16ビット
タイマ 2
PPG0
210
コンペア回路
セレクタ
16ビットデッドタイマレジスタ
ビットデッドタイマレジスタ2
デッドタイム
ジェネレータ
セレクタ
RT5
W
Z
RTO5(Z)
第 11 章 多機能タイマ
図 11.2-6 A/D 起動コンペアのブロックダイヤグラム
フリーランタイマからのカウント値
コンペアレジスタ 0
一致
内部データバス
コンペア回路
A/D0 起動
コンペア許可
コンペアレジスタ 1
A/D1 起動
(フリーランタイマより)
A/D1 起動
一致
コンペア回路
コンペア許可
コンペアレジスタ 2
A/D2 起動
(フリーランタイマより)
A/D2 起動
一致
コンペア回路
コンペア許可
CE2
CE1
CE0
211
第 11 章 多機能タイマ
11.3
多機能タイマの端子
多機能タイマの端子について説明します。
■ 多機能タイマの端子
表 11.3-1 多機能タイマの端子
端子名
端子機能
I/O 形式
プルアップ
オプション
スタンバイ
制御
端子設定
ポート 7 入出力 ,
DTTI
あり
端子を入力ポートとして設
定する (DDR7: ビット 2=0)
ポート G 入出力 ,
PG0/INT4/
外部割込み入力 ,
CKI
外部クロック
なし
端子を入力ポートとして設
定する (DDRG: ビット 0=0)
P72/DTTI
P36/IC0
ポート 3 入出力 ,
インプット
キャプチャ 0
P37/IC1
ポート 3 入出力 ,
インプット
キャプチャ 1
P60/IC2
ポート 6 入出力 ,
インプット
キャプチャ 2
端子を入力ポート 6 として
設定する (DDR6: ビット
0=0)
P61/IC3
ポート 6 入出力 ,
インプット
キャプチャ 3
端子を入力ポートとして設
定する (DDR6: ビット 1=0)
P30/RTO0
(U)
ポート 3 入出力 ,
RTO0
端子を入力ポートとして設
定する (DDR3: ビット 6=0)
選択可能
端子を入力ポートとして設
定する (DDR3: ビット 7=0)
CMOS 出力 ,
CMOS ヒス
テリシス
入力
あり
RTO0 出力を設定する
(OCSH1:OTE0=1,
DDR3: ビット 0=1)
P31/RTO1
(X)
ポート 3 入出力 ,
RTO1
RTO1 出力を設定する
(OCSH1:OTE1=1,
DDR3: ビット 1=1)
P32/RTO2
(V)
ポート 3 入出力 ,
RTO2
RTO2 出力を設定する
(OCSH3:OTE0=1,
DDR3: ビット 2=1)
なし
P33/RTO3
(Y)
ポート 3 入出力 ,
RTO3
RTO3 出力を設定する
(OCSH3:OTE1=1,
DDR3: ビット 3=1)
P34/RTO4
(W)
ポート 3 入出力 ,
RTO4
RTO4 出力を設定する
(OCSH5:OTE0=1,
DDR3: ビット 4=1)
P35/RTO5
(Z)
ポート 3 入出力 ,
RTO5
RTO5 出力を設定する
(OCSH5:OTE1=1,
DDR3: ビット 5=1)
DDRx : ポート方向レジスタ
OCSHx : コンペア制御レジスタ
212
第 11 章 多機能タイマ
11.4
多機能タイマのレジスタ
多機能タイマのレジスタについて説明します。
■ 16 ビットフリーランタイマのレジスタ
コンペアクリアバッファレジスタ , コンペアクリアレジスタ ( 上位 )
CPCLRBH/CPCLRH
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
アドレス : 0000A4H
CL15
W
R
(1)
CL14
W
R
(1)
CL13
W
R
(1)
CL12
W
R
(1)
CL11
W
R
(1)
CL10
W
R
(1)
CL09
W
R
(1)
CL08
W
R
(1)
CPCLRBH ライト→
CPCLRH リード→
初期値→
コンペアクリアバッファレジスタ , コンペアクリアレジスタ ( 下位 )
CPCLRBL/CPCLRL
CPCLRBL ライト→
CPCLRL リード→
初期値→
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
CL07
W
R
(1)
CL06
W
R
(1)
CL05
W
R
(1)
CL04
W
R
(1)
CL03
W
R
(1)
CL02
W
R
(1)
CL01
W
R
(1)
CL00
W
R
(1)
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
T15
R/W
(0)
T14
R/W
(0)
T13
R/W
(0)
T12
R/W
(0)
T11
R/W
(0)
T10
R/W
(0)
T09
R/W
(0)
T08
R/W
(0)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
T07
R/W
(0)
T06
R/W
(0)
T05
R/W
(0)
T04
R/W
(0)
T03
R/W
(0)
T02
R/W
(0)
T01
R/W
(0)
T00
R/W
(0)
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
MSI2
R/W
(0)
MSI1
R/W
(0)
MSI0
R/W
(0)
ICLR
R/W
(0)
ICRE
R/W
(0)
Bit4
Bit3
Bit2
Bit1
Bit0
CLK3
R/W
(0)
CLK2
R/W
(0)
CLK1
R/W
(0)
CLK0
R/W
(0)
タイマデータレジスタ ( 上位 )
TCDTH
アドレス : 0000A6H
リード / ライト→
初期値→
タイマデータレジスタ ( 下位 )
TCDTL
リード / ライト→
初期値→
タイマ状態制御レジスタ ( 上位 )
TCCSH
アドレス : 0000A8H
リード / ライト→
初期値→
ECKE IRQZF IRQZE
R/W
R/W
R/W
(0)
(0)
(0)
タイマ状態制御レジスタ ( 下位 )
TCCSL
Bit7
アドレス : 0000A9H
リード / ライト→
初期値→
BFE
R/W
(0)
Bit6
Bit5
STOP MODE SCLR
R/W
R/W
R/W
(1)
(0)
(0)
A/D トリガ制御レジスタ
ADTRGC
Bit7
アドレス : 0000ABH
リード / ライト→
初期値→
−
−
(X)
Bit6
−
−
(X)
Bit5
−
−
(X)
Bit4
Bit3
Bit2
Bit1
Bit0
−
−
(X)
SEL2
R/W
(0)
SEL1
R/W
(0)
AD2E
R/W
(0)
AD1E
R/W
(0)
213
第 11 章 多機能タイマ
■ 16 ビットアウトプットコンペアのレジスタ
アプトプットコンペアバッファレジスタ , アプトプットコンペアレジスタ ( 上位 )
OCCPBH0 ∼ OCCPBH5/
OCCPH0 ∼ OCCPH5
アドレス :
000090H
000092H
000094H
000096H
000098H
00009AH
OCCPBH ライト→
OCCPH リード→
初期値→
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
OP15
W
R
(0)
OP14
W
R
(0)
OP13
W
R
(0)
OP12
W
R
(0)
OP11
W
R
(0)
OP10
W
R
(0)
OP09
W
R
(0)
OP08
W
R
(0)
アプトプットコンペアバッファレジスタ , アプトプットコンペアレジスタ ( 下位 )
OCCPBL0 ∼ OCCPBL5/
Bit7
OCCPL0 ∼ OCCPL5
OP07
W
OCCPBL ライト→
R
OCCPL リード→
(0)
初期値→
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
OP06
W
R
(0)
OP05
W
R
(0)
OP04
W
R
(0)
OP03
W
R
(0)
OP02
W
R
(0)
OP01
W
R
(0)
OP00
W
R
(0)
Bit12
コンペア制御レジスタ 1,3,5( 上位 )
OCSH1, OCSH3, OCSH5
Bit15
Bit14
Bit13
Bit11
Bit10
Bit9
Bit8
−
−
(X)
BTS1
R/W
(1)
BTS0 CMOD OTE1
R/W
R/W
R/W
(1)
(0)
(0)
OTE0
R/W
(0)
OTD1
R/W
(0)
OTD0
R/W
(0)
OCSL0, OCSL2, OCSL4
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
アドレス :
00009DH
00009FH
0000A1H
IOP1
R/W
(0)
IOP0
R/W
(0)
IOE1
R/W
(0)
IOE0
R/W
(0)
BUF1
R/W
(1)
BUF0
R/W
(1)
CST1
R/W
(0)
CST0
R/W
(0)
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
−
−
(X)
−
−
(X)
アドレス :
00009CH
00009EH
0000A0H
リード / ライト→
初期値→
コンペア制御レジスタ 0,2,4( 下位 )
リード / ライト→
初期値→
コンペアモード制御レジスタ
OCMOD
アドレス :
0000A2H
214
リード / ライト→
初期値→
MOD15 MOD14 MOD13 MOD12 MOD11 MOD10
R/W
R/W
R/W
R/W
R/W
R/W
(0)
(0)
(0)
(0)
(0)
(0)
第 11 章 多機能タイマ
■ 16 ビットインプットキャプチャのレジスタ
インプットキャプチャデータレジスタ ( 上位 )
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
CP15
R
リード→
(X)
初期値→
CP14
R
(X)
CP13
R
(X)
CP12
R
(X)
CP11
R
(X)
CP10
R
(X)
CP09
R
(X)
CP08
R
(X)
IPCPH0 ∼ IPCPH3
アドレス :
0000ACH
0000AEH
0000B0H
0000B2H
インプットキャプチャデータレジスタ ( 下位 )
IPCPL0 ∼ IPCPL3
リード→
初期値→
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
CP07
R
(X)
CP06
R
(X)
CP05
R
(X)
CP04
R
(X)
CP03
R
(X)
CP02
R
(X)
CP01
R
(X)
CP00
R
(X)
Bit12
Bit11
Bit10
Bit9
Bit8
IEI2
R
(0)
インプットキャプチャ状態制御レジスタ (ch.2,ch.3)( 上位 )
ICSH23
Bit15
アドレス :0000B6H
リード→
初期値→
−
−
(X)
Bit14
−
−
(X)
Bit13
−
−
(X)
−
−
(X)
−
−
(X)
−
−
(X)
IEI3
R
(0)
インプットキャプチャ状態制御レジスタ (ch.2,ch.3)( 下位 )
ICSL23
アドレス :0000B7H
リード / ライト→
初期値→
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
ICP3
R/W
(0)
ICP2
R/W
(0)
ICE3
R/W
(0)
ICE2
R/W
(0)
EG31
R/W
(0)
EG30
R/W
(0)
EG21
R/W
(0)
EG20
R/W
(0)
Bit10
Bit9
Bit8
−
−
(X)
−
−
(X)
PPG 出力制御 / インプットキャプチャ状態制御レジスタ (ch.0,ch.1)( 上位 )
PICSH01
Bit15
アドレス :0000B4H
Bit14
Bit13
Bit12
Bit11
PGEN5 PGEN4 PGEN3 PGEN2 PGEN1 PGEN0
ライト→
初期値→
W
(0)
W
(0)
W
(0)
W
(0)
W
(0)
W
(0)
インプットキャプチャ状態制御レジスタ (ch.0,ch.1)( 下位 )
PICSL01
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
アドレス :0000B5H
ICP1
R/W
(0)
ICP0
R/W
(0)
ICE1
R/W
(0)
ICE0
R/W
(0)
EG11
R/W
(0)
EG10
R/W
(0)
EG01
R/W
(0)
EG00
R/W
(0)
リード / ライト→
初期値→
215
第 11 章 多機能タイマ
■ 波形ジェネレータのレジスタ
16 ビットデッドタイマレジスタ ( 上位 )
TMRRH0, TMRRH1, TMRRH2
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
アドレス :
0000BCH
0000BEH
0000C0H
TR15
R/W
TR14
R/W
TR13
R/W
TR12
R/W
TR11
R/W
TR10
R/W
TR09
R/W
TR08
R/W
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
リード / ライト→
初期値→
16 ビットデッドタイマレジスタ ( 下位 )
Bit7
TMRRL0, TMRRL1, TMRRL2
TR07
リード / ライト→ R/W
(X)
初期値→
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
TR06
R/W
(X)
TR05
R/W
(X)
TR04
R/W
(X)
TR03
R/W
(X)
TR02
R/W
(X)
TR01
R/W
(X)
TR00
R/W
(X)
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
16 ビットデッドタイマ制御レジスタ 0
DTCR0
Bit15
アドレス :0000C4H
リード / ライト→
初期値→
DMOD0 GTEN1 GTEN0 TMIF0 TMIE0
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
Bit6
Bit5
Bit4
Bit3
TMD2 TMD1 TMD0
R/W
R/W
R/W
(0)
(0)
(0)
16 ビットデッドタイマ制御レジスタ 1
DTCR1
Bit7
アドレス :0000C5H
リード / ライト→
初期値→
DMOD1 GTEN3 GTEN2 TMIF1 TMIE1
R/W
(0)
Bit2
Bit1
Bit0
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
TMD5 TMD4 TMD3
R/W
R/W
R/W
(0)
(0)
(0)
Bit14
Bit13
Bit12
Bit11
Bit10
16 ビットデッドタイマ制御レジスタ 2
DTCR2
Bit15
アドレス :0000C6H
リード / ライト→
初期値→
DMOD2 GTEN5 GTEN4 TMIF2 TMIE2
Bit9
Bit8
TMD8 TMD7 TMD6
R/W
R/W
R/W
(0)
(0)
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
Bit7
Bit6
Bit5
Bit4
Bit3
DTIE
R/W
(0)
DTIF
R/W
(0)
NRSL
R/W
(0)
DCK2
R/W
(0)
DCK1
R/W
(0)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
−
−
(X)
−
−
(X)
−
−
(X)
−
−
(X)
−
−
(X)
−
−
(X)
−
−
(X)
DTTI
R/W
(1)
波形制御レジスタ 1
SIGCR1
アドレス :0000C9H
リード / ライト→
初期値→
Bit2
Bit1
Bit0
DCK0 NWS1 NWS0
R/W
R/W
R/W
(0)
(0)
(0)
波形制御レジスタ 2
SIGCR2
アドレス :0000CBH
リード / ライト→
初期値→
216
第 11 章 多機能タイマ
■ A/D 起動コンペアのレジスタ
コンペアレジスタ 0,1,2( 上位 )
ADCOMP0/ADCOMP1/ADCOMP2
アドレス :
ch.0: 0000CCH
ch.1: 0000CEH
ch.2: 0000D0H
リード / ライト→
初期値→
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
CMP15 CMP14 CMP13 CMP12 CMP11 CMP10 CMP09 CMP08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
コンペアレジスタ 0,1,2( 下位 )
ADCOMP0/ADCOMP1/ADCOMP2
CMP07 CMP06 CMP05 CMP04 CMP03 CMP02 CMP01 CMP00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リード / ライト→ R/W
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
制御レジスタ
ADCOMPC
アドレス :0000D3H
リード / ライト→
初期値→
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
−
−
(X)
−
−
(X)
−
−
(X)
−
−
(X)
−
−
(X)
CE2
R/W
(0)
CE1
R/W
(0)
CE0
R/W
(0)
217
第 11 章 多機能タイマ
11.4.1
コンペアクリアバッファレジスタ (CPCLRBH,
CPCLRBL) / コンペアクリアレジスタ (CPCLRH,
CPCLRL)
コンペアクリアバッファレジスタ (CPCLRBH, CPCLRBL) は , コンペアクリアレジ
スタ (CPCLRH, CPCLRL) に存在する 16 ビットバッファレジスタです。
CPCLRBH, CPCLRBL レジスタと CPCLRH, CPCLRL レジスタは , 両方とも同じア
ドレスに存在します。
■ コンペアクリアバッファレジスタ (CPCLRBH, CPCLRBL)
コンペアクリアバッファレジスタ ( 上位 )
CPCLRBH
アドレス :0000A4H
ライト→
初期値→
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
CL15
W
(1)
CL14
W
(1)
CL13
W
(1)
CL12
W
(1)
CL11
W
(1)
CL10
W
(1)
CL09
W
(1)
CL08
W
(1)
コンペアクリアバッファレジスタ ( 下位 )
CPCLRBL
ライト→
初期値→
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
CL07
W
(1)
CL06
W
(1)
CL05
W
(1)
CL04
W
(1)
CL03
W
(1)
CL02
W
(1)
CL01
W
(1)
CL00
W
(1)
コンペアクリアバッファレジスタは , コンペアクリアレジスタ (CPCLRH, CPCLRL) と
同じアドレスに存在するバッファレジスタです。バッファ機能が無効になるか ( タイ
マ状態制御レジスタ下位 (TCCSL) の BFE: ビット 7=0) , またはフリーランタイマが停
止すると , コンペクリアバッファレジスタの値が直ちにコンペアクリアレジスタへ転
送されます。バッファ機能が有効になると , 16 ビットフリーランタイマのカウント値
"0" が検出されたときに値がコンペアクリアレジスタへ転送されます。
このレジスタへアクセスする場合は , ハーフワードもしくはワードアクセス命令をご
使用ください。
218
第 11 章 多機能タイマ
■ コンペアクリアレジスタ (CPCLRH, CPCLRL)
コンペアクリアレジスタ ( 上位 )
CPCLRH
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
アドレス :0000A4H
CL15
R
(1)
CL14
R
(1)
CL13
R
(1)
CL12
R
(1)
CL11
R
(1)
CL10
R
(1)
CL09
R
(1)
CL08
R
(1)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
CL07
R
(1)
CL06
R
(1)
CL05
R
(1)
CL04
R
(1)
CL03
R
(1)
CL02
R
(1)
CL01
R
(1)
CL00
R
(1)
リード→
初期値→
コンペアクリアレジスタ ( 下位 )
CPCLRL
アドレス :0000A5H
リード→
初期値→
コンペアクリアレジスタは , 16 ビットフリーランタイマのカウント値と比較するため
に使用します。アップカウントモード時は , このレジスタが 16 ビットフリーランタイ
マのカウント値と一致すると , 16 ビットフリーランタイマは "0000H" にリセットされ
ます。アップダウンカウントモード時は , このレジスタが 16 ビットフリーランタイマ
のカウント値と一致すると , 16 ビットフリーランタイマはアップカウントからダウン
カウントに変わるか , またはゼロ検出時にダウンカウントからアップカウントに変わ
ります。
このレジスタへアクセスする場合は , ハーフワードもしくはワードアクセス命令をご
使用ください。
219
第 11 章 多機能タイマ
11.4.2
タイマデータレジスタ (TCDTH, TCDTL)
タイマデータレジスタ (TCDTH, TCDTL) は , 16 ビットフリーランタイマのカウント
値を読み出すために使用します。
■ タイマデータレジスタ (TCDTH, TCDTL)
タイマデータレジスタ ( 上位 )
TCDTH
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
アドレス :0000A6H
T15
R/W
(0)
T14
R/W
(0)
T13
R/W
(0)
T12
R/W
(0)
T11
R/W
(0)
T10
R/W
(0)
T09
R/W
(0)
T08
R/W
(0)
TCDTL
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
アドレス :0000A7H
T07
R/W
(0)
T06
R/W
(0)
T05
R/W
(0)
T04
R/W
(0)
T03
R/W
(0)
T02
R/W
(0)
T01
R/W
(0)
T00
R/W
(0)
リード / ライト→
初期値→
タイマデータレジスタ ( 下位 )
リード / ライト→
初期値→
タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出すために
使用します。カウント値は , リセットが発生すると直ちに "0000H" にクリアされます。
タイマ値は , このレジスタへ値を書き込むことで設定することができます。ただし , 値
の書込みはタイマの停止中 ( タイマ状態制御レジスタ下位 (TCCSL) の STOP: ビット
6=1) でなければなりません。タイマデータレジスタへアクセスする場合は , ハーフワー
ドもしくはワードアクセス命令をご使用ください。
16 ビットフリーランタイマは , 以下の要因が発生すると直ちに初期化されます。
• リセット
• タイマ状態制御レジスタ (TCCSL) のクリアビット (SCLR: ビット 4) =1
• アップカウントモード ( タイマ状態制御レジスタ下位 (TCCSL) の MODE: ビット
5=0) 時におけるコンペアクリアレジスタとタイマカウント値の一致
220
第 11 章 多機能タイマ
11.4.3
タイマ状態制御レジスタ (TCCSH, TCCSL)
タイマ状態制御レジスタ (TCCSH, TCCSL) は , 16 ビットフリーランタイマの動作を
制御するために使用する 16 ビットレジスタです。
■ タイマ状態制御レジスタ , 上位バイト (TCCSH)
タイマ状態制御レジスタ(上位)
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
ECKE
IRQZF
IRQZE
MSI2
MSI1
MSI0
ICLR
ICRE
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
ICRE
TCCSH
アドレス:0000A8H
初期値:00000000B
コンペアクリア割込み要求許可ビット
0
割込み要求を禁止する
1
割込み要求を許可する
コンペアクリア割込みフラグビット
ICLR
読出し
書込み
0
コンペアクリア一致なし
このビットをクリアする
1
コンペアクリア一致あり
このビットに影響を与えない
MSI2
MSI1
MSI0
0
0
0
1回目の一致が発生したときに割込み生成
0
0
1
2回目の一致が発生したときに割込み生成
0
1
0
3回目の一致が発生したときに割込み生成
0
1
1
4回目の一致が発生したときに割込み生成
1
0
0
5回目の一致が発生したときに割込み生成
1
0
1
6回目の一致が発生したときに割込み生成
1
1
0
7回目の一致が発生したときに割込み生成
1
1
1
8回目の一致が発生したときに割込み生成
IRQZE
割込みマスク選択ビット
ゼロ検出割込み要求許可ビット
0
割込み要求を禁止にする
1
割込み要求を許可する
IRQZF
ゼロ検出割込みフラグビット
読出し
書込み
0
ゼロが検出されない
このビットをクリアする
1
ゼロが検出される
このビットに影響を与えない
ECKE
クロック選択ビット
0
内部クロック
1
外部クロック
R/W:リード/ライト可能
:初期値
221
第 11 章 多機能タイマ
表 11.4-1 タイマ状態制御レジスタ , 上位バイト (TCCSH) (1 / 2)
ビット名
機能
• このビットは , 内部クロックまたは外部クロックを 16 ビットフリー
ランタイマのカウントクロックとして選択するために使用します。
• このビットに "0" を設定した場合 :
内部クロックが選択されます。カウントクロック周波数を選択する
ためには , TCCSL レジスタのクロック周波数選択ビット (CLK3 ∼
ECKE:
ビット 15 クロック選択
ビット
CLK0: ビット 3 ∼ビット 0) も選択しなければなりません。
• このビットに "1" を設定した場合 :
外部クロックが選択されます。外部クロックは , "CKI" 端子から入力
されます。したがって , ポート方向レジスタ (DDR1) のビット 7 へ "0"
を書き込んで外部クロック入力を有効にしなければなりません。
( 注意事項 )
カウントクロックは , このビットが設定されると直ちに変更されま
す。したがって , このビットの変更は , アウトプットコンペアとイン
プットキャプチャが停止している間でなければなりません。
• 16 ビットフリーランタイマのカウント値が "0000H" のとき , このビッ
トには "1" がセットされます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
( 注意事項 )
アップダウンカウントモード ( タイマ状態制御レジスタ下位 (TCCSL)
の MODE: ビット 5=1) 時は , 割込みマスク選択ビット ( タイマ状態制
御レジスタ上位 (TCCSH) の MSI2 ∼ MSI0: ビット 12 ∼ビット 10 が
IRQZF:
ビット 14 ゼロ検出割込み
"000B" 以外 ) で設定した割込みが発生したときにこのビットに "1" が
フラグビット
設定されます。割込みが発生しないときは , このビットに "1" は設定
されません。
アップカウントモード (MODE: ビット 5=0) 時は , MSI2 ∼ MSI0: ビッ
ト 12 ∼ビット 10 の値とは無関係に , このビットはゼロ検出が発生す
るたびに設定されます。
タイマカウントクロックがマシンサイクル (φ) の場合
ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をしても , このビッ
トは設定されません。
タイマカウントクロックがマシンサイクル (φ) の分周の場合
ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をすると , このビッ
トは設定されます。
IRQZE:
このビットと割込みフラグビット (IRQZF: ビット 14) に "1" が設定され
ビット 13 ゼロ検出割込み ると , CPU に対する割込み要求が生成されます。
要求許可ビット
222
第 11 章 多機能タイマ
表 11.4-1 タイマ状態制御レジスタ , 上位バイト (TCCSH) (2 / 2)
ビット名
機能
• これらのビットは , アップカウントモード (MODE=0) 時はコンペア
クリア割込みのマスク回数を設定するために使用します。アップダ
ウンカウントモード (MODE=1) 時は , ゼロ検出割込みのマスク回数
ビット 10 MSI2 ∼ MSI0:
ビット 11 割込みマスク
ビット 12 選択ビット
を設定するために使用します。
• このビットに "0" を設定した場合 : 割込み要因はマスクされません。
( 注意事項 )
割込み要因を 2 回マスクし , 3 回目の割込みを処理する際には , これ
らのビットに "010B" を設定しなければなりません。
読出し値はマスクされたカウント値です。
• コンペアクリア値と 16 ビットフリーランタイマ値が一致すると , こ
のビットには "1" が設定されます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
ビット 9
ICLR:
( 注意事項 )
コンペアクリア
アップカウントモード ( タイマ状態制御レジスタ下位 (TCCSL) の
割込みフラグ
MODE: ビット 5=0) 時は , 割込みマスク選択ビット ( タイマ状態制御
ビット
レジスタ上位 (TCCSH) の MSI2 ∼ MSI0: ビット 12 ∼ 10 が "000B" 以
外 ) で設定した割込みが発生したときにこのビットに "1" が設定され
ます。割込みが発生しないときは , このビットに "1" は設定されませ
ん。
アップダウンカウントモード (MODE=1) 時は , MSI2 ∼ MSI0 ビット
の値とは無関係に , このビットはコンペアクリアが発生するたびに設
定されます。
ビット 8
ICRE: コンペア このビットとコンペアクリア割込みフラグビット(ICLR: ビット9) に"1"
クリア割込み
が設定されると , CPU に対する割込み要求が生成されます。
要求許可ビット
223
第 11 章 多機能タイマ
■ タイマ制御レジスタ , 下位バイト (TCCSL)
タイマ状態制御レジスタ(下位)
Bit7
BFE
R/W
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
STOP
MODE
SCLR
CLK3
CLK2
CLK1
CLK0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TCCSL
アドレス:0000A9H
初期値:01000000B
クロック周波数選択ビット
CLK3
CLK2
CLK1
CLK0
カウント
クロック
0
0
0
0
φ
0
0
0
1
0
0
1
0
0
0
1
=32MHz
=16MHz
=8MHz
=4MHz
=1MHz
31.25 ns 62.5 ns
125 ns
0.25 µs
1 µs
φ/2
62.5 ns
125 ns
0.25 ms
0.5 µs
2 µs
φ/4
125 ns
0.25 µs
0.5 µs
1 µs
4 µs
1
φ/8
0.25 µs
0.5 µs
1 µs
2 µs
8 µs
0
1
0
0
φ/16
0.5 µs
1 µs
2 µs
4 µs
16 µs
0
1
0
1
φ/32
1 µs
2 µs
4 µs
8 µs
32 µs
0
1
1
0
φ/64
2 µs
4 µs
8 µs
16 µs
64 µs
0
1
1
1
φ/128
4 µs
8 µs
16 µs
32 µs
128 µs
1
0
0
0
φ/256
8 µs
16 µs
32 µs
64 µs
256 µs
-
-
-
-
その他 設定禁止
-
:マシンサイクル
SCLR
0
1
MODE
このビットに影響を与えない
常に"0"を読み出す
カウンタを"0000H"に初期化
タイマカウントモードビット
アップカウントモード
1
アップダウンカウントモード
タイマ許可ビット
0
カウントを許可する(カウント開始する)
1
カウントを禁止する(カウント停止する)
BFE
224
書込み
0
STOP
R/W:リード/ライト可能
:初期値
タイマクリアビット
読出し
コンペアクリアバッファ許可ビット
0
コンペアクリアバッファを無効にする
1
コンペアクリアバッファを有効にする
第 11 章 多機能タイマ
表 11.4-2 タイマ状態制御レジスタ , 下位バイト (TCCSL) (1 / 2)
ビット名
機能
• このビットは , コンペアクリアバッファを有効にするために使用しま
す。
• このビットに "0" を設定した場合 :
ビット 7
コンペアクリアバッファは無効になります。したがって , コンペアク
BFE:
コンペア
リアレジスタ (CPCLRH, CPCLRL) に直接書き込むことが可能です。
クリア
バ ッ フ ァ 許 可 • このビットに "1" を設定した場合 :
ビット
コンペアクリアバッファは有効になります。コンペアクリアバッファ
に書き込まれ保持されていたデータは , 16 ビットフリーランタイマか
らのカウント値 "0" が検出されると , コンペアクリアレジスタへ転送さ
れます。
• このビットは , 16 ビットフリーランタイマのカウントを停止 / 開始す
るために使用します。
• このビットに "0" を設定した場合 : 16 ビットフリーランタイマのカウ
ビット 6
STOP:
タイマ許可
ビット
ントは開始します。
• このビットに "1" を設定した場合 : 16 ビットフリーランタイマのカウ
ントは停止します。
( 注意事項 )
16 ビットフリーランタイマが停止すると , アウトプットコンペアの動
作も停止します。
• このビットは , 16 ビットフリーランタイマのカウントモードを選択す
るために使用します。
• このビットに "0" を設定した場合 :
アップカウントモードが選択されます。タイマは , カウント値がコン
ペアクリアレジスタと一致して "0000H" にリセットされるまでカウン
トアップし , その後 , 再びカウントアップします。
ビット 5
MODE:
タイマ
カウント
モードビット
• このビットに "1" を設定した場合 :
アップダウンカウントモードが選択されます。タイマは , カウント値
がコンペアクリアレジスタと一致するまでカウントアップし , その後
ダウンカウントに変わります。その後 , カウント値が "0000H" に達する
と再びアップカウントに変わります。
• このビットは , タイマが動作中であっても停止されていても書込みが
可能です。タイマが動作中の場合は , このビットに書き込まれた値は
バッファに入れられ , その後 , タイマ値が "0000H" になるとバッファの
値によりカウントモードが変わります。
225
第 11 章 多機能タイマ
表 11.4-2 タイマ状態制御レジスタ , 下位バイト (TCCSL) (2 / 2)
ビット名
機能
• このビットは , 16 ビットフリーランタイマを "0000H" に初期化するた
めに使用します。
• このビットに "0" を設定した場合 : 意味はありません。
• このビットに "1" を設定した場合 : 16 ビットフリーランタイマは ,
"0000H" に初期化されます。
SCLR:
ビット 4 タイマクリア
ビット
• 読出し値は , 必ず "0" です。
( 注意事項 )
タイマカウントクロックがマシンサイクル (φ) の場合
このビットに "1" を書き込んでも , ゼロ検出割込みフラグはセットされ
ず , ゼロ検出割込みは発生されません。
タイマカウントクロックがマシンサイクル (φ) の分周の場合
このビットに "1" を書き込むと , ゼロ検出割込みフラグはセットされ ,
割込み許可の場合 , ゼロ検出割込みが発生します。
• このビットは , 16 ビットフリーランタイマのカウントクロック周波数
ビット 3
を選択するために使用します。
CLK3 ∼ CLK0:
ビット 2
クロック周波数 • カウントクロックは , これらのビットが設定されると直ちに変更され
ビット 1
選択ビット
ます。したがって , これらのビットの変更は , アウトプットコンペアと
ビット 0
インプットキャプチャが停止している間でなければなりません。
226
第 11 章 多機能タイマ
11.4.4
A/D トリガ制御レジスタ (ADTRGC)
フリーランタイマのコンペア一致時 , もしくはゼロ検出時に A/D トリガ信号出力を
制御します。
■ A/D トリガ制御レジスタ (ADTRGC)
A/Dトリガ制御レジスタ
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
-
-
-
-
SEL2
SEL1
AD2E
AD1E
-
-
-
-
R/W
R/W
R/W
R/W
AD1E
A/D1トリガ出力許可ビット
0
禁止
1
許可
AD2E
A/D2トリガ出力許可ビット
0
禁止
1
許可
SEL1
R/W:リード/ライト可能
:初期値
- :未使用ビット
ADTRGC
アドレス:0000ABH
初期値:XXXX0000B
A/D1トリガ要因選択ビット
0
ゼロ検出時
1
コンペア一致時
SEL2
A/D2トリガ要因選択ビット
0
ゼロ検出時
1
コンペア一致時
表 11.4-3 A/D トリガ制御レジスタ (ADTRGC)
ビット名
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0
機能
• 読出し値は不定です。
未使用ビット
• このビットへの書込みは動作に影響しません。
SEL2:
A/D2 トリガ要因
選択ビット
SEL1:
A/D1 トリガ要因
選択ビット
AD2E:
A/D2 トリガ出力
許可ビット
AD1E:
A/D1 トリガ出力
許可ビット
A/D2 のトリガをフリーランタイマのゼロ検出時に出力するか , コン
ペア一致時に出力するかの選択ビットです。
A/D1 のトリガをフリーランタイマのゼロ検出時に出力するか , コン
ペア一致時に出力するかの選択ビットです。
• "0" のとき , A/D2 トリガ信号は出力されません。
• "1" のとき , 出力許可となります。
• "0" のとき , A/D1 トリガ信号は出力されません。
• "1" のとき , 出力許可となります。
227
第 11 章 多機能タイマ
11.4.5
アウトプットコンペアバッファレジスタ
(OCCPBH0 ∼ OCCPBH5, OCCPBL0 ∼ OCCPBL5)/
アウトプットコンペアレジスタ
(OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5)
アウトプットコンペアバッファレジスタ (OCCPBH, OCCPBL) は , アウトプットコ
ンペアレジスタ (OCCPH, OCCPL) 用の 16 ビットバッファレジスタです。
OCCPBH, OCCPBL レジスタと OCCPH, OCCPL レジスタは , 両方とも同じアドレ
スに存在しています。
■ アウトプットコンペアバッファレジスタ
(OCCPBH:OCCPBH0 ∼ OCCPBH5, OCCPBL:OCCPBL0 ∼ OCCPBL5)
アウトプットコンペアバッファレジスタ ( 上位 )
OCCPBH0 ∼ OCCPBH5
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
アドレス :
000090H
000092H
000094H
000096H
000098H
00009AH
OP15
W
(0)
OP14
W
(0)
OP13
W
(0)
OP12
W
(0)
OP11
W
(0)
OP10
W
(0)
OP09
W
(0)
OP08
W
(0)
ライト→
初期値→
アウトプットコンペアバッファレジスタ ( 下位 )
OCCPBL0 ∼ OCCPBL5
ライト→
初期値→
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
OP07
W
(0)
OP06
W
(0)
OP05
W
(0)
OP04
W
(0)
OP03
W
(0)
OP02
W
(0)
OP01
W
(0)
OP00
W
(0)
アウトプットコンペアバッファレジスタは , アウトプットコンペアレジスタ (OCCPH,
OCCPL) 用のバッファレジスタです。バッファ機能が無効になるか ( コンペア制御レジ
スタ下位 (OCSL0, OCSL2, OCSL4) のBUF1, BUF0: ビット3, ビット2=11B) , またはフリー
ランタイマが停止すると , アウトプットコンペアバッファレジスタの値は , 直ちにアウ
トプットコンペアレジスタへ転送されます。バッファ機能が有効になると ( コンペア制
御レジスタ下位 (OCSL0, OCSL2, OCSL4) の BUF1, BUF0: ビット 3, 2=00B) , 値はコンペア
制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の転送選択ビット (BTS1, BTS0: ビット 14,
ビット 13) に従ってコンペアクリア一致時 , またはゼロ検出時に転送されます。
このレジスタへアクセスする場合 , ハーフワードもしくはワードアクセス命令をご使
用ください。
228
第 11 章 多機能タイマ
■ アウトプットコンペアレジスタ
(OCCPH:OCCPH0 ∼ OCCPH5,OCCPL:OCCPL0 ∼ OCCPL5)
アウトプットコンペアレジスタ ( 上位 )
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
OP15
R
リード→
(0)
初期値→
OP14
R
(0)
OP13
R
(0)
OP12
R
(0)
OP11
R
(0)
OP10
R
(0)
OP09
R
(0)
OP08
R
(0)
OCCPH0 ∼ OCCPH5
アドレス :
000090H
000092H
000094H
000096H
000098H
00009AH
アウトプットコンペアレジスタ ( 下位 )
Bit7
OCCPL0 ∼ OCCPL5
OP07
R
リード→
(0)
初期値→
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
OP06
R
(0)
OP05
R
(0)
OP04
R
(0)
OP03
R
(0)
OP02
R
(0)
OP01
R
(0)
OP00
R
(0)
アウトプットコンペアレジスタは , 16 ビットフリーランタイマのカウント値と比較す
るために使用する 16 ビットレジスタです。タイマの動作を有効にする前にアウトプッ
トコンペアバッファレジスタ (OCCPBH, OCCPBL) に値を設定してください。
アウトプットコンペアレジスタの値が 16 ビットフリーランタイマのカウント値と一致
すると , コンペア信号が生成され, アウトプットコンペア割込みフラグビット ( コンペア
制御レジスタ下位 OCSL0, OCSL2, OCSL4 の IOP1, IOP0: ビット 7, ビット 6) が設定され
ます。出力レベルが設定されると ( コンペア制御レジスタ上位 (OCSH1, OCSH3, OCSH5)
の OTD1, OTD0: ビット 9, ビット 8) , アウトプットコンペアレジスタ (OCCPH0 ∼
OCCPH5, OCCPL0 ∼ OCCPL5) に対応する出力レベル波形ジェネレータ RTO0 ∼ RTO5
を反転させることができます。
このレジスタへアクセスする場合 , ハーフワードもしくはワードアクセス命令をご使
用ください。
229
第 11 章 多機能タイマ
コンペア制御レジスタ
(OCSH0 ∼ OCSH5, OCSL0 ∼ OCSL5)
11.4.6
コンペア制御レジスタは , RT0 ∼ RT5 の出力レベル , 出力許可 , 出力レベル反転
モード , コンペア動作許可 , コンペア一致割込み許可およびコンペア一致割込みフラ
グを制御するために使用します。
■ コンペア制御レジスタ , 上位バイト (OCSH1, OCSH3, OCSH5)
コンペア制御レジスタ(上位)
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
-
BTS1
BTS0
CMOD
OTE1
OTE0
OTD1
OTD0
-
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit8
読出し
書込み
RT0,RT2,RT4の現出力値
1
RT0,RT2,RT4が"1"を出力
読出し
書込み
RT1,RT3,RT5の現出力値
1
RT0,RT2,RT4が"0"を出力
出力レベルビット
OTD1
0
OCSH1,OCSH3,OCSH5
アドレス:00009CH
00009EH
0000A0H
初期値:X1100000B
出力レベルビット
OTD0
0
Bit9
OTE0
RT1,RT3,RT5が"0"を出力
RT1,RT3,RT5が"1"を出力
出力許可ビット
0
汎用入出力ポート
1
波形ジェネレータ出力端子(RTO0,RTO2,RTO4)
OTE1
出力許可ビット
0
汎用入出力ポート
1
波形ジェネレータ出力端子(RTO1,RTO3,RTO5)
出力レベル反転モードビット
CMOD
MOD1x=0
MOD1x=1
0
RT0,RT2,RT4:レベルは,コンペアレジスタ0,2,4と
の一致が発生すると直ちに反転する アップカウント時の一致時は"1"にセット
RT1,RT3,RT5:レベルは,コンペアレジスタ1,3,5と ダウンカウント時の一致時は"0"にリセット
の一致が発生すると直ちに反転する
1
RT0,RT2,RT4:レベルは、コンペアレジスタ0,2,4と
の一致が発生すると直ちに反転する アップカウント時の一致時は"0"にリセット
RT1,RT3,RT5:レベルは,コンペアレジスタ
ダウンカウント時の一致時は"1"にセット
(0または)(2または3)(4または5)と
の一致が発生すると直ちに反転する
x = 0~5
BTS0
バッファ転送選択ビット
0
ゼロ検出が発生すると転送が起動(ch.0, ch.2, ch.4)
コンペアクリア一致が発生すると転送が起動(ch.0, ch.2, ch.4)
1
R/W:リード/ライト可能
:初期値
-:未使用
230
BTS1
バッファ転送選択ビット
0
ゼロ検出が発生すると転送が起動(ch.1, ch.3, ch.5)
1
コンペアクリア一致が発生すると転送が起動(ch.1, ch.3, ch.5)
第 11 章 多機能タイマ
表 11.4-4 コンペア制御レジスタ , 上位バイト (OCSH1, OCSH3, OCSH5) (1 / 3)
ビット名
ビット 15 未使用ビット
機能
• 読出し値は不定です。
• このビットへの書込みは動作に影響しません。
• このビットは , アウトプットコンペアバッファレジスタ
(OCCPBH0, OCCPBH2, OCCPBH4, OCCPBL0, OCCPBL2, OCCPBL4)
からアウトプットコンペアレジスタ (OCCPH1, OCCPH3,OCCPH5,
OCCPL1, OCCPL3, OCCPL5) へのデータ転送時期を選択するために
BTS1:
ビット 14 バッファ転送
選択ビット
使用します。
• このビットに "0" を設定した場合 :
データ転送は , 16 ビットフリーランタイマのカウント値 "0" が検出さ
れると起動します。
• このビットに "1" を設定した場合 :
データ転送は , 16 ビットフリーランタイマでコンペアクリア一致が
発生すると起動します。
• このビットは , アウトプットコンペアバッファレジスタ
(OCCPBH0, OCCPBH2, OCCPBH4, OCCPBL0, OCCPBL2, OCCPBL4)
からアウトプットコンペアレジスタ (OCCPH1, OCCPH3,OCCPH5,
OCCPL1, OCCPL3, OCCPL5) へのデータ転送時期を選択するために
BTS0:
ビット 13 バッファ転送
選択ビット
使用します。
• このビットに "0" を設定した場合 :
データ転送は , 16 ビットフリーランタイマのカウント値 "0" が検出さ
れると起動します。
• このビットに "1" を設定した場合 :
データ転送は , 16 ビットフリーランタイマでコンペアクリア一致が
発生すると起動します。
231
第 11 章 多機能タイマ
表 11.4-4 コンペア制御レジスタ , 上位バイト (OCSH1, OCSH3, OCSH5) (2 / 3)
ビット名
機能
• このビットは , 端子出力が有効の間 (OTE1=1 または OTE0=1) に一致
が発生した場合に端子出力レベル反転モードを直ちに切り換えるた
めに使用します。
• このビットに "0" を設定した場合 :
コンペアモード制御レジスタ (OCMOD) : MOD15 ∼ MOD10=0 のとき
- RT0, RT2, RT4: レベルは , 16 ビットフリーランタイマとコンペア
レジスタ 0, 2, 4 が一致すると直ちに反転します。
- RT1, RT3, RT5: レベルは , 16 ビットフリーランタイマとコンペア
レジスタ 1, 3, 5 が一致すると直ちに反転します。
コンペアモード制御レジスタ (OCMOD) : MOD15 ∼ MOD10=1 のとき
- アップカウント時に一致したときは , "1" にセット
CMOD:
- ダウンカウント時に一致したときは , "0" にリセット
ビット 12 出力レベル反転
• このビットに "1" を設定した場合 :
モードビット
コンペアモード制御レジスタ (OCMOD) : MOD15 ∼ MOD10=0 のとき
- RT0, RT2, RT4: レベルは , 16 ビットフリーランタイマとコンペア
レジスタ 0, 2, 4 が一致すると直ちに反転します。
- RT1, RT3, RT5: レベルは , 16 ビットフリーランタイマとコンペア
レジスタ (0 または 1) (2 または 3) (4 または 5) が一
致すると直ちに反転します。
コンペアレジスタ 0, 2, 4 と 1, 3, 5 が同じ値の場合は , ただ 1 つのコ
ンペアレジスタが使用される場合と同じ動作になります。
コンペアモード制御レジスタ (OCMOD) : MOD15 ∼ MOD10=1 のとき
- アップカウント時に一致したときは , "0" にリセット
- ダウンカウント時に一致したときは , "1" にセット
• このビットは , ポートへの波形ジェネレータ出力 (RTO1, RTO3,
RTO5) を許可するために使用します。
• このビットの初期値は "0" です。
OTE1:
( 注意事項 )
ビット 11
出力許可ビット
波形ジェネレータが無効 (16 ビットデッドタイマ制御レジスタ下位
(DTCR0, DTCR1, DTCR2) の TMD2 ∼ TMD0, TMD5 ∼ TMD3, TMD8 ∼
TMD6: ビット 2 ∼ビット 0=000B) の場合は , RTO1, RTO3, RTO5 はア
ウトプットコンペアと同じ値を出力します。
• このビットは , ポートへの波形ジェネレータ出力 (RTO0, RTO2,
RTO4) を許可するために使用します。
• このビットの初期値は "0" です。
OTE0:
( 注意事項 )
ビット 10
出力許可ビット
波形ジェネレータが無効 (16 ビットデッドタイマ制御レジスタ下位
(DTCR0, DTCR1, DTCR2) の TMD2 ∼ TMD0, TMD5 ∼ TMD3, TMD8 ∼
TMD6: ビット 2 ∼ビット 0=000B) の場合は , RTO0, RTO2, RTO4 はア
ウトプットコンペアと同じ値を出力します。
232
第 11 章 多機能タイマ
表 11.4-4 コンペア制御レジスタ , 上位バイト (OCSH1, OCSH3, OCSH5) (3 / 3)
ビット名
機能
• このビットは , アウトプットコンペア 1, 3, 5 (RT1, RT3, RT5) の端子
出力レベルを変更するために使用します。
ビット 9
OTD1:
出力レベル
ビット
• コンペア端子出力の初期値は "0" です。
• 値を書き込む場合は , 必ず前もってコンペア動作を停止させてくだ
さい。このビットの読出し値は , RT1, RT3, RT5 におけるアウトプッ
トコンペア値を示します。
• このビットは , アウトプットコンペア 0, 2, 4 (RT0, RT2, RT4) の端子
出力レベルを変更するために使用します。
ビット 8
OTD0:
出力レベル
ビット
• コンペア端子出力の初期値は "0" です。
• 値を書き込む場合は , 必ず前もってコンペア動作を停止させてくだ
さい。このビットの読出し値は , RT0, RT2, RT4 におけるアウトプッ
トコンペア値を示します。
233
第 11 章 多機能タイマ
■ コンペア制御レジスタ , 下位バイト (OCSL0, OCSL2, OCSL4)
コンペア制御レジスタ(下位)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
IOP1
IOP0
IOE1
IOE0
BUF1
BUF0
CST1
CST0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CST0
コンペアレジスタ0,2,4のコンペア動作を禁止する
1
コンペアレジスタ0,2,4のコンペア動作を許可する
コンペア動作許可ビット
0
コンペアレジスタ1,3,5のコンペア動作を禁止する
1
コンペアレジスタ1,3,5のコンペア動作を許可する
BUF0
コンペアバッファ無効ビット
0
コンペアレジスタ0,2,4のコンペアバッファを有効にする
1
コンペアレジスタ0,2,4のコンペアバッファを無効にする
BUF1
コンペアバッファ無効ビット
0
コンペアレジスタ1,3,5のコンペアバッファを有効にする
1
コンペアレジスタ1,3,5のコンペアバッファを無効にする
IOE0
コンペア一致割込み許可ビット
0
コンペアレジスタ0,2,4のコンペア一致割込みを禁止する
1
コンペアレジスタ0,2,4のコンペア一致割込みを許可する
IOE1
コンペア一致割込み許可ビット
0
コンペアレジスタ1,3,5のコンペア一致割込みを禁止する
1
コンペアレジスタ1,3,5のコンペア一致割込みを許可する
IOP0
コンペア一致割込みフラグビット
0
読出し
書込み
コンペアレジスタ0,2,4の
コンペア一致割込みが発生しない このビットをクリアする
1
コンペアレジスタ0,2,4の
コンペア一致割込みが発生する
IOP1
0
1
234
コンペア動作許可ビット
0
CST1
R/W:リード/ライト可能
:初期値
OCSL0,OCSL2,OCSL4
アドレス:00009DH
00009FH
0000A1H
初期値:00001100B
このビットに影響を与えない
コンペア一致割込みフラグビット
読出し
書込み
コンペアレジスタ1,3,5の
このビットをクリアする
コンペア一致割込みが発生しない
コンペアレジスタ1,3,5の
このビットに影響を与えない
コンペア一致割込みが発生する
第 11 章 多機能タイマ
表 11.4-5 コンペア制御レジスタ , 下位バイト (OCSL0, OCSL2, OCSL4) (1 / 2)
ビット名
機能
• このビットは , コンペアレジスタ 1, 3, 5 が 16 ビットフリーランタイ
マの値と一致したことを示す割込みフラグです。
• このビットは , コンペアレジスタ値が 16 ビットフリーランタイマ値
ビット 7
IOP1:
コンペア一致
割込みフラグ
ビット
に一致した場合に "1" が設定されます。
• コンペア一致割込み許可ビット (IOE1: ビット 5) が " 許可 " になって
いる間にこのビットが設定されると , アウトプットコンペア割込み
が発生します。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
• このビットは , コンペアレジスタ 0, 2, 4 が 16 ビットフリーランタイ
マの値と一致したことを示す割込みフラグです。
• このビットは , コンペアレジスタ値が 16 ビットフリーランタイマ値
ビット 6
IOP0:
コンペア一致
割込みフラグ
ビット
に一致した場合に "1" が設定されます。
• コンペア一致割込み許可ビット (IOE0: ビット 4) が " 許可 " になって
いる間にこのビットが設定されると , アウトプットコンペア割込み
が発生します。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
• このビットは , コンペアレジスタ 1, 3, 5 のアウトプットコンペア割
ビット 5
IOE1:
コンペア一致
割込み許可
ビット
込みを " 許可 " にするために使用します。
• このビットに "1" が書き込まれている間にコンペア一致割込みフラ
グビット (IOP1: ビット 7) が設定されると , アウトプットコンペア割
込みが発生します。
• このビットは , コンペアレジスタ 0, 2, 4 のアウトプットコンペア割
ビット 4
IOE0:
コンペア一致
割込み許可
ビット
込みを " 許可 " にするために使用します。
• このビットに "1" が書き込まれている間にコンペア一致割込みフラ
グビット (IOP0: ビット 7) が設定されると , アウトプットコンペア割
込みが発生します。
ビット 3
ビット 2
BUF1:
コンペア
バッファ無効
ビット
BUF0:
コンペア
バッファ無効
ビット
• このビットは , アウトプットコンペアレジスタ 1, 3, 5 のバッファ機
能を無効にするために使用します。
• このビットに "0" を設定した場合 : バッファ機能が有効になります。
• このビットは , アウトプットコンペアレジスタ 0, 2, 4 のバッファ機
能を無効にするために使用します。
• このビットに "0" を設定した場合 : バッファ機能が有効になります。
235
第 11 章 多機能タイマ
表 11.4-5 コンペア制御レジスタ , 下位バイト (OCSL0, OCSL2, OCSL4) (2 / 2)
ビット名
機能
• このビットは , 16 ビットフリーランタイマとコンペアレジスタ 1, 3,
5 の間のコンペア動作を許可するために使用します。
• コンペア動作を許可する場合は , 必ず前もってコンペアレジスタ 1,
ビット 1
CST1:
コンペア動作
許可ビット
3, 5 とタイマデータレジスタ (TCDTH, TCDTL) に値を書き込んでく
ださい。
( 注意事項 )
アウトプットコンペアは , 16 ビットフリーランタイマクロックと同
期化されるので , 16 ビットフリーランタイマを停止するとコンペア
動作も停止します。
• このビットは , 16 ビットフリーランタイマとコンペアレジスタ 0, 2,
4 の間のコンペア動作を許可するために使用します。
• コンペア動作を許可する場合は , 必ず前もってコンペアレジスタ 0,
ビット 0
236
CST0:
コンペア動作
許可ビット
2, 4 とタイマデータレジスタ (TCDTH, TCDTL) に値を書き込んでく
ださい。
( 注意事項 )
アウトプットコンペアは , 16 ビットフリーランタイマクロックと同
期化されるので , 16 ビットフリーランタイマを停止するとゼロ検出 ,
コンペア動作も停止します。
第 11 章 多機能タイマ
11.4.7
コンペアモード制御レジスタ (OCMOD)
コンペアモード制御レジスタは , コンペア一致時の出力レベルを反転モードもしく
はセット , リセットを行うかの制御を行います。
■ コンペアモード制御レジスタ (OCMOD)
コンペアモード制御レジスタ
Bit15
Bit14
Bit13
Bit12
Bit11
-
-
MOD15
MOD14
MOD13
-
-
R/W
R/W
R/W
Bit10
Bit9
Bit8
MOD12
MOD11
MOD10
R/W
R/W
R/W
初期値:XX000000B
ch.0コンペア一致出力設定ビット
MOD10
0
前出力値の反転
1
CMODによって“1”にセットもしくは“0”にリセット
MOD11
ch.1 コンペア一致出力設定ビット
0
前出力値の反転
1
CMODによって“1”にセットもしくは“0”にリセット
ch.2 コンペア一致出力設定ビット
MOD12
0
前出力値の反転
1
CMODによって“1”にセットもしくは“0”にリセット
ch.3 コンペア一致出力設定ビット
MOD13
0
前出力値の反転
1
CMODによって“1”にセットもしくは“0”にリセット
MOD14
ch.4コンペア一致出力設定ビット
0
前出力値の反転
1
CMODによって“1”にセットもしくは“0”にリセット
ch.5コンペア一致出力設定ビット
MOD15
R/W:リード/ライト可能
:初期値
-:未使用
OCMOD
アドレス:0000A2H
0
前出力値の反転
1
CMODによって“1”にセットもしくは“0”にリセット
237
第 11 章 多機能タイマ
表 11.4-6 コンペアモード制御レジスタ (OCMOD)
ビット名
ビット 15,
未使用ビット
ビット 14
ビット 13
ビット 12
ビット 11
ビット 10
ビット 9
ビット 8
238
MOD15:
ch.5 コンペア一致
出力設定ビット
MOD14:
ch.4 コンペア一致
出力設定ビット
MOD13:
ch.3 コンペア一致
出力設定ビット
MOD12:
ch.2 コンペア一致
出力設定ビット
MOD11:
ch.1 コンペア一致
出力設定ビット
MOD10:
ch.0 コンペア一致
出力設定ビット
機能
• 読出し値は不定です。
• このビットへの書込みは動作に影響しません。
• このビットによりアウトプットコンペアの出力のコンペア一
致時の動作を指示します。
• 初期値は "0" です。
• "0" のときは , 一致時に出力値を反転します。
• "1" のときは , 一致時に出力値を "1" にセット , もしくは "0" に
リセットします。セット / リセットの切換えはコンペア制御レ
ジスタ (OCSH) の CMOD ビットにて設定します。
• 値を書き込む場合は , 必ず前もってコンペア動作を停止させて
ください。
• CMOD の設定は , ch.0, ch.1 と ch.2, ch.3 と ch.4, ch.5 で設定となり
ます。
- ch.0, ch.1 で独立してリセット / セットの設定はできません。
- ch.2, ch.3 で独立してリセット / セットの設定はできません。
- ch.4, ch.5 で独立してリセット / セットの設定はできません。
第 11 章 多機能タイマ
11.4.8
インプットキャプチャデータレジスタ
(IPCPH0 ∼ IPCPH3, IPCPL0 ∼ IPCPL3)
インプットキャプチャデータレジスタは , 入力波形の有効エッジが検出されたとき
のフリーランタイマのカウント値を保持するために使用します。
■ インプットキャプチャデータレジスタ
(IPCPH: IPCPH0 ∼ IPCPH3, IPCPL: IPCPL0 ∼ IPCPL3)
インプットキャプチャデータレジスタ ( 上位 )
IPCPH0 ∼ IPCPH3
アドレス :
0000ACH
0000AEH
0000B0H
0000B2H
ビット 15
ビット 14 ビット 13
ビット 12 ビット 11 ビット 10 ビット 9 ビット 8
CP15
CP14
CP13
CP12
CP11
CP10
CP09
CP08
リード→
R
R
R
R
R
R
R
R
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
インプットキャプチャデータレジスタ ( 下位 )
IPCPL0 ∼ IPCPL3
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
CP07
CP06
CP05
CP04
CP03
CP02
ビット 1 ビット 0
CP01
CP00
リード→
R
R
R
R
R
R
R
R
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
このレジスタは , 対応する外部端子入力波形の有効エッジが検出されたときのフリー
ランタイマ値を格納するために使用します。このレジスタへアクセスする場合は , ハー
フワードもしくはワードアクセス命令をご使用ください。
このレジスタにデータを書き込むことはできません 。
239
第 11 章 多機能タイマ
11.4.9
インプットキャプチャ状態制御 /PPG 出力制御レジスタ
(ICSH23, ICSL23, PICSH01, PICSL01)
インプットキャプチャ状態制御 /PPG 出力制御レジスタ (ICSH23, ICSL23,
PICSH01, PICSL01) は , エッジ選択 , 割込み要求許可 , 割込み要求フラグおよび
PPG 出力を制御するために使用します。また , インプットキャプチャ 2, 3 において
検出された有効なエッジを示すためにも使用します。
■ インプットキャプチャ状態制御レジスタ (ch.2, ch.3) , 上位バイト (ICSH23)
インプットキャプチャ状態制御レジスタ(上位)
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
-
-
-
-
-
-
IEI3
IEI2
-
-
-
-
-
-
R
R
IEI2
R :リードのみ
:初期値
-:未使用
240
有効エッジ指示ビット(インプットキャプチャ2)
0
立下りエッジが検出される
1
立上りエッジが検出される
IEI3
ICSH23
アドレス:0000B6H
初期値:XXXXXX00B
有効エッジ指示ビット(インプットキャプチャ3)
0
立下りエッジが検出される
1
立上りエッジが検出される
第 11 章 多機能タイマ
表 11.4-7 インプットキャプチャ状態制御レジスタ (ch.2, ch.3) , 上位バイト (ICSH23)
ビット名
ビット 15
ビット 14
ビット 13
未使用ビット
ビット 12
ビット 11
ビット 10
機能
• 読出し値は不定です。
• このビットへの書込みは動作に影響しません。
• このビットは , キャプチャレジスタ 3 の有効エッジ指示ビットであり ,
立上りエッジまたは立下りエッジが検出されたことを示します。
ビット 9
IEI3:
有効エッジ指示
ビット
( インプット
キャプチャ 3)
• 立下りエッジが検出されると , このビットに "0" が書き込まれます。
• 立上りエッジが検出されると , このビットに "1" が書き込まれます。
• このビットは読出し専用ビットです。
( 注意事項 )
インプットキャプチャ状態制御レジスタ下位 (ICSL23) の EG31, EG30:
ビット 3, ビット 2=00B の場合 , 読出し値は意味がありません。
• このビットは , キャプチャレジスタ 2 の有効エッジ指示ビットであり ,
立上りエッジまたは立下りエッジが検出されたことを示します。
ビット 8
IEI2:
• 立下りエッジが検出されると , このビットに "0" が書き込まれます。
有効エッジ指示
• 立上りエッジが検出されると , このビットに "1" が書き込まれます。
ビット
( インプット
• このビットは , 読出し専用ビットです。
キャプチャ 2)
( 注意事項 )
インプットキャプチャ状態制御レジスタ下位 (ICSL23) の EG21, EG20:
ビット 1, ビット 0=00B の場合 , 読出し値は意味がありません。
241
第 11 章 多機能タイマ
■ インプットキャプチャ状態制御レジスタ (ch.2, ch.3) , 下位バイト (ICSL23)
インプットキャプチャ状態制御レジスタ(下位)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
ICP3
IP2
ICE3
ICE2
EG31
EG30
EG21
EG20
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
EG21
0
エッジは検出されない(停止)
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
EG30
エッジ選択ビット(インプットキャプチャ3)
0
0
エッジは検出されない(停止)
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
ICE2
割込み要求許可ビット(インプットキャプチャ2)
0
割込み要求を禁止する
1
割込み要求を許可する
ICE3
割込み要求許可ビット(インプットキャプチャ3)
0
割込み要求を禁止する
1
割込み要求を許可する
ICP2
割込み要求フラグビット(インプットキャプチャ2)
読出し
書込み
0
有効エッジが検出されない
このビットはクリアされる
1
有効エッジが検出される
このビットは影響を受けない
ICP3
242
エッジ選択ビット(インプットキャプチャ2)
0
EG31
R/W:リード/ライト可能
:初期値
EG20
ICSL23
アドレス:0000B7H
初期値:00000000B
割込み要求フラグビット(インプットキャプチャ3)
読出し
書込み
0
有効エッジが検出されない
このビットはクリアされる
1
有効エッジが検出される
このビットは影響を受けない
第 11 章 多機能タイマ
表 11.4-8 インプットキャプチャ状態制御レジスタ (ch.2, ch.3) , 下位バイト (ICSL23)
ビット名
機能
• このビットは , インプットキャプチャ3 の割込み要求フラグとして使
用します。
ビット 7
ICP3:
割込み要求
フラグビット
( インプット
キャプチャ 3)
• このビットは , 外部入力端子の有効エッジが検出されると直ちに "1"
が設定されます。
• 割込み許可ビット (ICE3: ビット 5) が設定されている間に有効エッジ
が検出されると , 直ちに割込みを生成することができます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
• このビットは , インプットキャプチャ2 の割込み要求フラグとして使
用します。
ビット 6
ICP2:
割込み要求
フラグビット
( インプット
キャプチャ 2)
• このビットは , 外部入力端子の有効エッジが検出されると直ちに "1"
が設定されます。
• 割込み許可ビット (ICE2: ビット 4) が設定されている間に有効エッジ
が検出されると , 直ちに割込みを生成することができます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
ビット 5
ICE3:
• このビットは , インプットキャプチャ3 のインプットキャプチャ割込
割込み要求許可
み要求を許可するために使用します。
ビット
• これらのビットに "1" が設定されている間に割込みフラグ (ICP3: ビッ
( インプット
ト7) が設定されると, インプットキャプチャ3割込みが生成されます。
キャプチャ 3)
ビット 4
ICE2:
• このビットは , インプットキャプチャ2 のインプットキャプチャ割込
割込み要求許可
み要求を許可するために使用します。
ビット
• これらのビットに "1" が設定されている間に割込みフラグ (ICP2: ビッ
( インプット
ト6) が設定されると, インプットキャプチャ2割込みが生成されます。
キャプチャ 2)
• これらのビットは , インプットキャプチャ3 の外部入力の有効エッジ
ビット 3
ビット 2
EG31, EG30:
エッジ選択
ビット
( インプット
キャプチャ 3)
EG21, EG20:
エッジ選択
ビット
( インプット
キャプチャ 2)
• これらのビットは , インプットキャプチャ2 の外部入力の有効エッジ
ビット 1
ビット 0
極性を指定するために使用します。
• これらのビットは , インプットキャプチャ3 の動作を有効にするため
にも使用します。
極性を指定するために使用します。
• これらのビットは , インプットキャプチャ2 の動作を有効にするため
にも使用します。
243
第 11 章 多機能タイマ
■ PPG 出力制御レジスタ上位バイト (PICSH01)
PPG出力制御 レジスタ(上位)
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
PGEN5
PGEN4
PGEN3
PGEN2
PGEN1
PGEN0
-
-
W
W
W
W
W
W
-
-
PPG出力許可ビット
PGEN0
0
RTO0へのPPG0出力を禁止する
1
RTO0へのPPG0出力を許可する
PPG出力許可ビット
PGEN1
0
RTO1へのPPG0出力を禁止する
1
RTO1へのPPG0出力を許可する
PPG出力許可ビット
PGEN2
0
RTO2へのPPG0出力を禁止する
1
RTO2へのPPG0出力を許可する
PPG出力許可ビット
PGEN3
0
RTO3へのPPG0出力を禁止する
1
RTO3へのPPG0出力を許可する
PPG出力許可ビット
PGEN4
0
RTO4へのPPG0出力を禁止する
1
RTO4へのPPG0出力を許可する
PPG出力許可ビット
PGEN5
0
PICSH01
アドレス:0000B4H
初期値:000000--B
RTO5へのPPG0出力を禁止する
1
RTO5へのPPG0出力を許可する
W:ライトオンリ
:初期値
(注意事項) 本レジスタは、ライトのみ可能です。リードは禁止です。
表 11.4-9 PPG 出力制御レジスタ上位バイト (PICSH01)
ビット名
ビット 15
ビット 14
ビット 13
ビット 12
ビット 11
ビット 10
244
機能
• これらのビットは , RTO0 ∼ RTO5 への PPG0 出力を選択するために
PGEN5 ∼
PGEN0:
PPG 出力許可
ビット
使用します。
• 書込みのみ可能です。読出しは禁止です。
第 11 章 多機能タイマ
■ PPG 出力制御レジスタ下位バイト (PICSL01)
PPG出力制御レジスタ(下位)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
ICP1
ICP0
ICE1
ICE0
EG11
EG10
EG01
EG00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
EG01
EG00
0
0
エッジは検出されない(停止)
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
EG11
EG10
0
0
エッジは検出されない(停止)
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
ICE0
エッジ選択ビット(インプットキャプチャ0)
エッジ選択ビット(インプットキャプチャ1)
割込み要求許可ビット(インプットキャプチャ0)
0
割込み要求を禁止する
1
割込み要求を許可する
ICE1
割込み要求許可ビット(インプットキャプチャ1)
0
割込み要求を禁止する
1
割込み要求を許可する
ICP0
割込み要求フラグビット(インプットキャプチャ0)
読出し
書込み
0
有効エッジが検出されない
このビットはクリアされる
1
有効エッジが検出される
このビットは影響を受けない
ICP1
R/W:リード/ライト可能
:初期値
PICSL01
アドレス:0000B5H
初期値:00000000B
割込み要求フラグビット(インプットキャプチャ1)
読出し
書込み
0
有効エッジが検出されない
このビットはクリアされる
1
有効エッジが検出される
このビットは影響を受けない
245
第 11 章 多機能タイマ
表 11.4-10 PPG 出力制御レジスタ下位バイト (PICSL01)
ビット名
機能
• このビットは , インプットキャプチャ1 の割込み要求フラグとして使
用します。
ビット 7
ICP1:
割込み要求
フラグビット
( インプット
キャプチャ 1)
• このビットは , 外部入力端子の有効エッジが検出されると直ちに "1"
が設定されます。
• 割込み許可ビット (ICE1: ビット 5) が設定されている間に有効エッジ
が検出されると , 直ちに割込みが生成されます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
• このビットは , インプットキャプチャ0 の割込み要求フラグとして使
用します。
ビット 6
ICP0:
割込み要求
フラグビット
( インプット
キャプチャ 0)
• このビットは , 外部入力端子の有効エッジが検出されると直ちに "1"
が設定されます。
• 割込み許可ビット (ICE0: ビット 4) が設定されている間に有効エッジ
が検出されると , 直ちに割込みが生成されます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
ビット 5
ICE1:
• このビットは , インプットキャプチャ1 のインプットキャプチャ割込
割込み要求許可
み要求を許可するために使用します。
ビット
• このビットに "1" が設定されている間に割込みフラグ (ICP1: ビット
( インプット
7) が設定されると , インプットキャプチャ 1 割込みが生成されます。
キャプチャ 1)
ビット 4
ICE0:
• このビットは , インプットキャプチャ0 のインプットキャプチャ割込
割込み要求許可
み要求を許可するために使用します。
ビット
• このビットに "1" が設定されている間に割込みフラグ (ICP0: ビット
( インプット
6) が設定されると , インプットキャプチャ 0 割込みが生成されます。
キャプチャ 0)
• これらのビットは , インプットキャプチャ1 の外部入力の有効エッジ
ビット 3
ビット 2
EG11, EG10:
エッジ選択
ビット
( インプット
キャプチャ 1)
EG01, EG00:
エッジ選択
ビット
( インプット
キャプチャ 0)
• これらのビットは , インプットキャプチャ0 の外部入力の有効エッジ
ビット 1
ビット 0
246
極性を指定するために使用します。
• これらのビットは , インプットキャプチャ1 の動作を有効にするため
にも使用します。
極性を指定するために使用します。
• これらのビットは , インプットキャプチャ0 の動作を有効にするため
にも使用します。
第 11 章 多機能タイマ
16 ビットデッドタイマレジスタ
(TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2)
11.4.10
16 ビットデッドタイマレジスタは , 16 ビットデッドタイマのコンペア値を保持しま
す。
■ 16 ビットデッドタイマレジスタ
(TMRRH: TMRRH0 ∼ TMRRH2, TMRRL:TMRRL0 ∼ TMRRL2)
16 ビットデッドタイマレジスタ ( 上位 )
TMRRH0,TMRRH1,TMRRH2
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
アドレス :
0000BCH
0000BEH
0000C0H
TR15
TR14
TR13
TR12
TR11
TR10
TR09
TR08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
TR07
TR06
TR05
TR04
TR03
TR02
TR01
TR00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
リード / ライト→
初期値→
16 ビットデッドタイマレジスタ ( 下位 )
TMRRL0,TMRRL1,TMRRL2
リード / ライト→
初期値→
これらのレジスタは , 16 ビットデッドタイマの比較値を格納するために使用します。
これらのレジスタ値は , 16 ビットデッドタイマが動作を開始するとリロードされます。
タイマ動作中にこれらのレジスタに値が再書込みされると , 新たに書き込まれた値は
次回のタイマ開始 / 動作時に有効になります。
このレジスタへアクセスする場合は , ハーフワードもしくはワードアクセス命令をご
使用ください。
デッドタイムタイマモード時は , これらのレジスタはノンオーバラップ時間を設定す
るために使用します。
ノンオーバラップ時間 = ( 設定値 ) ×選択されたクロック
タイマモード時は , これらのレジスタは PPG0 タイマ動作の GATE 時間を設定するため
に使用します。
GATE 時間 = ( 設定値 ) ×選択されたクロック
<注意事項>
デッドタイムタイマモード時およびタイマモード時は , これらのレジスタに "0000H" を設
定することはできません。
247
第 11 章 多機能タイマ
11.4.11
16 ビットデッドタイマ制御レジスタ
(DTCR0 ∼ DTCR2)
16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2) は , 波形ジェネレータの動
作モード , 割込み要求許可 , 割込み要求フラグ , GATE 信号許可および出力レベル極
性を制御するために使用します。
■ 16 ビットデッドタイマ制御レジスタ (DTCR0)
16ビットデッドタイマ制御レジスタ
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
DMOD0
GTEN1
GTEN0
TMIF0
TMIE0
TMD2
TMD1
TMD0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TMD1
TMD0
0
0
0
波形ジェネレータが停止する
0
0
1
RT信号が"H"の間にPPG0タイマがパルスを出力する
各RT信号の立上りエッジがトリガとなり16ビット
デッドタイマが起動する。PPG0タイマは16ビット
デッドタイマが停止するまでパルスを出力する
(タイマモード)
0
1
0
1
0
0
1
1
1
TMIE0
0
1
TMIF0
0
1
動作モードビット
RT信号でノンオーバラップ信号を生成する
(デッドタイムタイマモード)
PPG0タイマでノンオーバラップ信号を生成する
(デッドタイムタイマモード)
禁止
割込み要求許可ビット,ソフトウェアトリガビット
16ビットデッドタイマでアンダフローが発生されても割込みを
生成しない。
16ビットデッドタイマでアンダフローが発生されると割込みを
生成する。
割込み要求フラグビット
読出し
書込み
カウンタのアンダフローが
検出されない
カウンタのアンダフローが
検出される
このビットはクリアされる
このビットは影響を受けない
GATE信号制御ビット0
GTEN0
0
GATE信号は、RT0で制御されない(非同期モード)
1
GATE信号は、RT0で制御される(同期モード)
GATE信号制御ビット1
GTEN1
0
GATE信号は、RT1で制御されない(非同期モード)
1
GATE信号は、RT1で制御される(同期モード)
出力極性制御ビット
DMOD0
248
DTCR0
アドレス:0000C4H
初期値:00000000B
TMD2
その他
R/W:リード/ライト可能
:初期値
Bit8
0
通常極性出力
1
反転極性出力
第 11 章 多機能タイマ
表 11.4-11 16 ビットデッドタイマ制御レジスタ (DTCR0) (1 / 2)
ビット名
機能
• このビットは , デッドタイムタイマモードにおいて U/V/W の出力を
設定するために使用します。
DMOD0:
ビット 15 出力極性制御
ビット
GTEN1:
ビット 14 GATE 信号制御
ビット 1
GTEN0:
ビット 13 GATE 信号制御
ビット 0
• このビットを設定すると , U/V/W の出力極性は反転します。
( 注意事項 )
このビットは , デッドタイムタイマモードが選択されていない場合
(TMD2: ビット 10=0) は意味がありません。
このビットは , RT1 で PPG0 タイマの GATE 信号出力を制御するため
に使用します。
このビットは , RT0 で PPG0 タイマの GATE 信号出力を制御するため
に使用します。
• このビットは , 16 ビットデッドタイマの割込み要求フラグとして使
用します。
• このビットは , 16 ビットデッドタイマでアンダフローが発生すると
"1" が設定されます。
• このビットに "0" を書き込むと , このビットはクリアされます。"1"
TMIF0:
ビット 12 割込み要求
フラグビット
を書き込んでも , このビットは影響されません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
( 注意事項 )
このビットは , TMD2 ∼ TMD0: ビット 10 ∼ビット 8 が "000B" また
は "001B" の場合のみ機能し , ほかの値の場合は必ず "0" になります。
ソフトウェアクリア ("0" 書込み ) とハードウェアセット (16 ビット
デッドタイマ 0 でアンダフローが発生する ) が同時に発生した場合
は , ソフトウェアクリアがハードウェアセットよりも優先され , この
ビットはクリアされます。
• このビットは , 16 ビットデッドタイマのソフトウェアトリガビット
および割込み許可ビットとして使用します。
• TMD2 ∼ TMD0: ビット 10 ∼ビット 8 が "000B" または "001B" の場
合 , このビットは 16 ビットデッドタイマのソフトウェアトリガとし
TMIE0:
割込み要求許可
ビット 11 ビット , ソフト
ウェアトリガ
ビット
て使用されます。このビットを "0" から "1" へ変更すると , 16 ビッ
トデッドタイマのトリガとなり , 値がリロードされダウンカウント
が開始します。
• このビットが "1" であり , 割込み要求フラグビット (TMIF0: ビット
12) が "1" の場合 , 割込み要求が CPU へ送られます。
( 注意事項 )
16 ビットデッドタイマを再度トリガとする場合には , このビットに
"1" を書き込む前に必ず "0" を書き込んでください。
249
第 11 章 多機能タイマ
表 11.4-11 16 ビットデッドタイマ制御レジスタ (DTCR0) (2 / 2)
ビット名
機能
• これらのビットは , 波形ジェネレータの動作モードを選択するため
に使用します。
• TMD2 ∼ TMD0: ビット 10 ∼ビット 8 が "000B" の場合 , アウトプッ
トコンペアの RT0 と RT1 の信号は , RTO0 と RTO1 のそれぞれから
出力されます。また , 16 ビットデッドタイマはリロードタイマとし
ても使用することができます。
• TMD2 ∼ TMD0: ビット 10 ∼ビット 8 が "001B" の場合 , アウトプッ
トコンペアの RT0 と RT1 の信号は , PPG0 出力が禁止 (PPG 出力制
ビット 10 TMD2 ∼ TMD0:
ビット 9 動作モード
ビット 8 ビット
御 / インプットキャプチャ状態制御レジスタ上位 (PICSH01) の
PGEN0: ビット 10=0, PGEN1: ビット 11=0) になると , RTO0 と RTO1
のそれぞれから出力されます。また , 16 ビットデッドタイマはリ
ロードタイマとしても使用することができます。
( 注意事項 )
デッドタイムタイマモードで波形ジェネレータを動作させるには ,
必ず RT1 に対して 2 チャネルモード ( コンペア制御レジスタ上位
(OCSH1) の CMOD: ビット 12=1) を選択してください。
TMD2 ∼ TMD0: ビット 10 ∼ビット 8 が "111B" の場合 , RTO0 の出
力と RTO1 の出力は , PPG 出力制御 / インプットキャプチャ状態制
御レジスタ上位 (PICSH01) の PGEN0: ビット 10=0, PGEN1: ビット
11=0 の設定に依存しません。
250
第 11 章 多機能タイマ
■ 16 ビットデッドタイマ制御レジスタ (DTCR1)
16ビットデッドタイマ制御レジスタ
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
DMOD1
GTEN3
GTEN2
TMIF1
TMIE1
TMD5
TMD4
TMD3
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TMD5
TMD4
TMD3
0
0
0
波形ジェネレータが停止する
0
0
1
RT信号が"H"の間にPPG0タイマがパルスを出力する
0
1
0
1
0
0
1
1
1
動作モードビット
各RT信号の立上りエッジがトリガとなり
16ビットデッドタイマが起動する。
PPG0タイマは16ビットデッドタイマが
停止するまでパルスを出力する(タイマモード)
RT信号でノンオーバラップ信号を生成する
(デッドタイムタイマモード)
PPG0タイマでノンオーバラップ信号を生成する
(デッドタイムタイマモード)
その他
TMIE1
0
1
TMIF1
0
1
禁止
割込み要求許可ビット,ソフトウェアトリガビット
16ビットデッドタイマでアンダフローが発生されても割込みを
生成しない
16ビットデッドタイマでアンダフローが発生されると割込みを
生成する
割込み要求フラグビット
読出し
書込み
カウンタのアンダフローが
検出されない
カウンタのアンダフローが
検出される
このビットはクリアされる
このビットは影響を受けない
GATE信号制御ビット2
GTEN2
0
GATE信号はRT2で制御されない(非同期モード)
1
GATE信号はRT2で制御される(同期モード)
GATE信号制御ビット3
GTEN3
0
GATE信号はRT3で制御されない(非同期モード)
1
GATE信号はRT3で制御される(同期モード)
出力極性制御ビット
DMOD1
R/W:リード/ライト可能
:初期値
DTCR1
アドレス:0000C5H
初期値:00000000B
0
通常極性出力
1
反転極性出力
251
第 11 章 多機能タイマ
表 11.4-12 16 ビットデッドタイマ制御レジスタ (DTCR1) (1 / 2)
ビット名
機能
• このビットは , デッドタイムタイマモードにおいて U/V/W の出力を
設定するために使用します。
ビット 7
DMOD1:
出力極性制御
ビット
• このビットを設定すると , U/V/W の出力極性は反転します。
( 注意事項 )
このビットは , デッドタイムタイマモードが選択されていない場合
(TMD5: ビット 2=0) は意味がありません。
このビットは , RT3 で PPG0 タイマの GATE 信号出力を制御するために
ビット 6
GTEN3:
GATE 信号制御
ビット 3
ビット 5
GTEN2:
GATE 信号制御
ビット 2
使用します。
このビットは , RT2 で PPG0 タイマの GATE 信号出力を制御するために
使用します。
• このビットは , 16 ビットデッドタイマの割込み要求フラグとして使
用します。
• このビットは , 16 ビットデッドタイマでアンダフローが発生すると
"1" が設定されます。
• このビットに "0" を書き込むと , このビットはクリアされます。"1"
ビット 4
TMIF1:
割込み要求
フラグビット
を書き込んでも , このビットは影響されません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
( 注意事項 )
このビットは , (TMD5 ∼ TMD3: ビット 2 ∼ビット 0) が "000B" また
は "001B" の場合のみ機能し , ほかの値の場合は必ず "0" になります。
ソフトウェアクリア ("0" 書込み ) とハードウェアセット (16 ビット
デッドタイマ 1 でアンダフローが発生する ) が同時に発生した場合は ,
ソフトウェアクリアがハードウェアセットよりも優先され , このビッ
トはクリアされます。
• このビットは , 16 ビットデッドタイマのソフトウェアトリガビット
および割込み許可ビットとして使用します。
• TMD5 ∼ TMD3: ビット 2 ∼ビット 0 が "000B" または "001B" の場合 ,
このビットは 16 ビットデッドタイマのソフトウェアトリガとして使
ビット 3
TMIE1:
割込み要求許可
ビット ,
ソフトウェア
トリガビット
•
用されます。このビットを "0" から "1" へ変更すると , 16 ビットデッ
ドタイマのトリガとなり , 値がリロードされダウンカウントが開始
します。
このビットが "1" であり , 割込み要求フラグビット (TMIF1: ビット 4)
が "1" の場合 , 割込み要求が CPU へ送られます。
( 注意事項 )
16 ビットデッドタイマを再度トリガとする場合には , このビットに
"1" を書き込む前に必ず "0" を書き込んでください。
252
第 11 章 多機能タイマ
表 11.4-12 16 ビットデッドタイマ制御レジスタ (DTCR1) (2 / 2)
ビット名
機能
• これらのビットは , 波形ジェネレータの動作モードを選択するため
に使用します。
• TMD5 ∼ TMD3: ビット 2 ∼ビット 0 が "000B" の場合 , アウトプット
コンペアの RT2 と RT3 の信号は , RTO2 と RTO3 のそれぞれから出
力されます。また , 16 ビットデッドタイマはリロードタイマとして
も使用することができます。
• TMD5 ∼ TMD3: ビット 2 ∼ビット 0 が "001B" の場合 , アウトプット
コンペアの RT2 と RT3 の信号は , PPG0 出力が禁止 (PPG 出力制御 /
ビット 2
ビット 1
ビット 0
TMD5 ∼
TMD3:
動作モード
ビット
インプットキャプチャ状態制御レジスタ上位 (PICSH01) の PGEN2:
ビット 12=0, PGEN3: ビット 13=0) になると , RTO2 と RTO3 のそれぞ
れから出力されます。また , 16 ビットデッドタイマはリロードタイ
マとしても使用することができます。
( 注意事項 )
デッドタイムタイマモードで波形ジェネレータを動作させるには , 必
ず RT3 に対して 2 チャネルモード ( コンペア制御レジスタ上位
(OCSH3) の CMOD: ビット 12=1) を選択してください。
TMD5 ∼ TMD3: ビット 2 ∼ビット 0 が "111B" の場合 , RTO2 の出力
と RTO3 の出力は , PPG 出力制御 / インプットキャプチャ状態制御レ
ジスタ上位 (PICSH01) の PGEN2: ビット 12=0, PGEN3: ビット 13=0 の
設定に依存しません。
253
第 11 章 多機能タイマ
■ 16 ビットデッドタイマ制御レジスタ (DTCR2)
16ビットデッドタイマ制御レジスタ
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
DMOD2
GTEN5
GTEN4
TMIF2
TMIE2
TMD8
TMD7
TMD6
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TMD8
TMD7
TMD6
0
0
0
波形ジェネレータが停止する
0
0
1
RT信号が"H"の間にPPG0タイマがパルスを出力する
各RT信号の立上りエッジがトリガとなり
16ビットデッドタイマが起動する。
PPG0タイマは16ビットデッドタイマが
停止するまでパルスを出力する(タイマモード)
0
1
0
1
0
0
1
1
1
動作モードビット
RT信号でノンオーバラップ信号を生成する
(デッドタイムタイマモード)
PPG0タイマでノンオーバラップ信号を生成する
(デッドタイムタイマモード)
その他
TMIE2
0
1
TMIF2
0
1
禁止
割込み要求許可ビット,ソフトウェアトリガビット
16ビットデッドタイマでアンダフローが発生されても割込みを
生成しない
16ビットデッドタイマでアンダフローが発生されると割込みを
生成する
割込み要求フラグビット
読出し
このビットはクリアされる
このビットは影響を受けない
GATE信号制御ビット4
0
GATE信号はRT4で制御されない(非同期モード)
1
GATE信号はRT4で制御される(同期モード)
GATE信号制御ビット5
GTEN5
0
GATE信号はRT5で制御されない(非同期モード)
1
GATE信号はRT5で制御される(同期モード)
出力極性制御ビット
DMOD2
254
書込み
カウンタのアンダフローが
検出されない
カウンタのアンダフローが
検出される
GTEN4
R/W:リード/ライト可能
:初期値
DTCR2
アドレス:0000C6H
初期値:00000000B
0
通常極性出力
1
反転極性出力
第 11 章 多機能タイマ
表 11.4-13 16 ビットデッドタイマ制御レジスタ (DTCR2) (1 / 2)
ビット名
機能
• このビットは , デッドタイムタイマモードにおいて U/V/W の出力を
設定するために使用します。
DMOD2:
ビット 15 出力極性制御
ビット
• このビットを設定すると , U/V/W の出力極性は反転します。
( 注意事項 )
このビットは , デッドタイムタイマモードが選択されていない場合
(TMD8: ビット 10=0) は意味がありません。
このビットは , RT5 で PPG0 タイマの GATE 信号出力を制御するために
GTEN5:
ビット 14 GATE 信号制御
ビット 5
使用します。
このビットは , RT4 で PPG0 タイマの GATE 信号出力を制御するために
GTEN4:
ビット 13 GATE 信号制御
ビット 4
使用します。
• このビットは , 16 ビットデッドタイマの割込み要求フラグとして使
用します。
• このビットは , 16 ビットデッドタイマでアンダフローが発生すると
"1" が設定されます。
• このビットに "0" を書き込むと , このビットはクリアされます。"1"
TMIF2:
ビット 12 割込み要求
フラグビット
を書き込んでも , このビットは影響されません。
• リードモディファイライト時は , 必ず "1" が読み出されます。
( 注意事項 )
このビットは , TMD8 ∼ TMD6: ビット 10 ∼ビット 8 が "000B" または
"001B" の場合のみ機能し , ほかの値の場合は必ず "0" になります。
ソフトウェアクリア ("0" 書込み ) とハードウェアセット (16 ビット
デッドタイマ 2 でアンダフローが発生する ) が同時に発生した場合は ,
ソフトウェアクリアがハードウェアセットよりも優先され , このビッ
トはクリアされます。
• このビットは , 16 ビットデッドタイマのソフトウェアトリガビット
および割込み許可ビットとして使用します。
• TMD8 ∼ TMD6: ビット 10 ∼ビット 8 が "000B" または "001B" の場合
TMIE2:
割込み要求許可
ビット ,
ビット 11
ソフト
ウェアトリガ
•
ビット
, このビットは 16 ビットデッドタイマのソフトウェアトリガとして
使用されます。このビットを "0" から "1" へ変更すると , 16 ビット
デッドタイマのトリガとなり , 値がリロードされ , ダウンカウントが
開始します。
このビットが"1"であり, 割込み要求フラグビット (TMIF2: ビット12)
が "1" の場合 , 割込み要求が CPU へ送られます。
( 注意事項 )
16 ビットデッドタイマを再度トリガとする場合には , このビットに
"1" を書き込む前に必ず "0" を書き込んでください。
255
第 11 章 多機能タイマ
表 11.4-13 16 ビットデッドタイマ制御レジスタ (DTCR2) (2 / 2)
ビット名
機能
• これらのビットは , 波形ジェネレータの動作モードを選択するため
に使用します。
• TMD8 ∼ TMD6: ビット 10 ∼ビット 8 が "000B" の場合 , アウトプッ
トコンペアの RT4 と RT5 の信号は , RTO4 と RTO5 のそれぞれから
出力されます。また , 16 ビットデッドタイマはリロードタイマとし
ても使用することができます。
• TMD8 ∼ TMD6: ビット 10 ∼ビット 8 が "001B" の場合 , アウトプッ
トコンペアの RT4 と RT5 の信号は , PPG0 出力が禁止 (PPG 出力制御
ビット 10 TMD8 ∼
TMD6:
ビット 9
動作モード
ビット 8
ビット
/ インプットキャプチャ状態制御レジスタ上位 (PICSH01) の PGEN4:
ビット 14=0, PGEN5: ビット 15=0) になると , RTO4 と RTO5 のそれぞ
れから出力されます。また , 16 ビットデッドタイマはリロードタイ
マとしても使用することができます。
( 注意事項 )
デッドタイムタイマモードで波形ジェネレータを動作させるには , 必
ず RT5 に対して 2 チャネルモード ( コンペア制御レジスタ上位
(OCSH5) の CMOD: ビット 12=1) を選択してください。
TMD8 ∼ TMD6: ビット 10 ∼ビット 8 が "111B" の場合 , RTO4 の出力
と RTO5 の出力は , PPG 出力制御 / インプットキャプチャ状態制御レ
ジスタ上位 (PICSH01) の PGEN4: ビット 14=0, PGEN5: ビット 15=0 の
設定に依存しません。
256
第 11 章 多機能タイマ
11.4.12
波形制御レジスタ (SIGCR1, SIGCR2)
波形制御レジスタは , 動作クロック周波数 , ノイズキャンセル機能有効 , DTTI 入力
有効および DTTI 割込みを制御するために使用します。
■ 波形制御レジスタ 1 (SIGCR1)
波形制御レジスタ1
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
DTIE
DTIF
NRSL
DCK2
DCK1
DCK0
NWS1
NWS0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
NWS1
NWS0
0
0
4サイクルノイズをキャンセル
DTTIノイズ幅選択ビット
0
1
8サイクルノイズをキャンセル
1
0
16サイクルノイズをキャンセル
1
1
32サイクルノイズをキャンセル
DCK2
DCK1
DCK0
0
0
0
φ (62.5 ns, φ=16 MHz)
0
0
1
φ/2 (125 ns, φ=16 MHz)
0
1
0
φ/4 (250 ns, φ=16 MHz)
0
1
1
φ/8 (500 ns, φ=16 MHz)
1
0
0
φ/16 (1 ms, φ=16 MHz)
1
0
1
φ/32 (2 ms, φ=16 MHz)
1
1
0
φ/64 (4 ms, φ=16 MHz)
1
1
1
禁止
NRSL
動作クロック選択ビット
ノイズキャンセル機能有効ビット
0
DTTI入力のノイズキャンセル回路が無効
1
DTTI入力のノイズキャンセル回路が有効
DTIF
DTTI割込みフラグビット
読出し
書込み
0
割込み要求なし
このビットはクリアされる
1
割込み要求あり
このビットは影響を受けない
DTIE
R/W:リード/ライト可能
:初期値
SIGCR1
アドレス:0000C9H
初期値:00000000B
DTTI入力有効ビット
0
DTTI入力を無効にする
1
DTTI入力を有効にする
257
第 11 章 多機能タイマ
表 11.4-14 波形制御レジスタ 1 (SIGCR1)
ビット名
ビット 7
DTIE:
DTTI 入力有効
ビット
機能
このビットは , RTO0 ∼ RTO5 端子の出力レベル制御用 DTTI 信号を有
効にするために使用します。
• このビットは , DTTI の割込みフラグです。
• DTTI 入力が有効になり (DTIE: ビット 7=1) , DTTI の "L" レベルが検
出されると, このビットが設定され, 割込み要求がCPUへ送られます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
ビット 6
DTIF:
DTTI 割込み
フラグビット
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト時では , 必ず "1" が読み出されます。
( 注意事項 )
ノイズキャンセル機能が有効になった場合 (NRSL: ビット 5=1) , ノイ
ズパルス幅が渡されると , このビットには "1" が設定されます。
ソフトウェアクリア ("0" 書込み ) とハードウェアセット (DTTI の "L"
レベル検出 ) が同時に発生した場合は , ソフトウェアクリアがハード
ウェアセットよりも優先され , このビットはクリアされます。
• このビットは , ノイズキャンセル機能を有効にするために使用します。
• ノイズキャンセル回路は , カウンタでオーバフローが発生するまで
"L" レベルが保持されると , DTTI 入力信号を受け取ります。カウンタ
ビット 5
は , "L" レベル入力で操作される n ビットカウンタです。n は , NWS1,
NRSL:
NWS0 ビット : 1, 0 の設定に基づいて 2, 3, 4 または 5 のいずれかの値
ノイズ
になります。
キャンセル
機能有効ビット ( 注意事項 )
ノイズパルス幅をキャンセルするには , 約 2n マシンサイクルが必要
になります。
ノイズキャンセル回路を選択すると , 内部クロックが停止するモード
( 停止モードなど ) 時は入力が無効になります。
ビット 4
ビット 3
ビット 2
DCK2 ∼ DCK0: これらのビットは , 16 ビットデッドタイマの動作クロックを選択するた
動作クロック
めに使用します。
選択ビット
ビット 1
ビット 0
NWS1, NWS0:
DTTI ノイズ幅
選択ビット
258
これらのビットは , 除去する DTTI 端子ノイズパルス幅を選択するため
に使用します。
第 11 章 多機能タイマ
■ 波形制御レジスタ 2 (SIGCR2)
波形制御レジスタ2
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
-
-
-
-
-
-
-
DTTI
-
-
-
-
-
-
-
R/W
DTTI
R/W:リード/ライト可能
:初期値
- :未使用ビット
SIGCR2
アドレス:0000CBH
初期値:XXXXXXX1B
ソフトDTTI設定ビット
1
DTTIクリア
0
DTTIセット
表 11.4-15 波形制御レジスタ 2 (SIGCR2)
ビット名
ビット 7
∼
ビット 1
未使用ビット
ビット 0
DTTI:
ソフト DTTI
設定ビット
機能
• 読出し値は不定です。
• このビットへの書込みは動作に影響しません。
• "0" を書き込むと , DTTI のセットとなります。
• "1" を書き込むとクリアされます。
( 注意事項 )
外部入力 DTTI と OR をとっているため , DTTI は外部入
力レベルによります。
259
第 11 章 多機能タイマ
11.4.13
A/D 起動コンペアレジスタ
(ADCOMP0, ADCOMP1, ADCOMP2, ADCOMPC)
コンペアレジスタ 0, 1, 2 は , フリーランタイマの値と一致したときに A/D コンバー
タ 0, 1, 2 を起動させます。コンペアレジスタは , コンペア値を書き込むために使用
します。制御レジスタは , コンペア一致時の A/D コンバータへの起動要求の許可ま
たは禁止を行います。
■ コンペアレジスタ 0, 1, 2 (ADCOMP0, ADCOMP1, ADCOMP2)
ADCOMP0/
ADCOMP1/ADCOMP2
コンペアレジスタレジスタ 0,1,2( 上位 )
ビット 7 ビット 6 ビット 5 ビット 4 ビット 3 ビット 2 ビット 1
ビット 0
CMP15 CMP14 CMP13 CMP12 CMP11 CMP10 CMP09 CMP08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス :
ch.0: 0000CCH
ch.1: 0000CEH
ch.2: 0000D0H
初期値:00000000B
コンペアレジスタレジスタ 0,1,2( 下位 )
ビット 7 ビット 6 ビット 5 ビット 4 ビット 3 ビット 2 ビット 1
ビット 0
CMP07 CMP06 CMP05 CMP04 CMP03 CMP02 CMP01 CMP00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値:00000000B
R/W:リード / ライト可能
コンペアレジスタは , 16 ビットフリーランタイマのカウント値と比較するためのデー
タを書き込むレジスタで , フリーランタイマとコンペア値が一致したときに , A/D コン
バータを起動させることができます。
コンペアレジスタに書き込まれた値は , すぐに比較動作されます。
コンペアレジスタへの書込みは , ワードもしくはハーフワード命令で行ってください。
260
第 11 章 多機能タイマ
■ 制御レジスタ (ADCOMPC)
制御レジスタ
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
-
-
-
-
-
CE2
CE1
CE0
-
-
-
-
-
R/W
R/W
R/W
CE0
A/D0コンペア起動許可ビット
0
コンペア禁止
1
コンペア許可
CE1
A/D1コンペア起動許可ビット
0
コンペア禁止
1
コンペア許可
CE2
R/W:リード/ライト可能
:初期値
- :未使用ビット
ADCOMPC
アドレス:0000D3H
初期値:XXXXX000B
A/D2コンペア起動許可ビット
0
コンペア禁止
1
コンペア許可
表 11.4-16 制御レジスタ (ADCOMPC)
ビット名
機能
ビット 7
∼
ビット 3
未使用ビット
• 読出し値は不定です。
ビット 2
• このビットに "1" を書き込むと , コンペア一致時に A/D ユニット 2 に
CE2:
対して起動要求を出力します。
A/D2 コンペア
起動許可ビット • このビットに "0" を書き込むと , コンペア禁止となります。
ビット
1VVVV
• このビットに "1" を書き込むと , コンペア一致時に A/D ユニット 1 に
CEI:
対して起動要求を出力します。
A/D1 コンペア
起動許可ビット • このビットに "0" を書き込むと , コンペア禁止となります。
ビット 0
• このビットに "1" を書き込むと , コンペア一致時に A/D ユニット 0 に
CE0:
対して起動要求を出力します。
A/D0 コンペア
起動許可ビット • このビットに "0" を書き込むと , コンペア禁止となります。
• このビットへの書込みは動作に影響しません。
261
第 11 章 多機能タイマ
11.5
多機能タイマ割込み
多機能タイマは , 16 ビットフリーランタイマ割込み , 16 ビットアウトプットコンペ
ア割込み , 16 ビットインプットキャプチャ割込みおよび波形ジェネレータ割込みを
生成することができます。
■ 16 ビットフリーランタイマ割込み
16 ビットフリーランタイマの割込み制御ビットと割込み要因を表 11.5-1 に示します。
表 11.5-1 16 ビットフリーランタイマの割込み制御ビットと割込み要因
16 ビットフリーランタイマ
コンペアクリア
ゼロ検出
割込み要求フラグビット
タイマ状態レジスタ上位 (TCCSH)
の ICLR: ビット 9
タイマ状態レジスタ上位 (TCCSH)
の IRQZF: ビット 14
割込み要求許可ビット
タイマ状態レジスタ上位 (TCCSH)
の ICRE: ビット 8
タイマ状態レジスタ上位 (TCCSH)
の IRQZE: ビット 13
割込み要因
16 ビットフリーランタイマ値が
コンペアクリアレジスタ
(CPCLRH, CPCLRL) と一致する
16 ビットフリーランタイマ値が
"0" になる
16 ビットフリーランタイマの値がコンペアクリアレジスタ (CPCLRH, CPCLRL) と一
致すると , タイマ状態レジスタ (TCCSH) の ICLR: ビット 9 に "1" が設定されます。こ
の状態において割込み要求が許可 (TCCSH レジスタの ICRE: ビット 8=1) になると , 割
込み要求が割込みコントローラへ出力されます。
タイマ値が "0000H" になると , タイマ状態制御レジスタ (TCCSH) の IRQZF: ビット 14
に "1" が設定されます。この状態において割込み要求が許可 (TCCSH レジスタの IRQZE:
ビット 13=1) になると , 割込み要求が割込みコントローラへ出力されます。
262
第 11 章 多機能タイマ
■ 16 ビットアウトプットコンペア割込み
16 ビットアウトプットコンペアの割込み制御ビットと割込み要因を表 11.5-2 に示しま
す。
表 11.5-2 16 ビットアウトプットコンペア 0 ∼ 5 の割込み制御ビットと割込み要因
16 ビットアウトプット
コンペア 0, 1
16 ビットアウトプット
コンペア 2, 3
16 ビットアウトプット
コンペア 4, 5
割込み要求
フラグビット
コンペア制御レジスタ下 コンペア制御レジスタ下 コンペア制御レジスタ下
位 (OCSL0) の IOP1, IOP0 位 (OCSL2) の IOP1, IOP0 位 (OCSL4) の IOP1, IOP0
( ビット 7, ビット 6)
( ビット 7, ビット 6)
( ビット 7, ビット 6)
割込み要求許可
ビット
コンペア制御レジスタ下 コンペア制御レジスタ下 コンペア制御レジスタ下
位 (OCSL0) の IOE1, IOE 位 (OCSL2) のIOE1, IOE0 位 (OCSL4) のIOE1, IOE0
0 ( ビット 5, ビット 4)
( ビット 5, ビット 4)
( ビット 5, ビット 4)
割込み要因
16 ビットフリーランタイ
マ値がアウトプットコン
ペアレジスタ (OCCPH0,
OCCPH1, OCCPL0,
OCCPL1) と一致する
16 ビットフリーランタイ
マ値がアウトプットコン
ペアレジスタ (OCCPH2,
OCCPH3, OCCPL2,
OCCPL3) と一致する
16 ビットフリーランタイ
マ値がアウトプットコン
ペアレジスタ (OCCPH4,
OCCPH5, OCCPL4,
OCCPL5) と一致する
16 ビットフリーランタイマ値がアウトプットコンペアレジスタ (OCCPH0 ∼ OCCPH5,
OCCPL0 ∼ OCCPL5) と一致 する と , コ ンペア 制御 レジ スタ 下位 (OCSL0, OCSL2,
OCSL4) の IOP1, IOP0: ビット 7, ビット 6 が "1" に設定されます。この状態において割
込み要求が許可 (OCSL0, OCSL2, OCSL4レジスタのIOE1, IOE0: ビット5, ビット4=11B)
になると , 割込み要求が割込みコントローラへ出力されます。
263
第 11 章 多機能タイマ
■ 16 ビットインプットキャプチャ割込み
16 ビットインプットキャプチャの割込み制御ビットと割込み要因を表 11.5-3 に示しま
す。
表 11.5-3 16 ビットインプットキャプチャ 0 ∼ 3 の割込み制御ビットと割込み要因
16 ビットインプットキャプチャ
0, 1
16 ビットインプットキャプチャ
2, 3
割込み要求フラグビット
インプットキャプチャ状態制御
レジスタ下位 (PICSL01) の ICP1,
ICP0 ( ビット 7, ビット 6)
インプットキャプチャ状態制御
レジスタ下位 (ICSL23) の ICP3,
ICP2 ( ビット 7, ビット 6)
割込み要求許可ビット
インプットキャプチャ状態制御
レジスタ下位 (PICSL01) の ICE1,
ICE0 ( ビット 5, ビット 4)
インプットキャプチャ状態制御
レジスタ下位 (ICSL23) の ICE3,
ICE2 ( ビット 5, ビット 4)
割込み要因
有効なエッジが IC0, IC1 端子で検
出される
有効なエッジが IC2, IC3 端子で検
出される
16 ビットインプットキャプチャでは , 有効なエッジが IC0, IC1, IC2, IC3 端子で検出さ
れると , インプットキャプチャ状態制御レジスタ (PICSL01, ICSL23) の ICP3, ICP2,
ICP1, ICP0: 共にビット 7, ビット 6 に "11B" が設定されます。この状態において割込み
要求が許可 (PICSL01, ICSL23 レジスタの ICE3, ICE2, ICE1, ICE0: 共にビット 5, ビット
4=11B) になると , 割込み要求は割込みコントローラへ出力されます。
264
第 11 章 多機能タイマ
■ 波形ジェネレータ割込み
波形ジェネレータの割込み制御ビットと割込み要因を表 11.5-4 に示します。
表 11.5-4 波形ジェネレータの割込み制御ビットと割込み要因
波形ジェネレータ
16 ビットデッドタイマ 0, 1, 2
DTTI0
割込み要求フラグビット
16 ビットデッドタイマ制御レジス
タ上位 , 下位 (DTCR0, DTCR1,
DTCR2) の TMIF0 ∼ TMIF2 ( 上位
はビット 12, 下位はビット 4)
波形制御レジスタ 1 (SIGCR1) の
DTIF ( ビット 6)
割込み要求許可ビット
16 ビットデッドタイマ制御レジス
タ上位 , 下位 (DTCR0, DTCR1,
DTCR2) の TMIE0 ∼ TMIE2 ( 上位
はビット 11, 下位はビット 3)
割込み要因
16 ビットデッドタイマ 0, 1, 2 アン
ダフロー
−
DTTI で "L" レベルが検出される
波形ジェネレータでは , 16 ビットデッドタイマのアンダフローが発生し , かつ DTCR0,
DTCR1, DTCR2 レジスタの TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位はビッ
ト 2 ∼ビット 0) が "000B" または "001B" のとき , 16 ビットデッドタイマ制御レジスタ
(DTCR0, DTCR1, DTCR2) の TMIF0 ∼ TMIF2 ( 上位ビット 12, 下位ビットは 4) には "1"
が設定されます。この状態において割込み要求が許可 (DTCR0, DTCR1, DTCR2, レジス
タの TMIE0 ∼ TMIE2 ( 上位はビット 11, 下位はビット 3) =1) になると , 割込み要求は
割込みコントローラへ出力されます。
265
第 11 章 多機能タイマ
11.6
多機能タイマの動作
多機能タイマの動作について説明します。
■ 多機能タイマの動作
● 16 ビットフリーランタイマ
16 ビットフリーランタイマはカウント動作を許可すると , タイマデータレジスタ
(TCDTH, TCDTL) に設定されている値からカウントアップを開始します。カウント値
は , 16 ビットアウトプットコンペアと 16 ビットインプットキャプチャの基準時間とし
て使用されます。
● 16 ビットアウトプットコンペア
16 ビットアウトプットコンペアは , " 指定されたアウトプットコンペアレジスタに設定
されている値 " と "16 ビットフリーランタイマ値 " の比較に使用します。一致が検出さ
れた場合は , 割込みフラグが設定され出力レベルは反転します。
● 16 ビットインプットキャプチャ
16 ビットインプットキャプチャは , 指定された有効なエッジを検出するために使用し
ます。
有効なエッジが検出されると, 割込みフラグが設定され, 16ビットフリーランタイマ値
が取り出され , インプットキャプチャデータレジスタへ格納されます。
● 波形ジェネレータ
波形ジェネレータは , リアルタイム出力 (RTO0 ∼ RTO5) , 16 ビット PPG タイマ 0, 16
ビットデッドタイマを使用してさまざまな波形 ( デッドタイムを含む ) を生成します。
● A/D 起動コンペア
16 ビットフリーランタイマの値が指示値となったときに , A/D 起動を行います。
266
第 11 章 多機能タイマ
11.6.1
16 ビットフリーランタイマの動作
16 ビットフリーランタイマは , リセット完了後 , タイマデータレジスタ (TCDTH,
TCDTL) に設定されている値からカウントアップを開始します。カウント値は , 16
ビットアウトプットコンペアと 16 ビットインプットキャプチャの基準時間として使
用されます。
■ タイマクリア
16 ビットフリーランタイマのカウント値は , 下記のいずれかの場合にクリアされます。
• アップカウントモード (TCCSL レジスタの MODE: ビット 5=0) によってコンペア
クリアレジスタとの一致が検出された場合
• 動作中に TCCSL レジスタの SCLR: ビット 4 に "1" が書き込まれた場合
• 停止中に TCDTH, TCDTL レジスタに "0000H" が書き込まれた場合
• リセットされた場合
リセットされると , カウンタは直ちにクリアされます。コンペアクリアレジスタとの一
致が発生した場合は , カウンタはカウントタイミングと同期してクリアされます。
図 11.6-1 16 ビットフリーランタイマのクリアタイミング
コンペアクリア
レジスタ値
N
コンペア一致
カウント値
N
0000H
■ タイマモード
16 ビットフリーランタイマでは , 以下のどちらかのモードを選択できます。
• アップカウントモード (TCCSL レジスタの MODE: ビット 5=0)
• アップダウンカウントモード (TCCSL レジスタの MODE: ビット 5=1)
アップカウントモード時は , カウンタは事前に設定されているタイマデータレジスタ
(TCDTH, TCDTL) からカウントを開始し , カウント値がコンペアクリアレジスタ
(CPCLRH, CPCLRL) の値と一致するまでカウントアップし , 次にカウンタは "0000H"に
クリアされた後 , 次に再びカウントアップします。
アップダウンカウントモード時は , カウンタは事前に設定されているタイマデータレ
ジスタ (TCDTH, TCDTL) からカウントを開始し , カウント値がコンペアクリアレジス
タ (CPCLRH, CPCLRL) の値と一致するまでカウントアップし , 次にカウントがアップ
カウントからダウンカウントに変わり , カウンタ値が "0000H" に達するまでカウントダ
ウンした後 , 再びカウントアップします。
モードビット (TCCSL レジスタの MODE: ビット 5) には , タイマが動作中であろうと停
止していようと , いつでも値を書き込むことができます。タイマ動作中にこのビットに
267
第 11 章 多機能タイマ
書き込まれた値はバッファに入れられ , カウントモードはタイマ値が "0000H" になると
変わります。
図 11.6-2 タイマ動作中にタイマモードを変える
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
リセット
時間
タイマ動作開始
アップカウントモードに変わる
アップダウンカウントモードに変わる
コンペアクリア
BFFFH
バッファレジスタ
TCCSL:MODE
■ コンペアクリアバッファ
コンペアクリアレジスタ (CPCLRH, CPCLRL) には , 有効または無効にすることができ
るバッファ機能が存在します。バッファ機能が有効 (TCCSL レジスタの BFE: ビット
7=1) の場合は , コンペアクリアバッファレジスタ (CPCLRBH, CPCLRBL) に書き込ま
れたデータは , 16 ビットフリーランタイマ値 "0" が検出されると CPCLRH, CPCLRL レ
ジスタに転送されます。バッファ機能が無効 (TCCSL ビットの BFE: ビット 7=0) の場
合は , CPCLRBH, CPCLRBL レジスタは透過であり , データは CPCLRH, CPCLRL レジ
スタに直接書き込むことができます。
268
第 11 章 多機能タイマ
図 11.6-3 コンペアクリアバッファが無効 (TCCSL レジスタ BFE: ビット 7=0) 時のアップカウント
モードによる動作
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
タイマ動作開始
コンペアクリア一致
ゼロ検出
リセット
コンペアクリア
バッファレジスタ
コンペアクリア
BFFFH
7FFFH
FFFFH
BFFFH
7FFFH
FFFFH
レジスタ
図 11.6-4 コンペアクリアバッファが有効 (TCCSL レジスタ BFE: ビット 7=1) 時のアップカウント
モードによる動作
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
タイマ動作開始
コンペアクリア一致
ゼロ検出
リセット
コンペアクリア
バッファレジスタ
コンペアクリア
BFFFH
FFFFH
7FFFH
BFFFH
7FFFH
レジスタ
FFFFH
図 11.6-5 コンペアクリアバッファが有効 (TCCSL レジスタ BFE: ビット 7=1) 時のアップダウン
カウントモードによる動作
カウント値
コンペアクリア一致
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
タイマ動作開始
ゼロ検出
リセット
コンペアクリア
バッファレジスタ
コンペアクリア
BFFFH
BFFFH
7FFFH
FFFFH
7FFFH
FFFFH
レジスタ
269
第 11 章 多機能タイマ
■ タイマ割込み
16 ビットフリーランタイマでは , 以下の 2 つの割込みを発生できます。
• コンペアクリア割込み
• ゼロ検出割込み
コンペアクリア割込みは , タイマ値がコンペアクリアレジスタ (CPCLRH, CPCLRL) の
値と一致すると発生されます。
ゼロ検出割込みは , タイマ値が "0000H" に達すると発生されます。
<注意事項>
• タイマカウントクロックがマシンサイクル (φ) の場合
ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をしても , ゼロ検出割込みフラグは
セットされず , ゼロ検出割込みは発生しません。
• タイマカウントクロックがマシンサイクル (φ) の分周の場合
ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をすると , ゼロ検出割込みフラグは
セットされ , 割込み許可の場合 , ゼロ検出割込みが発生します。
図 11.6-6 アップカウントモード (TCCSL レジスタ MODE:ビット 5=0) で生成された割込み
N-1
カウント値
N
0
1
コンペアクリア割込み
ゼロ検出割込み
図 11.6-7 アップダウンカウントモード (TCCSL レジスタ MODE:ビット 5=1) で生成された割込み
N-1
カウント値
N
N-1
0
コンペアクリア割込み
ゼロ検出割込み
■ 割込みマスク機能
TCCSH レジスタの MSI2 ∼ MSI0: ビット 12 ∼ビット 10 を設定すると , 割込み要求を
マスクすることができます。MSI2 ∼ MSI0 ビットは , カウント値が "000B" に達すると
値をリロードする 3 ビットリロードダウンカウンタです。カウント値は , MSI2 ∼ MSI0
ビットに直接書き込むことによってもロードすることができます。マスクカウントは ,
MSI2 ∼ MSI0 ビットに設定された値です。MSI2 ∼ MSI0 ビットが "000B" になると割
込み要因はマスクされません。
割込み要因は , カウントモード (TCCSL レジスタの MODE: ビット 5) によって異なりま
す。アップカウントモード時は , コンペアクリア割込みのみをマスクすることができ ,
ゼロ検出割込みは "0" が検出されるたびに発生されます。アップダウンカウントモー
ド時は , ゼロ検出割込みのみをマスクすることができ , コンペアクリア割込みはコンペ
アクリアが検出されるたびに発生されます。
270
第 11 章 多機能タイマ
<注意事項>
• タイマカウントクロックがマシンサイクル (φ) の場合
ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をしても , ゼロ検出割込みフラグは
セットされず , ゼロ検出割込みは発生しません。
• タイマカウントクロックがマシンサイクル (φ) の分周の場合
ソフトウェアクリア (TCCSL: ビット 4 SCLR=1) をすると , ゼロ検出割込みフラグは
セットされ , 割込み許可の場合 , ゼロ検出割込みが発生します。
図 11.6-8 アップカウントモードでマスクされるコンペアクリア割込み
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
タイマ動作開始
1回目
3回目
2回目
4回目
リセット
ゼロ検出
割込み
ソフトウェアクリア
TCCSH:MSI2~MSI0=000B
コンペアクリア TCCSH:MSI2~MSI0=001B
割込み
TCCSH:MSI2~MSI0=010B
注意事項:ゼロ検出割込みとコンペアクリア割込みの両方はソフトウェアによりクリアされます。
図 11.6-9 アップダウンカウントモードでマスクされるゼロ検出割込み
カウント値
FFFFH
1回目
2回目
3回目
4回目
5回目
6回目
BFFFH
7FFFH
3FFFH
0000H
時間
タイマ動作開始
1回目
2回目
3回目
4回目
5回目
6回目
リセット
コンペアクリア
割込み
ソフトウェアクリア
TCCSH:MSI2~MSI0=000B
ゼロ検出
割込み
TCCSH:MSI2~MSI0=001B
TCCSH:MSI2~MSI0=010B
注意事項:ゼロ検出割込みとコンペアクリア割込みの両方はソフトウェアによりクリアされます。
271
第 11 章 多機能タイマ
■ 選択された外部カウントクロック
16 ビットフリーランタイマは , 入力クロック ( 内部クロックまたは外部クロック ) に基
づいてインクリメントされます。外部クロックが選択されると , 外部クロックモード
(TCCSH レジスタの ECKE: ビット 15=1) が選択された後 , 16 ビットフリーランタイマ
は , 外部入力の初期値が "1" の場合 , 立上りエッジでカウントアップを開始します。そ
の後は両エッジでカウントアップします。外部入力の初期値が "0" の場合 , 立下りエッ
ジでカウントアップを開始します。その後は両エッジでカウントアップします。
図 11.6-10 16 ビットフリーランタイマのカウントタイミング
外部クロック入力
TCCSH:ECKEビット
カウントクロック
N
カウント値
N+1
N+2
■ フリーランタイマによる A/D 起動
16 ビットフリーランタイマのコンペア一致時 , もしくはゼロ検出時に A/D1 および A/D2
の起動が可能です。起動要因は , A/D トリガ制御レジスタ (ADTRGC) の A/D トリガ要
因選択ビット (SEL1, SEL2: ビット 2, ビット 3) で選択することが可能です。
A/D 起動信号は , A/D トリガ制御レジスタ (ADTRGC) の A/D トリガ出力許可 / 禁止ビッ
ト (AD1E, AD2E: ビット 0, ビット 1) により , コンペア一致時 , もしくはゼロ検出時で
も A/D 起動信号を停止することが可能です。
<注意事項>
A/D 起動信号の出力を禁止しているときに , 起動要因のコンペア一致 , もしくはゼロ検出
が出力されている場合 , A/D 起動信号の出力を許可すると , 許可と同時に A/D 起動信号が
出力されます。
272
第 11 章 多機能タイマ
11.6.2
16 ビットアウトプットコンペアの動作
アウトプットコンペアは , " 指定されたコンペアクリアレジスタに設定されている
値 " と "16 ビットフリーランタイマの値 " の比較に使用します。一致が検出された
場合は , 割込みフラグが設定され , 出力レベルが反転します。
フリーランタイマのカウントピークでコンペアレジスタ値が一致したときは , 一致
信号を無視します。
■ 16 ビットアウトプットコンペアの動作 ( 反転モード , MOD15 ∼ MOD10=0)
コンペア動作は , 各チャネル ( コンペア制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の
CMOD: ビット 12=0) において実行することができます。
図 11.6-11 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を別々に使用した際
の出力波形例 ( フリーランタイマはアップカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 1
7FFFH
RT0
RT1
コンペア0 割込み
コンペア1 割込み
273
第 11 章 多機能タイマ
図 11.6-12 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を別々に使用した際
の出力波形例 ( フリーランタイマはアップダウンカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 1
7FFFH
RT0
RT1
コンペア0 割込み
コンペア1 割込み
● 出力レベルは , 一対のコンペアレジスタ ( コンペア制御レジスタ上位 (OCSH1, OCSH3,
OCSH5) の CMOD: ビット 12=1) を使用して変更することができます。
図 11.6-13 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を一対で使用した際
の出力波形例 ( フリーランタイマはアップカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 1
7FFFH
RT0
RT1
コンペア0 割込み
コンペア1 割込み
274
コンペア0に対応
コンペア0と1に対応
第 11 章 多機能タイマ
図 11.6-14 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を一緒に使用した際
の出力波形例 ( フリーランタイマはアップダウンカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 1
7FFFH
RT0
コンペア0に対応
RT1
コンペア0と1に対応
コンペア0 割込み
コンペア1 割込み
● コンペアバッファが無効になったときの出力レベル
図 11.6-15 コンペアバッファが無効になっているときの出力波形例
( フリーランタイマはアップカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
タイマ動作開始
時間
コンペアクリア一致
リセット
コンペアクリア
バッファレジスタ0
コンペアクリア
レジスタ 0
コンペア
クリア一致
BFFFH
3FFFH
BFFFH
BFFFH
3FFFH
BFFFH
RT0
割込み
275
第 11 章 多機能タイマ
● コンペアクリア一致発生時にコンペアバッファが選択されたときの出力レベル
図 11.6-16 コンペアバッファが有効になったときの出力波形例
( フリーランタイマはアップダウンカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
タイマ動作開始
コンペアクリア一致
ゼロ検出
リセット
コンペアバッファ
レジスタ 0
コンペアレジスタ 0
RT0
割込み
276
BFFFH 3FFFH
BFFFH
BFFFH
3FFFH
BFFFH
第 11 章 多機能タイマ
■ 16 ビットアウトプットコンペアの動作
( セット / リセットモード , MOD15 ∼ MOD10=1)
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 2
7FFFH
RT0
RT2
コンペア0 割込み
コンペア2 割込み
ch.0は, アップカウント:セット, ダウンカウント:リセット
ch.2は, アップカウント:リセット,ダウンカウント:セット
※ ch.0 一致で “1”となったままとなります。ch.2は常に “0” のままです。
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 2
7FFFH
RT0
RT2
コンペア0 割込み
コンペア2 割込み
ch.0 は, アップカウント:セット, ダウンカウント:リセット
ch.2 は, アップカウント:リセット,ダウンカウント:セット
277
第 11 章 多機能タイマ
■ 16 ビットアウトプットコンペアタイミング
フリーランタイマがコンペアレジスタ値と一致すると , アウトプットコンペアはコン
ペア一致信号を生成して出力を反転し , 割込みを発生します。コンペア一致が発生する
と , 出力はカウンタのカウントタイミングと同期して反転します。
図 11.6-17 コンペアレジスタ割込みタイミング
N+1
N
カウント値
N
コンペアレジスタ
コンペア一致
割込み
図 11.6-18 端子出力の変化タイミング
カウント値
コンペアレジスタ
コンペア一致信号
端子出力
278
N
N
N+1
N
N+1
第 11 章 多機能タイマ
■ 16 ビットアウトプットコンペアとフリーランタイマの動作について
● フリーランタイマがアップカウントの場合
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッファ
レジスタ
BFFFH
CFFFH BFFFH
コンペアレジスタ
BFFFH
CFFFH
0000H
BFFFH
BFFFH
0000H
0000H
BFFFH
0000H
CFFFH
0000H
CFFFH
0000H
RT
アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのコンペアクリア一致時
● フリーランタイマがアップカウントの場合
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッファ
レジスタ
BFFFH
CFFFH BFFFH
コンペアレジスタ
BFFFH
CFFFH
0000H
BFFFH
BFFFH
0000H
0000H
BFFFH
0000H
CFFFH
0000H
CFFFH
0000H
RT
アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのゼロ検出時
279
第 11 章 多機能タイマ
● フリーランタイマがアップダウンカウントの場合
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッファ
レジスタ
BFFFH
CFFFH
コンペアレジスタ
BFFFH
BFFFH
BFFFH
CFFFH
0000H
FFFFH
0000H
BFFFH
0000H
FFFFH
RT 初期値[0]
RT 初期値[1]
アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのコンペアクリア一致時
アウトプットコンペア出力は一致時, 出力反転する場合
● フリーランタイマがアップダウンカウントの場合
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
コンペアバッファ
時間
レジスタ
BFFFH
CFFFH
BFFFH
0000H
FFFFH
コンペアレジスタ
BFFFH
CFFFH
BFFFH
0000H
FFFFH
R T 初期値[0]
RT 初期値[1]
アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのゼロ検出時
アウトプットコンペア出力は一致時, 出力反転する場合
280
0000H
0000H
第 11 章 多機能タイマ
● フリーランタイマがアップダウンカウントの場合
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッファ
レジスタ
コンペアレジスタ
BFFFH
CFFFH
BFFFH
0000H
FFFFH
0000H
BFFFH
BFFFH
CFFFH
BFFFH
0000H
FFFFH
RT 初期値[0]
RT 初期値[1]
アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのコンペアクリア一致時
アウトプットコンペア出力は, アップカウント時の一致は"1"にセット, ダウンカウント時の一致は"0"にリセットする場合
● フリーランタイマがアップダウンカウントの場合
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッファ
レジスタ
コンペアレジスタ
BFFFH
CFFFH
BFFFH
0000H
FFFFH
BFFFH
CFFFH
BFFFH
0000H
FFFFH
0000H
0000H
RT 初期値[0]
RT 初期値[1]
アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのゼロ検出時
アウトプットコンペア出力は, アップカウント時の一致は"1"にセット, ダウンカウント時の一致は"0"にリセットする場合
281
第 11 章 多機能タイマ
● フリーランタイマがアップダウンカウントの場合
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッファ
レジスタ
BFFFH
CFFFH
BFFFH
0000H
FFFFH
0000H
コンペアレジスタ
BFFFH
BFFFH
CFFFH
BFFFH
0000H
FFFFH
RT初期値[0]
RT初期値[1]
アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのコンペアクリア一致時
アウトプットコンペア出力は, アップカウント時の一致は"0"にリセット, ダウンカウント時の一致は"1"にセットする場合
● フリーランタイマがアップダウンカウントの場合
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッファ
レジスタ
コンペアレジスタ
BFFFH
CFFFH
BFFFH
0000H
FFFFH
BFFFH
CFFFH
BFFFH
0000H
FFFFH
RT 初期値[0]
RT 初期値[1]
アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーランタイマのゼロ検出時
アウトプットコンペア出力は, アップカウント時の一致は"0"にリセット, ダウンカウント時の一致は"1"にセットする場合
282
0000H
0000H
第 11 章 多機能タイマ
16 ビットインプットキャプチャの動作
11.6.3
インプットキャプチャは , 指定された有効なエッジを検出するために使用します。
有効なエッジが検出されると , 割込みフラグが設定され , 16 ビットフリーランタイ
マの値がキャプチャレジスタへロードされます。
■ 16 ビットインプットキャプチャの動作
図 11.6-19 インプットキャプチャタイミング例
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
IC0
IC1
IC例
キャプチャ
レジスタ 0
キャプチャ
レジスタ 1
キャプチャ
レジスタ 例
不定
3FFFH
7FFFH
不定
不定
BFFFH
3FFFH
キャプチャ 0
割込み
キャプチャ 1
割込み
キャプチャ 例
割込み
再度、有効エッジにより割込み生成
ソフトウェアにより、割込みクリア
キャプチャ 0 : 立上りエッジ
キャプチャ 1 : 立下りエッジ
キャプチャ例 : 両方のエッジ
283
第 11 章 多機能タイマ
■ 16 ビットインプットキャプチャ入力タイミング
図 11.6-20 入力信号に対する 16 ビットインプットキャプチャタイミング例
マシンクロック
φ
カウント値
インプット
キャプチャ入力
N
N+1
有効なエッジ
キャプチャ信号
キャプチャレジスタ
割込み
284
N+1
第 11 章 多機能タイマ
波形ジェネレータの動作
11.6.4
波形ジェネレータは , リアルタイム出力 (RTO0 ∼ RTO5) , 16 ビット PPG タイマ 0,
16 ビットデッドタイマ 0, 1, 2 を使用してさまざまな波形 ( デッドタイムを含む ) を
生成することができます。
■ RTO0 ∼ RTO5 と GATE の出力状態
表 11.6-1 RTO0 ∼ RTO5/GATE 出力状態とビット設定 (1 / 2)
TMD2 TMD1 TMD0
GTEN5 PGEN5
∼
∼
GTEN0 PGEN0
RTO0 ∼ RTO5
GATE
0
0
0
X
X
リアルタイム出力 RTx
(16 ビットアウトプットコンペア出力 )
常に "0"
0
0
1
X
0
リアルタイム出力 RTx
(16 ビットアウトプットコンペア出力 )
(RTx &
GTENx) *3
0
0
1
0
1
RTx が "H" の期間に PPG0 のパルスを出力 *1
常に "0"
0
0
1
1
1
RTx が "H" の期間に GATE 信号により起動さ
れた PPG0 のパルスを出力
(RT0/RT1/
RT2/RT3/
RT4/RT5)
RT0, RT1 の立上りエッジにより 16 ビット
デッドタイマ 0 を起動し , 16 ビットデッドタ
イマ 0 がアンダフローするまで "H" を出力
X
0
0
1
1
0
0
X
0
RT2, RT3 の立上りエッジにより 16 ビット
デッドタイマ 1 を起動し , 16 ビットデッドタ
イマ 1 がアンダフローするまで "H" を出力
X
RT4, RT5 の立上りエッジにより 16 ビット
デッドタイマ 2 を起動し , 16 ビットデッドタ
イマ 2 がアンダフローするまで "H" を出力
0
RT0, RT1 の立上りエッジにより 16 ビット
デッドタイマ 0 を起動し , 16 ビットデッドタ
イマ 0 がアンダフローするまで PPG0 のパル
スを出力 *1
0
RT2, RT3 の立上りエッジにより 16 ビット
デッドタイマ 1 を起動し , 16 ビットデッドタ
イマ 1 がアンダフローするまで PPG0 のパル
スを出力 *1
0
1
タイマ動作
期間中は
"H" を出力 *4
常に "0"
RT4, RT5 の立上りエッジにより 16 ビット
デッドタイマ 2 を起動し , 16 ビットデッドタ
イマ 2 がアンダフローするまで PPG0 のパル
スを出力 *1
285
第 11 章 多機能タイマ
表 11.6-1 RTO0 ∼ RTO5/GATE 出力状態とビット設定 (2 / 2)
TMD2 TMD1 TMD0
0
1
1
GTEN5 PGEN5
∼
∼
GTEN0 PGEN0
0
0
0
1
RT0, RT1 の立上りエッジにより 16 ビット
デッドタイマ 0 を起動し , 16 ビットデッドタ
イマ 0 がアンダフローするまで , GATE 信号
により起動された PPG0 のパルスを出力
1
RT2, RT3 の立上りエッジにより 16 ビット
デッドタイマ 1 を起動し , 16 ビットデッドタ
イマ 1 がアンダフローするまで , GATE 信号
により起動された PPG0 のパルスを出力
1
1
RT4, RT5 の立上りエッジにより 16 ビット
デッドタイマ 2 を起動し , 16 ビットデッドタ
イマ 2 がアンダフローするまで , GATE 信号
により起動された PPG0 のパルスを出力
X
RT1 でノンオーバラップ信号を生成 *2
X
X
X
1
1
1
1
1
0
1
1
その他
RT3 でノンオーバラップ信号を生成 *2
RT5
X
X
GATE
RTO0 ∼ RTO5
タイマ動作
期間中は
"H" を出力 *4
常に "0"
でノンオーバラップ信号を生成 *2
PPG0 でノンオーバラップ信号を生成
GATE 信号により起動された PPG0 でノン
オーバラップ信号を生成
常に "0"
常に "0"
(RT0/RT1/
RT2/RT3/
RT4/RT5)
常に "0"
*1: あらかじめ PPG0 を起動しておく必要があります。
*2: ノンオーバラップ信号を生成するには , 必ず RT1, RT3, RT5 に対して 2 チャネル
モード ( コンペア制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の CMOD: ビット
12=1) を選択してください。
*3: GTENx ビットに "1" を設定した RTx から GATE 信号が生成されます。
*4: GTENx ビットに "1" を設定した RTx によって起動されるタイマの動作期間中に ,
GATE 信号が生成されます。複数の GATEx ビットに "1" を設定した場合 , GATE
信号は各々のタイマ動作期間中の信号を OR した信号となります。
<注意事項>
RTO0, RTO1 は , 16 ビットデッドタイマ制御レジスタ上位 (DTCR0) の TMD2 ∼ TMD0:
ビット 10 ∼ビット 8 により , RTO2, RTO3 は (DTCR1) 下位レジスタの TMD5 ∼ TMD3:
ビット 2 ∼ビット 0 により , RTO4, RTO5 は上位レジスタ (DTCR2) の TMD8 ∼ TMD6:
ビット 10 ∼ビット 8 により制御されます。
286
第 11 章 多機能タイマ
■ PPG0 出力制御
RTO0 ∼ RTO5 端子への PPG0 出力は , PPG 出力制御 / インプットキャプチャ状態制御
レジスタ上位 (PICSH01) の PGEN5 ∼ PGEN0: ビット 15 ∼ビット 10 で許可にすること
ができます。
■ ゲートトリガされた PPG0 出力
波形ジェネレータでは , リアルタイム出力 RTO0 ∼ RTO5 により , GATE 信号を生成す
ることができ , 16 ビットデッドタイマ 0, 1, 2 では PPG0 カウントをトリガとして動作
することができます。1 つの 16 ビットデッドタイマ 0, 1, 2 で 2 つのリアルタイム出力
(RTO0/RTO2/RTO4, RTO1/RTO3/RTO5) が操作され , 6 つの別々のゲート信号が生成さ
れます。これら 6 つのゲート信号は論理和がとられて GATE 信号を生成し , PPG0 カウ
ントのトリガとなります。また , PGEN0 ∼ PGEN5 信号を使用すると , PPG0 のみを使
用することで RTO0 ∼ RTO5 端子に 6 つの異なる波形を出力することができます。
● PGENx, GTENx がアクティブ (PGENx, GTENx=1) であり , 16 ビットデッドタイマ制御レジ
スタ (DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0=001B のとき , または GTENx がアク
ティブで TMD8 ∼ TMD0=111B のときの信号生成
図 11.6-21 RTx が "H" のときの GATE 信号の生成
16ビットフリーランタイマ
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
コンペア
レジスタ 0
コンペア
レジスタ 1
時間
BFFFH
7FFFH
RT0
RT1
GATE0
GATE1
GATE
287
第 11 章 多機能タイマ
● GTENx がアクティブ (DTCR0, DTCR1, DTCR2 レジスタの TMD8 ∼ TMD0=010B) であると
きの RTx 立上りエッジから 16 ビットデッドタイマ 0, 1, 2 アンダフローまでにおける
GATE 信号の生成
図 11.6-22 RTx 立上りエッジから 16 ビットデッドタイマアンダフローまでにおける GATE 信号の生成
16ビットフリーランタイマ
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
000H
時間
コンペア
レジスタ 0
コンペア
レジスタ 1
BFFFH
7FFFH
RT0
RT1
G ATE0
GAT E1
16ビットデッドタイマ0の
時間
16ビットデッドタイマ0の
時間
GAT E
<注意事項>
各 16 ビットデッドタイマは , 2 つの RT に対して使用されます。すなわち , 16 ビットデッ
ドタイマ 0 は RT0 と RT1 に対して使用され , 16 ビットデッドタイマ 1 は RT2 と RT3 に
対して使用され , 16 ビットデッドタイマ 2 は RT4 と RT5 に対して使用されます。した
がって , RT を使用して既に動作中のタイマの起動を試みてはなりません。このような試
みを行った場合 , GATE 信号出力が拡張され , その結果 , 誤動作が発生する場合がありま
す。
288
第 11 章 多機能タイマ
11.6.4.1
タイマモードの動作
RTO0 ∼ RTO5 端子の立上りエッジが検出されると , 16 ビットデッドタイマに値が
リロードされて , 16 ビットデッドタイマがカウントダウンを開始します。PPG タイ
マ 0 は , 16 ビットデッドタイマでアンダフローが発生するまで RTO0 ∼ RTO5 端子
へ出力し続けます。
■ タイマモードの動作
● RT立上りエッジから16ビットデッドタイマアンダフローまでにおけるPPG0出力パルス生
成 (DTCR0, DTCR1, DTCR2 レジスタの TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下
位はビット 2 ∼ビット 0) =010B)
図 11.6-23 TMD2 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位はビット 2 ∼ビット 0) が "010B" のと
きに生成される波形
< レジスタの設定 >
PCSR
: XXXXH
TCDTH,TCDTL
: XXXXH
TCCSH,TCCSL
: XXXXXXXX X0X0XXXXB
PDUT
: XXXXH
CPCLRH,CPCLRL
: XXXXH (サイクルの設定)
PCNT
: XXXXH
OCCPH0~OCCPH5,OCCPL0~OCCPL5 : XXXXH (コンペア値)
PICS01 : XXH(PPG0出力選択)
OCSH0~OCSH5,OCSL0~OCSL5
: -XX0XXXX XXXXXX11B
DTCR0~DTCR2
: 011XX010B
TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定)
SIGCR1
: XXXXXX00B (DTTI入力と16ビットデッドタイマカウントクロック設定)
注記:"X"動作に従って設定しなければならない
16ビットフリーランタイマ
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
PPG0
コンペア
レジスタ 0
BFFFH
コンペア
レジスタ 1
7FFFH
RT0
RT1
GATE
RTO0
RTO1
16ビットデッドタイマ0の
時間
16ビットデッドタイマ0の
時間
289
第 11 章 多機能タイマ
<注意事項>
各 16 ビットデッドタイマは , 2 つの RT に対して使用されます。すなわち , 16 ビットデッ
ドタイマ 0 は RT0 と RT1 に対して使用され , 16 ビットデッドタイマ 1 は RT2 と RT3 に
対して使用され , 16 ビットデッドタイマ 2 は RT4 と RT5 に対して使用されます。した
がって , RT を使用して , 既に動作中の PPG0 の起動を試みてはなりません。このような
試みを行った場合は , GATE 信号出力が拡張され , その結果 , 誤動作が発生する場合があ
ります。
290
第 11 章 多機能タイマ
11.6.4.2
デッドタイムタイマモード時の動作
デッドタイムジェネレータは , リアルタイム出力 (RT1, RT3, RT5) , もしくは PPG0
タイマパルス出力を入力し , 外部端子 (RTO0 ∼ RTO5) へノンオーバラップ信号 ( 反
転信号 ) を出力します。
■ デッドタイムタイマモード時の動作
● 通常極性の RT1, RT3, RT5 によるノンオーバラップ信号生成 (16 ビットデッドタイマ制御
レジスタ (DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位
はビット 2 ∼ビット 0) =100B)
DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 が "0" ( 通常極性 ) であるノン
オ ー バ ラ ッ プ 信号 を 選 択 す る と , 16 ビ ッ ト デ ッ ド タ イ マ レ ジ ス タ (TMRRH0 ∼
TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオーバラップ時間に相当する遅
延が適用されます。この遅延は RT1, RT3, RT5 端子の立上りエッジまたは立下りエッ
ジで適用されます。RT1, RT3, RT5 パルス幅が , 設定されているノンオーバラップ時間
より小さい場合は , 16 ビットデッドタイマは , その次の RT エッジの TMRRH0 ∼
TMRRH2, TMRRL0 ∼ TMRRL2 レジスタ値からカウントダウンを再開します。
図 11.6-24 通常極性の RT1,RT3,RT5 によるノンオーバラップ信号生成
< レジスタの設定 >
OCCPH0~OCCPH5, OCCPL0~OCCPL5 : XXXXH (コンペア値)
TCDTH,TCDTL
: XXXXH
OCSH0~OCSH5, OCSL0~OCSL5
: -XX1XXXX XXXXXX11B
TCCSH,TCCSL
: X--XXXXX X0X0XXXXB
DTCR0~DTCR2
: 0XXXX100B
CPCLRH,CPCLRL
: XXXXH (サイクルの設定)
TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定)
SIGCR1
: XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定)
注記:"X"動作に従って設定しなければならない
16ビットデッドタイマ0
カウント値
TMRR0設定値
時間
RT1
RTO0(U)
RTO1(X)
2マシンサイクル
2マシンサイクル
端子名
出力信号
RTO0 (U)
遅延された信号がRT1の立上りエッジで適用される
RTO2 (V)
遅延された信号がRT3の立上りエッジで適用される
RTO4 (W)
遅延された信号がRT5の立上りエッジで適用される
RTO1 (X)
遅延された反転信号がRT1の立下りエッジで適用される
RTO3 (Y)
遅延された反転信号がRT3の立下りエッジで適用される
RTO5 (Z)
遅延された反転信号がRT5の立下りエッジで適用される
291
第 11 章 多機能タイマ
● 反転極性の RT1, RT3, RT5 によるノンオーバラップ信号生成 (16 ビットデッドタイマ制御
レジスタ (DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位
はビット 2 ∼ビット 0) =100B)
DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 ( 上位はビット 15, 下位はビッ
ト 7) が "1" ( 反転極性 ) であるノンオーバラップ信号を選択すると , 16 ビットデッドタ
イマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオー
バラップ時間に相当する遅延が適用されます。この遅延は , RT1, RT3, RT5 の立上り
エッジまたは立下りエッジで適用されます。RT1, RT3, RT5 パルス幅が設定されている
ノンオーバラップ時間より小さい場合は , 16 ビットデッドタイマはその次の RT エッ
ジの TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2 値からカウントダウンを再開します。
図 11.6-25 反転極性の RT1,RT3,RT5 によるノンオーバラップ信号生成
< レジスタの設定 >
OCCPH0~OCCPH5, OCCPL0~OCCPL5 : XXXXH (コンペア値)
TCDTH,TCDTL
: XXXXH
OCSH0~OCSH5, OCSL0~OCSL5
: -XX1XXXX XXXXXX11B
TCCSH,TCCSL
: XXXXXXXX X0X0XXXXB
DTCR0~DTCR2
: 0XXXX100B
CPCLRH,CPCLRL
: XXXXH (サイクルの設定)
TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定)
SIGCR1
: XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定)
注記:"X"動作に従って設定しなければならない
16ビットデッドタイマ0
カウント値
TMRR0設定値
時間
RT1
RTO0(U)
RTO1(X)
2マシンサイクル
2マシンサイクル
端子名
292
出力信号
RTO0 (U)
遅延された反転信号がRT1の立上りエッジで適用される
RTO2 (V)
遅延された反転信号がRT3の立上りエッジで適用される
RTO4 (W)
遅延された反転信号がRT5の立上りエッジで適用される
RTO1 (X)
遅延された信号がRT1の立下りエッジで適用される
RTO3 (Y)
遅延された信号がRT3の立下りエッジで適用される
RTO5 (Z)
遅延された信号がRT5の立下りエッジで適用される
第 11 章 多機能タイマ
● 通常極性の PPG によるノンオーバラップ信号生成 (16 ビットデッドタイマ制御レジスタ
(DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位はビット
2 ∼ビット 0) =111B)
DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 ( 上位はビット 15, 下位はビッ
ト 7) が "0" ( 通常極性 ) であるノンオーバラップ信号を選択すると , 16 ビットデッドタ
イマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオー
バラップ時間に相当する遅延が適用されます。この遅延は , PPG0 タイマパルス信号ま
たは反転信号の立上りエッジで適用されます。PPG0 タイマパルス幅が設定されている
ノンオーバラップ時間より小さい場合は , 16 ビットデッドタイマは PPG0 パルスのそ
の次のエッジの TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2 値からカウントダウンを
再開します。
図 11.6-26 通常極性の PPG0 タイマによるノンオーバラップ信号生成
< レジスタの設定 >
TCDTH,TCDTL
: XXXXH
PCSR : XXXXH
TCCSH,TCCSL
: XXXXXXXX X0X0XXXXB
PDUT : XXXXH
CPCLRH,CPCLRL
: XXXXH (サイクルの設定)
PCNT : XXXXH
OCCPH0~OCCPH5,OCCPL0~OCCPL5 : XXXXH (コンペア値)
OCSH0~OCSH5,OCSL0~OCSL5
: -XX1XXXX XXXXXX11B
DTCR0~DTCR2
: 0XXXX111B
TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定)
SIGCR1 : XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定)
注記:"X"動作に従って設定しなければならない
16ビットデッドタイマ0
カウント値
TMRR0設定値
時間
PPG0
RTO0(U)
RTO1(X)
2マシンサイクル
2マシンサイクル
端子名
出力信号
RTO0 (U)
遅延された信号がPPG0の立上りエッジで適用される
RTO2 (V)
遅延された信号がPPG0の立上りエッジで適用される
RTO4 (W)
遅延された信号がPPG0の立上りエッジで適用される
RTO1 (X)
遅延された反転信号がPPG0の立下りエッジで適用される
RTO3 (Y)
遅延された反転信号がPPG0の立下りエッジで適用される
RTO5 (Z)
遅延された反転信号がPPG0の立下りエッジで適用される
293
第 11 章 多機能タイマ
● 反転極性の PPG によるノンオーバラップ信号生成 (16 ビットデッドタイマ制御レジスタ
(DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位はビット 10 ∼ビット 8, 下位はビット
2 ∼ビット 0) =111B)
DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 ( 上位はビット 15, 下位はビッ
ト 7) が "1" ( 反転極性 ) であるノンオーバラップ信号を選択すると , 16 ビットデッドタ
イマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオー
バラップ時間に相当する遅延が適用されます。この遅延は , PPG0 タイマパルス信号ま
たは反転信号の立上りエッジで適用されます。PPG0 タイマパルス幅が設定されている
ノンオーバラップ時間より小さい場合は , 16 ビットデッドタイマは PPG0 パルスのそ
の次のエッジの TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2 値からカウントダウンを
再開します。
図 11.6-27 反転極性の PPG0 タイマによるノンオーバラップ信号生成
< レジスタの設定 >
TCDTH,TCDTL
: XXXXH
PCSR : XXXXH
TCCSH,TCCSL
: XXXXXXXX X0X0XXXXB
PDUT : XXXXH
CPCLRH,CPCLRL
: XXXXH (サイクルの設定)
PCNT : XXXXH
OCCPH0~OCCPH5,OCCPL0~OCCPL5 : XXXXH (コンペア値)
OCSH0~OCSH5,OCSL0~OCSL5
: -XX1XXXX XXXXXX11B
DTCR0~DTCR2
: 1XXXX111B
TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定)
SIGCR1
: XXXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定)
注記:"X"動作に従って設定しなければならない
16ビットデッドタイマ0
カウント値
TMRR0設定値
時間
PPG0
RTO0(U)
RTO1(X)
2マシンサイクル
2マシンサイクル
端子名
294
出力信号
RTO0 (U)
遅延された反転信号がPPG0の立下りエッジで適用される
RTO2 (V)
遅延された反転信号がPPG0の立下りエッジで適用される
RTO4 (W)
遅延された反転信号がPPG0の立下りエッジで適用される
RTO1 (X)
遅延された信号がPPG0の立下りエッジで適用される
RTO3 (Y)
遅延された信号がPPG0の立下りエッジで適用される
RTO5 (Z)
遅延された信号がPPG0の立下りエッジで適用される
第 11 章 多機能タイマ
11.6.4.3
DTTI 端子制御の動作
波形制御レジスタ 1 (SIGCR1) の DTIE: ビット 7 に "1" を設定すると , RTO0 ∼
RTO5 出力を DTTI 端子で制御することができます。DTTI 端子の "L" レベルが検出
されると , RTO0 ∼ RTO5 出力は割込みフラグ (SIGCR レジスタの DTIF;ビット 6)
がクリアされるまで非動作レベルに固定されます。RTO0 ∼ RTO5 の非動作レベル
は , これらの端子を共用しているポートデータレジスタ (PDR) を使ってソフトウェ
ア的に設定することができます。また , データディレクションレジスタ (DDR) を
使って入力ポートとしておけば Hi-Z 出力となります。
■ DTTI 端子入力の動作
DTTI 端子入力の "L" が検出された場合でも , タイマは波形ジェネレータが動作してい
る間は動作を継続しますが , 波形は外部端子 RTO0 ∼ RTO5 へは出力されません。
図 11.6-28 DTTI 入力が有効のときの動作
< レジスタの設定 >
CPCLRH,CPCLRL
: XXXXH (サイクルの設定)
TCDTH,TCDTL
: XXXXH
TCCSH,TCCSL
: XXXXXXXX X0X0XXXXB
OCCPH0~OCCPH5,OCCPL0~OCCPL5 : XXXXH (コンペア値)
DTCR0~DTCR2
: 0XXXX100B
OCSH0~OCSH5,OCSL0~OCSL5
: -XX1XXXX XXXXXX11B
PDRx
: XXXXXX00B(非動作レベルの設定)
TMRRH0~TMRRH2,TMRRL0~TMRRL2 : XXXXH (ノンオーバラップタイミングの設定)
SIGCR1
: 1XXXXXXXB (DTTI入力と16ビットデッドタイマカウントクロック設定)
注記:"X"動作に従って設定しなければならない
16ビットフリーランタイマ
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
コンペア
レジスタ 0
BFFFH
コンペア
レジスタ 1
3FFFH
RT1
RTO0
RTO1
DTTI0
DTIF
出力非動作
ソフトウェアリセット
295
第 11 章 多機能タイマ
■ 波形制御レジスタ 2 (SIGCR2) の DTTI の動作
波形制御レジスタ 2 の DTTI: ビット 0 の出力は , DTTI 端子入力と OR をとって DTTI
入力となるようになっています。したがって , 本レジスタを "0" に設定すると常に DTTI
入力状態となり , DTTI 端子の入力は無意味です。
本レジスタに , "1" を書き込んでクリアされると , DTTI 端子入力の値が用いられます。
■ DTTI 端子ノイズキャンセル機能
波形制御レジスタ 1 (SIGCR1) の NRSL: ビット 5 に "1" を設定すると , DTTI 端子入力
のノイズキャンセル機能が有効になります。ノイズキャンセル機能が有効になると , 出
力端子 (RTO0 ∼ RTO5) を非動作レベルに固定するために要する時間が 4, 8, 16 または
32 マシンサイクル (SIGCR1 レジスタの NWS1, NWS0: ビット 1, ビット 0 で選択 ) だけ
遅延します。ノイズキャンセル回路はリソースを使用するので , 発振が停止するモード
( 停止モードなど ) 時において DTTI 入力が有効になった場合でも入力は無効になりま
す。
■ DTTI 割込み
DTTI の "L" レベルが検出されると , ノイズキャンセル時間が経過した後で DTTI 割込
みフラグ (SIGCR1 レジスタの DTIF: ビット 6) に "1" が設定され , 割込み要求は割込み
コントローラへ送信されます。
図 11.6-29 DTTI 割込みタイミング
DTTI
SIGCR1レジスタ
DTIFビット
SIGCR1レジスタのNWS1,NWS0ビットで
制御されるノイズキャンセル時間
SIGCR1レジスタのDTIFビットに
ソフトウェアで"0"を書き込む
<注意事項>
• ノイズキャンセル時間内に SIGCR1 レジスタの NWS1, NWS0 ビットの値が変化した場
合は , さらに大きな (NWS1, NWS0) ノイズサイクル値が有効になります。
• SIGCR1レジスタのDTIF: ビット6は, ソフトウェアでのみクリアすることができます。
296
第 11 章 多機能タイマ
11.6.5
A/D 起動コンペアの動作
16 ビットフリーランタイマの値が指示値となったときに , A/D 起動を行うことがで
きます。
■ A/D 起動
3 ユニットある A/D コンバータ起動ができます。
• A/D 起動コンペア 0 → A/D ユニット 0 起動
• A/D 起動コンペア 1 → A/D ユニット 1 起動
• A/D 起動コンペア 2 → A/D ユニット 2 起動
■ A/D 起動許可
コンペアレジスタに値をセットし , 制御レジスタ (ADCOMPC) の CE0, CE1, CE2: ビッ
ト 0, ビット 1, ビット 2 に "1" をセットした場合 , フリーランタイマとコンペアレジス
タ値が一致したときに A/D コンバータに対して起動信号を発生します。
CE0, CE1, CE2 を "0" にセットすると , フリーランタイマとコンペアレジスタ値が一致
しても A/D コンバータに対して起動信号は発生しません。
コンペアレジスタは , 起動許可中に書き込んだ場合 , すぐに書き込んだ値と一致比較を
行います。
297
第 11 章 多機能タイマ
11.7
多機能タイマの使用上の注意
多機能タイマの使用上の注意を以下に示します。
■ 16 ビットフリーランタイマの使用上の注意
● プログラムによる設定上の注意
• リセットを実行するとタイマ値が "0000H" になりますが , ゼロ検出割込みフラグ
は設定されません。
• タイマモードビット (TCCSL レジスタの MODE: ビット 5) は , バッファを持って
いるので , ゼロ検出後に変更されたタイマモードが有効になります。
• ソフトウェアクリア (TCCSL レジスタの SCLR: ビット 4=1) は , タイマを初期化し
ます。このとき , タイマカウントクロックがマシンサイクル (φ) の場合 , ゼロ検出
割込みを発生しません。タイマカウントクロックがマシンサイクル (φ) の分周の
場合 , ゼロ検出割込みが発生されます。
• コンペア値とカウント値が一致しているときにカウントを開始する場合は , コン
ペアクリアフラグは設定されません。
●割込みの注意
• タイマ状態制御レジスタ上位 (TCCSH) の IRQZF: ビット 14 に "1" を設定し , 次に
割込み要求を許可すると (TCCSH レジスタの IRQZE: ビット 13=1) , 制御は割込み
処理から戻ることができません。IRQZF: ビット 14 は , 必ずクリアしてください。
• タイマ状態制御レジスタ上位 (TCCSH) の ICLR: ビット 9 に "1" を設定し , 次に割
込み要求を許可すると (TCCSH レジスタの ICRE: ビット 8=1) , 制御は割込み処理
から戻ることができません。ICLR: ビット 9 は , 必ずクリアしてください。
■16 ビットアウトプットコンペアの使用上の注意
● 割込みの注意
コンペア制御レジスタ下位 (OCSL0, OCSL2, OCSL4) の IOP1, IOP0: ビット 7, ビット 6
に "11B" を設定し , 次に割込み要求を許可にすると (OCSL レジスタの IOE1, IOE0: ビッ
ト 6, ビット 5=11B) , 制御は割込み処理から戻ることができません。IOP0, IOP1 ビット
は , 必ずクリアしてください。
■ 16 ビットインプットキャプチャの使用上の注意
● 割込みの注意
• インプットキャプチャ状態制御レジスタ下位 (PICSL01, ICSL23) の ICP3, ICP2,
ICP1, ICP0 ( ともにビット 7, ビット 6) に "1" を設定し , 次に割込み要求を許可に
すると (PICCSL01, ICSL23 レジスタの ICE3, ICE2, ICE1, ICE0 ( ともにビット 5,
ビット 4) =11B) , 制御は割込み処理から戻ることができません。ICP3, ICP2, ICP1,
ICP0 ( ともにビット 7, ビット 6) は , 必ずクリアしてください。
• インプットキャプチャ端子 (IC) レベルが , ICP3, ICP2, ICP1, ICP0 がビット設定さ
れてから割込みルーチンが処理されるまでの間に切り換わると , ICP3, ICP2 の有
効エッジ指示ビット (ICSH23 レジスタの IEI3, IEI2: ビット 9, ビット 8) は検出され
た最新のエッジを示します。
298
第 11 章 多機能タイマ
<注意事項>
ICP1, ICP0 の有効エッジ指示ビットはありません。
■ 波形ジェネレータの使用上の注意
● プログラムによる設定上の注意
• 波形ジェネレータが動作中 (DTCR0, DTCR1, DTCR2 レジスタの TMD2 ∼ TMD0,
TMD5 ∼ TMD3, TMD8 ∼ TMD6 が "001B", "010B", "100B" または "111B") に , 16
ビ ッ ト デ ッ ド タ イ マ 制 御 レ ジ ス タ (DTCR0, DTCR1, DTCR2) の TMD8, TMD5,
TMD2 ( 上位はビット 10, 下位はビット 2) , TMD7, TMD4, TMD1 ( 上位はビット 9,
下位はビット 1) , TMD6, TMD3, TMD0 ( 上位はビット 8, 下位はビット 0) ビット値
を変更する場合は , トリガソースおよび 16 ビットデッドタイマがカウント中でな
いことを必ず確認してください。この操作を行わない場合は , 以前のトリガでス
ケジュールされた出力が原因となり , 予期しない波形が RTO 端子から出力されま
す。ただし , RTO 出力は , タイマでアンダフローが発生したり , 新しいトリガソー
スで再トリガされたりすると , 正常動作に戻ります。
• トリガソースとは , DTCR0, DTCR1, DTCR2 レジスタの TMD8 ∼ TMD0 ( 上位はビッ
ト 10 ∼ビット 8, 下位はビット 2 ∼ビット 0) が "001B" の場合は "RT の "H" レベル "
であり , TMD8 ∼ TMD0 ビットが "010B" の場合は "RT の立上りエッジ " であり ,
TMD8 ∼ TMD0 ビットが "100B" の場合は , "RT の立上りまたは立下りエッジ " であ
り , TMD8 ∼ TMD0 ビットが "111B" の場合は "PPG0 の立上りエッジまたは立下り
エッジ " です。
例えば , TMD8 ∼ TMD0 ビットが "100B" から "111B" へ変更すると , 下記の手順を実
行することができます。
1. 16 ビットデッドタイマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2)
を "0001H" のような非常に小さな値を設定する。
2. RTO1, RTO3, RTO5 の出力を "L" または "H" に設定し , タイマ 0, 1, 2 でアンダフ
ローが発生するまで待つ。
3. モードビット (TMD8 ∼ TMD0) および対応する設定を変更する。
4. 修正された出力波形が , 1 マシンサイクル後 , RTO 端子に現れる。
• タイマがカウント中に 16 ビットデッドタイマレジスタ (TMRRH0 ∼ TMRRH2,
TMRRL0 ∼ TMRRL2) に値が書き込まれると , この新しい値は次のタイマトリガ時
に有効になります。タイマレジスタへアクセスする場合は , 必ずハーフワードもし
くはワード転送命令をご使用ください。
• タイマがカウントしてない場合のみ , 波形制御レジスタ 1 (SIGCR1) の DCK2 ∼
DCK0: ビット 4 ∼ビット 2 を変更してください。
• ノイズキャンセル機能が無効になった場合のみ , 波形制御レジスタ 1 (SIGCR1) の
NWS1, NWS0: ビット 1, ビット 0 を変更してください。
299
第 11 章 多機能タイマ
● 割込みの注意
• 16 ビットデッドタイマ制御レジスタ (DTCR0, DTCR1, DTCR2) の TMIF2 ∼ TMIF0
( 上位はビット 12, 下位はビット 4) に "1" を設定し , 次に割込み要求を許可にする
と (DTCR0, DTCR1, DTCR2 レジスタの TMIE2 ∼ TMIE0 ( 上位はビット 11, 下位は
ビット 3) =1) , 制御は割込み処理から戻ることができません。TMIF ビットは , 必
ずクリアしてください。
• 波形制御レジスタ 1 (SIGCR1) の DTIF: ビット 6 に "1" を設定すると , 制御は割込
み処理から戻ることができません。DTIF ビットは , 必ずクリアしてください。
300
第 11 章 多機能タイマ
11.8
多機能タイマのプログラム例
多機能タイマのプログラム例を示します。
■ 16 ビットフリーランタイマのプログラム例
● 処理
• 16 ビットフリーランタイマで 4 ms のときコンペアクリア割込みを発生します。
• 本タイマはアップカウントモード時にコンペアクリアタイマの再生成のために使
用します。
• 16 MHz は , マシンクロック用で , 62.5 ns はカウントクロック用です。
● コーディング例
ICR32
.EQU
000460H
;16 ビットフリーランタイマのコンペアクリア割込み
TCCSH
.EQU
0000A8H
;制御レジスタ
;タイマ制御状態レジスタ
CPCLRBH.EQU
0000A4H
;コンペアクリアバッファレジスタ
;--------------- メインプログラム ---------------------------------------------ORG
C0000H
START:
;
:
ANDCCR #0EFH
LDI
#ICR32,r0
;スタックポインタ (SP) が既に初期化されているもの
;と仮定
;割込み禁止
LDI
#00H,r1
STB
r1,@r0
LDI
#CPCLRBH,r0;16 ビットフリーランタイマのアップカウントモード
LDI
#0FA00H,r1 ;時に 4 ms でコンペアクリア割込みを発生するための
STH
r1,@r0
;値をコンペアクリアバッファレジスタに設定
LDI
#TCCSH,r3
;アップカウントダウンモード ,
LDI
#0110H,r1
;62.5 ns カウントクロック設定 ,
STH
r1,@r3
;コンペアクリア割込み許可 ,
;割込みレベル 16 ( 最強 )
;コンペアクリア割込みフラグビットのクリア ,
;割込みマスクを禁止 ,
;タイマクリア , 動作許可
STILM
LOOP
#14H
;PS 中の ILM をレベル 20 に設定
ORCCR
#10H
;割込み許可
LDI
LDI
#00H,r0
#01H,r1
;無限ループ
BRA
LOOP
;
;--------------- 割込みプログラム ---------------------------------------------WARI
LDI
#0100H,r1
ANDH
r1,@r3
;
:
;
ユーザ処理
;割込み要求フラグをクリア
301
第 11 章 多機能タイマ
;
:
: 割込みから復帰
RETI
;--------------- ベクタ設定 ---------------------------------------------------VECT
.ORG
FFFF8H
.DATA.W WARI
.ORG
FFFF8H
;割込みルーチンの設定
.DATA.W 0x07000000;シングルチップモードの設定
.DATA.W START
.END
;リセットベクタの設定
■ 16 ビットアウトプットコンペアのプログラム例
● 処理
• 16 ビットフリーランタイマのカウント値がアウトプットコンペア用と一致したと
きアウトプットコンペア一致が発生します。
• 16 ビットフリーランタイマがアップダウンカウントモード時に使用します。
• 16 MHz は , マシンクロック用で , 62.5 ms は 16 ビットフリーランタイマ 0 のカウ
ントクロック用です。
●コーディング例
ICR44
EQU
00046CH
;アウトプットコンペア 0/1 割込みレジスタ
TCCSH
EQU
0000A8H
;タイマ制御状態レジスタ
CPCLRBH
EQU
0000A4H
;コンペアクリアバッファレジスタ
OCCPBH0
EQU
000090H
;アウトプットコンペアバッファレジスタ 0
OCCPBH1
EQU
000092H
;アウトプットコンペアバッファレジスタ 1
OCSH1
EQU
00009CH
;コンペア制御レジスタ
;--------------- メインプログラム ---------------------------------------------START:
;
;スタックポインタ (SP) が既に初期化されて
:
ANDCCR #0EFH
LDI
#ICR44,r0
302
いるものと仮定
;割込み禁止
LDI
#00H,r1
STB
r1,@r0
;割込みレベル 16 ( 最強 )
LDI
#CPCLRBH,r0
;16 ビットフリーランタイマのコンペアクリ
ア
;バッファレジスタに設定
LDI
STH
#0FFFFH,r1
r1,@r0
LDI
LDI
STH
#OCCPBH0,r0
#0BFFFH,r1
r1,@r0
;アウトプットコンペアレジスタ 0 を設定
LDI
LDI
STH
#OCCPBH1,r0
#07FFFH,r1
r1,@r0
;アウトプットコンペアレジスタ 1 を設定
LDI
#OCSH1,r3
;アウトプットコンペア出力を有効
LDI
#6C33H,r2
;コンペア一致割込み 0/1 を許可
第 11 章 多機能タイマ
r2,@r3
;割込みフラグビットのクリア
LDI
#TCCSH,r0
;アップカウントダウンモード ,
LDI
#0010H,r1
;タイマクリア , 動作許可
STH
r1,@r0
STILM
#14H
;PS 中の ILM をレベル 20 に設定
ORCCR
#10H
;割込み許可
LDI
LDI
#00H,r0
#01H,r1
;無限ループ
BRA
LOOP
;
STH
LOOP
;--------------- 割込みプログラム ---------------------------------------------WARI:
ANDH
r2,@r3
;
:
;
;
ユーザ処理
:
;割込みレジスタフラグをクリア
: 割込みから復帰
RETI
;--------------- ベクタ設定 ---------------------------------------------------VECT
.ORG
FFFF8H
;割込みルーチンの設定
.DATA.W
.ORG
WARI
FFFF8H
.DATA.W
0x07000000 ;シングルチップモードの設定
.DATA.W
.END
START
;リセットベクタの設定
303
第 11 章 多機能タイマ
304
第 12 章
U-TIMER (16-bit timer for
UART baud rate
generation)
U-TIMER の概要 , レジスタの構成 , 機能 , および動
作について説明します。
12.1 概要
12.2 レジスタ説明
12.3 動作説明
305
第 12 章 U-TIMER (16-bit timer for UART baud rate generation)
12.1
概要
U-TIMER は , UART のボーレートを発生するための 16 ビットタイマです。チップ
の動作周波数と U-TIMER のリロード値の組合せで任意のボーレートを設定できま
す。また , カウントアンダフローで割込みを発生するので , インターバルタイマとし
ても使用可能です。
本品種は , 本タイマを 3 チャネル内蔵しています。インターバルタイマとして使用
する場合 2 組の U-TIMER をカスケードして使用でき , 最大 232 × φ のインターバル
をカウントできます。
カスケード接続できる組合せは , ch0 と ch1 または ch0 と ch2 のみです。
■ レジスタ一覧
15
8 7
0
(R)
UTIM0 ∼ UTIM2
UTIMR0 ∼ UTIMR2
UTIMC0 ∼ UTIMC2
306
(W)
(R/W)
第 12 章 U-TIMER (16-bit timer for UART baud rate generation)
■ ブロックダイヤグラム
図 12.1-1 U-TIMER のブロックダイヤグラム
15
0
UTIMR0~UTIMR2(リロードレジスタ)
load
15
0
UTIM0~UTIM2(タイマ)
クロック
アンダフロー
(周辺系クロック)
MUX
ch.0
のみ
コントロール
f.f.
UARTへ
U-タイマ1 アンダフロー
307
第 12 章 U-TIMER (16-bit timer for UART baud rate generation)
12.2
レジスタ説明
U-TIMER で使用するレジスタの構成および機能について説明します。
■ U-TIMER (UTIM: UTIM0 ∼ UTIM2)
UTIM
ch.0 アドレス : 00000064H
15
14
2
1
0
b15
b14
b2
b1
b0
ch.1 アドレス : 0000006CH
R
0
ch.2 アドレス : 00000074H
←アクセス
←初期値
UTIM は , タイマの値を示します。16 ビット転送命令でアクセスしてください。
■ リロードレジスタ (UTIMR: UTIMR0 ∼ UTIMR2)
UTIMR
ch.0 アドレス : 00000064H
15
14
2
1
0
b15
b14
b2
b1
b0
ch.1 アドレス : 0000006CH
W
0
ch.2 アドレス : 00000074H
←アクセス
←初期値
UTIMR は , UTIM がアンダフローしたときに UTIM にリロードされる値を格納するレ
ジスタです。
このレジスタは必ず 16 ビット転送命令でアクセスしてください。
■ U-TIMER コントロールレジスタ (UTIMC: UTIMC0 ∼ UTIMC2)
UTIMC
ch.0 アドレス : 00000067H
ch.1 アドレス : 0000006FH
ch.2 アドレス : 00000077H
7
6
5
4
3
UCC1
−
−
UTIE UNDR CLKS UTST UTCR
R/W
0
−
−
−
−
R/W
0
R/W
0
2
R/W
0
1
R/W
0
0
R/W
1
←アクセス
←初期値
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 の周期を発生します。
308
第 12 章 U-TIMER (16-bit timer for UART baud rate generation)
設定例 : • UTIMR=5, UCC1=0 ──→発生周期 = 2n+2 = 12 サイクル
• UTIMR=25, UCC1=1 ──→発生周期 = 2n+3 = 53 サイクル
• UTIMR=60, UCC1=0 ──→発生周期 = 2n+2 = 122 サイクル
U-TIMER をインターバルタイマとして使用する場合は , UCC1 の値を "0" に設定し
てください。
[ ビット 6, ビット 5] (reserved)
[ ビット 4] UTIE (U-TIMER Interrupt Enable)
UTIE は , U-TIMER のアンダフローによる割込み許可ビットです。
0 : 割込み禁止 [ 初期値 ]
1 : 割込み許可
[ ビット 3] UNDR (UNDeR flow flag)
UNDR は , アンダフローが発生したことを示すフラグです。UTIE が "1" で UNDR が
セットされるとアンダフロー割込みが発生します。UNDR はリセット , または "0" 書
込みによりクリアされます。
リードモディファイライト系命令の読出し時は , 常に "1" が読み出されます。また ,
UNDR に対する "1" 書込みは無効です。
[ ビット 2] CLKS (CLocK Select)
CLKS は , U-TIMER の ch0 と ch1 のカスケード指定ビットです。
0: クロックソースは , 周辺系クロック (φ) [ 初期値 ]
1: U-TIMER ソースクロックタイミングとして , ch0 のアンダフロー信号を使用
( ブロック図の f.f)
CLKS は ch1, ch2 でのみ有効です。ch0 では常に "0" にしてください。
<注意事項>
φ ( 周辺系クロック= CLKP) は , ギアの設定により周期が変わります。
[ ビット 1] UTST (U-TIMER STart)
U-TIMER の動作許可ビットです。
0: 停止。動作中でも "0" 書込みで停止します [ 初期値 ]。
1: 動作。動作中に "1" を書き込んでも動作は続行されます。
[ ビット 0] UTCR (U-TIMER CleaR)
UTCRに"0"を書き込むとU-TIMER は"0000H"にクリアされます(f.f. も"0"にクリア) 。
常に "1" が読まれます。
309
第 12 章 U-TIMER (16-bit timer for UART baud rate generation)
<注意事項>
ストップ状態からスタートビット UTST をアサート ( スタート ) すると自動的にリロード
します。
① ストップ状態からクリアビット UTCR とスタートビット UTST を同時にアサートする
と , カウンタを "0" クリアして直後のカウントダウンでアンダフローが発生します。
② 動作中にクリアビット UTCR をアサートすると , カウンタも "0" クリアされます。こ
のため , 出力 波形にヒゲ状の短いパルスが出力される場合があり , UART やカスケー
ドモードの上位側の U-TIMER が誤動作する可能性があります。出力クロックを使用し
ている場合には , 動作中にクリアビット によるクリアを行わないでください。
③ カスケードモードで , 下位側の UTIMR( リロードレジスタ ) に "0" または "1" をセット
すると正しくカウントされません。
④ U-TIMER コントロールレジスタのビット 1 (U-TIMER スタートビット : UTST) および
ビット 0 (U-TIMER のクリアビット : UTCR) をタイマ停止状態で同時にアサートする
と , クリアした後のカウンタロードのタイミングで同レジスタのビット 3 ( アンダフ
ローフラグ : UNDR) がセットします。また , 内部ボーレートクロックは同タイミング
で "H" レベルになります。
⑤ 割込み要求セットタイミングとクリアタイミングが重複した場合には , フラグセット
が優先され , クリア動作は無効となります。
⑥ ch.0 をカスケードモードで使用しない場合や本モジュールを単にタイマ機能として使
用する場合は , U-TIMER コントロールレジスタのビット 2 ( 基準クロック選択ビット :
CLKS) には常に "0" を書き込んでください。また , "CLKS" の設定変更は , 本モジュー
ルが動作停止の状態で行ってください。
⑦ U-TIMER リロードレジスタへの書込みとリロードのタイミングが重複した場合には ,
旧データがカウンタにロードされ , 新データがカウンタにロードされるのは次のリ
ロードのタイミングとなります。
⑧ タイマクリアとタイマカウント / リロードのタイミングが重複した場合には , タイマク
リアが最優先されます。
⑨ CLK 同期モードを使用する場合 , UTIMR のリロード値は "3" 以上に設定してください。
310
第 12 章 U-TIMER (16-bit timer for UART baud rate generation)
12.3
動作説明
U-TIMER のボーレートの計算およびカスケードモードについて説明します。
■ ボーレートの計算
UART は , 対応する U-TIMER (U-TIMER0 -> UART0, U-TIMER1 -> UART1, U-TIMER2 ->
UART2)のアンダフローフリップフロップ (図中 f.f.)をボーレート用クロックソースとし
て使用します。
● 非同期 ( 調歩同期 ) モード
UART は , U-TIMER の出力を 16 分周して使用します。
UCC1=0 時
bps =
φ
(2n+2) × 16
n
…
UTIMR (リロード値)
φ … 周辺系マシンクロック周波数
(ギアにより変動)
UCC1=1 時
bps =
φ
(2n+3) × 16
最大 bps 33 MHz 515625 bps
● CLK 同期モード
UCC1=0 時
bps =
φ
(2n+2)
UCC1=1 時
bps =
n
…
UTIMR (リロード値)
(nは"3"以上としてください)
φ … 周辺系マシンクロック周波数
(ギアにより変動)
φ
(2n+3)
最大 bps 33 MHz 4125000 bps
311
第 12 章 U-TIMER (16-bit timer for UART baud rate generation)
■ カスケードモード
U-TIMER チャネル 0 と 1 はカスケードモードで使用できます。
例 ) UTIMR ch.0 を "0003H" に , UTIMR ch.1 を "0100H" に設定した場合
図 12.3-1
φ
UTIM ch0
00H 03H 02H 01H 00H 03H 02H 01H 00H 03H 02H 01H 00H 03H 02H 01H 00H 03H 02H 01H
f.f. ch0
UTIM ch1
f.f. ch1
312
0002H
0001H
0000H
0100H
第 13 章
UART
UART の概要 , レジスタの構成 / 機能 , および
UART の動作について説明します。
13.1 概要
13.2 レジスタ詳細説明
13.3 UART の動作
13.4 応用例
13.5 ボーレートと U-TIMER のリロード値の設定例
313
第 13 章 UART
13.1
概要
UART は , 非同期 ( 調歩同期 ) 通信または CLK 同期通信を行うためのシリアル I/O
ポートです。MB91260B シリーズは , UART を 3 チャネル内蔵します。
■ UART の特長
• 全二重ダブルバッファ
• 非同期 ( 調歩同期 ) , クロック同期通信が可能
• マルチプロセッサモードのサポート
• 完全プログラマブルボーレート
• 内蔵タイマにより任意のボーレートを設定可能 ( 第 12 章 U-TIMER (16-bit timer for
UART baud rate generation) を参照 )
• 外部クロックによる自由なボーレートの設定が可能
• エラー検出機能 ( パリティ , フレーミング , オーバラン )
• 転送信号は NRZ 符号
• 割込みによる DMA 転送の起動が可能
314
第 13 章 UART
■ レジスタ一覧
15
8 7
0
SCR
SMR
(R/W)
SSR
SIDR(R)/SODR(W)
(R/W)
8 ビット
8 ビット
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
7
6
5
4
3
2
1
0
PE
ORE
FRE
BDS
RIE
TIE
7
6
5
4
3
2
1
0
MD1
MD0
−
−
CS0
−
SCKE
−
7
6
5
4
3
2
1
0
PEN
P
SBL
CL
A/D
REC
RXE
TXE
RDRF TDRE
シリアルインプットレジスタ
シリアルアウトプットレジスタ
(SIDR/SODR)
シリアルステータスレジスタ
(SSR)
シリアルモードレジスタ
(SMR)
シリアルコントロールレジスタ
(SCR)
315
第 13 章 UART
■ UART のブロックダイヤグラム
図 13.1-1 UART のブロックダイヤグラム
制御信号
受信割込み
(CPUへ)
U-タイマより
SCK(クロック)
送信クロック
クロック
選択回路
外部クロック
SCK
SIN(受信データ)
送信割込み
(CPUへ)
受信クロック
受信制御回路
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
SOT(送信データ)
受信状態判定回路
受信用シフタ
送信用シフタ
受信終了
SIDR
送信開始
SODR
DMA用
受信エラー発生信号
(DMACへ)
R-bus
MD1
MD0
SMR
レジスタ
CS0
SCKE
SCR
レジスタ
PEN
P
SBL
CL
A/D
REC
RXE
TXE
SSR
レジスタ
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
制御信号
316
第 13 章 UART
レジスタ詳細説明
13.2
UART で使用するレジスタの構成および機能について説明します。
■ シリアルモードレジスタ (SMR: SMR0 ∼ SMR2)
SMR
アドレス
ch.0 000063H
ch.1 00006BH
ch.2 000073H
Bit7
MD1
R/W
Bit6
MD0
R/W
Bit5
Bit4
−
−
Bit3
CS0
W
Bit2
−
Bit1
SCKE
R/W
Bit0
−
初期値
00--0-0-B
SMR は , UART の動作モードを指定します。動作モードの設定は動作停止中に行い , 動
作中にこのレジスタへの書込みは行わないでください。
[ ビット 7, ビット 6] MD1, MD0 (MoDe select)
UART の動作モードを選択します。
表 13.2-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" を書き込んでください。
[ ビット 3] CS0(Clock Select)
UART の動作クロックを選択します。
0 : 内蔵タイマ (U-TIMER) [ 初期値 ]
1 : 外部クロック
[ ビット 2] (reserved)
常に "0" を書き込んでください。
317
第 13 章 UART
[ ビット 1] SCKE (SCLK Enable)
クロック同期モード ( モード 2) で通信を行う場合 , SCK 端子をクロック入力端子に
するか , クロック出力端子として使うかを指定します。
クロック 非同期モード時または外部クロックモード時では"0"に設定してください。
0: クロック入力端子として機能します。[ 初期値 ]
1: クロック出力端子として機能します。
<注意事項>
クロック入力端子として使うには , CS0 ビットを "1" にして外部クロックを選択しておく
必要があります。
[ ビット 0] (Reverse) :
未使用ビットです。
■ シリアルコントロールレジスタ (SCR: SCR0 ∼ SCR2)
SCR
アドレス
ビット 7 ビット 6 ビット 5 ビット 4 ビット 3 ビット 2 ビット 1 ビット 0
初期値
ch.0 000062H
PEN
P
SBL
CL
A/D
REC
RXE
TXE
00000100B
ch.1 00006AH
R/W
R/W
R/W
R/W
R/W
W
R/W
R/W
ch.2 000072H
SCR はシリアル通信を行う場合の転送プロトコルを制御します。
[ ビット 7] PEN (Parity Enable) :
シリアル通信において , パリティを付加してデータ通信を行うかどうかを指定します。
0: パリティなし [ 初期値 ]
1: パリティあり
<注意事項>
パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード ( モード 0)
のみです。マルチプロセッサモード ( モード 1) および CLK 同期通信 ( モード 2) では , パ
リティを付加することはできません。
[ ビット 6] P (Parity) :
パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指定します。
0: 偶数パリティ [ 初期値 ]
1: 奇数パリティ
[ ビット 5] SBL (Stop Bit Length ) :
非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークであるストップビット
のビット長を指定します。
0: 1 ストップビット [ 初期値 ]
1: 2 ストップビット
318
第 13 章 UART
[ ビット 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 レジスタに受信データをス
トアしたところで受信動作を停止します。
[ ビット 0] TXE (Transmitter Enable) :
UART の送信動作を制御します。
0: 送信動作を禁止します。[ 初期値 ]
1: 送信動作を許可します。
<注意事項>
送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は ,
送信データバッファ SODR レジスタにデータがなくなった後に送信動作を停止します。
319
第 13 章 UART
■ シリアルインプットデータレジスタ (SIDR: SIDR0 ∼ SIDR2)
シリアルアウトプットデータレジスタ (SODR: SODR0 ∼ SODR2)
SIDR
アドレス
ch.0 000061H
ch.1 000069H
ch.2 000071H
Bit7
D7
R
Bit6
D6
R
Bit5
D5
R
Bit4
D4
R
Bit3
D3
R
Bit2
D2
R
Bit1
D1
R
Bit0
D0
R
初期値
不定
Bit7
D7
W
Bit6
D6
W
Bit5
D5
W
Bit4
D4
W
Bit3
D3
W
Bit2
D2
W
Bit1
D1
W
Bit0
D0
W
初期値
不定
SODR
アドレス
ch.0 000061H
ch.1 000069H
ch.2 000071H
本レジスタは , 受信 / 送信用のデータバッファレジスタです。
データ長が 7 ビットの場合 SIDR, SODR のビット 7 (D7) は無効データとなります。
BDS=1 のときは , SIDR と SODR のアクセス時に , バス上のデータの上位側と下位側を
入れ替えるため , 見かけ上ビット 0(D0) が無視されたように見えます。
SODRレジスタへの書込みは, SSR レジスタのTDREが"1"のときに書き込んでください。
<注意事項>
このアドレスへの書込みは SODR レジスタへの書込みを , 読出しは SIDR レジスタの読
出しを意味します。
■ シリアルステータスレジスタ (SSR: SSR0 ∼ SSR2)
SSR
アドレス
ch.0 000060H
ch.1 000068H
ch.2 000070H
Bit7
PE
R
Bit6
ORE
R
Bit5
FRE
R
Bit4
Bit3
RDRF TDRE
R
R
Bit2
BDS
R/W
Bit1
RIE
R/W
Bit0
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: オーバランエラー発生
320
第 13 章 UART
[ ビット 5] FRE (FRaming Error ) :
受信時にフレーミングエラーが発生したときにセットされる割込み要求フラグです。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書き
込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0: フレーミングエラーなし [ 初期値 ]
1: フレーミングエラー発生
<注意事項>
• シリアルモードレジスタのビット 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(Bit Direction Select)
転送方向選択ビットです。
0: 最下位ビット (LSB) 側から転送します。[ 初期値 ]
1: 最上位ビット (MSB) 側から転送します。
<注意事項>
シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側を入れ替えるた
め SODR レジスタへデータを書き込んだ後 , このビットを書き換えると , そのデータは無
効になります。
ハーフワード (16 ビット ) にて , SODR レジスタと BDS を同時に書き換えた場合は , 書込
み前の BDS の値に従い , SODR レジスタへの書込みが行われます。
321
第 13 章 UART
[ ビット 1] RIE (Receiver Interrupt Enable ) :
受信割込みを制御します。
0: 割込みを禁止します。[ 初期値 ]
1: 割込みを許可します。
<注意事項>
受信割込み要因は , PE, ORE, FRE によるエラー発生のほか , RDRF による正常受信があ
ります。
[ ビット 0] TIE (Transmitter Interrupt Enable) :
送信割込みを制御します。
0: 割込みを禁止します。[ 初期値 ]
1: 割込みを許可します。
<注意事項>
送信割込み要因は , TDRE による送信要求があります。
322
第 13 章 UART
UART の動作
13.3
UART には , 非同期 ( 調歩同期 ) モードとクロック同期モードがあり , さらに非同期
モードにはノーマルモードとプロセッサモードがあります。これら各動作モードに
おける動作について説明します。
■ 動作モード
UART は , 表 13.3-1 に示す動作モードを持ち , SMR レジスタ , SCR レジスタに値を設
定することによりモードを切り換えることができます。
表 13.3-1 UART の動作モード
モード
パリティ
データ長
有/無
7
有/無
8
1
無
8+1
2
無
8
0
動作モード
非同期 ( 調歩同期 ) : ノーマルモード
ストップビット長
1 ビットまたは
2 ビット
非同期 ( 調歩同期 ) : マルチプロセッサモード
クロック同期モード
無
ただし , 非同期 ( 調歩同期 ) モードでのストップビット長については送信動作のみ指定
が可能です。受信動作については常に 1 ビット長となります。上記モード以外では動
作しませんので設定しないでください。
■ UART のクロック選択
● 内部タイマ
CS0 を "0" に設定して U-TIMER を選択した場合は , U-TIMER に設定したリロード値で
ボーレートが決まります。このときのボーレートの算出式は , 次のとおりです。
非同期 ( 調歩同期 )
φ/ (16 × β)
クロック同期
φ/β
φ: 周辺系マシンクロック周波数
β: U-TIMER で設定した周期 (2n+2 または 2n+3, n はリロード値 [n ≧ 3])
非同期 ( 調歩同期 ) モードのボーレートは , 設定したボーレートの− 1% ∼+ 1% まで
の範囲で転送が可能です。
● 外部クロック
CS0 を"1"に設定して外部クロックを選択した場合のボーレートは, 外部クロックの 周
波数を φ とすると次のようになります。
非同期 ( 調歩同期 )
:
φ/16
クロック同期
:
φ
ただし , φ は最大 3.125 MHz までです。
323
第 13 章 UART
■ 非同期 ( 調歩同期 ) モード
● 転送データフォーマット
UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。図 13.3-1 に , データ
フォーマットを示します。
図 13.3-1 転送データフォーマット ( モード 0, 1)
SIN,SOT
0 1 0
Start LSB
1
1
0
0
1
0
1
1
MSB Stop
A/D Stop
(モード0)
(モード1)
転送されたデータは 01001101B
図 13.3-1 に示すように , 転送データは必ずスタートビット ("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 レジスタにデータをセットするといったんクリアされます。
324
第 13 章 UART
■ クロック同期モード
● 転送データフォーマット
UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。図 13.3-2 に ,
送受信クロックとデータとの関係を示します。
図 13.3-2 転送データフォーマット ( モード 2)
SODR書込み
マーク
SCK
RXE,TXE
SIN,SOT
1
LSB
0
1
1
0
0
1
0
MSB
(モード2)
転送されたデータは 01001101B
内部クロック (U-TIMER ) を選択している場合は , データを送信するとデータ受信用同
期クロックが自動的に生成されます。また , 外部クロックを選択している場合は , 送信
側 UART の送信用データバッファ SODR レジスタにデータがあること (TDRE フラグ
が "0") を確かめた後 , 正確に 1 バイト分のクロックを供給する必要があります。また ,
送信開始前と終了後は , 必ずマークレベルにしてください。
データ長は 8 ビットのみとなり , パリティを付加することはできません。また , スター
ト / ストップビットがないのでオーバランエラー以外のエラー検出は行われません。
● 初期化
CLK 同期モードを使用する場合の各制御レジスタの設定値を示します。
① SMR レジスタ
MD1, MD0
: "10B"
CS
: クロック入力を指定
SCKE
: 内部タイマの場合 1, 外部クロックの場合 "0"
② SCR レジスタ
PEN
: "0"
P, SBL, A/D
: これらのビットは意味を持ちません
CL
: "1"
REC
: "0" ( 初期化するため )
RXE,TXE
: 少なくとも , どちらか一方を "1"
325
第 13 章 UART
③ SSR レジスタ
RIE
: 割込みを使用する場合 "1", 割込みを使用しない場合 "0"
TIE
: "0"
● 通信開始
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 のデータは無効データとなります。
図 13.3-3 ORE, FRE, RDRF のセットタイミング ( モード 0)
データ
PE,ORE,FRE
RDRF
受信割込み
326
D6
D7
Stop
第 13 章 UART
● モード 1 の受信動作時
ORE, FRE, RDRF は受信転送が終了し最後のストップビットを検出するときにフラグ
がセットされ , CPU への割込み要求が発生します。また , 受信可能なデータ長は 8 ビッ
トのため最後の 9 ビット目のアドレス / データを示すデータは無効データとなります。
ORE, FRE がアクティブ時は , SIDR のデータは無効データとなります。
図 13.3-4 ORE, FRE, RDRF のセットタイミング ( モード 1)
D7
データ
アドレス/データ
Stop
ORE,FRE
RD
受信割込み
● モード 2 の受信動作時
ORE, RDRF は受信転送が終了し , 最後のデータ (D7) を検出するときにフラグがセット
され , CPU への割込み要求が発生します。ORE がアクティブ時は , SIDR のデータは無
効データとなります。
図 13.3-5 ORE, RDRF のセットタイミング ( モード 2)
データ
D5
D6
D7
ORE
RDRF
受信割込み
327
第 13 章 UART
● モード 0, モード 1, モード 2 の送信動作時
TDRE は SODR レジスタへ書き込まれるとクリアされ , 内部のシフトレジスタに転送
されます。次のデータ書込みが可能な状態になるとセットされ , CPU への割込み要求
が発生します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 のときは RXE も含
む ) を書き込むと , SSR レジスタの TDRE が "1" となり , 送信用のシフタが停止した後 ,
UART の送信動作を禁止します。送信動作中に SCR レジスタの TXE に "0" ( モード 2
のときは RXE も含む ) を書き込んだ後 , 送信が停止する前に SODR レジスタへ書き込
まれたデータは送信されます。
図 13.3-6 TDRE のセットタイミング ( モード 0, 1)
SODR書込み
TDRE
CPUへ割込みを要求する
SOT割込み
SOT出力
ST D0 D1 D2 D3 D4 D5 D6 D7
ST:スタートビット D0~D7:データビット
SP:ストップビット A/D :アドレス/データマルチプレクサ
SP SP ST
A/D
D0 D1 D2 D3
図 13.3-7 TDRE のセットタイミング ( モード 2)
SODR書込み
TDRE
CPUへ割込みを要求する
SOT割込み
D0 D1 D2 D3
SOT出力
D4 D5 D6 D7 D0 D1 D2 D3 D4
D5 D6 D7
■ 使用上の注意
SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の
送信データを SODR レジスタに書き込む必要があります。
通信モードの設定は , 動作停止中に行ってください。モード設定時の送受信したデータ
は保証されません。
328
第 13 章 UART
13.4
応用例
UART の応用例を示します。モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU
が接続されるような場合に使用されます。
■ 応用例
モード 1 を使用した場合のシステム構築例を図 13.4-1 に示します。このリソースでは ,
ホスト側の通信インタフェースのみサポートします。
図 13.4-1 モード 1 を使用時のシステム構築例
SOT
SIN
ホストCPU
SOT
SIN
スレーブCPU#0 SOT
SIN
スレーブCPU#1
通信はホスト CPU がアドレスデータを転送することによって始まります。アドレス
データとは , SCR レジスタの A/D が "1" のときのデータで , それにより通信先となるス
レーブ CPU が選択され , ホスト CPU との通信が可能になります。通常データは , SCR
レジスタの A/D が "0" のときのデータです。図 13.4-2 にフローチャートを示します。
このモードにおいては , パリティチェック機能は使用できませんので SCR レジスタの
PEN ビットは "0" としてください。
329
第 13 章 UART
図 13.4-2 モード 1 使用時の通信フローチャート
(ホスト CPU )
SWTART
転送モードを"1"とする
D0~D7にスレーブCPUを
選択するデータ,
A/Dに"1"をセットし
1バイト転送
A/D に"0"をセット
受信動作許可
スレーブ CPU と通信
通信終了?
NO
YES
ほかの
スレーブCPUと
通信
NO
YES
受信動作禁止
END
330
第 13 章 UART
13.5
ボーレートと U-TIMER のリロード値の設定例
ボーレートと U-TIMER のリロード値の設定例を示します。
■ ボーレートと U-TIMER のリロード値の設定例
表中の周波数は , 周辺クロック周波数を表します。また , UCC1 は , U-TIMER の UTIMC
レジスタ UCC1 ビットに設定する値です。
表中の " − " 部は , 誤差が± 1% を超えてしまうため使用できないことを示します。
表 13.5-1 非同期 ( 調歩同期 ) モード
ボーレート
ms
33 MHz
20 MHz
16.5 MHz
10 MHz
1200
833.33
858(UCC1=0)
520(UCC1=0)
428(UCC1=1)
259(UCC1=1)
2400
416.67
428(UCC1=1)
259(UCC1=1)
214(UCC1=0)
129(UCC1=0)
4800
208.33
214(UCC1=0)
129(UCC1=0)
106(UCC1=0)
64(UCC1=0)
9600
104.17
106(UCC1=1)
64(UCC1=0)
52(UCC1=1)
31(UCC1=1)
19200
52.08
52(UCC1=1)
31(UCC1=1)
26(UCC1=0)
──
38400
26.04
26(UCC1=0)
──
12(UCC1=1)
──
57600
17.36
17(UCC1=0)
──
8(UCC1=0)
──
10400
96.15
98(UCC1=0)
59(UCC1=0)
48(UCC1=1)
29(UCC1=0)
31250
32.00
32(UCC1=0)
19(UCC1=0)
15(UCC1=1)
9(UCC1=0)
62500
16.00
15(UCC1=1)
9(UCC1=0)
──
4(UCC1=0)
表 13.5-2 CLK 同期モード
ボーレート
ms
33 MHz
20 MHz
16.5 MHz
10 MHz
250 K
4.00
65(UCC1=0)
39(UCC1=0)
32(UCC1=0)
19(UCC1=0)
500 K
2.00
32(UCC1=0)
19(UCC1=0)
15(UCC1=1)
9(UCC1=0)
1M
1.00
15(UCC1=1)
9(UCC1=0)
7(UCC1=0)*
4(UCC1=0)
*: ± 1% 以上の誤差あり
331
第 13 章 UART
332
第 14 章
8/10 ビット A/D コンバータ
10 ビット A/D コンバータの概要 , レジスタの構成 /
機能 , および動作について説明します。
14.1 概要
14.2 構成
14.3 端子
14.4 レジスタ
14.5 割込み
14.6 動作説明
14.7 A/D 変換データ保護機能
14.8 使用上の注意
333
第 14 章 8/10 ビット A/D コンバータ
14.1
概要
8/10 ビット A/D コンバータには , RC 逐次比較変換方式でアナログ入力電圧を 10
ビットもしくは 8 ビットのデジタル値に変換する機能があります。入力信号は 8
チャネルのアナログ入力端子から選択し , 変換起動はソフトウェア , 内部クロック ,
外部端子トリガの 3 種類から選択できます。
■ 8/10 ビット A/D コンバータの機能
アナログ入力端子に入力されたアナログ電圧 ( 入力電圧 ) をデジタル値に A/D 変換す
る機能があり , 次の特長をもっています。
• 変換時間は , 最小 1.2 µs( マシンクロック 33MHz 時 , サンプリング時間含む ) です。
• 変換方式は , サンプルホールド回路付き RC 逐次変換比較方式です。
• 10 ビットまたは 8 ビットの分解能が選択できます。
• アナログ入力端子は 8 チャネルからプログラムで選択可能です。
• A/D 変換終了時に割込み要求を発生できます。
• 割込み許可の状態では変換データ保護機能が働くため , 連続変換してもデータの
欠落がありません。
• 変換の起動要因は , ソフトウェア , 16 ビットリロードタイマ 1 もしくは多機能タ
イマ ( 立上りエッジ ) , 外部端子トリガ ( 立下りエッジ ) から選択できます。
変換モードは 3 種類あります。
表 14.1-1 8/10 ビット A/D コンバータの変換モード
変換モード
シングル変換動作
スキャン変換動作
単発変換モード
指定したチャネル (1 チャネル
のみ ) を 1 回変換して終了。
連続した複数のチャネル ( 最大
8 チャネルまで指定可能 ) を 1
回変換して終了。
連続変換モード
指定したチャネル (1 チャネル
のみ ) を繰り返し変換。
連続した複数のチャネル ( 最大
8 チャネルまで指定可能 ) を繰
り返し変換。
停止変換モード
指定したチャネル (1 チャネル
のみ ) を 1 回変換したら一時
停止し , 次の起動がかかるま
で待機。
連続した複数のチャネル ( 最大
8 チャネルまで指定可能 ) を変
換。ただし , 1 チャネル変換ご
とに一時停止し , 次の起動がか
かるまで待機。
• 本品種では , 8 チャネルのアナログ入力をもつユニット 0 と , 2 チャネルのアナロ
グ入力をもつユニット 1, 2 の 3 ユニットを搭載しています。
• ユニット 0 の起動要因は , リロードタイマ 1 と多機能タイマの信号の OR となって
います。多機能タイマによる起動許可をしたときにリロードタイマ 1 を動作させ
ると , 両方の起動要因により A/D ユニット 0 は起動します。
334
第 14 章 8/10 ビット A/D コンバータ
14.2
構成
8/10 ビット A/D コンバータは , 次の 11 種類のブロックで構成されています。
• A/D 制御ステータスレジスタ (ADCS)
• A/D チャネル制御レジスタ (ADCH)
• A/D モード設定レジスタ (ADMD)
• A/D データレジスタ (ADCD)
• クロックセレクタ (A/D 変換起動用入力クロックセレクタ )
• デコーダ
• アナログチャネルセレクタ
• サンプルホールド回路
• D/A コンバータ
• コンパレータ
• コントロール回路
■8/10 ビット A/D コンバータのブロックダイヤグラム
図 14.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム
AVcc
*1
AN2
AN3
AN4
AVRL
MPX
D/Aコンバータ
AN10,AN8,AN0
AN11,AN9,AN1
AVRH1
AVRH2
入
力
回
路
逐次比較レジスタ
比較器
AN5
AN6
R-bus
AN7
サンプル&
ホールド回路
デコーダ
A/Dデータレジスタ
A/Dチャネル制御レジスタ
A/Dモード設定レジスタ
多機能タイマ
16ビットリロードタイマ1
A/D制御ステータスレジスタ
*2
外部端子トリガ
動作クロック
プリスケーラ
335
第 14 章 8/10 ビット A/D コンバータ
*1:
ユニット 0: AN0 ∼ AN7 の 8 チャネル
ユニット 1: AN8, AN9 の 2 チャネル
ユニット 2: AN10, AN11 の 2 チャネル
*2:
ユニット 0: 16 ビットリロードタイマ 1 or 多機能タイマ
( リロードタイマ 1 か , 多機能タイマのいずれかで起動 )
ユニット 1: 多機能タイマ
ユニット 2: 多機能タイマ
● A/D 制御ステータスレジスタ (ADCS)
一時停止および変換確認 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , A/D 変
換の分解能を選択する機能があります。
● A/D チャネル制御レジスタ (ADCH)
A/D チャネルの選択をする機能があります。
● A/D モード設定レジスタ (ADMD)
変換モードの選択と, A/D変換のコンペア時間やサンプリング時間を設定する機能があり
ます。
● A/D データレジスタ (ADCD)
A/D 変換結果を格納するレジスタです。
● クロックセレクタ
A/D 変換起動クロックを選択するセレクタです。起動クロックには , 16 ビットリロー
ドタイマチャネル 1 出力 , 多機能タイマ , または外部端子トリガが選択できます。
• ユニット 0 は , 16 ビットリロードタイマチャネル 1 出力
• ユニット 1, 2 は , 多機能タイマにより起動可能
● デコーダ
A/D チャネル制御レジスタ (ADCH) の ANE0 ∼ ANE2, ANS0 ∼ ANS2 ビットの設定か
ら , 使用するアナログ入力端子を選択する回路です。
● アナログチャネルセレクタ
8 本のアナログ入力端子の中から使用する端子を選択する回路です。
• ユニット 0 は , 8 本のアナログ入力
• ユニット 1, 2 は , 2 本のアナログ入力
● サンプルホールド回路
アナログチャネルセレクタで選択された入力電圧を保持する回路です。A/D 変換を起
動した直後の入力電圧をサンプルホールドすることで , A/D 変換中 ( 比較中 ) の入力電
圧の変動の影響を受けずに変換できます。
● D/A コンバータ
サンプルホールドされた入力電圧と比較するための基準電圧を発生します。
● コンパレータ
サンプルホールドされた入力電圧と , D/A コンバータの出力電圧を比較し , 大小を判定
します。
336
第 14 章 8/10 ビット A/D コンバータ
● コントロール回路
コンパレータからの大小信号で , A/D 変換値を決定します。A/D 変換が終了すると , 変
換結果を A/D データレジスタ (ADCD) に格納し , 割込み要求を発生します。
337
第 14 章 8/10 ビット A/D コンバータ
14.3
端子
8/10 ビット A/D コンバータの端子および端子のブロックダイヤグラムを示します。
■ 8/10 ビット A/D コンバータの端子
A/D コンバータの端子は , 汎用ポートと兼用になっています。表 14.3-1 に端子の機能 ,
入出力形式 , 8/10 ビット A/D コンバータ使用時の設定などを示します。
表 14.3-1 8/10 ビット A/D コンバータの端子
機能
端子名
端子機能
チャネル 0
PC0/AN0
チャネル 1
PC1/AN1
チャネル 2
PC2/AN2
チャネル 3
PC3/AN3
チャネル 4
PC4/AN4
チャネル 5
PC5/AN5
チャネル 6
PC6/AN6
チャネル 7
PC7/AN7
チャネル 8
PD0/AN8
チャネル 9
ポート D 入出力 /
PD1/AN9 アナログ入力
プル
アップ
設定
スタン
バイ
制御
ポート E 入出力 /
アナログ入力
チャネル 11 PE1/AN11
端子の使用に必要な
I/O ポートの設定
ポート C を入力設定
(DDRC: ビット 0 ∼
ビット 7=0)
アナログ入力に設定
(AICR0: ビット 0 ∼
ビット 7=1)
ポート C 入出力 /
アナログ入力
チャネル 10 PE0/AN10
338
入出力形式
CMOS 出力 /
CMOS 入力
または
アナログ入力
なし
あり
ポート D を入力設定
(DDRD: ビット 0,
ビット 1=0)
アナログ入力に設定
(AICR1: ビット 0,
ビット 1=1)
ポート E を入力設定
(DDRE: ビット 0,
ビット 1=0)
アナログ入力に設定
(AICR2: ビット 0,
ビット 1=1)
第 14 章 8/10 ビット A/D コンバータ
■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム
図 14.3-1 AN0 ∼ AN11 端子のブロックダイヤグラム
AICR0,AICR1,
AICR2
PDR(ポートデータレジスタ)
アナログ入力
PDRリード
出力ラッチ
PDRライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御
<注意事項>
• 入力ポートとして使用する端子は , 対応する DDR レジスタのビットを "0" に設定し , か
つ外部端子にプルアップ抵抗を付加してください。また , AICR レジスタの対応する
ビットを "0" に設定してください。
• アナログ入力端子として使用する端子は , 対応する AICR レジスタのビットを "1" に設
定してください。このときの PDR レジスタの読出し値は "0" になります。
339
第 14 章 8/10 ビット A/D コンバータ
14.4
レジスタ
8/10 ビット A/D コンバータのレジスタ一覧を示します。
■ 8/10 ビット A/D コンバータのレジスタ一覧
図 14.4-1 8/10 ビット A/D コンバータのレジスタ一覧
ビット
00007EH
340
15
14
13
12
11
10
9
8
7
6
5
4
3
AICR0
000086H
AICR1
00008EH
AICR2
000078H
ADCH0
00007CH
ADCS0
00007AH
ADCD01
ADCD00
000080H
ADCH1
ADMD1
000084H
ADCS1
000082H
ADCD11
ADCD10
000088H
ADCH2
ADMD2
00008CH
ADCS2
00008AH
ADCD21
ADMD0
ADCD20
2
1
0
第 14 章 8/10 ビット A/D コンバータ
A/D チャネル制御レジスタ (ADCH)
14.4.1
A/D チャネル制御レジスタは , A/D 変換チャネルの選択をする機能があります。
■ A/D チャネル制御レジスタ (ADCH: ADCH0 ∼ ADCH2)
アドレス:
Bit15
ch0 000078H
ch1 000080H
-
ch2 000088H
リード/ライト→ -
初期値 → (X)
R/W:リード/ライト可能
:初期値
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
-
ANS2
ANS1
ANS0
ANE2
ANE1
ANE0
-
(X)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
ANE2
0
0
0
0
1
1
1
1
ANE1
0
0
1
1
0
0
1
1
ANE0
0
1
0
1
0
1
0
1
A/D変換終了チャネル選択ビット
ANS2
0
0
0
0
1
1
1
1
ANS1
0
0
1
1
0
0
1
1
ANS0
0
1
0
1
0
1
0
1
A/D変換開始チャネル選択ビット
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
<注意事項>
• A/D ユニット 0 は , ch.0 ∼ ch.7 = AN0 ∼ AN7
• A/D ユニット 1 は , ch.0, ch.1 = AN8, AN9 (ch.2 ∼ ch.7 は空き )
• A/D ユニット 2 は , ch.0, ch.1 = AN10, AN11 (ch.2 ∼ ch.7 は空き )
• A/D ユニット 1, 2 の ANE1, ANE2, ANS2, ANS1 には , "0" を書き込んでください。
• A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。
341
第 14 章 8/10 ビット A/D コンバータ
表 14.4-1 A/D チャネル制御レジスタ (ADCH) の各ビットの機能説明
ビット名
ビット 15
未使用ビット
ビット 14
機能
• 読出し値は不定です。
• このビットへの書込みは動作に影響しません。
• A/D 変換の開始チャネルの設定および変換中チャネル番号を確認す
ANS2 ∼ ANS0:
ビット 13
A/D 変換開始
∼
ビット 11 チャネル選択
ビット
るビットです。
• A/D 変換を起動するとこれらのビットに書き込まれたチャネルから
A/D 変換を開始します。
• A/D 変換中は , 変換中のチャネル番号が読めます。停止変換モードで
の一時停止中は , 直前に変換したチャネルの番号が読めます。
• A/D 変換の終了チャネルの設定を行うビットです。
• A/D 変換を起動するとこれらのビットに書き込まれたチャネルまで
A/D 変換を行います。
• ANS2∼ ANS0と同じチャネルを設定するとそのチャネルのみ変換を
行います。また , 連続変換モードまたは停止変換モードを設定してい
るときは , これらのビットで設定されたチャネルまでの変換が終わ
ると ANS2 ∼ ANS0 で設定された開始チャネルに戻ります。設定チャ
ネルが開始チャネル>終了チャネルのときは , 開始チャネルから
AN7 まで変換し , さらに AN0 から終了チャネルまで変換し , 1 度目
ANE2 ∼ ANE0:
ビット 10
の変換動作を終了します。
A/D 変換終了
∼
チャネル選択
( 注意事項 )
ビット 8
ビット
A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) に開始チャネルを
設定した後に , A/D 変換モード選択ビット (MD1, MD0) および A/D 変
換終了チャネル選択ビット (ANE2 ∼ ANE0) をリードモディファイラ
イト系命令で設定しないでください。
ANS2 ∼ ANS0 ビットは A/D 変換動作が開始するまでは前回の変換
チャネルが読み出されるため , ANS2 ∼ ANS0 ビットに開始チャネル
を設定した後に , MD1, MD0 ビットおよび ANE2 ∼ ANE0 ビットを
リードモディファイライト系命令で設定した場合 , ANE2 ∼ ANE0
ビットの値が書き換わる可能性があります。
342
第 14 章 8/10 ビット A/D コンバータ
14.4.2
A/D モード設定レジスタ (ADMD)
A/D モード設定レジスタは , 変換モードの選択と A/D 変換のコンペア時間やサンプ
リング時間を設定する機能があります。
■ A/D モード設定レジスタ (ADMD: ADMD0 ∼ ADMD2)
アドレス:
ch0 000079H
ch1 000081H
ch2 000089H
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
MD1
MD0
STS1
STS0
CT1
CT0
ST1
ST0
リード/ライト→
初期値
→
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(1)
R/W
(1)
R/W
(1)
R/W
(1)
ST1
0
0
1
1
ST0
0
1
0
1
サンプリング時間設定ビット
9マシンサイクル (450 ns @ 20 MHz)*
15マシンサイクル (450 ns @ 33 MHz)*
17マシンサイクル (510 ns @ 33 MHz)*
28マシンサイクル (840 ns @ 33 MHz)*
*:マシンサイクルで450 ns以上となるように設定してください。
CT1
0
0
1
1
CT0
0
1
0
1
コンペア時間設定ビット
12マシンサイクル(750 ns @ 16 MHz) *
18マシンサイクル(720 ns @ 25 MHz) *
24マシンサイクル(720 ns @ 33 MHz) *
48マシンサイクル(1440 ns @ 33 MHz)*
*:マシンサイクルで720 ns以上となるように設定してください。
STS1 STS0
0
0
0
1
A/D起動要因選択ビット
ソフトウェア起動
外部端子トリガ(立下りエッジ)または
ソフトウェア起動
1
0
多機能タイマ*起動(立上りエッジ)または
ソフトウェア起動
1
1
外部端子トリガ( 立下りエッジ) または
多機能タイマ*起動(立上りエッジ)または
ソフトウェア起動
*:ユニット0の場合は, 16ビットリロードタイマ1または
多機能タイマ
R/W:リード/ライト可能
:初期値
MD1
0
0
1
1
MD0
0
1
0
1
A/D変換モード選択ビット
単発変換モード1(動作中の再起動可能)
単発変換モード2(動作中の再起動不可)
連続変換モード(動作中の再起動不可)
停止変換モード(動作中の再起動不可)
343
第 14 章 8/10 ビット A/D コンバータ
表 14.4-2 A/D モード設定レジスタ (ADMD) の各ビットの機能説明 (1 / 2)
ビット名
機能
• A/D 変換機能時の変換モードを選択するビットです。
• MD1, MD0 の 2 ビット値によって , 単発変換モード 1, 単発変換
モード 2, 連続変換モード , 停止変換モードのいずれかが選択さ
れます。
• それぞれのモードの意味は , 以下のとおりです。
ビット 7
ビット 6
MD1, MD0:
A/D 変換
モード選択
ビット
単発変換モード 1 : ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼
ANE0 の設定チャネルまでの A/D 変換を連
続して 1 度だけします。動作中の再起動が
可能です。
単発変換モード 2 : ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼
ANE0 の設定チャネルまでの A/D 変換を連
続して 1 度だけします。動作中の再起動は
できません。
連続変換モード : ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼
ANE0 の設定チャネルまでの A/D 変換を連
続して , BUSY ビットで強制停止するまで繰
り返し行います。動作中の再起動はできま
せん。
停止変換モード : ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼
ANE0 の設定チャネルまでの A/D 変換を 1
チャネルことに一時停止しながら , BUSY
ビットで強制停止するまで繰り返します。
動作中の再起動はできません。一時停止中
の再起動は , STS1, STS0 ビットで選択した
起動要因の発生によります。
( 注意事項 )
• 単発 , 連続 , 停止の各変換モードの再起動不可はタイマ , 外部ト
リガ , ソフトすべての起動に適用されます。
• ビットの書換えは , 必ず変換動作前の A/D 動作が停止している
状態で行ってください。
• A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合
は , A/D 変換中の再起動ができます。このモードではソフトウェ
ア起動 (STS1,STS0="00B" のみ設定可能です。再起動は下記の手
順で行ってください。
1. INT ビットを "0" にクリアする
2. STRT ビットに "1" を , INT ビットに "0" を同時に書き込む
A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した場合
は , A/D 変換中の再起動はできません。
A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行わ
れずに A/D 変換は終了し , データレジスタ (ADCR1/ADCR0) に
は "300H" が格納されます。したがって , A/D 変換再起動と終了
が同時に発生しないように再起動をかけてください。
344
第 14 章 8/10 ビット A/D コンバータ
表 14.4-2 A/D モード設定レジスタ (ADMD) の各ビットの機能説明 (2 / 2)
ビット名
機能
• A/D 変換の起動要因の選択を行います。
• 起動要因が兼用になっている場合には , 最初に発生した起動要
ビット 5
ビット 4
STS1, STS0:
A/D 起動要因
選択ビット
因で起動します。
( 注意事項 )
起動要因は書換えと同時に変更されますので , A/D 変換動作中
に書き換える場合には , 目的とする起動要因がない状態で切り
換えてください。
A/D 変換時のコンペア時間を選択するビットです。
アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , この
ビットに設定された時間後に変換結果のデータが確定し , A/D コン
トロールステータスレジスタ (ADCD) に格納されます。
ビット 3
ビット 2
CT1, CT0:
コンペア時間
設定ビット
( 注意事項 )
• CT1, CT0=00B, 10B, 11B のとき , コンペア時間は 720 ns 以上とし ,
CT1, CT0=01B のとき , コンペア時間は 900 ns 以上となるように
設定しなければ , 正常なアナログ変換値が得られない場合があ
ります。
• ビットの書換えは , 必ず変換動作前の A/D 動作が停止している
状態で行ってください。
A/D 変換時のサンプリング時間を選択するビットです。
A/D が起動されると , このビットに設定された時間 , アナログ入力
ビット 1
ビット 0
ST1, ST0:
サンプリング
時間設定
ビット
が取り込まれます。
( 注意事項 )
• サンプリング時間は 450 ns 以上となるように設定しなければ ,
正常なアナログ変換値が得られない場合があります。
• ビットの書換えは , 必ず変換動作前の A/D 動作が停止している
状態で行ってください。
345
第 14 章 8/10 ビット A/D コンバータ
14.4.3
A/D 制御ステータスレジスタ (ADCS)
A/D 制御ステータスレジスタは , 一時停止および変換確認 , 割込み要求の許可 / 禁止 ,
割込み要求の状態の確認 , A/D 変換の分解能を選択する機能があります。
■ A/D 制御ステータスレジスタ (ADCS: ADCS0 ∼ ADCS2)
00007CH
000084H
00008CH
リード/ライト→
初期値 →
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
BUSY
INT
INTE
PAUS
S10
-
START
-
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
-
(X)
W
(0)
-
(0)
START
0
1
S10
0
1
A/D変換分解能選択ビット
10ビット分解能(D9~D0)
8ビット分解能(D7~D0)
PAUS
0
1
一時停止フラグビット
A/D変換動作の一時停止は発生していない
A/D変換動作が一時停止中
INTE
0
1
割込み要求許可ビット
割込み要求出力の禁止
割込み要求出力の許可
INT
0
1
BUSY
R/W :リード/ライト可能
W :ライトオンリ
:初期値
346
A/D変換起動ビット
(ソフトウェア起動時のみ有効)
A/D変換機能を起動しない
A/D変換機能を起動する
0
1
割込み要求フラグビット
リード時
ライト時
A/D変換未終了
A/D変換終了
ビットクリア
変化なし、ほかへの影響なし
A/D変換中ビット
リード時
ライト時
A/D変換停止中
A/D変換動作中
A/D変換強制停止
変化なし、ほかへの影響なし
第 14 章 8/10 ビット A/D コンバータ
表 14.4-3 A/D 制御ステータスレジスタ (ADCS) の各ビットの機能説明 (1 / 2)
ビット名
機能
• A/D コンバータの動作表示ビットです。
• 読出し時 , このビットが "0" であれば A/D 変換停止中であるこ
とを示し , "1"であれば A/D 変換動作中であることを示します。
• 書込み時 , このビットへの "0" の書込みによって A/D 変換動作
ビット 15
BUSY:
A/D 変換中ビット
は強制的に停止されます。"1" の書込みでは変化せず , ほかへ
の影響はありません。
• リードモディファイライト時の読出しは , "1" が読み出されま
す。
( 注意事項 )
強制停止とソフトウェア起動 (BUSY=0, START=1) を同時に
しないでください。
• A/D 変換によって A/D データレジスタにデータがセットされ
れば , このビットは "1" にセットされます。
• このビットと割込み要求許可ビット (ADCS: INTE) が "1" のと
き , 割込み要求を発生します。
ビット 14
INT:
割込み要求フラグ
ビット
• 書込み時は , "0" でこのビットがクリアされ , "1" では変化せず ,
ほかへの影響はありません。
• リードモディファイライト時の読出しは , "1" が読み出されま
す。
( 注意事項 )
このビットへの "0" 書込みによるクリアは , A/D 停止中に行っ
てください。
ビット 13
INTE:
割込み要求許可
ビット
• CPU への割込み出力の許可 / 禁止をするビットです。
• このビットと割込み要求フラグビット (ADCS: INT) が"1"のと
き , 割込み要求を発生します。
347
第 14 章 8/10 ビット A/D コンバータ
表 14.4-3 A/D 制御ステータスレジスタ (ADCS) の各ビットの機能説明 (2 / 2)
ビット名
機能
• A/D 変換動作が一時停止したときに "1" にセットされます。
この A/D コンバータには , A/D データレジスタが 1 つしかな
いため , 連続変換モードを使用したときに旧変換結果の CPU
による読出しが完了していなければ , 新しい変換結果の書込
みにより旧変換データは失われてしまいます。したがって , 連
続変換モードを使用するときは , 基本的には変換終了ごとに
ビット 12
PAUS:
一時停止フラグ
ビット
変換結果をメモリに転送するように設定しておく必要があり
ます。ただし , 多重割込みなどで変換データの転送が次の変換
に間に合わない場合が想定できます。このビットはそのとき
の対処として考えられた機能で , 変換終了後にデータレジス
タの内容を転送するまでの間 , このビットを "1" にセットし , そ
の間は A/D 変換は停止し , 次の変換データを格納しないよう
になっています。
• リードモディファイライト時の読出しは , "1" が読み出されま
す。
• A/D 変換の分解能を選択するビットです。
• このビットに "0" を書き込むと 10 ビット分解能が選択され ,
ビット 11
S10:
A/D 変換分解能
選択ビット
"1" を書き込むと 8 ビット分解能が選択されます。
( 注意事項 )
• 分解能によって , 使用されるデータビットが異なります。
• ビットの書換えは , 必ず変換動作前の A/D 動作が停止してい
る状態で行ってください。
ビット 10
未使用ビット
• 読出し値は不定です。
• このビットへの書込みは , 動作に影響しません。
• A/D 変換動作をソフトウェア的に起動するビットです。
• このビットに "1" を書き込むと A/D 変換が起動します。
ビット 9
START:
A/D 変換起動
ビット
• 停止変換モード時は , このビットによる再起動はかかりませ
ん。
( 注意事項 )
強制停止とソフトウェア起動 (BUSY=0, START=1) を同時に
しないでください。
ビット 8
348
予約ビット
必ず , "0" を書き込んでください。
第 14 章 8/10 ビット A/D コンバータ
14.4.4
A/D データレジスタ (ADCD)
A/D データレジスタは , A/D 変換結果を格納するレジスタです。
■ A/D データレジスタ (ADCD: ADCD00, ADCD01, ADCD10, ADCD11, ADCD20,
ADCD21)
00007AH
000082H
00008AH
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
-
-
-
-
-
-
D9
D8
-
(X)
-
(X)
-
(X)
-
(X)
-
(X)
R
(X)
R
(X)
リード/ライト→ -
初期値
→(X)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
D7
D6
D5
D4
D3
D2
D1
D0
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
D9~D0
R:リードのみ
A/Dデータビット
変換データ
表 14.4-4 A/D データレジスタ (ADCD) の各ビットの機能説明
ビット名
ビット 15
∼
ビット 10
機能
• 読出し値は不定です。
未使用ビット
• このビットへの書込みは , 動作に影響しません。
• A/D 変換の結果が格納され , レジスタは 1 回の変換終了ごとに
書き換えられます。
• 通常は , 最終変換値が格納されます。
• 本レジスタの初期値は不定です。
ビット 9
∼
ビット 0
D9 ∼ D0:
データビット
( 注意事項 )
• 変換データ保護機能があります。
• A/D 変換中に本ビットにデータを書き込まないようにしてくだ
さい。
• D9, D8 は , 8 ビット分解能を選択したとき , "0" が読み出されま
す。
349
第 14 章 8/10 ビット A/D コンバータ
14.4.5
アナログ入力制御レジスタ (AICR)
アナログ入力制御レジスタは , アナログ入力を制御するレジスタです。
■ アナログ入力制御レジスタ (AICR: AICR0 ∼ AICR2)
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
AN7E
AN6E
AN5E
AN4E
AN3E
AN2E
AN1E
AN0E
リード/ライト→ R/W
初期値 →(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
AICR0
00007EH
AN7E, AN0E
0
1
AICR1
000086H
Bit15
-
リード/ライト→ -
初期値 →(X)
Bit14
Bit13
Bit12
-
-
-
(X)
-
(X)
Bit11
Bit10
Bit9
Bit8
-
-
-
AN9E
AN8E
-
(X)
-
(X)
-
(X)
R/W
(0)
R/W
(0)
AN9E, AN8E
0
1
AICR2
00008EH
アナログ入力許可ビット
アナログ入力禁止
アナログ入力許可
アナログ入力許可ビット
アナログ入力禁止
アナログ入力許可
Bit15
Bit14
Bit13
Bit12
Bit11
Bit10
Bit9
Bit8
-
-
-
-
-
-
AN11E
AN10E
-
(X)
-
(X)
-
(X)
-
(X)
-
(X)
R/W
(0)
R/W
(0)
リード/ライト→ -
初期値 →(X)
AN11E, AN10E
R/W : リード/ライト可能
:初期値
0
1
アナログ入力許可ビット
アナログ入力禁止
アナログ入力許可
表 14.4-5 アナログ入力制御レジスタ (AICR) の各ビットの機能説明
ビット名
(AICR0)
ビット 15 ∼
ビット 8
(AICR1, AICR2)
ビット 9, ビット 8
(AICR1, AICR2)
ビット 15 ∼
ビット 10
350
機能
• このビットが "0" の場合 , アナログ入力は禁止されます。
AN7E ∼ AN0E,
AN9E, AN8E,
AN11E, AN10E:
アナログ入力許可
ビット
• このビットが "1" の場合 , アナログ入力が許可されます。
• アナログ入力端子として使用する端子は , 対応する AICR
レジスタのビットを "1" に設定してください。このときの
PDR レジスタの読出し値は "0" になります。
• 読出し値は不定です。
未使用ビット
• このビットへの書込みは , 動作に影響しません。
第 14 章 8/10 ビット A/D コンバータ
14.5
割込み
8/10 ビット A/D コンバータは , A/D 変換で A/D データレジスタにデータがセットさ
れることで , 割込み要求を発生させることができます。
■ 8/10 ビット A/D コンバータの割込み
8/10ビットA/Dコンバータの割込み制御ビットと割込み要因は, 表 14.5-1 のようになっ
ています。
表 14.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因
8/10 ビット A/D コンバータ
割込み要求フラグビット
ADCS: INT
割込み要求許可ビット
ADCS: INTE
割込み要因
A/D 変換結果の A/D データレジスタへの書込み
A/D 変換動作が起動され , A/D 変換結果が A/D データレジスタ (ADCD) にセットされ
ると , A/D 制御ステータスレジスタ (ADCS) の INT ビットが "1" にセットされます。こ
のとき , 割込み要求が許可 (ADCS: INTE=1) されていると , 割込みコントローラに割込
み要求を出力します。
351
第 14 章 8/10 ビット A/D コンバータ
14.6
動作説明
8/10 ビット A/D コンバータには , 単発変換モード , 連続変換モード , 停止変換モー
ドの 3 種類のモードがあります。各モードでの動作説明をします。
■ 単発変換モードの動作
単発変換モードは , ANS(ANS0 ∼ ANS2) ビットと ANE(ANE0 ∼ ANE2) ビットで設定さ
れたアナログ入力を順次変換していき , ANE ビットで設定された終了チャネルまで変
換が終わると A/D 変換は停止します。開始チャネルと終了チャネルが同じ (ANS=ANE)
ときは ANS ビットで指定した 1 チャネルだけの変換となります。単発変換モードで動
作させるには , 図 14.6-1 の設定が必要です。
図 14.6-1 単発変換モードでの設定
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
ADCH/
ADMD
−
−
ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 MD1 MD0 STS1 STS0 CT1
◇
ADCS
ADCD
BUSY INT
◇
◇
INTE PAUS S10
◇
−
◇
◇
◇
◇
◇
−
−
−
−
−
−
◆
◆
◆
◆
◆
◆
◇
◇
◇
◇
◇
◇
◇
CT0
ST1
ST0
◇
◇
◇
START 予約
◇
0
変換データを格納
AICR
◆
◆
◇:使用ビット
◆:使用する端子の対応するビットに "1" を設定
0 :"0" を設定
参考 :
単発変換モードでの変換順序の例を以下に示します。
ANS=000B, ANE=011B のとき : AN0 → AN1 → AN2 → AN3 →終了
ANS=110B, ANE=010B のとき : AN6 → AN7 → AN0 → AN1 → AN2 →終了
ANS=011B, ANE=011B のとき : AN3 →終了
352
第 14 章 8/10 ビット A/D コンバータ
<注意事項>
• A/D ユニット 1 は , AN8, AN9 の 2 チャネル , A/D ユニット 2 は , AN10, AN11 の 2 チャ
ネルとなっております。
• A/D ユニット 1, 2 の ANE1, ANE2, ANS2, ANS1 には , 必ず , "0" を書き込んでください。
• A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。
• A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起
動ができます。このモードではソフトウェア起動 (STS1,STS0="00B") のみ設定可能で
す。再起動は下記の手順で行ってください。
1. INT ビットを "0" にクリアする
2. STRT ビットに "1" を , INT ビットに "0" を同時に書き込む
A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した場合は , A/D 変換中の再起
動はできません。
A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行われずに A/D 変換は終了
し , データレジスタ (ADCR1/0) には "300H" が格納されます。したがって , A/D 変換再
起動と終了が同時に発生しないように再起動をかけてください。
353
第 14 章 8/10 ビット A/D コンバータ
■ 連続変換モードの動作
連続変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し
ていき , ANE ビットで設定された終了チャネルまで変換が終わると ANS ビットで設定
されたアナログ入力に戻り , A/D 変換動作を続けます。開始チャネルと終了チャネルが
同じとき (ANS=ANE) は ANS で指定したチャネルだけの変換を繰り返します。連続変
換モードで動作させるには , 図 14.6-2 に示す設定が必要です。
図 14.6-2 連続変換モードでの設定
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
ADCH/
ADMD
−
−
ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 MD1 MD0 STS1 STS0 CT1
◇
ADCS
ADCD
BUSY INT
◇
◇
INTE PAUS S10
◇
−
◇
◇
◇
◇
◇
−
−
−
−
−
−
◆
◆
◆
◆
◆
◆
◇
◇
1
◇
◇
◇
◇
CT0
ST1
ST0
◇
◇
◇
START 予約
◇
0
変換データを格納
AICR
◆
◆
◇:使用ビット
◆:使用する端子の対応するビットに "1" を設定
0:"0" を設定
1:"1" を設定
参考 :
連続変換モードでの変換順序の例を以下に示します。
• ANS=000B, ANE=011B のとき : AN0 → AN1 → AN2 → AN3 → AN0 →繰返し
• ANS=110B, ANE=010B のとき : AN6 → AN7 → AN0 → AN1 → AN2 → AN6 →繰返し
• ANS=011B, ANE=011B のとき : AN3 → AN3 →繰返し
<注意事項>
• A/D ユニット 1 は , AN8, AN9 の 2 チャネル , A/D ユニット 2 は , AN10, AN11 の 2 チャ
ネルとなっております。
• A/D ユニット 1, 2 の ANE1, ANE2, ANS2, ANS1 には , 必ず , "0" を書き込んでください。
• A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。
354
第 14 章 8/10 ビット A/D コンバータ
■ 停止変換モードの動作
停止変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を 1 チャネル
ごとに一時停止しながら変換していき , ANE ビットで設定された終了チャネルまで変
換が終わると ANS ビットで設定されたアナログ入力に戻り , A/D 変換と一時停止の動
作を続けます。開始チャネルと終了チャネルが同じとき (ANS=ANE) は ANS ビットで
指定したチャネルだけの変換を繰り返します。一時停止時の変換の再起動は , STS1,
STS0 ビットで指定した起動要因を発生します。停止変換モードで動作させるには , 図
14.6-3 の設定が必要です。
図 14.6-3 停止変換モードでの設定
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
ADCH/
ADMD
−
−
ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 MD1 MD0 STS1 STS0 CT1
◇
ADCS
BUSY INT
ADCD
◇
◇
INTE PAUS S10
◇
−
◇
◇
◇
◇
◇
−
−
−
−
−
−
◆
◆
◆
◆
◆
◆
◇
◇
1
1
◇
◇
◇
CT0
ST1
ST0
◇
◇
◇
START 予約
◇
0
変換データを格納
AICR
◆
◆
◇:使用ビット
◆:使用する端子の対応するビットに "1" を設定
0:"0" を設定
1:"1" を設定
参考 :
停止変換モードでの変換順序の例を以下に示します。
• ANS=000B, ANE=011B のとき :
AN0 →一時停止→ AN1 →一時停止→ AN2 →一時停止→ AN0 →繰返し
• ANS=110B, ANE=001B のとき :
AN6→一時停止→AN7→一時停止→AN0→一時停止→AN1→一時停止→AN6→繰返し
• ANS=011B, ANE=011B のとき :
AN3 →一時停止→ AN3 →一時停止→繰返し
<注意事項>
• A/D ユニット 1 は , AN8, AN9 の 2 チャネル , A/D ユニット 2 は , AN10, AN11 の 2 チャ
ネルとなっております。
• A/D ユニット 1, 2 の ANE1, ANE2, ANS2, ANS1 には , 必ず , "0" を書き込んでください。
• A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。
355
第 14 章 8/10 ビット A/D コンバータ
14.7
A/D 変換データ保護機能
割込み許可状態で A/D 変換を実行すると , 変換データ保護機能が働きます。
■ A/D 変換データ保護機能
この A/D コンバータでは , 変換データ格納用のデータレジスタが 1 つしかないので , A/
D 変換をすると , 変換終了時にデータレジスタ内の格納データを書き換えます。そのた
め , 変換データのメモリへの転送が間に合わないと前回のデータが一部欠落します。こ
の対策として , 割込み許可 (INTE=1) のときは , 以下のようにデータ保護機能が働くよ
うになっています。
変換データが A/D データレジスタ (ADCD) に格納されると A/D 制御ステータスレジス
タ (ADCS) の INT ビットが "1" にセットされます。この INT ビットが "1" の間 , 次の変
換終了後も ADCD への変換データの格納は行われず , PAUS ビットをセットし , A/D は
一時停止状態になります。一時停止中 , 直前の変換データを保持しています。一時停止
状態の解除は , INT ビットのクリアにより行われます。一時停止状態解除後 , 保持して
いた変換データを ADCD に格納し , 次の動作に移行します。
<注意事項>
• 変換データ保護機能は , 割込み許可 (ADCS: INTE=1) 状態でしか動作しません。
• 一時停止中に再起動をかけると待機データが壊れます。
356
第 14 章 8/10 ビット A/D コンバータ
14.8
使用上の注意
8/10 ビット A/D コンバータを使用するときの注意点を示します。
■ 8/10 ビット A/D コンバータ使用上の注意
● アナログ入力端子
A/D 入力端子はポートの入出力端子と兼用になっており , ポート方向レジスタ (DDR)
とアナログ入力許可レジスタ (AICR) で切り換えて , 使用するようになっています。ア
ナログ入力として使用する端子では , DDR の対応するビットに "0" を書き込んでポー
ト設定を入力にした上で , AICR レジスタでアナログ入力モード (AICRx=1) に設定して ,
ポート側の入力ゲートを固定してください。ポート入力モード (AICRx=0) の状態では
中間レベルの信号が入力されるとゲートに入力リーク電流が流れます。
● 内部タイマで使用するときの注意
A/D コンバータを内部タイマで起動するとき , A/D 制御ステータスレジスタ (ADMD)
の STS1, STS0 ビットで設定しますが , このとき , 内部タイマの入力値はインアクティ
ブ側 ( 内部タイマのときは "L") にしておいてください。アクティブ側にしておくと ,
ADMD レジスタへの書込みと同時に動作し始めるときがあります。
● A/D コンバータの電源・アナログ入力の投入順序
A/D コンバータの電源 (AVCC, AVRH0, AVRH1, AVRH2) および , アナログ入力 (AN0 ∼
AN11) への印加は , 必ずデジタル電源 (VCC) の投入後か同時に投入してください。また ,
電源切断時は A/D コンバータの電源およびアナログ入力の切断後にデジタル電源 (VCC)
を切断するか同時に切断してください。
● A/D コンバータの電源電圧について
ラッチアップ防止のため , A/D コンバータの電源 (AVCC) は , デジタル電源 (VCC) の電
圧を超えないようにしてください。
● A/D ユニット 1, 2 の設定について
A/D ユニット 1 は , AN8, AN9 の 2 チャネル , A/D ユニット 2 は , AN10, AN11 の 2 チャ
ネルとなっております。そのため , A/D ユニット 1, 2 の使用時 , A/D チャネル制御レジ
スタ (ADCH) の ANE1, ANE2, ANS2, ANS1 には , 必ず , "0" を書き込んでください。ま
た , 必ず , "ANS0 ≦ ANE0" となるように設定してください。
● A/D 変換の再起動について
A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起
動ができます。このモードではソフトウェア起動 (STS1,STS0="00B") のみ設定可能で
す。再起動は下記の手順で行ってください。
1. INT ビットを "0" にクリアする
2. STRT ビットに "1" を , INT ビットに "0" を同時に書き込む
A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した場合は , A/D 変換中の再起
動はできません。
A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行われずに A/D 変換は終了
357
第 14 章 8/10 ビット A/D コンバータ
し , データレジスタ (ADCR1/ADCR0) には "300H" が格納されます。したがって , A/D 変
換再起動と終了が同時に発生しないように再起動をかけてください。
358
第 15 章
積和演算回路
積和演算回路の特長 , レジスタの構成 / 機能 , およ
び積和演算マクロ ( 定義と各命令 ) について説明し
ます。
15.1 概要
15.2 レジスタ説明
15.3 動作説明
15.4 命令詳細説明
359
第 15 章 積和演算回路
15.1
概要
積和演算回路の特長 , レジスタ一覧 , ブロックダイヤグラムおよび命令定義を示しま
す。
■ 特長
• 高速積和演算 (1 システムクロックサイクル )
• データ形式
: 16 ビット固定小数点 (16 × 16 + 40 ビット )
• 命令領域
: 256 × 16 ビット
• データ領域
: 64 × 16 ビット× 2 組
• 丸め処理可能
• 飽和処理可能
• 加算項目数
: 最大 64 項
• 命令
: MAC 命令 , STR 命令 , JMP 命令
• 遅延処理
: 64 × 16 ビット内で自由に転送可能
• 固定小数点方式
: Q8 ∼ Q15 の内から選択可能
• プログラム実行制御
: 8 とおりの命令を選択可能
• 変数モニタ
: 8 × 16 ビットまでの計算結果をプログラム停止させずに
モニタ可能
360
第 15 章 積和演算回路
■ レジスタ一覧
15
8 7
0
アドレス :39EH
予約領域
アドレス :3A0H
DSP-PC ( プログラムカウンタ )
アドレス :3A2H
DSP-LY( 遅延レジスタ ) 上位
DSP-LY( 遅延レジスタ ) 下位
Read/Write
アドレス :3A4H
DSP-OT0( 出力キュー 0) 上位
DSP-OT0( 出力キュー 0) 下位
Read
アドレス :3A6H
DSP-OT1( 出力キュー 1) 上位
DSP-OT1( 出力キュー 1) 下位
Read
アドレス :3A8H
DSP-OT2( 出力キュー 2) 上位
DSP-OT2( 出力キュー 2) 下位
Read
アドレス :3AAH
DSP-OT3( 出力キュー 3) 上位
DSP-OT3( 出力キュー 3) 下位
Read
アドレス :3ACH
予約領域
予約領域
アクセス禁止
アドレス :3AEH
予約領域
予約領域
アクセス禁止
アドレス :3B0H
DSP-OT4( 出力キュー 4) 上位
DSP-OT4( 出力キュー 4) 下位
Read
アドレス :3B2H
DSP-OT5( 出力キュー 5) 上位
DSP-OT5( 出力キュー 5) 下位
Read
アドレス :3B4H
DSP-OT6( 出力キュー 6) 上位
DSP-OT6( 出力キュー 6) 下位
Read
アドレス :3B6H
DSP-OT7( 出力キュー 7) 上位
DSP-OT7( 出力キュー 7) 下位
Read
アクセス禁止
DSP-CSR ( コントロール / ステータス ) Read/Write
アドレス:
積和演算
アドレス
マクロ
C000H
00H
:
X-RAM (係数RAM)...64×16ビット
C07EH
Read/Write
:
3FH
アドレス:
積和演算
アドレス
マクロ
C080H
00H
:
Y-RAM (変数RAM)...64×16ビット
Read/Write
:
C0FEH
3FH
アドレス:
積和演算
アドレス
マクロ
C100H
00H
:
C2FEH
(注意事項)
I-RAM (命令RAM)...64×16ビット
Read/Write
:
FFH
・CPUから上記レジスタ/RAM領域への書込みは, 必ず偶数番地へのハーフワード
(またはワード)転送命令で行ってください。
・RAM領域へのCPUの転送命令によるバイト書込みや読出しは可能です。
ただし, 積和演算回路としてこのRAM領域を使用する場合は, 必ず偶数番地への
ハーフワード (またはワード) 転送命令で行ってください。
361
第 15 章 積和演算回路
■ ブロックダイヤグラム
積和演算回路のブロックダイヤグラムを図 15.1-1 に , 概略説明を表 15.1-1 に示します。
図 15.1-1 積和演算回路のブロックダイヤグラム
動作制御部
DSP-CSR
命令制御部
DSP-PC
命令デコード部
I-RAM
IF
DEC1
(256×16ビット)
DEC
演算部
X-RAM
(64×16ビット)
Y-RAM
40
ADD
16
16
MUL
40
ACC
40
RND
16
CLP
32
(64×16ビット)
遅延レジスタ
DSP-LY
LY-DLY
MPX
DSP-OT0~DSP-OT7
変数モニタ
362
第 15 章 積和演算回路
表 15.1-1 ブロックダイヤグラム概略説明
ブロック
レジスタ
機能
積和演算マクロの動作制御レジスタです。CPU および servo block から
以下の動作を制御します。
動作制御部
DSP-CSR
• 計算開始 / 終了指示
• 割込み制御
• プログラムフロー制御 (積和演算マクロの条件付き分岐命令に使用)
DSP-PC
プログラムカウンタ
CPU から設定した先頭番地よりプログラム実行を開始します。
I-RAM
256 × 16 ビットの命令 RAM です。
積和演算マクロが計算停止中 , CPU から読出し / 書込みできます。
計算開始前に CPU から命令コードをロードしてください。
IF
命令フェッチレジスタです。
DEC1*
DEC*
命令デコーダです。
X-RAM
64 × 16 ビットのデータ RAM です。
積和演算マクロが計算停止時 , CPU から読出し / 書込みできます。
計算開始前に CPU から係数をロードしてください。
Y-RAM
64 × 16 ビットのデータ RAM です。
積和演算マクロが計算停止時 , CPU から読出し / 書込みできます。
計算開始前に CPU から変数をロードしてください。
MUL*
16 × 16 → 32 ビット乗算器です。
ADD*
32 + 40 → 40 ビット 加算器です。
ACC*
40 ビットのアキュムレータです。
CLP*
RND*
SLQ*
40 → 16 ビット転送時 , 範囲外の 16 ビットデータ時に最大値に飽和し
ます。
40 → 16 ビット転送時 , 下位ビットの丸め処理を行います。
40 → 16 ビット転送時 , 転送ビットを選択します。
遅延レジスタ
DSP-LY
LY-DLY*
遅延レジスタです。
積和演算時 , 変数値を保持し , Y-RAM に書き戻すことができます。
変数モニタ出力
DSP-OT0
∼
DSP-OT7
変数モニタ出力レジスタです。
Y-RAM の 0 ∼ 7 番地の内容と同じ値を保持しています。
計算中 (Y-RAM のアクセス禁止中 ) に Y-RAM の 0 ∼ 7 番地の値をモ
ニタできます。
命令制御部
演算部
*:CPU からアクセス不可
363
第 15 章 積和演算回路
■ 命令定義
積和演算マクロの命令は , 大きく分けて 3 種類 (MAC/STR/JMP 命令 ) あります。以下
の説明では , 3 種類 以外の命令を表記上使用していますが , その場合下記に示す命令の
階層構成となります。
・MAC命令
積和命令(CLAC ビット = 0)
乗算命令(CLAC ビット = 1)
・STR命令
HLT命令(HLT ビット = 1)
INT命令(SIRQ ビット = 1)
・JMP命令
無条件分岐命令(COND ビット = 0)
条件付き分岐命令(COND ビット = 1)
HLT命令(HLT ビット = 1)
INT命令(SIRQ ビット = 1)
364
第 15 章 積和演算回路
レジスタ説明
15.2
積和演算回路で使用するレジスタの構成および機能について説明します。
■ DSP-CSR ( コントロール / ステータスレジスタ )
コントロール / ステータスレジスタは 8 ビット長のレジスタであり , 積和演算マクロの
ステート切換え/CPUへの割込みのコントロールおよび積和演算マクロの状態を示す各
種フラグより構成されています。また , 積和演算マクロの条件付き分岐命令の条件設定
も本レジスタで設定を行います。
本レジスタは , 8 ビットレジスタで外部より常に読出し / 書込み可能です。
● コントロール機能
• 積和演算マクロのステート ( 計算の開始 / 停止 ) の遷移 (GoDSP and HltDSP)
• CPU に対する割込みマスク (IeDSP)
• 積和演算マクロの条件付き分岐命令の条件設定 (USR2, USR1, USR0)
• 積和演算マクロのステート ( 計算の開始 / 停止 ) の遷移 (GoDSP and HltDSP)
• CPU に対する割込みマスク (IeDSP)
• 積和演算マクロの条件付き分岐命令の条件設定 (USR2, USR1, USR0)
● ステータス機能
• 積和演算マクロの現在のステート取得フラグ (RunDSP)
• 割込み要求フラグ (IrqDSP)
• 飽和処理フラグ (SatDSP)
DSP-CSR
Bit7
アドレス : 3A1H
Bit6
Bit5
USR2
USR1
USR0 IrqDSP IeDSP HltDSP GoDSP Write
USR1
USR0 IrqDSP IeDSP
−
−
SatDSP USR2
Bit4
Bit3
Bit2
Bit1
(R)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(W)
0
0
0
0
0
0
0
Bit0
RunDSP Read
(R/W) ←リード / ライト
0
←初期値
[ ビット 7] SatDSP ( 飽和処理フラグ ) : リードオンリ
• 計算途中で飽和処理を行ったことを保持するステータスフラグです。
• STR 命令で飽和処理を指示し (CLP = 1) , 実際に飽和処理が行われた場合にセッ
トされます。また , 計算中一度セットされると次の計算開始まで値を保持してい
ます。
• 本ビットは計算開始によりクリアされます。
Set 要因
: 計算途中で STR 命令による飽和処理が行われた場合セット
Clear 要因 : 計算開始によりクリア [ 初期値 ]
• リセット時 : "0" に初期化されます ( 飽和処理なし )。
• 読出しのみ可能です。書込みしてもビット値は変化しません。
365
第 15 章 積和演算回路
[ ビット 6 ∼ビット 4] USR2, USR1, USR0 ( ジャンプ条件設定ビット ) : Read/Write
• 本ビットは , 積和演算マクロの条件付き分岐命令 (COND ビット =1 のとき ) で参
照され , 本ビット値と条件付き分岐命令の UBP フラグが一致 ( 条件成立 ) すると
ジャンプします。すなわち , この条件付き分岐命令と計算命令を組み合わせるこ
とで 8 種類の計算ルーチンを CPU 側から切換え可能です。
• リセット時 : "000B" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 3] IrqDSP ( 割込み要求フラグ ) : Read/Write
• 積和演算マクロのソフトウェア割込み要求が発生したことを示すフラグです。割
込み要求が許可されているとき (IeDSP = 1) に , 本ビットがセットされると CPU
に対し割込み要求を発生します。
• 積和演算マクロの割込み要求は STR 命令 /JMP 命令の SIRQ ビットを "1" にする
ことで , ソフトウェア的に発生させます。
Set 要因
: 積和演算マクロのソフトウェア割込み (STR 命令 /JMP 命令 ) 発生に
よりセット
Clear 要因 : "0" 書込みによりクリア [ 初期値 ]
• リセット時 : "0" に初期化されます ( 割込み要求なし ) 。
• 読出し / 書込み可能です。ただし , 書込みは "0" のみ可能で "1" を書き込んでも
ビット値は変化しません。
• リードモディファイライト命令における読出し値は , ビット値にかかわらず常に
"1" です。
[ ビット 2] IeDSP ( 割込み要求許可ビット ) : Read/Write
• CPU に対する割込み要求 (IrqDSP = 1) を以下のように制御します。
0: 割込み要求出力禁止 (IrqDSP がセットされても割込み発生せず ) [ 初期値 ]
1: 割込み要求出力許可 (IrqDSP がセットされると割込み発生する )
• リセット時 : "0" に初期化されます ( 割込み要求出力禁止 )。
• 読出し / 書込み可能です。
[ ビット 1] HltDSP ( 計算停止 ) : Write only
• 計算の強制停止ビットです。
• 本ビットに "1" を書き込むと , 計算実行中 (RunDSP = 1) であれば実行中の命令が
終了後 (2 サイクルであれば 2 サイクル後 ) 計算を停止し RunDSP フラグがクリア
されます。
• 計算停止中の場合 , 何も影響を与えません。
• 本ビットにより強制停止させた場合 , DSP-PC は停止した命令の次の命令アドレ
スを指していますので , 命令の継続実行が可能です。
- "1" 書込みにより強制停止
- "0" 書込みは無効。読出しは常に "0"
• リセット時 : "0" に初期化されます。
366
第 15 章 積和演算回路
[ ビット 0] GoDSP ( 計算開始 ) : Write only
RunDSP ( 計算実行中フラグ ) : Read only
• GoDSP ビットに "1" を書き込むことにより , 計算の開始を指示します。計算停止
中 (RunDSP = 0) であれば計算の起動となり , RunDSP フラグがセットされます。
既に計算実行中 (RunDSP = 1) であれば , 何も影響を与えません。
• RunDSP フラグは , 計算を実行中であることを示します。計算の開始でセットさ
れ , HltDSP ビットへの "1" 書込みまたは積和演算マクロの HLT 命令実行でクリ
アされます。
• 計算実行中 (RunDSP = 1) は , DSP-PC, DSP-LY, X-RAM, Y-RAM, I-RAM は CPU か
らアクセスできません。DSP-CSR, DSP-OT0 ∼ DSP-OT7 のみがモニタできます。
• 計算を開始するには , 起動と同時またはそれ以前に DSP-PC へ計算ルーチンの先
頭アドレスを格納する必要があります。
(1) 書込み時機能 (GoDSP: 計算開始 )
0: 機能なし / 動作に影響なし
1: 計算停止中の場合 → 計算開始
計算実行中の場合 → 何も影響がありません
(2) 読出し時機能 (RunDSP: 計算実行中フラグ )
0: 計算を停止中である [ 初期値 ]
クリア要因→ HltDSP 1 書込みおよび HLT 命令実行
1: 計算を実行中である
Set 要因→ 計算開始
• リセット時 : "0" に初期化されます ( 計算停止中 )。
• 読出し / 書込み可能です。ただし , 書込み時と読出し時では , 上記のように意味
が異なります。
• リードモディファイライト命令における読出し値は , ビット値にかかわらず常に
"0" です。
■ DSP-PC ( プログラム・カウンタ )
プログラム・カウンタは 8 ビット長のカウンタであり , 積和演算マクロで実行する命令
コードが格納されているメモリ (I-RAM) アドレスを示しています。プログラム・カウン
タは命令の実行により自動的に更新されますが , 積和演算マクロの JMP により書き換え
ることができます。また , 計算停止中でのみ CPU よりアクセス (R/W) 可能であり , 計算
開始と同時またはそれ以前に DSP-PC へ計算ルーチンの先頭アドレスを格納する必要が
あります。
HLT 命令実行後 , または DSP-CSR の HltDSP へ 1 書込み後 , DSP-PC は停止した命令の
次のアドレスを指しており , 再度 GoDSP をセットすることにより継続してプログラム
を実行できます。
367
第 15 章 積和演算回路
DSP-PC
アドレス : 0003A0H
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
−
−
−
−
−
−
−
−
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
X
X
X
X
X
X
X
Write
Read
(R/W) ←リード / ライト
X
←初期値
• リセット時 : 不定となります。
• 読出し / 書込み可能ですが , 積和演算マクロが計算停止中 (DSP-CSR: RunDSP = 0)
でのみアクセス可能です。
• 計算実行中 (DSP-CSR: RunDSP = 1) では , バスから切り離されるため CPU からの
アクセスはできなくなります。
368
第 15 章 積和演算回路
■ DSP-LY ( 遅延レジスタ )
DSP-LY は 16 ビット長のレジスタであり , 積和演算マクロの MAC 命令の遅延書込み
ビット (LDLY) が "1" のときに使用されます。計算中 (DSP-CSR: RunDSP = 1) はアク
セスができません。
• MAC 命令の LDLY ビットが "1" のときは , 次の 2 つの動作を順次実行します。
① DSP-LY レジスタの内容を LY-DLY レジスタに転送する。
② MAC 命令で選択した Y-RAM の読出しデータを DSP-LY レジスタに格納する。
• MAC 命令の STLY ビットが "1" のときは , MAC 命令実行後に LY-DLY レジスタ
の値を MAC 命令で選択した Y-RAM のアドレスへ書き込みます。このとき , 実行
時間は 2 サイクルになります。
DSP-LY
bit 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
Write
アドレス : 0003A2H
Read
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
X
X
X
X
X
X
X
(R/W) ←リード / ライト
X
←初期値
• リセット時 : 不定となります。
• 読出し / 書込み可能ですが , DSP-LY が計算停止中 (DSP-CSR: RunDSP = 0) でのみ
アクセスが可能です。計算実行中 (DSP-CSR: RunDSP = 1) では , バスから切り離
されるため CPU からのアクセスはできなくなります。
■ DSP-OT0 ∼ DSP-OT7 ( 変数モニタレジスタ )
変数モニタレジスタとして , 16 ビットのレジスタを 8 個もちます。電源投入時の初期
状態を除き , Y-RAM の 0 ∼ 7 番地と同じ内容を保持しています。CPU より常に読出し
のみ可能であり , 計算中であっても Y-RAM の 0 ∼ 7 番地の内容をモニタできます。
DSP-OT0 ∼ DSP-OT7
bit 15 14 13 12 11 10
DSP-OT0
DSP-OT1
DSP-OT2
DSP-OT3
DSP-OT4
DSP-OT5
DSP-OT6
DSP-OT7
0003A4H
0003A6H
0003A8H
0003AAH
0003B0H
0003B2H
0003B4H
0003B6H
9
8
7
6
5
4
3
2
1
0
Read Only
(R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) (R) ←リード / ライト
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X ←初期値
• リセット時 : 不定となります。
• 常に読出しのみ可能です。積和演算マクロがプログラム実行中であっても読出し
可能です。
369
第 15 章 積和演算回路
15.3
動作説明
積和演算回路の動作モードおよび命令定義について説明します。
■ 動作モード
積和演算マクロの動作は , DSP-CSR レジスタの操作により制御されます。
積和演算マクロの状態としては , 以下の 2 種類の状態があり , 停止状態で GoDSP ビッ
トに "1" を書き込むか Servo Block から GODSPSV 信号を入力することにより , 積和演
算マクロはプログラム実行を開始します。また , 停止中と計算中とでは CPU からアク
セス可能なレジスタおよびメモリに違いがあります。
HltDSP = 1 or HLT
Stopped
RunDSP = 0
Running
RunDSP = 1
GoDSP =
1
各状態について説明します。
• 停止中 :
積和演算マクロは停止状態です。
CPU から命令 RAM (I-RAM), データ RAM (X-RAM and Y-RAM) および
積和演算マクロの全レジスタがアクセスできます。
HltDSP に "1" を書き込むか HLT 命令の実行により , 本状態に遷移しま
す。また , システムリセット時は本状態に初期化されます。
• 計算中 :
積和演算マクロは計算状態です。
停止状態から GoDSP ビットに "1" を書き込むと , 本状態に遷移し現在
の DSP-PC( プログラムカウンタ ) からプログラム実行を開始します。
HltDSP ビットに "1" を書き込むか HLT 命令が実行されると , 停止状態
に遷移しプログラム実行を停止します。
CPU からは , DSP-CSR, DSP-OT0 ∼ DSP-OT7 レジスタのみアクセスで
きます ( その他のレジスタおよび RAM はアクセス禁止 *)。
*: アクセス禁止ですが , R/W した場合は以下のようになります。
書込み → 何も影響ありません ( 書き込まれません )。
読出し → 不定
370
第 15 章 積和演算回路
■ 命令動作
DSP-CSR レジスタの GoDSP ビットに "1" を書き込むと , 積和演算マクロは現在の DSPPC ( プログラムカウンタ ) から命令実行を開始します (CPU の動作と並列して動作しま
す)。
実行に先立って , I-RAM および DSP-PC の値を設定してください (DSP-CSR と DSP-PC
は同時設定が可能です ) 。
積和演算マクロの命令実行が開始されると , 以下の動作制御が行われます。
• 積和演算マクロで HLT 命令 * を実行すると , その命令実行が終了後 , 停止状態に
遷移します。
このとき , DSP-PC は HLT 命令の次のアドレスを指した状態で停止します。
• JMP 命令や STR 命令実行時 , CPU に割込み要求を発生させることができます ( 割
込みマスク可能 )。
• DSP-CSR の USR0 ∼ USR2 ビットを参照する条件付き分岐命令を使用し , プログ
ラムフローの切換えを行います。
*: HLT 命令とは , JMP, STR 命令の HLT ビットが "1" である命令のことです。
■ 演算機能
積和演算マクロは , 2 組の 16 ビットデータ RAM (X-RAM and Y-RAM) を持ち , 積和 ( お
よび乗算 ) 命令実行時 , 各組の RAM データを読み込んで符号付き積和 ( および乗算 )
演算を行い , 40 ビットのアキュムレータに格納します。以下にデータ形式を示します。
15
×)
39
+)
0
S
X-RAM
S
Y-RAM
31
0
S .... S
乗算結果 (32ビット)
S
積和命令直前のAcc
S
ACC (Accumulator)
<注意事項>
• 乗算命令の場合は , 乗算結果を 40 ビットに符号拡張した値がアキュムレータに格納さ
れます ( 直前のアキュムレータの内容はゼロクリアされます )。
• "S" は符号ビットを示します。
積和命令を数多く繰り返してアキュムレータがオーバフローした場合は , 結果が保証
されません。
積和命令は連続して 512 回以上行わないでください。
371
第 15 章 積和演算回路
■ 遅延書込み機能
積和 ( および乗算 ) 命令実行時 , 以下の転送動作も併せて行うことができます。本転送
と演算処理を併用することで , デジタルフィルタにおけるデータの遅延処理が容易に
実現できます。
• Y-RAM からの読出し値を DSP-LY レジスタに格納
• 命令実行前の DSP-LY レジスタ値を , LY-DLY レジスタを経由で Y-RAM の読出し
アドレスに遅延書込み
■ 演算結果の転送処理
アキュムレータに格納された計算結果を X/Y-RAM へ転送する場合 , 16 ビット幅で転
送されますが , その際 , 以下に示す位取り処理が行われて転送されます。
• 出力ビット選択
40 ビットのアキュムレータのうち , 以下に示すビット幅を選択できます。
ビット 27 ∼ 12 (Q12 フォーマット )
ビット 28 ∼ 13 (Q13 フォーマット )
ビット 29 ∼ 14 (Q14 フォーマット )
ビット 30 ∼ 15 (Q15 フォーマット )
ビット 23 ∼ 8 (Q8 フォーマット )
ビット 24 ∼ 9 (Q9 フォーマット )
ビット 25 ∼ 10 (Q10 フォーマット )
ビット 26 ∼ 11 (Q11 フォーマット )
• 丸め処理
選択した出力ビットの LSB の直下のビット値を 0 捨 1 入します。
• 飽和処理
丸め後の 16 ビットデータの符号ビット (MSB) と , アキュムレータ内の上位ビット
の比較をして異なるビットがある場合 , 飽和処理が行われます。飽和結果は , ア
キュムレータの符合ビット (MSB) によって以下の値になります。
アキュムレータの符号が "0" の場合→正の最大値 "7FFFH" に飽和されます。
アキュムレータの符号が "1" の場合→負の最大値 "8000H" に飽和されます。
以下に例を示します。
372
第 15 章 積和演算回路
図 15.3-1
39 ........... 28 27 ............... 12 11 ............ 0
7 F F
H
F F F F
H
F F F F
H
0 0 0 0
H
アキュムレータ
(ビット27~ビット12選択):位取り選択
1
+)
0
F F F
(アキュムレータのBit 11):丸め処理
H
Bit 15
比較
(正の最大値に飽和):飽和処理
飽和処理
7 F F F
H
転送データ
■ 変数モニタ出力
積和演算マクロは , Y-RAM の 0 ∼ 7 番地の内容を常に保持しているレジスタ (DSP-OT0 ∼
DSP-OT7) があります。Y-RAM の 0 ∼ 7 番地にデータ書込みが行われた際 (CPU から
の書込み , STR 命令による書込み , 遅延書込み ), DSP-OT0 ∼ DSP-OT7 レジスタにも同
じ値が格納されます。
計算中は CPU からの Y-RAM へのアクセスが禁止されますが , CPU で参照したい計算
結果を STR 命令で Y-RAM の 0 ∼ 7 番地へ格納することによって CPU から常に計算結
果を参照することができます。
<注意事項>
積和演算マクロにおいて DMA 転送を使用する場合は ,
• CPU クロックは周辺クロックにと同じもしくは速い設定にしてください。
• CPU クロックが周辺クロックよりも遅い場合 , DMA 転送は正しく動作しません。
373
第 15 章 積和演算回路
15.4
命令詳細説明
積和演算回路で使用する命令の詳細説明を示します。
■ MAC 命令
動作 :
ACC
← ACC + X data × Y data
LY-DLY
← DSP-LY
DSP-LY
← Y data (LDLY = 1)
Y-RAM
← LY-DLY (STLY = 1)
説明 :
アキュムレータに X-RAM の X データと Y-RAM の Y データの乗算
値を加算します。
同時に DSP-LY レジスタの内容を LY-DLY レジスタへ転送します。
ワード数 :
サイクル数:
1 ワード (16 ビット幅 )
1 システムクロック cycle (STLY = 1 のとき 2 サイクルになります。
)
動作コード :
Bit
15
14
13
12
1
CLAC
STLY
LDLY
11...................6 5....................0
X-Addr
Y-Addr
[ ビット 14] CLAC (Clear ACC)
本ビットをセットすることにより乗算命令として機能します。
0: ACC ← ACC + X data × Y data [ 積和命令 ]
1: ACC ← 0 + X data × Y data [ 乗算命令 ]
[ ビット 13] STLY (Store LY)
• このビットが "1" のときに以下の動作を行います。"0" の場合は演算のみ実行さ
れます。
• 演算後 , さらに LY-DLY レジスタの内容を , Y-RAM の Y-Addr 番地へ格納します。
• 本ビットをセットした場合のみ実行時間が 2 サイクルとなります。
[ ビット 12] LDLY (Load LY)
• このビットが "1" のときに以下の動作を行います。"0" の場合は演算のみ実行さ
れます。
• 演算時に Y-RAM の Y-Addr 番地の内容を DSP-LY レジスタにも格納します。
[ ビット 11 ∼ビット 6] X-Addr (X-RAM Address)
X-RAM 内の X データを指定するためのアドレス指定ビットです。
374
第 15 章 積和演算回路
[ ビット 5 ∼ビット 0] Y-Addr (Y-RAM Address)
Y-RAM 内の Y データを指定するためのアドレス指定ビットです。
図 15.4-1
X-Addr
Y-Addr
X-RAM
if (STLY==1) then Store
Y-RAM
if (LDLY==1) then Load
X data
Y data
Multiply-Add Calculator
DSP-Y
LY-DLY
CPU bus
■ STR 命令 ( 転送命令 )
動作 :
Data RAM ← Accumulator
説明:
アキュムレータの 40 ビットデータを RND/CLP/SLQ フラグの指示
により 16 ビットデータに変換し , SLY フラグと X/Y-Addr の指示す
るデータ RAM へ格納します。
ワード数 :
1 ワード (16 ビット幅 )
サイクル数 :
1 システムクロック cycle
動作コード :
Bit
15
14
13
12
11
10
9..........7
6
5...............0
0
1
HLT
SIRQ
RND
CLP
SLQ
SLY
X/Y-Addr
[ ビット 13] HLT (HLT 命令指示フラグ )
本ビットをセットすることにより , 命令実行後に積和演算マクロはプログラム実行
を停止します。
DSP-CSR レジスタの RunDSP フラグはクリアされます。
[ ビット 12] SIRQ (INT 命令指示フラグ )
本ビットをセットすることにより , 命令実行後に CPU に対する割込み要求を発生さ
せ , DSP-CSR レジスタの IrqDSP フラグをセットします。
[ ビット 11] RND (Rounding)
SLQ ビット指示された 16 ビットデータに対し , 丸め処理を指示するビットです。
丸め処理は 16 ビットデータの LSB より 1 つ下位のビットを 0 捨 1 入します。
375
第 15 章 積和演算回路
[ ビット 10] CLP (Clipping)
アキュムレータの計算結果が , SLQ ビットで指示された 16 ビットデータに対して
オーバフローした値である場合 , 16 ビットデータに対して飽和処理を指示するビッ
トです。
実際には , アキュムレータの MSB(39 ビット ) から 16 ビットデータの MSB(SLQ 指
示 ) が同じ値でない場合に飽和処理が行われます。丸め処理の指定があった場合は ,
丸め処理の結果に対して比較されます。
丸め処理前のアキュムレータの値が正のときは正の最大値 (7FFFH) に , 負の場合は
負の最大値 (8000H) が転送されます。
丸め処理および飽和処理によりアキュムレータの符号は反転することなく , 符号は
保存されます。
[ ビット 9 ∼ビット 7] SLQ
アキュムレータからデータ RAM へ転送するビット位置を指定します。
SLQ ビット
オーバフロー判定ビット
転送 16 ビット Data
丸めビット
固定小数点方式
0 0 0B
ビット 39 ∼ビット 27
ビット 27 ∼ビット 12
ビット 11
Q12
0 0 1B
ビット 39 ∼ビット 28
ビット 28 ∼ビット 13
ビット 12
Q13
0 1 0B
ビット 39 ∼ビット 29
ビット 29 ∼ビット 14
ビット 13
Q14
0 1 1B
ビット 39 ∼ビット 30
ビット 30 ∼ビット 15
ビット 14
Q15
1 0 0B
ビット 39 ∼ビット 23
ビット 23 ∼ビット 8
ビット 7
Q8
1 0 1B
ビット 39 ∼ビット 24
ビット 24 ∼ビット 9
ビット 8
Q9
1 1 0B
ビット 39 ∼ビット 25
ビット 25 ∼ビット 10
ビット 9
Q10
1 1 1B
ビット 39 ∼ビット 26
ビット 26 ∼ビット 11
ビット 10
Q11
[ ビット 6] SLY
転送先を指定します。
0:X-RAM
1:Y-RAM
[ ビット 5 ∼ビット 0] X/Y Addr (RAM Address)
データ RAM の直接アドレス指定
■ JMP 命令 ( 分岐命令 )
動作 :
説明 :
ワード数 :
サイクル数 :
動作コード :
376
[ 条件成立時 ]
DSP-PC ← J-Addr8
[ 条件不成立時 ]
DSP-PC ← DSP-PC + 1
条件が成立したとき分岐し , 成立しなければ何も実行しません。
1 ワード (16 ビット幅 )
1 システムクロック cycle
第 15 章 積和演算回路
Bit
15
14
13
12
11
10.........8
7..............0
0
0
HLT
SIRQ
COND
UBP
J-Addr8
[ ビット 13] HLT (HLT 命令指示フラグ )
本ビットをセットすることにより , 命令実行後に積和演算マクロはプログラム実行
を停止します。
DSP-CSR レジスタの RunDSP フラグはクリアされます。
[ ビット 12] SIRQ (INT 命令指示フラグ )
本ビットをセットすることにより , 命令実行後に CPU に対する割込み要求を発生さ
せます。
DSP-CSR レジスタの IrqDSP フラグをセットします。
[ ビット 11] COND (CONDition)
0: 無条件分岐
1: 条件付き分岐
[ ビット 10 ∼ ビット 8] UBP2 ∼ UBP0 ( 条件指定 )
条件付き分岐時の条件を設定します。DSP-CSR レジスタの USR2 ∼ USR0 ビットと
本ビットが一致すると条件成立となります。
無条件分岐のときは , "000B" に設定する必要があります。
[ ビット 7 ∼ビット 0] J-Addr8 (Jump Address)
分岐先のアドレス指定
377
第 15 章 積和演算回路
378
第 16 章
DMAC
(DMA コントローラ )
DMA コントローラ (DMAC) の概要 , レジスタの構
成 / 機能 , および DMA コントローラ (DMAC) の動
作について説明します。
16.1 概要
16.2 DMAC のレジスタ
16.3 DMAC の動作
16.4 転送要求の設定
16.5 転送シーケンス
16.6 DMA 転送全般
16.7 動作フローチャート
16.8 データパス
379
第 16 章 DMAC (DMA コントローラ )
16.1
概要
DMAC は , DMA (Direct Memory Access) 転送を実現するためのモジュールです。
DMA 転送により , CPU を介さずに各種データ転送を高速に行うことが可能となり ,
システムのパフォーマンスを向上させます。
■ ハードウェア構成
本モジュールは , 主に以下のものより構成されます。
• 独立した DMA チャネル× 5 チャネル
• 5 チャネル独立アクセス制御回路
• 20 ビットアドレスレジスタ ( リロード指定可能 : ch.0 ∼ ch.3)
• 24 ビットアドレスレジスタ ( リロード指定可能 : ch.4)
• 16 ビット転送回数レジスタ ( リロード指定可能 : 各チャネル 1 本 )
• 4 ビットブロック回数レジスタ ( 各チャネル 1 本 )
• Two-cycle transfer
■ 主要機能
本モジュールによるデータ転送には主に以下のような機能があります。
複数チャネルの独立したデータ転送が可能 (5 チャネル )
(1) 優先順位 (ch.0>ch.1>ch.2>ch.3>ch.4)
(2) ch.0 と ch.1 間にて順位回転が可能
(3) DMAC 起動要因
• 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込み含む )
• ソフトウェア要求 ( レジスタ書込み )
(4) 転送モード
• バースト転送 / ステップ転送 / ブロック転送
• アドレッシングモード 20 ビット (24 ビット ) アドレス指定 ( 増加 / 減少 / 固定 )
( アドレス増減幅は± 1, 2, 4 固定 )
• データの種類バイト / ハーフワード / ワード長
• シングルショット / リロード選択可能
380
第 16 章 DMAC (DMA コントローラ )
■ レジスタ一覧
(bit)
ch.0 コントロール / ステータスレジスタ A
DMACA0 00000200H
〃 〃 レジスタ B
DMACB0 00000204H
ch.1 コントロール / ステータスレジスタ A
DMACA1 00000208H
〃 〃 レジスタ B
DMACB1 0000020CH
ch.2 コントロール / ステータスレジスタ A
DMACA2 00000210H
〃 〃 レジスタ B
DMACB2 00000214H
ch.3 コントロール / ステータスレジスタ A
DMACA3 00000218H
〃 〃 レジスタ B
DMACB3 0000021CH
ch.4 コントロール / ステータスレジスタ A
DMACA4 00000220H
DMACB4 00000224H
〃 〃 レジスタ B
31
24
(bit)
ch.0 転送元アドレスレジスタ
〃
ch.1 転送元アドレスレジスタ
〃 転送先 〃 〃
ch.2 転送元アドレスレジスタ
〃 転送先 〃 〃
ch.3 転送元アドレスレジスタ
〃 転送先 〃 20
19
15
08
07
00
〃
ch.4 転送元アドレスレジスタ
〃
00
DMASA0 00001000H
DMADA0 00001004H
DMASA1 00001008H
DMADA1 0000100CH
DMASA2 00001010H
DMADA2 00001014H
DMASA3 00001018H
DMADA3 0000101CH
(bit)
〃 転送先 〃 16
DMACR 00000240H
全体制御レジスタ
〃 転送先 〃 23
31
24
23
00
DMASA4 00001020H
DMADA4 00001024H
381
第 16 章 DMAC (DMA コントローラ )
■ ブロックダイヤグラム
図 16.1-1 ブロックダイヤグラム
カウンタ
バスコントローラへ
DMA転送要求
DMA起動
要因選択回路
&
要求受付け制御
セレクタ
ライトバック
バッファ
DTC 2段レジスタ
CR
ペリフェラル起動要求/停止入力
DTCR
カウンタ
DSS3~DSS0
バッファ
優先度回路
割込みコントローラへ
リード
ライト
リード/ライト制御
周辺割込みクリア
BLK レジスタ
TYPE.MOD,WS
ライトバック
382
DMASA 2段レジスタ
DADM,SASZ7~SASZ0 SADR
DMADA 2段レジスタ
DADM,DASZ7~DASZ0 DADR
X-bus
バス制御部
カウンタバッファ
セレクタ
セレクタ
アドレス
DMAコントロール
ライトバック
カウンタバッファ
アクセス
アドレスカウンタ
バス制御部
状態遷移回路
バスコント
ローラへ
IRQ4~IRQ0
ERIE,EDIE
セレクタ
MCLREQ
第 16 章 DMAC (DMA コントローラ )
DMAC のレジスタ
16.2
DMAC で使用するレジスタの構成および機能について説明します。
■ レジスタ設定時の注意
DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがありま
す。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。
以降で説明する各レジスタのビット名についている * マークは DMAC 転送中に設定す
ると動作に影響するビットを示します。このビットの書換えは DMAC 転送停止中 ( 起
動禁止状態または一時停止状態 ) に行ってください。
DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定
した場合は , 起動許可後に設定は有効になります。
DMA転送の一時停止状態(DMACR:DMAH3∼DMAH0≠0000B またはDMACA:PAUS=1
のとき ) で設定した場合は , 一時停止解除後に設定は有効になります。
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ A
[DMACA0 ∼ DMACA4]
DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
bit
31
30
29
28
27
DENB PAUS STRG
bit
15
14
13
26
25
24
23
22
IS4 ∼ IS0
12
10
10
21
20
19
8
7
6
17
16
BLK3 ∼ BLK0
−
9
18
5
4
3
2
1
0
DTC15 ∼ DTC0
( 初期値:00000000000000000000000000000000B)
[ ビット 31]DENB (Dma ENaBle) : DMA 動作許可ビット
各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。
起動されたチャネルは, 転送要求が発生し受け付けられるとDMA転送を開始します。
起動許可されていないチャネルに対して発生した転送要求はすべて無効となります。
起動されたチャネルの転送が指定回数分すべて終了した場合 , 本ビットは "0" にな
り , 転送は停止します。
本ビットに "0" を書き込むと強制停止しますが , 必ず PUAS ビット [DMACA: ビッ
ト 30] で DMA を一時停止状態にした後 , 強制停止 ("0" 書込み ) してください。一
時停止しないで強制停止した場合は DMA は停止しますが転送データは保証されま
せん。停止の確認は DSS2 ∼ DSS0 ビット (DMACB: ビット 18 ∼ビット 16) で行っ
てください。
DENB
機能
0
対応チャネル DMA 動作禁止 ( 初期値 )
1
対応チャネル DMA 動作許可
• リセット時 , 停止要求が受け付けられた場合 : "0" に初期化されます。
383
第 16 章 DMAC (DMA コントローラ )
• 読出し / 書込み可能です。
• DMAC 全体制御レジスタ DMACR のビット 15:DMAE ビットにより , 全チャネル
の動作が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状態を
維持します。また , 本ビットにより動作が許可されている状態にて前記ビットに
より動作が禁止された場合 , 本ビットは "0" となり転送は中断します ( 強制停止 ) 。
[ ビット 30]PAUS (PAUSe) : 一時停止指示
対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ
ると , 再び本ビットがクリアされるまでの間は DMA 転送を行いません (DMA が停
止中は DSS ビットが "1xxB" になります ) 。
起動前に本ビットをセットした後 , 起動した場合 , 一時停止状態のままとなります。
本ビットがセットされている間に新たに発生した転送要求は受け付けられますが,
本ビットをクリアしないと転送は開始しません ( 転送要求の受付けと転送の項を
参照 ) 。
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" は動作に影響を与えません。
384
第 16 章 DMAC (DMA コントローラ )
[ ビット 28 ∼ビット 24]IS4 ∼ IS0 (Input Select)*: 転送要因選択
転送要求の要因を以下のように選択します。ただし , STRG ビット機能によるソフ
トウェア転送要求は本設定にかかわらず有効となります。
IS
機能
00000B
ソフトウェア転送要求のみ
00001B
↓
01111B
設定禁止
↓
設定禁止
10000
UART0 ( 受信完了 )
10001B
UART1 ( 受信完了 )
10010B
UART2 ( 受信完了 )
10011B
UART0 ( 送信完了 )
10100B
UART1 ( 送信完了 )
10101B
UART2 ( 送信完了 )
10110B
外部割込み 0
10111B
外部割込み 1
11000B
リロードタイマ 0
11001B
リロードタイマ 1
11010B
リロードタイマ 2
11011B
積和マクロ
11100B
PPG0
11101B
PPG1
11110B
PPG2
11111B
PPG4
転送停止要求
なし
あり
なし
• リセット時 : "00000B" に初期化されます。
• 読出し / 書込み可能です。
<注意事項>
• 周辺機能の割込みによる DMA 起動を設定した場合 (IS=1xxxxB), 選択した機能は , ICR
レジスタで割込みを禁止状態にしてください。
• 周辺機能の割込みによる DMA 起動を設定した状態でソフトウェア転送要求により
DMA 転送を起動すると , 転送終了後 , 該当する周辺に対して要因クリアを行います。こ
のため , 本来の転送要求をクリアしてしまう可能性がありますので , 周辺機能の割込み
による DMA 起動を設定した状態では , ソフトウェア転送要求による起動を行わないで
ください。
385
第 16 章 DMAC (DMA コントローラ )
[ ビット 23 ∼ビット 20](Reserved) : 未使用ビット
読出し値は "0000B" 固定です。書込みは無効となります。
[ ビット 19 ∼ビット 16]BLK3 ∼ BLK0 (BLocK size) : ブロックサイズ指定
対応するチャネルのブロック転送時のブロックサイズを指定します。本ビットに設
定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰返し回
数 ) となります。ブロック転送を行わない場合は "01H" ( サイズ 1) を設定してくだ
さい。
BLK
XXXX
機能
対応チャネルのブロックサイズ指定
• リセット時 : "0000B" に初期化されます。
• 読出し / 書込み可能です。
• 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。
• 読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。
[ ビット 15 ∼ビット 00]DTC15 ∼ DTC00 (Dma Terminal Count register) *:
転送回数レジスタ
転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ
のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設
定値をレジスタに戻します。
DTC
XXXX
機能
対応チャネルの転送回数指定
DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウン
タバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 ) 。DMA の転送終
了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了します。
よって , DMA 動作中の転送回数指定値を読み出すことはできません。
• リセット時 : "00000000_00000000B" に初期化されます。
• 読出し / 書込み可能です。DTC のアクセスは , 必ずハーフワード長またはワード
長にてアクセスしてください。
• 読出し時の値はカウント値となります。リロード値の読出しはできません。
386
第 16 章 DMAC (DMA コントローラ )
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ B
[DMACB0 ∼ DMACB4]
DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
bit
31
30
TYPE1, TYPE0
bit
15
14
29
28
MOD1, MOD0
13
12
27
26
25
24
23
22
21
20
19
18
17
16
WS1, WS0 SADM DADM DTCR SADR DADR ERIE EDIE
DSS2 ∼ DSS0
10
2
10
9
8
7
SASZ7 ∼ SASZ0
6
5
4
3
1
0
DASZ7 ∼ DASZ0
( 初期値:00000000_00000000_00000000_00000000B)
[ ビット 31, ビット 30]TYPE1, TYPE0 (TYPE) *: 転送タイプ設定
対応チャネルの動作タイプを以下のように設定します。
two-cycle 転送モード : 転送元アドレス (DMASA) と転送先アドレス (DMADA) を設
定して読出し動作と書込み動作を転送回数分繰り返して転送するモードです。
TYPE
機能
00B
two-cycle 転送 ( 初期値 )
01B
設定禁止
10B
設定禁止
11B
設定禁止
• リセット時 : "00B" に初期化されます。
• 読出し / 書込み可能です。
• 必ず "00B" に設定してください。
[ ビット 29, ビット 28]MOD1, MOD0 (MODe)* : 転送モード設定
対応チャネルの動作モードを以下のように設定します。
MOD
機能
00B
ブロック / ステップ転送モード ( 初期値 )
01B
バースト転送モード
10B
設定禁止
11B
設定禁止
• リセット時 : "00B" に初期化されます。
• 読出し / 書込み可能です。
387
第 16 章 DMAC (DMA コントローラ )
[ ビット 27, ビット 26]WS1, WS0 (Word Size) : 転送データ幅選択
対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で
指定回数分の転送を行います。
WS
機能
00B
バイト単位で転送 ( 初期値 )
01B
ハーフワード単位で転送
10B
ワード幅単位で転送
11B
設定禁止
• リセット時 : "00B" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 25]SADM (Source-ADdr. count-Mode select) *: 転送元アドレスカウント
モード指定
対応するチャネルの転送元アドレスの 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) に従って , 1
転送後に加算 / 減算され , 転送終了時に次回アクセス用アドレスが対応するアドレ
スレジスタ (DMASA) に書き込まれます。
よって , DMA 転送が終了されるまで転送元アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
ト幅 (SASZ, DASZ) を "0" としてください。
SADM
機能
0
転送元アドレスは増加します。( 初期値 )
1
転送元アドレスは減少します。
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
388
第 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" に初期化されます。
• 読出し / 書込み可能です。
389
第 16 章 DMAC (DMA コントローラ )
[ビット22]SADR (Source-ADdr.-reg. Reload) *: 転送元アドレスレジスタリロード指定
対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス
レジスタ値を初期設定値に戻します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても転送終了にて停止するシングルショット動作となります。この場
合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。
本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ
スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し
ている場合は , 増加したアドレスとなります ) 。
SADR
機能
0
転送元アドレスレジスタリロード禁止 ( 初期値 )
1
転送元アドレスレジスタリロード許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 21]DADR (Dest.-ADdr.-reg. Reload)*: 転送先アドレスレジスタリロード指定
対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス
レジスタ値を初期設定値に戻します。
その他 , 機能の詳細はビット 22:SADR の内容と等価になります。
DADR
機能
0
転送先アドレスレジスタリロード禁止 ( 初期値 )
1
転送先アドレスレジスタリロード許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 20]ERIE (ERror Interrupt Enable)* : エラー割込み出力許可
エラー発生による終了時の割込み発生を制御します。発生したエラーの内容は
DSS2 ∼ DSS0 にて示されます。すべての終了要因で本割込みが発生するのではな
く , 特定の終了要因の際のみ割込みが発生することに注意してください (DSS2 ∼
DSS0 ビットを参照 ) 。
ERIE
機能
0
エラー割込み要求出力禁止 ( 初期値 )
1
エラー割込み要求出力許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
390
第 16 章 DMAC (DMA コントローラ )
[ ビット 19]EDIE (EnD Interrupt Enable) *: 終了割込み出力許可
正常終了時の割込み発生を制御します。
EDIE
機能
0
終了割込み要求出力禁止 ( 初期値 )
1
終了割込み要求出力許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 18 ∼ビット 16]DSS2 ∼ DSS0 (Dma Stop Status)*: 転送停止要因表示
対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビットのコード ( 終了コー
ド ) を表示します。終了コードの内容は以下のとおりです。
DSS2
機能
割込み発生
0
初期値
なし
1
DMA 一時停止中
(DMAH, PAUS ビット , 割込みなど )
なし
DSS1, DSS0
00
機能
初期値
01
なし
−
10
転送停止要求
11
正常終了
割込み発生
なし
エラー
終了
転送停止要求は , 周辺回路からの要求を使用した場合のみセットされます。
<注意事項>
「割込み発生」欄は , 発生可能な割込み要求の種類を示します。
• リセット時 : "000B" に初期化されます。
• "000B" を書き込むことによりクリアされます。
• 読出し / 書込み可能ですが , 本ビットへの書込みは "000B" のみ有効となります。
391
第 16 章 DMAC (DMA コントローラ )
[ ビット 15 ∼ビット 8]SASZ7 ∼ SASZ0 (Source Addr count SiZe) *: 転送元アドレス
カウントサイズ指定
対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減は転送元アドレスカウントモード (SADM) の指定に従います。
SASZ
機能
00H
アドレス固定
01H
バイト単位で転送
02H
ハーフワード単位で転送
04H
ワード単位で転送
上記以外
設定禁止
• リセット時 : "00000000B" に初期化されます。
• 読出し / 書込み可能です。
• アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定して
ください。
[ ビット 7 ∼ビット 0]DASZ7 ∼ DASZ0 (Des Addr count SiZe) *:
転送先アドレスカウントサイズ指定
対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減は転送先アドレスカウントモード (DADM) の指定に従います。
DASZ
機能
00H
アドレス固定
01H
バイト単位で転送
02H
ハーフワード単位で転送
04H
ワード単位で転送
上記以外
設定禁止
• リセット時 : "00000000B" に初期化されます。
• 読出し / 書込み可能です。
• アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定して
ください。
392
第 16 章 DMAC (DMA コントローラ )
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先アドレス設定レジスタ
[DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4]
DMAC各チャネルの動作制御を行うレジスタで, チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
• ch.0 ∼ ch.3
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
DMASA0 ∼ DMASA3[19:16]
bit
15
14
13
12
10
10
9
8
7
6
5
4
3
2
1
0
DMASA0 ∼ DMASA3[15:0]
( 初期値:00000000_00000000_00000000_00000000B)
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
DMADA0 ∼ DMADA3[19:16]
bit
15
14
13
12
10
10
9
8
7
6
5
4
3
2
1
0
DMADA0 ∼ DMADA3[15:0]
( 初期値:00000000_00000000_00000000_00000000B)
• ch.4
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
2
1
0
DMASA4[23:16]
bit
15
14
13
12
10
10
9
8
7
6
5
4
3
DMASA4[15:0]
( 初期値:00000000_00000000_00000000_00000000B)
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
2
1
0
DMADA4[23:16]
bit
15
14
13
12
10
10
9
8
7
6
5
4
3
DMADA4[15:0]
( 初期値:00000000_00000000_00000000_00000000B)
転送元 / 転送先アドレスを格納するレジスタ群です。ch.0 ∼ ch.3 は 20 ビット長 ,
ch.4 は 24 ビット長で構成されています。
[ ビット 31 ∼ビット 0]DMASA (DMA Source Addr) *: 転送元アドレス設定
転送元アドレスの設定を行います。
[ ビット 31 ∼ビット 0]DMADA (DMA Destination Addr) *: 転送先アドレス設定
転送先アドレスの設定を行います。
DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ
ンタバッファに格納して 1 転送ごとに設定に従いアドレスカウントします。DMA の
転送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終
了します。
よって , DMA 動作中のアドレスカウンタ値を読み出すことはできません。
393
第 16 章 DMAC (DMA コントローラ )
すべてのレジスタは , 専用のリロードレジスタを持っています。転送元 / 転送先ア
ドレスレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に
自動的に初期設定値をレジスタに戻します。この際 , 他のアドレスレジスタには影
響を与えません。
• リセット時 : "00000000_00000000_00000000_00000000B" に初期化されます。
• 読出し / 書込み可能です。本レジスタは , 必ず 32 ビットデータでアクセスしてく
ださい。
• 読出し時の値は, 転送中は転送前のアドレス値, 転送終了時には次のアクセスアド
レス値となります。リロード値の読出しはできません。よって , 転送アドレスを
リアルタイムで読み出すことはできません。
• 存在しない上位ビットには "0" を設定してください。
<注意事項>
本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ
に DMA 転送を行うことはできません。
394
第 16 章 DMAC (DMA コントローラ )
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御レジスタ
[DMACR]
DMAC5 チャネル分全体の動作制御を行うレジスタです。本レジスタは必ずバイト長で
アクセスしてください。
各ビット機能は以下に示すとおりです。
bit
bit
31
29
28
−
−
PM01
15
14
13
12
10
10
−
−
−
−
−
−
DMAE
30
27
26
25
24
DMAH3 ∼ DMAH0
23
22
21
20
19
18
17
16
−
−
−
−
−
−
−
−
9
8
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
−
−
−
( 初期値:0XX00000XXXXXXXXXXXXXXXXXXXXXXXXB)
[ ビット 31]DMAE (DMA Enable) : DMA 動作許可
DMA 全チャネルの動作制御を行います。
本ビットにより DMA 動作が禁止されている場合 , チャネルごとの起動 / 停止の設
定や動作状態にかかわらず , 全チャネルの転送動作が禁止されます。転送中であっ
たチャネルは要求を取り下げ , ブロック境界にて転送を停止します。禁止状態にて
各チャネルに対して行われる起動操作はすべて無効となります。
本ビットにより DMA 動作が許可されている場合 , チャネルごとに起動 / 停止操作
が有効となります。本ビットで DMA 動作許可を行ったのみでは , 各チャネルに対
する起動は行われません。
本ビットに "0" を書き込むと強制停止しますが , 必ず DMAH3 ∼ DMAH0 ビット
(DMACR: ビット 27 ∼ビット 24) で DMA を一時停止状態にした後 , 強制停止 ("0"
書込み )
してください。一時停止しないで強制停止した場合はDMAは停止しますが転送デー
タは保証されません。停止の確認は DSS2 ∼ DSS0 ビット (DMACB: ビット 18 ∼
ビット 16) で行ってください。
DMAE
機能
0
全チャネル DMA 動作禁止 ( 初期値 )
1
全チャネル DMA 動作許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 28]PM01 (Priority Mode ch.0, 1 robin) : チャネル優先度回転
ch.0, ch.1 の優先度を転送ごとに順位を回転させるときに設定します。
PM01
機能
0
優先順位固定 (ch.0 > ch.1) ( 初期値 )
1
優先順位回転 (ch.1 > ch.0)
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
395
第 16 章 DMAC (DMA コントローラ )
[ ビット 27 ∼ビット 24]DMAH3 ∼ DMAH0 (DMA Halt) : DMA 一時停止
DMA 全チャネルの一時停止制御を行います。本ビットがセットされると , 再び本
ビットがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。
起動前に本ビットをセットして起動した場合 , 全チャネルが一時停止のままとなり
ます。
本ビットがセットされている間に DMA 転送が許可 (DENB=1) されているチャネル
に発生した転送要求はすべて有効となり , 本ビットをクリアすることにより転送を
開始します。
DMAH
機能
0000B
全チャネル DMA 動作許可 ( 初期値 )
0000B 以外
全チャネル DMA 一時停止
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 30, ビット 29, ビット 23 ∼ビット 0](Reserved) : 未使用ビットです。
読出し値は不定です。
396
第 16 章 DMAC (DMA コントローラ )
16.3
DMAC の動作
DMAC は , CPU の命令動作を介することなく高速にデータ転送を制御する多機能
DMA コントローラです。
■ 主要動作
• 各転送チャネルは , 独立に各種機能を設定します。
• 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いませ
ん。
• 転送要求検出により , バスコントローラに対し DMA 転送要求を出力し , バスコント
ローラの制御によりバス権を取得して転送を開始します。
• 転送はチャネルごとに独立に設定されたモード設定に従ったシーケンスで行われ
ます。
■ 転送モード
DMA の各チャネルは , それぞれの DMACB レジスタの MOD1, MOD0 ビットで設定さ
れた転送モードに従って転送動作を行います。
● ブロック / ステップ転送
1 回の転送要求にて 1 ブロック転送単位のみ転送を行い , その後次の転送要求が受
け付けられるまでは DMA はバスコントローラに対し転送要求を停止します。
1 ブロック転送単位 : 設定されたブロックサイズ分 (DMACA:BLK3 ∼ BLK0)
● バースト転送
1 回の転送要求にて指定転送回数終了まで連続して転送を行います。
指定転送回数 : ブロックサイズ分×転送回数分
(DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0)
■ 転送タイプ
● two-cycle 転送 ( 通常転送 )
DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作を行
います。
転送元レジスタのアドレスからデータを読み出して転送先レジスタのアドレスへ
データを書き込みます。
■ 転送アドレス
アドレッシングには以下のようなものがあり , チャネル転送元 / 転送先ごとに独立
に設定します。
● two-cycle 転送でのアドレスの指定
あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値
をアドレスとしてアクセスします。
転送要求を受け付けると DMA はレジスタからアドレスを一時記憶バッファに格納
して転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成
397
第 16 章 DMAC (DMA コントローラ )
( 加算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッ
ファの内容は 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライト
バックされます。
よって , アドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか
更新されませんので転送中のアドレスをリアルタイムに知ることはできません。
■ 転送回数と転送終了
● 転送回数
1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント (-1) します。転
送回数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停
止または再起動します。
転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更
新されません。
転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可され
ている場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。
● 転送終了
転送終了要因には以下のようなものがあり , 終了時は終了コードとして要因が表示さ
れます (DMACB:DSS2 ∼ DSS0)。
• 指定転送回数の終了 (DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0) =>
正常終了
• 周辺回路からの転送停止要求の発生 => エラー
• リセットの発生 => リセット
各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを
発生可能です。
398
第 16 章 DMAC (DMA コントローラ )
16.4
転送要求の設定
DMA 転送を起動する転送要求は , 内蔵周辺要求とソフトウェア要求の 2 種類があり
ます。ソフトウェア要求については , 他の要求の設定にかかわらず常に使用するこ
とができます。
■ 内蔵周辺要求
内蔵周辺回路の割込み発生により , 転送要求を発生します。
チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します。
(DMACA: IS4 ∼ IS0 =1xxxxB)
<注意事項>
転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン
トローラの設定を割込み禁止に設定してください (ICR レジスタ )。
■ ソフトウェア要求
レジスタのトリガビットへの書込みにより転送要求を発生します (DMACA:STRG)。
上記の転送要求とは独立で , 常に使用することができます。
起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントローラに
対し DMA 転送要求を出力し転送を開始します。
<注意事項>
内蔵周辺要求を設定したチャネルに対してソフトウェア要求を行うと , 転送終了後 , 該当
する周辺に対して要因クリアを行います。このため , 本来の転送要求をクリアしてしまう
可能性がありますので , ソフトウェア要求を行わないでください。
399
第 16 章 DMAC (DMA コントローラ )
16.5
転送シーケンス
チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転
送モードを独立して設定することができます (DMACB: TYPE[1:0], MOD[1:0] の設
定 )。
■ 転送シーケンスの選択
レジスタの設定により以下のシーケンスが選択可能です。
• バースト two-cycle 転送
• ブロック / ステップ two-cycle 転送
■ バースト two-cycle 転送
1 回の転送要因にて指定転送回数の転送を続けて行います。two-cycle 転送の場合は転
送元 / 転送先アドレスは ch.0 ∼ ch.3 では 20 ビット , ch.4 では 24 ビット指定可能です。
転送要因は , 周辺転送要求 / ソフトウェア転送要求を選択できます。
● バースト転送の特長
•
転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送
を行います。
•
転送回数はブロックサイズ分×転送回数分になります。
(DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0)
•
転送中に再度要求が発生した場合 , 要求は無視されます。
•
転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要
求を受け付けます。
•
転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック
転送単位の境目でチャネルを切り換え, そのチャネルの転送要求がクリアされる
まで復帰しません。
図 16.5-1 周辺転送要求 , ブロック数= 1, 転送回数= 4 のときのバースト転送例
周辺転送要求
バス動作
転送回数
CPU
DA
SA
4
SA
DA
3
SA
DA
2
転送終了(内部)
(周辺転送要求,ブロック数=1,転送回数=4のときのバースト転送例)
400
SA
DA
1
CPU
0
第 16 章 DMAC (DMA コントローラ )
■ ステップ / ブロック転送 two-cycle 転送
ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場
合は転送元 / 転送先アドレスは , ch.0 ∼ ch.3 では 20 ビット , ch.4 では 24 ビット指定可
能です。
● ステップ転送
ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。
ステップ転送の特長
• 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送
を停止します ( バスコントローラに対し DMA 転送要求を取り下げる ) 。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止
後にチャネルを切り換えて続けて転送を開始します。ステップ転送における優先
順位は , 転送要求が同時に発生した場合のみ意味を持ちます。
● ブロック転送
ブロックサイズを "1" 以外に設定すると , ブロック転送シーケンスとなります。
ブロック転送の特長
1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ステッ
プ転送と全く同じ動作となります。
図 16.5-2 周辺転送要求 , ブロック数= 2, 転送回数= 2 のときのブロック転送例
周辺転送要求
バス動作
CPU
ブロック数
転送回数
DA
SA
SA
2
DA
1
2
CPU
0
SA
DA
SA
2
DA
1
1
転送終了(内部)
401
第 16 章 DMAC (DMA コントローラ )
16.6
DMA 転送全般
DMA 転送の動作全般について説明します。
■ ブロックサイズ
• 転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数 ( ×データ幅 )
のデータの集合となります。
• 1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転
送単位はブロックサイズ指定値分の転送サイクル数より構成されることになりま
す。
• 転送中により高位の優先順位の転送要求が受け付けられた場合 , または転送の一時
停止要求が発生した場合において , ブロック転送時においても 1 転送単位の境界に
ならないと停止しません。これにより分割・一時停止を希望しないデータブロック
のデータ保護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させ
る原因ともなります。
• リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容などは
保証されません。
■ リロード動作
本モジュールでは , チャネルごとに以下の 3 種類のリロード機能の設定が可能です。
● 転送回数レジスタリロード機能
指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起動受付
け待ちします。
全転送シーケンスを繰り返し行う際に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が "0" のままとな
り , 以降の転送は行われません。
● 転送元アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定します。
転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。
リロード指定をしない場合,指定回数の転送終了後は転送元アドレスレジスタ値が終了
時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
● 転送先アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定します。
転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。
リロード指定をしない場合,指定回数の転送終了後は転送元アドレスレジスタ値が終了
時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了
後の再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。
402
第 16 章 DMAC (DMA コントローラ )
<注意事項>
動作モードとリロード動作の特殊な例
• 転送終了にていったん停止し , 再度入力検出から行いたい場合は , リロード指定を行わ
ないようにしてください。
• バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となると
リロード後いったん転送を中断し , あらためて転送要求入力が検出されるまで転送を
行いません。
■ アドレッシングモード
各転送チャネルの転送先および転送元アドレスは , それぞれ独立に指定します。
転送シーケンスによって設定してください。
● アドレスレジスタ指定
two-cycle 転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アドレス
を , 転送先アドレス設定レジスタ (DMADA) には転送先アドレスを設定してください。
アドレスレジスタの特長
ch.0 ∼ ch.3 は 20 ビット長 , ch.4 は 24 ビット長のレジスタです。
アドレスレジスタの機能
•
毎アクセス時に読み出され , アドレスバスへ放出されます。
•
同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ , 計算結
果のアドレスにてアドレスレジスタを更新します。
•
アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に加算 / 減算の内よ
り選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値に
よります (DMACB:SASZ, DASZ)。
•
転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最
終アドレスにアドレス計算をした結果のアドレスが残されます。
•
リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。
<注意事項>
• 20 ビットまたは 24 ビット長フルアドレス計算の結果 , オーバフロー / アンダフローが
発生した場合でも , そのチャネルの転送は継続されます。オーバフロー / アンダフロー
が発生しないように各チャネルを設定してください。
• アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。
■ データの種類
1 回の転送で転送されるデータ長 ( データ幅 ) は , 以下から選択します。
•
バイト
•
ハーフワード
•
ワード
DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ
ス指定においてデータ長と食い違うアドレスが設定された場合 , 異なる下位ビットは
無視されます。
403
第 16 章 DMAC (DMA コントローラ )
• ワード
… 実際のアクセスアドレスは下位 2 ビットが "00B" から始まる 4 バ
イトとなります。
• ハーフワード … 実際のアクセスアドレスは下位 1 ビットが "0" から始まる 2 バイ
トとなります。
• バイト
… 実際のアクセスアドレスとアドレス指定が一致します。
転送元アドレスと転送先アドレスの下位ビットが食い違っている場合 , 内部アドレス
バス上には設定そのままのアドレスが出力されますが , バス上の各転送対象において ,
上記のきまりに従ってアドレスが修正されてアクセスが行われます。
■ 転送回数制御
転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回数指
定値は転送回数レジスタ (DMACA:DTC) に設定します。
レジスタ値は転送開始時に一時記憶バッファに格納され , 転送回数カウンタにより減
算されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され ,
そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。
転送回数レジスタ群の特長
•
各レジスタ 16 ビット長です。
•
すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。
•
レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。
リロード動作
•
リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有
効です。
•
転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。
•
転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知すると
共に , リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。
■ CPU 制御
DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発行
します。
バスコントローラはバス動作の切れ目にて内部バス使用権を DMA に明け渡し , DMA
転送が開始されます。
● DMA 転送と割込み
• DMA 転送中は , 基本的には転送終了まで割込みの受付けを停止します。
• 割込み処理動作中に DMA 転送要求があった場合 , 転送要求は受け付けられ , 転送
終了まで割込み処理動作を停止します。
• 例外として , NMI 要求または割込みコントローラにて設定されたホールド抑止レ
ベルより高いレベルの割込み要求が発生した場合には , DMAC は転送単位 (1 ブロッ
ク ) の境界にてバスコントローラへの転送要求を一時取り下げ , 割込み要求がクリ
アされるまでは転送を一時停止状態にします。この間 , 転送要求は内部で保持さ
れます。割込み要求がクリアされた後に再度 DMAC はバスコントローラへ転送要
求を発行してバス使用権を取得し , DMA 転送を再開します。
404
第 16 章 DMAC (DMA コントローラ )
●DMA 抑止
• DMA 転送中に , より優先度の高い割込み要因が発生すると DMA 転送を中断して
該当割込みルーチンへ分岐します。この機構は割込み要求がある限り有効ですが ,
割込み要因をクリアすると抑止機構が働かなくなり, 割込み処理ルーチン内でDMA
転送を再開します。このため , DMA 転送を中断するレベルの割込み要因の処理ルー
チン内で , 割込み要因クリア後の DMA 再転送開始を抑止したいときは , DMA 抑止
機能を使用します。
DMA 抑止機能は , DMA 全体制御レジスタの DMAH3 ∼ DMAH0
ビットに "0" 以外の値を書くことで起動し , "0" を書くことで停止します。
• 本機能は主として割込み処理ルーチン内で使用します。割込み処理ルーチンで割込
み要因をクリアする前に DMA 抑止レジスタの内容を 1 つ増加させます。このよう
にすると , 以降 , DMA 転送は行いません。割込み処理への対応を行った後 , 復帰す
る前に DMAH3 ∼ DMAH0 ビットの内容を "1" 減少させます。もし , 多重割込みで
あれば DMAH3 ∼ DMAH0 ビットの内容は , まだ "0" にならないため , 引き続いて
DMA 転送は抑止されます。また , 多重割込みでなければ , DMAH3 ∼ DMAH0 ビッ
トの内容は "0" になるため , その後すぐに DMA 要求を有効にします。
<注意事項>
• レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みで本機能を使
用することができません。
• DMA タスクの優先順位は必ず他の割込みレベルより 15 レベルは上に置いてください。
■ 動作開始
DMA 転送の開始はチャネルごとに独立に制御しますが , その前に全チャネルの動作を
許可しておく必要があります。
● 全チャネル動作許可
DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら
かじめ全チャネルの動作を許可する必要があります。許可されていない状態にて行っ
た起動設定および発生した転送要求はすべて無効となります。
● 転送起動
各チャネルの制御レジスタにある動作許可ビットにて転送動作を起動します。起動さ
れたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転送
動作が開始されます。
● 一時停止状態からの起動
各チャネルまたは全チャネル制御にて , 起動前に一時停止状態にしてあった場合 , 転送
動作を起動しても一時停止状態を維持しています。この間に転送要求が発生した場合
は要求を受け付けて保持します。一時停止を解除した時点から転送を開始します。
405
第 16 章 DMAC (DMA コントローラ )
■ 転送要求の受付けと転送
• 起動後 , 各チャネルに対し設定した転送要求のサンプリングが開始されます。
• 周辺割込み起動を選択した場合は , 転送要求がクリアされるまで DMAC は転送を
続けます。クリアされると 1 転送単位で転送を停止します ( 周辺割込み起動 ) 。
周辺割込みはレベル検出扱いとなりますので割込みは DMA による割込みクリア
で行うようにしてください。
• 転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも常に
受け付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネ
ルを決定しています。
■ DMA による周辺割込みクリア
• 本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要
因に周辺割込みを選択したときに機能します (IS4 ∼ IS0=1xxxxB のとき )。
• 周辺割込みのクリアは設定された起動要因にのみ行われます。つまり , IS4 ∼ IS0
で設定された周辺機能のみクリアされます。
● 割込みクリアの発生タイミング
転送モードにより発生するタイミングが違います (「16.7 動作フローチャート」を参
照)。
[ ブロック / ステップ転送 ]
ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号は発生
します。
[ バースト転送 ]
バースト転送を選択した場合は , 指定転送回数がすべて終了したらクリア信号は発
生します。
■ 一時停止
DMA 転送は , 以下の場合に一時停止します。
● 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に
設定 )
一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで
の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って
ください。
一時停止を解除すると転送を再開します。
● NMI/ ホールド抑止レベル割込み処理中
NMI 要求またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転
送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込
み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求はそのま
ま保持され , NMI 処理の終了を待ちます。
要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。
406
第 16 章 DMAC (DMA コントローラ )
■ 動作終了 / 停止
DMA 転送の終了はチャネルごとに独立に制御しますが , 全チャネルの動作を禁止する
ことも可能です。
● 転送終了
リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了
コードにて「正常終了」を表示した後 , 以降の転送要求は無効となります (DMACA:
DENB ビットをクリアする )。
リロード動作が有効である場合 , 転送回数レジスタが "0" になると初期値をリロードし ,
終了コードにて
「正常終了」
を表示した後 , 再度転送要求待ちとなります (DMACA: DENB
ビットをクリアしない )。
● 全チャネル動作禁止
DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ
ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を
許可しても , チャネルごとに再起動しないと転送は行われません。この場合 , 割込みは
一切発生しません。
■ エラーによる停止
指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー発
生による停止および強制停止があります。
● 周辺回路よりの転送停止要求の発生
転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発
生するものがあります ( 例 : 通信系周辺における受信 / 送信エラーなど ) 。
この転送停止要求を受け取った DMAC は , 終了コードにて『転送停止要求』を表示し
て対応するチャネルの転送を停止します。
<注意事項>
• 周辺回路の転送停止要求の有無については , DMACA レジスタのビット 28 ∼ビット
24(IS4 ∼ IS0) 転送要因選択ビットの説明を参照してください。
• 各転送停止要求の発生条件についての詳細は , 各周辺回路の説明を参照してください。
■ DMAC 割込み制御
転送要求となる周辺割込みとは独立に , DMAC チャネルごとに以下の割込みを出力す
ることが可能です。
• 転送終了割込み:正常終了した場合のみ発生する
• エラー割込み:周辺回路からの転送停止要求 ( 周辺に起因するエラー )
これら割込みはすべて終了コードの内容に従って出力されます。
割込み要求のクリアは , DMACS の DSS2 ∼ DSS0 ( 終了コード ) に "000B" を書き込む
ことにより行います。
なお , 終了コードは再起動する際には必ず "000B" を書き込んでクリアしてください。
リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは
クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。
終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し
407
第 16 章 DMAC (DMA コントローラ )
た場合は優先判断を行った結果を表示します。この際に発生する割込みは表示されて
いる終了コードに従います。
終了コードの表示の優先順位を以下に示します ( 上から優先度の高い順 ) 。
• リセット
• "000B" 書込みによるクリア
• 周辺停止要求
• 正常終了
• チャネル選択と制御
■ スリープモード中の DMA 転送
DMAC は , スリープモード中でも動作させることができます。
スリープモードでの動作を期待する場合 , 次のことに注意する必要があります。
- CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー
プモードに入る前に設定は済ませておいてください。
- スリープモードは割込みで解除されますので , DMAC 起動要因で周辺での割込み
を選択した場合は , 割込みコントローラで割込みを禁止する必要があります。
同様に, DMAC終了割込みでスリープモードを解除したくない場合は, 割込みを禁止に
してください。
■ チャネル選択と制御
転送チャネルの数は 5 チャネルまで同時設定が可能です。各チャネルは基本的に各機
能を独立に設定することが可能です。
● チャネル間優先順位
DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され
ます。
順位設定には, 固定/回転の2モードがありチャネルグループ (後述) ごとに選択します。
(1) 固定モード
チャネル番号の小さい順に固定されます。
(ch.0 > ch.1 > ch.2 > ch.3 > ch.4)
転送中により高い優先度の転送要求が受け付けられた場合, 1転送単位 (ブロックサ
イズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で転送チャネル
が高優先度側に切り換わります。
高優先度側の転送が終了すると , 元のチャネルの転送を再開します。
ch.0転送要求
ch.1転送要求
バス動作
CPU
転送チャネル
SA
DA
SA
ch.1
DA
ch.0
SA
DA
ch.0
SA
DA
CPU
ch.1
ch.0転送終了
ch.1転送終了
(2) 回転モード (ch.0, ch.1 間のみ )
動作許可後の初期状態は固定モードと同じ順位に設定されますが , 1 転送終了ごと
にそのチャネルの優先度は逆転します。よって , 同時に転送要求が出力されている
408
第 16 章 DMAC (DMA コントローラ )
場合 , 1 転送単位ごとにチャネルが切り換わります。
連続 / バースト転送を設定した場合に効果のあるモードです。
ch.0転送要求
ch.1転送要求
バス動作
CPU
転送チャネル
SA
DA
ch.1
SA
DA
ch.0
SA
DA
ch.1
SA
DA
CPU
ch.0
ch.0転送終了
ch.1転送終了
● チャネルグループ
優先順位の選択は , 以下の単位で設定します。
モード
優先度
固定
ch.0>ch.1
ch.0>ch.1
回転
↑↓
備考
初期状態は上側の順位です。
上側が転送されると反転します。
ch.0<ch.1
409
第 16 章 DMAC (DMA コントローラ )
16.7
動作フローチャート
DMAC のブロック転送およびバースト転送の動作フローチャートを示します。
■ ブロック転送
図 16.7-1 ブロック転送フローチャート
DMA停止
DENB=>0
DENB=1
起動要求待機
リロード許可
起動要求
初期化
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
周辺割込み起動要因選択時のみ
アドレス,転送回数,ブロック数
ライトバック
割込みクリア
割込みクリア発生
DTC=0
DMA転送終了
ブロック転送
・すべての起動要因で起動(選択)可能
・すべての領域へのアクセス可能
・ブロック数の設定可能
・ブロック数終了で割込みクリア発行
・指定転送回数終了でDMA割込みを発行
410
DMA割込み発生
第 16 章 DMAC (DMA コントローラ )
■ バースト転送
図 16.7-2 バースト転送フローチャート
DMA停止
DENB=>0
DENB=1
起動要求待機
リロード許可
初期化
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
DTC=0
アドレス,転送回数,ブロック数
ライトバック
周辺割込み起動要因選択時のみ
割込みクリア
DMA転送終了
割込みクリア発生
DMA割込み発生
バースト転送
・すべての起動要因で起動(選択)可能
・すべての領域へのアクセス可能
・ブロック数の設定可能
・指定転送回数終了で割込みクリア,DMA割込みを発行
411
第 16 章 DMAC (DMA コントローラ )
16.8
データパス
DMAC を使用したデータ転送例を示します ( 他の組合せは省略 )。
■ two-cycle 転送時のデータの動き
• 転送例を 6 種類を図示します ( 他の組合せは省略 )。
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
ライトサイクル
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
F-bus
RAM
外部バス I/F
リードサイクル
DMAC
CPU
DMAC
外部バスI/F
外部領域=>外部領域 転送
I/O
RAM
I/O
X-bus
バスコントローラ
D-bus
データバッファ
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
外部バスI/F
CPU
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バス I/F
外部領域=>内部RAM領域転送
F-bus
I/O
RAM
I/O
X-bus
バスコントローラ
D-bus
データバッファ
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
I/O
外部バス I/F
CPU
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バスI/F
外部領域=>内蔵I/O領域 転送
F-bus
RAM
I/O
(続く)
412
第 16 章 DMAC (DMA コントローラ )
X-bus
バスコントローラ
D-bus
データバッファ
I-bus
X-bus
バスコントローラ
D-bus
F-bus
RAM
外部バスI/F
CPU
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バスI/F
内蔵I/O領域=>内蔵RAM領域転送
F-bus
I/O
RAM
I/O
X-bus
バスコントローラ
D-bus
データバッファ
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
外部バスI/F
CPU
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バスI/F
内部RAM領域=>外部領域転送
F-bus
I/O
RAM
I/O
DMAC
X-bus
CPU
I-bus
バスコントローラ
D-bus
データバッファ
ライトサイクル
X-bus
I-bus
CPU
リードサイクル
外部バスI/F
DMAC
バスコントローラ
D-bus
データバッファ
F-bus
F-bus
RAM
I/O
外部バスI/F
内部RAM領域=>内蔵I/O領域転送
RAM
I/O
(続き)
413
第 16 章 DMAC (DMA コントローラ )
414
第 17 章
フラッシュメモリ
フラッシュメモリの概要 , レジスタの構成 / 機能 ,
アクセスモード , 自動アルゴリズムおよびセクタプ
ロテクトオペレーションについて説明します。
17.1 フラッシュメモリの概要
17.2 レジスタ
17.3 フラッシュメモリのアクセスモード
17.4 自動アルゴリズム起動方法
17.5 自動アルゴリズム実行状態
17.6 セクタプロテクトオペレーション
415
第 17 章 フラッシュメモリ
17.1
フラッシュメモリの概要
MB91F264B には 256 K バイト (2 M ビット ) の容量で ,+3.3 V 単一電源による全セ
クタ一括消去 , およびセクタ単位での消去が可能で , FR-CPU によるハーフワード
(16 ビット ) 単位での書込みが可能なフラッシュメモリを内蔵しています。
■ フラッシュメモリの概要
このフラッシュメモリは , 内蔵の 3.3 V 動作 256 K バイトフラッシュメモリです。当社
製 4 M ビット (512 K バイト× 8/256 K バイト× 16) フラッシュメモリ MBM29LV400TC
と同じもので ( 容量 , 一部セクタ構成を除いて ) あり , ROM ライタによるデバイス外部
からの書込みも可能です。また , MBM29LV400TC 相当の機能に加え , FR-CPU の内蔵
ROM として使用する場合には , ワード (32 ビット ) 単位での命令 / データ読出しが可能
であり , デバイスの高速動作を実現できます。
本書と併せて MBM29LV400TC データシートも参照してください。
フラッシュメモリマクロと FR-CPU インタフェース回路の組合せにより , 以下の機能を
実現します。
• CPU のプログラム / データ格納用メモリとして機能
- ROM として使用する際は 32 ビットバス幅でアクセス可能
- CPU による読出し / 書込み / 消去 ( 自動プログラムアルゴリズム* ) が可能
• 単体フラッシュメモリ製品の MBM29LV400TC 相当の機能
ROM ライタによる読出し / 書込み / 消去 ( 自動プログラムアルゴリズム* ) が可能
* : 自動プログラムアルゴリズム = Embedded AlgorithmTM
ここでは , FR-CPU からこのフラッシュメモリを使用する場合について解説していま
す。
ROM ライタからこのフラッシュメモリを使用する場合の詳細については , 別途 ROM
ライタの取扱説明書を参照してください。
■ 自動アルゴリズム実行状態
CPU プログラミングモードにて自動アルゴリズムを起動した場合には , 内部レディ信
号 (RDY) により自動アルゴリズムの動作状態を知ることができます。このレディ信号
のレベルは , フラッシュメモリステータスレジスタの RDY ビットとして読むことがで
きます。
RDY ビットが "0" の期間は , 自動アルゴリズムによる書込みまたは消去が行われてお
り , 新たな書込みまたは消去コマンドを受け付けることはできません。また , フラッ
シュメモリアドレスからのデータ読出しはできません。RDY ビットが "0" の期間に読
み出したデータはフラッシュメモリのステータスを示すハードウェアシーケンスフラ
グとなっています (「17.4 自動アルゴリズム起動方法」を参照 )。
416
第 17 章 フラッシュメモリ
■ ROM ライタによる書込み
このフラッシュメモリは , ROM ライタを用いてデバイス外部より書込みを行うことが
できます。この状態では , 単体フラッシュメモリ製品の MBM29LV400TC 相当の端子
機能がデバイス外部端子に割り当てられ , FR-CPU は動作を停止します。CPU モードと
はアドレス線の接続が変更され , メモリ領域内のマッピングが変化します。詳細につい
ては『対応 ROM ライタの仕様書』を参照してください。
■ フラッシュメモリのブロックダイヤグラム
図 17.1-1 フラッシュメモリのブロックダイヤグラム
CPU
フラッシュインタフェース
CPUコア
フラッシュメモリ
制御信号
制御信号
A0~A17
A0~A17
制御信号
アドレス
DQ0~DQ15
DQ0~DQ15
データ
制御信号
アドレス
データ
フラッシュ
ライタ
との
インタ
フェース
(フラッシュ
モード時)
417
第 17 章 フラッシュメモリ
■ フラッシュメモリのセクタ構成
フラッシュメモリのアドレスマッピングは , FR-CPU からのアクセス時と ROM ライタ
でのアクセス時とでは異なります。図 17.1-2 と表 17.1-1 に FR-CPU からのアクセス時
におけるマッピングを , 図 17.1-3 に ROM ライタからのアクセス時におけるマッピング
を示します。
● FR-CPU からのアクセス時におけるマッピング
図 17.1-2 FR-CPU からのアクセス時におけるマッピング
000F_FFFFH
FFFF_FFFFH
SAA4(16 Kバイト) SAA9(16 Kバイト)
000F_8000H
000F_7FFFH
0010_0000H
000F_FFFFH
000C_0000H
SAA3(8 Kバイト)
SAA8(8 Kバイト)
SAA2(8 Kバイト)
SAA7(8 Kバイト)
000F_4000H
000F_3FFFH
フラッシュ
メモリ
256Kバイト
000F_0000H
000E_FFFFH
SAA1(32 Kバイト) SAA6(32 Kバイト)
000E_0000H
000D_FFFFH
SAA0(64 Kバイト) SAA5(64 Kバイト)
000C_0000H
0000_0000H
Bit 31
CPUモードでアクセス
モードでアクセス
する場合のバイト位置
16 15
0
1
0
2
3
表 17.1-1 セクタアドレス一覧 (FR-CPU からのアクセス時 )
418
セクタ
アドレス
アドレス範囲
対応ビット位置
セクタ容量
SAA9
F_8002, 3H ∼ F_FFFE, FH
ビット 15 ∼ 0
16 K バイト
SAA8
F_4002, 3H ∼ F_7FFE, FH
ビット 15 ∼ 0
8 K バイト
SAA7
F_0002, 3H ∼ F_3FFE, FH
ビット 15 ∼ 0
8 K バイト
SAA6
E_0002, 3H ∼ E_FFFE, FH
ビット 15 ∼ 0
32 K バイト
SAA5
C_0002, 3H ∼ D_FFFE, FH
ビット 15 ∼ 0
64 K バイト
SAA4
F_8000, 1H ∼ F_FFFC, DH
ビット 31 ∼ 15
16 K バイト
SAA3
F_4000, 1H ∼ F_7FFC, DH
ビット 31 ∼ 15
8 K バイト
SAA2
F_0000, 1H ∼ F_3FFC, DH
ビット 31 ∼ 15
8 K バイト
SAA1
E_0000, 1H ∼ E_FFFC, DH
ビット 31 ∼ 15
32 K バイト
SAA0
C_0000, 1H ∼ D_FFFC, DH
ビット 31 ∼ 15
64 K バイト
第 17 章 フラッシュメモリ
● ROM ライタからのアクセス時におけるマッピング
図 17.1-3 ROM ライタからのアクセス時におけるアドレスマッピング
F_FFFFH
F_C000H
F_BFFFH
F_A000H
F_9FFFH
F_8000H
F_7FFFH
F_0000H
E_FFFFH
E_0000H
D_FFFFH
D_C000H
D_BFFFH
D_A000H
D_9FFFH
D_8000H
D_7FFFH
D_0000H
C_FFFFH
C_0000H
SAA9(16 Kバイト)
SAA8(8 Kバイト)
SAA7(8 Kバイト)
SAA6(32 Kバイト)
SAA5(64 Kバイト)
SAA4(16 Kバイト)
SAA3(8 Kバイト)
SAA2(8 Kバイト)
SAA1(32 Kバイト)
SAA0(64 Kバイト)
0 ビット位置
15
1
0
バイト位置 (ライタで書く場合)
0
1
CPUがリードする場合
419
第 17 章 フラッシュメモリ
表 17.1-2 セクタアドレス一覧 (ROM ライタからのアクセス時 )
420
セクタ
アドレス
アドレス範囲
対応ビット位置
セクタ容量
SAA9
F_C000H ∼ F_FFFFH
ビット 15 ∼ビット 0
16 K バイト
SAA8
F_A000H ∼ F_BFFFH
ビット 15 ∼ビット 0
8 K バイト
SAA7
F_8000H ∼ F_9FFFH
ビット 15 ∼ビット 0
8 K バイト
SAA6
F_0000H ∼ F_7FFFH
ビット 15 ∼ビット 0
32 K バイト
SAA5
E_0000H ∼ E_FFFFH
ビット 15 ∼ビット 0
64 K バイト
SAA4
D_C000H ∼ D_FFFFH
ビット 15 ∼ビット 0
16 K バイト
SAA3
D_A000H ∼ D_BFFFH
ビット 15 ∼ビット 0
8 K バイト
SAA2
D_8000H ∼ D_9FFFH
ビット 15 ∼ビット 0
8 K バイト
SAA1
D_0000H ∼ D_7FFFH
ビット 15 ∼ビット 0
32 K バイト
SAA0
C_0000H ∼ C_FFFFH
ビット 15 ∼ビット 0
64 K バイト
第 17 章 フラッシュメモリ
レジスタ
17.2
フラッシュメモリにはフラッシュメモリステータスレジスタ (FLCR) とフラッシュ
メモリウェイトレジスタ (FLWC) の 2 種類のレジスタがあります。
■ フラッシュメモリのレジスタ一覧
図 17.2-1 に , フラッシュメモリのレジスタ一覧を示します。
図 17.2-1 フラッシュメモリのレジスタ一覧
Bit7
0
フラッシュメモリステータスレジスタ (FLCR)
Bit7
0
フラッシュメモリウェイトレジスタ (FLWC)
表 17.2-1 アドレスマップ
レジスタ
アドレス
ブロック
+0
+1
+2
+3
007000H
FLCR[R/W] B
0110X000
−
−
−
007004H
FLWC[R/W] B
00000011
−
フラッシュ
インタフェース
−
−
421
第 17 章 フラッシュメモリ
17.2.1
フラッシュメモリステータスレジスタ (FLCR)
フラッシュメモリステータスレジスタ (FLCR) は , フラッシュメモリの動作状態を示
すレジスタです。
■ フラッシュメモリステータスレジスタ (FLCR) の構成
このレジスタは , CPU に対する割込みの制御やフラッシュメモリへの書込みの制御を
行います。CPU でのみアクセスすることが可能です。ライタ搭載時はアクセスできま
せん。
このレジスタは , リードモディファイライト系命令ではアクセスしないでください。
図 17.2-2 に , フラッシュメモリステータスレジスタ (FLCR) のビット構成を示します。
図 17.2-2 フラッシュメモリステータスレジスタ (FLCR) のビット構成
アドレス
007000H
7
6
5
4
3
2
1
0
−
R/W
0
−
R/W
1
−
R/W
1
−
R
0
RDY
R
X
−
R/W
0
WE
R/W
0
−
R/W
0
←ビット No.
←属性
←初期値
以下に,フラッシュメモリステータスレジスタ(FLCR)の各ビットの機能を説明します。
[ ビット 7] (reserved)
このビットは予約ビットです。このビットは常に "0" を書き込んでください。
[ ビット 6] (reserved)
このビットは予約ビットです。このビットは常に "1" を書き込んでください。
[ ビット 5] (reserved)
このビットは予約ビットです。このビットは常に "1" を書き込んでください。
[ ビット 4] (reserved)
このビットは予約ビットです。このビットはリードオンリで書込みは動作に影響を
与えません。
[ ビット 3] RDY : 自動アルゴリズムの動作状態を示します。
RDY
機能
0
書込み / 読出し動作中で , データの書込み , 読出しおよび消去コマンド
の受付けは不可
1
データの読出し , 書込みおよび消去コマンドの受付けが可能
[ ビット 2] (reserved)
このビットは予約ビットです。このビットは常に "0" を書き込んでください。
422
第 17 章 フラッシュメモリ
[ ビット 1] WE : CPU モードにおけるフラッシュメモリへのデータおよびコマンドの
書込みを制御します。
本ビットが "0" の間は , フラッシュメモリへのデータおよびコマンドの書込みはすべて
無効になります。また , フラッシュメモリからのデータ読出しは , 32 ビットアクセスで
行われます。
本ビットが "1" の間は , フラッシュメモリへのデータおよびコマンドの書込みが有効と
なり , 自動アルゴリズムの起動が可能となります。ただし , フラッシュメモリからの
データの読出しおよび書込みは 16 ビットアクセスになります。フラッシュメモリへの
アクセスは 16 ビットアクセスのみを使用してください。32 ビット , 8 ビットのアクセ
スは禁止します。
本ビットの書換えは , 必ず RDY ビットにより自動アルゴリズムが停止していることを
確認した後 , 行ってください。
RDY ビットが "0" の間 , 本ビットを書き換えることはできません。
WE
機能
0
フラッシュメモリへの書込み禁止 , および 32 ビット読出しモード
1
フラッシュメモリへの書込み許可 , および 16 ビット読出しモード
[ ビット 0] (reserved)
このビットは予約ビットです。このビットは常に "0" を書き込んでください。
● 制限事項
本レジスタの WE ビットを書き換える場合には必ず下記の命令シーケンスを F-bus
RAM 上 (CPU 内部に搭載されている RAM) で実行してください。また , レジスタ書換
え時には , DMA, 割込み , スタンバイ動作は行わないでください。
命令シーケンス :
1: NOP
2: NOP
3: NOP
4: NOP
5: NOP
6: MUL R2,R3
7: STB R11,@R12
8: MUL R2,R3
9: NOP
//32 ビットダミー乗算
// レジスタ書換え
//32 ビットダミー乗算
423
第 17 章 フラッシュメモリ
フラッシュウェイトレジスタ (FLWC)
17.2.2
フラッシュウェイトレジスタ (FLWC) は , CPU モードにおいてフラッシュメモリの
ウェイト制御を行います。
■ フラッシュウェイトレジスタ (FLWC) の構成
図 17.2-3 に , フラッシュウェイトレジスタ (FLWC) のビット構成を示します。
図 17.2-3 フラッシュウェイトレジスタ (FLWC) のビット構成
アドレス
007004H
7
6
5
4
3
−
R
0
−
R/W
0
FAC1
R/W
0
FAC0
R/W
0
−
R/W
0
2
1
0
←ビット No.
WTC2 WTC1 WTC0
R/W
R/W
R/W ←属性
0
1
1
←初期値
以下に , フラッシュウェイトレジスタ (FLWC) の各ビットの機能を説明します。
[ ビット 7, ビット 6] (reserved)
これらのビットは予約ビットです。
これらのビットは常に "0" を書き込んでください。
[ ビット 5, ビット 4] FAC1, FAC0 : 内部書込み信号のパルス幅制御ビット
FAC1
FAC0
ATDIN
EQIN
0
0
0.5 clock
1 clock
0
1
1 clock
1.5 clock
1
0
1.5 clock
2 clock
1
1
2 clock
2.5 clock
( 初期値 : デフォルト )
<注意事項>
• ATDIN, EQIN は内部書込み信号です。通常はデフォルト設定で使用してください。
• マスク品は常に "00B" を書き込んでください。
[ ビット 3] (reserved)
このビットは予約ビットです。このビットは常に "0" を書き込んでください。
424
第 17 章 フラッシュメモリ
[ ビット 2 ∼ビット 0] WTC2 ∼ WTC0 : ウェイトサイクル制御ビット
本ビットはフラッシュアクセス時のウェイトサイクル数を制御します。
WTC2
WTC1
WTC0
Wait Cycle
読出し時
書込み時
0
0
0
-
設定禁止
設定禁止
0
0
1
1
33 MHz まで動作可能
設定禁止
0
1
0
2
33 MHz まで動作可能
設定禁止
0
1
1
3
33 MHz まで動作可能
33 MHz まで動作可能
1
0
0
4
設定禁止
設定禁止
1
0
1
5
設定禁止
設定禁止
1
1
0
6
設定禁止
設定禁止
1
1
1
7
設定禁止
設定禁止
( 初期値 )
<注意事項>
• FAC1, FAC0 で設定したサイクル以上になるように設定してください。
• 初期値は書込み用の設定になっています。読出しのみを行う場合
(FLCR WE=0 設定の場合 ) wait cycle 1 (WTC2 ∼ WTC0 = 001B) と設定することで
最高速で読出しが可能になります。
• マスク品の初期値は , wait cycle 3 (WTC2 ∼ WTC0 = 011B) で読み出されます。
wait cycle 1 (WTC2 ∼ WTC0 = 001B) と設定することで最高速で読出しが可能にな
ります。
425
第 17 章 フラッシュメモリ
17.3
フラッシュメモリのアクセスモード
FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。
• ROM モードワード (32 ビット ) 長データを一括で読み出すことができますが ,
書込みはできません。
• プログラミングモードワード (32 ビット ) 長アクセスは禁止されていますが ,
ハーフワード (16 ビット ) 長での書込みが可能になります。
■ FR-CPU ROM モード (32/16/8 ビット , 読出しのみ )
FR-CPU の内蔵 ROM として機能するモードです。ワード (32 ビット ) 長データの一括
読出しが可能となりますが , フラッシュへの書込み , 自動アルゴリズムの起動はできま
せん。
● モードの指定方法
• フラッシュメモリステータスレジスタの WE ビットが "0" のとき , このモードと
なります。
• CPU 動作時でのリセット解除後は常にこのモードになります。
• CPU 動作時以外ではこのモードにすることができません。
● 動作内容
フラッシュメモリ領域の読出し時 , メモリよりワード (32 ビット ) 長データを一括で読
み出します。
読出しにかかるサイクル数は 2 サイクル /1 ワード (1 ウェイト ) です。これにより FRCPU に対し , ウェイトなしで命令を供給することができます。
● 制限事項
ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。この
モードでは , フラッシュメモリへのコマンド / データともに書込みはできません。
■ FR-CPU プログラミングモード (16 ビット , 読出し / 書込み )
データの消去 / 書込みが可能になるモードです。ワード (32 ビット ) 長データの一括ア
クセスは不可能ですので,このモードで動作している間はフラッシュメモリ上のプログ
ラムは実行が不可能となります。
● モード指定の方法
• フラッシュメモリステータスレジスタ (FLCR) の WE ビットが "1" のときこのモー
ドとなります。
• CPU 動作時でのリセット解除後は WE ビットが "0" になっています。このモード
にするためには "1" を書き込んでください。再度 "0" を書き込むか , またはリセッ
トの発生により WE ビットが "0" になると ROM モードに戻ります。
• フラッシュメモリステータスレジスタ (FLCR) の RDY ビットが "0" の期間は WE
ビットを書き換えることができません。RDY ビットが "1" になったことを確認し
た後 , WE ビットを書き換えてください。
426
第 17 章 フラッシュメモリ
● 動作内容
• フラッシュメモリ領域の読出し時 , メモリよりハーフワード (16 ビット ) 長データ
を一括で読み出します。
• 読出しにかかるサイクル数は 4 サイクル / ハーフワード (3 ウェイト ) です。
• フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動すること
ができます。自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込みが
可能となります。自動アルゴリズムの詳細については ,「17.4 自動アルゴリズム
起動方法」および「17.5 自動アルゴリズム実行状態」を参照してください。
● 制限事項
• ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。こ
のモードではワード (32 ビット ) 長でデータを読み出すことを禁止します。
• 本モードではワード (32 ビット ) 長データを読み出すことを禁止します。
• プログラミングアクセスモード切換えで , WE ビットを書き換える際には「17.2.1
フラッシュメモリステータスレジスタ (FLCR)」の制限事項に従って書き換えてく
ださい。
427
第 17 章 フラッシュメモリ
自動アルゴリズム起動方法
17.4
フラッシュメモリに対する書込み / 消去は , フラッシュメモリ自身が持つ自動アルゴ
リズムを起動することで行います。
● コマンドオペレーション
自動アルゴリズムを起動するには , フラッシュメモリに対し , 1 ∼ 6 回のハーフワード
(16 ビット ) データの連続書込みを実行します。これをコマンドとよびます。不正なア
ドレスとデータを書き込んだり , 誤った順番でアドレスとデータを書き込んだりすると
フラッシュメモリは読出しモードにリセットされます。
フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を表 17.4-1 に示します。
表 17.4-1 コマンド一覧
コマンド
シーケンス
読出し /
リセット
読出し /
リセット
プログラム
アク
セス
回数
第 1 書込み
サイクル
第 2 書込み
サイクル
第 3 書込み
サイクル
第 4 書込み /
読出しサイクル
第 5 書込み
サイクル
第 6 書込み
サイクル
アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ
1
XXXXH
F0H
−
−
−
−
−
−
−
−
−
−
4
D5557H
AAH
CAAABH
55H
D5557H
F0H
RA
RD
−
−
−
−
4
D5557H
AAH
CAAABH
55H
D5557H
A0H
チップ消去
6
D5557H
AAH
CAAABH
55H
D5557H
80H
PA
D5557H
PD
AAH
−
CAAABH
−
55H
−
D5557H
−
10H
セクタ消去
6
D5557H
AAH
CAAABH
55H
D5557H
80H
D5557H
AAH
CAAABH
55H
SA
30H
セクタ消去一時停止
アドレス ="XXXXH", データ ="B0H" の入力でセクタ消去中の消去一時停止
セクタ消去再開
D5557H
3
オートセレクト
アドレス ="XXXXH", データ ="30H" の入力でセクタ消去一時停止後 , 消去再開
AAH
CAAABH
55H
D5557H
90H
−
−
−
−
−
AAH
CAAABH
55H
D5557H
20H
−
−
−
−
−
−
PD
F0H or
00H
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
連続モード
3
D5557H
連続書込み
2
XXXXH
A0H
PA
連続モード
リセット
2
XXXXH
90H
XXXXH
−
ワードモード / バイトモード共にコマンドは同じで , 表記されていないビットのデータ
は任意です。
RA: 読出しアドレス
PA: 書込みアドレス
SA: セクタアドレス ( セクタ内の任意の 1 アドレスを指定 )
RD: 読出しデータ
PD: 書込みデータ
428
第 17 章 フラッシュメモリ
● リード ( 読出し )/ リセットコマンド
タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド
シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー
タを読み出します。フラッシュメモリは , ほかのコマンドが入力されるまで読出し状態
を保ちます。
フラッシュメモリは , 電源投入時自動的に読出し / リセットにセットされます。この場
合は , データ読出しにコマンドは必要ありません。
● プログラム ( 書込み )
CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書
込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック " サ
イクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そし
て , 最後の書込みサイクルでメモリへの書込みが開始されます。
自動書込みアルゴリズムコマンドシーケンス実行後は , フラッシュメモリはそれ以上の
外部からの制御を必要としません。フラッシュメモリは , 自動的に内部で作られた適切
な書込みパルスを発生し , 書き込まれたセルのマージンを検証します。自動書込み動作
は , データポーリング機能によりビット 7 のデータがこのビットに書き込んだデータと
一致したとき終了し 「
( 17.5 自動アルゴリズム実行状態 ■ ハードウェアシーケンスフラ
グ」を参照 ), このときをもって読出しモードに戻り , これ以上書込みアドレスは受け付
けなくなります。この結果 , フラッシュメモリはこの時点で次の有効アドレスを要求し
ます。このようにデータポーリングは , メモリが書込み中であることを示します。
書込み中はフラッシュメモリに書き込まれたすべてのコマンドが無視されます。もし ,
書込み中にハードウェアリセットが起動されると書き込んでいるアドレスのデータは
保証されません。書込みはどのようなアドレスの順番でも , また , セクタの境界を超え
ても可能です。書込みによってデータ 0 をデータ 1 に戻すことはできません。データ
0 にデータ 1 を書き込むと , データポーリングアルゴリズムにより素子が不良と判定さ
れるか , または見かけ上データ 1 が書き込まれたように見えるかのどちらかです。しか
し , リセット / 読出しモードでデータを読み出すとデータは "0" のままです。消去動作
のみが 0 データを 1 データにすることができます。
図 17.4-1 に , 書込みコマンドを使っ
た書込み手順を示します。
図 17.4-1 書込みコマンドを使った書込み手順
書込み開始
書込みコマンドシーケンス
デバイスのデータポーリング
次アドレス
NO
ラスト
アドレス?
YES
書込み完了
429
第 17 章 フラッシュメモリ
● チップ消去
チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。最初に , 2 つの "
アンロック " サイクルがあり , 引き続き " セットアップ " コマンドが書き込まれます。
チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。
チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ
ん。自動消去アルゴリズム実行中には , フラッシュメモリは自動的にすべてのセルを消
去する前に "0" のパターンに書き込んで検証します ( プリプログラム )。この動作中に
は , フラッシュメモリは外部からの制御は必要としません。
自動消去はコマンドシーケンス中の書込みで開始され , ビット 7 が "1" になったときに
終了し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セ
クタ消去時間×全セクタ数 + チップ書込み時間 ( プリプログラム )」となります。
チップ消去コマンドを使ったチップ消去手順を図 17.4-2 に , 示します。
● セクタ消去
セクタ消去は , 6 回のアクセスで行われます。
2 つの " アンロック " サイクルがあり , 引
き続き " セットアップ " コマンドを書込みし , その後さらに 2 つの " アンロック " サイ
クルが続き , 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が始
まります。最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間中 , 次の
セクタ消去コマンドの受付けが可能です。
複数のセクタ消去は前述したような 6 回のバスサイクルを書き込むことで同時に受付
け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ消去
コマンド (30H) を引き続き書き込むことで行います。最後のセクタ消去コマンドの書込
みから 50 µs のタイムアウト期間終了により , セクタ消去が開始されます。すなわち ,
複数のセクタを同時に消去する場合には , 次の消去セクタをそれぞれ 50 µs 以内に入力
する必要があり , それ以降ではコマンドは受け付けられないことがあります。引き続く
セクタ消去コマンドが有効かどうかはビット 3 にてモニタ可能です (「17.5 自動アル
ゴリズム実行状態
■ ハードウェアシーケンスフラグ」を参照 )。
タイムアウト中のセクタ消去コマンド , または消去一時停止以外のいかなるコマンド
も読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , その
セクタを再度消去することにより消去が完了します。セクタ消去バッファへのセクタ
アドレス入力は , セクタのどのような組合せや数 (0 ∼ 6) からでも実行可能です。セク
タ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありません。フ
ラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行います
( プリプログラム )。また , セクタ消去中はほかの消去されないセクタは何の影響も受
けません。これらの動作中は , フラッシュメモリは外部からの制御は必要としません。
自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間
の後に開始され , ビット 7 のデータが "1" になったとき (「17.5 自動アルゴリズム実行
状態
■ ハードウェアシーケンスフラグ」を参照 ) 終了し , フラッシュメモリは読出し
モードに戻ります。ほかのコマンドは無視されます。データポーリングは消去された
セクタ内のどのアドレスでも働きます。複数セクタ消去時間は「( セクタ消去時間 + セ
クタ書込み時間 ( プリプログラム )) ×消去セクタ数」となります。
チップ消去コマンドを使ったチップ消去手順を図 17.4-2 に , 示します。
430
第 17 章 フラッシュメモリ
図 17.4-2 チップ消去コマンドを使ったチップ消去手順
消去開始
チップ消去/セクタ消去
コマンドシーケンス
デバイスのデータポーリング
またはトグルビットの完了
書込み完了
● 消去一時停止
消去一時停止コマンドは,ユーザがセクタ消去中にフラッシュメモリの自動アルゴリズ
ムを一時停止して消去中でないセクタからのデータ読出しと書込みを可能にするもの
です。このコマンドはセクタ消去中のみ有効で , チップ消去や書込みの動作中は無視さ
れます。消去一時停止コマンド (B0H) はセクタ消去コマンド (30H) 後のセクタ消去タイ
ムアウト期間を含むセクタ消去動作中にのみ有効です。このコマンドがタイムアウト
期間中に入力されると直ちにタイムアウトを終了し , 消去動作を中断します。消去再開
コマンドが書き込まれると消去動作が再開されます。消去一時停止 , 消去再開コマンド
の入力の際のアドレスは任意であってかまいません。
セクタ消去動作中に消去一時停止コマンドが入力されると,フラッシュメモリが消去動
作を停止するために最大 20 µs の時間がかかります。フラッシュメモリが消去一時停止
モードに入ると , レディ / ビジー出力とビット 7 が "1" を出力し , ビット 6 がトグル動
作をやめます。消去しているセクタのアドレスを入力し , ビット 6 とビット 7 の読出し
値をモニタすることによって , 消去動作を停止しているかどうかを確かめられます。さ
らに , 消去一時停止コマンドの書込みは無視されます。消去動作が停止したとき , フ
ラッシュメモリは消去一時停止読出しモードになります。このモードでのデータの読
出しはデータが消去一時停止していないセクタに有効となりますが,それ以外は標準的
な読出しと同じです。消去一時停止読出し中 , その消去一時停止したセクタからの連続
的な読出しに対しては , ビット 2 はトグル動作をします (「17.5 自動アルゴリズム実行
状態
■ ハードウェアシーケンスフラグ」を参照 )。
消去一時停止読出しモードに入った後,ユーザは書込みのコマンドシーケンスを書き込
むことによりフラッシュメモリに書込みができます。この書込みモードは , 消去一時停
止書込みモードとなります。このモードでの書込みは , データが消去一時停止していな
いセクタに有効となりますが , それ以外は通常のバイト書込みと同じです。消去一時停
止書込みモード中 , その消去一時停止したセクタからの連続的な読出しに対しては ,
ビット 2 はトグル動作をします。消去一時停止ビット ( ビット 6) によって検出できます。
使用上の注意として , ビット 6 はどんなアドレスに対しても読出し可能ですが , ビット
7 は書込みアドレスに対して読出しを行わなければなりません。セクタ消去動作を再開
するためには , 再開コマンド (30H) を入力する必要があります。この時点でさらに再開
コマンドを入力しても無視されます。他方 , 消去一時停止コマンドはフラッシュメモリ
が消去再開した後に入力することができます。
431
第 17 章 フラッシュメモリ
17.5
自動アルゴリズム実行状態
このフラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため ,
フラッシュメモリ内部の動作状態や動作完了したことをレディ / ビジー信号および
ハードウェアシーケンスフラグによって知ることができます。
■ レディ / ビジー信号 (RDY/BUSY)
フラッシュメモリは内部の自動アルゴリズムが実行中か終了したかを知らせる手段と
して , ハードウェアシーケンスフラグのほかにレディ / ビジー信号を持っています。こ
のレディ/ ビジー信号はフラッシュメモリインタフェース回路に接続され , フラッシュ
メモリステータスレジスタの RDY ビットとして読み出すことが可能です。また , この
レディ/ ビジー信号の立上りにより , CPU に対して割込み要求を発生することも可能で
す (「17.1 フラッシュメモリの概要」を参照 )。
RDY ビットの読出し値が "0" のとき , フラッシュメモリは書込みまたは消去動作中で
す。このときは書込みコマンドも消去コマンドも受け付けません。RDY ビットの読出
し値が "1" のときフラッシュメモリは読出し / 書込みまたは消去動作待ちの状態です。
■ ハードウェアシーケンスフラグ
ハードウェアシーケンスフラグは,自動アルゴリズム実行中にフラッシュメモリの任意
のアドレス ( バイトアクセス時は奇数アドレス ) を読み出すことにより , データとして
得られます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズムの
状態を示します。ハードウェアシーケンスフラグの構成を図 17.5-1 に示します。
図 17.5-1 ハードウェアシーケンスフラグの構成
ハードウェア読出し時
15
8 7
( 不定 )
0
←ビット No.
0
←ビット No.
ハードウェアシーケンスフラグ
7
バイト読出し時 ( 奇数アドレスのみ )
ハードウェアシーケンスフラグ
ハーフワード . バイトアクセス時
7
6
5
4
3
2
1
0
DPOLL
TOGGLE
TLOVER
不定
SETIMR
TOGGL2
不定
不定
←ビット No.
なお , これらのフラグについては FR-CPU ROM モード時に意味を持ちません。必ず FRCPU プログラミングモードのみで , ハーフワードまたはバイト読出しを行ってくださ
い。
ハードウェアシーケンスフラグ状態一覧を表 17.5-1 に示します。
432
第 17 章 フラッシュメモリ
表 17.5-1 ハードウェアシーケンスフラグ状態一覧
状態
実行中
自動書込み動作
自動消去時の書込み / 消去動作
消去 読出し ( 消去中のセクタ )
一時 読出し ( 消去していないセクタ )
停止 書込み ( 消去していないセクタ )
タイム
自動書込み動作
リミット
自動消去時の書込み / 消去動作
超過
*1 :
DPOLL
( ビット 7)
TOGLLE TLOVER SETIMR TOGGL2
( ビット 6) ( ビット 5) ( ビット 3) ( ビット 2)
反転データ
0
1
トグル
トグル
1
0
0
0
0
1
0
データ
データ
反転データ
反転データ
トグル
トグル
データ
0
1
データ
0
0
0
トグル
1
1
1
トグル
トグル
データ
1 *1
1
*2
消去一時停止書込み中 , その書込みされているアドレスの読出しに対し , ビット
2 は論理 "1" を出力します。
しかし , 消去一時停止しているセクタからの連続的な読出しに対しビット 2 はト
グル動作をします。
*2 :
ビット 5 が "1" のとき ( タイムリミット超過 ), 書込み / 消去中セクタへの連続的
な読出しに対してはビット 2 はトグル動作をし , 他のセクタへの読出しに対して
はトグル動作しません。
以下に , 各ビットの説明します。
[ ビット 7]DPOLL: データポーリング
• 自動書込み動作中
自動書込みアルゴルズム実行中に読出しを行うと , フラッシュメモリはビット 7
に最後に書き込まれたデータの反転データを出力します。自動書込みアルゴリズ
ム終了時に読出しアクセスを行うと , フラッシュメモリはアドレス信号の指し示
す番地の読出しデータのビット 7 を出力します。
• 自動消去動作中
自動消去アルゴリズム実行中に読出しを行うと , フラッシュメモリはアドレス信
号の指し示す番地によらず "0" を出力します。同様に , 終了時には "1" を出力しま
す。
• セクタ消去一時停止中
セクタ消去一時停止中に読出しを行うと , フラッシュメモリはアドレス信号の指
し示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタ
に属さないのであれば , アドレス信号の指し示す番地の読出し値のビット 7 を出
力します。後述のビット 6 のトグルビットとともに参照することで , 現在セクタ
消去一時停止状態にあるか否か , どのセクタが消去中であるかの判定が可能です。
433
第 17 章 フラッシュメモリ
<注意事項>
自動アルゴリズムの動作が終了に近づくと , ビット 7( データポーリング ) は読出し動作中 ,
非同期的に変化します。
これはフラッシュメモリが動作状態の情報をビット 7 に送り出し ,
そして確定したデータをその次に送り出すことを意味します。フラッシュメモリが自動ア
ルゴリズムを終了したとき , また , ビット 7 が確定データを出力しているときでも , ほかの
ビットはまだ不確定です。ほかのビットの確定データは , 連続した読出しの実行によって
読み出されます。
[ ビット 6]TOGGLE: トグルビット
• 自動書込み / 消去動作中
自動書込みまたは消去アルゴリズム実行中に連続した読出しを行うと , フラッ
シュメモリは "1" と "0" をトグルする結果をビット 6 に出力します。自動書込み
または消去アルゴリズムが終了すると , 連続した読出しに対してビット 6 のトグ
ル動作をやめ , 有効なデータを出力します。
トグルビットは各コマンドシーケンスの差以後の書込みサイクルの後から有効
になります。
なお , 書込みの際 , 書き込もうとしたセクタが書換え保証されているセクタの場
合は , 約 2 µs の間トグル動作した後 , データに書き換えることなくトグル動作を
終わります。消去の際 , もし選択されたすべてのセクタが書込み保証されている
場合には , トグルビットは約 100 µs トグル動作をし , その後データを書き換えな
いで読出しモードに戻ります。
• セクタ消去一時停止中
セクタ消去一時停止中に読出しを行うと , フラッシュメモリはアドレス信号の指
し示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタ
に属さないのであれば , アドレス信号の指し示す番地の読出し値のビット 6 を出
力します。
[ ビット 5]TLOVER: タイミングリミット超過
自動書込み / 消去動作中
ビット 5 は自動アルゴリズムの実行がフラッシュメモリ内部に規定された時間
( 内部パルス回数 ) を超えてしまったことを示します。この状態においてビット 5
は "1" を出力します。すなわち , 自動アルゴリズムが動作中で , このフラグが "1"
を出力した場合は , 書込みまたは消去が失敗したことを示します。
ビット 5 はまた , 消去することなく非ブランクの部分に書き込もうとするとフェ
イルとなります。この場合 , ビット 7( データポーリング ) から確定データを読む
ことができず , また , ビット 6( トグルビット ) はトグリングしたままとなります。
この状態でタイムリミットを超えると , ビット 5 に "1" が出力されます。この場
合は , フラッシュメモリが不良なのではなく正しく使用されなかったということ
を表していることに注意してください。もし , この状態が発生したときには , リ
セットコマンドを実行してください。
434
第 17 章 フラッシュメモリ
[ ビット 3]SETIMR: セクタ消去タイマ
セクタ消去動作中
最初のセクタ消去コマンドシーケンス実行後 , セクタ消去ウェイト期間中になり
ます。ビット 3 は , この期間中 "0" を , セクタ消去ウェイト期間を超えてしまって
いる場合は "1" を出力します。データポーリングとトグルビットは最初のセクタ
消去コマンドシーケンスの実行後から有効となります。
データポーリング機能やトグルビット機能により , 消去アルゴリズムが実行中を
示している場合 , このフラグが "1" であれば内部で制御される消去が始まっており
, 続けてのコマンド書込みはデータポーリングかトグルビットが消去の終了を示
すまで無視されます ( 消去一時停止コードの入力のみ受け付けます )。このフラグ
が "0" の場合 , フラッシュメモリは追加のセクタ消去コードの書込みを受け付けま
す。このことを確認するために , 引き続くセクタ消去コードの書込みに先立って
ソフトウェアでこのフラグの状態をチェックすることを推奨します。もし , 2 回目
の状態チェックで "1" であったなら , 追加セクタ消去コードは受け付けられていな
い可能性があります。セクタ消去一時停止中に読出しを行うと , フラッシュメモ
リはアドレス信号の指し示す番地が消去中のセクタに属するならば "1" を出力し
ます。消去中のセクタに属さないのであれば , アドレス信号の指し示す番地の読
出し値のビット 3 を出力します。
[ ビット 2]TOGGL2: トグルビット 2
セクタ消去動作中
このトグルビットは , ビット 6 のトグルビットに加えて , フラッシュメモリが自動
消去動作中であるか , 消去一時停止中であるかを検出することに使われます。自
動消去中に消去しているセクタから連続して読出しを行うとビット 2 がトグル動
作をします。フラッシュメモリが消去一時停止読出しモードならば , 消去一時停
止しているセクタから連続して読出しを行うとビット 2 はトグル動作をします。
フラッシュメモリが消去一時停止書込みモードのときは , 消去一時停止していな
いセクタからアドレスを連続して読み出すとビット 2 は "1" が読み出されます。
ビット 6 はビット 2 と違い , 通常の書込み , 消去または消去一時停止書込み動作
中にのみトグル動作をします。
例えば , ビット 2 とビット 6 は , 消去一時停止読出しモードを検出するために一
緒に使われます ( ビット 2 はトグル動作をしますが , ビット 6 はトグル動作をしま
せん )。さらに , ビット 2 は消去しているセクタの検出にも使われます。フラッ
シュメモリが消去動作のときは , ビット 2 は消去しているセクタからの読出しな
らばトグル動作をします。
435
第 17 章 フラッシュメモリ
■ ハードウェアシーケンスフラグの使用例
ハードウェアシーケンスフラグを用いることで,フラッシュメモリ内部の自動アルゴリ
ズムの状態判定が可能です。例として , 図 17.5-2 , 図 17.5-3 にそれぞれデータポーリン
グ機能を用いた場合と , トグルビット機能を用いた場合の書込み / 消去判定のフロー
チャートを示します。
図 17.5-2 データポーリング機能を用いた書込み / 消去判定のフローチャート
書込み/消去開始
VA = 書込みアドレス
= セクタ消去動作に消去されて
いるセクタのアドレス
= チップ消去動作中に保護され
ていないセクタアドレス
読出し(D0~D7)
アドレス=VA
D7=Data ?
YES
* : D7はD5と同時に変わるので例
えばD5="1"であってもD7は再
チェックする必要があります。
NO
NO
D5=1 ?
YES
読出し(D0~D7)
アドレス=VA
*
D7=Data ?
YES
NO
書込み/消去
不可
436
書込み/消去
可
第 17 章 フラッシュメモリ
図 17.5-3 トグルビット機能を用いた書込み / 消去判定のフローチャート
書込み/消去開始
読出し(D0~D7)
アドレス= "H" または "L"
D6=トグル ?
NO
YES
NO
D5=1 ?
YES
読出し(D0~D7)
アドレス= "H" または "L"
D6=トグル ?
*
NO
YES
書込み/消去
不可
書込み/消去
可
*:D5が"1"に変わるのと同時にD6はトグル動作をやめるので,
たとえD5="1"であっても,D6は再チェックする必要があります。
437
第 17 章 フラッシュメモリ
17.6
セクタプロテクトオペレーション
フラッシュメモリには不正な書込み / 消去に対し , セクタ単位でこれを無効にするセ
クタ保護機能を持ちます。一度 , 保護設定されたセクタはデバイスが破壊しない限り ,
その設定を持ち続けますが , 一時的であれば保護を解除し , 書込み / 消去を行うこと
も可能です。これらの操作はセクタプロテクトオペレーションを通して行われます。
セクタプロテクトオペレーションには書込み / 消去のような自動アルゴリズムはあり
ません。また , 通常モードには対応せず , フラッシュメモリモードでのみ実行可能で
す。このため , 通常はフラッシュメモリライタを用いた外部端子制御で行われます。
■ セクタプロテクトオペレーション一覧
セクタプロテクトオペレーションには ,
• イネーブルセクタプロテクト
• ベリファイセクタプロテクト
• セクタプロテクト一時解除
の 3 種類があります。
表 17.6-1 に , それぞれの端子設定を示します。
表 17.6-1 端子設定
オペレーション
イネーブル
セクタプロテクト
ベリファイ
セクタプロテクト
セクタプロテクト
一時解除
CEX OEX WEX A1
A2
A7
L
H
L
L
H
L
L
L
H
L
H
L
-
-
-
-
-
-
A17 ∼
A13
D0 ∼
D15
セクタ
アドレス
セクタ
アドレス
-
H
VID
H
VID
コード
出力 *
H
H
H
VID
-
-
H
H
VID
H
* : セクタプロテクト時は "01H", セクタアンプロテクト時は "00H" を出力
438
RSTX MD2 MD1 MD0
第 17 章 フラッシュメモリ
■ イネーブルセクタプロテクト
イネーブルセクタプロテクトでは,フラッシュメモリ内部の保護回路への書込みを行い
ます。
このオペレーションにより 10 個のセクタのどのセクタの組合せでも書込みも消去も無
効にすることができます。なお , MB91F264B ではすべてのセクタが保護解除された状
態で出荷されます。このオペレーションでは , まずアドレス信号に保護すべきセクタの
セクタアドレス (A17, A16, A15, A14, A13) の設定が必要となります。セクタとセクタ
アドレスの対応は , 表 17.1-1 を参照してください。
保護回路の書込みは , MD2 と MD0 に VID (=12 V) を印加し , CEX=0 にした後 ,WEX パ
ルスの立下りで開始され , 立上りで終了します。
なお , セクタアドレスは WEX パルスの間中一定に保たなければなりません。セクタ保
護は一度設定されると , 取り消すことができません。また , 保護されたセクタへは , こ
れ以降書込み / 消去は不可能となります。
■ ベリファイセクタプロテクト
ベリファイセクタプロテクトでは,フラッシュメモリ内部の保護回路の書込みに対する
検証 ( ベリファイ ) を行います。このオペレーションでは , まず CEX と OEX を "0" に
し ,WEX を "1" にしたまま MD0 に VID を印加 ( マージンモード ) します。(A7, A2,
A1)=(0, 1, 0) の条件でアドレス信号をあるセクタアドレスにして読み出すと , 保護され
たセクタでは出力 DQ0 に "1" が出力されます。保護されていないセクタでは , "00H" が
読み出されます。イネーブルセクタプロテクト , ベリファイセクタプロテクトを用いた
セクタ保護のアルゴリズムを図 17.6-1 に , 示します。
439
第 17 章 フラッシュメモリ
図 17.6-1 イネーブルセクタプロテクトおよび
ベリファイセクタプロテクトを用いたセクタ保護アルゴリズム
開始
セクタアドレスのセットアップ
A17~A13
PLSCNT=1
MD2=MD0=VID、
MD1=HA1=CEX=WEX="L"
OEX=RSTX="H"
WEXパルス印加
タイムアウト100µs
WEX=MD2="H"
CEX=OEX="L"
(MD0はVIDのまま)
セクタアドレスSAの読出し
(アドレス=SA、A1="L"
A2="H"、A7="L")
NO
データ=01H ?
YES
NO
PLSCNT=50 ?
YES
MD0のVIDを解除
リセットコマンドを書き込み
ほかにセクタ
保護 ?
NO
MD0のVIDを解除
リセットコマンドを書き込み
不可
セクタ保護完了
440
YES
第 17 章 フラッシュメモリ
■ セクタプロテクト一時解除
イネーブルセクタプロテクトにより保護されたセクタはデバイスが破壊しない限り,書
込み / 消去ができませんが , セクタプロテクト一時解除のオペレーションでは , 以前に
設定されたセクタ保護情報の一時的解除を可能にします。このオペレーションは , MD1
に VID を印加し続けることで設定されます。この間 , 以前に設定されたセクタ保護情
報は無視され , すべてのセクタに書込み / 消去が可能となります。MD1 を "1" (=3.3 V)
に戻すと , このオペレーションは解除され , 以前に保護されたすべてのセクタが再び保
護されます。セクタプロテクト一時解除のアルゴリズムを図 17.6-2 に示します。
図 17.6-2 セクタプロテクト一時解除のアルゴリズム
開始
MD1=VID
*1
消去または書込み動作実行
MD1="H"
セクタ保護解除終了
*2
*1:すべての保護されたセクタの保護を
解除します。
*2:前に保護されていたセクタが再びセ
クタ保護されます。
441
第 17 章 フラッシュメモリ
442
第 18 章
シリアル書込み接続
シリアル書込みの基本構成 , および接続例について
説明します。
18.1 概要
443
第 18 章 シリアル書込み接続
18.1
概要
MB91F264B ではフラッシュメモリのシリアルオンボード書込み ( 富士通標準 ) をサ
ポートしています。その仕様について説明します。
■ シリアル書込み基本構成
富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ製 AF220/
AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。シングルチップ
モードで動作するプログラムで書き込むことができます。MB91F264B シリアル書込み
接続の基本構成について図 18.1-1 に示します。
図 18.1-1 シリアル書込み接続の基本構成
ホストインタフェースケーブル
汎用共通ケーブル(AZ210)
RS232C
AF220/AF210/
AF120/AF110
フラッシュマイ
コンプログラマ
CLK同期シリアル
MB91F264B
ユーザシステム
+
メモリカード
スタンドアロンで動作可能
<注意事項>
AF210 フラッシュマイコンプログラマの機能・操作方法および接続用汎用共通ケーブル
(AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株式会社にお問い合わ
せください。
444
第 18 章 シリアル書込み接続
■ 富士通標準シリアルオンボード書込みに使用する端子
端子
機能
補足説明
MD2, MD1, モード端子
MD0
書込みモードに制御します。
フラッシュシリアル書込みモード : MD2, MD1, MD0=1, 0, 0
参考 : シングルチップモード : MD2, MD1, MD0=0, 0, 0
P44, P45
書込みプログラム起動端子 P44 に "L" レベル , P45 に "H" レベルを入力してください。
INIT
リセット端子
SIN0
シリアルデータ入力端子
SOT0
シリアルデータ出力端子
SCK0
シリアルクロック入力端子
VCC
電源電圧供給端子
書込み電圧をユーザシステムから供給してください。接続
時にはユーザ側の電源と短絡しないようにしてください。
VSS
GND 端子
フラッシュマイコンプログラマの GND と共通にします。
−
UART の ch.0 リソースをクロック同期モードとして使用
します。
<注意事項>
• P44, P45, SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 以下に示
す制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により ,
シリアル書込み中はユーザ回路を切り離すことができます )。
AF220/AF210/
AF120/AF110
書込み制御端子
MB91F264B
書込み制御端子
10 k
AF220/AF210/
AF120/AF110
/TICS端子
ユーザ回路
• AF200 との接続はユーザ電源が OFF の状態で行ってください。
445
第 18 章 シリアル書込み接続
■ シリアル書込み接続例
図 18.1-2 MB91F264B シリアル書込み接続例
AF200
フラッシュマイコン
プログラマ
ユーザシステム
コネクタ
TAUX3
(19)
シリアル書換え時 1
シリアル書換え時 0
TMODE
MB91F264B
DX10-28S
(12)
シリアル書換え時 0
MD2
74
MD1
75
MD0
76
P44
27
10 k
10 k
10 k
ユーザ回路
シリアル書換え時 0
WDT
(18)
/TICS
(10)
シリアル書換え時 1
10 k
ユーザ回路
P45
28
INITX
77
(5)
▼
TRXD
(13)
(27)
▼
▼
SIN0
SOT0
98
99
TCK
(6)
▼
SCK0
100
TVcc
(2)
/TRES
TTXD
GND
(14,15,
1,28)
Vcc
(17,35,49,
67,92)
Vss
(18,37,50,
68,93)
ユーザ電源(5.0 V)
14ピン
1ピン
D X 10-28S
3,4,9,11,16,17,18,
20,23,24,25,26ピン
はオープン
28ピン
15ピン
コネクタ(ヒロセ電機製)のピン配列
DX10-28S:ライトアングルタイプ
▼:10 k プルアップ
446
第 18 章 シリアル書込み接続
■ AF200 フラッシュマイコンプログラマシステム構成
( 横河ディジタルコンピュータ株式会社製 )
型格
機能
本 AF220
体
AF210
/AC4P
イーサネットインタフェースモデル
/100 V ∼ 220 V 電源アダプタ
/AC4P
スタンダードモデル
/100 V ∼ 220 V 電源アダプタ
AF120
/AC4P
単キーイーサネットインタフェースモデル
/100 V ∼ 220 V 電源アダプタ
AF110
/AC4P
単キーモデル
/100 V ∼ 220 V 電源アダプタ
AZ221
ライタ専用 PC-AT 用 RS232C ケーブル
AZ210
標準ターゲットプローブ (a) 長さ : 1 m
FF201
富士通製 FR フラッシュマイコン用コントロールモジュール
AZ290
リモートコントローラ
/P4
4 M バイト PC Card ( 別売品 ) フラッシュメモリ容量 512 K バイトまで
問い合せ先 : 横河ディジタルコンピュータ株式会社機器事業部
電話 : 042-333-6224
■ 原発振クロック周波数について
フラッシュメモリ書込み時に使用可能な原発振クロックは 4.0 MHz となっています。
■ その他の注意事項
シリアルライタを用いてフラッシュメモリ書込み時のポート状態は , 書込みに使用し
ている端子を除きリセット状態と同じです。
447
第 18 章 シリアル書込み接続
448
付録
I/O マップ , 割込みベクタ , 端子状態一覧 , リトル・
エンディアン領域を利用する際の注意事項 , 命令一
覧 , および使用上の注意事項について記載していま
す。
付録 A I/O マップ
付録 B ベクタテーブル
付録 C 各 CPU ステートにおける端子状態
付録 D リトル・エンディアン領域を利用する際の注意事項
付録 E 命令一覧表
付録 F 使用上の注意
449
付録
付録 A
I/O マップ
メモリ空間領域と周辺リソースの各レジスタの対応を示します。
■ I/O マップ
[ 表の見方 ]
アドレス
000000 H
+0
PDR0 [R/W]
XXXXXXXX
レジスタ
+1
+2
PDR1 [R/W]
PDR2 [R/W]
XXXXXXXX
XXXXXXXX
+3
PDR3 [R/W]
XXXXXXXX
ブロック
T-unit
ポートデータレジスタ
読出し/書込み アトリビュート
リセット後のレジスタ初期値
レジスタ名(1コラムのレジスタが4n番地, 2コラムが4n+2番地・・・)
最左のレジスタ番地(ワードでアクセスした際は, 1コラム目の
レジスタがデータのMSB側となる。)
<注意事項>
• レジスタのビット値は , 以下のように初期値を表します。
"1" : 初期値 "1"
"0" : 初期値 "0"
"X" : 初期値 "X"
"-" : その位置に物理的にレジスタがない
• DMACA0 ∼ DMACA4 の下位 16 ビット (DTC15 ∼ DTC0) は , バイトでのアクセスは
できません。
450
付録 A I/O マップ
表 A-1 I/O マップ (1 / 7)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
000000H
PDR0 [R/W] B
XXXXXXXX
PDR1 [R/W] B
XXXXXXXX
PDR2 [R/W] B
XXXXXXXX
PDR3 [R/W] B
XXXXXXXX
000004H
PDR4 [R/W] B
XXXXXXXX
PDR5 [R/W] B
XXXXXXXX
PDR6 [R/W] B
----XXXX
PDR7 [R/W] B
XXXXXXXX
000008H
ポートデータ
レジスタ
__________________
00000CH
PDRC [R/W] B
XXXXXXXX
PDRD [R/W] B
------XX
PDRE [R/W] B
------XX
________
000010H
PDRG [R/W] B
--XXXXXX
________
________
________
000014H
∼
00003CH
__________________
000040H
EIRR0 [R/W] B,H,W
00000000
ENIR0 [R/W] B,H,W
00000000
000044H
DICR [R/W] B,H,W
-------0
HRCL [R/W,R] B,H,W
0--11111
予約
ELVR0 [R/W] B,H,W
00000000 00000000
________
________
TMRLR0 [W] H,W
XXXXXXXX XXXXXXXX
TMR0 [R] H,W
XXXXXXXX XXXXXXXX
00004CH
________
TMCSR0 [R/W,R] B,H,W
---00000 00000000
000050H
TMRLR1 [W] H,W
XXXXXXXX XXXXXXXX
TMR1 [R] H,W
XXXXXXXX XXXXXXXX
000054H
________
TMCSR1 [R/W,R] B,H,W
---00000 00000000
000058H
TMRLR2 [W] H,W
XXXXXXXX XXXXXXXX
TMR2 [R] H,W
XXXXXXXX XXXXXXXX
________
TMCSR2 [R/W,R] B,H,W
---00000 00000000
000048H
00005CH
000060H
000064H
000068H
00006CH
000070H
000074H
SSR0 [R/W,R] B,H,W
00001000
SIDR0[R]/SODR0
[W] B,H,W
ADCH0 [R/W] B,H,W
XX000000
00007CH
ADCS0[R/W,W] B,H,W
00000X00
リロード
タイマ 1
リロード
タイマ 2
UART0
DRCL0
--------*3
UTIMC0 [R/W] B
0--00001
U-TIMER0
SCR1 [R/W] B,H,W
00000100
SMR1 [R/W] B,H,W
00--0-0-
UART1
DRCL1
--------*3
UTIMC1 [R/W] B
0--00001
U-TIMER1
SCR2 [R/W] B,H,W
00000100
SMR2 [R/W] B,H,W
00--0-0-
UART2
DRCL2
--------*3
UTIMC2 [R/W] B
0--00001
U-TIMER2
ADMD0 [R/W] B,H,W
00001111
ADCD01 [R] B,H,W
XXXXXXXX
ADCD00 [R] B,H,W
XXXXXXXX
________
AICR0 [R/W] B,H,W
00000000
________
XXXXXXXX
SIDR1,SODR1
[R/W]B,H,W
XXXXXXXX
SIDR2,SODR2
[R/W] B,H,W
XXXXXXXX
UTIM2 [R] H / UTIMR2 [W] H
00000000 00000000
000078H
リロード
タイマ 0
SMR0 [R/W,W] B,H,W
00--0-0-
UTIM1 [R] H / UTIMR1 [W] H
00000000 00000000
SSR2 [R/W,R] B,H,W
00001000
遅延割込み /
ホールド
リクエスト
SCR0 [R/W] B,H,W
00000100
UTIM0 [R] H / UTIMR0 [W] H
00000000 00000000
SSR1 [R/W,R] B,H,W
00001000
外部割込み
(INT0~INT7)
A/D コンバータ 0 /
AICR0
451
付録
表 A-1 I/O マップ (2 / 7)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
000080H
ADCH1 [R/W] B,H,W
XXXX0XX0
ADMD1 [R/W] B,H,W
00001111
ADCD11 [R] B,H,W
XXXXXXXX
ADCD10 [R] B,H,W
XXXXXXXX
000084H
ADCS1[R/W,W] B,H,W
00000X00
________
AICR1 [R/W] B,H,W
------00
________
000088H
ADCH2 [R/W] B,H,W
XXXX0XX0
ADMD2 [R/W] B,H,W
00001111
ADCD21 [R] B,H,W
XXXXXXXX
ADCD20 [R] B,H,W
XXXXXXXX
00008CH
ADCS2[R/W,W] B,H,W
00000X00
________
AICR2 [R/W] B,H,W
------00
________
000090H
OCCPBH0, OCCPBL0[W]/OCCPH0, OCCPL0 [R] H,W OCCPBH1, OCCPBL1[W]/OCCPH1, OCCPL1 [R] H,W
00000000 00000000
00000000 00000000
000094H
OCCPBH2, OCCPBL2[W]/OCCPH2, OCCPL2 [R] H,W OCCPBH3, OCCPBL3[W]/OCCPH3, OCCPL3 [R] H,W
00000000 00000000
00000000 00000000
000098H
OCCPBH4, OCCPBL4[W]/OCCPH4, OCCPL4 [R] H,W OCCPBH5, OCCPBL5[W]/OCCPH5, OCCPL5 [R] H,W
00000000 00000000
00000000 00000000
AICR1
OCSH1 [R/W] B,H,W
X1100000
OCSL0 [R/W] B,H,W
00001100
OCSH3 [R/W] B,H,W
X1100000
OCSL2 [R/W] B,H,W
00001100
0000A0H
OCSH5 [R/W] B,H,W
X1100000
OCSL4 [R/W] B,H,W
00001100
OCMOD [R/W] B,H,W
XX000000
________
0000A8H
TCDTH, TCDTL [R/W] H,W
00000000 00000000
CPCLRBH, CPCLRBL[W]/CPCLRH, CPCLRL[R] H,W
11111111 11111111
TCCSH [R/W] B,H,W
00000000
TCCSL [R/W] B,H,W
01000000
________
ADTRGC [R/W] B,H,W
XXXX0000
0000ACH
IPCPH0, IPCPL0 [R] H,W
XXXXXXXX XXXXXXXX
IPCPH1, IPCPL1 [R] H,W
XXXXXXXX XXXXXXXX
0000B0H
IPCPH2, IPCPL2 [R] H,W
XXXXXXXX XXXXXXXX
IPCPH3, IPCPL3 [R] H,W
XXXXXXXX XXXXXXXX
0000B4H
PICSH01 [W] B,H,W
000000--
PICSL01 [R/W] B,H,W
00000000
0000B8H
EIRR1 [R/W] B,H,W
------00
ENIR1 [R/W] B,H,W
------00
0000BCH
TMRRH0, TMRRL0 [R/W] H,W
XXXXXXXX XXXXXXXX
0000C0H
TMRRH2, TMRRL2 [R/W] H,W
XXXXXXXX XXXXXXXX
ICSH23 [R] B,H,W
XXXXXX00
ELVR1 [R/W] B,H,W
-------- ----0000
________
________
DTCR2 [R/W] B,H,W
00000000
________
0000C8H
________
SIGCR1 [R/W] B,H,W
00000000
________
SIGCR2 [R/W] B,H,W
XXXXXXX1
ADCOMP2 [R/W] H,W
00000000 00000000
0000D4H
∼
0000DCH
452
16 ビット ICU
外部割込み
(INT8,INT9)
波形ジェネレータ
DTCR1 [R/W] B,H,W
00000000
0000D0H
16 ビット
フリーランタイマ
TMRRH1, TMRRL1 [R/W] H,W
XXXXXXXX XXXXXXXX
DTCR0 [R/W] B,H,W
00000000
ADCOMP0 [R/W] H,W
00000000 00000000
16 ビット OCU
ICSL23 [R/W] B,H,W
00000000
0000C4H
0000CCH
A/D コンバータ 2 /
AICR2
00009CH
0000A4H
A/D コンバータ 1 /
ADCOMP1 [R/W] H,W
00000000 00000000
________
________________
ADCOMPC [R/W]
B,H,W
XXXXX000
A/D COMP
予約
付録 A I/O マップ
表 A-1 I/O マップ (3 / 7)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
0000E0H
PWCSR0 [R/W,R] B,H,W
00000000 00000000
PWCR0 [R] H,W
00000000 00000000
0000E4H
PWCSR1 [R/W,R] B,H,W
00000000 00000000
PWCR1 [R] H,W
00000000 00000000
0000E8H
________
PDIVR0 [R/W] B,H,W
XXXXX000
0000ECH
∼
000FCH
________
PDIVR1 [R/W] B,H,W
XXXXX000
_________________
予約
000100H
PRLH0 [R/W] B,H,W
XXXXXXXX
PRLL0 [R/W] B,H,W
XXXXXXXX
PRLH1 [R/W] B,H,W
XXXXXXXX
PRLL1 [R/W] B,H,W
XXXXXXXX
000104H
PRLH2 [R/W] B,H,W
XXXXXXXX
PRLL2 [R/W] B,H,W
XXXXXXXX
PRLH3 [R/W] B,H,W
XXXXXXXX
PRLL3 [R/W] B,H,W
XXXXXXXX
000108H
PPGC0 [R/W] B,H,W
0000000X
PPGC1 [R/W] B,H,W
0000000X
PPGC2 [R/W] B,H,W
0000000X
PPGC3 [R/W] B,H,W
0000000X
00010CH
PRLH4 [R/W] B,H,W
XXXXXXXX
PRLL4 [R/W] B,H,W
XXXXXXXX
PRLH5 [R/W] B,H,W
XXXXXXXX
PRLL5 [R/W] B,H,W
XXXXXXXX
000110H
PRLH6 [R/W] B,H,W
XXXXXXXX
PRLL6 [R/W] B,H,W
XXXXXXXX
PRLH7 [R/W] B,H,W
XXXXXXXX
PRLL7 [R/W] B,H,W
XXXXXXXX
000114H
PPGC4 [R/W] B,H,W
0000000X
PPGC5 [R/W] B,H,W
0000000X
PPGC6 [R/W] B,H,W
0000000X
PPGC7 [R/W] B,H,W
0000000X
000118H
PRLH8 [R/W] B,H,W
XXXXXXXX
PRLL8 [R/W] B,H,W
XXXXXXXX
PRLH9 [R/W] B,H,W
XXXXXXXX
PRLL9 [R/W] B,H,W
XXXXXXXX
00011CH
PRLH10 [R/W] B,H,W
XXXXXXXX
PRLL10 [R/W] B,H,W
XXXXXXXX
PRLH11 [R/W] B,H,W
XXXXXXXX
PRLL11 [R/W] B,H,W
XXXXXXXX
000120H
PPGC8 [R/W] B,H,W
0000000X
PPGC9 [R/W] B,H,W
0000000X
PPGC10 [R/W] B,H,W
0000000X
PPGC11 [R/W] B,H,W
0000000X
000124H
PRLH12 [R/W] B,H,W
XXXXXXXX
PRLL12 [R/W] B,H,W
XXXXXXXX
PRLH13 [R/W] B,H,W
XXXXXXXX
PRLL13 [R/W] B,H,W
XXXXXXXX
000128H
PRLH14 [R/W] B,H,W
XXXXXXXX
PRLL14 [R/W] B,H,W
XXXXXXXX
PRLH15 [R/W] B,H,W
XXXXXXXX
PRLL15 [R/W] B,H,W
XXXXXXXX
00012CH
PPGC12 [R/W] B,H,W
0000000X
PPGC13 [R/W] B,H,W
0000000X
PPGC14 [R/W] B,H,W
0000000X
PPGC15 [R/W] B,H,W
0000000X
000130H
TRG [R/W] B,H,W
00000000 00000000
________
GATEC [R/W] B,H,W
XXXXXX00
000134H
REVC [R/W] B,H,W
00000000 00000000
________
________
000138H
∼
0001FCH
______________
PWC
PPG 0 ∼ PPG15
予約
453
付録
表 A-1 I/O マップ (4 / 7)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
000200H
DMACA0 [R/W] B,H,W *1
00000000 00000000 00000000 00000000
000204H
DMACB0 [R/W] B,H,W
00000000 00000000 00000000 00000000
000208H
DMACA1 [R/W] B,H,W *1
00000000 00000000 00000000 00000000
00020CH
DMACB1 [R/W] B,H,W
00000000 00000000 00000000 00000000
000210H
DMACA2 [R/W] B,H,W *1
00000000 00000000 00000000 00000000
000214H
DMACB2 [R/W] B,H,W
00000000 00000000 00000000 00000000
000218H
DMACA3 [R/W] B,H,W *1
00000000 00000000 00000000 00000000
00021CH
DMACB3 [R/W] B,H,W
00000000 00000000 00000000 00000000
000220H
DMACA4 [R/W] B,H,W *1
00000000 00000000 00000000 00000000
000224H
DMACB4 [R/W] B,H,W
00000000 00000000 00000000 00000000
000228H
∼
00023CH
________
予約
000240H
DMACR [R/W] B
0XX00000 XXXXXXXX XXXXXXXX XXXXXXXX
DMAC
000244H
∼
000398H
________
予約
DMAC
00039CH
________
________
0003A0H
DSP-PC [R/W]
XXXXXXXX
DSP-CSR [R/W,R,W]
00000000
________
________
DSP-LY [R/W]
XXXXXXXX XXXXXXXX
0003A4H
DSP-OT0 [R]
XXXXXXXX XXXXXXXX
DSP-OT1 [R]
XXXXXXXX XXXXXXXX
0003A8H
DSP-OT2 [R]
XXXXXXXX XXXXXXXX
DSP-OT3 [R]
XXXXXXXX XXXXXXXX
0003ACH
________
________
________
________
0003B0H
DSP-OT4 [R]
XXXXXXXX XXXXXXXX
DSP-OT5 [R]
XXXXXXXX XXXXXXXX
0003B4H
DSP-OT6 [R]
XXXXXXXX XXXXXXXX
DSP-OT7 [R]
XXXXXXXX XXXXXXXX
0003B8H
∼
0003ECH
________
0003F0H
BSD0 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
0003F4H
BSD1 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
0003F8H
BSDC [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
0003FCH
BSRR [R]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
454
積和
予約
ビットサーチ
付録 A I/O マップ
表 A-1 I/O マップ (5 / 7)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
000400H
DDR0 [R/W] B
00000000
DDR1 [R/W] B
00000000
DDR2 [R/W] B
00000000
DDR3 [R/W] B
00000000
000404H
DDR4 [R/W] B
00000000
DDR5 [R/W] B
00000000
DDR6 [R/W] B
----0000
DDR7 [R/W] B
00000000
000408H
________
________
________
________
00040CH
DDRC [R/W] B
00000000
DDRD [R/W] B
------00
DDRE [R/W] B
------00
________
000410H
DDRG [R/W] B
--000000
________
________
________
000414H
∼
00041CH
________
予約
000420H
PFR0 [R/W] B
00000000
PFR1 [R/W] B
-0000000
PFR2 [R/W] B
--00-00-
________
000424H
________
________
________
PFR7 [R/W] B
------00
000428H
________
________
________
________
00042CH
________
________
________
________
000430H
PFRG [R/W] B
--00--0-
________
________
________
000434H
∼
00043CH
________
ICR00 [R/W,R] B,H,W
----1111
ICR01 [R/W,R] B,H,W
----1111
ICR02 [R/W,R] B,H,W
----1111
ICR03 [R/W,R] B,H,W
----1111
000444H
ICR04 [R/W,R] B,H,W
----1111
ICR05 [R/W,R] B,H,W
----1111
ICR06 [R/W,R] B,H,W
----1111
ICR07 [R/W,R] B,H,W
----1111
000448H
ICR08 [R/W,R] B,H,W
----1111
ICR09 [R/W,R] B,H,W
----1111
ICR10 [R/W,R] B,H,W
----1111
ICR11 [R/W,R] B,H,W
----1111
00044CH
ICR12 [R/W,R] B,H,W
----1111
ICR13 [R/W,R] B,H,W
----1111
ICR14 [R/W,R] B,H,W
----1111
ICR15 [R/W,R] B,H,W
----1111
000450H
ICR16 [R/W,R] B,H,W
----1111
ICR17 [R/W,R] B,H,W
----1111
ICR18 [R/W,R] B,H,W
----1111
ICR19 [R/W,R] B,H,W
----1111
000454H
ICR20 [R/W,R] B,H,W
----1111
ICR21 [R/W,R] B,H,W
----1111
ICR22 [R/W,R] B,H,W
----1111
ICR23 [R/W,R] B,H,W
----1111
000458H
ICR24 [R/W,R] B,H,W
----1111
ICR25 [R/W,R] B,H,W
----1111
ICR26 [R/W,R] B,H,W
----1111
ICR27 [R/W,R] B,H,W
----1111
00045CH
ICR28 [R/W,R] B,H,W
----1111
ICR29 [R/W,R] B,H,W
----1111
ICR30 [R/W,R] B,H,W
----1111
ICR31 [R/W,R] B,H,W
----1111
000460H
ICR32 [R/W,R] B,H,W
----1111
ICR33 [R/W,R] B,H,W
----1111
ICR34 [R/W,R] B,H,W
----1111
ICR35 [R/W,R] B,H,W
----1111
000464H
ICR36 [R/W,R] B,H,W
----1111
ICR37 [R/W,R] B,H,W
----1111
ICR38 [R/W,R] B,H,W
----1111
ICR39 [R/W,R] B,H,W
----1111
000468H
ICR40 [R/W,R] B,H,W
----1111
ICR41 [R/W,R] B,H,W
----1111
ICR42 [R/W,R] B,H,W
----1111
ICR43 [R/W,R] B,H,W
----1111
00046CH
ICR44 [R/W,R] B,H,W
----1111
ICR45 [R/W,R] B,H,W
----1111
ICR46 [R/W,R] B,H,W
----1111
ICR47 [R/W,R] B,H,W
----1111
____________
ポート機能
レジスタ
予約
000440H
000470H
∼
00047CH
データ方向
レジスタ
割込み
コントローラ
予約
455
付録
表 A-1 I/O マップ (6 / 7)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
000480H
RSRR [R/W] B,H,W
10000000
STCR [R/W] B,H,W
00110011
TBCR [R/W] B,H,W
00XXXX00
CTBR [W] B,H,W
XXXXXXXX
000484H
CLKR [R/W] B,H,W
00000000
WPR
--------*3
DIVR0 [R/W] B,H,W
00000011
DIVR1 [R/W] B,H,W
00000000
000488H
∼
0005FCH
____________
クロック制御
ユニット
予約
000600H
PCR0 [R/W] B
00000000
PCR1 [R/W] B
00000000
PCR2 [R/W] B
00000000
PCR3 [R/W] B
00------
000604H
PCR4 [R/W] B
00000000
PCR5 [R/W] B
00000000
PCR6 [R/W] B
----0000
PCR7 [R/W] B
00000000
000608H
________
________
________
________
00060CH
________
________
________
________
000610H
PCRG [R/W] B
--000000
________
________
________
000614H
∼
000FFCH
________
001000H
DMASA0 [R/W] W
00000000 00000000 00000000 00000000
001004H
DMADA0 [R/W] W
00000000 00000000 00000000 00000000
001008H
DMASA1 [R/W] W
00000000 00000000 00000000 00000000
00100CH
DMADA1 [R/W] W
00000000 00000000 00000000 00000000
001010H
DMASA2 [R/W] W
00000000 00000000 00000000 00000000
001014H
DMADA2 [R/W] W
00000000 00000000 00000000 00000000
001018H
DMASA3 [R/W] W
00000000 00000000 00000000 00000000
00101CH
DMADA3 [R/W] W
00000000 00000000 00000000 00000000
001020H
DMASA4 [R/W] W
00000000 00000000 00000000 00000000
001024H
DMADA4 [R/W] W
00000000 00000000 00000000 00000000
001028H
∼
006FFCH
________
プルアップ
コントローラ
予約
DMAC
予約
007000H
FLCR [R, R/W]
0110X000
________
________
________
007004H
FLWC [R, R/W] *2
00000011
________
________
________
007008H
________
________
________
________
00700CH
________
________
________
________
007010H
________
________
________
________
456
フラッシュ
付録 A I/O マップ
表 A-1 I/O マップ (7 / 7)
レジスタ
アドレス
ブロック
+0
+1
+2
007014H
∼
00BFFCH
__________________
00C000H
∼
00C07CH
X-RAM ( 係数 RAM) [R/W]
64 × 16 ビット
00C080H
∼
00C0FCH
Y-RAM ( 変数 RAM) [R/W]
64 × 16 ビット
00C100H
∼
00C2FCH
I-RAM ( 命令 RAM) [R/W]
256 × 16 ビット
00C300H
∼
00FFFCH
________
+3
予約
積和
予約
*1: DMACA0 ∼ DMACA4 の下位 16 ビット (DTC15 ∼ DTC0) は , バイトでのアクセス
はできません。
*2: FLWC(7004H)の初期値は, EVAツール上は"00010011B"です。EVA品にて, "00000011B"
を書き込んでも動作にかわりはありません。
*3: 予約レジスタです。アクセス禁止です。
<注意事項>
• ライトオンリビットのあるレジスタに対して RMW 系の命令を行わないでくださ
い。
•
予約または ( − ) の領域のデータは不定です。
457
付録
付録 B
ベクタテーブル
付表 B-1 に , 割込みベクタテーブルを示します。割込みベクタテーブルには ,
MB91260B の割込み要因と割込みベクタ / 割込み制御レジスタの割当てが記載され
ています。
■ ベクタテーブル
ICR: 割込みコントローラ内に設けられたレジスタで割込みの各要求に対する割込み
レベルを設定します。ICR は割込み要求の各々に対応して用意されています。
TBR: EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスがベクタア
ドレスとなります。
TBR の示すアドレスから 1 K バイトの領域が EIT 用ベクタ領域となっています。
1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ
うに表されます。
vctadr
= TBR + vctofs
= TBR + (3FCH − 4 × vct)
458
vctadr:
ベクタアドレス
vctofs:
ベクタオフセット
vct:
ベクタ番号
付録 B ベクタテーブル
表 B-1 ベクタテーブル (1 / 3)
割込み番号
割込み要因
割込みレベル オフセット
TBR デフォルト
のアドレス
RN
10 進
16 進
リセット
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
−
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
−
外部割込み 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
8
リロードタイマ 1
25
19
ICR09
398H
000FFF98H
9
リロードタイマ 2
26
1A
ICR10
394H
000FFF94H
10
UART0 ( 受信完了 )
27
1B
ICR11
390H
000FFF90H
0
UART0 ( 送信完了 )
28
1C
ICR12
38CH
000FFF8CH
3
DTTI
29
1D
ICR13
388H
000FFF88H
−
DMAC0 ( 終了 , エラー )
30
1E
ICR14
384H
000FFF84H
−
DMAC1 ( 終了 , エラー )
31
1F
ICR15
380H
000FFF80H
−
459
付録
表 B-1 ベクタテーブル (2 / 3)
割込み番号
割込み要因
割込みレベル オフセット
TBR デフォルト
のアドレス
RN
10 進
16 進
DMAC2/3/4 ( 終了 , エラー )
32
20
ICR16
37CH
000FFF7CH
−
UART1 ( 受信完了 )
33
21
ICR17
378H
000FFF78H
1
UART1 ( 送信完了 )
34
22
ICR18
374H
000FFF74H
4
UART2 ( 受信完了 )
35
23
ICR19
370H
000FFF70H
2
UART2 ( 送信完了 )
36
24
ICR20
36CH
000FFF6CH
5
積和
37
25
ICR21
368H
000FFF68H
−
PPG0
38
26
ICR22
364H
000FFF64H
−
PPG1
39
27
ICR23
360H
000FFF60H
−
PPG2/3
40
28
ICR24
35CH
000FFF5CH
−
PPG4/5/6/7
41
29
ICR25
358H
000FFF58H
−
PPG8/9/10/11/12/13/14/15
42
2A
ICR26
354H
000FFF54H
−
外部割込み 8/9
43
2B
ICR27
350H
000FFF50H
−
波形 0( アンダフロー )
44
2C
ICR28
34CH
000FFF4CH
−
波形 1( アンダフロー )
45
2D
ICR29
348H
000FFF48H
−
波形 2( アンダフロー )
46
2E
ICR30
344H
000FFF44H
−
タイムベースタイマ
オーバフロー
47
2F
ICR31
340H
000FFF40H
−
フリーランタイマ
( コンペアクリア )
48
30
ICR32
33CH
000FFF3CH
−
フリーランタイマ ( ゼロ検出 )
49
31
ICR33
338H
000FFF38H
−
A/D0
50
32
ICR34
334H
000FFF34H
−
A/D1
51
33
ICR35
330H
000FFF30H
−
A/D2
52
34
ICR36
32CH
000FFF2CH
−
PWC0 ( 測定完了 )
53
35
ICR37
328H
000FFF28H
−
PWC1 ( 測定完了 )
54
36
ICR38
324H
000FFF24H
−
PWC0 ( オーバフロー )
55
37
ICR39
320H
000FFF20H
−
PWC1 ( オーバフロー )
56
38
ICR40
31CH
000FFF1CH
−
ICU0 ( 取込み )
57
39
ICR41
318H
000FFF18H
−
ICU1 ( 取込み )
58
3A
ICR42
314H
000FFF14H
−
ICU2/3 ( 取込み )
59
3B
ICR43
310H
000FFF10H
−
OCU0/1 ( 一致 )
60
3C
ICR44
30CH
000FFF0CH
−
OCU2/3 ( 一致 )
61
3D
ICR45
308H
000FFF08H
−
OCU4/5 ( 一致 )
62
3E
ICR46
304H
000FFF04H
−
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
−
460
付録 B ベクタテーブル
表 B-1 ベクタテーブル (3 / 3)
割込み番号
割込み要因
割込みレベル オフセット
TBR デフォルト
のアドレス
RN
10 進
16 進
システム予約
(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
50
2BCH
000FFEBCH
∼
∼
∼
∼
255
FF
000H
000FFC00H
INT 命令で使用
−
−
461
付録
付録 C
各 CPU ステートにおける端子状態
各 CPU ステートにおける端子状態について記載されています。
■ 各 CPU ステートにおける端子状態
端子の状態に対する語句は以下の意味を持ちます。
• 入力可能
入力機能が使用可能な状態であることを意味する。
• 入力 0 固定
端子からすぐの入力ゲートで外部入力を遮断して内部へ "0" を伝えている状態。
• 出力 Hi-Z
端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダンスにする
ことを意味する。
• 出力保持
本モードになる直前に出力していた状態をそのまま出力することを意味する。
つまり , 出力のある内蔵周辺が動作中であればその内蔵周辺に従い出力を行い ,
ポートなどとして出力している場合にはその出力を保持する。
• 直前の状態を保持
本モードになる直前に出力していた状態をそのまま出力 , あるいは入力であれば
入力可能を意味する。
462
付録 C 各 CPU ステートにおける端子状態
[ シングルチップモード ]
表 C-1 各 CPU ステートにおける端子状態 (1 / 2)
端子番号
QFP LQFP
イニシャライズ時
端子名
機能
1
99
P23
SIN1
2
100
P24
SOT1
3
1
P25
SCK1
4, 5
2, 3
INIT=L *1
INIT=H *2
入力可能
ポート
10
8
P54
INT0
11
9
P55
INT1
12
10
P56
INT2
13
11
P57
INT3
14
12
PG0
CKI/INT4
15
13
PG1
PPG0/INT5
16
14
PG2
ポート
20
18
PG3
SIN2
21
19
PG4
SOT2
22
20
PG5
SCK2
23 ∼
30
21 ∼
28
P40 ∼
P47
ポート
入力可能
出力 Hi-Z/
入力不可
PC7 ∼
AN7 ∼ AN0
PC0
51 ∼
56
49 ∼
54
P30 ∼
P35
出力 Hi-Z/
入力 0 固定
入力可能
出力 Hi-Z/
入力 0 固定
入力可能
直前状態保持 直前状態保持
出力 Hi-Z/
入力 0 固定
RTO0 ∼
RTO5
57, 58 55, 56 P36, P37
IC0, IC1
59, 60 57, 58 P60, P61
IC2, IC3
61, 62 59, 60 P62, P63 INT8, INT9
63, 64 61, 62 P70, P71
入力可能
HIZ=1
出力 Hi-Z/
入力不可
38, 39 36, 37 PD1, PD0 AN9, AN8
39 ∼
46
入力可能
直前状態保持 直前状態保持
31, 32 29, 30 PE1, PE0 AN11, AN10
41 ∼
48
HIZ=0
直前状態保持 直前状態保持
P26, P27 INT6, INT7
6 ∼ 9 4 ∼ 7 P50 ∼ 53
ストップ時
スリープ時
入力可能
入力可能
入力可能
TOT1,
TOT2
65
63
P72
DTTI
66
64
P73
PWI0
69
67
P74
PWI1
70
68
P75
ADTG0
71
69
P76
ADTG1
72
70
P77
ADTG2
73
71
NMI
NMI
直前状態保持 直前状態保持
入力可能
入力可能
入力可能
入力可能
出力 Hi-Z/
入力 0 固定
入力可能
463
付録
表 C-1 各 CPU ステートにおける端子状態 (2 / 2)
端子番号
QFP LQFP
イニシャライズ時
端子名
機能
78
76
P00
PPG1
79
77
P01
PPG2
80
78
P02
PPG3
81
79
P03
PPG4
82
80
P04
PPG5
83
81
P05
PPG6
84
82
P06
PPG7
85
83
P07
PPG8
86
84
P10
PPG9
87
85
P11
PPG10
88
86
P12
PPG11
89
87
P13
PPG12
90
88
P14
PPG13
91
89
P15
PPG14
96
94
P16
PPG15
97
95
P17
ポート
98
96
P20
SIN0
99
97
P21
SOT0
100
98
P22
SCK0
ストップ時
スリープ時
INIT=L *1
INIT=H *2
出力 Hi-Z/
入力不可
出力 Hi-Z/
出力 Hi-Z/
直前状態保持 直前状態保持
入力
0 固定
入力不可
HIZ=0
*1: INIT=L: INIT が "L" の期間の端子状態を示します。
*2: INIT=H: INIT が , "L" から "H" へ遷移した直後の端子状態を示します。
464
HIZ=1
付録 D リトル・エンディアン領域を利用する際の注意事項
付録 D
リトル・エンディアン領域を利用する際の注意事項
リトルエンディアン領域を利用する際の注意事項を以下の項目ごとに説明します。
• C コンパイラ
• アセンブラ
• リンカ
• デバッガ
■ 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();
...
}
465
付録
● 構造体代入
構造体どうしの代入を行うとき , コンパイラは最適な転送方法を選択してバイト , ハー
フワード , ワードごとの転送を行います。このため , 通常の領域に割り当てられた構造
体変数とリトルエンディアンの領域に割り当てられた構造体変数の間で構造体代入を
行うと正しい結果が得られません。
構造体のメンバをそれぞれ代入してください。
[ 例 ] リトルエンディアン領域の構造体変数 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 →
01
となり , ワードデータの転送結果としては誤りになる。
(正しい結果)
466
04
03 02
01
02
03
04
付録 D リトル・エンディアン領域を利用する際の注意事項
● 文字列操作関数使用時の -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 型データの転送
*/
上記の実行結果は
(ビッグエンディアン領域)
3f
f0
00
00
00
00
00
(リトルエンディアン領域)
00
→
00
00
f0
3f
00
00
00
00
00
00
00
f0
3f
となり , double 型データの転送結果としては誤りになる。
(正しい結果)
00
00
00
● スタックのリトルエンディアン領域への配置
リトルエンディアン領域にスタックの一部あるいは全部が配置された場合 , 動作を保
証しません。
467
付録
■ アセンブラ (fasm911)
FR のアセンブラ言語でプログラミングをするにあたって , リトルエンディアン領域に
関して注意していただきたい項目を以下に示します。
● セクションについて
リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと
を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク
ションとして定義してください。
もし , リトルエンディアン領域にコードやスタック , 初期値付きデータセクションなど
の指定をした場合には , MB91260B シリーズでのアクセス動作は保証できなくなりま
す。
[例]
/* 正しいリトルエンディアン領域のセクション定義 */
.SECTION Little_Area, DATA, ALIGN=4
Little_Word:
.RES.W 1
Little_Half:
.RES.H 1
Little_Byte:
.RES.B 1
● データのアクセスについて
リトルエンディアン領域へのデータのアクセスを行う場合 , そのデータの値はエン
ディアンを意識せずにコーディングできます。ただし , リトルエンディアン領域のデー
タへのアクセスは , 必ずデータサイズと同じサイズでアクセスしてください。
[例]
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
468
r2, @r3
付録 D リトル・エンディアン領域を利用する際の注意事項
/* 8 ビットデータは , STB 命令 ( や LDB 命令など ) でアクセスします。*/
STB
r4, @r5
本品種でデータサイズと異なるサイズでアクセスした場合にはその値の保証はできま
せん。例えば , 連続する 2 つの 16 ビットデータを 32 ビットアクセス命令を使って一度
にアクセスした場合にはデータの値の保証はできません。
■ リンカ (flnk911)
リトルエンディアン領域を使用するプログラムの作成において , リンク時のセクショ
ン配置で注意していただきたい項目を以下に示します。
● セクション種別の制限
リトルエンディアン領域には , 初期値なしデータセクションのみ配置することができ
ます。
リトルエンディアン領域に初期値付きデータセクション , スタックセクションおよび
コードセクションを配置した場合 , リンカの内部ではビッグエンディアンでアドレス
解決などの演算処理を行っていますので , プログラム動作は保証できなくなります。
● エラーの未検出
リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し
た配置が行われてもエラーメッセージを通知することはありません。リトルエンディ
アン領域に配置したセクションの内容を十分にご確認のうえご使用ください。
469
付録
■ デバッガ (sim911, eml911, mon911)
● シミュレータデバッガ
リトルエンディアン領域を示すようなメモリ空間指定コマンドはありません。
したがって , メモリ操作コマンドやメモリを操作する命令実行はビッグエンディアン
として扱われます。
● エミュレータデバッガ , モニタデバッガ
以下のコマンドでリトルエンディアン領域をアクセスした場合に , 正常な値として扱
われませんので注意してください。
− set memory/show memory/enter/examine/set watch コマンド
→ 浮動小数点 (single/double) のデータを扱った場合 , 指定した値が設定・表示と
もにできません。
− search memory コマンド
→ ハーフワード , ワードのデータの検索を行った場合, 指定した値で検索が行わ
れません。
− 行 / 逆アセンブル ( ソースウィンドウの逆アセンブル表示を含む )
→ 正常な命令コードが設定・表示ともにできません
( リトルエンディアン領域には , 命令コードを配置しないようにしてくださ
い )。
− call/show call コマンド
→ スタック領域がリトルエンディアン領域に置かれた場合, 正常に動作しません
(リトルエンディアン領域にスタック領域を配置しないようにしてください)。
470
付録 E 命令一覧表
付録 E
命令一覧表
FR ファミリーの命令一覧表です。
■ 命令一覧表
[ 命令一覧表の読み方 ]
ニーモニック
ADD Rj, Rj
*ADD #s5, Rj
,
,
(1)
型
A
C
,
,
OP
AG
A4
,
,
CYC
1
1
,
,
(3)
(4)
(5)
(2)
NZVC 動
作
CCCC Ri + Rj -> Rj
CCCC Ri + s5 -> Ri
,
,
,
,
(6)
備考
(7)
(1) 命令名が示されています。
* 印は , CPU 仕様にはなくアセンブラで命令を拡張または追加した拡張命令です。
(2) オペランドに指定可能なアドレッシングモードを記号で示されています。
記号の意味は , 「・アドレッシングモードの記号 ( 次項 ) 」を参照してください。
(3) 命令フォーマットが示されています。
(4) 命令コードが 16 進数表示されています。
(5) マシンサイクル数を表しています。
a:
メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。
b:
メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。
ただし, LD動作の対象となるレジスタを直後の命令が参照する場合には, イン
タロックがかかり , 実行サイクル数が+ 1 増加します。
c:
直後の命令が , R15 または SSP または USP に対し , 読出しあるいは書込みを行
う命令であるとき , あるいは命令フォーマット A の命令であるとき , インタ
ロック がかかり , 実行サイクル数は+ 1 増加して 2 となります。
d; 直後の命令が MDH/MDL を参照する場合 , インタロックがかかり , 実行サイク
ル数は増加して 2 となります。
a, b, c, d とも最小は 1 サイクルです。
(6) フラグ変化を表しています。
フラグ変化
C
-
0
1
・・・ 変化する
・・・ 変化しない
・・・ クリア
・・・ セット
N
Z
V
C
フラグの意味
ネガティブフラグ
・・・ ・・・ ゼロフラグ ・・・ オーバーフラグ ・・・ キャリフラグ (7) 命令動作が表記されています。
471
付録
● アドレッシングモードの記号
Ri
: レジスタ直接 (R0 ∼ R15, AC, FP, SP)
Rj
: レジスタ直接 (R0 ∼ R15, AC, FP, SP)
R13
: レジスタ直接 (R13, AC)
Ps
: レジスタ直接 ( プログラムステータスレジスタ )
Rs
: レジスタ直接 (TBR,RP, SSP, USP, MDH, MDL)
Cri
: レジスタ直接 (CR0 ∼ CR15)
CRj
: レジスタ直接 (CR0 ∼ CR15)
#i8
: 符号なし 8 ビット即値 ( − 128 ∼ 255)
( 注意事項 ) − 128 ∼− 1 は , 128 ∼ 255 として扱います。
#i20
: 符号なし 20 ビット即値 (-0X80000 ∼ 0XFFFFF)
( 注意事項 ) -0X7FFFF ∼ -1 は , 0X7FFFF ∼ 0XFFFFF として扱います。
#i32
: 符号なし 32 ビット即値 (-0X80000000 ∼ 0XFFFFFFFF)
( 注意事項 ) -0X80000000 ∼ -1 は , 0X80000000 ∼ 0XFFFFFFFF とし
て扱います。
472
#s5
: 符号付き 5 ビット即値 (-16 ∼ 15)
#s10
: 符号付き 10 ビット即値 (-512 ∼ 508 4 の倍数のみ )
#u4
: 符号なし 4 ビット即値 (0 ∼ 15)
#u5
: 符号なし 5 ビット即値 (0 ∼ 31)
#u8
: 符号なし 8 ビット即値 (0 ∼ 255)
#u10
: 符号なし 10 ビット即値 (0 ∼ 1020 4 の倍数のみ )
@dir8
: 符号なし 8 ビット直接アドレス (0 ∼ 0XFF)
@dir9
: 符号なし 9 ビット直接アドレス (0 ∼ 0X1FE 2 の倍数のみ )
@dir10
: 符号なし 10 ビット直接アドレス (0 ∼ 0X3FC 4 の倍数のみ )
label9
: 符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC 2 の倍数のみ )
label12
: 符号付き 12 ビット分岐アドレス (-0X800 ∼ 0X7FC 2 の倍数のみ )
label20
: 符号付き 20 ビット分岐アドレス (-0X80000 ∼ 0X7FFFF)
label32
: 符号付き 32 ビット分岐アドレス (-0X80000000 ∼ 0X7FFFFFFF)
@Ri
: レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@Rj
: レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@(R13,Rj)
: レジスタ相対間接 (Rj: R0 ∼ R15, AC, FP, SP)
@(R14,disp10)
: レジスタ相対間接 (disp10: -0X200 ∼ 0X1FC 4 の倍数のみ )
@(R14,disp9)
: レジスタ相対間接 (disp9: -0X100 ∼ 0XFE 2 の倍数のみ )
@(R14,disp8)
: レジスタ相対間接 (disp8: -0X80 ∼ 0X7F)
@(R15,udisp6)
: レジスタ相対間接 (udisp6: 0 ∼ 60 4 の倍数のみ )
@Ri+
: ポストインクリメント付きレジスタ間接 (R0 ∼ R15, AC, FP, SP)
@R13+
: ポストインクリメント付きレジスタ間接 (R13, AC)
@SP+
: スタックポップ
@-SP
: スタックプッシュ
(reglist)
: レジスタリスト
付録 E 命令一覧表
● 命令フォーマット
図 E-1 命令フォーマット
MSB
┌──────
A
B
LSB
16bit ──────┐
OP
Rj
Ri
8
4
4
OP
i8/O8
Ri
4
8
4
C
OP
u4/m4
Ri
8
4
4
ADD,ADDN,CMP,LSL,LSR,ASR命令のみ
*C ’
OP
7
D
OP
8
E
F
s5/u5
Ri
5
4
u8/rel8/dir/
reglist
8
OP
SUB-OP
Ri
8
4
4
OP
rel11
5
11
473
付録
付表 E-1
加減算
ニーモニック
ADD Rj, Ri
*ADD #s5, Ri
型
A
C’
OP
A6
A4
CYCLE NZVC
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
ニーモニック
CMP Rj, Ri
*CMP #s5, Ri
型
A
C’
OP
AA
A8
1
1
CCCC Ri-Rj
CCCC Ri-s5
アセンブラでは上位 1
ビットを符号と見る
CMP #u4, Ri
CMP2 #u4, Ri
C
C
A8
A9
1
1
CCCC Ri-extu(i4)
CCCC Ri-extu(i4)
ゼロ拡張
マイナス拡張
備考
アセンブラでは上位
1 ビットを符号と見る
ゼロ拡張
マイナス拡張
キャリ付き加算
アセンブラでは上位
1 ビットを符号と見る
ゼロ拡張
マイナス拡張
キャリ付き減算
付表 E-2 比較演算
474
CYCLE NZVC
動作
備考
付録 E 命令一覧表
付表 E-3 論理演算
ニーモニック
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
型
A
A
A
A
A
A
A
A
A
A
A
A
OP
82
84
85
86
92
94
95
96
9A
9C
9D
9E
CYCLE NZVC
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--
RMW
動作
Ri & = Rj
(Ri) & = Rj
(Ri) & = Rj
(Ri) & = Rj
Ri | = Rj
(Ri) | = Rj
(Ri) | = Rj
(Ri) | = Rj
Ri ^ = Rj
(Ri) ^ = Rj
(Ri) ^ = Rj
(Ri) ^ = Rj
○
○
○
○
○
○
○
○
○
備考
ワード
ワード
ハーフワード
バイト
ワード
ワード
ハーフワード
バイト
ワード
ワード
ハーフワード
バイト
付表 E-4 ビット操作命令
ニーモニック
BANDL #u4, @Ri
BANDH #u4, @Ri
*BAND #u8, @Ri
*1
BORL #u4, @Ri
BORH #u4, @Ri
*BOR #u8, @Ri
*2
BEORL #u4, @Ri
BEORH #u4, @Ri
*BEOR #u8, @Ri
*3
BTSTL #u4, @Ri
BTSTH #u4, @Ri
型 OP CYCLE NZVC
動作
C 80 1+2a
---- (Ri)&=(0xF0+u4)
C 81 1+2a
---- (Ri)&=((u4<<4)+0x0F)
---- (Ri)&=u8
RMW
○
○
-
備考
下位 4 ビットを操作
上位 4 ビットを操作
C
C
90
91
1+2a
1+2a
----------
(Ri) | = u4
(Ri) | = (u4<<4)
(Ri) | = u8
○
○
-
下位 4 ビットを操作
上位 4 ビットを操作
C
C
98
99
1+2a
1+2a
----------
(Ri) ^ = u4
(Ri) ^ = (u4<<4)
(Ri) ^ = u8
○
○
-
下位 4 ビットを操作
上位 4 ビットを操作
C
C
88
89
2+a
2+a
0C-- (Ri) & u4
CC-- (Ri) & (u4<<4)
-
下位 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 両方生成する場合もある。
475
付録
付表 E-5
乗除算
型
OP
MUL Rj,Ri
MULU Rj,Ri
MULH Rj,Ri
MULUH Rj,Ri
A
A
A
A
AF
AB
BF
BB
5
5
3
3
CCCCCCCC-CC--
DIV0S Ri
DIV0U Ri
DIV1 Ri
DIV2 Ri
DIV3
DIV4S
*DIV Ri
E
E
E
E
E
E
97-4
97-5
97-6
97-7
9F-6
9F-7
1
1
d
1
1
1
36
---ステップ演算
---32bit/32bit=32bit
-C-C
-C-C
-------C-C MDL / Ri -> MDL , MDL % Ri -> MDH
ニーモニック
CYCLE NZVC
*1
*DIVU Ri
-C-C
*2
動作
備考
Ri * Rj -> MDH, MDL
Ri * Rj -> MDH, MDL
Ri * Rj -> MDL
Ri * Rj -> MDL
32bit*32bit=64bit
符号なし
16bit*16bit=32bit
符号なし
MDL / Ri -> MDL , MDL % Ri -> MDH
付表 E-6 シフト
型
OP
LSL Rj, Ri
*LSL #u5, Ri(u5:0 ∼ 31)
LSL #u4, Ri
LSL2 #u4, Ri
A
C’
C
C
B6
B4
B4
B5
1
1
1
1
CC-C
CC-C
CC-C
CC-C
Ri << Rj -> Ri
Ri << u5 -> Ri
Ri << u4 -> Ri
Ri <<(u4+16) -> Ri
論理シフト
LSR Rj, Ri
*LSR #u5, Ri(u5:0 ∼ 31)
LSR #u4, Ri
LSR2 #u4, Ri
A
C’
C
C
B2
B0
B0
B1
1
1
1
1
CC-C
CC-C
CC-C
CC-C
Ri >> Rj -> Ri
Ri >> u5 -> Ri
Ri >> u4 -> Ri
Ri >>(u4+16) -> Ri
論理シフト
ASR Rj, Ri
*ASR #u5, Ri (u5:0 ∼ 31)
ASR #u4, Ri
ASR2 #u4, Ri
A
C’
C
C
BA
B8
B8
B9
1
1
1
1
CC-C
CC-C
CC-C
CC-C
Ri >> Rj -> Ri
Ri >> u5 -> Ri
Ri >> u4 -> Ri
Ri >>(u4+16) -> Ri
算術シフト
ニーモニック
CYCLE NZVC
動作
備考
付表 E-7 即値セット /16 ビット /32 ビット即値転送命令
ニーモニック
型
OP
LDI:32 #i32, Ri
LDI:20 #i20, Ri
LDI:8 #i8, Ri
*LDI # {i8|i20|i32} ,Ri
E
C
B
9F-8
9B
C0
*3
CYCLE NZVC
3
2
1
----------
動作
i32 -> Ri
i20 -> Ri
i8 -> Ri
備考
上位 12bit はゼロ拡張
上位 24bit はゼロ拡張
{i8 | i20 | i32} -> Ri
*1 DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成する。命令コード長は , 72 バイトとなる。
*2 DIV0U, DIV1 × 32 を生成する。命令コード長は , 66 バイトとなる。
*3 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行う。
即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択される。
476
付録 E 命令一覧表
付表 E-8 メモリロード
型
OP
A
A
B
C
E
E
E
04
00
2
03
07-0
07-8
07-9
b
b
b
b
b
b
1+a+b
------------------CCCC
LDUH @Rj, Ri
LDUH @(R13,Rj), Ri
LDUH @(R14,disp9), Ri
A
A
B
05
01
4
b
b
b
LDUB @Rj, Ri
LDUB @(R13,Rj), Ri
LDUB @(R14,disp8), Ri
A
A
B
06
02
6
b
b
b
ニーモニック
LD
LD
LD
LD
LD
LD
LD
@Rj, Ri
@(R13,Rj), Ri
@(R14,disp10),Ri
@(R15,udisp6),Ri
@R15+, Ri
@R15+, Rs
@R15+, PS
CYCLE NZVC
動作
備考
(Rj)->Ri
(R13+Rj)->Ri
(R14+disp10)->Ri
(R15+udisp6)->Ri
(R15)->Ri,R15+=4
(R15)->Rs,R15+=4
(R15)->PS, R15+=4
Rs: 特殊レジスタ
*
----------
(Rj)->Ri
(R13+Rj)->Ri
(R14+disp9)->Ri
ゼロ拡張
ゼロ拡張
ゼロ拡張
----------
(Rj)->Ri
(R13+Rj)->Ri
(R14+disp8)->Ri
ゼロ拡張
ゼロ拡張
ゼロ拡張
*: ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定します。
disp10/4->o8, disp9/2->o8, disp8->o8, disp10, disp9, disp8 は符号付き , udisp6/4->o4 udisp6 は符号なし。
付表 E-9 メモリストア
ニーモニック
ST Ri,@Rj
ST Ri,@(R13,Rj)
ST Ri,@(R14,disp10)
ST Ri,@(R15,udisp6)
ST Ri,@-R15
ST Rs,@-R15
ST PS,@-R15
STH Ri,@Rj
STH Ri,@(R13,Rj)
STH Ri,@(R14,disp9)
STB Ri,@Rj
STB Ri,@(R13,Rj)
STB Ri,@(R14,disp8)
型
A
A
B
C
E
E
E
A
A
B
A
A
B
OP
14
10
3
13
17-0
17-8
17-9
15
11
5
16
12
7
CYCLE NZVC
動作
備考
a
---- Ri->(Rj)
ワード
a
---- Ri->(R13+Rj)
ワード
a
---- Ri->(R14+disp10) ワード
a
---- Ri->(R15+udisp6)
a
---- R15-=4,Ri->(R15)
a
---- R15-=4, Rs->(R15) Rs 特殊レジスタ
a
---- R15-=4, PS->(R15) *
a
---- Ri->(Rj)
ハーフワード
a
---- Ri->(R13+Rj)
ハーフワード
a
---- Ri->(R14+disp9)
ハーフワード
---- Ri->(Rj)
a
バイト
a
---- Ri->(R13+Rj)
バイト
a
---- Ri->(R14+disp8)
バイト
*: ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定します。
disp10/4->o8, disp9/2->o8, disp8->o8, disp10, disp9, disp8 は符号付き , udisp6/4->o4 udisp6 は , 符号な
し。
付表 E-10 レジスタ間転送
MOV
MOV
MOV
MOV
MOV
ニーモニック
Rj, Ri
Rs, Ri
Ri, Rs
PS, Ri
Ri, PS
型
A
A
E
E
E
OP
8B
B7
B3
17-1
07-1
CYCLE NZVC
動作
1
---- Rj -> Ri
1
---- Rs -> Ri
1
---- Ri -> Rs
1
---- PS -> Ri
c
CCCC Ri -> PS
備考
汎用レジスタ間転送
Rs: 特殊レジスタ
Rs: 特殊レジスタ
*
*: 特殊レジスタ Rs : TBR,RP, USP, SSP, MDH, MDL
477
付録
付表 E-11 通常分岐 ( 遅延なし )
ニーモニック
JMP @Ri
CALL label12
CALL @Ri
RET
INT #u8
型
E
E
F
E
D
OP
97-0
D0
97-1
97-2
1F
CYCLE NZVC
動作
備考
2
---- Ri -> PC
2
---- PC+2->RP , PC+2+(label12-PC-2)->PC
2
---- PC+2->RP ,Ri->PC
2
---- RP -> PC
リターン
3+3a
---- SSP-=4, PS->(SSP), SSP-=4, PC+2->(SSP),
0->I フラグ , 0->S フラグ ,
(TBR+0x3FC-u8 × 4)->PC
3+3a
---- SSP-=4, PS->(SSP), SSP-=4, PC+2->(SSP),
0->S フラグ ,(TBR+0x3D8)->PC
INTE
E
9F-3
RETI
BRA label9
BNO label9
BEQ label9
E
D
D
D
97-3
E0
E1
E2
2+2A
2
1
2/1
CCCC
----------
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
D
D
D
D
D
D
D
D
D
D
D
D
D
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
----------------------------------------
エミュレータ用
(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
<注意事項>
• CYCLE 数の「2/1」は , 分岐するとき "2", 分岐しないとき "1" であることを示します。
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を
設定します。
(label12-PC-2)/2->rel11, (label9-PC-2)/2->rel8, label12, label9 は符号付き。
•
478
RETI 命令を実行するときは S フラグが "0" であることが必要です。
付録 E 命令一覧表
付表 E-12 遅延分岐
ニーモニック
JMP:D @Ri
CALL:D label12
CALL:D @Ri
RET:D
BRA:D label9
BNO:D label9
BEQ:D label9
型
E
F
E
E
D
D
D
OP
9F-0
D8
9F-1
9F-2
F0
F1
F2
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
D
D
D
D
D
D
D
D
D
D
D
D
D
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
CYCLE NZVC
動作
備考
1
---- Ri -> PC
1
---- PC+4->RP , PC+2+(label12-PC-2)->PC
1
---- PC+4->RP ,Ri->PC
1
---- RP -> PC
リターン
1
---- PC+2+(label9-PC-2)->PC
1
---- 非分岐
1
---- if(Z==1) then
PC+2+(label9-PC-2)->PC
1
---- ↑ s/Z==0
1
---- ↑ s/C==1
1
---- ↑ s/C==0
1
---- ↑ s/N==1
1
---- ↑ s/N==0
1
---- ↑ s/V==1
1
---- ↑ s/V==0
1
---- ↑ s/V xor N==1
1
---- ↑ s/V xor N==0
1
---- ↑ s/(V xor N) or Z==1
1
---- ↑ s/(V xor N) or Z==0
1
---- ↑ s/C or Z==1
1
---- ↑ s/C or Z==0
<注意事項>
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を
設定します。
(label12-PC-2)/2->rel11, (label9-PC-2)/2->rel8, label12, label9 は符号付き。
• 遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。
•
遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル
命令です。複数サイクル命令は置けません。
479
付録
付表 E-13 その他
ニーモニック
NOP
ANDCCR #u8
ORCCR #u8
STILM #u8
ADDSP #s10*1
EXTSB Ri
EXTUB Ri
EXTSH Ri
EXTUH Ri
LDM0 (reglist)
型
E
D
D
D
D
E
E
E
E
D
OP
9F-A
83
93
87
A3
97-8
97-9
97-A
97-B
8C
LDM1 (reglist)
D
8D
*LDM (reglist)
*2
STM0 (reglist)
D
8E
STM1 (reglist)
D
8F
*STM (reglist)
*3
ENTER #u10
D
0F
*4
LEAVE
E
9F-9
XCHB @Rj, Ri
A
8A
CYCLE NZVC
動作
1
---- 何も変化しない
c
cccc CCR and u8 -> CCR
c
cccc CCR or u8 -> CCR
1
---- i8 -> ILM
1
---- R15 += s10
---- 符号拡張 8->32bit
1
1
---- ゼロ拡張 8->32bit
1
---- 符号拡張 16->32bit
---- ゼロ拡張 16->32bit
1
---- (R15)->reglist,
R15 インクリメント
---- (R15)->reglist,
R15 インクリメント
---- (R15)->reglist,
R15 インクリメント
---- R15 デクリメント ,
reglist->(R15)
---- R15 デクリメント ,
reglist->(R15)
---- R15 デクリメント ,
reglist->(R15)
1+a
---- R14 -> (R15 - 4),
R15 - 4 -> R14,
R15 - u10 -> R15
b
---- R14 + 4 -> R15,
(R15 - 4) -> R14
2a
---- Ri -> TEMP
(Rj) -> Ri
TEMP -> (Rj)
RMW
備考
ILM 即値セット
ADD SP 命令
ロードマルチ R0-R7
-
ロードマルチ R8-R15
-
ロードマルチ R0-R15
-
ストアマルチ R0-R7
-
ストアマルチ R8-R15
-
ストアマルチ R0-R15
-
関数の入口処理
-
関数の出口処理
○
セマフォ管理用
バイトデータ
*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 は符号なし。
<注意事項>
• LDM0 (reglist) , LDM1 (reglist) の実行サイクル数は , 指定されたレジスタ数が n の
とき , a × (n-1)+b+1 サイクルとなります。
•
STM0 (reglist), STM1 (reglist) の実行サイクル数は , 指定されたレジスタ数が n のと
き , a × n+1 サイクルとなります。
480
付録 E 命令一覧表
付表 E-14 20 ビット通常分岐マクロ命令
ニーモニック
*CALL20 label20,Ri
*BRA20 label20,Ri
*BEQ20 label20,Ri
*BNE20 label20,Ri
*BC20 label20,Ri
*BNC20 label20,Ri
*BN20 label20,Ri
*BP20 label20,Ri
*BV20 label20,Ri
*BNV20 label20,Ri
*BLT20 label20,Ri
*BGE20 label20,Ri
*BLE20 label20,Ri
*BGT20 label20,Ri
*BLS20 label20,Ri
*BHI20 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:
481
付録
付表 E-15 20 ビット遅延分岐マクロ命令
ニーモニック
*CALL20:D 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
*BRA20:D label20,Ri
*BEQ20:D label20,Ri
*BNE20:D label20,Ri
*BC20:D label20,Ri
*BNC20:D label20,Ri
*BN20:D label20,Ri
*BP20:D label20,Ri
*BV20:D label20,Ri
*BNV20:D label20,Ri
*BLT20:D label20,Ri
*BGE20:D label20,Ri
*BLE20:D label20,Ri
*BGT20:D label20,Ri
*BLS20:D label20,Ri
*BHI20:D label20,Ri
備考
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:
482
付録 E 命令一覧表
付表 E-16 32 ビット通常分岐マクロ命令
ニーモニック
*CALL32 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
*BRA32 label32,Ri
*BEQ32 label32,Ri
*BNE32 label32,Ri
*BC32 label32,Ri
*BNC32 label32,Ri
*BN32 label32,Ri
*BP32 label32,Ri
*BV32 label32,Ri
*BNV32 label32,Ri
*BLT32 label32,Ri
*BGE32 label32,Ri
*BLE32 label32,Ri
*BGT32 label32,Ri
*BLS32 label32,Ri
*BHI32 label32,Ri
備考
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:
483
付録
付表 E-17 32 ビット遅延分岐マクロ命令
ニーモニック
*CALL32D label32,Ri
*BRA32:D label32,Ri
*BEQ32:D label32,Ri
*BNE32:D label32,Ri
*BC32:D label32,Ri
*BNC32:D label32,Ri
*BN32:D label32,Ri
*BP32:D label32,Ri
*BV32:D label32,Ri
*BNV32:D label32,Ri
*BLT32:D label32,Ri
*BGE32:D label32,Ri
*BLE32:D label32,Ri
*BGT32:D label32,Ri
*BLS32:D label32,Ri
*BHI32:D 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
(1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA:D label9
(2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成
します。
LDI:32 #label32,Ri
JMP:D @Ri
[ 参考 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:
484
付録 E 命令一覧表
付表 E-18 ダイレクトアドレッシング
ニーモニック
DMOV @dir10, R13
DMOV R13, @dir10
DMOV @dir10, @R13+
DMOV @R13+, @dir10
DMOV @dir10, @-R15
DMOV @R15+, @dir10
DMOVH @dir9, R13
DMOVH R13, @dir9
DMOVH @dir9, @R13+
DMOVH @R13+, @dir9
DMOVB @dir8, R13
DMOVB R13, @dir8
DMOVB @dir8, @R13+
DMOVB @R13+, @dir8
型
D
D
D
D
D
D
D
D
D
D
D
D
D
D
OP
08
18
0C
1C
0B
1B
09
19
0D
1D
0A
1A
0E
1E
CYCLE NZVC
動作
b
---- (dir10)-> R13
a
---- R13 ->(dir10)
2a
---- (dir10)->(R13),R13+=4
2a
---- (R13)->(dir10),R13+=4
2a
---- R15-=4,(R15)->(dir10)
2a
---- (R15)->(dir10),R15+=4
---- (dir9)-> R13
b
---- R13 ->(dir9)
a
---- (dir9)->(R13),R13+=2
2a
2a
---- (R13)->(dir9),R13+=2
b
---- (dir8)-> R13
---- R13 ->(dir8)
a
---- (dir8)->(R13),R13++
2a
---- (R13)->(dir8),R13++
2a
備考
ワード
ワード
ワード
ワード
ワード
ワード
ハーフワード
ハーフワード
ハーフワード
ハーフワード
バイト
バイト
バイト
バイト
( 注意事項 ) dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。
dir8->dir, dir9/2->dir, dir10/4->dir dir8, dir9, dir10 は符号なし。
付表 E-19 リソース命令
ニーモニック
LDRES @Ri+, #u4
型
C
OP
BC
STRES #u4, @Ri+
C
BD
CYCLE NZVC
動作
a
---- (Ri)->u4 のリソース
Ri+=4
a
---- u4 のリソース ->(Ri)
Ri+=4
備考
u4: チャネル番号
u4: チャネル番号
( 注意事項 ) 本品種では , チャネル番号を持つリソースを搭載していないので , 使用できません。
付表 E-20 コプロセッサ制御命令
{CRi | CRj} := CR0 | CR1 | CR2 | CR3 | CR4 | CR5 | CR6 | CR7 | CR8 | CR9 | CR10 |
CR11 | CR12 | CR13 | CR14 || CR15
u4: := チャネル指定
u8: := コマンド指定
ニーモニック
型 OP CYCLE NZVC
動作
備考
COPOP #u4, #u8, CRj, Cri
E 9F-C
2+a
---- 演算指示
COPLD #u4, #u8, Rj, Cri
E 9F-D
1+2a
---- Rj -> CRi
エラートラップなし
COPST #u4, #u8, CRj, Ri
E 9F-E
1+2a
---- CRj -> Ri
COPSV #u4, #u8, CRj, Ri
E 9F-F
1+2a
---- CRj -> Ri
( 注意事項 ) 本品種では , コプロセッサを搭載していないため使用できません。
485
付録
付録 F
使用上の注意
使用上の注意事項です。
■ 共通事項
● クロック制御部
INIT への "L" 入力時には , 発振安定待ち時間を確保してください。
● 兼用ポートの機能切換え
PORT と兼用端子の切換えは , PFR ( ポートファンクションレジスタ ) で行います。た
だし , バス端子は外バスの設定により切り換わります。
<注意事項>
本品種は , 外バスモードをサポートしておりません。
● D-bus メモリ
コード領域を D-bus 上のメモリに設定しないでください。
D-bus へは命令フェッチを行いませんので , D-bus 領域へ命令フェッチを行った場合 ,
誤ったデータをコードとして解釈するため暴走する可能性があります。
486
付録 F 使用上の注意
● 低消費電力モード
(1) スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカ
ウンタ制御レジスタのビット 8: SYNCS ビットにて設定します ) を使用したうえで ,
以下のシーケンスを必ず使用してください。
/* STCR ライト */
ldi
#_STCR, R0
; STCR レジスタ (0x0481)
ldi
#Val_of_Stby, rl
; Val_of_Stby は , STCR へのライトデータ
stb
rl,@r0
; STCR へのライト
/* STBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0x0483)
ldi
#0xA5, rl
; クリアコマンド (1)
stb
rl,@r2
; CTBR への A5 ライト
ldi
#0xA5, rl
; クリアコマンド (2)
stb
rl,@r2
; CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
@r0, rl
; STCR ダミーリード
; タイミング調整用の NOP × 5
nop
nop
nop
nop
(2) モニタデバッガを使用される場合は , 以下のことを行わないでください。
- 上記命令列に対して , ブレークポイントを設定しないでください。
- 上記命令列に対して , ステップ実行を行わないでください。
487
付録
● PS レジスタに関する注意事項
一部の命令で PS レジスタを先行処理しているため , 下記の例外動作によりデバッガご
使用時に割込み処理ルーチンでブレークしたり , PS フラグの表示内容が更新されたり
する場合があります。
いずれの場合も , EIT から復帰後以降に正しく再処理を行うように設計されていますの
で , EIT 前後の動作は仕様どおりの処理を行います。
1. DIV0U/DIV0S 命令の直前の命令で , (a) ユーザ割込み・NMI を受け付けた場合 , (b)
ステップ実行を行った場合 , (c) データイベントまたはエミュレータメニューにてブ
レークした場合 , 以下のような動作を行う場合があります。
(1) D0, D1 フラグが先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI またはエミュレータ ) を実行します。
(3) EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0/D1 フラグが (1) と同じ値に
更新されます。
2. ユーザ割込み・NMI 要因が発生している状態で割込みを許可するために ORCCR,
STILM, MOV Ri, PS の各命令が実行されると , 以下のような動作を行います。
(1) PS レジスタが先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI) を実行します。
(3) EIT から復帰後 , 上記命令が実行され , PS レジスタが (1) と同じ値に更新されま
す。
● ウォッチドッグタイマ機能について
本品種が備えているウォッチドッグタイマ機能はプログラムが一定時間内にリセット
延期動作を行うことを監視し , プログラムの暴走によりリセット延期動作が行われな
かったときに CPU をリセットするための機能です。そのため , いったんウォッチドッ
グタイマ機能を有効にすると , リセットをかけるまで動作を続けます。
例外として , CPU のプログラム実行が停止する条件では自動的にリセット延期を行い
ます。この例外にあてはまる条件については , ウォッチドッグタイマの機能説明の項を
参照してください。
■ デバッグ関連の注意事項
● RETI 命令のステップ実行
ステップ実行する際 , 割込みが頻繁に発生する環境下では , RETI をステップ実行後に
該当割込み処理ルーチンだけを繰り返して実行します。その結果 , メインルーチンや割
込みレベルの低いプログラムの実行が行われなくなります。
回避のために , RETI 命令をステップ実行しないでください。または , 該当割込みルー
チンのデバッグが不要になった段階で , 該当割込みを禁止してデバッグを行ってくだ
さい。
● オペランドブレーク
システムスタックポインタのアドレスを含む領域に対するアクセスをデータイベント
ブレークの対象に設定しないでください。
488
付録 F 使用上の注意
● フラッシュメモリの未使用領域実行
フラッシュメモリの未使用領域 ( データが 0XFFFFH) を誤って実行してしまうと , ブ
レークを受け付けない状態になってしまいます。これを回避するために , デバッガの
コードイベントのアドレスマスク機能を使用して , 未使用領域の命令アクセス時にブ
レークさせることを推奨いたします。
● パワーオンデバッグ
パワーオンデバッグで電源をOFFにするときは, 次の3条件をすべて満たす状態で行っ
てください。
(1) ユーザ電源が 0.9 VCC から 0.5 VCC まで低下する時間が 25 µs 以上
<注意事項>
2 電源の場合は , VCC は外部 I/O 電源電圧のことを指します。
(2) CPU 動作周波数が 1 MHz 以上
(3) ユーザプログラム実行中
●NMI 要求 (tool) に対する割込みハンドラ
ICE 未接続の状態において , ICE からのブレーク要求のみでセットされる要因フラグが ,
DSU 端子へのノイズなどの影響で誤って立ってしまった場合の誤動作を防ぐため , 次
のプログラムを割込みハンドラに追加してください。
なお , このプログラムを追加した状態で ICE を使用しても問題ありません。
追加場所
次の割込みハンドラ
割込み要因
: NMI 要求 (tool)
割込み番号
: 13 (10 進 ) , 0D (16 進 )
オフセット
: 3C8H
TBR がデフォルトのアドレス
: 000FFFC8H
追加プログラム
STM
(R0, R1)
LDI
#B00H, R0
LDI
#0, R1
STB
R1, @R0
LDM
(R0, R1)
; B00H は DSU のブレーク要因レジスタのアドレス
; ブレーク要因レジスタをクリア
RETI
489
付録
490
索引
Numerics
0 検出
0 検出 ......................................................................148
0 検出用データレジスタ
0 検出用データレジスタ (BSD0) ........................146
16 ビットアウトプットコンペア
16 ビットアウトプットコンペアタイミング
..........................................................................278
16 ビットアウトプットコンペアと
フリーランタイマの動作について ..............279
16 ビットアウトプットコンペアの使用上の注意
..........................................................................298
16 ビットアウトプットコンペアの動作
( セット / リセットモード ,
MOD15 ∼ MOD10=1) ....................................277
16 ビットアウトプットコンペアの動作
( 反転モード , MOD15 ∼ MOD10=0) ...........273
16 ビットアウトプットコンペアの
プログラム例 ..................................................302
16 ビットアウトプットコンペアの
レジスタ ..........................................................214
16 ビットアウトプットコンペア割込み ............263
16 ビットインプットキャプチャ
16 ビットインプットキャプチャ入力タイミング
..........................................................................284
16 ビットインプットキャプチャの使用上の注意
..........................................................................298
16 ビットインプットキャプチャの動作 ............283
16 ビットインプットキャプチャのレジスタ
..........................................................................215
16 ビットインプットキャプチャ割込み ............264
16 ビットタイマレジスタ
TMR レジスタ (16 ビットタイマレジスタ )
..........................................................................157
16 ビットデッドタイマ制御レジスタ
16 ビットデッドタイマ制御レジスタ (DTCR0)
..........................................................................248
16 ビットデッドタイマ制御レジスタ (DTCR1)
...........................................................................251
16 ビットデッドタイマ制御レジスタ
(DTCR2) ...........................................................254
16 ビットデッドタイマレジスタ
16 ビットデッドタイマレジスタ
(TMRRH: TMRRH0 ∼ TMRRH2,
TMRRL:TMRRL0 ∼ TMRRL2) .....................247
16 ビットフリーランタイマ
16 ビットフリーランタイマの使用上の注意
..........................................................................298
16 ビットフリーランタイマのプログラム例
...........................................................................301
16 ビットフリーランタイマのレジスタ ............213
16 ビットフリーランタイマ割込み ....................262
16 ビットリロードレジスタ
TMRLR レジスタ (16 ビットリロードレジスタ )
...........................................................................157
1 検出
1 検出 ..................................................................... 148
1 検出用データレジスタ
1 検出用データレジスタ (BSD1) ........................ 146
8/10 ビット A/D コンバータ
8/10 ビット A/D コンバータ使用上の注意
..........................................................................357
8/10 ビット A/D コンバータの機能 ...................334
8/10 ビット A/D コンバータの端子 ...................338
8/10 ビット A/D コンバータの端子の
ブロックダイヤグラム ..........................112, 339
8/10 ビット A/D コンバータの
ブロックダイヤグラム ..................................335
8/10 ビット A/D コンバータのレジスタ一覧
..........................................................................340
8/10 ビット A/D コンバータの割込み ............... 351
491
索引
A
A/D
A/D 起動 .................................................................297
A/D 起動許可 .........................................................297
フリーランタイマによる A/D 起動 ....................272
A/D 起動コンペア
A/D 起動コンペアのレジスタ .............................217
A/D コンバータ
8/10 ビット A/D コンバータ使用上の注意
..........................................................................357
8/10 ビット A/D コンバータの機能 ....................334
8/10 ビット A/D コンバータの端子 ....................338
8/10 ビット A/D コンバータの端子の
ブロックダイヤグラム ..........................112, 339
8/10 ビット A/D コンバータの
ブロックダイヤグラム ..................................335
8/10 ビット A/D コンバータのレジスタ一覧
..........................................................................340
8/10 ビット A/D コンバータの割込み ................351
A/D 制御ステータスレジスタ
A/D 制御ステータスレジスタ
(ADCS:ADCS0 ∼ ADCS2) .............................346
A/D チャネル制御レジスタ
A/D チャネル制御レジスタ
(ADCH:ADCH0 ∼ ADCH2) ...........................341
A/D データレジスタ
A/D データレジスタ
(ADCD:ADCD00,ADCD01,ADCD10,ADCD11,
ADCD20,ADCD21) .........................................349
A/D トリガ制御レジスタ
A/D トリガ制御レジスタ (ADTRGC) .................227
A/D 変換データ
A/D 変換データ保護機能 .....................................356
A/D モード設定レジスタ
A/D モード設定レジスタ
(ADMD:ADMD0 ∼ ADMD2) ........................343
ADCD
A/D データレジスタ
(ADCD:ADCD00,ADCD01,ADCD10,ADCD11,
ADCD20,ADCD21) .........................................349
ADCH
A/D チャネル制御レジスタ
(ADCH:ADCH0 ∼ ADCH2) ...........................341
ADCOMP
コンペアレジスタ 0,1,2
(ADCOMP0,ADCOMP1,ADCOMP2) ............260
ADCOMPC
制御レジスタ (ADCOMPC) .................................261
ADCS
A/D 制御ステータスレジスタ
(ADCS:ADCS0 ∼ ADCS2) .............................346
ADMD
A/D モード設定レジスタ
(ADMD:ADMD0 ∼ ADMD2) ........................343
ADTRGC
A/D トリガ制御レジスタ (ADTRGC) .................227
AF200
AF200 フラッシュマイコンプログラマシステム構
成 ( 横河ディジタルコンピュータ株式会社製 )
...........................................................................447
492
AICR
アナログ入力制御レジスタ
(AICR:AICR0 ∼ AICR2) ........................113, 350
B
BSD
0 検出用データレジスタ (BSD0) ........................ 146
1 検出用データレジスタ (BSD1) ........................ 146
BSDC
変化点検出用データレジスタ (BSDC) ..............147
BSRR
検出結果レジスタ (BSRR) ..................................147
BUSY
レディ / ビジー信号 (RDY/BUSY) .....................432
C
CLKB
CPU クロック (CLKB) ...........................................77
CLKP
周辺クロック (CLKP) ............................................ 77
CLKR
CLKR : クロックソース制御レジスタ ................. 87
CLKT
外部バスクロック (CLKT) ....................................77
CPCLRBH
コンペアクリアバッファレジスタ
(CPCLRBH,CPCLRBL) ..................................218
CPCLRBL
コンペアクリアバッファレジスタ
(CPCLRBH,CPCLRBL) ..................................218
CPCLRH
コンペアクリアレジスタ (CPCLRH,CPCLRL)
..........................................................................219
CPCLRL
コンペアクリアレジスタ (CPCLRH,CPCLRL)
..........................................................................219
CPU
CPU ........................................................................... 32
CPU 制御 ................................................................ 404
FR-CPU ROM モード
(32/16/8 ビット , 読出しのみ ) ...................... 426
FR-CPU プログラミングモード
(16 ビット , 読出し / 書込み ) .......................426
CPU クロック
CPU クロック (CLKB) ...........................................77
CPU ステート
各 CPU ステートにおける端子状態 ...................462
CTBR
CTBR : タイムベースカウンタクリアレジスタ
............................................................................86
C コンパイラ
C コンパイラ (fcc911) .......................................... 465
D
Data Direction Register
Data Direction Register
(DDR:DDR0 ∼ DDR7,DDRC,DDRD,DDRE,
DDRG) .............................................................107
索引
DDR
Data Direction Register
(DDR:DDR0 ∼ DDR7,DDRC,DDRD,DDRE,
DDRG) ..............................................................107
DICR
DICR (Delayed Interrupt Control Register) ............143
DICR の DLYI ビット ...........................................144
DLYI ビット
DICR の DLYI ビット ...........................................144
DMA
DMA による周辺割込みクリア ..........................406
DMAC
DMAC-ch0,1,2,3,4DMAC 全体制御レジスタ
..........................................................................395
DMAC-ch0,1,2,3,4 コントロール / ステータス
レジスタ A ......................................................383
DMAC-ch0,1,2,3,4 コントロール / ステータス
レジスタ B .......................................................387
DMAC-ch0,1,2,3,4 転送元 / 転送先アドレス設定
レジスタ ..........................................................393
DMAC 割込み制御 ................................................407
DMAC 全体制御レジスタ
DMAC-ch0,1,2,3,4 DMAC 全体制御レジスタ
..........................................................................395
DMA 転送
スリープモード中の DMA 転送 .........................408
DSP-CSR
DSP-CSR
( コントロール / ステータスレジスタ )
...........................................................................365
DSP-LY
DSP-LY ( 遅延レジスタ ) .....................................369
DSP-OT
DSP-OT0 ∼ DSP-OT7
( 変数モニタレジスタ ) ..................................369
DSP-PC
DSP-PC ( プログラム・カウンタ ) .....................367
DTCR
16 ビットデッドタイマ制御レジスタ (DTCR0)
...........................................................................248
16 ビットデッドタイマ制御レジスタ (DTCR1)
..........................................................................251
16 ビットデッドタイマ制御レジスタ (DTCR2)
..........................................................................254
DTTI
DTTI 端子入力の動作 ...........................................295
DTTI 端子ノイズキャンセル機能 ......................296
DTTI 割込み ...........................................................296
波形制御レジスタ 2 (SIGCR2) の DTTI の動作
..........................................................................296
E
EIRR
外部割込み要因レジスタ
[EIRR (EIRR0,EIRR1): External Interrupt
Request] ............................................................133
EIT
EIT( 例外・割込み・トラップ ) ............................50
EIT からの復帰 .......................................................50
EIT ベクタテーブル ...............................................55
EIT 要因 ...................................................................50
EIT 要因受理の優先度 ...........................................58
ELVR
外部割込み要求レベル設定レジスタ
[ELVR (ELVR0,ELVR1) : External LeVel
Register] ...........................................................134
eml911
デバッガ (sim911, eml911, mon911) .................... 470
ENIR
割込み許可レジスタ
[ENIR (ENIR0,ENIR1):ENable Interrupt request
Register] ...........................................................133
F
fasm911
アセンブラ (fasm911) ...........................................468
fcc911
C コンパイラ (fcc911) .......................................... 465
FLCR
フラッシュメモリステータスレジスタ (FLCR) の
構成 .................................................................. 422
flnk911
リンカ (flnk911) ....................................................469
FLWC
フラッシュウェイトレジスタ (FLWC) の構成
..........................................................................424
FPT-100P-M05
FPT-100P-M05 の外形寸法図 ..................................5
FPT-100P-M06
FPT-100P-M06 の外形寸法図 ..................................6
FR-CPU
FR-CPU ROM モード
(32/16/8 ビット , 読出しのみ ) ...................... 426
FR-CPU プログラミングモード
(16 ビット , 読出し / 書込み ) .......................426
G
GATE
RTO0 ∼ RTO5 と GATE の出力状態 ................. 285
GATEC
GATE 機能制御レジスタ (GATEC ) ...................175
GATE 機能
GATE 機能について .............................................179
GATE 機能制御レジスタ
GATE 機能制御レジスタ (GATEC ) ...................175
H
Hold Request Cancel Level register
Hold Request Cancel Level register (HRCL)
..........................................................................121
HRCL
Hold Request Cancel Level register (HRCL)
..........................................................................121
ホールドリクエスト取下げ要求機能 (HRCL) の
使用例 .............................................................. 127
493
索引
I
I/O ポート
I/O ポートのモード ..............................................104
I/O マップ
I/O マップ ..............................................................450
ICR
ICR ビット構成 .......................................................53
ICR マッピング .......................................................53
割込み制御レジスタ
(ICR:ICR00 ∼ ICR47) .....................................120
ICSH
インプットキャプチャ状態制御レジスタ
(ch2,ch3), 上位バイト (ICSH23) ....................240
ICSL
インプットキャプチャ状態制御レジスタ
(ch2,ch3), 下位バイト (ICSL23) .....................242
ILM
ILM ...........................................................................52
INT
INT 命令の動作 .......................................................61
INTE
INTE 命令の動作 .....................................................61
Interrupt
NMI (Non Maskable Interrupt) ...............................126
IPCPH
インプットキャプチャデータレジスタ
(IPCPH:IPCPH0 ∼ IPCPH3,
IPCPL:IPCPL0 ∼ IPCPL3) .............................239
IPCPL
インプットキャプチャデータレジスタ
(IPCPH:IPCPH0 ∼ IPCPH3,
IPCPL:IPCPL0 ∼ IPCPL3) .............................239
I フラグ
I フラグ ....................................................................52
J
JMP 命令
JMP 命令 ( 分岐命令 ) ...........................................376
M
MAC 命令
MAC 命令 ...............................................................374
MB91260B
MB91260B シリーズのブロックダイヤグラム
..............................................................................4
MOD
16 ビットアウトプットコンペアの動作
( セット / リセットモード ,
MOD15 ∼ MOD10=1) ....................................277
16 ビットアウトプットコンペアの動作
( 反転モード , MOD15 ∼ MOD10=0) ...........273
mon911
デバッガ (sim911, eml911, mon911) ....................470
N
NMI
NMI .........................................................................137
494
NMI (Non Maskable Interrupt) ............................... 126
ユーザ割込み・NMI の動作 ..................................60
割込み・NMI に対するレベルマスク .................. 52
O
OCCPBH
アウトプットコンペアバッファレジスタ
(OCCPBH:OCCPBH0 ∼ OCCPBH5,
OCCPBL:OCCPBL0 ∼ OCCPBL5) ............... 228
OCCPBL
アウトプットコンペアバッファレジスタ
(OCCPBH:OCCPBH0 ∼ OCCPBH5,
OCCPBL:OCCPBL0 ∼ OCCPBL5) ............... 228
OCCPH
アウトプットコンペアレジスタ
(OCCPH:OCCPH0 ∼ OCCPH5,
OCCPL:OCCPL0 ∼ OCCPL5) .......................229
OCCPL
アウトプットコンペアレジスタ
(OCCPH:OCCPH0 ∼ OCCPH5,
OCCPL:OCCPL0 ∼ OCCPL5) .......................229
OCMOD
コンペアモード制御レジスタ (OCMOD)
..........................................................................237
OCSH
コンペア制御レジスタ , 上位バイト
(OCSH1,OCSH3,OCSH5) ............................... 230
OCSL
コンペア制御レジスタ , 下位バイト
(OCSL0,OCSL2,OCSL4) ................................. 234
P
PCR
Pull-up Control Register
(PCR:PCR0 ∼ PCR7,PCRG) .......................... 108
PDIVR
分周比制御レジスタ (PDIVR) ............................. 191
PDR
Port Data Register
(PDR:PDR0 ∼ PDR7,PDRC,PDRD,PDRE,
PDRG) .............................................................. 106
PFR
Port Function Register
(PFR:PFR0 ∼ PFR2,PFR7,PFRG) .................. 109
PICSH
PPG 出力制御レジスタ上位バイト (PICSH01)
..........................................................................244
PICSL
PPG 出力制御レジスタ下位バイト (PICSL01)
........................................................................... 245
PLL
PLL 逓倍率 .............................................................. 74
PLL 逓倍率変更後の待ち時間 ..............................75
PLL 動作許可 .......................................................... 74
PLL 動作許可後
PLL 動作許可後の待ち時間 ..................................75
Port Data Register
Port Data Register
(PDR:PDR0 ∼ PDR7,PDRC,PDRD,PDRE,
PDRG) .............................................................. 106
索引
Port Function Register
Port Function Register
(PFR:PFR0 ∼ PFR2,PFR7,PFRG) ..................109
PPG
PPG0 出力制御 ......................................................287
PPG 出力動作について ........................................177
PPG の機能 ............................................................164
PPG の組み合わせについて ................................181
PPG の初期値について ........................................180
ゲートトリガされた PPG0 出力 .........................287
PPGC
PPGn 動作モード制御レジスタ
(PPGC:PPGC0 ∼ PPGC15) .............................171
PPGn 動作モード制御レジスタ
PPGn 動作モード制御レジスタ
(PPGC:PPGC0 ∼ PPGC15) .............................171
PPG 起動レジスタ
PPG 起動レジスタ (TRG) .....................................174
PPG 出力制御レジスタ
PPG 出力制御レジスタ下位バイト (PICSL01)
..........................................................................245
PPG 出力制御レジスタ上位バイト (PICSH01)
..........................................................................244
PRLH
リロードレジスタ (PRLL/PRLH) ........................173
PRLL
リロードレジスタ (PRLL/PRLH) ........................173
Pull-up Control Register
Pull-up Control Register(PCR:PCR0 ∼ PCR7,PCRG)
..........................................................................108
PWC
PWC のブロックダイヤグラム ...........................185
PWCR
PWC データバッファレジスタ (PWCR0,PWCR1)
..........................................................................190
PWCSR
PWC コントロール / ステータスレジスタ
(PWCSR:PWCSR0/PWCSR1) .........................186
PWC コントロール / ステータスレジスタ
PWC コントロール / ステータスレジスタ
(PWCSR:PWCSR0/PWCSR1) .........................186
PWC データバッファレジスタ
PWC データバッファレジスタ (PWCR0,PWCR1)
..........................................................................190
R
RDY
レディ / ビジー信号 (RDY/BUSY) ......................432
RETI
RETI 命令の動作 .....................................................63
REVC
出力反転レジスタ (REVC) ..................................174
ROM
FR-CPU ROM モード
(32/16/8 ビット , 読出しのみ ) ......................426
ROM ライタ
ROM ライタによる書込み ..................................417
RSRR
RSRR : リセット要因レジスタ / ウォッチドッグ
タイマ制御レジスタ ........................................80
RTO
RTO0 ∼ RTO5 と GATE の出力状態 ................. 285
S
SCR
シリアルコントロールレジスタ
(SCR: SCR0 ∼ SCR2) .....................................318
SIDR
シリアルインプットデータレジスタ
(SIDR: SIDR0 ∼ SIDR2),
シリアルアウトプットデータレジスタ
(SODR:SODR0 ∼ SODR2) ............................320
SIGCR
波形制御レジスタ 1 (SIGCR1) ............................257
波形制御レジスタ 2 (SIGCR2) ............................259
波形制御レジスタ 2 (SIGCR2) の DTTI の動作
..........................................................................296
sim911
デバッガ (sim911, eml911, mon911) .................... 470
SMR
シリアルモードレジスタ (SMR: SMR0 ∼ SMR2)
..........................................................................317
SODR
シリアルインプットデータレジスタ
(SIDR:SIDR0 ∼ SIDR2),
シリアルアウトプットデータレジスタ
(SODR:SODR0 ∼ SODR2) ............................320
SSR
シリアルステータスレジスタ
(SSR: SSR0 ∼ SSR2) ...................................... 320
STCR
STCR : スタンバイ制御レジスタ .........................82
STOP 状態
STOP 状態からの復帰動作について .................. 139
外部割込みを使用した STOP 状態からの復帰時に
おける注意事項 .............................................. 138
STR 命令
STR 命令 ( 転送命令 ) .......................................... 375
T
TBCR
TBCR : タイムベースカウンタ制御レジスタ
............................................................................84
TBR
TBR(Table Base Register) ........................................ 55
TCCSH
タイマ状態制御レジスタ , 上位バイト (TCCSH)
........................................................................... 221
TCCSL
タイマ制御レジスタ , 下位バイト (TCCSL)
........................................................................... 224
TCDTH
タイマデータレジスタ (TCDTH,TCDTL)
..........................................................................220
TCDTL
タイマデータレジスタ (TCDTH,TCDTL)
........................................................................... 220
TMCSR
コントロールステータスレジスタ
(TMCSR:TMCSR0 ∼ TMCSR2) .................... 154
495
索引
TMRLR
TMRLR レジスタ
(16 ビットリロードレジスタ ) ......................157
TMRRH
16 ビットデッドタイマレジスタ
(TMRRH:TMRRH0 ∼ TMRRH2,
TMRRL:TMRRL0 ∼ TMRRL2) .....................247
TMRRL
16 ビットデッドタイマレジスタ
(TMRRH:TMRRH0 ∼ TMRRH2,
TMRRL:TMRRL0 ∼ TMRRL2) .....................247
TMR レジスタ
TMR レジスタ
(16 ビットタイマレジスタ ) ..........................157
TRG
PPG 起動レジスタ (TRG) .....................................174
two-cycle 転送
ステップ / ブロック転送 two-cycle 転送 ............401
バースト two-cycle 転送 .......................................400
two-cycle 転送時のデータの動き ........................412
U
UART
UART のクロック選択 .........................................323
UART の特長 .........................................................314
UART のブロックダイヤグラム .........................316
UTIM
U-TIMER(UTIM: UTIM0 ∼ UTIM2) ...................308
UTIMC
U-TIMER Control register
(UTIMC: UTIMC0 ∼ UTIMC2) .....................308
UTIMR
Reload register
(UTIMR: UTIMR0 ∼ UTIMR2) .....................308
U-TIMER
U-TIMER(UTIM: UTIM0 ∼ UTIM2) ...................308
ボーレートと U-TIMER のリロード値の設定例
..........................................................................331
U-TIMER Control register
U-TIMER Control register
(UTIMC: UTIMC0 ∼ UTIMC2) .....................308
あ
アーキテクチャ
内部アーキテクチャ .............................................. 30
アウトプットコンペア
16 ビットアウトプットコンペアと
フリーランタイマの動作について ..............279
16 ビットアウトプットコンペアの使用上の注意
..........................................................................298
16 ビットアウトプットコンペアの動作
( セット / リセットモード ,
MOD15 ∼ MOD10=1) .................................... 277
16 ビットアウトプットコンペアの動作
( 反転モード , MOD15 ∼ MOD10=0) ..........273
16 ビットアウトプットコンペアのプログラム例
..........................................................................302
16 ビットアウトプットコンペアのレジスタ
..........................................................................214
16 ビットアウトプットコンペア割込み ........... 263
アウトプットコンペアバッファレジスタ
アウトプットコンペアバッファレジスタ
(OCCPBH:OCCPBH0 ∼ OCCPBH5,
OCCPBL:OCCPBL0 ∼ OCCPBL5) ............... 228
アウトプットコンペアレジスタ
アウトプットコンペアレジスタ
(OCCPH:OCCPH0 ∼ OCCPH5,
OCCPL:OCCPL0 ∼ OCCPL5) .......................229
アセンブラ
アセンブラ (fasm911) ...........................................468
アドレッシングモード
アドレッシングモード ........................................ 403
アドレッシング領域
ダイレクトアドレッシング領域 .................... 28, 46
アナログ入力制御レジスタ
アナログ入力制御レジスタ
(AICR:AICR0 ∼ AICR2) ........................113, 350
アルゴリズム
自動アルゴリズム実行状態 ................................416
アンダフロー
アンダフロー動作 ................................................159
い
一時停止
一時停止 ................................................................ 406
イネーブルセクタプロテクト
イネーブルセクタプロテクト ............................439
インプットキャプチャ
16 ビットインプットキャプチャ入力タイミング
..........................................................................284
16 ビットインプットキャプチャの使用上の注意
..........................................................................298
16 ビットインプットキャプチャの動作 ........... 283
16 ビットインプットキャプチャのレジスタ
..........................................................................215
16 ビットインプットキャプチャ割込み ........... 264
インプットキャプチャ状態制御レジスタ
インプットキャプチャ状態制御レジスタ
(ch.2,ch.3), 下位バイト (ICSL23) ...................242
インプットキャプチャ状態制御レジスタ
(ch.2,ch.3), 上位バイト (ICSH23) .................. 240
496
索引
インプットキャプチャデータレジスタ
インプットキャプチャデータレジスタ
(IPCPH:IPCPH0 ∼ IPCPH3,
IPCPL:IPCPL0 ∼ IPCPL3) .............................239
う
ウォッチドッグタイマ制御レジスタ
RSRR : リセット要因レジスタ / ウォッチドッグ
タイマ制御レジスタ ........................................80
え
エラー
エラーによる停止 .................................................407
演算機能
演算機能 .................................................................371
演算結果
演算結果の転送処理 .............................................372
お
応用例
応用例 .....................................................................329
オーダリング
バイトオーダリング ...............................................42
ビットオーダリング ...............................................42
か
外形寸法図
FPT-100P-M05 の外形寸法図 ..................................5
FPT-100P-M06 の外形寸法図 ..................................6
外部バスクロック
外部バスクロック (CLKT) ....................................77
外部割込み
外部割込みの動作手順について .........................135
外部割込みの動作について .................................135
外部割込み要求レベルについて .........................136
外部割込みを使用した STOP 状態からの復帰時に
おける注意事項 ..............................................138
外部割込み要因レジスタ
外部割込み要因レジスタ
[EIRR (EIRR0,EIRR1): External Interrupt
Request] ............................................................133
外部割込み要求レベル設定レジスタ
外部割込み要求レベル設定レジスタ
[ELVR (ELVR0,ELVR1) : External LeVel
Register] ............................................................134
カウンタ
カウンタのクリア .................................................195
カウンタの動作状態 .............................................161
カウントクロック
カウントクロックの選択 .....................................193
カウントクロックの選択について .....................178
選択された外部カウントクロック .....................272
カスケードモード
カスケードモード .................................................311
き
基本プログラミングモデル
基本プログラミングモデル ..................................35
共通事項
共通事項 ................................................................ 486
く
クロック
クロック同期モード ............................................ 325
クロック周波数
原発振クロック周波数について ........................ 447
クロックソース制御レジスタ
CLKR : クロックソース制御レジスタ ................. 87
け
ゲートトリガ
ゲートトリガされた PPG0 出力 .........................287
検出結果レジスタ
検出結果レジスタ (BSRR) ..................................147
原発振
原発振クロック周波数について ........................ 447
こ
コプロセッサ
コプロセッサエラートラップ ..............................63
コプロセッサ不在トラップ ..................................62
コントロール / ステータスレジスタ
DMAC-ch.0,1,2,3,4 コントロール / ステータス
レジスタ A ......................................................383
DMAC-ch.0,1,2,3,4 コントロール / ステータス
レジスタ B ......................................................387
DSP-CSR
( コントロール / ステータスレジスタ )
..........................................................................365
コントロールステータスレジスタ
コントロールステータスレジスタ
(TMCSR:TMCSR0 ∼ TMCSR2) .................... 154
コンパイラ
C コンパイラ (fcc911) .......................................... 465
コンペア
A/D 起動コンペアのレジスタ ............................217
コンペアクリアバッファ
コンペアクリアバッファ .................................... 268
コンペアクリアバッファレジスタ
コンペアクリアバッファレジスタ
(CPCLRBH,CPCLRBL) ..................................218
コンペアクリアレジスタ
コンペアクリアレジスタ (CPCLRH,CPCLRL)
........................................................................... 219
コンペア制御レジスタ
コンペア制御レジスタ , 下位バイト
(OCSL0,OCSL2,OCSL4) ................................. 234
コンペア制御レジスタ , 上位バイト
(OCSH1,OCSH3,OCSH5) ............................... 230
コンペアモード制御レジスタ
コンペアモード制御レジスタ (OCMOD)
........................................................................... 237
497
索引
コンペアレジスタ
コンペアレジスタ 0,1,2
(ADCOMP0,ADCOMP1,ADCOMP2) ............260
し
自動アルゴリズム
自動アルゴリズム実行状態 .................................416
周辺クロック
周辺クロック (CLKP) .............................................77
周辺割込み
DMA による周辺割込みクリア ..........................406
初期化後
設定初期化後の待ち時間 .......................................75
出力端子
出力端子機能 .........................................................160
出力反転レジスタ
出力反転レジスタ (REVC) ..................................174
主要機能
主要機能 .........................................................116, 380
主要動作
主要動作 .................................................................397
初期値
PPG の初期値について ........................................180
シリアルアウトプットデータレジスタ
シリアルインプットデータレジスタ
(SIDR:SIDR0 ∼ SIDR2),
シリアルアウトプットデータレジスタ
(SODR:SODR0 ∼ SODR2) .............................320
シリアルインプットデータレジスタ
シリアルインプットデータレジスタ
(SIDR: SIDR0 ∼ SIDR2),
シリアルアウトプットデータレジスタ
(SODR:SODR0 ∼ SODR2) .............................320
シリアルオンボード
富士通標準シリアルオンボード書込みに使用する
端子 ..................................................................445
シリアル書込み
シリアル書込み基本構成 .....................................444
シリアル書込み接続例 .........................................446
シリアルコントロールレジスタ
シリアルコントロールレジスタ
(SCR: SCR0 ∼ SCR2) .....................................318
シリアルステータスレジスタ
シリアルステータスレジスタ
(SSR: SSR0 ∼ SSR2) ......................................320
シリアルモードレジスタ
シリアルモードレジスタ (SMR: SMR0 ∼ SMR2)
..........................................................................317
信号
レディ / ビジー信号 (RDY/BUSY) ......................432
す
スタック
割込みスタック .......................................................54
スタンバイ
スタンバイからの復帰について .........................135
スタンバイ制御レジスタ
STCR : スタンバイ制御レジスタ .........................82
498
スタンバイモード
スタンバイモード ( ストップ / スリープ ) からの
復帰 .................................................................. 127
ステップ / ブロック転送
ステップ / ブロック転送 two-cycle 転送 ........... 401
ステップトレーストラップ
ステップトレーストラップの動作 ...................... 61
ストップ
スタンバイモード ( ストップ / スリープ ) からの
復帰 .................................................................. 127
ストップモード
ストップモード復帰後の待ち時間 ...................... 76
スリープ
スタンバイモード ( ストップ / スリープ ) からの
復帰 .................................................................. 127
スリープモード
スリープモード中の DMA 転送 .........................408
スロット
遅延スロット付き動作 .......................................... 47
遅延スロットなし動作 .......................................... 49
せ
制御レジスタ
制御レジスタ (ADCOMPC) ................................. 261
セクタ
フラッシュメモリのセクタ構成 ........................ 418
セクタプロテクト
セクタプロテクト一時解除 ................................441
セクタプロテクトオペレーション
セクタプロテクトオペレーション一覧 ............438
セット / リセットモード
16 ビットアウトプットコンペアの動作
( セット / リセットモード ,
MOD15 ∼ MOD10=1) .................................... 277
そ
ソースクロック
ソースクロックの選択 .......................................... 73
ソフトウェア
ソフトウェア要求 ................................................399
た
退避
退避・復帰の処理 ................................................150
タイマ
タイマ割込み ........................................................ 270
タイマクリア
タイマクリア ........................................................ 267
タイマ状態制御レジスタ
タイマ状態制御レジスタ , 上位バイト (TCCSH)
........................................................................... 221
タイマ制御レジスタ
タイマ制御レジスタ , 下位バイト (TCCSL)
........................................................................... 224
タイマデータレジスタ
タイマデータレジスタ (TCDTH,TCDTL)
..........................................................................220
索引
タイマモード
タイマモード .........................................................267
タイマモードの動作 .............................................289
タイムベースカウンタ
タイムベースカウンタ ...........................................92
タイムベースカウンタクリアレジスタ
CTBR : タイムベースカウンタクリアレジスタ
............................................................................86
タイムベースカウンタ制御レジスタ
TBCR : タイムベースカウンタ制御レジスタ
............................................................................84
ダイレクトアドレッシング領域
ダイレクトアドレッシング領域 .....................28, 46
多機能タイマ
多機能タイマの構成 .............................................204
多機能タイマの端子 .............................................212
多機能タイマの動作 .............................................266
多機能タイマのブロックダイヤグラム .............206
端子機能一覧表
端子機能一覧表 .........................................................9
端子状態
各 CPU ステートにおける端子状態 ...................462
端子配列図
端子配列図 .................................................................7
単発変換モード
単発変換モードの動作 .........................................352
ち
遅延書込み
遅延書込み機能 .....................................................372
遅延スロット
遅延スロット付き動作 ...........................................47
遅延スロットなし動作 ...........................................49
遅延レジスタ
DSP-LY ( 遅延レジスタ ) .....................................369
チャネル選択
チャネル選択と制御 .............................................408
注意
使用上の注意 .........................................................328
レジスタ設定時の注意 .........................................383
注意事項
その他の注意事項 .................................................447
注意事項 .................................................................201
調歩同期
非同期 ( 調歩同期 ) モード ..................................324
て
停止
エラーによる停止 .................................................407
停止変換モード
停止変換モードの動作 .........................................355
低消費電力モード
低消費電力モード ...................................................98
逓倍率
PLL 逓倍率 ...............................................................74
逓倍率変更後
PLL 逓倍率変更後の待ち時間 ..............................75
データアクセス
データアクセス .......................................................43
データの種類
データの種類 ........................................................ 403
デッドタイムタイマモード
デッドタイムタイマモード時の動作 ................ 291
デバイス
デバイス状態と各遷移 .......................................... 95
デバイスの取扱い
デバイスの取扱いについて ..................................24
デバッガ
デバッガ (sim911, eml911, mon911) .................... 470
デバッグ
デバッグ関連の注意事項 .................................... 488
電源投入後
電源投入後の待ち時間 .......................................... 75
転送アドレス
転送アドレス ........................................................ 397
転送回数
転送回数と転送終了 ............................................ 398
転送回数制御
転送回数制御 ........................................................ 404
転送シーケンス
転送シーケンスの選択 ........................................ 400
転送終了
転送回数と転送終了 ............................................ 398
転送タイプ
転送タイプ ............................................................ 397
転送命令
STR 命令 ( 転送命令 ) .......................................... 375
転送モード
転送モード ............................................................ 397
転送元 / 転送先アドレス設定レジスタ
DMAC-ch.0,1,2,3,4 転送元 / 転送先アドレス設定
レジスタ .......................................................... 393
転送要求
転送要求の受付けと転送 .................................... 405
と
同期モード
クロック同期モード ............................................ 325
動作開始
動作開始 ................................................................ 405
動作概要
動作概要 ................................................................ 176
動作終了
動作終了 / 停止 ..................................................... 406
動作モード
動作モード .............................................. 64, 323, 370
動作モードについて ............................................ 176
動作モードの選択 ................................................193
リセット動作モード .............................................. 71
特長
特長 ........................................................2, 30, 50, 360
トラップ
EIT( 例外・割込み・トラップ ) ...........................50
コプロセッサエラートラップ ..............................63
コプロセッサ不在トラップ ..................................62
な
内蔵周辺要求
内蔵周辺要求 ........................................................ 399
499
索引
内部アーキテクチャ
内部アーキテクチャ ...............................................30
内部クロック
内部クロック動作 .................................................158
に
反転モード
16 ビットアウトプットコンペアの動作
( 反転モード , MOD15 ∼ MOD10=0) ..........273
ひ
入出力回路形式
入出力回路形式 .......................................................19
入力タイミング
16 ビットインプットキャプチャ入力タイミング
..........................................................................284
ビジー信号
レディ / ビジー信号 (RDY/BUSY) .....................432
ビットオーダリング
ビットオーダリング .............................................. 42
非同期
非同期 ( 調歩同期 ) モード ..................................324
の
ふ
ノイズキャンセル
DTTI 端子ノイズキャンセル機能 ......................296
富士通標準
富士通標準シリアルオンボード書込みに
使用する端子 ..................................................445
復帰
スタンバイからの復帰について ........................ 135
スタンバイモード ( ストップ / スリープ ) からの
復帰 .................................................................. 127
退避・復帰の処理 ................................................150
フラグ
I フラグ .................................................................... 52
フラッシュウェイトレジスタ
フラッシュウェイトレジスタ (FLWC) の構成
..........................................................................424
フラッシュマイコンプログラマシステム
AF200 フラッシュマイコンプログラマ
システム構成 ( 横河ディジタルコンピュータ
株式会社製 ) ....................................................447
フラッシュメモリ
フラッシュメモリの概要 .................................... 416
フラッシュメモリのセクタ構成 ........................ 418
フラッシュメモリのブロック
ダイヤグラム ..................................................417
フラッシュメモリのレジスタ一覧 .................... 421
フラッシュメモリステータスレジスタ
フラッシュメモリステータスレジスタ (FLCR) の
構成 .................................................................. 422
フリーランタイマ
16 ビットアウトプットコンペアと
フリーランタイマの動作について ..............279
16 ビットフリーランタイマの使用上の注意
..........................................................................298
16 ビットフリーランタイマのプログラム例
..........................................................................301
16 ビットフリーランタイマのレジスタ ........... 213
16 ビットフリーランタイマ割込み ...................262
フリーランタイマによる A/D 起動 ...................272
プリンストンバスコンバータ
ハーバード←→プリンストンバスコンバータ
............................................................................33
プログラミング
FR-CPU プログラミングモード
(16 ビット , 読出し / 書込み ) .......................426
プログラミングモデル
基本プログラミングモデル ..................................35
プログラムアクセス
プログラムアクセス .............................................. 43
は
バースト two-cycle 転送
バースト two-cycle 転送 .......................................400
バースト転送
バースト転送 .........................................................411
ハードウェア
ハードウェア構成 .................................................380
ハードウェア構成
ハードウェア構成 .................................................116
ハードウェアシーケンスフラグ
ハードウェアシーケンスフラグ .........................432
ハードウェアシーケンスフラグの使用例
..........................................................................436
ハーバード
ハーバード←→プリンストンバス
コンバータ ........................................................33
バイトオーダリング
バイトオーダリング ...............................................42
波形ジェネレータ
波形ジェネレータの使用上の注意 .....................299
波形ジェネレータのレジスタ .............................216
波形ジェネレータ割込み .....................................265
波形制御レジスタ
波形制御レジスタ 1 (SIGCR1) ............................257
波形制御レジスタ 2 (SIGCR2) ............................259
波形制御レジスタ 2 (SIGCR2) の DTTI の動作
..........................................................................296
バスコンバータ
32 ビット←→ 16 ビットバスコンバータ ............32
バスモード
バスモード ...............................................................64
発振安定待ち時間
発振安定待ち時間 ...................................................69
パルス
パルスの端子出力の制御について .....................178
パルス幅測定動作詳細 .........................................195
パルス幅
リロード値とパルス幅の関係について .............177
パルス幅測定
パルス幅測定機能 .........................................184, 192
パルス幅測定の起動と停止 .................................194
500
索引
プログラム例
16 ビットアウトプットコンペアのプログラム例
..........................................................................302
16 ビットフリーランタイマのプログラム例
..........................................................................301
プログラム・カウンタ
DSP-PC ( プログラム・カウンタ ) .....................367
ブロックサイズ
ブロックサイズ .....................................................402
ブロックダイヤグラム
8/10 ビット A/D コンバータの端子の
ブロックダイヤグラム ..........................112, 339
8/10 ビット A/D コンバータの
ブロックダイヤグラム ..................................335
MB91260B シリーズのブロックダイヤグラム
..............................................................................4
PWC のブロックダイヤグラム ...........................185
UART のブロックダイヤグラム .........................316
多機能タイマのブロックダイヤグラム .............206
フラッシュメモリのブロックダイヤグラム
..........................................................................417
ブロックダイヤグラム ..........79, 119, 132, 142, 145,
167, 307, 362, 382
ポート基本ブロックダイヤグラム .....................104
リロードタイマのブロックダイヤグラム
..........................................................................153
ブロック転送
ブロック転送 .........................................................410
分岐命令
JMP 命令 ( 分岐命令 ) ...........................................376
分周比制御レジスタ
分周比制御レジスタ (PDIVR) .............................191
ホールドリクエスト取下げ要求
ホールドリクエスト取下げ要求
(Hold Request Cancel Request) ........................ 126
ホールドリクエスト取下げ要求機能 (HRCL) の
使用例 .............................................................. 127
ボーレート
ボーレートと U-TIMER のリロード値の設定例
..........................................................................331
ボーレートの計算 ................................................311
保護機能
A/D 変換データ保護機能 .................................... 356
へ
命令
JMP 命令 ( 分岐命令 ) .......................................... 376
MAC 命令 .............................................................. 374
STR 命令 ( 転送命令 ) .......................................... 375
命令定義 ................................................................ 364
命令動作 ................................................................ 371
命令一覧表
命令一覧表 ............................................................ 471
命令概要
命令概要 .................................................................. 33
メモリマップ
メモリマップ .................................................... 28, 44
ベクタテーブル
EIT ベクタテーブル ...............................................55
ベクタテーブル .....................................................458
ベクタテーブル初期領域 .......................................46
ベリファイセクタプロテクト
ベリファイセクタプロテクト .............................439
変化点検出
変化点検出 .............................................................149
変化点検出用データレジスタ
変化点検出用データレジスタ (BSDC) ..............147
変換データ
A/D 変換データ保護機能 .....................................356
変換モード
単発変換モードの動作 .........................................352
停止変換モードの動作 .........................................355
連続変換モードの動作 .........................................354
変数モニタ
変数モニタ出力 .....................................................373
変数モニタレジスタ
DSP-OT0 ∼ DSP-OT7
( 変数モニタレジスタ ) ..................................369
ほ
ポート
ポート基本ブロックダイヤグラム .....................104
ま
マスク
割込みマスク機能 ................................................270
待ち時間
PLL 逓倍率変更後の待ち時間 ..............................75
PLL 動作許可後の待ち時間 ..................................75
ストップモード復帰後の待ち時間 ...................... 76
設定初期化後の待ち時間 ...................................... 75
電源投入後の待ち時間 .......................................... 75
マッピング
ICR マッピング ....................................................... 53
み
未定義命令
未定義命令例外の動作 .......................................... 62
め
も
モード
非同期 ( 調歩同期 ) モード ..................................324
モード設定
モード設定 .............................................................. 64
モニタ出力
変数モニタ出力 ....................................................373
ゆ
ユーザ
ユーザ割込み・NMI の動作 ..................................60
優先順位判定
優先順位判定 ........................................................ 122
501
索引
優先度
EIT 要因受理の優先度 ...........................................58
り
リセット
リセットシーケンス ...............................................68
リセット動作モード ...............................................71
リセット要因 ...........................................................67
リセットレベル .......................................................66
リセット要因レジスタ
RSRR : リセット要因レジスタ / ウォッチドッグ
タイマ制御レジスタ ........................................80
リロードタイマ
リロードタイマのブロックダイヤグラム
..........................................................................153
リロード値
ボーレートと U-TIMER のリロード値の
設定例 ..............................................................331
リロード値とパルス幅の関係について .............177
リロード動作
リロード動作 .........................................................402
リロードレジスタ
リロードレジスタ (PRLL/PRLH) ........................173
リンカ
リンカ (flnk911) .....................................................469
れ
例外
EIT( 例外・割込み・トラップ ) ............................50
未定義命令例外の動作 ...........................................62
レジスタ
TMRLR レジスタ
(16 ビットリロードレジスタ ) ......................157
レジスタ ...................................................................36
レジスタ一覧
レジスタ一覧 ................117, 132, 142, 145, 152, 164,
184, 306, 315, 361, 381
レジスタ設定
レジスタ設定時の注意 .........................................383
502
レディ
レディ / ビジー信号 (RDY/BUSY) .....................432
レベルマスク
割込み・NMI に対するレベルマスク .................. 52
連続変換モード
連続変換モードの動作 ........................................ 354
わ
割込み
16 ビットアウトプットコンペア割込み ........... 263
16 ビットインプットキャプチャ割込み ........... 264
16 ビットフリーランタイマ割込み ...................262
8/10 ビット A/D コンバータの割込み ............... 351
DMAC 割込み制御 ............................................... 407
DMA による周辺割込みクリア .......................... 406
DTTI 割込み .......................................................... 296
EIT( 例外・割込み・トラップ ) ...........................50
外部割込みの動作手順について ........................ 135
外部割込みの動作について ................................135
外部割込み要求レベルについて ........................ 136
タイマ割込み ........................................................ 270
波形ジェネレータ割込み .................................... 265
ユーザ割込み・NMI の動作 ..................................60
割込みスタック ......................................................54
割込みについて ....................................................179
割込み発生およびフラグのセットタイミング
..........................................................................326
割込み番号 ............................................................ 144
割込みマスク機能 ................................................270
割込みレベル .......................................................... 51
割込み・NMI に対するレベルマスク .................. 52
割込み許可レジスタ
割込み許可レジスタ
[ENIR (ENIR0,ENIR1):ENable Interrupt request
Register] ...........................................................133
割込み制御レジスタ
割込み制御レジスタ (ICR:ICR00 ∼ ICR47)
........................................................................... 120
CM71-10127-2
富士通半導体デバイス • CONTROLLER MANUAL
FR60Lite
32 ビット・マイクロコントローラ
MB91260B Series
ハードウェアマニュアル
2006 年 8 月 第 2 版発行
発行
富士通株式会社
編集
営業推進統括部 営業推進部
電子デバイス事業本部