10.4MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通半導体デバイス
CONTROLLER MANUAL
CM71-10130-4
FR60Lite
32 ビット・マイクロコントローラ
MB91265A Series
ハードウェアマニュアル
FR60Lite
32 ビット・マイクロコントローラ
MB91265A Series
ハードウェアマニュアル
開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。
『Check Sheet』は , 下記サポートページに掲載されています。
URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html
『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項
目をリストにしたものです。
富士通株式会社
はじめに
■ 本書の目的と対象読者
富士通半導体製品につきまして , 平素より格別のご愛顧を賜り厚くお礼申し上げます。
MB91265A シリーズは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処
理が要求される組込み制御用に各種 I/O リソースやバス制御機構を内蔵した , シングル
チップマイクロコントローラです。32 ビット CPU がアクセスする広大なアドレス空間
をサポートするために , 外部バスアクセスが基本となっていますが , CPU の命令実行を
高速化するために RAM ( データ用 ) を内蔵しています。
デジタルビデオカメラ , ナビゲーションシステム , DVD プレーヤなど , 高性能な CPU
処理パワーを要求される組込み用途に最適な仕様となっています。
MB91265A シリーズは , FR30/40 CPU をベースにバスアクセスの強化を行い , より高速
での使用に対応した FR60 Lite です。
本書は , 実際に MB91265A シリーズを使用して製品を開発される技術者を対象に ,
MB91265A シリーズの機能や動作について解説したものです。本書をご一読ください。
なお , 各種命令の詳細については , 『インストラクションマニュアル』をご参照くださ
い。
*: FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。
■ 商標
その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録
商標です。
i
■ 本書の全体構成
本書は , 以下に示す 20 の章 , および付録から構成されています。
第 1 章 概要
この章では , MB91265A シリーズの特長 , ブロックダイヤグラム , 外形寸法など全体
を知るための基本的なことについて説明します。
第 2 章 デバイスの取扱いについて
この章では , デバイスを取り扱う際の注意事項について説明します。
第 3 章 CPU および制御部
この章では , MB91265A シリーズの CPU コアの機能を知るために , アーキテクチャ ,
仕様 , 命令などの基本的なことについて説明します。
第 4 章 I/O ポート
この章では ,I/O ポートの概要 , レジスタの構成 , および機能について説明します。
第 5 章 割込みコントローラ
この章では , 割込みコントローラの概要 , レジスタの構成 / 機能 , および動作につい
て説明します。
第 6 章 外部割込み・NMI 制御部
この章では , 外部割込み /NMI 制御部の概要 , レジスタの構成 / 機能 , および外部割
込み /NMI 制御部の動作について説明します。
第 7 章 REALOS 関連ハード
この章では , 遅延割込みモジュールおよびビットサーチモジュールの概要 , レジス
タ構成 / 機能 , および動作について説明します。
第 8 章 リロードタイマ
この章では , リロードタイマの概要 , レジスタの構成 / 機能 , および動作について説
明します。
第 9 章 タイミングジェネレータ
この章では , タイミングジェネレータの概要 , レジスタの構成 / 機能 , および動作に
ついて説明します。
第 10 章 PPG
この章では , PPG の概要 , レジスタの構成 / 機能 , および動作について説明します。
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
この章では , PWC の概要 , レジスタの構成 / 機能 , および動作について説明します。
第 12 章 多機能タイマ
この章では , 多機能タイマの概要 , レジスタの構成 / 機能 , および動作について説明
します。
第 13 章 U-TIMER (UART ボーレート発生用 16 ビットタイマ )
この章では , U-TIMER の概要 , レジスタの構成 / 機能 , および動作について説明し
ます。
第 14 章 UART
この章では , UART の概要 , レジスタの構成 / 機能 , および動作について説明します。
ii
第 15 章 C-CAN
この章では , C-CAN の機能と動作について説明します。
第 16 章 8/10 ビット A/D コンバータ
この章では , A/D コンバータの概要 , レジスタの構成 / 機能 , および動作について説
明します。
第 17 章 積和演算回路
この章では , 積和演算回路の概要 , レジスタの構成 / 機能 , および動作について説明
します。
第 18 章 DMAC (DMA コントローラ )
この章では, DMACの概要 , レジスタの構成 /機能 , および動作について説明します。
第 19 章 フラッシュメモリ
この章では , フラッシュメモリの概要 , レジスタの構成 / 機能 , および動作について
説明します。
第 20 章 シリアル書込み接続
この章では , シリアル書込み基本構成 , シリアルオンボード書込みに使用する端子 ,
シリアル書込み接続例 , およびフラッシュマイコンプログラマシステム構成につい
て説明します。
付録
付録では , 各 CPU ステートにおける端子状態 , リトル・エンディアン領域を利用す
る際の注意事項 , FR ファミリの命令一覧 , および MB91265A シリーズを使用する際
の注意事項について説明します。
iii
•
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ
い。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ
たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ
ては , 当社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し
たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性
が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。
ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ
い。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品を輸出または提供する場合は , 外国為替および外国貿易法および米国輸出管理
関連法規等の規制をご確認の上 , 必要な手続きをおとりください。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。
Copyright ©2005-2007 FUJITSU LIMITED All rights reserved.
iv
目次
第1章
概要 ............................................................................................................ 1
1.1 概要 ........................................................................................................................................ 2
1.2 ブロックダイヤグラム............................................................................................................ 4
1.3 端子配列図.............................................................................................................................. 5
1.3.1
外形寸法図 ................................................................................................................... 6
1.4 端子機能一覧 .......................................................................................................................... 7
1.5 入出力回路形式 .................................................................................................................... 15
第2章
2.1
第3章
デバイスの取扱いについて ...................................................................... 19
デバイスの取扱いについて................................................................................................... 20
CPU および制御部 ................................................................................... 23
3.1 メモリ空間............................................................................................................................ 24
3.2 メモリマップ ........................................................................................................................ 25
3.3 内部アーキテクチャ ............................................................................................................. 26
3.4 プログラミングモデル.......................................................................................................... 31
3.4.1
レジスタ ..................................................................................................................... 32
3.5 データ構造............................................................................................................................ 38
3.6 メモリマップ ........................................................................................................................ 40
3.7 分岐命令 ............................................................................................................................... 42
3.8 EIT ( 例外・割込み・トラップ ) ........................................................................................... 45
3.9 動作モード............................................................................................................................ 59
3.10 リセット ( デバイス初期化 ) ................................................................................................. 62
3.10.1
リセットレベル .......................................................................................................... 63
3.10.2
リセット要因 .............................................................................................................. 64
3.10.3
リセットシーケンス ................................................................................................... 66
3.10.4
発振安定待ち時間....................................................................................................... 67
3.10.5
リセット動作モード ................................................................................................... 69
3.11 クロック生成制御 ................................................................................................................. 70
3.11.1
ソースクロックの選択 ............................................................................................... 71
3.11.2
PLL 制御 ..................................................................................................................... 72
3.11.3
発振安定待ち・PLL ロック待ち時間.......................................................................... 73
3.11.4
クロック分配 .............................................................................................................. 75
3.11.5
クロック分周 .............................................................................................................. 77
3.11.6
クロック生成制御部のブロックダイヤグラム............................................................ 78
3.11.7
クロック生成制御部のレジスタ詳細説明................................................................... 79
3.11.8
クロック制御部が持つ周辺回路 ................................................................................. 93
3.12 デバイス状態制御 ................................................................................................................. 96
第4章
I/O ポート............................................................................................... 103
4.1 ポート基本ブロックダイヤグラム...................................................................................... 104
4.1.1
プルアップ抵抗付き入出力ポート............................................................................ 105
4.2 I/O ポートのレジスタ ......................................................................................................... 106
4.3 アナログ入力ポート ........................................................................................................... 112
v
第5章
5.1
5.2
5.3
5.4
5.5
割込みコントローラ............................................................................... 115
概要 .................................................................................................................................... 116
レジスタ一覧 ...................................................................................................................... 117
ブロックダイヤグラム........................................................................................................ 119
レジスタ詳細説明 ............................................................................................................... 120
割込みコントローラの動作................................................................................................. 122
第6章
6.1
外部割込み・NMI 制御部 ....................................................................... 129
外部割込み・NMI 制御部.................................................................................................... 130
第7章
7.1
7.2
REALOS 関連ハード ............................................................................. 139
遅延割込みモジュール........................................................................................................ 140
ビットサーチモジュール .................................................................................................... 142
第8章
8.1
8.2
8.3
8.4
8.5
リロードタイマ ...................................................................................... 149
概要 .................................................................................................................................... 150
ブロックダイヤグラム........................................................................................................ 151
リロードタイマのレジスタ................................................................................................. 152
リロードタイマの動作........................................................................................................ 156
注意点 ................................................................................................................................. 160
第9章
9.1
タイミングジェネレータ........................................................................ 161
タイミングジェネレータ .................................................................................................... 162
第 10 章
10.1
10.2
10.3
10.4
概要 .................................................................................................................................... 168
ブロックダイヤグラム........................................................................................................ 171
PPG のレジスタ ................................................................................................................. 175
動作説明 ............................................................................................................................. 181
第 11 章
11.1
11.2
11.3
11.4
PPG........................................................................................................ 167
PWC (Pulse Width Count: パルス幅測定 )........................................... 187
概要 .................................................................................................................................... 188
ブロックダイヤグラム........................................................................................................ 189
PWC のレジスタ ................................................................................................................ 190
動作説明 ............................................................................................................................. 197
第 12 章
多機能タイマ.......................................................................................... 207
12.1 概要 .................................................................................................................................... 208
12.2 ブロックダイヤグラム........................................................................................................ 210
12.3 多機能タイマの端子 ........................................................................................................... 217
12.4 多機能タイマのレジスタ .................................................................................................... 218
12.4.1
コンペアクリアバッファレジスタ (CPCLRBH0 ∼ CPCLRBH2, CPCLRBL0 ∼
CPCLRBL2) / コンペアクリアレジスタ (CPCLRH0 ∼ CPCLRH2, CPCLRL0 ∼
CPCLRL2) ..................................................................................................................... 224
12.4.2
12.4.3
12.4.4
タイマデータレジスタ (TCDTH0 ∼ TCDTH2, TCDTL0 ∼ TCDTL2)...................... 226
タイマ状態制御レジスタ (TCCSH0 ∼ TCCSH2, TCCSL0 ∼ TCCSL2) ................. 227
A/D トリガ制御レジスタ (ADTRGC)........................................................................ 233
vi
12.4.5
アウトプットコンペアバッファレジスタ (OCCPBH0 ∼ OCCPBH5, OCCPBL0 ∼
OCCPBL5) / アウトプットコンペアレジスタ (OCCPH0 ∼ OCCPH5, OCCPL0 ∼
OCCPL5) ....................................................................................................................... 235
12.4.6
12.4.7
12.4.8
コンペア制御レジスタ (OCSH0 ∼ OCSH5, OCSL0 ∼ OCSL5) ............................. 237
コンペアモード制御レジスタ (OCMOD).................................................................. 244
インプットキャプチャデータレジスタ (IPCPH0 ∼ IPCPH3, IPCPL0 ∼ IPCPL3)
................................................................................................................................. 246
12.4.9
インプットキャプチャ状態制御 /PPG 出力制御レジスタ
(ICSH23, ICSL23, PICSH01, PICSL01) ....................................................................... 247
12.4.10
16 ビットデッドタイマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2)
................................................................................................................................. 255
12.4.11
12.4.12
12.4.13
16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2)...................................... 256
波形制御レジスタ (SIGCR1/SIGCR2)...................................................................... 265
A/D 起動コンペアレジスタ (ADCOMP1, ADCOMP2, ADCOMPC1, ADCOMPC2)
................................................................................................................................. 268
12.4.14
フリーランタイマセレクタレジスタ (FSR0 ∼ FSR2)............................................. 270
12.5 多機能タイマ割込み ........................................................................................................... 272
12.6 多機能タイマの動作 ........................................................................................................... 275
12.6.1
16 ビットフリーランタイマの動作 .......................................................................... 276
12.6.2
16 ビットアウトプットコンペアの動作 ................................................................... 283
12.6.3
16 ビットインプットキャプチャの動作 ................................................................... 294
12.6.4
波形ジェネレータの動作 .......................................................................................... 296
12.6.5
A/D 起動コンペアの動作 .......................................................................................... 308
12.7 多機能タイマの使用上の注意 ............................................................................................. 310
12.8 多機能タイマのプログラム例 ............................................................................................. 312
第 13 章
U-TIMER (UART ボーレート発生用 16 ビットタイマ ) ......................... 315
13.1 概要 .................................................................................................................................... 316
13.2 動作説明 ............................................................................................................................. 320
第 14 章
14.1
14.2
14.3
14.4
14.5
UART ..................................................................................................... 321
概要 .................................................................................................................................... 322
レジスタ詳細説明 ............................................................................................................... 325
UART の動作 ...................................................................................................................... 333
応用例 ................................................................................................................................. 339
ボーレートと U-TIMER のリロード値の設定例 ................................................................. 341
第 15 章
C-CAN.................................................................................................... 343
15.1 C-CAN の特長..................................................................................................................... 344
15.2 C-CAN のブロックダイヤグラム........................................................................................ 345
15.3 C-CAN のレジスタ ............................................................................................................. 346
15.4 C-CAN レジスタ機能.......................................................................................................... 352
15.4.1
全体コントロールレジスタ ...................................................................................... 353
15.4.2
メッセージインタフェースレジスタ ........................................................................ 366
15.4.3
メッセージオブジェクト .......................................................................................... 379
15.4.4
メッセージハンドラレジスタ................................................................................... 385
15.4.5
CAN クロックプリスケーラレジスタ....................................................................... 394
15.5 C-CAN 機能 ........................................................................................................................ 395
15.5.1
メッセージオブジェクト .......................................................................................... 396
15.5.2
メッセージ送信動作 ................................................................................................. 398
vii
15.5.3
15.5.4
15.5.5
15.5.6
15.5.7
15.5.8
15.5.9
第 16 章
メッセージ受信動作 ................................................................................................. 400
FIFO バッファ機能................................................................................................... 403
割込み機能 ............................................................................................................... 405
ビットタイミング..................................................................................................... 407
テストモード ............................................................................................................ 410
ソフトウェア初期化 ................................................................................................. 414
CAN クロックプリスケーラ ..................................................................................... 415
8/10 ビット A/D コンバータ................................................................... 419
16.1 概要 .................................................................................................................................... 420
16.2 構成 .................................................................................................................................... 421
16.3 端子 .................................................................................................................................... 424
16.4 レジスタ ............................................................................................................................. 426
16.4.1
A/D チャネル制御レジスタ (ADCH) ......................................................................... 427
16.4.2
A/D モード設定レジスタ (ADMD) ............................................................................ 429
16.4.3
A/D 制御ステータスレジスタ (ADCS)...................................................................... 432
16.4.4
A/D データレジスタ (ADCD).................................................................................... 435
16.4.5
アナログ入力制御レジスタ (AICR) .......................................................................... 436
16.5 割込み ................................................................................................................................. 437
16.6 動作説明 ............................................................................................................................. 438
16.7 A/D 変換データ保護機能 .................................................................................................... 442
16.8 使用上の注意 ...................................................................................................................... 443
第 17 章
17.1
17.2
17.3
17.4
17.5
積和演算回路.......................................................................................... 445
特長 .................................................................................................................................... 446
命令定義 ............................................................................................................................. 450
レジスタ説明 ...................................................................................................................... 451
動作説明 ............................................................................................................................. 457
命令詳細説明 ...................................................................................................................... 460
第 18 章
DMAC (DMA コントローラ ) ................................................................. 465
18.1 概要 .................................................................................................................................... 466
18.2 レジスタ詳細説明 ............................................................................................................... 469
18.3 DMAC (DMA コントローラ ) の動作................................................................................... 483
18.3.1
転送要求の設定 ........................................................................................................ 485
18.3.2
転送シーケンス ........................................................................................................ 486
18.3.3
DMA 転送全般 .......................................................................................................... 488
18.4 動作フローチャート ........................................................................................................... 497
18.5 データパス.......................................................................................................................... 499
第 19 章
フラッシュメモリ .................................................................................. 501
19.1 概要 .................................................................................................................................... 502
19.2 レジスタ ............................................................................................................................. 508
19.2.1
フラッシュメモリステータスレジスタ (FLCR)........................................................ 509
19.2.2
フラッシュウェイトレジスタ (FLWC) ..................................................................... 511
19.3 フラッシュメモリのアクセスモード .................................................................................. 513
19.4 自動アルゴリズム起動方法................................................................................................. 515
19.5 自動アルゴリズム実行状態................................................................................................. 520
19.6 デュアルオペレーション動作 ............................................................................................. 526
viii
第 20 章
シリアル書込み接続............................................................................... 529
20.1 概要 .................................................................................................................................... 530
付録
付録 A
付録 B
付録 C
付録 D
付録 E
付録 F
索引
............................................................................................................... 535
I/O マップ ...................................................................................................................... 536
割込みベクタ ................................................................................................................. 545
各 CPU ステートにおける端子状態 .............................................................................. 548
リトル・エンディアン領域を利用する際の注意事項.................................................... 550
命令一覧表..................................................................................................................... 557
使用上の注意 ................................................................................................................. 572
................................................................................................................575
ix
x
本版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
2
1.1 概要
●内蔵周辺機能 の変更
( "MB91F267NA" → "MB91F267NA /MB91267NA" )
( " 表 1.1-1 内蔵周辺機能 " の挿入および置き換え )
4
図 1.2-1 ブロックダイヤグラム の変更
( "MB91F267NA のみ " → "MB91F267NA /MB91267NA" )
5
1.3 端子配列図
■ LQFP-64 (MB91F267A/MB91F267NA/MB91267NA/MB91267A) の変更
( "MB91266A" → "MB91267NA/MB91267A" ),
( "MB91F267NA のみ " → "MB91F267NA /MB91267NA" )
10
表 1.4-1 端子機能一覧表 (4 / 7) の変更
( "MB91F267NA のみ " → "MB91F267NA /MB91267NA" )
13
表 1.4-1 端子機能一覧表 (7 / 7) の変更
( "MB91F267NA のみ " → "MB91F267NA /MB91267NA" )
25
■ MB91F267A/MB91F267NA/MB91267NA/MB91267A のメモリマップ の変更
( "MB91F267A" → "MB91F267A/MB91267A" ),
( "MB91F267NA " → "MB91F267NA /MB91267NA" )
25
3.2 メモリマップ
■ MB91266A のメモリマップ の変更
( " 図 3.2-2 MB91266A のメモリマップ " の削除 )
52
表 3.8-3 ベクタテーブル (3 / 3) の変更
( "MB91F267NA のみ " → "MB91F267NA /MB91267NA" )
79
■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ の変更
( "(reserverd bit)" → " − : 予約ビット " )
80
■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ の変更
( "(reserved bit)" → " − : 予約ビット " )
83
■ STCR : スタンバイ制御レジスタ の変更
( "(reserverd bit)" → " − : 予約ビット " )
85
■ TBCR : タイムベースカウンタ制御レジスタ の変更
( "(reserved bit)" → " − : 予約ビット " )
87
■ CLKR : クロックソース制御レジスタ の変更
( "(reserved bit)" → " − : 予約ビット " )
92
■ DIVR1: 基本クロック分周設定レジスタ 1 の変更
( "(reserved bit)" → " − : 予約ビット " )
xi
ページ
変更内容(詳細は本文を参照してください。)
109
4.2 I/O ポートのレジスタ
■ Port Function Register(PFR: PFR0, PFR1, PTFR0) の変更
( "MB91F267NA のみ " → "MB91F267NA /MB91267NA" ),
( "MB91F267NA " → "MB91F267NA /MB91267NA" )
110
4.2 I/O ポートのレジスタ
■ Port Function Register(PFR: PFR0, PFR1, PTFR0) の変更
( "MB91F267NA のみ " → "MB91F267NA /MB91267NA" )
111
4.2 I/O ポートのレジスタ
■ Port Function Register(PFR: PFR0, PFR1, PTFR0) の変更
( "MB91F267NA " → "MB91F267NA /MB91267NA" )
120
■ Interrupt Control Register (ICR) の変更
( "-: 未定義 " の追加 )
121
■ Hold Request Cancel Level register (HRCL) の変更
( "-: 未定義 " の追加 )
123
5.5 割込みコントローラの動作
表 5.5-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 4) の変更
( "MB91F267NA のみ " → "MB91F267NA /MB91267NA" )
140
● DICR (Delayed Interrupt Control Register) の変更
( "-: 未定義 " の追加 )
179
10.3 PPG のレジスタ
■ PPG 起動レジスタ (TRG) の変更
( "PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00" →
"PEN7 PEN6 PEN5 PEN4 PEN3 PEN2 PEN1 PEN0" )
179
10.3 PPG のレジスタ
■ 出力反転レジスタ (REVC) の変更
( "REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00" →
"REV7 REV6 REV5 REV4 REV3 REV2 REV1 REV0" )
190
■ PWC コントロール / ステータスレジスタ (PWCSR: PWCSR0) の変更
( "―" → "R/W" )
190
■ PWC コントロール / ステータスレジスタ (PWCSR: PWCSR0) の変更
( "- : 未定義 " の削除 )
192
■ PWC コントロール / ステータスレジスタ (PWCSR: PWCSR0) の変更
( "(reserved)" → " − : 予約ビット " )
318
● U-TIMer Control register (UTIMC: UTIMC0, UTIMC1) の変更
( "reserved" → "- : 未定義ビット " )
325
■ シリアルモードレジスタ (SMR: SMR0, SMR1) の変更
("R/W" の追加 ), ( "(reserved)" → " − : 予約ビット " ),
( " 未定義 " → " 予約 " )
326
■ シリアルモードレジスタ (SMR: SMR0, SMR1) の変更
( "(reserved)" → " − : 予約ビット " ),
( "(reserved)" → "- : 未定義ビット " )
xii
ページ
変更内容(詳細は本文を参照してください。)
347
表 15.3-1 全体コントロールレジスタ一覧 の変更
( "Int-Id" → "IntId" )
350
表 15.3-3 メッセージハンドラレジスタ一覧 の変更
( "32 メッセージバッファ以上をサポートするための予約領域 " を削除 )
354
15.4.1.1 CAN 制御レジスタ (CTRLR)
■ CAN 制御レジスタ (CTRLR) の変更
( "res" → " − " ), ( ": 予約ビット " → " − : 予約ビット " )
355
15.4.1.1 CAN 制御レジスタ (CTRLR)
■ レジスタ機能 の変更
( "res: 予約ビット " → " − : 予約ビット " )
357
15.4.1.2 CAN ステータスレジスタ (STATR)
■ CAN ステータスレジスタ (STATR) の変更
( "res" → " − " ), ( " 予約ビット " → " − : 予約ビット " )
361
15.4.1.4 CAN ビットタイミングレジスタ (BTR)
■ CAN ビットタイミングレジスタ (BTR)
( "res" → " − " )
361
15.4.1.4 CAN ビットタイミングレジスタ (BTR)
■ レジスタ機能 の変更
( "res: 予約ビット " → " − : 予約ビット " )
363
15.4.1.6 CAN テストレジスタ (TESTR)
■ CAN テストレジスタ (TESTR) の変更
( "res" → " − " )
363
15.4.1.6 CAN テストレジスタ (TESTR)
■ レジスタ機能 の変更
( "res: 予約ビット " → " − : 予約ビット " )
364
15.4.1.6 CAN テストレジスタ (TESTR)
■ レジスタ機能 の変更
( "res: 予約ビット " → " − : 予約ビット " )
365
15.4.1.7 CAN プリスケーラ拡張レジスタ (BRPER)
■ CAN プリスケーラ拡張レジスタ (BRPER) の変更
( "res" → " − " )
365
15.4.1.7 CAN プリスケーラ拡張レジスタ (BRPER)
■ レジスタ機能 の変更
( "res: 予約ビット " → " − : 予約ビット " )
367
15.4.2.1 IFx コマンド要求レジスタ (IFxCREQ)
■ IFx コマンド要求レジスタ (IFxCREQ) の変更
( "res" → " − " )
368
15.4.2.1 IFx コマンド要求レジスタ (IFxCREQ)
■ レジスタ機能 の変更
( "res: 予約ビット " → " − : 予約ビット " )
xiii
ページ
変更内容(詳細は本文を参照してください。)
368
15.4.2.1 IFx コマンド要求レジスタ (IFxCREQ)
■ レジスタ機能 の変更
( "[bit4 ∼ bit0] Message Number: メッセージ番号 (128 message buffer CAN 用 )" の記述削
除)
369
15.4.2.2 IFx コマンドマスクレジスタ (IFxCMSK)
■ IFx コマンドマスクレジスタ (IFxCMSK) の変更
( "res" → " − " )
369
15.4.2.2 IFx コマンドマスクレジスタ (IFxCMSK)
■ レジスタ機能 の変更
( "res: 予約ビット " → " − : 予約ビット " )
374
15.4.2.3 IFx マスクレジスタ 1,2 (IFxMSK1, IFxMSK2)
■ IFx マスクレジスタ 1,2 (IFxMSK1, IFxMSK2) の変更
( "res" → " − " )
376
15.4.2.5 IFx メッセージ制御レジスタ (IFxMCTR)
■ IFx メッセージ制御レジスタ (IFxMCTR) の変更
( "res" → " − " )
379
15.4.3 メッセージオブジェクト の変更
( "( 品種によって 128 まで )" の削除 )
387
15.4.4.1 CAN 送信要求レジスタ (TREQR1, TREQR2)
■ レジスタ機能 の変更
( "32 メッセージバッファ以上 " の記述削除 )
389
15.4.4.2 CAN データ更新レジスタ (NEWDT1, NEWDT2)
■ レジスタ機能 の変更
( "32 メッセージバッファ以上 " の記述削除 )
391
15.4.4.3 CAN 割込みペンディングレジスタ (INTPND1, INTPND2)
■ レジスタ機能 の変更
( "32 メッセージバッファ以上 " の記述削除 )
393
15.4.4.4 CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2)
■ レジスタ機能 の変更
( "32 メッセージバッファ以上 " の記述削除 )
394
15.4.5 CAN クロックプリスケーラレジスタ
■ レジスタ機能 の変更
( "res" → " − " ), ( "res: 予約ビット " → " − : 予約ビット " )
432
16.4.3 A/D 制御ステータスレジスタ (ADCS)
■ A/D 制御ステータスレジスタ (ADCS: ADCS1, ADCS2) の変更
( "―" → " 予約 " )
434
16.4.3 A/D 制御ステータスレジスタ (ADCS)
表 16.4-3 A/D 制御ステータスレジスタ (ADCS) の各ビットの機能説明 (2 / 2) の変更
( " 未使用ビット " → " 未定義ビット " )
xiv
ページ
変更内容(詳細は本文を参照してください。)
469
18.2 レジスタ詳細説明
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ A[DMACA:
DMACA0 ∼ DMACA4] の変更
( "* マークは DMAC 転送中に設定すると…" の削除 )
472
18.2 レジスタ詳細説明
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ A
[DMACA: DMACA0 ∼ DMACA4] の変更
( "(Reserved)" → "―" )
482
18.2 レジスタ詳細説明
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御レジスタ [DMACR] の変更
( "(Reserved)" → "―" )
509
19.2.1 フラッシュメモリステータスレジスタ (FLCR)
図 19.2-2 フラッシュメモリステータスレジスタ (FLCR) のビット構成
( "- : 未定義 " の削除 )
509
19.2.1 フラッシュメモリステータスレジスタ (FLCR)
■ フラッシュメモリステータスレジスタ (FLCR) の変更
( "(reserved)" → " − : 予約ビット " )
510
19.2.1 フラッシュメモリステータスレジスタ (FLCR)
● 制限事項 の変更
( "(reserved)" → " − : 予約ビット " )
511
19.2.2 フラッシュウェイトレジスタ (FLWC)
図 19.2-3 フラッシュウェイトレジスタ (FLWC) のビット構成 の変更
( "- : 未定義 " の削除 )
511
19.2.2 フラッシュウェイトレジスタ (FLWC)
■ フラッシュウェイトレジスタ (FLWC) の変更
( "(reserved)" → " − : 予約ビット " )
544
付録 A I/O マップ
付表 A-1 I/O マップ (8 / 8) の変更
( 128 メッセージバッファ関連記述削除 )
544
付録 A I/O マップ
付表 A-1 I/O マップ (8 / 8) の変更
("Reserved" → " 予約 ")
544
付録 A I/O マップ
付表 A-1 I/O マップ (8 / 8) の変更
("MB91F267NA のみ " → "MB91F267NA /MB91267NA" )
547
付録 B 割込みベクタ
付表 B-1 ベクタテーブル (3 / 3) の変更
( "MB91F267NA のみ " → "MB91F267NA /MB91267NA" )
549
付録 C 各 CPU ステートにおける端子状態
表 C-1 シングルチップモード
( "MB91F267NA のみ " → "MB91F267NA /MB91267NA" )
変更箇所は , 本文中のページ左側の│によって示しています。
xv
xvi
第1章
概要
MB91265A シリーズの特長 , ブロックダイヤグラ
ム , 外形寸法など全体を知るための基本的なことに
ついて説明します。
1.1 概要
1.2 ブロックダイヤグラム
1.3 端子配列図
1.4 端子機能一覧
1.5 入出力回路形式
1
第 1 章 概要
概要
1.1
MB91265A シリーズは高速処理を要求される組込み制御用途向けに設計された , 汎
用の富士通 32 ビット RISC マイクロコントローラです。CPU には , FR ファミリと
互換の FR60Lite を使用しています。
MB91F267NA/MB91267NA には , C-CAN (1 チャネル ) が搭載されています。
■ 特長
● 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 ファミリとの命令互換
● 内蔵周辺機能
表 1.1-1 内蔵周辺機能
MB91V265A
MB91F267A
評価用品
MB91267A
MB91267NA
マスク ROM 品
フラッシュメモリ品
PGA-401
パッケージ
MB91F267NA
LQFP-64
( リードピッチ 2.54 mm
インタースティシャル )
( リードピッチ 0.65 mm)
ROM/Flash 容量
外部 SRAM
128 K バイト
RAM 容量
24 K バイト
4 K バイト
C-CAN
1 チャネル
なし
1 チャネル
なし
• A/D コンバータ ( 逐次比較型 )
- 分解能
:10 ビット:4 チャネル× 1 ユニット , 7 チャネル× 1 ユニット
- 変換時間:1.2 µs ( 最小変換時間 システムクロック 33 MHz 時 )
1.35 µs ( 最小変換時間 システムクロック 20 MHz 時 )
• 外部割込み入力:8 チャネル
2
1 チャネル
第 1 章 概要
• ビットサーチモジュール (REALOS 使用 )
- 1 ワード中の MSB ( 上位ビット ) から最初の "1" → "0" 変化ビット位置をサーチ
する機能
• UART ( 全二重ダブルバッファ方式 ):2 チャネル
- パリティあり / なし選択可能
- 非同期 ( 調歩同期 )/ クロック同期通信の選択可能
- 専用ボーレートタイマ (U-Timer) をチャネルごとに内蔵
- 外部クロックを転送クロックとして使用可能
- パリティ , フレーム , オーバランエラー検出機能あり
• 8/16 ビット PPG タイマ:8 チャネル (8 ビット時 ) / 4 チャネル (16 ビット時 )
• タイミングジェネレータ
• 16 ビットリロードタイマ:3 チャネル ( カスケードモードあり , リロードタイマ 0 の
出力なし )
• 16 ビットフリーランタイマ:3 チャネル
• 16 ビット PWC タイマ:1 チャネル
• インプットキャプチャ:4 チャネル ( フリーランタイマと連動 )
• アウトプットコンペア:6 チャネル ( フリーランタイマと連動 )
• 波形ジェネレータ
アウトプットコンペア出力 , 16 ビット PPG タイマ 0, 16 ビットデッドタイマを使用
してさまざまな波形を生成することができます。
• 積和演算回路
- RAM:命令 RAM(I-RAM) 256 × 16 ビット
XRAM
64 × 16 ビット
YRAM
64 × 16 ビット
- 積和演算 (16 ビット× 16 ビット+ 40 ビット ) を 1 サイクル実行
- 演算結果は 40 ビットから 16 ビットへの丸め処理で抽出
• DMAC (DMA コントローラ ):5 チャネル
内蔵ペリフェラル割込み , ソフトウェアによって転送起動が可能
• ウォッチドッグタイマ
• 低消費電力モード
スリープ / ストップ機能
• パッケージ:LQFP-64
• CMOS テクノロジ : 0.35 µm
• 電源 : 1 電源 (Vcc=4.0V ∼ 5.5V)
3
第 1 章 概要
1.2
ブロックダイヤグラム
図 1.2-1 に , MB91265A シリーズのブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 1.2-1 ブロックダイヤグラム
FR60Lite
CPUコア
32
32
DMAC
5チャネル
ビットサーチ
積和演算回路
バス
コンバータ
ROM 64KB/
フラッシュメモリ 128KB
1チャネル
C-CAN
RAM 2KB/
RAM 4KB
X0,X1
MD0~MD2
INIT
クロック
制御
32
割込み
コントローラ
SIN0,SIN1
SOT0,SOT1
SCK0,SCK1
(MB91F267NA/MB91267NA に搭載 )
32 16
アダプタ
16
INT0~INT7
NMI
TX0
RX0
8 チャネル
外部割込み
2チャネル
UART
PORT I/F
PORT
3 チャネル
リロードタイマ
TIN0~TIN2
TOT1,TOT2
1 チャネル
PWC タイマ
PWI0
4チャネル 16ビット /
8チャネル 8ビット
PPGタイマ
PPG0~PPG7
2チャネル
U-TIMER
タイミングジェネレータ
AVcc
ADTG1
AVRH1
AN0~AN3
ADTG2
AVRH2
AN4~AN10
4
多機能タイマ
4 チャネル入力
8/10ビット A/D-1
7 チャネル入力
8/10ビット A/D-2
フリーランタイマ
3チャネル
インプットキャプチャ
4チャネル
アウトプットコンペア
6チャネル
波形ジェネレータ
CKI
IC0~IC3
RTO0~RTO5
DTTI
第 1 章 概要
端子配列図
1.3
FPT-64P-M23 の端子配列図および外形寸法図を示します。
■ LQFP-64 (MB91F267A/MB91F267NA/MB91267A/MB91267NA)
AVCC
AVRH2
AVRH1
P43/INT3
P42/INT2
P41/INT1
P40/INT0
P30/RTO0
P31/RTO1
P32/RTO2
P33/RTO3
P34/RTO4
P35/RTO5
INIT
P36/PPG7/INT7
P37/PPG4
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
端子配列図および外形寸法図
64
図 1.3-1
AVSS
1
48
VSS
ACC
2
47
X1
AN0/P50
3
46
X0
AN1/P51
4
45
MD0
AN2/P52
5
44
MD1
AN3/P53
6
43
MD2
AN4/P54
7
42
PG1/PPG0
AN5/P55
8
41
P27
AN6/P56
9
40
P26/IC1
AN7/P57
10
39
P25/IC0
AN8/P44
11
38
P24/CKI
AN9/P45
12
37
P23/DTTI
AN10/P46
13
36
P22/PWI0
NMI
14
35
P21/ADTG2/IC3
C
15
34
P20/ADTG1/IC2
VSS
16
33
P17/PPG6/TX0*
TOP VIEW
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
VCC
P00/PPG1/INT4
P01/PPG2
P02/PPG3/INT5
P03/TIN0
P04/TIN1
P05/TIN2
P06/TOT1
P07/TOT2
P10/SOT0
P11/SIN0
P12/SCK0
P13/SOT1
P14/SIN1
P15/SCK1
P16/PPG5/INT6/RX0*
FPT-64P-M23
*:C-CAN の端子は , MB91F267NA/MB91267NA に搭載されています。
5
第 1 章 概要
外形寸法図
1.3.1
図 1.3-2 に , FPT-64P-M23 の外形寸法図を示します。
■ パッケージ外形寸法図
図 1.3-2
外形寸法図
プラスチック・LQFP, 64ピン
リードピッチ
0.65mm
パッケージ幅×
パッケージ長さ
12.0 × 12.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
コード(参考)
P-LFQFP64-12×12-0.65
(FPT-64P-M23)
プラスチック・LQFP, 64ピン
(FPT-64P-M23)
注 1)* 印寸法はレジン残りを含まず。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
14.00±0.20(.551±.008)SQ
*12.00±0.10(.472±.004)SQ
48
0.145±0.055
(.0057±.0022)
33
49
32
0.10(.004)
Details of "A" part
+0.20
1.50 –0.10
+.008
(Mounting height)
.059 –.004
0.25(.010)
INDEX
0~8°
64
17
1
0.65(.026)
C
"A"
16
2003 FUJITSU LIMITED F64034S-c-1-1
0.32±0.05
(.013±.002)
0.13(.005)
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
M
単位:mm(inches)
注意:括弧内の値は参考値です。
最新の外形寸法図については , 下記の URL にてご確認ください。
http://edevice.fujitsu.com/jp/datasheet/jf-ovpklv.html
6
0.10±0.10
(.004±.004)
(Stand off)
第 1 章 概要
1.4
端子機能一覧
表 1.4-1 に , 端子機能について説明します。
■ 端子機能一覧
端子配列図を参照してください。
表 1.4-1 端子機能一覧表 (1 / 7)
端子
番号
端子名
入出力
回路形式 *1
AN0
3
G
P50
AN1
4
G
P51
AN2
5
G
P52
AN3
6
G
P53
AN4
7
G
P54
AN5
8
G
P55
AN6
9
G
P56
AN7
10
G
P57
AN8
11
G
P44
機能説明
A/D コンバータ 1 のアナログ入力です。
AICR1 レジスタの指定がアナログ入力のときに有効になります。
汎用入出力ポートです。
この機能はアナログ入力指定が禁止のときに有効になります。
A/D コンバータ 1 のアナログ入力です。
AICR1 レジスタの指定がアナログ入力のときに有効になります。
汎用入出力ポートです。
この機能はアナログ入力指定が禁止のときに有効になります。
A/D コンバータ 1 のアナログ入力です。
AICR1 レジスタの指定がアナログ入力のときに有効になります。
汎用入出力ポートです。
この機能はアナログ入力指定が禁止のときに有効になります。
A/D コンバータ 1 のアナログ入力です。
AICR1 レジスタの指定がアナログ入力のときに有効になります。
汎用入出力ポートです。
この機能はアナログ入力指定が禁止のときに有効になります。
A/D コンバータ 2 のアナログ入力です。
AICR2 レジスタの指定がアナログ入力のときに有効になります。
汎用入出力ポートです。
この機能はアナログ入力指定が禁止のときに有効になります。
A/D コンバータ 2 のアナログ入力です。
AICR2 レジスタの指定がアナログ入力のときに有効になります。
汎用入出力ポートです。
この機能はアナログ入力指定が禁止のときに有効になります。
A/D コンバータ 2 のアナログ入力です。
AICR2 レジスタの指定がアナログ入力のときに有効になります。
汎用入出力ポートです。
この機能はアナログ入力指定が禁止のときに有効になります。
A/D コンバータの 2 アナログ入力です。
AICR2 レジスタの指定がアナログ入力のときに有効になります。
汎用入出力ポートです。
この機能はアナログ入力指定が禁止のときに有効になります。
A/D コンバータ 2 のアナログ入力です。
AICR2 レジスタの指定がアナログ入力のときに有効になります。
汎用入出力ポートです。
この機能はアナログ入力指定が禁止のときに有効になります。
7
第 1 章 概要
表 1.4-1 端子機能一覧表 (2 / 7)
端子
番号
端子名
入出力
回路形式 *1
AN9
12
G
P45
AN10
13
G
NMI
H
INT4
18
PPG1
E
P00
PPG2
19
D
P01
INT5
20
PPG3
E
P02
TIN0
21
D
P03
TIN1
22
D
P04
8
A/D コンバータ 2 のアナログ入力です。
AICR2 レジスタの指定がアナログ入力のときに有効になります。
汎用入出力ポートです。
この機能はアナログ入力指定が禁止のときに有効になります。
A/D コンバータ 2 のアナログ入力です。
AICR2 レジスタの指定がアナログ入力のときに有効になります。
汎用入出力ポートです。
この機能はアナログ入力指定が禁止のときに有効になります。
P46
14
機能説明
NMI (Non Maskable Interrupt) 入力です。
外部割込み入力です。
対応する外部割込みを許可している間は , この入力を随時使用してい
ますので , 意図的に行う以外はポートによる出力を停止させておく必
要があります。
PPG タイマ 1 の出力です。
この機能は PPG タイマ 1 の出力指定が許可のときに有効になります。
汎用入出力ポートです。
PPG タイマ 1 の出力指定および外部割込み入力が禁止のときに有効に
なります。
PPG タイマ 2 の出力です。
この機能は PPG タイマ 2 の出力指定が許可のときに有効になります。
汎用入出力ポートです。
PPG タイマ 2 の出力指定が禁止のときに有効になります。
外部割込み入力です。
対応する外部割込みを許可している間は , この入力を随時使用してい
ますので意図的に行う以外はポートによる出力を停止させておく必要
があります。
PPG タイマ 3 の出力です。
この機能は PPG タイマ 3 の出力指定が許可のときに有効になります。
汎用入出力ポートです。
PPG タイマ 3 の出力指定および外部割込み入力が禁止のときに有効に
なります。
リロードタイマ 0 の外部トリガ入力です。
トリガ入力を許可している間は , この入力を随時使用していますので意
図的に行う以外はポートによる出力を停止させておく必要があります。
汎用入出力ポートです。
この機能はリロードタイマ 0 の外部クロック入力指定が禁止のときに
有効になります。
リロードタイマ 1 の外部トリガ入力です。
トリガ入力を許可している間は , この入力を随時使用していますので意
図的に行う以外はポートによる出力を停止させておく必要があります。
汎用入出力ポートです。
この機能はリロードタイマ 1 の外部クロック入力指定が禁止のときに
有効になります。
第 1 章 概要
表 1.4-1 端子機能一覧表 (3 / 7)
端子
番号
端子名
入出力
回路形式 *1
TIN2
D
23
P05
TOT1
24
汎用入出力ポートです。
この機能はリロードタイマ 1 出力指定が禁止のときに有効になりま
す。
リロードタイマ 2 の出力です。
この機能はリロードタイマ 2 出力許可のときに有効になります。
D
汎用入出力ポートです。
この機能はリロードタイマ 2 出力指定が禁止のときに有効になりま
す。
UART0 のデータ出力です。
この機能は UART0 のデータ出力指定が許可のときに有効になります。
TOT2
P07
SOT0
26
D
P10
SIN0
27
D
P11
SCK0
28
リロードタイマ 2 の外部トリガ入力です。
トリガ入力を許可している間は , この入力を随時使用していますので意
図的に行う以外はポートによる出力を停止させておく必要があります。
汎用入出力ポートです。
この機能はリロードタイマ 2 の外部クロック入力指定が禁止のときに
有効になります。
リロードタイマ 1 の出力です。
この機能はリロードタイマ 1 出力許可のときに有効になります。
D
P06
25
機能説明
D
汎用入出力ポートです。
UART0 のデータ出力指定が禁止のときに有効になります。
UART0 のデータ入力です。
UART0 が入力動作をしている間は , この入力を随時使用しますので ,
意図的に行う以外は , ポートによる出力を停止させておく必要があり
ます。
汎用入出力ポートです。
UART0 のデータ入力指定が禁止のときに有効になります。
UART0 のクロック入出力です。
この機能は UART0 のクロック出力指定が許可のときに有効になります。
P12
汎用入出力ポートです。
この機能は UART0 のクロック出力指定が禁止のときに有効になります。
SOT1
UART1 のデータ出力です。
この機能は UART1 のデータ出力指定が許可のときに有効になります。
29
D
P13
SIN1
30
D
P14
SCK1
31
D
P15
汎用入出力ポートです。
この機能は UART1 のデータ出力指定が禁止のときに有効になりま
す。
UART1 のデータ入力です。
UART1 が入力動作をしている間は , この入力を随時使用しますので ,
意図的に行う以外は , ポートによる出力を停止させておく必要があり
ます。
汎用入出力ポートです。
この機能は UART1 のデータ入力指定が禁止のときに有効になりま
す。
UART1 のクロック入出力です。
この機能は UART1 のクロック出力指定が許可のときに有効になります。
汎用入出力ポートです。
この機能は UART1 のクロック出力指定が禁止のときに有効になりま
す。
9
第 1 章 概要
表 1.4-1 端子機能一覧表 (4 / 7)
端子
番号
端子名
入出力
回路形式 *1
INT6
PPG5
32
E
RX0
P16
PPG6
33
TX0
D
P17
ADTG1
34
IC2
D
P20
ADTG2
35
IC3
P21
10
D
機能説明
外部割込み入力です。
対応する外部割込みを許可している間は , この入力を随時使用してい
ますので意図的に行う以外はポートによる出力を停止させておく必要
があります。
PPG タイマ 5 の出力です。
この機能は PPG タイマ 5 の出力指定が許可のときに有効になります。
C-CAN0 の RX0 入力端子です (MB91F267NA/MB91267NA)。
この入力は随時使用しますので , 意図的に行う以外は , ポートによる
出力を停止させておく必要があります。
汎用入出力ポートです。
この機能は PPG タイマ 5 の出力指定および C-CAN0 の RX0 入力指定 *2
が禁止のときに有効になります。
PPG タイマ 6 の出力です。
この機能は PPG タイマ 6 の出力指定が許可のときに有効になります。
C-CAN0 の TX0 出力端子です (MB91F267NA/MB91267NA)。
この機能は C-CAN0 の TX0 出力指定が許可のときに有効になります。
汎用入出力ポートです。
この機能は PPG タイマ 6 の出力指定および C-CAN0 の TX0 出力指定 *2
が禁止のときに有効になります。
A/D コンバータ 1 の外部トリガ入力です。
A/D の起動要因として選択した場合は , この入力を随時使用しますので ,
意図的に行う以外は , ポートによる出力を停止させておく必要がありま
す。
インプットキャプチャ 2 のトリガ入力です。
インプットキャプチャトリガ入力を設定し , ポートを入力設定した場
合に入力できます。インプットキャプチャ入力として選択した場合は ,
この入力を随時使用しますので意図的に行う以外はポートによる出力
を停止させておく必要があります。
汎用入出力ポートです。
この機能は A/D コンバータの外部トリガ入力指定およびインプット
キャプチャトリガ入力指定が禁止のときに有効になります。
A/D コンバータ 2 の外部トリガ入力です。
A/D の起動要因として選択した場合は , この入力を随時使用しますので ,
意図的に行う以外は , ポートによる出力を停止させておく必要がありま
す。
インプットキャプチャ 3 のトリガ入力です。
インプットキャプチャトリガ入力を設定し , ポートを入力設定した場
合に入力できます。インプットキャプチャ入力として選択した場合は ,
この入力を随時使用しますので意図的に行う以外はポートによる出力
を停止させておく必要があります。
汎用入出力ポートです。
この機能は A/D コンバータの外部トリガ入力指定およびインプット
キャプチャトリガ入力指定が禁止のときに有効になります。
第 1 章 概要
表 1.4-1 端子機能一覧表 (5 / 7)
端子
番号
端子名
入出力
回路形式 *1
PWI0
D
36
P22
DTTI
37
D
CKI
D
P24
IC0
39
D
P25
IC1
40
D
P26
41
P27
D
PPG0
42
PWC タイマ 0 のパルス幅カウンタ入力です。
この機能は PWC タイマ 0 のパルス幅カウンタ入力が許可のときに有
効になります。
汎用入出力ポートです。
この機能は PWC タイマ 0 のパルス幅カウンタ入力指定が禁止のとき
に有効になります。
多機能タイマの波形ジェネレータ出力 RTO0 ∼ RTO5 を制御する入力
信号です。
この機能は DTTI 端子入力が許可のときに有効になります。
汎用入出力ポートです。
この機能は DTTI 端子入力指定が禁止のときに有効になります。
P23
38
機能説明
D
PG1
43
MD2
H, K
44
MD1
H, K
フリーランタイマの外部クロック入力端子です。
フリーランタイマの外部クロック入力として選択した場合は , この入
力を随時使用しますので意図的に行う以外はポートによる出力を停止
させておく必要があります。
汎用入出力ポートです。
フリーランタイマの外部クロック入力指定が禁止のときに有効になり
ます。
インプットキャプチャ 0 のトリガ入力です。
インプットキャプチャ 0 のトリガ入力を設定し , ポートを入力設定し
た場合に入力できます。インプットキャプチャ入力として選択した場
合は , この入力を随時使用しますので意図的に行う以外はポートによ
る出力を停止させておく必要があります。
汎用入出力ポートです。
この機能はインプットキャプチャ 0 のトリガ入力指定が禁止のときに
有効になります。
インプットキャプチャ 1 のトリガ入力です。
インプットキャプチャ 1 のトリガ入力を設定し , ポートを入力設定し
た場合に入力できます。インプットキャプチャ入力として選択した場
合は , この入力を随時使用しますので意図的に行う以外はポートによ
る出力を停止させておく必要があります。
汎用入出力ポートです。
この機能はインプットキャプチャ 1 のトリガ入力指定が禁止のときに
有効になります。
汎用入出力ポートです。
PPG タイマ 0 の出力です。
この機能は PPG タイマ 0 の出力指定が許可のときに有効になります。
汎用入出力ポートです。
この機能は , PPG タイマ 0 の出力指定が禁止のときに有効になりま
す。
モード端子 2 です。
この端子の設定により基本動作モードを設定します。Vcc または Vss
に接続してください。フラッシュメモリ品は回路形式は K です。
モード端子 1 です。
この端子の設定により基本動作モードを設定します。Vcc または Vss
に接続してください。フラッシュメモリ品は回路形式は K です。
11
第 1 章 概要
表 1.4-1 端子機能一覧表 (6 / 7)
端子
番号
端子名
入出力
回路形式 *1
45
MD0
H
46
X0
A
モード端子 0 です。
この端子の設定により基本動作モードを設定します。Vcc または Vss
に接続してください。
クロック ( 発振 ) 出力です。
47
X1
A
クロック ( 発振 ) 入力です。
PPG タイマ 4 の出力です。
この機能は PPG タイマ 4 の出力指定が許可のときに有効になります。
PPG4
49
D
P37
INT7
50
PPG7
E
INIT
I
外部リセット入力です。
J
多機能タイマの波形ジェネレータ出力です。
この端子は , 波形ジェネレータに指定した波形を出力します。波形の
出力は , 波形ジェネレータ出力が許可のときに有効になります。
J
汎用入出力ポートです。
この機能は波形ジェネレータ出力指定が禁止のときに有効になります。
多機能タイマの波形ジェネレータ出力です。
この端子は , 波形ジェネレータに指定した波形を出力します。波形の
出力は , 波形ジェネレータ出力が許可のときに有効になります。
J
汎用入出力ポートです。
この機能は波形ジェネレータ出力指定が禁止のときに有効になります。
多機能タイマの波形ジェネレータ出力です。
この端子は , 波形ジェネレータに指定した波形を出力します。波形の
出力は , 波形ジェネレータ出力が許可のときに有効になります。
J
汎用入出力ポートです。
この機能は波形ジェネレータ出力指定が禁止のときに有効になります。
多機能タイマの波形ジェネレータ出力です。
この端子は , 波形ジェネレータに指定した波形を出力します。波形の
出力は , 波形ジェネレータ出力が許可のときに有効になります。
J
汎用入出力ポートです。
この機能は波形ジェネレータ出力指定が禁止のときに有効になります。
多機能タイマの波形ジェネレータ出力です。
この端子は , 波形ジェネレータに指定した波形を出力します。波形の
出力は , 波形ジェネレータ出力が許可のときに有効になります。
RTO5
52
P35
RTO4
53
P34
RTO3
54
P33
RTO2
55
P32
RTO1
56
P31
12
汎用入出力ポートです。
この機能は , PPG タイマ 4 の出力指定が禁止のときに有効になりま
す。
外部割込み入力です。
対応する外部割込みを許可している間は , この入力を随時使用してい
ますので意図的に行う以外はポートによる出力を停止させておく必要
があります。
PPG タイマ 7 の出力です。
この機能は PPG タイマ 7 の出力指定が許可のときに有効になります。
汎用入出力ポートです。
この機能は , PPG タイマ 7 の出力指定が禁止のときに有効になりま
す。
P36
51
機能説明
汎用入出力ポートです。
この機能は波形ジェネレータ出力指定が禁止のときに有効になります。
第 1 章 概要
表 1.4-1 端子機能一覧表 (7 / 7)
端子
番号
端子名
入出力
回路形式 *1
RTO0
57
J
P30
INT0
58
E
P40
INT1
59
E
P41
INT2
60
E
P42
INT3
61
E
P43
機能説明
多機能タイマの波形ジェネレータ出力です。
この端子は , 波形ジェネレータに指定した波形を出力します。波形の
出力は , 波形ジェネレータ出力が許可のときに有効になります。
汎用入出力ポートです。
この機能は波形ジェネレータ出力指定が禁止のときに有効になります。
外部割込み入力です。
対応する外部割込みを許可している間は , この入力を随時使用してい
ますので意図的に行う以外はポートによる出力を停止させておく必要
があります。
汎用入出力ポートです。
この機能は外部割込み入力指定が禁止のときに有効になります。
外部割込み入力です。
対応する外部割込みを許可している間は , この入力を随時使用してい
ますので意図的に行う以外はポートによる出力を停止させておく必要
があります。
汎用入出力ポートです。
この機能は外部割込み入力指定が禁止のときに有効になります。
外部割込み入力です。
対応する外部割込みを許可している間は , この入力を随時使用してい
ますので意図的に行う以外はポートによる出力を停止させておく必要
があります。
汎用入出力ポートです。
この機能は外部割込み入力指定が禁止のときに有効になります。
外部割込み入力です。
対応する外部割込みを許可している間は , この入力を随時使用してい
ますので意図的に行う以外はポートによる出力を停止させておく必要
があります。
汎用入出力ポートです。
この機能は外部割込み入力指定が禁止のときに有効になります。
*1:入出力回路形式については , 「1.5 入出力回路形式」を参照してください。
*2:C-CAN の設定は , MB91F267NA/MB91267NA の設定です。
13
第 1 章 概要
[ 電源・GND 端子 ]
端子番号
16, 48
17
64
63
62
1
15
2
14
端子名
Vss
Vcc
AVcc
AVRH2
AVRH1
AVss
C
ACC
機能説明
GND 端子です。すべて同電位でお使いください。
電源端子です。すべて同電位でお使いください。
A/D コンバータ用のアナログ電源端子です。
A/D コンバータ 2 用のアナログ基準電源端子です。
A/D コンバータ 1 用のアナログ基準電源端子です。
A/D コンバータ用のアナログ GND 端子です。
内部レギュレータ用のコンデンサ結合端子です。
アナログ用のコンデンサ結合端子です。
第 1 章 概要
1.5
入出力回路形式
表 1.5-1 に , 入出力回路形式を示します。
■ 入出力回路形式
表 1.5-1 入出力回路形式 (1 / 3)
分類
A
回路形式
X1
備考
クロック入力
高速用 ( メインクロック原発振 )
発振帰還抵抗 : 約 1 MΩ
N-ch
P-ch
X0
スタンバイ制御
D
プルアップ制御
R
P-ch
デジタル出力
N-ch
デジタル出力
• CMOS レベル出力
• CMOS レベルヒステリシス入力
スタンバイ制御あり
プルアップ制御あり
プルアップ抵抗値=約 50 kΩ (Typ)
IOL = 4 mA
デジタル入力
スタンバイ制御
E
プルアップ制御
R
P-ch
デジタル出力
N-ch
デジタル出力
• CMOS レベル出力
• CMOS レベルヒステリシス入力
スタンバイ制御なし
プルアップ制御あり
プルアップ抵抗値=約 50 kΩ (Typ)
IOL = 4 mA
デジタル入力
15
第 1 章 概要
表 1.5-1 入出力回路形式 (2 / 3)
分類
G
回路形式
備考
P-ch
デジタル出力
N-ch
デジタル出力
デジタル入力
スタンバイ制御
アナログ入力
H
アナログ /CMOS レベルヒステリシス入
出力端子
CMOS レベル出力
CMOS レベルヒステリシス入力
( スタンバイ制御付き )
アナログ入力
(AICR の対応するビットが "1" のときア
ナログ入力が有効になります )
IOL=4 mA
CMOS レベルヒステリシス入力
スタンバイ制御なし
P-ch
N-ch
デジタル入力
I
CMOS レベルヒステリシス入力
R
P-ch
プルアップ抵抗付き
プルアップ抵抗値=約 50 kΩ (Typ)
N-ch
スタンバイ制御なし
デジタル入力
J
• CMOS レベル出力
• CMOS レベルヒステリシス入力
P-ch
N-ch
デジタル出力
スタンバイ制御あり
デジタル出力
デジタル入力
スタンバイ制御
16
IOL = 12 mA
第 1 章 概要
表 1.5-1 入出力回路形式 (3 / 3)
分類
K
回路形式
備考
フラッシュメモリ品のみ
• CMOS レベル入力
• フラッシュテスト用の高電圧制御あ
り
N-ch
N-ch
N-ch
制御信号
N-ch
モード入力
N-ch
拡散抵抗
17
第 1 章 概要
18
第2章
デバイスの取扱いについて
デバイスを取り扱う際の注意事項について説明し
ます。
2.1 デバイスの取扱いについて
19
第 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 では , 発振安定待ち時間の設定は最小値に
初期化されています ) 。
20
第 2 章 デバイスの取扱いについて
● 電源投入順序について
電源投入は , Vcc → AVcc → AVRH の順に投入し , 切断時は , この逆の順で行ってくだ
さい。
A/D コンバータを使用しない場合でも , AVcc=Vcc レベル , AVss=Vss レベルに接続して
ください。
● 電源投入時の原振入力について
電源投入時は , 必ず発振安定待ち解除されるまでの間クロックを入力してください。
● PLL クロックモード動作中の注意について
本デバイスで , PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ
ク入力が停止した場合 , 本デバイスは PLL 内部の自励発振回路の自走周波数で動作を
継続し続ける場合があります。この動作は保証外の動作です。
● 外部クロックについて
外部クロックを使用する際には , 原則として X0 端子 , また X1 端子には X0 と逆相のク
ロックを同時に供給してください。ただし , ストップモード ( 発振停止モード ) を併用
する場合は , ストップモード時に X1 端子が "H" 出力で停止しますので , 出力どうしの
衝突を避けるために , 外部に 1 kΩ 程度の抵抗を入れるようにしてください。
下図に外部クロック使用方法例について示します。
図 2.1-1 外部クロック使用例
X0
X1
MB91265A シリーズ
● C 端子について
本品種は , レギュレータを内蔵しており , C 端子には , レギュレータ用に 0.1 µF 程度の
パスコンを必ず入れてください。
C
MB91265A シリーズ
0.1µF
Vss
GND
● ACC 端子について
本品種は , A/D コンバータを内蔵しており , ACC 端子と AVss 端子の端子間には , 0.1 µF
程度のコンデンサを必ず入れてください。
ACC
MB91265A シリーズ
0.1µF
AVss
21
第 2 章 デバイスの取扱いについて
● 同期モードのソフトウェアリセットについて
同期モードのソフトウェアリセットを使用するときは , STCR ( スタンバイ制御レジス
タ ) の SRST ビットに "0" を設定する前に , 以下 2 つの条件を必ず満たしてください。
• 割込み許可フラグ (I-Flag) を割込み禁止 (I-Flag=0) に設定する。
• NMI を使用しない。
22
第3章
CPU および制御部
MB91265A シリーズの 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 デバイス状態制御
23
第 3 章 CPU および制御部
3.1
メモリ空間
MB91265A シリーズの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニ
アにアクセスを行います。
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は I/O 用に使用されます。
この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ
スを指定できます。
ダイレクト領域は , アクセスするデータのサイズにより , 以下のように異なります。
24
⇒ バイトデータアクセス
: 000H ∼ 0FFH
⇒ ハーフワードデータアクセス
: 000H ∼ 1FFH
⇒ ワードデータアクセス
: 000H ∼ 3FFH
第 3 章 CPU および制御部
3.2
メモリマップ
MB91265A シリーズのメモリマップを示します。
■ MB91F267A/MB91F267NA/MB91267NA/MB91267A のメモリマップ
図 3.2-1 MB91F267A/MB91F267NA/MB91267NA/MB91267A のメモリマップ
シングルチップモード
0000 0000H
I/O
ダイレクト
アドレッシング領域
I/O
I/O マップ参照
0000 0400H
0001 0000H
アクセス禁止
0003 F000H
内蔵 RAM4K バイト
0004 0000H
アクセス禁止
000E 0000H
内蔵 ROM128K バイト
0010 0000H
アクセス禁止
FFFF FFFFH
25
第 3 章 CPU および制御部
3.3
内部アーキテクチャ
MB91265A シリーズ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用
途に向けた高機能命令を導入した高性能コアです。
■ 特長
• RISC アーキテクチャの採用
基本命令 : 1 命令 1 サイクル
• 32 ビットアーキテクチャ
汎用レジスタ 32 ビット× 16 本
• 4G バイトのリニアなメモリ空間
• 乗算器の搭載
32 ビット× 32 ビット乗算 : 5 サイクル
16 ビット× 16 ビット乗算 : 3 サイクル
• 割込み処理機能の強化
高速応答速度 (6 サイクル )
多重割込みのサポート
レベルマスク機能 (16 レベル )
• I/O 操作用命令の強化
メモリ−メモリ転送命令
ビット処理命令
• 高いコード効率
基本命令語長 : 16 ビット
• 低消費電力
スリープモード , ストップモード
• クロック分周比設定機能
26
第 3 章 CPU および制御部
■ 内部アーキテクチャ
FR ファミリの CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構
造を採用しています。
32 ビット⇔ 16 ビットバスコンバータは 32 ビットバス (F-bus) に接続され , CPU と周辺
リソースとのインタフェースを実現します。ハーバード⇔プリンストンバスコンバー
タは I-bus, D-bus 双方に接続され , CPU とバスコントローラとのインタフェースを実現
します。
図 3.3-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
周辺機器/ポート
( 注意事項 ) 外バス機能は , サポートしておりません。
27
第 3 章 CPU および制御部
■ CPU
CPU は 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの
です。
1 サイクルあたり 1 命令の実行を行うため , 5 段階の命令パイプライン方式を採用して
います。
パイプラインは以下のステージから構成されています。
• 命令フェッチ (IF)
: 命令アドレスを出力し , 命令をフェッチします。
• 命令デコード (ID)
: フェッチした命令をデコードします。レジスタの読出しも
行います。
• 実行 (EX)
: 演算を実行します。
• メモリアクセス (MA) : メモリに対するロードまたはストアのアクセスを行います。
• ライトバック (WB)
: 演算結果 ( またはロードされたメモリデータ ) をレジスタに
書き込みます。
図 3.3-2 命令パイプライン
クロック
命令 1
WB
命令 2
MA
WB
命令 3
EX
MA
WB
命令 4
ID
EX
MA
WB
命令 5
ID
ID
EX
MA
WB
ID
ID
EX
MA
命令 6
WB
命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ
イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。
命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ
リウェイトを伴ったロード・ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイ
クル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い
場合も命令の実行速度が低下します。
■ 32 ビット←→ 16 ビットバスコンバータ
32 ビット幅で高速アクセスされる F-bus と , 16 ビット幅でアクセスされる R-bus との
インタフェースを行い , CPU から内蔵周辺回路へのデータアクセスを実現します。
CPU から 32 ビット幅のアクセスがあった場合 , このバスコンバータがそれを 2 回の 16
ビット幅アクセスに変換して R-bus へのアクセスを行います。内蔵周辺回路の一部に
はアクセス幅に関して制限のあるものがあります。
28
第 3 章 CPU および制御部
■ ハーバード←→プリンストンバスコンバータ
CPU の命令アクセスとデータアクセスの整合をとり , 外部バスとのスムーズなインタ
フェースを実現します。
CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 ,
外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構
造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位を付
け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス
アクセス順位が常に最適化されます。
■ 命令概要
FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理演算
とビット操作およびダイレクトアドレッシング命令をサポートしています。命令セッ
トの一覧は付録を参照してください。各命令は 16 ビット長 ( 一部命令は 32 ビット長 ,
48 ビット長 ) ですので , 優れたメモリ使用効率を持ちます。
命令セットは以下の機能グループに分けることができます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
● 算術演算
標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ
ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付き演算や ,
アドレス計算に便利なフラグ値を変化させない演算も可能です。
さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32
ビットのステップ除算命令を持ちます。
また , レジスタに即値をセットする即値転送命令や , レジスタ間転送命令も備えていま
す。
算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行
います。
● ロードとストア
ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内
の周辺リソース (I/O) への読出しと書込みにも使用されます。
ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま
た , 一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ
スプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付きレ
ジスタ間接のメモリアドレッシングも可能です。
● 分岐
分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと
持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ
いては「3.7 分岐命令」を参照してください。
29
第 3 章 CPU および制御部
● 論理演算とビット操作
論理演算命令は汎用レジスタ間 , または汎用レジスタとメモリ ( および I/O) 間で AND,
OR, EOR の論理演算を行えます。また , ビット操作命令はメモリ ( および I/O) の内容
を直接操作することができます。メモリアドレッシングは一般的なレジスタ間接です。
● ダイレクトアドレッシング
ダイレクトアドレッシング命令は I/O と汎用レジスタ間 , または I/O とメモリ間のアク
セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す
ることにより , 高速 , 高効率なアクセスが行えます。一部の命令についてはレジスタイ
ンクリメント・デクリメント付きレジスタ間接のメモリアドレッシングも可能です。
● その他
PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また ,
高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。
30
第 3 章 CPU および制御部
3.4
プログラミングモデル
基本プログラミングモデルと各レジスタについて説明します。
■ 基本プログラミングモデル
図 3.4-1 基本プログラミングモデル
32 ビット
[ 初期値 ]
R0
XXXX XXXXH
R1
汎用レジスタ
R12
R13
AC
R14
FP
XXXX XXXXH
R15
SP
0000 0000H
プログラムカウンタ
PC
プログラムステータス
PS
テーブルベースレジスタ
TBR
リターンポインタ
RP
システムスタックポインタ
SSP
ユーザスタックポインタ
USP
乗除算結果レジスタ
MDH
MDL
ILM
SCR
CCR
31
第 3 章 CPU および制御部
3.4.1
レジスタ
各レジスタについて説明します。
■ 汎用レジスタ
図 3.4-2 汎用レジスタ
32 ビット
[ 初期値 ]
XXXX XXXXH
R0
R1
R12
R13
R14
R15
AC
FP
SO
XXXX XXXXH
0000 0000H
レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータおよびメ
モリアクセスのポインタとして使用されます。
16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために
一部の命令が強化されています。
R13:仮想アキュムレータ
R14:フレームポインタ
R15:スタックポインタ
リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H (SSP の値 ) とな
ります。
■ PS (Program Status)
プログラムステータスを保持するレジスタで , ILM, SCR と CCR の 3 つのパートに分か
れています。
図中 , 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。
書込みは無効です。
bit 31
20
16
ILM
32
10
SCR
87
0
CCR
第 3 章 CPU および制御部
■ CCR (Condition Code Register)
bit7
bit6
−
−
bit5
S
bit4
I
bit3
N
bit2
Z
bit1
V
bit0
[ 初期値 ]
C
--00XXXXB
[bit5] S: スタックフラグ
R15 として使用されるスタックポインタを指定します。
値
内容
0
SSP が R15 として使用されます。
EIT 発生時 , 自動的に "0" となります。
( ただし , スタックに退避される値はクリアされる前の値です。)
1
USP が R15 として使用されます。
リセットにより "0" にクリアされます。
RETI 命令実行時は "0" にしてください。
[bit4] I: 割込み許可フラグ
ユーザ割込み要求の許可・禁止を制御します。
値
内容
0
ユーザ割込み禁止です。
INT 命令実行時 , "0" にクリアされます。
( ただし , スタック退避させる値はクリアする前の値です。)
1
ユーザ割込み許可です。
ユーザ割込み要求のマスク処理は , ILM の保持する値により制御されま
す。
リセットにより "0" にクリアされます。
[bit3] N: ネガティブフラグ
演算結果を "2" の補数で表現された整数とみなしたときの符号を示します。
値
内容
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
リセットによる初期状態は不定です。
33
第 3 章 CPU および制御部
[bit2] Z: ゼロフラグ
演算結果が "0" であったかどうかを示します。
値
内容
0
演算結果が "0" 以外の値であったことを示します。
1
演算結果が "0" であったことを示します。
リセットによる初期状態は不定です。
[bit1] V: オーバフローフラグ
演算に用いたオペランドを "2" の補数で表現される整数であるとみなし , 演算の結果 ,
オーバフローが生じたかどうかを示します。
値
内容
0
演算の結果 , オーバフローは生じていないことを示します。
1
演算の結果 , オーバフローが生じたことを示します。
リセットによる初期状態は不定です。
[bit0] C: キャリフラグ
演算により , 最上位ビットからのキャリ , またはボローが発生したかどうかを示しま
す。
値
内容
0
キャリもボローも発生していないことを示します。
1
キャリまたはボローが発生したことを示します。
リセットによる初期状態は不定です。
■ SCR (System Condition Code Register)
bit10
bit9
bit8
D1
D0
T
[ 初期値 ]
XX0B
[bit10, bit9] D1, D0: ステップ除算用フラグ
ステップ除算実行時の中間データを保持します。
除算処理の実行途中に , 変更しないでください。
ステップ除算実行途中にほかの処理を行う場合は , PS レジスタの値を退避・復帰する
ことによりステップ除算の再開が保証されます。
リセットによる初期状態は不定です。
DIV0S 命令の実行により , 被除数と除数を参照して設定されます。
DIV0U 命令の実行により , 強制的にクリアされます。
34
第 3 章 CPU および制御部
[bit8] T: ステップトレーストラップフラグ
ステップトレーストラップを有効にするかどうかを指定するフラグです。
値
内容
0
ステップトレーストラップは無効です。
1
ステップトレーストラップは有効です。
このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となります。
リセットにより "0" に初期化されます。
ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用時 ,
ユーザプログラム中で使用することはできません。
■ ILM
bit20
bit19
bit18
bit17
bit16
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) と同じ値に
更新されます。
35
第 3 章 CPU および制御部
2. ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために ORCCR,
STILM, MOV Ri, PS の各命令が実行されると , 以下の動作を行います。
(1) PS レジスタが先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI) を実行します。
(3) EITから復帰後, 上記命令が実行され, PSレジスタが(1)と同じ値に更新されます。
■ PC (Program Counter)
bit31
bit0
[ 初期値 ]
XXXXXXXXH
プログラムカウンタで , 実行している命令のアドレスを示しています。
命令の実行を伴う PC の更新時に , bit0 は "0" に設定されます。bit0 が "1" になる可能性
があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。
ただし , その場合でも bit0 は無効であり , 命令は "2" の倍数のアドレスに置く必要があ
ります。
リセットによる初期値は不定です。
■ TBR (Table Base Register)
bit31
bit0
[ 初期値 ]
000FFC00H
テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス
を保持します。
リセットによる初期値は , 000FFC00H です。
■ RP (Return Pointer)
bit31
bit0
[ 初期値 ]
XXXXXXXXH
リターンポインタで , サブルーチンから復帰するアドレスを保持します。
CALL 命令実行時 , PC の値がこの RP に転送されます。
RET 命令実行時 , RP の内容が PC に転送されます。
リセットによる初期値は不定です。
■ SSP (System Stack Pointer)
bit31
SSP は , システムスタックポインタです。
S フラグが "0" のとき , R15 として機能します。
SSP を明確に指定することも可能です。
36
bit0
[ 初期値 ]
00000000H
第 3 章 CPU および制御部
また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして
も使用されます。
リセットによる初期値は 00000000H です。
■ USP (User Stack Pointer)
bit31
bit0
[ 初期値 ]
XXXXXXXXH
USP は , ユーザスタックポインタです。
S フラグが "1" のとき , R15 として機能します。
USP を明確に指定することも可能です。
リセットによる初期値は不定です。
RETI 命令で使用することはできません。
■ 乗除算レジスタ (Multiply & Divide register)
bit31
bit0
乗除算用のレジスタで , 各々 32 ビット長です。
リセットによる初期値は不定です。
乗算実行時
32 ビット× 32 ビットの乗算のとき , 64 ビット長の演算結果は , 以下の配置で乗除
算結果格納レジスタに格納されます。
MDH : 上位 32 ビット
MDL : 下位 32 ビット
16 ビット× 16 ビットの乗算のときは , 以下のように結果が格納されます。
MDH : 不定
MDL : 結果 32 ビット
除算実行時
計算開始時 , 被除数を MDL に格納します。
DIV0S/DIV0U, DIV1, DIV2, DIV3, DIV4S 命令の実行により除算を計算すると , 結果
が MDL と MDH に格納されます。
MDH : 剰余
MDL : 商
37
第 3 章 CPU および制御部
データ構造
3.5
ビットオーダリング , バイトオーダリングおよびワードアライメントについて説明し
ます。
■ ビットオーダリング
FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。
図 3.5-1 ビットオーダリング
bit
31
29
30
27
28
25
26
23
24
21
22
19
20
17
18
15
16
13
14
11
12
9
10
MSB
7
8
5
6
3
4
1
2
0
LSB
■ バイトオーダリング
FR ファミリでは , バイトオーダリングとして , ビッグエンディアンを採用しています。
図 3.5-2 バイトオーダリング
MSB
LSB
bit31
23
15
7
0
10101010 11001100 11111111 00010001
メモリ
bit
7
38
0
n 番地
10101010
(n + 1) 番地
11001100
(n + 2) 番地
11111111
(n + 3) 番地
00010001
第 3 章 CPU および制御部
■ ワードアライメント
● プログラムアクセス
FR ファミリのプログラムは , "2" の倍数のアドレスに配置する必要があります。
PC の bit0 は , 命令の実行に伴う PC の更新時に , "0" に設定されます。"1" になる可能
性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。
ただし , その場合でも bit0 は無効であり , 命令は "2" の倍数のアドレスに置かなくては
なりません。
奇数アドレスの例外はありません。
● データアクセス
FR ファミリでは , データアクセスを行う際 , その幅により以下のように強制的なアラ
インメントがアドレスに対して施されます。
ワードアクセス
: アドレスは 4 の倍数 ( 最下位 2 ビットは強制的に "00")
ハーフワードアクセス
: アドレスは 2 の倍数 ( 最下位ビットは強制的に "0")
バイトアクセス
: ──
ワードおよびハーフワードデータアクセス時に , 一部のビットが強制的に "0" にされる
のは , 実効アドレスの計算結果に対してです。例えば , @ (R13, Ri) のアドレッシング
モードの場合 , 加算前のレジスタは ( たとえ最下位ビットが "1" であっても ) そのまま
計算に使用され , 加算結果の下位ビットがマスクされます。計算前のレジスタがマスク
されるわけではありません。
[ 例 ] LD @ (R13, R2) , R0
R13
0 0 0 0 2 2 2 2
H
R2
0 0 0 0 0 0 0 3
H
加算結果 0 0 0 0 2 2 2 5 H
↓下位 2 ビット強制マスク
アドレス端子 0 0 0 0 2 2 2 4 H
39
第 3 章 CPU および制御部
3.6
メモリマップ
MB91265A シリーズのメモリマップについて説明します。
■ メモリマップ
アドレス空間は 32 ビットリニアです。
図 3.6-1 メモリマップ
0000 0000H
バイトデータ
0000 0100H
ハーフワード
データ
0000 0200H
ダイレクト
アドレッシング領域
ワードデータ
0000 0400H
000F FC00H
ベクタテーブル
000F FFFFH
FFFF FFFFH
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は I/O 用の領域です。この領域は , ダイレクトアドレッシン
グにより , 命令中で直接オペランドアドレスを指定することができます。
ダイレクトアドレス指定可能なアドレス領域の大きさは , データ長ごとに異なります。
• バイトデータ
(8 ビット ) : 000H ∼ 0FFH
• ハーフワードデータ (16 ビット ) : 000H ∼ 1FFH
• ワードデータ
40
(32 ビット ) : 000H ∼ 3FFH
第 3 章 CPU および制御部
■ ベクタテーブル初期領域
000FFC00H ∼ 000FFFFFH の領域は EIT ベクタテーブル初期領域です。
EIT処理時に使用されるベクタテーブルは, TBRを書き換えることにより任意のアドレ
スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。
41
第 3 章 CPU および制御部
3.7
分岐命令
FR ファミリでは , 分岐命令によって遅延スロット付きの動作と遅延スロットなしの
動作を指定します。
■ 遅延スロット付き動作
● 命令
以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。
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
; 遅延スロット……分岐の前に実行される
…
LABEL: ST
R3,@R4 ; 分岐先
条件分岐命令の場合 , 分岐条件が成立する場合も成立しない場合も遅延スロットに置
かれた命令は実行されます。
遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の
更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで
記述された順番で実行されます。
次に , 具体的な説明をします。
(1) JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は, 遅延スロットの中の命令が Riを更
新しても影響を受けません。
[例]
LDI:32
#Label,
JMP:D
@R0
LDI:8
#0,
…
42
R0
; Label に分岐
R0
; 分岐先アドレスには影響を与えない。
第 3 章 CPU および制御部
(2) RET:D命令が参照する RP は, 遅延スロットの中の命令が RP を更新しても影響を受
けません。
[例]
; これより前に設定された RP の示すアドレスへ分岐
RET:D
MOV
R8,
RP
; リターン動作には影響を与えない。
…
(3) Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。
[例]
ADD
#1,
BC:D
Overflow
R0
; フラグ変化
; 上記の命令の実行結果により分岐
; このフラグ更新は上記分岐命令では参照しない。
AND CCR#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 命令として動作します。
43
第 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: STR3, @R4
; 分岐先
遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな
いとき 1 サイクルとなります。
遅延スロットに適当な命令を入れることができないために NOP を明記した遅延スロッ
ト付き分岐命令に比べ , 命令コード効率を上げることができます。
遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ
うでないときは遅延スロットなしの動作を選択することで , 実行速度と命令コード効
率を両立させることが可能となります。
44
第 3 章 CPU および制御部
3.8
EIT ( 例外・割込み・トラップ )
EIT とは , 現プログラム実行時にイベントの発生により , そのプログラムの実行を中断
しほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt), ト
ラップ (Trap) の総称です。
例外とは実行中のコンテキストに関連して発生する事象です。例外を起こした命令
から再実行します。
割込みとは実行中のコンテキストに無関係に発生する事象です。イベント要因は ,
ハードウェアです。
トラップとは実行中のコンテキストに関連して発生する事象です。システムコール
のようにプログラムで指示するものがあります。トラップを起こした命令の次の命
令から再実行します。
■ 特長
• 割込みに多重割込みをサポート
• 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 )
• トラップ命令 (INT)
• エミュレータ起動用 EIT ( ハードウェア / ソフトウェア )
■ EIT 要因
EIT 要因として , 次のものがあります。
• リセット
• ユーザ割込み ( 内部リソース , 外部割込み )
• NMI
• 遅延割込み
• 未定義命令例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
• コプロセッサ不在トラップ
• コプロセッサエラートラップ
■ EIT からの復帰
EIT から復帰するためには RETI 命令を実行します。
45
第 3 章 CPU および制御部
■ 割込みレベル
割込みレベルは 0 ∼ 31 で , 5 ビットによって管理されます。
各レベルの割り当ては , 以下のとおりです。
表 3.8-1 割込みレベル
レベル
割込み要因
2 進数
10 進数
00000
0
( システム予約 )
…
…
…
…
…
…
00011
3
( システム予約 )
INTE 命令
00100
4
ステップトレーストラップ
00101
5
( システム予約 )
…
…
…
…
…
…
01110
14
( システム予約 )
01111
15
NMI ( ユーザ用 )
10000
16
割込み
10001
17
割込み
…
…
…
…
…
…
11110
30
割込み
11111
31
─
注意事項
ILM の元の値が 16 ∼ 31 のとき ,
この範囲の値をプログラムにより
ILM に設定できません。
─
ILM 設定時 , ユーザ割込み禁止
ICR 設定時 , 割込み禁止
操作が可能なのは , 16 ∼ 31 のレベルです。
未定義命令例外, コプロセッサ不在トラップ, コプロセッサエラートラップ, そしてINT
命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。
46
第 3 章 CPU および制御部
■ I フラグ
割込みの許可・禁止を指定するフラグです。PS レジスタの CCR の bit4 として設けら
れています。
値
内容
0
割込み禁止です。
INT 命令実行時 "0" にクリアされます。
( ただし , スタック退避させる値はクリアする前の値です。)
1
割込み許可です。
割込み要求のマスク処理は , ILM の保持する値により制御されます。
■ ILM
割込みレベルマスク値を保持する PS レジスタ (bit20 ∼ bit16) です。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値
として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指
定した値+ 16) という値が転送されます。
元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。設定するには STILM
命令を使用します。
■ 割込み・NMI に対するレベルマスク
NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.8-1 を
参照 ) が ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立し
たときはマスクされ , 要求は受理されません。
要因の持つ割込みレベル ≧ レベルマスク値
47
第 3 章 CPU および制御部
■ ICR (Interrupt Control Register)
割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを設
定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O 空間
にマッピングされており , CPU からはバスを通してアクセスされます。
● ICR ビット構成
bit7
−
−
bit6
−
−
bit5
bit4
bit3
bit2
bit1
bit0
−
−
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
初期値
---11111B
[bit4] 本ビットは , 常に "1" です。
[bit3 ∼ bit0] ICR3 ∼ ICR0
対応する割込み要因の割込みレベルの下位 4 ビットです。読出しおよび書込みが可能
です。
bit4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定できます。
● ICR マッピング
表 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 初期値:000F FC00H
( 注意事項 ) 「第 5 章 割込みコントローラ」を参照してください。
48
第 3 章 CPU および制御部
■ SSP (System Stack Pointer)
bit31
bit0
[ 初期値 ]
00000000H
SSP が , EIT の受理および復帰動作時のデータ退避・復帰用スタックを示すポインタと
して使用されます。
SSP は , EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時
に 8 加算されます。
リセットによる初期値は 00000000H です。
SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。
■ 割込みスタック
SSP により示される領域で , PC および PS の値が退避・復帰されます。割込み後は SSP
の示すアドレスに PC, (SSP + 4) のアドレスに PS が格納されています。
図 3.8-1 割込みスタック
[例]
[ 割込み前 ]
SSP
80000000H
[ 割込み後 ]
SSP
7FFFFFF8H
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
80000000H
7FFFFFFCH
7FFFFFF8H
PS
PC
■ TBR (Table Base Register)
bit31
bit0
[ 初期値 ]
000FFC00H
EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ
スとなります。
リセットによる初期値は 000FFC00H です。
49
第 3 章 CPU および制御部
■ 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 デフォルト
のアドレス
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
外部割込み 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/C-CAN
ウェイクアップ *2
22
16
ICR06
3A4H
000FFFA4H
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
割込み要因
50
10 進
16 進
リセット *1
0
モードベクタ *1
第 3 章 CPU および制御部
表 3.8-3 ベクタテーブル (2 / 3)
割込み要因
割込み番号
割込みレベル
オフセット
TBR デフォルト
のアドレス
10 進
16 進
リロードタイマ 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
UART1 ( 受信完了 )
33
21
ICR17
378H
000FFF78H
UART1 ( 送信完了 )
34
22
ICR18
374H
000FFF74H
C-CAN0*2
35
23
ICR19
370H
000FFF70H
システム予約
36
24
ICR20
36CH
000FFF6CH
積和
PPG0/PPG1
37
25
ICR21
368H
000FFF68H
38
26
ICR22
364H
000FFF64H
PPG2/PPG3
39
27
ICR23
360H
000FFF60H
PPG4/PPG5/PPG6/PPG7
40
28
ICR24
35CH
000FFF5CH
システム予約
41
29
ICR25
358H
000FFF58H
波形 ( アンダフロー ) 0/1/2
42
2A
ICR26
354H
000FFF54H
フリーランタイマ 1
( コンペアクリア )
43
2B
ICR27
350H
000FFF50H
フリーランタイマ 1
(0 検出 )
44
2C
ICR28
34CH
000FFF4CH
フリーランタイマ 2
( コンペアクリア )
45
2D
ICR29
348H
000FFF48H
フリーランタイマ 2
(0 検出 )
46
2E
ICR30
344H
000FFF44H
47
2F
ICR31
340H
000FFF40H
48
30
ICR32
33CH
000FFF3CH
フリーランタイマ 0
(0 検出 )
49
31
ICR33
338H
000FFF38H
システム予約
50
32
ICR34
334H
000FFF34H
A/D コンバータ 1
51
33
ICR35
330H
000FFF30H
A/D コンバータ 2
52
34
ICR36
32CH
000FFF2CH
PWC0 ( 測定完了 )
53
35
ICR37
328H
000FFF28H
システム予約
54
36
ICR38
324H
000FFF24H
PWC0 ( オーバフロー )
55
37
ICR39
320H
000FFF20H
システム予約
56
38
ICR40
31CH
000FFF1CH
ICU 0 ( 取込み )
57
39
ICR41
318H
000FFF18H
タイムベースタイマ
オーバフロー
フリーランタイマ 0
( コンペアクリア )
51
第 3 章 CPU および制御部
表 3.8-3 ベクタテーブル (3 / 3)
割込み要因
割込み番号
割込みレベル
オフセット
TBR デフォルト
のアドレス
10 進
16 進
ICU 1 ( 取込み )
58
3A
ICR42
314H
000FFF14H
ICU2/ICU3 ( 取込み )
59
3B
ICR43
310H
000FFF10H
OCU0/OCU1 ( 一致 )
60
3C
ICR44
30CH
000FFF0CH
OCU2/OCU3 ( 一致 )
61
3D
ICR45
308H
000FFF08H
OCU4/OCU5 ( 一致 )
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
50
∼
FF
2BCH
000FFEBCH
INT 命令で使用
80
∼
255
∼
000H
∼
000FFC00H
−
*1 : TBRの値を変更しても,リセットベクタとモードベクタは常に固定アドレス000FFFFCH , 000FFFF8H
が使用されます。
*2 : C-CAN の割込みは , MB91F267NA/MB91267NA に搭載されている機能です。
52
第 3 章 CPU および制御部
■ 多重 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
未定義命令例外
取消し
INTE 命令
ILM = 4
ほかの要因は破棄されます。
4
INT 命令
I フラグ= 0
5
コプロセッサ不在トラップ
コプロセッサエラートラップ
6
ユーザ割込み
ILM =受理した要因のレベル
7
NMI ( ユーザ用 )
ILM = 15
8
NMI ( エミュレータ用 )
ILM = 4
9
ステップトレーストラップ
ILM = 4
3
―
53
第 3 章 CPU および制御部
EIT 要因を受理した後のほかの要因に対してマスクの処理を考慮すると , 同時に発生し
た EIT 要因の各ハンドラの実行順序は , 表 3.8-5 のようになります。
表 3.8-5 EIT ハンドラの実行順序
ハンドラの実行順序
要因
1
リセット *
2
未定義命令例外
3
INTE 命令 *
4
ステップトレーストラップ
5
NMI ( ユーザ用 )
6
INT 命令
7
ユーザ割込み
8
コプロセッサ不在トラップ , コプロセッサエラートラップ
*: ほかの要因は破棄されます。
[例]
図 3.8-2 多重 EIT 処理
メインルーチン
NMI のハンドラ
INT 命令の
ハンドラ
優先度
( 高 ) NMI 発生
( 低 ) INT 命令実行
①最初に実行
②次に実行
54
第 3 章 CPU および制御部
■ EIT の動作
以下の説明で , 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示します。
また , 「次の命令のアドレス」とは , EIT を検出した命令により , 以下を意味します。
• LDI:32 のとき :PC + 6
• LDI:20, COPOP, COPLD, COPST, COPSV のとき : PC + 4
• その他の命令のとき : PC + 2
● ユーザ割込み・NMI の動作
ユーザ割込みまたはユーザ用 NMI の割込み要求が発生すると , 以下の順序で要求受理
の可否が判定されます。
[ 割込み要求受理の可否判定 ]
① 同時に発生した要求の割込みレベルを比較し , 最も強いレベル ( 最も小さい数値 )
を保持するものが選択されます。
比較に使用されるレベルは, マスク可能割込みについては対応するICRの保持す
る値が , NMI についてはあらかじめ定められた定数が使用されます。
② 同じレベルを持つ割込み要求が複数発生しているときは , 最も若い割込み番号
を持つ割込み要求が選択されます。
③ 割込みレベル≧レベルマスク値のとき , 割込み要求はマスクされ受理されませ
ん。
割込みレベル<レベルマスク値のとき , ④へ。
④ 選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割
込み要求はマスクされ , 受理されません。I フラグが "1" ならば⑤へ。
選択された割込み要求が NMI であるとき , I フラグの値にかかわらず⑤へ。
⑤ 上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。
EIT 要求検出時にユーザ割込み・NMI の要求が受理されると , 受理された割込み要求に
対応した割込み番号を使用して , CPU は以下のように動作します。
なお , 下記において [ 動作 ] における ( ) はレジスタの指すアドレスを表します。
[ 動作 ]
① SSP − 4
→ SSP
② PS
→ (SSP)
③ SSP − 4
→ SSP
④ 次の命令のアドレス
→ (SSP)
⑤ 受理した要求の割込みレベル → ILM
⑥ "0"
→ S フラグ
⑦ (TBR +受理した割込み要求のベクタオフセット ) → PC
割込みシーケンス終了後 , ハンドラの先頭の命令を実行する前に , 新たな EIT の検出を
行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス
に遷移します。
55
第 3 章 CPU および制御部
● INT 命令の動作
INT #u8
u8 で示されるベクタの割込みハンドラへ分岐します。
[ 動作 ]
① SSP − 4
→ SSP
② PS
→ (SSP)
③ SSP − 4
→ SSP
④ PC + 2
→ (SSP)
⑤ "0"
→ I フラグ
⑥ "0"
→ S フラグ
⑦ (TBR + 3FCH − 4 × u8) → PC
● INTE 命令の動作
INTE
ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。
[ 動作 ]
① SSP − 4
→ SSP
② PS
→ (SSP)
③ SSP − 4
→ SSP
④ PC + 2
→ (SSP)
⑤ "00100B"
→ ILM
⑥ "0"
→ S フラグ
⑦ (TBR + 3D8H) → PC
INTE 命令 , およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用
しないでください。
また , ステップ実行中は INTE による EIT の発生はありません。
● ステップトレーストラップの動作
PS 中の SCR における T フラグをセットしてステップトレースの機能を許可にしてお
くと , 1 命令実行ごとにトラップが発生し , ブレークします。
[ ステップトレーストラップ検出の条件 ]
① T フラグ= 1
② 遅延分岐命令ではないとき。
③ INTE命令, ステップトレーストラップの処理ルーチン以外を実行中であるとき。
④ 以上の条件が成立すると , 命令動作の切れ目でブレークします。
56
第 3 章 CPU および制御部
[ 動作 ]
① SSP − 4
→ SSP
② PS
→ (SSP)
③ SSP − 4
→ SSP
④ 次の命令のアドレス → (SSP)
⑤ "00100B"
→ ILM
⑥ "0"
→ S フラグ
⑦ (TBR + 3CCH)
→ PC
T フラグをセットしてステップトレーストラップを許可にしたとき , ユーザ用の NMI
とユーザ割込みは禁止状態となります。
また , INTE 命令による EIT は発生しなくなります。
FR ファミリでは , T フラグをセットした次の命令からトラップが発生します。
● 未定義命令例外の動作
命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま
す。
[ 未定義命令例外の検出条件 ]
① 命令のデコード時に , 未定義命令であることを検出。
② 遅延スロット外に置かれている ( 遅延分岐命令の直後ではないこと ) 。
③ 以上の条件が成立すると , 未定義命令例外が発生し , ブレークします。
[ 動作 ]
① SSP − 4
→ SSP
② PS
→ (SSP)
③ SSP − 4
→ SSP
④ PC
→ (SSP)
⑤ "0"
→ S フラグ
⑥ (TBR + 3C4H) → PC
PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。
● コプロセッサ不在トラップ
実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ
サ不在トラップが発生します。
[ 動作 ]
① SSP − 4
→ SSP
② PS
→ (SSP)
③ SSP − 4
→ SSP
④ 次の命令のアドレス → (SSP)
⑤ "0"
→ S フラグ
⑥ (TBR + 3E0H)
→ PC
57
第 3 章 CPU および制御部
● コプロセッサエラートラップ
コプロセッサを使用しているときにエラーが発生した場合 , 次にそのコプロセッサを
操作するコプロセッサ命令を実行したとき , コプロセッサエラートラップが発生しま
す。
[ 動作 ]
① SSP − 4
→ SSP
② PS
→ (SSP)
③ SSP − 4
→ SSP
④ 次の命令のアドレス → (SSP)
⑤ "0"
→ S フラグ
⑥ (TBR + 3DCH)
→ PC
● RETI 命令の動作
RETI 命令は , EIT 処理ルーチンから復帰する命令です。
[ 動作 ]
① (R15)
→ PC
② R15 + 4 → R15
③ (R15)
→ PS
④ R15 + 4 → R15
RETI 命令は , S フラグが "0" の状態で実行する必要があります。
■ 注意事項
● 遅延スロット
分岐命令の遅延スロットには , EIT に関して制約があります。
分岐命令については「3.7 分岐命令」を参照してください。
58
第 3 章 CPU および制御部
3.9
動作モード
MB91265A シリーズの動作モードには , バスモードとアクセスモードがあります。
ただし , シングルチップモードのみサポートします。
■ 動作モード
● バスモード
バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを指し ,
モード設定端子 (MD2, MD1, MD0) で指定します。
<注意事項>
本品種では , 外バスモードをサポートしておりません。
■ バスモード
バスモードの詳細は , 「3.2 メモリマップ」を参照してください。
● シングルチップモード
内部 I/O, 内蔵 RAM, 内蔵 ROM が有効で , それ以外の領域へのアクセスは無効である
モードです。外部端子は , 周辺リソースまたは汎用ポートとして機能します。バス端子
としては機能しません。
<注意事項>
本品種では , 外バスモードをサポートしておりません。
59
第 3 章 CPU および制御部
■ モード設定
動作モードの設定は , モード端子 (MD2, MD1, MD0) とモードデータによって行います。
● モード端子
MD2, MD1, MD0 の 3 端子で , モードベクタ , リセットベクタフェッチに関する指定を
行います。
表に示した設定以外は禁止です。
モード端子
MD2, MD1, MD0
モード名
リセットベクタ
アクセス領域
0 0 0B
内 ROM モードベクタ
内部
<注意事項>
MD2, MD1, MD0: 000B 以外の設定は禁止です。
● モードデータ
モードベクタフェッチ (「3.10 リセット ( デバイス初期化 )」の「3.10.3 リセットシー
ケンス」を参照 ) によって内部のモードレジスタ (MODR) に書き込むデータをモード
データとよびます。
モードレジスタに設定が行われた後 , 本レジスタの設定に従った動作モードで動作し
ます。
モードデータは , すべてのリセット要因で設定されます。また , ユーザプログラムから
は設定することはできません。
<モードデータ詳細説明>
bit31
bit30
bit29
bit28
bit27
bit26
bit25
bit24
0
0
0
0
0
1
1
1
動作モード設定ビット
[bit31 ∼ bit24] 予約ビット
必ず "00000111B" を設定してください。"00000111B" 以外の値を設定したときの動作は
保証できません。
60
第 3 章 CPU および制御部
<注意事項>
モードベクタに設定するモードデータは , 000FFFF8H にバイトデータとして配置する必
要があります。
MB91265Aシリーズは, バイトエンディアンとしてビッグエンディアンを採用しています
ので , 下図のように , bit31 ∼ bit24 の最上位バイトに配置してください。
bit31
24 23
16 15
8 7
0
誤
000FFFF8H
XXXXXXXX
XXXXXXXX
XXXXXXXX
モードデータ
正
000FFFF8H
モードデータ
XXXXXXXX
XXXXXXXX
XXXXXXXX
000FFFFCH
リセットベクタ
61
第 3 章 CPU および制御部
3.10
リセット ( デバイス初期化 )
リセット動作について説明します。
■ 概要
リセット要因が発生すると , デバイスはすべてのプログラムおよびハードウェア動作
を停止し , 状態を初期化します。この状態をリセット状態とよびます。
リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェア
動作を開始します。このリセット状態から動作開始に至る一連の動作をリセットシー
ケンスとよびます。
62
第 3 章 CPU および制御部
3.10.1
リセットレベル
本品種のリセット動作は , 2 種類のレベルに分けられ , それぞれ発生要因および初期
化の内容が異なります。以下 , 各リセットレベルについて説明します。
■ 設定初期化リセット (INIT)
すべての設定を初期化する最強レベルのリセットを設定初期化リセット (INIT) とよび
ます。
設定初期化リセット (INIT) により初期化される主な内容は以下のとおりです。
[ 設定初期化リセット (INIT) による初期化箇所 ]
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
• 内部クロックに関するすべての設定 ( クロックソース選択 , PLL 制御 , 分周比設定 )
• 外部バスの CS0 領域に関するすべての設定
• その他端子状態に関するすべての設定
• 動作初期化リセット (RST) で初期化されるすべての箇所
詳細はそれぞれの機能の解説を参照してください。
なお , 電源投入後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。
■ 動作初期化リセット (RST)
プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ
びます。
設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。
動作初期化リセット (RST) により初期化される主な内容は以下のとおりです。
[ 動作初期化リセット (RST) による初期化箇所 ]
• プログラム動作
• CPU および内部バス
• 周辺回路のレジスタ設定値
• I/O ポート設定
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
詳細はそれぞれの機能の解説を参照してください。
63
第 3 章 CPU および制御部
3.10.2
リセット要因
各リセット発生要因と発生するリセットレベルについて説明します。
■ リセット要因
過去に発生したリセット要因は , RSRR ( リセット要因レジスタ ) を読み出すことによ
り知ることが可能です ( 各説明のレジスタ , フラグの詳細は , 「3.11 クロック生成制
御 」の「3.11.6 クロック生成制御部のブロックダイヤグラム 」, 「3.11.7 クロック生
成制御部のレジスタ詳細説明 」を参照してください )。
■ INIT 端子入力 ( 設定初期化リセット端子 )
外部端子の INIT 端子は , 設定初期化リセット端子として機能します。
本端子へ "L" レベル入力を行っている間 , 設定初期化リセット (INIT) 要求が発生しま
す。
本端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除さ
れます。
本端子要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセット要因レ
ジスタ ) 中の bit15:INIT がセットされます。
本端子要求による設定初期化リセット (INIT) は , すべてのリセット要因中で最強のも
のであり , すべての入力・動作・状態よりも優先されます。
なお, 電源投入直後は必ずINIT端子にて設定初期化リセット (INIT) をかけてください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L" レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子に
よる INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
• 発生要因
: 外部 INIT 端子への "L" レベル入力
• 解除要因
: 外部 INIT 端子への "H" レベル入力
• 発生レベル : 設定初期化リセット (INIT)
• 対応フラグ : bit15:INIT
■ STCR:SRST ビット書込み ( ソフトウェアリセット )
STCR ( スタンバイ制御レジスタ ) 中の bit4:SRST に "0" が書き込まれると , ソフトウェ
アリセット要求が発生します。
ソフトウェアリセット要求は , 動作初期化リセット (RST) 要求です。
要求が受け付けられ動作初期化リセット (RST) が発生すると , ソフトウェアリセット
要求は解除されます。
ソフトウェアリセット要求による動作初期化リセット (RST) が発生した場合 , RSRR
( リセット要因レジスタ ) 中の bit11:SRST がセットされます。
ソフトウェアリセット要求による動作初期化リセット (RST) は , TBCR ( タイムベース
カウンタ制御レジスタ ) 中の bit9:SYNCR がセットされている場合 ( 同期リセットモー
ド ) , すべてのバスアクセスが停止した後でないと発生しません。
このため , バスの使用状況によっては動作初期化リセット (RST) が発生するまでに長
時間を要する場合があります。
64
第 3 章 CPU および制御部
• 発生要因
: STCR ( スタンバイ制御レジスタ ) 中の bit4:SRST への "0" 書込み
• 解除要因
: 動作初期化リセット (RST) の発生
• 発生レベル : 動作初期化リセット (RST)
• 対応フラグ : bit11:SRST
■ ウォッチドッグリセット
RSRR ( ウォッチドッグタイマ制御レジスタ ) に対して書込みを行うと , ウォッチドッ
グタイマが起動します。その後 , RSRR 中の bit9, bit8:WT1, WT0 ビットにて設定した周
期内に CTBR ( タイムベースカウンタクリアレジスタ ) への A5H/5AH 書込みが行われ
ないと , ウォッチドッグリセット要求が発生します。
ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付
けられ, 設定初期化リセット (INIT) が発生するか, または動作初期化リセット (RST) が
発生すると , ウォッチドッグリセット要求は解除されます。
ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合, RSRR
( リセット要因レジスタ ) 中の bit13:WDOG がセットされます。
なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合
では , 発振安定待ち時間の設定は初期化されません。また , メインランおよびサブラン
中にメイン発振を停止しない場合は , 発振安定待ち時間は不要です。
• 発生要因
: ウォッチドッグタイマの設定周期経過
• 解除要因
: 設定初期化リセット (INIT) または動作初期化リセット (RST) の発生
• 発生レベル : 設定初期化リセット (INIT)
• 対応フラグ : bit13:WDOG
65
第 3 章 CPU および制御部
3.10.3
リセットシーケンス
リセット要因の消失により , デバイスはリセットシーケンスの実行を開始します。
リセットシーケンスは , リセットレベルによりそれぞれ動作内容が異なります。
各リセットレベルにおけるリセットシーケンスの動作内容について説明します。
■ 設定初期化リセット (INIT) 解除シーケンス
設定初期化リセット (INIT) 要求が解除されると , デバイスは以下の動作を順に実行し
ます。
ただし , メインランおよびサブラン中にメイン発振を停止しない場合のウォッチドッ
グリセットでは , (2) の発振安定待ち時間を確保しません。
(1) 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移
(2) 発振安定待ち時間 (STCR の bit3, bit2:OS1, OS0 にて設定 ) の間 , 動作初期化リセッ
ト (RST) 状態を保持 , 内部クロック停止
(3) 動作初期化リセット (RST) 状態 , 内部クロック動作開始
(4) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
(5) 000FFFF8H 番地より , モードベクタの読出し
(6) MODR ( モードレジスタ ) へ , モードベクタの書込み
(7) 000FFFFCH 番地より , リセットベクタの読出し
(8) PC ( プログラムカウンタ ) へ , リセットベクタの書込み
(9) PC ( プログラムカウンタ ) の示す番地より , プログラム動作開始
■ 動作初期化リセット (RST) 解除シーケンス
本リセットは , ソフトウェアリセットで発生します。
動作初期化リセット (RST) 要求が解除されると , デバイスは以下の動作を順に実行し
ます。
(1) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
(2) 000FFFF8H 番地より , モードベクタの読出し
(3) MODR ( モードレジスタ ) へ , モードベクタの書込み
(4) 000FFFFCH 番地より , リセットベクタの読出し
(5) PC ( プログラムカウンタ ) へ , リセットベクタの書込み
(6) PC ( プログラムカウンタ ) の示す番地より , プログラム動作開始
66
第 3 章 CPU および制御部
3.10.4
発振安定待ち時間
デバイスの原発振が停止していたか , またはその可能性がある状態から復帰したと
き , 自動的に発振安定待ち状態に遷移します。本機能により発振開始後の安定して
いない発振器出力を使用しないようにします。
発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベー
スカウンタのみが動作して , STCR ( スタンバイ制御レジスタ ) にて設定された安定
待ち時間の経過を待ちます。
ここでは , 発振安定待ち動作の詳細について説明します。
■ 発振安定待ち発生要因
要因を以下に示します。
(1) 設定初期化リセット (INIT) の解除時
各種要因による設定初期化リセット (INIT) が解除された直後に , 発振安定待ち状態へ
遷移します。
発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。
なお, INIT端子による初期化時の発振安定待ち時間は最小値に設定されるため, 発振安
定待ちは行いません。INIT 端子の入力幅にて発振安定待ち時間を確保してください。
(2) ストップモードからの復帰時
ストップモードが解除された直後に , 発振安定待ち状態へ遷移します。
ただし, 設定初期化リセット (INIT) 要求により解除された場合は, 設定初期化リセット
(INIT) 状態に遷移し , 設定初期化リセット (INIT) が解除された後, 発振安定待ち状態へ
遷移します。
発振安定待ち時間経過後は , ストップモードが解除された要因に対応した状態へと遷
移します。
• 有効な外部割込み要求入力 (NMI 含む ) の発生による復帰時
→通常動作状態へ遷移します。
• 設定初期化リセット (INIT) 要求による復帰時
→設定初期化リセット (INIT) 状態へ遷移します。
(3) PLL 選択時の異常状態からの復帰時
PLL をソースクロックとして動作しているときに , PLL 制御に何らかの異常 * が発生し
た場合 , PLL ロックタイムの確保のために , 自動的に発振安定待ち時間に遷移します。
発振安定待ち時間経過後は , 通常動作状態へ遷移します。
*: PLL 使用中の逓倍率変更や , PLL 動作許可ビット化けの発生など
67
第 3 章 CPU および制御部
■ 発振安定待ち時間の選択
発振安定待ち時間は , 内蔵タイムベースカウンタを用いてカウントされます。
発振安定待ち要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカウン
タはいったん初期化された後 , 発振安定待ち時間の計測を開始します。
STCR ( スタンバイ制御レジスタ ) の bit3, bit2:OS1, OS0 ビットにより , 発振安定待ち時
間を 4 種類のうちから選択して設定することができます。
いったん選択した設定は , 外部 INIT 端子による設定初期化リセット (INIT) 以外では初
期化されません。それ以外の設定初期化リセット (INIT) や動作初期化リセット (RST)
では , リセット発生以前に設定した発振安定待ち時間が保持されます。
発振安定待ち時間として選択可能な4種類の設定は, それぞれ以下の用途を想定してあ
ります。
• OS1, OS0 = 00B : 発振安定待ち時間なし
( ストップモードで PLL も発振器を停止させない場合 )
• OS1, OS0 = 01B : PLL ロック待ち時間
(外部クロック入力や, ストップモードで発振器を停止させない場合)
• OS1, OS0 = 10B : 発振安定待ち時間 ( 中 )
( セラミック振動子などの安定が速い発振子を使用する場合 )
• OS1, OS0 = 11B : 発振安定待ち時間 ( 長 )
( 一般の水晶発振子などを使用する場合 )
なお, 電源投入直後は必ずINIT端子にて設定初期化リセット (INIT) をかけてください。
また , 下記状態では , 発振回路の発振安定待ち時間を確保するため , INIT 端子への "L"
レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子によ
る INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
• 電源投入直後の INIT 端子入力
• ストップモードで発振停止中の INIT 端子入力
• クロックソースとしてサブクロック選択中 , かつメイン発振停止状態での INIT 端子
入力
したがって, 安定発振を行うためには, INIT 端子入力はメインクロックの発振安定待ち
時間を満たす期間 , "L" レベルを入力してください。
68
第 3 章 CPU および制御部
3.10.5
リセット動作モード
動作初期化リセット (RST) には , 通常 ( 非同期 ) リセットモードと同期リセットモー
ドの 2 つのモードがあり , TBCR ( タイムベースカウンタ制御レジスタ ) 中の
bit9:SYNCR によってどちらのモードで動作するかを設定します。
本モード設定は , 設定初期化リセット (INIT) のみで初期化されます。
設定初期化リセット (INIT) は , 常に非同期でリセット動作を行います。
ここでは , 各モード動作について説明します。
■ 通常リセット動作
動作初期化リセット (RST) 要求が発生した際に , 即座に動作初期化リセット (RST) 状
態への遷移を行う動作を通常リセット動作とよびます。
本モードにおいては , リセット (RST) 要求が受け付けられると , 内部バスアクセスの動
作状態にかかわらず , 即時にリセット (RST) 状態へ遷移します。
本モードでは , 各状態へ遷移する時点で行われていたバスアクセスについては , その結
果を保証できません。しかし , 動作初期化リセット (RST) 要求を確実に受け付けること
が可能です。
TBCR ( タイムベースカウンタ制御レジスタ ) 中の bit9:SYNCR が "0" のとき , 通常リセッ
トモードとなります。
設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードとなります。
■ 同期リセット動作
動作初期化リセット (RST) 要求が発生した際に , すべてのバスアクセスが停止した後 ,
動作初期化リセット (RST) 状態への遷移を行う動作を , 同期リセット動作とよびます。
本モードにおいては , リセット (RST) 要求が受け付けられても , 内部バスアクセスが行
われている間は , リセット (RST) 状態への遷移は行いません。
上記要求が受け付けられると , それにより内部バスに対してスリープ要求が発行され
ます。各バスが動作を切り上げてスリープ状態に移行すると , 動作初期化リセット
(RST) 状態へ遷移します。
本モードでは , 各状態へ遷移する時点ではすべてのバスアクセスが停止しているため ,
すべてのバスアクセスの結果を保証できます。
しかし , バスアクセスが何らかの理由により停止しない場合 , その間各要求を受け付け
ることができなくなります。このような場合でも , 設定初期化リセット (INIT) は即座
に有効となります。
バスアクセスが停止しない要因は以下のとおりです。
• 外部拡張バスインタフェースに対し RDY ( レディ要求 ) が入力され続け , バスウェ
イトが有効となっている場合。
( 注意事項 ) DMA コントローラについては , 各要求の受付けにより転送停止を行いま
すので , 各状態への遷移を遅延させることはありません。
TBCR ( タイムベースカウンタ制御レジスタ ) 中の bit9:SYNCR が "1" のとき , 同期リセッ
トモードとなります。
設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードに戻ります。
同期モードのソフトウェアリセットの使用に関してはTBCR (タイムベースカウンタ制
御レジスタ ) の bit9:SYNCR ビットの制限事項を参照してください。
69
第 3 章 CPU および制御部
3.11
クロック生成制御
クロック生成制御について説明します。
■ 概要
内部動作クロックは以下のようにして生成されます。
• ベースクロックの生成 : ソースクロックを 2 分周または PLL 発振させ , 基本クロッ
クを生成します。
• 各内部クロックの生成 : ベースクロックを分周し , 各部に供給する動作クロックを
生成します。
以下 , 各クロック生成とその制御について解説します。
各レジスタ , フラグの詳細な説明は ,「3.11.6 クロック生成制御部のブロックダイヤグ
ラム」, 「3.11.7 クロック生成制御部のレジスタ詳細説明」を参照してください。
70
第 3 章 CPU および制御部
3.11.1
ソースクロックの選択
ソースクロックの選択について解説します。
■ ソースクロックの選択
外部発振端子である X0/X1 端子入力に発振子を接続し , 内蔵発振回路にて生成した原
発振がソースクロックとなります。
外部バスクロックを含むすべてのクロック供給源は , 本品種自身となります。
外部発振端子および内蔵発振回路は , メインクロックを動作中に任意に切り換えて使
用することが可能です。
• メインクロック : X0/X1 端子入力から生成し , 高速クロックとして使用することを
想定したクロックです。
内部ベースクロックは , 以下のソースクロックのうちから選択して生成します。
• メインクロックを 2 分周したもの
• メインクロックを PLL で逓倍したもの
φはソースクロックを 2 分周または , PLL 発振させた基本クロックを指します。したがっ
て , システムベースクロックは , 上記の内部ベースクロック発生のところで生成される
クロックです。ソースクロックの選択制御は , CLKR ( クロックソース制御レジスタ )
の設定によって行います。
71
第 3 章 CPU および制御部
3.11.2
PLL 制御
メインクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍
率設定を制御することが可能です。
各制御は , CLKR ( クロックソース制御レジスタ ) の設定によって行います。
ここでは , 各制御内容について説明します。
■ PLL 動作許可
メイン PLL 発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) の
bit10:PLL1EN の設定によって行います。
PLL1EN ビットは , 設定初期化リセット (INIT) 後は "0" に初期化され , メイン PLL の発
振動作は停止しています。停止中は , ソースクロックとしてメイン PLL 出力を選択す
ることはできません。
プログラム動作を開始したら , まずクロックソースとして使用するメイン PLL の逓倍
率を設定しかつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切
り換えてください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使
用することを推奨致します。
ソースクロックとしてメイン PLL 出力を選択している間は , PLL は動作停止させるこ
とはできません。
レジスタへの書込みは無効となります。ストップモードに移行する際などで PLL を停
止させたい場合は, いったんソースクロックをメインクロックの2分周したものに選択
し直した後 , PLL を停止させてください。
なお , STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットにより , ストップモード
中の発振が停止するように設定してある場合 , PLL はストップモード遷移時に自動的
に停止しますので , 動作停止を改めて設定する必要はありません。その後 , ストップ
モードから復帰する際 , PLL は自動的に発振動作を開始します。ストップモード中の
発振が停止しないように設定してある場合は , PLL は自動では停止しません。この場
合は , 必要であればストップモード移行前にあらかじめ動作停止を設定してください。
■ PLL 逓倍率
メイン PLL の逓倍率は , CLKR ( クロックソース制御レジスタ ) の bit14 ∼ bit12:PLL1S2,
PLL1S1, PLL1S0 ビットによって設定します。
設定初期化リセット (INIT) 後は全ビット "0" に初期化されています。
PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許可す
る前または同時に設定してください。逓倍率変更後は , ロック待ち時間経過後にソース
クロックを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタイ
マ割込みを使用することを推奨します。
動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを PLL 以外に切り
換えてから変更してください。逓倍率変更後は , 上記と同様にロック待ち時間経過後に
ソースクロックを切り換えてください。
PLL 逓倍率設定の変更を , PLL 使用中に変更することも可能ですが , この際は逓倍率設
定書換え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待ち時間が
経過するまでの間はプログラム動作が停止します。PLL 以外にクロックソースを切り
換えた場合は , プログラム動作は停止しません。
72
第 3 章 CPU および制御部
3.11.3
発振安定待ち・PLL ロック待ち時間
ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち時
間が必要です (「3.10.4 発振安定待ち時間」を参照 ) 。
PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待
ち時間が必要です。
■ 電源投入後の待ち時間
電源投入後は , まずメインクロック用発振回路の発振安定待ち時間が必要となります。
発振安定待ち時間の設定は , INIT 端子入力 ( 設定初期化リセット端子 ) により最小値に
初期化されるため , この発振安定待ち時間は , INIT 端子入力へ "L" レベルを入力する時
間により確保します。
この状態においては , PLL は動作許可されていないため , ロック待ち時間はここでは考
慮する必要はありません。
■ 設定初期化後の待ち時間
設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで
は , 設定された発振安定待ち時間を内部的に発生します。
INIT 端子入力後の初めの発振安定待ち状態では , 設定時間は最小値に初期化されてい
るため , すぐに本状態は終了し , 動作初期化リセット (RST) 状態へと遷移します。また ,
メインランおよびサブラン中にメイン発振を停止しない場合のウォッチドッグリセッ
トでは , 発振安定待ち時間をとりません。
これらの状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間
はここでは考慮する必要がありません。
■ PLL 動作許可後の待ち時間
プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過
しないとその PLL 出力を使用しないでください。
ソースクロックとしてメイン PLL を選択していなければ , ロック待ち時間中もプログ
ラム動作は実行可能です。この際の PLL ロック待ち時間は , タイムベースタイマ割込
みを使用することを推奨します。
■ PLL 逓倍率変更後の待ち時間
プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち
時間が経過しないとその PLL 出力を使用しないでください。
ソースクロックとしてメイン PLL を選択していなければ , ロック待ち時間中もプログ
ラム動作は実行可能です。この際の PLL ロック待ち時間は , タイムベースタイマ割込
みを使用することを推奨します。
73
第 3 章 CPU および制御部
■ ストップモード復帰後の待ち時間
プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて
設定された時間の発振安定待ち時間を内部的に発生します。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止
させる設定の場合 , その発振回路の発振安定待ち時間と , 使用している PLL のロック
待ち時間のうち , 長い方の時間が必要となります。ストップモードに遷移させる前に ,
あらかじめ長い方の発振安定待ち時間を設定しておいてください。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止
させない設定の場合は , PLL は自動では動作を停止しません。したがって , PLL を停止
させない限り発振安定待ち時間は不要です。
ストップモードに遷移させる前に , あらかじめ発振安定待ち時間を最小値に設定して
おくことを推奨致します。
74
第 3 章 CPU および制御部
3.11.4
クロック分配
ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを
それぞれ作成します。
内部動作クロックは , CPU クロック , 周辺クロック , 外部バスクロックがあり , それ
ぞれが独立に分周比を設定できます。
ここでは , 各内部動作クロックについて説明します。
■ 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)
外部拡張バスインタフェースに使用されるクロックです。
本クロックを使用する回路には , 以下のものがあります。
• 外部拡張バスインタフェース
• 外部クロック出力
動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは設定しないで
ください。
75
第 3 章 CPU および制御部
<注意事項>
• 本品種では , 外バスモードをサポートしておりません。
• CPU の処理能力はフラッシュウェイトレジスタ (FLWC) の設定にも影響を受けます。
必ず本レジスタの設定を最適な値にしてご利用ください。
「19.2.2 フラッシュウェイト
レジスタ (FLWC)」をご参照ください。
76
第 3 章 CPU および制御部
3.11.5
クロック分周
各内部動作クロックは , それぞれ独立にベースクロックからの分周比を設定できま
す。この機能により , 各回路に最適な動作周波数を設定します。
■ クロック分周
分周比は , DIVR0 ( 基本クロック分周設定レジスタ 0) および DIVR1 ( 基本クロック分
周設定レジスタ 1) にて設定します。各レジスタには各クロックに対応する 4 ビットず
つの設定ビットがあり , ( レジスタ設定値+ 1) がそのクロックのベースクロックに対す
る分周比となります。分周比設定が奇数であっても , 常にデューティ比は 50% となり
ます。
設定値の変更があった場合 , 設定後 , 次のクロックの立上りから変更後の分周比が有効
となります。
分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の
設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。
初期状態からソースクロックを高速なものに変更する前に , 必ず分周比の設定を行っ
てください。
ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周
波数を超える設定をした場合 , 動作は保証されません。十分にご注意願います ( ソース
クロック選択の変更設定との順序を間違えないように特に留意願います ) 。
77
第 3 章 CPU および制御部
3.11.6
クロック生成制御部のブロックダイヤグラム
以下にクロック生成制御部のブロックダイヤグラムを示します。図中のレジスタの
詳細な解説は , 「3.11.7 クロック生成制御部のレジスタ詳細説明」を参照してくだ
さい。
■ クロック生成制御部のブロックダイヤグラム
R-bus
[ クロック生成部 ]
セレクタ
DIVR, レジスタ
周辺クロック分周
外部バスクロック分周
CPU クロック
停
止
制
御
セレクタ
セレクタ
CPU クロック分周
周辺クロック
外部バスクロック
X0
X1
発振回路
セレクタ
CLKR レジスタ
PLL
メイン
発振
1/2
[ ストップ・スリープ制御部 ]
内部割込み
ストップ状態
STGR レジスタ
内部リセット
SLEEP 状態
状態遷移
制御回路
リセット発生
FF
リセット発生
FF
内部リセット
外部リセット (INT)
[ リセット要因回路 ]
INIT 端子
RSRR レジスタ
[ ウォッチドッグ制御部 ]
ウォッチドッグ FF
カウンタクロック
タイムベース
CTBR レジスタ
セレクタ
TBCR レジスタ
オーバフロー検出 FF
タイムベースタイマ
割込み許可
( 注意事項 ) MB91265A シリーズでは , 外バスモードをサポートしておりません。
78
第 3 章 CPU および制御部
3.11.7
クロック生成制御部のレジスタ詳細説明
クロック生成制御部のレジスタについて説明します。
■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ
bit15
アドレス:000480H
初期値 (INIT 端子 )
初期値 (INIT)
初期値 (RST)
bit14
bit13
INIT
R
1
*
−
R
0
*
WDOG
R
0
*
×
×
×
bit12
bit11
−
R
0
SRST
R
0
×
*
×
*
bit10
bit9
bit8
−
R
0
*
WT1
R/W
0
0
0
WT0
R/W
0
0
0
×
* : 要因により変化します。
× : 初期化されません。
直前に発生したリセットの要因の保持 , ウォッチドッグタイマの周期設定 , および起動
制御を行うレジスタです。
本レジスタを読み出すと , 保持されたリセット要因は読出し後にクリアされます。読み
出すまでの間に複数回のリセットが発生した場合 , リセット要因フラグは累積され , 複
数のフラグがセットされることになります。
本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リセッ
ト (RST) が発生するまで , ウォッチドッグタイマは動作を続けます。
[bit15] INIT (INITialize reset occurred)
INIT 端子入力によるリセット (INIT) の発生の有無を示します。
0
INIT 端子入力による INIT は発生していません。
1
INIT 端子入力による INIT が発生しました。
•
読出し直後に "0" に初期化されます。
•
読出し可能で , 書込みはビット値に影響を与えません。
[bit14] − : 予約ビット
[bit13] WDOG (WatchDOG reset occurred)
ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。
0
ウォッチドッグタイマによる INIT は発生していません。
1
ウォッチドッグタイマによる INIT が発生しました。
•
INIT 端子入力によるリセット (INIT) , または読出し直後に "0" に初期化されま
す。
•
読出し可能で , 書込みはビット値に影響を与えません。
79
第 3 章 CPU および制御部
[bit12] − : 予約ビット
[bit11] SRST (Software ReSeT occurred)
STCRレジスタのSRSTビット書込み (ソフトウェアリセット) によるリセット (RST)
の発生の有無を示します。
同期モードのソフトウェアリセットの使用に関しては TBCR ( タイムベースカウン
タ制御レジスタ ) の bit9:SYNCR ビットの制限事項を参照してください。
0
ソフトウェアリセットによる RST は発生していません。
1
ソフトウェアリセットによる RST が発生しました。
•
INIT 端子入力によるリセット (INIT) , または読出し直後に "0" に初期化されま
す。
•
読出し可能で , 書込みはビット値に影響を与えません。
[bit10] − : 予約ビット
[bit9, bit8] 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 回のみ有効で , それ以降の書込みは
無効です。
80
第 3 章 CPU および制御部
■ STCR : スタンバイ制御レジスタ
bit7
アドレス:000481H
初期値 (INIT 端子 )
初期値 (INIT)
初期値 (RST)
R/W: リード / ライト可能
× : 初期化されません。
bit6
STOP SLEEP
R/W
R/W
0
0
0
0
0
0
bit5
bit4
bit3
bit2
HIZ
R/W
1
1
SRST
R/W
1
1
1
OS1
R/W
0
OS0
R/W
0
×
×
×
×
×
bit1
bit0
−
R/W
1
1
OSCD1
R/W
1
1
×
×
デバイスの動作モードを制御するレジスタです。
ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ
び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を
行います。
同期モードのソフトウェアリセットの使用に関してはTBCR (タイムベースカウンタ制
御レジスタ ) の bit9:SYNCR ビットの制限事項を参照してください。
<注意事項>
スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ
制御レジスタの bit8: SYNCS ビットにて設定します ) を使用したうえで , 以下のシーケン
スを必ず使用してください。
/* STCR ライト */
ldi
#_STCR, R0
; STCR レジスタ (0481H)
ldi
stb
#_Val_of_Stby, rl
rl, @r0
; Val_of_Stby は , STCR へのライトデータ
; STCR へのライト
/* STBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0483H)
ldi
stb
ldi
stb
#0xA5, rl
rl, @r2
#0xA5, rl
rl, @r2
; クリアコマンド (1)
; CTBR への A5 ライト
; クリアコマンド (2)
; CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
nop
nop
nop
nop
@r0, rl
; STCR ダミーリード
; タイミング調整用の NOP × 5
81
第 3 章 CPU および制御部
以下に , スタンバイ制御レジスタ (STCR) の各ビットの機能を説明します。
[bit7] STOP (STOP mode)
ストップモードへの遷移を指示します。bit6:SLEEP ビットと本ビット両方に "1" を
書き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。
0
ストップモードへの遷移は行いません ( 初期値 ) 。
1
ストップモードへ遷移します。
•
リセット (RST) およびストップ復帰要因により "0" に初期化されます。
•
読出しおよび書込みが可能です。
[bit6] SLEEP (SLEEP mode)
スリープモードへの遷移を指示します。bit7:STOP ビットと本ビット両方に "1" を書
き込んだ場合は, bit7:STOPビットの方が優先となり, ストップモードへ遷移します。
0
スリープモードへの遷移は行いません ( 初期値 ) 。
1
スリープモードへ遷移します。
•
リセット (RST) およびスリープ復帰要因により "0" に初期化されます。
•
読出しおよび書込みが可能です。
[bit5] HIZ (HIZ mode)
ストップモード時の端子状態を制御します。
0
ストップモード遷移前の端子状態を維持します。
1
ストップモード中は端子出力をハイインピーダンス状態にします
( 初期値 )。
•
リセット (INIT) により "0" に初期化されます。
•
読出しおよび書込みが可能です。
[bit4] SRST (Software ReSeT)
ソフトウェアリセット (RST) の発行を指示します。
82
0
ソフトウェアリセットを発行します。
1
ソフトウェアリセットの発行は行いません ( 初期値 ) 。
•
リセット (RST) により "1" に初期化されます。
•
読出しおよび書込みが可能です。読出し値は , 常に "1" となります。
第 3 章 CPU および制御部
[bit3, bit2] OS1, OS0 (Oscillation Stabilization time select)
リセット (INIT) 後 , およびストップモード復帰後などにおける発振安定待ち時間を
設定します。
本ビットに書き込む値により , 発振安定待ち時間を下表に示す 4 種類のうちから選
択します。
OS1
OS0
0
0
φ × 21 ( 初期値 )
1.0 µs
0
1
φ × 211
1.0 ms
1
0
φ × 216
32.7 ms
1
1
φ × 222
2.0 s
発振安定待ち時間
メイン発振 4 MHz の場合
(φ は内部ベースクロックの周期で , メイン発振の 2 倍の周期 )
•
INIT 端子入力によるリセット (INIT) により "00B" に初期化されます。
•
読出しおよび書込みが可能です。
[bit1] − : 予約ビット
予約ビットです。
本品種では, 本ビットへの書込みは常に"1"を書き込んでください。
[bit0] OSCD1 (Oscillation Disable mode for XIN1)
メイン発振入力 (X0, X1) における , ストップモード時の発振停止を制御します。
0
ストップモード中もメイン発振は停止しません。
1
ストップモード中はメイン発振を停止します ( 初期値 )。
•
リセット (INIT) により "1" に初期化されます。
•
読出しおよび書込みが可能です。
83
第 3 章 CPU および制御部
■ TBCR : タイムベースカウンタ制御レジスタ
アドレス:000482H
初期値 (INIT)
初期値 (RST)
R/W: リード / ライト可能
X: 初期化されません。
bit15
bit14
bit13
bit12
bit11
TBIF
R/W
0
0
TBIE
R/W
0
0
TBC2
R/W
×
×
TBC1
R/W
×
×
TBC0
R/W
×
×
bit10
−
R/W
×
×
bit9
bit8
SYNCR SYNCS
R/W
R/W
0
0
×
×
タイムベースタイマ割込みなどを制御するレジスタです。
タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行うほか , リセッ
ト動作のオプション機能の設定を行います。
以下に , タイムベースカウンタ制御レジスタ (TBCR) の各ビットの機能を説明します。
[bit15] TBIF (Time-Base timer Interrupt Flag)
タイムベースタイマ割込みフラグです。
タイムベースカウンタが設定されたインターバル時間 (bit13∼bit11:TBC2∼TBC0ビッ
トにて設定 ) を経過したことを示します。
bit14:TBIE ビットにより割込み発生が許可 (TBIE=1) されているときに , 本ビットが
"1" になると , タイムベースタイマ割込み要求が発生します。
クリア要因
命令による "0" の書込み
セット要因
設定されたインターバル時間の経過 ( タイムベースカウンタ出力の立
下りエッジ検出 )
•
•
リセット (RST) により "0" に初期化されます。
読出し / 書込み可能です。ただし , 書込みは "0" のみ可能で , "1" を書込みしても
ビット値は変化しません。
また , リードモディファイライト (RMW) 系命令での読出し値は , 常に "1" とな
ります。
[bit14] TBIE (Time-Base timer Interrupt Enable)
タイムベースタイマ割込み要求出力許可ビットです。
タイムベースカウンタのインターバル時間経過による割込み要求出力を制御しま
す。本ビットが "1" のときに , bit15:TBIF ビットが "1" になると , タイムベースタイ
マ割込み要求が発生します。
84
0
タイムベースタイマ割込み要求出力禁止 ( 初期値 )
1
タイムベースタイマ割込み要求出力許可
•
リセット (RST) により "0" に初期化されます。
•
読出しおよび書込みが可能です。
第 3 章 CPU および制御部
[bit13 ∼ bit11] TBC2, TBC1, TBC0 (Time-Base timer 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 の出力周期 )
•
初期値は不定です。割込みを許可する前に必ず値を設定してください。
•
読出しおよび書込みが可能です。
[bit10] − : 予約ビット
予約ビットです。読出し値は不定で , 書込みは動作に影響を与えません。
[bit9] SYNCR (SYNChronous Reset enable)
同期リセット動作許可ビットです。
動作初期化リセット (RST) 要求またはハードウェアスタンバイ要求が発生した際
に , 即座にリセット (RST) またはハードウェアスタンバイ遷移を行う通常リセット
動作を行うか , すべてのバスアクセスが停止した後 , 動作初期化リセット (RST) ま
たはハードウェアスタンバイ遷移を行う同期リセット動作を行うかを選択します。
0
通常リセット動作 ( 初期値 )
1
同期リセット動作
•
リセット (INIT) により "0" に初期化されます。
•
読出しおよび書込みが可能です。
<注意事項>
同期モードのソフトウェアリセットを使用するときは , STCR( スタンバイ制御レジスタ )
の SRST ビットに "0" を設定する前に , 以下 2 つの条件を必ず満たしてください。
• 割込み許可フラグ (I-Flag) を割込み禁止 (I-Flag=0) に設定する。
• NMI を使用しない。
85
第 3 章 CPU および制御部
[bit8] SYNCS (SYNChronous Standby enable)
同期スタンバイ動作許可ビットです。
スタンバイモード ( スリープモードまたはストップモード ) を使用する際は必ず "1"
を設定してください。
0
通常スタンバイ動作 ( 初期値 )
1
同期スタンバイ動作
•
リセット (INIT) により "0" に初期化されます。
•
読出しおよび書込みが可能です。
■ CTBR : タイムベースカウンタクリアレジスタ
アドレス:000483H
初期値 (INIT)
初期値 (RST)
W: ライトオンリ
× : 初期化されません。
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
D7
W
×
×
D6
W
×
×
D5
W
×
×
D4
W
×
×
D3
W
×
×
D2
W
×
×
D1
W
×
×
D0
W
×
×
タイムベースカウンタを初期化するためのレジスタです。
本レジスタに連続して {A5H} , {5AH} を書き込むと , {5AH} 書込みの直後にタイム
ベースカウンタを全ビット "0" にクリアします。{A5H} 書込みと {5AH} 書込みの間の
時間に制限はありませんが, {A5H} 書込みの後に {5AH} 以外のデータを書き込むと, 再
度 {A5H} を書き込まないと {5AH} を書き込んでもクリア動作は行いません。
ストップ , スリーブ , DMA 転送中など , CPU が動作していない間は自動的にクリアを
行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ
れます。
本レジスタの読出し値は不定です。
<注意事項>
本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち時間 , ウォッ
チドッグタイマ周期 , およびタイムベースタイマの周期が一時的に変動します。
86
第 3 章 CPU および制御部
■ CLKR : クロックソース制御レジスタ
bit15
アドレス:000484H
初期値 (INIT)
初期値 (RST)
R/W: リード / ライト可能
X: 初期化されません。
−
R/W
0
×
bit14
bit13
bit12
PLL1S2 PLL1S1 PLL1S0
R/W
R/W
R/W
0
0
0
×
×
×
bit11
−
R/W
0
bit10
bit9
bit8
PLL1EN CLKS1 CLKS0
R/W
R/W
R/W
0
0
0
×
×
×
×
内部ベースクロックとなるクロックソースの選択やメイン PLL の制御を行うレジスタ
です。
本レジスタにてクロックソースを選択します。また , メイン PLL の動作許可および逓
倍率の選択を制御します。
[bit15] − : 予約ビット
予約ビットです。
本品種では, 本ビットへの書込みは常に"0"を書き込んでください。
[bit14 ∼ bit12] PLL1S2, PLL1S1, PLL1S0 (PLL1 ratio Select 2 ∼ 0)
メイン PLL の逓倍率選択ビットです。
メイン PLL の逓倍率を下記の組合せのうちから選択します。
本ビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止し
ます。
動作可能な上限周波数を超える設定をしないでください。
PLL1S2 PLL1S1 PLL1S0
メイン PLL 逓倍率
メイン発振 4 MHz の場合
0
0
0
× 1 ( 等倍 )
φ = 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 時 )
(φ は内部ベースクロックの周期 )
•
リセット (INIT) により "000B" に初期化されます。
•
読出しおよび書込みが可能です。
[bit11] − : 予約ビット
予約ビットです。
本品種では, 本ビットへの書込みは常に"0"を書き込んでください。
87
第 3 章 CPU および制御部
[bit10] PLL1EN (PLL1 ENable)
メイン PLL の動作許可ビットです。
本ビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止し
ます。
また , 本ビットが "0" の間はクロックソースとしてメイン PLL を選択することを禁
止します。
bit9, bit8: CLKS1, CLK0 ビットの設定を参照してください。
STCR の bit0:OSCD1 が "1" であると , ストップモード中は本ビットが "1" であって
もメイン PLL は停止します。ストップモードからの復帰後は動作許可に戻ります。
0
メイン PLL 停止 ( 初期値 )
1
メイン PLL 動作許可
•
リセット (INIT) により "0" に初期化されます。
•
読出しおよび書込みが可能です。
[bit9, bit8] CLKS1, CLKS0 (CLocK source Select)
使用するクロックソースを設定します。
本ビットに書き込む値により , クロックソースを下表に示す 3 種類のうちから選択
します。
CLKS1
CLKS0
0
0
X0/X1 からの原発振入力の 2 分周 ( 初期値 )
0
1
設定禁止
1
0
メイン PLL
1
1
設定禁止
クロックソース設定
•
リセット (INIT) により "00B" に初期化されます。
•
読出しおよび書込みが可能です。
<注意事項>
bit9:CLKS1 が "1" の間は bit8:CLKS0 の値を変更することができません。
[ 変更可能な組合せ ]
"00B" → "10B"
"10B" → "00B"
上記の組合せ以外は設定禁止です。
88
第 3 章 CPU および制御部
■ DIVR0: 基本クロック分周設定レジスタ 0
アドレス:000486H
初期値 (INIT)
初期値 (RST)
R/W: リード / ライト可能
× : 初期化されません。
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
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
×
×
×
×
×
×
×
×
各内部クロックのベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , CPU および内部バスのクロック (CLKB) と , 周辺回路およびペリフェ
ラルバスクロック (CLKP) の分周比の設定を行います。
ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周
波数を超える設定をした場合 , 動作は保証されません。十分にご注意願います。また ,
ソースクロック選択の変更設定との順序を間違えないように注意願います。
本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周
比が有効となります。
[bit15 ∼ bit12] B3, B2, B1, 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
φ × 16 (16 分周 )
2 MHz
(φ は内部ベースクロックの周期 )
•
リセット (INIT) により "0000B" に初期化されます。
•
読出しおよび書込みが可能です。
89
第 3 章 CPU および制御部
[bit11 ∼ bit8] P3, P2, P1, P0 (clkP divide select 3 ∼ 0)
周辺クロック (CLKP) クロック分周比設定ビットです。
周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定しま
す。
本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベー
スクロックに対する分周比 ( クロック周波数 ) を下表に示す 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
φ × 16 (16 分周 )
2 MHz
(φ はシステムベースクロックの周期 )
90
•
リセット (INIT) により "0011B" に初期化されます。
•
読出しおよび書込みが可能です。
第 3 章 CPU および制御部
■ DIVR1: 基本クロック分周設定レジスタ 1
アドレス:000487H
初期値 (INIT)
初期値 (RST)
R/W: リード / ライト可能
X: 初期化されません。
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
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
×
×
×
×
×
×
×
×
各内部クロックのベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , 外部バスインタフェースのクロック (CLKT) の分周比の設定を行い
ます。
ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周
波数を超える設定をした場合 , 動作は保証されません。十分にご注意願います。また ,
ソースクロック選択の変更設定との順序を間違えないように注意願います。
本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周
比が有効となります。
[bit7 ∼ bit4] T3, T2, T1, T0 (clkT divide select 3 ∼ 0)
外部バスクロック (CLKT) クロック分周比設定ビットです。
外部バスインタフェースのクロック (CLKT) のクロック分周比を設定します。
本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースク
ロックに対する分周比 (クロック周波数) を下表に示す16種類のうちから選択します。
動作可能な上限周波数を超える周波数になる分周比は設定しないでください。
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 分周 ) に設定すること
を推奨致します。
91
第 3 章 CPU および制御部
[bit3 ∼ bit0] − : 予約ビット
・リセット (INIT) により "0000B" に初期化されます。
・本ビットへの書込みは , 常に "0000B" を書き込んでください。
( 注意事項 ) 本品種では , 外バスモードをサポートしておりません。
92
第 3 章 CPU および制御部
3.11.8
クロック制御部が持つ周辺回路
クロック制御部内の周辺回路機能について説明します。
■ タイムベースカウンタ
クロック制御部には, 26ビット長のタイムベースカウンタがあり, 内部ベースクロック
で動作しています。
タイムベースカウンタは , 発振安定待ち時間の計測 (「3.10.4 発振安定待ち時間」を参
照 ) のほか , 以下の用途に使用されます。
• ウォッチドッグタイマ
システムの暴走検出用のウォッチドッグタイマをタイムベースカウンタのビット
出力を用いて計測します。
• タイムベースタイマ
タイムベースカウンタ出力を用いてインターバル割込みを発生します。
以下 , これらの機能について解説します。
● ウォッチドッグタイマ
ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。
プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生
延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット
(INIT) 要求を発生します。
[ ウォッチドッグタイマの起動と周期設定 ]
ウォッチドッグタイマは , リセット (RST) 後の 1 回目の RSRR ( リセット要因レジ
スタ / ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。こ
のとき , ウォッチドッグタイマのインターバル時間を bit9, bit8:WT1, WT0 ビットに
より設定します。インターバル時間の設定は , この最初の書込みで設定した時間の
みが有効となり , それ以降の書込みはすべて無視されます。
[ ウォッチドッグリセットの発生延期 ]
いったんウォッチドッグタイマを起動すると , プログラムで定期的に CTBR ( タイ
ムベースカウンタクリアレジスタ ) に対して {A5H} , {5AH} の順でデータを書き込
む必要があります。この操作により , ウォッチドッグリセット発生用フラグが初期
化されます。
[ ウォッチドッグリセットの発生 ]
ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカ
ウンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出
時にフラグがセットされていると , ウォッチドッグリセットとして設定初期化リ
セット (INIT) 要求を発生します。
93
第 3 章 CPU および制御部
[ ウォッチドッグタイマの停止 ]
いったんウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生す
るまでは , ウォッチドッグタイマを停止することはできません。
動作初期化リセット (RST) の発生する以下の状態ではウォッチドッグタイマは停
止し , 再度プログラム動作にて起動するまでは , 機能しません。
•
動作初期化リセット (RST) 状態
•
設定初期化リセット (INIT) 状態
•
発振安定待ちリセット (RST) 状態
[ ウォッチドッグタイマの一時停止 ( 自動発生延期 ) ]
ウォッチドッグタイマは , CPU のプログラム動作が停止している場合には , いった
んウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発
生を延期します。プログラム動作の停止とは具体的には以下の動作を示します。
・スリープ状態
・ストップ状態
・発振安定待ち RUN 状態
・D-bus ( データバス ) に対する DMA 転送中
・エミュレータデバッガを使用中のブレーク中
また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発
生用フラグも初期化され , ウォッチドッグリセットの発生が延期されます。
● タイムベースタイマ
タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生
用タイマです。
メイン PLL のロック待ち時間やサブクロックなどの発振安定待ち時間など , 最大で
{ ベースクロック× 227} サイクルまでの比較的長時間の時間計測を行う用途に適して
います。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出
すると , タイムベースタイマ割込み要求を発生します。
[ タイムベースタイマの起動とインターバル設定 ]
タイムベースタイマは , TBCR ( タイムベースカウンタ制御レジスタ ) の bit13, bit12,
bit11:TBC2, TBC1, TBC0 ビットにてインターバル時間を設定します。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジは
常に検出されているため , インターバル時間の設定後はまず bit15:TBIF ビットをク
リアした後 , bit14:TBIE ビットを "1" にして割込み要求出力を許可してください。
インターバル時間を変更する際は , あらかじめ bit14:TBIE ビットを "0" にして割込
み要求出力を禁止しておいてください。
タイムベースカウンタはこれら設定に影響されず常にカウント動作を行っていま
すので , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタ
イムベースカウンタをクリアしてください。そうでないと , 割込み許可直後に割込
み要求が発生することもあり得ます。
94
第 3 章 CPU および制御部
[ プログラムによるタイムベースカウンタのクリア ]
CTBR ( タイムベースカウンタクリアレジスタ ) に対して {A5H} , {5AH} の順でデー
タを書き込むと , {5AH} 書込みの直後に , タイムベースカウンタを全ビット "0" にク
リアします。{A5H} 書込みと {5AH} 書込み間の時間は制限がありませんが , {A5H}
書込みの後に {5AH} 以外のデータを書き込むと , 再度 {A5H} を書き込まないと
{5AH} を書き込んでもクリア動作は行いません。
このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリ
セット発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期
されます。
[ デバイス状態によるタイムベースカウンタのクリア ]
タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にク
リアされます。
• ストップ状態
• 設定初期化リセット (INIT) 状態
• ハードウェアスタンバイ状態
特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタ
が使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生し
てしまうことがあり得ます。そのため , ストップモードを設定する前には , タイム
ベースタイマ割込みを禁止し , タイムベースタイマを使用しないようにしてくださ
い。
それ以外の状態については , 動作初期化リセット (RST) が発生するため , タイム
ベースタイマ割込みは自動的に禁止されます。
95
第 3 章 CPU および制御部
デバイス状態制御
3.12
各種状態とその制御について解説します。
■ デバイス状態と各遷移
状態遷移を下記に示します。
1
2
3
4
5
6
7
8
9
10
INIT 端子 =0(INIT)
INIT 端子 =1(INIT 解除 )
発振安定待ち終了
リセット (RST) 解除
ソフトウェアリセット (RST)
スリープ ( 命令書込み )
ストップ ( 命令書込み )
割込み
クロックを必要としない外部割込み
ウォッチドッグリセット (INIT)
最強
↓
↓
↓
最弱
パワーオン
1
遷移要求の優先順位
設定初期化リセット (INIT)
発振安定待ち終了
動作初期化リセット (RST)
割込み要求
ストップ
スリープ
設定初期化
(INT)
2
メインクロックモード
1
メイン発振安定待ち
1
リセット
メインストップ
9
3
1
プログラムリセット
1
(RST)
発振安定待ち RUN
3
5
7
1
6
メインスリープ
4
メイン RUN
10
1
8
本品種のデバイスの動作状態には以下のものがあります。
● RUN 状態 ( 通常動作 )
プログラム実行状態です。
すべての内部クロックが供給され , すべての回路が動作可能な状態です。
ただし , 16 ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間は
バスクロックのみ停止しています。
各状態遷移要求を受け付けますが , 同期リセットモードを選択している場合 , 通常リ
セットモードの場合と一部要求に対する状態遷移動作が異なります。詳細は , 「3.10.5
リセット動作モード」の「■ 同期リセット動作」を参照してください。
96
第 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) 状態へ遷移
します。
97
第 3 章 CPU および制御部
● 動作初期化リセット (RST) 状態
プログラム初期化状態です。動作初期化リセット (RST) 要求の受付け , または発振安定
待ちリセット (RST) 状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
一部を除き初期化されます。すべての内部クロックと発振回路および動作許可されて
いたメイン PLL は動作しています。
内部回路に対し , 動作初期化リセット (RST) を出力します。
動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動作初
期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの復帰後
だった場合は , 設定初期化リセットシーケンスを実行します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
● 設定初期化リセット (INIT) 状態
全設定初期化状態です。設定初期化リセット (INIT) 要求の受付けにより遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
すべて初期化されます。発振回路は動作しますが , メイン PLL は動作を停止します。
すべての内部クロックは , 外部 INIT 端子への "L" レベル入力期間は停止しますが , そ
れ以外では動作します。
内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力
します。
設定初期化リセット (INIT) 要求の消失により, 本状態は解除され, 発振安定待ちリセッ
ト (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期
化リセットシーケンスを実行します。
● 各状態遷移要求の優先順位
どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部要求
は特定の状態でしか発生しませんので , その状態でしか有効になりません。
[ 最強 ]
98
設定初期化リセット (INIT) 要求
↓
発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安
定待ち RUN 状態のみ発生 )
↓
動作初期化リセット (RST) 要求
↓
有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 )
↓
ストップモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
[ 最弱 ]
スリープモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
第 3 章 CPU および制御部
■ 低消費電力モード
本品種の状態のうち , 各低消費電力モードとその使用方法について説明します。
本品種の低消費電力モードには , 以下のものがあります。
• スリープモード
レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。
• ストップモード
レジスタ書込みにより , デバイスをストップ状態へ遷移させます。
以下 , 各モードについて説明します。
● スリープモード
STCR ( スタンバイ制御レジスタ ) の bit6:SLEEP ビットに "1" を書き込むと , スリープ
モードとなり , スリープ状態へ遷移します。以降 , スリープ状態からの復帰要因が発生
するまでは , スリープ状態を維持します。
スリープ状態については , 「3.12 デバイス状態制御 ■デバイス状態と各遷移 ●ス
リープ状態」も参照してください。
[ スリープモードへの移行 ]
スリープモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウ
ンタ制御レジスタの bit8 : SYNCS ビットにて設定します ) を使用したうえで , 以下
のシーケンスを必ず使用してください。
/* STCR ライト */
ldi
#_STCR, R0
; STCR レジスタ (0481H)
ldi
#_Val_of_Stby, rl
; Val_of_Stby は , STCR へのライトデータ
stb
rl, @r0
; STCR へのライト
/* STBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0483H)
ldi
#0xA5, rl
; クリアコマンド (1)
stb
rl, @r2
; CTBR への A5 ライト
ldi
#0xA5, rl
; クリアコマンド (2)
stb
rl, @r2
; CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
nop
nop
nop
nop
@r0, rl
; STCR ダミーリード
; タイミング調整用の NOP × 5
STCR ( スタンバイ制御レジスタ ) の bit7:STOP ビットと本ビット両方に "1" を書き
込んだ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
99
第 3 章 CPU および制御部
[ スリープ状態で停止する回路 ]
•
CPU のプログラム実行
以下は , DMA 転送が発生した場合は動作します。
•
ビットサーチモジュール
•
各種内蔵メモリ
•
内部 / 外部バス
( 注意事項 ) 本品種では , 外バスモードをサポートしておりません。
[ スリープ状態で停止しない回路 ]
•
発振回路
•
動作許可されたメイン 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) の bit8(SYNCS ビット ) に "1" が設定し
てある場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書
込みのみではスリープ状態へは遷移しません。その後 , STCR レジスタを読み出す
ことによってスリープ状態へ遷移します。
スリープモードを使用する場合は , [ スリープモードへの移行 ] にあるシーケンスを
必ず使用してください。
100
第 3 章 CPU および制御部
● ストップモード
STCR ( スタンバイ制御レジスタ ) の bit7:STOP ビットに "1" を書き込むと , ストップ
モードとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発生
するまでは , ストップ状態を維持します。
ストップ状態については , 「3.12 デバイス状態制御 ■デバイス状態と各遷移 ● ス
トップ状態」を参照してください。
[ ストップモードへの移行 ]
ストップモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウ
ンタ制御レジスタの bit8 : SYNCS ビットにて設定します ) を使用したうえで , 以下
のシーケンスを必ず使用してください。
/* STCR ライト */
ldi
#_STCR, R0
; STCR レジスタ (0481H)
ldi
#_Val_of_Stby, rl
; Val_of_Stby は , STCR へのライトデータ
stb
rl, @r0
; STCR へのライト
/* STBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0483H)
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
nop
nop
nop
nop
; STCR ダミーリード
; タイミング調整用の NOP × 5
STCR ( スタンバイ制御レジスタ ) の bit6:SLEEP ビットと本ビット両方に "1" を書き
込んだ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
[ ストップ状態で停止する回路 ]
下記を除くすべての内部回路
[ ストップ状態で停止しない回路 ]
•
停止するよう設定されていない発振回路
STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあると
き , ストップ状態中のメインクロック用発振回路は停止しません。
•
動作許可されていて , かつ停止するよう設定されていない発振回路に接続された
メイン PLL
STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあると
き , CLKR ( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定
してあると , ストップ状態中のメインクロック用 PLL は停止しません。
101
第 3 章 CPU および制御部
[ ストップ状態での端子のハイインピーダンス制御 ]
STCR ( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "1" が設定してあると , ストッ
プ状態中の端子出力をハイインピーダンス状態にします。本制御の対象となる端子
は , 「付録 C 各 CPU ステートにおける端子状態」を参照してください。
STCR ( スタンバイ制御レジスタ ) の bit5: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 ク
ロック生成制御」, 特に「3.11.2 PLL 制御」を参照してください。
なお , 分周比の設定に関しては , 通常動作時と制限事項は変わりません。
[ 同期スタンバイ動作 ]
タイムベースカウンタ制御レジスタ (TBCR) の bit8:SYNCS ビットに "1" が設定して
ある場合 , 同期スタンバイ動作が許可されます。この場合 , STOP ビットへの書込み
のみではストップ状態へは遷移しません。その後 , STCR レジスタを読み出すこと
によってストップ状態へ遷移します。
ストップモードを使用する場合は , [ ストップモードへの移行 ] にあるシーケンスを
必ず使用してください。
102
第4章
I/O ポート
I/O ポートの概要 , レジスタの構成および機能につ
いて説明します。
4.1 ポート基本ブロックダイヤグラム
4.2 I/O ポートのレジスタ
4.3 アナログ入力ポート
103
第 4 章 I/O ポート
4.1
ポート基本ブロックダイヤグラム
MB91265A シリーズは , 各端子に対応する外部バスインタフェースやペリフェラル
が入出力として端子を使用しない設定になっているとき , I/O ポートとして使用でき
ます。
■ ポート基本ブロックダイヤグラム
下図にポートの基本的な構成を示します。
図 4.1-1 I/O ポート基本ブロックダイヤグラム
ペリフェラル入力
Port Bus
0
ペリフェラル
出力
PDR リード 1
PDR
1
プルアップ抵抗
( 約 50 kΩ)
P-ch
端子
0
PFR
DDR
PCR
104
PCR=0: プルアップ抵抗なし
PCR=1: プルアップ抵抗あり
DDR:Data Direction Register
PDR:Port Data Register
PFR:Port Function Register
PCR:Pull-up resistance Control Register
第 4 章 I/O ポート
プルアップ抵抗付き入出力ポート
4.1.1
I/O ポートは , 以下の 4 種類のレジスタにより使用します。
• PDR( ポートデータレジスタ /Port Data Register)
• DDR( ポート方向レジスタ /Data Direction Register)
• PFR( ポート機能レジスタ /Port Function Register)
• PCR( プルアップ抵抗制御レジスタ /Pull-up resistance Control Register )
■ I/O ポートのモード
● ポート入力モード時 (PFR=0 & DDR=0)
PDR 読出し:対応する外部端子のレベルが読み出されます。
PDR 書込み:PDR に設定値が書き込まれます。
● ポート出力モード時 (PFR=0 & DDR=1)
PDR 読出し:PDR の値が読み出されます。
PDR 書込み:PDR の値が対応する外部端子に出力されます。
● ペリフェラル出力モード時 (PFR=1 & DDR=x)
PDR 読出し:対応するペリフェラル出力の値が読み出されます。
PDR 書込み:PDR に設定値が書き込まれます。
<注意事項>
• ポートへのアクセスは , バイトアクセスで行ってください。
• ストップモード時 (HIZ=0) には , プルアップ抵抗制御レジスタの設定が優先されます。
• ストップモード時 (HIZ=1) には , プルアップ抵抗制御レジスタの設定は無効となりま
す。
• 汎用ポート入力とペリフェラル入力を切り換えるレジスタはありません。
外部端子から入力された値は常に汎用ポートとペリフェラル回路へ伝播しています。
また , DDR で出力設定時も外部へ出力している値が常に汎用ポートとペリフェラル回
路へ伝播しています。
ペリフェラル入力としてご使用の場合は , DDR で入力設定にし , 各ペリフェラルの入
力信号を有効にしてご使用ください。
105
第 4 章 I/O ポート
I/O ポートのレジスタ
4.2
I/O ポートのレジスタについて説明します。
■ Port Data Register(PDR: PDR0 ∼ PDR5, PDRG)
PDR0
アドレス
00000000H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
P07
P06
P05
P04
P03
P02
P01
P00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
XXXXXXXXB
PDR1
アドレス
00000001H
P17
P16
P15
P14
P13
P12
P11
P10
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
P27
P26
P25
P24
P23
P22
P21
P20
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
PDR2
アドレス
00000002H
初期値
XXXXXXXXB
PDR3
アドレス
00000003H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
P37
P36
P35
P34
P33
P32
P31
P30
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
−
R/W
P46
P45
P44
P43
P42
P41
P40
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
P57
P56
P55
P54
P53
P52
P51
P50
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
−
R/W
PG1
−
R/W
初期値
XXXXXXXXB
PDR4
アドレス
00000004H
初期値
XXXXXXXXB
PDR5
アドレス
00000005H
初期値
XXXXXXXXB
PDRG
アドレス
00000010H
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
R/W
初期値
------X-B
R/W : リード / ライト可能
PDR0 ∼ PDR5, PDRG は , I/O ポートの入出力データレジスタです。対応する DDR0 ∼
DDR5, DDRG, PFR0 ∼ PFR5, PFRG で , 入出力制御が行われます。
106
第 4 章 I/O ポート
■ Data Direction Register (DDR: DDR0 ∼ DDR5, DDRG)
DDR0
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000400H
P07
P06
P05
P04
P03
P02
P01
P00
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000401H
P17
P16
P15
P14
P13
P12
P11
P10
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000402H
P27
P26
P25
P24
P23
P22
P21
P20
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000403H
P37
P36
P35
P34
P33
P32
P31
P30
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
P46
P45
P44
P43
P42
P41
P40
-0000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000405H
P57
P56
P55
P54
P53
P52
P51
P50
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
------0-B
DDR1
DDR2
DDR3
DDR4
アドレス
00000404H
DDR5
DDRG
アドレス
00000410H
−
−
−
−
−
−
PG1
−
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W : リード / ライト可能
DDR0∼DDR5, DDRG は, 対応するI/Oポートの入出力方向をビット単位で制御します。
PFR=0 のとき DDR=0:ポート入力
DDR=1:ポート出力
PFR=1 のとき DDR=0:ペリフェラル入力
DDR=1:ペリフェラル出力
107
第 4 章 I/O ポート
■ Pull-up Resistance Control Register (PCR: PCR0 ∼ PCR4, PCRG)
PCR0
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000600H
P07
P06
P05
P04
P03
P02
P01
P00
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000601H
P17
P16
P15
P14
P13
P12
P11
P10
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000602H
P27
P26
P25
P24
P23
P22
P21
P20
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000603H
P37
P36
−
−
−
−
−
−
00------B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
−
−
−
P43
P42
P41
P40
----0000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
------0-B
R/W
PCR1
PCR2
PCR3
PCR4
アドレス
00000604H
PCRG
アドレス
00000610H
−
−
−
−
−
−
PG1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W : リード / ライト可能
PCR0 ∼ PCR4, PCRG は , 対応する I/O ポートのプルアップ抵抗制御を行います。
PCR=0:プルアップ抵抗なし
PCR=1:プルアップ抵抗あり
108
第 4 章 I/O ポート
■ Port Function Register(PFR: PFR0, PFR1, PTFR0)
PFR0
bit7
アドレス
00000420H
bit6
TOT2E TOT1E
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00------B
−
−
−
−
−
−
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
TX0E*
−
SCK1E
−
SOT1
SCK0E
−
SOT0E
0-0-00-0B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PFR1
アドレス
00000421H
PTFR0
アドレス
00000433H
PPG7E PPG6E PPG5E PPG4E PPG3E PPG2E PPG1E PPG0E
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W
R/W : リード / ライト可能
PFR0, PFR1, PTFR0 は , 対応するペリフェラルの出力をビット単位で制御します。
PFR の空きビットには , 必ず "0" を書いてください。
*:PFR1 レジスタの bit7 の TX0E(C-CAN の TX0 出力許可ビット ) は , MB91F267NA/
MB91267NA の設定です。
その他の品種は , 必ず "0" を書いてください。
<注意事項>
MB91F267NA/MB91267NA の P17 の PPG6 と TX0 出力は , PPG6E=1, TX0E=1 の設
定の場合 , PPG6 の出力が優先されます。
109
第 4 章 I/O ポート
以下に各 PFR レジスタについてその初期値と機能をまとめます。
レジスタ名
ビット
ビット名
7
TOT2E
設定値
0
汎用ポート
1
リロードタイマ 2 出力
0
汎用ポート
1
リロードタイマ 1 出力
0
汎用ポート
1
C-CAN データ出力
0
汎用ポート
1
UART1 のクロック出力
0
汎用ポート
1
UART1 のデータ出力
0
汎用ポート
1
UART0 のクロック出力
0
汎用ポート
1
UART0 のデータ出力
PFR0
6
7
5
PFR1
3
2
0
機能
TOT1E
TX0E *
SCK1E
SOT1
SCK0E
SOT0E
[ 初期値 ]
[ 初期値 ]
[ 初期値 ]
[ 初期値 ]
[ 初期値 ]
[ 初期値 ]
[ 初期値 ]
*:PFR1 レジスタの bit7 の TX0E(C-CAN の TX0 出力許可ビット ) は , MB91F267NA/MB91267NA の設
定です。
その他の品種は , 必ず "0" を書いてください。
レジスタ名
ビット
ビット名
7
PPG7E
6
5
4
設定値
0
汎用ポート
1
PPG タイマ 7 出力
0
汎用ポート
1
PPG タイマ 6 出力
0
汎用ポート
1
PPG タイマ 5 出力
0
汎用ポート
1
PPG タイマ 4 出力
0
汎用ポート
1
PPG タイマ 3 出力
0
汎用ポート
1
PPG タイマ 2 出力
0
汎用ポート
1
PPG タイマ 1 出力
0
汎用ポート
1
PPG タイマ 0 出力
PPG6E
PPG5E
PPG4E
PTFR0
3
2
1
0
110
機能
PPG3E
PPG2E
PPG1E
PPG0E
[ 初期値 ]
[ 初期値 ]
[ 初期値 ]
[ 初期値 ]
[ 初期値 ]
[ 初期値 ]
[ 初期値 ]
[ 初期値 ]
第 4 章 I/O ポート
<注意事項>
MB91F267NA/MB91267NA の P17 の PPG6 と TX0 出力は , PPG6E=1, TX0E=1 の設定の
場合 , PPG6 の出力が優先されます。
111
第 4 章 I/O ポート
アナログ入力ポート
4.3
A/D コンバータのブロックダイヤグラムと使用しているレジスタについて説明しま
す。
■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム
図 4.3-1 AN0 ∼ AN10 端子のブロックダイヤグラム
AICR1,
AICR2
PDR ( ポートデータレジスタ )
内
部
バ
ス
デ
|
タ
アナログ入力
PDR リード
出力ラッチ
P-ch
PDR ライト
端子
DDR ( ポート方向レジスタ )
方向ラッチ
N-ch
DDR ライト
DDR リード
スタンバイ制御
<注意事項>
• 入力ポートとして使用する端子は , 対応する DDR レジスタのビットを "0" に設定し , か
つ外部端子にプルアップ抵抗を付加してください。また AICR レジスタの対応するビッ
トを "0" に設定してください。
• アナログ入力端子として使用する端子は , 対応する AICR レジスタのビットを "1" に設
定してください。このときの PDR レジスタの読出し値は , PDR のレジスタ値になりま
す。
112
第 4 章 I/O ポート
■ Analog Input Control Register (AICR: AICR1, AICR2)
AICR1
bit7
アドレス
00000086H
bit6
bit5
bit4
bit3
bit2
bit1
bit0
AN3E AN2E AN1E AN0E
−
−
−
−
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
----0000B
AICR2
アドレス
0000008EH
−
AN10E AN9E AN8E AN7E AN6E AN5E AN4E
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
-0000000B
R/W
R/W : リード / ライト可能
AICR は , 対応する I/O ポートの各端子を以下のように制御します。
AICR=0:ポート入力モード
AICR=1:アナログ入力モード
リセットで "0" になります。
113
第 4 章 I/O ポート
114
第5章
割込みコントローラ
割込みコントローラの概要 , レジスタの構成 / 機能
および動作について説明します。
5.1 概要
5.2 レジスタ一覧
5.3 ブロックダイヤグラム
5.4 レジスタ詳細説明
5.5 割込みコントローラの動作
115
第 5 章 割込みコントローラ
5.1
概要
割込みコントローラは , 割込み受付け / 調停処理を管理します。
■ ハードウェア構成
割込みコントローラは , 以下のレジスタおよび回路より構成されます。
• ICR レジスタ
• 割込み優先度判定回路
• 割込みレベル , 割込み番号 ( ベクタ ) 発生部
• ホールドリクエスト取下げ要求発生部
■ 主要機能
割込みコントローラには , 主に以下の機能があります。
• NMI 要求 / 割込み要求の検出
• 優先度判定 ( レベルおよび番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み番号伝達 (CPU へ )
• NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復帰
指示 (CPU へ )
• DMAC へのホールドリクエスト取下げ要求発生
116
第 5 章 割込みコントローラ
5.2
レジスタ一覧
図 5.2-1 に割込みコントローラのレジスタ一覧を示します。
■ レジスタ一覧
図 5.2-1 割込みコントローラのレジスタ一覧
アドレス
000440H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR00
000441H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR01
000442H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR02
000443H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR03
000444H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR04
ICR3
ICR2
ICR1
ICR0
ICR05
000445H
−
−
−
ICR4
000446H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR06
000447H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR07
000448H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR08
000449H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR09
00044AH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR10
00044BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR11
00044CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR12
ICR3
ICR2
ICR1
ICR0
ICR13
00044DH
−
−
−
ICR4
00044EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR14
00044FH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR15
000450H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR16
000451H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR17
000452H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR18
000453H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR19
000454H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR20
ICR3
ICR2
ICR1
ICR0
ICR21
000455H
−
−
−
ICR4
000456H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR22
000457H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR23
000458H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR24
000459H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR25
00045AH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR26
00045BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR27
00045CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR28
ICR3
ICR2
ICR1
ICR0
ICR29
00045DH
−
−
−
ICR4
00045EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR30
00045FH
−
−
−
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
ICR31
( 続く )
117
第 5 章 割込みコントローラ
( 続き )
118
アドレス
000460H
bit7
−
000461H
bit6
bit5
bit4
bit3
bit2
bit1
bit0
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR32
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR33
000462H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR34
000463H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR35
000464H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR36
000465H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR37
000466H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR38
000467H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR39
ICR3
ICR2
ICR1
ICR0
ICR40
000468H
−
−
−
ICR4
000469H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR41
00046AH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR42
00046BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR43
00046CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR44
00046DH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR45
00046EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR46
00046FH
−
−
−
MHALTI
R/W
−
−
ICR3
R/W
LVL3
R/W
ICR2
R/W
LVL2
R/W
ICR1
R/W
LVL1
R/W
ICR0
R/W
LVL0
R/W
ICR47
000045H
ICR4
R
LVL4
R
HRCL
第 5 章 割込みコントローラ
ブロックダイヤグラム
5.3
図 5.3-1 に , 割込みコントローラのブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 5.3-1 ブロックダイヤグラム
UNMI
ウェイクアップ (LEVEL ≠ 11111B のとき "1")
優先度判定
NMI
NMI
処理
LEVEL4~
LEVEL0
5
LEVEL,
VECTOR
発生
レベル判定
ICR00
RI00
ベクタ
判定
ICR47
6
HLDREQ
取下げ
要求
MHALTI
VCT5~VCT0
割込み番号
( ベクタ )
RI47
(DLYIRQ)
R-bus
119
第 5 章 割込みコントローラ
5.4
レジスタ詳細説明
割込みコントローラで使用するレジスタの詳細について説明します。
■ Interrupt Control Register (ICR)
bit7
bit6
bit5
−
−
−
bit4
ICR4
R
bit3
ICR3
R/W
bit2
ICR2
R/W
bit1
ICR1
R/W
bit0
ICR0
R/W
初期値
---11111B
R/W : リード / ライト可能
R
: リードオンリ
−
: 未定義
割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対応する割
込み要求の割込みレベルを設定します。
[bit4 ∼ bit0] ICR4 ∼ ICR0
割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。
本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定されたレベルマ
スク値以上の場合は , CPU 側にて割込み要求はマスクされます。
リセットにより , "11111B" に初期化されます。
設定可能な割込みレベル設定ビットと割込みレベルの対応を表 5.4-1 に示します。
表 5.4-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)
HRCL
アドレス
bit7
000045H
MHALTI
bit6
−
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
LVL4
LVL3
LVL2
LVL1
LVL0
0--11111B
R
R/W
R/W
R/W
R/W
R/W
R/W : リード / ライト可能
R
: リードオンリ
−
: 未定義
ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。
[bit7] MHALTI
MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1"
にセットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後
で通常の割込みルーチンと同様にクリアしてください。
[bit4 ∼ bit0] LVL4 ∼ LVL0
バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定
します。
本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した
場合は , バスマスタに対してホールドリクエスト取下げ要求を出します。
LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。
121
第 5 章 割込みコントローラ
5.5
割込みコントローラの動作
割込みコントローラの動作を説明します。
• 優先順位判定
• NMI
• ホールドリクエストの取下げ要求
• スタンバイモード ( ストップ / スリープ ) からの復帰
■ 優先順位判定
割込みコントローラでは , 同時に発生している割込み要因の中で最も優先度の高い要
因を選択し , その要因の割込みレベルと割込み番号を CPU へ出力します。
割込み要因の優先順位判定基準は次のとおりです。
1. NMI
2. 以下の条件を満たす要因
• 割込みレベルの数値が 31 以外 (31 は割込み禁止 )
• 割込みレベルの数値が最も小さい要因
• その中で , 最も小さい割込み番号を持つ要因
上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし
て 31("11111B") を出力します。そのときの割込み番号は不定です。
割込み要因と割込み番号 , 割込みレベルの関係を表 5.5-1 に示します。
表 5.5-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 4)
割込み番号
割込み要因
122
割込みレベル オフセット
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
システム予約
11
0B
−
3D0H
000FFFD0H
ステップトレーストラップ
12
0C
−
3CCH
000FFFCCH
第 5 章 割込みコントローラ
表 5.5-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 4)
割込み番号
割込み要因
割込みレベル オフセット
TBR デフォルト
のアドレス
10 進
16 進
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/C-CAN
ウェイクアップ *
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
UART1 ( 受信完了 )
33
21
ICR17
378H
000FFF78H
UART1 ( 送信完了 )
34
22
ICR18
374H
000FFF74H
C-CAN0*
35
23
ICR19
370H
000FFF70H
システム予約
36
24
ICR20
36CH
000FFF6CH
積和
37
25
ICR21
368H
000FFF68H
PPG0/PPG1
38
26
ICR22
364H
000FFF64H
PPG2/PPG3
39
27
ICR23
360H
000FFF60H
PPG4/PPG5/PPG6/PPG7
40
28
ICR24
35CH
000FFF5CH
システム予約
41
29
ICR25
358H
000FFF58H
波形 ( アンダフロー ) 0/1/2
42
2A
ICR26
354H
000FFF54H
*:C-CAN の割込みは , MB91F267NA/MB91267NA に搭載されている機能です。
123
第 5 章 割込みコントローラ
表 5.5-1 割込み要因と割込み番号 , 割込みレベルの関係 (3 / 4)
割込み番号
割込み要因
割込みレベル オフセット
TBR デフォルト
のアドレス
10 進
16 進
フリーランタイマ 1( コンペアクリア )
43
2B
ICR27
350H
000FFF50H
フリーランタイマ 1 (0 検出 )
44
2C
ICR28
34CH
000FFF4CH
フリーランタイマ 2( コンペアクリア )
45
2D
ICR29
348H
000FFF48H
フリーランタイマ 2 (0 検出 )
46
2E
ICR30
344H
000FFF44H
タイムベースタイマオーバフロー
47
2F
ICR31
340H
000FFF40H
フリーランタイマ 0( コンペアクリア )
48
30
ICR32
33CH
000FFF3CH
フリーランタイマ 0 (0 検出 )
49
31
ICR33
338H
000FFF38H
システム予約
50
32
ICR34
334H
000FFF34H
A/D コンバータ 1
51
33
ICR35
330H
000FFF30H
A/D コンバータ 2
52
34
ICR36
32CH
000FFF2CH
PWC0 ( 測定完了 )
53
35
ICR37
328H
000FFF28H
システム予約
54
36
ICR38
324H
000FFF24H
PWC0 ( オーバフロー )
55
37
ICR39
320H
000FFF20H
システム予約
56
38
ICR40
31CH
000FFF1CH
ICU 0 ( 取込み )
57
39
ICR41
318H
000FFF18H
ICU 1 ( 取込み )
58
3A
ICR42
314H
000FFF14H
ICU2/ICU3 ( 取込み )
59
3B
ICR43
310H
000FFF10H
OCU0/OCU1 ( 一致 )
60
3C
ICR44
30CH
000FFF0CH
OCU2/OCU3 ( 一致 )
61
3D
ICR45
308H
000FFF08H
OCU4/OCU5 ( 一致 )
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
124
第 5 章 割込みコントローラ
表 5.5-1 割込み要因と割込み番号 , 割込みレベルの関係 (4 / 4)
割込み番号
割込み要因
割込みレベル オフセット
TBR デフォルト
のアドレス
10 進
16 進
システム予約
74
4A
−
2D4H
000FFED4H
システム予約
75
4B
−
2D0H
000FFED0H
システム予約
76
4C
−
2CCH
000FFECCH
システム予約
77
4D
−
2C8H
000FFEC8H
システム予約
78
4E
−
2C4H
000FFEC4H
システム予約
79
4F
−
2C0H
000FFEC0H
80
∼
255
50
∼
FF
2BCH
000FFEBCH
INT 命令で使用
−
∼
000H
∼
000FFC00H
■ 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" にクリアしてください。
125
第 5 章 割込みコントローラ
■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request)
優先度の高い割込み処理を , CPU のホールド中 (DMA 転送中 ) に行いたい場合は , ホー
ルドリクエスト発生元においてリクエストを取り下げてもらう必要があります。この
取下げ要求発生の基準となる割込みレベルを HRCL レジスタに設定します。
● 発生基準
HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合
は , DMAC に対して , ホールドリクエスト取下げ要求を発生します。
HRCL レジスタの割込みレベル>優先度判定後の割込みレベル→取下げ要求発生
HRCL レジスタの割込みレベル≦優先度判定後の割込みレベル→取下げ要求なし
取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効
であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割
込み要因をクリアしてください。
また , NMI を使用したときは , HRCL レジスタの MHALTI ビットが "1" となっている
ため , 取下げ要求が有効になっています。
● 設定可能なレベル
HRCL レジスタに設定可能な値は , ICR と同様に "10000B" から "11111B" までです。
"11111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また ,
"10000B" に設定した場合は NMI でのみ取下げ要求を発生します。
ホールドリクエスト取下げ要求発生となる割込みレベルの設定を表 5.5-2 に示します。
表 5.5-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定
HRCL レジスタ
取下げ要求発生となる割込みレベル
16
NMI のみ
17
NMI, 割込みレベル 16
18
NMI, 割込みレベル 16, 17
:
31
:
NMI, 割込みレベル 16 ∼ 30 [ 初期値 ]
リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割
込みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値
に設定してください。
■ スタンバイモード ( ストップ / スリープ ) からの復帰
割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現しま
す。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが "11111B" 以外 ) が 1 つでも発
生すると , クロック制御部に対してストップモードからの復帰要求を発生します。
優先度判定部はストップ復帰後 , クロックが供給されてから動作を再開しますので , 優
先度判定部の結果が出るまでの間 , CPU は命令を実行します。
スリープ状態からの復帰においても , 同様に動作します。
また , スリープ中であっても , 本モジュール内のレジスタはアクセス可能です。
126
第 5 章 割込みコントローラ
<注意事項>
• NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効
な入力レベルを NMI 端子に与えるようにしてください。
• ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺
の制御レジスタにて割込みレベルを "11111B" にしてください。
■ ホールドリクエスト取下げ要求機能 (HRCR) の使用例
DMA 転送中に , CPU が優先度の高い処理を行いたいときは , DMA に対してホールド
リクエストを取り下げてもらってホールド状態を解除する必要があります。ここでは ,
割込みを利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先
動作を実現します。
● 制御レジスタ
1. HRCL ( ホールドリクエストキャンセルレベル設定レジスタ ) :本モジュール
本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に ,
DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベ
ルを設定します。
2. ICR:本モジュール
使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し
ます。
● ハードウェア構成
各信号の流れは , 次のようになっています。
図 5.5-1 各信号の流れ
本モジュール
IRQ
バスアクセス要求
MHALTI
I-UNIT
DHREQ
DMAC
バス
コンバータ
CPU
(ICR)
(HRCL)
DHREQ
DHACK
IRQ
MHALTI
DHACK
:D-bus ホールドリクエスト
:D-bus ホールドアクノリッジ
: 割込み要求
: ホールドリクエスト取下げ要求
127
第 5 章 割込みコントローラ
● シーケンス
図 5.5-2 割込みレベル HRCL < ICR (LEVEL)
バスホールド
RUN
割込み処理
①
CPU
バスホールド (DMA 転送 )
割込みルーチンの例
②
バスアクセス要求
①割込み要因クリア
∼
DHREQ
② RETI
DHACK
IRQ
LEVEL
MHALTI
割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した
レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA
はアクセス要求を下げ , CPU はホールド状態から復帰して割込み処理を行います。
多重割込みの場合を以下に示します。
図 5.5-3 割込みレベル HRCL < ICR( 割込みⅠ ) < ICR( 割込みⅡ )
RUN
バスホールド
割込み I
割込み処理 II
③
CPU
④
割込み処理 I
①
バスホールド (DMA 転送 )
②
バスアクセス要求
DHREQ
DHACK
IRQ1
IRQ2
LEVEL
MHALTI
割込みルーチンの例
① , ③:割込み要因クリア
② , ④:RETI
上記例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した場
合を示しています。
HRCL レジスタに設定した割込みレベルより高い割込みレベルが発生している間は ,
DHREQ は "L" レベルになっています。
<注意事項>
HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してください。
128
第6章
外部割込み・NMI 制御部
外部割込み /NMI 制御部の概要 , レジスタの構成 /
機能および外部割込み /NMI 制御部の動作について
説明します。
6.1 外部割込み・NMI 制御部
129
第 6 章 外部割込み・NMI 制御部
6.1
外部割込み・NMI 制御部
外部割込み制御部は , NMI および INT0 ∼ INT7 に入力される外部割込み要求の制御
を行うブロックです。
外部割込み入力は , 検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下
りエッジ " から選択できます。
■ レジスタ一覧
EIRR0
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
000040H
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
000041H
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
000042H
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000000B
ENIR0
ELVR0
ELVR0
アドレス
000043H
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W : リード / ライト可能
130
第 6 章 外部割込み・NMI 制御部
■ ブロックダイヤグラム
図 6.1-1 ブロックダイヤグラム
R-bus
8
9
割込み要求
割込み許可レジスタ
ゲート
8
要因F/F
エッジ検出回路
9
INT0~INT7
NMI
割込み要因レジスタ
8
要求レベル設定レジスタ
■ レジスタ詳細説明
● 割込み許可レジスタ (ENIR: ENable Interrupt request Register)
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
000041H
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W : リード / ライト可能
ENIR は外部割込み要求出力のマスク制御を行います。このレジスタの "1" を書かれた
ビットに対応する割込み要求出力は許可され (INT0 の許可を EN0 が制御 ), 割込みコン
トローラに対して要求が出力されます。"0" が書かれたビットの対応する端子は割込み
要因を保持しますが , 割込みコントローラに対しては要求を発生しません。
NMI に対する許可ビットは存在しません。
● 外部割込み要因レジスタ (EIRR: External Interrupt Request Register)
アドレス
000040H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
00000000B
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W : リード / ライト可能
EIRR は読み出したときには対応する外部割込み要求があることを示し , 書込み時には
この要求を示すフリップフロップの内容をクリアするレジスタです。
この EIRR レジスタを読み出したときに "1" であった場合 , そのビットに対応する端子
に外部割込み要求があることを示します。
またこのレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップがクリ
アされます。
"1" の書込みは無効です。
リードモディファイライト (RMW) 系命令の読出し時には "1" が読み出されます。
NMI に対するフラグは , ユーザからアクセスできません。
131
第 6 章 外部割込み・NMI 制御部
● 外部割込み要求レベル設定レジスタ (ELVR: External LeVel Register)
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
000042H
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000000B
アドレス
000043H
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W : リード / ライト可能
ELVR は要求検出の選択を行うレジスタです。INT0 ∼ INT7 に 2 ビットずつが割り当
てられていて , 以下の設定になります。要求入力がレベルの場合 , EIRR の各ビットを
クリアしても入力がアクティブレベルならば該当するビットは再びセットされます。
表 6.1-1 ELVR 割当て表
LBx
LAx
0
0
"L" レベルで要求あり
0
1
"H" レベルで要求あり
1
0
立上りエッジで要求あり
1
1
立下りエッジで要求あり
動 作
NMI の検出レベルは , 常に立下りエッジです。
また , ストップ状態からの復帰に NMI を使用する場合は , "L" レベル検出となります。
<注意事項>
外部割込み要求レベルを変更すると , 内部で割込み要因が発生する場合がありますので ,
外部割込み要求レベル変更後に外部割込み要因レジスタ (EIRR) をクリアしてください。
外部割込み要因レジスタをクリアする際はいったん , 外部割込み要求レベルレジスタを読
み出してからクリアの書き込みを行ってください。
132
第 6 章 外部割込み・NMI 制御部
■ 動作説明
● 外部割込みの動作について
要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された要
求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号を発
生します。割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本
リソースからの割込みが最も優先順位が高かったときに , 該当する割込みが発生しま
す。
図 6.1-2 外部割込みの動作
外部割込み
割込みコントローラ
CPU
リソース要求
ICRyy
ELVR
IL
CMP
EIRR
ICRxx
ENIR
CMP
ILM
要因
● スタンバイからの復帰について
使用しないチャネルは , スタンバイに入る前に , 必ず禁止状態にしてください。
● 外部割込みの動作手順について
外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力
ポートに設定する。
2. 割込み許可レジスタ (ENIR) の対象となるビットを禁止状態にする。
3. 外部割込み要求レベル設定レジスタ (ELVR) の対象となるビットを設定する。
4. 外部割込み要求レベル設定レジスタ (ELVR) を読み出す。
5. 外部割込み要因レジスタ (EIRR) の対象となるビットをクリアする。
6. 割込み許可レジスタ (ENIR) の対象となるビットを許可状態にする。
( ただし , 5. と 6. は 16 ビットデータによる同時書込み可 )
本モジュール内のレジスタを設定するときには必ず許可レジスタを禁止状態に設定し
ておかなくてはなりません。また , 許可レジスタを許可状態にする前に必ず要因レジス
タをクリアしておく必要があります。これは , レジスタ設定時や割込み許可状態時に
誤って割込み要因が起こってしまうことを避けるためです。
133
第 6 章 外部割込み・NMI 制御部
● 外部割込み要求レベルについて
• 要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス
幅は最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。
• 要求入力レベルがレベル設定の場合 , パルス幅は最小 3 マシンサイクル必要としま
す。また割込み入力端子がアクティブレベルを保持し続けている限りは , 外部割込
み要因レジスタをクリアしても , 割込みコントローラへの割込み要求は発生し続け
ます。
• 要求入力レベルがレベル設定のとき , 外部より要求入力が入ってその後取り下げら
れても内部に要因保持回路が存在するので , 割込みコントローラへの要求はアク
ティブのままです。
割込みコントローラへの要求を取り下げるには外部割込み要因レジスタをクリア
する必要があります。
図 6.1-3 レベル設定時の外部割込み要因レジスタのクリア
割込み入力
レベル検出
外部割込み要因レジスタ
(要因保持回路)
許可ゲート
割込み
コントローラ
クリアしない限り要因を保持し続ける
図 6.1-4 割込み許可時の割込み要因と割込みコントローラへの割込み要求
"H"レベル
割込み入力
割込みコントローラ
への割込み要求
外部割込み要因レジスタのクリアによってインアクティブとなる
● NMI
• NMI は , ユーザ割込みの中で最強の割込みで , マスクすることは不可能です。
例外として , NMI を使用前に ILM を設定しないで NMI を起動すると , NMI 要因は
検出されますが , CPU は NMI 要求を受け付けません。このとき , ILM を NMI が受
け付けられるレベルに設定されるまで , NMI 要因は保持され続けます。このため ,
リセット後 , ILM を 16 以上の値に設定してから , NMI を使用してください。
また , NMI の内部要因フラグは , CPU からアクセスできませんので , リセット後の
NMI 端子は "H" レベルを保持してください。
• NMI の受付けは下記のとおりです。
通常時
: 立下りエッジ
ストップ時 : "L" レベル
• NMI によってストップモードの解除が可能です。ストップ状態で "L" レベルが入力
されるとストップ状態が解除され発振安定待ち時間がとられます。
NMI 要求検出部は NMI フラグがあり , NMI 要求によりセットされ , NMI 自身の割
込みの受付け , もしくは , リセットでのみクリアされます。なお , このビットは読出
し / 書込みができません。
134
第 6 章 外部割込み・NMI 制御部
図 6.1-5 NMI 要求検出
(NMIフラグ)
NMI要求
Q
0
SX
(ストップ解除)
立下り
エッジ検出
NMI
R
1
STOP
クリア (RST, 割込みアクノリッジ)
135
第 6 章 外部割込み・NMI 制御部
■ 外部割込みを使用した STOP 状態からの復帰時における注意事項
STOP 状態時に , INT 端子への最初に入力された外部割込み信号は非同期で入力され ,
STOP 状態から復帰することが可能です。ただし , その STOP 解除から , 発振安定待ち
時間経過するまでの期間においては , ほかの外部割込み信号の入力を認識できない期
間が存在します ( 図 6.1-6 の b+c+d 期間 )。STOP 解除後の外部入力信号を内部クロッ
クに同期させるため , クロックが安定していない期間内は , その割込み要因を保持でき
ないためです。
STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に外部割込み
信号を入力してください。
図 6.1-6 STOP 状態からの外部割込みによる復帰動作のシーケンス
INT1
INT0
内部STOP
レギュレータ
High
Low
内部動作(RUN)
命令実行(run)
X0
内部クロック
割込みフラグクリア
INTR0
INTE0
"1"(STOPモードに遷移前にenableへ設定)
INTR1
INTE1
"1"(STOPモードに遷移前にenableへ設定)
(a)STOP (b)レギュレータ安定待ち時間
(d)発振安定待ち時間
(c) 振動子の発振時間
136
(e)RUN
第 6 章 外部割込み・NMI 制御部
■ STOP 状態からの復帰動作について
現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行われます。
● STOP 遷移前の処理
外部割込みの入力
STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状
態となっています。この割込み信号が有効になると直ちに内部 STOP 信号を立ち下
げる動作が行われます。同時に外部割込み回路ではほかのレベル割込み入力の同期
化を行うように切り換わります。
● レギュレータ安定待ち時間
内部 STOP 信号が立ち下がると STOP 時のレギュレータから RUN 時のレギュレー
タへ切換え動作が開始されます。RUN 時のレギュレータの電圧出力が安定する前
に内部動作が開始されると動作が不安定になるため , 内部出力電圧の安定待ち時間
を確保しています。この期間はクロックが停止しています。
● 振動子の発振時間
レギュレータ安定待ち時間が終了後 , クロックの発振が開始されます。振動子の発
振時間は使用される振動子により異なります。
● 発振安定待ち時間
振動子の発振時間後にデバイス内部で発振安定待ち時間がとられます。発振安定待
ち時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安定
待ち時間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が開
始されるとともに , STOP からの復帰要因以外の外部割込み要因が受付け可能にな
ります。
137
第 6 章 外部割込み・NMI 制御部
138
第7章
REALOS 関連ハード
REALOS 関連ハードは , リアルタイム OS により
使用されます。したがって , REALOS を使用する
場合にはユーザプログラムで使用することはでき
ません。
遅延割込みモジュールおよびビットサーチモ
ジュールの概要 , レジスタ構成 / 機能および動作に
ついて説明します。
7.1 遅延割込みモジュール
7.2 ビットサーチモジュール
139
第 7 章 REALOS 関連ハード
遅延割込みモジュール
7.1
遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールです。
本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 /
取消しを行うことができます。
■ レジスタ一覧
DICR
bit7
アドレス
000044H
bit6
−
−
bit5
−
bit4
−
bit3
−
bit2
−
bit1
bit0
初期値
−
DLYI
-------0B
R/W
R/W : リード / ライト可能
-
: 未定義
■ ブロックダイヤグラム
R-bus
DLYI
割込み要求
■ レジスタ詳細説明
● DICR (Delayed Interrupt Control Register)
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
−
−
−
−
−
−
DLYI
-------0B
000044H
R/W
R/W : リード / ライト可能
-
: 未定義
遅延割込みを制御するレジスタです。
[bit0] DLYI
DLYI
説明
0
遅延割込み要因の解除・要求なし [ 初期値 ]
1
遅延割込み要因の発生
本ビットにより , 該当する割込み要因の発生・解除を制御します。
140
第 7 章 REALOS 関連ハード
■ 動作説明
遅延割込みは , タスク切換え用の割込みを発生します。本機能を使用することにより ,
ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことができます。
● 割込み番号
遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。
本品種では , 遅延割込みを割込み番号 63 (3FH) に割り当てています。
● DICR の DLYI ビット
本ビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き込
むことで , 遅延割込み要因を解除します。
本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ
ンの中で本ビットをクリアし , 併せてタスクの切換えを行うようにしてください。
141
第 7 章 REALOS 関連ハード
7.2
ビットサーチモジュール
入力レジスタに書き込まれたデータに対して , "0", "1" または変化点を検索し , 検出
したビット位置を返します。
■ レジスタ一覧
bit31
bit0
アドレス:0003F0H
BSD0
0 検出用データレジスタ
アドレス:0003F4H
BSD1
1 検出用データレジスタ
アドレス:0003F8H
BSDC
変化点検出用データレジスタ
アドレス:0003FCH
BSRR
検出結果レジスタ
■ ブロックダイヤグラム
図 7.2-1 ブロックダイヤグラム
D-bus
入力ラッチ
アドレスデコーダ
検出モード
1 検出データ化
ビットサーチ回路
検索結果
142
第 7 章 REALOS 関連ハード
■ レジスタ詳細説明
● 0 検出用データレジスタ (BSD0)
アドレス
0003F0H
bit31
bit0
属性→ ライトオンリ
初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
書き込んだ値に対して , 0 検出を行います。
リセットによる初期値は不定です。読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください。
(8 ビット , 16 ビット長のデータ転送命令は使わないでください。)
● 1 検出用データレジスタ (BSD1)
アドレス
0003F4H
bit31
bit0
属性→ リード / ライト可能
初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
データ転送には , 32 ビット長のデータ転送命令を使用してください。
(8 ビット , 16 ビット長のデータ転送命令は使わないでください。)
書込み時
書き込んだ値に対して , "1" を検出します。
読出し時
ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハン
ドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避・復帰する
ときに使用します。
0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー
タレジスタのみ操作することで退避・復帰できます。
リセットによる初期値は不定です。
● 変化点検出用データレジスタ (BSDC)
アドレス
0003F8H
bit31
bit0
属性→ ライトオンリ
初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
書き込んだ値に対して , 変化点の検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください。
(8 ビット , 16 ビット長のデータ転送命令は使わないでください。)
143
第 7 章 REALOS 関連ハード
● 検出結果レジスタ (BSRR)
0 検出 , 1 検出 , または変化点検出の結果が読み出されます。
どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ
れます。
アドレス
0003FCH
bit31
属性→ リードオンリ
初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
144
bit0
第 7 章 REALOS 関連ハード
■ 動作説明
● 0 検出
0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"0" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と , 返す数値の関係は , 表 7.2-1 のとおりです。
"0" が存在しないとき ( すなわち "FFFFFFFFH " という数値のとき ), "32" という値をサー
チ結果として返します。
[ 実行例 ]
書込みデータ
読出し値 (10 進 )
11111111111111111111000000000000B (FFFFF000H)
→
20
11111000010010011110000010101010B (F849E0AAH)
→
5
10000000000000101010101010101010B (8002AAAAH)
→
1
11111111111111111111111111111111B (FFFFFFFFH)
→
32
● 1 検出
1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"1" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す値との関係は , 表 7.2-1 のとおりです。
"1" が存在しないとき ( すなわち "00000000H " という数値のとき ), "32" という値をサー
チ結果として返します。
[ 実行例 ]
書込みデータ
読出し値 (10 進 )
00100000000000000000000000000000B (20000000H)
→
2
00000001001000110100010101100111B (01234567H)
→
7
00000000000000111111111111111111B (0003FFFFH)
→
14
00000000000000000000000000000001B (00000001H)
→
31
00000000000000000000000000000000B (00000000H)
→
32
145
第 7 章 REALOS 関連ハード
● 変化点検出
変化点検出用データレジスタに書き込まれたデータを bit30 から LSB へスキャンし ,
MSB の値と比較します。最初に MSB と異なる値を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す値は , 表 7.2-1 の示すとおりです。
変化点が存在しないときは , "32" を返します。
変化点検出では , 結果として "0" を返すことはありません。
[ 実行例 ]
書込みデータ
読出し値 (10 進 )
00100000000000000000000000000000B (20000000H)
→
2
00000001001000110100010101100111B (01234567H)
→
7
00000000000000111111111111111111B (0003FFFFH)
→
14
00000000000000000000000000000001B (00000001H)
→
31
00000000000000000000000000000000B (00000000H)
→
32
11111111111111111111000000000000B (FFFFF000H)
→
20
11111000010010011110000010101010B (F849E0AAH)
→
5
10000000000000101010101010101010B (8002AAAAH)
→
1
11111111111111111111111111111111B (FFFFFFFFH)
→
32
表 7.2-1 ビット位置と返す値 (10 進 )
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
31
0
23
8
15
16
7
24
30
1
22
9
14
17
6
25
29
2
21
10
13
18
5
26
28
3
20
11
12
19
4
27
27
4
19
12
11
20
3
28
26
5
18
13
10
21
2
29
25
6
17
14
9
22
1
30
24
7
16
15
8
23
0
31
存在しない
32
146
第 7 章 REALOS 関連ハード
■ 退避・復帰の処理
割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ
ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ
い。
1. 検出用データレジスタを読み出し , この内容を保存する ( 退避 )
2. ビットサーチモジュールを使用
3. 1. で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 )
以上の操作により, 次に検出結果レジスタを読み出したときに得られる値は, 1. 以前に,
ビットサーチモジュールに書き込まれた内容に応じたものとなります。最後に書き込
まれたデータレジスタが0検出用または変化点検出用であっても, 上記手順で正しく元
に戻ります。
147
第 7 章 REALOS 関連ハード
148
第8章
リロードタイマ
リロードタイマの概要 , レジスタの構成 / 機能およ
び動作について説明します。
8.1 概要
8.2 ブロックダイヤグラム
8.3 リロードタイマのレジスタ
8.4 リロードタイマの動作
8.5 注意点
149
第 8 章 リロードタイマ
8.1
概要
16 ビットリロードタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジ
スタ , 内部カウント , クロック作成用プリスケーラ , コントロールレジスタで構成さ
れています。
クロックソースとして , CPU クロック , 周辺クロックおよび外部バスクロックの 3
種類の内部クロック ( マシンクロックの 2/8/32/64/128 分周まで選択可能 ) , 外部ト
リガから選択できます。
MB91265A シリーズでは , 本タイマを 3 チャネル内蔵しています。
リロードタイマ 0 の端子への出力はありません。
■ レジスタ一覧
コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3)
アドレス
ch.0:00004EH
ch.1:000056H
ch.2:00005EH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
−
−
−
−
−
−
CSL2
R/W
CSL1
R/W
CSL0
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
MOD0
R/W
−
R
OUTL
R/W
RELD
R/W
INTE
R/W
UF
R/W
CNTE
R/W
TRG
R/W
MOD2 MOD1
R/W
R/W
初期値
---00000B
初期値
00000000B
16 ビットタイマレジスタ (TMR0 ∼ TMR3)
ch.0:00004AH
ch.1:000052H
ch.2:00005AH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
R
R
R
R
R
R
R
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R
−
R
R
R
R
R
R
R
初期値
XXXXXXXXB
初期値
XXXXXXXXB
16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3)
ch.0:000048H
ch.1:000050H
ch.2:000058H
R/W
R
W
X
−
150
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
W
W
W
W
W
W
W
W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
W
−
W
W
W
W
W
W
W
: リード / ライト可能
: リードオンリ
: ライトオンリ
: 不定
: 未定義
初期値
XXXXXXXXB
初期値
XXXXXXXXB
第 8 章 リロードタイマ
ブロックダイヤグラム
8.2
リロードタイマのブロックダイヤグラムを示します。
■ リロードタイマのブロックダイヤグラム
16 ビットリロードレジスタ
(TMRLR)
リロード
RELD
16 ビットダウンカウンタ UF
(TMR)
OUTL
R-bus
INTE
OUT
CTL
カウント
許可
IRQ
UF
CNTE
TRG
クロック
セレクタ
CSL2
TOT1
TOT2
CSL0
EXCK
プリスケーラ
外部タイマ出力
CSL1
IN
プリスケーラ
クリア
CTL
CSL2
CSL1
CSL0
TOT1E , PFR0 のビット
TOT2E
外部トリガ
選択
外部トリガ入力
TIN0
TIN1
TIN2
151
第 8 章 リロードタイマ
8.3
リロードタイマのレジスタ
リロードタイマで使用するレジスタの構成と機能について説明します。
■ コントロールステータスレジスタ (TMCSR: TMCSR0 ∼ TMCSR2)
16 ビットタイマの動作モードおよび割込みの制御を行います。
UF, CNTE, TRG ビット以外の書換えは , CNTE=0 のときに行うようにしてください。
アドレス
ch.0:00004EH
ch.1:000056H
ch.2:00005EH
bit15
bit14
bit13
bit12
bit11
bit10
−
−
−
−
−
−
CSL2
R/W
CSL1
R/W
CSL0
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
−
R
OUTL
R/W
RELD
R/W
INTE
R/W
UF
R/W
CNTE
R/W
TRG
R/W
MOD0
R/W
bit9
bit8
初期値
---00000B
MOD2 MOD1
R/W
R/W
初期値
00000000B
R/W : リード / ライト可能
R
: リードオンリ
−
: 未定義
[bit12 ∼ bit10] CSL2, CSL1, CSL0 (Count source select)
カウントソースセレクトビットです。カウントソースは内部クロックと外部トリガ
を選択できます。選択可能なカウントソースは以下のとおりです。
φ=32 MHz
φ=16 MHz
内部クロック φ/21 ( 初期値 )
62.5 ns
125 ns
1
内部クロック φ/23
250 ns
0.5 µs
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
CSL2
CSL1
CSL0
0
0
0
0
0
0
カウントソース (φ: マシンクロック )
外部トリガをカウントソースに設定した場合のカウント有効エッジは , MOD1,
MOD0 ビットにより設定されます。
外部トリガに必要な最小パルス幅は , 2 × T (T: マシンクロックサイクル ) です。
CSL2,CSL1,CSL0=111B は , ch.1 + ch.2 のカスケード接続で , ch.2 のレジスタのみ設定
可能です。ch.1 では設定禁止です。
152
第 8 章 リロードタイマ
[bit9 ∼ bit7] 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
設定禁止
外部トリガ選択時のリロードは , ソフトウェアトリガとアンダフローで発生しま
す。
[bit6] 未定義ビット
常に "0" が読み出されます。
[bit5] OUTL
外部タイマ出力レベルを設定するビットです。本ビットが "0" のときと "1" のとき
では出力レベルが逆になります。
153
第 8 章 リロードタイマ
[bit4] 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 は PFR0 (Port Function Register) 中の TOT1E, TOT2E を示します。
( 注意事項 ) リロードタイマ 0 の端子への出力はありません。
[bit3] INTE
割込み要求許可ビットです。"1" のとき UF ビットが "1" になると割込み要求を発生
します。"0" のときは割込み要求を発生しません。
[bit2] UF
タイマ割込み要求フラグです。カウンタの値が "0000H" → "FFFFH" へのアンダフ
ローにより "1" にセットされます。"0" の書込みによってクリアされます。
このビットへの "1" 書込みは意味がありません。
リードモディファイライト系命令における読出しでは "1" が読み出されます。
[bit1] CNTE
タイマのカウント許可ビットです。このビットに "1" を書き込むと , 起動トリガ待
ち状態になります。"0" 書込みによりカウント動作は停止します。
[bit0] TRG
ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ
ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。
"0" 書込みは意味を持ちません。読出し値は常に "0" です。
本レジスタによるトリガ入力は , CNTE=1 のときのみ有効となります。CNTE=0 の
ときには何も起こりません。
154
第 8 章 リロードタイマ
■ TMR レジスタ (16 ビットタイマレジスタ )
16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定で
す。本レジスタの読出しは必ず 16 ビットデータ転送命令で行ってください。
アドレス
ch.0:00004AH
ch.1:000052H
ch.2:00005AH
R
X
−
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
R
R
R
R
R
R
R
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R
−
R
R
R
R
R
R
R
初期値
XXXXXXXXB
初期値
XXXXXXXXB
: リードオンリ
: 不定
: 未定義
■ TMRLR レジスタ (16 ビットリロードレジスタ )
本レジスタは , カウントの初期値を保持しておくためのレジスタです。初期値は不定で
す。本レジスタの読出しは必ず 16 ビットデータ転送命令で行ってください。
アドレス
ch.0:000048H
ch.1:000050H
ch.2:000058H
W
X
−
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
W
W
W
W
W
W
W
W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
W
−
W
W
W
W
W
W
W
初期値
XXXXXXXXB
初期値
XXXXXXXXB
: ライトオンリ
: 不定
: 未定義
155
第 8 章 リロードタイマ
8.4
リロードタイマの動作
リロードタイマの内部クロック動作 , アンダフロー動作について説明します。
■ 内部クロック動作
内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマシ
ンクロックの 2, 8, 32, 64, 128 分周のクロックから選択することができます。
カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ
ジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。TRG ビット
によるトリガ入力は , タイマが起動状態のとき (CNTE=1) 動作モードにかかわらず常に
有効です。
カウンタの起動およびカウンタの動作について , 図 8.4-1 に示します。
カウントスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ
ロードされるまでに , T (T:周辺系クロックマシンサイクル ) の時間がかかります。
図 8.4-1 カウンタの起動および動作
カウントクロック
カウンタ
リロードデータ
データロード
CNTE (TMCSR レジスタ )
TRG (TMCSR レジスタ )
T
156
-1
-1
-1
第 8 章 リロードタイマ
■ アンダフロー動作
本タイマは , カウンタの値が "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]
157
第 8 章 リロードタイマ
■ 出力端子機能
TOT1, TOT2 出力端子は , リロードモード時はアンダフローにより反転するトグル出力
として , ワンショットモード時はカウント中を示すパルス出力として機能します。出力
極性はレジスタの OUTL ビットにより設定できます。
OUTL=0 のときトグル出力は , 初
期値が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OUTL=1 にす
ると出力波形は反転します。
図 8.4-3 出力端子機能 [RELD=1, OUTL=0]
カウント開始
アンダフロー
TOT1, TOT2
CNTE
OUTL=1 のとき
は反転
汎用ポート
起動トリガ
図 8.4-4 出力端子機能 [RELD=0, OUTL=0]
カウント開始
アンダフロー
TOT1, TOT2
CNTE
OUTL=1 の
ときは反転
汎用ポート
起動トリガ
起動トリガ待ち状態
158
第 8 章 リロードタイマ
■ カウンタの動作状態
カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号に
よって決まっています。設定可能な状態として CNTE=0, WAIT=1 の停止状態 (STOP 状
態 ) , CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ) , CNTE=1, WAIT= 0 の動作
状態 (RUN 状態 ) があります。各状態の遷移を図 8.4-5 に示します。
図 8.4-5 カウンタ状態遷移
リセット
ハードウェアによる状態
遷移
レジスタアクセスによる
状態遷移
STOP
OP
CNTE=0,WAIT=1
カウンタ : 停止時の値を保持
リセット直後は不定
CNTE=1
TRG=0
WAIT
CNTE=1
TRG=1
CNTE=1,WAIT=1
カウンタ : 停止時の値を保持
リセット直後ロードする
までは不定
TRG=1
RUN
UN
RELD . UF
CNTE=1,WAIT=0
カウンタ : 動作
TRG=1
RELD . UF
LOAD
AD
CNTE=1,WAIT=0
リロードレジスタの内容をカウンタへロード
ロード終了
159
第 8 章 リロードタイマ
8.5
注意点
リロードタイマの使用上の注意点について説明します。
■ 注意点
• 内部プリスケーラは , コントロールステータスレジスタの bit1 ( タイマ許可:CNTE)
が "1" に設定されている状態でトリガ ( ソフトトリガ , あるいは外部トリガ ) がかけ
られることにより動作可能になります。
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラ
グセットが優先し , クリア動作は無効になります。
• 16 ビットタイマリロードレジスタへの書込みと , リロードのタイミングが重なった
場合には , 旧データと新データがカウンタにロードされるのは , 次のリロードのと
きになります。
• 16 ビットタイマレジスタのロードとカウントのタイミングが重複した場合には ,
ロード ( リロード ) 動作の方が優先されます。
160
第9章
タイミングジェネレータ
タイミングジェネレータの概要 , レジスタの構成 /
機能および動作について説明します。
9.1 タイミングジェネレータ
161
第 9 章 タイミングジェネレータ
タイミングジェネレータ
9.1
タイミングジェネレータは , 複数の PPG タイマをタイマ間で同期し遅延起動を行わ
せるための機能です。
■ レジスタ一覧
コントロールレジスタ (TTCR)
アドレス
000144H
bit31
bit30
bit29
bit28
TRG60 TRG40 TRG20 TRG00
R/W
R/W
R/W
R/W
bit27
bit26
bit25
bit24
CS1
R/W
CS0
R/W
MONI
R/W
STR
R/W
初期値
11110000B
テストレジスタ (TSTPR ( 書込み禁止 , 読出し値意味なし ))
アドレス
000147H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
−
R
−
R
−
R
−
R
−
R
−
R
−
R
−
R
bit31
bit30
bit29
bit28
bit27
bit26
bit25
bit24
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
bit23
bit22
bit21
bit20
bit19
bit18
bit17
bit16
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000000B
コンペアレジスタ 0 (COMP0)
アドレス
000148H
初期値
00000000B
コンペアレジスタ 2 (COMP2)
アドレス
000149H
初期値
00000000B
コンペアレジスタ 4 (COMP4)
アドレス
00014AH
初期値
00000000B
コンペアレジスタ 6 (COMP6)
アドレス
00014BH
bit7
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W : リード / ライト可能
R
: リードオンリ
−
: 未定義
162
初期値
00000000B
第 9 章 タイミングジェネレータ
■ ブロックダイヤグラム
図 9.1-1 ブロックダイヤグラム
プリスケーラ
CS1/CS0
1/2
1/8
1/32
1/64
STR
MONI
8ビットカウンタ
カウンタ値
COMP0
比較回路
セット
クリア
PPG0TG
セット
クリア
PPG2TG
セット
クリア
PPG4TG
セット
クリア
PPG6TG
COMP2
比較回路
COMP4
比較回路
COMP6
比較回路
163
第 9 章 タイミングジェネレータ
■ タイミングジェネレータのレジスタ
● TTCR (Control Register)
アドレス
000144H
bit31
bit30
bit29
bit28
TRG60 TRG40 TRG20 TRG00
R/W
R/W
R/W
R/W
bit27
bit26
bit25
bit24
CS1
R/W
CS0
R/W
MONI
R/W
STR
R/W
初期値
11110000B
R/W : リード / ライト可能
タイミングジェネレータの制御レジスタです。
[bit31, bit30, bit29, bit28] TRG60/TRG40/TRG20/TRG00 (PPG Trigger Clear bit):
PPG トリガクリアビット
本ビットに "0" を書き込むことにより , 出力されている PPG 起動トリガをクリアし
ます。
各ビットのトリガとの対応は以下のとおりです。
TRG00: PPG0TG
TRG20: PPG2TG
TRG40: PPG4TG
TRG60: PPG6TG
本レジスタの読出し値は常に "1" です。
[bit27, bit26] CS1/CS0 (Count Select bit): カウントクロック選択ビット
8 ビットカウンタの動作クロックを以下のように選択します。
CS1
CS0
0
0
マシンクロック /2 (62.5 ns @32 MHz 時 )
0
1
マシンクロック /8 (250 ns @32 MHz 時 )
1
0
マシンクロック /32 (1 µs @32 MHz 時 )
1
1
マシンクロック /64 (2 µs @32 MHz 時 )
クロックソース
[bit25] MONI (MONITER bit):8 ビットカウンタ動作中モニタビット
8 ビットカウンタの動作を以下のように選択します。
0
カウンタ動作停止中
1
カウンタ動作中
書込み値は意味を持ちません。
[bit24] STR (START bit):8 ビットカウンタ動作許可ビット
8 ビットカウンタの動作を以下のように選択します。
0
意味を持ちません。
1
カウンタ動作開始
"0" 書込みは意味を持ちません。読出し値は常に "0" です。
164
第 9 章 タイミングジェネレータ
コンペアレジスタ : COMP0, COMP2, COMP4, COMP6
アドレス
000148H
アドレス
000149H
アドレス
00014AH
アドレス
00014BH
bit31
bit30
bit29
bit28
bit27
bit26
bit25
bit24
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
bit23
bit22
bit21
bit20
bit19
bit18
bit17
bit16
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
初期値
00000000B
初期値
00000000B
初期値
00000000B
初期値
00000000B
R/W : リード / ライト可能
8 ビットカウンタと本レジスタ値が一致したときに PPG 起動信号がセットされます。
カウント動作中に本レジスタの書換えを行わないでください。
本レジスタ値が "00000000B" の場合は PPG 起動信号はセットされません。
■ タイミングジェネレータの動作概要
● プリスケーラの動作
8 ビットカウンタ用のカウントクロックをマシンクロックより分周したものを設定す
るものです。
● 8 ビットカウンタ
8 ビットカウンタは , STR ビットによりプリスケーラからのカウントクロックでカウン
トを行います。8 ビットカウンタはカウントアップを開始し , オーバフローでカウント
停止します。カウント中のカウンタスタートは無視されます。
8 ビットカウンタがカウント中は MONI ビットには "1" が読めます。停止すると "0" が
読めます。
8 ビットカウンタのカウント値は各比較器に入力されています。
図 9.1-2 8 ビットカウンタの動作・停止タイミング
8ビットカウンタ
STR=1
STR=1
カウント中
MONI=1
カウント停止
MONI=0
カウント中
MONI=1
カウント停止
MONI=0
オーバフローでカウント停止
165
第 9 章 タイミングジェネレータ
図 9.1-3 トリガタイミング
8ビットカウンタ
STR=1
TRG00,TRG20=0
F0H
A0H
80H
TRG40,TRG60=0
40H
COMP0
40H
COMP2
80H
COMP4
A0H
COMP6
F0H
PPG0TG
PPG2TG
PPG4TG
PPG6TG
166
第 10 章
PPG
PPG の概要 , レジスタの構成 / 機能および動作に
ついて説明します。
10.1 概要
10.2 ブロックダイヤグラム
10.3 PPG のレジスタ
10.4 動作説明
167
第 10 章 PPG
10.1
概要
PPG は , 8 ビットのリロードタイマモジュールで , タイマ動作に応じたパルス出力制
御により , PPG 出力を行います。
ハードウェアとして , 8 ビットダウンカウンタ 8 個 , 8 ビットリロードレジスタ 16
個 , 制御レジスタ , 外部パルス出力 8 本 , 割込み出力 8 本を有します。
MB91265A シリーズは , 8 ビット PPG として 8 チャネル分 , 16 ビット PPG として
4 チャネル分搭載しています。
■ PPG の機能
• 8 ビット PPG 出力独立動作モード
独立した PPG 出力動作が可能です。
• 16 ビット PPG 出力動作モード
1 チャネルの 16 ビットの PPG 出力動作が可能です。
• 8 + 8 ビット PPG 出力動作モード
ch.(n + 1) の出力を ch.(n) のクロック入力とすることにより , 任意周期の 8 ビット
PPG 出力動作が可能です (n=0, 2, 4, 6)。
• 16 + 16 ビット PPG 出力動作モード
ch.(n + 3) + ch.(n + 2) の 16 ビットプリスケーラ出力を ch.(n + 1) + ch.(n) の 16 ビッ
ト PPG のクロック入力とするモードです (n=0, 4)。
• PPG 出力動作
任意周期・デューティ比のパルス波を出力します。
外付け回路により , D/A コンバータとしても使用可能です。
• 出力反転機能
PPG の出力値を反転させることが可能です。
168
第 10 章 PPG
■ レジスタ一覧
PPG 起動レジスタ (TRG)
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000130H
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PEN7
R/W
PEN6
R/W
PEN5
R/W
PEN4
R/W
PEN3
R/W
PEN2
R/W
PEN1
R/W
PEN0
R/W
初期値
00000000B
初期値
00000000B
出力反転レジスタ (REVC)
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000134H
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
REV7
R/W
REV6
R/W
REV5
R/W
REV4
R/W
REV3
R/W
REV2
R/W
REV1
R/W
REV0
R/W
bit5
bit4
bit3
bit2
bit1
bit0
−
−
STGR
R/W
EDGE
R/W
初期値
00000000B
初期値
00000000B
GATE 機能制御レジスタ (GATEC)
アドレス
000133H
bit7
−
−
bit6
−
−
−
−
−
−
−
−
初期値
XXXXXX00B
PPG0 ∼ PPG7 動作モード制御レジスタ (PPGC0 ∼ PPGC7)
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
PIEn
R/W
PUFn
R/W
INTMn
R/W
PCS1
R/W
PCS0
R/W
MD1*
R/W
MD0*
R/W
TTRGn
R/W
:000108H
:000109H
:00010AH
:00010BH
:000114H
:000115H
:000116H
:000117H
R/W : リード / ライト可能
X
: 不定
−
: 未定義
初期値
00000000B
n=0 ∼ 7
* : MD1, MD0 は , 偶数チャネルのみ存在し , 奇数チャネルには存在
しません。奇数チャネルの初期値は不定です。書込みは意味があ
りません。
169
第 10 章 PPG
● リロードレジスタ : 8 ビット PPG モード
リロードレジスタ H (PRLH0 ∼ PRLH7)
アドレス
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
:000100H
:000102H
:000104H
:000106H
:00010CH
:00010EH
:000110H
:000112H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
リロードレジスタ L (PRLL0 ∼ PRLL7)
アドレス
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
:000101H
:000103H
:000105H
:000107H
:00010DH
:00010FH
:000111H
:000113H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
R/W : リード / ライト可能
X
: 不定
● リロードレジスタ : 16 ビット PPG モード
リロードレジスタ H (PRLH0, PRLH2, PRLH4, PRLH6)
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ch.0
ch.2
ch.4
ch.6
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
:000100H
:000104H
:00010CH
:000110H
初期値
XXXXXXXXB
初期値
XXXXXXXXB
リロードレジスタ L (PRLL0, PRLL2, PRLL4, PRLL6)
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ch.0
ch.2
ch.4
ch.6
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
:000102H
:000106H
:00010EH
:000112H
R/W : リード / ライト可能
X
: 不定
170
初期値
XXXXXXXXB
初期値
XXXXXXXXB
第 10 章 PPG
10.2
ブロックダイヤグラム
PPG のブロックダイヤグラムを示します。
■ 8 ビット PPG ch.0, ch.2, ch.4, ch.6 のブロックダイヤグラム
ch.(n + 1) のボロー
マシンクロックの 64 分周
マシンクロックの 16 分周
マシンクロックの 4 分周
マシンクロック
ポートへ
PPG
出力ラッチ
反転
クリア
0
1
TTRGn
カウントクロック
選択
S
R
PCNT ( ダウンカウンタ )
"H"/"L" セレクト
PEN(n+1)
PPG(n)TG
タイミング
ジェネレータより
Q
IRQn
リロード
"H"/"L" セレクト
PRLLn PRLBHn
PRLHn
PIEn
PUFn
"L" 側データバス
"H" 側データバス
PPGCn / TRG
n = 0,2,4,6
動作モード
( 制御 )
171
第 10 章 PPG
■ 8 ビット PPG ch.1, ch.5 のブロックダイヤグラム
ch.(n + 1) のボロー
マシンクロックの 64 分周
マシンクロックの 16 分周
マシンクロックの 4 分周
マシンクロック
ポートへ
PPG
出力ラッチ
反転
クリア
0
1
TTRGn
PEN(n)
PPG(n-1)TG
タイミング
ジェネレータより
S
R Q
カウントクロック
選択
IRQn
PCNT ( ダウンカウンタ )
"H"/"L" セレクト
リロード
ch.(n − 1)
のボロー
"H"/"L" セレクト
PRLLn PRLBHn
PUFn
PIEn
PRLHn
"L" 側データバス
"H" 側データバス
PPGCn / TRG
n = 1,5
172
動作モード
( 制御 )
第 10 章 PPG
■ 8 ビット PPG ch.3, ch.7 のブロックダイヤグラム
ポートへ
マシンクロックの 64 分周
マシンクロックの 16 分周
マシンクロックの 4 分周
マシンクロック
PPG
出力ラッチ
反転
クリア
0
1
TTRGn
PEN(n)
PPG(n-1)TG
タイミング
ジェネレータより
S
R Q
カウントクロック
選択
IRQn
PCNT ( ダウンカウンタ )
リロード
"H"/"L" セレクト
ch.(n − 1)
のボロー
"H"/"L" セレクト
PRLLn
PRLBHn
PUFn
PIEn
PRLHn
"L" 側データバス
"H" 側データバス
PPGCn / TRG
n = 3,7
動作モード
( 制御 )
173
第 10 章 PPG
■ ゲート機能のブロックダイヤグラム
TGR レジスタより
PEN0 PEN1
セレクタ
レベル検出
セレクタ
PPG ch.0 の
PEN0
多機能タイマの
GATE より
0
1
セレクタ
PPG ch.1 の
PEN1
STGR
0
1
174
0
X
1
X
1
X
EDGE
GATEC
MD1 ch.0
MD0
MD1 ch.1
MD0
第 10 章 PPG
PPG のレジスタ
10.3
PPG のレジスタについて説明します。
■ PPGCn レジスタ (PPGn 動作モード制御レジスタ ) n=0, 1, 2, 3, 4, 5, 6, 7
アドレス
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
:000108H
:000109H
:00010AH
:00010BH
:000114H
:000115H
:000116H
:000117H
bit7
PIEn
R/W
bit6
PUFn
R/W
bit5
bit4
INTMn PCS1
R/W
R/W
bit3
PCS0
R/W
bit2
MD1
R/W
bit1
MD0
R/W
bit0
TTRGn
R/W
初期値
00000000B
R/W : リード / ライト可能
X
: 不定
[bit7] PIEn(Ppg Interrupt Enable):PPG 割込み許可ビット
PPG の割込み許可を以下のように制御します。
0
割込み禁止
1
割込み許可
•
本ビットが "1" のとき , PUFn が "1" になると割込み要求が発生します。
•
本ビットが "0" のときは , 割込み要求を発生しません。
•
リセットにより , "0" に初期化されます。
•
読出し / 書込み可能です。
[bit6] 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" になります。
•
このビットへの "1" 書込みは意味がありません。
•
リードモディファイライトへの読出し時は , "1" が読み出されます。
•
リセットにより , "0" に初期化されます。
•
読出し / 書込み可能です。
175
第 10 章 PPG
[bit5] INTMn(Interrupt Mode):割込みモードビット
PUFn のビットの検出を PRLBHn からのアンダフロー時のみに限定することができ
ます。
0
アンダフロー時 , PUFn を "1" にします。
1
PRLBHn からのアンダフロー時のみ , PUFn を "1" にします。
•
リセットにより , "0" に初期化されます。
•
読出し / 書込み可能です。
•
本ビットを "1" にすれば , PPG の波形の 1 周期出力時に割込みをかけることが可
能となります。
本ビットは , 割込み許可時に書き換えないでください。
•
[bit4, bit3] 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" に初期化されます。
•
読出し / 書込み可能です。
[bit2, bit1] MD1, MD0 (ppg count MoDe):動作モード選択ビット
PPG タイマの動作モードを以下のように選択します。
176
MD1
MD0
0
0
8 ビット PPG 2 チャネル独立モード
0
1
8 ビットプリスケーラ+ 8 ビット PPG モード
1
0
16 ビット PPG モード
1
1
16 ビットプリスケーラ+ 16 ビット PPG モード
動作モード
•
リセットにより , "00B" に初期化されます。
•
読出し / 書込み可能です。
•
本ビットは偶数チャネルのみに存在します。
第 10 章 PPG
[bit0] TTRGn(Timing TRGer):タイミングトリガ選択ビット
タイミングジェネレータからの起動信号によってのみPPGを起動させることができ
ます。
0
TRG レジスタもしくは多機能タイマにより起動します。
1
タイミングジェネレータによる起動のみとなります。
•
リセットにより , "00B" に初期化されます。
•
読出し / 書込み可能です。
177
第 10 章 PPG
■ PRLL/PRLH レジスタ ( リロードレジスタ : PRLL0 ∼ PRLL7/PRLH0 ∼ PRLH7)
リロードレジスタ H (PRLH0 ∼ PRLH7)
アドレス
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
:000100H
:000102H
:000104H
:000106H
:00010CH
:00010EH
:000110H
:000112H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
リロードレジスタ L (PRLL0 ∼ PRLL7)
アドレス
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
:000101H
:000103H
:000105H
:000107H
:00010DH
:00010FH
:000111H
:000113H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
R/W : リード / ライト可能
X
: 不定
ダウンカウンタ PCNT へのリロード値を保持するレジスタです。それぞれ , 以下に示
す役割を持っています。
レジスタ名
機能
PRLL
"L" 側リロード値保持
PRLH
"H" 側リロード値保持
どのレジスタも読出し / 書込み可能です。
<注意事項>
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット
PPG モードで使用する場合には , プリスケーラ側の PRLL と PRLH に異なる値を設定す
ると, PPG波形がサイクルごとに異なる場合があるので, プリスケーラ側のPRLLとPRLH
は , 同じ値に設定することを推奨します。
178
第 10 章 PPG
■ PPG 起動レジスタ (TRG)
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000130H
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PEN7
R/W
PEN6
R/W
PEN5
R/W
PEN4
R/W
PEN3
R/W
PEN2
R/W
PEN1
R/W
PEN0
R/W
初期値
00000000B
初期値
00000000B
R/W : リード / ライト可能
−
: 未定義
[bit7 ∼ bit0] PEN7 ∼ PEN0 (Ppg ENable):PPG 動作許可ビット
PPG の動作開始および動作モードを以下のように選択します。
PEN7 ∼ PEN0
動作状態
0
動作停止 ("L" レベル出力保持 )
1
PPG 動作許可
•
リセットにより , "0" に初期化されます。
•
読出し / 書込み可能です。
■ 出力反転レジスタ (REVC)
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000134H
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
REV7
R/W
REV6
R/W
REV5
R/W
REV4
R/W
REV3
R/W
REV2
R/W
REV1
R/W
REV0
R/W
初期値
00000000B
初期値
00000000B
R/W : リード / ライト可能
−
: 未定義
[bit7 ∼ bit0] REV7 ∼ REV0 :出力反転ビット
PPG の出力値を初期レベルも含めて反転します。
REV7 ∼ REV0
出力レベル
0
通常
1
反転
•
リセットにより , "0" に初期化されます。
•
読出し / 書込み可能です。
•
単に , PPG 出力を反転するだけですので , 初期レベルも反転します。
また , リロードレジスタの "L", "H" の関係も逆になります。
179
第 10 章 PPG
■ GATE 機能制御レジスタ (GATEC)
bit7
アドレス
000133H
−
−
bit6
−
−
bit5
−
−
bit4
−
−
bit3
−
−
bit2
bit1
bit0
−
−
STGR
R/W
EDGE
R/W
初期値
XXXXXX00B
R/W : リード / ライト可能
X
: 不定
−
: 未定義
[bit1] STGR:ゲート機能選択ビット
多機能タイマからの起動信号を用いるか , TRG レジスタによる起動を行うかを以下
のように選択します。
STGR
動作モード
0
TRG レジスタによる起動
1
多機能タイマからの起動信号による起動
•
リセットにより , "0" に初期化されます。
•
読出し / 書込み可能です。
[bit0] EDGE:起動有効エッジ選択ビット
多機能タイマからの起動有効エッジを以下のように選択します。
EDGE
動作モード
0
立上り起動→立下り停止 *1
1
立下り起動→立上り停止 *2
•
リセットにより , "0" に初期化されます。
•
読出し / 書込み可能です。
*1: "H" の間 , 起動します。
*2: "L" の間 , 起動します。
180
第 10 章 PPG
10.4
動作説明
PPG には , 8 ビット長の PPG ユニットが 8 チャネルあり , 独立モード以外に , 連結
動作させることにより , 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
PPGn [0 → 1]
PRLL → PCNT
PPGn [1 → 0]
n=0 ∼ 7
また , PPGCn レジスタの bit7:PIEn が "1" のとき , カウンタの "00H" ∼ "FFH" へのボ
ロー (16 ビット PPG モードの場合には , "0000H" ∼ "FFFFH" へのボロー) によって割込
み要求が出力されます。
● 動作モードについて
本ブロックは , 独立モードと , 8 ビットプリスケーラ+ 8 ビット PPG モードと , 16 ビッ
ト PPG 1 チャネルモードと , 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種
類の動作モードがあります。
• 独立モードは , 8 ビット PPG として独立に動作させる動作モードです。PPGn 端子は
ch.(n) の PPG 出力が接続されます (n=0 ∼ 7)。
• 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 出力が接続されます。
181
第 10 章 PPG
● PPG 出力動作について
PPG は , TRG レジスタ (PPG 起動レジスタ ) の各チャネルのビットを "1" にセットする
ことによって起動され , カウントを開始します。動作を開始した後は , TRG レジスタの
各チャネルビットに "0" を書き込むことによってカウント動作を停止し , 停止した後 ,
パルス出力は "L" レベルを保持します。
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ
ト PPG モード時には , プリスケーラチャネルを停止状態で , PPG チャネルを動作状態
に設定しないでください。
16 ビット PPG モード時には , 各チャネルの TRG レジスタの PENn をそれぞれ , 同時に
開始 / 停止の制御を行ってください (n=0 ∼ 7)。
以下に PPG 出力動作について説明します。
PPG 動作時は , 任意周波数 / 任意デューティ比 ( パルス波の "H" レベル期間と "L" レベ
ル期間の比 ) のパルス波出力を連続して出力します。PPG はパルス波出力を開始する
と , 動作停止を設定するまで停止しません。
PENn
出力端子
PENn により
動作開始
("L" 側から )
PPG
T x (L+1)
T x (H+1)
スタート
n=0∼7
PPG 出力動作 出力波形
L:PRLL の値
H:PRLH の値
T:マシンクロック
(φ, φ/4, φ/16, φ/64)
または
PPG タイマからの入力
(PPGCn のカウントクロック選択
ビットによる )
● リロード値とパルス幅の関係について
リロードレジスタに書かれた値に " + 1" した値に , カウントクロックの周期を掛けた
値が , 出力されるパルス幅となります。つまり , 8 ビット PPG 動作時のリロードレジス
タ値が "00H" のとき , および 16 ビット PPG 動作時のリロードレジスタ値が "0000H" の
ときは, カウントクロック1周期分のパルス幅をもつことになりますので注意してくだ
さい。また , 8 ビット PPG 動作時のリロードレジスタ値が "FFH" のとき , カウントク
ロック 256 周期分のパルス幅をもつことになり , 16 ビット PPG 動作時のリロードレジ
スタ値が "FFFFH" のときは , カウントクロック 65536 周期分のパルス幅をもつことに
なりますので注意してください。
パルス幅の計算式を以下に示します。
Pl = T × (L + 1)
Ph = T × (H + 1)
182
{
L : PRLL の値
H : PRLH の値
T : 入力クロック周期
Ph : "H" パルス幅
Pl : "L" パルス幅
第 10 章 PPG
● カウントクロックの選択について
本ブロックの動作に使用するカウントクロックは , 周辺クロックおよびタイムベース
カウンタの入力を使用しており , 4 種類のカウントクロック入力が選択できます。
カウントクロックは以下のように動作します。
PPGC0 ∼ PPGC7
レジスタ
カウントクロック動作
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
側の起動を行うと , 最初のカウント周期がずれる可能性がありますので注意してくだ
さい。
● パルスの端子出力の制御について
本モジュールの動作によって生成されたパルス出力は , 外部端子 PPG0 ∼ PPG7 より出
力させることができます。
16 ビット PPG モードでは , PPG(m) と PPG(m + 1) は同じ波形が出力されるので , どち
らの外部端子出力を許可しても同じ出力を得ることができます (m = 0, 2, 4, 6)。
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ
ト PPG モードでは , プリスケーラ側は 8 ビットプリスケーラのトグル波形が出力され ,
PPG 側は 8 ビット PPG の波形が出力されます。このモードのときの出力波形の例を以
下に示します。
図 10.4-1 8 + 8 PPG 出力動作 出力波形
Ph1
Pl1
PPG1
PPG0
Ph0
Pl0
L1
Pl1 = T × (L1 + 1)
Ph1 = T × (L1 + 1)
Pl0 = T × (L1 + 1) × (L0 + 1)
Ph0 = T × (L1 + 1) × (H0 + 1)
( 注意事項 )
L0
H0
T
Ph0
Pl0
Ph1
Pl1
: ch.1 の PRLL の値 および
ch.1 の PRLH の値
: ch.0 の PRLL の値
: ch.0 の PRLH の値
: 入力クロック周期
: PPG0 の "H" パルス幅
: PPG0 の "L" パルス幅
: PPG1 の "H" パルス幅
: PPG1 の "L" パルス幅
ch.1 の PRLL と ch.1 の PRLH は , 同じ
値を設定することを推奨します。
183
第 10 章 PPG
● 割込みについて
本モジュールの割込みは , リロード値がカウントアウトし , ボローが発生したときにア
クティブになります。
ただし , 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) 。
● GATE 機能について
多機能タイマからの信号により , PPG を起動→停止させることができます。
• 8 ビット PPG モード , 8 ビットプリスケーラ+ 8 ビット PPG モードにおいて , PPG
ch.0 を本機能により起動できます。
• 16 ビット PPG モード , 16 ビットプリスケーラ+ 16 ビット PPG モードにおいて , PPG
ch.0, ch.1 を本機能により起動できます。
各モードの起動切換えは , PPG 動作モード制御レジスタの MD1, MD0 ビットの設定に
よって定まります。
• 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 の起動有効期間の制御ができます。
図 10.4-2 EDGE ビットと多機能タイマによる PPG カウント動作
EDGE=0 ( 立上り起動 → 立下り停止 )
多機能タイマ信号
PPG カウント
開始
停止
開始
停止
開始
EDGE=1 ( 立下り起動 → 立上り停止 )
多機能タイマ信号
PPG カウント
開始
● 各ハードウェアの初期値について
本ブロックの各ハードウェアは , リセット時に以下のように初期化されます。
184
< レジスタ >
PPGC(n) → 0000000XB
< パルス出力 >
PPG(n)
→ "L"
< 割込み要求 >
IRQ(n)
→ "L" (n=0 ∼ 7)
第 10 章 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.(0, 1, 2, 3) と同じ動作組合せが可能です。
以下のように置き換えてください。
{
ch.0=ch.4
ch.1=ch.5
ch.2=ch.6
ch.3=ch.7
185
第 10 章 PPG
186
第 11 章
PWC (Pulse Width Count:
パルス幅測定 )
PWC の概要 , レジスタの構成 / 機能および動作に
ついて説明します。
11.1 概要
11.2 ブロックダイヤグラム
11.3 PWC のレジスタ
11.4 動作説明
187
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
11.1
概要
入力信号のパルス幅測定機能です。
■ PWC の機能
ハードウェアとして , 16 ビットアップカウンタ 1 個 , 入力パルス分周器 & 分周比制御
レジスタ 1 個 , 測定入力端子 1 本 , 16 ビット制御レジスタ 1 個を有し , これらによって
以下の機能を実現します。
● パルス幅測定機能
外部からのパルス入力の任意イベント間の時間を測定します。
基準となる内部クロックは 3 種類の中から選択可能です
( マシンクロックの 4/16/32 分周 )。
各種測定モード
"H" パルス幅 ( ↑∼↓ ) / "L" パルス幅 ( ↓∼↑ )
立上り周期 ( ↑∼↑ ) / 立下り周期 ( ↓∼↓ )
エッジ間測定 ( ↑ or ↓∼↓ or ↑ )
8 ビット入力分周器で , 入力パルスを 2n 分周 (n=1, 2, 3, 4, 5, 6, 7, 8) して周期測定を行う
ことが可能です。
測定終了時に割込み要求を発生することが可能です。
1 回のみの測定か , 連続測定かを選択することが可能です。
■ レジスタ一覧
アドレス
bit15
∼
bit8 bit7
0000E9H
188
∼
PDIVR0
0000E0H
0000E1H
PWCSR0
0000E2H
0000E3H
PWCR0
bit0
分周比制御レジスタ 0
コントロール / ステータスレジスタ 0
データバッファレジスタ 0
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
ブロックダイヤグラム
11.2
PWC のブロックダイヤグラムを示します。
■ PWC のブロックダイヤグラム
PWCR0 リード
エラー検出
16
/
/
16
ERR
PWCR0
内部クロック
( マシンクロック /4)
/ 16
書込み許可
リロード
データ転送
/ 16
クロック
R-bus
オーバフロー
クリア
制御ビット出力
フラグセットなど
制御回路
カウント許可
開始エッジ
選択
終了エッジ
選択
CKS1/
CKS0
分周器クリア
分周
ON/OFF
測定開始エッジ
測定終了エッジ
測定終了割込み要求
入力波形
比較器
エッジ
検出
PWI0
8 ビット
分周器
PIS1/PIS0
ERR
15
/
22 クロック
分周器
23
16 ビット アップカウンタ
CKS1/CKS0
オーバフロー割込み要求
分周比
選択
PWCSR0
2
/
PDIVR0
189
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
11.3
PWC のレジスタ
PWC のレジスタ詳細を説明します。
■ PWC コントロール / ステータスレジスタ (PWCSR: PWCSR0)
PWCSR0 ( 上位 )
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
ch.0: 0000E0H
STRT
STOP
EDIR
EDIE
OVIR
OVIE
ERR
00000000B
R/W
R/W
R
R/W
R/W
R/W
R
−
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
CKS1
CKS0
PIS1
PIS0
SC
R/W
R/W
R/W
R/W
R/W
PWCSR0 ( 下位 )
アドレス
ch.0: 0000E1H
MOD2 MOD1 MOD0
R/W
R/W
00000000B
R/W
R/W : リード / ライト可能
R
: リードオンリ
[bit15] STRT:カウンタスタートビット
[bit14] STOP:カウンタストップビット
16 ビットアップカウンタの起動 / 再起動 / 停止を行うビットで , 読出し時にはカウ
ンタの動作状態を表示します。以下にビット機能を示します。
表 11.3-1 書込み時機能 ( 動作制御 )
STRT
STOP
0
0
機能なし / 動作に影響なし
0
1
カウンタ起動 / 再起動 ( カウント許可 )
( 注意事項 ) クリアビット命令使用可能
1
0
カウンタ動作強制停止 ( カウント禁止 )
( 注意事項 ) クリアビット命令使用可能
1
1
機能なし / 動作に影響なし
動作制御機能
表 11.3-2 読出し時機能 ( 動作状態表示 )
STRT
STOP
0
0
カウント停止中 ( 起動されていないかまたは測定終了 )
[ 初期値 ]
1
1
カウント動作中 ( 測定中 )
•
リセット時:"00B" に初期化されます。
•
読出し / 書込み可能です。ただし , 書込み時と読出し時では上記のように意味が
異なります。
190
動作状態表示
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
リードモディファイライト (RMW) 系命令における読出しでは , 動作にかかわら
•
ず "11B" が読み出されます。
カウンタの起動 / 停止のための STRT , STOP ビットへの書込みは , それぞれの
•
ビットに対応するビット処理命令 ( ビットクリアなど ) を用いることが可能です
が , 動作状態の読出しにはビット処理命令は使用できません ( 読み出すと必ず動
作中となりますので注意してください ) 。
[bit13] EDIR:測定終了割込み要求フラグ
パルス幅測定モード時 , 測定終了したことを示すフラグです。測定終了割込み要求
が許可されているとき (bit12:EDIE=1) に , 本ビットがセットされると , 測定終了割
込み要求が発生します。
セット要因
パルス幅測定が終了するとセット (PWCR に測定結果が収納される )
クリア要因
PWCR ( 測定結果 ) を読み出すことによりクリア
•
リセット時:"0" に初期化されます。
•
読出しのみ可能です。書込みしてもビット値は変化しません。
[bit12] EDIE:測定終了割込み要求許可ビット
パルス幅測定モード時の測定終了割込み要求を以下のように制御します。
0
測定終了割込み要求出力禁止
(EDIR がセットされても割込みは発生せず )
1
測定終了割込み要求出力許可
(EDIR がセットされると割込みが発生する )
•
リセット時:"0" に初期化されます。
•
読出し / 書込み可能です。
[ 初期値 ]
[bit11] OVIR:カウンタオーバフロー割込み要求フラグ
全モードにおいて , 16 ビットアップカウンタが "FFFFH" から "0000H" へオーバフ
ローしたことを示すフラグです。カウンタオーバフロー割込み要求が許可されてい
るとき (bit10:OVIE=1) に , 本ビットがセットされると , カウンタオーバフロー割込
み要求が発生します。
セット要因
カウンタオーバフローが発生するとセット ("FFFFH" から "0000H" へ )
クリア要因
"0" 書込みによりクリア
•
リセット時:"0" に初期化されます。
•
読出し / 書込み可能です。ただし , 書込みは "0" のみ可能です。"1" を書き込んで
もビット値は変化しません。
•
リードモディファイライト (RMW) 系命令における読出し値は , ビット値にかか
わらず "1" です。
191
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
[bit10] OVIE:カウンタオーバフロー割込み要求許可ビット
カウンタオーバフロー割込み要求を以下のように制御します。
0
オーバフロー割込み要求出力禁止
(OVIR がセットされても割込みは発生せず )
1
オーバフロー割込み要求出力許可
(OVIR がセットされると割込みが発生する )
•
リセット時:"0" に初期化されます。
•
読出し / 書込み可能です。
[ 初期値 ]
[bit9] ERR:エラーフラグ
パルス幅測定モードの連続測定モード時において , PWCR 内の測定結果を読み出さ
ないうちに , 次の測定が終了してしまったことを示すフラグです。この際 , PWCR
の値は新しい測定結果に更新され , 1 つ前の測定結果は消失します。測定は , 本ビッ
ト値に関係なく続行されます。
セット要因
読み出していない測定結果が次の結果により消失するとセット
クリア要因
PWCR ( 測定結果 ) を読み出すことによりクリア
•
リセット時:"0" に初期化されます。
•
読出しのみ可能です。書込みしてもビット値は変化しません。
[bit8] − : 予約ビット
本ビットは予約ビットです。読出し値は "0" です。
必ず "0" を書き込んでください。
[bit7, bit6] CKS1, CKS0:クロック選択ビット
内部カウントを以下のように選択します。
CKS1
CKS0
0
0
マシンクロックの 4 分周クロック
0
1
マシンクロックの 16 分周クロック
1
0
マシンクロックの 32 分周クロック
1
1
設定禁止
カウントクロック選択
•
リセット時:"00B" に初期化されます。
•
読出し / 書込み可能です。ただし , "11B" を設定しないでください。
[ 初期値 ]
( 注意事項 ) 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでくだ
さい。
192
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
[bit5, bit4] PIS1, PIS0:パルス幅測定入力端子選択ビット
これらのビットはパルス幅測定入力端子を選択します。
PIS1
PIS0
入力クロック選択
0
0
(PWI0 端子を選択 )
0
1
設定禁止
1
0
設定禁止
1
1
設定禁止
[ 初期値 ]
•
リセット時:"00B" に初期化されます。
•
読出し / 書込み可能です。ただし , "00B" 以外は設定しないでください。
( 注意事項 ) 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでくだ
さい。
[bit3] SC:測定モード ( 単発 / 連続 ) 選択ビット
測定モードを以下のように選択します。
SC
測定モード選択
パルス幅測定モード時
0
単発測定モード [ 初期値 ]
1 回測定後停止
1
連続測定モード
連続測定:バッファレジスタ有効
•
リセット時:"0" に初期化されます。
•
読出し / 書込み可能です。
( 注意事項 ) 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでくだ
さい。
193
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
[bit2 ∼ bit0] MOD2, MOD1, MOD0:動作モード / 測定エッジ選択ビット
動作モードおよび幅測定を行うエッジを以下のように選択します。
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" に初期化されます。
•
読出し / 書込み可能です。
( 注意事項 ) 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでくだ
さい。
194
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
■ PWC データバッファレジスタ (PWCR: PWCR0)
PWCR0 ( 上位 )
bit15
アドレス
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ch.0: 0000E2H
初期値
00000000B
R
R
R
R
R
R
R
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R
R
R
R
R
R
R
R
PWCR0 ( 下位 )
アドレス
00000000B
ch.0: 0000E3H
R
初期値
: リードオンリ
● パルス幅測定モード
連続測定モード時 (PWCSR レジスタ bit3:SC=1) は , 前回の測定結果を保持するバッ
ファレジスタとなります。この場合は読出しのみ可能で , 書込みしてもレジスタ値は変
化しません。
単発測定モード時 (PWCSR レジスタ bit3:SC=0) は , アップカウンタを直接アクセスす
る窓口となります。この場合も , 読出しのみ可能で , 書込みしてもレジスタ値は変化し
ません。読出しは随時可能で , カウント中のカウント値が得られます。測定終了後は , 測
定結果を保存します。
( 注意事項 ) 本レジスタのアクセスは , 必ずハーフワードもしくはワード転送命令で
行ってください。
• リセット時 : "0000H" に初期化されます。
• 読出しのみ可能
195
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
■ 分周比制御レジスタ (PDIVR: PDIVR0)
PDIVR0
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
−
−
−
−
DIV2
DIV1
DIV0
XXXXX000B
−
R/W
R/W
R/W
ch.0: 0000E9H
−
−
−
−
R/W : リード / ライト可能
X
: 不定
−
: 未定義
分周周期測定モード (PWCSR レジスタ bit2 ∼ bit0: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" に初期化されます。
• 読出し / 書込み可能です。
( 注意事項 ) 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでくださ
い。
196
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
動作説明
11.4
PWC は測定入力端子と 8 ビット入力分周などを組み込んでいます。PWC は , パル
ス幅測定機能があり , 3 種類のカウントクロックを選択可能です。以下に , パルス幅
測定機能における基本機能 / 動作について示します。
● パルス幅測定機能
入力パルスの任意イベント間の時間・周期をカウンタで測定できます。
起動後 , 設定した測定開始エッジが入力されるまでカウントは行われません。開始エッ
ジを検出するカウンタを "0000H" にクリア後 , カウントアップを開始し , 停止エッジを
検出するとカウントを停止します。この間のカウント値がパルス幅としてレジスタに
保存されます。
測定終了時 , およびオーバフロー発生時に割込み要求を発生できます。
測定終了後は , 測定モードに応じて以下のように動作します。
• 単発測定モード時 : 動作を停止します。
• 連続測定モード時 : カウンタ値をバッファレジスタに転送後 , 再度測定開始エッジ
が入力されるまでカウントを停止します。
図 11.4-1 パルス幅測定動作 ( 単発測定モード /"H" 幅測定 )
( 実線はカウント値 )
PWC 入力
被測定パルス
カウント値
FFFFH
カウントクリア
0000H
測定開始
カウントスタート
カウントストップ
時間
EDIR フラグセット ( 測定終了 )
図 11.4-2 パルス幅測定動作 ( 連続測定モード /"H" 幅測定 )
( 実線はカウント値 )
PWC 入力
被測定パルス
カウント値
オーバフロー
FFFFH
PWCR へデータ転送
カウントクリア
0000H
測定開始
PWCR へデータ転送
カウントクリア
カウントスタート カウントストップ カウントスタート
EDIR フラグセット ( 測定終了 )
OVIR フラグセット
カウントストップ
時間
EDIR フラグセット
197
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
■ カウントクロックの選択
カウンタのカウントクロックは , PWCSR レジスタの bit7, bit6:CKS1, CKS0 の設定に
よって , 内部クロックソースのうち 3 種類を選択できます。
選択できるカウントクロックは以下のとおりです。
PWCSR
選択される内部カウントクロック
CKS1, CKS0
00B
マシンクロックの 4 分周
01B
マシンクロックの 16 分周
10B
マシンクロックの 32 分周
[ 初期値 ]
リセット後の初期値では , マシンクロックの 4 分周クロックが選択されています。
( 注意事項 ) カウントクロックの選択は , 必ずカウンタ起動前に行ってください。
■ 動作モードの選択
各動作モード / 測定モードの選択は , PWCSR レジスタの設定により行います。
• 動作モードの設定 : PWCSR レジスタ bit2 ∼ bit0:MOD2, MOD1, MOD0
( パルス幅測定モードの選択 , 測定エッジの決定など )
• 測定モードの設定 : PWCSR レジスタ bit3: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
設定禁止
リセット後の初期値では , 全エッジ間測定−単発測定モードが選択されています。
( 注意事項 ) 起動モードの選択は , 必ずカウンタ起動前に行ってください。
198
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
■ パルス幅測定の起動と停止
各動作の起動 / 再起動 / 強制停止は , PWCSR レジスタの bit15, bit14:STRT, STOP ビッ
トにより行います。
パルス幅測定の起動 / 再起動は STRT ビット , 強制停止は STOP ビットと機能が分かれ
ており , それぞれ , "0" を書き込むことにより機能しますが , この際 , 両ビットに書き込
む値が排他でないと機能しません。ビット操作命令以外の命令にて ( バイト単位以上
にて ) 書き込む際は , 必ず以下に示す組合せを書き込んでください。
機能
STRT
STOP
パルス幅測定の起動 / 再起動
0
1
パルス幅測定の強制停止
1
0
ビット操作命令 ( ビットクリア命令 ) を用いる場合 , ハードウェアにより自動的に上記
組合せにて書き込まれるため , 特に意識する必要がありません。
● 起動後の動作
パルス幅測定モードの起動後の動作は , 以下のとおりです。
• パルス幅測定モード : 測定開始エッジが入力されるまでカウントは行われません。
測定開始エッジ検出後 , 16 ビットアップカウンタを "0000H"
にクリアし , カウントを開始します。
● 再起動について
パルス幅測定起動後 , 動作中に起動をかける (STRT ビットに "0" を書き込む ) ことを再
起動とよびます。再起動をかけると , 以下の動作が行われます。
• 測定開始エッジ待ち状態の場合 , 動作に影響はありません。測定中の場合 , カウン
トを停止し , 再度測定開始エッジ待ち状態となります。この際 , 測定終了エッジ検
出と再起動が同時になると , 測定終了フラグ (EDIR) がセットされ , 連続測定モード
時は測定結果が PWCR に転送されます。
● 停止について
単発測定モードでは , カウンタのオーバフローまたは測定終了により , 自動的にカウン
ト動作を停止しますので , 特に意識する必要はありません。それ以外のモードや自動停
止する前に停止させたい場合は , 強制停止させる必要があります。
● 動作状態の確認
前述 STRT, STOP ビットは読出し時には動作状態表示ビットとして機能します。表示
される値は以下の内容を示します。
STRT
STOP
0
0
カウンタ停止中 ( 測定開始エッジ待ち状態を除く )
起動されていないか , または測定が終了したことを示します。
1
1
カウント動作中 , または測定開始エッジ待ち状態
動作状態
199
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
( 注意事項 ) STRT, STOP のどちらのビットを読み出しても同じ値となります。ただし ,
リードモディファイライト (RMW) 系命令 ( ビット処理命令など ) にて本
ビットを読み出すと常に "11B" になるため , これらの命令を使用して読み
出さないでください。
■ カウンタのクリア
16 ビットアップカウンタは , 以下に示す場合に "0000H" にクリアされます。
• リセット時
• パルス幅測定モードにて , 測定開始エッジを検出しカウントを開始する場合
■ パルス幅測定動作詳細
● 単発測定と連続測定
パルス幅測定には , 1 回のみの測定を行うモードと , 連続して測定を行うモードがあり
ます。
各モードは PWCSR の SC ビットによって選択します ( ■動作モードの選択参照 ) 。
両モードにおける相違点は以下のとおりです。
• 単発測定モード : 1 回目の測定終了エッジが入力されるとカウンタのカウントは停
止し , PWCSR 中の測定終了フラグ (EDIR) がセットされ , 以降の
測定は行われません。
ただし , 同時に再起動がかかった場合は測定開始待ち状態となり
ます。
• 連続測定モード : 測定終了エッジが入力されるとカウンタのカウントは停止し ,
PWCSR 中の測定終了フラグ (EDIR) がセットされ , 再度測定開始
エッジが入力されるまでカウントを停止します。再度 , 測定開始
エッジが入力されるとカウンタを "0000H" にクリアした後 , 測定
を開始します。測定終了時 , カウンタの測定結果は PWCR に転送
されます。
( 注意事項 ) 測定モードの選択 / 変更は , 必ずカウンタ停止中に行ってください。
● 測定結果データ
単発測定モードと連続測定モードでは , 測定結果とカウンタ値の扱い , PWCR の機能に
違いがあります。両モードにおける測定結果の相違点は以下のとおりです。
• 単発測定モード : PWCR を動作中に読み出すと測定中のカウント値が得られます。
PWCR を測定終了後に読み出すと測定結果データが得られます。
• 連続測定モード : 測定終了時 , カウンタ内の測定結果は PWCR に転送されます。
PWCR を読み出すと直前の測定結果が得られ , 測定動作中も前回
の測定結果を保持しています。測定中のカウント値は読み出せま
せん。
連続測定モードにて , 測定結果を読み出さないうちに次の測定が終了してしまった場
合 , 前回の測定結果は新しい測定結果に消されてしまいます。この際 , PWCSR 中のエ
ラーフラグ (ERR) がセットされます。エラーフラグ (ERR) は , PWCR を読み出すと自
動的にクリアされます。
200
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
● 測定モードとカウント動作
入力されたパルスのどこを測定するかによって, 測定モードは6種類のうちから選択で
きます。さらに , 高い周波数のパルスの幅を精度よく測定できるように , 入力されたパ
ルスを任意分周して周期を測定するモードも用意されています。以下に , 各モードにつ
いて説明します。
測定モード
MOD2
MOD1
MOD0
測定内容 (W:測定するパルス幅 )
W
全エッジ間パルス幅
測定
↑カウント
スタート
0
0
W
W
↓カウントストップ
↓スタート
↑ストップ
↑スタート
0
↓
ストップ
連続して入力されるエッジ間の幅を測定します。
カウント ( 測定 ) 開始:エッジ検出時
カウント ( 測定 ) 終了:エッジ検出時
W
分周周期測定
0
0
1
↑カウント
スタート
(4 分周の例 )
W
↑カウントストップ
↑スタート
W
↓
ストップ
分周比設定レジスタ PDIVR で選択した分周比だけ入力
パルスを分周してその周期を測定します。
カウント ( 測定 ) 開始:起動直後の立上りエッジ検出時
カウント ( 測定 ) 終了:分周後の 1 周期終了時
W
↑カウント
スタート
立上りエッジ間周期
測定
0
1
W
W
↑カウントストップ
↑スタート
↑ストップ
↑スタート
0
↑
ストップ
立上りエッジ間の周期を測定します。
カウント ( 測定 ) 開始:立上りエッジ検出時
カウント ( 測定 ) 終了:立上りエッジ検出時
W
↑カウント
スタート
"H" パルス幅測定
0
1
W
↓カウント
ストップ
↑
スタート
↓
ストップ
1
"H" 期間の幅を測定します。
カウント ( 測定 ) 開始:立上りエッジ検出時
カウント ( 測定 ) 終了:立下りエッジ検出時
W
W
↓カウント
スタート
"L" パルス幅測定
1
0
0
W
1
0
1
↓
スタート
↑
ストップ
"L" 期間の幅を測定します。
カウント ( 測定 ) 開始:立下りエッジ検出時
カウント ( 測定 ) 終了:立上りエッジ検出時
↓カウント
スタート
立下り
エッジ間周期測定
↓カウント
ストップ
W
W
↓カウントストップ
↓スタート
↓ストップ
↓スタート
↓
ストップ
立下りエッジ間の周期を測定します。
カウント ( 測定 ) 開始:立下りエッジ検出時
カウント ( 測定 ) 終了:立下りエッジ検出時
201
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
どのモードでも , 測定起動後 , 測定開始エッジが入力されるまではカウンタはカウント
動作を行いません。測定開始エッジ入力されると , カウンタは "0000H" にクリアされた
後 , 測定終了エッジが入力されるまでの間 , カウントクロックごとにアップカウントを
続けます。
測定終了エッジが入力されると , 以下の動作が行われます。
• PWCSR 中の測定終了フラグ (EDIR) がセットされます。
• カウンタのカウント動作が停止します ( 再起動と同時であった場合を除く )。
• 連続測定モード時 : カウンタの値 (= 測定結果 ) が PWCR に転送され , 次の測定開始
エッジが 入力されるまでカウントを停止して待ちます。
• 単発測定モード時 : 測定を終了します ( 再起動と同時であった場合を除く )。
連続測定モードの場合で , 全エッジ間パルス幅測定や周期測定などを行った場合 , 終了
エッジが次の測定開始エッジとなります。
● 最小入力パルス幅について
パルス幅測定入力端子 (PWI0) に入力できるパルスには以下の制限があります。
• 最小入力幅 : マシンサイクル× 4 以上
(16 MHz のマシンクロックの場合は , 0.25 µs 以上とする )
上記パルスより小さい幅のパルスを入力した場合の動作は保証できません。
● パルス幅 / 周期算出方法
測定終了後 , PWCR に得られた測定結果データから , 被測定パルス幅 / 周期算出方法は
以下のように求められます。
TW : 被測定パルス幅 / 周期 [µs]
TW = n × t / DIV [µs]
n : PWCR 内の測定結果データ
t
: カウントクロックの周期 [µs]
DIV : 分周比レジスタ PDIVR で選択した分周比
( 分周周期測定モード以外は "1" を代入 )
202
第 11 章 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 つの割込み要求を発生することが可能です。
• カウンタのオーバフローによる割込み要求
測定中 , カウントアップによりオーバフローが発生するとオーバフローフラグが
セットされ , オーバフロー割込み要求が許可されていると割込み要求が発生しま
す。
• 測定終了による割込み要求
測定終了エッジを検出すると , PWCSR 中の測定終了フラグ (EDIR) がセットされ ,
測定終了割込み要求が許可されていると割込み要求が発生します。
測定終了フラグ (EDIR) は , 測定結果 PWCR を読み出すと自動的にクリアされます。
203
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
● パルス幅測定動作フロー
各
種
設
定
再起動
STRT ビットにより起動
連続測定モード
単発測定モード
測定開始エッジ検出
測定開始エッジ検出
カウンタをクリア
カウンタをクリア
カウント開始
カウント開始
アップカウント
アップカウント
オーバフローの発生
→ OVIR フラグセット
オーバフローの発生
→ OVIR フラグセット
測定終了エッジ検出
→ EDIR フラグセット
204
カウントクロック選択
動作 / 測定モード選択
割込みフラグクリア
割込み許可
測定入力端子選択
測定終了エッジ検出
→ EDIR フラグセット
カウント停止
カウント停止
カウント値を PWCR に転送
動作停止
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
■ 注意事項
● レジスタ書換えに関する注意事項
PWCSR レジスタの以下に示すビットは動作中に書き換えることを禁止します。書換え
は必ず起動前か停止後に行ってください。
[bit7, bit6] CKS1, CKS0
: クロック選択ビット
[bit5, bit4] PIS1, PIS0
: パルス幅測定入力端子選択ビット
[bit3] SC
: 測定モード ( 単発 / 連続 ) 選択ビット
[bit2 ∼ bit0] MOD2, MOD1, MOD0 : 動作モード / 測定エッジ選択ビット
PDIVR レジスタは動作中に書き換えることを禁止します。書換えは必ず起動前か停止
後に行ってください。
● PWCSR レジスタの STRT, STOP ビットについて
両ビット共に , 書込み時と読出し時では , 意味が異なるので注意してください
( ■ PWC コントロール / ステータスレジスタ (PWCSR: PWCSR0) 参照 ) 。
また , リードモディファイライト (RMW) 系命令における読出し値は , ビット値にかか
わらず , "11B" です。このため , 動作状態の読出しには , ビット処理命令は使用できま
せん ( 読み出すと必ず動作中となります ) ので注意してください。
カウンタの起動 / 停止のための STRT, STOP ビットへの書込みは , それぞれのビットに
対するビット処理命令 ( ビットクリア命令など ) を用いることが可能です。
● カウンタのクリアについて
パルス幅測定モードの場合 , 測定開始エッジでカウンタがクリアされますので , 起動前
にカウンタ中にあったデータは無効になります。
● 最小入力パルス幅について
パルス幅測定入力端子に入力できるパルスには , 以下の制限があります。
• 最小入力幅
: マシンサイクル× 4
( マシンサイクルが 62.5 ns 時 , ≧ 250 ns)
• 最大入力周波数 : マシンクロックの 4 分周 (マシンサイクルが16 MHz時, ≦ 4 MHz)
上記パルスより小さい幅 , 高い周波数のパルスを入力した場合の動作は保証できませ
ん。入力信号にそのようなノイズがのる可能性がある場合は , チップ外部でフィルタな
どを通して除去した後 , 入力してください。
● 分周周期測定モードについて
パルス幅測定モードのうちの分周周期測定モードでは , 入力パルスを分周するため , 測
定結果より算出して得られるパルス幅は平均値となりますので注意してください。
● クロック選択ビットについて
PWCSR レジスタの bit7, bit6 CKS1, CKS0 : クロック選択ビットにおいて "11B" は設定
禁止です。
● 予約ビットについて
PWCSR レジスタの bit8 は予約ビットになっています。このビットに書込みを行う場合
は , 必ず "0" にしてください。
205
第 11 章 PWC (Pulse Width Count: パルス幅測定 )
● 動作中の再起動について
カウント動作を開始した後に再起動を行う場合は , そのタイミングによっては以下に
示すようなことが起こり得ます。
• パルス幅単発測定モード時 , 測定終了エッジと同時であった場合
再起動を行い , 測定開始エッジ待ち状態となりますが , 測定終了フラグ (EDIR) は
セットされます。
• パルス幅連続測定モード時 , 測定終了エッジと同時であった場合
再起動を行い , 測定開始エッジ待ち状態となりますが , 測定終了フラグ (EDIR) は
セットされ , その時点での測定結果は PWCR に転送されます。
以上のように , 動作中の再起動時には , フラグの動作に注意して割込み制御などを行う
ようにしてください。
206
第 12 章
多機能タイマ
多機能タイマの概要 , レジスタの構成 / 機能および
動作について説明します。
12.1 概要
12.2 ブロックダイヤグラム
12.3 多機能タイマの端子
12.4 多機能タイマのレジスタ
12.5 多機能タイマ割込み
12.6 多機能タイマの動作
12.7 多機能タイマの使用上の注意
12.8 多機能タイマのプログラム例
207
第 12 章 多機能タイマ
12.1
概要
多機能タイマは , 3 つの 16 ビットフリーランタイマ , 6 つの 16 ビットアウトプット
コンペア , 4 つの 16 ビットインプットキャプチャ , 4 チャネルの 8/16 ビット PPG
タイマ , および 1 つの波形ジェネレータ , 2 つの A/D 起動コンペアから構成されてい
ます。この波形ジェネレータを使用すると , 6 つの別々の波形を 16 ビットフリーラ
ンタイマから出力することができ , また , 入力パルス幅と外部クロックサイクルを測
定することもできます。
■ 多機能タイマの構成
● 16 ビットフリーランタイマ ( × 3)
• 16 ビットフリーランタイマは 16 ビットアップ / ダウンカウンタ , 制御レジスタ , 16
ビットコンペアクリアレジスタ ( バッファレジスタを持っています ) , およびプリス
ケーラから構成されています。
• 9 種類のカウンタ動作クロック (φ, φ/2, φ/4, φ/8, φ/16, φ/32, φ/64, φ/128, φ/256) を選択
することができます (φ:マシンクロック )。
• コンペアクリア割込みは , コンペアクリアレジスタと 16 ビットフリーランタイマが
比較され , 一致した場合に生成されます。0 検出割込みは , 16 ビットフリーランタ
イマがカウント値 "0" を検出している間に生成されます。
• コンペアクリアレジスタは, 選択可能なバッファレジスタを持っています(このバッ
ファレジスタに書き込まれたデータはコンペアクリアレジスタへ転送されます ) 。
16 ビットフリーランタイマが停止し , バッファにデータが書き込まれると , 転送は
直ちに実行されます。16 ビットフリーランタイマの動作中にタイマ値 "0" が検出さ
れると , バッファからデータが転送されます。
• アップカウントモードにおいてリセットやソフトウェアクリア , あるいはコンペア
クリアレジスタとのコンペア一致が発生すると , カウンタ値は "0000H" にリセット
されます。
• このカウンタの出力値は , 多機能タイマのアウトプットコンペアとインプットキャ
プチャのクロックカウントとして使用することができます。
• 0 検出またはコンペア一致時に , A/D 起動が可能です。
● 16 ビットアウトプットコンペア ( × 6)
• 16 ビットアウトプットコンペアは , 6 つの 16 ビットコンペアレジスタ ( 選択可能な
バッファレジスタを持っています ) , コンペア出力ラッチ , コンペア制御レジスタか
ら構成されています。選択された 1 つの 16 ビットフリーランタイマ値とコンペア
レジスタが一致すると , 割込みが生成され , 出力レベルが反転します。
• 6 つのコンペアレジスタは , 別々に動作させることができます。出力端子と割込み
フラグは各コンペアレジスタに対応しています。
• 2 つのコンペアレジスタを対 ( ペア ) にして出力端子を制御することができます。2
つのコンペアレジスタを一緒に使用することによって出力端子を反転させます。
• 各出力端子の初期値を設定することができます。
• 割込みはアウトプットコンペアレジスタが 16 ビットフリーランタイマと一致した
場合に生成されます。
208
第 12 章 多機能タイマ
● 16 ビットインプットキャプチャ ( × 4)
• インプットキャプチャは , 4 つの独立した外部入力端子と , この端子に対応するキャ
プチャレジスタおよびキャプチャ制御レジスタから構成されています。外部端子に
おいて入力信号のエッジを検出すると , 選択された 1 つの 16 ビットフリーランタイ
マの値をキャプチャレジスタへ格納することができ , また , 割込みも同時に生成さ
れます。
• 外部入力信号の 3 種類のトリガエッジ ( 立上りエッジ , 立下りエッジ , およびその両
方のエッジ ) を選択することができ , また , トリガエッジが立上りエッジであるか立
下りエッジであるかを示すレジスタを持っています。
• 4 つのインプットキャプチャを別々に動作させることができます。
• 割込みは外部入力からの有効エッジが検出されると生成されます。
● 8/16 ビット PPG タイマ ( × 4)
PPG タイマ 0 は , 波形ジェネレータへ PPG 信号を供給するために使用します。PPG タ
イマ 0 の詳細については , 「第 10 章 PPG」を参照してください。
● 波形ジェネレータ
• 波形ジェネレータは , 3 つの 16 ビットデッドタイマレジスタ , 3 つのタイマ制御レ
ジスタ , および 1 つの 16 ビット波形制御レジスタから構成されています。
• 波形ジェネレータは , リアルタイム出力 , 16 ビット PPG 波形出力 , ノンオーバラッ
プ 3 相波形出力 ( インバータ制御用 ) , および DC チョッパ波形出力を生成すること
ができます。
• 16 ビットデッドタイマのデッドタイムに基づいて , ノンオーバラップ波形出力を生
成することができます ( デッドタイムタイマ機能 ) 。
• 2 チャネルモード時にリアルタイムアウトプットを動作させることにより , ノン
オーバラップ波形出力を生成することができます ( デッドタイムタイマ機能 ) 。
• リアルタイムアウトプットコンペア一致を検出すると , GATE 信号が生成され , この
信号により PPG タイマの動作が開始または停止します (GATE 機能 ) 。
• リアルタイムアウトプットコンペア一致が検出されると , 16 ビットデッドタイマが
アクティブになり , PPG 動作の制御用 GATE 信号を生成することによって , PPG タ
イマ 0 を容易に開始または停止させることができます (GATE 機能 ) 。
• DTTI 端子を使用することによって , 強制的に停止を制御することができます。
• DTTI レジスタにより , 強制的に停止を制御することも可能です。
● A/D 起動コンペア ( × 2)
• ch.0 の 16 ビットフリーランタイマ値とコンペアレジスタが一致したときに , A/D を
起動することができます (ch.1, ch.2 の 16 ビットフリーランタイマでは起動できませ
ん )。
• コンペア 1 が A/D1 を起動できます。
• コンペア 2 が A/D2 を起動できます。
• 16 ビットフリーランタイマのアップカウント時の一致した場合のみの起動を指定
できます。
• 16 ビットフリーランタイマのダウンカウント時の一致した場合のみの起動を指定
できます。
• 16 ビットフリーランタイマのアップダウンカウントの両方で一致した場合の起動
を指定できます。
209
第 12 章 多機能タイマ
ブロックダイヤグラム
12.2
多機能タイマのブロックダイヤグラムを示します。
■ 多機能タイマのブロックダイヤグラム
リアルタイム I/O
割込み
割込み
割込み
割込み
割込み
割込み
アウトプットコンペア 0
アウトプットコンペア 1
アウトプットコンペア 2
アウトプットコンペア 3
アウトプットコンペア 4
アウトプットコンペア 5
16 ビットアウト
プットコンペア
RTO0
端子 RTO0(U)
RTO1
端子 RTO1(X)
RTO2
端子 RTO2(V)
RTO3
端子 RTO3(Y)
RTO4
端子 RTO4(W)
波形
RTO5
ジェネレータ
RT0 ∼ RT5
バッファからの
データ転送 カウンタ値
DTTI
端子 DTTI
割込み
16 ビットデッド
タイマ 0, 1, 2
割込み
DTTI 端子
"L" レベル検出
PPG0
PPG0
GATE
GATE
セレクタ
内部データバス
セレクタ
割込み
割込み
0 検出 0
コンペアクリア 0
端子 RTO5(Z)
A/D トリガ
16 ビット
フリーランタイマ
ch.0
EXCK
端子 CKI
カウンタ値
A/D コンバータの
ユニット 1 起動
A/D 起動コンペア
A/D コンバータの
ユニット 2 起動
割込み
割込み
0 検出 1
コンペアクリア 1
割込み
0 検出 2
コンペアクリア 2
16 ビット
フリーランタイマ
ch.1
EXCK
割込み
16 ビット
フリーランタイマ
ch.2
EXCK
セレクタ
カウンタ値
16 ビット
インプット
キャプチャ
210
割込み
割込み
割込み
割込み
インプットキャプチャ 0
インプットキャプチャ 1
インプットキャプチャ 2
インプットキャプチャ 3
IC0
端子 IC0
IC1
端子 IC1
IC2
端子 IC2
I C3
端子 IC3
第 12 章 多機能タイマ
■ 16 ビットフリーランタイマのブロックダイヤグラム
φ
STOP
MODE
SCLR
CLK2
CLK1
プリスケーラ
CLK0
STOP UP/UP-DOWN CLR
0 検出回路
停止 アップ / アップダウン
16 ビット
フリーランタイマ CK
0 検出
( アウトプットコンペアへ )
インプットキャプチャおよび
アウトプットコンペアへ
内部データバス
16 ビットコンペア
クリアレジスタ
転送
コンペアクリア一致
( アウトプットコンペアへ )
コンペア回路
16 ビットコンペアクリア
バッファレジスタ
I0
I1
O
I1
セレクタ
I0
割込み
セレクタ
O
I0
O
I1
セレクタ
マスク回路
MSI2
MSI1
MSI0
ICLR
ICRE
IRQZF
割込み
IRQZE
ch.0 のみ
I0
O
I1
セレクタ
AD1 起動
(AD 起動コンペアへ )
I0
O
I1
セレクタ
SEL2
SEL1
AD2E
AD2 起動
(AD 起動コンペアへ )
AD1E
( 注意事項 ) 本ブロックが ch.0, ch.1, ch.2 の 3 組あります。
211
第 12 章 多機能タイマ
■ 16 ビットアウトプットコンペアのブロックダイヤグラム
フリーランタイマからのカウント値
BUF0
BTS0
コンペアバッファレジスタ
フリーランタイマからの
0 検出
フリーランタイマからの
コンペアクリア一致
I0
O
I1
セレクタ
転送
コンペアレジスタ 0, 2, 4
内部データバス
BUF1
BTS1
コンペア回路
I0
O
I1
セレクタ
コンペアバッファレジスタ
転送
コンペアレジスタ 1, 3, 5
CMOD
コンペア回路
IOP1
IOP0
IOE1
T
Q
RTO0,RTO2,RTO4
( 波形ジェネレータ )
T
Q
RTO1,RTO3,RTO5
( 波形ジェネレータ )
IOE0
割込み
割込み
212
第 12 章 多機能タイマ
■ 16 ビットインプットキャプチャのブロックダイヤグラム
フリーランタイマからのカウント値
キャプチャレジスタ 0
エッジ検出
ICP0
ICE0
EG01
EG00
IC0
IEI0
割込み 0
エッジ検出
内部データバス
キャプチャレジスタ 1
ICP1
ICE1
EG11
EG10
IC1
IEI1
割込み 1
キャプチャレジスタ 2
エッジ検出
ICP2
ICE2
EG21
EG20
IC2
IEI2
割込み 2
キャプチャレジスタ 3
エッジ検出
ICP3
ICE3
EG31
EG30
IC3
IEI3
割込み 3
213
第 12 章 多機能タイマ
■ 波形ジェネレータのブロックダイヤグラム
DTTI
SIGCR2
割込み
SIGCR1
DCK2
φ
DCK1
DCK0
NRSL
DTIF
NWS1
DTIE
ノイズキャンセル
DTTI 制御回路
分周器
PICSH01 PGEN1
GATE0/GATE1
TMD7
TMD6
DTTI
PGEN0
DTCR0
TMD8
NWS0
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
コンペア回路
セレクタ
デッドタイム
ジェネレータ
16 ビットデッドタイマレジスタ 1
PICSH01 PGEN5
RTO3(Y)
V
Y
PGEN4
DTCR2
TMD2
セレクタ
RT3
GATE4/GATE5
TMD1
TMD0
GTEN1
GTEN0
TO4
波形制御
RT4
TO5
16 ビット
タイマ 2
コンペア回路
16 ビットデッドタイマレジスタ 2
PPG0
214
セレクタ
RT5
セレクタ
デッドタイム
ジェネレータ
W
Z
RTO5(Z)
第 12 章 多機能タイマ
■ A/D 起動コンペアのブロックダイヤグラム
フリーランタイマ ch.0 からのカウント値
コンペアレジスタ 1
AD1 起動
( フリーランタイマ ch.0 より )
一致
内部データバス
コンペア回路
A/D コンバータユニット 1 起動
コンペア許可
コンペアレジスタ 2
A/D コンバータのユニット 1 起動
( フリーランタイマ ch.0 より )
一致
コンペア回路
A/D コンバータユニット 2 起動
コンペア許可
CE2
CE1
215
第 12 章 多機能タイマ
■ フリーランタイマセレクタのブロックダイヤグラム
• アウトプットコンペア用
( アウトプットコンペアのチャネルごとに本ブロックはあります。)
アウトプットコンペアへ
アウトプットコンペアへ
カウント値
コンペア一致
転送要因セレクト回路
カウント値セレクト回路
内部データバス
0 検出
フリーランタイマ ch.0 の
カウント値
フリーランタイマ ch.1 の
カウント値
フリーランタイマ ch.2 の
カウント値
フリーランタイマ ch.0
からの 0 検出
フリーランタイマ ch.1
からの 0 検出
フリーランタイマ ch.2
からの 0 検出
フリーランタイマ ch.0
からのコンペアクリア一致
フリーランタイマ ch.1
からのコンペアクリア一致
セレクトレジスタ
フリーランタイマ ch.2
からのコンペアクリア一致
• インプットキャプチャ用
( インプットキャプチャのチャネルごとに本ブロックはあります。)
インキャプチャへ
カウント値
内部データバス
カウント値セレクト回路
フリーランタイマ ch.0 の
カウント値
フリーランタイマ ch.1 の
カウント値
フリーランタイマ ch.2 の
カウント値
セレクトレジスタ
216
第 12 章 多機能タイマ
多機能タイマの端子
12.3
多機能タイマの端子について説明します。
■ 多機能タイマの端子
表 12.3-1 多機能タイマの端子
I/O 形式
プルアップ
オプション
スタンバイ
制御
端子名
端子機能
P23/DTTI
ポート 2 入出力 ,
DTTI 入力
端子を入力ポートとして
設定する (DDR2:bit3=0)
ポート 2 入出力 ,
外部クロック
ポート 2 入出力 ,
インプットキャ
プチャ 0
端子を入力ポートとして
設定する (DDR2:bit4=0)
P24/CKI
P25/IC0
端子設定
端子を入力ポートとして
設定する (DDR2:bit5=0)
P26/IC1
ポート 2 入出力 ,
インプットキャ
プチャ 1
P20/IC2/
ADTG1
ポート 2 入出力 ,
インプットキャ
プチャ 2, AD 外
部トリガ入力 1
P21/IC3/
ADTG2
ポート 2 入出力 ,
インプットキャ
プチャ 3, AD 外
部トリガ入力 2
RTO0
(U)
ポート 3 入出力 ,
RTO0
RTO0 出力を設定する
(OCSH1:OTE0=1)
RTO1
(X)
ポート 3 入出力 ,
RTO1
RTO1 出力を設定する
(OCSH1:OTE1=1)
RTO2
(V)
ポート 3 入出力 ,
RTO2
RTO2 出力を設定する
(OCSH3:OTE0=1)
RTO3
(Y)
ポート 3 入出力 ,
RTO3
RTO4
(W)
ポート 3 入出力 ,
RTO4
RTO4 出力を設定する
(OCSH5:OTE0=1)
RTO5
(Z)
ポート 3 入出力 ,
RTO5
RTO5 出力を設定する
(OCSH5:OTE1=1)
DDRx
端子を入力ポートとして
設定する (DDR2:bit6=0)
選択可能
端子を入力ポートとして
設定する (DDR2:bit0=0)
CMOS 出力 ,
CMOS ヒス
テリシス
入力
あり
なし
端子を入力ポートとして
設定する (DDR2:bit1=0)
RTO3 出力を設定する
(OCSH3:OTE1=1)
: ポート方向レジスタ
OCSHx : コンペア制御レジスタ
217
第 12 章 多機能タイマ
12.4
多機能タイマのレジスタ
多機能タイマのレジスタについて説明します。
■ 16 ビットフリーランタイマのレジスタ
コンペアクリアバッファレジスタ , コンペアクリアレジスタ ( 上位 )
CPCLRBH0 ∼ CPCLRBH2/CPCLRH0 ∼ CPCLRH2
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
0000A4H
000154H
00015CH
CL15
W
R
CL14
W
R
CL13
W
R
CL12
W
R
CL11
W
R
CL10
W
R
CL09
W
R
CL08
W
R
初期値
11111111B
← CPCLRBH ライト
← CPCLRH リード
コンペアクリアバッファレジスタ , コンペアクリアレジスタ ( 下位 )
CPCLRBL0 ∼ CPCLRBL2/CPCLRL0 ∼ CPCLRL2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CL07
W
R
CL06
W
R
CL05
W
R
CL04
W
R
CL03
W
R
CL02
W
R
CL01
W
R
CL00
W
R
初期値
11111111B
← CPCLRBH ライト
← CPCLRH リード
タイマデータレジスタ ( 上位 )
TCDTH0 ∼ TCDTH2
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
0000A6H
000156H
00015EH
T15
R/W
T14
R/W
T13
R/W
T12
R/W
T11
R/W
T10
R/W
T09
R/W
T08
R/W
初期値
00000000B
タイマデータレジスタ ( 下位 )
TCDTL0 ∼ TCDTL2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
T07
R/W
T06
R/W
T05
R/W
T04
R/W
T03
R/W
T02
R/W
T01
R/W
T00
R/W
初期値
00000000B
( 続く )
218
第 12 章 多機能タイマ
( 続き )
タイマ状態制御レジスタ ( 上位 )
TCCSH0 ∼ TCCSH2
アドレス
bit15
bit14
bit13
0000A8H
000158H
000160H
ECKE IRQZF IRQZE
R/W
R/W
R/W
bit12
bit11
bit10
bit9
bit8
MSI2
R/W
MSI1
R/W
MSI0
R/W
ICLR
R/W
ICRE
R/W
bit4
bit3
bit2
bit1
bit0
CLK3
R/W
CLK2
R/W
CLK1
R/W
CLK0
R/W
初期値
00000000B
タイマ状態制御レジスタ ( 下位 )
TCCSL0 ∼ TCCSL2
アドレス
bit7
0000A9H
000159H
000161H
BFE
R/W
bit6
bit5
STOP MODE SCLR
R/W
R/W
R/W
初期値
01000000B
A/D トリガ制御レジスタ
ADTRGC
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
0000ABH
−
−
−
−
−
−
−
−
SEL2
R/W
SEL1
R/W
AD2E
R/W
AD1E
R/W
R/W
R
W
X
−
初期値
0XXX0000B
: リード / ライト可能
: リードオンリ
: ライトオンリ
: 不定
: 未定義
219
第 12 章 多機能タイマ
■ 16 ビットアウトプットコンペアのレジスタ
アウトプットコンペアバッファレジスタ , アウトプットコンペアレジスタ ( 上位 )
OCCPBH0 ∼ OCCPBH5/OCCPH0 ∼ OCCPH5
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
000090H
000092H
000094H
000096H
000098H
00009AH
OP15
W
R
OP14
W
R
OP13
W
R
OP12
W
R
OP11
W
R
OP10
W
R
OP09
W
R
bit8
初期値
00000000B
OP08
W
← OCCPBH ライト
R
← OCCPH リード
アウトプットコンペアバッファレジスタ , アウトプットコンペアレジスタ ( 下位 )
OCCPBL0 ∼ OCCPBL5/OCCPL0 ∼ OCCPL5
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
000091H
000093H
000095H
000097H
000099H
00009BH
OP07
W
R
OP06
W
R
OP05
W
R
OP04
W
R
OP03
W
R
OP02
W
R
OP01
W
R
bit0
初期値
00000000B
OP00
W
← OCCPBL ライト
R
← OCCPL リード
bit12
bit11
bit10
bit9
bit8
CMOD OTE1
R/W
R/W
OTE0
R/W
OTD1
R/W
OTD0
R/W
コンペア制御レジスタ 1, 3, 5 ( 上位 )
OCSH1, OCSH3, OCSH5
アドレス
bit15
bit14
bit13
00009CH
00009EH
0000A0H
−
−
BTS1
R/W
BTS0
R/W
初期値
X1100000B
コンペア制御レジスタ 0, 2, 4 ( 下位 )
OCSL0, OCSL2, OCSL4
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
00009DH
00009FH
0000A1H
IOP1
R/W
IOP0
R/W
IOE1
R/W
IOE0
R/W
BUF1
R/W
BUF0
R/W
CST1
R/W
CST0
R/W
bit13
bit12
bit11
bit10
bit9
bit8
初期値
00001100B
コンペアモード制御レジスタ
OCMOD
アドレス
00009DH
00009FH
0000A2H
R/W
R
W
X
−
220
bit15
−
−
: リード / ライト可能
: リードオンリ
: ライトオンリ
: 不定
: 未定義
bit14
−
−
MOD15 MOD14 MOD13 MOD12 MOD11 MOD10
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XX000000B
第 12 章 多機能タイマ
■ 16 ビットインプットキャプチャのレジスタ
インプットキャプチャデータレジスタ ( 上位 )
IPCPH0 ∼ IPCPH3
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
0000ACH
0000AEH
0000B0H
0000B2H
CP15
R
CP14
R
CP13
R
CP12
R
CP11
R
CP10
R
CP09
R
CP08
R
初期値
XXXXXXXXB
インプットキャプチャデータレジスタ ( 下位 )
IPCPL0 ∼ IPCPL3
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
0000ADH
0000AFH
0000B1H
0000B3H
CP07
R
CP06
R
CP05
R
CP04
R
CP03
R
CP02
R
CP01
R
CP00
R
初期値
XXXXXXXXB
インプットキャプチャ状態制御レジスタ (ch.2, ch.3) ( 上位 )
ICSH23
アドレス
0000B6H
bit15
−
−
bit14
−
−
bit13
−
−
bit12
−
−
bit11
−
−
bit10
bit9
bit8
−
−
IEI3
R
IEI2
R
初期値
XXXXXX00B
インプットキャプチャ状態制御レジスタ (ch.2, ch.3) ( 下位 )
ICSL23
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
0000B7H
ICP3
R/W
ICP2
R/W
ICE3
R/W
ICE2
R/W
EG31
R/W
EG30
R/W
EG21
R/W
EG20
R/W
初期値
00000000B
PPG 出力制御 / インプットキャプチャ状態制御レジスタ (ch.0, ch.1) ( 上位 )
PICSH01
アドレス
0000B4H
bit15
bit14
bit13
bit12
bit11
bit10
PGEN5 PGEN4 PGEN3 PGEN2 PGEN1 PGEN0
W
W
W
W
W
W
bit9
bit8
IEI1
R
IEI0
R
初期値
00000000B
インプットキャプチャ状態制御レジスタ (ch.0, ch.1) ( 下位 )
PICSL01
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
0000B5H
ICP1
R/W
ICP0
R/W
ICE1
R/W
ICE0
R/W
EG11
R/W
EG10
R/W
EG01
R/W
EG00
R/W
R/W
R
W
X
−
初期値
00000000B
: リード / ライト可能
: リードオンリ
: ライトオンリ
: 不定
: 未定義
221
第 12 章 多機能タイマ
■ 波形ジェネレータのレジスタ
16 ビットデッドタイマレジスタ ( 上位 )
TMRRH0 ∼ 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
初期値
XXXXXXXXB
16 ビットデッドタイマレジスタ ( 下位 )
TMRRL0 ∼ TMRRL2
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
0000BDH
0000BFH
0000C1H
TR07
R/W
TR06
R/W
TR05
R/W
TR04
R/W
TR03
R/W
TR02
R/W
TR01
R/W
TR00
R/W
bit12
bit11
初期値
XXXXXXXXB
16 ビットデッドタイマ制御レジスタ 0
DTCR0
bit15
アドレス
0000C4H
bit14
bit13
DMOD0 GTEN1 GTEN0 TMIF0 TMIE0
R/W
R/W
R/W
R/W
R/W
bit4
bit3
bit10
bit9
bit8
TMD2
R/W
TMD1
R/W
TMD0
R/W
初期値
00000000B
16 ビットデッドタイマ制御レジスタ 1
DTCR1
bit7
アドレス
0000C5H
bit6
bit5
DMOD1 GTEN3 GTEN2 TMIF1 TMIE1
R/W
R/W
R/W
bit2
bit1
bit0
TMD4
R/W
TMD3
R/W
R/W
R/W
TMD5
R/W
bit12
bit11
bit10
bit9
bit8
初期値
00000000B
16 ビットデッドタイマ制御レジスタ 2
DTCR2
bit15
アドレス
bit14
bit13
R/W
R/W
R/W
R/W
R/W
TMD8
R/W
TMD7
R/W
TMD6
R/W
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
0000C9H
DTIE
R/W
DTIF
R/W
NRSL
R/W
DCK2
R/W
DCK1
R/W
bit7
bit6
bit5
bit4
bit3
0000C6H
DMOD2 GTEN5 GTEN4 TMIF2 TMIE2
初期値
00000000B
波形制御レジスタ 1
SIGCR1
DCK0 NWS1 NWS0
R/W
R/W
R/W
初期値
00000000B
波形制御レジスタ 2
SIGCR2
アドレス
0000CBH
−
−
R/W : リード / ライト可能
X
: 不定
−
: 未定義
222
−
−
−
−
−
−
−
−
bit2
−
−
bit1
bit0
−
−
DTTI
R/W
初期値
XXXXXXX1B
第 12 章 多機能タイマ
■ A/D 起動コンペアのレジスタ
コンペアレジスタ 2 ( 上位 )
ADCOMP1,ADCOMP2
bit15
アドレス
ch.1 :0000CEH
ch.2 :0000D0H
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
初期値
00000000B
コンペアレジスタ 2 ( 下位 )
ADCOMP1,ADCOMP2
アドレス
ch.1 :0000CFH
ch.2 :0000D1H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
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
制御レジスタ 1
ADCOMPC1
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CE1
R/W
−
−
bit9
bit8
−
−
−
−
bit17
bit16
−
−
−
−
−
−
−
−
−
−
CE2
R/W
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
0000D2H
−
−
−
−
0000D3H
初期値
XXXXX00XB
制御レジスタ 2
ADCOMPC2
SEL21 SEL20 SEL11 SEL10
R/W
R/W
R/W
R/W
初期値
XX0000XXB
R/W : リード / ライト可能
X
: 不定
−
: 未定義
■ フリーランタイマセレクタレジスタ
FSR2
アドレス
000169H
bit23
bit22
bit21
bit20
bit19
bit18
ICU31 ICU30 ICU21 ICU20 ICU11 ICU10 ICU01 ICU00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
FSR1
アドレス
bit15
bit14
bit13
bit12
00016AH
−
−
−
−
−
−
−
−
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
OCU51 OCU50 OCU41 OCU40
R/W
R/W
R/W
R/W
初期値
XXXX0000B
FSR0
アドレス
00016BH
bit11
bit10
bit9
bit8
OCU31 OCU30 OCU21 OCU20 OCU11 OCU10 OCU01 OCU00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W : リード / ライト可能
X
: 不定
−
: 未定義
223
第 12 章 多機能タイマ
12.4.1
コンペアクリアバッファレジスタ (CPCLRBH0 ∼
CPCLRBH2, CPCLRBL0 ∼ CPCLRBL2) /
コンペアクリアレジスタ (CPCLRH0 ∼ CPCLRH2,
CPCLRL0 ∼ CPCLRL2)
コンペアクリアバッファレジスタ (CPCLRBH, CPCLRBL) は , コンペアクリアレジ
スタ (CPCLRH, CPCLRL) に存在する 16 ビットバッファレジスタです。CPCLRBH,
CPCLRBL レジスタと CPCLRH, CPCLRL レジスタは , 両方とも同じアドレスに存
在します。
■ コンペアクリアバッファレジスタ (CPCLRBH0 ∼ CPCLRBH2, CPCLRBL0 ∼
CPCLRBL2)
コンペアクリアバッファレジスタ , コンペアクリアレジスタ ( 上位 )
CPCLRBH0 ∼ CPCLRBH2
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
0000A4H
000154H
00015CH
CL15
W
CL14
W
CL13
W
CL12
W
CL11
W
CL10
W
CL09
W
CL08
W
初期値
11111111B
コンペアクリアバッファレジスタ , コンペアクリアレジスタ ( 下位 )
CPCLRBL0 ∼ CPCLRBL2
W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CL07
W
CL06
W
CL05
W
CL04
W
CL03
W
CL02
W
CL01
W
CL00
W
初期値
11111111B
: ライトオンリ
コンペアクリアバッファレジスタは , コンペアクリアレジスタ (CPCLRH, CPCLRL) と
同じアドレスに存在するバッファレジスタです。バッファ機能が無効になるか ( タイ
マ状態制御レジスタ下位 (TCCSL) の BFE:bit7=0) , またはフリーランタイマが停止す
ると , コンペクリアバッファレジスタの値が直ちにコンペアクリアレジスタへ転送さ
れます。
バッファ機能が有効になると , 16 ビットフリーランタイマのカウント値 "0" が
検出されたときに値がコンペアクリアレジスタへ転送されます。
このレジスタへアクセスする場合は , ハーフワードもしくはワードアクセス命令をご
使用ください。
224
第 12 章 多機能タイマ
■ コンペアクリアレジスタ (CPCLRH0 ∼ CPCLRH2, CPCLRL0 ∼ CPCLRL2)
コンペアクリアバッファレジスタ , コンペアクリアレジスタ ( 上位 )
CPCLRH0 ∼ CPCLRH2
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
0000A4H
000154H
00015CH
CL15
R
CL14
R
CL13
R
CL12
R
CL11
R
CL10
R
CL09
R
CL08
R
初期値
11111111B
コンペアクリアバッファレジスタ , コンペアクリアレジスタ ( 下位 )
CPCLRL0 ∼ CPCLRL2
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CL07
R
CL06
R
CL05
R
CL04
R
CL03
R
CL02
R
CL01
R
CL00
R
初期値
11111111B
: リードオンリ
コンペアクリアレジスタは , 16 ビットフリーランタイマのカウント値と比較するため
に使用します。アップカウントモード時は , このレジスタが 16 ビットフリーランタイ
マのカウント値と一致すると , 16 ビットフリーランタイマは , "0000H" にリセットされ
ます。アップダウンカウントモード時は , このレジスタが 16 ビットフリーランタイマ
のカウント値と一致すると, 16ビットフリーランタイマは, アップカウントからダウン
カウントに変わるか , または "0" 検出時にダウンカウントからアップカウントに変わり
ます。
このレジスタへアクセスする場合は , ハーフワードもしくはワードアクセス命令をご
使用ください。
225
第 12 章 多機能タイマ
12.4.2
タイマデータレジスタ (TCDTH0 ∼ TCDTH2,
TCDTL0 ∼ TCDTL2)
タイマデータレジスタは , (TCDTH, TCDTL) は , 16 ビットフリーランタイマのカウ
ント値を読み出すために使用します。
■ タイマデータレジスタ (TCDTH0 ∼ TCDTH2, TCDTL0 ∼ TCDTL2)
タイマデータレジスタ ( 上位 )
TCDTH0 ∼ TCDTH2
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
0000A6H
000156H
00015EH
T15
R/W
T14
R/W
T13
R/W
T12
R/W
T11
R/W
T10
R/W
T09
R/W
T08
R/W
初期値
00000000B
タイマデータレジスタ ( 下位 )
TCDTL0 ∼ TCDTL2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
T07
R/W
T06
R/W
T05
R/W
T04
R/W
T03
R/W
T02
R/W
T01
R/W
T00
R/W
初期値
00000000B
R/W : リード / ライト可能
タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出すために
使用します。カウント値は , リセットが発生すると直ちに "0000H" にクリアされます。
タイマ値は , このレジスタへ値を書き込むことで設定することができます。ただし , 値
の書込みはタイマの停止中 ( タイマ状態制御レジスタ下位 (TCCSL) の STOP:bit6=1)
でなければなりません。タイマデータレジスタへアクセスする場合は , ハーフワードも
しくはワードアクセス命令をご使用ください。
16 ビットフリーランタイマは , 以下の要因が発生すると直ちに初期化されます。
• リセット
• タイマ状態制御レジスタ (TCCSL) のクリアビット (SCLR:bit4) =1
• アップカウントモード ( タイマ状態制御レジスタ下位 (TCCSL) の MODE:bit5=0) 時
におけるコンペアクリアレジスタとタイマカウント値の一致
226
第 12 章 多機能タイマ
12.4.3
タイマ状態制御レジスタ (TCCSH0 ∼ TCCSH2,
TCCSL0 ∼ TCCSL2)
タイマ状態制御レジスタ (TCCSH, TCCSL) は , 16 ビットフリーランタイマの動作を
制御するために使用する 16 ビットレジスタです。
■ タイマ状態制御レジスタ , 上位 (TCCSH0 ∼ TCCSH2)
TCCSH0 ∼ TCCSH2
bit15
アドレス
0000A8H
ECKE
000158H
000160H
R/W
bit14
bit13
bit12
bit11
bit10
bit9
bit8
IRQZF
IRQZE
MSI2
MSI1
MSI0
ICLR
ICRE
R/W
R/W
R/W
R/W
R/W
R/W
R/W
ICRE
コンペアクリア割込み要求許可ビット
0
割込み要求を禁止する
1
割込み要求を許可する
コンペアクリア割込みフラグビット
ICLR
読出し時
書込み時
0
コンペアクリア一致なし
このビットをクリアする
1
コンペアクリア一致あり
このビットに影響を与えない
割込みマスク選択ビット
MSI2
MSI1
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 回目の一致が発生したときに割込み生成
MSI0
IRQZE
0 検出割込み要求許可ビット
0
割込み要求を禁止にする
1
割込み要求を許可する
IRQZF
R/W : リード / ライト可能
: 初期値
初期値
00000000B
0 検出割込みフラグビット
読出し時
書込み時
0
"0" が検出されない
このビットをクリアする
1
"0" が検出される
このビットに影響を与えない
ECKE
クロック選択ビット
0
内部クロック
1
外部クロック
227
第 12 章 多機能タイマ
表 12.4-1 タイマ状態制御レジスタ , 上位 (TCCSH) (1 / 2)
ビット名
機能
• このビットは , 内部クロックまたは外部クロックを 16 ビットフリー
ランタイマのカウントクロックとして選択するために使用します。
• このビットに "0" を設定した場合:
内部クロックが選択されます。カウントクロック周波数を選択するた
めには , TCCSL レジスタのクロック周波数選択ビット (CLK3 ∼
bit15
ECKE:
クロック選択
ビット
CLK0:bit3 ∼ bit0) も選択しなければなりません。
• このビットに "1" を設定した場合:
外部クロックが選択されます。外部クロックは , "CKI" 端子から入力
されます。したがって , ポート方向レジスタ (DDR1) の bit7 へ "0" を
書き込んで外部クロック入力を有効にしなければなりません。
( 注意事項 )
カウントクロックは , このビットが設定されると直ちに変更されま
す。したがって , このビットの変更は , アウトプットコンペアとイン
プットキャプチャが停止している間でなければなりません。
• 16 ビットフリーランタイマのカウント値が "0000H" のとき , このビッ
トには "1" がセットされます。
• このビットに "0" を設定した場合:このビットはクリアされます。
• このビットに "1" を設定した場合:このビットは影響を受けません。
• リードモディファイライト (RMW) 時は , 必ず "1" が読み出されます。
bit14
bit13
IRQZF:
0 検出割込みフ
ラグビット
IRQZE:
0 検出割込み要
求許可ビット
( 注意事項 )
ソフトウェアクリア ( タイマ状態制御レジスタ下位 (TCCSL) の
SCLR:bit4 への "1" 書込み ) では , このビットは設定されません。
アップダウンカウントモード ( タイマ状態制御レジスタ下位 (TCCSL)
の MODE:bit5=1) 時は , 割込みマスク選択ビット ( タイマ状態制御レ
ジスタ上位 (TCCSH) の MSI2 ∼ MSI0:bit12 ∼ bit10 が "000B" 以外 )
で設定した割込みが発生したときにこのビットに "1" が設定されま
す。割込みが発生しないときは , このビットに "1" は設定されません。
アップカウントモード (MODE:bit5=0) 時は , MSI2 ∼ MSI0:bit12 ∼
bit10 の値とは無関係に , このビットは 0 検出が発生するたびに設定さ
れます。
このビットと割込みフラグビット (IRQZF:bit14) に "1" が設定されると ,
CPU に対する割込み要求が生成されます。
• これらのビットは , アップカウントモード (MODE=0) 時は , コンペア
クリア割込みのマスク回数を設定するために使用します。アップダウ
ンカウントモード (MODE=1) 時は , 0 検出割込みのマスク回数を設定
bit12
∼
bit10
するために使用します。
MSI2 ∼ MSI0:
割込みマスク選 • このビットに "0" を設定した場合:割込み要因はマスクされません。
択ビット
( 注意事項 )
割込み要因を 2 回マスクし , 3 回目の割込みを処理する際には , これ
らのビットに "010B" を設定しなければなりません。
読出し値はマスクカウンタの値です。
228
第 12 章 多機能タイマ
表 12.4-1 タイマ状態制御レジスタ , 上位 (TCCSH) (2 / 2)
ビット名
機能
• コンペアクリア値と 16 ビットフリーランタイマ値が一致すると , こ
のビットには "1" が設定されます。
• このビットに "0" を設定した場合:このビットはクリアされます。
• このビットに "1" を設定した場合:このビットは影響を受けません。
bit9
bit8
• リードモディファイライト (RMW) 時は , 必ず "1" が読み出されます。
ICLR:
コンペアクリア ( 注意事項 )
割込みフラグ
アップカウントモード ( タイマ状態制御レジスタ下位 (TCCSL) の
ビット
MODE:bit5=0) 時は , 割込みマスク選択ビットで設定した割込みが発
生したときにこのビットに "1" が設定されます。
割込みが発生しないときは , このビットに "1" は設定されません。
アップダウンカウントモード (MODE=1) 時は , MSI2 ∼ MSI0 ビット
の値とは無関係に , このビットはコンペアクリアが発生するたびに設
定されます。
ICRE:
このビットとコンペアクリア割込みフラグビット (ICLR:bit9) に "1" が
コンペアクリア 設定されると , CPU に対する割込み要求が生成されます。
割込み要求許可
ビット
229
第 12 章 多機能タイマ
■ タイマ制御レジスタ , 下位 (TCCSL0 ∼ TCCSL2)
TCCSL0 ∼ TCCSL2
bit7
アドレス
0000A9H
BFE
000159H
000161H
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
初期値
01000000B
クロック周波数選択ビット
CLK3 CLK2
0
CLK1
0
CLK0 カウント
クロック φ/=32MHz φ/=16MHz φ/=8MHz
0
0
φ
φ/=4MHz φ/=1MHz
31.25ns
62.5ns
125ns
0.25µs
1µs
62.5ns
125ns
0.25µs
0.5µs
2µs
4µs
0
0
0
1
φ/2
0
0
1
0
φ/4
125ns
0.25µs
0.5µs
1µs
0
0
1
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
0
φ/256
8µs
16µs
32µs
64µs
256µs
1
0
0
その他 設定禁止
φ:マシンサイクル
SCLR
0
1
MODE
R/W : リード / ライト可能
: 初期値
230
タイマクリアビット
読出し時
書込み時
常に "0" を読み出す
カウンタを初期化しない
カウンタを "0000H" に初期化
タイマカウントモードビット
0
アップカウントモード
1
アップダウンカウントモード
STOP
タイマ許可ビット
0
カウントを許可する ( カウント開始する )
1
カウントを禁止する ( カウント停止する )
BFE
コンペアクリアバッファ許可ビット
0
コンペアクリアバッファを無効にする
1
コンペアクリアバッファを有効にする
第 12 章 多機能タイマ
表 12.4-2 タイマ状態制御レジスタ , 下位 (TCCSL) (1 / 2)
ビット名
機能
• このビットは, コンペアクリアバッファを有効にするために使用しま
す。
• このビットに "0" を設定した場合:
bit7
コンペアクリアバッファは無効になります。したがって , コンペアク
BFE:
リアレジスタ (CPCLRH, CPCLRL) に直接書き込むことが可能です。
コンペアクリア
バッファ許可
• このビットに "1" を設定した場合:
ビット
コンペアクリアバッファは有効になります。コンペアクリアバッファ
に書き込まれ , 保持されていたデータは , 16 ビットフリーランタイマ
からのカウント値 "0" が検出されると , コンペアクリアレジスタへ転
送されます。
• このビットは , 16 ビットフリーランタイマのカウントを停止 / 開始す
るために使用します。
• このビットに "0" を設定した場合:
bit6
STOP:
タイマ許可
ビット
16 ビットフリーランタイマのカウントは開始します。
• このビットに "1" を設定した場合:
16 ビットフリーランタイマのカウントは停止します。
( 注意事項 )
16 ビットフリーランタイマが停止すると , アウトプットコンペアの動
作も停止します。
• このビットは, 16ビットフリーランタイマのカウントモードを選択す
るために使用します。
• このビットに "0" を設定した場合:
アップカウントモードが選択されます。タイマは , カウント値がコン
ペアクリアレジスタと一致して"0000H"にリセットされるまでカウン
トアップし , その後 , 再びカウントアップします。
bit5
• このビットに "1" を設定した場合:
MODE:
アップダウンカウントモードが選択されます。タイマは , カウント値
タイマカウント
モードビット
がコンペアクリアレジスタと一致するまでカウントアップし, その後
ダウンカウントに変わります。その後 , カウント値が "0000H" に達す
ると再びアップカウントに変わります。
• このビットは, タイマが動作中であっても停止されていても書込みが
可能です。タイマが動作中の場合は , このビットに書き込まれた値は
バッファに入れられ , その後 , タイマ値が "0000H" になるとバッファ
の値によりカウントモードが変わります。
231
第 12 章 多機能タイマ
表 12.4-2 タイマ状態制御レジスタ , 下位 (TCCSL) (2 / 2)
ビット名
機能
• このビットは , 16 ビットフリーランタイマを "0000H" に初期化するた
めに使用します。
• このビットに "1" を設定した場合:
bit4
SCLR:
タイマクリア
ビット
16 ビットフリーランタイマは , その次のカウントクロックで "0000H"
に初期化されます。
• 読出し値は , 必ず "0" です。
( 注意事項 )
このビットに "1" を書き込んでも , 0 検出割込みは生成されません。
"1" を設定した後 , 次のカウントクロックが来る前に "0" を書き込む
とタイマクリアは行われません。
• このビットは, 16ビットフリーランタイマのカウントクロック周波数
bit3
∼
bit0
を選択するために使用します。
CLK3 ∼ CLK0:
クロック周波数 • カウントクロックは, これらのビットが設定されると直ちに変更され
選択ビット
ます。したがって , これらのビットの変更は , アウトプットコンペア
とインプットキャプチャが停止している間でなければなりません。
232
第 12 章 多機能タイマ
12.4.4
A/D トリガ制御レジスタ (ADTRGC)
フリーランタイマのコンペア一致時 , もしくは 0 検出時に A/D トリガ信号出力を制
御します。
■ A/D トリガ制御レジスタ (ADTRGC)
ADTRGC
bit7
bit6
bit5
bit4
アドレス
0000ABH
bit3
bit2
bit1
bit0
SEL2
SEL1
AD2E
AD1E
R/W
R/W
R/W
R/W
AD1E
R/W :リード / ライト可能
− :未定義
:初期値
AD1 トリガ出力許可ビット
0
禁止
1
許可
AD2E
初期値
XXXX0000B
AD2 トリガ出力許可ビット
0
禁止
1
許可
SEL1
AD1 トリガ要因選択ビット
0
0 検出時
1
コンペア一致時
SEL2
AD2 トリガ要因選択ビット
0
0 検出時
1
コンペア一致時
233
第 12 章 多機能タイマ
表 12.4-3 AD トリガ制御レジスタ (ADTRGC)
ビット名
機能
bit7
∼
bit4
未定義ビット
bit3
SEL2:
AD2 トリガ要因選択ビット
AD2 のトリガをフリーランタイマの 0 検出時に出力するか ,
bit2
SEL1:
AD1 トリガ要因選択ビット
AD1 のトリガをフリーランタイマの 0 検出時に出力するか ,
bit1
AD2E:
AD2 トリガ許可ビット
• "0" のとき , AD2 トリガ信号は出力されません。
bit0
234
• 読出し値は不定です。
AD1E:
AD1 トリガ許可ビット
• このビットへの書込みは動作に影響しません。
コンペア一致時に出力するかの選択ビットです。
コンペア一致時に出力するかの選択ビットです。
• "1" のとき , 出力許可となります。
• "0" のとき , AD1 トリガ信号は出力されません。
• "1" のとき , 出力許可となります。
第 12 章 多機能タイマ
12.4.5
アウトプットコンペアバッファレジスタ
(OCCPBH0 ∼ OCCPBH5, OCCPBL0 ∼ OCCPBL5) /
アウトプットコンペアレジスタ
(OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5)
アウトプットコンペアバッファレジスタ (OCCPBH, OCCPBL) は , アウトプットコ
ンペアレジスタ (OCCPH, OCCPL) 用の 16 ビットバッファレジスタです。
OCCPBH, OCCPBL レジスタと OCCPH, OCCPL レジスタは , 両方とも同じアドレ
スに存在しています。
■ アウトプットコンペアバッファレジスタ
(OCCPBH0 ∼ OCCPBH5, OCCPBL0 ∼ OCCPBL5)
アウトプットコンペアバッファレジスタ , アウトプットコンペアレジスタ ( 上位 )
OCCPBH0 ∼ OCCPBH5
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000090H
000092H
000094H
000096H
000098H
00009AH
OP15
W
OP14
W
OP13
W
OP12
W
OP11
W
OP10
W
OP09
W
OP08
W
初期値
00000000B
アウトプットコンペアバッファレジスタ , アウトプットコンペアレジスタ ( 下位 )
OCCPBL0 ∼ OCCPBL5
W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
OP07
W
OP06
W
OP05
W
OP04
W
OP03
W
OP02
W
OP01
W
OP00
W
初期値
00000000B
: ライトオンリ
アウトプットコンペアバッファレジスタは , アウトプットコンペアレジスタ (OCCPH,
OCCPL) 用のバッファレジスタです。バッファ機能が無効になるか ( コンペア制御レジ
スタ下位 (OCSL0, OCSL2, OCSL4) の BUF1, BUF0:bit3, bit2=11B) , またはフリーランタ
イマが停止すると , アウトプットコンペアバッファレジスタの値は , 直ちにアウトプッ
トコンペアレジスタへ転送されます。バッファ機能が有効になると ( コンペア制御レジ
スタ下位 (OCSL0, OCSL2, OCSL4) の BUF1, BUF0:bit3, bit2=00B) , 値はコンペア制御レジ
スタ上位 (OCSH1, OCSH3, OCSL5) の転送選択ビット (BTS1, BTS0:bit14, bit13) に従っ
てコンペアクリア一致時 , または 0 検出時に転送されます。
このレジスタへアクセスする場合 , ハーフワードもしくはワードアクセス命令をご使
用ください。
以上の説明中のフリーランタイマはアウトプットコンペアが選択しているフリーラン
タイマの動作状態についてです。
235
第 12 章 多機能タイマ
■ アウトプットコンペアレジスタ (OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5)
アウトプットコンペアバッファレジスタ , アウトプットコンペアレジスタ ( 上位 )
OCCPH0 ∼ OCCPH5
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000090H
000092H
000094H
000096H
000098H
00009AH
OP15
R
OP14
R
OP13
R
OP12
R
OP11
R
OP10
R
OP09
R
OP08
R
初期値
00000000B
アウトプットコンペアバッファレジスタ , アウトプットコンペアレジスタ ( 下位 )
OCCPL0 ∼ OCCPL5
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
000091H
000093H
000095H
000097H
000099H
00009BH
OP07
R
OP06
R
OP05
R
OP04
R
OP03
R
OP02
R
OP01
R
OP00
R
R
初期値
00000000B
: リードオンリ
アウトプットコンペアレジスタは , 16 ビットフリーランタイマのカウント値と比較す
るために使用する 16 ビットレジスタです。タイマの動作を有効にする前にアウトプッ
トコンペアバッファレジスタ (OCCPBH, OCCPBL) に値を設定してください。
アウトプットコンペアレジスタの値が 16 ビットフリーランタイマのカウント値と一致
すると , コンペア信号が生成され , アウトプットコンペア割込みフラグビット ( コンペ
ア制御レジスタ下位 OCSL0, OCSL2, OCSL4 の IOP1, IOP0:bit7, bit6) が設定されます。
出力レベルが設定されると ( コンペア制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の
ODT1, ODT0:bit9, bit8) , アウトプットコンペアレジスタ (OCCPH0 ∼ OCCPH5, OCCPL0 ∼
OCCPL5) に対応する出力レベル波形ジェネレータ RTO0 ∼ RTO5 を反転させることが
できます。
本レジスタ値と 16 ビットフリーランタイマのアップダウンモード時のピーク値と一致
した場合は , コンペア信号は生成されません。
● アップダウンモード
• CMOD=0 時
本レジスタ値に "FFFFH" を設定した場合は , RT 出力は 16 ビットフリーランタイマ
の値や反転モードにかかわらず "0" 出力となります。"0000H" を設定した場合は "1"
出力となります。
• CMOD=1 時
本レジスタ値に "FFFFH" を設定した場合は , RT 出力は 16 ビットフリーランタイマ
の値や反転モードにかかわらず "1" 出力となります。"0000H" を設定した場合は "0"
出力となります。
このレジスタへアクセスする場合 , ハーフワードもしくはワードアクセス命令をご使
用ください。
以上の説明中のフリーランタイマはアウトプットコンペアが選択しているフリーラン
タイマの動作状態についてです。
236
第 12 章 多機能タイマ
12.4.6
コンペア制御レジスタ
(OCSH0 ∼ OCSH5, OCSL0 ∼ OCSL5)
コンペア制御レジスタは , RT0 ∼ RT5 の出力レベル , 出力許可 , 出力レベル反転
モード , コンペア動作許可 , コンペア一致割込み許可 , およびコンペア一致割込みフ
ラグを制御するために使用します。
■ コンペア制御レジスタ , 上位 (OCSH1, OCSH3, OCSH5)
OCSH1, OCSH3, OCSH5
アドレス
bit15
00009CH
00009EH
0000A0H
bit14
bit13
bit12
bit11
bit10
bit9
bit8
BTS1
BTS0
CMOD
OTE1
OTE0
OTD1
OTD0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
出力レベルビット
OTD0
0
1
読出し時
書込み時
RT0, RT2, RT4 の現出力値
RT0,RT2,RT4 が "0" を出力
RT0,RT2,RT4 が "1" を出力
出力レベルビット
OTD1
0
1
CMOD
初期値
X1100000B
読出し時
RT1, RT3, RT5 の現出力値
書込み時
RT1,RT3,RT5 が "0" を出力
RT1,RT3,RT5 が "1" を出力
OTE0
出力許可ビット
0
汎用入出力ポート
1
波形ジェネレータ出力端子 (RTO0, RTO2, RTO4)
OTE1
出力許可ビット
0
汎用入出力ポート
1
波形ジェネレータ出力端子 (RTO1, RTO3, RTO5)
出力レベル反転モードビット
MOD1x=0
MOD1x=1
0
RT0,RT2,RT4:レベルは , コンペアレジスタ
0, 2, 4 との一致が発生すると直ちに反転する
RT1,RT3,RT5:レベルは , コンペアレジスタ
1, 3, 5 との一致が発生すると直ちに反転する
アップカウント時の一致時は "1" にリセット
ダウンカウント時の一致時は "0" にセット
1
RT0,RT2,RT4:レベルは , コンペアレジスタ
0, 2, 4 との一致が発生すると直ちに反転する
アップカウント時の一致時は "0" にリセット
RT1,RT3,RT5:レベルは , コンペアレジスタ
ダウンカウント時の一致時は "1" にセット
(0 または 1)(2 または 3)(4 または 5) との一
致が発生すると直ちに反転する
0
バッファ転送選択ビット
0 検出が発生すると転送が起動 (ch.0, 2, 4)
1
コンペアクリア一致が発生すると転送が起動 (ch.0, 2, 4)
BTS0
R/W :リード / ライト可能
− :未定義
:初期値
BTS1
バッファ転送選択ビット
0
0 検出が発生すると転送が起動 (ch.1, 3, 5)
コンペアクリア一致が発生すると転送が起動 (ch.1, 3, 5)
1
237
第 12 章 多機能タイマ
表 12.4-4 コンペア制御レジスタ , 上位 (OCSH1, OCSH3, OCSH5) (1 / 3)
ビット名
bit15
未定義ビット
機能
• 読出し値は不定です。
• このビットへの書込みは動作に影響しません。
• このビットは , アウトプットコンペアバッファレジスタ
(OCCPBH1,OCCPBH3,OCCPBH5, OCCPBL1,OCCPBL3,OCCPBL5) か
らアウトプットコンペアレジスタ
(OCCPH1,OCCPH3,OCCPH5,
OCCPL1,OCCPL3,OCCPL5) へのデータ転送時期を選択するために使
bit14
BTS1:
バッファ転送
選択ビット
用します。
• このビットに "0" を設定した場合:
データ転送は , 16 ビットフリーランタイマのカウント値 "0" が検出さ
れると起動します。
• このビットに "1" を設定した場合:
データ転送は , 16 ビットフリーランタイマでコンペアクリア一致が
発生すると起動します。
• このビットは , アウトプットコンペアバッファレジスタ
(OCCPBH0,OCCPBH2,OCCPBH4, OCCPBL0,OCCPBL2,OCCPBL4) か
らアウトプットコンペアレジスタ
(OCCPH0,OCCPH2,OCCPH4,
OCCPL0,OCCPL2,OCCPL4) へのデータ転送時期を選択するために使
bit13
BTS0:
バッファ転送
選択ビット
用します。
• このビットに "0" を設定した場合:
データ転送は , 16 ビットフリーランタイマのカウント値 "0" が検出さ
れると起動します。
• このビットに "1" を設定した場合:
データ転送は , 16 ビットフリーランタイマでコンペアクリア一致が
発生すると起動します。
238
第 12 章 多機能タイマ
表 12.4-4 コンペア制御レジスタ , 上位 (OCSH1, OCSH3, OCSH5) (2 / 3)
ビット名
機能
• このビットは , 端子出力が有効の間 (OTE1=1 または OTE0=1) に一致
が発生した場合に端子出力レベル反転モードを直ちに切り換えるた
めに使用します。
• このビットに "0" を設定した場合:
コンペアモード制御レジスタ (OCMOD):MOD1x=0 のとき
- RT0, RT2, RT4:レベルは , 16 ビットフリーランタイマとコンペア
レジスタ 0, 2, 4 が一致すると直ちに反転します。
- RT1, RT3, RT5:レベルは , 16 ビットフリーランタイマとコンペア
レジスタ 1, 3, 5 が一致すると直ちに反転します。
コンペアモード制御レジスタ (OCMOD):MOD1x=1 のとき
- アップカウント時に一致したときは , "1" にセット
bit12
CMOD:
- ダウンカウント時に一致したときは , "0" にリセット
出力レベル反転
• このビットに "1" を設定した場合:
モードビット
コンペアモード制御レジスタ (OCMOD):MOD1x=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):MOD1x=1 のとき
- アップカウント時に一致したときは , "0" にリセット
- ダウンカウント時に一致したときは , "1" にセット
• このビットは , ポートへの波形ジェネレータ出力 (RTO1, RTO3,
RTO5) を許可するために使用します。
bit11
• このビットの初期値は "0" です。
OTE1:
( 注意事項 )
出力許可ビット
波形ジェネレータが無効 (16 ビットデッドタイマ制御レジスタ下位
(DTCR0 ∼ DTCR2) の TMD2 ∼ TMD0, TMD5 ∼ TMD3, TMD8 ∼
TMD6:bit2 ∼ bit0=000B) の場 合は , RTO1, RTO3, RTO5 はアウト
プットコンペアと同じ値を出力します。
• このビットは , ポートへの波形ジェネレータ出力 (RTO0, RTO2,
RTO4) を許可するために使用します。
bit10
• このビットの初期値は "0" です。
OTE0:
( 注意事項 )
出力許可ビット
波形ジェネレータが無効 (16 ビットデッドタイマ制御レジスタ下位
(DTCR0 ∼ DTCR2) の TMD2 ∼ TMD0, TMD5 ∼ TMD3, TMD8 ∼
TMD6:bit2 ∼ bit0=000B) の場 合は , RTO0, RTO2, RTO4 はアウト
プットコンペアと同じ値を出力します。
239
第 12 章 多機能タイマ
表 12.4-4 コンペア制御レジスタ , 上位 (OCSH1, OCSH3, OCSH5) (3 / 3)
ビット名
機能
• このビットは , アウトプットコンペア 1, 3, 5 (RT1, RT3, RT5) の端子
出力レベルを変更するために使用します。
bit9
OTD1:
出力レベル
ビット
• コンペア端子出力の初期値は "0" です。
• 値を書き込む場合は , 必ず前もってコンペア動作を停止させてくだ
さい。このビットの読出し値は , RT1, RT3, RT5 におけるアウトプッ
トコンペア値を示します。
• このビットは , アウトプットコンペア 0, 2, 4 (RT0, RT2, RT4) の端子
出力レベルを変更するために使用します。
bit8
OTD0:
出力レベル
ビット
• コンペア端子出力の初期値は "0" です。
• 値を書き込む場合は , 必ず前もってコンペア動作を停止させてくだ
さい。このビットの読出し値は , RT0, RT2, RT4 におけるアウトプッ
トコンペア値を示します。
240
第 12 章 多機能タイマ
■ コンペア制御レジスタ , 下位 (OCSL0, OCSL2, OCSL4)
OCSL0, OCSL2, OCSL4
bit7
アドレス
00009DH
IOP1
00009FH
0000A1H
R/W
bit6
bit5
bit4
bit3
bit2
bit1
bit0
IOP0
IOE1
IOE0
BUF1
BUF0
CST1
CST0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CST0
コンペア動作許可ビット
0
コンペアレジスタ 0, 2, 4 のコンペア動作を禁止する
1
コンペアレジスタ 0, 2, 4 のコンペア動作を許可する
CST1
コンペア動作許可ビット
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
R/W :リード / ライト可能
:初期値
初期値
00001100B
コンペア一致割込みフラグビット
読出し時
書込み時
0
コンペアレジスタ 1, 3, 5 のコンペア
一致割込みが発生しない
このビットをクリアする
1
コンペアレジスタ 1, 3, 5 のコンペア
一致割込みが発生する
このビットに影響を与えない
241
第 12 章 多機能タイマ
表 12.4-5 コンペア制御レジスタ , 下位 (OCSL0, OCSL2, OCSL4) (1 / 2)
ビット名
機能
• このビットは , コンペアレジスタ 1, 3, 5 が 16 ビットフリーランタイ
マの値と一致したことを示す割込みフラグです。
• このビットは , コンペアレジスタ値が 16 ビットフリーランタイマ値
に一致した場合に "1" が設定されます。
bit7
IOP1:
コンペア一致
割込みフラグ
ビット
• コンペア一致割込み許可ビット (IOE1:bit5) が " 許可 " になっている
間にこのビットが設定されると , アウトプットコンペア割込みが発
生します。
• このビットに "0" を設定した場合:このビットはクリアされます。
• このビットに "1" を設定した場合:このビットは影響を受けません。
• リードモディファイライト (RMW) 時は , 必ず "1" が読み出されます。
• このビットは , コンペアレジスタ 0, 2, 4 が 16 ビットフリーランタイ
マの値と一致したことを示す割込みフラグです。
• このビットは , コンペアレジスタ値が 16 ビットフリーランタイマ値
に一致した場合に "1" が設定されます。
bit6
IOP0:
コンペア一致
割込みフラグ
ビット
• コンペア一致割込み許可ビット (IOE0:bit4) が " 許可 " になっている
間にこのビットが設定されると , アウトプットコンペア割込みが発
生します。
• このビットに "0" を設定した場合:このビットはクリアされます。
• このビットに "1" を設定した場合:このビットは影響を受けません。
• リードモディファイライト (RMW) 時は , 必ず "1" が読み出されます。
• このビットは , コンペアレジスタ 1, 3, 5 のアウトプットコンペア割込
bit5
IOE1:
コンペア一致
割込み許可
ビット
みを " 許可 " にするために使用します。
• このビットに"0"を設定した場合:コンペア一致割込みを禁止します。
• このビットに"1"が書き込まれている間にコンペア一致割込みフラグ
ビット (IOP1:bit7) が設定されると , アウトプットコンペア割込みが
発生します。
• このビットは , コンペアレジスタ 0, 2, 4 のアウトプットコンペア割込
bit4
IOE0:
コンペア一致
割込み許可
ビット
みを " 許可 " にするために使用します。
• このビットに"0"を設定した場合:コンペア一致割込みを禁止します。
• このビットに"1"が書き込まれている間にコンペア一致割込みフラグ
ビット (IOP0:bit6) が設定されると , アウトプットコンペア割込みが
発生します。
• このビットは , アウトプットコンペアレジスタ 1, 3, 5 のバッファ機能
bit3
242
BUF1:
を無効にするために使用します。
コンペアバッ
• このビットに "0" を設定した場合:バッファ機能が有効になります。
ファ無効ビット
• このビットに "1" を設定した場合:バッファ機能が無効になります。
第 12 章 多機能タイマ
表 12.4-5 コンペア制御レジスタ , 下位 (OCSL0, OCSL2, OCSL4) (2 / 2)
ビット名
bit2
機能
•
BUF0:
コンペアバッ
•
ファ無効ビット
•
このビットは , アウトプットコンペアレジスタ 0, 2, 4 のバッファ機能
を無効にするために使用します。
このビットに "0" を設定した場合:バッファ機能が有効になります。
このビットに "1" を設定した場合:バッファ機能が無効になります。
• このビットは , 16 ビットフリーランタイマとコンペアレジスタ 1, 3,
5 の間のコンペア動作を許可するために使用します。
• コンペア動作を許可する場合は, 必ず前もってコンペアレジスタ1, 3,
5 とタイマデータレジスタ (TCDTH, TCDTL) に値を書き込んでくだ
さい。
bit1
CST1:
コンペア動作
許可ビット
• このビットに "0" を設定した場合 : コンペアレジスタのコンペア動作
を禁止します。
• このビットに "1" を設定した場合 : コンペアレジスタのコンペア動作
を許可します。
( 注意事項 )
アウトプットコンペアは , 16 ビットフリーランタイマクロックと同
期化されるので , 16 ビットフリーランタイマを停止するとコンペア
動作も停止します。
• このビットは , 16 ビットフリーランタイマとコンペアレジスタ 0, 2,
4 の間のコンペア動作を許可するために使用します。
• コンペア動作を許可する場合は, 必ず前もってコンペアレジスタ0, 2,
4 とタイマデータレジスタ (TCDTH, TCDTL) に値を書き込んでくだ
さい。
bit0
CST0:
コンペア動作
許可ビット
• このビットに "0" を設定した場合: コンペアレジスタのコンペア動作
を禁止します。
• このビットに "1" を設定した場合: コンペアレジスタのコンペア動作
を許可します。
( 注意事項 )
アウトプットコンペアは , 16 ビットフリーランタイマクロックと同
期化されるので , 16 ビットフリーランタイマを停止すると 0 検出 ,
コンペア動作も停止します。
243
第 12 章 多機能タイマ
12.4.7
コンペアモード制御レジスタ (OCMOD)
コンペアモード制御レジスタは , コンペア一致時の出力レベルを反転モードもしく
はセット / リセットを行うかを制御します。
■ コンペアモード制御レジスタ (OCMOD)
OCMOD
アドレス
0000A2H
bit15
bit14
R/W :リード / ライト可能
−
:未定義
:初期値
244
bit13
bit12
bit11
bit10
bit9
bit8
MOD15
MOD14
MOD13
MOD12
MOD11
MOD10
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XX000000B
MOD10
ch.0 のコンペア一致時の出力動作
0
前出力値の反転
1
CMOD によって "1" にセットもしくは "0" にリセット
MOD11
ch.1 のコンペア一致時の出力動作
0
前出力値の反転
1
CMOD によって "1" にセットもしくは "0" にリセット
MOD12
ch.2 のコンペア一致時の出力動作
0
前出力値の反転
1
CMOD によって "1" にセットもしくは "0" にリセット
MOD13
ch.3 のコンペア一致時の出力動作
0
前出力値の反転
1
CMOD によって "1" にセットもしくは "0" にリセット
MOD14
ch.4 のコンペア一致時の出力動作
0
前出力値の反転
1
CMOD によって "1" にセットもしくは "0" にリセット
MOD15
ch.5 のコンペア一致時の出力動作
0
前出力値の反転
1
CMOD によって "1" にセットもしくは "0" にリセット
第 12 章 多機能タイマ
表 12.4-6 コンペアモード制御レジスタ (OCMOD)
ビット名
bit15, bit14 未定義ビット
bit13
bit12
bit11
bit10
bit9
bit8
機能
• 読出し値は不定です。
• このビットへの書込みは動作に影響しません。
• このビットによりアウトプットコンペアの出力のコンペア一致
MOD15:
ch.5 のコンペア一致
時の動作を指示します。
モード設定ビット
• 初期値は , "0" です。
MOD14:
• "0" のときは , 一致時に出力値を反転します。
ch.4 のコンペア一致
• "1" のときは , 一致時に出力値を "1" にセット , もしくは "0" に
モード設定ビット
MOD13:
ch.3 のコンペア一致
モード設定ビット
リセットします。セット / リセットの切換えはコンペア制御レジ
スタ (OCSH) の CMOD ビットにて設定します。
• 値を書き込む場合は, 必ず前もってコンペア動作を停止させてく
MOD12:
ださい。
ch.2 のコンペア一致
• CMOD の設定は , ch.0, ch.1 と ch.2, ch.3 と ch.4, ch.5 で設定となり
モード設定ビット
ます。
MOD11:
ch.1 のコンペア一致
モード設定ビット
MOD10:
ch.0 のコンペア一致
モード設定ビット
- ch.0, ch.1 で独立してリセット / セットの設定はできません。
- ch.2, ch.3 で独立してリセット / セットの設定はできません。
- ch.4, ch.5 で独立してリセット / セットの設定はできません。
245
第 12 章 多機能タイマ
12.4.8
インプットキャプチャデータレジスタ
(IPCPH0 ∼ IPCPH3, IPCPL0 ∼ IPCPL3)
インプットキャプチャデータレジスタは , 入力波形の有効エッジが検出されたとき
のフリーランタイマのカウント値を保持するために使用します。
■ インプットキャプチャデータレジスタ (IPCPH0 ∼ IPCPH3, IPCPL0 ∼ IPCPL3)
インプットキャプチャデータレジスタ ( 上位 )
IPCPH0 ∼ IPCPH3
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
0000ACH
0000AEH
0000B0H
0000B2H
CP15
R
CP14
R
CP13
R
CP12
R
CP11
R
CP10
R
CP09
R
CP08
R
初期値
XXXXXXXXB
インプットキャプチャデータレジスタ ( 下位 )
IPCPL0 ∼ IPCPL3
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
0000ADH
0000AFH
0000B1H
0000B3H
CP07
R
CP06
R
CP05
R
CP04
R
CP03
R
CP02
R
CP01
R
CP00
R
R
X
初期値
XXXXXXXXB
: リードオンリ
: 不定
このレジスタは , 対応する外部端子入力波形の有効エッジが検出されたときのフリー
ランタイマ値を格納するために使用します ( このレジスタへアクセスする場合は, ハー
フワードもしくはワードアクセス命令をご使用ください。このレジスタにデータを書
き込むことはできません ) 。
以上の説明中のフリーランタイマはインプットキャプチャが選択しているフリーラン
タイマの動作状態についてです。
246
第 12 章 多機能タイマ
12.4.9
インプットキャプチャ状態制御 /PPG 出力制御レジス
タ (ICSH23, ICSL23, PICSH01, PICSL01)
インプットキャプチャ状態制御 /PPG 出力制御レジスタ (ICSH23, ICSL23,
PICSH01, PICSL01) は , エッジ選択 , 割込み要求許可 , 割込み要求フラグおよび
PPG 出力を制御するために使用します。また , インプットキャプチャ 2, 3 において
検出された有効なエッジを示すためにも使用します。
■ インプットキャプチャ状態制御レジスタ (ch.2, ch.3) , 上位 (ICSH23)
ICSH23
アドレス
0000B6H
R
bit15
:リードオンリ
:初期値
bit14
bit13
bit12
bit11
bit10
bit9
bit8
IEI3
IEI2
R
R
初期値
XXXXXX00B
IEI2
有効エッジ指示ビット ( インプットキャプチャ 2)
0
立下りエッジが検出される
1
立上りエッジが検出される
IEI3
有効エッジ指示ビット ( インプットキャプチャ 3)
0
立下りエッジが検出される
1
立上りエッジが検出される
247
第 12 章 多機能タイマ
表 12.4-7 インプットキャプチャ状態制御 (ch.2, ch.3) , 上位 (ICSH23)
ビット名
機能
• 読出し値は不定です。
bit15
∼
bit10
未定義ビット
• このビットへの書込みは動作に影響しません。
• このビットは , キャプチャレジスタ 3 の有効エッジ指示ビットであり ,
立上りエッジまたは立下りエッジが検出されたことを示します。
bit9
IEI3:
有効エッジ指示
ビット
( インプット
キャプチャ 3)
• 立下りエッジが検出されると , このビットに "0" が書き込まれます。
• 立上りエッジが検出されると , このビットに "1" が書き込まれます。
• このビットは読出し専用ビットです。
( 注意事項 )
インプットキャプチャ状態制御レジスタ下位 (ICSL23) の EG31,
EG30:bit3, bit2=00B の場合 , 読出し値は意味がありません。
• このビットは , キャプチャレジスタ 2 の有効エッジ指示ビットであり ,
立上りエッジまたは立下りエッジが検出されたことを示します。
bit8
248
IEI2:
• 立下りエッジが検出されると , このビットに "0" が書き込まれます。
有効エッジ指示
• 立上りエッジが検出されると , このビットに "1" が書き込まれます。
ビット
• このビットは , 読出し専用ビットです。
( インプット
キャプチャ 2)
( 注意事項 )
インプットキャプチャ状態制御レジスタ下位 (ICSL23) の EG21, EG20 :
bit1, bit0=00B の場合 , 読出し値は意味がありません。
第 12 章 多機能タイマ
■ インプットキャプチャ状態制御レジスタ (ch.2, ch.3) , 下位 (ICSL23)
ICSL23
アドレス
0000B7H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ICP3
ICP2
ICE3
ICE2
EG31
EG30
EG21
EG20
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
EG21
EG20
エッジ選択ビット ( インプットキャプチャ 2)
0
0
エッジは検出されない ( 停止 )
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
EG31
EG30
エッジ選択ビット ( インプットキャプチャ 3)
0
0
エッジは検出されない ( 停止 )
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
ICE2
割込み要求許可ビット ( インプットキャプチャ 2)
0
割込み要求を禁止する
1
割込み要求を許可する
ICE3
割込み要求許可ビット ( インプットキャプチャ 3)
0
割込み要求を禁止する
1
割込み要求を許可する
ICP2
割込み要求フラグビット ( インプットキャプチャ 2)
読出し時
書込み時
0
有効エッジが検出されない
このビットはクリアされる
1
有効なエッジが検出される
このビットは影響を受けない
ICP3
割込み要求フラグビット ( インプットキャプチャ 3)
読出し時
書込み時
0
有効エッジが検出されない
このビットはクリアされる
1
有効なエッジが検出される
このビットは影響を受けない
R/W :リード / ライト可能
:初期値
249
第 12 章 多機能タイマ
表 12.4-8 インプットキャプチャ状態制御レジスタ (ch.2, ch.3) , 下位 (ICSL23)
ビット名
機能
• このビットは , インプットキャプチャ3 の割込み要求フラグとして使
用します。
bit7
• このビットは , 外部入力端子の有効エッジが検出されると直ちに "1"
ICP3:
が設定されます。
割込み要求フラ
• 割込み許可ビット (ICE3:bit5) が設定されている間に有効エッジが
グビット
( インプット
検出されると , 直ちに割込みを発生することができます。
キャプチャ 3)
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト (RMW) 時は , 必ず "1" が読み出されます。
• このビットは , インプットキャプチャ2 の割込み要求フラグとして使
用します。
bit6
• このビットは , 外部入力端子の有効エッジが検出されると直ちに "1"
ICP2:
が設定されます。
割込み要求フラ
• 割込み許可ビット (ICE2:bit4) が設定されている間に有効エッジが
グビット
( インプット
検出されると , 直ちに割込みを発生することができます。
キャプチャ 2)
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト (RMW) 時は , 必ず "1" が読み出されます。
bit5
• このビットは , インプットキャプチャ3 のインプットキャプチャ割込
ICE3:
み要求を許可するために使用します。
割込み要求許可
• このビットに "0" を設定した場合 , 割込み要求を禁止します。
ビット
( インプット
• このビットに "1" が設定されている間に割込みフラグ (ICP3:bit7) が
キャプチャ 3)
設定されると , インプットキャプチャ 3 割込みが生成されます。
bit4
• このビットは , インプットキャプチャ2 のインプットキャプチャ割込
ICE2:
み要求を許可するために使用します。
割込み要求許可
• このビットに "0" を設定した場合 , 割込み要求を禁止します。
ビット
( インプット
• このビットに "1" が設定されている間に割込みフラグ (ICP2:bit6) が
キャプチャ 2)
設定されると , インプットキャプチャ 2 割込みが生成されます。
• これらのビットは , インプットキャプチャ3 の外部入力の有効エッジ
bit3,
bit2
EG31, EG30:
エッジ選択
ビット
( インプット
キャプチャ 3)
EG21, EG20:
エッジ選択
ビット
( インプット
キャプチャ 2)
• これらのビットは , インプットキャプチャ2 の外部入力の有効エッジ
bit1,
bit0
250
極性を指定するために使用します。
• これらのビットは , インプットキャプチャ3 の動作を有効にするため
にも使用します。
極性を指定するために使用します。
• これらのビットは , インプットキャプチャ2 の動作を有効にするため
にも使用します。
第 12 章 多機能タイマ
■ PPG 出力制御レジスタ , 上位 (PICSH01)
PICSH01
アドレス
0000B4H
W
R
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
PGEN5
PGEN4
PGEN3
PGEN2
PGEN1
PGEN0
IEI1
IEI0
W
W
W
W
W
W
R
R
:ライトオンリ
:リードオンリ
:初期値
初期値
00000000B
IEI0
有効エッジ指示ビット ( インプットキャプチャ 0)
0
立下りエッジが検出される
1
立上りエッジが検出される
IEI1
有効エッジ指示ビット ( インプットキャプチャ 1)
0
立下りエッジが検出される
1
立上りエッジが検出される
PGEN0
PPG 出力許可ビット
0
RTO0 への PPG0 出力を禁止する
1
RTO0 への PPG0 出力を許可する
PGEN1
PPG 出力許可ビット
0
RTO1 への PPG0 出力を禁止する
1
RTO1 への PPG0 出力を許可する
PGEN2
PPG 出力許可ビット
0
RTO2 への PPG0 出力を禁止する
1
RTO2 への PPG0 出力を許可する
PGEN3
PPG 出力許可ビット
0
RTO3 への PPG0 出力を禁止する
1
RTO3 への PPG0 出力を許可する
PGEN4
PPG 出力許可ビット
0
RTO4 への PPG0 出力を禁止する
1
RTO4 への PPG0 出力を許可する
PGEN5
PPG 出力許可ビット
0
RTO5 への PPG0 出力を禁止する
1
RTO5 への PPG0 出力を許可する
251
第 12 章 多機能タイマ
表 12.4-9 PPG 出力制御レジスタ上位 (PICSH01)
ビット名
bit15
∼
bit10
PGEN5 ∼
PGEN0:
PPG 出力許可
ビット
機能
• これらのビットは, RTO0, RTO1, RTO2, RTO3, RTO4, RTO5へのPPG0
出力を選択するために使用します。
• 書込みのみ可能です。
• このビットは , キャプチャレジスタ 1 の有効エッジ指示ビットであり ,
立上りエッジまたは立下りエッジが検出されたことを示します。
bit9
IEI1:
有効エッジ指示
ビット
( インプット
キャプチャ 1)
• 立下りエッジが検出されると , このビットに "0" が書き込まれます。
• 立上りエッジが検出されると , このビットに "1" が書き込まれます。
• このビットは読出し専用ビットです。
( 注意事項 )
インプットキャプチャ状態制御レジスタ下位 (PICSL01) の EG11, EG10:
bit3, bit2=00B の場合 , 読出し値は意味がありません。
• このビットは , キャプチャレジスタ 0 の有効エッジ指示ビットであり ,
立上りエッジまたは立下りエッジが検出されたことを示します。
bit8
252
IEI0:
• 立下りエッジが検出されると , このビットに "0" が書き込まれます。
有効エッジ指示
• 立上りエッジが検出されると , このビットに "1" が書き込まれます。
ビット
• このビットは , 読出し専用ビットです。
( インプット
キャプチャ 0)
( 注意事項 )
インプットキャプチャ状態制御レジスタ下位 (PICSL01) の EG01, EG00:
bit1, bit0=00B の場合 , 読出し値は意味がありません。
第 12 章 多機能タイマ
■ インプットキャプチャ状態制御レジスタ (ch.0, ch.1) , 下位 (PICSL01)
PICSL01
アドレス
0000B5H
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
初期値
00000000B
エッジ選択ビット ( インプットキャプチャ 0)
0
0
エッジは検出されない ( 停止 )
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
EG11 EG10
エッジ選択ビット ( インプットキャプチャ 1)
0
0
エッジは検出されない ( 停止 )
0
1
立上りエッジが検出される
1
0
立下りエッジが検出される
1
1
両方のエッジが検出される
ICE0
割込み要求許可ビット ( インプットキャプチャ 0)
0
割込み要求を禁止する
1
割込み要求を許可する
ICE1
割込み要求許可ビット ( インプットキャプチャ 1)
0
割込み要求を禁止する
1
割込み要求を許可する
ICP0
割込み要求フラグビット ( インプットキャプチャ 0)
書込み時
読出し時
0
有効エッジが検出されない
このビットはクリアされる
1
有効エッジが検出される
このビットは影響を受けない
ICP1
割込み要求フラグビット ( インプットキャプチャ 1)
読出し時
書込み時
0
有効エッジが検出されない
このビットはクリアされる
1
有効エッジが検出される
このビットは影響を受けない
R/W :リード / ライト可能
:初期値
253
第 12 章 多機能タイマ
表 12.4-10 インプットキャプチャ状態制御レジスタ (ch.0, ch.1) , 下位 (PICSL01)
ビット名
機能
• このビットは , インプットキャプチャ1 の割込み要求フラグとして使
用します。
bit7
• このビットは , 外部入力端子の有効エッジが検出されると直ちに "1"
ICP1:
が設定されます。
割込み要求フラ
• 割込み許可ビット (ICE1:bit5) が設定されている間に有効エッジが
グビット
( インプット
検出されると , 直ちに割込みが生成されます。
キャプチャ 1)
• このビットに "0" を設定した場合:このビットはクリアされます。
• このビットに "1" を設定した場合:このビットは影響を受けません。
• リードモディファイライト (RMW) 時は , 必ず "1" が読み出されます。
• このビットは , インプットキャプチャ0 の割込み要求フラグとして使
用します。
bit6
• このビットは , 外部入力端子の有効エッジが検出されると直ちに "1"
ICP0:
が設定されます。
割込み要求フラ
• 割込み許可ビット (ICE0:bit4) が設定されている間に有効エッジが
グビット
( インプット
検出されると , 直ちに割込みが生成されます。
キャプチャ 0)
• このビットに "0" を設定した場合 : このビットはクリアされます。
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト (RMW) 時は , 必ず "1" が読み出されます。
bit5
• このビットは , インプットキャプチャ1 のインプットキャプチャ割込
ICE1:
み要求を許可するために使用します。
割込み要求許可
• このビットに "0" を設定した場合 , 割込み要求を禁止します。
ビット
( インプット
• このビットに "1" が設定されている間に割込みフラグ (ICP1:bit7) が
キャプチャ 1)
設定されると , インプットキャプチャ 1 割込みが生成されます。
bit4
• このビットは , インプットキャプチャ0 のインプットキャプチャ割込
ICE0:
み要求を許可するために使用します。
割込み要求許可
• このビットに "0" を設定した場合 , 割込み要求を禁止します。
ビット
( インプット
• このビットに "1" が設定されている間に割込みフラグ (ICP0:bit6) が
キャプチャ 0)
設定されると , インプットキャプチャ 0 割込みが生成されます。
• これらのビットは , インプットキャプチャ1 の外部入力の有効エッジ
bit3,
bit2
EG11, EG10:
エッジ選択
ビット
( インプット
キャプチャ 1)
EG01, EG00:
エッジ選択
ビット
( インプット
キャプチャ 0)
• これらのビットは , インプットキャプチャ0 の外部入力の有効エッジ
bit1,
bit0
254
極性を指定するために使用します。
• これらのビットは , インプットキャプチャ1 の動作を有効にするため
にも使用します。
極性を指定するために使用します。
• これらのビットは , インプットキャプチャ0 の動作を有効にするため
にも使用します。
第 12 章 多機能タイマ
16 ビットデッドタイマレジスタ
(TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2)
12.4.10
16 ビットデッドタイマレジスタは , 16 ビットデッドタイマのコンペア値を保持します。
■ 16 ビットデッドタイマレジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2)
16 ビットデッドタイマレジスタ ( 上位 )
TMRRH0 ∼ 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
初期値
XXXXXXXXB
16 ビットデッドタイマレジスタ ( 下位 )
TMRRL0 ∼ TMRRL2
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
0000BDH
0000BFH
0000C1H
TR07
R/W
TR06
R/W
TR05
R/W
TR04
R/W
TR03
R/W
TR02
R/W
TR01
R/W
TR00
R/W
初期値
XXXXXXXXB
R/W : リード / ライト可能
X
: 不定
これらのレジスタは , 16 ビットデッドタイマの比較値を格納するために使用します。
これらのレジスタ値は , 16 ビットデッドタイマが動作を開始するとリロードされます。
タイマ動作中にこれらのレジスタに値が再書込みされると , この新しい値は次回のタ
イマ開始 / 動作時に有効になります。
このレジスタへアクセスする場合は , ハーフワードもしくはワードアクセス命令をご
使用ください。
デッドタイムタイマモード時は , これらのレジスタはノンオーバラップ時間を設定す
るために使用します。
ノンオーバラップ時間 = ( 設定値 ) × 選択されたクロック
<注意事項>
"0000H" を設定することはできません。
タイマモード時は , これらのレジスタは PPG0 タイマ動作の GATE 時間を設定するため
に使用します。
GATE 時間 = ( 設定値 ) × 選択されたクロック
<注意事項>
"0000H" を設定することはできません。
255
第 12 章 多機能タイマ
12.4.11
16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2)
16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2) は , 波形ジェネレータの動
作モード , 割込み要求許可 , 割込み要求フラグ , GATE 信号許可 , および出力レベル
極性を制御するために使用します。
■ 16 ビットデッドタイマ制御レジスタ , 上位 (DTCR0)
DTCR0
アドレス
0000C4H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
DMOD0
GTEN1
GTEN0
TMIF0
TMIE0
TMD2
TMD1
TMD0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
動作モードビット
TMD2 TMD1 TMD0
0
0
0
波形ジェネレータが停止する
0
0
1
RT 信号が "H" の間に PPG0 タイマがパルスを出力する
0
1
0
1
0
0
1
1
1
各 RT 信号の立上りエッジがトリガとなり , 16
ビットデッドタイマが起動する。PPG0 タイマ
は , 16 ビットデッドタイマが停止するまでパル
スを出力する ( タイマモード )
RT 信号でノンオーバラップ信号を生成する
( デッドタイムタイマモード )
PPG0 タイマでノンオーバラップ信号を生成する
( デッドタイムタイマモード )
その他
TMIE0
0
1
TMIF0
0
1
256
禁止
割込み要求許可ビット , ソフトウェアトリガビット
16 ビットデッドタイマでアンダフローが発生されても , 割込みを
生成しない。
16 ビットデッドタイマでアンダフローが発生されると , 割込みを
生成する。
割込み要求フラグビット
読出し時
書込み時
カウンタのアンダフローが
検出されない
カウンタのアンダフローが
検出される
このビットはクリアされる
このビットは影響を受けない
GTEN0
GATE 信号制御ビット 0
0
GATE 信号は , RT0 で制御されない ( 非同期モード )
GATE 信号は , RT0 で制御される ( 同期モード )
1
R/W :リード / ライト可能
:初期値
初期値
00000000B
GTEN1
GATE 信号制御ビット 1
0
GATE 信号は , RT1 で制御されない ( 非同期モード )
1
GATE 信号は , RT1 で制御される ( 同期モード )
DMOD0
出力極性制御ビット
0
通常極性出力
1
反転極性出力
第 12 章 多機能タイマ
表 12.4-11 16 ビットデッドタイマ制御レジスタ , 上位 (DTCR0) (1 / 2)
ビット名
機能
• このビットは , デッドタイムタイマモードにおいて U/V/W の出力を
設定するために使用します。
bit15
bit14
bit13
DMOD0:
出力極性制御
ビット
• このビットを設定すると , U/V/W の出力極性は反転します。
( 注意事項 )
このビットは , デッドタイムタイマモードが選択されていない場合
(TMD2:bit10=0) は意味がありません。
このビットは , RT1 で PPG0 タイマの GATE 信号出力を制御するために
GTEN1:
使用します。
GATE 信号制御
ビット 1
このビットは , RT0 で PPG0 タイマの GATE 信号出力を制御するために
GTEN0:
使用します。
GATE 信号制御
ビット 0
• このビットは , 16 ビットデッドタイマの割込み要求フラグとして使
用します。
• このビットは , 16 ビットデッドタイマでアンダフローが発生すると
"1" が設定されます。
• このビットに "0" を書き込むと , このビットはクリアされます。"1"
bit12
を書き込んでも , このビットは影響されません。
TMIF0:
割込み要求フラ • リードモディファイライト (RMW) 時は , 必ず "1" が読み出されます。
グビット
( 注意事項 )
このビットは , TMD2 ∼ TMD0:bit10 ∼ bit8 が "000B" または "001B"
の場合のみ機能し , ほかの値の場合は必ず "0" になります。
ソフトウェアクリア ("0" 書込み ) とハードウェアセット (16 ビット
デッドタイマ 0 でアンダフローが発生する ) が同時に発生した場合は ,
ソフトウェアクリアがハードウェアセットよりも優先され , このビッ
トはクリアされます。
• このビットは , 16 ビットデッドタイマのソフトウェアトリガビット
および割込み許可ビットとして使用します。
• TMD2 ∼ TMD0 : bit10 ∼ bit8 が "000B" または "001B" の場合 , この
ビットは 16 ビットデッドタイマのソフトウェアトリガとして使用さ
bit11
TMIE0:
割込み要求許可
ビット , ソフト
ウェアトリガ
ビット
•
れます。このビットを "0" から "1" へ変更すると , 16 ビットデッドタ
イマのトリガとなり , 値がリロードされ , ダウンカウントが開始しま
す。
このビットが "1" であり , 割込み要求フラグビット (TMIF0 : bit12) が
"1" の場合 , 割込み要求が CPU へ送られます。
( 注意事項 )
16 ビットデッドタイマを再度トリガとする場合には , このビットに
"1" を書き込む前に必ず "0" を書き込んでください。
257
第 12 章 多機能タイマ
表 12.4-11 16 ビットデッドタイマ制御レジスタ , 上位 (DTCR0) (2 / 2)
ビット名
機能
• これらのビットは , 波形ジェネレータの動作モードを選択するため
に使用します。
• TMD2 ∼ TMD0 : bit10 ∼ bit8 が "000B" の場合 , アウトプットコンペ
アの RT0 と RT1 の信号は , RTO0 と RTO1 のそれぞれから出力され
ます。また , 16 ビットデッドタイマはリロードタイマとしても使用
することができます。
• TMD2 ∼ TMD0 : bit10 ∼ bit8 が "001B" の場合 , アウトプットコンペ
アの RT0 と RT1 の信号は , PPG0 出力が禁止 (PPG 出力制御 / インプッ
bit10
∼
bit8
TMD2 ∼
TMD0:
動作モード
ビット
トキャプチャ状態制御レジスタ上位 (PICSH01) の PGEN0Cbit10=0,
PGEN1 : bit11=0) になると , RTO0 と RTO1 のそれぞれから出力され
ます。また , 16 ビットデッドタイマはリロードタイマとしても使用
することができます。
( 注意事項 )
デッドタイムタイマモードで波形ジェネレータを動作させるには , 必
ず RT1 に対して 2 チャネルモード ( コンペア制御レジスタ上位
(OCSH1) の CMOD : bit12=1) を選択してください。
TMD2 ∼ TMD0 : bit10 ∼ bit8 が "111B" の場合 , RTO0 の出力と RTO1
の出力は , PPG 出力制御 / インプットキャプチャ状態制御レジスタ上
位 (PICSH01) の PGEN0 : bit10=0, PGEN1 : bit11=0 の設定に依存しませ
ん。
258
第 12 章 多機能タイマ
■ 16 ビットデッドタイマ制御レジスタ , 下位 (DTCR1)
DTCR1
アドレス
0000C5H
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
初期値
00000000B
動作モードビット
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 ビットデッドタイマでアンダフローが発生されると , 割込み
を生成する
割込み要求フラグビット
読出し時
書込み時
カウンタのアンダフローが
検出されない
カウンタのアンダフローが
検出される
このビットはクリアされる
このビットは影響を受けない
GTEN2
GATE 信号制御ビット 2
0
1
GATE 信号は , RT2 で制御されない ( 非同期モード )
GATE 信号は , RT2 で制御される ( 同期モード )
GTEN3
GATE 信号制御ビット 3
0
1
GATE 信号は , RT3 で制御されない ( 非同期モード )
GATE 信号は , RT3 で制御される ( 同期モード )
DMOD1
出力極性制御ビット
0
通常極性出力
反転極性出力
1
R/W :リード / ライト可能
:初期値
259
第 12 章 多機能タイマ
表 12.4-12 16 ビットデッドタイマ制御レジスタ , 下位 (DTCR1) (1 / 2)
ビット名
機能
• このビットは , デッドタイムタイマモードにおいて U/V/W の出力を
設定するために使用します。
bit7
bit6
bit5
DMOD1:
出力極性制御
ビット
• このビットを設定すると , U/V/W の出力極性は反転します。
( 注意事項 )
このビットは , デッドタイムタイマモードが選択されていない場合
(TMD5:bit2=0) は意味がありません。
このビットは , RT3 で PPG0 タイマの GATE 信号出力を制御するために
GTEN3:
使用します。
GATE 信号制御
ビット 3
このビットは , RT2 で PPG0 タイマの GATE 信号出力を制御するために
GTEN2:
使用します。
GATE 信号制御
ビット 2
• このビットは , 16 ビットデッドタイマの割込み要求フラグとして使
用します。
• このビットは , 16 ビットデッドタイマでアンダフローが発生すると
"1" が設定されます。
• このビットに "0" を書き込むと , このビットはクリアされます。"1"
bit4
を書き込んでも , このビットは影響されません。
TMIF1:
割込み要求フラ • リードモディファイライト (RMW) 時は , 必ず "1" が読み出されます。
グビット
( 注意事項 )
このビットは , (TMD5 ∼ TMD3:bit2 ∼ bit0) が "000B" または "001B"
の場合のみ機能し , ほかの値の場合は必ず "0" になります。
ソフトウェアクリア ("0" 書込み ) とハードウェアセット (16 ビット
デッドタイマ 1 でアンダフローが発生する ) が同時に発生した場合は ,
ソフトウェアクリアがハードウェアセットよりも優先され , このビッ
トはクリアされます。
• このビットは , 16 ビットデッドタイマのソフトウェアトリガビット
および割込み許可ビットとして使用します。
• TMD5 ∼ TMD3 : bit2 ∼ bit0 が "000B" または "001B" の場合 , このビッ
bit3
TMIE1:
割込み要求許可
ビット , ソフト
ウェアトリガ
•
ビット
トは 16 ビットデッドタイマのソフトウェアトリガとして使用されま
す。このビットを "0" から "1" へ変更すると , 16 ビットデッドタイマ
のトリガとなり , 値がリロードされ , ダウンカウントが開始します。
このビットが "1" であり , 割込み要求フラグビット (TMIF1 : bit4) が
"1" の場合 , 割込み要求が CPU へ送られます。
( 注意事項 )
16 ビットデッドタイマを再度トリガとする場合には , このビットに
"1" を書き込む前に必ず "0" を書き込んでください。
260
第 12 章 多機能タイマ
表 12.4-12 16 ビットデッドタイマ制御レジスタ , 下位 (DTCR1) (2 / 2)
ビット名
機能
• これらのビットは , 波形ジェネレータの動作モードを選択するため
に使用します。
• TMD5 ∼ TMD3:bit2 ∼ bit0 が "000B" の場合 , アウトプットコンペ
アの RT2 と RT3 の信号は , RTO2 と RTO3 のそれぞれから出力され
ます。また , 16 ビットデッドタイマはリロードタイマとしても使用
することができます。
• TMD5 ∼ TMD3 : bit2 ∼ bit0 が "001B" の場合 , アウトプットコンペア
の RT2 と RT3 の信号は , PPG0 出力が禁止 (PPG 出力制御 / インプット
bit2
∼
bit0
TMD5 ∼
TMD3:
動作モード
ビット
キ ャ プ チ ャ 状 態 制 御 レ ジ ス タ 上 位 (PICSH01) の PGEN2 : bit12=0,
PGEN3 : bit13=0) になると , RTO2 と RTO3 のそれぞれから出力され
ます。また , 16 ビットデッドタイマはリロードタイマとしても使用
することができます。
( 注意事項 )
デッドタイムタイマモードで波形ジェネレータを動作させるには , 必ず
RT3 に対して 2 チャネルモード ( コンペア制御レジスタ上位 (OCSH3)
の CMOD : bit12=1) を選択してください。
TMD5 ∼ TMD3 : bit2 ∼ bit0 が "111B" の場合 , RTO2 の出力と RTO3
の出力は , PPG 出力制御 / インプットキャプチャ状態制御レジスタ上
位 (PICSH01) の PGEN2 : bit12=0, PGEN3 : bit13=0 の設定に依存しませ
ん。
261
第 12 章 多機能タイマ
■ 16 ビットデッドタイマ制御レジスタ , 上位 (DTCR2)
DTCR2
アドレス
0000C6H
bit15
bit14
DMOD2 GTEN5
R/W
R/W
bit13
bit12
bit11
bit10
bit9
bit8
GTEN4
TMIF2
TMIE2
TMD8
TMD7
TMD6
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
GTEN4
R/W :リード / ライト可能
:初期値
262
初期値
00000000B
禁止
割込み要求許可ビット , ソフトウェアトリガビット
16 ビットデッドタイマでアンダフローが発生されても , 割込み
を生成しない
16 ビットデッドタイマでアンダフローが発生されると , 割込み
を生成する
割込み要求フラグビット
読出し時
書込み時
カウンタのアンダフローが
検出されない
カウンタのアンダフローが
検出される
このビットはクリアされる
このビットは影響を受けない
GATE 信号制御ビット 4
0
GATE 信号は , RT4 で制御されない ( 非同期モード )
1
GATE 信号は , RT4 で制御される ( 同期モード )
GTEN5
GATE 信号制御ビット 5
0
GATE 信号は , RT5 で制御されない ( 非同期モード )
1
GATE 信号は , RT5 で制御される ( 同期モード )
DMOD2
出力極性制御ビット
0
通常極性出力
1
反転極性出力
第 12 章 多機能タイマ
表 12.4-13 16 ビットデッドタイマ制御レジスタ , 上位 (DTCR2) (1 / 2)
ビット名
機能
• このビットは , デッドタイムタイマモードにおいて U/V/W の出力を
設定するために使用します。
bit15
DMOD2:
出力極性制御
ビット
• このビットを設定すると , U/V/W の出力極性は反転します。
( 注意事項 )
このビットは , デッドタイムタイマモードが選択されていない場合
(TMD8:bit10=0) は意味がありません。
bit14
GTEN5:
このビットは , RT5 で PPG0 タイマの GATE 信号出力を制御するために
GATE 信号制御
使用します。
ビット 5
bit13
GTEN4:
このビットは , RT4 で PPG0 タイマの GATE 信号出力を制御するために
GATE 信号制御
使用します。
ビット 4
• このビットは , 16 ビットデッドタイマの割込み要求フラグとして使
用します。
• このビットは , 16 ビットデッドタイマでアンダフローが発生すると
"1" が設定されます。
• このビットに "0" を書き込むと , このビットはクリアされます。"1"
bit12
を書き込んでも , このビットは影響されません。
TMIF2:
割込み要求フラ • リードモディファイライト (RMW) 時は , 必ず "1" が読み出されます。
グビット
( 注意事項 )
このビットは , (TMD8 ∼ TMD6 : bit10 ∼ bit8) が "000B" または "001B"
の場合のみ機能し , ほかの値の場合は必ず "0" になります。
ソフトウェアクリア ("0" 書込み ) とハードウェアセット (16 ビット
デッドタイマ 2 でアンダフローが発生する ) が同時に発生した場合は ,
ソフトウェアクリアがハードウェアセットよりも優先され , このビッ
トはクリアされます。
• このビットは , 16 ビットデッドタイマのソフトウェアトリガビット
および割込み許可ビットとして使用します。
• TMD8 ∼ TMD6 : bit10 ∼ bit8 が "000B" または "001B" の場合 , この
ビットは 16 ビットデッドタイマのソフトウェアトリガとして使用さ
bit11
TMIE2:
割込み要求許可
ビット , ソフト
ウェアトリガ
ビット
•
れます。このビットを "0" から "1" へ変更すると , 16 ビットデッドタ
イマのトリガとなり , 値がリロードされ , ダウンカウントが開始しま
す。
このビットが "1" であり , 割込み要求フラグビット (TMIF2 : bit12) が
"1" の場合 , 割込み要求が CPU へ送られます。
( 注意事項 )
16 ビットデッドタイマを再度トリガとする場合には , このビットに
"1" を書き込む前に必ず "0" を書き込んでください。
263
第 12 章 多機能タイマ
表 12.4-13 16 ビットデッドタイマ制御レジスタ , 上位 (DTCR2) (2 / 2)
ビット名
機能
• これらのビットは , 波形ジェネレータの動作モードを選択するため
に使用します。
• TMD8 ∼ TMD6 : bit10 ∼ bit8 が "000B" の場合 , アウトプットコンペ
アの RT4 と RT5 の信号は , RTO4 と RTO5 のそれぞれから出力され
ます。また , 16 ビットデッドタイマはリロードタイマとしても使用
することができます。
• TMD8 ∼ TMD6 : bit10 ∼ bit8 が "001B" の場合 , アウトプットコンペ
アの RT4 と RT5 の信号は , PPG0 出力が禁止 (PPG 出力制御 /
bit10
∼
bit8
TMD8 ∼
TMD6:
動作モード
ビット
インプットキャプチャ状態制御レジスタ上位 (PICSH01) の PGEN4 :
bit14=0, PGEN5 : bit15=0) になると , RTO4 と RTO5 のそれぞれから出
力されます。また , 16 ビットデッドタイマはリロードタイマとして
も使用することができます。
( 注意事項 )
デッドタイムタイマモードで波形ジェネレータを動作させるには , 必
ず RT5 に対して 2 チャネルモード ( コンペア制御レジスタ上位
(OCSH5) の CMOD : bit12=1) を選択してください。
TMD8 ∼ TMD6 : bit10 ∼ bit8 が "111B" の場合 , RTO4 の出力と RTO5
の出力は , PPG 出力制御 / インプットキャプチャ状態制御レジスタ上
位 (PICSH01) の PGEN4 : bit14=0, PGEN5:bit15=0 の設定に依存しま
せん。
264
第 12 章 多機能タイマ
12.4.12
波形制御レジスタ (SIGCR1/SIGCR2)
波形制御レジスタは , 動作クロック周波数 , ノイズキャンセル機能有効 , DTTI 端子
入力有効 , および DTTI 端子割込みを制御するために使用します。
■ 波形制御レジスタ 1 (SIGCR1)
SIGCR1
アドレス
0000C9H
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
初期値
00000000B
DTTI 端子入力ノイズ幅選択ビット
NWS1 NWS0
4 サイクルノイズをキャンセル
0
0
0
1
8 サイクルノイズをキャンセル
1
0
16 サイクルノイズをキャンセル
1
1
32 サイクルノイズをキャンセル
DCK2 DCK1
0
0
動作クロック選択ビット
DCK0
0
φ (62.5 ns, φ=16 MHz)
φ/2 (125 ns, φ=16 MHz)
0
0
1
0
1
0
φ/4 (250 ns, φ=16 MHz)
0
1
1
φ/8 (500 ns, φ=16 MHz)
1
0
0
φ/16 (1 µs, φ=16 MHz)
1
0
1
φ/32 (2 µs, φ=16 MHz)
1
1
0
φ/64 (4 µs, φ=16 MHz)
禁止
1
1
1
φ:マシンサイクル
NRSL
ノイズキャンセル機能有効ビット
0
DTTI 端子入力のノイズキャンセル回路が無効
1
DTTI 端子入力のノイズキャンセル回路が有効
DTTI 端子割込みフラグビット
R/W :リード / ライト可能
:初期値
DTIF
読出し時
書込み時
0
割込み要求なし
このビットはクリアされる
1
割込み要求あり
このビットは影響を受けない
DTIE
DTTI 端子入力有効ビット
0
DTTI 端子入力を無効にする
1
DTTI 端子入力を有効にする
265
第 12 章 多機能タイマ
表 12.4-14 波形制御レジスタ 1 (SIGCR1)
ビット名
bit7
DTIE:
DTTI 端子入力
有効ビット
機能
このビットは , RTO0 ∼ RTO5 端子の出力レベル制御用 DTTI 端子入力
を有効にするために使用します。
• このビットは , DTTI 端子の割込みフラグです。
• DTTI 端子入力が有効になり (DTIE : bit7=1) , DTTI 端子の "L" レベル
が検出されると , このビットが設定され , 割込み要求が CPU へ送ら
れます。
• このビットに "0" を設定した場合 : このビットはクリアされます。
bit6
DTIF:
DTTI 端子
割込みフラグ
ビット
• このビットに "1" を設定した場合 : このビットは影響を受けません。
• リードモディファイライト (RMW) 時では , 必ず "1" が読み出されま
す。
( 注意事項 )
ノイズキャンセル機能が有効 (NRSL : bit5=1) の場合は , ノイズとして
指定したパルス幅以上の DTTI 端子 "L" レベル入力により , 本ビット
に "1" が設定されます。
ソフトウェアクリア ("0" 書込み ) とハードウェアセット (DTTI 端子
の "L" レベル検出 ) が同時に発生した場合は , ソフトウェアクリアが
ハードウェアセットよりも優先され , このビットはクリアされます。
• このビットは , ノイズキャンセル機能を有効にするために使用しま
す。
• このビットに "0" を設定した場合 , ノイズキャンセル機能は無効にな
ります。
• このビットに "1" を設定した場合 , ノイズキャンセル機能は有効にな
ります。
bit5
NRSL:
ノイズキャン
セル機能有効
ビット
• ノイズキャンセル回路は , カウンタでオーバフローが発生するまで
"L" レベルが保持されると , DTTI 端子入力信号を DTTI 制御回路に伝
えます。カウンタは , DTTI 端子の "L" レベル入力で操作される n ビッ
トカウンタです。n は , NWS1, NWS0 ビット : 1, 0 の設定に基づいて
2, 3, 4 または 5 のいずれかの値になります。
( 注意事項 )
ノイズキャンセル機能を無効とするには , 約 2n マシンサイクルが必
要になります。
ノイズキャンセル機能を有効とすると , 内部クロックが停止するモー
ド ( 停止モードなど ) 時は , DTTI 端子の入力が無効になります。
266
bit4
∼
bit2
DCK2 ∼
DCK0:
動作クロック
選択ビット
bit1,
bit0
NWS1, NWS0:
これらのビットは , 除去する DTTI 端子ノイズパルス幅を選択するため
DTTI 端子ノイ
に使用します。
ズ幅選択ビット
これらのビットは, 16ビットデッドタイマの動作クロックを選択するた
めに使用します。
第 12 章 多機能タイマ
■ 波形制御レジスタ 2 (SIGCR2)
SIGCR2
アドレス
0000CBH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
DTTI
初期値
XXXXXXX1B
R/W
R/W :リード / ライト可能
−
: 未定義
:初期値
DTTI
ソフト DTTI 設定ビット
1
DTTI クリア
0
DTTI セット
表 12.4-15 波形制御レジスタ 2 (SIGCR2)
ビット名
bit7
∼
bit1
機能
• 読出し値は不定です。
未定義ビット
• このビットへの書込みは動作に影響しません。
• "0" を書き込むと , DTTI のセットとなります。
bit0
• "1" を書き込むとクリアされます。
DTTI:
ソフト DTTI 設定 ( 注意事項 )
ビット
本ビットの "1" 書き込みによる DTTI 端子割込み , ならびに DTTI 端
子割込みフラグビット (DTIF) の変化はありません。
267
第 12 章 多機能タイマ
12.4.13
A/D 起動コンペアレジスタ
(ADCOMP1, ADCOMP2, ADCOMPC1, ADCOMPC2)
コンペアレジスタ 1, 2 は , フリーランタイマ 0 の値と一致したときに A/D コンバー
タ 1, 2 を起動させます。コンペアレジスタは , コンペア値を書き込むために使用し
ます。
■ コンペアレジスタ 1, 2 (ADCOMP1, ADCOMP2)
コンペアレジスタレジスタ 1, 2 ( 上位 )
ADCOMP1,ADCOMP2
bit15
アドレス
ch.1 :0000CEH
ch.2 :0000D0H
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
初期値
00000000B
コンペアレジスタレジスタ 1, 2 ( 下位 )
ADCOMP1,ADCOMP2
bit7
アドレス
ch.1 :0000CFH
ch.2 :0000D1H
bit6
bit5
bit4
bit3
bit2
bit1
bit0
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ビットフリーランタイマ0のカウント値と比較するためのデー
タを書き込むレジスタで , フリーランタイマ 0 とコンペア値が一致したときに , A/D を
起動させることができます。
コンペアレジスタに書き込まれた値は , すぐに比較動作されます。
コンペアレジスタへの書込みは , ワードもしくはハーフワードで行ってください。
268
第 12 章 多機能タイマ
■ 制御レジスタ 1, 2 (ADCOMPC1, ADCOMPC2)
制御レジスタ 1
ADCOMPC1
bit7
アドレス
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CE1
R/W
−
−
bit9
bit8
−
−
−
−
−
−
−
−
−
−
−
−
−
−
CE2
R/W
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
0000D2H
−
−
−
−
0000D3H
初期値
XXXXX00XB
制御レジスタ 2
ADCOMPC2
SEL21 SEL20 SEL11 SEL10
R/W
R/W
R/W
R/W
初期値
XX0000XXB
R/W : リード / ライト可能
X
: 不定
−
: 未定義
[bit2 ∼ bit1] CE2, CE1:A/D コンペア起動許可ビット
CEn
A/D コンペア起動許可ビット
0
A/D ユニット n のコンペア起動禁止
1
A/D ユニット n のコンペア起動許可
[ 初期値 ]
(n=1, 2:A/D ユニットの番号 )
[bit13 ∼ bit10] SEL21, SEL20, SLE11, SEL10:A/D コンペア起動要因選択ビット
SELn1
SELn0
0
0
フリーランタイマと一致したときに起動
0
1
フリーランタイマのアップカウント時のみ一致したときに起動
1
0
フリーランタイマのダウンカウント時のみ一致したときに起動
1
1
設定禁止
A/D コンペア起動要因選択ビット
[ 初期値 ]
(n=1, 2:A/D ユニットの番号 )
269
第 12 章 多機能タイマ
12.4.14
フリーランタイマセレクタレジスタ
(FSR0 ∼ FSR2)
フリーランタイマセレクタレジスタは , 各インプットキャプチャ , アウトプットコン
ペアに対して , 3 チャネルあるフリーランタイマのいずれを割り当てるかを設定しま
す。
■ フリーランタイマセレクタレジスタ (FSR0 ∼ FSR2)
FSR2
アドレス
000169H
bit23
bit22
bit21
bit20
bit19
bit18
bit17
bit16
ICU31 ICU30 ICU21 ICU20 ICU11 ICU10 ICU01 ICU00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
FSR1
アドレス
bit15
bit14
bit13
bit12
00016AH
−
−
−
−
−
−
−
−
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
OCU51 OCU50 OCU41 OCU40
R/W
R/W
R/W
R/W
bit11
bit10
bit9
bit8
初期値
XXXX0000B
FSR0
アドレス
00016BH
OCU31 OCU30 OCU21 OCU20 OCU11 OCU10 OCU01 OCU00
R/W
R/W : リード / ライト可能
X
: 不定
−
: 未定義
270
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
第 12 章 多機能タイマ
[bit23 ∼ bit16] ICUn1, ICUn0:インプットキャプチャ用フリーランタイマ選択ビット
ICUn1
ICUn0
インプットキャプチャ用フリーランタイマ選択ビット
0
0
フリーランタイマ ch.0 選択
0
1
フリーランタイマ ch.1 選択
1
0
フリーランタイマ ch.2 選択
1
1
設定禁止
[ 初期値 ]
(n=0, 1, 2, 3:インプットキャプチャのチャネル )
( 注意事項 ) インプットキャプチャ動作中に , 設定を書き換えないでください。
[bit11 ∼ bit0] OCUn1, OCUn0:アウトプットコンペア用フリーランタイマ選択ビット
OCUn1
OCUn0
アウトプットコンペア用フリーランタイマ選択ビット
0
0
フリーランタイマ ch.0 選択
0
1
フリーランタイマ ch.1 選択
1
0
フリーランタイマ ch.2 選択
1
1
設定禁止
[ 初期値 ]
(n=0, 1, 2, 3, 4, 5:アウトプットコンペアのチャネル )
( 注意事項 ) アウトプットコンペア動作中に , 設定を書き換えないでください。
271
第 12 章 多機能タイマ
12.5
多機能タイマ割込み
多機能タイマは , 16 ビットフリーランタイマ割込み , 16 ビットアウトプットコンペア
割込み , 16 ビットインプットキャプチャ割込みおよび波形ジェネレータ割込みを生成
することができます。
■ 16 ビットフリーランタイマ割込み
16 ビットフリーランタイマの割込み制御ビットと割込み要因を表 12.5-1 に示します。
表 12.5-1 16 ビットフリーランタイマの割込み制御ビットと割込み要因
16 ビットフリーランタイマ
コンペアクリア
0 検出
割込み要求フラグビット
タイマ状態レジスタ上位 (TCCSH0,
TCCSH1, TCCSH2) の ICLR : bit9
タイマ状態レジスタ上位 (TCCSH0,
TCCSH1, TCCSH2) の IRQZF : bit14
割込み要求許可ビット
タイマ状態レジスタ上位 (TCCSH0,
TCCSH1, TCCSH2) の ICRE : bit8
タイマ状態レジスタ上位 (TCCSH0,
TCCSH1, TCCSH2) の IRQZE : bit13
割込み要因
16 ビットフリーランタイマ値がコンペア
16 ビットフリーランタイマ値が "0" にな
クリアレジスタ (CPCLRH0/CPCLRL0,
CPCLRH1/CPCLRL1, CPCLRH2/CPCLRL2) る
と一致する
16 ビットフリーランタイマの値がコンペアクリアレジスタ (CPCLRH0/CPCLRL0,
CPCLRH1/CPCLRL1,CPCLRH2/CPCLRL2)と一致すると,タイマ状態レジスタ(TCCSH0,
TCCSH1,TCCSH2) の ICLR : bit9 に "1" が設定されます。この状態において割込み要求
が許可 (TCCSH0, TCCSH1, TCCSH2 レジスタの ICRE : bit8=1) になると , 割込み要求が
割込みコントローラへ出力されます。
タイマ値が "0000H" になると , タイマ状態制御レジスタ (TCCSH0, TCCSH1, TCCSH2)
の IRQZF : bit14 に "1" が設定されます。この状態において割込み要求が許可 (TCCSH0,
TCCSH1, TCCSH2 レジスタの IRQZE : bit13=1) になると , 割込み要求が割込みコント
ローラへ出力されます。
272
第 12 章 多機能タイマ
■ 16 ビットアウトプットコンペア割込み
16 ビットアウトプットコンペアの割込み制御ビットと割込み要因を表 12.5-2 に示しま
す。
表 12.5-2 16 ビットアウトプットコンペア 0 ∼ 5 の割込み制御ビットと割込み要因
16 ビットアウトプット
コンペア 0, 1
割込み要求
フラグビット
16 ビットアウトプット
コンペア 2, 3
16 ビットアウトプット
コンペア 4, 5
コンペア制御レジスタ下位 コンペア制御レジスタ下位 コンペア制御レジスタ下位
(OCSL0) の IOP1, IOP0
(OCSL2) の IOP1, IOP0
(OCSL4) の IOP1, IOP0
(bit7, bit6)
(bit7, bit6)
(bit7, bit6)
コンペア制御レジスタ下位 コンペア制御レジスタ下位 コンペア制御レジスタ下位
割込み要求許可
(OCSL0) の IOE1, IOE0
(OCSL2) の IOE1, IOE0
(OCSL4) の IOE1, IOE0
ビット
(bit5, bit4)
(bit5, bit4)
(bit5, bit4)
割込み要因
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 : bit7, bit6 が "1" に設定されます。この状態において割込み要求が許可
(OCSL0, OCSL2, OCSL4 レジスタの IOE1, IOE0 : bit5, bit4=11B) になると , 割込み要求が
割込みコントローラへ出力されます。
■ 16 ビットインプットキャプチャ割込み
16 ビットインプットキャプチャの割込み制御ビットと割込み要因を表 12.5-3 に示しま
す。
表 12.5-3 16 ビットインプットキャプチャ 0 ∼ 3 の割込み制御ビットと割込み要因
16 ビットインプットキャプチャ 0, 1 16 ビットインプットキャプチャ 2, 3
割込み要求
フラグビット
インプットキャプチャ状態制御
インプットキャプチャ状態制御
レジスタ下位 (PICSL01) の ICP1, ICP0 レジスタ下位 (ICSL23) の ICP3, ICP2
(bit7, bit6)
(bit7, bit6)
割込み要求許可ビット
インプットキャプチャ状態制御
インプットキャプチャ状態制御
レジスタ下位 (PICSL01) の ICE1, ICE0 レジスタ下位 (ICSL23) の ICP3, ICP2
(bit5, bit4)
(bit5, bit4)
割込み要因
有効なエッジが IC0, IC1 端子で検出
される
有効なエッジが IC2, IC3 端子で検出
される
16 ビットインプットキャプチャでは , 有効なエッジが IC0, IC1, IC2, IC3 端子で検出さ
れると , インプットキャプチャ状態制御レジスタ (PICSL01, ICSL23) の ICP3 ∼ ICP0 :
bit7, bit6 に "11B" が設定されます。この状態において割込み要求が許可 (PICSL01,
ICSL23 レジスタの ICE3 ∼ ICE0 : bit5, bit4=11B) になると , 割込み要求は割込みコント
ローラへ出力されます。
273
第 12 章 多機能タイマ
■ 波形ジェネレータ割込み
波形ジェネレータの割込み制御ビットと割込み要因を表 12.5-4 に示します。
表 12.5-4 波形ジェネレータの割込み制御ビットと割込み要因
波形ジェネレータ
16 ビットデッドタイマ 0, 1, 2
DTTI 端子
割込み要求フラグビット
16 ビットデッドタイマ制御レジスタ
上位 , 下位 (DTCR0 ∼ DTCR2) の
波形制御レジスタ 1 (SIGCR1) の
TMIF0 ∼ TMIF2 ( 上位は bit12, 下位は DTIF (bit6)
bit4)
割込み要求許可ビット
16 ビットデッドタイマ制御レジスタ
波形制御レジスタ 1
上位 , 下位 (DTCR0 ∼ DTCR2) の
TMIE0 ∼ TMIE2 ( 上位は bit11, 下位は (SIGCR1) の DTIE(bit7)
bit3)
割込み要因
16 ビットデッドタイマ 0, 1, 2 アンダ
フロー
DTTI 端子で "L" レベルが検出さ
れる
波形ジェネレータでは, 16ビットデッドタイマのアンダフローが発生し, かつDTCR0∼
DTCR2 レジスタの TMD8 ∼ TMD0 ( 上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0) が "000B"
または "001B" のとき , 16 ビットデッドタイマ制御レジスタ (DTCR0 ∼ DTCR2) の
TMIF0 ∼ TMIF2 ( 上位は bit12, 下位は bit4) には "1" が設定されます。この状態におい
て割込み要求が許可 (DTCR0∼DTCR2,レジスタのTMIE0∼TMIE2 (上位はbit11,下位は
bit3) =1) になると , 割込み要求は割込みコントローラへ出力されます。
274
第 12 章 多機能タイマ
12.6
多機能タイマの動作
多機能タイマの動作について説明します。
■ 多機能タイマの動作
● 16 ビットフリーランタイマ
16 ビットフリーランタイマは , カウント動作を許可すると , タイマデータレジスタ
(TCDTH, TCDTL) に設定されている値からカウントアップを開始します。カウント値は ,
16ビットアウトプットコンペアと16ビットインプットキャプチャの基準時間として使用
されます。
● 16 ビットアウトプットコンペア
16 ビットアウトプットコンペアは , " 指定されたアウトプットコンペアレジスタに設定さ
れている値 " と "16 ビットフリーランタイマ値 " の比較に使用します。一致が検出された
場合は , 割込みフラグが設定され , 出力レベルは反転します。
● 16 ビットインプットキャプチャ
16 ビットインプットキャプチャは , 指定された有効なエッジを検出するために使用しま
す。
有効なエッジが検出されると, 割込みフラグが設定され, 16ビットフリーランタイマ値が
取り出され , インプットキャプチャデータレジスタへ格納されます
● 波形ジェネレータ
波形ジェネレータは , リアルタイム出力 (RTO0 ∼ RTO5) , 16 ビット PPG タイマ 0, 16 ビッ
トデッドタイマを使用してさまざまな波形 ( デッドタイムを含む ) を生成します。
● A/D 起動コンペア
16 ビットフリーランタイマ 0 の値が指示値となったときに , A/D 起動を行います。
275
第 12 章 多機能タイマ
12.6.1
16 ビットフリーランタイマの動作
16 ビットフリーランタイマは , 3 ユニット搭載しており , リセット完了後 , タイマ
データレジスタ (TCDTH0 ∼ TCDTH2 / TCDTL0 ∼ TCDTL2) に設定されている値か
らカウントアップを開始します。カウント値は , 16 ビットアウトプットコンペアと
16 ビットインプットキャプチャの基準時間として使用されます。
■ タイマクリア
16 ビットフリーランタイマのカウント値は , 下記のいずれかの場合にクリアされます。
• アップカウントモード (TCCSL レジスタの MODE : bit5=0) によってコンペアクリア
レジスタとの一致が検出された場合
• 動作中に TCCSL レジスタの SCLR : bit4 に "1" が書き込まれた場合
• 停止中に TCDTH/TCDTL レジスタに "0000H" が書き込まれた場合
• リセットされた場合
リセットされると , カウンタは直ちにクリアされます。ソフトウェアクリアされた場合 ,
またはコンペアクリアレジスタとの一致が発生した場合は , カウンタはカウントタイ
ミングと同期してクリアされます。
コンペアクリア
レジスタ値
N
コンペア一致
カウント値
N
0000H
16 ビットフリーランタイマのクリアタイミング
■ タイマモード
16 ビットフリーランタイマでは , 以下のどちらかのモードを選択することができます。
• アップカウントモード (TCCSL レジスタの MODE : bit5=0)
• アップダウンカウントモード (TCCSL レジスタの MODE : bit5=1)
アップカウントモード時は , カウンタは事前に設定されているタイマデータレジスタ
(TCDTH/TCDTL) か らカウン トを開始 し , カウント 値がコン ペアクリ アレジス タ
(CPCLRH/CPCLRL) の値と一致するまでカウントアップし , 次にカウンタは , "0000H"
にクリアされ , 次に再びカウントアップします。
アップダウンカウントモード時は , カウンタは事前に設定されているタイマデータレ
ジスタ (TCDTH/TCDTL) からカウントを開始し , カウント値がコンペアクリアレジス
タ (CPCLRH/CPCLRL) の値と一致するまでカウントアップし , 次にカウントがアップ
カウントからダウンカウントに変わり , カウンタ値が "0000H" に達するまでカウントダ
ウンし , 次に再びカウントアップします。
276
第 12 章 多機能タイマ
モードビット (TCCSLレジスタの MODE : bit5) には, タイマが動作中であろうと停止し
ていようと , いつでも値を書き込むことができます。タイマ動作中にこのビットに書き
込まれた値はバッファに入れられ , カウントモードはタイマ値が "0000H" になると変わ
ります。
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
タイマ動作開始
アップカウンタモードに変わる
アップダウンカウントモードに変わる
コンペアクリア
バッファレジスタ
BFFFH
TCCSL : MODE
タイマ動作中にタイマモードを変える
■ コンペアクリアバッファ
コンペアクリアレジスタ (CPCLRH/CPCLRL) には , 有効または無効にすることができ
るバッファ機能が存在します。バッファ機能が有効 (TCCSL レジスタの BFE : bit7=1)
の場合は , コンペアクリアバッファレジスタ (CPCLRBH/CPCLRBL) に書き込まれた
データは , 16 ビットフリーランタイマ値 "0" が検出されると CPCLRH/CPCLRL レジス
タに転送されます。バッファ機能が無効 (TCCSL ビットの BFE : bit7=0) の場合は ,
CPCLRBH/CPCLRBL レジスタは透過であり , データは CPCLRH/CPCLRL レジスタに直
接書き込むことができます。
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
コンペアクリア一致
タイマ動作開始
リセット
0 検出
コンペアクリア
バッファレジスタ
BFFFH
7FFFH
FFFFH
コンペアクリア
レジスタ
BFFFH
7FFFH
FFFFH
コンペアクリアバッファが無効 (TCCSL レジスタ BFE:bit7=0) 時のアップカウントモードによる動作
277
第 12 章 多機能タイマ
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
コンペアクリア一致
タイマ動作開始
0 検出
リセット
コンペアクリア
バッファレジスタ
FFFFH
7FFFH
BFFFH
コンペアクリア
レジスタ
7FFFH
BFFFH
FFFFH
コンペアクリアバッファが有効 (TCCSL レジスタ BFE:bit7=1) 時のアップカウントモードによる動作
コンペアクリア一致
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
0 検出
タイマ動作開始
リセット
コンペアクリア
バッファレジスタ
BFFFH
コンペアクリア
レジスタ
7FFFH
BFFFH
FFFFH
7FFFH
FFFFH
コンペアクリアバッファが有効 (TCCSL レジスタ BFE:bit7=1) 時のアップダウンカウントモードによる動作
■ タイマ割込み
16 ビットフリーランタイマでは , 以下の 2 つの割込みを発生します。
• コンペアクリア割込み
• 0 検出割込み
コンペアクリア割込みは , タイマ値がコンペアクリアレジスタ (COCLRH/COCLRL) の
値と一致すると発生します。
0 検出割込みは , タイマ値が "0000H" に達すると発生します。
278
第 12 章 多機能タイマ
<注意事項>
ソフトウェアクリア (TCCSL レジスタの SCLR:bit4=1) は , 0 検出割込みを発生しません。
カウント値
N-1
N
0
1
コンペアクリア割込み
0 検出割込み
アップカウントモード (TCCSL レジスタ MODE:bit5=0) で生成された割込み
カウント値
N-1
N
N-1
0
コンペアクリア割込み
0 検出割込み
アップダウンカウントモード (TCCSL レジスタ MODE:bit5=1) で生成された割込み
■ 割込みマスク機能
TCCSH レジスタの MSI2 ∼ MSI0 : bit12 ∼ bit10 を設定すると , 割込み要求をマスクする
ことができます。MSI2 ∼ MSI0 ビットは , カウント値が "000B" に達すると値をリロード
する 3 ビットリロードダウンカウンタです。カウント値は , MSI2 ∼ MSI0 ビットに直接
書き込むことによってもロードすることができます。
マスクカウントは, MSI2∼MSI0ビッ
トに設定された値です。MSI2 ∼ MSI0 ビットが "000B" になると , 割込み要因はマスクさ
れません。
アッ
割込み要因は, カウントモード (TCCSLレジスタのMODE : bit5) によって異なります。
プカウントモード時は , コンペアクリア割込みのみをマスクすることができ , 0 検出割込
みは "0" が検出されるたびに発生します。アップダウンカウントモード時は , 0 検出割込
みのみをマスクすることができ , コンペアクリア割込みはコンペアクリアが検出される
たびに発生します。
279
第 12 章 多機能タイマ
<注意事項>
ソフトウェアクリア (TCCSL レジスタの SCLR : bit4=1) は , 0 検出割込みを発生しません。
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
タイマ動作開始
1 回目
2 回目
3 回目
4 回目
リセット
0 検出
割込み
ソフトウェアクリア
TCCSH : MSI2~MSI0=000B
コンペアクリア
割込み TCCSH : MSI2~MSI0=001B
TCCSH : MSI2~MSI0=010 B
( 注意事項 ) 0 検出割込みとコンペアクリア割込みの両方はソフトウェアによりクリアされます。
アップカウントモードでマスクされるコンペアクリア割込み
カウント値
1 回目
2 回目
3 回目
4 回目
5 回目
6 回目
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
タイマ動作開始
1 回目
リセット
コンペアクリア
割込み
2 回目
3 回目
4 回目
5 回目
6 回目
ソフトウェアクリア
TCCSH : MSI2~MSI0=000B
0 検出
割込み
TCCSH : MSI2~MSI0=001B
TCCSH : MSI2~MSI0=010 B
( 注意事項 ) 0 検出割込みとコンペアクリア割込みの両方はソフトウェアによりクリアされます。
アップダウンカウントモードでマスクされる 0 検出割込み
280
第 12 章 多機能タイマ
■ 選択された外部カウントクロック
16 ビットフリーランタイマは , 入力クロック ( 内部クロックまたは外部クロック ) に基
づいてインクリメントされます。外部クロックが選択されると , 外部クロックモード
(TCCSH レジスタの ECKE : bit15=1) が選択された後 , 16 ビットフリーランタイマは , 外
部入力の初期値が "1" の場合 , 立上りエッジでカウントアップを開始します。その後は
両エッジでカウントアップします。外部入力の初期値が "0" の場合 , 立下りエッジでカ
ウントアップを開始します。その後は両エッジでカウントアップします。
外部クロック入力
TCCSH:ECKE ビット
カウントクロック
カウント値
N
N+1
N+2
16 ビットフリーランタイマのカウントタイミング
<注意事項>
外部クロック入力のカウントは , 外部クロックの両エッジとなります。
281
第 12 章 多機能タイマ
■ フリーランタイマ 0 による A/D 起動
16 ビットフリーランタイマ 0 のコンペア一致時 , もしくは 0 検出時に A/D1 および
A/D2 の起動が可能です。起動要因は , A/D トリガ制御レジスタ (ADTRGC) の A/D トリ
ガ要因選択ビット (SEL1, SEL2 : bit2, bit3) で選択することが可能です。
A/D 起動信号は , A/D トリガ制御レジスタ (ADTRGC) の A/D トリガ出力許可 / 禁止ビッ
ト (AD1E, AD2E : bit0, bit1) により , コンペア一致時 , もしくは 0 検出時でも , A/D 起動
信号を止めることが可能です。
<注意事項>
A/D 起動信号の出力を禁止しているときに , 起動要因のコンペア一致 , もしくは 0 検出が
出力されている場合 , A/D 起動信号の出力を許可すると , 許可と同時に A/D 起動信号が出
力されます。
● 0 検出による A/D 起動 (ADTRGC : SELn=0 [n=1, 2 : A/D ユニット番号 ])
フリーランタイマ
カウント値
コンペア
クリア値
アップカウントモード
フリーランタイマ
カウント値
コンペア
クリア値
アップダウンカウントモード
時間
A/D 起動
A/D 起動
A/D 起動
時間
A/D 起動
A/D 起動
● コンペアクリア一致による A/D 起動 (ADTRGC : SELn=1 [n=1, 2 : A/D ユニット番号 ])
フリーランタイマ
カウント値
アップカウントモード
フリーランタイマ
カウント値
コンペア
クリア値
アップダウンカウントモード
コンペア
クリア値
時間
A/D 起動
282
A/D 起動
A/D 起動
時間
A/D 起動
A/D 起動
第 12 章 多機能タイマ
12.6.2
16 ビットアウトプットコンペアの動作
アウトプットコンペアは , " 指定されたコンペアクリアレジスタに設定されている値 "
と "16 ビットフリーランタイマの値 " の比較に使用します。一致が検出された場合
は , 割込みフラグが設定され , 出力レベルが反転します。
フリーランタイマがアップダウンカウントモードの場合 , カウントピークとコンペ
アレジスタ値が一致したときは , 一致信号を無視します。
■ 16 ビットアウトプットコンペア用フリーランタイマの選択
• 16 ビットアウトプットコンペア各チャネルに対して , 3 ユニットあるフリーランタ
イマのいずれかを設定できます。
• 以下の説明中のフリーランタイマはここで選択されたフリーランタイマについて
です。
• この設定は , アウトプットコンペア動作中に書き換えないでください。
FSR0 ∼ FSR2 レジスタ
選択されるフリーランタイマ
OCUn1
OCUn0
0
0
フリーランタイマ ch.0 選択 [ 初期値 ]
0
1
フリーランタイマ ch.1 選択
1
0
フリーランタイマ ch.2 選択
1
1
設定禁止
(n=0, 1, 2, 3, 4, 5 : アウトプットコンペアのチャネル )
283
第 12 章 多機能タイマ
■ 16 ビットアウトプットコンペアの動作 ( 反転モード , MOD1x=0)
● コンペア動作は , 各チャネル ( コンペア制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の
CMOD : bit12=0) において実行することができます。
図 12.6-1 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を別々に
使用した際の出力波形例 ( フリーランタイマはアップカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 1
7FFFH
RT0
RT1
コンペア 0 割込み
コンペア 1 割込み
図 12.6-2 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を別々に
使用した際の出力波形例 ( フリーランタイマはアップダウンカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 1
7FFFH
RT0
RT1
コンペア 0 割込み
コンペア 1 割込み
284
第 12 章 多機能タイマ
● 出力レベルは , 一対のコンペアレジスタ ( コンペア制御レジスタ上位 (OCSH1, OCSH3,
OCSH5) の CMOD : bit12=1) を使用して変更することができます。
図 12.6-3 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を一対で
使用した際の出力波形例 ( フリーランタイマはアップカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 1
7FFFH
RT0
コンペア 0 に対応
RT1
コンペア 0 と 1 に対応
コンペア 0 割込み
コンペア 1 割込み
図 12.6-4 出力初期値が "0" のときにコンペアレジスタ 0 とコンペアレジスタ 1 を一緒に
使用した際の出力波形例 ( フリーランタイマはアップダウンカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 1
7FFFH
RT0
コンペア 0 に対応
RT1
コンペア 0 と 1 に対応
コンペア 0 割込み
コンペア 1 割込み
285
第 12 章 多機能タイマ
● コンペアバッファが無効になったときの出力レベル
図 12.6-5 コンペアバッファが無効になっているときの出力波形例
( フリーランタイマはアップカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
タイマ動作開始
コンペアクリア一致
リセット
コンペア
クリア一致
コンペアクリア
バッファレジスタ 0
BFFFH
3FFFH
BFFFH
コンペアクリア
レジスタ 0
BFFFH
3FFFH
BFFFH
RT0
割込み
● コンペアクリア一致発生時にコンペアバッファが選択されたときの出力レベル
図 12.6-6 コンペアバッファが有効になったときの出力波形例
( フリーランタイマはアップダウンカウントモード )
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
タイマ動作開始
コンペアクリア一致
0 検出
リセット
コンペアバッファ
レジスタ 0
コンペアレジスタ 0
RT0
割込み
286
BFFFH
3FFFH
BFFFH
BFFFH
3FFFH
BFFFH
第 12 章 多機能タイマ
■ 16 ビットアウトプットコンペアの動作 ( セット / リセットモード , MOD1x=1)
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 2
7FFFH
RT0
RT1
コンペア 0 割込み
コンペア 2 割込み
ch.0 は , アップカウント:セット , ダウンカウント:リセット
ch.2 は , アップカウント:リセット , ダウンカウント:セット
( 注意事項 ) ch.0 一致で "1" となったままとなります。ch.2 は常に "0" のままです。
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ 0
BFFFH
コンペアレジスタ 2
7FFFH
RT0
RT1
コンペア 0 割込み
コンペア 2 割込み
ch.0 は , アップカウント:セット , ダウンカウント:リセット
ch.2 は , アップカウント:リセット , ダウンカウント:セット
287
第 12 章 多機能タイマ
■ 16 ビットアウトプットコンペアタイミング
フリーランタイマがコンペアレジスタ値と一致すると , アウトプットコンペアはコン
ペア一致信号を発生して出力を反転し , 割込みを発生します。コンペア一致が発生する
と , 出力はカウンタのカウントタイミングと同期して反転します。
図 12.6-7 コンペアレジスタ割込みタイミング
マシンクロック φ
カウント値
N+1
コンペアレジスタ
N
コンペア一致
割込み
図 12.6-8 端子出力の変化タイミング
マシンクロック φ
カウント値
コンペアレジスタ
コンペア一致信号
端子出力
288
N
N
N+1
N
N+1
第 12 章 多機能タイマ
■ 16 ビットアウトプットコンペアとフリーランタイマの動作について
● フリーランタイマがアップカウントの場合
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッ
ファレジスタ
コンペア
レジスタ
BFFFH CFFFH
BFFFH
BFFFH
CFFFH
0000H
BFFFH
BFFFH
0000H
0000H
BFFFH
CFFFH
0000H
0000H
CFFFH
0000H
RT
アウトプットコンペアのコンペアバッファのデータ転送タイミングは
フリーランタイマのコンペアクリア一致時
● フリーランタイマがアップカウントの場合
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッ
ファレジスタ
コンペア
レジスタ
BFFFH
BFFFH
CFFFH BFFFH
CFFFH
0000H
BFFFH
BFFFH
0000H
0000H
BFFFH
CFFFH
0000H
0000H
BFFFH
0000H
RT
アウトプットコンペアのコンペアバッファのデータ転送タイミングは
フリーランタイマの 0 検出時
● フリーランタイマがアップダウンカウントの場合
• アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーラン
タイマのコンペアクリア一致時です。
• アウトプットコンペア出力が一致時 , 出力反転モードの場合
- コンペアレジスタ値を "0000H" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "1" にセットされます (CMOD = 1 時は "0" にリセット ) 。
- コンペアレジスタ値を "FFFFH" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "0" にリセットされます (CMOD = 1 時は "1" にセット ) 。
- フリーランタイマのコンペアクリアレジスタ値とアウトプットコンペアのコン
ペアレジスタの値が同じ場合は , 比較を行いません。このとき , コンペアクリア
レジスタ値とコンペアレジスタ値がともに , "FFFFH" に設定した場合 , フリーラ
ンタイマのカウント値にかかわらず , RT は "0" にリセットされます。
289
第 12 章 多機能タイマ
フリーランタイマ
カウント値
CMOD=0 の場合
CFFFH
BFFFH
0000H
時間
コンペアバッ
ファレジスタ
BFFFH
コンペア
レジスタ
BFFFH
CFFFH
BFFFH
0000H
FFFFH
BFFFH
CFFFH
BFFFH
0000H
0000H
FFFFH
RT 初期値 [0]
RT 初期値 [1]
● フリーランタイマがアップダウンカウントの場合
• アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーラン
タイマの 0 検出時です。
• アウトプットコンペア出力は一致時 , 出力反転モードの場合
- コンペアレジスタ値を "0000H" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "1" にセットされます (CMOD = 1 時は "0" にリセット )。
- コンペアレジスタ値を "FFFFH" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "0" にリセットされます (CMOD = 1 時は "1" にセット )。
- フリーランタイマのコンペアクリアレジスタ値とアウトプットコンペアのコン
ペアレジスタの値が同じ場合は , 比較を行いません。このとき , コンペアクリア
レジスタ値とコンペアレジスタ値がともに , "FFFFH" に設定した場合 , フリーラ
ンタイマのカウント値にかかわらず , RT は "0" にリセットされます。
フリーランタイマ
カウント値
CMOD=0 の場合
CFFFH
BFFFH
0000H
時間
コンペアバッ
ファレジスタ
コンペア
レジスタ
RT 初期値 [0]
RT 初期値 [1]
290
BFFFH
BFFFH
BFFFH
CFFFH
CFFFH
0000H
BFFFH
FFFFH
0000H
0000H
FFFFH
0000H
第 12 章 多機能タイマ
● フリーランタイマがアップダウンカウントの場合
• アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーラン
タイマのコンペアクリア一致時です。
• アウトプットコンペア出力は , アップカウント時の一致は "1" にセット , ダウンカウ
ント時の一致は "0" にリセットする場合 (CMOD=0)
- コンペアレジスタ値を "0000H" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "1" にセットされます。
- コンペアレジスタ値を "FFFFH" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "0" にリセットされます。
- フリーランタイマのコンペアクリアレジスタ値とアウトプットコンペアのコン
ペアレジスタの値が同じ場合は , 比較を行いません。このとき , コンペアクリア
レジスタ値とコンペアレジスタ値をともに , "FFFFH" に設定した場合 , フリーラ
ンタイマのカウント値にかかわらず , RT は "0" にリセットされます。
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッ
ファレジスタ
BFFFH
CFFFH
BFFFH
0000H
コンペア
レジスタ
BFFFH
BFFFH
CFFFH
BFFFH
FFFFH
0000H
0000H
FFFFH
RT 初期値 [0]
RT 初期値 [1]
● フリーランタイマがアップダウンカウントの場合
• アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーラン
タイマの 0 検出時です。
• アウトプットコンペア出力は , アップカウント時の一致は "1" にセット , ダウンカウ
ント時の一致は "0" にリセットする場合 (CMOD=0)
- コンペアレジスタ値を "0000H" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "1" にセットされます。
- コンペアレジスタ値を "FFFFH" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "0" にリセットされます。
- フリーランタイマのコンペアクリアレジスタ値とアウトプットコンペアのコン
ペアレジスタの値が同じ場合は , 比較を行いません。このとき , コンペアクリア
レジスタ値とコンペアレジスタ値がともに , "FFFFH" に設定した場合 , フリーラ
ンタイマのカウント値にかかわらず , RT は "0" にリセットされます。
291
第 12 章 多機能タイマ
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッ
ファレジスタ
コンペア
レジスタ
BFFFH
BFFFH
0000H
BFFFH
CFFFH
CFFFH
FFFFH
0000H
BFFFH
0000H
FFFFH
0000H
RT 初期値 [0]
RT 初期値 [1]
● フリーランタイマがアップダウンカウントの場合
• アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーラン
タイマのコンペアクリア一致時です。
• アウトプットコンペア出力は , アップカウント時の一致は "0" にリセット , ダウンカ
ウント時の一致は "1" にセットする場合 (CMOD=1)
- コンペアレジスタ値を "0000H" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "0" にリセットされます。
- コンペアレジスタ値を "FFFFH" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "1" にセットされます。
- フリーランタイマのコンペアクリアレジスタ値とアウトプットコンペアのコン
ペアレジスタの値が同じ場合は , 比較を行いません。このとき , コンペアクリア
レジスタ値とコンペアレジスタ値がともに , "FFFFH" に設定した場合 , フリーラ
ンタイマのカウント値にかかわらず , RT は "0" にリセットされます。
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッ
ファレジスタ
BFFFH
CFFFH
BFFFH
0000H
FFFFH
0000H
コンペア
レジスタ
BFFFH
BFFFH
CFFFH
BFFFH
0000H
FFFFH
RT 初期値 [0]
RT 初期値 [1]
292
第 12 章 多機能タイマ
● フリーランタイマがアップダウンカウントの場合
• アウトプットコンペアのコンペアバッファのデータ転送タイミングはフリーラン
タイマの 0 検出時です。
• アウトプットコンペア出力は , アップカウント時の一致は "0" にリセット , ダウンカ
ウント時の一致は "1" にセットする場合 (CMOD=1)
- コンペアレジスタ値を "0000H" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "0" にリセットされます。
- コンペアレジスタ値を "FFFFH" に設定したとき , フリーランタイマのカウント値
にかかわらず , RT は "1" にセットされます。
- フリーランタイマのコンペアクリアレジスタ値とアウトプットコンペアのコン
ペアレジスタの値が同じ場合は , 比較を行いません。このとき , コンペアクリア
レジスタ値とコンペアレジスタ値がともに , "FFFFH" に設定した場合 , フリーラ
ンタイマのカウント値にかかわらず , RT は "0" にリセットされます。
フリーランタイマ
カウント値
CFFFH
BFFFH
0000H
時間
コンペアバッ
ファレジスタ
BFFFH
コンペア
レジスタ
BFFFH
BFFFH
CFFFH
CFFFH
0000H
BFFFH
FFFFH
0000H
FFFFH
0000H
0000H
RT 初期値 [0]
RT 初期値 [1]
293
第 12 章 多機能タイマ
12.6.3
16 ビットインプットキャプチャの動作
インプットキャプチャは , 指定された有効なエッジを検出するために使用します。
有効なエッジが検出されると , 割込みフラグが設定され , 16 ビットフリーランタイ
マの値がキャプチャレジスタへロードされます。
■ 16 ビットインプットキャプチャ用フリーランタイマの選択
• 16 ビットインプットキャプチャの各チャネルに対して , 3 ユニットあるフリーラン
タイマのいずれを割り当てるかを設定できます。
• この設定は , インプットキャプチャ動作中に書き換えないでください。
FSR2 レジスタ
選択されるフリーランタイマ
ICUn1
ICUn0
0
0
フリーランタイマ ch.0 選択 [ 初期値 ]
0
1
フリーランタイマ ch.1 選択
1
0
フリーランタイマ ch.2 選択
1
1
設定禁止
(n=0, 1, 2, 3 : インプットキャプチャのチャネル )
294
第 12 章 多機能タイマ
■ 16 ビットインプットキャプチャの動作
図 12.6-9 インプットキャプチャタイミング例
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
IC0
IC1
IC 例
キャプチャ
レジスタ 0
キャプチャ
レジスタ 1
キャプチャ
レジスタ例
不定
3FFFH
不定
7FFFH
BFFFH
不定
3FFFH
キャプチャ 0
割込み
キャプチャ 1
割込み
キャプチャ例
割込み
再度 , 有効エッジにより割込み発生
ソフトウェアにより , 割込みクリア
キャプチャ 0 :立上りエッジ
キャプチャ 1 :立下りエッジ
キャプチャ例 :両方のエッジ
■ 16 ビットインプットキャプチャ入力タイミング
図 12.6-10 入力信号に対する 16 ビットインプットキャプチャタイミング例
マシンクロック φ
カウント値
インプット
キャプチャ入力
N+1
N
有効なエッジ
キャプチャ信号
キャプチャレジスタ
N+1
割込み
295
第 12 章 多機能タイマ
波形ジェネレータの動作
12.6.4
波形ジェネレータは , リアルタイム出力 (RTO0 ∼ RTO5) , 16 ビット PPG タイマ 0,
16 ビットデッドタイマ 0, 1, 2 を使用してさまざまな波形 ( デッドタイムを含む ) を
生成することができます。
■ RTO0 ∼ RTO5 と GATE の出力状態
表 12.6-1 RTO0 ∼ RTO5/GATE 出力状態とビット設定 (1 / 2)
TMD2 TMD1 TMD0 GTENx PGENx
RTOx
GATE
常に "0"
0
0
0
X
X
リアルタイム出力 RTOx (16 ビットアウトプット
コンペア出力 )
0
0
1
X
0
リアルタイム出力 RTOx (16 ビットアウトプット (RTx &
コンペア出力 )
GTENx) *3
0
0
1
0
1
RTOx が "H" の期間に PPG0 のパルスを出力 *1
0
0
1
1
1
RTOx が "H" の期間に GATE 信号により起動さ (RT0/RT1/
RT2/RT3/
れた PPG0 のパルスを出力
RT4/RT5)
0
1
0
X
RT0, RT1 の立上りエッジにより 16 ビットデッ
ドタイマ 0 を起動し , 16 ビットデッドタイマ 0
がアンダフローするまで "H" を出力
X
RT2, RT3 の立上りエッジにより 16 ビットデッ
ドタイマ 1 を起動し , 16 ビットデッドタイマ 1
がアンダフローするまで "H" を出力
0
X
RT4, RT5 の立上りエッジにより 16 ビットデッ
ドタイマ 2 を起動し , 16 ビットデッドタイマ 2
がアンダフローするまで "H" を出力
0
RT0, RT1 の立上りエッジにより 16 ビットデッ
ドタイマ 0 を起動し , 16 ビットデッドタイマ 0
がアンダフローするまで PPG0 のパルスを出力
常に "0"
タイマ動作
期間中は
"H" を出力
*4
*1
0
1
0
0
1
RT2, RT3 の立上りエッジにより 16 ビットデッ
ドタイマ 1 を起動し , 16 ビットデッドタイマ 1
がアンダフローするまで PPG0 のパルスを出力
*1
0
RT4, RT5 の立上りエッジにより 16 ビットデッ
ドタイマ 2 を起動し , 16 ビットデッドタイマ 2
がアンダフローするまで PPG0 のパルスを出力
*1
296
常に "0"
第 12 章 多機能タイマ
表 12.6-1 RTO0 ∼ RTO5/GATE 出力状態とビット設定 (2 / 2)
TMD2 TMD1 TMD0 GTENx PGENx
0
1
1
0
0
0
RTOx
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
RT3 でノンオーバラップ信号を生成 *2
タイマ動作
期間中は
"H" を出力
*4
常に "0"
RT5 でノンオーバラップ信号を生成 *2
X
1
1
1
0
X
PPG0 でノンオーバラップ信号を生成
1
1
1
1
X
GATE 信号により起動された PPG0 でノンオー
バラップ信号を生成
その他
GATE
常に "0"
常に "0"
(RT0|RT1|
RT2|RT3|
RT4|RT5)
常に "0"
X=0 ∼ 5
*1:あらかじめ PPG0 を起動しておく必要があります。
*2:ノンオーバラップ信号を生成するには , 必ず RT1, RT3, RT5 に対して 2 チャネルモード ( コンペア
制御レジスタ上位 (OCSH1, OCSH3, OCSH5) の CMOD : bit12=1) を選択してださい。
*3:GTENx ビットに "1" を設定した RTx から GATE 信号が生成されます。
*4:GTENx ビットに "1" を設定した RTx によって起動されるタイマの動作期間中に , GATE 信号が生
成されます。複数の GATEx ビットに "1" を設定した場合 , GATE 信号は各々のタイマ動作期間中
の信号を OR した信号となります。
<注意事項>
RTO0, RTO1 は , 16 ビットデッドタイマ制御レジスタ上位 (DTCR0) の TMD2 ∼ TMD0 :
bit10 ∼ bit8 により , RTO2, RTO3 は (DTCR1) 下位レジスタの TMD5 ∼ TMD3 : bit2 ∼ bit0
により , RTO4, RTO5 は上位レジスタ (DTCR2) の TMD8 ∼ TMD6 : bit10 ∼ bit8 により制
御されます。
297
第 12 章 多機能タイマ
■ PPG0 出力制御
RTO0 ∼ RTO5 端子への PPG0 出力は , PPG 出力制御 / インプットキャプチャ状態制御
レジスタ上位 (PICSH01) の PGEN5 ∼ PGEN0 : bit15 ∼ bit10 で許可にすることができま
す。
■ ゲートトリガされた PPG0 出力
波形ジェネレータでは , リアルタイム出力 RTO0 ∼ RTO5 により , GATE 信号を生成す
ることができ , 16 ビットデッドタイマ 0, 1, 2 では PPG0 カウントをトリガとして動作
することができます。1 つの 16 ビットデッドタイマ 0, 1, 2 で 2 つのリアルタイム出力
(RTO0/RTO2/RTO4, RTO1/RTO3/RTO5) が操作され , 6 つの別々のゲート信号が生成さ
れます。これら 6 つのゲート信号は論理和がとられて GATE 信号を生成し , PPG0 カウ
ントのトリガとなります。
また , PGEN0 ∼ PGEN5 信号を使用すると , PPG0 のみを使用することで RTO0 ∼ RTO5
端子に 6 つの異なる波形を出力することができます。
● GATENxがアクティブであり, 各RTxが"H"であるとき (16ビットデッドタイマ制御レジスタ
(DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0) が
"001B" または "111B") の GATE 信号生成
図 12.6-11 RTx が "H" のときの GATE 信号の生成
16 ビットフリーランタイマ
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
コンペア
レジスタ 0
コンペア
レジスタ 1
RT0
RT1
GATE0
GATE1
GATE
298
BFFFH
7FFFH
第 12 章 多機能タイマ
● GTENx がアクティブ (DTCR0, DTCR1, DTCR2 レジスタの TMD8 ∼ TMD0=010B) であると
きの RTx 立上りエッジから 16 ビットデッドタイマ 0, 1, 2 アンダフローまでにおける
GATE 信号の生成
図 12.6-12 RTx 立上りエッジから 16 ビットデッドタイマアンダフローまでにおける GATE 信号の生成
16 ビットフリーランタイマ
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
コンペア
レジスタ 0
コンペア
レジスタ 1
BFFFH
7FFFH
RT0
RT1
GATE0
GATE1
16 ビットデッドタイマ 0
の時間
16 ビットデッドタイマ 0
の時間
GATE
<注意事項>
各 16 ビットデッドタイマは , 2 つの RT に対して使用されます。すなわち , 16 ビットデッ
ドタイマ 0 は RT0 と RT1 に対して使用され , 16 ビットデッドタイマ 1 は RT2 と RT3 に
対して使用され , 16 ビットデッドタイマ 2 は RT4 と RT5 に対して使用されます。した
がって , RT を使用して , 既に動作中のタイマの起動を試みてはなりません。このような
試みを行った場合 , GATE 信号出力が拡張され , その結果 , 誤動作が発生する場合があり
ます。
299
第 12 章 多機能タイマ
12.6.4.1
タイマモードの動作
RTO0 ∼ RTO5 端子の立上りエッジが検出されると , 16 ビットデッドタイマに値が
リロードされて , 16 ビットデッドタイマがダウンカウントを開始します。PPG タイ
マ 0 は , 16 ビットデッドタイマでアンダフローが発生するまで RTO0 ∼ RTO5 端子
へ出力し続けます。
■ タイマモードの動作
● RT立上りエッジから16ビットデッドタイマアンダフローまでにおけるPPG0出力パルス生成
(DTCR0, DTCR1, DTCR2 レジスタの TMD8 ∼ TMD0 ( 上位は bit10 ∼ bit8, 下位は bit2 ∼
bit0) =010B)
図 12.6-13 TMD2 ∼ TMD0 ( 上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0) が "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
コンペア
レジスタ 1
BFFFH
7FFFH
RT0
RT1
GATE
RTO0
RTO1
16 ビットデッドタイマ 16 ビットデッドタイマ
0 の時間
0 の時間
300
第 12 章 多機能タイマ
<注意事項>
各 16 ビットデッドタイマは , 2 つの RT に対して使用されます。すなわち , 16 ビットデッ
ドタイマ 0 は RT0 と RT1 に対して使用され , 16 ビットデッドタイマ 1 は RT2 と RT3 に
対して使用され , 16 ビットデッドタイマ 2 は RT4 と RT5 に対して使用されます。した
がって , RT を使用して , 既に動作中の PPG0 の起動を試みてはなりません。このような
試みを行った場合は , GATE 信号出力が拡張され , その結果 , 誤動作が発生する場合があ
ります。
301
第 12 章 多機能タイマ
12.6.4.2
デッドタイムタイマモード時の動作
デッドタイムジェネレータは , リアルタイム出力 (RT1, RT3, RT5) , もしくは , PPG0
タイマパルス出力を入力し , 外部端子 (RTO0 ∼ RTO5) へノンオーバラップ信号 ( 反
転信号 ) を出力します。
■ デッドタイムタイマモード時の動作
● 通常極性のRT1, RT3, RT5によるノンオーバラップ信号生成 (16ビットデッドタイマ制御レ
ジスタ (DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位は bit10 ∼ bit8, 下位は bit2 ∼
bit0) =100B)
DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 が , "0" ( 通常極性 ) であるノン
オ ー バ ラ ッ プ 信号 を 選 択 す る と , 16 ビ ッ ト デ ッ ド タ イ マ レ ジ ス タ (TMRRH0 ∼
TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオーバラップ時間に相当する遅
延が適用されます。この遅延は RT1, RT3, RT5 端子の立上りエッジまたは立下りエッ
ジで適用されます。RT1, RT3, RT5 パルス幅が , 設定されているノンオーバラップ時間
より小さい場合は , 16 ビットデッドタイマは , その次の RT エッジの TMRRH0 ∼
TMRRH2, TMRRL0 ∼ TMRRL2 レジスタ値からダウンカウントを再開します。
図 12.6-14 通常極性の RT1, RT3, RT5 によるノンオーバラップ信号生成
< レジスタの設定 >
TCDTH, TCDTL
:XXXXH
OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5 :XXXXH ( コンペア値 )
OCSH0 ∼ OCSH5, OCSL0 ∼ OCSL5
:-XX1XXXX XXXXXX11B
TCCSH, TCCSL
:X--XXXXX X0X0XXXXB
CPCLRH, CPCLRL
:XXXXH ( サイクルの設定 )
DTCR0 ∼ DTCR2
:0XXXX100B
TMRRH0 ∼ TMRRH2,
TMRRL0 ∼ TMRRH2
:XXXXH ( ノンオーバラップタイミングの設定 )
SIGCR1
:XXXXXXXXB (DTTI 端子入力と 16 ビットデッドタイマカウントクロック設定 )
( 注意事項 )"X" 動作に従って設定しなければならない
16 ビットデッドタイマ 0
カウント値
TMRRH0, TMRRL0
設定値
時間
RT1
RTO0(U)
RTO1(X)
2 マシンサイクル
2 マシンサイクル
端子名
RTO0 (U)
RTO2 (V)
RTO4 (W)
RTO1 (X)
RTO3 (Y)
RTO5 (Z)
302
出力信号
遅延された信号が RT1 の立上りエッジで適用される
遅延された信号が RT3 の立上りエッジで適用される
遅延された信号が RT5 の立上りエッジで適用される
遅延された反転信号が RT1 の立下りエッジで適用される
遅延された反転信号が RT3 の立下りエッジで適用される
遅延された反転信号が RT5 の立下りエッジで適用される
第 12 章 多機能タイマ
● 反転極性のRT1, RT3, RT5によるノンオーバラップ信号生成 (16ビットデッドタイマ制御レ
ジスタ (DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位は bit10 ∼ bit8, 下位は bit2 ∼
bit0) =100B)
DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 ( 上位は bit15, 下位は bit7) が
"1" ( 反転極性 ) であるノンオーバラップ信号を選択すると , 16 ビットデッドタイマレ
ジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオーバラッ
プ時間に相当する遅延が適用されます。この遅延は , RT1, RT3, RT5 の立上りエッジま
たは立下りエッジで適用されます。RT1, RT3, RT5 パルス幅が設定されているノンオー
バラップ時間より小さい場合は , 16 ビットデッドタイマはその次の RT エッジの
TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2 値からダウンカウントを再開します。
図 12.6-15 通常極性の RT1, RT3, RT5 によるノンオーバラップ信号生成
< レジスタの設定 >
TCDTH, TCDTL
:XXXXH
OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5 :XXXXH ( コンペア値 )
OCSH0 ∼ OCSH5, OCSL0 ∼ OCSL5
:-XX1XXXX XXXXXX11B
TCCSH, TCCSL
:XXXXXXXX X0X0XXXXB
CPCLRH, CPCLRL
:XXXXH ( サイクルの設定 )
DTCR0 ∼ DTCR2
:1XXXX100B
TMRRH0 ∼ TMRRH2,
TMRRL0 ∼ TMRRL2
:XXXXH ( ノンオーバラップタイミングの設定 )
SIGCR1
:XXXXXXXXB (DTTI 端子入力と 16 ビットデッドタイマカウントクロック設定 )
( 注意事項 )"X" 動作に従って設定しなければならない
16 ビットデッドタイマ 0
カウント値
TMRRH0, TMRRL0
設定値
時間
RT1
RTO0(U)
RTO1(X)
2 マシンサイクル
2 マシンサイクル
端子名
RTO0 (U)
RTO2 (V)
RTO4 (W)
RTO1 (X)
RTO3 (Y)
RTO5 (Z)
出力信号
遅延された反転信号が RT1 の立上りエッジで適用される
遅延された反転信号が RT3 の立上りエッジで適用される
遅延された反転信号が RT5 の立上りエッジで適用される
遅延された信号が RT1 の立下りエッジで適用される
遅延された信号が RT3 の立下りエッジで適用される
遅延された信号が RT5 の立下りエッジで適用される
303
第 12 章 多機能タイマ
● 通常極性の PPG によるノンオーバラップ信号生成 (16 ビットデッドタイマ制御レジスタ
(DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0) =111B)
DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 ( 上位は bit15, 下位は bit7) が
"0" ( 通常極性 ) であるノンオーバラップ信号を選択すると , 16 ビットデッドタイマレ
ジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオーバラッ
プ時間に相当する遅延が適用されます。この遅延は , PPG0 タイマパルス信号または反
転信号の立上りエッジで適用されます。PPG0 タイマパルス幅が設定されているノン
オーバラップ時間より小さい場合は , 16 ビットデッドタイマは PPG0 パルスのその次
のエッジの TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2 値からダウンカウントを再開
します。
図 12.6-16 通常極性の PPG0 タイマによるノンオーバラップ信号生成
< レジスタの設定 >
TCDTH, TCDTL
:XXXXH
PCSR :XXXXH
TCCSH, TCCSL
:XXXXXXXX X0X0XXXXB
PDUT :XXXXH
CPCLRH, CPCLRL
:XXXXH ( サイクルの設定 )
PCNT :XXXXH
OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5 :XXXXH ( コンペア値 )
OCSH, OCSL0 ∼ OCSL5
:-XX1XXXX XXXXXX11B
DTCR0 ∼ DTCR2
:0XXXX111B
TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2 :XXXXH ( ノンオーバラップタイミングの設定 )
SIGCR1
:XXXXXXXXB (DTTI 端子入力と 16 ビットデッドタイマカウントクロック設定 )
( 注意事項 )"X" 動作に従って設定しなければならない
16 ビットデッドタイマ 0
カウント値
TMRRH0, TMRRL0
設定値
時間
PPG0
RTO0(U)
RTO1(X)
2 マシンサイクル
2 マシンサイクル
端子名
RTO0 (U)
RTO2 (V)
RTO4 (W)
RTO1 (X)
RTO3 (Y)
RTO5 (Z)
304
出力信号
遅延された信号が PPG0 の立上りエッジで適用される
遅延された信号が PPG0 の立上りエッジで適用される
遅延された信号が PPG0 の立上りエッジで適用される
遅延された反転信号が PPG0 の立下りエッジで適用される
遅延された反転信号が PPG0 の立下りエッジで適用される
遅延された反転信号が PPG0 の立下りエッジで適用される
第 12 章 多機能タイマ
● 反転極性の PPG によるノンオーバラップ信号生成 (16 ビットデッドタイマ制御レジスタ
(DTCR0, DTCR1, DTCR2) の TMD8 ∼ TMD0 ( 上位は bit10 ∼ bit8, 下位は bit2 ∼ bit0) =111B)
DTCR0, DTCR1, DTCR2 レジスタの DMOD2 ∼ DMOD0 ( 上位は bit15, 下位は bit7) が
"1" ( 反転極性 ) であるノンオーバラップ信号を選択すると , 16 ビットデッドタイマレ
ジスタ (TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2) に設定されているノンオーバラッ
プ時間に相当する遅延が適用されます。この遅延は , PPG0 タイマパルス信号または反
転信号の立上りエッジで適用されます。PPG0 タイマパルス幅が設定されているノン
オーバラップ時間より小さい場合は , 16 ビットデッドタイマは PPG0 パルスのその次
のエッジの TMRRH0 ∼ TMRRH2, TMRRL0 ∼ TMRRL2 値からダウンカウントを再開
します。
図 12.6-17 反転極性の 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
カウント値
TMRRH0, TMRRL0
設定値
時間
PPG0
RTO0(U)
RTO1(X)
2 マシンサイクル
2 マシンサイクル
端子名
RTO0 (U)
RTO2 (V)
RTO4 (W)
RTO1 (X)
RTO3 (Y)
RTO5 (Z)
出力信号
遅延された反転信号が PPG0 の立上りエッジで適用される
遅延された反転信号が PPG0 の立上りエッジで適用される
遅延された反転信号が PPG0 の立上りエッジで適用される
遅延された信号が PPG0 の立下りエッジで適用される
遅延された信号が PPG0 の立下りエッジで適用される
遅延された信号が PPG0 の立下りエッジで適用される
305
第 12 章 多機能タイマ
12.6.4.3
DTTI 端子制御の動作
波形制御レジスタ 1 (SIGCR1) の DTIE:bit7 に "1" を設定すると , RTO0 ∼ RTO5
出力を DTTI 端子で制御することができます。DTTI 端子の "L" レベルが検出される
と , RTO0 ∼ RTO5 出力は , 割込みフラグ (SIGCR1 レジスタの DTIF : bit6) がクリ
アされるまで非動作レベルに固定されます。RTO0 ∼ RTO5 の非動作レベルは , これ
らの端子を共用しているポートデータレジスタ (PDR) を使ってソフトウェア的に設
定することができます。また , データディレクションレジスタ (DDR) を使って入力
ポートとしておけば , Hi-Z 出力となります。
■ DTTI 端子入力の動作
DTTI 端子入力の "L" が検出された場合でも , タイマは波形ジェネレータが動作してい
る間は動作を継続しますが , 波形は外部端子 RTO0 ∼ RTO5 へは出力されません。
図 12.6-18 DTTI 端子入力が有効のときの動作
< レジスタの設定 >
CPCLRH, CPCLRL
:XXXXH ( サイクルの設定 )
TCDTH, TCDTL
:XXXXH
TCCSH, TCCSL
:XXXXXXXX X0X0XXXXB
OCCPH0 ∼ OCCPH5, OCCPL0 ∼ OCCPL5 :XXXXH ( コンペア値 )
OCSH0 ∼ OCSH5,
DTCR0 ∼ DTCR2
:0XXXX100B
OCSL0 ∼ OCSL5
:-XX1XXXX XXXXXX11B
PDRx
:XXXXXX00B ( 非動作レベルの設定 )
TMRRH0 ∼ TMRRH2,
TMRRL0 ∼ TMRRL2
:XXXXH ( ノンオーバラップタイミングの設定 )
SIGCR1
:1XXXXXXXB (DTTI 端子入力と 16 ビットデッドタイマカウントクロック設定 )
( 注意事項 )"X" 動作に従って設定しなければならない
16 ビットフリーランタイマ
カウント値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
コンペア
レジスタ 0
コンペア
レジスタ 1
時間
BFFFH
3FFFH
RT1
RTO0
RTO1
DTTI 端子
DTIF
出力非動作
ソフトウェアリセット
306
第 12 章 多機能タイマ
■ 波形制御レジスタ 2 (SIGCR2) の DTTI ビットの動作
• 波形制御レジスタ 2 の DTTI:bit0 を "0" にセットすると , 本ビットを "1" にセットす
るまで RTO0 ∼ RTO5 までの出力が非動作レベルに固定されます。
• DTIE ビットの状態にはよらず ,DTTI ビットの "0" セットのみにより RTO0 ∼ RTO5
の制御が可能です。
• ノイズキャンセル機能の影響は受けずに ,DTTI ビットの "0" セット後 , 直ちに RTO0 ∼
RTO5 が非動作レベルに固定されます。
• DTTI ビットへの "0" セットでは DTTI 端子割込み , ならびに割込みフラグ (DTIF) の
"1" セットは発生しません。
• DTTI ビットへの "0" セット中に ,DTTI 端子への "L" レベル入力が検出された場合 ,
DTTI 端子割込みフラグのセット ,DTTI 端子割込み要求が発生します。
■ DTTI 端子ノイズキャンセル機能
波形制御レジスタ 1 (SIGCR1) の NRSL : bit5 に "1" を設定すると , DTTI 端子入力のノ
イズキャンセル機能が有効になります。ノイズキャンセル機能が有効になると , 出力端
子 (RTO0 ∼ RTO5) を非動作レベルに固定するために要する時間が 4, 8, 16 または 32 マ
シンサイクル (SIGCR1 レジスタの NWS1, NWS0 : bit1,bit0 で選択 ) だけ遅延します。ノ
イズキャンセル回路はリソースを使用するので, 発振が停止するモード ( 停止モードな
ど ) 時において DTTI 端子入力が有効になった場合でも入力は無効になります。
■ DTTI 端子割込み
DTTI 端子の "L" レベルが検出されると , ノイズキャンセル時間が経過した後で DTTI
端子割込みフラグ (SIGCR1 レジスタの DTIF : bit6) に "1" が設定され , 割込み要求は割
込みコントローラへ送信されます。
図 12.6-19 DTTI 端子割込みタイミング
DTTI 端子入力
SIGCR1 レジスタ
DTIF ビット
SIGCR1 レジスタの NWS1, NWS0
ビットで制御されるノイズキャン
セル時間
SIGCR1 レジスタの DTIF ビットに
ソフトウェアで "0" を書き込む
<注意事項>
• ノイズキャンセル時間内に SIGCR1 レジスタの NWS1, NWS0 ビットの値が変化した
場合は , さらに大きな (NWS1, NWS0) ノイズサイクル値が有効になります。
• SIGCR1 レジスタの DTIF : bit6 は , ソフトウェアでのみクリアすることができます。
307
第 12 章 多機能タイマ
A/D 起動コンペアの動作
12.6.5
16 ビットフリーランタイマ 0 の値が指示値となったときに , A/D 起動を行うことが
できます。
■ A/D 起動
2 ユニットある A/D コンバータ起動ができます。
• A/D 起動コンペア 1 → A/D ユニット 1 起動
• A/D 起動コンペア 2 → A/D ユニット 2 起動
■ A/D コンペア起動許可
コンペアレジスタに値をセットし , 制御レジスタ (ADCOMPC1) の CE1, CE2:bit1, bit2
に "1" をセットした場合 , フリーランタイマ 0 とコンペアレジスタ値が一致したときに ,
A/D に対して起動信号を発生します。
CE1, CE2 を "0" にセットすると , フリーランタイマ 0 とコンペアレジスタ値が一致し
ても , A/D に対して起動信号は発生しません。
コンペアレジスタは , 起動許可中に書き込んだ場合 , すぐに , 書き込んだ値と一致比較
を行います。
フリーランタイマ 1, 2 との一致起動はできません。
■ A/D コンペア起動モード
ADCOMPC2 レジスタの SELn1, SELn0(n=1, 2) ビットにより , A/D 起動モードを設定で
きます。
● SELn1, SELn0=0, 0 : コンペア一致時起動
フリーランタイマ
カウント値
コンペア値
時間
A/D 起動 A/D 起動
A/D 起動
A/D 起動
● SELn1, SELn0=0, 1 : アップカウント時のみコンペア一致時起動
フリーランタイマ
カウント値
コンペア値
時間
A/D 起動
308
A/D 起動
第 12 章 多機能タイマ
● SELn1, SELn0=1, 0 : ダウンカウント時のみコンペア一致時起動
フリーランタイマ
カウント値
コンペア値
時間
A/D 起動
A/D 起動
● SELn1, SELn0=1, 1 : 設定禁止
309
第 12 章 多機能タイマ
12.7
多機能タイマの使用上の注意
多機能タイマの使用上の注意を以下に示します。
■ 16 ビットフリーランタイマの使用上の注意
● プログラムによる設定上の注意
• リセットを実行すると , タイマ値が "0000H" になりますが , 0 検出割込みフラグは設
定されません。
• タイマモードビット (TCCSL レジスタの MODE : bit5) は , バッファを持っているの
で , 0 検出後に変更されたタイマモードが有効になります。
• ソフトウェアクリア (TCCSL レジスタの SCLR : bit4=1) は , タイマを初期化しますが
, 0 検出割込みは発生しません。
• コンペア値とカウント値が一致しているときに , カウントを開始する場合は , コン
ペアクリアフラグは設定されません。
● 割込みの注意
• タイマ状態制御レジスタ上位 (TCCSH) の IRQZF : bit14 に "1" を設定し , 次に割込み
要求を許可すると (TCCSH レジスタの IRQZE : bit13=1) , 制御は割込み処理から戻る
ことができません。IRQZF : bit14 は , 必ずクリアしてください。
• タイマ状態制御レジスタ上位 (TCCSH) の ICLR : bit9 に "1" を設定し , 次に割込み要
求を許可すると (TCCSH レジスタの ICRE : bit8=1) , 制御は割込み処理から戻ること
ができません。ICLR : bit9 は , 必ずクリアしてください。
■ 16 ビットアウトプットコンペアの使用上の注意
● 割込みの注意
コンペア制御レジスタ下位 (OCSL0, OCSL2, OCSL4) の IOP1, IOP0:bit7, bit6 に "11B" を
設定し , 次に割込み要求を許可にすると (OCSL レジスタの IOE1, IOE0:bit6, bit5=11B) ,
制御は割込み処理から戻ることができません。IOP0, IOP1 ビットは , 必ずクリアしてく
ださい。
■ 16 ビットインプットキャプチャの使用上の注意
● 割込みの注意
• インプットキャプチャ状態制御レジスタ下位 (PICSL01, ICSL23) のICP3, ICP2, ICP1,
ICP0 (bit7, bit6) に "11B" を設定し , 次に割込み要求を許可にすると (PICSL01, ICSL23
レジスタの ICE3, ICE2, ICE1, ICE0 (bit5, bit4) =11B), 制御は割込み処理から戻るこ
とができません。ICP3, ICP2, ICP1, ICP0 (bit7, bit6) は , 必ずクリアしてください。
• インプットキャプチャ端子 (IC) レベルが , ICP3, ICP2, ICP1, ICP0 がビット設定され
てから割込みルーチンが処理されるまでの間に切り換わると , ICP3, ICP2, ICP1,
ICP0 の有効エッジ指示ビット (ICSH23 レジスタの IEI3, IEI2 : bit9, bit8, PICSH01 レ
ジスタの IEI1, IEI0 : bit9, bit8) は , 検出された最新のエッジを示します。
310
第 12 章 多機能タイマ
■ 波形ジェネレータの使用上の注意
● プログラムによる設定上の注意
• 波形ジェネレータが動作中 (DTCR0, DTCR1, DTCR2 レジスタの TMD2 ∼ TMD0,
TMD5 ∼ TMD3, TMD8 ∼ TMD6 が "001B", "010B", "100B" または "111B") に , 16 ビッ
トデッドタイマ制御レジスタ (DTCR0, DTCR1, DTCR2) の TMD8, TMD5, TMD2 ( 上
位はbit10, 下位はbit2) , TMD7, TMD4, TMD1 (上位はbit9, 下位はbit1) , TMD6, TMD3,
TMD0 ( 上位は bit8, 下位は bit0) ビット値を変更する場合は , トリガソースおよび 16
ビットデッドタイマがカウント中でないことを必ず確認してください。この操作を
行わない場合は , 以前のトリガでスケジュールされた出力が原因となり , 予期しな
い波形が RTO 端子から出力されます。ただし , RTO 出力は , タイマでアンダフロー
が発生したり , 新しいトリガソースで再トリガされたりすると , 正常動作に戻りま
す。
• トリガソースとは , DTCR0, DTCR1, DTCR2 レジスタの TMD8 ∼ TMD0 ( 上位は bit10 ∼
bit8, 下位は bit2 ∼ bit0) が "001B" の場合は "RT の "H" レベル " であり , TMD8 ∼
TMD0 ビットが "010B" の場合は "RT の立上りエッジ " であり , TMD8 ∼ TMD0 ビッ
トが "100B" の場合は , "RT の立上りまたは立下りエッジ " であり , TMD8 ∼ TMD0
ビットが "111B" の場合は "PPG0 の立上りエッジまたは立下りエッジ " です。
例えば , TMD8 ∼ TMD0 ビットが "100B" から "111B" へ変更すると , 下記の手順を
実行することができます。
1. 16 ビットデッドタイマレジスタ (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 : bit4 ∼ bit2 を変更してください。
• ノイズキャンセル機能が無効になった場合のみ , 波形制御レジスタ 1 (SIGCR1) の
NWS1, NWS0:bit1, bit0 を変更してください。
● 割込みの注意
• 16 ビットデッドタイマ制御レジスタ (DTCR0, DTCR1, DTCR2) の TMIF2 ∼ TMIF0
( 上位は bit12, 下位は bit4) に "1" を設定し , 次に割込み要求を許可にすると (DTCR0,
DTCR1, DTCR2 レジスタの TMIE2 ∼ TMIE0 ( 上位は bit11, 下位は bit3) =1) , 制御は
割込み処理から戻ることができません。TMIF ビットは , 必ずクリアしてください。
• 波形制御レジスタ 1 (SIGCR1) の DTIF : bit6 に "1" を設定すると , 制御は割込み処理
から戻ることができません。DTIF ビットは , 必ずクリアしてください。
311
第 12 章 多機能タイマ
12.8
多機能タイマのプログラム例
多機能タイマのプログラム例を示します。
■ 16 ビットフリーランタイマのプログラム例
● 処理
• 16 ビットフリーランタイマで 4 ms のときコンペアクリア割込みを発生します。
• 本タイマはアップカウントモード時にコンペアクリアタイマの再発生のために使
用します。
• 16 MHz は , マシンクロック用で , 62.5 ns はカウントクロック用です。
● コーディング例
ICR32
.EQU
000460H
;16 ビットフリーランタイマのコンペアクリア
;割込み制御レジスタ
TCCSH
.EQU
CPCLRBH .EQU
0000A8H ;タイマ制御状態レジスタ
0000A4H ;コンペアクリアバッファレジスタ
;--------------- メインプログラム -----------------------------------------------------------------------ORG
C0000H
START:
;
;スタックポインタ (SP) が既に初期化されて
:
;いるものと仮定
AND CCR
#0EFH
LDI
#ICR32,r0
;割込み禁止
LDI
#00H,r1
STB
r1,@r0
;割込みレベル 16 ( 最強 )
LDI
#CPCLRBH,r0
;16 ビットフリーランタイマのアップカウント
;モード時に 4 ms でコンペアクリア割込みを
;発生する
LDI
#0FA00H,r1
STH
r1,@r0
;ための値をコンペアクリアバッファレジスタ
;に設定
LDI
#TCCSH,r3;アップカウントダウンモード ,
LDI
#0110H,r1 ;62.5 ns カウントクロック設定 ,
STH
r1,@r3
;コンペアクリア割込み許可 ,
;コンペアクリア割込みフラグビットのクリア ,
;割込みマスクを禁止 ,
;タイマクリア , 動作許可
LOOP
312
ST ILM
#14H
;PS 中の ILM をレベル 20 に設定
OR CCR
#10H
;割込み許可
LDI
#00H,r0
;無限ループ
第 12 章 多機能タイマ
LDI
#01H,r1
BRA
LOOP
;
;--------------- 割込みプログラム -----------------------------------------------------------------------WARI
LDI
#0100H,r1
ANDH
r1,@r3
;
:
;
ユーザ処理
;
:
;割込み要求フラグをクリア
:割込みから復帰
RETI
;--------------- ベクタ設定 --------------------------------------------------------------------------------VECT
.ORG
FFFF8H
.DATA.W
WARI
.ORG
FFFF8H
.DATA.W
0x07000000;シングルチップモードの設定
.DATA.W
START
;割込みルーチンの設定
;リセットベクタの設定
.END
■ 16 ビットアウトプットコンペアのプログラム例
● 処理
• 16 ビットフリーランタイマのカウント値がアウトプットコンペア用と一致したとき
アウトプットコンペア一致を発生します。
• 16 ビットフリーランタイマがアップダウンカウントモード時に使用します。
• 16 MHz は , マシンクロック用で , 62.5 ns は 16 ビットフリーランタイマ 0 のカウン
トクロック用です。
● コーディング例
ICR44
EQU
00046CH
;アウトプットコンペア 0/1 割込みレジスタ
TCCSH
EQU
0000A8H
;タイマ制御状態レジスタ
CPCLRBH EQU
0000A4H
;コンペアクリアバッファレジスタ
OCCPBH0 EQU
000090H
;アウトプットコンペアバッファレジスタ 0
OCCPBH1 EQU
000092H
;アウトプットコンペアバッファレジスタ 1
OCSH1
00009CH
;コンペア制御レジスタ
EQU
;--------------- メインプログラム -----------------------------------------------------------------------START:
;
;スタックポインタ (SP) が既に初期化されて
:
;いるものと仮定
AND CCR #0EFH
LDI
#ICR44,r0
LDI
#00H,r1
;割込み禁止
313
第 12 章 多機能タイマ
LOOP
;割込みレベル 16 ( 最強 )
STB
r1,@r0
LDI
#CPCLRBH,r0 ;16 ビットフリーランタイマのコンペアクリア
LDI
#0FFFFH,r1
STH
r1,@r0
LDI
#OCCPBH0,r0 ;アウトプットコンペアレジスタ 0 を設定
LDI
#0BFFFH,r1
STH
r1,@r0
LDI
#OCCPBH1,r0 ;アウトプットコンペアレジスタ 1 を設定
LDI
#07FFFH,r1
STH
r1,@r0
LDI
#OCSH1,r3
;アウトプットコンペア出力を有効
LDI
#6C33H,r2
;コンペア一致割込み 0/1 を許可
STH
r2,@r3
;割込みフラグビットのクリア
LDI
#TCCSH,r0
;アップカウントダウンモード ,
LDI
#0010H,r1
;タイマクリア , 動作許可
STH
r1,@r0
ST ILM
#14H
;PS 中の ILM をレベル 20 に設定
OR CCR
#10H
;割込み許可
LDI
#00H,r0
;無限ループ
LDI
#01H,r1
BRA
LOOP
;バッファレジスタに設定
;
;--------------- 割込みプログラム -----------------------------------------------------------------------WARI:
ANDH
;
:
;
ユーザ処理
;
:
r2,@r3
;割込みレジスタフラグをクリア
:割込みから復帰
RETI
;--------------- ベクタ設定 --------------------------------------------------------------------------------VECT
.ORG
FFFF8H
.DATA.W WARI
.ORG
FFFF8H
.DATA.W 0x07000000
;シングルチップモードの設定
.DATA.W START
;リセットベクタの設定
.END
314
;割込みルーチンの設定
第 13 章
U-TIMER
(UART ボーレート発生用
16 ビットタイマ )
U-TIMER の概要 , レジスタの構成 / 機能および動
作について説明します。
13.1 概要
13.2 動作説明
315
第 13 章 U-TIMER (UART ボーレート発生用 16 ビットタイマ )
13.1
概要
U-TIMER は , UART のボーレートを発生するための 16 ビットタイマです。チップの
動作周波数と , U-TIMER のリロード値の組合せで任意のボーレートを設定できます。
また , カウントアンダフローで割込みを発生するので , インターバルタイマとしても
使用可能です。
MB91265A シリーズは , 本タイマを 2 チャネル内蔵しています。インターバルタイ
マとして使用する場合 2 組の U-TIMER をカスケードして使用でき , 最大 232 × φ の
インターバルをカウントできます。
■ レジスタ一覧
bit15
bit8 bit7
bit0
UTIM0, UTIM1
(R)
UTIMR0, UTIMR1
(W)
UTIMC0, UTIMC1
(R/W)
■ ブロックダイヤグラム
bit15
bit0
UTIMR0, UTIMR1 (リロードレジスタ)
ロード
bit15
bit0
UTIM0, UTIM1 (タイマ)
クロック
アンダフロー
(周辺系クロック)
制御
MUX
ch.0
f.f.
アンダフロー U-TIMER 1
316
UART
第 13 章 U-TIMER (UART ボーレート発生用 16 ビットタイマ )
■ レジスタ説明
● U-TIMER (UTIM: UTIM0, UTIM1)
UTIM ( 上位 )
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ch.0 :000064H
ch.1 :00006CH
b15
b14
b13
b12
b11
b10
b9
b8
R
R
R
R
R
R
R
R
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ch.0 :000064H
ch.1 :00006CH
b7
b6
b5
b4
b3
b2
b1
b0
R
R
R
R
R
R
R
R
初期値
00000000B
UTIM ( 下位 )
初期値
00000000B
: リードオンリ
R
UTIM は , タイマの値を示します。16 ビット転送命令でアクセスしてください。
● Reload register (UTIMR: UTIMR0, UTIMR1)
UTIMR ( 上位 )
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ch.0 :000064H
ch.1 :00006CH
b15
W
b14
W
b13
W
b12
W
b11
W
b10
W
b9
W
b8
W
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ch.0 :000064H
ch.1 :00006CH
b7
W
b6
W
b5
W
b4
W
b3
W
b2
W
b1
W
b0
W
初期値
00000000B
UTIMR ( 下位 )
W
初期値
00000000B
: ライトオンリ
UTIMR は , UTIM がアンダフローしたときに UTIM にリロードされる値を格納するレ
ジスタです。
このレジスタは必ず 16 ビット転送命令でアクセスしてください。
● U-TIMer Control register (UTIMC: UTIMC0, UTIMC1)
UTIMC
bit7
アドレス
ch.0 :000067H
ch.1 :00006FH
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
0--00000B
UCC1
−
−
UTIE
UNDR
CLKS
UTST
UTCR
R/W
−
−
R/W
R/W
R/W
R/W
R/W
R/W : リード / ライト可能
−
: 未定義
UTIMC は , U-TIMER の動作を制御します。
このレジスタは , 必ずバイト転送命令でアクセスしてください。
317
第 13 章 U-TIMER (UART ボーレート発生用 16 ビットタイマ )
[bit7] UCC1 (U-timer Count Control 1)
UCC1 ビットは , U-TIMER のカウント方法を制御します。
UCC1
動作
0
通常動作
1
+ 1 モード α = 2n + 3
α = 2n + 2 [ 初期値 ]
n : UTIMR の設定値
α : UART に対する出力クロックの周期
U-TIMER は , UART に対して通常の 2(n + 1) の周期のクロックのほかに奇数分周を
設定できます。
UCC1 を "1" に設定すると 2n + 3 の周期を発生します。
設定例 : 1.UTIMR=5, UCC1=0
:発生周期 = 2n + 2 = 12 サイクル
2.UTIMR=25, UCC1=1 :発生周期 = 2n + 3 = 53 サイクル
3.UTIMR=60, UCC1=0 :発生周期 = 2n + 2 = 122 サイクル
U-TIMER をインターバルタイマとして使用する場合は , UCC1 の値を "0" に設定し
てください。
[bit6, bit5] − : 未定義ビット
[bit4] UTIE (U-Timer Interrupt Enable)
UTIE は , U-TIMER のアンダフローによる割込み許可ビットです。
0 : 割込み禁止 [ 初期値 ]
1 : 許可
[bit3] UNDR (UNDeR flow flag)
UNDR は , アンダフローが発生したことを示すフラグです。UTIE が "1" で UNDR
がセットされるとアンダフロー割込みが発生します。
UNDR はリセット , または "0"
書込みによりクリアされます。
リードモディファイライト(RMW)系命令の読出し時は, 常に"1"が読み出されます。
また , UNDR に対する "1" 書込みは無効です。
[bit2] CLKS (CLocK Select)
CLKS は , U-TIMER の ch.0 と ch.1 のカスケード指定ビットです。
0: クロックソースは , 周辺系クロック (φ) [ 初期値 ]
1: U-TIMER ソースクロックタイミングとして , ch.0 のアンダフロー信号を使用
( ブロックダイヤグラムの f.f)
CLKS は ch.1 でのみ有効 , ch.0 では常に "0" にしてください。
( 注意事項 ) φ ( 周辺系クロック= CLKP) は , ギアの設定により周期が変わります。
[bit1] UTST (U-Timer STart)
U-TIMER の動作許可ビットです。
0: 停止。動作中でも "0" 書込みで停止します [ 初期値 ]。
1: 動作。動作中に "1" を書き込んでも動作は続行されます。
318
第 13 章 U-TIMER (UART ボーレート発生用 16 ビットタイマ )
[bit0] UTCR (U-Timer CleaR)
UTCR に "0" を書き込むと U-TIMER は "0000H" にクリアされます (f.f. も "0" にクリ
ア)。
常に "1" が読み出されます。
<注意事項>
• ストップ状態からスタートビット UTST をアサート ( スタート ) すると自動的にリロー
ドします。
• ストップ状態からクリアビット UTCR とスタートビット UTST を同時にアサートする
と , カウンタを "0" クリアして , 直後のカウントダウンでアンダフローが発生します。
• 動作中にクリアビット UTCR をアサートすると , カウンタも "0" クリアされます。この
ため , 出力波形にヒゲ状の短いパルスが出力される場合があり , UART やカスケードモー
ドの上位側の U-TIMER が誤動作する可能性があります。出力クロックを使用している
場合には , 動作中にクリアビットによるクリアを行わないでください。
• カスケードモードで , 下位側の UTIMR( リロードレジスタ ) に "0" または "1" をセット
すると正しくカウントされません。
• U-TIMER コントロールレジスタの bit1 (U-TIMER スタートビット:UTST) および , bit0
(U-TIMER のクリアビット:UTCR) をタイマ停止状態で同時にアサートすると , クリ
アした後のカウンタロードのタイミングで同レジスタの bit3 ( アンダフローフラグ:
UNDR) がセットします。また , 内部ボーレートクロックは同タイミングで "H" レベル
になります。
• 割込み要求セットタイミングとクリアタイミングが重複した場合には , フラグセットが
優先され , クリア動作は , 無効となります。
• ch.0 をカスケードモードで使用しない場合や本モジュールを単にタイマ機能として使
用する場合は, U-TIMERコントロールレジスタのbit2 (基準クロック選択ビット:CLKS)
には常に "0" を書き込んでください。また , "CLKS" の設定変更は , 本モジュールが動
作停止の状態で行ってください。
• U-TIMER リロードレジスタへの書込みとリロードのタイミングが重複した場合には ,
旧データがカウンタにロードされ , 新データがカウンタにロードされるのは , 次のリ
ロードのタイミングとなります。
• タイマクリアとタイマカウント / リロードのタイミングが重複した場合には , タイマク
リアが最優先されます。
• クロック同期モードを使用する場合 , UTIMR のリロード値は "3" 以上に設定してくだ
さい。
319
第 13 章 U-TIMER (UART ボーレート発生用 16 ビットタイマ )
動作説明
13.2
UART のボーレートの計算とカスケードモードについて説明します。
■ ボーレートの計算
UART は , 対応する U-TIMER (U-TIMER0 → UART0, U-TIMER1 → UART1) のアンダフ
ローフリップフロップ ( 図中 f.f.) をボーレート用クロックソースとして使用します。
● 非同期 ( 調歩同期 ) モード
UART は , U-TIMER の出力を 16 分周して使用します。
bps =
bps =
φ
n … UTIMR ( リロード値 )
φ … 周辺系マシンクロック周波数
( ギアにより変動 )
UCC1=0 時
(2n + 2) × 16
φ
UCC1=1 時
(2n + 3) × 16
最大 bps : クロック 33 MHz 時 1031250bps
● クロック同期モード
φ
bps =
φ
bps =
n … UTIMR ( リロード値 )
(注意事項) nは"3"以上としてください
φ … 周辺系マシンクロック周波数
( ギアにより変動 )
UCC1=0 時
(2n + 2)
UCC1=1 時
(2n + 3)
最大 bps : クロック 33 MHz 時 4125000 bps
■ カスケードモード
U-TIMER ch.0, ch.1 はカスケードモードで使用できます。
例 ) UTIMR ch.0 を "0003H" に , UTIMR ch.1 を "0100H" に設定した場合 :
φ
UTIM ch.0
00
03
02
01
00
03
02
01
00
03
02
01
00
03
02
01
00
03
02
01
f.f. ch.0
UTIM ch.1
f.f. ch.1
320
0002H
0001H
0000H
0100H
第 14 章
UART
UART の概要 , レジスタの構成 / 機能および動作に
ついて説明します。
14.1 概要
14.2 レジスタ詳細説明
14.3 UART の動作
14.4 応用例
14.5 ボーレートと U-TIMER のリロード値の設定例
321
第 14 章 UART
14.1
概要
UART は , 非同期 ( 調歩同期 ) 通信 , またはクロック同期通信を行うためのシリアル
I/O ポートです。MB91265A シリーズは , UART を 2 チャネル内蔵します。
■ UART の特長
• 全二重ダブルバッファ
• 非同期 ( 調歩同期 ) , クロック同期通信が可能
• マルチプロセッサモードのサポート
• 完全プログラマブルボーレート
内蔵タイマにより任意のボーレートを設定可能 (「第 13 章 U-TIMER (UART ボー
レート発生用 16 ビットタイマ )」を参照 )
• 外部クロックによる自由なボーレートの設定が可能
• エラー検出機能 ( パリティ , フレーミング , オーバラン )
• 転送信号は NRZ 符号
• 割込みによる DMA 転送の起動が可能
322
第 14 章 UART
■ レジスタ一覧
図 14.1-1 UART のレジスタ一覧
bit15
bit8 bit7
bit0
SCR
SMR
SSR
SIDR(R)/SODR(W)
8 ビット
8 ビット
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
D7
D6
D5
D4
D3
D2
D1
D0
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PE
ORE
FRE
BDS
RIE
TIE
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
MD1
MD0
−
−
CS0
−
SCKE
−
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PEN
P
SBL
CL
A/D
REC
RXE
TXE
RDRF TDRE
(R/W, W)
(R/W, R, W)
シリアルインプットデータレジスタ
シリアルアウトプットデータレジスタ
(SIDR/SODR)
シリアルステータスレジスタ
(SSR)
シリアルモードレジスタ
(SMR)
シリアルコントロールレジスタ
(SCR)
323
第 14 章 UART
■ ブロックダイヤグラム
図 14.1-2 UART のブロックダイヤグラム
制御信号
受信割込み
(CPU へ )
外部クロック
SCK ( クロックへ )
送信クロック
U-TIMER より
クロック
選択回路
受信クロック
送信割込み
(CPU へ )
SCK
SIN ( 受信データ )
受信制御回路
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
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
制御信号
324
第 14 章 UART
14.2
レジスタ詳細説明
UART で使用するレジスタの詳細について説明します。
■ シリアルモードレジスタ (SMR: SMR0, SMR1)
SMR
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ch.0 :000063H
ch.1 :00006BH
MD1
R/W
MD0
R/W
−
R/W
−
R/W
CS0
W
−
R/W
SCKE
R/W
−
初期値
00--0-0-B
R/W : リード / ライト可能
W
: ライトオンリ
−
: 予約
SMR は , UART の動作モードを指定します。動作モードの設定は動作停止中に行い , 動
作中にこのレジスタへの書込みは行わないでください。
[bit7, bit6] MD1, MD0 : (MoDe select)
UART の動作モードを選択します。
表 14.2-1 動作モード選択
モード
MD1
MD0
0
0
0
非同期 ( 調歩同期 ) : ノーマルモード
1
0
1
非同期 ( 調歩同期 ) : マルチプロセッサモード
2
1
0
クロック同期モード
−
1
1
設定禁止
動作モード
[ 初期値 ]
<注意事項>
モード 1 のクロック非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU に数台の
スレーブ CPU が接続される使用法です。本リソースでは , 受信データのデータ形式を判
別できません。したがって , マルチプロセッサモード のマスタのみをサポートします。
また , パリティチェック機能は使用できませんので SCR レジスタの PEN は "0" に設定し
てください。
[bit5, bit4] − : 予約ビット
常に "1" を書き込んでください。
[bit3] CS0(Clock Select)
UART の動作クロックを選択します。
0 : 内蔵タイマ (U-TIMER) [ 初期値 ]
1 : 外部クロック
325
第 14 章 UART
[bit2] − : 予約ビット
常に "0" を書き込んでください。
[bit1] SCKE : (SCLK Enable)
クロック同期モード ( モード 2) で通信を行う場合 , SCK 端子をクロック入力端子に
するか , クロック出力端子として使うかを指定します。
クロック非同期モード時または外部クロックモード時では"0"に設定してください。
0 : クロック入力端子として機能します [ 初期値 ] 。
1 : クロック出力端子として機能します。
<注意事項>
クロック入力端子として使用するには , CS0 ビットを "1" にして外部クロックを選択して
おく必要があります。
[bit0] − : 未定義ビット
未使用ビットです。
326
第 14 章 UART
■ シリアルコントロールレジスタ (SCR: SCR0, SCR1)
SCR
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ch.0 :000062H
ch.1 :00006AH
PEN
R/W
P
R/W
SBL
R/W
CL
R/W
A/D
R/W
REC
W
RXE
R/W
TXE
R/W
初期値
00000100B
R/W : リード / ライト可能
W
: ライトオンリ
SCR はシリアル通信を行う場合の転送プロトコルを制御します。
[bit7] PEN (Parity Enable)
シリアル通信において , パリティを付加してデータ通信を行うかどうかを指定しま
す。
0
パリティなし [ 初期値 ]
1
パリティあり
<注意事項>
パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード ( モード 0)
のみです。マルチプロセッサモード ( モード 1) およびクロック同期通信 ( モード 2) では ,
パリティを付加することはできません。
[bit6] P (Parity)
パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指定します。
0
偶数パリティ [ 初期値 ]
1
奇数パリティ
[bit5] SBL (Stop Bit Length)
非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークである , ストップビッ
トのビット長を指定します。
0
1 ストップビット [ 初期値 ]
1
2 ストップビット
[bit4] CL (Character Length)
送受信する 1 フレームのデータ長を指定します。
0
7 ビットデータ [ 初期値 ]
1
8 ビットデータ
327
第 14 章 UART
<注意事項>
7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) 通信のうちのノーマルモード ( モード
0) のみです。マルチプロセッサモード ( モード 1) およびクロック 同期通信 ( モード 2) で
は , 8 ビットデータとしてください。
[bit3] A/D (Address/Data)
非同期 ( 調歩同期 ) 通信のマルチプロセッサモード ( モード 1) において , 送受信す
るフレームのデータ形式を指定します。
0
データフレーム [ 初期値 ]
1
アドレスフレーム
[bit2] REC (Receiver Error Clear)
0
"0" を書き込むことで , SSR レジスタのエラーフラグ (PE, ORE, FRE)
をクリアします。
1
"1" 書込みは無効であり , 読出し値は常に "1" になります。
[bit1] RXE (Receiver Enable)
UART の受信動作を制御します。
0
受信動作を禁止します [ 初期値 ]
1
受信動作を許可します
<注意事項>
受信中 ( 受信シフトレジスタにデータが入力されているとき ) に受信動作を禁止した場合
には , そのフレームの受信を完了し受信データバッファ SIDR レジスタに受信データをス
トアしたところで受信動作を停止します。
[bit0] TXE : (Transmitter Enable)
UART の送信動作を制御します。
0
送信動作を禁止します [ 初期値 ]
1
送信動作を許可します
<注意事項>
送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は ,
送信データバッファ SODR レジスタにデータがなくなった後に送信動作を停止します。
328
第 14 章 UART
■ シリアルインプットデータレジスタ (SIDR: SIDR0, SIDR1) /
シリアルアウトプットデータレジスタ (SODR: SODR0, SODR1)
SIDR
アドレス
ch.0 :000061H
ch.1 :000069H
bit7
D7
R
bit6
D6
R
bit5
D5
R
bit4
D4
R
bit3
D3
R
bit2
D2
R
bit1
D1
R
bit0
D0
R
初期値
XXXXXXXXB
bit7
D7
W
bit6
D6
W
bit5
D5
W
bit4
D4
W
bit3
D3
W
bit2
D2
W
bit1
D1
W
bit0
D0
W
初期値
XXXXXXXXB
SODR
アドレス
ch.0 :000061H
ch.1 :000069H
R : リードオンリ
W : ライトオンリ
X : 不定
本レジスタは , 受信 / 送信用のデータバッファレジスタです。
データ長が 7 ビットの場合 SIDR, SODR の bit7 (D7) は無効データとなります。BDS=1
のときは , SIDR と SODR のアクセス時に , バス上のデータの上位側と下位側を入れ替
えるため , 見かけ上 bit0 (D0) が無視されたように見えます。
SODR レジスタへの書込みは , SSR レジスタの TDRE が "1" のときに書き込んでくださ
い。
<注意事項>
このアドレスへの書込みは SODR レジスタへの書込みを , 読出しは SIDR レジスタの読
出しを意味します。
329
第 14 章 UART
■ シリアルステータスレジスタ (SSR: SSR0, SSR1)
SSR
アドレス
bit7
bit6
bit5
ch.0 :000060H
ch.1 :000068H
PE
R
ORE
R
FRE
R
bit4
bit3
RDRF TDRE
R
R
bit2
bit1
bit0
BDS
R/W
RIE
R/W
TIE
R/W
初期値
00001000B
R/W : リード / ライト可能
R
: リードオンリ
SSR は UART の動作状態を表すフラグで構成されています。
[bit7] PE (Parity Error)
受信時にパリティエラーが発生したときにセットされる割込み要求フラグです。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビット (bit10) に
"0" を書き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0
パリティなし [ 初期値 ]
1
パリティあり
[bit6] ORE (Over Run Error)
受信時にオーバランエラーが発生したときにセットされる割込み要求フラグです。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0
オーバランエラーなし [ 初期値 ]
1
オーバランエラーあり
[bit5] FRE (FRaming Error)
受信時にフレーミングエラーが発生したときにセットされる割込み要求フラグで
す。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0
フレーミングエラーなし [ 初期値 ]
1
フレーミングエラーあり
<注意事項>
• シリアルモードレジスタの bit3 による内部 / 外部ボーレートクロックの切換えは書込み
後 , すぐに反映されるので , UART が動作停止状態のときに行ってください。
• シリアルモードレジスタの bit3 は書込みのみ可能です。
330
第 14 章 UART
[bit4] RDRF (Receiver Data Register Full)
SIDR レジスタに受信データがあることを示す割込み要求フラグです。
SIDR レジスタに受信データがロードされるとセットされ , SIDR レジスタを読み出
すと自動的にクリアされます。
0
受信データなし [ 初期値 ]
1
受信データあり
[bit3] TDRE (Transmitter Data Register Empty)
SODR に送信データを書き込めることを示す割込み要求フラグです。
SODR レジスタに送信データを書き込むとクリアされます。書き込んだデータが送
信用シフタにロードされて , 転送が開始されると再びセットされ , 次の送信データ
を書き込めることを表します。
0
送信データの書込み禁止
1
送信データの書込み許可 [ 初期値 ]
[bit2] BDS(Bit Direction Select)
転送方向選択ビットです。
0
最下位ビット (LSB) 側から転送します [ 初期値 ]
1
最上位ビット (MSB) 側から転送します
<注意事項>
シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側を入れ替えるた
め , SODR レジスタへデータを書き込んだ後 , このビットを書き換えると , そのデータは
無効になります。
ハーフワード (16 ビット ) にて , SODR レジスタと BDS を同時に書き換えた場合は , 書込
み前の BDS の値に従い , SODR レジスタへの書込みが行われます。
[bit1] RIE (Receiver Interrupt Enable)
受信割込みを制御します。
0
割込みを禁止します [ 初期値 ]
1
割込みを許可します
<注意事項>
受信割込み要因は , PE, ORE, FRE によるエラー発生のほか , RDRF による正常受信があ
ります。
331
第 14 章 UART
[bit0] TIE (Transmitter Interrupt Enable)
送信割込みを制御します。
0
割込みを禁止します [ 初期値 ]
1
割込みを許可します
<注意事項>
送信割込み要因は , TDRE による送信要求があります。
332
第 14 章 UART
UART の動作
14.3
UART の各動作モードにおける動作について説明します。UART には , 非同期 ( 調歩
同期 ) モードとクロック同期モードがあり , さらに , 非同期モードには , ノーマル
モードとマルチプロセッサモードがあります。
■ 動作モード
UART は , 表 14.3-1 に示す動作モードを持ち , SMR レジスタ , SCR レジスタに値を設
定することによりモードを切り換えることができます。
表 14.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" に設定して外部クロックを選択した場合のボーレートは 外部クロックの周
波数を f とすると次のようになります。
非同期 ( 調歩同期 )
f/16
クロック同期
f
ただし , f は最大 3.125 MHz までです。
333
第 14 章 UART
■ 非同期 ( 調歩同期 ) モード
● 転送データフォーマット
UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。図 14.3-1 にデータ
フォーマットを示します。
図 14.3-1 転送データフォーマット ( モード 0, モード 1)
SIN,SOT
0
スタート
1
0
1
1
LSB
0
0
1
0
1
MSB
ストップ
A/D
転送されたデータは "01001101B"
1
( モード 0)
ストップ
( モード 1)
図 14.3-1 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始
まり , LSB ファーストで指定されたデータビット長の転送が行われ , ストップビット
("H" レベルデータ ) で終了します。外部クロックを選択している場合は , 常にクロック
を入力してください。
ノーマルモード ( モード 0) ではデータ長を 7 ビットまたは 8 ビットに設定できますが ,
マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。また , マルチ
プロセッサモードではパリティを付加することはできません。そのかわり , A/D ビット
が必ず付加されます。
● 受信動作
SCR レジスタの RXE ビット (bit1) が "1" ならば , 常に受信動作が行われています。
受信ラインにスタートビットが現れると , SCR レジスタで決められたデータフォー
マットに従い 1 フレームデータの受信が行われます。1 フレームの受信が終わると , エ
ラーが発生した場合には , エラーフラグのセットが行われた後 RDRF フラグ (SSR レジ
スタ bit4) がセットされます。このとき同じ SSR レジスタの RIE ビット (bit1) が "1" に
セットされていれば CPU に対して受信割込みが発生します。SSR レジスタの各フラグ
を調べ , 正常受信なら SIDR レジスタを読み出して , エラーが発生していれば必要な処
理を行うようにしてください。
RDRF フラグは , SIDR レジスタを読み出すとクリアされます。
● 送信動作
SSR レジスタの TDRE フラグ (bit3) が "1" のとき , SODR レジスタに送信データ
を書き込みます。ここで , SCR レジスタの TXE ビット (bit0) が "1" なら送信が行われ
ます。
SODR レジスタにセットしたデータが送信用シフトレジスタにロードされて送信が開
始されると TDRE フラグが再びセットされ , 次の送信データをセットできるようにな
ります。このとき , 同じ SSR レジスタの TIE ビット (bit0) が "1" にセットされていれば
CPU に対して送信割込みが発生して , SODR レジスタに送信データをセットするよう
に要求します。
TDRE フラグは , SODR レジスタにデータをセットするといったんクリアされます。
334
第 14 章 UART
■ クロック同期モード
● 転送データフォーマット
UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。図 14.3-2 に送受信
クロックとデータとの関係を示します。
図 14.3-2 転送データフォーマット ( モード 2)
SODR書込み
マークレベル
SCK
RXE,TXE
SIN,SOT
1
0
LSB
1
1
0
0
1
0
MSB
( モード 2)
転送されたデータは "01001101B"
内部クロック (U-TIMER) を選択している場合は , データを送信するとデータ受信用同
期クロックが自動的に生成されます。
また , 外部クロックを選択している場合は , 送信側 UART の送信用データバッファ
SODR レジスタにデータがあること (TDRE フラグが "0") を確かめた後 , 正確に 1 バイ
ト分のクロックを供給する必要があります。また , 送信開始前と終了後は必ずマークレ
ベルにしてください。
データ長は 8 ビットのみとなり , パリティを付加することはできません。また , スター
ト / ストップビットがないのでオーバランエラー以外のエラー検出は行われません。
● 初期化
クロック同期モードを使用する場合の各制御レジスタの設定値を示します。
① SMR レジスタ
MD1, MD0
:"10B"
CS0
:クロック入力を指定
SCKE
:内部タイマの場合 "1", 外部クロックの場合 "0"
② SCR レジスタ
PEN
:"0"
P, SBL, A/D :これらのビットは意味を持ちません
CL
:"1"
REC
:"0" ( 初期化するため )
RXE, TXE
:少なくとも , どちらか一方を "1"
③ SSR レジスタ
RIE
:割込みを使用する場合 "1", 割込みを使用しない場合 "0"
TIE
:"0"
335
第 14 章 UART
● 通信開始
SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の
送信データを SODR レジスタに書き込む必要があります。
● 通信終了
SSR レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR レジス
タの ORE ビットによって , 通信が正常に行われたかを判断してください。
■ 割込み発生およびフラグのセットタイミング
UART には , 5 つのフラグと 2 つの割込み要因を持ちます。
5 つのフラグは , PE/ORE/FRE/RDRF/TDRE です。PE はパリティエラー , ORE はオーバ
ランエラー, FRE はフレーミングエラーのことで , 受信時エラーが発生したときにセッ
トされ , SCR レジスタの REC に "0" を書き込むとクリアされます。RDRF は受信デー
タが SIDR レジスタにロードされるとセットされ , SIDR レジスタを読み出すことでク
リアされます。ただし , モード 1 ではパリティ検出機能 , モード 2 ではパリティ検出機
能とフレーミングエラー検出機能はありません。TDRE は , SODR レジスタが空になり
書込み可能な状態になるとセットされ , SODR レジスタへ書き込むとクリアされます。
2 つの割込み要因は , 受信用のものと送信用のものです。受信時は , PE/ORE/FRE/RDRF
により割込みを要求します。送信時は , TDRE により割込みを要求します。各動作モー
ドによる割込みフラグのセットタイミングを以下に示します。
● モード 0 の受信動作時
PE, ORE, FRE, RDRF は受信転送が終了し最後のストップビットを検出するときにフラ
グがセットされ , CPU への割込み要求が発生します。PE, ORE, FRE がアクティブ時は ,
SIDR のデータは無効データとなります。
図 14.3-3 ORE, FRE, RDRF のセットタイミング ( モード 0)
データ
PE,ORE,FRE
RDRF
受信割込み
336
D6
D7
ストップ
第 14 章 UART
● モード 1 の受信動作時
ORE, FRE, RDRF は受信転送が終了し , 最後のストップビットを検出するときにフラグ
がセットされ , CPU への割込み要求が発生します。また , 受信可能なデータ長は 8 ビッ
トのため , 最後の 9 ビット目のアドレス / データを示すデータは無効データとなりま
す。ORE, FRE がアクティブ時は , SIDR のデータは無効データとなります。
図 14.3-4 ORE, FRE, RDRF のセットタイミング ( モード 1)
データ
D7
アドレス / データ
ストップ
ORE,FRE
RDRF
受信割込み
● モード 2 の受信動作時
ORE, RDRF は受信転送が終了し , 最後のデータ (D7) を検出するときにフラグがセット
され , CPU への割込み要求が発生します。ORE がアクティブ時は , SIDR のデータは無
効データとなります。
図 14.3-5 ORE, RDRF のセットタイミング ( モード 2)
データ
D5
D6
D7
ORE
RDRF
受信割込み
337
第 14 章 UART
● モード 0, モード 1, モード 2 の送信動作時
TDRE は SODR レジスタへ書き込まれるとクリアされ , 内部のシフトレジスタに転送
され , 次のデータ書込みが可能な状態になるとセットされ , CPU への割込み要求が発生
します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 のときは RXE も含む ) を
書き込むと , SSR レジスタの TDRE が "1" となり , 送信用のシフタが停止した後 UART
の送信動作を禁止します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 のとき
は RXE も含む ) を書き込んだ後 , 送信が停止する前に SODR レジスタへ書き込まれた
データは送信されます。
図 14.3-6 TDRE のセットタイミング ( モード 0, モード 1)
SODR 書込み
TDRE
CPU へ割込みを要求する
SOT 割込み
SOT 出力
ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP ST D0 D1 D2 D3
A/D
ST:スタートビット D0 ∼ D7:データビット
SP:ストップビット A/D :アドレス / データマルチプレクサ
図 14.3-7 TDRE のセットタイミング ( モード 2)
SODR 書込み
TDRE
CPU へ割込みを要求する
SOT 割込み
SOT 出力
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7
■ 使用上の注意
SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の
送信データを SODR レジスタに書き込む必要があります。
通信モードの設定は , 動作停止中に行ってください。モード設定時の送受信したデータ
は保証されません。
338
第 14 章 UART
14.4
応用例
UART の応用例を示します。UART のモード 1 における応用例について説明します。
■ 応用例
モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU が接続されるような場合に使用
されます ( 図 14.4-1 を参照 ) 。このリソースでは , ホスト側の通信インタフェースのみ
サポートします。
図 14.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"のときのデータです。図 14.4-2 にそのフローチャートを示します。
このモードにおいては , パリティチェック機能は使用できませんので SCR レジスタの
PEN ビットは "0" としてください。
339
第 14 章 UART
図 14.4-2 モード 1 使用時の通信フローチャート
( ホスト CPU)
START
転送モードを "1" とする
D0 ∼ D7 にスレーブ CPU を
選択するデータ ,
A/D に "1" をセットし
1 バイト転送
A/D に "0" をセット
受信動作許可
スレーブ CPU と通信
NO
通信終了 ?
YES
ほかの
スレーブ CPU と
通信
NO
YES
受信動作禁止
END
340
第 14 章 UART
ボーレートと U-TIMER のリロード値の設定例
14.5
ボーレートと U-TIMER のリロード値の設定例を示します。
表中の周波数は , 周辺系マシンクロック周波数を表します。また , UCC1 は , U-TIMER
の UTIMC レジスタ UCC1 ビットに設定する値です。
表中の " − " 部は , 誤差が± 1 % を超えてしまうため使用できないことを示します。
表 14.5-1 非同期 ( 調歩同期 ) モード
ボーレート
µs
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)
33 MHz
20 MHz
16.5 MHz
──
10 MHz
4(UCC1=0)
表 14.5-2 クロック同期モード
ボーレート
µs
33 MHz
20 MHz
16.5 MHz
10 MHz
250K
4.00
65(UCC1=0)
39(UCC1=0)
32(UCC1=0)
19(UCC1=0)
500K
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 % 以上の誤差あり
341
第 14 章 UART
342
第 15 章
C-CAN
C-CAN の機能と動作について説明します。
15.1 C-CAN の特長
15.2 C-CAN のブロックダイヤグラム
15.3 C-CAN のレジスタ
15.4 C-CAN レジスタ機能
15.5 C-CAN 機能
343
第 15 章 C-CAN
15.1
C-CAN の特長
C-CAN は , シリアル通信用の標準プロトコルである CAN プロトコル ver2.0A/B に
準拠しており , 自動車や FA などの工業分野に広く使用されています。
■ C-CAN の特長
C-CAN には以下の特長があります。
• CAN プロトコル ver2.0A/B をサポート
• 1Mbps までのビットレートをサポート
• メッセージオブジェクトごとの識別マスク
• プログラマブル FIFO モードをサポート
• マスク可能な割込み
• 自己テスト動作用プログラマブルループバックモードをサポート
• インタフェースレジスタを使用してメッセージバッファへの読出し / 書込み
344
第 15 章 C-CAN
15.2
C-CAN のブロックダイヤグラム
図 15.2-1 に , C-CAN のブロックダイヤグラムを示します。
図 15.2-1 C-CAN ブロックダイヤグラム
CAN_TX CAN_RX
CANコントローラ
メッセージ RAM
メッセージ ハンドラ
C-CAN
レジスタ群
割込み
出力データ
入力データ
アドレス[7:0]
制御
リセット
クロック
CPUインタフェース
■ CAN コントローラ
CAN プロトコルと送受信メッセージ転送のためのシリアル/パラレル変換用のシリア
ルレジスタを制御します。
■ メッセージ RAM
メッセージオブジェクトを格納します。
■ レジスタ群
C-CAN で使用されるすべてのレジスタです。
■ メッセージハンドラ
メッセージ RAM と CAN コントローラを制御します。
■ CPU インタフェース
FR 内部バスのインタフェースを制御します。
345
第 15 章 C-CAN
15.3
C-CAN のレジスタ
C-CAN には , 以下のレジスタがあります。
• CAN 制御レジスタ (CTRLR)
• CAN ステータスレジスタ (STATR)
• CAN エラーカウンタ (ERRCNT)
• CAN ビットタイミングレジスタ (BTR)
• CAN 割込みレジスタ (INTR)
• CAN テストレジスタ (TESTR)
• CAN プリスケーラ拡張レジスタ (BRPER)
• IFx コマンド要求レジスタ (IFxCREQ)
• IFx コマンドマスクレジスタ (IFxCMSK)
• IFx マスクレジスタ 1, 2(IFxMSK1, IFxMSK2)
• IFx アービトレーション 1, 2(IFxARB1, IFxARB2)
• IFx メッセージ制御レジスタ (IFxMCTR)
• IFx データレジスタ A1, A2, B1, B2(IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2)
• CAN 送信要求レジスタ 1, 2(TREQR1, TREQR2)
• CAN New Data レジスタ 1, 2(NEWDT1, NEWDT2)
• CAN 割込みペンディングレジスタ 1, 2(INTPND1, INTPND2)
• CAN メッセージ有効レジスタ 1, 2(MSGVAL1, MSGVAL2)
• CAN クロックプリスケーラレジスタ (CANPRE)
346
第 15 章 C-CAN
■ 全体コントロールレジスタ一覧
表 15.3-1 全体コントロールレジスタ一覧
アドレス
レジスタ
+0
+1
CAN 制御レジスタ
(CTRLR)
bit[15:8]
予約ビット
「15.4.1.1 CAN 制
御レジスタ
(CTRLR)」参照
予約ビット
Reset: 00H
Reset: 01H
Reset: 00H
CAN ビットタイミングレジスタ
(BTR)
bit[7:0]
bit[15:8]
bit[7:0]
RP, REC[6:0]
TEC[7:0]
TSeg2[2:0],
TSeg1[3:0]
SJW[1:0],
BRP[5:0]
Reset: 00H
Reset: 00H
Reset: 23H
Reset: 01H
CAN テストレジスタ
(TESTR)
bit[15:8]
bit[7:0]
bit[15:8]
IntId[15:8]
IntId[7:0]
予約ビット
Reset: 00H
Reset: 00H
Reset: 00H
CAN プリスケーラ拡張レジスタ
(BRPER)
Base-addr + 0CH
STAR:
BOff,
EWarn,EPass=
bit[7:0]
読出しのみ
「15.4.1.2 CAN ス RxOk,TxOk,LEC=
テータスレジス 読出し / 書込み
タ (STATR)」
参照
Reset: 00H
bit[15:8]
CAN 割込みレジスタ
(INTR)
備考
CAN ステータスレジスタ
(STATR)
bit[7:0]
CAN エラーカウンタ
(ERRCNT)
Base-addr + 08H
+3
bit[15:8]
Base-addr + 00H
Base-addr + 04H
+2
ERRCNT: 読出し
のみ
BTR:
Init(CTLR)=CCE
(CTRLR)=1 時書
込み可能
INTR: 読出しの
み
bit[7:0]
TESTR:
「15.4.1.6 CAN テ Test(CTRLR)=1
ストレジスタ
時 , 書込み可能 .
(TESTR)」参照 "Rx" は CAN_RX
Reset: 00H &
端子のレベル値
0br0000000
を示す
予約ビット
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
予約ビット
Reset: 00H
BRP[3:0]
-
-
Reset: 00H
Reset: 00H
Reset: 00H
BRP:
CCE(CTLR)=1 時
書込み可能
347
第 15 章 C-CAN
■ メッセージインタフェースレジスタ一覧
表 15.3-2 メッセージインタフェースレジスタ一覧 (1 / 3)
アドレス
レジスタ
+0
+1
IF 1 コマンド要求レジスタ
(IF1CREQ)
bit[15:8]
bit[7:0]
+2
+3
IF1 コマンドマスクレジスタ
(IF1CMSK)
bit[15:8]
Base-addr + 10
Busy
Mess. No. [5:0]
予約ビット
Reset: 00H
Reset: 01H
Reset: 00H
IF1 マスクレジスタ 2
(IF1CMSK2)
Base-addr + 14H
Base-addr + 18H
IF1 マスクレジスタ 1
(IF1CMSK1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
Msk[23:16]
Msk[15:8]
Msk[7:0]
Reset: FFH
Reset: FFH
Reset: FFH
Reset: FFH
IF1 アービトレーションレジスタ 1
(IF1ARB1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
MsgVal, Xtd,
Dir,ID[28:24]
ID[23:16]
ID[15:8]
ID[7:0]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
IF1 メッセージコントロールレジスタ
(IF1MCTR)
bit[15:8]
bit[7:0]
Base-addr + 1CH 「15.4.2.5 IFx メッ 「15.4.2.5 IFx メッ
セージ制御レジ セージ制御レジ
スタ (IFxMCTR)」 スタ (IFxMCTR)」
参照
参照
Reset: 00H
Reset: 00H
IF1 データ A レジスタ 1
(IF1DTA1)
Base-addr + 20H
348
bit[15:8]
bit[7:0]
-
-
Reset: 00H
Reset: 00H
IF1 データ A レジスタ 2
(IF1DTA2)
bit[7:0]
bit[15:8]
bit[7:0]
bit[15:8]
Data[1]
Data[2]
Data[3]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
bit[7:0]
bit[15:8]
IF1 データ B レジスタ 2
(IF1DTB2)
bit[7:0]
bit[15:8]
Data[4]
Data[5]
Data[6]
Data[7]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
IF1 データ A レジスタ 2
(IF1DTA2)
Base-addr + 30H
予約ビット
Data[0]
IF1 データ B レジスタ 1
(IF1DTB1)
Base-addr + 24H
bit[7:0]
「15.4.2.2 IFx コマ
ンドマスクレジ
スタ (IFxCMSK)」
参照
Reset: 00H
MXtd. MDir,
Msk[28:24]
IF1 アービトレーションレジスタ 2
(IF1ARB2)
備考
IF1 データ A レジスタ 1
(IF1DTA1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
Data[3]
Data[2]
Data[1]
Data[0]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
バイト配列順序 :
ビッグエンディ
アン
バイト配列順序 :
ビッグエンディ
アン
バイト配列順序 :
リトルエンディ
アン
第 15 章 C-CAN
表 15.3-2 メッセージインタフェースレジスタ一覧 (2 / 3)
アドレス
レジスタ
+0
+1
IF1 データ B レジスタ 2
(IF1DTB2)
Base-addr + 34H
bit[15:8]
bit[7:0]
+2
+3
IF1 データ B レジスタ 1
(IF1DTB1)
bit[15:8]
Data[7]
Data[6]
Data[5]
Data[4]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
IF2 コマンド要求レジスタ
(IF2CREQ)
bit[15:8]
bit[7:0]
bit[15:8]
Busy
Mess. No. [5:0]
予約ビット
Reset: 00H
Reset: 01H
Reset: 00H
IF2 マスクレジスタ 2
(IF2CMSK2)
Base-addr + 48H
IF2 マスクレジスタ 1
(IF2CMSK1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
Msk[23:16]
Msk[15:8]
Msk[7:0]
Reset: FFH
Reset: FFH
Reset: FFH
Reset: FFH
IF2 アービトレーションレジスタ 1
(IF2ARB1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
MsgVal, Xtd,
Dir,ID[28:24]
ID[23:16]
ID[15:8]
ID[7:0]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
IF2 メッセージコントロールレジスタ
(IF2MCTR)
bit[15:8]
bit[7:0]
Base-addr + 4CH 「15.4.2.5 IFx メッ 「15.4.2.5 IFx メッ
セージ制御レジ セージ制御レジ
スタ (IFxMCTR)」 スタ (IFxMCTR)」
参照
参照
Reset: 00H
Reset: 00H
IF2 データ A レジスタ 1
(IF2DTA1)
Base-addr + 50
bit[7:0]
bit[15:8]
予約ビット
bit[7:0]
bit[15:8]
-
-
Reset: 00H
Reset: 00H
IF2 データ A レジスタ 2
(IF2DTA2)
bit[7:0]
bit[15:8]
Data[0]
Data[1]
Data[2]
Data[3]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
IF2 データ B レジスタ 1
(IF2DTB1)
Base-addr + 54H
bit[7:0]
「15.4.2.2 IFx コマ
ンドマスクレジ
スタ (IFxCMSK)」
参照
Reset: 00H
MXtd. MDir,
Msk[28:24]
IF2 アービトレーションレジスタ 2
(IF2ARB2)
バイト配列順序 :
リトルエンディ
アン
IF2 コマンドマスクレジスタ
(IF2CMSK)
Base-addr + 40H
Base-addr + 44H
bit[7:0]
備考
IF2 データ B レジスタ 2
(IF2DTB2)
bit[7:0]
bit[15:8]
bit[7:0]
bit[15:8]
Data[4]
Data[5]
Data[6]
Data[7]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
バイト配列順序 :
ビッグエンディ
アン
バイト配列順序 :
ビッグエンディ
アン
349
第 15 章 C-CAN
表 15.3-2 メッセージインタフェースレジスタ一覧 (3 / 3)
アドレス
レジスタ
+0
+1
+2
IF2 データ A レジスタ 2
(IF2DTA2)
Base-addr + 60H
bit[15:8]
IF2 データ A レジスタ 1
(IF2DTA1)
bit[7:0]
bit[15:8]
bit[7:0]
Data[3]
Data[2]
Data[1]
Data[0]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
IF2 データ B レジスタ 2
(IF2DTB2)
Base-addr + 64H
+3
IF2 データ B レジスタ 1
(IF2DTB1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
Data[7]
Data[6]
Data[5]
Data[4]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
+2
+3
備考
バイト配列順序 :
リトルエンディ
アン
バイト配列順序 :
リトルエンディ
アン
■ メッセージハンドラレジスタ一覧
表 15.3-3 メッセージハンドラレジスタ一覧
アドレス
レジスタ
+0
+1
CAN 送信要求レジスタ 2
(TREQR2)
Base-addr + 80H
Base-addr + 90H
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
TxRqst[32:25]
TxRqst[24:17]
TxRqst[16:9]
TxRqst[8:1]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
CAN New Data レジスタ 2
(NEWDT2)
CAN New Data レジスタ 1
(NEWDT1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
NewDat[32:25]
NewDat[24:17]
NewData[16:9]
NewData[8:1]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
CAN 割込みペンディングレジスタ 2
(INTPND2)
Base-addr + A0H
350
CAN 割込みペンディングレジスタ 1
(INTPND1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
IntPnd[32:25]
IntPnd[24:17]
IntPnd[16:9]
IntPnd[8:1]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
CAN メッセージ有効レジスタ 2
(MSGVAL2)
Base-addr + B0H
CAN 送信要求レジスタ 1
(TREQR1)
CAN メッセージ有効レジスタ 1
(MSGVAL1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
MsgVal[32:25]
MsgVal[24:17]
MsgVal[16:9]
MsgVal[8:1]
Reset: 00H
Reset: 00H
Reset: 00H
Reset: 00H
備考
INTR1,2: 読出し
のみ
NEWDT1,2: 読出
しのみ
INTPND1,2: 読出
しのみ
MSGVAL1,2: 読
出しのみ
第 15 章 C-CAN
■ クロックプリスケーラレジスタ
表 15.3-4 クロックプリスケーラレジスタ
アドレス
0001A8H
レジスタ
+0
+1
+2
+3
CANPRE
-
-
-
bit[3:0]
-
-
-
CANPRE[3:0]
-
-
-
Reset: 00H
-
-
-
備考
CAN
プリスケーラ
351
第 15 章 C-CAN
15.4
C-CAN レジスタ機能
CAN レジスタは , 256 バイト (64 ワード ) のアドレス空間が割り当てられ , バイトも
しくはワードのアクセスが可能です。メッセージ RAM への CPU のアクセスは ,
メッセージインタフェースレジスタを介して行います。
CAN レジスタを掲載し , それぞれのレジスタの詳細機能を記載します。
■ 全体コントロールレジスタ
・CAN 制御レジスタ
(CTRLR)
・CAN ステータスレジスタ
(STATR)
・CAN エラーカウンタ
(ERRCNT)
・CAN ビットタイミングレジスタ
(BTR)
・CAN 割込みレジスタ
(INTR)
・CAN テストレジスタ (TESTR)
・CAN プリスケーラ拡張レジスタ
(BRPER)
■ メッセージインタフェースレジスタ
・IFx コマンド要求レジスタ
(IFxCREQ)
・IFx コマンドマスクレジスタ
(IFxCMSK)
・IFx マスクレジスタ 1, 2
(IFxMSK1, IFxMSK2)
・IFx アービトレーションレジスタ 1, 2
(IFxARB1, IFxARB2)
・IFx メッセージ制御レジスタ
(IFxMCTR)
・IFx データレジスタ A1, A2, B1, B2
(IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2)
■ メッセージハンドラレジスタ
・CAN 送信要求レジスタ 1, 2
(TREQR1, TREQR2)
・CAN データ更新レジスタ 1, 2
(NEWDT1, NEWDT2)
・CAN 割込みペンディングレジスタ 1, 2 (INTPND1, INTPND2)
・CAN メッセージ有効レジスタ 1, 2
(MSGVAL1, MSGVAL2)
■ プリスケーラレジスタ
CAN クロックプリスケーラレジスタ
352
(CANPRE)
第 15 章 C-CAN
15.4.1
全体コントロールレジスタ
全体コントロールレジスタは , CAN プロトコル制御および動作モードを制御し , ス
テータス情報を提供します。
■ 全体コントロールレジスタ
・CAN 制御レジスタ
(CTRLR)
・CAN ステータスレジスタ
(STATR)
・CAN エラーカウンタ
(ERRCNT)
・CAN ビットタイミングレジスタ (BTR)
・CAN 割込みレジスタ
(INTR)
・CAN テストレジスタ
(TESTR)
・CAN プリスケーラ拡張レジスタ (BRPER)
353
第 15 章 C-CAN
15.4.1.1
CAN 制御レジスタ (CTRLR)
本レジスタは , CAN コントローラの動作モードを制御します。
■ CAN 制御レジスタ (CTRLR)
CAN 制御レジスタ ( 上位 )
bit15
アドレス
Base+00H
bit14
−
R
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R
−
R
−
R
−
R
−
R
−
R
−
R
00000000B
CAN 制御レジスタ ( 下位 )
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
Base+01H
Test
CCE
DAR
EIE
SIE
IE
Init
00000000B
R/W
R/W
R/W
−
R
R/W
R/W
R/W
R/W
R/W : リード / ライト可能
R
: リードオンリ
■ レジスタ機能
[bit15 ∼ bit8] − : 予約ビット
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit7] Test: テストモード許可ビット
Test
機能
0
通常動作
1
テストモード
[ 初期値 ]
[bit6] CCE: ビットタイミングレジスタ書込み許可ビット
CCE
354
機能
0
CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジス
タへの書込みを禁止します。[ 初期値 ]
1
CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジス
タへの書込みを許可します。Init ビットが "1" のときに有効です。
第 15 章 C-CAN
[bit5] DAR: 自動再送禁止ビット
DAR
機能
0
調停負けまたはエラー検出時のメッセージの自動再送を許可します。
[ 初期値 ]
1
自動再送を禁止します。
CAN 仕様 (ISO11898, 6.3.3 リカバリ処理 参照 ) より , CAN コントローラは調停負け
あるいは転送中のエラー検出によりフレームの自動再送を行います。自動再送する
場合は , DAR ビットを "0" にリセットします。CAN を Time Triggered CAN(TTCAN,
ISO11898-1 参照 ) 環境で動作させるためには , DAR ビットに "1" を設定する必要が
あります。
<注意事項>
DAR ビットに "1" を設定したモードでは , メッセージオブジェクト ( メッセージオブジェ
クトについては「15.4.3 メッセージオブジェクト」を参照してください ) の TxRqst ビッ
トと NewDat ビットの動作が異なります。
• フレーム送信を開始したとき , メッセージオブジェクトの TxRqst が "0" にリセットさ
れますが , NewDat ビットはセットされたままです。
• フレーム送信が正常終了すると NewDat は "0" にリセットされます。
送信が調停負けもしくはエラー検出すると , NewDat はセットされたままです。送信を再
開するためには , CPU により TxRqst に "1" を設定する必要があります。
[bit4] − : 予約ビット
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit3] EIE: エラー割込みコード許可ビット
EIE
機能
0
CAN ステータスレジスタの BOff または EWarn ビットの変化により ,
CAN 割込みレジスタへの割込みコードの設定を禁止します。
[ 初期値 ]
1
CAN ステータスレジスタの BOff または EWarn ビットの変化により ,
CAN 割込みレジスタへのステータス割込みコードの設定を許可します。
355
第 15 章 C-CAN
[bit2] SIE: ステータス割込みコード許可ビット
SIE
機能
0
CAN ステータスレジスタの TxOk,RxOk または LEC ビットの変化によ
り , CAN 割込みレジスタへの割込みコードの設定を禁止します。
[ 初期値 ]
1
CAN ステータスレジスタの TxOk,RxOk または LEC ビットの変化によ
り , CAN 割込みレジスタへのステータス割込みコードの設定を許可し
ます。CPU からの書込みによって発生した TxOk, RxOk, LEC ビットの
変化は CAN 割込みレジスタには設定されません。
[bit1] IE: 割込み許可ビット
IE
機能
0
割込みの発生を禁止します。[ 初期値 ]
1
割込みの発生を許可します。
[bit0] Init: 初期化ビット
Init
機能
0
CAN コントローラ動作可能
1
初期化
[ 初期値 ]
<注意事項>
• バスオフリカバリシーケンス (CAN 仕様 Rev. 2.0 参照 ) は , Init ビットの設定/解除に
よって短縮はできません。デバイスがバスオフになると , CAN コントローラ自身が Init
ビットを "1" にセットし , すべてのバス動作を停止します。バスオフ状態から Init ビッ
トを "0" にクリアすると , バスアイドルが連続的に 129 回 (11 ビットのレセッシブを 1
回とする ) 発生するまでバス動作を停止状態にします。バスオフリカバリシーケンス実
行後 , エラーカウンタをリセットします。
• CAN ビットタイミングレジスタへの書込みは , Init ビットおよび CCE ビットに "1" を
設定してください。
• 低消費電力モード ( 停止モード , クロックモード ) へ遷移する前に Init ビットに "1" を
書き込んで CAN コントローラの初期化を行ってください。
• CAN プリスケーラレジスタにより , CAN インタフェースに供給するクロックの分周比
を変更する場合は , Init ビットに "1" を設定後に CAN プリスケーラレジスタの変更を
行ってください。
356
第 15 章 C-CAN
15.4.1.2
CAN ステータスレジスタ (STATR)
本レジスタは , CAN ステータスおよび CAN バス状態を表示します。
■ CAN ステータスレジスタ (STATR)
CAN ステータスレジスタ ( 上位 )
bit15
アドレス
Base+02H
−
R
bit14
−
R
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R
−
R
−
R
−
R
−
R
−
R
00000000B
bit5
bit4
bit3
bit2
bit1
bit0
初期値
RxOk
TxOk
R/W
R/W
CAN ステータスレジスタ ( 下位 )
アドレス
bit7
Base+03H
BOff
R
bit6
EWarn EPass
R
R
00000000B
LEC
R/W
R/W
R/W
R/W : リード / ライト可能
R
: リードオンリ
■ レジスタ機能
[bit15 ∼ bit8] − : 予約ビット
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit7] BOff: バスオフビット
BOff
機能
0
CAN コントローラはバスオフ状態でないことを示します。 [ 初期値 ]
1
CAN コントローラはバスオフ状態であることを示します。
[bit6] EWarn: ワーニングビット
EWarn
機能
0
送信と受信カウンタがともに 96 未満であることを示します。 [ 初期値 ]
1
送信または受信カウンタが 96 以上であることを示します。
357
第 15 章 C-CAN
[bit5] EPass: エラーパッシブビット
EPass
機能
0
送信と受信カウンタがともに 128 未満 ( エラーアクティブ状態 ) である
ことを示します。 [ 初期値 ]
1
受信カウンタは RP ビット =1, 送信カウンタが 128 以上 ( エラーパッシ
ブ状態 ) であることを示します。
[bit4] RxOk: メッセージ正常受信ビット
RxOk
機能
0
CAN バス上で正常なメッセージ通信が行われていない
またはバスアイドル状態であることを示します。 [ 初期値 ]
1
CAN バス上で正常なメッセージ通信が行われたことを示します。
[bit3] TxOk: メッセージ正常送信ビット
TxOk
機能
0
バスアイドル状態もしくは正常なメッセージ送信が行われていないこ
とを示します。 [ 初期値 ]
1
正常なメッセージ送信が行われたことを示します。
<注意事項>
RxOk および TxOk ビットは , CPU によってのみリセットされます。
358
第 15 章 C-CAN
[bit2 ∼ bit0] LEC: ラストエラーコードビット
LEC
状態
機能
0
正常
正常に送信または受信されたことを示します。 [ 初期値 ]
1
Stuff エラー
メッセージ内において 6 ビット以上連続してドミナントま
たはレセッシブを検出したことを示します
2
Form エラー
受信されたフレームの固定フォーマット部が間違って検出
したことを示します。
3
Ack エラー
送信メッセージに対し , ほかのノードからアクノリッジさ
れなかったことを示します。
4
Bit1 エラー
調停フィールドを除くメッセージの送信データにおいて ,
レセッシブを送信したにもかかわらずドミナントを検出し
たことを示します。
5
Bit0 エラー
メッセージの送信データにおいて , ドミナントを送信した
にもかかわらずレセッシブを検出したことを示します。
バスリカバリ中には , 11 ビットのレセッシブを検出するご
とにセットされます。このビットを読み出すことによりバ
スリカバリシーケンスを監視できます。
6
CRC エラー
受信したメッセージの CRC データと計算した CRC の結果
が一致しなかったことを示します。
7
未検出
CPU によって LEC ビットに "7" の書込みを行ってから ,
LEC 値が "7" を読み出した場合 , その期間は送受信しな
かったことを示します ( バスアイドル状態 )。
LEC ビットは CAN バス上で発生した最後のエラーを示すコードを保持します。メッ
セージがエラーなしで転送 ( 受信 / 送信 ) 完了すると "0" にクリアされます。未検出
コード "7" は , コード更新をチェックするために CPU によって設定されます。
<注意事項>
• ステータス割込みコード (8000H) は , EIE ビットが "1" のときに BOff または EWarn ビッ
トが変化した場合 , もしくは SIE ビットが "1" のときに RxOk, TxOk または LEC ビッ
トが変化した場合 , CAN 割込みレジスタに設定されます。
• RxOk, TxOk ビットは CPU の書込みによって更新されますので , CAN コントローラに
よってセットされた RxOk, TxOk ビットが消えてしまいます。もし RxOk, TxOk ビット
を使用する場合には , RxOk または TxOk ビットが "1" にセットされてから
(45 × BT) 時間以内にクリアしてください。BT は 1 ビットタイムを示します。
• SIE ビットが "1" の時 , LEC ビットの変化による割込みが発生した場合には CAN ステー
タスレジスタに書き込まないでください。
• EPass ビットの変化あるいは RxOk, TxOk および LEC ビットへの CPU 書込み動作で
は発生しません。
• BOff ビットまたは EPass ビットが "1" になっても EWarn ビットは "1" にセットされて
います。
• 本レジスタを読み出すことにより , CAN 割込みレジスタのステータス割込み (8000H)
はクリアされます。
359
第 15 章 C-CAN
15.4.1.3
CAN エラーカウンタ (ERRCNT)
本レジスタは , 受信エラーパッシブ表示および受信エラーカウンタ , 送信エラーカウ
ンタを示します。
■ CAN エラーカウンタ (ERRCNT)
CAN エラーカウンタレジスタ ( 上位 )
アドレス
bit15
Base+04H
RP
R
bit14
bit13
bit12
bit11
bit10
bit9
bit8
R
R
初期値
00000000B
REC6 ∼ REC0
R
R
R
R
R
bit4
bit3
bit2
bit1
bit0
CAN エラーカウンタレジスタ ( 下位 )
bit7
アドレス
bit6
bit5
Base+05H
R
00000000B
TEC7 ∼ TEC0
R
R
R
R
R
初期値
R
R
R
: リードオンリ
■ レジスタ機能
[bit15] RP: 受信エラーパッシブ表示
RP
機能
0
受信エラーカウンタはエラーパッシブ状態でないことを示します。
[ 初期値 ]
1
受信エラーカウンタは CAN 仕様で定義されているエラーパッシブ状態
に到達したことを示します。
[bit14 ∼ bit8] REC6 ∼ REC0: 受信エラーカウンタ
受信エラーカウンタ値。受信エラーカウンタ値の範囲は 0 ∼ 127 です。
[bit7 ∼ bit0] TEC7 ∼ TEC0: 送信エラーカウンタ
送信エラーカウンタ値。送信エラーカウンタ値の範囲は 0 ∼ 255 です。
360
第 15 章 C-CAN
15.4.1.4
CAN ビットタイミングレジスタ (BTR)
本レジスタは , プリスケーラおよびビットタイミングを設定します。
■ CAN ビットタイミングレジスタ (BTR)
CAN ビットタイミングレジスタ ( 上位 )
bit15
アドレス
Base+06H
bit14
bit13
bit12
bit11
bit10
TSeg2
−
R
R/W
R/W
bit9
bit8
初期値
00100011B
TSeg1
R/W
R
R
R
R
bit4
bit3
bit2
bit1
bit0
CAN ビットタイミングレジスタ ( 下位 )
bit7
アドレス
Base+07H
bit6
bit5
SJW
R/W
R/W
00000001B
BRP
R/W
R/W
R/W
R/W
初期値
R/W
R/W
R/W : リード / ライト可能
R
: リードオンリ
■ レジスタ機能
[bit15] − : 予約ビット
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit14 ∼ bit12] TSeg2: タイムセグメント 2 設定ビット
有効設定値は 0 ∼ 7 です。TSeg2+1 の値がタイムセグメント 2 になります。
タイムセグメント 2 は , CAN 仕様のフェーズバッファセグメント (PHASE_SEG2) に
相当します。
[bit11 ∼ bit8] TSeg1: タイムセグメント 1 設定ビット
有効設定値は 1 ∼ 15 です。"0" の設定は禁止です。TSeg1+1 の値がタイムセグメン
ト 1 になります。
タイムセグメント 1 は , CAN 仕様のプロパゲーションセグメント (PROP_SEG) +
フェーズバッファセグメント 1(PHASE_SEG1) に相当します。
[bit7, bit6] SJW: 再同期化ジャンプ幅設定ビット
有効設定値は 0 ∼ 3 です。SJW+1 の値が再同期ジャンプ幅となります。
[bit5 ∼ bit0] BRP: ボーレートプリスケーラ設定ビット
有効設定値は 0 ∼ 63 です。BRP+1 の値がボーレートプリスケーラになります。
システムクロック (fsys) を分周して , CAN コントローラの基本単位時間 (tq) を決定
します。
<注意事項>
CAN 制御レジスタの CCE ビットと Init ビットが "1" にセットされているときに , CAN ビッ
トタイミングレジスタおよび CAN プリスケーラ拡張レジスタを設定してください。
361
第 15 章 C-CAN
15.4.1.5
CAN 割込みレジスタ (INTR)
本レジスタは , メッセージ割込みコードおよびステータス割込みコードを表示します。
■ CAN 割込みレジスタ (INTR)
CAN 割込みレジスタ ( 上位 )
bit15
アドレス
bit14
bit13
Base+08H
bit12
bit11
bit10
bit9
bit8
IntId15 ∼ IntId8
R
R
初期値
00000000B
R
R
R
R
R
R
bit5
bit4
bit3
bit2
bit1
bit0
CAN 割込みレジスタ ( 下位 )
bit7
アドレス
bit6
Base+09H
R
R
R
R
R
R
初期値
00000000B
IntId7 ∼ IntId0
R
R
R
: リードオンリ
■ レジスタ機能
IntId
0000H
機能
割込みなし
0001H ∼ 0020H
割込み要因はメッセージオブジェクトの番号を示します
( メッセージ割込みコード )
0021H ∼ 7FFFH
未使用
8000H
8001H ∼ FFFFH
CAN ステータスレジスタの変化による割込みを示します
( ステータス割込みコード )
未使用
複数の割込みコードが保留中である場合 , CAN 割込みレジスタは優先度の高い割込み
コードを示します。割込みコードが CAN 割込みレジスタにセットされていても優先度
の高い割込みコードが発生した場合には , CAN 割込みレジスタは優先度の高い割込み
コードに更新されます。
優先度の高い割込みコードは , ステータス割込みコード (8000H), メッセージ割込み
(0001H, 0002H, 0003H, ……, 0020H) の順になります。
IntId ビットが 0000H 以外で , CAN 制御レジスタの IE ビットが "1" にセットされると ,
CPU への割込み信号がアクティブになります。IntId の値が 0000H になる ( 割込み要因
がリセットされる ) もしくは CAN 制御レジスタの IE ビットが "0" にリセットされると ,
割込み信号はインアクティブになります。
対象となるメッセージオブジェクト ( メッセージオブジェクトについては
「15.4.3 メッ
セージオブジェクト」を参照してください ) の IntPnd ビットを "0" にクリアすること
でメッセージ割込みコードはクリアされます。
ステータス割込みコードはCANステータスレジスタを読み出すことでクリアされます。
362
第 15 章 C-CAN
15.4.1.6
CAN テストレジスタ (TESTR)
本レジスタは , テストモードの設定および RXO 端子のモニタを行います。動作につ
いては , 「15.5.7 テストモード」を参照してください。
■ CAN テストレジスタ (TESTR)
CAN テストレジスタ ( 上位バイト )
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R
−
R
−
R
−
R
−
R
−
R
−
R
−
R
00000000B
bit1
bit0
初期値
−
R
00000000B
Base+0AH
CAN テストレジスタ ( 下位バイト )
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
Base+0BH
Rx
Tx1
Tx0
LBack
Silent
Basic
R
R/W
R/W
R/W
R/W
R/W
−
R
R/W : リード / ライト可能
R
: リードオンリ
bit7 の Rx の初期値 R は , CAN バス上のレベルが表示されます。
■ レジスタ機能
[bit15 ∼ bit8] − : 予約ビット
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit7] Rx: RXO 端子モニタビット
Rx
機能
0
CAN バスはドミナントであることを示します。
1
CAN バスはレセッシブであることを示します。
[bit6, bit5] Tx1, Tx0: TXO 端子コントロールビット
Tx1-0
機能
00
通常動作 [ 初期値 ]
01
サンプリングポイントが Tx 端子に出力されます。
10
TX 端子にドミナントを出力します。
11
TX 端子にレセッシブを出力します。
363
第 15 章 C-CAN
[bit4] LBack: ループバックモード
LBack
機能
0
ループバックモードを禁止します。 [ 初期値 ]
1
ループバックモードを許可します。
[bit3] Silent: サイレントモード
Silent
機能
0
サイレントモードを禁止します。 [ 初期値 ]
1
サイレントモードを許可します。
[bit2] Basic: ベーシックモード
Basic
機能
0
ベーシックモードを禁止します。[ 初期値 ]
1
ベーシックモードを許可します。
IF1 レジスタは送信メッセージとして , IF2 レジスタは受信メッセージ
として使用されます。
[bit1 ∼ bit0] − : 予約ビット
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
<注意事項>
• CAN 制御レジスタの Test ビットを "1" にセットした後 , 本レジスタへ書き込んでくだ
さい。テストモードが有効となるのは , CAN 制御レジスタの Test ビットが "1" のとき
です。途中で CAN 制御レジスタの Test ビットを "0" にするとテストモードから通常
モードになります。
• Tx ビットを“00B”以外に設定した場合 , メッセージを送信することができません。
364
第 15 章 C-CAN
15.4.1.7
CAN プリスケーラ拡張レジスタ (BRPER)
本レジスタは , CAN ビットタイミングで設定したプリスケーラと組み合せることに
より , CAN コントローラで使用するプリスケーラを拡張します。
■ CAN プリスケーラ拡張レジスタ (BRPER)
CAN プリスケーラ拡張レジスタ ( 上位 )
アドレス
Base+0CH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R
−
R
−
R
−
R
−
R
−
R
−
R
−
R
00000000B
bit4
bit3
bit2
bit1
bit0
CAN プリスケーラ拡張レジスタ ( 下位 )
bit7
アドレス
Base+0DH
−
R
bit6
−
R
bit5
−
R
−
R
R/W
R/W
R/W
初期値
00000000B
BRPE
R/W
R/W : リード / ライト可能
R
: リードオンリ
■ レジスタ機能
[bit15 ∼ bit4] − : 予約ビット
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit3 ∼ bit0] BRPE: ボーレートプリスケーラ拡張ビット
CAN ビットタイミングレジスタの BRP と BRPE を組み合せることにより , 1023 ま
でボーレートプリスケーラを拡張できます。
{BRPE(MSB:4 ビット ),BRP(LSB:6 ビット )} + 1 の値が CAN コントローラのプリス
ケーラとなります。
365
第 15 章 C-CAN
15.4.2
メッセージインタフェースレジスタ
CPU からメッセージ RAM へのアクセスを制御するために 2 組のメッセージインタ
フェースレジスタを提供します。
メッセージ RAM への CPU アクセスを制御するために使用される 2 組のメッセージイ
ンタフェースレジスタがあります。この 2 組のレジスタは , 転送された ( する ) データ
( メッセージオブジェクト ) をバッファすることで , メッセージ RAM への CPU アクセ
スと CAN コントローラからのアクセスの競合を回避します。メッセージオブジェクト
( メッセージオブジェクトについては , 「15.4.3 メッセージオブジェクト」を参照して
ください ) は , メッセージインタフェースレジスタとメッセージ RAM 間を一度に転送
します。
テストベーシックモードを除き , 2 組のメッセージインタフェースレジスタの機能は同
一で , 独立して動作可能です。例えば , IF1 のメッセージインタフェースレジスタをメッ
セージRAMへの書込み動作中に, IF2のメッセージインタフェースレジスタをメッセー
ジ RAM からの読出しに使用することも可能です。表 15.4-1 に 2 組のメッセージイン
タフェースレジスタを示します。
メッセージインタフェースレジスタは , コマンドレジスタ ( コマンド要求 , コマンドマ
スクレジスタ ) と , このコマンドレジスタによって制御されるメッセージバッファレジ
スタ ( マスク , アービトレーション , メッセージ制御 , データレジスタ ) から構成され
ます。コマンドマスクレジスタは , データ転送の方向とメッセージオブジェクトのどの
部分が転送されるのかを示します。コマンド要求レジスタは , メッセージ番号の選択と ,
コマンドマスクレジスタに設定された動作を行います。
表 15.4-1 IF1, IF2 メッセージインタフェースレジスタ
366
アドレス
IF1 レジスタセット
アドレス
IF2 レジスタセット
Base + 10H
IF1 コマンド要求
Base + 40H
IF2 コマンド要求
Base + 12H
IF1 コマンドマスク
Base + 42H
IF2 コマンドマスク
Base + 14H
IF1 マスク 2
Base + 44H
IF2 マスク 2
Base + 16H
IF1 マスク 1
Base + 46H
IF2 マスク 1
Base + 18H
IF1 アービトレーション 2
Base + 48H
IF2 アービトレーション 2
Base + 1AH
IF1 アービトレーション 1
Base + 4AH
IF2 アービトレーション 1
Base + 1CH
IF1 メッセージ制御
Base + 4CH
IF2 メッセージ制御
Base + 20H
IF1 データ A1
Base + 50H
IF2 データ A1
Base + 22H
IF1 データ A2
Base + 52H
IF2 データ A2
Base + 24H
IF1 データ B1
Base + 54H
IF2 データ B1
Base + 26H
IF1 データ B2
Base + 56H
IF2 データ B2
第 15 章 C-CAN
IFx コマンド要求レジスタ (IFxCREQ)
15.4.2.1
本レジスタは , メッセージ RAM のメッセージ番号の選択とメッセージ RAM とメッ
セージバッファレジスタ間の転送を行います。また , テストのベーシックモードで
は , IF1 を送信制御用に IF2 を受信制御用として使用します。
■ IFx コマンド要求レジスタ (IFxCREQ)
IFx コマンド要求レジスタ ( 上位 )
アドレス
Base+10H
Base+40H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
BUSY
R/W
−
R
−
R
−
R
−
R
−
R
−
R
−
R
bit3
bit2
bit1
bit0
Message Number
R/W
R/W
R/W
R/W
初期値
00000000B
IFx コマンド要求レジスタ ( 下位 )
アドレス
Base+11H
Base+41H
bit7
bit6
bit5
bit4
−
R/W
−
R/W
R/W
R/W
初期値
00000000B
R/W : リード / ライト可能
R
: リードオンリ
■ レジスタ機能
IFx コマンド要求レジスタへメッセージ番号を書き込むとすぐにメッセージ RAM と
メッセージバッファレジスタ ( マスク , アービトレーション , メッセージ制御 , データ
レジスタ ) とのメッセージ転送が開始されます。この書込み動作で , BUSY ビットが
"1" にセットされ転送処理中であることを示します。その転送が終了すると, BUSYビッ
トが "0" にリセットされます。
BUSY ビットが "1" のときに , CPU からメッセージインタフェースレジスタへアクセス
が発生すると, BUSYビットが"0"になるまで(コマンド要求レジスタ書き込み後, Clock
で 3 ∼ 6 サイクル期間 ), CPU をウェイトさせます。
テストのベーシックモードでは , BUSY ビットの使用方法が異なります。IF1 コマンド
要求レジスタは , 送信メッセージとして使用され , BUSY ビットに "1" をセットするこ
とによりメッセージ送信開始を指示します。メッセージ転送が正常終了すると , BUSY
ビットは "0" にリセットされます。また , BUSY ビットを "0" にリセットすることによ
り , いつでもメッセージ転送を中断させることが可能です。
IF2 コマンド要求レジスタは , 受信メッセージとして使用され , BUSY ビットを "1" に
セットすることにより , 受信したメッセージを IF2 メッセージインタフェースレジスタ
に格納します。
367
第 15 章 C-CAN
[bit15] BUSY: ビジーフラグビット
• テストベーシックモード以外
BUSY
機能
0
メッセージインタフェースレジスタとメッセージ RAM 間でデータ転送
処理を行っていないことを示します。 [ 初期値 ]
1
メッセージインタフェースレジスタとメッセージ RAM 間でデータ転送
処理中であることを示します。
• テストベーシックモード
IF1 コマンド要求レジスタ
BUSY
機能
0
メッセージ送信を禁止します。
1
メッセージ送信を許可します。
IF2 コマンド要求レジスタ
BUSY
機能
0
メッセージ受信を禁止します。
1
メッセージ受信を許可します。
[bit14 ∼ bit6] − : 予約ビット
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit5 ∼ bit0] Message Number: メッセージ番号 (32 message buffer CAN 用 )
Message Number
00H
01H ∼ 20H
21H ∼ 3FH
機能
設定禁止です。設定した場合 , 20H として解釈され , 20H が読
み出されます。
処理を行うメッセージ番号を設定します。
設定禁止です。設定した場合 , 01H ∼ 1FH として解釈され , 解
釈された値が読み出されます。
<注意事項>
BUSY ビットは , 読出し / 書込みが可能です。テストのベーシックモード時以外は , この
ビットに何を書いても動作に影響しません ( ベーシックモードについては「15.5.7 テスト
モード」を参照してください )。
368
第 15 章 C-CAN
IFx コマンドマスクレジスタ (IFxCMSK)
15.4.2.2
本レジスタは , メッセージインタフェースレジスタとメッセージ RAM 間の転送方向
を制御し , どのデータを更新するかを設定します。また , テストのベーシックモード
では本レジスタは無効となります。
■ IFx コマンドマスクレジスタ (IFxCMSK)
IFx コマンドマスクレジスタ ( 上位バイト )
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
−
R
−
R
−
R
−
R
−
R
−
R
−
R
−
R
bit4
bit3
bit2
bit1
bit0
Base+12H
Base+42H
初期値
00000000B
IFx コマンドマスクレジスタ ( 下位バイト )
bit7
アドレス
Base+13H
Base+43H
bit6
WR/RD Mask
R/W
R/W
bit5
Arb
Control
CIP
TxRqst/
NewDat
R/W
R/W
R/W
R/W
Data A Data B
R/W
初期値
00000000B
R/W
R/W : リード / ライト可能
R
: リードオンリ
■ レジスタ機能
[bit15 ∼ bit8] − : 予約ビット
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit7] WR/RD: ライト / リード制御ビット
WR/RD
機能
0
メッセージ RAM からデータを読み出すことを示します。メッセージ
RAM からの読出しは IFx コマンド要求レジスタへの書込みによって実
行されます。メッセージ RAM から読み出すデータは , Mask, Arb,
Control, CIP,TxRqst/NewDat, Data A, Data B ビットの設定に依存します。
[ 初期値 ]
1
メッセージ RAM へデータを書き込むことを示します。メッセージ
RAM への書込みは IFx コマンド要求レジスタへの書込みによって実行
されます。メッセージ RAM への書込みデータは , Mask, Arb, Control,
CIP, TxRqst/NewDat, Data A, Data B ビットの設定に依存します。
<注意事項>
リセット後 , メッセージ RAM のデータは不定です。メッセージ RAM のデータが不定状
態でメッセージ RAM のデータを読み出すことは禁止です。
IFx コマンドマスクレジスタの bit6 ∼ bit0 は , 転送方向 (WR/RD ビット ) の設定に
より違った意味になります。
369
第 15 章 C-CAN
● 転送方向が書込みの場合 (WR/RD=1)
[bit6] Mask: マスクデータ更新ビット
Mask
機能
0
メッセージオブジェクト * のマスクデータ (ID マスク + MDir + MXtd)
を更新しないことを示します。
[ 初期値 ]
1
メッセージオブジェクト * のマスクデータ (ID マスク + MDir + MXtd)
を更新することを示します。
[bit5] Arb: アービトレーションデータ更新ビット
Arb
機能
0
メッセージオブジェクト * のアービトレーションデータ (ID + Dir + Xtd
+ MsgVal) を更新しないことを示します。 [ 初期値 ]
1
メッセージオブジェクト * のアービトレーションデータ (ID + Dir + Xtd
+ MsgVal) を更新することを示します。
[bit4] Control: 制御データ更新ビット
Control
機能
0
メッセージオブジェクト * の制御データ (IFx メッセージ制御レジスタ )
を更新しないことを示します。 [ 初期値 ]
1
メッセージオブジェクト * の制御データ (IFx メッセージ制御レジスタ )
を更新することを示します。
[bit3] CIP: 割込みクリアビット
本ビットに "0" または "1" を設定しても CAN コントローラへの動作に影響を与えま
せん。
[bit2] TxRqst/NewDat: メッセージ送信要求ビット
TxRqst/NewDat
機能
0
メッセージオブジェクト * および CAN 送信要求レジスタの
TxRqst ビットに "0" を設定することを示します。 [ 初期値 ]
1
メッセージオブジェクト * および CAN 送信要求レジスタの
TxRqst ビットに "1" を設定 ( 送信要求 ) することを示します。
*:「15.4.3 メッセージオブジェクト」を参照してください。
370
第 15 章 C-CAN
[bit1] Data A: データ 0 ∼ 3 更新ビット
Data A
機能
0
メッセージオブジェクト * のデータ 0 ∼ 3 を更新しないことを示しま
す。
[ 初期値 ]
1
メッセージオブジェクト * のデータ 0 ∼ 3 を更新することを示します。
[bit0] Data B: データ 4 ∼ 7 更新ビット
Data B
機能
0
メッセージオブジェクト * のデータ 4 ∼ 7 を更新しないことを示しま
す。
[ 初期値 ]
1
メッセージオブジェクト * のデータ 4 ∼ 7 を更新することを示します
*:「15.4.3 メッセージオブジェクト」を参照してください。
<注意事項>
• IFx コマンドマスクレジスタの TxRqst/NewDat ビットが "1" に設定されると , IFx メッ
セージ制御レジスタの TxRqst ビットの設定は無効となります。
• テストのベーシックモードでは本レジスタは無効となります。
371
第 15 章 C-CAN
● 転送方向が読出しの場合 (WR/RD=0)
[bit6] Mask: マスクデータ更新ビット
Mask
機能
0
メッセージオブジェクト * から IFx マスクレジスタ 1,2 へデータ (ID マ
スク + MDir + MXtd ) を転送しないことを示します。
[ 初期値 ]
1
メッセージオブジェクト * から IFx マスクレジスタ 1,2 へデータ (ID マ
スク + MDir + MXtd ) を転送することを示します。
[bit5] Arb: アービトレーションデータ更新ビット
Arb
機能
0
メッセージオブジェクト * から IFx アービトレーション 1,2 へデータ
(ID+ Dir + Xtd + MsgVal) を転送しないことを示します。
[ 初期値 ]
1
メッセージオブジェクト * から IFx アービトレーション 1,2 へデータ
(ID+ Dir + Xtd + MsgVal) を転送することを示します。
[bit4] Control: 制御データ更新ビット
Control
機能
0
メッセージオブジェクト * から IFx メッセージ制御レジスタへデータを
転送しないことを示します。
[ 初期値 ]
1
メッセージオブジェクト * から IFx メッセージ制御レジスタへデータを
転送することを示します。
[bit3] CIP: 割込みクリアビット
CIP
機能
0
メッセージオブジェクト * および CAN 割込みペンディングレジスタの
IntPnd ビットを保持することを示します。
[ 初期値 ]
1
メッセージオブジェクト * および CAN 割込みペンディングレジスタの
IntPnd ビットを "0" にクリアすることを示します。
[bit2] TxRqst/NewDat: データ更新ビット
TxRqst/NewDat
機能
0
メッセージオブジェクト * および CAN データ更新レジスタの
NewDat ビットを保持することを示します。
[ 初期値 ]
1
メッセージオブジェクト * および CAN データ更新レジスタの
NewDat ビットを "0" にクリアすることを示します。
*:「15.4.3 メッセージオブジェクト」を参照してください。
372
第 15 章 C-CAN
[bit1] Data A: データ 0 ∼ 3 更新ビット
Data A
機能
0
メッセージオブジェクト * および CAN データレジスタ A1, A2 のデー
タを保持することを示します。 [ 初期値 ]
1
メッセージオブジェクト * および CAN データレジスタ A1, A2 のデー
タを更新することを示します。
[bit0] Data B: データ 4 ∼ 7 更新ビット
Data B
機能
0
メッセージオブジェクト * および CAN データレジスタ B1, B2 のデータ
を保持することを示します。
[ 初期値 ]
1
メッセージオブジェクト * および CAN データレジスタ B1, B2 のデータ
を更新することを示します。
*:「15.4.3 メッセージオブジェクト」を参照してください。
<注意事項>
• メッセージオブジェクトへの読出しアクセスにより , IntPnd および NewDat ビットは
"0" にリセットすることが可能です。ただし , IFx メッセージ制御レジスタの IntPnd お
よび NewDat ビットには , 読出しアクセスによりリセットされる前の IntPnd, NewDat
ビットが格納されます。
• テストのベーシックモードでは無効となります。
373
第 15 章 C-CAN
IFx マスクレジスタ 1,2 (IFxMSK1, IFxMSK2)
15.4.2.3
本レジスタは , メッセージ RAM のメッセージオブジェクトマスクデータを読出し /
書込みするために用いられます。また , テストのベーシックモードでは , 設定されて
いるマスクデータは無効となります。
各ビットの機能については , 「15.4.3 メッセージオブジェクト」に記述されていま
す。
■ IFx マスクレジスタ 1,2 (IFxMSK1, IFxMSK2)
IFx マスクレジスタ 2 ( 上位バイト )
アドレス
Base+14H
Base+44H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
MXtd
R/W
MDir
R/W
−
R
R/W
Msk28 ∼ Msk24
R/W
R/W
R/W
R/W
bit4
bit3
初期値
11111111B
IFx マスクレジスタ 2 ( 下位バイト )
アドレス
Base+15H
Base+45H
bit7
bit6
bit5
R/W
R/W
R/W
Msk23 ∼ Msk16
R/W
R/W
bit2
bit1
bit0
R/W
R/W
R/W
bit10
bit9
bit8
R/W
R/W
R/W
bit2
bit1
bit0
R/W
R/W
R/W
初期値
11111111B
IFx マスクレジスタ 1 ( 上位バイト )
アドレス
Base+16H
Base+46H
bit15
bit14
bit13
R/W
R/W
R/W
bit12
bit11
Msk15 ∼ Msk8
R/W
R/W
初期値
11111111B
IFx マスクレジスタ 1 ( 下位バイト )
アドレス
Base+17H
Base+47H
bit7
bit6
bit5
R/W
R/W
R/W
bit4
bit3
Msk7 ∼ Msk0
R/W
R/W
初期値
11111111B
R/W : リード / ライト可能
R
: リードオンリ
本レジスタのビット説明については「15.4.3 メッセージオブジェクト」を参照してく
ださい。
本レジスタの予約ビット (IFx マスクレジスタ 2 の bit13) は "1" が読み出され , 書込み時
は "1" を書き込んでください。
374
第 15 章 C-CAN
IFx アービトレーションレジスタ 1,2 (IFxARB1,
IFxARB2)
15.4.2.4
本レジスタは , メッセージ RAM のメッセージオブジェクトアービトレーションデー
タを読出し / 書込みするために用いられます。また , テストのベーシックモードでは
無効となります。
各ビットの機能については , 「15.4.3 メッセージオブジェクト」に記述されていま
す。
■ IFx アービトレーションレジスタ 1,2 (IFxARB1, IFxARB2)
IFx アービトレーションレジスタ 2 ( 上位バイト )
アドレス
Base+18H
Base+48H
bit15
bit14
bit13
bit12
bit11
bit9
bit8
MsgVal
Xtd
R/W
Dir
R/W
R/W
ID28 ∼ ID24
R/W
R/W
R/W
R/W
R/W
bit10
初期値
00000000B
IFx アービトレーションレジスタ 2 ( 下位バイト )
アドレス
Base+19H
Base+49H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R/W
R/W
R/W
ID23 ∼ ID16
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
IFx アービトレーションレジスタ 1 ( 上位バイト )
bit15
アドレス
Base+1AH
Base+4AH
R/W
bit14
R/W
bit13
bit12
bit11
bit10
bit9
bit8
R/W
ID15 ∼ ID8
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
IFx アービトレーションレジスタ 1 ( 下位バイト )
bit7
アドレス
Base+1BH
Base+4BH
R/W
bit6
R/W
bit5
bit4
bit3
bit2
bit1
bit0
R/W
ID7 ∼ ID0
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W : リード / ライト可能
本レジスタのビット説明については「15.4.3 メッセージオブジェクト」を参照してく
ださい。
<注意事項>
送信途中でメッセージオブジェクトの MsgVal ビットを "0" にクリアした場合 , 送信が完
了した時点で CAN ステータスレジスタの TxOk ビットは "1" になりますが , メッセージオ
ブジェクトおよび CAN 送信要求レジスタの TxRqst ビットは "0" にクリアされませんので
メッセージインタフェースレジスタによって TxRqst ビットを "0" にクリアしてください。
375
第 15 章 C-CAN
IFx メッセージ制御レジスタ (IFxMCTR)
15.4.2.5
本レジスタは , メッセージ RAM のメッセージオブジェクト制御データを読出し / 書
込みするために用いられます。また , テストのベーシックモードでは , IF1 メッセー
ジ制御レジスタは無効となります。IF2 メッセージ制御レジスタの NewDat と
MsgLst は通常の動作を行い , DLC ビットは受信したメッセージの DLC を表示しま
す。その他の制御ビットは無効 ("0") として動作します。
各ビットの機能については , 「15.4.3 メッセージオブジェクト」に記述されていま
す。
■ IFx メッセージ制御レジスタ (IFxMCTR)
IFx メッセージ制御レジスタ ( 上位バイト )
bit15
アドレス
Base+1CH
Base+4CH
bit14
NewDat MsgLst
R/W
R/W
bit13
bit12
IntPnd UMask
R/W
R/W
bit11
bit10
TxIE
R/W
RxIE
R/W
bit2
bit9
bit8
RmtEn TxRqst
R/W
R/W
初期値
00000000B
IFx メッセージ制御レジスタ ( 下位バイト )
アドレス
Base+1DH
Base+4DH
bit7
bit6
bit5
bit4
bit3
EoB
R/W
−
R
−
R
−
R
R/W
bit1
DLC3 ∼ DLC0
R/W
R/W
bit0
初期値
00000000B
R/W
R/W : リード / ライト可能
R
: リードオンリ
本レジスタのビット説明については「15.4.3 メッセージオブジェクト」を参照してく
ださい。
<注意事項>
TxRqst, NewDat および IntPnd ビットは , IFx コマンドマスクレジスタの WR/RD ビット
の設定によって以下の動作になります。
• 転送方向が書込みの場合 (IFx コマンドマスクレジスタ:WR/RD=1)
- IFx コマンドマスクレジスタの TxRqst/NewDat が "0" に設定されている場合のみ , 本
レジスタの TxRqst ビットが有効となります。
• 転送方向が読出しの場合 (IFx コマンドマスクレジスタ:WR/RD=0)
- IFx コマンドマスクレジスタの CIP ビットを "1", IFx コマンド要求レジスタへの書込
みによりメッセージオブジェクトおよびCAN割込みペンディングレジスタのIntPnd
ビットをリセットした場合 , 本レジスタにはリセットされる前の IntPnd ビットが格
納されます。
- IFx コマンドマスクレジスタの TxRqst/NewDat ビットを "1", IFx コマンド要求レジ
スタへの書込みによりメッセージオブジェクトおよび CAN データ更新レジスタの
NewDat ビットをリセットした場合 , 本レジスタにはリセットする前の NewDat ビッ
トが格納されます。
376
第 15 章 C-CAN
15.4.2.6
IFx データレジスタ A1,A2,B1,B2
(IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2)
本レジスタは , メッセージ RAM のメッセージオブジェクト送受信データを読出し /
書込みするために用いられます。データフレームの送受信のみ使用され , リモート
フレームの送受信には使用されません。
■ IFx データレジスタ A1,A2,B1,B2 (IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2)
addr+0
addr+1
addr+2
addr+3
IFx Message Data A1 ( アドレス 20H & 50H)
Data(0)
Data(1)
−
−
IFx Message Data A2 ( アドレス 22H & 52H)
−
−
Data(2)
Data(3)
IFx Message Data B1 ( アドレス 24H & 54H)
Data(4)
Data(5)
−
−
IFx Message Data B2 ( アドレス 26H & 56H)
−
−
Data(6)
Data(7)
IFx Message Data A2 ( アドレス 30H & 60H)
Data(3)
Data(2)
−
−
IFx Message Data A1 ( アドレス 32H & 62H)
−
−
Data(1)
Data(0)
IFx Message Data B2 ( アドレス 34H & 64H)
Data(7)
Data(6)
−
−
IFx Message Data B1 ( アドレス 36H & 66H)
−
−
Data(5)
Data(4)
図 15.4-1 IFx データレジスタ
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
bit7
bit6
bit5
bit4
bit3
Data
R/W
R/W
bit2
bit1
bit0
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W : リード / ライト可能
377
第 15 章 C-CAN
■ レジスタ機能
● 送信メッセージデータの設定
設定したデータは , MSB (bit7,bit15) より開始して Data(0), Data(1), …, Data(7) の順で送
信されます。
● 受信メッセージデータ
受信メッセージデータは , MSB (bit7,bit15) より開始して Data(0), Data(1), …, Data(7) の
順で格納されます。
<注意事項>
• 受信メッセージデータが 8 バイトより少ない場合は , データレジスタの残りのバイトに
は不定データが書き込まれます。
• メッセージオブジェクトへの転送は , Data A もしくは Data B の 4 バイト単位で行われ
ますので , 4 バイトのうちある一部のデータだけを更新することはできません。
378
第 15 章 C-CAN
メッセージオブジェクト
15.4.3
メッセージ RAM には , 32 のメッセージオブジェクトがあります。メッセージ RAM
への CPU アクセスと CAN コントローラからのアクセスの競合を回避するために ,
CPU はメッセージオブジェクトへ直接 , アクセスはできません。これらのアクセス
は , IFx メッセージインタフェースレジスタ経由で行います。
本節では , メッセージオブジェクトの構成と機能を説明します。
■ メッセージオブジェクトの構成
メッセージオブジェクト
UMask
MsgVal
Msk28 ∼
MXtd MDir
Msk0
ID28 ∼
ID0
Xtd
Dir
EoB
New Dat
MsgLst RxIE
TxIE IntPnd RmtEn TxRqst
DLC3
Data0 Data1 Data2 Data3 Data4 Data5 Data6 Data7
∼
DLC0
<注意事項>
メッセージオブジェクトは , CAN 制御レジスタの Init ビット , ハードウェアリセットでは
初期化されません。ハードウェアリセットの場合 , ハードウェアリセット解除後 , CPU に
よってメッセージ RAM を初期化するかメッセージ RAM の MsgVal を "0" にしてください。
■ メッセージオブジェクトの機能
ID28 ∼ ID0, Xtd, Dir ビットは , メッセージを送信する場合 , ID とメッセージの種類に
使用されます。メッセージを受信する場合 , Msk28 ∼ Msk0, MXtd, MDir ビットととも
に受容フィルタで使用されます。
受容フィルタを通過したデータフレームもしくはリモートフレームは , メッセージオ
ブジェクトに格納されます。Xtd は拡張フレームか標準フレームかを示し , Xtd が "1"
の場合 , 29 ビット ID ( 拡張フレーム ) を , Xtd が "0" の場合は , 11 ビット ID ( 標準フ
レーム ) を受信することになります。
受信したデータフレームもしくはリモートフレームが 1 つ以上のメッセージオブジェ
クトと一致した場合は , 一致した最小のメッセージ番号に格納されます。詳細は ,
「15.5.3 メッセージ受信動作」の受信メッセージの受容フィルタを参照してください。
MsgVal: 有効メッセージビット
MsgVal
機能
0
メッセージオブジェクトは無効です。
メッセージの送受信は行いません。
1
メッセージオブジェクトは有効です。
メッセージの送受信が可能となります。
379
第 15 章 C-CAN
<注意事項>
• CAN 制御レジスタ (CTRLR) の Init ビットを "0" にリセットする前と , ID28 ∼ ID0, Xtd,
Dir, DLC3 ∼ DLC0 を変更する前には , メッセージオブジェクトの MsgVal ビットを必
ず初期化してください。
• 送信中に MsgVal ビットを "0" にすると送信が完了した時点で CAN ステータスレジス
タ (STATR) の TxOk ビットは "1" になりますが , メッセージオブジェクトおよび CAN
送信要求レジスタ (TREQR) の TxRqst ビットは "0" にクリアされませんのでメッセー
ジインタフェースレジスタによって TxRqst ビットを "0" にクリアしてください。
UMask: 受容マスク許可ビット
UMask
機能
0
Msk28 ∼ Msk0, MXtd, MDir を使用しません。
1
Msk28 ∼ Msk0, MXtd, MDir を使用します。
<注意事項>
• CAN 制御レジスタの Init ビットが "1" のとき , あるいは MsgVal ビットが "0" のときに
UMask ビットを変更してください。
• Dirビットが"1"かつ RmtEnビットが"0"のとき, UMaskの設定により動作が異なります。
- UMask が "1" の場合は , 受容フィルタを通過しリモートフレームを受信したとき ,
TxRqst ビットを "0" にリセットします。そのとき , 受信した ID, IDE, RTR, DLC は
メッセージオブジェクトに格納し , NewDat ビットは "1" にセットされ , データは変
更しません ( データフレームのように取り扱います )。
- UMask が "0" の場合は , リモートフレーム受信に対し , TxRqst ビットはそのまま保
持し , リモートフレームを無視します。
ID28 ∼ ID0: メッセージ ID
ID
機能
ID28 ∼ ID0
29 ビット ID ( 拡張フレーム ) を指示します。
ID28 ∼ ID18
11 ビット ID ( 標準フレーム ) を指示します。
Msk28 ∼ Msk0: ID マスク
Msk
380
機能
0
メッセージオブジェクトの ID と対応するビットをマスクします。
1
メッセージオブジェクトの ID と対応するビットをマスクしません。
第 15 章 C-CAN
Xtd: 拡張 ID 許可ビット
Xtd
機能
0
メッセージオブジェクトは 11 ビット ID ( 標準フレーム ) が使用されます。
1
メッセージオブジェクトは 29 ビット ID ( 拡張フレーム ) が使用されます。
MXtd: 拡張 ID マスクビット
MXtd
機能
0
受容フィルタで拡張 ID ビット (IDE) をマスクします。
1
受容フィルタで拡張 ID ビット (IDE) をマスクしません。
<注意事項>
11 ビット ID ( 標準フレーム ) がメッセージオブジェクトに設定されると , 受信したデータ
フレームの ID は , ID28 ∼ ID18 へ書き込まれます。ID マスクは , Msk28 ∼ Msk18 が使用
されます。
Dir: メッセージ方向ビット
Dir
機能
0
受信方向を示します。
TxRqst が "1" にセットされると , リモートフレームの送信を行い ,
TxRqst が "0" のときは , 受容フィルタを通過したデータフレームを受信
します。
1
送信方向を示します。
TxRqst が "1" にセットされると , データフレームを送信し , TxRqst が
"0" で RmtEn が "1" にセットされている場合 , 受容フィルタを通過した
リモートフレームの受信によって , CAN コントローラ自身が TxRqst を
"1" にセットします。
MDir: メッセージ方向マスクビット
MDir
機能
0
受容フィルタでメッセージ方向ビット (Dir) をマスクします。
1
受容フィルタでメッセージ方向ビット (Dir) をマスクしません。
<注意事項>
MDir ビットは常に "1" を設定してください。
381
第 15 章 C-CAN
EoB: エンドオブバッファビット ( 詳細は , 「15.5.4 FIFO バッファ機能」参照 )
EoB
機能
0
メッセージオブジェクトは FIFO バッファとして使用され , 最終メッ
セージでないことを示します。
1
単一メッセージオブジェクトまたは FIFO バッファの最終メッセージオ
ブジェクトを示します。
<注意事項>
• EoB ビットは , 2 ∼ 32 メッセージの FIFO バッファを構成するために使用します。
• 単一メッセージオブジェクト (FIFO を使用しない場合 ) は , 必ず EoB ビットに "1" を設
定してください。
NewDat: データ更新ビット
NewDat
機能
0
有効なデータがないことを示します。
1
有効なデータがあることを示します。
MsgLst: メッセージロスト
MsgLst
機能
0
メッセージロストは発生していません。
1
メッセージロストが発生しています。
<注意事項>
MsgLst ビットは Dir ビットが "0" のとき ( 受信方向 ) のみ有効です。
RxIE: 受信割込みフラグイネーブルビット
RxIE
382
機能
0
フレーム受信成功後 , IntPnd は変更されません。
1
フレーム受信成功後 , IntPnd が "1" にセットされます。
第 15 章 C-CAN
TxIE: 送信割込みフラグイネーブルビット
TxIE
機能
0
フレーム送信成功後 , IntPnd は変更されません。
1
フレーム送信成功後 , IntPnd が "1" にセットされます。
IntPnd: 割込みペンディングビット
IntPnd
機能
0
割込み要因がありません。
1
割込み要因があります。
ほかに優先度の高い割込みがない場合は , CAN 割込みレジスタの IntId
ビットはこのメッセージオブジェクトを示します。
RmtEn: リモートイネーブル
RmtEn
機能
0
リモートフレームの受信で , TxRqst は変更されません。
1
Dir ビットが "1" でリモートフレームを受信すると , TxRqst が "1" に
セットされます。
<注意事項>
Dir ビットが "1" かつ RmtEn ビットが "0" のとき , UMask の設定により動作が異なります。
• UMask が "1" の場合は , 受容フィルタを通過しリモートフレームを受信したとき ,
TxRqst ビットを "0" にリセットします。そのとき , 受信した ID, IDE, RTR, DLC はメッ
セージオブジェクトに格納し , NewDat ビットは "1" にセットされ , データは変更しま
せん ( データフレームのように取り扱います )。
• UMask が "0" の場合は , リモートフレーム受信に対し , TxRqst ビットはそのまま保持
し , リモートフレームを無視します。
TxRqst: 送信要求ビット
TxRqst
機能
0
送信アイドル状態 ( 送信中でもないし , 送信待ち状態でもない ) を示し
ます。
1
送信中または , 送信待ちであることを示します。
383
第 15 章 C-CAN
DLC3 ∼ DLC0: データ長コード
DLC3
機能
0∼8
データフレーム長は 0 ∼ 8 バイトです。
9 ∼ 15
設定禁止です。
設定された場合は , 8 バイト長となります。
<注意事項>
データフレームを受信すると DLC ビットには , 受信した DLC が格納されます。
Data 0 ∼ Data 7: データ 0 ∼データ 7
Data
機能
Data 0
CAN データフレームの最初のデータバイト
Data 1
CAN データフレームの 2 番目のデータバイト
Data 2
CAN データフレームの 3 番目のデータバイト
Data 3
CAN データフレームの 4 番目のデータバイト
Data 4
CAN データフレームの 5 番目のデータバイト
Data 5
CAN データフレームの 6 番目のデータバイト
Data 6
CAN データフレームの 7 番目のデータバイト
Data 7
CAN データフレームの 8 番目のデータバイト
<注意事項>
• CAN バスへのシリアル出力は , MSB (bit7 もしくは bit15) より出力します。
• 受信メッセージデータが 8 バイトより少ない場合は , データレジスタの残りのバイトに
は不定が書き込まれます。
• メッセージオブジェクトへの転送は , Data A もしくは Data B の 4 バイト単位で行われ
ますので , 4 バイトのうちある一部のデータだけを更新することはできません。
384
第 15 章 C-CAN
15.4.4
メッセージハンドラレジスタ
メッセージハンドラレジスタは , すべて読出し専用です。メッセージオブジェクト
の TxRqst, NewDat, IntPnd, MsgVal ビットと IntId ビットは , ステータスを表示し
ます。
■ メッセージハンドラレジスタ
・CAN 送信要求レジスタ 1, 2
(TREQR1,TREQR2)
・CAN データ更新レジスタ 1, 2
(NEWDT1,NEWDT2)
・CAN 割込みペンディングレジスタ 1, 2 (INTPND1,INTPND2)
・CAN メッセージ有効レジスタ 1, 2
(MSGVAL1,MSGVAL2)
385
第 15 章 C-CAN
15.4.4.1
CAN 送信要求レジスタ (TREQR1, TREQR2)
本レジスタは , 全メッセージオブジェクトの TxRqst ビットを表示します。TxRqst
ビットを読み出すことにより , どのメッセージオブジェクトの送信要求がペンディ
ング中であるかをチェックすることができます。
■ CAN 送信要求レジスタ (TREQR1, TREQR2)
CAN 送信要求レジスタ 2 ( 上位バイト )
アドレス
bit15
bit14
Base+80H
R
R
bit13
bit12
bit11
bit10
TxRqst32 ∼ TxRqst25
R
R
R
R
bit9
bit8
R
R
bit1
bit0
初期値
00000000B
CAN 送信要求レジスタ 2 ( 下位バイト )
アドレス
bit7
bit6
bit5
Base+81H
bit4
bit3
bit2
TxRqst24 ∼ TxRqst17
R
R
R
初期値
00000000B
R
R
R
R
R
bit12
bit11
bit10
bit9
bit8
R
R
bit1
bit0
CAN 送信要求レジスタ 1 ( 上位バイト )
アドレス
bit15
bit14
bit13
R
R
R
Base+82H
TxRqst16 ∼ TxRqst9
R
R
R
初期値
00000000B
CAN 送信要求レジスタ 1 ( 下位バイト )
アドレス
bit7
bit6
bit5
Base+83H
386
: リードオンリ
bit3
bit2
R
R
R
R
初期値
00000000B
TxRqst8 ∼ TxRqst1
R
R
bit4
R
R
R
第 15 章 C-CAN
■ レジスタ機能
TxRqst32 ∼ TxRqst1: 送信要求ビット
TxRqst
機能
0
送信アイドル状態 ( 送信中でもないし , 送信待ち状態でもない ) を示し
ます。
1
送信中または , 送信待ちであることを示します。
TxRqst ビットのセット / リセット条件を以下に示します。
• セット条件
- IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "1" を設定し , IFx コマン
ド要求レジスタへの書込みにより特定オブジェクトの TxRqst にセットできます。
- IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "0",IFx メッセージ制御レ
ジスタの TxRqst に "1" を設定した場合 , IFx コマンド要求レジスタへの書込みに
より特定オブジェクトの TxRqst にセットできます。
- Dir ビットが "1", RmtEn ビットが "1" に設定し , 受容フィルタを通過したリモート
フレームの受信によりセットされます。
• リセット条件
- IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "0", IFx メッセージ制御
レジスタの TxRqst に "0" を設定した場合 , IFx コマンド要求レジスタへの書込み
により特定オブジェクトの TxRqst をリセットできます。
- フレームの送信が正常終了すると , リセットされます。
- Dir が "1", RmtEn が "0", UMask が "1" の場合 , 受容フィルタを通過したリモート
フレームの受信によりリセットされます。
387
第 15 章 C-CAN
15.4.4.2
CAN データ更新レジスタ (NEWDT1, NEWDT2)
本レジスタは , 全メッセージオブジェクトの NewDat ビットを表示します。NewDat
ビットを読み出すことにより , どのメッセージオブジェクトのデータが更新された
かチェックすることができます。
■ CAN データ更新レジスタ (NEWDT1, NEWDT2)
CAN データ更新レジスタ 2 ( 上位 )
アドレス
bit15
bit14
bit13
Base+90H
R
bit12
bit11
bit10
NewDat32 ∼ NewDat25
R
R
R
R
R
bit9
bit8
R
R
bit1
bit0
初期値
00000000B
CAN データ更新レジスタ 2 ( 下位 )
アドレス
bit7
bit6
bit5
Base+91H
bit4
bit3
bit2
NewDat24 ∼ NewDat17
R
R
初期値
00000000B
R
R
R
R
R
R
bit12
bit11
bit10
bit9
bit8
R
R
bit1
bit0
CAN データ更新レジスタ 1 ( 上位 )
アドレス
bit15
bit14
bit13
R
R
R
Base+92H
NewDat16 ∼ NewDat9
R
R
R
初期値
00000000B
CAN データ更新レジスタ 1 ( 下位 )
アドレス
bit7
bit6
bit5
Base+93H
388
: リードオンリ
bit3
bit2
R
R
R
R
初期値
00000000B
NewDat8 ∼ NewDat1
R
R
bit4
R
R
R
第 15 章 C-CAN
■ レジスタ機能
NewDat32 ∼ NewDat1: データ更新ビット
NewDat
機能
0
有効なデータがないことを示します。
1
有効なデータがあることを示します。
NewDat ビットのセット / リセット条件を以下に示します。
• セット条件
- IFx コマンドマスクレジスタの WR/RD に "1", IFx メッセージ制御レジスタの
NewDatに"1"を設定して, IFxコマンド要求レジスタの書込みにより特定オブジェ
クトにセットできます。
- 受容フィルタを通過したデータフレームの受信によりセットされます。
- Dir が "1", RmtEn が "0", UMask が "1" の場合 , 受容フィルタを通過したリモート
フレームの受信によりセットされます。
• リセット条件
- IFx コマンドマスクレジスタの WR/RD に "0", NewDat に "1" を設定した場合 , IFx
コマンド要求レジスタの書込みにより特定オブジェクトの NewDat をリセットで
きます。
- IFx コマンドマスクレジスタの WR/RD に "1", IFx メッセージ制御レジスタの
NewDat を "0" に設定した場合 , IFx コマンド要求レジスタの書込みにより特定オ
ブジェクトの NewDat をリセットできます。
- 送信用シフトレジスタ(内部レジスタ)へデータを転送終了後, リセットされます。
389
第 15 章 C-CAN
15.4.4.3
CAN 割込みペンディングレジスタ
(INTPND1, INTPND2)
本レジスタは , 全メッセージオブジェクトの IntPnd ビットを表示します。IntPnd
ビットを読み出すことにより , どのメッセージオブジェクトが割込みペンディング
中であるかチェックすることができます。
■ CAN 割込みペンディングレジスタ (INTPND1, INTPND2)
CAN 割込みペンディングレジスタ 2 ( 上位 )
アドレス
bit15
bit14
Base+A0H
R
R
bit13
bit12
bit11
bit10
IntPnd32 ∼ IntPnd25
R
R
R
R
bit9
bit8
R
R
bit1
bit0
初期値
00000000B
CAN 割込みペンディングレジスタ 2 ( 下位 )
アドレス
bit7
bit6
bit5
Base+A1H
bit4
bit3
bit2
R
R
R
R
初期値
00000000B
IntPnd24 ∼ IntPnd17
R
R
R
R
bit11
bit10
bit9
bit8
R
R
bit2
bit1
bit0
R
R
R
CAN 割込みペンディングレジスタ 1 ( 上位 )
アドレス
bit15
bit14
bit13
R
R
R
Base+A2H
bit12
IntPnd16 ∼ IntPnd9
R
R
R
初期値
00000000B
CAN 割込みペンディングレジスタ 1 ( 下位 )
アドレス
bit7
bit6
bit5
R
R
R
Base+A3H
R
390
: リードオンリ
bit4
bit3
00000000B
IntPnd8 ∼ IntPnd1
R
R
初期値
第 15 章 C-CAN
■ レジスタ機能
IntPnd32 ∼ IntPnd1: 割込みペンディングビット
IntPnd
機能
0
割込み要因がありません。
1
割込み要因があります。
IntPnd ビットのセット / リセット条件を以下に示します。
• セット条件
- TxIE が "1" にセットされている場合 , フレームの正常送信完了によりセットされ
ます。
- RxIE が "1" にセットされている場合 , 受容フィルタを通過したフレームの正常受
信完了によりセットされます。
• リセット条件
- IFx コマンドマスクレジスタが WR/RD に "1", IntPnd に "1" を設定した場合 , IFx
コマンド要求レジスタの書込みにより特定オブジェクトの IntPndをリセットでき
ます。
391
第 15 章 C-CAN
15.4.4.4
CAN メッセージ有効レジスタ
(MSGVAL1, MSGVAL2)
本レジスタは , 全メッセージオブジェクトの MsgVal ビットを表示します。MsgVal
ビットを読み出すことにより , どのメッセージオブジェクトが有効であるかチェッ
クすることができます。
■ CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2)
CAN メッセージ有効レジスタ 2 ( 上位 )
アドレス
bit15
bit14
Base+B0H
R
R
bit13
bit12
bit11
bit10
MsgVal32 ∼ MsgVal25
R
R
R
R
bit9
bit8
R
R
bit1
bit0
初期値
00000000B
CAN メッセージ有効レジスタ 2 ( 下位 )
アドレス
bit7
bit6
bit5
Base+B1H
bit4
bit3
bit2
R
R
R
初期値
00000000B
MsgVal24 ∼ MsgVal17
R
R
R
R
R
bit12
bit11
bit10
bit9
bit8
R
R
bit2
bit1
bit0
R
R
R
CAN メッセージ有効レジスタ 1 ( 上位 )
アドレス
bit15
bit14
bit13
R
R
R
Base+B2H
MsgVal16 ∼ MsgVal9
R
R
R
初期値
00000000B
CAN メッセージ有効レジスタ 1 ( 下位 )
アドレス
bit7
bit6
bit5
R
R
R
Base+B3H
R
392
: リードオンリ
bit4
bit3
00000000B
MsgVal8 ∼ MsgVal1
R
R
初期値
第 15 章 C-CAN
■ レジスタ機能
MsgVal32 ∼ MsgVal1: メッセージ有効ビット
MsgVal
機能
0
メッセージオブジェクトは無効です。
メッセージの送受信は行いません。
1
メッセージオブジェクトは有効です。
メッセージの送受信が可能となります。
MsgVal ビットのセット / リセット条件を以下に示します。
• セット条件
- IFx アビトレーションレジスタ 2 の MsgVal に "1" を設定し , IFx コマンド要求レ
ジスタへの書込みにより特定オブジェクトの MsgVal をセットできます。
• リセット条件
- IFx アビトレーションレジスタ 2 の MsgVal に "0" を設定し , IFx コマンド要求レ
ジスタの書込みにより特定オブジェクトの MsgVal をリセットできます。
393
第 15 章 C-CAN
CAN クロックプリスケーラレジスタ
15.4.5
本レジスタは , CAN インタフェースに供給するクロックの分周比を定義するもので
す。本レジスタの値を変更する場合は , CAN 制御レジスタ (CTRLR) の初期化ビット
(Init) を "1" にセットし , すべてのバス動作を停止してください。
■ CAN クロックプリスケーラレジスタ
CAN クロックプリスケーラレジスタ
アドレス
01A8H
bit15
bit14
bit13
bit12
−
R
−
R
−
R
−
R
bit11
bit10
bit9
bit8
CANPRE3 CANPRE2 CANPRE1 CANPRE0
R/W
R/W
R/W
初期値
00000000B
R/W
R/W : リード / ライト可能
R
: リードオンリ
■ レジスタ機能
[bit15 ∼ bit12] − : 予約ビット
本ビットは "0" が読み出され , 書込みはレジスタに反映されません。
[bit11 ∼ bit8] CAN クロックプリスケーラ設定ビット
CANPRE[3:0]
機能
0000B
CAN クロックとしてシステムクロックの 1/2 周期が選択されます。
( 初期値 : CANPRE[3:0]=0000B)
0001B
001xB
CAN クロックとしてシステムクロックの 1/4 周期が選択されます。
01xxB
CAN クロックとしてシステムクロックの 1/8 周期が選択されます。
1000B
CAN クロックとしてシステムクロックの 2/3 周期が選択されます。
クロックの Duty は 67% となります。 [ 設定禁止 ]
1001B
CAN クロックとしてシステムクロックの 1/3 周期が選択されます。
101xB
CAN クロックとしてシステムクロックの 1/6 周期が選択されます。
11xxB
CAN クロックとしてシステムクロックの 1/12 周期が選択されます。
<注意事項>
• CAN クロックプリスケーラ設定ビットの変更は , CAN 制御レジスタの初期化ビットを
"1" にセットし , すべてのバス動作を停止させた後に行ってください。
• 本レジスタの設定により CAN インタフェースに供給するクロックは 16MHz 以下とし
てください。
• CANPRE[3:0]=1000B は , 設定禁止です。
394
第 15 章 C-CAN
15.5
C-CAN 機能
CAN コントローラの動作と機能について説明します。
以下の機能について説明します。
• メッセージオブジェクト
• メッセージ送信動作
• メッセージ受信動作
• FIFO バッファ機能
• 割込み機能
• ビットタイミング
• テストモード
• ソフトウェア初期化
• CAN クロックプリスケーラ
395
第 15 章 C-CAN
15.5.1
メッセージオブジェクト
メッセージ RAM のメッセージオブジェクトとインタフェースについて説明します。
■ メッセージオブジェクト
メッセージ RAM のメッセージオブジェクト設定 (MsgVal, NewDat, IntPnd, TxRqst ビッ
トを除く ) は , ハードウェアリセットによって初期化されません。そのためメッセージ
オブジェクトを CPU で初期化するか , MsgVal ビットを無効 (MsgVal=0) に設定してく
ださい。また , CAN ビットタイミングレジスタの設定は CAN 制御レジスタの Init ビッ
トが "0" のとき行ってください。
メッセージオブジェクトの設定は , メッセージインタフェースレジスタ (IFx マスクレ
ジスタ , IFx アービトレーションレジスタ , IFx メッセージ制御レジスタ , IFx データレ
ジスタ ) に設定した後 , IFx コマンド要求レジスタへのメッセージ番号の書込みにより ,
そのインタフェースレジスタのデータが指定されたメッセージオブジェクトへ転送さ
れます。
CAN 制御レジスタの Init ビットが "0" にクリアされると CAN コントローラは動作を開
始します。受容フィルタを通過した受信メッセージは , メッセージ RAM へ格納されま
す。送信要求が保留されているメッセージは , メッセージ RAM から CAN コントロー
ラのシフトレジスタへ転送され , CAN バスへの送信が行われます。
CPU は , メッセージインタフェースレジスタ経由で受信メッセージの読出しおよび , 送
信メッセージの更新を行います。また , CAN 制御レジスタおよび , IFx メッセージ制御
レジスタ ( メッセージオブジェクト ) の設定に応じて , CPU への割込みが行われます。
■ メッセージ RAM とのデータ送受信
メッセージインタフェースレジスタとメッセージ RAM とのデータ転送を開始すると ,
IFx コマンド要求レジスタの BUSY ビットを "1" にセットします。転送完了後 , BUSY
ビットは "0" にクリアされます ( 図 15.5-1 参照 )。
IFx コマンドマスクレジスタは , 一つのメッセージオブジェクトの全データ転送か ,
データの部分転送を行うかを設定します。メッセージ RAM の構造上 , メッセージオブ
ジェクトの単一ビット / バイトの書込みは不可能となっており , 常に一つのメッセージ
オブジェクトの全データをメッセージ RAM へ書き込みます。したがって , メッセージ
インタフェースレジスタからメッセージ RAM へのデータ転送は , リードモディファイ
ライトサイクルを実行しています。
396
第 15 章 C-CAN
図 15.5-1 メッセージインタフェースレジスタとメッセージ RAM のデータ転送
スタート
NO
IFxコマンド要求レジスタへ
書込み
YES
Busy = 1
Interrupt = 0
NO
YES
WR/RD = 1
メッセージRAMからメッセージインタフェース
レジスタへ読出し
メッセージRAMからメッセージインタフェース
レジスタへ読出し
メッセージインタフェースレジスタから
メッセージRAMへの書込み
Busy = 0
Interrupt = 1
397
第 15 章 C-CAN
メッセージ送信動作
15.5.2
送信メッセージオブジェクトの設定方法および送信動作について説明します。
■ メッセージ送信
メッセージインタフェースレジスタとメッセージ RAM 間でデータ転送がない場合 ,
CAN メッセージ有効レジスタの MsgVal ビットと CAN 送信要求レジスタの TxRqst ビッ
トを評価します。送信要求を保留している中で , 最高優先度の有効であるメッセージオ
ブジェクトが , 送信用のシフトレジスタへ転送が行われます。そのときメッセージオブ
ジェクトの NewDat ビットは "0" にリセットされます。
正常に送信が完了したとき, メッセージオブジェクトに新たなデータがない(NewDat=0)
場合は , TxRqst ビットは "0" にリセットされます。TxIE が "1" にセットされている場
合は , 送信成功後に IntPnd ビットが "1" にセットされます。CAN コントローラが CAN
バス上で調停に負けた場合 , あるいは転送中にエラーが発生した場合は , CAN バスが
アイドルになり次第 , 直ちにメッセージの再送信が行われます。
■ 送信優先度
メッセージオブジェクトの送信優先度は , メッセージ番号によって決定します。メッ
セージオブジェクト 1 が最高の優先度で , メッセージオブジェクト 32 ( 搭載している
最大メッセージオブジェクト番号 ) が最低優先度となります。したがって , 2 つ以上の
送信要求が保留されていると , 対応するメッセージオブジェクトの小さい番号順に転
送が行われます。
■ 送信メッセージオブジェクトの設定
表 15.5-1 に送信オブジェクトの初期化方法を示します。
表 15.5-1 送信メッセージオブジェクトの初期化
MsgVal
Arb
Data
Mask
EoB
Dir
1
appl.
appl.
appl.
1
1
NewDat MsgLst
0
0
RxIE
TxIE
0
appl.
IntPnd RmtEn TxRqst
0
appl.
0
IFx アービトレーションレジスタ (ID28 ∼ ID0 と Xtd ビット ) は , アプリケーションで
与えられ , 送信メッセージの ID およびメッセージの種類を定義します。
標準フレーム (11 ビット ID) を設定した場合は , ID28 ∼ ID18 を使用し , ID17 ∼ ID0 は
無効となります。拡張フレーム (29 ビット ID) を設定した場合は , ID28 ∼ ID0 を使用
します。
TxIE ビットに "1" をセットすると , メッセージオブジェクトの送信成功後に IntPnd ビッ
トが "1" にセットされます。
RmtEn ビットに "1" をセットすると , 一致するリモートフレームを受信後 , TxRqst ビッ
トに "1" をセットし , データフレームを自動的に送信します。
データレジスタ (DLC3 ∼ DLC0,Data7 ∼ Data) の設定は , アプリケーションで与えられ
ます。
UMask=1 のとき , IFx マスクレジスタ (Msk28 ∼ Msk0, UMask, MXtd, MDir ビット ) は ,
マスク設定によりグループ化された ID を持つリモートフレームを受信し , その後 , 送
信を許可 (TxRqst ビットに "1" をセット ) するために使用されます。
398
第 15 章 C-CAN
詳細は , 「15.5.3 メッセージ受信動作」のリモートフレームを参照してください。
<注意事項>
IFx マスクレジスタの Dir ビットをマスク許可に設定することは禁止です。
■ 送信メッセージオブジェクトの更新
CPU は , 送信メッセージオブジェクトのデータをメッセージインタフェースレジスタ
経由で , 更新することができます。
送信メッセージオブジェクトのデータは , 対応する IFx データレジスタの 4 バイト単位
(IFx データレジスタ A, IFx データレジスタ B 単位 ) でデータ書込みが行われます。そ
のため 1 バイトだけ送信メッセージオブジェクトを変更することはできません。
8 バイトのデータのみを更新するときは , まず IFx コマンドマスクレジスタへ 0087B の
書込みを行います。そして , IFx コマンド要求レジスタへメッセージ番号の書込みによ
り , 送信メッセージオブジェクトのデータ更新 (8 バイトデータ ) と TxRqst ビットへの
"1" 書込みが同時に行われます。
送信中のメッセージ番号に連続して送信させたい場合 , TxRqst ビットと NewDat に "1"
を設定してください。TxRqst ビットは "0" にリセットされずに連続送信が可能となり
ます。
NewDat ビットが "1", TxRqst ビットがともに "1" の場合 , 送信を開始すると NewDat ビッ
トは "0" にリセットされます。
<注意事項>
• データを更新する場合は , IFx データレジスタ A もしくは IFx データレジスタ B の 4 バ
イト単位で行ってください。
• データのみを更新する場合は , NewDat ビットと TxRqst ビットに "1" を設定してくだ
さい。
399
第 15 章 C-CAN
15.5.3
メッセージ受信動作
受信メッセージオブジェクトの設定方法および受信動作について説明します。
■ 受信メッセージの受容フィルタ
メッセージのアービトレーション / コントロールフィールド (ID + IDE + RTR + DLC)
が CAN コントローラ受信用シフトレジスタへ完全にシフトされると , 有効メッセージ
オブジェクトとの一致比較のためにメッセージ RAM のスキャンを開始します。
このとき , メッセージ RAM のメッセージオブジェクトから調停フィールドとマスク
データ (MsgVal, UMask, NewDat, EoB を含む ) がロードされ , メッセージオブジェクト
とシフトレジスタの調停フィールドがマスクデータを含んで比較されます。
この動作は ,“メッセージオブジェクトとシフトレジスタの調停フィールドが一致検出
されるまで ”, または“メッセージ RAM の最終ワードに到達するまで”, 繰り返し実行
します。一致が検出されると , メッセージ RAM のスキャンは停止され , 受信フレーム
のタイプ ( データフレームまたはリモートフレーム ) により , CAN コントローラは処
理を行います。
■ 受信優先度
メッセージオブジェクトの受信優先度は , メッセージ番号によって決定します。メッ
セージオブジェクト 1 が最高の優先度で , メッセージオブジェクト 32 ( 搭載している
最大メッセージオブジェクト番号 ) が最低優先度となります。したがって , 受容フィル
タで2つ以上一致した場合は, メッセージ番号の小さい番号が受信メッセージオブジェ
クトとなります。
■ データフレーム受信
CAN コントローラは , 受容フィルタで一致したメッセージオブジェクトのメッセージ
RAM へ , シフトレジスタから受信メッセージを転送し格納します。この格納するデー
タは , データバイトだけではなく , すべてのアービトレーションフィールドおよびデー
タ長コードも格納します。これは , IFx マスクレジスタがマスク設定されている場合で
も実行されます (ID とデータバイトを保持するために格納されます )。
NewDat ビットは , 新たなデータが受信されると "1" にセットされます。CPU がメッ
セージオブジェクトを読み出したときには , NewDat ビットを "0" にリセットしてくだ
さい。メッセージ受信時に , 既に NewDat ビットが "1" にセットされている場合は , そ
の前のデータが失われたことになり , MsgLst が "1" にセットされます。
RxIE ビットが "1" にセットされている場合 , メッセージバッファを受信すると CAN 割
込みペンディングレジスタの IntPnd ビットに "1" をセットします。そのとき , そのメッ
セージオブジェクトの TxRqst ビットは "0" にリセットされます。これは , リモートフ
レーム送信処理中に , 要求データフレームを受信した場合 , 送信処理を防ぐために行わ
れます。
400
第 15 章 C-CAN
■ リモートフレーム
リモートフレーム受信時の動作は , 下記の 3 つの処理があります。一致するメッセージ
オブジェクトの設定より , リモートフレーム受信時の処理が選択されます。
1) Dir=1 ( 送信方向 ), RmtEn=1, UMask=1 または UMask=0
一致したリモートフレームの受信を行い , このメッセージオブジェクトの TxRqst
ビットのみ "1" にセットされ , リモートフレームに対するデータフレームの自動返
信 ( 送信 ) を行います (TxRqst ビット以外のメッセージオブジェクトは変更されま
せん )。
2) Dir=1 ( 送信方向 ), RmtEn=0, UMask=0
受信したリモートフレームがメッセージオブジェクトと一致しても受信しないで
リモートフレームを無効にします ( このメッセージオブジェクトの TxRqst ビットは
変更されません )。
3) Dir=1 ( 送信方向 ), RmtEn=0, UMask=1
受信したリモートフレームがメッセージオブジェクトと一致した場合 , このメッ
セージオブジェクトの TxRqst ビットは "0" にリセットされ , リモートフレームは受
信データフレームのように処理されます。受信したアービトレーションフィールド
とコントロールフィールド (ID + IDE + RTR + DLC) は , メッセージ RAM のメッセー
ジオブジェクトへ格納され , このメッセージオブジェクトの NewDat ビットが "1" に
セットされます。メッセージオブジェクトのデータフィールドは変更されません。
■ 受信メッセージオブジェクトの設定
表 15.5-2 に受信メッセージオブジェクトの初期化方法を示します。
表 15.5-2 受信メッセージオブジェクトの初期化
MsgVal
Arb
Data
Mask
EoB
Dir
1
appl.
appl.
appl.
1
0
NewDat MsgLst
0
0
RxIE
TxIE
appl.
0
IntPnd RmtEn TxRqst
0
0
0
IFx アービトレーションレジスタ (ID28 ∼ ID0, Xtd ビット ) は , アプリケーションによっ
て与えられ , 受容フィルタに用いられる受信メッセージ ID とメッセージの種類を定義
します。
標準フレーム (11 ビット ID) を設定した場合は , ID28 ∼ ID18 を使用し , ID17 ∼ ID0 は
無効となります。また , 標準フレームが受信されると , ID17 ∼ ID0 は "0" にリセットさ
れます。拡張フレーム (29 ビット ID) を設定した場合は , ID28 ∼ ID0 を使用します。
RxIE ビットが "1" にセットされた場合 , 受信データフレームがメッセージオブジェク
トへ格納されると IntPnd ビットが "1" にセットされます。
データ長コード (DLC3 ∼ DLC0) は , アプリケーションによって与えられます。CAN コ
ントローラが , 受信データフレームをメッセージオブジェクトへ格納するとき , 受信
データ長コードと 8 バイトのデータを格納します。データ長コードが 8 未満の場合は ,
メッセージオブジェクトの残りのデータは不定データが書き込まれます。
UMask=1 のとき , IFx マスクレジスタ (Msk28 ∼ Msk0, UMask, MXtd, MDir ビット ) は ,
マスク設定によりグループ化された ID を持つデータフレームの受信を許可するために
使用します。詳細は , 「15.5.3 メッセージ受信動作」のデータフレーム受信を参照して
ください。
401
第 15 章 C-CAN
<注意事項>
IFx マスクレジスタの Dir ビットのマスク設定は禁止です。
■ 受信メッセージの処理
CPU は , メッセージインタフェースレジスタを介して , 受信メッセージをいつでも読み
出すことが可能です。
通常 , IFx コマンドマスクレジスタに "007FB" を書き込みます。次にメッセージオブジェ
クトのメッセージ番号を IFx コマンド要求レジスタに書き込みます。この手順によっ
て , 指定されたメッセージ番号の受信メッセージをメッセージ RAM からメッセージイ
ンタフェースレジスタに転送します。このとき , IFx コマンドマスクレジスタの設定に
より , メッセージオブジェクトの NewDat ビットと IntPnd ビットを "0" にクリアするこ
とが可能です。
受信メッセージの処理は, 受容フィルタにより一致した場合, メッセージを受信します。
メッセージオブジェクトで受容フィルタのマスクを使用している場合は , マスク設定
されたデータが受容フィルタから除外され , メッセージを受信するか判断します。
NewDat ビットは , メッセージオブジェクトが最後に読み出されてから , 新しいメッ
セージが受信されたかを示します。
MsgLst ビットは , 受信したデータがメッセージオブジェクトから読み出されない状態
で次の受信データを受信したために前のデータを失ってしまったことを示します。
MsgLst ビットは自動的にリセットされません。
リモートフレーム送信処理中に , 受容フィルタにより一致するデータフレームが受信
された場合には , TxRqst ビットは自動的に "0" にリセットされます。
402
第 15 章 C-CAN
FIFO バッファ機能
15.5.4
受信メッセージ処理におけるメッセージオブジェクトの FIFO バッファの構成および
動作について説明します。
■ FIFO バッファの構成
FIFOバッファの受信メッセージオブジェクトの構成は, EoBビットを除いて, 受信メッ
セージオブジェクトの構成と同じです (「15.5.3 メッセージ受信動作」の受信メッセー
ジオブジェクトの設定を参照してください )。
FIFO バッファは , 2 つ以上の受信メッセージオブジェクトを連結して使用します。こ
の FIFO バッファへ受信メッセージを格納するためには , 受信メッセージオブジェクト
の ID とマスクを使用する場合はそれらの設定を一致させなければなりません。
FIFO バッファの最初の受信メッセージオブジェクトは , 優先順位の高いメッセージ番
号の小さい番号となります。FIFO バッファの最後の受信メッセージオブジェクトは ,
EoB ビットに "1" をセットし , FIFO バッファブロックの終わりを示す必要があります
(FIFO バッファ構成を使用するメッセージオブジェクトの最終メッセージオブジェク
ト以外は , EoB ビットに "0" を設定してください )。
<注意事項>
• FIFO バッファで使用するメッセージオブジェクトの ID とマスク設定は必ず同じ設定
にしてください。
• FIFO バッファを使用しない場合は , 必ず EoB ビットに "1" を設定してください。
■ FIFO バッファによるメッセージ受信
受信メッセージが , FIFO バッファの ID と一致した場合は , 最小メッセージ番号の FIFO
バッファの受信メッセージオブジェクトへ格納されます。
FIFO バッファの受信メッセージオブジェクトへメッセージが格納されると , この受信
メッセージオブジェクトの NewDat ビットが "1" にセットされます。EoB ビットが "0"
の受信メッセージオブジェクトへ NewDat ビットをセットすると , CAN コントローラ
による FIFO バッファ書込みは , 最後の受信メッセージオブジェクト (EoB ビット =1)
に到達するまで , 受信メッセージオブジェクトは保護され , 書込みが行われません。
最終FIFOバッファまで有効なデータが格納された状態で受信メッセージオブジェクト
の NewDat ビットに "0" 書込み ( 書込み保護の解除 ) が行われないと次に受信された
メッセージが最終メッセージオブジェクトへ書き込まれ , メッセージは上書きされて
しまいます。
403
第 15 章 C-CAN
■ FIFO バッファからの読出し
CPU が受信メッセージオブジェクトの内容を読み出すには , IFx コマンド要求レジスタ
へ受信メッセージ番号を書き込むことによって , メッセージインタフェースレジスタ
に転送され読み出すことができます。このとき , IFx コマンドマスクレジスタの WR/RD
を "0"( 読出し ) および , TxRqst/NewDat=1, IntPnd=1 に設定し , NewDat ビットと IntPnd
ビットを "0" にリセットしてください。
FIFO バッファの機能を保証するために , FIFO バッファの受信メッセージオブジェクト
は , 必ず最小のメッセージ番号から読み出してください。
図 15.5-2 に FIFO バッファで連結されるメッセージオブジェクトの CPU の処理方法を
示します。
図 15.5-2 FIFO バッファの CPU 処理
スタート
メッセージ割込み
CAN割込みレジスタ
読出し
8000H
0000H
CAN割込みレジスタ値
8000H, 0000H以外
状態割込み処理実行
終了
(通常処理)
メッセージ番号 =
CAN割込みレジスタ値
IFxコマンド要求レジスタ
(メッセージ番号)書込み
メッセージインタフェースレジスタ
読出し
(リセット:NewDat=0, IntPnd=0)
IFxメッセージ制御レジスタ
読出し
NO
NewDat = 1
YES
IFxメッセージデータレジスタA,B
読出し
YES
EoB = 1
NO
メッセージ番号 = メッセージ番号+1
404
第 15 章 C-CAN
15.5.5
割込み機能
ステータス割込み (IntId=8000H) およびメッセージ割込み (IntId= メッセージ番号 )
による割込み処理について説明します。
複数の割込みが保留中である場合 , CAN 割込みレジスタは , 保留中の最高優先度の割
込みコードを示します。割込みコードの設定された時間順は無視され , 常に優先順位の
高い割込みコードが表示されます。CPU がクリアするまで割込みコードは保持されま
す。
ステータス割込み (IntId ビットの 8000H) は , 最高優先度となります。
メッセージ割込みの優先度は , メッセージ番号の小さいメッセージが高く , 大きいメッ
セージが低くなります。
メッセージ割込みは , メッセージオブジェクトの IntPnd ビットのクリアによってクリ
アされます。ステータス割込みは , CAN ステータスレジスタの読出しでクリアされま
す。
CAN 割込みペンディングレジスタの IntPnd ビットは , 割込みの有無を示します。保留
中の割込みがないときは , IntPnd ビットは "0" を示します。
CAN 制御レジスタの IE ビットおよび , IFx メッセージ制御レジスタの TxIE ビット ,RxIE
ビットに "1" をセットしている状態で , IntPnd ビットが "1" になると CPU への割込み信
号がアクティブになります。割込み信号は , CAN 割込みペンディングレジスタが "0"
にクリアされる ( 割込み要因リセット ) か , CAN 制御レジスタの IE ビットが "0" にリ
セットされるまでアクティブ状態を保持します。
CAN 割込みレジスタの 8000H は , CAN コントローラによって CAN ステータスレジス
タが更新されたことを示し , この割込みが最高優先度となります。CAN ステータスレ
ジスタの更新による割込みは , CAN 制御レジスタの EIE ビットと SIE ビットにより
CAN 割込みレジスタへの設定許可または禁止の制御ができます。また , CPU への割込
み信号の制御は , CAN 制御レジスタの IE ビットで行うことができます。
CAN ステータスレジスタの RxOk ビット , TxOk ビット , LEC ビットは , CPU からの書
込みにより更新 ( リセット ) することができますが , その書込みにより割込みのセット
またはリセットを行うことはできません。
CAN 割込みレジスタの 8000H, 0000H 以外は , メッセージ割込みが保留中であることを
示し , 優先度の高い保留中のメッセージ割込みを示します。
CAN 割込みレジスタは , IE がリセットされた場合でも更新されます。
CPU へのメッセージ割込みの原因は , CAN 割込みレジスタまたは CAN 割込みペンディ
ングレジスタで確認することができます(
「15.4.4 メッセージハンドラレジスタ」参照)。
メッセージ割込みをクリアする場合 , 同時にメッセージデータを読み出すことは可能
であり , CAN 割込みレジスタで示されているメッセージ割込みをクリアすると次に優
先度の高い割込みが CAN 割込みレジスタにセットされ , 次の割込み処理を待つことに
なります。割込みがない場合には , CAN 割込みレジスタは 0000H を示します。
405
第 15 章 C-CAN
<注意事項>
• ステータス割込み (IntId=8000H) は , CAN ステータスレジスタの読出しアクセスにより
割込みクリアされます。
• CAN ステータスレジスタの書込みアクセスによる , ステータス割込み (IntId=8000H) は
発生しません。
406
第 15 章 C-CAN
15.5.6
ビットタイミング
ビットタイミングについての概要と CAN コントローラにおけるビットタイミングに
ついて説明します。
CAN ネットワークの各 CAN ノードは , それぞれクロック発振器 ( 通常は水晶発振器 )
を持っています。ビットタイムのタイムパラメータは , CAN ノードごとに個別に構成
できます。CAN ノードの発振周期 (fosc) が異なっていても , 共通のビットレートを作
り出せます。
これらの発振器の周波数は , 温度や電圧の変化 , コンポーネントの悪化により少し異な
ります。その変動が発振器の許容範囲 (df) 内である限りは , CAN ノードはビットスト
リームへ再同期化することで異なるビットレートを補償できます。
CAN 仕様に応じて , ビットタイムは 4 つの区分に分けられ ( 図 15.5-3 参照 ), 同期化部
(Sync_Seg), 伝送時間部 (Prop_Seg), フェーズバッファ部 1 (Phase_Seg1), フェーズバッ
ファ部 2 (Phase_Seg2) で構成されます。それぞれの区分は , プログラマブルな時間量 (
表 15.5-3 参照 ) からなります。ビットタイムの基本単位時間 (tq) は , CAN コントロー
ラのシステムクロック fsys とボーレートプリスケーラ (BRP) で定義されます。
tq = BRP / fsys
CAN のシステムクロック fsys は , Clock 入力の周波数 ( 図 15.2-1 参照 ) になります。同
期化部の Sync_Seg は , CAN バスのエッジを期待するビットタイム内のタイミングとな
ります。伝送時間部の Prop_Seg は , CAN ネットワーク内の物理的遅延時間を補償しま
す。フェーズバッファ部の Phase_Seg1, Phase_Seg2 は , サンプリングポイントを指定しま
す。再同期化ジャンプ幅 (SJW) は , エッジフェーズエラーを補償するために再同期化
時のサンプリングポイントの移動幅を定義します。
図 15.5-3 ビットタイミング
1ビットタイム(BT)
Sync
_Seg
Prop_Seg
1単位時間
(tq)
Phase_Seg1
Phase_Seg2
サンプリングポイント
407
第 15 章 C-CAN
表 15.5-3 CAN ビットタイムのパラメータ
パラメータ
レンジ
機能
BRP
[1-32]
Sync_Seg
1 tq
Prop_Seg
[1-8] tq
物理遅延時間の補償
Phase_Seg1
[1-8] tq
サンプルポイント前のエッジフェーズエラー保証
同期化により一時的に長くされる可能性があります。
Phase_Seg2
[1-8] tq
サンプルポイント後のエッジフェーズエラー保証
同期化により一時的に短くされる可能性があります。
SJW
[1-4] tq
再同期化ジャンプ幅
どちらかのフェーズバッファ部より長くなることはあり
ません。
時間量の長さ tq の定義
固定長 システムクロックへの同期化
次に CAN コントローラにおけるビットタイミングを示します。
図 15.5-4 CAN コントローラにおけるビットタイミング
1ビットタイム(BT)
Sync
_Seg
TEG1
1単位時間
(tq)
408
TEG2
サンプリングポイント
第 15 章 C-CAN
表 15.5-4 CAN コントローラのパラメータ
パラメータ
レンジ
機能
BRPE,BRP
[0-1023]
時間量の長さ tq の定義
ビットタイミングレジスタおよびプレスケーラ拡張レジ
スタにより最大 1024 までプリスケーラを拡張できます。
Sync_Seg
1 tq
TSEG1
[1-15] tq
サンプリングポイント前のタイムセグメントです。
Prop_Seg と Phase_Seg1 に相当します。
ビットタイミングレジスタにより制御可能です。
TSEG2
[0-7] tq
サンプリングポイント後のタイムセグメントです。
Phase_Seg2 に相当します。
ビットタイミングレジスタにより制御可能です。
SJW
[0-3] tq
再同期化ジャンプ幅です。
ビットタイミングレジスタにより制御可能です。
システムクロックへの同期化
固定長
各パラメータの関係を以下に示します。
tq=([BRPE,BRP]+1) / fsys
BT=SYNC_SEG + TEG1 + TEG2
=(1 + (TSEG1 + 1) + (TSEG2 + 1)) × tq
=(3 + TSEG1 + TSEG2) × tq
409
第 15 章 C-CAN
15.5.7
テストモード
テストモードの設定方法および動作について説明します。
■ テストモード設定
CAN 制御レジスタの Test ビットに "1" をセットすることでテストモードなります。テ
ストモードに設定すると , CAN テストレジスタのビット Tx1, Tx0, LBack, Silent, Basic
ビットが有効となります。
CAN 制御レジスタの Test ビットを "0" にリセットすることにより , すべてのテストレ
ジスタ機能を無効にします。
■ サイレントモード
CAN テストレジスタの Silent ビットを "1" にセットすることにより , CAN コントロー
ラをサイレントモードに設定できます。
サイレントモードでは, データフレームとリモートフレームを受信可能であるが, CAN
バス上にはレセッシブのみ出力し , メッセージおよび ACK の送信を行いません。
CAN コントローラがドミナントビット (ACK ビット , オーバロードフラグ , アクティ
ブエラーフラグ ) の送信を要求された場合 , CAN コントローラ内部の折り返し回路で
RX 側に送信されます。この動作では , CAN バス上においてレセッシブ状態であっても ,
受信側ではCANコントローラ内部で折り返し送信されたドミナントビットを受信しま
す。
サイレントモードでは , ドミナントビット (ACK ビット , エラーフラグ ) 送信による影
響がない状態で , CAN バス上のトラフィック解析ができます。
図 15.5-5 にサイレントモードでの信号 CAN_TX と CAN_RX の CAN コントローラへの
接続を示します。
図 15.5-5 サイレントモードでの CAN コントローラ
CAN_TX
CAN_RX
CANコントローラ
Silent ビット= 1
Tx
CAN Core
410
Rx
第 15 章 C-CAN
■ ループバックモード
CAN テストレジスタの LBack ビットを "1" にセットすることにより , CAN コントロー
ラをループバックモードに設定できます。
ループバックモードは , 自己診断機能に使用できます。
ループバックモードでは , CAN コントローラ内部で TX 側と RX 側が接続され , CAN
コントローラが送信したメッセージを , RX 側で受信したメッセージとして扱い , 受容
フィルタを通過したメッセージは , 受信バッファに格納します。
図 15.5-6 にループバックモードでの信号 CAN_TX と CAN_RX の CAN コントローラへ
の接続を示します。
図 15.5-6 ループバックモードの CAN コントローラ
CAN_TX
CAN_RX
Tx
Rx
CANコントローラ
CAN Core
<注意事項>
外部信号から独立するため , データ / リモートフレームのアクノリッジスロットでのドミ
ナントビットはサンプリングされません。そのため通常 , CAN コントローラはアクノリッ
ジエラーを発生しますが , 本テストモードではアクノリッジエラーを発生しないようにし
ています。
411
第 15 章 C-CAN
■ サイレントモードとループバックモードの結合
CAN テストレジスタの LBack ビットと Silent ビットを同時に "1" にセットすることに
より , ループバックモードとサイレントモードを結合させ動作することが可能です。
このモードは , 「ホットセルフテスト」用に使用できます。「ホットセルフテスト」と
は , CAN コントローラがループバックモードでテストしたときに , CAN_TX 端子には
レセッシブの固定出力 , CAN_RX 端子からの入力は無効となりますので , CAN システ
ムの動作に影響がないことを意味しています。
図 15.5-7 にサイレントモードとループバックモードの結合したときの信号 CAN_TX と
CAN_RX の CAN コントローラへの接続を示します。
図 15.5-7 サイレントモードとループバックモードの結合された CAN コントローラ
CAN_TX
CAN_RX
CANコントローラ
LBack ビットとSilent ビット= 1
Tx
Rx
CAN Core
■ ベーシックモード
CAN テストレジスタの Basic ビットを "1" にセットすることにより , CAN コントロー
ラをベーシックモードに設定できます。
ベーシックモードでは , CAN コントローラは , メッセージ RAM を使用せずに動作しま
す。
IF1 メッセージインタフェースレジスタは , 送信制御用として使用されます。
メッセージ送信を行う場合 , まず , IF1 メッセージインタフェースレジスタに送信する
内容を設定します。次に , IF1 コマンド要求レジスタの Busy ビットに "1" をセットする
ことで送信要求します。Busy ビットが "1" にセットされている間 , IF1 メッセージイン
タフェースレジスタをロックししている , または送信が保留されていることを示しま
す。
Busy ビットに "1" がセットされると CAN コントローラは以下の動作を行います。
CANバスがバスアイドルになるとすぐに, IF1メッセージインタフェースレジスタの内
容を , 送信用シフトレジスタへロードし , 送信を開始します。正常に送信完了すると ,
Busy ビットが "0" にリセットされ , ロックされていた IF1 メッセージインタフェースレ
ジスタを開放します。
送信が保留されているときに , IF1 コマンド要求レジスタの Busy ビットを "0" にリセッ
トすることでいつでも中断できます。また , 送信中に Busy ビットを "0" にリセットす
ると , 調停負けやエラーなどの場合に行われる再送信を停止します。
412
第 15 章 C-CAN
IF2 メッセージインタフェースレジスタは , 受信制御用として使用されます。
メッセージの受信は , 受容フィルタを使用せずにすべて受信します。IF2 コマンド要求
レジスタの Busy ビットを "1" にセットすることにより , 受信したメッセージの内容を
読み出すことが可能となります。
Busy ビットに "1" がセットされると CAN コントローラは以下の動作を行います。
- 受信したメッセージ ( 受信用のシフトレジスタの内容 ) を受容フィルタなしで ,
IF2 メッセージインタフェースレジスタへ格納します。
新しいメッセージが IF2 メッセージインタフェースレジスタに格納された場合 , CAN
コントローラが NewDat ビットを "1" にセットします。また , NewDat ビットが "1" の
ときに , さらに新しいメッセージを受信した場合は , CAN コントローラが MsgLst を "1"
にセットします。
<注意事項>
• ベーシックモードでは , 制御 / 状態ビットに関係するすべてのメッセージオブジェクト
と IFx コマンドマスクレジスタの制御モード設定は無効となります。
• コマンド要求レジスタのメッセージ番号は無効です。
• IF2 メッセージ制御レジスタの NewDat ビットと MsgLst ビットは通常時と同様に動作
し , DLC3 ∼ DLC0 は受信された DLC を示し , ほかの制御ビットは "0" として読み出さ
れます。
■ 端子 CAN_TX のソフトウェア制御
CAN 送信端子である CAN_TX は , 4 つの出力機能があります。
• シリアルデータ出力 ( 通常出力 )
• CANコントローラのビットタイミングをモニタするための, CANサンプリングポイ
ント信号出力
• ドミナント固定出力
• レセッシブ固定出力
ドミナントおよびレセッシブの固定出力は , CAN 受信端子の CAN_RX モニタ機能と共
に , CAN バスの物理層のチェックに使用することができます。
CAN_TX 端子の出力モードは , CAN テストレジスタの Tx1 と Tx0 ビットにより制御可
能です。
<注意事項>
CAN メッセージ送信もしくはループバックモード , サイレントモード , ベーシックモード
を使用する際は , CAN_TX をシリアルデータ出力に設定する必要があります。
413
第 15 章 C-CAN
15.5.8
ソフトウェア初期化
ソフトウェアによる初期化について説明します。
ソフトウェアでの初期化要因を以下に示します。
• ハードウェアリセット
• CAN 制御レジスタの Init ビットの設定
• バスオフ状態への遷移
ハードウェアによるリセットは, メッセージRAM (MsgVal, NewDat, IntPnd, TxRqstビッ
トを除く ) 以外すべて初期化されます。メッセージ RAM はハードウェアによるリセッ
ト後 , CPU によって初期化するかメッセージ RAM の MsgVal を "0" にしてください。
また , ビットタイミングレジスタを設定する場合には , CAN 制御レジスタの Init ビット
を "0" にクリアする前に設定してください。
CAN 制御レジスタの Init ビットは , 以下の条件で "1" にセットされます。
- CPU からの "1" 書込み
- ハードウェアリセット
- バスオフ
Init ビットが "1" にセットされると , CAN バスの全メッセージ送受信は停止され , CAN
バス出力のCAN_TX端子はレセッシブ出力となります(CAN_TXテストモードは除く)。
Init ビットに "1" をセットすると , エラーカウンタは変化しませんし , レジスタも変更
されません。
CAN 制御レジスタの Init ビットと CCE ビットが "1" にセットされると , ボーレート制
御用のビットタイミングレジスタとプリスケーラ拡張レジスタへの設定が可能となり
ます。
Init ビットを "0" にリセットすることによりソフトウェア初期化を終了します。また ,
Init ビットを "0" にすることは , CPU からのアクセスでしか実行できません。
Init ビットが "0" にリセットされてから , 連続した 11 ビットのレセッシブの発生 ( =バ
スアイドル ) を待つことにより , CAN バス上のデータ転送と同期化した後 , メッセージ
の転送が行われます。
通常動作中にメッセージオブジェクトのマスク , ID, XTd, EoB, RmtEn を変更する場合 ,
MsgVal を無効に設定してから変更してください。
414
第 15 章 C-CAN
15.5.9
CAN クロックプリスケーラ
PLL 動作中の CAN クロック切換えについて説明します。
■ ブロック図
CAN クロックプリスケーラの概要について以下のブロック図に示します。
CANクロックプリスケーラレジスタのCANPREビットの設定に従いCANインタフェー
スに供給されるクロックの分周比が決定されます。
CAN クロック4
PLL
CAN クロック3
クロック
分割
X0
CAN クロック2
CAN クロック1
Div by
CANPRE
CAN クロック0
415
第 15 章 C-CAN
■ クロック切換え手順
CAN クロックプリスケーラを使用したクロックの切換え方法については , 以下に示さ
れる手順を推奨します。
CAN クロック切換え :
OSCILLATOR -> PLL
CAN クロック切換え :
PLL -> OSCILLATOR
CAN制御レジスタの
Initビットの設定
CAN制御レジスタの
Initビットの設定
PLL可能
プリスケーラ値設定
PLL ロック時間待ち
PLL禁止
プリスケーラ値設定
CAN制御レジスタの
Initビットのリセット
CAN制御レジスタの
Initビットのリセット
416
第 15 章 C-CAN
■ CAN クロックプリスケーラ設定
CAN クロックプリスケーラに設定可能な値を示します。
CAN インタフェースに供給されるクロックは , システムクロックを CAN クロックプリ
スケーラの設定値に従い分周されたものとなります。
CANPRE[3:0]
機能
システムクロック
:32 MHz 時
0000B
CAN クロックとしてシステムクロックの 1/2 周
期が選択されます。
( 初期値 : CANPRE[3:0]=0000B)
16MHz
001xB
CAN クロックとしてシステムクロックの 1/4 周
期が選択されます。
8MHz
01xxB
CAN クロックとしてシステムクロックの 1/8 周
期が選択されます。
4MHz
1000B
CAN クロックとしてシステムクロックの 2/3 周
期が選択されます。
クロックの Duty は 67% となります。
21.33MHz
( 設定禁止 )
1001B
CAN クロックとしてシステムクロックの 1/3 周
期が選択されます。
10.67MHz
101xB
CAN クロックとしてシステムクロックの 1/6 周
期が選択されます。
5.33MHz
11xxB
CAN クロックとしてシステムクロックの 1/12
周期が選択されます。
2.67MHz
0001B
<注意事項>
• CAN クロックプリスケーラ設定ビットの変更は , CAN 制御レジスタの初期化ビットを
"1" にセットし , すべてのバス動作を停止させた後に行ってください。
• 本レジスタの設定により CAN インタフェースに供給するクロックは 16MHz 以下とし
てください。
• CANPRE[3:0]=1000B は , 設定禁止です。
417
第 15 章 C-CAN
418
第 16 章
8/10 ビット A/D コンバータ
A/D コンバータの概要 , レジスタの構成 / 機能およ
び動作について説明します。
16.1 概要
16.2 構成
16.3 端子
16.4 レジスタ
16.5 割込み
16.6 動作説明
16.7 A/D 変換データ保護機能
16.8 使用上の注意
419
第 16 章 8/10 ビット A/D コンバータ
16.1
概要
8/10 ビット A/D コンバータには , RC 逐次比較変換方式でアナログ入力電圧を 10
ビットもしくは 8 ビットのデジタル値に変換する機能があります。入力信号は , 各
アナログ入力端子から選択し , 変換起動はソフトウェア , 内部クロック , 外部端子ト
リガの 3 種類から選択できます。
■ 8/10 ビット A/D コンバータの概要
アナログ入力端子に入力されたアナログ電圧 ( 入力電圧 ) をデジタル値に A/D 変換す
る機能があり , 次の特長をもっています。
• 変換時間は , 最小 1.2 µs( マシンクロック 33 MHz 時 , サンプリング時間を含む ) です。
• 変換方式は , サンプルホールド回路付き RC 逐次変換比較方式です。
• 10 ビットまたは 8 ビットの分解能が選択できます。
• アナログ入力端子はプログラムで選択できます。
• A/D 変換終了時に割込み要求を発生できます。
• 割込み許可の状態では変換データ保護機能が働くため連続変換してもデータの欠
落がありません。
• 変換の起動要因はソフトウェア , 16 ビットリロードタイマ 1 もしくは多機能タイマ
( 立上りエッジ ) , 外部端子トリガ ( 立下りエッジ ) から選択できます。
変換モードは 3 種類あります。
表 16.1-1 8/10 ビット A/D コンバータの変換モード
変換モード
シングル変換動作
スキャン変換動作
単発変換モード
指定したチャネル (1 チャネル
のみ ) を 1 回変換して終了
連続した複数のチャネル ( 最
大 7 チャネルまで指定可能 )
を 1 回変換して終了
連続変換モード
指定したチャネル (1 チャネル
のみ ) を繰り返し変換
連続した複数のチャネル ( 最
大 7 チャネルまで指定可能 )
を繰り返し変換
停止変換モード
指定したチャネル (1 チャネル
のみ ) を 1 回変換したら一時
停止し , 次の起動がかかるま
で待機
連続した複数のチャネル ( 最
大 7 チャネルまで指定可能 )
を変換
ただし , 1 チャネル変換ごとに
一時停止し , 次の起動がかか
るまで待機
<注意事項>
• 本品種では , 4 チャネルのアナログ入力をもつユニット 1 と , 7 チャネルのアナログ
入力をもつユニット 2 の 2 ユニットを搭載しています。
• ユニット 2 の起動要因で , 多機能タイマによる起動許可をしたときは , リロードタ
イマ 1 による起動はできません。
420
第 16 章 8/10 ビット A/D コンバータ
16.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 コンバータのブロックダイヤグラム
図 16.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム
AVRH1
AVCC AVRH2 AVSS
AN4,AN0
AN5,AN1
AN6,AN2
AN7,AN3
AN8
AN9
AN10
MPX
D/A コンバータ
入
力
回
路
逐次比較レジスタ
比較器
R-bus
*1
サンプル &
ホールド回路
デ
コ
|
ダ
A/D データレジスタ
A/D チャネル制御レジスタ
A/D モード設定レジスタ
多機能タイマ
*2
16 ビットリロードタイマ 1
外部端子トリガ
A/D 制御ステータスレジスタ
動作クロック
プリスケーラ
421
第 16 章 8/10 ビット A/D コンバータ
*1: ユニット 1:AN0, AN1, AN2, AN3 の 4 チャネル
ユニット 2:AN4 ∼ AN10 の 7 チャネル
*2: ユニット 1:多機能タイマ
ユニット 2:多機能タイマまたは 16 ビットリロードタイマ 1
( 多機能タイマによる起動が優先されます。)
●A/D 制御ステータスレジスタ (ADCS)
一時停止および変換確認 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , A/D 変
換の分解能を選択する機能があります。
● A/D チャネル制御レジスタ (ADCH)
A/D チャネルを選択する機能があります。
● A/D モード設定レジスタ (ADMD)
変換モードの選択と, A/D変換のコンペア時間やサンプリング時間を設定する機能があり
ます。
● A/D データレジスタ (ADCD)
A/D 変換結果を格納するレジスタです。
● クロックセレクタ
A/D 変換起動クロックを選択するセレクタです。起動クロックには , 16 ビットリロー
ドタイマ ch.1 出力 , 多機能タイマまたは外部端子トリガが選択できます。
• ユニット2は, 16ビットリロードタイマch.1出力または多機能タイマにより起動可能
• ユニット 1 は , 多機能タイマにより起動可能
● デコーダ
A/D チャネル制御レジスタ (ADCH) の ANE0 ∼ ANE2, ANS0 ∼ ANS2 ビットの設定か
ら , 使用するアナログ入力端子を選択する回路です。
● アナログチャネルセレクタ
アナログ入力端子の中から使用する端子を選択する回路です。
• ユニット 1 は , 4 本のアナログ入力
• ユニット 2 は , 7 本のアナログ入力
● サンプルホールド回路
アナログチャネルセレクタで選択された入力電圧を保持する回路です。A/D 変換を起
動した直後の入力電圧をサンプルホールドすることで , A/D 変換中 ( 比較中 ) の入力電
圧の変動の影響を受けずに変換できます。
● D/A コンバータ
サンプルホールドされた入力電圧と比較するための基準電圧を発生します。
● コンパレータ
サンプルホールドされた入力電圧と D/A コンバータの出力電圧を比較し , 大小を判定
します。
422
第 16 章 8/10 ビット A/D コンバータ
● コントロール回路
コンパレータからの大小信号で A/D 変換値を決定します。A/D 変換の終了後 , 変換結
果を A/D データレジスタ (ADCD) に格納し , 割込み要求を発生します。
423
第 16 章 8/10 ビット A/D コンバータ
16.3
端子
8/10 ビット A/D コンバータの端子および端子のブロックダイヤグラムを示します。
■ 8/10 ビット A/D コンバータの端子
A/D コンバータの端子は汎用ポートと兼用になっています。
表 16.3-1 に端子の機能 , 入
出力形式 , 8/10 ビット A/D コンバータ使用時の設定などを示します。
表 16.3-1 8/10 ビット A/D コンバータの端子
424
機能
端子名
ch.0
P50/AN0
ch.1
P51/AN1
ch.2
P52/AN2
ch.3
P53/AN3
ch.4
P54/AN4
ch.5
P55/AN5
ch.6
P56/AN6
ch.7
P57/AN7
ch.8
P44/AN8
ch.9
P45/AN9
ch.10
P46/AN10
端子機能
入出力形式
プルアップ
設定
スタンバイ
制御
端子の使用に必要な
I/O ポートの設定
ポート 5 を入力設定
(DDR5:bit0 ∼ bit7=0)
アナログ入力に設定
(AICR1:bit0 ∼ bit3=1)
ポート 5 入出力 /
アナログ入力
ポート 4 入出力 /
アナログ入力
CMOS 出力 /
CMOS ヒステ
リシス入力
または
アナログ入力
なし
あり
ポート 5 を入力設定
(DDR5:bit0 ∼ bit7=0)
アナログ入力に設定
(AICR2:bit0 ∼ bit3=1)
ポート 4 を入力設定
(DDR4:bit4 ∼ bit6=0)
アナログ入力に設定
(AICR2:bit4 ∼ bit6=1)
第 16 章 8/10 ビット A/D コンバータ
■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム
図 16.3-1 AN0 ∼ AN10 端子のブロックダイヤグラム
AICR1,
AICR2
PDR ( ポートデータレジスタ )
アナログ入力
PDR リード
内部バスデータ
出力ラッチ
P-ch
PDR ライト
端子
DDR ( ポート方向レジスタ )
方向ラッチ
N-ch
DDR ライト
DDR リード
スタンバイ制御
<注意事項>
• 入力ポートとして使用する端子は , 対応する DDR レジスタのビットを "0" に設定し , か
つ外部端子にプルアップ抵抗を付加してください。
また AICR レジスタの対応するビットを "0" に設定してください。
• アナログ入力端子として使用する端子は , 対応する AICR レジスタのビットを "1" に設
定してください。このときの PDR レジスタの読出し値は "0" になります。
425
第 16 章 8/10 ビット A/D コンバータ
16.4
レジスタ
8/10 ビット A/D コンバータのレジスタ一覧を示します。
■ 8/10 ビット A/D コンバータのレジスタ一覧
図 16.4-1 8/10 ビット A/D コンバータのレジスタ一覧
アドレス
000086H
426
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
AICR1
00008EH
AICR2
000080H
ADCH1
000084H
ADCS1
000082H
ADCD11
ADCD10
000088H
ADCH2
ADMD2
00008CH
ADCS2
00008AH
ADCD21
ADMD1
ADCD20
第 16 章 8/10 ビット A/D コンバータ
A/D チャネル制御レジスタ (ADCH)
16.4.1
A/D チャネル制御レジスタは , A/D 変換チャネルの選択をする機能があります。
■ A/D チャネル制御レジスタ (ADCH: ADCH1, ADCH2)
アドレス
000080H
000088H
bit15
R/W :リード / ライト可能
:初期値
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ANS2
ANS1
ANS0
ANE2
ANE1
ANE0
R/W
R/W
R/W
R/W
R/W
R/W
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 変換開始チャネル選択ビット
初期値
XX000000B
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 ユニット 1 は , ch.0 ∼ ch.3 = AN0 ∼ AN3 (ch.4 ∼ ch.7 は空き )
• A/D ユニット 2 は , ch.0 ∼ ch.6 = AN4 ∼ AN10 (ch.7 は空き )
• A/D ユニット 1 の ANE2, ANS2 には , 必ず , "0" を書き込んでください。
• A/D ユニット 2 の ANE0 ∼ ANE2=1, ANS0 ∼ ANS2=1 は , 設定禁止です。
• A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。
427
第 16 章 8/10 ビット A/D コンバータ
表 16.4-1 A/D チャネル制御レジスタ (ADCH) の各ビットの機能説明
ビット名
bit15,
bit14
未定義ビット
機能
• 読出し値は不定です。
• このビットへの書込みは , 動作に影響しません。
• A/D 変換の開始チャネルの設定および変換中チャネル番号の確認を
bit13
∼
bit11
ANS2, ANS1,
ANS0:
A/D 変換開始
チャネル選択
ビット
行うビットです。
• A/D 変換を起動すると , これらのビットに書き込まれたチャネルから
A/D 変換を開始します。
• A/D 変換中は , 変換中のチャネル番号が読めます。停止変換モードで
の一時停止中は , 直前に変換したチャネルの番号が読み出せます。
• A/D 変換の終了チャネルの設定を行うビットです。
• A/D 変換を起動すると , これらのビットに書き込まれたチャネルまで
A/D 変換を行います。
• ANS2 ∼ ANS0 と同じチャネルを設定すると , そのチャネルのみ変換
を行います。
また , 連続変換モードまたは停止変換モードを設定しているときは , これ
らのビットで設定されたチャネルまでの変換が終わると , ANS2 ∼ ANS0
bit10
∼
bit8
ANE2, ANE1,
ANE0:
A/D 変換終了
チャネル選択
ビット
で設定された開始チャネルに戻ります。このとき設定チャネルは , 必ず
開始チャネル≦終了チャネルとなるように設定してください。
• A/D 変換開始チャネル選択ビット (ANS2, ANS1, ANS0) に開始チャネ
ルを設定した後に , A/D 変換モード選択ビット (MD1, MD0) および A/D
変換終了チャネル選択ビット (ANE2, ANE1, ANE0) をリードモディ
ファイライト系命令で設定しないでください。
ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の
変換チャネルが読み出されるため , ANS2, ANS1, ANS0 ビットに開始
チャネルを設定した後に , MD1, MD0 ビットおよび ANE2, ANE1,
ANE0 ビットをリードモディファイライト系命令で設定した場合 ,
ANE2, ANE1, ANE0 ビットの値が書き換わる可能性があります。
428
第 16 章 8/10 ビット A/D コンバータ
16.4.2
A/D モード設定レジスタ (ADMD)
A/D モード設定レジスタは , 変換モードの選択と , A/D 変換のコンペア時間やサンプ
リング時間を設定する機能があります。
■ A/D モード設定レジスタ (ADMD: ADMD1, ADMD2)
アドレス
000081H
000089H
bit7
bit6
bit5
bit4
bit1
bit0
MD1
MD0
STS1
STS0
CT1
CT0
ST1
ST0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit3
ST1
0
0
1
1
ST0
0
1
0
1
CT1
0
0
1
1
CT0
0
1
0
1
bit2
初期値
00001111B
サンプリング時間設定ビット
9 マシンサイクル (450 ns @ 20 MHz) *
15 マシンサイクル (450 ns @ 33 MHz) *
17 マシンサイクル (510 ns @ 33 MHz) *
28 マシンサイクル (840 ns @ 33 MHz) *
*:マシンサイクルで 450 ns 以上となるように設定してください。
コンペア時間設定ビット
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
A/D 起動要因選択ビット
ソフトウェア起動
0
1
外部端子トリガ ( 立下りエッジ ) または
ソフトウェア起動
1
0
多機能タイマ * 起動 ( 立上りエッジ ) または
ソフトウェア起動
1
1
外部端子トリガ ( 立下りエッジ ) または
多機能タイマ * 起動 ( 立上りエッジ ) または
ソフトウェア起動
*:ユニット 2 の場合は , 16 ビットリロードタイマ 1 または多機能タイマ
R/W :リード / ライト可能
:初期値
MD1
0
0
1
1
MD0
0
1
0
1
A/D 変換モード選択ビット
単発変換モード 1( 動作中の再起動可能 )
単発変換モード 2( 動作中の再起動不可 )
連続変換モード ( 動作中の再起動不可 )
停止変換モード ( 動作中の再起動不可 )
429
第 16 章 8/10 ビット A/D コンバータ
表 16.4-2 A/D モード設定レジスタ (ADMD) の各ビットの機能説明 (1 / 2)
ビット名
機能
• A/D 変換機能時の変換モードを選択するビットです。
• MD1, MD0 の 2 ビット値によって , 単発変換モード 1, 単発
変換モード 2, 連続変換モード , 停止変換モードのいずれか
が選択されます。
• それぞれのモードの意味は , 以下のとおりです。
bit7,
bit6
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. START ビットに "1" を , INT ビットに "0" を同時に書
き込む
A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した
場合は , A/D 変換中の再起動はできません。
A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行
わ れ ず に A/D 変 換 は 終 了 し , デ ー タ レ ジ ス タ (ADCR1/
ADCR0) には "300H" が格納されます。したがって , A/D 変
換再起動と終了が同時に発生しないように再起動をかけて
ください。
430
第 16 章 8/10 ビット A/D コンバータ
表 16.4-2 A/D モード設定レジスタ (ADMD) の各ビットの機能説明 (2 / 2)
ビット名
機能
• A/D 変換の起動要因の選択を行います。
• 起動要因が兼用になっている場合には , 最初に発生した起
動要因で起動します。
( 注意事項 )
bit5,
bit4
STS1, STS0:
A/D 起動要因
選択ビット
• 起動要因は , 書換えと同時に変更されますので , A/D 変換動
作中に書き換える場合には , 目的とする起動要因がない状
態で切り換えてください。
• STS1, STS0=11B のとき , 外部トリガ入力が "L" のとき , タイ
マ起動はできません。また , タイマが "H" のとき , 外部トリ
ガ起動はできません。
• A/D 変換時のコンペア時間を選択するビットです。
• アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 ,
このビットに設定された時間後に変換結果のデータが確定
し , A/D コントロールステータスレジスタ (ADCD) に格納さ
れます。
bit3,
bit2
CT1, CT0:
コンペア時間
設定ビット
( 注意事項 )
• CT1, CT0=00B, 10B, 11B のとき , コンペア時間は 720 ns 以上
とし , CT1, CT0=01B のとき , コンペア時間は 900 ns 以上と
なるように設定しなければ , 正常なアナログ変換値が得ら
れない場合があります。
• ビットの書換えは , 必ず変換動作前の A/D 動作が停止して
いる状態で行ってください。
• A/D 変換時のサンプリング時間を選択するビットです。
• A/D が起動されると , このビットに設定された時間 , アナロ
bit1,
bit0
ST1, ST0:
サンプリング
時間設定
ビット
グ入力が取り込まれます。
( 注意事項 )
• サンプリング時間は 450 ns 以上となるように設定しなけれ
ば , 正常なアナログ変換値が得られない場合があります。
• ビットの書換えは , 必ず変換動作前の A/D 動作が停止して
いる状態で行ってください。
431
第 16 章 8/10 ビット A/D コンバータ
16.4.3
A/D 制御ステータスレジスタ (ADCS)
A/D 制御ステータスレジスタは , 一時停止および変換確認 , 割込み要求の許可 / 禁止 ,
割込み要求の状態の確認 , A/D 変換の分解能を選択する機能があります。
■ A/D 制御ステータスレジスタ (ADCS: ADCS1, ADCS2)
アドレス
000084H
00008CH
Bit15
Bit14
Bit13
Bit12
Bit11
BUSY
INT
INTE
PAUS
S10
START
R/W
R/W
R/W
W
R/W
R/W
START
0
1
S10
0
1
PAUS
0
1
Bit10
0
1
BUSY
R/W :リード / ライト可能
W :ライトオンリ
:初期値
−
:未定義
432
0
1
Bit8
予約
初期値
00000X00B
A/D 変換起動ビット
( ソフトウェア起動時のみ有効 )
A/D 変換機能を起動しない
A/D 変換起動を起動する
A/D 変換分解能選択ビット
10 ビット分解能 (D9 ∼ D0)
8 ビット分解能 (D7 ∼ D0)
一時停止フラグビット
A/D 変換動作の一時停止は発生していない
A/D 変換動作が一時停止中
割込み要求許可ビット
INTE
0
1
INT
Bit9
割込み要求出力の禁止
割込み要求出力の許可
割込み要求フラグビット
読出し時
書込み時
A/D 変換未終了
ビットクリア
A/D 変換終了
変化なし , ほかへの影響なし
A/D 変換中ビット
読出し時
書込み時
A/D 変換停止中
A/D 変換強制停止
変化なし , ほかへの影響なし
A/D 変換動作中
第 16 章 8/10 ビット A/D コンバータ
表 16.4-3 A/D 制御ステータスレジスタ (ADCS) の各ビットの機能説明 (1 / 2)
ビット名
機能
• A/D コンバータの動作表示ビットです。
• 読出し時 , このビットが "0" であれば A/D 変換停止中であるこ
とを示し , "1"であれば A/D 変換動作中であることを示します。
• 書込み時 , このビットへの "0" の書込みによって A/D 変換動作
bit15
BUSY:
A/D 変換中ビット
は強制的に停止されます。"1" の書込みでは , 変化せずほかへ
の影響はありません。
• リードモディファイライト (RMW) 時の読出しは , "1" が読み
出されます。
( 注意事項 )
強制停止とソフトウェア起動 (BUSY=0, START=1) を同時に
しないでください。
• A/D 変換によって A/D データレジスタにデータがセットされ
れば , このビットは "1" にセットされます。
• このビットと割込み要求許可ビット (ADCS:INTE) が "1" の
とき , 割込み要求を発生します。
bit14
INT:
割込み要求フラグ
ビット
• 書込み時は , "0" でこのビットがクリアされ , "1" では変化せず
ほかへの影響はありません。
• リードモディファイライト (RMW) 時の読出しは , "1" が読み
出されます。
( 注意事項 )
このビットへの "0" 書込みによるクリアは , A/D 停止中に行っ
てください。
bit13
INTE:
割込み要求許可
ビット
• CPU への割込み出力の許可 / 禁止をするビットです。
• このビットと , 割込み要求フラグビット (ADCS:INT) が "1"
のとき , 割込み要求を発生します。
433
第 16 章 8/10 ビット A/D コンバータ
表 16.4-3 A/D 制御ステータスレジスタ (ADCS) の各ビットの機能説明 (2 / 2)
ビット名
機能
• A/D 変換動作が一時停止したときに "1" にセットされます。
• この A/D コンバータには , A/D データレジスタが 1 つしかない
ため , 連続変換モードを使用したときに旧変換結果の CPU に
よる読出しが完了していなければ, 新しい変換結果の書込みに
より旧変換データは失われてしまいます。したがって , 連続変
換モードを使用するときは, 基本的には変換終了ごとに変換結
bit12
PAUS:
一時停止フラグ
ビット
果をメモリに転送するように設定しておく必要があります。た
だし, 多重割込みなどで変換データの転送が次の変換に間に合
わない場合が想定できます。このビットはそのときの対処とし
て考えられた機能で, 変換終了後にデータレジスタの内容を転
送するまでの間 , このビットを "1" にセットし , その間は A/D
変換は停止し, 次の変換データを格納しないようになっていま
す。
• このフラグのクリアはレジスタへの "0" 書込みのみです。
• リードモディファイライト (RMW) 時の読出しは , "1" が読み
出されます。
• A/D 変換の分解能を選択するビットです。
• このビットに "0" を書き込むと 10 ビット分解能が選択され ,
bit11
S10:
A/D 変換分解能
選択ビット
"1" を書き込むと 8 ビット分解能が選択されます。
( 注意事項 )
• 分解能によって , 使用されるデータビットが異なります。
• ビットの書換えは , 必ず変換動作前の A/D 動作が停止してい
る状態で行ってください。
bit10
未定義ビット
• 読出し値は不定です。
• このビットへの書込みは , 動作に影響しません。
• A/D 変換動作をソフトウェア的に起動するビットです。
bit9
START:
A/D 変換起動
ビット
( ソフトウェア
起動時のみ有効 )
• このビットに "1" を書き込むと A/D 変換が起動します。
• 停止変換モード時は , このビットによる再起動はかかりませ
ん。
( 注意事項 )
強制停止とソフトウェア起動 (BUSY=0, START=1) を同時に
しないでください。
bit8
434
予約ビット
必ず , "0" を書き込んでください。
第 16 章 8/10 ビット A/D コンバータ
A/D データレジスタ (ADCD)
16.4.4
A/D データレジスタは , A/D 変換結果を格納するレジスタです。
■ A/D データレジスタ (ADCD: ADCD10, ADCD11, ADCD20, ADCD21)
アドレス
000082H
00008AH
bit15
アドレス
000083H
00008BH
bit14
bit13
bit12
bit11
bit5
bit10
bit4
bit9
bit7
bit6
bit3
D7
D6
D5
D4
D3
R
R
R
R
R
D9 ~ D0
bit8
D9
D8
R
R
bit2
初期値
XXXXXXXXB
bit1
bit0
D2
D1
D0
R
R
R
初期値
XXXXXXXXB
A/D データビット
変換データ
R:リードオンリ
表 16.4-4 A/D データレジスタ (ADCD) の各ビットの機能説明
ビット名
bit15
∼
bit10
機能
• 読出し値は不定です。
未定義ビット
• このビットへの書込みは , 動作に影響しません。
• A/D 変換の結果が格納され , レジスタは 1 回の変換終了ごとに
書き換えられます。
• 通常は , 最終変換値が格納されます。
• 本レジスタの初期値は不定です。
bit9
∼
bit0
D9 ∼ D0:
A/D データビット
( 注意事項 )
• 変換データ保護機能があります。
• A/D 変換中に本ビットにデータを書き込まないようにしてく
ださい。
• D9, D8 は , 8 ビット分解能を選択したときは , "0" が読み出さ
れます。
435
第 16 章 8/10 ビット A/D コンバータ
16.4.5
アナログ入力制御レジスタ (AICR)
アナログ入力制御レジスタは , アナログ入力を制御するレジスタです。
■ アナログ入力制御レジスタ (AICR: AICR1, AICR2)
AICR1
アドレス
000086H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
AN3E
AN2E
AN1E
AN0E
R/W
R/W
R/W
R/W
アナログ入力許可ビット
AN3E ~ AN0E
0
1
AICR2
アドレス
00008EH
bit15
初期値
XXXX0000B
アナログ入力禁止
アナログ入力許可
bit14
bit13
bit12
bit11
bit10
bit9
bit8
AN10E
AN9E
AN8E
AN7E
AN6E
AN5E
AN4E
R/W
R/W
R/W
R/W
R/W
R/W
R/W
AN10E ~ AN4E
0
1
初期値
X0000000B
アナログ入力許可ビット
アナログ入力禁止
アナログ入力許可
R/W :リード / ライト可能
:初期値
表 16.4-5 アナログ入力制御レジスタ (AICR) の各ビットの機能説明
ビット名
機能
• このビットが "0" の場合 , アナログ入力は禁止されます。
(AICR1) bit11 ∼ bit8
(AICR2) bit14 ∼ bit8
AN3E ∼ AN0E,
• このビットが "1" の場合 , アナログ入力が許可されます。
AN10E ∼ AN4E:
アナログ入力許可 • アナログ入力端子として使用する端子は , 対応する AICR
レジスタのビットを "1" に設定してください。このときの
ビット
PDR レジスタの読出し値は "0" になります。
(AICR1) bit15 ∼ bit12
未定義ビット
(AICR2) bit15
436
• 読出し値は不定です。
• このビットへの書込みは , 動作に影響しません。
第 16 章 8/10 ビット A/D コンバータ
16.5
割込み
8/10 ビット A/D コンバータは , A/D 変換で A/D データレジスタにデータがセットさ
れることで , 割込み要求を発生させることができます。
■ 8/10 ビット A/D コンバータの割込み
8/10ビットA/Dコンバータの割込み制御ビットと割込み要因は, 表 16.5-1 のようになっ
ています。
表 16.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) されていると , 割込みコントローラに割込
み要求を出力します。
437
第 16 章 8/10 ビット A/D コンバータ
16.6
動作説明
8/10 ビット A/D コンバータには , 単発変換モード , 連続変換モード , 停止変換モー
ドの 3 種類のモードがあります。各モードでの動作について説明します。
■ 単発変換モードの動作
単発変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し
ていき , ANE ビットで設定された終了チャネルまで変換が終わると A/D 変換は停止し
ます。開始チャネルと終了チャネルが同じ (ANS=ANE) ときは ANS ビットで指定した
1 チャネルだけの変換となります。単発変換モードで動作させるには , 図 16.6-1 の設定
が必要です。
図 16.6-1 単発変換モードでの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
ADCH/
ADMD
−
−
bit3
bit2
bit1
bit0
ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 MD1 MD0 STS1 STS0 CT1
CT0
ST1
ST0
◇
◇
◇
◇
ADCS
ADCD
BUSY INT
◇
◇
INTE PAUS S10
◇
−
◇
◇
◇
◇
◇
−
−
−
−
−
−
◆
◆
◆
◆
◆
◆
◇
bit8
bit7
◇
◇
bit6
◇
bit5
◇
bit4
◇
◇
START 予約
◇
0
変換データを格納
AICR
◆
◆
◇ :使用ビット
◆ :使用する端子の対応するビットに "1" を設定
0 :"0" を設定
<参考>
単発変換モードでの変換順序の例を以下に示します。
ANS=000B, ANE=011B のとき:AN0 → AN1 → AN2 → AN3 →終了
ANS=011B, ANE=011B のとき:AN3 →終了
438
第 16 章 8/10 ビット A/D コンバータ
<注意事項>
• A/D ユニット 1 は , AN0 ∼ AN3 の 4 チャネル , A/D ユニット 2 は , AN4 ∼ AN10 の 7
チャネルとなっております。
• A/D ユニット 1 の ANE2, ANS2 には , 必ず , "0" を書き込んでください。
• A/D ユニット 2 の ANE0 ∼ ANE2=1, ANS0 ∼ ANS2=1 は , 設定禁止です。
• A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。
• A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起
動ができます。このモードではソフトウェア起動 (STS1, STS0=00B) のみ設定可能で
す。再起動は下記の手順で行ってください。
1. INT ビットを "0" にクリアする
2. START ビットに "1" を , INT ビットに "0" を同時に書き込む
A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した場合は , A/D 変換中の再起
動はできません。
A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行われずに A/D 変換は終了
し , データレジスタ (ADCR1/ADCR0) には "300H" が格納されます。したがって , A/D
変換再起動と終了が同時に発生しないように再起動をかけてください。
439
第 16 章 8/10 ビット A/D コンバータ
■ 連続変換モードの動作
連続変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し
ていき , ANE ビットで設定された終了チャネルまで変換が終わると ANS ビットで設定
されたアナログ入力に戻り , A/D 変換動作を続けます。開始チャネルと終了チャネルが
同じとき (ANS=ANE) は ANS で指定したチャネルだけの変換を繰り返します。連続変
換モードで動作させるには , 図 16.6-2 に示す設定が必要です。
図 16.6-2 連続変換モードでの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
ADCH/
ADMD
−
−
bit3
bit2
bit1
bit0
ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 MD1 MD0 STS1 STS0 CT1
CT0
ST1
ST0
◇
◇
◇
◇
ADCS
ADCD
BUSY INT
◇
◇
INTE PAUS S10
◇
−
◇
◇
◇
◇
◇
−
−
−
−
−
−
◆
◆
◆
◆
◆
◆
◇
bit8
◇
bit7
1
bit6
0
bit5
◇
bit4
◇
◇
START 予約
◇
0
変換データを格納
AICR
◆
◆
◇ :使用ビット
◆ :使用する端子の対応するビットに "1" を設定
0 :"0" を設定
1 :"1" を設定
<参考>
連続変換モードでの変換順序の例を以下に示します。
ANS=000B, ANE=011B のとき:AN0 → AN1 → AN2 → AN3 → AN0 →繰返し
ANS=011B, ANE=011B のとき:AN3 → AN3 →繰返し
<注意事項>
• A/D ユニット 1 は , AN0 ∼ AN3 の 4 チャネル , A/D ユニット 2 は , AN4 ∼ AN10 の 7
チャネルとなっています。
• A/D ユニット 1 の ANE2, ANS2 には , 必ず , "0" を書き込んでください。
• A/D ユニット 2 の ANE0 ∼ ANE2=1, ANS0 ∼ ANS2=1 は , 設定禁止です。
• A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。
440
第 16 章 8/10 ビット A/D コンバータ
■ 停止変換モードの動作
停止変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を 1 チャネル
ごとに一時停止しながら変換していき , ANE ビットで設定された終了チャネルまで変
換が終わると ANS ビットで設定されたアナログ入力に戻り , A/D 変換と一時停止の動
作を続けます。開始チャネルと終了チャネルが同じとき (ANS=ANE) は ANS ビットで
指定したチャネルだけの変換を繰り返します。一時停止時の変換の再起動は , STS1,
STS0 ビットで指定した起動要因を発生します。停止変換モードで動作させるには , 図
16.6-3 の設定が必要です。
図 16.6-3 停止変換モードでの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
ADCH/
ADMD
−
−
bit3
bit2
bit1
bit0
ANS2 ANS1 ANS0 ANE2 ANE1 ANE0 MD1 MD0 STS1 STS0 CT1
CT0
ST1
ST0
◇
◇
◇
◇
ADCS
BUSY INT
ADCD
◇
◇
INTE PAUS S10
◇
−
◇
◇
◇
◇
◇
−
−
−
−
−
−
◆
◆
◆
◆
◆
◆
◇
bit8
◇
bit7
1
bit6
1
bit5
◇
bit4
◇
◇
START 予約
◇
0
変換データを格納
AICR
◆
◆
◇:使用ビット
◆:使用する端子の対応するビットに "1" を設定
0 :"0" を設定
1 :"1" を設定
<参考>
停止変換モードでの変換順序の例を以下に示します。
ANS=000B, ANE=011B のとき:AN0 →一時停止→ AN1 →一時停止→ AN2 →一時停止
→ AN0 → 繰返し
ANS=011B, ANE=011B のとき:AN3 →一時停止→ AN3 →一時停止→繰返し
<注意事項>
• A/D ユニット 1 は , AN0 ∼ AN3 の 4 チャネル , A/D ユニット 2 は , AN4 ∼ AN10 の 7
チャネルとなっています。
• A/D ユニット 1 の ANE2, ANS2 には , 必ず , "0" を書き込んでください。
• A/D ユニット 2 の ANE0 ∼ ANE2=1, ANS0 ∼ ANS2=1 は , 設定禁止です。
• A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。
441
第 16 章 8/10 ビット A/D コンバータ
16.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) 状態でしか動作しません。
• 一時停止中に再起動をかけると待機データが壊れます。
442
第 16 章 8/10 ビット A/D コンバータ
16.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, AVRH1, AVRH2, AVss) , アナログ入力 (AN0 ∼ AN10) へ
の印加は , 必ずデジタル電源 (Vcc) の投入後 , または同時に投入してください。また , 電
源切断時は , A/D コンバータの電源およびアナログ入力の切断後にデジタル電源 (Vcc)
を切断 , または同時に切断してください。
● A/D コンバータの電源電圧について
ラッチアップ防止のため, A/Dコンバータの電源 (AVcc) は, デジタル電源 (Vcc) の電圧
を超えないようにしてください。
● A/D ユニット 1, 2 の設定について
• A/D ユニット 1 は , AN0 ∼ AN3 の 4 チャネル , A/D ユニット 2 は , AN4 ∼ AN10 の
7 チャネルとなっております。
• A/D ユニット 1 の ANE2, ANS2 には , 必ず , "0" を書き込んでください。
• A/D ユニット 2 の ANE0 ∼ ANE2=1, ANS0 ∼ ANS2=1 は , 設定禁止です。
• A/D ユニット 1, 2 では , 必ず , "ANS0 ≦ ANE0" となるように設定してください。
443
第 16 章 8/10 ビット A/D コンバータ
● A/D 変換の再起動について
A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起
動ができます。このモードではソフトウェア起動 (STS1, STS0=00B) のみ設定可能です。
再起動は下記の手順で行ってください。
1. INT ビットを "0" にクリアする
2. START ビットに "1" を , INT ビットに "0" を同時に書き込む
A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した場合は , A/D 変換中の再起
動はできません。
A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行われずに A/D 変換は終了
し , データレジスタ (ADCR1/ADCR0) には "300H" が格納されます。したがって , A/D 変
換再起動と終了が同時に発生しないように再起動をかけてください。
444
第 17 章
積和演算回路
積和演算回路の概要 , レジスタの構成 / 機能および
動作について説明します。
17.1 特長
17.2 命令定義
17.3 レジスタ説明
17.4 動作説明
17.5 命令詳細説明
445
第 17 章 積和演算回路
17.1
特長
積和演算回路の特長 , レジスタ一覧およびブロックダイヤグラムについて説明しま
す。
■ 特長
• 高速積和演算 (1 システムクロックサイクル )
• データ形式
: 16 ビット固定小数点 (16 × 16 + 40 ビット )
• 命令領域
: 256 × 6 ビット
• データ領域
: 64 × 16 ビット× 2 組
• 丸め処理可能
• 飽和処理可能
• 加算項目数
: 最大 64 項
• 命令
: MAC 命令 , STR 命令 , JMP 命令
• 遅延処理
: 64 × 16 ビット内で自由に転送可能
• 固定小数点方式
: Q8 ∼ Q15 のうちから選択可能
• プログラム実行制御
: 8 種類の命令を選択可能
• 変数モニタ
: 8 × 16 ビットまでの計算結果をプログラム停止させずにモ
ニタ可能
446
第 17 章 積和演算回路
■ レジスタ一覧
図 17.1-1 積和演算回路のレジスタ一覧
bit15
bit8 bit7
bit0
アドレス :00039EH
予約領域
アドレス :0003A0H
DSP-PC ( プログラムカウンタ )
アドレス :0003A2H
DSP-LY( 遅延レジスタ ) 上位
DSP-LY( 遅延レジスタ ) 下位
R/W
アドレス :0003A4H
DSP-OT0( 出力キュー 0) 上位
DSP-OT0( 出力キュー 0) 下位
R
アドレス :0003A6H
DSP-OT1( 出力キュー 1) 上位
DSP-OT1( 出力キュー 1) 下位
R
アドレス :0003A8H
DSP-OT2( 出力キュー 2) 上位
DSP-OT2( 出力キュー 2) 下位
R
アドレス :0003AAH
DSP-OT3( 出力キュー 3) 上位
DSP-OT3( 出力キュー 3) 下位
R
アドレス :0003ACH
予約領域
予約領域
アクセス禁止
アドレス :0003AEH
予約領域
予約領域
アクセス禁止
アドレス :0003B0H
DSP-OT4( 出力キュー 4) 上位
DSP-OT4( 出力キュー 4) 下位
R
アドレス :0003B2H
DSP-OT5( 出力キュー 5) 上位
DSP-OT5( 出力キュー 5) 下位
R
アドレス :0003B4H
DSP-OT6( 出力キュー 6) 上位
DSP-OT6( 出力キュー 6) 下位
R
アドレス :0003B6H
DSP-OT7( 出力キュー 7) 上位
DSP-OT7( 出力キュー 7) 下位
R
アクセス禁止
DSP-CSR ( コントロール / ステータス ) R/W,R,W
アドレス:
積和演算
マクロ
00C000H
00H
X-RAM ( 係数 RAM) ... 64 × 16 ビット
:
00C07EH
00C080H
積和演算
マクロ
アクセス
00H
R/W
:
3FH
アドレス:
積和演算
マクロ
00C100H
:
:
Y-RAM ( 変数 RAM) ... 64 × 16 ビット
00C0FEH
00C2FEH
R/W
3FH
アドレス:
:
アクセス
00H
I-RAM ( 命令 RAM) ... 256 × 16 ビット
アクセス
R/W
:
FFH
< 注意事項 >
• CPU から上記レジスタ /RAM 領域への書込みは , 必ず偶数番地へのハーフワード ( ま
たはワード ) 転送命令で行ってください。
• RAM 領域への書込み , 読出しそのものは , バイト転送命令でも CPU より可能ですが ,
積和演算回路として使用時は 1 項目めの注意事項を守ってください。
447
第 17 章 積和演算回路
■ ブロックダイヤグラム
図 17.1-2 積和演算回路のブロックダイヤグラム
FR60Lite 内部バス
DSP-CSR
動作制御部
命令制御部
DSP-PC
命令デコード部
I-RAM
IF
DEC1
(256 x 16 ビット)
DEC
演算部
X-RAM
(64 x 16 ビット)
40
ADD
16
16
MUL
40
ACC
40
RND
16
CLP
32
Y-RAM
(64 x 16 ビット)
遅延レジスタ
DSP-LY
LY-DLY
MPX
DSP-OT0 ~ DSP-OT7
変数モニタ
448
第 17 章 積和演算回路
表 17.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 からアクセス不可
449
第 17 章 積和演算回路
17.2
命令定義
積和演算マクロが持っている命令は , 大きく分けて 3 種類 (MAC/STR/JMP 命令 ) あ
ります。
■ 命令定義
積和演算マクロの3種類以外の命令を表記上使用していますが, その場合下記に示す命
令の階層構成となります。
• MAC 命令
積和命令
(CLAC ビット = 0)
乗算命令
(CLAC ビット = 1)
HLT 命令
(HLT ビット = 1)
INT 命令
(SIRQ ビット = 1)
無条件分岐命令
(COND ビット = 0)
• STR 命令
• JMP 命令
条件付き分岐命令 (COND ビット = 1)
450
HLT 命令
(HLT ビット = 1)
INT 命令
(SIRQ ビット = 1)
第 17 章 積和演算回路
レジスタ説明
17.3
積和演算回路で使用するレジスタの構成および機能について説明します。
■ DSP コントロール / ステータスレジスタ (DSP-CSR)
コントロール / ステータスレジスタは 8 ビット長のレジスタであり , 積和演算マクロの
ステート切換え/CPUへの割込みのコントロールおよび積和演算マクロの状態を示す各
種フラグより構成されています。また , 積和演算マクロの条件付き分岐命令の条件設定
も本レジスタで設定を行います。
• 8 ビットレジスタで外部より常に読出しおよび書込みが可能
● コントロール機能
• 積和演算マクロのステート ( 計算の開始 / 停止 ) の遷移 (GoDSP and HltDSP)
• CPU に対する割込みマスク (IeDSP)
• 積和演算マクロの条件付き分岐命令の条件設定 (USR2, USR1, USR0)
● ステータス機能
• 積和演算マクロの現在のステート取得フラグ (RunDSP)
• 割込み要求フラグ (IrqDSP)
• 飽和処理フラグ (SatDSP)
アドレス
0003A1H
bit7
USR2
−
SatDSP USR2
R
R/W
R
W
−
bit6
R/W
bit5
USR1
USR1
R/W
bit4
bit3
bit2
bit1
bit0
USR0 IrqDSP IeDSP HltDSP GoDSP 書込み時
USR0 IrqDSP IeDSP
− RunDSP 読出し時
R/W
R/W
R/W
W
初期値
00000000B
R/W
: リード / ライト可能
: リードオンリ
: ライトオンリ
: 未定義
[bit7] SatDSP ( 飽和処理フラグ ) : Read only
• 計算途中で飽和処理を行ったことを保持するステータスフラグです。
• STR 命令で飽和処理を指示し (CLP = 1) , 実際に飽和処理が行われた場合にセットさ
れます。また計算中一度セットされると次の計算開始まで値を保持しています。
• 本ビットは計算開始によりクリアされます。
セット要因 : 計算途中で STR 命令による飽和処理が行われた場合セット
クリア要因 : 計算開始によりクリア [ 初期値 ]
• リセット時:"0" に初期化されます ( 飽和処理なし )。
• 読出しのみ可能です。書込みしてもビット値は変化しません。
451
第 17 章 積和演算回路
[bit6 , bit5 , bit4] USR2, USR1, USR0 ( ジャンプ条件設定ビット ) : Read/Write
• 本ビットは , 積和演算マクロの条件付き分岐命令 (COND ビット =1 時 ) で参照され ,
本ビット値と条件付き分岐命令の UBP フラグが一致 ( 条件成立 ) するとジャンプし
ます。すなわち , この条件付き分岐命令と計算命令を組み合せることで 8 種類の計
算ルーチンを CPU 側から切換え可能です。
• リセット時:000B に初期化されます。
• 読出しおよび書込みが可能です。
[bit3] IrqDSP ( 割込み要求フラグ ) : Read/Write
• 積和演算マクロのソフトウェア割込み要求が発生したことを示すフラグです。割込
み要求が許可されているとき (IeDSP = 1) に , 本ビットがセットされると CPU に対
して割込み要求を発生します。
• 積和演算マクロの割込み要求は STR 命令 /JMP 命令の SIRQ ビットを "1" にするこ
とで , ソフトウェア的に発生させます。
セット要因 : 積和演算マクロのソフトウェア割込み (STR 命令 /JMP 命令 ) 発生によ
りセット
クリア要因 : "0" 書込みによりクリア [ 初期値 ]
• リセット時:"0" に初期化されます ( 割込み要求なし ) 。
• 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で "1" を書き込んで
もビット値は変化しません。
• リードモディファイライト (RMW) 命令における読出し値は , ビット値にかかわらず
常に "1" です。
[bit2] IeDSP ( 割込み要求許可ビット ) : Read/Write
CPU に対する割込み要求 (IrqDSP = 1) を以下のように制御します。
"0": 割込み要求出力禁止 (IrqDSP がセットされても割込み発生せず ) [ 初期値 ]
"1": 割込み要求出力許可 (IrqDSP がセットされると割込み発生する )
• リセット時:"0" に初期化されます ( 割込み要求出力禁止 )。
• 読出しおよび書込みが可能です。
[bit1] HltDSP ( 計算停止 ) : Write only
• 計算の強制停止ビットです。
• 本ビットに "1" を書き込むと , 計算実行中 (RunDSP = 1) であれば実行中の命令が終
了後 (2 サイクルであれば 2 サイクル後 ) 計算を停止し RunDSP フラグがクリアされ
ます。
• 計算停止中の場合 , 何も影響を与えません。
• また , 本ビットにより強制停止させた場合 , DSP-PC は停止した命令の次の命令アド
レスを指していますので , 命令の継続実行が可能です。
- "1":書込みにより強制停止
- "0":書込みは無効。読出しは常に "0"
• リセット時:"0" に初期化されます。
452
第 17 章 積和演算回路
[bit0] 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 へ計算ルーチンの先頭
アドレスを格納する必要があります。
• 書込み時機能 (GoDSP: 計算開始 )
"0": 機能なし / 動作に影響なし
"1": 計算停止中の場合→計算開始
計算実行中の場合→何も影響がありません
• 読出し時機能 (RunDSP: 計算実行中フラグ )
"0": 計算を停止中である [ 初期値 ]
クリア要因→ HltDSP"1" 書込みおよび HLT 命令実行
"1": 計算を実行中である
セット要因→計算開始
• リセット時:0 に初期化されます ( 計算停止中 )。
• 読出しおよび書込みが可能です。ただし , 書込み時と読出し時では , 上記のように
意味が異なります。
• リードモディファイライト (RMW) 命令における読出し値は , ビット値にかかわらず
常に "0" です。
453
第 17 章 積和演算回路
■ DSP プログラム・カウンタ (DSP-PC)
プログラム・カウンタは 8 ビット長のカウンタであり , 積和演算マクロで実行する命令
コードが格納されているメモリ (I-RAM) アドレスを示しています。プログラムカウン
タは命令の実行により自動的に更新されますが , 積和演算マクロの JMP により書き換
えることができます。
また , 計算停止中でのみ CPU よりアクセス (R/W) 可能であり , 計算開始と同時または
それ以前に DSP-PC へ計算ルーチンの先頭アドレスを格納する必要があります。
HLT 命令実行後 , または DSP-CSR の HltDSP へ "1" 書込み後 , DSP-PC は停止した命令
の次のアドレスを指しており , 再度 GoDSP をセットすることにより継続してプログラ
ムを実行できます。
アドレス
0003A0H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
−
−
−
−
−
−
−
−
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
R/W : リード / ライト可能
X
: 不定
−
: 未定義
• リセット時:不定となります。
• 読出しおよび書込みが可能ですが , 積和演算マクロが計算停止中 (DSP-CSR:RunDSP =0)
でのみアクセス可能です。
• 計算実行中 (DSP-CSR:RunDSP = 1) では , バスから切り離されるため CPU からの
アクセスはできなくなります。
454
第 17 章 積和演算回路
■ DSP 遅延レジスタ (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 サイクルになります。
アドレス
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
0003A2H
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
X
X
初期値
XXXXXXXXB
R/W : リード / ライト可能
X
: 不定
−
: 未定義
• リセット時:不定となります。
• 読出しおよび書込みが可能ですが , DSP-LY が計算停止中 (DSP-CSR :RunDSP = 0)
でのみアクセスが可能です。計算実行中 (DSP-CSR :RunDSP = 1) では , バスから
切り離されるため CPU からのアクセスはできなくなります。
455
第 17 章 積和演算回路
■ DSP 変数モニタレジスタ (DSP-OT0 ∼ DSP-OT7)
変数モニタレジスタとして , 16 ビットのレジスタが 8 本あります。電源投入時の初期
状態を除き , Y-RAM の 0 ∼ 7 番地と同じ内容を保持しています。CPU より常に読出し
のみ可能であり , 計算中であっても Y-RAM の 0 ∼ 7 番地の内容をモニタできます。
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
アドレス
DSP-OT0
DSP-OT1
DSP-OT2
DSP-OT3
DSP-OT4
DSP-OT5
DSP-OT6
DSP-OT7
0003A4H
0003A6H
0003A8H
0003AAH
0003B0H
0003B2H
0003B4H
0003B6H
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
初期値 : XXXXXXXX XXXXXXXXB
R
X
: リードオンリ
: 不定
• リセット時:不定となります。
• 常に読出しのみ可能です。積和演算マクロがプログラム実行中であっても読出し可
能です。
456
第 17 章 積和演算回路
17.4
動作説明
積和演算回路の動作および機能について説明します。
■ 動作モード
積和演算マクロの動作は , DSP-CSR レジスタの操作により制御されます。
積和演算マクロの状態としては , 以下の 2 状態があり , 停止状態で GoDSP ビットに "1"
を書き込むか Servo Block から GODSPSV 信号を入力することにより , 積和演算マクロ
はプログラム実行を開始します。また , 停止中と計算中とでは CPU からアクセス可能
なレジスタおよびメモリに違いがあります。
HltDSP = 1 or HLT instruction
Stopped
Running
RunDSP = 0
GoDSP = 1
RunDSP = 1
各状態について説明します。
• 停止中 :
積和演算マクロは停止状態です。
CPU から命令 RAM (I-RAM), データ RAM (X-RAM, Y-RAM) および , 積
和演算マクロの全レジスタがアクセスできます。
HltDSP に "1" を書き込むか , HLT 命令の実行により , 本状態に遷移し
ます。
また , システムリセット時は本状態に初期化されます。
• 計算中:
積和演算マクロは計算状態です。
停止状態から GoDSP ビットに "1" を書き込むと , 本状態に遷移し現在
の DSP-PC( プログラムカウンタ ) からプログラム実行を開始します。
HltDSP ビットに "1" を書き込むか , HLT 命令が実行されると , 停止状
態に遷移しプログラム実行を停止します。
CPU からは , DSP-CSR, DSP-OT0 ∼ DSP-OT7 レジスタのみアクセスで
きます ( その他のレジスタおよび RAM はアクセス禁止 *)。
*: アクセス禁止ですが , R/W した場合は以下のようになります。
書込み時 → 何も影響ありません ( 書き込みされません )。
読出し時 → 不定です。
■ 命令動作
DSP-CSR レジスタの GoDSP ビットに "1" を書き込むと , 積和演算マクロは現在の DSPPC ( プログラムカウンタ ) から命令実行を開始します (CPU の動作と並列して動作しま
す )。
実行に先立って , I-RAM および DSP-PC の値を設定してください (DSP-CSR と DSP-PC
は同時設定が可能です ) 。
積和演算マクロ の命令実行が開始されると , 以下の動作制御が行われます。
• 積和演算マクロ で HLT 命令 * を実行すると , その命令実行が終了後 , 停止状態に遷
移します。
このとき DSP-PC は HLT 命令の次のアドレスを指した状態で停止します。
457
第 17 章 積和演算回路
• JMP 命令や STR 命令実行時 , CPU に割込み要求を発生させることができます ( 割込
みマスク可能です )。
• DSP-CSR の USR0 ∼ USR2 ビットを参照する条件付き分岐命令を使用し , プログラ
ムフローの切換えを行います。
*: HLT 命令とは , JMP, STR 命令の HLT ビットが "1" である命令のことです。
■ 演算機能
積和演算マクロは , 2 組の 16 ビットデータ RAM (X-RAM and Y-RAM) を持ち , 積和 ( お
よび乗算 ) 命令実行時 , 各組の RAM データを読み込んで符号付き積和 ( および乗算 )
演算を行い , 40 ビットのアキュムレータに格納します。以下にデータ形式を示します。
15
X)
+)
39
31
S ......
S
0
S
X-RAM
S
Y-RAM
0
乗算結果 (32 ビット )
S
積和命令直前の Acc
S
ACC (アキュムレータ)
( 注意事項 ) ・ 乗算命令の場合は , 乗算結果を 40 ビットに符号拡張した値がアキュム
レータに格納されます ( 直前のアキュムレータの内容はゼロクリアさ
れます )。
・ "S" は符号ビットを示します。
積和命令を数多く繰り返して , アキュムレータがオーバフローした場合は結果が保証
されません。
積和命令は連続して 512 回以上行わないでください。
■ 遅延書込み機能
積和 ( および乗算 ) 命令実行時 , 以下の転送動作も併せて行うことができます。本転送
と演算処理を併用することで , デジタルフィルタにおけるデータの遅延処理が容易に
実現できます。
• Y-RAM からの読出し値を DSP-LY レジスタに格納
• 命令実行前の DSP-LY レジスタ値を , LY-DLY レジスタを経由して Y-RAM のリー
ドアドレスに遅延書込み
■ 演算結果の転送処理
アキュムレータに格納された計算結果を X-RAM /Y-RAM へ転送する場合 , 16 ビット幅
で転送されますが , その際 , 以下に示す位取り処理が行われて転送されます。
• 出力ビット選択
40 ビットのアキュムレータのうち , 以下に示すビット幅を選択できます。
bit27 ∼ bit12
(Q12 フォーマット )
bit28 ∼ bit13
(Q13 フォーマット )
bit29 ∼ bit14
(Q14 フォーマット )
bit30 ∼ bit15
(Q15 フォーマット )
bit23 ∼ bit8
(Q8 フォーマット )
bit24 ∼ bit9
(Q9 フォーマット )
bit25 ∼ bit10
(Q10 フォーマット )
bit26 ∼ bit11
(Q11 フォーマット )
458
第 17 章 積和演算回路
• 丸め処理
選択した出力ビットの LSB の直下のビット値を "0" 捨 "1" 入します。
• 飽和処理
丸め後の 16 ビットデータの符号ビット (MSB) と , アキュムレータ内の上位ビット
の比較をして異なるビットがある場合 , 飽和処理が行われます。飽和結果は , アキュ
ムレータの符合ビット (MSB) によって以下の値になります。
アキュムレータの符号が "0" の場合→正の最大値 "7FFFH" に飽和されます。
アキュムレータの符号が "1" の場合→負の最大値 "8000H" に飽和されます。
以下に例を示します。
39 ...........
28 27 ...............
7FFH
12 11 ............
FFFFH
アキュムレータ
FFFH
(bit27 ∼ bit12 選択 ) : 位取り選択
FFFFH
1
+)
0
( アキュムレータの bit11) : 丸め処理
0000H
0
bit 15
比較
飽和処理
7FFFH
( 正の最大値に飽和 ) : 飽和処理
転送 データ
■ 変数モニタ出力
積和演算マクロは , 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 転送が正しく動作しません。
459
第 17 章 積和演算回路
17.5
命令詳細説明
積和演算回路で使用する MAC 命令 , STR 命令 , JMP 命令の詳細について説明しま
す。
■ MAC 命令
動作
← ACC + X data × Y data
: ACC
説明
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 レジスタへ転送します。
Word 数
: 1 word (16 ビット幅 )
サイクル 数 : 1 システムクロック サイクル (STLY = 1 のとき 2 サイクルになります。
)
動作コード
:
bit15
bit14
bit13
bit12 bit11............bit6 bit5..............bit0
1
CLAC
STLY
LDLY
X-Addr
Y-Addr
[bit14] CLAC (Clear ACC)
本ビットをセットすることにより乗算命令として機能します。
"0": ACC ← ACC + X data × Y data [ 積和命令 ]
"1": ACC ← 0 + X data × Y data [ 乗算命令 ]
[bit13] STLY (Store LY)
•
ビットが "1" のときに以下の動作を行います。"0" の場合は演算のみ実行されま
す。
•
演算後 , さらに LY-DLY レジスタの内容を , Y-RAM の Y-Addr 番地へ格納します。
•
本ビットをセットした場合のみ実行時間が 2 サイクルとなります。
[bit12] LDLY (Load LY)
•
ビットが "1" のときに以下の動作を行います。"0" の場合は演算のみ実行されま
す。
•
演算時に Y-RAM の Y-Addr 番地の内容を DSP-LY レジスタにも格納します。
[bit11 ∼ bit6] X-Addr (X-RAM Address)
X-RAM 内の X データを指定するためのアドレス指定ビットです。
460
第 17 章 積和演算回路
[bit5 ∼ bit0] Y-Addr (Y-RAM Address)
•
Y-RAM 内の Y データを指定するためのアドレス指定ビットです。
X-Addr
Y-Addr
X-RAM
Y- RAM
Xデータ
Yデータ
(STLY==1) のとき保存
(LDLY==1) のとき読出し
Multiply-Add Calculator
DSP-LY
LY-DLY
CPUバス
461
第 17 章 積和演算回路
■ STR 命令 ( 転送命令 )
動作 :
Data RAM ←アキュムレータ
説明 :
アキュムレータの 40 ビットデータを RND/CLP/SLQ フラグの指示によ
り 16 ビットデータに変換し , SLY フラグと X/Y-Addr の指示するデータ
RAM へ格納します。
Word 数 :
1 word (16 ビット幅 )
サイクル数 :
1 システムクロック サイクル
動作コード :
bit15
bit14
bit13
bit12
bit11
bit10 bit9.....bit7
0
1
HLT
SIRQ
RND
CLP
SLQ
6
bit5...........bit0
SLY
X/Y-Addr
[bit13] HLT (HLT 命令指示フラグ )
本ビットをセットすることにより , 命令実行後に積和演算マクロはプログラム実行
を停止します。
DSP-CSR レジスタの RunDSP フラグはクリアされます。
[bit12] SIRQ (INT 命令指示フラグ )
本ビットをセットすることにより , 命令実行後に CPU に対する割込み要求を発生さ
せ , DSP-CSR レジスタの IrqDSP フラグをセットします。
[bit11] RND (Rounding)
SLQ ビット指示された 16 ビットデータに対し , 丸め処理を指示するビットです。
丸め処理は 16 ビットデータの LSB より 1 つ下位のビットを 0 捨 1 入します。
[bit10] CLP (Clipping)
アキュムレータの計算結果が , SLQ ビットで指示された 16 ビットデータに対して
オーバフローした値である場合 , 16 ビットデータに対して飽和処理を指示するビッ
トです。
実際にはアキュムレータの MSB(39 ビット ) から 16 ビットデータの MSB(SLQ 指示 )
が同じ値でない場合に飽和処理が行われます。丸め処理の指定があった場合は , 丸
め処理の結果に対して比較されます。
丸め処理前のアキュムレータの値が正のときは正の最大値 (7FFFH), 負の場合は負
の最大値 (8000H) が転送されます。
丸め処理および飽和処理によりアキュムレータの符号は反転することなく , 符号は
保存されます。
462
第 17 章 積和演算回路
[bit9 ∼ bit7] SLQ
アキュムレータからデータ RAM へ転送するビット位置を指定します。
SLQ ビット
オーバフロー判定ビット
転送 16 ビットデータ
丸めビット
固定小数点方式
000
bit39 ∼ bit27
bit27 ∼ bit12
bit11
Q12
001
bit39 ∼ bit28
bit28 ∼ bit13
bit12
Q13
010
bit39 ∼ bit29
bit29 ∼ bit14
bit13
Q14
011
bit39 ∼ bit30
bit30 ∼ bit15
bit14
Q15
100
bit39 ∼ bit23
bit23 ∼ bit8
bit7
Q8
101
bit39 ∼ bit24
bit24 ∼ bit9
bit8
Q9
110
bit39 ∼ bit25
bit25 ∼ bit10
bit9
Q10
111
bit39 ∼ bit26
bit26 ∼ bit11
bit10
Q11
[bit6] SLY
転送先を指定します。
"0": X-RAM
"1": Y-RAM
[bit5 ∼ bit0] X/Y Addr (RAM Address)
データ RAM の直接アドレスを指定します。
463
第 17 章 積和演算回路
■ JMP 命令 ( 分岐命令 )
動作 :
[ 条件成立時 ]DSP-PC ← J-Addr8
[ 条件不成立時 ]DSP-PC ← DSP-PC + 1
説明 :
条件が成立したときに分岐し , 成立しなければ何も実行しません。
Word 数 :
1 word (16 ビット幅 )
サイクル数 : 1 システムクロックサイクル
動作コード :
bit15
bit14
bit13
bit12
0
0
HLT
SIRQ
bit11 bit10...bit8 bit7...........bit0
COND
UBP2 ∼
UBP0
J-Addr8
[bit13] HLT (HLT 命令指示フラグ )
本ビットをセットすることにより , 命令実行後に積和演算マクロはプログラム実行
を停止します。
DSP-CSR レジスタの RunDSP フラグはクリアされます。
[bit12] SIRQ (INT 命令指示フラグ )
本ビットをセットすることにより , 命令実行後に CPU に対する割込み要求を発生さ
せます。
DSP-CSR レジスタの IrqDSP フラグをセットします。
[bit11] COND (CONDition)
"0": 無条件分岐
"1": 条件付き分岐
[bit10 ∼ bit8] UBP2 ∼ UBP0 ( 条件指定 )
条件付き分岐時の条件を設定します。DSP-CSR レジスタの USR2, USR1, USR0 ビッ
トと本ビットが一致すると条件成立となります。
無条件分岐のときは , "000B" に設定する必要があります。
[bit7 ∼ bit0] J-Addr8 (Jump Address)
分岐先のアドレスを指定します。
464
第 18 章
DMAC
(DMA コントローラ )
DMAC の概要 , レジスタの構成 / 機能および動作に
ついて説明します。
18.1 概要
18.2 レジスタ詳細説明
18.3 DMAC (DMA コントローラ ) の動作
18.4 動作フローチャート
18.5 データパス
465
第 18 章 DMAC (DMA コントローラ )
18.1
概要
DMAC は , DMA (Direct Memory Access) 転送を実現するためのモジュールです。
DMA 転送により , CPU を介さずに各種データ転送を高速に行うことが可能となり ,
システムのパフォーマンスを向上させます。
■ ハードウェア構成
本モジュールは , 主に以下の回路およびレジスタにより構成されます。
• 独立した DMA チャネル× 5 チャネル
• 5 チャネル独立アクセス制御回路
• 20 ビットアドレスレジスタ ( リロード指定可能:ch.0 ∼ ch.3)
• 24 ビットアドレスレジスタ ( リロード指定可能:ch.4)
• 16 ビット転送回数レジスタ ( リロード指定可能:各チャネル 1 本 )
• 4 ビットブロック回数レジスタ ( 各チャネル 1 本 )
• 2 サイクル転送
■ 主要機能
本モジュールによるデータ転送には以下の機能があります。
• 複数チャネルの独立したデータ転送が可能 (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 固定 )
• データの種類バイト / ハーフワード / ワード長
• シングルショット / リロード選択可能
466
第 18 章 DMAC (DMA コントローラ )
■ レジスタ概要
図 18.1-1 DMAC のレジスタ一覧
bit 31
ch.0 コントロール / ステータスレジスタ A
DMACA0 000200H
ch.0 コントロール / ステータスレジスタ B
DMACB0 000204H
ch.1 コントロール / ステータスレジスタ A
DMACA1 000208H
ch.1 コントロール / ステータスレジスタ B
DMACB1 00020CH
ch.2 コントロール / ステータスレジスタ A
DMACA2 000210H
ch.2 コントロール / ステータスレジスタ B
DMACB2 000214H
ch.3 コントロール / ステータスレジスタ A
DMACA3 000218H
ch.3 コントロール / ステータスレジスタ B
DMACB3 00021CH
ch.4 コントロール / ステータスレジスタ A
DMACA4 000220H
ch.4 コントロール / ステータスレジスタ B
DMACB4 000224H
全体制御レジスタ
DMACR 000240H
ch.0 転送元アドレスレジスタ
DMASA0 001000H
ch.0 転送先アドレスレジスタ
DMADA0 001004H
ch.1 転送元アドレスレジスタ
DMASA1 001008H
ch.1 転送先アドレスレジスタ
DMADA1 00100CH
ch.2 転送元アドレスレジスタ
DMASA2 001010H
ch.2 転送先アドレスレジスタ
DMADA2 001014H
ch.3 転送元アドレスレジスタ
DMASA3 001018H
ch.3 転送先アドレスレジスタ
DMADA3 00101CH
24
bit
bit 31
ch.4 転送元アドレスレジスタ
DMASA4 001020H
ch.4 転送先アドレスレジスタ
DMADA4 001024H
23
16
20 19
24
23
15
8
7
0
0
0
467
第 18 章 DMAC (DMA コントローラ )
■ ブロックダイヤグラム
図 18.1-2 DMAC 5 チャネルブロックダイヤグラム
カウンタ
バスコントローラへ
DMA 転送要求
DMA 起動
要因選択回路
&
要求受付け制御
バッファ
セレクタ
ペリフェラル起動要求 / 停止入力
DTC 2 段レジスタ DTCR
CR
カウンタ
DSS3~DSS0
バッファ
読込み
書込み
リード / ライト
制御
優先度回路
割込みコントローラへ
ERIR,EDIR
セレクタ
IRQ0
周辺割込みクリア
BLK レジスタ
TYPE.MOD,WS
468
X-bus
バス制御部
カウンタバッファ
セレクタ
DMASA 2 段レジスタ
セレクタ
アドレス
DMA コントロール
カウンタバッファ
アクセス
アドレスカウンタ
バス制御部
状態遷移回路
バスコン
トローラ
へ
DMADA 2 段レジスタ
SADM,
SASZ7~SASZ0
SADR
DADM,
DASZ7~DASZ0
DADR
IRQ4∼
MCLREQ
第 18 章 DMAC (DMA コントローラ )
レジスタ詳細説明
18.2
DMA コントローラで使用するレジスタの設定時の注意事項とレジスタの詳細につい
て説明します。
■ レジスタ設定時の注意
本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ
ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。
* マークは DMAC 転送中に設定すると動作に影響するビットです。このビットの書換
えは DMAC 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。
DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定
した場合は , 起動許可後に設定は有効になります。
DMA転送の一時停止状態(DMACR:DMAH3∼DMAH0]≠0000またはDMACA:PAUS=1
のとき ) で設定した場合は , 一時停止解除後に設定は有効になります。
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ A
[DMACA: DMACA0 ∼ DMACA4]
DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
アドレス
ch.0
ch.1
ch.2
ch.3
ch.4
bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16
IS4~IS0
BLK3~BLK0
:000200H DENB PAUS STRG
−
R/W
R/W
:000208H R/W R/W R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1 bit0
:000210H
:000218H
DTC15~DTC0
:000220H
R/W
( 初期値:00000000 00000000 00000000 00000000B)
[bit31] DENB (Dma ENaBle) :DMA 動作許可ビット
各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。
起動されたチャネルは, 転送要求が発生し受け付けられるとDMA転送を開始します。
起動許可されていないチャネルに対して発生した転送要求は, すべて無効となります。
起動されたチャネルの転送が指定回数分すべて終了した場合 , 本ビットは "0" にな
り , 転送は停止します。
本ビットに "0" を書き込むと強制停止しますが , 必ず PUAS ビット [DMACA: bit30] で
DMA を一時停止状態した後強制停止 ("0" 書込み ) してください。一時停止しないで
強制停止した場合は , DMA は停止しますが転送データは保証されません。停止の確
認は DSS2 ∼ DSS0 ビット (DMACB:bit18 ∼ bit16) で行ってください。
DENB
機能
0
対応チャネル DMA 動作禁止 ( 初期値 )
1
対応チャネル DMA 動作許可
469
第 18 章 DMAC (DMA コントローラ )
•
リセット時 , 停止要求が受け付けられた場合:"0" に初期化されます。
•
読出しおよび書込みが可能です。
•
DMAC 全体制御レジスタ DMACR の bit15:DMAE により , 全チャネルの動作が
禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状態を維持し
ます。また , 本ビットにより動作が許可されている状態にて前記ビットにより動
作が禁止された場合 , 本ビットは "0" となり , 転送は中断します ( 強制停止 ) 。
[bit30] PAUS (PAUSe):一時停止指示
対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ
ると , 再び本ビットがクリアされるまでの間は , DMA 転送を行いません (DMA が停
止中は DSS ビットが "1xx" になります ) 。
起動前に本ビットをセットしてから起動した場合 , 一時停止状態のままとなりま
す。
本ビットがセットされている間に新たに発生した転送要求は受け付けられますが ,
本ビットをクリアしないと転送は開始しません (「18.3.3 DMA 転送全般」の「■ 転
送要求の受付けと転送」を参照 ) 。
PAUS
機能
0
対応チャネル DMA 動作許可 ( 初期値 )
1
対応チャネル DMA 一時停止
•
リセット時:"0" に初期化されます。
•
読出しおよび書込みが可能です。
[bit29] STRG (Software TRiGger) :転送要求
対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ
ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開
始します。
ただし , 対応するチャネルが起動されていない場合は , 本ビットへの操作は無効と
なります。
( 注意事項 )
DMAE ビットの書込みによる起動と本ビットによる転送要求が同時の場
合 , 転送要求は有効となり , 転送を開始します。また , PAUS ビットへの
"1" 書込みと同時である場合 , 転送要求は有効となりますが , PAUS ビッ
トを "0" に戻すまで DMA 転送は開始しません。
STRG
470
機能
0
無効
1
DMA 起動要求
•
リセット時:"0" に初期化されます。
•
読出し値は常に "0" となります。
•
書込み値は "1" のみ有効で , "0" は動作に影響を与えません。
第 18 章 DMAC (DMA コントローラ )
[bit28 ∼ bit24] IS4 ∼ IS0 (Input Select) * : 転送要因選択
転送要求の要因を以下のように選択します。ただし , STRG ビット機能によるソフ
トウェア転送要求は本設定にかかわらず有効となります。
IS
機能
00000B
ソフトウェア転送要求のみ
00001B
↓
01111B
設定禁止
↓
設定禁止
10000B
UART0 ( 受信完了 )
10001B
UART1 ( 受信完了 )
10010B
システム予約
10011B
UART0 ( 送信完了 )
10100B
UART1 ( 送信完了 )
10101B
システム予約
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 起動を
設定した状態では , ソフトウェア転送要求による起動を行わないでく
ださい。
471
第 18 章 DMAC (DMA コントローラ )
[bit23 ∼ bit20] −: 未定義ビット
読出し値は "0000B" 固定です。書込みは無効となります。
[bit19 ∼ bit16] BLK3 ∼ BLK0 (BLocK size) :ブロックサイズ指定
対応するチャネルのブロック転送時のブロックサイズを指定します。本ビットに設
定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰返し回
数) となります。
ブロック転送を行わない場合は01H (サイズ1) を設定してください。
BLK3~BLK0
XXXXB
機能
対応チャネルのブロックサイズ指定
•
リセット時:"0000B" に初期化されます。
•
読出しおよび書込みが可能です。
•
全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。
•
読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。
[bit15 ∼ bit0] DTC15 ∼ DTC0 (Dma Terminal Count register) * : 転送回数レジスタ
転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ
のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設
定値をレジスタに戻します。
DTC15 ∼ DTC0
XXXXH
機能
対応チャネルの転送回数指定
DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウ
ンタバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 ) 。DMA の転
送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了
します。よって DMA 動作中の転送回数指定値を読み出すことはできません。
•
リセット時:"00000000 00000000B" に初期化されます。
•
読出しおよび書込みが可能です。DTC のアクセスは , 必ずハーフワード長また
はワード長にてアクセスしてください。
•
472
読出し時の値は , カウント値となります。リロード値の読出しはできません。
第 18 章 DMAC (DMA コントローラ )
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ B
[DMACB: DMACB0 ∼ DMACB4]
DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
アドレス
ch.0
ch.1
ch.2
ch.3
ch.4
bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16
:000204H TYPE1,TYPE0 MOD1,MOD0 WS1,WS0 SADM DADM DTCR SADR DADR ERIE EDIE DSS2 ∼ DSS0
R/W
R/W
R/W
R/W R/W R/W R/W R/W R/W R/W
R/W
:00020CH
:000214H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
: 00021CH
SASZ7 ∼ SASZ0
DASZ7 ∼ DASZ0
:000224H
R/W
R/W
( 初期値:00000000 00000000 00000000 00000000B)
* マークは DMAC 転送中に設定すると動作に影響するビットです。このビットの書換
えは DMAC 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。
[bit31, bit30] TYPE1, TYPE0 (TYPE) *:転送タイプ設定
対応チャネルの動作タイプを以下のように設定します。
2 サイクル転送モード:転送元アドレス (DMASA) と転送先アドレス (DMADA) を
設定して読出し動作と書込み動作を転送回数分繰り返して
転送するモードです。
TYPE1, TYPE0
機能
00B
2 サイクル転送 ( 初期値 )
01B
設定禁止
10B
設定禁止
11B
設定禁止
•
リセット時:"00B" に初期化されます。
•
読出しおよび書込みが可能です。
•
必ず "00B" に設定してください。
[bit29, bit28] MOD1, MOD0 (MODe) * :転送モード設定
対応チャネルの動作モードを以下のように設定します。
MOD1, MOD0
機能
00B
ブロック / ステップ転送モード ( 初期値 )
01B
バースト転送モード
10B
設定禁止
11B
設定禁止
•
リセット時:"00B" に初期化されます。
•
読出しおよび書込みが可能です。
473
第 18 章 DMAC (DMA コントローラ )
[bit27, bit26] WS1, WS0 (Word Size) :転送データ幅選択
対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で
指定回数分の転送を行います。
WS1, WS0
機能
00B
バイト単位で転送 ( 初期値 )
01B
ハーフワード単位で転送
10B
ワード幅単位で転送
11B
設定禁止
•
リセット時:"00B" に初期化されます。
•
読出しおよび書込みが可能です。
[bit25] SADM (Source-ADdr. count-Mode select) *:転送元アドレスカウントモード指定
対応するチャネルの転送元アドレスの 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) に従って ,
1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレ
スレジスタ (DMASA) に書き込まれます。
したがって ,DMA 転送が終了するまで転送元アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
ト幅 (SASZ, DASZ) を "0" としてください。
SADM
474
機能
0
転送元アドレスは増加します ( 初期値 )。
1
転送元アドレスは減少します。
•
リセット時:"0" に初期化されます。
•
読出しおよび書込みが可能です。
第 18 章 DMAC (DMA コントローラ )
[bit24] DADM (Destination-ADdr. Count-Mode select) *:転送先アドレスカウントモー
ド指定
対応するチャネルの転送先アドレスの 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って , 1
転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス
レジスタ (DMADA) に書き込まれます。
したがって , DMA 転送が終了するまで転送先アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
ト幅 (SASZ, DASZ) を "0" としてください。
DADM
機能
0
転送先アドレスは増加します ( 初期値 )。
1
転送先アドレスは減少します。
•
リセット時:"0" に初期化されます。
•
読出しおよび書込みが可能です。
[bit23] DTCR (DTC-reg. Reload) *:転送回数レジスタリロード指定
対応するチャネルの転送回数レジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に回数レジスタ値
を初期設定値に戻して停止し , 転送要求 (STRG, または IS 設定による起動要求 ) 待
ち状態になります ( 本ビットが "1" の場合 , DENB ビットはクリアされません ) 。
DENB=0, または DMAE=0 を設定すると強制停止します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 DENB ビットはクリアされます。
DTCR
機能
0
転送回数レジスタリロードを禁止 ( 初期値 )
1
転送回数レジスタリロードを許可
•
リセット時:"0" に初期化されます。
•
読出しおよび書込みが可能です。
475
第 18 章 DMAC (DMA コントローラ )
[bit22] SADR (Source-ADdr.-reg. Reload) *:転送元アドレスレジスタリロード指定
対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス
レジスタ値を初期設定値に戻します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。
本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ
スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し
ている場合は , 増加したアドレスとなります ) 。
SADR
機能
0
転送元アドレスレジスタリロード禁止 ( 初期値 )
1
転送元アドレスレジスタリロード許可
•
リセット時:"0" に初期化されます。
•
読出しおよび書込みが可能です。
[bit21] DADR (Dest.-ADdr.-reg. Reload) * :転送先アドレスレジスタリロード指定
対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス
レジスタ値を初期設定値に戻します。
その他 , 機能の詳細は bit22:SADR の内容と同等になります。
DADR
476
機能
0
転送先アドレスレジスタリロード禁止 ( 初期値 )
1
転送先アドレスレジスタリロード許可
•
リセット時:"0" に初期化されます。
•
読出しおよび書込みが可能です。
第 18 章 DMAC (DMA コントローラ )
[ bit20] ERIE (ERror Interrupt Enable)* : エラー割込み出力許可
エラー発生による終了時の割込み発生を制御します。
発生したエラーの内容は DSS2 ∼
DSS0 にて示されます。すべての終了要因で本割込みが発生するのではなく , 特定の終
了要因の際のみ割込みが発生することに注意してください (DSS2 ∼ DSS0 ビット説明
を参照 ) 。
ERIE
機能
0
エラー割込み要求出力禁止 ( 初期値 )
1
エラー割込み要求出力許可
•
リセット時:"0" に初期化されます。
•
読出しおよび書込みが可能です。
[bit19] EDIE (EnD Interrupt Enable) * : 終了割込み出力許可
正常終了時の割込み発生を制御します。
EDIE
機能
0
終了割込み要求出力禁止 ( 初期値 )
1
終了割込み要求出力許可
•
リセット時:"0" に初期化されます。
•
読出しおよび書込みが可能です。
[bit18 ∼ bit16] DSS2 ∼ DSS0 (Dma Stop Status) * : 転送停止要因表示
対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビットのコード ( 終了コー
ド ) を表示します。終了コードの内容は以下のとおりです。
DSS2
機能
割込み発生
0
初期値
なし
1
DMA 一時停止中 (DMAH, PAUS ビット , 割込みなど )
なし
DSS1, DSS0
機能
割込み発生
00B
初期値
なし
01B
−
なし
10B
転送停止要求
エラー
11B
正常終了
終了
転送停止要求は , 周辺回路からの要求を使用した場合のみセットされます。
( 注意事項 ) 「割込み発生」欄は , 発生可能な割込み要求の種類を示します。
• リセット時:"000B" に初期化されます。
• "000B" を書き込むことにより , クリアされます。
• 読出しおよび書込みが可能ですが , 本ビットへの書込みは "000B" の
み有効となります。
477
第 18 章 DMAC (DMA コントローラ )
[bit15 ∼ bit8] SASZ7 ∼ SASZ0 (Source Addr count SiZe) * :
転送元アドレスカウントサイズ指定
対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減は転送元アドレスカウントモード (SADM) の指定に従います。
SASZ7 ∼ SASZ0
機能
00H
アドレス固定
01H
バイト単位で転送
02H
ハーフワード単位で転送
04H
ワード単位で転送
上記以外
設定禁止
• リセット時:"00000000B" に初期化されます。
• 読出しおよび書込みが可能です。
• アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定してく
ださい。
[bit7 ∼ bit0] DASZ7 ∼ DASZ0 (Des Addr count SiZe) * :
転送先アドレスカウントサイズ指定
対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減は転送先アドレスカウントモード (DADM) の指定に従います。
DASZ7 ∼ DASZ0
00H
アドレス固定
01H
バイト単位で転送
02H
ハーフワード単位で転送
04H
ワード単位で転送
上記以外
設定禁止
•
リセット時:"00000000B" に初期化されます。
•
読出しおよび書込みが可能です。
•
アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し
てください。
478
機能
第 18 章 DMAC (DMA コントローラ )
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先アドレス設定レジスタ
[(DMASA/DMADA):DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4]
DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
図 18.2-1 ch.0 ∼ ch.3
アドレス
001000H ∼
00101CH
bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16
DMASA0 ∼ DMASA3[19:16]
R/W
R/W
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
DMASA0 ∼ DMASA3[15:0]
R/W
( 初期値:00000000 00000000 00000000 00000000B)
bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16
DMADA0 ∼ DMADA3[19:16]
R/W
R/W
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
DMADA0 ∼ DMADA3[15:0]
R/W
( 初期値:00000000 00000000 00000000 00000000B)
図 18.2-2 ch.4
アドレス
001020H
001024H
bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16
DMASA4[23:16]
R/W
R/W
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
DMASA4[15:0]
R/W
( 初期値:00000000 00000000 00000000 00000000B)
bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16
DMADA4[23:16]
R/W
R/W
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
DMADA4[15:0]
R/W
( 初期値:00000000 00000000 00000000 00000000B)
転送元 / 先アドレスを格納するレジスタ群です。ch.0 ∼ ch.3 は 20 ビット長 , ch.4 は 24
ビット長で構成されています。
* マークは DMAC 転送中に設定すると動作に影響するビットです。このビットの書換
えは DMAC 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。
479
第 18 章 DMAC (DMA コントローラ )
[bit19 ∼ bit0] DMASA (DMA Source Addr) * :
ch.0 ∼ ch.3:DMASA19 ∼ DMASA0:転送元アドレス設定
[bit23 ∼ bit0] DMASA (DMA Source Addr) * :
ch.4:DMASA23 ∼ DMASA0:転送元アドレス設定
転送元アドレスの設定を行います。
[bit19 ∼ bit0] DMADA (DMA Destination Addr) * :
ch.0 ∼ ch.3:DMADA19 ∼ DMADA0:転送先アドレス設定
[bit23 ∼ bit0] DMADA (DMA Destination Addr) * :
ch.4:DMADA23 ∼ DMADA0:転送先アドレス設定
転送先アドレスの設定を行います。
DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ
ンタバッファに格納して , 1 転送ごとに設定に従いアドレスカウントします。DMA
の転送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は
終了します。したがって DMA 動作中のアドレスカウンタ値を読み出すことはでき
ません。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送元 / 転送先ア
ドレスレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に
自動的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには
影響を与えません。
•
リセット時:"00000000 00000000 00000000 00000000B" に初期化されます。
•
読出しおよび書込みが可能です。本レジスタは , 必ず 32 ビットデータでアクセ
スしてください。
•
読出し時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスア
ドレス値となります。リロード値の読出しはできません。したがって , 転送アド
レスをリアルタイムで読出しすることはできません。
•
存在しない上位ビットには , "0" を設定してください。
<注意事項>
本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ
に DMA 転送を行うことはできません。
480
第 18 章 DMAC (DMA コントローラ )
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御レジスタ [DMACR]
DMAC の 5 チャネル分全体の動作制御を行うレジスタです。本レジスタは必ずバイト
長でアクセスしてください。
各ビット機能は以下に示すとおりです。
図 18.2-3 DMACR
アドレス
bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16
000240H
DMAE
−
−
R/W
PM01
DMAH3 ∼ DMAH0
−
−
−
−
−
−
−
−
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
−
−
−
−
−
−
−
−
−
R/W R/W R/W R/W R/W
bit15 bit14 bit13 bit12 bit11 bit10 bit9
−
−
−
−
−
−
−
( 初期値:0XX00000 XXXXXXXX XXXXXXXX XXXXXXXXB)
* マークは DMAC 転送中に設定すると動作に影響するビットです。このビットの書換
えは DMAC 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。
[bit31] DMAE (DMA Enable) :DMA 動作許可
DMA 全チャネルの動作制御を行います。
本ビットにより DMA 動作が禁止されている場合 , チャネルごとの起動 / 停止の設
定や動作状態にかかわらず , 全チャネルの転送動作が禁止されます。転送中であっ
たチャネルは要求を取り下げ , ブロック境界にて転送を停止します。禁止状態にて ,
各チャネルに対して行われる起動操作は , すべて無効となります。
本ビットにより DMA 動作が許可されている場合 , チャネルごとに起動 / 停止操作
が有効となります。本ビットで DMA 動作許可を行ったのみでは , 各チャネルに対
する起動は行われません。
本ビットに "0" を書き込むと強制停止しますが , 必ず DMAH3 ∼ DMAH0 ビット
(DMACR:bit27 ∼ bit24) で DMA を一時停止状態にした後強制停止 ("0" 書込み ) して
ください。一時停止しないで強制停止した場合は DMA は停止しますが転送データ
は保証されません。停止の確認は DSS2 ∼ DSS0 ビット (DMACB:bit18 ∼ bit16) で
行ってください。
DMAE
機能
0
全チャネル DMA 動作禁止 ( 初期値 )
1
全チャネル DMA 動作許可
•
リセット時:"0" に初期化されます。
•
読出しおよび書込みが可能です。
481
第 18 章 DMAC (DMA コントローラ )
[bit28] PM01 (Priority Mode ch.0, ch.1 robin) :チャネル優先度回転
ch.0, ch.1 の優先度を転送ごとに順位を回転させるときに設定します。
PM01
機能
0
優先順位固定 (ch.0 > ch.1) ( 初期値 )
1
優先順位回転 (ch.1 > ch.0)
•
リセット時:"0" に初期化されます。
•
読出しおよび書込みが可能です。
[bit27 ∼ bit24] DMAH3 ∼ DMAH0 (DMA Halt) :DMA 一時停止
DMA 全チャネルの一時停止制御を行います。本ビットがセットされると , 再び本
ビットがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。
起動前に本ビットをセットした後起動した場合 , 全チャネルが一時停止のままとな
ります。
本ビットがセットされている間に DMA 転送が許可 (DENB=1) されているチャネル
に発生した転送要求は すべて有効となり , 本ビットをクリアすることにより転送を
開始します。
DMAH3 ∼ DMAH0
0000B
0000B 以外
機能
全チャネル DMA 動作許可 ( 初期値 )
全チャネル DMA 一時停止
•
リセット時:"0" に初期化されます。
•
読出しおよび書込みが可能です。
[bit30, bit29, bit23 ∼ bit0] −: 未定義ビット
読出し値は不定です。
482
第 18 章 DMAC (DMA コントローラ )
18.3
DMAC (DMA コントローラ ) の動作
DMA コントローラの動作について説明します。
■ 主要動作
• 各転送チャネルは , 独立に各種機能を設定します。
• 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いませ
ん。
• 転送要求検出により , バスコントローラに対し DMA 転送要求を出力し , バスコント
ローラの制御によりバス権を取得して転送を開始します。
• 転送はチャネルごとに独立に設定されたモード設定に従ったシーケンスで行われ
ます。
■ 転送モード
DMA の各チャネルは , それぞれの DMACB レジスタの MOD1, MOD0 ビットで設定さ
れた転送モードに従って転送動作を行います。
● ブロック / ステップ転送
1 回の転送要求にて 1 ブロック転送単位のみ転送を行い , その後 , 次の転送要求が受け
付けられるまでは DMA はバスコントローラに対し転送要求を停止します。
1 ブロック転送単位:設定されたブロックサイズ分 DMACA:BLK3 ∼ BLK0
● バースト転送
1 回の転送要求にて指定転送回数終了まで連続して転送を行います。
指定転送回数:ブロックサイズ分×転送回数分
(DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0)
■ 転送タイプ
● 2 サイクル転送 ( 通常転送 )
DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作を行い
ます。
転送元レジスタのアドレスからデータを読み出して転送先レジスタのアドレスへデー
タを書き込みします。
483
第 18 章 DMAC (DMA コントローラ )
■ 転送アドレス
アドレッシングは , チャネル転送元 / 転送先ごとに独立に設定します。
● 2 サイクル転送でのアドレスの指定
あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を
アドレスとしてアクセスします。
転送要求を受け付けた後 , DMA はレジスタからアドレスを一時記憶バッファに格納し
て転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成
( 加算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッ
ファの内容は1ブロック転送単位終了ごとにレジスタ(DMASA, DMADA)へライトバッ
クされます。
したがって , アドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにし
か更新されませんので転送中のアドレスをリアルタイムに知ることはできません。
■ 転送回数と転送終了
● 転送回数
1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント ( − 1) します。転送
回数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停止また
は再起動します。
転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更新
されません。
転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可されて
いる場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。
● 転送終了
転送終了要因には , 以下のものがあり , 終了時は終了コードとして要因が表示されま
す。(DMACB:DSS2 ∼ DSS0)
• 指定転送回数の終了(DMACA:BLK3∼BLK0×DMACA:DTC15∼DTC0) → 正常終了
• 周辺回路からの転送停止要求の発生 → エラー
• リセットの発生 → リセット
各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを
発生可能です。
484
第 18 章 DMAC (DMA コントローラ )
18.3.1
転送要求の設定
DMA 転送を起動する転送要求には内蔵周辺要求とソフトウェア要求の 2 種類があり
ます。ソフトウェア要求については , ほかの要求の設定にかかわらず常に使用する
ことができます。
■ 内蔵周辺要求
内蔵周辺回路の割込み発生により , 転送要求を発生します。
チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します
(DMACA:IS4 ∼ IS0=1xxxxB)。
( 注意事項 ) 転送要求に使用した割込み要求は, CPUへの割込み要求としても見えます
ので割込みコントローラの設定を割込み禁止に設定してください (ICR レ
ジスタ )。
■ ソフトウェア要求
レジスタのトリガビットへの書込みにより , 転送要求を発生します (DMACA:STRG)。
上記の転送要求とは独立で , 常に使用することができます。
起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントローラに
対し DMA 転送要求を出力し転送を開始します。
( 注意事項 ) 内蔵周辺要求を設定したチャネルに対してソフトウェア要求を行うと , 転
送終了後 , 該当する周辺に対して要因クリアを行います。このため , 本来
の転送要求をクリアしてしまう可能性がありますので , ソフトウェア要求
を行わないでください。
485
第 18 章 DMAC (DMA コントローラ )
18.3.2
転送シーケンス
チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転送
モードを独立して設定することができます (DMACB:TYPE1, TYPE0, MOD1, MOD0 の
設定 ) 。
■ 転送シーケンスの選択
レジスタの設定により以下のシーケンスが選択可能です。
• バースト 2 サイクル転送
• ブロック / ステップ 2 サイクル転送
■ バースト 2 サイクル転送
1 回の転送要因にて指定転送回数の転送を続けて行います。2 サイクル転送の場合の転
送元 / 転送先アドレスは ch.0 ∼ ch.3 では 20 ビット , ch.4 では 24 ビット指定可能です。
転送要因は , 周辺転送要求 / ソフトウェア転送要求を選択できます。
● バースト転送の特長
• 転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送を
行います。
• 転送回数はブロックサイズ分×転送回数分になります (DMACA:BLK3 ∼ BLK0 ×
DMACA:DTC15 ∼ DTC0)。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要求
を受け付けます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック転
送単位の境目でチャネルを切り換え , そのチャネルの転送要求がクリアされるまで
復帰しません。
周辺転送要求
バス動作
転送回数
CPU
DMASA
4
DMADA DMASA DMADA DMASA DMADA DMASA
3
2
転送終了 ( 内部 )
( 周辺転送要求 , ブロック数= 1, 転送回数= 4 のときのバースト転送例 )
486
CPU
DMADA
1
0
第 18 章 DMAC (DMA コントローラ )
■ ステップ / ブロック転送 2 サイクル転送
ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場
合の転送元 / 転送先アドレスは , ch.0 ∼ ch.3 では 20 ビット , ch.4 では 24 ビット指定可
能です。
● ステップ転送
ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。
[ ステップ転送の特長 ]
• 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送を
停止します ( バスコントローラに対し DMA 転送要求を取り下げる )。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止後
に , チャネルを切り換えて続けて転送を開始します。ステップ転送における優先順
位は , 転送要求が同時に発生した場合のみ意味を持ちます。
● ブロック転送
ブロックサイズに "1" 以外を設定すると , ブロック転送シーケンスとなります。
[ ブロック転送の特長 ]
1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ス
テップ転送と全く同じ動作となります。
図 18.3-1 ブロック転送
周辺転送要求
バス動作
CPU
ブロック数
転送回数
DMASA DMADA DMASA DMADA
2
1
CPU
0
2
DMASA DMADA DMASA DMADA
2
1
1
転送終了 ( 内部 )
( 周辺転送要求 , ブロック数= 2, 転送回数= 2 のときのブロック転送例 )
487
第 18 章 DMAC (DMA コントローラ )
18.3.3
DMA 転送全般
DMA 転送のブロックサイズとリロード動作について説明します。
■ ブロックサイズ
• 転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数 ( ×データ幅 )
のデータの集合となります。
• 1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転
送単位はブロックサイズ指定値分の転送サイクル数より構成されることになりま
す。
• 転送中に , より高位の優先順位の転送要求が受け付けられた場合 , または転送の一
時停止要求が発生した場合において , ブロック転送時においても 1 転送単位の境界
にならないと停止しません。これにより , 分割・一時停止を希望しないデータブロッ
クのデータ保護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下さ
せる原因ともなります。
• リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容などは
保証されません。
■ リロード動作
本モジュールでは , チャネルごとに以下の 3 種類のリロード機能の設定が可能です。
● 転送回数レジスタリロード機能
指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起動受付
け待ちします。
全転送シーケンスを繰り返し行う際に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が "0" のままとな
り , 以降の転送は行われません。
● 転送元アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定します。
転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。
リロード指定をしない場合,指定回数の転送終了後は転送元アドレスレジスタ値が終了
時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
● 転送先アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定します。
転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。
リロード指定をしない場合,指定回数の転送終了後は転送元アドレスレジスタ値が終了
時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
• 転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了
後の再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。
488
第 18 章 DMAC (DMA コントローラ )
<注意事項>
動作モードとリロード動作の特殊な例
• 転送終了にていったん停止し , 再度入力検出から行いたい場合は , リロード指定を行わ
ないようにしてください。
• バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となると
リロード後いったん転送を中断し , 改めて転送要求入力が検出されるまで転送を行い
ません。
■ アドレッシングモード
各転送チャネルの転送先および転送元アドレスは , それぞれ独立に指定します。
指定方法には下記の方法があります。転送シーケンスによって設定してください。
● アドレスレジスタ指定
2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アドレ
スを,転送先アドレス設定レジスタ(DMADA)には転送先アドレスを設定してください。
● アドレスレジスタの特長
ch.0 ∼ ch.3 は 20 ビット , ch.4 は 24 ビットのレジスタです。
● アドレスレジスタの機能
• 毎アクセス時に読み出され , アドレスバスへ放出されます。
• 同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ , 計算結果の
アドレスにてアドレスレジスタを更新します。
• アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算より選択
します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値によります
(DMACB:SASZ, DASZ)。
• 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最終
アドレスにアドレス計算をした結果のアドレスが残されます。
• リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。
<注意事項>
• 20 ビットまたは 24 ビット長フルアドレス計算の結果 , オーバフロー / アンダフローが
発生した場合でも , そのチャネルの転送は継続されます。オーバフロー / アンダフロー
が発生しないように各チャネルを設定してください。
• アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。
489
第 18 章 DMAC (DMA コントローラ )
■ データの種類など
1 回の転送で転送されるデータ長 ( データ幅 ) は , バイト , ハーフワード , ワードから選
択します。
● バイト , ハーフワード , ワード
DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ
ス指定においてデータ長と食い違うアドレスが設定された場合 , 異なる下位ビットは
無視されます。
• ワード
…実際のアクセスアドレスは下位 2 ビットが "00B" から始まる 4 バイ
トとなります。
• ハーフワード …実際のアクセスアドレスは下位 1 ビットが "0" から始まる 2 バイト
となります。
• バイト
…実際のアクセスアドレスとアドレス指定が一致します。
転送元アドレスと転送先アドレスの下位ビットが食い違っている場合 , 内部アドレス
バス上には設定そのままのアドレスが出力されますが , バス上の各転送対象において ,
上記に従ってアドレスが修正されてアクセスが行われます。
■ 転送回数制御
転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回数指
定値は転送回数レジスタ (DMACA:DTC) に設定します。
レジスタ値は転送開始時に一時記憶バッファへ格納され , 転送回数カウンタにより減
算されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され ,
そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。
● 転送回数レジスタ群の特長
• 各レジスタ 16 ビットです。
• すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。
• レジスタ値が "0" のときに起動すると , 65536 回の転送を行います。
● リロード動作
• リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有効で
す。
• 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。
• 転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知すると共
に , リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。
490
第 18 章 DMAC (DMA コントローラ )
■ CPU 制御
DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発行
します。
バスコントローラはバス動作の切れ目にて内部バス使用権を DMA に明け渡し , DMA
転送が開始されます。
● DMA 転送と割込み
• DMA 転送中は , 基本的には転送終了まで割込みの受付けは停止します。
• また割込み処理動作中に DMA 転送要求があった場合 , 転送要求は受け付けられ , 転
送終了まで割込み処理動作は停止します。
• 例外として , NMI 要求または割込みコントローラにて設定されたホールド抑止レベル
より高いレベルの割込み要求が発生した場合には , DMAC は転送単位 (1 ブロック ) の
境界にてバスコントローラへの転送要求を一時取り下げ , 割込み要求がクリアされる
までは転送を一時停止状態にします。この間 , 転送要求は内部で保持されます。割込
み要求がクリアされた後に再度 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 レベルは上に置いてくださ
い。
491
第 18 章 DMAC (DMA コントローラ )
■ 動作開始
DMA 転送の開始は , チャネルごとに独立に制御しますが , その前に全チャネルの動作
を許可しておく必要があります。
● 全チャネル動作許可
DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら
かじめ全チャネルの動作を許可する必要があります。許可されていない状態にて行っ
た起動設定 , および発生した転送要求はすべて無効となります。
● 転送起動
各チャネルの制御レジスタにある動作許可ビットにて , 転送動作を起動します。起動さ
れたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転送
動作が開始されます。
● 一時停止状態よりの起動
各チャネルまたは全チャネル制御にて , 起動前に一時停止状態にしてあった場合 , 転送
動作を起動しても一時停止状態を維持しています。この間に転送要求が発生した場合
は , 要求を受け付け , 保持します。一時停止を解除した時点から転送を開始します。
■ 転送要求の受付けと転送
DMA 転送の転送要求の受付けと転送について説明します。
● 転送要求の受付けと転送
• 起動後 , 各チャネルに対して設定した転送要求のサンプリングが開始されます。
• 周辺割込み起動を選択した場合は , 転送要求がクリアされるまで DMAC は転送を続
けますがクリアされたら 1 転送単位で転送を停止します ( 周辺割込み起動 )。周辺割
込みはレベル検出扱いとなりますので , 割込みは DMA による割込みクリアで行う
ようにしてください。
• 転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に
受け付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネル
を決定しています。
■ DMA による周辺割込みクリア
本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に周
辺割込みを選択したときに機能します (IS4 ∼ IS0=1xxxxB のとき )。
周辺割込みのクリアは設定された起動要因にのみ行われます。つまり IS4 ∼ IS0 で設
定された周辺機能のみクリアされます。
● 割込みクリアの発生タイミング
転送モードにより発生するタイミングが違います ( 動作フローを参照 )。
• ブロック / ステップ転送
ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号を発生
します。
• バースト転送
バースト転送を選択した場合は , 指定転送回数がすべて終了した後 , クリア信号を
発生します。
492
第 18 章 DMAC (DMA コントローラ )
■ 一時停止
DMA 転送は , 以下の場合に一時停止します。
● 制御レジスタへの書込みによる一時停止の設定 ( 各チャネル独立または全チャネル同時に
設定 )
一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで
の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って
ください。
一時停止を解除すると , 転送を再開します。
● NMI/ ホールド抑止レベル割込み処理中
NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転
送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込
み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , その
まま保持され , NMI 処理の終了を待ちます。
要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。
■ 動作終了 / 停止
DMA 転送の終了は , チャネルごとに独立に制御しますが , 全チャネルの動作を禁止す
ることも可能です。
● 転送終了
リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了
コードにて『正常終了』を表示した後 , 以降の転送要求は無効となります (DMACA:
DENB ビットをクリアする )。
リロード動作が有効である場合, 転送回数レジスタが"0"になると初期値をリロードし,
終了コードにて『正常終了』を表示した後 , 再度転送要求待ちとなります (DMACA:
DENB ビットをクリアしない )。
● 全チャネル動作禁止
DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ
ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を
許可しても , チャネルごとに起動し直さないと , 転送は行われません。この場合 , 割込
みは一切発生しません。
493
第 18 章 DMAC (DMA コントローラ )
■ エラーによる停止
指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー発
生による停止および強制停止があります。
● 周辺回路よりの転送停止要求の発生
転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発
生するものがあります ( 例:通信系周辺における受信 / 送信エラーなど ) 。
この転送停止要求を受け取った DMAC は , 終了コードにて『転送停止要求』を表示し
て対応するチャネルの転送を停止します。
<注意事項>
• 周辺回路の転送停止要求の有無については , DMACA レジスタの bit28 ∼ bit24(IS4 ∼
IS0) 転送要因選択ビットの説明を参照してください。
• 各転送停止要求の発生条件についての詳細は , 各周辺回路の説明を参照してください。
■ DMAC 割込み制御
転送要求となる周辺割込みとは独立に , DMAC チャネルごとに以下の割込みを出力す
ることが可能です。
• 転送終了割込み…正常終了した場合のみ発生する
• エラー割込み……周辺回路からの転送停止要求 ( 周辺に起因するエラー )
これら割込みはすべて終了コードの内容に従って出力されます。
割込み要求のクリアは , DMACS の DSS2 ∼ DSS0 ( 終了コード ) に "000B" を書き込む
ことにより行います。なお , 終了コードは再起動する際には必ず "000B" を書き込んで
クリアしてください。
リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは
クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。
終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し
た場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて
いる終了コードに従います。
終了コードの表示の優先順位を以下に示します ( 上から , 優先度の高い順 ) 。
• リセット
• "000B" 書込みによるクリア
• 周辺停止要求
• 正常終了
• チャネル選択と制御
494
第 18 章 DMAC (DMA コントローラ )
■ スリープ中の DMA 転送
DMAC は , スリープモード中でも動作させることができます。
スリープモードでの動作を期待する場合 , 次のことに注意する必要があります。
• CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー
プモードに入る前に設定は済ませておいてください。
• スリープモードは , 割込みで解除されますので ,DMAC 起動要因で周辺での割込み
を選択した場合は , 割込みコントローラで割込みを禁止する必要があります。
同様に,DMAC終了割込みでスリープモードを解除したくない場合は割込みを禁止にし
てください。
■ チャネル選択と制御
転送チャネルの数は 5 チャネルまで同時設定が可能です。各チャネルは基本的に各機
能を独立に設定することが可能です。
● チャネル間優先順位
DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され
ます。
順位設定には , 固定 / 回転の 2 モードがあり , チャネルグループ ( 後述 ) ごとに選択し
ます。
(1) 固定モード
チャネル番号の小さい順に固定されます。
(ch.0 > ch.1 > ch.2 > ch.3 > ch.4)
転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサイ
ズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で , 転送チャネルが高
優先度側に切り換わります。
高優先度側の転送が終了すると , 元のチャネルの転送を再開します。
図 18.3-2 固定モード
ch.0 転送要求
ch.1 転送要求
バス動作
転送チャネル
CPU
DMASA DMADA DMASA DMADA DMASA DMADA DMASA DMADA
ch.1
ch.0
ch.0
CPU
ch.1
ch.0 転送終了
ch.1 転送終了
495
第 18 章 DMAC (DMA コントローラ )
(2) 回転モード (ch.0 − ch.1 間のみ )
動作許可後の初期状態は (1) と同じ順位に設定されますが , 1 転送終了ごとにそのチャ
ネルの優先度は逆転します。したがって , 同時に転送要求が出力されている場合 , 1 転
送単位ごとにチャネルが切り換わります。
連続 / バースト転送を設定した場合に効果のあるモードです。
図 18.3-3 回転モード
ch.0 転送要求
ch.1 転送要求
バス動作
CPU
転送チャネル
DMASA DMADA DMASA DMADA DMASA DMADA DMASA DMADA
ch.1
ch.0
ch.1
ch.0
ch.0 転送終了
ch.1 転送終了
● チャネルグループ
優先順位の選択は , 以下の単位で設定します。
モード
優先度
固定
ch.0>ch.1
回転
496
備考
ch.0>ch.1
初期状態は上側の順位です。
↑↓
ch.0<ch.1
上側が転送されると反転します。
CPU
第 18 章 DMAC (DMA コントローラ )
18.4
動作フローチャート
次の各転送モードにおける動作フローチャートを示します。
・ブロック転送
・バースト転送
■ ブロック転送
図 18.4-1 ブロック転送の動作フロー
DMA 停止
DENB=>0
DENB=1
起動要求待機
リロード許可
最初の
アドレス , 転送回数 ,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
転送元アドレスアクセス
アドレス演算
ブロック数− 1
BLK=0
転送回数− 1
周辺割込み起動要因選択時のみ
アドレス , 転送回数 ,
ブロック数ライトバック
割込みクリア
割込みクリア発生
DTC=0
DMA 転送終了
DMA 割込み発生
ブロック転送
・すべての起動要因で起動できる ( 選択 ) 。
・すべての領域へのアクセスができる。
・ブロック数の設定可能。
・ブロック数終了で割込みクリア発生。
・指定転送回数終了で DMA 割込みを発生。
497
第 18 章 DMAC (DMA コントローラ )
■ バースト転送
図 18.4-2 バースト転送の動作フロー
DENB=>0
DMA 停止
DENB=1
リロード許可
起動要求待機
最初の
アドレス , 転送回数 ,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
転送元アドレスアクセス
アドレス演算
ブロック数− 1
BLK=0
転送回数− 1
DTC=0
アドレス , 転送回数 ,
ブロック数ライトバック
周辺割込み起動要因選択時のみ
割込みクリア
DMA 転送終了
割込みクリア発生
DMA 割込み発生
バースト転送
・すべての起動要因で起動できる ( 選択 ) 。
・すべての領域へのアクセスができる。
・ブロック数の設定可能。
・指定転送回数終了で割込みクリア , DMA 割込みを発生。
498
第 18 章 DMAC (DMA コントローラ )
18.5
データパス
2 サイクル転送時のデータの動きを示します。
■ 2 サイクル転送時のデータの動き
転送例の 6 種類を図示します ( ほかの組合せは省略 )。
図 18.5-1 2 サイクル転送例
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
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
ライトサイクル
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
外部バス I/F
リードサイクル
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
( 続く )
499
第 18 章 DMAC (DMA コントローラ )
( 続き )
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
RAM
I/O
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
内部 RAM 領域=>外部領域 転送
I/O
RAM
I/O
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
ライトサイクル
X-bus
I-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
500
I/O
F-bus
RAM
I/O
外部バス I/F
リードサイクル
DMAC
CPU
DMAC
外部バス I/F
内部 RAM 領域=>内蔵 I/O 領域転送
第 19 章
フラッシュメモリ
フラッシュメモリの概要 , レジスタの構成 / 機能お
よび動作について説明します。
19.1 概要
19.2 レジスタ
19.3 フラッシュメモリのアクセスモード
19.4 自動アルゴリズム起動方法
19.5 自動アルゴリズム実行状態
19.6 デュアルオペレーション動作
501
第 19 章 フラッシュメモリ
19.1
概要
MB91F267A/MB91F267NA には , 128KB (1 M ビット ) の容量で , + 3.3 V 単一電源
による全セクタ一括消去およびセクタ単位での消去が可能で , FR-CPU によるハー
フワードおよびバイト (16 ビット /8 ビット ) 単位での書込みが可能なフラッシュメ
モリを内蔵しています。
■ フラッシュメモリの概要
このフラッシュメモリは , 内蔵の 3.3V 動作 128KB フラッシュメモリです。当社製 4 M
ビット (512KB × 8/256KB × 16) フラッシュメモリ MBM29LV400TC と同じもので ( 容
量 , 一部セクタ構成を除く ) あり , ROM ライタによるデバイス外部からの書込みも可
能です。
また , MBM29LV400TC 相当の機能に加え , FR-CPU の内蔵 ROM として使用する場合
には , ワード (32 ビット ) 単位での命令 / データ読出しが可能であり , デバイスの高速
動作を実現できます。
本書と併せて MBM29LV400TC データシートも参照してください。
フラッシュメモリマクロと FR-CPU インタフェース回路の組合せにより , 以下の機能を
実現します。
• CPU のプログラム / データ格納用メモリとして機能
- ROM として使用する際は 32 ビットバス幅でアクセス可能
- CPU による読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) が可能
• 単体フラッシュメモリ製品の MBM29LV400TC 相当の機能
- ROM ライタによる読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) が可能
*: 自動プログラムアルゴリズム = Embedded AlgorithmTM
ここでは , FR-CPU からこのフラッシュメモリを使用する場合について説明していま
す。
ROM ライタからこのフラッシュメモリを使用する場合の詳細につきましては , 別途
ROM ライタの取扱説明書を参照してください。
■ 自動アルゴリズム実行状態
CPU プログラミングモードにて自動アルゴリズムを起動した場合には , ハードウェア
シーケンスフラグにより自動アルゴリズムの動作状態を知ることができます。
ハードウェアシーケンスフラグについては「19.4 自動アルゴリズム起動方法」を参照
してください。
502
第 19 章 フラッシュメモリ
■ ROM ライタによる書込み
このフラッシュメモリは , ROM ライタを用いてデバイス外部より書込みを行うことが
できます。この状態では , 単体フラッシュメモリ製品の MBM29LV400TC 相当の端子
機能がデバイス外部端子に割り当てられ , FR-CPU は動作を停止します。CPU モードと
はアドレス線の接続が変更され , メモリ領域内のマッピングが変化します。詳細につい
ては『対応 ROM ライタの仕様書』を参照してください。
■ フラッシュメモリのブロックダイヤグラム
図 19.1-1 フラッシュメモリのブロックダイヤグラム
CPU
フラッシュインタフェース
制御信号
CPU コア
フラッシュメモリ
制御信号
制御信号
A0 ~ A15
A0 ~ A15
アドレス
DQ0 ~ DQ15
DQ0 ~ DQ15
データ
制御信号
アドレス
データ
フラッシュ
ライタ
との
インタ
フェース
( フラッシュ
モード時 )
503
第 19 章 フラッシュメモリ
■ フラッシュメモリのセクタ構成
フラッシュメモリのアドレスマッピングは , FR-CPU からのアクセス時と ROM ライタ
でのアクセス時とでは異なります。図 19.1-2 と表 19.1-1 に FR-CPU からのアクセス時
におけるマッピングを , 図 19.1-3 に ROM ライタからのアクセス時におけるマッピング
を示します。
● FR-CPU からのアクセス時におけるマッピング
図 19.1-2 FR-CPU からのアクセス時におけるマッピング
FLASH0
FLASH1
000F_E000H ∼ 000F_FFFFH
4 K バイト
4 K バイト
000F_C000H ∼ 000F_DFFFH
4 K バイト
4 K バイト
000F_A000H ∼ 000F_BFFFH
4 K バイト
4 K バイト
000F_8000H ∼ 000E_9FFFH
4 K バイト
4 K バイト
000F_6000H ∼ 000F_7FFFH
4 K バイト
4 K バイト
000F_4000H ∼ 000F_5FFFH
4 K バイト
4 K バイト
000F_2000H ∼ 000F_3FFFH
4 K バイト
4 K バイト
000F_0000H ∼ 000F_1FFFH
4 K バイト
4 K バイト
000E_8000H ∼ 000E_FFFFH
16 K バイト 16 K バイト
000E_0000H ∼ 000E_7FFFH
16 K バイト 16 K バイト
FFFF_FFFFH
0010_0000H
000F_FFFFH
000E_0000H
0000_0000H
フラッシュ
メモリ
128 K バイト
bit 31
CPU モードでアクセス
する場合のバイト位置
504
0
16 15
1
2
0
3
第 19 章 フラッシュメモリ
表 19.1-1 セクタアドレス一覧 (FR-CPU からのアクセス時 )
フラッシュ
アドレス範囲
対応ビット位置
セクタ容量
F_E002H, F_E003H ∼ F_FFFEH, F_FFFFH
bit15 ∼ bit0
4 K バイト
F_C002H, F_C003H ∼ F_DFFEH, F_DFFFH
bit15 ∼ bit0
4 K バイト
F_A002H, F_A003H ∼ F_BFFEH, F_BFFFH
bit15 ∼ bit0
4 K バイト
F_8002H, F_8003H ∼ F_9FFEH, F_9FFFH
bit15 ∼ bit0
4 K バイト
F_6002H, F_6003H ∼ F_7FFEH, F_7FFFH
bit15 ∼ bit0
4 K バイト
F_4002H, F_4003H ∼ F_5FFEH, F_5FFFH
bit15 ∼ bit0
4 K バイト
F_2002H, F_2003H ∼ F_3FFEH, F_3FFFH
bit15 ∼ bit0
4 K バイト
F_0002H, F_0003H ∼ F_1FFEH, F_1FFFH
bit15 ∼ bit0
4 K バイト
E_8002H, E_8003H ∼ E_FFFEH, E_FFFFH
bit15 ∼ bit0
16 K バイト
E_0002H, E_0003H ∼ E_7FFEH, E_7FFFH
bit15 ∼ bit0
16 K バイト
F_E000H, F_E001H ∼ F_FFFCH, F_FFFDH
bit31 ∼ bit16
4 K バイト
F_C000H, F_C001H ∼ F_DFFCH, F_DFFDH
bit31 ∼ bit16
4 K バイト
F_A000H, F_A001H ∼ F_BFFCH, F_BFFDH
bit31 ∼ bit16
4 K バイト
F_8000H, F_8001H ∼ F_9FFCH, F_9FFDH
bit31 ∼ bit16
4 K バイト
F_6000H, F_6001H ∼ F_7FFCH, F_7FFDH
bit31 ∼ bit16
4 K バイト
F_4000H, F_4001H ∼ F_5FFCH, F_5FFDH
bit31 ∼ bit16
4 K バイト
F_2000H, F_2001H ∼ F_3FFCH, F_3FFDH
bit31 ∼ bit16
4 K バイト
F_0000H, F_0001H ∼ F_1FFCH, F_1FFDH
bit31 ∼ bit16
4 K バイト
E_8000H, E_8001H ∼ E_FFFCH, E_FFFDH
bit31 ∼ bit16
16 K バイト
E_0000H, E_0001H ∼ E_7FFCH, E_7FFDH
bit31 ∼ bit16
16 K バイト
FLASH1
FLASH0
505
第 19 章 フラッシュメモリ
● ROM ライタからのアクセス時におけるマッピング
図 19.1-3 ROM ライタからのアクセス時におけるアドレスマッピング
F_F000H ∼ F_FFFFH
4 K バイト
F_E000H ∼ F_EFFFH
4 K バイト
F_D000H ∼ F_DFFFH
4 K バイト
F_C000H ∼ F_CFFFH
4 K バイト
F_B000H ∼ F_BFFFH
4 K バイト
F_A000H ∼ F_AFFFH
4 K バイト
F_9000H ∼ F_9FFFH
4 K バイト
F_8000H ∼ F_8FFFH
4 K バイト
F_4000H ∼ F_7FFFH
16 K バイト
F_0000H ∼ F_3FFFH
16 K バイト
E_F000H ∼ E_FFFFH
4 K バイト
E_E000H ∼ E_EFFFH
4 K バイト
E_D000H ∼ E_DFFFH
4 K バイト
E_C000H ∼ E_CFFFH
4 K バイト
E_B000H ∼ E_BFFFH
4 K バイト
E_A000H ∼ E_AFFFH
4 K バイト
E_9000H ∼ E_9FFFH
4 K バイト
E_8000H ∼ E_8FFFH
4 K バイト
E_4000H ∼ E_7FFFH
16 K バイト
E_0000H ∼ E_3FFFH
16 K バイト
FLASH1
FLASH0
bit15
506
bit0
1
0
バイト位置 ( ライタで書く場合 )
0
1
CPU が読み出す場合
第 19 章 フラッシュメモリ
表 19.1-2 セクタアドレス一覧 (ROM ライタからのアクセス時 )
フラッシュ
アドレス範囲
対応ビット位置
セクタ容量
F_F000H ∼ F_FFFFH
bit15 ∼ bit0
4 K バイト
F_E000H ∼ F_EFFFH
bit15 ∼ bit0
4 K バイト
F_D000H ∼ F_DFFFH
bit15 ∼ bit0
4 K バイト
F_C000H ∼ F_CFFFH
bit15 ∼ bit0
4 K バイト
F_B000H ∼ F_BFFFH
bit15 ∼ bit0
4 K バイト
F_A000H ∼ F_AFFFH
bit15 ∼ bit0
4 K バイト
F_9000H ∼ F_9FFFH
bit15 ∼ bit0
4 K バイト
F_8000H ∼ F_8FFFH
bit15 ∼ bit0
4 K バイト
E_4000H ∼ E_7FFFH
bit15 ∼ bit0
16 K バイト
E_0000H ∼ E_3FFFH
bit15 ∼ bit0
16 K バイト
F_F000H ∼ F_FFFFH
bit15 ∼ bit0
4 K バイト
F_E000H ∼ F_EFFFH
bit15 ∼ bit0
4 K バイト
F_D000H ∼ F_DFFFH
bit15 ∼ bit0
4 K バイト
F_C000H ∼ F_CFFFH
bit15 ∼ bit0
4 K バイト
F_B000H ∼ F_BFFFH
bit15 ∼ bit0
4 K バイト
F_A000H ∼ F_AFFFH
bit15 ∼ bit0
4 K バイト
F_9000H ∼ F_9FFFH
bit15 ∼ bit0
4 K バイト
F_8000H ∼ F_8FFFH
bit15 ∼ bit0
4 K バイト
E_4000H ∼ E_7FFFH
bit15 ∼ bit0
16 K バイト
E_0000H ∼ E_3FFFH
bit15 ∼ bit0
16 K バイト
FLASH1
FLASH0
507
第 19 章 フラッシュメモリ
レジスタ
19.2
フラッシュメモリにはフラッシュメモリステータスレジスタ (FLCR) とフラッシュ
メモリウェイトレジスタ (FLWC) の 2 つのレジスタがあります。
■ フラッシュメモリのレジスタ一覧
図 19.2-1 に , フラッシュメモリのレジスタ一覧を示します。
図 19.2-1 フラッシュメモリのレジスタ一覧
bit7
bit0
フラッシュメモリステータスレジスタ (FLCR)
bit7
bit0
フラッシュメモリウェイトレジスタ (FLWC)
表 19.2-1 アドレスマップ
オフセット
アドレス
508
ブロック
+0
+1
+2
+3
FLCR[R/W] B
007000H
01101000
−
−
−
FLWC[R/W] B
007004H
00000011
フラッシュ
インタフェース
−
−
−
第 19 章 フラッシュメモリ
19.2.1
フラッシュメモリステータスレジスタ (FLCR)
フラッシュメモリステータスレジスタ (FLCR) は , フラッシュメモリの動作状態を示
すレジスタです。
■ フラッシュメモリステータスレジスタ (FLCR)
このレジスタは , CPU に対する割込みの制御や , フラッシュメモリへの書込みの制御を
行います。CPU でのみアクセスすることが可能です。ライタ搭載時はアクセスできま
せん。
このレジスタは , リードモディファイライト (RMW) 系命令ではアクセスしないでくだ
さい。
図 19.2-2 に , フラッシュメモリステータスレジスタ (FLCR) のビット構成を示します。
図 19.2-2 フラッシュメモリステータスレジスタ (FLCR) のビット構成
アドレス
007000H
bit7
−
R/W
bit6
−
R/W
bit5
−
R/W
bit4
−
R
bit3
−
R
bit2
−
R/W
bit1
WE
R/W
bit0
初期値
−
R/W
01101000B
R/W : リード / ライト可能
R
: リードオンリ
以下に,フラッシュメモリステータスレジスタ(FLCR)の各ビットの機能を説明します。
[bit7] − : 予約ビット
ビットは予約ビットです。このビットは常に "0" を書き込んでください。
[bit6, bit5] − : 予約ビット
ビットは予約ビットです。このビットは常に "1" を書き込んでください。
[bit4, bit3] − : 予約ビット
ビットは予約ビットです。このビットは読出しのみで書込みは動作に影響を与えま
せん。
[bit2] − : 予約ビット
ビットは予約ビットです。このビットは常に "0" を書き込んでください。
509
第 19 章 フラッシュメモリ
[bit1] WE : CPU モードにおけるフラッシュメモリへのデータおよびコマンドの書込み
を制御します。
本ビットが "0" の間は , フラッシュメモリへのデータおよびコマンドの書込みは , す
べて無効になります。
本ビットが "1" の間は , フラッシュメモリへのデータおよびコマンドの書込みが有
効となり , 自動アルゴリズムの起動が可能となります。
ただし , フラッシュメモリからのデータの書込みは 16 ビットおよび 8 ビットアクセ
スになります。フラッシュメモリへの書込みアクセスは 16 ビットおよび 8 ビット
アクセスのみを使用してください。32 ビットのアクセスは禁止です。
本ビットの書換えは , 必ずハードウェアシーケンスフラグにより自動アルゴリズム
が停止していることを確認した後に行ってください。
WE
機能
0
フラッシュメモリへの書込み禁止
1
フラッシュメモリへの書込み許可
● 制限事項
本レジスタの WE ビットを書き換える場合には必ず下記の命令シーケンスを実行して
ください。
また , 本レジスタ書換え時には , DMA, 割込み , スタンバイ動作を行わないでください。
命令シーケンス:
1: LDI #(_FLWC),
2: LDI #0x01,
3: STB R1,
R0
R1
@R0
//set FLWC(WTC=1)
4: LDI
5: LDI
6: STB
#(_FLCR),
#0x62,
r1,
R0
R1
@R0
//set FLCR(WE=1)
7: LDI
8: LDI
9: STB
#(_FLWC),
#0x03,
R1,
R0
R1
@R0
//set FLWC(WTC=3)
[bit0] − : 予約ビット
このビットは予約ビットです。このビットは常に "0" を書き込んでください。
510
第 19 章 フラッシュメモリ
19.2.2
フラッシュウェイトレジスタ (FLWC)
フラッシュウェイトレジスタ (FLWC) は , CPU モードにおいてフラッシュメモリの
ウェイト制御を行います。
■ フラッシュウェイトレジスタ (FLWC)
図 19.2-3 に , フラッシュウェイトレジスタ (FLWC) のビット構成を示します。
図 19.2-3 フラッシュウェイトレジスタ (FLWC) のビット構成
bit7
アドレス
007004H
bit6
−
R
−
R/W
bit5
bit4
FAC1
FAC0
R/W
R/W
bit3
−
R/W
bit2
bit1
bit0
WTC2 WTC1 WTC0
R/W
R/W
初期値
00000011B
R/W
R/W : リード / ライト可能
R
: リードオンリ
以下に , フラッシュウェイトレジスタ (FLWC) の各ビットの機能を説明します。
[bit7, bit6] − : 予約ビット
これらのビットは予約ビットです。これらのビットは常に "0" を書き込んでくださ
い。
[bit5, bit4] FAC1, FAC0 : 内部書込み信号のパルス幅制御ビット
FAC1
FAC0
ATDIN
EQIN
0
0
0.5 クロック
1 クロック
0
1
1 クロック
1.5 クロック
1
0
1.5 クロック
2 クロック
1
1
2 クロック
2.5 クロック
( 初期値 )
( 注意事項 ) ・ ATDIN, EQIN は内部書込み信号です。通常は初期値設定で使用してく
ださい。
・ マスク ROM 品は常に "00B" を書き込んでください。
[bit3] − : 予約ビット
ビットは予約ビットです。このビットは常に "0" を書き込んでください。
511
第 19 章 フラッシュメモリ
[bit2 ∼ bit0] WTC2 ∼ WTC0 : ウェイトサイクル制御ビット
本ビットはフラッシュメモリアクセス時のウェイトサイクル数を制御します。
WTC2
WTC1
WTC0
ウェイト
サイクル
読出し時
書込み時
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 設定の場合 ) ウェイトサイクル 1 (WTC2, WTC1, WTC0 =
001B) と設定することで最高速で読出しが可能になります。
・ MASK 品の初期値は , ウェイトサイクル 3 (WTC2, WTC1, WTC0 =
011B) で読み出されます。ウェイトサイクル 1 (WTC2, WTC1, WTC0 =
001B) と設定することで最高速で読出しが可能になります。
512
第 19 章 フラッシュメモリ
19.3
フラッシュメモリのアクセスモード
FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。
• ROM モード
ワード (32 ビット ) 長データを一括で読み出すことができますが , 書込みはできま
せん。
• プログラミングモード
ワード (32 ビット ) 長アクセスは禁止されていますが , ハーフワード (16 ビット ),
バイト (8 ビット ) 長での書込みが可能になります。
■ FR-CPU ROM モード (32/16/8 ビット , 読出しのみ )
FR-CPU の内蔵 ROM として機能するモードです。ワード (32 ビット ) 長データの一括
読出しが可能となりますが , フラッシュメモリへの書込み , 自動アルゴリズムの起動は
できません。
● モードの指定方法
• フラッシュメモリステータスレジスタの "WE" ビットが "0" のとき , このモードとな
ります。
• CPU 動作時でのリセット解除後は常にこのモードになります。
• CPU 動作時以外ではこのモードにすることができません。
● 動作内容
フラッシュメモリ領域の読出し時 , メモリよりワード (32 ビット ) 長データを一括で読
出し可能です。
読出しにかかるサイクル数は最短で 2 サイクル /1 ワード (1 ウェイト ) です。これによ
り FR-CPU に対し , ウェイトなしで命令を供給することができます。
● 制限事項
ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。また ,
このモードではフラッシュメモリへの書込み , 自動アルゴリズムの起動はできません。
513
第 19 章 フラッシュメモリ
■ FR-CPU プログラミングモード (16/8 ビット , 読出し / 書込み )
データの消去 / 書込みが可能になるモードです。ただし , データの消去 / 書込みを実行
しているバンク上でのプログラム実行はできません。
● モード指定の方法
• フラッシュメモリステータスレジスタ (FLCR) の "WE" ビットが "1" のとき , この
モードになります。
• CPU 動作時でのリセット解除後は "WE" ビットは "0" になっています。このモード
を指定する場合には "1" を書き込んでください。再度 "0" を書き込むか , リセットの
発生により "WE" ビットが "0" になると , ROM モードに戻ります。
● 動作内容
• フラッシュメモリ領域の読出し時 , フラッシュメモリからワード (32 ビット ) 長デー
タを一括で読出し可能です。ただし , 読出しにかかるサイクル数はフラッシュメモ
リステータスレジスタ (FLCR) の書込み時の設定 4 サイクル / ハーフワード (3 ウェ
イト ) になります。
• フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動することが
できます。自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込みが可
能となります。自動アルゴリズムの詳細については ,「19.4 自動アルゴリズム起動
方法」および「19.5 自動アルゴリズム実行状態」を参照してください。
● 制限事項
ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。
プログラミングアクセスモード切換えで , WE ビットを書き換える際には「19.2.1 フ
ラッシュメモリステータスレジスタ (FLCR)」の「制限事項」に従って書き換えてくだ
さい。
514
第 19 章 フラッシュメモリ
19.4
自動アルゴリズム起動方法
フラッシュメモリに対する書込み / 消去は , フラッシュメモリ自身が持つ自動アルゴ
リズムを起動することで行います。
■ コマンドシーケンス
自動アルゴリズムを起動するには , フラッシュメモリに対し , 1 回∼ 6 回のハーフワー
ド (16 ビット ) データの連続書込みを実行します。これをコマンドとよびます。不正な
アドレスとデータを書き込んだり,誤った順番でアドレスとデータを書き込んだりする
と , フラッシュメモリは読出しモードにリセットされます。
表 19.4-1 , 表 19.4-2 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧
を示します。
表 19.4-1 CPU モードでの FLASH0 書込みコマンドシーケンス
コマンド
シーケンス
読出し /
リセット
読出し /
リセット
書込み
1st バスライト 2nd バスライト 3rd バスライト
4th バスリード /
5th バスライト 6th バスライト
バス
サイクル
サイクル
サイクル
ライトサイクル
サイクル
サイクル
ライト
サイクル
アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ
1
XXXXXH
F0H
−
−
−
−
−
−
−
−
−
−
4
F5554H
AAH
EAAA8H
55H
F5554H
F0H
RA
RD
−
−
−
−
EAAA8H
55H
F5554H
A0H
4
F5554H
AAH
チップ消去
6
F5554H
AAH
EAAA8H
55H
F5554H
80H
PA
F5554H
PD
AAH
−
EAAA8H
−
55H
−
F5554H
−
10H
セクタ消去
6
F5554H
AAH
EAAA8H
55H
F5554H
80H
F5554H
AAH
EAAA8H
55H
SA
30H
アドレス ="XXXXXH", データ ="B0H" の入力で , セクタ消去一時停止
セクタ消去一時停止
アドレス ="XXXXXH", データ ="30H" の入力で , セクタ消去再開
セクタ消去再開
Auto Select
3
F5554H
AAH
EAAA8H
55H
F5554H
90H
−
−
−
−
−
−
連続モード
3
F5554H
AAH
EAAA8H
55H
F5554H
20H
−
−
−
−
−
−
連続書込み
2
XXXXXH
A0H
PA
−
−
−
−
−
−
−
−
連続モード
リセット
2
XXXXXH
90H
XXXXXH
PD
F0H or
00H
−
−
−
−
−
−
−
−
515
第 19 章 フラッシュメモリ
表 19.4-2 CPU モードでの FLASH1 書込みコマンドシーケンス
コマンド
シーケンス
読出し /
リセット
読出し /
リセット
書込み
1st バスライト 2nd バスライト 3rd バスライト
4th バスリード /
5th バスライト 6th バスライト
バス
サイクル
サイクル
サイクル
ライトサイクル
サイクル
サイクル
ライト
サイクル
アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ
1
XXXXXH
F0H
−
−
−
−
−
−
−
−
−
−
4
F5556H
AAH
EAAAAH
55H
F5556H
F0H
RA
RD
−
−
−
−
AAH
EAAAAH
55H
F5556H
A0H
4
F5556H
チップ消去
6
F5556H
AAH
EAAAAH
55H
F5556H
80H
PA
F5556H
PD
AAH
−
EAAAAH
−
55H
−
F5556H
−
10H
セクタ消去
6
F5556H
AAH
EAAAAH
55H
F5556H
80H
F5556H
AAH
EAAAAH
55H
SA
30H
アドレス ="XXXXXH", データ ="B0H" の入力で , セクタ消去一時停止
セクタ消去一時停止
アドレス ="XXXXXH", データ ="30H" の入力で , セクタ消去再開
セクタ消去再開
Auto Select
3
F5556H
AAH
EAAAAH
55H
F5556H
90H
−
−
−
−
−
−
連続モード
3
F5556H
AAH
EAAAAH
55H
F5556H
20H
−
−
−
−
−
−
連続書込み
2
XXXXXH
A0H
PA
−
−
−
−
−
−
−
−
連続モード
リセット
2
XXXXXH
90H
XXXXXH
PD
F0H or
00H
−
−
−
−
−
−
−
−
ワードモード / バイトモード共にコマンドは同じで , 表記されていないビットのデータ
は任意となります。
RA:読出しアドレス
PA:書込みアドレス
SA:セクタアドレス ( セクタ内の任意の 1 アドレスを指定。)
RD:読出しデータ
PD:書込みデータ
● リード ( 読出し )/ リセットコマンド
タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド
シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー
タを読み出します。フラッシュメモリは , ほかのコマンドが入力されるまで , 読出し状
態を保ちます。
フラッシュメモリは , 電源投入時自動的に読出し / リセットにセットされます。この場
合は , データ読出しにコマンドは必要ありません。
● プログラム ( 書込み )
CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書
込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック " サ
イクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そし
て , 最後の書込みサイクルでメモリへの書込みが開始されます。
自動書込みアルゴリズムコマンドシーケンス実行後は,フラッシュメモリはそれ以上の
外部からの制御を必要としません。フラッシュメモリは , 自動的に内部で作られた適切
な書込みパルスを発生し , 書き込まれたセルのマージンを検証します。自動書込み動作
は , データポーリング機能により , bit7 のデータがこのビットに書き込んだデータに一
致したとき終了し (「19.5 自動アルゴリズム実行状態」の「■ ハードウェアシーケン
スフラグ」を参照 ), このときをもって読出しモードに戻り , これ以上書込みアドレス
516
第 19 章 フラッシュメモリ
は受け付けなくなります。この結果 , フラッシュメモリはこの時点で次の有効アドレス
を要求します。このようにデータポーリングは , メモリが書込み中であることを示しま
す。
書込み中はフラッシュメモリに書き込まれたすべてのコマンドが無視されます。もし
書込み中にハードウェアリセットが起動されると , 書き込んでいるアドレスのデータ
は保証されません。
書込みはどのようなアドレスの順番でも , また , セクタの境界を越えても可能です。書
込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデータ
"1" を書き込むと , データポーリングアルゴリズムにより , 素子が不良と判定されるか ,
または見かけ上データ "1" が書き込まれたように見えるかのどちらかです。しかし , リ
セット / 読出しモードでデータを読み出すとデータは "0" のままです。消去動作のみが
"0" データを "1" データにすることができます。
書込みコマンドを使った書込み手順を図 19.4-1 に示します。
図 19.4-1 書込みコマンドを使った書込み手順
書込み開始
書込みコマンドシーケンス
デバイスのデータポーリング
次アドレス
NO
ラスト
アドレス ?
YES
書込み完了
517
第 19 章 フラッシュメモリ
● チップ消去
チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。最初に ,2 つの
" アンロック " サイクルがあり , 引き続き " セットアップ " コマンドが書き込まれます。
チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。
チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ
ん。自動消去アルゴリズム実行中には , フラッシュメモリは自動的にすべてのセルを消
去する前に "0" のパターンに書き込んで検証します ( プリプログラム )。この動作中に
は , フラッシュメモリは外部からの制御は必要としません。
自動消去はコマンドシーケンス中の書込みで開始され ,bit7 が "1" になったときに終了
し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セクタ
消去時間×全セクタ数+チップ書込み時間 ( プリプログラム )」となります。
チップ消去コマンドを使ったチップ消去手順を図 19.4-2 に示します。
● セクタ消去
セクタ消去は , 6 回のアクセスで行われます。
2 つの " アンロック " サイクルがあり , 引
き続き " セットアップ " コマンドを書き込んで , その後さらに 2 つの " アンロック " サ
イクルが続き , 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が
始まります。最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間中 , 次
のセクタ消去コマンドの受付けが可能です。
複数のセクタ消去は前述したような 6 つのバスサイクルを書き込むことで同時に受付
け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ消去
コマンド (30H) を引き続き書き込むことで行います。最後のセクタ消去コマンドの書込
みから 50 µs のタイムアウト期間終了により , セクタ消去が開始されます。すなわち ,
複数のセクタを同時に消去する場合には , 次の消去セクタをそれぞれ 50 µs 以内に入力
する必要があり , それ以降ではコマンドは受け付けられないことがあります。引き続く
セクタ消去コマンドが有効かどうかは bit3 にてモニタ可能です (「19.5 自動アルゴリ
ズム実行状態」の「ハードウェアシーケンスフラグ」を参照 )。
タイムアウト中のセクタ消去コマンドまたは消去一時停止以外のいかなるコマンドも
読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , そのセ
クタを再度消去することにより消去が完了します。セクタ消去バッファへのセクタア
ドレス入力は , セクタのどのような組合せや数 (0 ∼ 6) からでも実行可能です。セクタ
消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありません。フ
ラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行います
( プリプログラム )。また , セクタ消去中はほかの消去されないセクタは何の影響も受
けません。これらの動作中は , フラッシュメモリは外部からの制御は必要としません。
自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間
の後に開始され ,bit7 のデータが "1" になったとき (「19.5 自動アルゴリズム実行状態」
の「■ハードウェアシーケンスフラグ」を参照 ) 終了し , フラッシュメモリは読出し
モードに戻ります。ほかのコマンドは無視されます。データポーリングは消去された
セクタ内のどのアドレスでも働きます。複数セクタ消去時間は「( セクタ消去時間+セ
クタ書込み時間 ( プリプログラム )) ×消去セクタ数」となります。
518
第 19 章 フラッシュメモリ
図 19.4-2 チップ消去コマンドを使ったチップ消去手順
消去開始
チップ消去 / セクタ消去
コマンドシーケンス
デバイスのデータポーリング
またはトグルビットの完了
書込み完了
● 消去一時停止
消去一時停止コマンドは,ユーザがセクタ消去中にフラッシュメモリの自動アルゴリズ
ムを一時停止して,消去中でないセクタからのデータ読出しと書込みを可能にするもの
です。このコマンドはセクタ消去中のみ有効で , チップ消去や書込みの動作中は無視さ
れます。消去一時停止コマンド (B0H) はセクタ消去コマンド (30H) 後のセクタ消去タイ
ムアウト期間を含むセクタ消去動作中にのみ有効です。このコマンドがタイムアウト
期間中に入力されると直ちにタイムアウトを終了し , 消去動作を中断します。消去再開
コマンドが書き込まれると消去動作が再開されます。消去一時停止 , 消去再開コマンド
の入力の際のアドレスは任意であってかまいません。
セクタ消去動作中に消去一時停止コマンドが入力されると,フラッシュメモリが消去動
作を停止するために最大 20 µs の時間がかかります。フラッシュメモリが消去一時停止
モードに入ると , レディ / ビジー出力と bit7 が "1" を出力し , bit6 がトグル動作をやめ
ます。消去しているセクタのアドレスを入力し , bit6 と bit7 の読出し値をモニタするこ
とによって , 消去動作を停止しているかどうかを確かめられます。さらに , 消去一時停
止コマンドの書込みは無視されます。消去動作が停止したとき , フラッシュメモリは消
去一時停止読出しモードになります。このモードでのデータの読出しはデータが消去
一時停止していないセクタに有効となりますが , それ以外は標準的な読出しと同じで
す。消去一時停止読出し中 , その消去一時停止したセクタからの連続的な読出しに対し
ては ,bit2 はトグル動作をします (「19.5 自動アルゴリズム実行状態」の「■ハードウェ
アシーケンスフラグ」を参照 )。
消去一時停止読出しモードに入った後,ユーザは書込みのコマンドシーケンスを書き込
むことによりフラッシュメモリに書込みができます。この書込みモードは , 消去一時停
止書込みモードとなります。このモードでの書込みは , データが消去一時停止していな
いセクタに有効となりますが , それ以外は通常のバイト書込みと同じです。消去一時停
止書込みモード中,その消去一時停止したセクタからの連続的な読出しに対しては,bit2
はトグル動作をします。消去一時停止ビット (bit6) によって検出できます。
<注意事項>
bit6 はどのようなアドレスに対しても読出し可能ですが , bit7 は書込みアドレスに対して
読出しを行わなければなりません。セクタ消去動作を再開するためには , 再開コマンド
(30H) を入力する必要があります。この時点でさらに再開コマンドを入力しても無視され
ます。他方 , 消去一時停止コマンドはフラッシュメモリが消去再開した後に入力すること
ができます。
519
第 19 章 フラッシュメモリ
19.5
自動アルゴリズム実行状態
このフラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため ,
フラッシュメモリ内部の動作状態や動作完了したことをフラッシュメモリ外部に知
らせるハードウェアを持ちます。
■ ハードウェアシーケンスフラグ
ハードウェアシーケンスフラグは,自動アルゴリズム実行中にフラッシュメモリの任意
のアドレス ( バイトアクセス時は奇数アドレス ) を読み出すことによりデータとして得
られます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズムの状
態を示します。
ハードウェアシーケンスフラグの構成を図 19.5-1 に示します。
なお , ハードウェアシーケンスフラグ状態一覧を表 19.5-1 に示します。
図 19.5-1 ハードウェアシーケンスフラグの構成
ハードウェア読出し時
bit15
bit8 bit7
( 不定 )
bit0
ハードウェアシーケンスフラグ
bit7
バイト読出し時 ( 奇数アドレスのみ )
bit0
ハードウェアシーケンスフラグ
ハーフワード , バイトアクセス時
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
DPOLL
TOGGLE
TLOVER
不定
SETIMR
TOGGL2
不定
不定
表 19.5-1 ハードウェアシーケンスフラグ状態一覧
状態
実行中
自動書込み動作
自動消去時の書込み / 消去動作
読出し ( 消去中のセクタ )
消去 読出し
一時 ( 消去していないセクタ )
停止 書込み
( 消去していないセクタ )
自動書込み動作
タイム
リミット
自動消去時の書込み / 消去動作
超過
DPOLL
(bit7)
TOGLLE
(bit6)
TLOVER
(bit5)
SETIMR
(bit3)
TOGGL2
(bit2)
反転データ
0
1
トグル
トグル
1
0
0
0
0
1
0
トグル
トグル
データ
データ
データ
データ
データ
反転データ
トグル
0
0
1 *1
反転データ
トグル
1
0
1
0
トグル
1
1
*2
1
*1 :消去一時停止書込み中 , その書込みされているアドレスの読出しに対し , bit2 は論理 "1" を出力し
ます。しかし , 消去一時停止しているセクタからの連続的な読出しに対し bit2 はトグル動作をし
ます。
*2 :bit5 が "1" のとき ( タイムリミット超過 ), 書込み / 消去中セクタへの連続的な読出しに対しては
bit2 はトグル動作をし , ほかのセクタへの読出しに対してはトグル動作しません。
520
第 19 章 フラッシュメモリ
以下に , 各ビットの説明をします。
[bit7] DPOLL: データポーリング
• 自動書込み動作中
自動書込みアルゴリズム実行中に読出しを行うと , フラッシュメモリは bit7 に最後
に書き込まれたデータの反転データを出力します。自動書込みアルゴリズム終了時
に読出しアクセスを行うと , フラッシュメモリはアドレス信号の指し示す番地の読
出しデータの bit7 を出力します。
• 自動消去動作中
自動消去アルゴリズム実行中に読出しを行うと , フラッシュメモリはアドレス信号
の指し示す番地によらず "0" を出力します。同様に , 終了時には "1" を出力します。
• セクタ消去一時停止中
セクタ消去一時停止中に読出しを行うと , フラッシュメモリはアドレス信号の指し
示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタに属
さないのであれば , アドレス信号の指し示す番地の読出し値の bit7 を出力します。
後述の bit6 のトグルビットとともに参照することで , 現在セクタ消去一時停止状態
にあるか否か , どのセクタが消去中であるかの判定が可能です。
<注意事項>
自動アルゴリズムの動作が終了に近づくと ,bit7( データポーリング ) は読出し動作中 , 非同
期的に変化します。これはフラッシュメモリが動作状態の情報を bit7 に送り出し , そして確
定したデータをその次に送り出すことを意味します。フラッシュメモリが自動アルゴリズ
ムを終了したとき , また ,bit7 が確定データを出力しているときでも ,
ほかのビットはまだ不確定です。ほかのビットの確定データは , 連続した読出しの実行に
よって読み出されます。
[bit6] TOGGLE: トグルビット
• 自動書込み / 消去動作中
自動書込みまたは消去アルゴリズム実行中に連続した読出しを行うと , フラッシュ
メモリは "1" と "0" をトグルする結果を bit6 に出力します。自動書込みまたは消去
アルゴリズムが終了すると , 連続した読出しに対して bit6 のトグル動作をやめ , 有
効なデータを出力します。
トグルビットは各コマンドシーケンスの最後の書込みサイクルの後から有効にな
ります。
なお , 書込みの際 , 書き込もうとしたセクタが書換え保証されているセクタの場合
は , 約 2 µs の間トグル動作した後 , データに書き換えることなくトグル動作を終わ
ります。消去の際 , もし選択されたすべてのセクタが書込み保証されている場合に
は , トグルビットは約 100 µs トグル動作をし , その後データを書き換えないで読出
しモードに戻ります。
• セクタ消去一時停止中
セクタ消去一時停止中に読出しを行うと , フラッシュメモリはアドレス信号の指し
示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタに属
さないのであれば , アドレス信号の指し示す番地の読出し値の bit6 を出力します。
521
第 19 章 フラッシュメモリ
● 制限事項
トグルビットの読出しを行う場合には , 必ず下記の命令シーケンスを実行してくださ
い。
命令シーケンス:
1: LDI
#( 読出しアドレス ),
2: NOP
3: LDUH @R0,
R0
R1
//requisite nop
//read a toggle data
[bit5] TLOVER: タイミングリミット超過
•
自動書込み / 消去動作中
bit5 は自動アルゴリズムの実行がフラッシュメモリ内部に規定された時間 ( 内部
パルス回数 ) を超えてしまったことを示します。この状態において bit5 は "1" を
出力します。すなわち自動アルゴリズムが動作中で , このフラグが "1" を出力し
た場合は , 書込みまたは消去が失敗したことを示します。
また ,bit5 は消去することなく非ブランクの部分に書き込もうとすると , フェイ
ルとなります。この場合 ,bit7( データポーリング ) から確定データを読むことが
できず ,bit6( トグルビット ) はトグリングしたままとなります。この状態でタイ
ムリミットを超えると ,bit5 に "1" が出力されます。この場合は , フラッシュメモ
リが不良なのではなく , 正しく使用されなかったということを表しています。も
し , この状態が発生したときは , リセットコマンドを実行してください。
[bit3] SETIMR: セクタ消去タイマ
•
セクタ消去動作中
最初のセクタ消去コマンドシーケンス実行後,セクタ消去ウェイト期間中になり
ます。bit3 は , この期間中の場合は "0" を , セクタ消去ウェイト期間を超えてし
まっている場合は "1" を出力します。データポーリングとトグルビットは最初の
セクタ消去コマンドシーケンスの実行後から有効となります。
データポーリング機能やトグルビット機能により,消去アルゴリズムが実行中を
示している場合にこのフラグが "1" であれば , 内部で制御される消去が始まって
おり,続けてのコマンドライトはデータポーリングかトグルビットが消去の終了
を示すまで無視されます ( 消去一時停止コードの入力のみ受け付けます )。この
フラグが "0" の場合 , フラッシュメモリは追加のセクタ消去コードの書込みを受
け付けます。このことを確認するために , 引き続くセクタ消去コードの書込みに
先立ってソフトウェアでこのフラグの状態をチェックすることを推奨します。
もし , 2 回目の状態チェックで "1" であったなら , 追加セクタ消去コードは受け
付けられていない可能性があります。セクタ消去一時停止中に読出しを行うと ,
フラッシュメモリはアドレス信号の指し示す番地が消去中のセクタに属するな
らば "1" を出力します。消去中のセクタに属さないのであれば , アドレス信号の
指し示す番地の読出し値の bit3 を出力します。
522
第 19 章 フラッシュメモリ
[bit2] TOGGL2: トグルビット 2
•
セクタ消去動作中
このトグルビットは ,bit6 のトグルビットに加えて , フラッシュメモリが自動消
去動作中であるか , 消去一時停止中であるかを検出することに使われます。自動
消去中に消去しているセクタから連続して読出しを行うと bit2 がトグル動作を
します。フラッシュメモリが消去一時停止読出しモードならば , 消去一時停止し
ているセクタから連続して読出しを行うと bit2 はトグル動作をします。
フラッシュメモリが消去一時停止書込みモードのときは,消去一時停止していな
いセクタからアドレスを連続して読み出すと bit2 は "1" が読み出されます。bit6
は bit2 と違い , 通常の書込み , 消去または消去一時停止書込み動作中にのみトグ
ル動作をします。
例えば ,bit2 と bit6 は , 消去一時停止読出しモードを検出するために一緒に使わ
れます (bit2 はトグル動作をするが ,bit6 はトグル動作をしない )。
さらに , bit2 は消去しているセクタの検出にも使われます。フラッシュメモリが
消去動作のときは ,bit2 は消去しているセクタからの読出しならばトグル動作を
します。
523
第 19 章 フラッシュメモリ
■ハードウェアシーケンスフラグの使用例
ハードウェアシーケンスフラグを用いることで,フラッシュメモリ内部の自動アルゴリ
ズムの状態判定が可能です。例として書込み / 消去判定のフローチャートを , それぞれ
データポーリング機能を用いた場合と , トグルビット機能を用いた場合について図
19.5-2 , 図 19.5-3 に示します。
図 19.5-2 データポーリング機能を用いた書込み / 消去判定のフローチャート
書込み / 消去開始
VA = 書込みアドレス
= セクタ消去動作に消去されて
いるセクタのアドレス
= チップ消去動作中に保護され
ていないセクタアドレス
* : D7 は D5 と同時に変わるので
例えば , D5=1 であっても D7 は
再チェックする必要があります。
読出し (D0~D7)
アドレス =VA
D7=Data ?
YES
NO
NO
D5=1 ?
YES
読出し (D0~D7)
アドレス =VA
D7=Data ?
*
YES
NO
書込み / 消去
不可
524
書込み / 消去
可能
第 19 章 フラッシュメモリ
図 19.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 は再チェックする必要があります。
525
第 19 章 フラッシュメモリ
19.6
デュアルオペレーション動作
MB91F267A/MB91F267NA のフラッシュメモリはデュアルオペレーションに対応し
ています。
上位バンク (32K バイト× 2 + 8K バイト× 4) と下位バンク (8K バイト× 4) におい
て , 従来のフラッシュ品では行えなかったバンクごとの消去 / 書込みと読出しとの同
時実行が可能です。
■ デュアルオペレーションフラッシュの特長
• 2 バンク構成による消去 / 書込みと読出しとの同時実行が可能です。
FLASH0
FLASH1
000F_E000H ∼ 000F_FFFFH
4 K バイト
4 K バイト
000F_C000H ∼ 000F_DFFFH
4 K バイト
4 K バイト
000F_A000H ∼ 000F_BFFFH
4 K バイト
4 K バイト
000F_8000H ∼ 000E_9FFFH
4 K バイト
4 K バイト
000F_6000H ∼ 000F_7FFFH
4 K バイト
4 K バイト
000F_4000H ∼ 000F_5FFFH
4 K バイト
4 K バイト
000F_2000H ∼ 000F_3FFFH
4 K バイト
4 K バイト
000F_0000H ∼ 000F_1FFFH
4 K バイト
4 K バイト
000E_8000H ∼ 000E_FFFFH
16 K バイト 16 K バイト
000E_0000H ∼ 000E_7FFFH
16 K バイト 16 K バイト
bit 31
16 15
• 次の 4 種類の組合せが可能です。
526
上位バンク
下位バンク
1
読出し
読出し
2
読出し
書込み / セクタ消去
3
書込み / セクタ消去
読出し
4
チップ消去
チップ消去
0
第 19 章 フラッシュメモリ
図 19.6-1 書込みシーケンス ( 例 )
上位バンクの
プログラム
実行
1. ウェイトサイクル 1 設定
2. WE ビット有効化
上位バンクの
プログラムによる
下位バンク
書込み実行
3. ウェイトサイクル 3 設定
4. フラッシュ書込み
5. ウェイトサイクル 1 設定
6. WE ビット無効化
上位バンクの
プログラム
実行
7. 書込み判定終了
527
第 19 章 フラッシュメモリ
528
第 20 章
シリアル書込み接続
シリアル書込み基本構成 , シリアルオンボード書込
みに使用する端子 , シリアル書込み接続例およびフ
ラッシュマイコンプログラマシステム構成につい
て説明します。
20.1 概要
529
第 20 章 シリアル書込み接続
20.1
概要
MB91F267A/MB91F267NA ではフラッシュメモリのシリアルオンボード書込み ( 富
士通標準 ) をサポートしています。その仕様について説明します。
■ シリアル書込み基本構成
富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ製 AF220/
AF210/AD120/AF110 フラッシュマイコンプログラマを使用します。シングルチップ
モードで動作するプログラムで書き込むことができます。図 20.1-1 に MB91F267A/
MB91F267NA シリアル書込み接続の基本構成について示します。
図 20.1-1 シリアル書込み基本構成
ホストインタフェースケーブル
汎用共通ケーブル (AZ210)
RS232C
AF220/AF210/
AF120/AF110
フラッシュ
マイコン
プログラマ
+
メモリカード
クロック同期シリアル
MB91F267A/
MB91F267NA
ユーザシステム
スタンドアロンで動作可能
<注意事項>
AF210 フラッシュマイコンプログラマの機能・操作方法および接続用汎用共通ケーブル
(AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株式会社にお問い合わ
せください。
530
第 20 章 シリアル書込み接続
■ 富士通標準シリアルオンボード書込みに使用する端子
端子
機能
補足説明
MD2, MD1,
MD0
モード端子
書込みモードに制御します。
フラッシュシリアル書込みモード:MD2, MD1, MD0=1, 0, 0
参考:シングルチップモード:MD2, MD1, MD0=0, 0, 0
P30, P31
書込みプログラム起動端子
P30 に "L" レベル , P31 に "H" レベルを入力してください。
INIT
リセット端子
SIN0
シリアルデータ入力端子
SOT0
シリアルデータ出力端子
SCK0
シリアルクロック入力端子
Vcc
電源電圧供給端子
Vss
GND 端子
−
UART の ch.0 リソースをクロック同期モードとして使用しま
す。
書込み電圧をユーザシステムから供給してください。接続時に
はユーザ側の電源と短絡しないようにしてください。
フラッシュマイコンプログラマの GND と共通にします。
<注意事項>
• P30, P31, SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 下図の制
御回路が必要となります。
( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中はユーザ回路
を切り離すことができます。)
AF220/AF210/
AF120/AF110
書込み制御端子
MB91F267A/
MB91F267NA
書込み制御端子
AF220/AF210/
AF120/AF110
/TICS 端子
ユーザ
• AF200 との接続はユーザ電源が OFF の状態で行ってください。
531
第 20 章 シリアル書込み接続
■ シリアル書込み接続例
図 20.1-2 MB91F267A/MB91F267NA シリアル書込み接続例
AF200
フラッシュマイコン
プログラマ
TAUX3
TMODE
ユーザシステム
MB91F267A/
MB91F267NA
コネクタ DX10-28S
(19)
MD2
43
シリアル書換え時 0
MD1
44
シリアル書換え時 0
MD0
45
P30
57
シリアル書換え時 1
(12)
ユーザ回路
シリアル書換え時 0
WDT
(18)
/TICS
(10)
/TRES
TTXD
シリアル書換え時 1
ユーザ回路
(5)
P31
56
INIT
51
TRXD
(13)
(27)
SIN0 27
SOT0 26
TCK
(6)
SCK0 28
TVcc
(2)
Vcc
GND
(14,15,
1,28)
ユーザ電源 (5.0V)
17
Vss (16,48)
14 ピン
1 ピン
DX10-28S
3, 4, 9, 11, 16, 17, 18,
20, 23, 24, 25, 26 ピン
は OPEN
DX10-28S:ライトアングルタイプ
532
28 ピン
15 ピン
コネクタ ( ヒロセ電機製 ) のピン配列
▼:10 kΩ プルアップ
第 20 章 シリアル書込み接続
■ AF200 フラッシュマイコンプログラマ システム構成
( 横河ディジタルコンピュータ製 )
型格
本
体
機能
AF220
/AC4P
イーサネットインタフェースモデル
/100V ∼ 220V 電源アダプタ
AF210
/AC4P
スタンダードモデル
/100V ∼ 220V 電源アダプタ
AF120
/AC4P
単キーイーサネットインタフェースモデル
/100V ∼ 220V 電源アダプタ
AF110
/AC4P
単キーモデル
/100V ∼ 220V 電源アダプタ
AZ221
ライタ専用 PC-AT 用 RS232C ケーブル
AZ210
標準ターゲットプローブ (a) 長さ : 1 m
FF201
富士通製 FR フラッシュマイコン用コントロールモジュール
AZ290
リモートコントローラ
/P4
4 M バイト PC Card (Option) フラッシュメモリ容量 512 K バイトまで
問い合せ先 :横河ディジタルコンピュータ株式会社
電話
:042-333-6224
■ 原発振クロック周波数について
フラッシュメモリ書込み時に使用可能な原発振クロックは 4.0 MHz となっています。
■ その他の注意事項
シリアルライタを用いた場合のフラッシュメモリ書込み時のポート状態は , 書込みに
使用している端子を除き , リセット状態と同じです。
533
第 20 章 シリアル書込み接続
534
付録
各 CPU ステートにおける端子状態 , リトル・エン
ディアン領域を利用する際の注意事項 , FR ファミ
リの命令一覧および MB91265A シリーズを使用す
る際の注意事項について説明します。
付録 A I/O マップ
付録 B 割込みベクタ
付録 C 各 CPU ステートにおける端子状態
付録 D リトル・エンディアン領域を利用する際の注意事項
付録 E 命令一覧表
付録 F 使用上の注意
535
付録
付録 A
I/O マップ
メモリ空間領域と周辺リソースの各レジスタの対応を示します。
■ I/O マップ
図 A-1 表の見方
アドレス
+0
PDR0 [R/W]B
XXXXXXXX
000000H
レジスタ
+1
+2
PDR1 [R/W]B
PDR2 [R/W]B
XXXXXXXX
XXXXXXXX
+3
PDR3 [R/W]B
XXXXXXXX
ブロック
T-unit
ポートデータレジスタ
リード / ライト 属性 , アクセス単位
(B: バイト , H: ハーフワード ,W: ワード )
リセット後のレジスタ初期値
レジスタ名 (1 コラムのレジスタが 4n 番地 , 2 コラムが 4n + 1 番地…)
最左のレジスタ番地 ( ワードでアクセスした際は , 1 コラム目の
レジスタがデータの MSB 側となる。)
<注意事項>
レジスタのビット値は , 以下のように初期値を表します。
"1": 初期値 "1"
"0": 初期値 "0"
"X":初期値不定
"-": その位置に物理的にレジスタが存在しない
記述されていないデータアクセス属性によるアクセスは禁止です。
536
付録 A I/O マップ
付表 A-1 I/O マップ (1 / 8)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
000000H
PDR0 [R/W] B,H,W
XXXXXXXX
PDR1 [R/W] B,H,W
XXXXXXXX
PDR2 [R/W] B,H,W
XXXXXXXX
PDR3 [R/W] B,H,W
XXXXXXXX
000004H
PDR4 [R/W] B,H,W
XXXXXXXX
PDR5 [R/W] B,H,W
XXXXXXXX
⎯⎯⎯
⎯⎯⎯
000008H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
00000CH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000010H
PDRG [R/W] B,H,W
------X-
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
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
000048H
00004CH
000050H
000054H
TMRLR0 [W] H,W
XXXXXXXX XXXXXXXX
⎯⎯⎯
⎯⎯⎯
TMRLR1 [W] H,W
XXXXXXXX XXXXXXXX
⎯⎯⎯
⎯⎯⎯
予約
ELVR0 [R/W] B,H,W
00000000 00000000
⎯⎯⎯
⎯⎯⎯
TMCSR0 [R/W,R] B,H,W
---00000 00000000
TMCSR1 [R/W,R] B,H,W
---00000 00000000
TMR2 [R] H,W
XXXXXXXX XXXXXXXX
00005CH
⎯⎯⎯
TMCSR2 [R/W,R] B,H,W
---00000 00000000
000064H
000068H
SIDR0[R]/SODR0[W]
B,H,W
XXXXXXXX
UTIM0 [R] H / UTIMR0 [W] H
00000000 00000000
SSR1 [R/W,R] B,H,W
00001000
SIDR1[R]/SODR1[W]
XXXXXXXX
00006CH
UTIM1 [R] H / UTIMR1 [W] H
00000000 00000000
遅延割込み /
ホールド
リクエスト
リロードタイマ 0
TMR1 [R] H,W
XXXXXXXX XXXXXXXX
TMRLR2 [W] H,W
XXXXXXXX XXXXXXXX
SSR0 [R/W,R] B,H,W
00001000
外部割込み
(INT0 ∼ INT7)
TMR0 [R] H,W
XXXXXXXX XXXXXXXX
000058H
000060H
ポートデータ
レジスタ
リロードタイマ 1
リロードタイマ 2
SCR0 [R/W,W] B,H,W
00000100
SMR0 [R/W,W] B,H,W
00--0-0-
UART0
DRCL0
--------*1
UTIMC0 [R/W] B
0--00001
U-Timer0
SCR1 [R/W,W] B,H,W
00000100
SMR1 [R/W] B,H,W
00--0-0-
UART1
DRCL1
--------*1
UTIMC1 [R/W] B
0--00001
U-Timer1
000070H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000074H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000078H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
00007CH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000080H
ADCH1 [R/W] B,H,W
XX000000
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
----0000
⎯⎯⎯
000088H
ADCH2 [R/W] B,H,W
XX000000
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
-0000000
⎯⎯⎯
予約
A/D コンバータ 1
アナログ入力
制御 1
A/D コンバータ 2
アナログ入力
制御 2
537
付録
付表 A-1 I/O マップ (2 / 8)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
000090H
OCCPBH0, OCCPBL0[W]/
OCCPH0, OCCPL0 [R] H,W
00000000 00000000
OCCPBH1, OCCPBL1[W]/
OCCPH1, OCCPL1 [R] H,W
00000000 00000000
000094H
OCCPBH2, OCCPBL2[W]/
OCCPH2, OCCPL2 [R] H,W
00000000 00000000
OCCPBH3, OCCPBL3[W]/
OCCPH3, OCCPL3 [R] H,W
00000000 00000000
000098H
OCCPBH4, OCCPBL4[W]/
OCCPH4, OCCPL4 [R] H,W
00000000 00000000
OCCPBH5, OCCPBL5[W]/
OCCPH5, OCCPL5 [R] H,W
00000000 00000000
00009CH
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
⎯⎯⎯
0000A4H
0000A8H
CPCLRBH0, CPCLRBL0[W]/
CPCLRH0, CPCLRL0[R] H,W
11111111 11111111
TCCSH0 [R/W] B,H,W
00000000
TCCSL0 [R/W] B,H,W
01000000
TCDTH0, TCDTL0 [R/W] H,W
00000000 00000000
⎯⎯⎯
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
ICSH23 [R] B,H,W
XXXXXX00
ICSL23 [R/W] B,H,W
00000000
0000B8H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
0000BCH
TMRRH0, TMRRL0 [R/W] H,W
XXXXXXXX XXXXXXXX
0000C0H
TMRRH2, TMRRL2 [R/W] H,W
XXXXXXXX XXXXXXXX
⎯⎯⎯
⎯⎯⎯
DTCR1 [R/W] B,H,W
00000000
DTCR2 [R/W] B,H,W
00000000
⎯⎯⎯
0000C8H
⎯⎯⎯
SIGCR1 [R/W] B,H,W
00000000
⎯⎯⎯
SIGCR2 [R/W] B,H,W
XXXXXXX1
0000CCH
⎯⎯⎯
⎯⎯⎯
ADCOMPC2 [R/W]
B,H,W
XX0000XX
ADCOMPC1 [R/W]
B,H,W
XXXXX00X
0000D4H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
0000DCH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
PWCSR0 [R/W,R] B,H,W
00000000 00000000
A/D COMP
予約
PWCR0 [R] H,W
00000000 00000000
0000E4H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
0000E8H
⎯⎯⎯
PDIVR0 [R/W] B,H,W
XXXXX000
⎯⎯⎯
⎯⎯⎯
0000ECH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
0000F0H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
0000F4H
∼
000ECH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
538
予約
ADCOMP1 [R/W] H,W
00000000 00000000
0000D8H
0000E0H
16 ビット ICU
波形ジェネレータ
DTCR0 [R/W] B,H,W
00000000
ADCOMP2 [R/W] H,W
00000000 00000000
16 ビット
フリーラン
タイマ 0
TMRRH1, TMRRL1 [R/W] H,W
XXXXXXXX XXXXXXXX
0000C4H
0000D0H
16 ビット OCU
16 ビット
PWC タイマ
予約
付録 A I/O マップ
付表 A-1 I/O マップ (3 / 8)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
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
∼
00012CH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
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
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
00013CH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000140H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000144H
TTCR [R/W] B,H,W
11110000
⎯⎯⎯
⎯⎯⎯
TSTPR0 [R] B,H,W
00000000
000148H
COMP0 [R/W] B,H,W
00000000
COMP2 [R/W] B,H,W
00000000
COMP4 [R/W] B,H,W
00000000
COMP6 [R/W] B,H,W
00000000
00014CH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000150H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000154H
CPCLRBH1, CPCLRBL1[W]/
CPCLRH1, CPCLRL1[R] H,W
11111111 11111111
000158H
00015CH
TCCSH1 [R/W] B,H,W
00000000
TCDTH1, TCDTL1 [R/W] H,W
00000000 00000000
TCCSL1 [R/W] B,H,W
01000000
⎯⎯⎯
CPCLRBH2, CPCLRBL2[W]/
CPCLRH2, CPCLRL2[R] H,W
11111111 11111111
⎯⎯⎯
TCDTH2, TCDTL2 [R/W] H,W
00000000 00000000
8/16 ビット
PPG タイマ 0 ∼ 7
予約
8/16 ビット
PPG タイマ 0 ∼ 7
予約
予約
タイミング
ジェネレータ
16 ビット
フリーラン
タイマ 1
16 ビット
フリーラン
タイマ 2
000160H
TCCSH2 [R/W] B,H,W
00000000
TCCSL2 [R/W] B,H,W
01000000
⎯⎯⎯
⎯⎯⎯
000164H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
予約
000168H
⎯⎯⎯
FSR2 [R/W] B,H,W
00000000
FSR1 [R/W] B,H,W
XXXX0000
FSR0 [R/W] B,H,W
00000000
FRT セレクタ
00016CH
∼
0001A4H
0001A8H
0001ACH
∼
0001FCH
⎯⎯⎯⎯⎯⎯
CANPRE [R,R/W] B,H,W
00000000
⎯⎯⎯
予約
⎯⎯⎯
⎯⎯⎯⎯⎯⎯
⎯⎯⎯
C-CAN*2
プリスケーラ
予約
539
付録
付表 A-1 I/O マップ (4 / 8)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
000200H
DMACA0 [R/W] B,H,W *3
00000000 00000000 00000000 00000000
000204H
DMACB0 [R/W] B,H,W
00000000 00000000 00000000 00000000
000208H
DMACA1 [R/W] B,H,W *3
00000000 00000000 00000000 00000000
00020CH
DMACB1 [R/W] B,H,W
00000000 00000000 00000000 00000000
000210H
DMACA2 [R/W] B,H,W *3
00000000 00000000 00000000 00000000
000214H
DMACB2 [R/W] B,H,W
00000000 00000000 00000000 00000000
000218H
DMACA3 [R/W] B,H,W *3
00000000 00000000 00000000 00000000
00021CH
DMACB3 [R/W] B,H,W
00000000 00000000 00000000 00000000
000220H
DMACA4 [R/W] B,H,W *3
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
∼
00024CH
⎯⎯⎯⎯⎯⎯
予約
000250H
⎯⎯⎯
⎯⎯⎯
000254H
∼
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
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
DSP-OT4 [R]
XXXXXXXX XXXXXXXX
DSP-OT5 [R]
XXXXXXXX XXXXXXXX
0003B4H
DSP-OT6 [R]
XXXXXXXX XXXXXXXX
DSP-OT7 [R]
XXXXXXXX XXXXXXXX
0003B8H
540
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯⎯⎯⎯
積和演算回路
⎯⎯⎯
0003B0H
0003BCH
∼
0003ECH
予約
⎯⎯⎯
予約
付録 A I/O マップ
付表 A-1 I/O マップ (5 / 8)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
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
ビットサーチ
モジュール
000400H
DDR0 [R/W] B,H,W
00000000
DDR1 [R/W] B,H,W
00000000
DDR2 [R/W] B,H,W
00000000
DDR3 [R/W] B,H,W
00000000
000404H
DDR4 [R/W] B,H,W
-0000000
DDR5 [R/W] B,H,W
00000000
⎯⎯⎯
⎯⎯⎯
000408H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
00040CH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000410H
DDRG [R/W] B,H,W
------0-
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000414H
∼
00041CH
⎯⎯⎯⎯⎯⎯
予約
000420H
PFR0 [R/W] B,H,W
00------
PFR1 [R/W] B,H,W
--0-00-0
⎯⎯⎯
⎯⎯⎯
000424H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000428H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
00042CH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
PTFR0 [R/W] B,H,W
00000000
000430H
⎯⎯⎯
000434H
∼
00043CH
⎯⎯⎯
データ方向
レジスタ
⎯⎯⎯⎯⎯⎯
ポート機能
レジスタ
予約
000440H
ICR00 [R/W,R] B,H,W
---11111
ICR01 [R/W,R] B,H,W
---11111
ICR02 [R/W,R] B,H,W
---11111
ICR03 [R/W,R] B,H,W
---11111
000444H
ICR04 [R/W,R] B,H,W
---11111
ICR05 [R/W,R] B,H,W
---11111
ICR06 [R/W,R] B,H,W
---11111
ICR07 [R/W,R] B,H,W
---11111
000448H
ICR08 [R/W,R] B,H,W
---11111
ICR09 [R/W,R] B,H,W
---11111
ICR10 [R/W,R] B,H,W
---11111
ICR11 [R/W,R] B,H,W
---11111
00044CH
ICR12 [R/W,R] B,H,W
---11111
ICR13 [R/W,R] B,H,W
---11111
ICR14 [R/W,R] B,H,W
---11111
ICR15 [R/W,R] B,H,W
---11111
000450H
ICR16 [R/W,R] B,H,W
---11111
ICR17 [R/W,R] B,H,W
---11111
ICR18 [R/W,R] B,H,W
---11111
ICR19 [R/W,R] B,H,W
---11111
000454H
ICR20 [R/W,R] B,H,W
---11111
ICR21 [R/W,R] B,H,W
---11111
ICR22 [R/W,R] B,H,W
---11111
ICR23 [R/W,R] B,H,W
---11111
000458H
ICR24 [R/W,R] B,H,W
---11111
ICR25 [R/W,R] B,H,W
---11111
ICR26 [R/W,R] B,H,W
---11111
ICR27 [R/W,R] B,H,W
---11111
00045CH
ICR28 [R/W,R] B,H,W
---11111
ICR29 [R/W,R] B,H,W
---11111
ICR30 [R/W,R] B,H,W
---11111
ICR31 [R/W,R] B,H,W
---11111
000460H
ICR32 [R/W,R] B,H,W
---11111
ICR33 [R/W,R] B,H,W
---11111
ICR34 [R/W,R] B,H,W
---11111
ICR35 [R/W,R] B,H,W
---11111
000464H
ICR36 [R/W,R] B,H,W
---11111
ICR37 [R/W,R] B,H,W
---11111
ICR38 [R/W,R] B,H,W
---11111
ICR39 [R/W,R] B,H,W
---11111
000468H
ICR40 [R/W,R] B,H,W
---11111
ICR41 [R/W,R] B,H,W
---11111
ICR42 [R/W,R] B,H,W
---11111
ICR43 [R/W,R] B,H,W
---11111
00046CH
ICR44 [R/W,R] B,H,W
---11111
ICR45 [R/W,R] B,H,W
---11111
ICR46 [R/W,R] B,H,W
---11111
ICR47 [R/W,R] B,H,W
---11111
割込み制御
ユニット
541
付録
付表 A-1 I/O マップ (6 / 8)
レジスタ
アドレス
ブロック
+0
+1
000470H
∼
00047CH
+2
+3
⎯⎯⎯⎯⎯⎯
予約
000480H
RSRR [R,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
−−−−−−−−*1
DIVR0 [R/W] B,H,W
00000011
DIVR1 [R/W] B,H,W
00000000
000488H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
00048CH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000490H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000494H
∼
0005FCH
⎯⎯⎯⎯⎯⎯
予約
000600H
PCR0 [R/W] B,H,W
00000000
PCR1 [R/W] B,H,W
00000000
PCR2 [R/W] B,H,W
00000000
PCR3 [R/W] B,H,W
00------
000604H
PCR4 [R/W] B,H,W
----0000
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000608H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
00060CH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000610H
PCRG [R/W] B,H,W
------0-
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
000614H
∼
00063CH
⎯⎯⎯⎯⎯⎯
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
⎯⎯⎯⎯⎯⎯
542
クロック制御
ユニット
プルアップ制御
予約
DMAC
予約
付録 A I/O マップ
付表 A-1 I/O マップ (7 / 8)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
007000H
FLCR [R/W,R] B
01101000
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
007004H
FLWC [R/W,R] B
00000011
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
007008H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
00700CH
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
007010H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
FLASH
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
⎯⎯⎯⎯⎯⎯
予約
積和演算回路
予約
020000H
CTRLR0 [R,R/W]
00000000 00000001
STATR0 [R,R/W]
00000000 00000000
020004H
ERRCNT0 [R]
00000000 00000000
BTR0 [R,R/W]
00100011 00000001
020008H
INTR0 [R]
00000000 00000000
TESTR0 [R,R/W]
00000000 X0000000
02000CH
BRPER0 [R,R/W]
00000000 00000000
020010H
IF1CREQ0 [R,R/W]
00000000 00000000
IF1CMSK0 [R,R/W]
00000000 00000000
020014H
IF1MSK20 [R,R/W]
11111111 11111111
IF1MSK10 [R/W]
11111111 11111111
020018H
IF1ARB20 [R/W]
00000000 00000000
IF1ARB10 [R/W]
00000000 00000000
02001CH
IF1MCTR0 [R,R/W]
00000000 00000000
020020H
IF1DTA10 [R/W]
00000000 00000000
IF1DTA20 [R/W]
00000000 00000000
020024H
IF1DTB10 [R/W]
00000000 00000000
IF1DTB20 [R/W]
00000000 00000000
020030H
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
C-CAN *2
予約 (IF1 data mirror, little endian byte ordering)
020040H
IF2CREQ0 [R,R/W]
00000000 00000000
IF2CMSK0 [R,R/W]
00000000 00000000
020044H
IF2MSK20 [R,R/W]
11111111 11111111
IF2MSK10 [R/W]
11111111 11111111
020048H
IF2ARB20 [R/W]
00000000 00000000
IF2ARB10 [R/W]
00000000 00000000
02004CH
IF2MCTR0 [R,R/W]
00000000 00000000
⎯⎯⎯
⎯⎯⎯
543
付録
付表 A-1 I/O マップ (8 / 8)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
020050H
IF2DTA10 [R/W]
00000000 00000000
IF2DTA20 [R/W]
00000000 00000000
020054H
IF2DTB10 [R/W]
00000000 00000000
IF2DTB20 [R/W]
00000000 00000000
020060H
予約 (IF2 data mirror, little endian byte ordering)
020080H
TREQR20 [R]
00000000 00000000
TREQR10 [R]
00000000 00000000
020090H
NEWDT20 [R]
00000000 00000000
NEWDT10 [R]
00000000 00000000
0200A0H
INTPND20 [R]
00000000 00000000
INTPND10 [R]
00000000 00000000
0200B0H
MESVAL20 [R]
00000000 00000000
MESVAL10 [R]
00000000 00000000
C-CAN *2
*1 : 予約レジスタです。アクセス禁止です。
*2 : C-CAN は , MB91F267NA/MB91267NA に搭載されています。
*3 : DMACA0 ∼ DMACA4 の下位 16 ビット (DTC15 ∼ DTC0) は , バイトでのアクセスはできません。
( 注意事項 ) ・ FLWC(7004H) の初期値は , 評価用品ツール上は "00010011B" です。評価用品にて ,
"00000011B" を書込みしても動作に変わりはありません。
・ 書込みのみのビットのあるレジスタに対してリードモディファイライト (RMW) 系命令
を行わないでください。
・ 予約または ( − ) の領域のデータは不定です。
544
付録 B 割込みベクタ
付録 B
割込みベクタ
MB91265A シリーズのベクタテーブルを示します。
■ 割込みベクタ
付表 B-1 ベクタテーブル (1 / 3)
割込み番号
割込みレベル
オフセット
TBR デフォルト
のアドレス
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
割込み要因
10 進
16 進
リセット
0
モードベクタ
INTE 命令
9
09
−
3D8H
000FFFD8H
システム予約
10
0A
−
3D4H
000FFFD4H
システム予約
11
0B
−
3D0H
000FFFD0H
ステップトレーストラップ
12
0C
−
3CCH
000FFFCCH
NMI 要求 (tool)
13
0D
−
3C8H
000FFFC8H
未定義命令例外
14
0E
−
3C4H
000FFFC4H
NMI 要求
15
0F
15(FH) 固定
3C0H
000FFFC0H
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
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/DMAC3/DMAC4 ( 終了 , エラー )
32
20
ICR16
37CH
000FFF7CH
外部割込み 6/C-CAN
ウェイクアップ *
545
付録
付表 B-1 ベクタテーブル (2 / 3)
割込み番号
割込みレベル
オフセット
TBR デフォルト
のアドレス
21
ICR17
378H
000FFF78H
34
22
ICR18
374H
000FFF74H
C-CAN 0*
35
23
ICR19
370H
000FFF70H
システム予約
36
24
ICR20
36CH
000FFF6CH
積和
37
25
ICR21
368H
000FFF68H
PPG0/PPG1
38
26
ICR22
364H
000FFF64H
PPG2/PPG3
39
27
ICR23
360H
000FFF60H
PPG4/PPG5/PPG6/PPG7
40
28
ICR24
35CH
000FFF5CH
システム予約
41
29
ICR25
358H
000FFF58H
波形 ( アンダフロー ) 0/1/2
42
2A
ICR26
354H
000FFF54H
フリーランタイマ 1( コンペアクリア )
43
2B
ICR27
350H
000FFF50H
割込み要因
10 進
16 進
UART1 ( 受信完了 )
33
UART1 ( 送信完了 )
フリーランタイマ 1(0 検出 )
44
2C
ICR28
34CH
000FFF4CH
フリーランタイマ 2( コンペアクリア )
45
2D
ICR29
348H
000FFF48H
フリーランタイマ 2(0 検出 )
46
2E
ICR30
344H
000FFF44H
タイムベースタイマオーバフロー
47
2F
ICR31
340H
000FFF40H
フリーランタイマ 0( コンペアクリア )
48
30
ICR32
33CH
000FFF3CH
フリーランタイマ 0(0 検出 )
49
31
ICR33
338H
000FFF38H
システム予約
50
32
ICR34
334H
000FFF34H
A/D コンバータ 1
51
33
ICR35
330H
000FFF30H
A/D コンバータ 2
52
34
ICR36
32CH
000FFF2CH
PWC0 ( 測定完了 )
53
35
ICR37
328H
000FFF28H
システム予約
54
36
ICR38
324H
000FFF24H
PWC0 ( オーバフロー )
55
37
ICR39
320H
000FFF20H
システム予約
56
38
ICR40
31CH
000FFF1CH
ICU 0 ( 取込み )
57
39
ICR41
318H
000FFF18H
ICU 1 ( 取込み )
58
3A
ICR42
314H
000FFF14H
ICU2/ICU3 ( 取込み )
59
3B
ICR43
310H
000FFF10H
OCU0/OCU1 ( 一致 )
60
3C
ICR44
30CH
000FFF0CH
OCU2/OCU3 ( 一致 )
61
3D
ICR45
308H
000FFF08H
OCU4/OCU5 ( 一致 )
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
546
付録 B 割込みベクタ
付表 B-1 ベクタテーブル (3 / 3)
割込み番号
割込みレベル
オフセット
TBR デフォルト
のアドレス
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
割込み要因
10 進
16 進
システム予約
74
システム予約
INT 命令で使用
−
*:C-CAN の割込みは , MB91F267NA/MB91267NA に搭載されている機能です。
547
付録
付録 C
各 CPU ステートにおける端子状態
端子の状態に対する語句は以下の意味を持ちます。
■ 各 CPU ステートにおける端子状態
• 入力可能
入力機能が使用可能な状態であることを意味する。
• 入力 "0" 固定
端子からすぐの入力ゲートで外部入力を遮断して内部へ "0" を伝えている状態。
• 出力 Hi-Z
端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダンスにするこ
とを意味する。
• 出力保持
本モードになる直前に出力していた状態をそのまま出力することを意味する。
つまり , 出力のある内蔵周辺が動作中であればその内蔵周辺に従い出力を行い ,
ポートなどとして出力している場合にはその出力を保持する。
• 直前の状態を保持
本モードになる直前に出力していた状態をそのまま出力 , あるいは入力であれば入
力可能を意味する。
548
付録 C 各 CPU ステートにおける端子状態
表 C-1 シングルチップモード
イニシャライズ時
Pin No.
(LQFP)
端子名
機能
3 ∼ 10
P50 ∼
P57
AN0 ∼ AN7
11 ∼ 13
P44 ∼
P46
AN8 ∼
AN10
14
NMI
NMI
18
P00
PPG1/INT4
19
P01
20
21 ∼ 23
24, 25
INIT=L*1
INIT=H*2
出力 Hi-Z/
入力不可
出力 Hi-Z/
入力可能
入力可能
入力可能
ストップ時
スリープ時
HIZ=0
HIZ=1
直前状態保持
直前状態保持
出力 Hi-Z/
入力 0 固定
入力可能
入力可能
入力可能
PPG2
直前状態保持
直前状態保持
出力 Hi-Z/
入力 0 固定
P02
PPG3/INT5
入力可能
入力可能
入力可能
P03 ∼
P05
TIN0 ∼
TIN2
直前状態保持
直前状態保持
出力 Hi-Z/
入力 0 固定
入力可能
入力可能
入力可能
直前状態保持
直前状態保持
出力 Hi-Z/
入力 0 固定
入力可能
入力可能
入力可能
P06, P07 TOT1, TOT2
26
P10
SOT0
27
P11
SIN0
28
P12
SCK0
29
P13
SOT1
30
P14
SIN1
31
P15
SCK1
32
P16
PPG5/INT6/
RX0*3
33
P17
PPG6/TX0*3
34
P20
ADTG1/IC2
35
P21
ADTG2/IC3
36
P22
PWI0
37
P23
DTTI
38
P24
CKI
39
P25
IC0
40
P26
IC1
41
P27
ポート
42
PG1
PPG0
出力 Hi-Z/
入力不可
出力 Hi-Z/
入力可能
49
P37
PPG4
50
P36
PPG7/INT7
52 ∼ 57
P35 ∼
P30
RTO5 ∼
RTO0
直前状態保持
直前状態保持
出力 Hi-Z/
入力 0 固定
58 ∼ 61
P40 ∼
P43
INT0 ∼
INT3
入力可能
入力可能
入力可能
*1: INIT=L : INIT が "L" の期間の端子状態を示す。
*2: INIT=H : INIT が , "L" から "H" へ遷移した直後の端子状態を示す。
*3: C-CAN の端子は , MB91F267NA/MB91267NA に搭載されています。
549
付録
付録 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();
...
}
550
付録 D リトル・エンディアン領域を利用する際の注意事項
● 構造体代入
構造体どうしの代入を行うとき , コンパイラは最適な転送方法を選択してバイト , ハー
フワード , ワードごとの転送を行います。このため , 通常の領域に割り当てられた構造
体変数とリトルエンディアンの領域に割り当てられた構造体変数の間で構造体代入を
行うと , 正しい結果が得られません。
構造体のメンバをそれぞれ代入してください。
[ 例 ] リトルエンディアン領域の構造体変数 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
01
( リトルエンディアン領域 )
→ memcpy →
01
02
03
04
04
03
02
01
となり , ワードデータの転送結果としては誤りになる。
( 正しい結果 )
551
付録
● 文字列操作関数使用時の -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
となり , double 型データの転送結果としては誤りになります。
( 正しい結果 )
00
00
00
00
00
00
f0
3f
● スタックのリトルエンディアン領域への配置
リトルエンディアン領域にスタックの一部あるいは全部が配置された場合 , 動作を保
証しません。
552
付録 D リトル・エンディアン領域を利用する際の注意事項
■ アセンブラ (fasm911)
FR のアセンブラ言語でプログラミングをするにあたって , リトルエンディアン領域に
関して注意項目を以下に示します。
● セクションについて
リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと
を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク
ションとして定義してください。
もし , リトルエンディアン領域にコードやスタック , 初期値付きデータセクションなど
の指定をした場合には , 本品種でのアクセス動作は保証できなくなります。
[例]
/* 正しいリトルエンディアン領域のセクション定義 */
.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
r2, @r3
553
付録
/* 8 ビットデータは , STB 命令 ( や LDB 命令など ) でアクセスします。*/
STB
r4, @r5
本品種でデータサイズと異なるサイズでアクセスした場合には , その値の保証はでき
ません。例えば , 連続する 2 つの 16 ビットデータを , 32 ビットアクセス命令を使って
一度にアクセスした場合にはデータの値の保証はできません。
554
付録 D リトル・エンディアン領域を利用する際の注意事項
■ リンカ (flnk911)
リトルエンディアン領域を使用するプログラムの作成において , リンク時のセクショ
ン配置で注意項目を以下に示します。
● セクション種別の制限
リトルエンディアン領域には , 初期値なしデータセクションのみ配置することができ
ます。
リトルエンディアン領域に初期値付きデータセクション , スタックセクションおよび
コードセクションを配置した場合 , リンカの内部では , ビッグエンディアンでアドレス
解決などの演算処理を行っていますので , プログラム動作は 保証できません。
● エラーの未検出
リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し
た配置が行われても , エラーメッセージを通知することはありません。リトルエンディ
アン領域に配置したセクションの内容を十分にご確認のうえご使用ください。
555
付録
■ デバッガ (sim911, eml911, mon911)
● シミュレータデバッガ
リトルエンディアン領域を示すような , メモリ空間指定コマンドはありません。
したがって , メモリ操作コマンドや , メモリを操作する命令実行は , ビッグエンディア
ンとして扱われます。
● エミュレータデバッガ , モニタデバッガ
以下のコマンドでリトルエンディアン領域をアクセスした場合に , 正常な値として扱
われませんので注意してください。
• set memory/show memory/enter/examine/set watch コマンド
→浮動小数点 (single/double) のデータを扱った場合 , 指定した値が設定・表示と
もにできません。
• search memory コマンド
→ハーフワード , ワードのデータの検索を行った場合 , 指定した値で検索が行わ
れません。
• 行 / 逆アセンブル ( ソースウィンドウの逆アセンブル表示を含む )
→正常な命令コードが設定・表示ともにできません。
( リトルエンディアン領域には , 命令コードを配置しないようにしてくださ
い。)
• call/show call コマンド
→スタック領域が , リトルエンディアン領域に置かれた場合, 正常に 動作しませ
ん。
( リトルエンディアン領域にスタック領域を配置しないでください。)
556
付録 E 命令一覧表
付録 E
命令一覧表
FR ファミリの命令一覧表です。
■ 命令一覧表
図 E-1 命令一覧表の読み方
ニーモニック
ADD Rj, Rj
* ADD #s5, Rj
,
,
型
A
C
,
,
OP
CYC
AG
A4
,
,
1
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) 命令動作が表記されています。
557
付録
● アドレッシングモードの記号
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
として扱います。
558
#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 命令一覧表
● 命令フォーマット
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
s5/u5
Ri
7
5
4
D
OP
8
E
F
u8/rel8/dir/
reglist
8
OP
SUB-OP
Ri
8
4
4
rel11
OP
5
11
559
付録
表 E-1 加減算
ニーモニック
ADD Rj, Ri
*ADD #s5, Ri
型
A
C’
OP
CYCLE NZVC
A6
A4
1
1
動作
CCCC Ri+Rj->Ri
CCCC Ri+s5->Ri
ADD #u4, Ri
ADD2 #u4, Ri
ADDN Rj, Ri
ADDN Rj, Ri
*ADDN #s5, Ri
C
C
A
A
C’
A4
A5
A7
A2
A0
1
1
1
1
1
CCCC
CCCC
CCCC
-------
Ri+extu(i4)->Ri
Ri+extu(i4)->Ri
Ri+Rj+c->Ri
Ri+Rj->Ri
Ri+s5->Ri
ADDN #u4, Ri
ADDN2 #u4, Ri
SUB Rj, Ri
SUBC Rj, Ri
SUBN Rj, Ri
C
C
A
A
A
A0
A1
AC
AD
AE
1
1
1
1
1
------CCCC
CCCC
----
Ri+extu(i4)->Ri
Ri+extu(i4)->Ri
Ri-Rj->Ri
Ri-Rj-c->Ri
Ri-Rj->Ri
ニーモニック
CMP Rj, Ri
*CMP #s5, Ri
型
A
C’
OP
AA
A8
1
1
CCCC Ri-Rj
CCCC Ri-s5
CMP #u4, Ri
CMP2 #u4, Ri
C
C
A8
A9
1
1
CCCC Ri-extu(i4)
CCCC Ri-extu(i4)
備考
アセンブラでは上位 1
ビットを符号と見る
ゼロ拡張
マイナス拡張
キャリ付き加算
アセンブラでは上位 1
ビットを符号と見る
ゼロ拡張
マイナス拡張
キャリ付き減算
表 E-2 比較演算
560
CYCLE NZVC
動作
備考
アセンブラでは上位 1
ビットを符号と見る
ゼロ拡張
マイナス拡張
付録 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
OP
型
A
A
A
A
A
A
A
A
A
A
A
A
CYCLE NZVC
82
84
85
86
92
94
95
96
9A
9C
9D
9E
1
1+2a
1+2a
1+2a
1
1+2a
1+2a
1+2a
1
1+2a
1+2a
1+2a
CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC--
動作
Ri &= Rj
(Ri) &= Rj
(Ri) &= Rj
(Ri) &= Rj
Ri |= Rj
(Ri) |= Rj
(Ri) |= Rj
(Ri) |= Rj
Ri ^= Rj
(Ri) ^= Rj
(Ri) ^= Rj
(Ri) ^= Rj
RMW
−
○
○
○
−
○
○
○
−
○
○
○
備考
ワード
ワード
ハーフワード
バイト
ワード
ワード
ハーフワード
バイト
ワード
ワード
ハーフワード
バイト
表 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
型
C
C
OP
CYCLE NZVC
80
81
1+2a
1+2a
C
C
90
91
1+2a
1+2a
C
C
98
99
1+2a
1+2a
C
C
88
89
2+a
2+a
RMW
動作
備考
---- (Ri)&=(0xF0+u4)
○ 下位 4 ビットを操作
---- (Ri)&=((u4<<4)+0x0F) ○ 上位 4 ビットを操作
---- (Ri)&=u8
−
---- (Ri) | = u4
○ 下位 4 ビットを操作
---- (Ri) | = (u4<<4)
○ 上位 4 ビットを操作
---- (Ri) | = u8
−
---- (Ri) ^ = u4
○ 下位 4 ビットを操作
---- (Ri) ^ = (u4<<4)
○ 上位 4 ビットを操作
---- (Ri) ^ = u8
−
0C-- (Ri) & u4
− 下位 4 ビットをテスト
CC-- (Ri) & (u4<<4)
− 上位 4 ビットをテスト
*1: アセンブラは , u8&0FH でビットが立っていれば , BANDL を生成し , u8&F0H でビットが立っていれ
ば , BANDH を生成します。BANDL, BANDH 両方生成する場合もあります。
*2: アセンブラは , u8&0FH でビットが立っていれば , BORL を生成し , u8&F0H でビットが立っていれ
ば , BORH を生成します。BORL, BORH 両方生成する場合もあります。
*3: アセンブラは , u8&0FH でビットが立っていれば , BEORL を生成し , u8&F0H でビットが立っていれ
ば , BEORH を生成します。BEORL, BEORH 両方生成する場合もあります。
561
付録
表 E-5 乗除算
ニーモニック
MUL Rj,Ri
MULU Rj,Ri
MULH Rj,Ri
MULUH Rj,Ri
DIV0S Ri
DIV0U Ri
DIV1 Ri
DIV2 Ri
DIV3
DIV4S
型
A
A
A
A
E
E
E
E
E
E
OP
CYCLE NZVC
AF
AB
BF
BB
97-4
97-5
97-6
97-7
9F-6
9F-7
*DIV Ri *1
動作
備考
Ri * Rj -> MDH,MDL 32bit × 32bit=64bit
Ri * Rj -> MDH,MDL 符号なし
Ri * Rj -> MDL
16bit × 16bit=32bit
Ri * Rj -> MDL
符号なし
ステップ演算
32bit/32bit=32bit
5
5
3
3
1
1
d
1
1
1
CCCCCCCC-CC--------C-C
-C-C
-------
36
-C-C MDL / Ri -> MDL , MDL % Ri -> MDH
-C-C MDL / Ri -> MDL , MDL % Ri -> MDH
*DIVU Ri *2
表 E-6 シフト
ニーモニック
LSL Rj, Ri
*LSL #u5, Ri(u5:0 ∼ 31)
LSL #u4, Ri
LSL2 #u4, Ri
LSR Rj, Ri
*LSR #u5, Ri(u5:0 ∼ 31)
LSR #u4, Ri
LSR2 #u4, Ri
ASR Rj, Ri
*ASR #u5, Ri (u5:0 ∼ 31)
ASR #u4, Ri
ASR2 #u4, Ri
OP
型
A
C’
C
C
A
C’
C
C
A
C’
C
C
CYCLE NZVC
B6
B4
B4
B5
B2
B0
B0
B1
BA
B8
B8
B9
1
1
1
1
1
1
1
1
1
1
1
1
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
動作
Ri << Rj -> Ri
Ri << u5 -> Ri
Ri << u4 -> Ri
Ri <<(u4+16) -> Ri
Ri >> Rj -> Ri
Ri >> u5 -> Ri
Ri >> u4 -> Ri
Ri >>(u4+16) -> Ri
Ri >> Rj -> Ri
Ri >> u5 -> Ri
Ri >> u4 -> Ri
Ri >>(u4+16) -> Ri
備考
論理シフト
論理シフト
算術シフト
表 E-7 即値セット /16 ビット /32 ビット即値転送命令
ニーモニック
LDI:32 #i32, Ri
LDI:20 #i20, Ri
LDI:8 #i8, Ri
*LDI # {i8|i20|i32} ,Ri *3
型
E
C
B
OP
9F-8
9B
C0
CYCLE NZVC
3
2
1
----------
動作
i32 -> Ri
i20 -> Ri
i8 -> Ri
備考
上位 12 ビットはゼロ拡張
上位 24 ビットはゼロ拡張
{i8 | i20 | i32} -> Ri
*1: DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成する。命令コード長は , 72 バイトとなります。
*2: DIV0U, DIV1 × 32 を生成する。命令コード長は , 66 バイトとなります。
*3: 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行います。
即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択されます。
562
付録 E 命令一覧表
表 E-8 メモリロード
ニーモニック
LD @Rj, Ri
LD @(R13,Rj), Ri
LD @(R14,disp10),Ri
LD @(R15,udisp6),Ri
LD @R15+, Ri
LD @R15+, Rs
LD @R15+, PS
LDUH @Rj, Ri
LDUH @(R13,Rj), Ri
LDUH @(R14,disp9), Ri
LDUB @Rj, Ri
LDUB @(R13,Rj), Ri
LDUB @(R14,disp8), Ri
型
A
A
B
C
E
E
E
A
A
B
A
A
B
OP
04
00
2
03
07-0
07-8
07-9
05
01
4
06
02
6
CYCLE NZVC
動作
b
---- (Rj)->Ri
b
---- (R13+Rj)->Ri
b
---- (R14+disp10)->Ri
b
---- (R15+udisp6)->Ri
b
---- (R15)->Ri,R15+=4
b
---- (R15)->Rs,R15+=4
1+a+b CCCC (R15)->PS, R15+=4
b
---- (Rj)->Ri
b
---- (R13+Rj)->Ri
b
---- (R14+disp9)->Ri
b
---- (Rj)->Ri
---- (R13+Rj)->Ri
b
---- (R14+disp8)->Ri
b
備考
Rs:特殊レジスタ
*
ゼロ拡張
ゼロ拡張
ゼロ拡張
ゼロ拡張
ゼロ拡張
ゼロ拡張
*: ハード仕様の 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
a
a
a
a
a
a
a
a
a
a
a
a
----------------------------------------
動作
Ri->(Rj)
Ri->(R13+Rj)
Ri->(R14+disp10)
Ri->(R15+udisp6)
R15-=4,Ri->(R15)
R15-=4, Rs->(R15)
R15-=4, PS->(R15)
Ri->(Rj)
Ri->(R13+Rj)
Ri->(R14+disp9)
Ri->(Rj)
Ri->(R13+Rj)
Ri->(R14+disp8)
備考
ワード
ワード
ワード
Rs 特殊レジスタ
*
ハーフワード
ハーフワード
ハーフワード
バイト
バイト
バイト
*: ハード仕様の 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
1
1
1
c
------------CCCC
動作
Rj -> Ri
Rs -> Ri
Ri -> Rs
PS -> Ri
Ri -> PS
備考
汎用レジスタ間転送
Rs:特殊レジスタ
Rs:特殊レジスタ
*
*: 特殊レジスタ Rs : TBR, RP, USP, SSP, MDH, MDL
563
付録
表 E-11 通常分岐 ( 遅延なし )
OP
CYCLE NZVC
ニーモニック
JMP @Ri
CALL label12
CALL @Ri
RET
INT #u8
型
E
E
F
E
D
97-0
D0
97-1
97-2
1F
2
2
2
2
3+3a
----------------
INTE
E
9F-3
3+3a
----
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
----------------------------------------
動作
備考
Ri -> PC
PC+2->RP ,PC+2+(label12-PC-2)->PC
PC+2->RP ,Ri->PC
RP -> PC
リターン
SSP-=4,PS->(SSP),SSP-=4,PC+2->(SSP),
0->I フラグ , 0->S フラグ ,
(TBR+0x3FC-u8 × 4)->PC
SSP-=4,PS->(SSP),SSP-=4,PC+2->(SSP),
0->S フラグ , (TBR+l0x3D8)->PC
エミュレータ用
(R15)->PC,R15-=4, (R15)->PS,R15-=4
PC+2+(label9-PC-2)->PC
非分岐
if(Z==1) then
PC+2+(label9-PC-2)->PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
( 注意事項 ) ・ CYCLE 数の「2/1」は , 分岐するとき 2, 分岐しないとき 1 であることを示します。
・ ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定
します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付き。
・ RETI 命令を実行するときは S フラグが "0" であることが必要です。
564
付録 E 命令一覧表
表 E-12 遅延分岐
OP
CYCLE NZVC
ニーモニック
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
9F-0
D8
9F-1
9F-2
F0
F1
F2
1
1
1
1
1
1
1
----------------------
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
1
1
1
1
1
1
1
1
1
1
1
1
1
----------------------------------------
動作
備考
Ri -> PC
PC+4->RP ,PC+2+(label12-PC-2)->PC
PC+4->RP ,Ri->PC
RP -> PC
リターン
PC+2+(label9-PC-2)->PC
非分岐
if(Z==1) then
PC+2+(label9-PC-2)->PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
( 注意事項 ) ・ ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定
します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付き。
・ 遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。
・ 遅延スロットに置くことができる命令は, すべての1サイクル, a, b, c, dサイクル命令で
す。複数サイクル命令は置けません。
565
付録
表 E-13 その他
OP
ニーモニック
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
9F-A
83
93
87
A3
97-8
97-9
97-A
97-B
8C
LDM1 (reglist)
D
8D
CYCLE NZVC
1
c
c
1
1
1
1
1
1
---CCCC
CCCC
----------------------------
*LDM (reglist)
*2
STM0 (reglist)
D
8E
----
STM1 (reglist)
D
8F
-------
*STM (reglist)
*3
D
0F
1+a
----
LEAVE
E
9F-9
b
----
XCHB @Rj, Ri
A
8A
2a
----
ENTER #u10
*4
動作
何も変化しない
CCR and u8 -> CCR
CCR or u8 -> CCR
i8 -> ILM
R15 += s10
符号拡張 8->32bit
ゼロ拡張 8->32bit
符号拡張 16->32bit
ゼロ拡張 16->32bit
(R15)->reglist,
R15 インクリメント
(R15)->reglist,
R15 インクリメント
(R15)->reglist,
R15 インクリメント
R15 デクリメント ,
reglist->(R15)
R15 デクリメント ,
reglist->(R15)
R15 デクリメント ,
reglist->(R15)
R14 -> (R15 - 4),
R15 - 4 -> R14,
R15 - u10 -> R15
R14 + 4 -> R15,
(R15 - 4) -> R14
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 サイクルとなります。
566
付録 E 命令一覧表
表 E-14 20 ビット通常分岐マクロ命令
ニーモニック
*CALL20 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
*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
備考
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:
567
付録
表 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
LDI:20 #label20,Ri
JMP:D @Ri
false:
568
xcc は , cc の背反条件
付録 E 命令一覧表
表 E-16 32 ビット通常分岐マクロ命令
ニーモニック
*CALL32 label32,Ri
*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
動作
次の命令のアドレス ->RP,
label32->PC
label32->PC
if(Z==1) then label32->PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
備考
Ri: テンポラリレジスタ 参考 1 参照
Ri: テンポラリレジスタ 参考 2 参照
Ri: テンポラリレジスタ 参考 3 参照
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
[ 参考 1] CALL32
(1) label32-PC-2 が , − 0x800 ∼+ 0x7fe の場合は , 次のように命令を生成します。
CALL label12
(2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成
します。
LDI:32 #label32,Ri
CALL
@Ri
[ 参考 2] BRA32
(1) label32-PC-2 が , − 0x100 ∼+ 0xfe の場合は , 次のように命令を生成します。
BRA label9
(2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成
します。
LDI:32 #label32,Ri
JMP
@Ri
[ 参考 3] Bcc32
(1) label32-PC-2 が , − 0x100 ∼+ 0xfe の場合は , 次のように命令を生成します。
Bcc label9
(2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生成
します。
Bxcc
false
xcc は , cc の背反条件
LDI:32 #label32,Ri
JMP
@Ri
false:
569
付録
表 E-17 32 ビット遅延分岐マクロ命令
ニーモニック
*CALL32D 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
*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
備考
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
LDI:32 #label32,Ri
JMP:D
false:
570
@Ri
xcc は , cc の背反条件
付録 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
OP
型
D
D
D
D
D
D
D
D
D
D
D
D
D
D
CYCLE NZVC
08
18
0C
1C
0B
1B
09
19
0D
1D
0A
1A
0E
1E
b
a
2a
2a
2a
2a
b
a
2a
2a
b
a
2a
2a
-------------------------------------------
動作
(dir10)-> R13
R13 ->(dir10)
(dir10)->(R13),R13+=4
(R13)->(dir10),R13+=4
R15-=4, (R15)->(dir10)
(R15)->(dir10),R15+=4
(dir9)-> R13
R13 ->(dir9)
(dir9)->(R13),R13+=2
(R13)->(dir9),R13+=2
(dir8)-> R13
R13 ->(dir8)
(dir8)->(R13),R13++
(R13)->(dir8),R13++
備考
ワード
ワード
ワード
ワード
ワード
ワード
ハーフワード
ハーフワード
ハーフワード
ハーフワード
バイト
バイト
バイト
バイト
( 注意事項 ) dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。
dir8 → dir, dir9/2 → dir, dir10/4 → dir dir8, dir9, dir10 は符号なし。
表 E-19 リソース命令
ニーモニック
LDRES @Ri+, #u4
型
C
OP
CYCLE NZVC
BC
a
----
STRES #u4, @Ri+
C
BD
a
----
動作
(Ri)->u4 のリソース
Ri+=4
u4 のリソース ->(Ri)
Ri+=4
備考
u4: チャネル番号
u4: チャネル番号
( 注意事項 ) 本品種では , チャネル番号を持つリソースを搭載していないので , 使用できません。
表 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
COPLD
COPST
COPSV
#u4, #u8, CRj, Cri
#u4, #u8, Rj, Cri
#u4, #u8, CRj, Ri
#u4, #u8, CRj, Ri
E
E
E
E
9F-C
9F-D
9F-E
9F-F
2+a
1+2a
1+2a
1+2a
-------------
演算指示
Rj -> CRi
CRj -> Ri
CRj -> Ri
エラートラップなし
( 注意事項 ) 本品種では , コプロセッサを搭載していないため使用できません。
571
付録
付録 F
使用上の注意
MB91265A シリーズを使用する際の注意事項を説明します。
■ 共通事項
● クロック制御部
INIT への "L" 入力時には , 発振安定待ち時間を確保してください。
● 兼用ポートの機能切換え
PORT と兼用端子の切換えは , PFR ( ポートファンクションレジスタ ) で行います。
ただし , バス端子は外バスの設定により切り換わります。
● D-bus メモリ
コード領域を , D-bus 上のメモリに設定しないでください。
D-bus へは命令フェッチを行いませんので , D-bus 領域へ命令フェッチを行った場合 ,
誤ったデータをコードとして解釈するため , 暴走する可能性があります。
● 低消費電力モード
(1) スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカ
ウンタ制御レジスタの bit8 SYNCS ビットにて設定します ) を使用した上で , 以下の
シーケンスを必ず使用してください。
/* STCR ライト */
ldi
ldi
stb
#_STCR, R0
#_Val_of_Stby, rl
rl, @r0
; STCR レジスタ (0x0481)
; Val_of_Stby は , STCR へのライトデータ
; STCR へのライト
/* STBR ライト */
ldi
ldi
stb
ldi
stb
#_CTBR, r2
#0xA5, rl
rl, @r2
#0xA5, rl
rl, @r2
; CTBR レジスタ (0x0483)
; クリアコマンド (1)
; CTBR への A5 ライト
; クリアコマンド (2)
; CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
nop
nop
nop
nop
@r0, rl
; STCR ダミーリード
; タイミング調整用の NOP × 5
(2) モニタデバッガを使用される場合は , 以下のことを行わないでください。
- 上記命令列に対して , ブレークポイントを設定しないでください。
- また , 上記命令列に対して , ステップ実行を行わないでください。
572
付録 F 使用上の注意
● PS レジスタに関する注意事項
一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ
使用時に割込み処理ルーチンでブレークしたり , PS フラグの表示内容が更新されたり
する場合があります。
いずれの場合も , EIT から復帰後以降に , 正しく再処理を行うように設計されています
ので , EIT 前後の動作は仕様どおりの処理を行います。
• DIV0U/DIV0S 命令の直前の命令で , (a) ユーザ割込み・NMI を受け付けた場合 , (b)
ステップ実行を行った場合 , (c) データイベントまたはエミュレータメニューにてブ
レークした場合 , 以下の動作を行う場合があります。
(1) D0, D1 フラグが , 先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。
(3) EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0/D1 フラグが (1) と同じ値に
更新されます。
• ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために OR CCR,
ST ILM, MOV Ri, PS の各命令が実行されると , 以下の動作を行います。
(1) PS レジスタが , 先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI) を実行します。
(3) EITから復帰後, 上記命令が実行され, PSレジスタが(1)と同じ値に更新されます。
● ウォッチドッグタイマ機能について
本品種が備えているウォッチドッグタイマ機能は , プログラムが一定時間内にリセッ
ト延期動作を行うことを監視し , プログラムの暴走によりリセット延期動作が行われ
なかったときに , CPU をリセットするための機能です。そのため , いったんウォッチ
ドッグタイマ機能を有効にすると , リセットするまで動作を続けます。
例外として , CPU のプログラム実行が停止する条件では自動的にリセット延期を行い
ます。この例外にあてはまる条件については ,「3.11.8 クロック制御部が持つ周辺回路
■タイムベースカウンタ ●ウォッチドッグタイマ」のウォッチドッグタイマの一時停
止 ( 自動発生延期 ) の項を参照してください。
573
付録
■ デバッグ関連の注意事項
● RETI 命令のステップ実行
ステップ実行する際 , 割込みが頻繁に発生する環境下では , RETI をステップ実行後に
該当割込み処理ルーチンだけを繰り返して実行します。その結果 , メインルーチンや割
込みレベルの低いプログラムの実行が行われなくなります。
回避のために , RETI 命令をステップ実行しないでください。
または , 該当割込みルーチンのデバッグが不要になった段階で , 該当割込みを禁止して
デバッグを行ってください。
● オペランドブレーク
システムスタックポインタのアドレスを含む領域に対するアクセスを データイベント
ブレークの対象に設定しないでください。
● フラッシュメモリの未使用領域実行
フラッシュメモリの未使用領域 ( データが "FFFFH") を誤って実行してしまうと , ブ
レークを受け付けない状態になってしまいます。これを回避するために , デバッガの
コードイベントのアドレスマスク機能を使用して , 未使用領域の命令アクセス時にブ
レークさせることを推奨致します。
● パワーオンデバッグ
パワーオンデバッグで電源をオフにするときは, 次の3条件をすべて満たす状態で行っ
てください。
(1) ユーザ電源が 0.9Vcc から 0.5Vcc まで低下する時間が 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)
RETI
574
; B00H は DSU のブレーク要因レジスタのアドレス
; ブレーク要因レジスタをクリア
索引
Numerics
16/8 ビット
FR-CPU プログラミングモード
(16/8 ビット , 読出し / 書込み ) ....................514
16 ビット
16 ビットアウトプットコンペア
タイミング ......................................................288
16 ビットアウトプットコンペアとフリーラン
タイマの動作について ..................................289
16 ビットアウトプットコンペアの使用上の
注意 ..................................................................310
16 ビットアウトプットコンペアの動作
( セット / リセットモード ,MOD1x=1)
...........................................................................287
16 ビットアウトプットコンペアの動作
( 反転モード ,MOD1x=0) ...............................284
16 ビットアウトプットコンペアの
プログラム例 ..................................................313
16 ビットアウトプットコンペアの
レジスタ ..........................................................220
16 ビットアウトプットコンペア用フリーラン
タイマの選択 ..................................................283
16 ビットアウトプットコンペア割込み ............273
16 ビットインプットキャプチャ
入力タイミング ..............................................295
16 ビットインプットキャプチャの使用上の注意
..........................................................................310
16 ビットインプットキャプチャの動作 ............295
16 ビットインプットキャプチャの
ブロックダイヤグラム ..................................213
16 ビットインプットキャプチャのレジスタ
..........................................................................221
16 ビットインプットキャプチャ用フリーラン
タイマの選択 ..................................................294
16 ビットインプットキャプチャ割込み ............273
16 ビットデッドタイマ制御レジスタ , 上位
(DTCR0) ...........................................................256
16 ビットデッドタイマ制御レジスタ , 上位
(DTCR2) ...........................................................262
16 ビットデッドタイマレジスタ (TMRRH0 ∼
TMRRH2,TMRRL0 ∼ TMRRL2) ..................255
16 ビットフリーランタイマの使用上の注意
..........................................................................310
16 ビットフリーランタイマのプログラム例
..........................................................................312
16 ビットフリーランタイマのレジスタ ............218
16 ビットフリーランタイマ割込み ....................272
32 ビット←→ 16 ビットバスコンバータ ............28
TMRLR レジスタ (16 ビットリロードレジスタ )
..........................................................................155
TMR レジスタ (16 ビットタイマレジスタ )
..........................................................................155
16 ビットデッドタイマ制御レジスタ
16 ビットデッドタイマ制御レジスタ , 下位
(DTCR1) ...........................................................259
2 サイクル転送
ステップ / ブロック転送 2 サイクル転送
..........................................................................487
2 サイクル転送時のデータの動き .....................499
32/16/8 ビット
FR-CPU ROM モード
(32/16/8 ビット , 読出しのみ ) ...................... 513
32 ビット
32 ビット←→ 16 ビットバスコンバータ ........... 28
8/10 ビット
8/10 ビット A/D コンバータ使用上の注意
..........................................................................443
8/10 ビット A/D コンバータの概要 ...................420
8/10 ビット A/D コンバータの端子 ...................424
8/10 ビット A/D コンバータの端子の
ブロックダイヤグラム ..........................112, 425
8/10 ビット A/D コンバータの
ブロックダイヤグラム ..................................421
8/10 ビット A/D コンバータのレジスタ一覧
..........................................................................426
8/10 ビット A/D コンバータの割込み ............... 437
8 ビット
8 ビット PPG ch.0,ch.2,ch.4,ch.6 の
ブロックダイヤグラム ..................................171
8 ビット PPG ch.1,ch.5 のブロックダイヤグラム
..........................................................................172
8 ビット PPG ch.3,ch.7 のブロックダイヤグラム
..........................................................................173
MB91F267A/MB91F267NA/MB91267NA/MB91267A
MB91F267A/MB91F267NA/MB91267NA/
MB91267A のメモリマップ ............................ 25
575
A
A/D
A/D 起動 .................................................................308
フリーランタイマ 0 による A/D 起動 ................282
A/D 起動コンペア
A/D 起動コンペアのブロックダイヤグラム
..........................................................................215
A/D 起動コンペアのレジスタ .............................223
A/D コンバータ
8/10 ビット A/D コンバータ使用上の注意
..........................................................................443
8/10 ビット A/D コンバータの概要 ....................420
8/10 ビット A/D コンバータの端子 ....................424
8/10 ビット A/D コンバータの端子の
ブロックダイヤグラム ..........................112, 425
8/10 ビット A/D コンバータの
ブロックダイヤグラム ..................................421
8/10 ビット A/D コンバータのレジスタ一覧
..........................................................................426
8/10 ビット A/D コンバータの割込み ................437
A/D コンペア
A/D コンペア起動許可 .........................................308
A/D コンペア起動モード .....................................308
A/D 制御ステータスレジスタ
A/D 制御ステータスレジスタ
(ADCS:ADCS1,ADCS2) ..................................432
A/D チャネル制御レジスタ
A/D チャネル制御レジスタ
(ADCH:ADCH1,ADCH2) ................................427
A/D データレジスタ
A/D データレジスタ
(ADCD:ADCD10,ADCD11,ADCD20,
ADCD21) ..........................................................435
A/D トリガ制御レジスタ
A/D トリガ制御レジスタ (ADTRGC) .................233
A/D 変換
A/D 変換データ保護機能 .....................................442
A/D モード設定レジスタ
A/D モード設定レジスタ
(ADMD:ADMD1,ADMD2) .............................429
ADCD
A/D データレジスタ
(ADCD:ADCD10,ADCD11,ADCD20,
ADCD21) ..........................................................435
ADCH
A/D チャネル制御レジスタ
(ADCH:ADCH1,ADCH2) ................................427
ADCOMP
コンペアレジスタ 1,2
(ADCOMP1,ADCOMP2) ................................268
ADCOMPC
制御レジスタ 1,2
(ADCOMPC1,ADCOMPC2) ...........................269
ADCS
A/D 制御ステータスレジスタ
(ADCS:ADCS1,ADCS2) ..................................432
ADMD
A/D モード設定レジスタ
(ADMD:ADMD1,ADMD2) .............................429
ADTRGC
A/D トリガ制御レジスタ (ADTRGC) .................233
576
AF200
AF200 フラッシュマイコンプログラマシステム
構成 ( 横河ディジタルコンピュータ製 )
..........................................................................533
AICR
Analog Input Control Register
(AICR:AICR1,AICR2) .....................................113
アナログ入力制御レジスタ
(AICR:AICR1,AICR2) .....................................436
Analog Input Control Register
Analog Input Control Register
(AICR:AICR1,AICR2) .....................................113
C
CAN
CAN クロックプリスケーラ設定 .......................417
Cancel Request
ホールドリクエスト取下げ要求
(Hold Request Cancel Request) ........................ 126
CAN_TX
端子 CAN_TX のソフトウェア制御 ...................413
CAN コントローラ
CAN コントローラ ............................................... 345
C-CAN
C-CAN の特長 ....................................................... 344
CCR
CCR (Condition Code Register) ............................... 33
CLKB
CPU クロック (CLKB) ...........................................75
CLKP
周辺クロック (CLKP) ............................................ 75
CLKR
CLKR : クロックソース制御レジスタ ................. 87
CLKT
外部バスクロック (CLKT) ....................................75
Condition Code Register
CCR (Condition Code Register) ............................... 33
CPCLRBH
コンペアクリアバッファレジスタ
(CPCLRBH0 ∼ CPCLRBH2,CPCLRBL0 ∼
CPCLRBL2) ..................................................... 224
CPCLRBL
コンペアクリアバッファレジスタ
(CPCLRBH0 ∼ CPCLRBH2,CPCLRBL0 ∼
CPCLRBL2) ..................................................... 224
CPCLRH
コンペアクリアレジスタ
(CPCLRH0 ∼ CPCLRH2,CPCLRL0 ∼
CPCLRL2) ........................................................ 225
CPCLRL
コンペアクリアレジスタ
(CPCLRH0 ∼ CPCLRH2,CPCLRL0 ∼
CPCLRL2) ........................................................ 225
CPU
CPU ........................................................................... 28
CPU クロック (CLKB) ...........................................75
CPU 制御 ................................................................ 491
FR-CPU ROM モード
(32/16/8 ビット , 読出しのみ ) ...................... 513
FR-CPU プログラミングモード
(16/8 ビット , 読出し / 書込み ) .................... 514
各 CPU ステートにおける端子状態 ...................548
CPU インタフェース
CPU インタフェース ............................................345
CTBR
CTBR : タイムベースカウンタクリア
レジスタ ............................................................86
C コンパイラ
C コンパイラ (fcc911) ..........................................550
D
Data Direction Register
Data Direction Register
(DDR: DDR0 ∼ DDR5,DDRG) ......................107
DDR
Data Direction Register
(DDR: DDR0 ∼ DDR5,DDRG) ......................107
DDRG
Data Direction Register
(DDR: DDR0 ∼ DDR5,DDRG) ......................107
DIVR
DIVR0: 基本クロック分周設定レジスタ 0 ..........89
DIVR1: 基本クロック分周設定レジスタ 1 ..........91
DMA
DMA による周辺割込みクリア ..........................492
DMAC
DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 DMAC 全体制御
レジスタ [DMACR] ........................................481
DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 コントロール /
ステータスレジスタ A[DMACA:DMACA0 ∼
DMACA4] ........................................................469
DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 コントロール /
ステータスレジスタ B[DMACB:DMACB0 ∼
DMACB4] ........................................................473
DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 転送元 / 転送先
アドレス設定レジスタ
[(DMASA/DMADA):DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4] .................................479
DMAC 割込み制御 ................................................494
DMACR
DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 DMAC 全体制御
レジスタ [DMACR] ........................................481
DMAC 全体制御レジスタ
DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 DMAC 全体制御
レジスタ [DMACR] ........................................481
DMADA
DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 転送元 / 転送先
アドレス設定レジスタ
[(DMASA/DMADA):DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4] .................................479
DMASA
DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 転送元 / 転送先
アドレス設定レジスタ
[(DMASA/DMADA):DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4] .................................479
DMA 転送
スリープ中の DMA 転送 .....................................495
DSP-CSR
DSP コントロール / ステータスレジスタ
(DSP-CSR) .......................................................451
DSP-LY
DSP 遅延レジスタ (DSP-LY) ...............................455
DSP-OT
DSP 変数モニタレジスタ
(DSP-OT0 ∼ DSP-OT7) ................................. 456
DSP-PC
DSP プログラム・カウンタ (DSP-PC) ............... 454
DSP コントロール / ステータスレジスタ
DSP コントロール / ステータスレジスタ
(DSP-CSR) ....................................................... 451
DSP 遅延レジスタ
DSP 遅延レジスタ (DSP-LY) ..............................455
DSP 変数モニタレジスタ
DSP 変数モニタレジスタ (DSP-OT0 ∼ DSP-OT7)
........................................................................... 456
DTCR
16 ビットデッドタイマ制御レジスタ , 下位
(DTCR1) ...........................................................259
16 ビットデッドタイマ制御レジスタ , 上位
(DTCR0) ...........................................................256
16 ビットデッドタイマ制御レジスタ , 上位
(DTCR2) ...........................................................262
DTTI
DTTI 端子入力の動作 .......................................... 306
DTTI 端子ノイズキャンセル機能 ...................... 307
DTTI 端子割込み ..................................................307
波形制御レジスタ 2 (SIGCR2) の DTTI ビットの
動作 .................................................................. 307
E
EIT
EIT からの復帰 ....................................................... 45
EIT の動作 ...............................................................55
EIT ベクタテーブル ...............................................50
EIT 要因 ................................................................... 45
EIT 要因の優先度 ................................................... 53
多重 EIT 処理 .......................................................... 53
eml911
デバッガ (sim911,eml911,mon911) ...................... 556
F
fasm911
アセンブラ (fasm911) ...........................................553
fcc911
C コンパイラ (fcc911) .......................................... 550
FIFO バッファ
FIFO バッファからの読出し ............................... 404
FIFO バッファによるメッセージ受信 ............... 403
FIFO バッファの構成 ...........................................403
FLCR
フラッシュメモリステータスレジスタ (FLCR)
..........................................................................509
flnk911
リンカ (flnk911) ....................................................555
FLWC
フラッシュウェイトレジスタ (FLWC) ..............511
FR-CPU
FR-CPU ROM モード
(32/16/8 ビット , 読出しのみ ) ...................... 513
FR-CPU プログラミングモード
(16/8 ビット , 読出し / 書込み ) .................... 514
577
FSR
フリーランタイマセレクタレジスタ
(FSR0 ∼ FSR2) ...............................................270
G
GATE
RTO0 ∼ RTO5 と GATE の出力状態 .................296
GATEC
GATE 機能制御レジスタ (GATEC) ....................180
GATE 機能制御レジスタ
GATE 機能制御レジスタ (GATEC) ....................180
H
Hold Request
ホールドリクエスト取下げ要求
(Hold Request Cancel Request) ........................126
Hold Request Cancel Level register
Hold Request Cancel Level register (HRCL)
..........................................................................121
HRCL
Hold Request Cancel Level register (HRCL)
..........................................................................121
HRCR
ホールドリクエスト取下げ要求機能 (HRCR) の
使用例 ..............................................................127
I
I/O ポート
I/O ポートのモード ..............................................105
I/O マップ
I/O マップ ..............................................................536
ICR
ICR (Interrupt Control Register) ...............................48
Interrupt Control Register(ICR) ..............................120
ICSH
インプットキャプチャ状態制御レジスタ
(ch.2,ch.3), 上位 (ICSH23) ..............................247
ICSL
インプットキャプチャ状態制御レジスタ
(ch.2,ch.3), 下位 (ICSL23) ...............................249
ILM
ILM .....................................................................35, 47
INIT
INIT 端子入力 ( 設定初期化リセット端子 )
............................................................................64
設定初期化リセット (INIT) ...................................63
設定初期化リセット (INIT) 解除シーケンス
............................................................................66
Interrupt Control Register
ICR (Interrupt Control Register) ...............................48
Interrupt Control Register(ICR) ..............................120
IPCPH
インプットキャプチャデータレジスタ
(IPCPH0 ∼ IPCPH3,IPCPL0 ∼ IPCPL3)
..........................................................................246
578
IPCPL
インプットキャプチャデータレジスタ
(IPCPH0 ∼ IPCPH3,IPCPL0 ∼ IPCPL3)
........................................................................... 246
I フラグ
I フラグ .................................................................... 47
J
JMP
JMP 命令 ( 分岐命令 ) .......................................... 464
L
LQFP
LQFP-64 (MB91F267A/MB91F267NA/MB91267A/
MB91267NA) ....................................................... 5
M
MAC
MAC 命令 .............................................................. 460
MB91267A
LQFP-64 (MB91F267A/MB91F267NA/MB91267A/
MB91267NA) ....................................................... 5
MB91267NA
LQFP-64 (MB91F267A/MB91F267NA/MB91267A/
MB91267NA) ....................................................... 5
MB91F267A
LQFP-64 (MB91F267A/MB91F267NA/MB91267A/
MB91267NA) ....................................................... 5
MB91F267NA
LQFP-64 (MB91F267A/MB91F267NA/MB91267A/
MB91267NA) ....................................................... 5
MOD
16 ビットアウトプットコンペアの動作
( セット / リセットモード ,MOD1x=1)
........................................................................... 287
16 ビットアウトプットコンペアの動作
( 反転モード ,MOD1x=0) ............................... 284
mon911
デバッガ (sim911,eml911,mon911) ...................... 556
Multiply & Divide register
乗除算レジスタ (Multiply & Divide register)
............................................................................37
N
NMI
NMI (Non Maskable Interrupt) ............................... 125
割込み・NMI に対するレベルマスク .................. 47
Non Maskable Interrupt
NMI (Non Maskable Interrupt) ............................... 125
O
OCCPBH
アウトプットコンペアバッファレジスタ
(OCCPBH0 ∼ OCCPBH5,OCCPBL0 ∼
OCCPBL5) ....................................................... 235
OCCPBL
アウトプットコンペアバッファレジスタ
(OCCPBH0 ∼ OCCPBH5,OCCPBL0 ∼
OCCPBL5) .......................................................235
OCCPH
アウトプットコンペアレジスタ
(OCCPH0 ∼ OCCPH5,OCCPL0 ∼ OCCPL5)
..........................................................................236
OCCPL
アウトプットコンペアレジスタ
(OCCPH0 ∼ OCCPH5,OCCPL0 ∼ OCCPL5)
..........................................................................236
OCMOD
コンペアモード制御レジスタ (OCMOD)
..........................................................................244
OCSH
コンペア制御レジスタ , 上位
(OCSH1,OCSH3,OCSH5) ................................237
OCSL
コンペア制御レジスタ , 下位
(OCSL0,OCSL2,OCSL4) .................................241
P
PC
PC (Program Counter) ..............................................36
PCR
Pull-up Resistance Control Register
(PCR: PCR0 ∼ PCR4,PCRG) .........................108
PCRG
Pull-up Resistance Control Register
(PCR: PCR0 ∼ PCR4,PCRG) .........................108
PDIVR
分周比制御レジスタ (PDIVR:PDIVR0) ..............196
PDR
Port Data Register
(PDR: PDR0 ∼ PDR5,PDRG) .........................106
PDRG
Port Data Register
(PDR: PDR0 ∼ PDR5,PDRG) .........................106
PFR
Port Function Register (PFR:PFR0,PFR1,PTFR0)
..........................................................................109
PICSH
PPG 出力制御レジスタ , 上位 (PICSH01) ..........251
PICSL
インプットキャプチャ状態制御レジスタ
(ch.0,ch.1), 下位 (PICSL01) .............................253
PLL
PLL 逓倍率 ...............................................................72
PLL 逓倍率変更後の待ち時間 ..............................73
PLL 動作許可 ...........................................................72
PLL 動作許可後の待ち時間 ..................................73
Port Data Register
Port Data Register
(PDR: PDR0 ∼ PDR5,PDRG) .........................106
Port Function Register
Port Function Register (PFR:PFR0,PFR1,PTFR0)
..........................................................................109
PPG
8 ビット PPG ch.0,ch.2,ch.4,ch.6 の
ブロックダイヤグラム ..................................171
8 ビット PPG ch.1,ch.5 のブロックダイヤグラム
..........................................................................172
8 ビット PPG ch.3,ch.7 のブロックダイヤグラム
..........................................................................173
PPG0 出力制御 ......................................................298
PPG の機能 ............................................................ 168
ゲートトリガされた PPG0 出力 .........................298
PPGCn レジスタ
PPGCn レジスタ (PPGn 動作モード制御レジスタ )
n=0,1,2,3,4,5,6,7 ............................................... 175
PPGn 動作モード制御レジスタ
PPGCn レジスタ (PPGn 動作モード制御レジスタ )
n=0,1,2,3,4,5,6,7 ............................................... 175
PPG 起動レジスタ
PPG 起動レジスタ (TRG) .................................... 179
PPG 出力制御レジスタ
PPG 出力制御レジスタ , 上位 (PICSH01)
..........................................................................251
PRLH
PRLL/PRLH レジスタ ( リロードレジスタ :
PRLL0 ∼ PRLL7/PRLH0 ∼ PRLH7) ............178
PRLL
PRLL/PRLH レジスタ ( リロードレジスタ :
PRLL0 ∼ PRLL7/PRLH0 ∼ PRLH7) ............178
Program Counter
PC (Program Counter) .............................................. 36
Program Status
PS(Program Status) ................................................... 32
PS
PS(Program Status) ................................................... 32
PTFR
Port Function Register (PFR:PFR0,PFR1,PTFR0)
..........................................................................109
Pull-up Resistance Control Register
Pull-up Resistance Control Register
(PCR: PCR0 ∼ PCR4,PCRG) .........................108
PWC
PWC の機能 ...........................................................188
PWC のブロックダイヤグラム ........................... 189
PWCR
PWC データバッファレジスタ (PWCR:PWCR0)
..........................................................................195
PWCSR
PWC コントロール / ステータスレジスタ
(PWCSR:PWCSR0) .........................................190
PWC コントロール / ステータスレジスタ
PWC コントロール / ステータスレジスタ
(PWCSR:PWCSR0) .........................................190
PWC データバッファレジスタ
PWC データバッファレジスタ
(PWCR:PWCR0) .............................................. 195
R
RAM
メッセージ RAM ..................................................345
メッセージ RAM とのデータ送受信 ................. 396
Return Pointer
RP (Return Pointer) ..................................................36
REVC
出力反転レジスタ (REVC) ..................................179
579
ROM
FR-CPU ROM モード
(32/16/8 ビット , 読出しのみ ) ......................513
ROM ライタ
ROM ライタによる書込み ..................................503
RP
RP (Return Pointer) ...................................................36
RSRR
RSRR : リセット要因レジスタ / ウォッチドッグ
タイマ制御レジスタ ........................................79
RST
動作初期化リセット (RST) ....................................63
動作初期化リセット (RST) 解除シーケンス
............................................................................66
RTO
RTO0 ∼ RTO5 と GATE の出力状態 .................296
S
SCR
SCR (System Condition Code Register) ...................34
シリアルコントロールレジスタ
(SCR:SCR0,SCR1) ...........................................327
SIDR
シリアルインプットデータレジスタ
(SIDR:SIDR0,SIDR1)/
シリアルアウトプットデータレジスタ
(SODR:SODR0, SODR1) .................................329
SIGCR
波形制御レジスタ 1 (SIGCR1) ............................265
波形制御レジスタ 2 (SIGCR2) ............................267
波形制御レジスタ 2 (SIGCR2) の DTTI ビットの
動作 ..................................................................307
sim911
デバッガ (sim911,eml911,mon911) ......................556
SMR
シリアルモードレジスタ (SMR:SMR0,SMR1)
..........................................................................325
SODR
シリアルインプットデータレジスタ
(SIDR:SIDR0,SIDR1)/
シリアルアウトプットデータレジスタ
(SODR:SODR0, SODR1) .................................329
SRST
STCR:SRST ビット書込み
( ソフトウェアリセット ) ................................64
SSP
SSP (System Stack Pointer) ................................36, 49
SSR
シリアルステータスレジスタ
(SSR:SSR0,SSR1) ............................................330
STCR
STCR : スタンバイ制御レジスタ .........................81
STCR:SRST ビット書込み
( ソフトウェアリセット ) ................................64
STOP 状態
STOP 状態からの復帰動作について ..................137
外部割込みを使用した STOP 状態からの復帰時に
おける注意事項 ..............................................136
STR
STR 命令 ( 転送命令 ) ...........................................462
580
System Stack Pointer
SSP (System Stack Pointer) ................................ 36, 49
System Condition Code Register
SCR (System Condition Code Register) ................... 34
T
Table Base Register
TBR (Table Base Register) .................................36, 49
TBCR
TBCR : タイムベースカウンタ制御レジスタ
............................................................................84
TBR
TBR (Table Base Register) .................................36, 49
TCCSH
タイマ状態制御レジスタ , 上位
(TCCSH0 ∼ TCCSH2) .................................... 227
TCCSL
タイマ制御レジスタ , 下位
(TCCSL0 ∼ TCCSL2) .....................................230
TCDTH
タイマデータレジスタ
(TCDTH0 ∼ TCDTH2,TCDTL0 ∼ TCDTL2)
..........................................................................226
TCDTL
タイマデータレジスタ
(TCDTH0 ∼ TCDTH2,TCDTL0 ∼ TCDTL2)
..........................................................................226
TMCSR
コントロールステータスレジスタ
(TMCSR:TMCSR0 ∼ TMCSR2) .................... 152
TMRLR レジスタ
TMRLR レジスタ
(16 ビットリロードレジスタ ) .....................155
TMRRH
16 ビットデッドタイマレジスタ
(TMRRH0 ∼ TMRRH2,TMRRL0 ∼ TMRRL2)
..........................................................................255
TMRRL
16 ビットデッドタイマレジスタ
(TMRRH0 ∼ TMRRH2,TMRRL0 ∼ TMRRL2)
..........................................................................255
TMR レジスタ
TMR レジスタ (16 ビットタイマレジスタ )
........................................................................... 155
TRG
PPG 起動レジスタ (TRG) .................................... 179
U
UART
UART のクロック選択 ........................................ 333
UART の特長 .........................................................322
User Stack Pointer
USP (User Stack Pointer) .........................................37
USP
USP (User Stack Pointer) .........................................37
あ
アーキテクチャ
内部アーキテクチャ ...............................................27
アウトプットコンペア
16 ビットアウトプットコンペアとフリーラン
タイマの動作について ..................................289
16 ビットアウトプットコンペアの使用上の注意
..........................................................................310
16 ビットアウトプットコンペアの動作
( セット / リセットモード ,MOD1x=1)
..........................................................................287
16 ビットアウトプットコンペアの動作
( 反転モード ,MOD1x=0) ...............................284
16 ビットアウトプットコンペアのプログラム例
..........................................................................313
16 ビットアウトプットコンペアのレジスタ
..........................................................................220
16 ビットアウトプットコンペア用フリーラン
タイマの選択 ..................................................283
16 ビットアウトプットコンペア割込み ............273
アウトプットコンペアタイミング
16 ビットアウトプットコンペアタイミング
..........................................................................288
アウトプットコンペアバッファレジスタ
アウトプットコンペアバッファレジスタ
(OCCPBH0 ∼ OCCPBH5,OCCPBL0 ∼
OCCPBL5) .......................................................235
アウトプットコンペアレジスタ
アウトプットコンペアレジスタ
(OCCPH0 ∼ OCCPH5,OCCPL0 ∼ OCCPL5)
..........................................................................236
アセンブラ
アセンブラ (fasm911) ...........................................553
アドレッシング
ダイレクトアドレッシング領域 .....................24, 40
アドレッシングモード
アドレッシングモード .........................................489
アナログ入力制御レジスタ
アナログ入力制御レジスタ (AICR:AICR1,AICR2)
..........................................................................436
アルゴリズム
自動アルゴリズム実行状態 .................................502
アンダフロー
アンダフロー動作 .................................................157
い
インタフェース
CPU インタフェース ............................................345
メッセージインタフェースレジスタ一覧
..........................................................................348
インプットキャプチャ
16 ビットインプットキャプチャ入力タイミング
..........................................................................295
16 ビットインプットキャプチャの使用上の注意
..........................................................................310
16 ビットインプットキャプチャの動作 ............295
16 ビットインプットキャプチャの
ブロックダイヤグラム ..................................213
16 ビットインプットキャプチャのレジスタ
..........................................................................221
16 ビットインプットキャプチャ用フリーラン
タイマの選択 ..................................................294
16 ビットインプットキャプチャ割込み
..........................................................................273
インプットキャプチャ状態制御レジスタ
インプットキャプチャ状態制御レジスタ
(ch.0,ch.1), 下位 (PICSL01) ............................253
インプットキャプチャ状態制御レジスタ
(ch.2,ch.3), 下位 (ICSL23) ............................... 249
インプットキャプチャ状態制御レジスタ
(ch.2,ch.3), 上位 (ICSH23) ..............................247
インプットキャプチャデータレジスタ
インプットキャプチャデータレジスタ
(IPCPH0 ∼ IPCPH3,
IPCPL0 ∼ IPCPL3) .........................................246
う
ウォッチドッグタイマ制御レジスタ
RSRR : リセット要因レジスタ / ウォッチドッグ
タイマ制御レジスタ ........................................ 79
ウォッチドッグリセット
ウォッチドッグリセット ...................................... 65
え
エラー
エラーによる停止 ................................................494
演算機能
演算機能 ................................................................ 458
演算結果
演算結果の転送処理 ............................................ 458
お
応用例
応用例 ....................................................................339
オーダリング
バイトオーダリング .............................................. 38
ビットオーダリング .............................................. 38
か
外形寸法図
パッケージ外形寸法図 ............................................ 6
解除シーケンス
設定初期化リセット (INIT) 解除シーケンス
............................................................................66
動作初期化リセット (RST) 解除シーケンス
............................................................................66
外部
外部バスクロック (CLKT) ....................................75
外部カウントクロック
選択された外部カウントクロック .................... 281
外部割込み
外部割込みを使用した STOP 状態からの復帰時に
おける注意事項 .............................................. 136
カウンタ
カウンタのクリア ................................................200
カウンタの動作状態 ............................................ 159
581
カウントクロック
カウントクロックの選択 .....................................198
選択された外部カウントクロック .....................281
カスケードモード
カスケードモード .................................................320
き
基本クロック分周設定レジスタ
DIVR0: 基本クロック分周設定レジスタ 0
.............................................................................89
DIVR1: 基本クロック分周設定レジスタ 1
............................................................................91
基本構成
シリアル書込み基本構成 .....................................530
基本プログラミングモデル
基本プログラミングモデル ...................................31
共通事項
共通事項 .................................................................572
く
クロック
CPU クロック (CLKB) ............................................75
UART のクロック選択 .........................................333
クロック切り替え手順 .........................................416
クロック分周 ...........................................................77
原発振クロック周波数について .........................533
周辺クロック (CLKP) .............................................75
内部クロック動作 .................................................156
クロック切り替え
クロック切り替え手順 .........................................416
クロック生成制御部
クロック生成制御部のブロックダイヤグラム
............................................................................78
クロックソース制御レジスタ
CLKR : クロックソース制御レジスタ .................87
クロック同期
クロック同期モード .............................................335
クロックプリスケーラ
CAN クロックプリスケーラ設定 .......................417
クロックプリスケーラレジスタ
クロックプリスケーラレジスタ .........................351
け
ゲート機能
ゲート機能のブロックダイヤグラム .................174
ゲートトリガ
ゲートトリガされた PPG0 出力 .........................298
原発振
原発振クロック周波数について .........................533
こ
コマンドシーケンス
コマンドシーケンス .............................................515
コントロール / ステータスレジスタ
DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 コントロール /
ステータスレジスタ A[DMACA:DMACA0 ∼
DMACA4] ........................................................469
582
DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 コントロール /
ステータスレジスタ B[DMACB:DMACB0 ∼
DMACB4] ........................................................ 473
コントロールステータスレジスタ
コントロールステータスレジスタ
(TMCSR:TMCSR0 ∼ TMCSR2) .................... 152
コンパイラ
C コンパイラ (fcc911) .......................................... 550
コンペア
A/D コンペア起動許可 ........................................ 308
A/D コンペア起動モード .................................... 308
コンペアクリアバッファ
コンペアクリアバッファ .................................... 277
コンペアクリアバッファレジスタ
コンペアクリアバッファレジスタ
(CPCLRBH0 ∼ CPCLRBH2,CPCLRBL0 ∼
CPCLRBL2) ..................................................... 224
コンペアクリアレジスタ
コンペアクリアレジスタ
(CPCLRH0 ∼ CPCLRH2,CPCLRL0 ∼
CPCLRL2) ........................................................ 225
コンペア制御レジスタ
コンペア制御レジスタ , 下位
(OCSL0,OCSL2,OCSL4) ................................. 241
コンペア制御レジスタ , 上位
(OCSH1,OCSH3,OCSH5) ............................... 237
コンペアモード制御レジスタ
コンペアモード制御レジスタ (OCMOD)
..........................................................................244
コンペアレジスタ
コンペアレジスタ 1,2 (ADCOMP1,ADCOMP2)
..........................................................................268
さ
サイレントモード
サイレントモード ................................................410
サイレントモードとループバックモードの
結合 .................................................................. 412
し
シーケンス
コマンドシーケンス ............................................ 515
設定初期化リセット (INIT) 解除シーケンス
............................................................................66
転送シーケンスの選択 ........................................ 486
動作初期化リセット (RST) 解除シーケンス
............................................................................66
自動アルゴリズム
自動アルゴリズム実行状態 ................................502
周辺クロック
周辺クロック (CLKP) ............................................ 75
周辺割込み
DMA による周辺割込みクリア .......................... 492
受信
FIFO バッファによるメッセージ受信 ............... 403
受信メッセージの処理 ........................................ 402
データフレーム受信 ............................................ 400
受信メッセージ
受信メッセージの受容フィルタ ........................ 400
受信メッセージオブジェクト
受信メッセージオブジェクトの設定 .................401
受信優先度
受信優先度 .............................................................400
出力状態
RTO0 ∼ RTO5 と GATE の出力状態 .................296
出力制御
PPG0 出力制御 ......................................................298
出力端子
出力端子機能 .........................................................158
出力反転レジスタ
出力反転レジスタ (REVC) ..................................179
主要機能
主要機能 .................................................................116
受容フィルタ
受信メッセージの受容フィルタ .........................400
乗除算レジスタ
乗除算レジスタ (Multiply & Divide register)
............................................................................37
シリアルアウトプットデータレジスタ
シリアルインプットデータレジスタ
(SIDR:SIDR0,SIDR1)/
シリアルアウトプットデータレジスタ
(SODR:SODR0, SODR1) .................................329
シリアルインプットデータレジスタ
シリアルインプットデータレジスタ
(SIDR:SIDR0,SIDR1)/
シリアルアウトプットデータレジスタ
(SODR:SODR0, SODR1) .................................329
シリアルオンボード書込み
富士通標準シリアルオンボード書込みに使用する
端子 ..................................................................531
シリアル書込み
シリアル書込み基本構成 .....................................530
シリアル書込み接続例 .........................................532
シリアルコントロールレジスタ
シリアルコントロールレジスタ
(SCR:SCR0,SCR1) ...........................................327
シリアルステータスレジスタ
シリアルステータスレジスタ (SSR:SSR0,SSR1)
..........................................................................330
シリアルモードレジスタ
シリアルモードレジスタ (SMR:SMR0,SMR1)
..........................................................................325
す
スタック
割込みスタック .......................................................49
スタンバイ制御レジスタ
STCR : スタンバイ制御レジスタ .........................81
スタンバイモード
スタンバイモード ( ストップ / スリープ ) からの
復帰 ..................................................................126
ステップ / ブロック転送
ステップ / ブロック転送 2 サイクル転送 .........487
ストップ
スタンバイモード ( ストップ / スリープ ) からの
復帰 ..................................................................126
ストップモード
ストップモード復帰後の待ち時間 .......................74
スリープ
スタンバイモード ( ストップ / スリープ ) からの
復帰 .................................................................. 126
スリープ中の DMA 転送 .....................................495
せ
制御レジスタ
制御レジスタ 1,2
(ADCOMPC1,ADCOMPC2) ........................... 269
セクタ
フラッシュメモリのセクタ構成 ........................ 504
接続例
シリアル書込み接続例 ........................................ 532
設定初期化後
設定初期化後の待ち時間 ...................................... 73
設定初期化
INIT 端子入力 ( 設定初期化リセット端子 )
............................................................................64
設定初期化リセット (INIT) ................................... 63
設定初期化リセット (INIT) 解除シーケンス
............................................................................66
セット / リセットモード
16 ビットアウトプットコンペアの動作
( セット / リセットモード ,MOD1x=1)
..........................................................................287
セットタイミング
割込み発生およびフラグの
セットタイミング .......................................... 336
全体コントロールレジスタ
全体コントロールレジスタ ........................352, 353
全体コントロールレジスタ一覧 ........................ 347
そ
送受信
メッセージ RAM とのデータ送受信 ................. 396
送信
メッセージ送信 ....................................................398
送信メッセージオブジェクト
送信メッセージオブジェクトの更新 ................ 399
送信メッセージオブジェクトの設定 ................ 398
送信優先度
送信優先度 ............................................................ 398
ソースクロック
ソースクロックの選択 .......................................... 71
ソフトウェア
ソフトウェア要求 ................................................485
端子 CAN_TX のソフトウェア制御 ...................413
ソフトウェアリセット
STCR:SRST ビット書込み
( ソフトウェアリセット ) ............................... 64
た
退避
退避・復帰の処理 ................................................147
タイマ
タイマ割込み ........................................................ 278
タイマクリア
タイマクリア ........................................................ 276
583
タイマ状態制御レジスタ
タイマ状態制御レジスタ , 上位
(TCCSH0 ∼ TCCSH2) ....................................227
タイマ制御レジスタ
タイマ制御レジスタ , 下位 (TCCSL0 ∼ TCCSL2)
..........................................................................230
タイマデータレジスタ
タイマデータレジスタ (TCDTH0 ∼
TCDTH2,TCDTL0 ∼ TCDTL2) .....................226
タイマモード
タイマモード .........................................................276
タイマモードの動作 .............................................300
タイマレジスタ
TMR レジスタ (16 ビットタイマレジスタ )
..........................................................................155
タイミング
16 ビットインプットキャプチャ入力タイミング
..........................................................................295
タイミングジェネレータ
タイミングジェネレータの動作概要 .................165
タイムベースカウンタ
タイムベースカウンタ ...........................................93
タイムベースカウンタクリアレジスタ
CTBR : タイムベースカウンタクリアレジスタ
............................................................................86
タイムベースカウンタ制御レジスタ
TBCR : タイムベースカウンタ制御
レジスタ ............................................................84
ダイレクトアドレッシング
ダイレクトアドレッシング領域 .....................24, 40
多機能タイマ
多機能タイマの構成 .............................................208
多機能タイマの端子 .............................................217
多機能タイマの動作 .............................................275
多機能タイマのブロックダイヤグラム .............210
多重 EIT
多重 EIT 処理 ..........................................................53
端子
8/10 ビット A/D コンバータの端子の
ブロックダイヤグラム ..................................112
端子機能一覧 .............................................................7
端子状態
各 CPU ステートにおける端子状態 ...................548
単発変換
単発変換モードの動作 .........................................438
ち
遅延書込み
遅延書込み機能 .....................................................458
遅延スロット
遅延スロット付き動作 ...........................................42
遅延スロットなし動作 ...........................................44
チャネル
チャネル選択と制御 .............................................495
調歩同期
非同期 ( 調歩同期 ) モード ..................................334
つ
通常リセット
通常リセット動作 ...................................................69
584
て
停止変換
停止変換モードの動作 ........................................ 441
低消費電力モード
低消費電力モード ..................................................99
逓倍率
PLL 逓倍率 .............................................................. 72
逓倍率変更後
PLL 逓倍率変更後の待ち時間 ..............................73
データ
A/D 変換データ保護機能 .................................... 442
データフレーム
データフレーム受信 ............................................ 400
テストモード
テストモード設定 ................................................410
デッドタイマ制御レジスタ
16 ビットデッドタイマ制御レジスタ , 上位
(DTCR0) ...........................................................256
16 ビットデッドタイマ制御レジスタ , 上位
(DTCR2) ...........................................................262
デッドタイマレジスタ
16 ビットデッドタイマレジスタ (TMRRH0 ∼
TMRRH2,TMRRL0 ∼ TMRRL2) .................. 255
デッドタイムタイマモード
デッドタイムタイマモード時の動作 ................ 302
デバイス
デバイスの取扱いについて ..................................20
デバイス状態
デバイス状態と各遷移 .......................................... 96
デバッガ
デバッガ (sim911,eml911,mon911) ...................... 556
デバッグ
デバッグ関連の注意事項 .................................... 574
デュアルオペレーションフラッシュ
デュアルオペレーションフラッシュの特長
..........................................................................526
電源投入後
電源投入後の待ち時間 .......................................... 73
転送
スリープ中の DMA 転送 .....................................495
転送アドレス ........................................................ 484
転送シーケンスの選択 ........................................ 486
転送タイプ ............................................................ 483
転送要求の受付けと転送 .................................... 492
バースト 2 サイクル転送 .................................... 486
バースト転送 ........................................................ 498
ブロック転送 ........................................................ 497
転送回数
転送回数と転送終了 ............................................ 484
転送回数制御
転送回数制御 ........................................................ 490
転送終了
転送回数と転送終了 ............................................ 484
転送処理
演算結果の転送処理 ............................................ 458
転送命令
STR 命令 ( 転送命令 ) .......................................... 462
転送モード
転送モード ............................................................ 483
転送元 / 転送先アドレス設定レジスタ
DMAC-ch.0,ch.1,ch.2,ch.3,ch.4 転送元 / 転送先
アドレス設定レジスタ
[(DMASA/DMADA):DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4] .................................479
転送要求
転送要求の受付けと転送 .....................................492
と
同期
クロック同期モード .............................................335
同期リセット
同期リセット動作 ...................................................69
動作初期化
動作初期化リセット (RST) ....................................63
動作初期化リセット (RST) 解除シーケンス
............................................................................66
動作モード
動作モード ...............................................59, 333, 457
動作モードの選択 .................................................198
特長
特長 .........................................................2, 26, 45, 446
取下げ要求
ホールドリクエスト取下げ要求
(Hold Request Cancel Request) ........................126
ホールドリクエスト取下げ要求機能 (HRCR) の
使用例 ..............................................................127
な
内蔵周辺要求
内蔵周辺要求 .........................................................485
内部アーキテクチャ
内部アーキテクチャ ...............................................27
内部クロック
内部クロック動作 .................................................156
に
入出力回路形式
入出力回路形式 .......................................................15
入力タイミング
16 ビットインプットキャプチャ入力タイミング
..........................................................................295
の
ノイズキャンセル
DTTI 端子ノイズキャンセル機能 ......................307
は
バースト 2 サイクル転送
バースト 2 サイクル転送 .....................................486
バースト転送
バースト転送 .........................................................498
ハードウェア
ハードウェア構成 .........................................116, 466
ハードウェアシーケンスフラグ
ハードウェアシーケンスフラグ .........................520
ハードウェアシーケンスフラグの使用例
..........................................................................524
ハーバード
ハーバード←→プリンストンバスコンバータ
............................................................................29
バイトオーダリング
バイトオーダリング .............................................. 38
波形ジェネレータ
波形ジェネレータの使用上の注意 .................... 311
波形ジェネレータ割込み .................................... 274
波形制御レジスタ
波形制御レジスタ 1 (SIGCR1) ............................265
波形制御レジスタ 2 (SIGCR2) ............................267
波形制御レジスタ 2 (SIGCR2) の DTTI ビットの
動作 .................................................................. 307
バスクロック
外部バスクロック (CLKT) ....................................75
バスコンバータ
32 ビット←→ 16 ビットバスコンバータ ........... 28
バスモード
バスモード .............................................................. 59
パッケージ
パッケージ外形寸法図 ............................................ 6
発振安定待ち
発振安定待ち発生要因 .......................................... 67
発振安定待ち時間
発振安定待ち時間の選択 ...................................... 68
バッファ
FIFO バッファからの読出し ............................... 404
FIFO バッファによるメッセージ受信 ............... 403
FIFO バッファの構成 ...........................................403
パルス
パルス幅測定動作詳細 ........................................ 200
パルス幅測定の起動と停止 ................................199
パルス幅測定
パルス幅測定の起動と停止 ................................199
反転モード
16 ビットアウトプットコンペアの動作
( 反転モード ,MOD1x=0) ............................... 284
汎用レジスタ
汎用レジスタ .......................................................... 32
ひ
ビットオーダリング
ビットオーダリング .............................................. 38
非同期
非同期 ( 調歩同期 ) モード ..................................334
ふ
フィルタ
受信メッセージの受容フィルタ ........................ 400
富士通標準
富士通標準シリアルオンボード書込みに使用する
端子 .................................................................. 531
復帰
退避・復帰の処理 ................................................147
フラグ
I フラグ .................................................................... 47
割込み発生およびフラグのセットタイミング
..........................................................................336
585
フラッシュウェイトレジスタ
フラッシュウェイトレジスタ (FLWC) ..............511
フラッシュマイコンプログラマシステム
AF200 フラッシュマイコンプログラマシステム
構成 ( 横河ディジタルコンピュータ製 )
..........................................................................533
フラッシュメモリ
フラッシュメモリの概要 .....................................502
フラッシュメモリのセクタ構成 .........................504
フラッシュメモリのブロックダイヤグラム
..........................................................................503
フラッシュメモリのレジスタ一覧 .....................508
フラッシュメモリステータスレジスタ
フラッシュメモリステータスレジスタ (FLCR)
..........................................................................509
フリーランタイマ
16 ビットアウトプットコンペアとフリーラン
タイマの動作について ..................................289
16 ビットアウトプットコンペア用フリーラン
タイマの選択 ..................................................283
16 ビットインプットキャプチャ用フリーラン
タイマの選択 ..................................................294
16 ビットフリーランタイマの使用上の注意
..........................................................................310
16 ビットフリーランタイマのプログラム例
..........................................................................312
16 ビットフリーランタイマのレジスタ ............218
16 ビットフリーランタイマ割込み ....................272
フリーランタイマ 0 による A/D 起動 ................282
フリーランタイマセレクタ
フリーランタイマセレクタの
ブロックダイヤグラム ..................................216
フリーランタイマセレクタレジスタ
フリーランタイマセレクタレジスタ .................223
フリーランタイマセレクタレジスタ
(FSR0 ∼ FSR2) ...............................................270
プリスケーラレジスタ
プリスケーラレジスタ .........................................352
プリンストンバスコンバータ
ハーバード←→プリンストンバスコンバータ
............................................................................29
プログラミングモード
FR-CPU プログラミングモード
(16/8 ビット , 読出し / 書込み ) ....................514
プログラミングモデル
基本プログラミングモデル ...................................31
プログラム例
16 ビットアウトプットコンペアのプログラム例
..........................................................................313
16 ビットフリーランタイマのプログラム例
..........................................................................312
プログラム・カウンタ
DSP プログラム・カウンタ (DSP-PC) ...............454
ブロックサイズ
ブロックサイズ .....................................................488
ブロック図
ブロック図 .............................................................415
ブロックダイヤグラム
16 ビットインプットキャプチャの
ブロックダイヤグラム ..................................213
8/10 ビット A/D コンバータの端子の
ブロックダイヤグラム ..........................112, 425
586
8/10 ビット A/D コンバータの
ブロックダイヤグラム ..................................421
8 ビット PPG ch.0,ch.2,ch.4,ch.6 の
ブロックダイヤグラム ..................................171
8 ビット PPG ch.1,ch.5 のブロックダイヤグラム
..........................................................................172
8 ビット PPG ch.3,ch.7 のブロックダイヤグラム
..........................................................................173
A/D 起動コンペアのブロックダイヤグラム
..........................................................................215
PWC のブロックダイヤグラム ........................... 189
クロック生成制御部のブロックダイヤグラム
............................................................................78
ゲート機能のブロックダイヤグラム ................ 174
多機能タイマのブロックダイヤグラム ............210
フラッシュメモリのブロックダイヤグラム
..........................................................................503
フリーランタイマセレクタの
ブロックダイヤグラム ..................................216
ブロックダイヤグラム
.....................................4, 119, 131, 140, 142, 163,
316, 324, 448, 468
ポート基本ブロックダイヤグラム .................... 104
リロードタイマのブロックダイヤグラム
..........................................................................151
ブロック転送
ブロック転送 ........................................................ 497
分岐命令
JMP 命令 ( 分岐命令 ) .......................................... 464
分周
クロック分周 .......................................................... 77
分周比制御レジスタ
分周比制御レジスタ (PDIVR:PDIVR0) ..............196
へ
ベーシックモード
ベーシックモード ................................................412
ベクタテーブル
EIT ベクタテーブル ...............................................50
ベクタテーブル初期領域 ...................................... 41
変数モニタ
変数モニタ出力 ....................................................459
ほ
ポート
ポート基本ブロックダイヤグラム .................... 104
ホールドリクエスト
ホールドリクエスト取下げ要求
(Hold Request Cancel Request) ........................ 126
ホールドリクエスト取下げ要求機能 (HRCR) の
使用例 .............................................................. 127
ボーレート
ボーレートの計算 ................................................320
保護機能
A/D 変換データ保護機能 .................................... 442
ま
マスク
割込みマスク機能 .................................................279
待ち時間
PLL 逓倍率変更後の待ち時間 ..............................73
PLL 動作許可後の待ち時間 ..................................73
ストップモード復帰後の待ち時間 .......................74
設定初期化後の待ち時間 .......................................73
電源投入後の待ち時間 ...........................................73
め
命令
JMP 命令 ( 分岐命令 ) ...........................................464
MAC 命令 ...............................................................460
STR 命令 ( 転送命令 ) ...........................................462
命令一覧表 .............................................................557
命令概要 ...................................................................29
命令定義 .................................................................450
命令動作 .................................................................457
メッセージ
FIFO バッファによるメッセージ受信 ...............403
受信メッセージの受容フィルタ .........................400
受信メッセージの処理 .........................................402
メッセージ RAM ...................................................345
メッセージ RAM
メッセージ RAM とのデータ送受信 .................396
メッセージインタフェース
メッセージインタフェースレジスタ一覧
..........................................................................348
メッセージインタフェースレジスタ
メッセージインタフェースレジスタ .................352
メッセージオブジェクト
受信メッセージオブジェクトの設定 .................401
送信メッセージオブジェクトの更新 .................399
送信メッセージオブジェクトの設定 .................398
メッセージオブジェクト .....................................396
メッセージオブジェクトの機能 .........................379
メッセージオブジェクトの構成 .........................379
メッセージ送信
メッセージ送信 .....................................................398
メッセージハンドラ
メッセージハンドラ .............................................345
メッセージハンドラレジスタ一覧 .....................350
メッセージハンドラレジスタ
メッセージハンドラレジスタ .....................352, 385
メモリマップ
91F267A/MB91F267NA/MB91267NA/MB91267A
のメモリマップ ................................................25
メモリマップ ...........................................................40
も
モード
16 ビットアウトプットコンペアの動作
( セット / リセットモード ,MOD1x=1)
..........................................................................287
16 ビットアウトプットコンペアの動作
( 反転モード ,MOD1x=0) ...............................284
A/D コンペア起動モード .....................................308
FR-CPU ROM モード
(32/16/8 ビット , 読出しのみ ) ...................... 513
FR-CPU プログラミングモード
(16/8 ビット , 読出し / 書込み ) .................... 514
I/O ポートのモード .............................................. 105
アドレッシングモード ........................................ 489
カスケードモード ................................................320
クロック同期モード ............................................ 335
サイレントモード ................................................410
サイレントモードとループバックモードの結合
..........................................................................412
スタンバイモード ( ストップ / スリープ ) からの
復帰 .................................................................. 126
タイマモード ........................................................ 276
タイマモードの動作 ............................................ 300
単発変換モードの動作 ........................................ 438
停止変換モードの動作 ........................................ 441
テストモード設定 ................................................410
デッドタイムタイマモード時の動作 ................ 302
転送モード ............................................................ 483
動作モード ....................................................333, 457
非同期 ( 調歩同期 ) モード ..................................334
ベーシックモード ................................................412
モード設定 .............................................................. 60
ループバックモード ............................................ 411
連続変換モードの動作 ........................................ 440
モニタ
変数モニタ出力 ....................................................459
ゆ
優先順位判定
優先順位判定 ........................................................ 122
優先度
EIT 要因の優先度 ................................................... 53
り
リセット
INIT 端子入力 ( 設定初期化リセット端子 )
............................................................................64
STCR:SRST ビット書込み
( ソフトウェアリセット ) ............................... 64
ウォッチドッグリセット ...................................... 65
設定初期化リセット (INIT) ................................... 63
設定初期化リセット (INIT) 解除
シーケンス ........................................................66
通常リセット動作 ..................................................69
同期リセット動作 ..................................................69
動作初期化リセット (RST) ................................... 63
動作初期化リセット (RST) 解除シーケンス
............................................................................66
リセット要因 .......................................................... 64
リセット要因レジスタ
RSRR : リセット要因レジスタ / ウォッチドッグ
タイマ制御レジスタ ........................................ 79
リモートフレーム
リモートフレーム ................................................401
リロードタイマ
リロードタイマのブロックダイヤグラム
..........................................................................151
587
リロード動作
リロード動作 .........................................................488
リロードレジスタ
PRLL/PRLH レジスタ ( リロードレジスタ :
PRLL0 ∼ PRLL7/PRLH0 ∼ PRLH7) ............178
TMRLR レジスタ (16 ビットリロードレジスタ )
..........................................................................155
リンカ
リンカ (flnk911) .....................................................555
る
ループバックモード
サイレントモードとループバックモードの結合
..........................................................................412
ループバックモード .............................................411
れ
レジスタ群
レジスタ群 .............................................................345
レジスタ設定
レジスタ設定時の注意 .........................................469
レベルマスク
割込み・NMI に対するレベルマスク ..................47
連続変換
連続変換モードの動作 .........................................440
588
わ
ワードアライメント
ワードアライメント .............................................. 39
割込み
16 ビットアウトプットコンペア割込み
..........................................................................273
16 ビットインプットキャプチャ割込み
..........................................................................273
16 ビットフリーランタイマ割込み ...................272
8/10 ビット A/D コンバータの割込み ............... 437
DMAC 割込み制御 ............................................... 494
DMA による周辺割込みクリア .......................... 492
DTTI 端子割込み ..................................................307
タイマ割込み ........................................................ 278
波形ジェネレータ割込み .................................... 274
割込みスタック ......................................................49
割込み発生およびフラグの
セットタイミング .......................................... 336
割込み・NMI に対するレベルマスク .................. 47
割込みベクタ
割込みベクタ ........................................................ 545
割込みマスク
割込みマスク機能 ................................................279
割込みレベル
割込みレベル .......................................................... 46
CM71-10130-4
富士通半導体デバイス • CONTROLLER MANUAL
FR60Lite
32 ビット・マイクロコントローラ
MB91265A Series
ハードウェアマニュアル
2007 年 11 月 第 4 版発行
発行
富士通株式会社
編集
マーケティング統括部 販売戦略部
電子デバイス事業本部