セクション 32. ペリフェラル トリガ ジェネレータ...

42
© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-1 32 ペリフェラル トリガ ジェネレータ (PTG) セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ハイライト 本セクションには下記の主要項目を記載しています。 32.1 はじめに ...................................................................................................................... 32-2 32.2 ステータス / 制御レジスタ .......................................................................................... 32-4 32.3 ステップ命令のフォーマットと内容 ........................................................................ 32-14 32.4 モジュールの適用 ..................................................................................................... 32-17 32.5 アプリケーション例 .................................................................................................. 32-29 32.6 省電力モード ............................................................................................................ 32-36 32.7 レジスタマップ ......................................................................................................... 32-37 32.8 関連アプリケーション ノート .................................................................................. 32-38 32.9 改訂履歴 .................................................................................................................... 32-39 注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

Upload: others

Post on 15-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

セクション 32. ペリフェラル トリガ ジェネレータ (PTG)

32

ペリ

フェ

ラル

トリ

ジェ

ネレ

ータ

(PT

G)

ハイライト

本セクションには下記の主要項目を記載しています。

32.1 はじめに ......................................................................................................................32-2

32.2 ステータス / 制御レジスタ .......................................................................................... 32-4

32.3 ステップ命令のフォーマットと内容 ........................................................................ 32-14

32.4 モジュールの適用 ..................................................................................................... 32-17

32.5 アプリケーション例 .................................................................................................. 32-29

32.6 省電力モード ............................................................................................................ 32-36

32.7 レジスタマップ ......................................................................................................... 32-37

32.8 関連アプリケーション ノート .................................................................................. 32-38

32.9 改訂履歴 .................................................................................................................... 32-39

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-1

Page 2: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

32.1 はじめにペリフェラル トリガ ジェネレータ (PTG) モジュールは、ユーザによる設定が可能なシーケン サです。このモジュールを使うと、複雑なトリガ信号シーケンスを生成して、他の周辺モジュールの動作を連係させる事ができます。

PTG モジュールはアナログ / デジタル コンバータ (ADC)、出力コンパレータと PWM モジュー ル、タイマ、割り込みコントローラ等のモジュールと接続するよう設計されています。

32.1.1 機能

• ステップ命令による操作

- 8 ビット幅のステップ命令を使用

• 命令をステップ用キューに格納

- キュー深さを設定可能 (8 ~ 32 エントリ )

- ステップ実行時間 ( ステップ遅延 ) を設定可能

• 命令シーケンス ループをサポート

- 1 段のネスティングが可能

- 条件ループまたは無条件ループを選択可能

- 2 つの 16 ビット ループカウンタ

• 16 のハードウェア入力トリガ

- 立ち上がり / 立ち下がりエッジまたは HIGH/LOW レベルに応答

• 1 つのソフトウェア入力トリガ

• 最大 32 の独立した出力トリガ信号を生成

• 2 種類のトリガ生成方式

- 単独トリガ

- ブロードキャスト トリガ

• リテラルデータ値のストローブ出力ポート

- 5 ビット リテラル ( 命令のリテラル部 ) の書き込み

- 16 ビット リテラル (PTGL0 レジスタで保持 ) の書き込み

• 最大 16 の独立した割り込み信号を生成

• 2 つの 16 ビット汎用タイマ

• トリガ待機時間を制限する PTG モジュール専用ウォッチドッグ タイマ (WTD)

• デバッグモードでのシングルステップ命令実行

• 選択可能なクロック ( システムクロック、パルス幅モジュレータ (PWM)、ADC)

• クロック分周比を設定可能

Note: ファミリ リファレンス マニュアルの本セクションは、デバイス データシートの補 足を目的としています。本書の内容は dsPIC33E/PIC24E ファミリの一部のデバイスには対応していません。

本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デバイス データシート内の「ペリフェラル トリガ ジェネレータ (PTG)」の冒頭に記 載している注意書きでご確認ください。

デバイス データシートとファミリ リファレンス マニュアルの各セクションは、マ イクロチップ社のウェブサイト (http://www.microchip.com) でご覧になれます。

DS70669A_JP - p. 32-2 © 2013 Microchip Technology Inc.

Page 3: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

図 32-1: PTG のブロック図

16-b

it D

ata

Bu

s

PTGQPTR<4:0>

Command Decoder

PTGHOLD

PTGADJ

PTG Watchdog Timer(1)

PTG Control Logic

PTGWDTIF

PTG General Purpose Timer x

PTG Loop Counter x

Clo

ck In

pu

ts

FPTAD

T1CLKT2CLKT3CLK

PTGCLK<2:0>

PTGL0<15:0> PTGTxLIM<15:0> PTGCxLIM<15:0>

PTGBTE<15:0>

PTGO0

PTGSDLIM<15:0>

PTG Step Delay Timer

PWMOC1OC2IC1

CMPxADCINT2

PTGQUE0

PTGQUE1

PTGQUE2

PTGQUE3

PTGQUE5

PTGQUE4

PTGQUE6

PTGQUE7

PTGCST<15:0>

PTGCON<15:0>

Note 1: これはデバイスのウォッチドッグ タイマとは別の PTG モジュール専用ウォッチドッグ タイマです。

PT

G I

nte

rrup

tsT

rigg

er

Ou

tput

s

AD1CHS0<15:0>

STEP Command

STEP Command

PTGSTEPIF

Trig

ge

r In

pu

ts

PTGO31

•••

PTG0IF

PTG3IF

•••

STEP Command

STEP Command

FOSC

PTGDIV<4:0>

...PTGQUE15

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-3

Page 4: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

32.2 ステータス / 制御レジスタPTG モジュール動作の制御には以下のレジスタを使います。

• PTGCST: PTG 制御 / ステータス レジスタ

このレジスタは PTG モジュールの下記の機能を制御します。

- PTG モジュールの有効化 / 無効化

- アイドル中の動作

- トリガ出力モード

- ソフトウェア トリガ

- シングルステップ モードの有効化 / 無効化

- カウンタ / タイマ値の読み出し

- PTG シーケンサの開始 / 停止

- 入力トリガ命令の動作モード

このレジスタは、PTG ウォッチドッグ タイマのステータスビットも格納します。

• PTGCON: PTG 制御レジスタ

このレジスタは PTG モジュールの下記の機能を制御します。

- PTG クロックの選択

- PTG クロック プリスケーラ

- PTG トリガ出力のパルス幅

- PTG ウォッチドッグ タイムアウトのカウント値

• PTGBTE: PTG ブロードキャスト トリガ イネーブル レジスタ (1,2)

このレジスタは PTG モジュールのブロードキャスト トリガを有効にします。

• PTGT0LIM: PTG Timer0 制限値レジスタ (1)

このレジスタは Timer0 の制限値を定義します。

• PTGT1LIM: PTG Timer1 制限値レジスタ (1)

このレジスタは Timer1 の制限値を定義します。

• PTGSDLIM: PTG ステップ遅延制限値レジスタ (1,2)

このレジスタはステップ遅延の制限値を指定します。

• PTGC0LIM: PTG カウンタ 0 制限値レジスタ (1)

このレジスタはカウンタ 0 の制限値を定義します。

• PTGC1LIM: PTG カウンタ 1 制限値レジスタ (1)

このレジスタはカウンタ 1 の制限値を定義します。

• PTGHOLD: PTG ホールドレジスタ (1)

このレジスタは、PTGCOPY 命令を使って PTGTxLIM、PTGCxLIM、PTDSDLIM、PTGL0 レジスタのいずれかにコピーする値を保持します。

• PTGADJ: PTG 調整レジスタ (1)

このレジスタは、PTGADD命令を使って PTGTxLIM、PTGCxLIM、PTDSDLIM、PTGL0 レジスタのいずれかに加算する値を保持します。

• PTGL0: PTG リテラル値 0 レジスタ (1)

このレジスタは、PTGCTRL命令を使って AD1CHS0 レジスタに書き込む値を保持します。

• PTGQPTR: PTG ステップキュー ポインタレジスタ (1)

このレジスタは、ステップキュー内で現在実行中のステップ命令の位置を指すポインタを格納します。

• PTGQUEn: PTG ステップキュー ポインタレジスタ (n = 0 ~ 15)(1)

このレジスタは PTG モジュールのキューレジスタです。

DS70669A_JP - p. 32-4 © 2013 Microchip Technology Inc.

Page 5: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

レジスタ 32-1: PTGCST: PTG 制御 / ステータス レジスタ

R/W-0 U-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0

PTGEN — PTGSIDL PTGTOGL — PTGSWT(2) PTGSSEN PTGIVIS

bit 15 bit 8

R/W-0 HS-0 U-0 U-0 U-0 U-0 R/W-0

PTGSTRT PTGWDTO — — — — PTGITM<1:0>(1)

bit 7 bit 0

凡例 : HS = ハードウェアでセット

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15 PTGEN: モジュール イネーブルビット1 = PTG モジュールを有効にする0 = PTG モジュールを無効にする

bit 14 未実装 :「0」として読み出し

bit 13 PTGSIDL: アイドル中停止ビット1 = デバイスがアイドルに移行するとモジュールは動作を停止する0 = アイドル中もモジュールは動作を継続する

bit 12 PTGTOGL: TRIG 出力トグルモード ビット1 = PTGTRIG命令を実行するたびに PTGOx の状態をトグルする0 = PTGTRIG命令を実行するたびに単発の PTGOx パルスを生成する

bit 11 未実装 :「0」として読み出し

bit 10 PTGSWT: ソフトウェア トリガビット (2)

1 = PTG モジュールをトリガする0 = 何もしない ( このビットのクリアは効果を持ちません )

bit 9 PTGSSEN: シングルステップ イネーブルビット1 = シングルステップ モードを有効にする0 = シングルステップ モードを無効にする

bit 8 PTGIVIS: カウンタ / タイマ可視性制御ビット1 = PTGSDLIM、PTGCxLIM、PTGTxLIM レジスタの読み出しは、そのレジスタに対応するカウンタ / タ

イマ レジスタ (PTGSD、PTGCx、PTGTx) の現在の値を返す0 = PTGSDLIM、PTGCxLIM、PTGTxLIM レジスタの読み出しは、そのレジスタが格納している制限

値を返す

bit 7 PTGSTRT: PTG シーケンス開始ビット1 = 命令を順番に実行する ( 連続モード )0 = 命令の実行を停止する

bit 6 PTGWDTO: PTG ウォッチドッグ タイマ タイムアウト ステータスビット1 = PTG ウォッチドッグ タイマがタイムアウトした0 = PTG ウォッチドッグ タイマはタイムアウトしていない

bit 5-2 未実装 :「0」として読み出し

bit 1-0 PTGITM<1:0>: PTG 入力トリガ命令動作モードビット (1)

11 = 命令実行時に一度レベルを検出し、命令実行完了後にステップ遅延を挿入しない (PTGCTRL命令の影響を受けない ) ( モード 3)

10 = 命令実行時に一度レベルを検出し、命令実行完了後にステップ遅延を挿入する ( モード 2) 01 = 命令実行時にエッジを連続的に検出し、命令実行完了後にステップ遅延を挿入しない

(PTGCTRL命令の影響を受けない ) ( モード 1)00 = 命令実行時にエッジを連続的に検出し、命令実行完了後にステップ遅延を挿入する ( モード 0)

Note 1: これらのビットは、PTGWHIおよび PTGWLO命令にのみ適用します。2: このビットは、PTGCTRLステップ命令のソフトウェア トリガ オプションでのみ使います。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-5

Page 6: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

レジスタ 32-2: PTGCON: PTG 制御レジスタ

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGCLK<2:0> PTGDIV<4:0>

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0

PTGPWD<3:0> — PTGWDT<2:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-13 PTGCLK<2:0>: PTG モジュール クロック源選択ビット

111 = 予約済み110 = 予約済み101 = PTG モジュールのクロック源として T3CLK を選択する100 = PTG モジュールのクロック源として T2CLK を選択する011 = PTG モジュールのクロック源として T1CLK を選択する010 = PTG モジュールのクロック源として ADC FRC クロックを選択する001 = PTG モジュールのクロック源として FOSC を選択する000 = PTG モジュールのクロック源として FP を選択する

bit 12-8 PTGDIV<4:0>: PTG モジュール クロック プリスケーラ ( 分周比 ) ビット

11111 = 32 分周11110 = 31 分周

00001 = 2 分周00000 = 1 分周

bit 7-4 PTGPWD<3:0>: PTG トリガ出力パルス幅ビット

1111 = 全てのトリガ出力は 16 PTG クロックサイクルのパルス幅を持つ1110 = 全てのトリガ出力は 15 PTG クロックサイクルのパルス幅を持つ

0001 = 全てのトリガ出力は 2 PTG クロックサイクルのパルス幅を持つ0000 = 全てのトリガ出力は 1 PTG クロックサイクルのパルス幅を持つ

bit 3 未実装 :「0」として読み出し

bit 2-0 PTGWDT<2:0>: PTG ウォッチドッグ タイムアウト カウント値選択ビット

111 = ウォッチドッグは 512 PTG クロックでタイムアウトする110 = ウォッチドッグは 256 PTG クロックでタイムアウトする101 = ウォッチドッグは 128 PTG クロックでタイムアウトする100 = ウォッチドッグは 64 PTG クロックでタイムアウトする011 = ウォッチドッグは 32 PTG クロックでタイムアウトする010 = ウォッチドッグは 16 PTG クロックでタイムアウトする001 = ウォッチドッグは 8 PTG クロックでタイムアウトする000 = ウォッチドッグを無効にする

DS70669A_JP - p. 32-6 © 2013 Microchip Technology Inc.

Page 7: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

レジスタ 32-3: PTGBTE: PTG ブロードキャスト トリガ イネーブル レジスタ (1,2)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ADCTS4 ADCTS3 ADCTS2 ADCTS1 IC4TSS IC3TSS IC2TSS IC1TSS

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

OC4CS OC3CS OC2CS OC1CS OC4TSS OC3TSS OC2TSS OC1TSS

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15 ADCTS4: ADC サンプリング トリガ PTGO15 ビット

1 = ブロードキャスト命令実行時にこのトリガを生成する0 = ブロードキャスト命令実行時にこのトリガを生成しない

bit 14 ADCTS3: ADC サンプリング トリガ PTGO14 ビット

1 = ブロードキャスト命令実行時にこのトリガを生成する0 = ブロードキャスト命令実行時にこのトリガを生成しない

bit 13 ADCTS2: ADC サンプリング トリガ PTGO13 ビット

1 = ブロードキャスト命令実行時にこのトリガを生成する0 = ブロードキャスト命令実行時にこのトリガを生成しない

bit 12 ADCTS1: ADC サンプリング トリガ PTGO12 ビット

1 = ブロードキャスト命令実行時にこのトリガを生成する0 = ブロードキャスト命令実行時にこのトリガを生成しない

bit 11 IC4TSS: IC4 トリガ / 同期源ビット

1 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成する0 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成しない

bit 10 IC3TSS: IC3 トリガ / 同期源ビット

1 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成する0 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成しない

bit 9 IC2TSS: IC2 トリガ / 同期源ビット

1 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成する0 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成しない

bit 8 IC1TSS: IC1 トリガ / 同期源ビット

1 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成する0 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成しない

bit 7 OC4CS: OC4 クロック源ビット

1 = ブロードキャスト命令実行時にこのクロックパルスを生成する0 = ブロードキャスト命令実行時にこのクロックパルスを生成しない

bit 6 OC3CS: OC3 クロック源ビット

1 = ブロードキャスト命令実行時にこのクロックパルスを生成する0 = ブロードキャスト命令実行時にこのクロックパルスを生成しない

bit 5 OC2CS: OC2 クロック源ビット

1 = ブロードキャスト命令実行時にこのクロックパルスを生成する0 = ブロードキャスト命令実行時にこのクロックパルスを生成しない

Note 1: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

2: このレジスタは PTGCTRL OPTION = 1111ステップ命令でのみ使います。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-7

Page 8: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

bit 4 OC1CS: OC1 クロック源ビット

1 = ブロードキャスト命令実行時にこのクロックパルスを生成する0 = ブロードキャスト命令実行時にこのクロックパルスを生成しない

bit 3 OC4TSS: OC4 トリガ / 同期源ビット

1 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成する0 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成しない

bit 2 OC3TSS: OC3 トリガ / 同期源ビット

1 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成する0 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成しない

bit 1 OC2TSS: OC2 トリガ / 同期源ビット

1 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成する0 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成しない

bit 0 OC1TSS: OC1 トリガ / 同期源ビット

1 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成する0 = ブロードキャスト命令実行時にこのトリガ / 同期信号を生成しない

レジスタ 32-3: PTGBTE: PTG ブロードキャスト トリガ イネーブル レジスタ (1,2) ( 続き )

Note 1: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

2: このレジスタは PTGCTRL OPTION = 1111ステップ命令でのみ使います。

DS70669A_JP - p. 32-8 © 2013 Microchip Technology Inc.

Page 9: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

レジスタ 32-4: PTGT0LIM: PTG Timer0 制限値レジスタ (1)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGT0LIM<15:8>

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGT0LIM<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-0 PTGT0LIM<15:0>: PTG Timer0 制限値レジスタビット

汎用タイマ Timer0 の制限値レジスタです。

Note 1: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

レジスタ 32-5: PTGT1LIM: PTG Timer1 制限値レジスタ (1)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGT1LIM<15:8>

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGT1LIM<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-0 PTGT1LIM<15:0>: PTG Timer1 制限値レジスタビット

汎用タイマ Timer1 の制限値レジスタです。

Note 1: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-9

Page 10: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

レジスタ 32-6: PTGSDLIM: PTG ステップ遅延制限値レジスタ (1,2)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGSDLIM<15:8>

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGSDLIM<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-0 PTGSDLIM<15:0>: PTG ステップ遅延制限値レジスタビット

このレジスタは、PTG ステップ遅延値 ( ステップ命令の開始から完了までの間に追加する PTG クロック数 ) を保持します。

Note 1: PTGSDLIM レジスタに書き込んだ値に 1 PTG クロックの基本ステップ遅延が追加されます ( 実際のス テップ遅延 = (PTGSDLIM) + 1)。

2: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

レジスタ 32-7: PTGC0LIM: PTG カウンタ 0 制限値レジスタ (1)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGC0LIM<15:8>

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGC0LIM<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-0 PTGC0LIM<15:0>: PTG カウンタ 0 制限値レジスタビット

このレジスタは汎用カウンタ 0 の制限値レジスタです。このレジスタを使って PTGJMPC0ステップ命令のループ繰り返し数を指定します。

Note 1: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

DS70669A_JP - p. 32-10 © 2013 Microchip Technology Inc.

Page 11: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

レジスタ 32-8: PTGC1LIM: PTG カウンタ 1 制限値レジスタ (1)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGC1LIM<15:8>

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGC1LIM<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-0 PTGC1LIM<15:0>: PTG カウンタ 1 制限値レジスタビット

このレジスタは汎用カウンタ 1 の制限値レジスタです。このレジスタを使って PTGJMPC1ステップ命令のループ繰り返し数を指定します。

Note 1: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

レジスタ 32-9: PTGHOLD: PTG ホールドレジスタ (1)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGHOLD<15:8>

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGHOLD<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-0 PTGHOLD<15:0>: PTG 汎用ホールドレジスタ ビット

このレジスタは、PTGCOPY 命令を使って PTGTxLIM、PTGCxLIM、PTGSDLIM、PTGL0 レジスタのいずれかにコピーするユーザ指定データを保持します。

Note 1: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-11

Page 12: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

レジスタ 32-10: PTGADJ: PTG 調整レジスタ (1)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGADJ<15:8>

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGADJ<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-0 PTGADJ<15:0>: PTG 調整レジスタビットこのレジスタは、PTGADD命令を使って PTGTxLIM、PTGCxLIM、PTGSDLIM、PTGL0 レジスタのいずれかに加算するユーザ指定データを保持します。

Note 1: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

レジスタ 32-11: PTGL0: PTG リテラル値 0 レジスタ (1)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGL0<15:8>

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTGL0<7:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-0 PTGL0<15:0>: PTG リテラル値 0 レジスタビット

このレジスタは、PTGCTRL命令を使って AD1CHS0 レジスタに書き込む 16 ビット値を保持します。

Note 1: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

DS70669A_JP - p. 32-12 © 2013 Microchip Technology Inc.

Page 13: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

レジスタ 32-12: PTGQPTR: PTG ステップキュー ポインタレジスタ (1)

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

bit 15 bit 8

U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — PTGQPTR<4:0>

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-5 未実装 :「0」として読み出し

bit 4-0 PTGQPTR<4:0>: PTG ステップキュー ポインタレジスタ ビット

このレジスタは、ステップキュー内で現在実行中のステップ命令の位置を指すポインタを格納します。

Note 1: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

レジスタ 32-13: PTGQUEn: PTG ステップキュー ポインタレジスタ (n = 0 ~ 15)(1)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

STEPx<7:0>(2)

bit 15 bit 8

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

STEPy<7:0>(2)

bit 7 bit 0

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 15-8 STEPx<7:0>: PTG ステップキュー ポインタレジスタ ビット (2)

(2x + 1) 番目のステップ命令バイトを格納するキュー位置を指します ( 添え字「x」は奇数番号のス テップキュー ポインタを表す )。

bit 7-0 STEPy<7:0>: PTG ステップキュー ポインタレジスタ ビット (2)

(2y) 番目のステップの命令バイトを格納するキュー位置を指します ( 数字「y」は偶数番号のステップキュー ポインタを表す )。

Note 1: PTG モジュールがステップ命令を実行中 (PTGEN = 1かつ PTGSTRT = 1) の間、このレジスタは読み出 しのみ可能です。

2: 各ステップ命令のコードについては表 32-1 を参照してください。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-13

Page 14: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

32.3 ステップ命令のフォーマットと内容

表 32-1: PTG ステップ命令のフォーマットと内容

ステップ命令バイト

STEPx<7:0>

CMD<3:0> OPTION<3:0>

bit 7 bit 4 bit 3 bit 0

bit 7-4 ステップ命令 CMD<3:0> 命令の内容

PTGCTRL 0000 OPTION<3:0> ビットの定義に従って制御命令を実行する。

PTGADD 0001 OPTION<3:0> ビットの定義に従って、PTGADJ レジスタの内容をターゲッ

ト レジスタに加算する。

PTGCOPY OPTION<3:0> ビットの定義に従って、PTGADJ レジスタの内容をターゲッ

ト レジスタにコピーする。

PTGSTRB 001x CMD<0>:OPTION<3:0> ビットの値を CH0SA<4:0> ビット

(AD1CHS0<4:0>) にコピーする。

PTGWHI 0100 OPTION<3:0> ビットの定義に従って、選択した PTG トリガ入力の LOWから HIGH へ遷移するエッジを待機する。

PTGWLO 0101 OPTION<3:0> ビットの定義に従って、選択した PTG トリガ入力の HIGHから LOW へ遷移するエッジを待機する。

— 0110 予約済み、使用不可

PTGIRQ 0111 OPTION<3:0> ビットの定義に従って、単独の割り込み要求を生成する。

PTGTRIG 100x CMD<0>:OPTION<3:0> ビットの定義に従って、単独のトリガ出力を生成

する。

PTGJMP 101x CMD<0>:OPTION<3:0> ビットの値を PTGQPTR レジスタにコピーし、そ

のステップキューへジャンプする。

PTGJMPC0 110x PTGC0 = PTGC0LIM: PTGQPTR レジスタをインクリメントする。

PTGC0 PTGC0LIM: カウンタ 0 (PTGC0) をインクリメントし、

CMD<0>:OPTION<3:0> ビットの値を PTGQPTR レジスタにコピーし、そ

のステップキューへジャンプする。

PTGJMPC1 111x PTGC1 = PTGC1LIM: PTGQPTR レジスタをインクリメントする。

PTGC1 PTGC1LIM: カウンタ 1 (PTGC1) をインクリメントし、

CMD<0>:OPTION<3:0> ビットの値を PTGQPTR レジスタにコピーし、そ

のステップキューへジャンプする。

Note 1: 予約済みの命令またはオプションを実行しても効果はありません (NOP命令として実行されます )。

2: この機能は dsPIC33EPXXXMC20X/50X と PIC24EPXXXMC20X でのみ利用可能です。

DS70669A_JP - p. 32-14 © 2013 Microchip Technology Inc.

Page 15: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

表 32-1: PTG ステップ命令のフォーマットと内容 ( 続き )

bit 3-0 ステップ命令 OPTION<3:0> 命令の内容

PTGCTRL(1) 0000 予約済み、使用不可

0001 予約済み、使用不可

0010 ステップ遅延タイマ (PTGSD) を無効にする。

0011 予約済み、使用不可

0100 予約済み、使用不可

0101 予約済み、使用不可

0110 ステップ遅延タイマ (PTGSD) を有効にする。

0111 予約済み、使用不可

1000 PTG Timer0 を起動し、タイマ値が PTGT0LIM レジスタ値に一致するまで

待機する。

1001 PTG Timer1 を起動し、タイマ値が PTGT1LIM レジスタ値に一致するまで

待機する。

1010 ソフトウェア トリガ ( レベル センシティブ : PTGSWT = 1) を待機する。

1011 ソフトウェア トリガ ( エッジ センシティブ : PTGSWT の「0」から「1」へ

の立ち上がりエッジ ) を待機する。

1100 PTGC0LIM レジスタの内容を AD1CHS0 レジスタにコピーする。

1101 PTGC1LIM レジスタの内容を AD1CHS0 レジスタにコピーする。

1110 PTGL0 レジスタの内容を AD1CHS0 レジスタにコピーする。

1111 PTGBTE レジスタが指定するトリガを生成する。

PTGADD(1) 0000 PTGADJ レジスタの内容を PTGC0LIM レジスタに加算する。

0001 PTGADJ レジスタの内容を PTGC1LIM レジスタに加算する。

0010 PTGADJ レジスタの内容を PTGT0LIM レジスタに加算する。

0011 PTGADJ レジスタの内容を PTGT1LIM レジスタに加算する。

0100 PTGADJ レジスタの内容を PTGTSDLIM レジスタに加算する。

0101 PTGADJ レジスタの内容を PTGL0 レジスタに加算する。

0110 予約済み、使用不可

0111 予約済み、使用不可

PTGCOPY(1) 1000 PTGHOLD レジスタの内容を PTGC0LIM レジスタにコピーする。

1001 PTGHOLD レジスタの内容を PTGC1LIM レジスタにコピーする。

1010 PTGHOLD レジスタの内容を PTGT0LIM レジスタにコピーする。

1011 PTGHOLD レジスタの内容を PTGT1LIM レジスタにコピーする。

1100 PTGHOLD レジスタの内容を PTGSDLIM レジスタにコピーする。

1101 PTGHOLD レジスタの内容を PTGL0 レジスタにコピーする。

1110 予約済み、使用不可

1111 予約済み、使用不可

Note 1: 予約済みの命令またはオプションを実行しても効果はありません (NOP命令として実行されます )。

2: この機能は dsPIC33EPXXXMC20X/50X と PIC24EPXXXMC20X でのみ利用可能です。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-15

Page 16: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

表 32-1: PTG ステップ命令のフォーマットと内容 ( 続き )

bit 3-0 ステップ命令 OPTION<3:0> オプションの内容

PTGWHI(1)

または PTGWLO(1)

0000 PWM 特殊イベントトリガ (2)

0001 PWM マスタ タイムベース同期出力 (2)

0010 PWM1 割り込み

0011 PWM2 割り込み

0100 PWM3 割り込み

0101 予約済み、使用不可

0110 予約済み、使用不可

0111 OC1 トリガイベント

1000 OC2 トリガイベント

1001 IC1 トリガイベント

1010 CMP1 トリガイベント

1011 CMP2 トリガイベント

1100 CMP3 トリガイベント

1101 CMP4 トリガイベント

1110 ADC 変換完了割り込み

1111 INT2 外部割り込み

PTGIRQ(1) 0000 PTG 割り込み 0 の生成

0001 PTG 割り込み 1 の生成

0010 PTG 割り込み 2 の生成

0011 PTG 割り込み 3 の生成

0100 予約済み、使用不可

1111 予約済み、使用不可

PTGTRIG 00000 PTGO0

00001 PTGO1

11110 PTGO30

11111 PTGO31

Note 1: 予約済みの命令またはオプションを実行しても効果はありません (NOP命令として実行されます )。

2: この機能は dsPIC33EPXXXMC20X/50X と PIC24EPXXXMC20X でのみ利用可能です。

DS70669A_JP - p. 32-16 © 2013 Microchip Technology Inc.

Page 17: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

32.4 モジュールの適用

32.4.1 モジュールの説明

PTG モジュールは、複雑な周辺モジュール トリガシーケンスを生成するユーザ設定可能シー ケンサです。 PTG モジュールは、ソフトウェア方式では不可能に近い複雑な周辺モジュール動 作のタイミング制御を可能にします。

ユーザは PTG キューレジスタ (PTGQUE0 ~ PTGQUE15) に 8 ビットのステップ命令を書き込みます。8 ビットのステップ命令は、4 ビットの命令コードと 4 ビットのオプション フィール ドで構成されます。表 32-1 に、ステップ命令のフォーマットとコードを示します。PTG は、ステップ命令に基づいて他のモジュール (PWM、ADC、入力キャプチャ、出力コンペア等 ) と相互に作用します。

32.4.2 基本動作

ユーザはステップ命令 (8 ビット値 ) を PTG キューレジスタに書き込みます。これらの命令により、周辺モジュールに向けてトリガ出力信号を生成する一連のイベントを定義します。ステップ命令を使ってプロセッサに対する割り込み要求を生成する事もできます。

• PTGEN ビット (PTGCST<15>) を「0」にクリアすると、PGT モジュールは無効になります。

• PTGEN ビット (PTGCST<15>) を「1」にセットすると、PTG モジュールは有効になります。PTGSTRTビット(PTGCST<7>) = 0の間、PTGモジュールは一時停止(HALT)状態になります。

PTGEN ビットをセットした後に PTGSTRT ビットをセットすると、ステップ命令キューの連続モード実行が有効になります。PTG シーケンサは、 キューポインタ (PTGQPTR) が保持して いるアドレスからステップキューの読み出しを始めます。各命令バイトを順番に読み出してデコードし、実行します。全てのステップ命令の最小実行時間は 1 PTG クロックです (32.4.4

「PTG クロックの選択」参照 )。

各ステップ命令は、下記のいずれかが発生するまで順番に実行されます。

• PTGJMP、PTGJMPC0、PTGJMPC1( フロー変更 ) ステップ命令のいずれかが実行された。

• ユーザが PTGSTRT ビットをクリアして PTG シーケンサを停止した ( 後続のステップ命令は読み出し / デコードされず、実行は中断する。詳細は 32.4.3「シーケンサを停止する」参照 )。

• 内部ウォッチドッグ タイマがオーバーフローし、PTGSTRTビットがクリアされてPTGシー ケンサが停止した ( 後続のステップ命令は読み出し / デコードされず、実行は中断する。詳細は 32.4.3「シーケンサを停止する」参照 )。

• PTGモジュールが無効 (PTGEN = 0)にされた (詳細は 32.4.3「シーケンサを停止する」参照 )。

入力トリガエッジ、ソフトウェア トリガ、タイマ一致等の条件が発生するまで待機した後にス テップ命令の実行を再開する事もできます。

Note 1: PTG モジュールが一時停止中の場合、制御レジスタは変更できません。

2: PTGSTRT ビットをセットするには、先に PTG モジュールを有効 (PTGEN = 1) にしておく必要があります。

3: 1回のデータ書き込みサイクルでPTGENビットとPTGSTRTビットを同時にセットしないでください。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-17

Page 18: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

32.4.3 シーケンサを停止する

PTG モジュールを無効 (PTGEN = 0) にすると、PTG クロック ( トリガパルス カウンタを除く ) は無効になり、シーケンサは動作を停止します。これにより、モジュールは最小消費電力状態に移行します。PTGSTRT、PTGSWT、PTGWDTO、PTGQPTR ビットは全てリセットされます。これ以外のビットとレジスタはいずれも変更されません。PTGEN = 0の場合、全ての制御 レジスタは読み / 書き可能です。

PTGEN ビットをクリアすると、その時点で下記の動作を待機中であった命令の実行は即座に中止されます。

• 他のソースからの入力

• タイマ一致

• ステップ遅延の終了 ( 詳細は 32.4.9.5「ステップ命令遅延」参照 )

その他の命令は、PTG モジュールが無効になる前に実行を完了できます。

PTG モジュールが一時停止しても、全ての制御レジスタは現在の状態を保持します。ユーザは、PTGSTRT ビットをクリアする事によって PTG モジュールを一時停止させる事ができます。PTGSTRT ビットはウォッチドッグ タイムアウトの発生時にもクリアされます。詳細は 32.4.10「PTG 入力トリガ ウォッチドッグ タイマ」を参照してください。

32.4.4 PTG クロックの選択

PTG モジュールは複数のクロックオプションを備え、プリスケーラを使って PTG クロック入力を 1 ~ 32 分周できます。

32.4.4.1 クロック源の選択

PTGCLK<2:0>ビット (PTGCON<15:13>)はPTGクロック生成ロジックのクロック源を指定します。PTG モジュールはシステムクロック、ADC クロック、PWM クロック、外部クロックのいずれかを使って動作できます。

32.4.4.2 クロック プリスケーラの選択

PTGDIV<4:0> ビット (PTGCON<12:8>) は、PTG クロック生成ロジックのプリスケーラ値を指定します。これらのビットは、PTG モジュールが無効 (PTGEN = 0) の場合にのみ書き込み可 能です。

32.4.4.3 モジュール イネーブル遅延

PTG モジュールを有効 (PTGEN = 1) にしてから命令の実行が始まるまでに遅延が生じます。こ の遅延時間を式 32-1 に示します。

式 32-1:

ユーザは、遅延中に制御ビットが変更されないよう配慮する必要があります。また、PTG ステートマシンが実行を開始する前に外部トリガがアサートされないよう配慮する必要もあります ( 遅延中のトリガは検出されません )。

Note: PTGEN = 1 の場合、PTGDIV<4:0> ビットまたは PTGCLK<2:0> ビットへの書き 込みを実行しても効果はありません。

TDLYEN = 4 x PTG clock period (Maximum)

DS70669A_JP - p. 32-18 © 2013 Microchip Technology Inc.

Page 19: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

32.4.5 制御レジスタへのアクセス

PTG モジュールを有効 (PTGEN = 1) にすると、全ての制御レジスタへの書き込みは禁止され ます。例外として、PTGCST レジスタだけは通常通り読み / 書き可能です。

PTG モジュールを有効 (PTGEN = 1) にしても、全ての制御レジスタはいつでも読み出し可能 です。しかし、読み出されるデータの内容 ( 制御レジスタの内容または対応するタイマ / カウンタ値のどちらか ) は PTGIVIS ビット (PTGCST<8>) の状態によって決まります。

PTG モジュールが無効 (PTGEN = 0) の場合、全ての制御レジスタは通常通り読み / 書き可能で す。PTGEN ビットを「0」にクリアすると、全てのタイマ / カウンタはゼロにリセットされますが、制限値レジスタの値はそのまま保持されます。このため、PTGIVIS ビット (PTGCST<8>)はモジュール無効時のレジスタの読み出しには影響しません。

32.4.6 ステップキュー ポインタ

PTG ステップキュー ポインタレジスタ (PTGQPTR) は、PTG キューを指すポインタを保持し ます。このポインタは、PTGEN = 1 かつ PTGSTRT = 1 の場合に PTGQPTR レジスタから読 み込まれ、ステップキュー内で現在実行中のステップ命令の位置を示します。PTGQPTR レジスタは、モジュールが無効 (PTGEN = 0) またはリセット状態になるとクリアされます。 PTGQPTR レジスタは、PTGEN ビットが「1」から「0」に遷移した時点で一度だけクリアされます。

ユーザは PTGQPTR レジスタをいつでも読み出せます。モジュールが無効 (PTGEN = 0) の場 合、PTGQPTR レジスタの読み出しは PTGQPTR レジスタの内容を返します。モジュールが有効 (PTGEN = 1) の場合、PTGQPTR レジスタの読み出しはポインタの内容を返します。

下記の例外を除き、PTGQPTR レジスタは各命令の最初のサイクルでインクリメントします。

• PTGJMP命令を実行した場合 : ステップキュー ポインタにはターゲットキューのアドレスが 書き込まれる

• PTGJMPCx命令を実行し、かつ PTGCx がゼロではない場合 : ステップキュー ポインタには ターゲットキューのアドレスが書き込まれる

32.4.7 命令ループ制御

PTGモジュールは2つの16ビット ループカウンタ (PTGC0とPTGC1)を備えます。PTGJMPCx 命令により、これらのカウンタはブロック ループカウンタまたは遅延ジェネレータとして使え ます。全ての内部カウンタは、PTG モジュールがリセット状態または無効状態 (PTGEN = 0) になるとクリアされます。

各ループカウンタは、インクリメント カウンタ (PTGCx) と制限値レジスタ (PTGCxLIM) によ り構成されます。モジュールが無効の場合、制限値レジスタの値はレジスタに直接書き込む事により変更できます。モジュールが有効の場合、制限値レジスタの値は PTG シーケンサにより変更できます。制限値レジスタから読み出されるデータは、カウンタ / タイマ可視性制御ビット (PTGIVIS) の状態によって決まります。

Note: PTGIVIS ビットの状態は一部のレジスタにだけ影響します。PTGIVIS ビットの説明を参照してください。

Note 1: PTG モジュールが一時停止状態 (PTGSTRT = 0) になっても、PTGQPTR レジス タはクリアされません。

2: PTGENビットをクリアするとPTGQPTRレジスタはクリアされますが、PTGQPTRには PTGEN ビットの状態に関係なく任意の値を書き込めます。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-19

Page 20: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

32.4.7.1 ループカウンタをブロック ループカウンタとして使う方法

PTGJMPCx (条件ジャンプ)命令は、ループカウンタの1つを使ってPTGJMPCx命令の実行回数を 監視します。従って、この命令を使ってコードブロック ループを構成できます。この命令は、 一連の周辺モジュール イベントを複数回繰り返す必要がある場合に便利です。PTGJMPCx命令 を使うと、 コードループを構成してステップ命令数を削減できます。

PTGJMPCx 命令を実行するたびに、対応する内部ループカウンタとその制限値を比較します。ループカウンタが制限値に達していない場合、ジャンプ先が PTGQPTR レジスタに書き込まれ、ループカウンタは 1 つインクリメントします。次の命令は新しいキュー位置からフェッチされます。カウンタが制限値に達すると、シーケンサは次の命令に進みます ( つまり、キューポインタをインクリメントします )。次の PTGJMPCx 命令ループの実行に備えるため、対応するループカウンタはクリアされます。図 32-2 を参照してください。

2 つの独立したループカウンタと、それぞれに対応する PTGJMPCx命令が用意されているため、ループのネスト ( 深さ 1 段 ) が可能です。どちらの PTGJMPCx命令を内側 / 外側のどちらのループで使うかは自由です。

図 32-2: ブロックループの実装図

32.4.8 ステップ命令

前に記載した表 32-1 には、ステップ命令のフォーマットとコードを記載しています。8 ビットの各ステップ命令は、4 ビットの命令フィールド (CMD<3:0>) と 4 ビットのオプション フィー ルド (OPTION<3:0>) により構成されます。

Note: 命令ループの最初の繰り返しを実行する前に、PTGADDまたは PTGCOPY命令を使ってループカウンタの値を変更できます。

Execute PTGJMPCO

Do not Jump(QUEUE POINTER ++)

PTGCO = 0

If PTGCO PTGCOLIM

Continue Jump(QUEUE POINTER Jump location)

PTGCO++

Yes

No

DS70669A_JP - p. 32-20 © 2013 Microchip Technology Inc.

Page 21: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

32.4.9 シーケンサの動作

フロー変更命令と外部入力待機命令を除く全ての命令は 1 サイクルで完了します。

32.4.9.1 ステップ命令の実行時間

既定値設定では、各ステップ命令は 1 PTG クロックで完了します。下記に示す方法により、ス テップ命令の実行時間を延長できます。

• トリガ入力を待機する

• GP タイマ (PTGTxLIM) の終了を待機する

• PTGJMPCxおよび PTGCx命令を使ってループ遅延を挿入する

• 各命令の実行後にステップ遅延 (PTGSDLIM) を挿入する

32.4.9.2 トリガ入力を待機する

PTG モジュールは、最大 16 の独立したトリガ入力をサポートします。選択した入力信号の立ち上がりエッジ ( または HIGH 状態 ) を待機するステップ命令、または立ち下がりエッジ ( または LOW 状態 ) を待機するステップ命令を指定できます。動作モード ( エッジまたはレベル セ ンシティブ ) は PTGCST レジスタの PTGITM<1:0> ビットで選択します。

PTGWHI 命令は、選択したトリガ入力の立ち上がりエッジまたは HIGH 状態を検出します。PTGWLO命令は、選択したトリガ入力の立ち下がりエッジまたは LOW 状態を検出します。PTGは、選択した信号トリガの状態が有効になるまでトリガ入力命令を繰り返し実行し ( つまり待機し )、その後にステップ命令の実行を再開します。

トリガ待機の最小実行時間は 1 PTG クロックです。ウォッチドッグ タイムアウトを適用しな い限り、PTG はトリガ入力を無期限に待機します。詳細は 32.4.10「PTG 入力トリガ ウォッチ ドッグ タイマ」を参照してください。

PTG モジュールは、4 つの入力トリガ命令動作モード ( モード 0 ~ 3) をサポートします。このモードは PTGCST レジスタの PTGITM<1:0> ビットで選択します。

32.4.9.2.1 モード 0: PTGITM<1:0> = 0x00( 連続エッジ検出、命令完了後にステップ遅延を挿入する )

このモードでは、PTGWHI または PTGWLO命令を実行すると即座にトリガ入力の連続的な監視が始まります。トリガエッジを検出した時点で命令の実行は完了します。

ステップ遅延カウンタを有効にすると、有効なエッジを検出して命令実行が完了した後にステップ遅延を挿入します。

ステップ遅延カウンタを無効にすると、有効なエッジを検出して命令実行が完了した後即座に後続の命令を実行します。

Note: ステップ遅延を無効にした場合、モード 0 とモード 1 の動作およびモード 2 とモード 3 の動作は同じです。

Note: エッジ検出ロジックは命令実行完了時にリセットされます ( つまり、その命令に対応するステップ遅延を挿入する前にリセットされます )。PTGWHIまたは PTGWLO命令の実行中に発生したエッジだけが検出され、前の命令のステップ遅延中に発生したエッジは検出されません。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-21

Page 22: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

図 32-3 に、モード 0 動作のタイミング例を示します。

図 32-3: エッジ センシティブ命令 ( 命令完了後ステップ遅延を挿入する ) の動作

32.4.9.2.2 モード 1: PTGITM<1:0> = 0x01( 連続エッジ検出、命令完了後にステップ遅延を挿入しない )

このモードでは、PTGWHI または PTGWLO命令を実行すると即座にトリガ入力の連続的な監視が始まります。トリガエッジを検出した時点で命令の実行は完了します。

ステップ遅延カウンタの有効 / 無効に関係なく、このモードは命令実行完了後にステップ遅延を挿入しません。

図 32-4 に、モード 1 動作のタイミング例を示します。

図 32-4: エッジ センシティブ命令 ( 命令完了後ステップ遅延を挿入しない ) の動作

COMMAND

EXStep DelayEX Step DelayEXStep Delay

Transition not recognized

Transition recognized;

Edge detect logic reset

at the end of each command

Trigger Source

Input to PTG

No transition recognized

EX

command execution stops

Note: 「EX」は PTG ステップ命令が実行中である事を示します。

Note: エッジ検出ロジックは命令実行完了時にリセットされます。PTGWHIまたは PTGWLO命令の実行中または前の命令のステップ遅延中に発生したエッジだけが検出されます。

COMMAND

EXEX Step DelayEXStep Delay

Transition not recognized Transition recognized;

Edge detect logic reset

at the end of each command

Trigger Source

Input to PTG

No transition recognized

EX

command execution stops

Note: 「EX」は PTG ステップ命令が実行中である事を示します。

DS70669A_JP - p. 32-22 © 2013 Microchip Technology Inc.

Page 23: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

32.4.9.2.3 モード 2:PTGITM<1:0> = 0x10( レベル検出、命令完了後にステップ遅延を挿入する )

このモードでは、PTGWHI または PTGWLO命令を実行すると即座に選択したトリガ入力のレベルをサンプリングします (PTG クロックあたり 1 回サンプリング )。

ステップ遅延を有効にした場合、トリガ条件が発生しないと、ステップ遅延が終了するまで待機した後にトリガ入力を再度サンプリングします。トリガ条件が発生した時点で命令実行は完了し、ステップ遅延を再度挿入します。

ステップ遅延を無効にした場合、トリガ条件が発生しないと、次の PTG クロックサイクルの最初にトリガ入力を再度サンプリングします。トリガ条件が発生した時点で命令実行は完了し、即座に後続命令の実行が始まります。

図 32-5 に、モード 2 動作のタイミング例を示します。

図 32-5: レベル センシティブ 命令 ( 命令完了後ステップ遅延を挿入する ) の動作

Note 1: この動作モードはレベル センシティブであるため、PTGWHIまたは PTGWLO命令 の実行開始時に入力トリガレベルが「真」であれば、即座に入力トリガ条件は有効と認識されます。

2: 入力はラッチされないため、有効なトリガ条件は命令実行中にのみ認識されます。

COMMAND 1

EXEX EX

Trigger Source andInput to PTG

EXEX

COMMAND 2

Valid level but not during the commandexecution.Therefore, not recognized.

Valid level during the command executionTherefore, command terminates (with Step delay)

Step DelayStep Delay Step Delay Step Delay Step Delay

Note: 「EX」は PTG ステップ命令が実行中である事を示します。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-23

Page 24: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

32.4.9.2.4 モード 3: PTGITM<1:0> = 0x11( サンプリング レベル検出、命令完了後にステップ遅延を挿入しない )

このモードでは、PTGWHI または PTGWLO命令を実行すると即座に選択したトリガ入力のレベルをサンプリングします (PTG クロックあたり 1 回サンプリング )。

ステップ遅延を有効にした場合、トリガ条件が発生しないと、ステップ遅延が終了するまで待機した後にトリガ入力を再度サンプリングします。有効なトリガ条件を検出した時点で命令実行は完了し、即座に後続命令の実行が始まります。ステップ遅延は挿入しません。

ステップ遅延を無効にした場合、トリガ条件が発生しないと、次の PTG クロックサイクルの最初にトリガ入力を再度サンプリングします。トリガ条件が発生した時点で命令実行は完了し、即座に後続命令の実行が始まります。

図 32-6 に、モード 3 動作のタイミング例を示します。

図 32-6: レベル センシティブ 命令 ( 命令完了後ステップ遅延を挿入しない ) の動作

32.4.9.3 ソフトウェア トリガを待機する

ソフトウェア生成トリガを待機するには、PTGCTRL 0x1011 ( エッジトリガ ) または PTGCTRL 0x1010 ( レベルトリガ ) のどちらかを指定します。ソフトウェア トリガを生成するには、 PTGSWT ビット (PTGCST<10>) をセットする必要があります。

PTGCTRL 0x1011命令は、PTGSWT ビットの「0」から「1」への遷移のみを検出します。こ の遷移は命令実行中に発生する必要があります。それ以外の場合、命令は待機し続けます。PTGSWT ビットは、PTGCTRL 0x1011 命令の実行完了時にハードウェアによって自動的にク リアされます ( 次のソフトウェア トリガ命令に備えて初期化されます )。図 32-7 に、エッジ セ ンシティブ ソフトウェア トリガの動作を示します。

図 32-7: エッジ センシティブ ソフトウェア トリガの待機動作

Note 1: この動作モードはレベル センシティブであるため、PTGWHIまたは PTGWLO命令 の実行開始時に入力トリガレベルが「真」であれば、即座に入力トリガ条件は有効と認識されます。

2: 入力はラッチされないため、有効なトリガ条件は命令実行中にのみ認識されます。

COMMAND

EXStep DelayEX EXStep Delay

Trigger Source

EX Step DelayEX Step Delay

Valid level but not during the commandexecution.Therefore, not recognized.

Valid level during the command execution.Therefore, command terminates (with Step delay)

(Non-trigger input command)

Note: 「EX」は PTG ステップ命令が実行中である事を示します。

and Input toPTG module

EX EX

PTGSWT

Input to PTG

Cleared at the end of instruction completion

PTGCTRL0x1001

Command repeats until valid trigger detected

Note: 「EX」は PTG ステップ命令が実行中である事を示します。

DS70669A_JP - p. 32-24 © 2013 Microchip Technology Inc.

Page 25: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

PTGCTRL 0x1010命令は、PTGSWT ビットのレベルに応答します。この命令は、PTGSWT = 1 を検出するまで待機します。命令開始時に PTGSWT = 1であれば、命令は即座に完了します。 PTGCTRL 0x1010命令はPTGSWTビットを自動的にクリアしません。PTGCTRL 0x1010命令の 実行完了時に、ユーザ アプリケーションで必要に応じて PTGSWT ビットをクリアできます。 図 32-8 に、レベル センシティブ ソフトウェア トリガの動作を示します。

図 32-8: レベル センシティブ ソフトウェア トリガの待機動作

PTGSWT ビットと PTG ステップ命令を使って割り込みを生成する事により、PTG モジュールとアプリケーション ソフトウェア間の動作を連係させる事ができます。

32.4.9.4 GP タイマを待機する

シーケンサで 2 つの 16 ビット汎用 (GP) タイマ (PTGT0、PTGT1) を使って特定期間の待機動作を実行できます。全てのタイマは、デバイスがリセット状態になるか PTG モジュールが無効 (PTGEN = 0) になるとクリアされます。GP タイマの書き込み、変更、初期化はステップ命 令を使って実行できます。

各 GP タイマは、インクリメント カウンタ (PTGTx) と制限値レジスタ (PTGTxLIM) により構 成されます。モジュールが無効の場合、制限値レジスタの値は CPU 書き込みにより変更できます。モジュールが有効の場合、制限値レジスタの値は PTG シーケンサにより変更できます。制限値レジスタから読み出されるデータの内容は、カウンタ / タイマ可視性制御ビット(PTGIVIS) の状態によって決まります。

動作中、タイマは PTG クロックの立ち上がりエッジでインクリメントします (PTGCST レジスタで定義 )。ユーザは、適切な PTGCTRL PTGTx命令 ( 選択した GP タイマを待機する命令 ) を 実行する事により、GP タイマを使った待機動作を指定できます。

GP タイマを待機する場合、命令はタイマ (Timer0 または Timer1) の値が制限値 ( それぞれPTGT0LIM または PTGT1LIM) に達するまで待機します。制限値に達した時点でステップ命令の実行は完了し、次の命令の実行が始まります。また、タイマは次回の使用に備えてクリアされます。

32.4.9.5 ステップ命令遅延

ステップ遅延タイマ (SDLY) を使うと、各ステップ命令の実行に一定長さの時間を与える事ができます。通常は、周辺モジュール機能の実行時間 (ADC 変換時間等 ) に等しいステップ遅延を指定します。ステップ遅延を使って適切なレートのトリガ出力信号を生成する事により、対象周辺モジュールでのオーバーロードを防ぐ事ができます。

PTGSDLIM レジスタは、各ステップ命令の実行に追加する時間を PTG クロック数で定義します。

既定値では SDLY は無効です。SDLY は、PTGCTRL 0x0110命令で有効にし、PTGCTRL 0x0010 命令で無効にします。これらの命令はステップキュー内に配置できます。

Note: レベル センシティブ ソフトウェア トリガ (PTGCTRL 0x1010) は一部のデバイス だけで利用できます。詳細は各デバイスのデータシートを参照してください。

EX EX

PTGSWT and Input to PTG module

PTGSWT bit not cleared by hardware

PTGCTRL0x1010

Note: 「EX」は PTG ステップ命令が実行中である事を示します。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-25

Page 26: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

動作中、SDLY は PTGCST レジスタで定義した PTG クロックレートでインクリメントします。PTGSDLIM レジスタの値は、ステップ遅延タイマ制限値として参照されます。ステップ遅延は各命令の実行後に挿入されます。従って、全てのステップ命令は PTGSD タイマが制限値に達するまでストールします。制限値に達した時点で命令の実行は完了し、次の命令の実行が始まります。また、次の命令の実行に備えるため、タイマは各命令の実行中にクリアされます。

エッジ センシティブ命令 ( エッジ センシティブ モードで動作中の PTGCTRL 0x1011 および PTGWHI/PTGWLO命令 )のトリガ源は、適切なエッジ (状態遷移 )を認識するためにシーケンサ外部の追加ハードウェアを備えます。後続の命令がこれらの入力トリガの有効なエッジを検出できるよう、このハードウェアは各命令の最後にリセットされます。ステップ命令の実行後、挿入されたステップ遅延中に有効なエッジが発生しても、後続のステップ命令はそれを認識しません。図 32-9 にステップ命令遅延の動作を示します。

図 32-9: ステップ命令遅延の動作

32.4.10 PTG 入力トリガ ウォッチドッグ タイマ

下記の命令を実行する場合、PTG は外部イベントが発生するまで無期限に待機する可能性があるため、ウォッチドッグ タイマ (WDT) が必要です。

• PTGWHI命令 : ハードウェア トリガの立ち上がりエッジまたは HIGH 状態を待機する

• PTGWLO命令 : ハードウェア トリガの立ち下がりエッジまたは LOW 状態を待機する

WDT は、命令の実行開始時点で有効になり、カウントを始めます。命令の実行が完了すると、ステップ遅延を挿入する前に WDT は無効になります。上記以外の全ての命令は、あらかじめ定義したサイクル数で完了します。

32.4.10.1 動作の概要

WDT タイムアウト周期中に待機していたイベントが発生しなかった場合、PTG モジュールは下記のように動作します。

1. 実行中の命令を中止する。

2. シーケンサを一時停止する (PTGSTRT = 0)。

3. PTGWDTO を「1」にセットする。

4. プロセッサに対してウォッチドッグ エラー割り込みを発行する。

ユーザは、ウォッチドッグエラー割り込みを使うか、あるいはPTGWDTOビット (PTGCST<6>)を周期的にポーリングする事により、WDT イベントの発生を判定できます。

Note: PTGSDLIM レジスタの値を 0x0000 に設定した場合、ステップ遅延タイマを有効にしてもPTGクロックは一切挿入されません。PTGSDLIMレジスタの値を0x0001に設定した場合、ステップ遅延タイマを有効にすると、後続の各命令には 1 PTG のステップ遅延 (1 PTG クロック ) が挿入されます。

EX Step Delay EXStep DelayEX EX EX

CommandCommandPTGCTRL SDOFF

PTGCTRL SDON

0 1 2 3 54 06 1 2 3 4 5 6PTGSD

PTGSD equal to PTGSDLIM

PTGSD equal to PTGSDLIM

Note: 「EX」は PTG ステップ命令が実行中である事を示します。

Note: PTGCTRL 0x1011または PTGCTRL 0x1010命令の実行には、PTG ウォッチドッグ タイマは不要です。この場合、他の手段でデバイスの正常動作を監視する事が前提となります。

DS70669A_JP - p. 32-26 © 2013 Microchip Technology Inc.

Page 27: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

32.4.10.2 設定

WDT は PTGWDT<2:0> ビット (PTGCON<2:0>) で設定します。WDT は、PTGCON レジスタの PTGCLK<2:0> および PTGDIV<4:0> ビットの定義に従って PTG クロックをカウントします。詳細は 32.4.4「PTG クロックの選択」参照してください。WDT タイムアウト カウント値 は PTGWDT<2:0> ビットで選択します。PTGWDT ビットを「0x000」に設定すると、WDT は無効になります。

32.4.10.3 ウォッチドッグ イベントからの復帰

WDT イベントが発生した場合、問題の原因を特定して対処した後にステップ命令シーケンスを続行する事も、単純にシーケンスを最初から実行し直す事もできます。

PTGWDTO ビットをクリアして PTG シーケンスをステップ用キューの先頭から再度実行するには、PTG モジュールを一度無効 (PTGEN = 0) にしてから有効 (PTGEN = 1) にし、その後に シーケンスの実行を開始 (PTGSTRT = 1) します。

あるいは、シーケンスはリセットしたわけではなく一時停止しているだけであるため、PTGQPTRレジスタをチェックして問題が生じたステップ命令を判別して修正動作を実行する事もできます。問題が生じた命令は、PTGQPTR レジスタが更新される前に停止します。従って、WDT イベント後も PTGQPTR レジスタは問題が発生した命令を指しています。PTGWDTOビットをクリアした後に PTGSTRT ビットを「1」にセットすると、同じ命令から実行を再開できます。

32.4.11 PTG モジュールの出力

特定のステップ命令を実行する事により、PTG モジュールでトリガ、割り込み、ストローブデータ出力を生成できます。

32.4.11.1 トリガ出力

PTG モジュールは最大で 32 の独立したトリガ出力信号を生成できます。トリガ出力機能には下記の 2 種類があります。

• 単独トリガ

• ブロードキャスト トリガ

PTGTRIG命令を使うと、PTGモジュールが備える32のトリガ出力のいずれか1つで単独出力トリガを生成できます。

単独トリガ出力は主に各 ADC 入力の変換動作を別々にトリガするために使いますが、汎用 I/Oポートを含む任意の機能に割り当てる事もできます。PTG モジュールを ADC モジュールに接続する場合、PTG の各単独トリガ出力信号を ADC モジュール内の特定のアナログ入力変換コントローラに 1 つずつ割り当てます。

ブロードキャスト トリガ出力機能は PTGBTE レジスタで定義します。PTGBTE レジスタの各 ビットは、関連付けられた 1 つのトリガ出力に対応します。PTGBTE レジスタのいずれかのビットをセットしてブロードキャスト トリガ ステップ命令 (PTGCTRL 0x1111) を実行すると、 そのビットに対応するトリガ出力がアサートされます。ブロードキャスト トリガ出力を使う と、1 つのステップ命令で多数のトリガ出力を同時に生成できます。

32.4.11.2 割り込み出力

PTG モジュールは最大 16 の独立した割り込み要求信号を生成できます。これらの信号を使ってアプリケーション ソフトウェアと相互に作用する事により、より複雑な機能を実装できます。

PTGIRQ命令を使うと、PTG モジュールから各割り込みパルスを個別に生成できます。

Note 1: WDT はステップ遅延を挿入する前に無効になります。このため、適切な WDT タイムアウト値を求める際にステップ遅延を考慮する必要はありません。

2: PTGSTRT = 1 ( シーケンサが命令を実行中 ) の場合、PTGCON レジスタ内の一部 のビットは読み出しのみ可能です。レジスタ 32-2 を参照してください。

Note: ユーザは、WDT イベント後に PTGWDTO ビットをクリアする必要があります。PTGWDTOビットをクリアしなくても後続のモジュール動作の妨げにはなりませんが、このビットによる WDT イベントのポーリングはできなくなります。

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-27

Page 28: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

32.4.12 ストローブ出力

PTG モジュールのストローブ出力は、AD1CHS0 レジスタへの書き込みに使えます。

PTGCTRL 0x1110 命令は、PTGL0 レジスタの内容を AD1CHS0 レジスタに書き込みます。 PTGL0 レジスタは、PTGADDおよび PTGCOPY命令を使って変更できます。

PTGCTRL 0x1100 命令は、PTGC0 レジスタの内容を AD1CHS0 レジスタに書き込みます。 PTGCTRL 0x1101 命令は、PTGC1 レジスタの内容を AD1CHS0 レジスタに書き込みます。

32.4.12.1 出力タイミング

全てのトリガ、割り込み、データストローブ出力は、PTG 実行クロックの立ち上がりエッジで対応するステップ命令の実行が始まった時点で ( すなわち、ステップ遅延タイマによる遅延時間が挿入される前に )、PTG ステートマシンによって内部でアサートされます。

パルスモード (PTGTOGL = 0) の場合、トリガ出力信号のパルス幅は PTGPWD<3:0> ビット (PTGCON<7:4>)によって定義されます (1~ 16の任意のPTGクロックサイクル数に設定可能 )。既定値は 1 PTG クロックサイクルです。

トグルモード (PTGTOGL = 1) での動作については 32.4.12.1.2「トグルモード (PTGTOGL = 1) の場合」を参照してください。

PTGCTRL BTRIGブロードキャスト トリガ命令を使って複数パルスをグローバルに制御する場 合も、TRIG 出力のパルス幅は PTGPWD<3:0> ビット (PTGCON<7:4>) によって定義されます(1~16の任意のPTGクロックサイクル数に設定可能)。既定値は1 PTGクロックサイクルです。

32.4.12.1.1 パルスモード (PTGTOGL = 0) の場合

PTGTOGL ビット (PTGCST<12>) = 0の状態で単独トリガ出力を生成する場合、またはブロー ドキャスト トリガ出力を生成する場合、TRIG 出力のパルス幅は PTGPWD<3:0> ビットによっ て決まります。

32.4.12.1.2 トグルモード (PTGTOGL = 1) の場合

PTGTOGL ビット (PTGCST<12>) = 1 の状態で単独トリガ出力を生成すると、PTGTRIG 命令 を再度実行するまで TRIG 出力はセットされたままになります。PTGTRIG 命令を実行すると、PTG 実行クロックの最初に TRIG 出力がトグルします。

Note: 命令がパルス幅遅延カウンタをトリガすると、カウンタは PTG クロックに同期してリセットし、パルスは終了します ( 最小パルス幅は 1 PTG クロックサイクル )。

Note: PTGCTRL BTRIG ブロードキャスト トリガ命令で生成するトリガは、パルスモード でのみ動作可能です (PTGTOGL ビットの状態は影響しません )。

Note: 下記の場合を除き、PTGTOGL ビットは PTGCTRL BTRIGブロードキャスト トリ ガ生成命令の動作に影響しません。

• 全てのブロードキャスト トリガのパルス幅は常にPTGPWD<3:0>ビットの設定 によって定義されます。

• PTGTOGL ビットがセットされているためにターゲットのトリガ出力が既に論理「1」状態になっていた場合、PTGCTRL BTRIG命令を実行しても効果はなく、 トリガ出力は論理「1」のまま遷移しません。

DS70669A_JP - p. 32-28 © 2013 Microchip Technology Inc.

Page 29: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

32.5 アプリケーション例

32.5.1 位相シフト波形の生成

図 32-10 に、位相をシフトした波形を生成するアプリケーション例を示します。この例では、出力コンペア 1 は Timer2 を同期源としてパルスを生成します。このパルスの立ち上がりエッジを PTG モジュールに対するトリガ入力として使います。PTG モジュールは、トリガ検出時に PTG モジュールを同期源とする出力コンペア 2 をトリガし、出力コンペア 2 は位相シフトした波形を生成します。

図 32-10: 位相シフト波形を生成するアプリケーション例

OC1 pin

Timer

OC1RS

OC1R 0x02EE

0x08CA

0x0BB7

0x02EE

0x08CA

0x0BB7

OC2 pin

Timer

OC2RS

OC2R

OC1 triggers

PTG, which

triggers OC2

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-29

Page 30: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

例 32-1 に、位相シフト波形を生成するためのサンプルコードを示します。

例 32-1: 位相シフト波形の生成#include "p33Exxxx.h"

/* PTG Commands */#define PTGWHI (0x4<<4)#define PTGTRIG (0x8<<4)#define PTGJMP (0xA<<4)

_FOSCSEL(FNOSC_FRC); _FOSC(FCKSM_CSECMD & POSCMD_XT & OSCIOFNC_OFF & IOL1WAY_OFF);_FWDT(FWDTEN_OFF);_FPOR(ALTI2C1_ON & ALTI2C2_ON);_FICD(ICS_PGD2 & JTAGEN_OFF);

void Init_Timer(void);void Init_Ptg(void);void Init_PPS(void);void Init_OC1(void);void Init_OC2(void);

int main(void){// Configure the device PLL to obtain 60 MIPS operation.The crystal frequency is 8 MHz.// Divide 8 MHz by 2, multiply by 60 and divide by 2.This results in Fosc of 120 MHz. // The CPU clock frequency is Fcy = Fosc/2 = 60 MHz. PLLFBD = 58; /* M = 30 */CLKDIVbits.PLLPOST = 0; /* N1 = 2 */CLKDIVbits.PLLPRE = 0; /* N2 = 2 */OSCTUN = 0;

// Initiate Clock Switch to Primary// Oscillator with PLL (NOSC= 0x3)__builtin_write_OSCCONH(0x03); __builtin_write_OSCCONL(0x01);while (OSCCONbits.COSC != 0x3); while (_LOCK == 0); /* Wait for PLL lock at 60 MIPS */

Init_Timer();Init_Ptg();Init_PPS();Init_OC1();Init_OC2();

PTGCSTbits.PTGEN = 1; // Enable the PTGPTGCSTbits.PTGSTRT = 1; // Start the PTGT2CONbits.TON = 1; // Start the timer

while(1);}

void Init_Timer( void ){// Initialize and enable Timer2

T2CON = 0x0000; // Timer resetTMR2 = 0x0000; // Clear timer registerPR2 = 0x0BB7; // Load the period value

}

void Init_Ptg( void ){PTGCST = 0; // Clear the control/status registerPTGCON = 0; // Clear the control register

/* Program the command sequence */_STEP0 = PTGWHI | (0x7); // Wait for OC1 input trigger event_STEP1 = PTGTRIG | (0x1); // Trigger PTG02 (trig/sync for OC2)_STEP2 = PTGJMP | (0x0); // Jump to _STEP0

}

DS70669A_JP - p. 32-30 © 2013 Microchip Technology Inc.

Page 31: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

例 32-1: 位相シフト波形の生成 ( 続き )

void Init_PPS(void){_RP39R = 0x10; // Set up the PPS for OC1_RP40R = 0x11; // Set up the PPS for OC2

}

void Init_OC1(void){OC1R = 0x02EE; // Initialize the compare registerOC1RS = 0x08CA; // Initialize the secondary compare register

// Initialize Output Compare ModuleOC1CON1 = 0x0; // Clear all control bitsOC1CON2 = 0x0; // Clear all control bitsOC1CON1bits.OCTSEL = 0x7; // Select peripheral clock as clock sourceOC1CON2bits.SYNCSEL = 0xC; // Select Timer2 as sync sourceOC1CON1bits.OCM = 0x5; // Double compare continuous pulse mode

}

void Init_OC2(void){OC2R = 0x02EE; // Initialize the compare registerOC2RS = 0x08CA; // Initialize the secondary compare register

// Initialize Output Compare ModuleOC2CON1 = 0x0; // Clear all control bitsOC2CON2 = 0x0; // Clear all control bitsOC2CON1bits.OCTSEL = 0x7; // Select peripheral clock as clock sourceOC2CON2bits.SYNCSEL = 0xA; // Select PTG as sync sourceOC2CON1bits.OCM = 0x5; // Double compare continuous pulse mode

}

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-31

Page 32: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

32.5.2 複数サイクルにまたがるインターリーブ サンプリング

図 32-11 に、電流負荷が温度、電圧、用途によって大きく変化するシステムで電力を正確に計測する必要のあるアプリケーションの電流波形を示します。電流波形は用途に応じて大きく変化しますが、PWM サイクルごとの波形は比較的安定しています。

この例では、電流値または電圧値 ( またはその両方 ) を複数 PWM サイクルにわたってインターリーブ方式で多数回収集します。収集中にデータをメモリに保存し、後で処理 ( 積分 ) して正確な電力値を求めます。

このようなアプリケーションの場合、ソフトウェアで ADC サンプリングのタイミングを正確に制御する事はほとんど不可能です。

図 32-11: 平均電力を求めるアプリケーション例

Trigger Output (repeat 25x)

50 s

PWM

CURRENT CURRENT

Tri

gge

r In

pu

t

Trigger Delay = 5s

Delay = 1s

Delay = 1s

Trigger Delay = 6s Generate Interrupt 1

Generate Interrupt 1

Generate Interrupt 4

Tri

gge

r In

put

Trigger Output (repeat 25x)

Note: トリガ遅延値を変更して後続のサンプリング トリガのタイミングをシフトする事により、サンプリ

ングのインターリーブを可能にします。

DS70669A_JP - p. 32-32 © 2013 Microchip Technology Inc.

Page 33: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

32.5.3 インターリーブ サンプリングを実行するステップ命令プログラム

以下では、図 32-11 に示したタイミング シーケンスを実装するためのステップ命令プログラミ ングについて説明します。

この例では下記を前提とします。

1. トリガ入力 1 を PWM 信号に接続する。PWM 信号の立ち上がりエッジでシーケンスを開始する。

2. 出力トリガ 3 を ADC モジュールに接続する。この信号は ADC モジュールのサンプリング / 変換処理をトリガする。

3. 割り込み 1 を生成してサブシーケンスが始まった事をプロセッサに知らせる ( ステータス情報を提供する )。

4. 割り込み 4 を生成して全てのシーケンスが完了した事をプロセッサに知らせる。

5. ADC クロックを PTG クロック源として選択する。

6. ADC クロック周波数は 14 MHz とする。

7. 最初のトリガ遅延は 5 s とする。

8. 2 番目のトリガ遅延は 6 s とする。

9. 各 PWM サイクルで ADC を 25 回トリガする。

10. 基本シーケンスを 2 回実行する。

制御レジスタは下記のように初期化します。

• PTGT0LIM = 0x0046 (5 s x 14 クロック /s)

• PTGT1LIM = 0x000B ( [1 s x 14 クロック /s] - 3 ステップクロック )

• PTGC0LIM = 0x0018 ( 内側ループで 25 回の繰り返し )

• PTGC1LIM = 0x0001 ( 外側ループで 2 回の繰り返し )

• PTGHOLD = 0x0046 (5 s x 14 クロック /s)

• PTGADJ = 0x000E (1 s x 14 クロック /s)

• PTGSDLIM = 0x0000 ( ステップ遅延なし )

• PTGBTE = 0x0000 ( ブロードキャスト トリガは無効 )

• PTGQPTR = 0x0000 ( ステップキューの開始 )

• PTGCST = 0x8200 (PTGQPTR の初期化後 )

例 32-2: PTGQUE 内のステップ命令/* PTG Commands */#define PTGCTRL (0x0<<0)#define PTGADD (0x1<<4)#define PTGCOPY (0x1<<4)#define PTGWHI (0x4<<4)#define PTGIRQ (0x7<<4)#define PTGTRIG (0x8<<4)#define PTGJMP (0xA<<4)#define PTGJMPC0 (0xC<<4)#define PTGJMPC1 (0xE<<4)

// Outer loop_STEP0 = PTGWHI | 0x1; // Wait for positive edge trigger 1_STEP1 = PTGCTRL | 0x8; // Start PTGT0, wait for time out_STEP2 = PTGIRQ | 0x1; // Generate IRQ 1

// Inner loop_STEP3 = PTGTRIG | 0x3; // Generate output trigger 3_STEP4 = PTGCTRL | 0x9; // Start PTGT1, wait for time out_STEP5 = PTGJMPC0 | 0x3; // Jump to STEP3 if PTGC0!= PTGC0LIM, increment PTGC0

// End inner loop_STEP6 = PTGADD | 0x1; // Add PTGADJ to PTGT0LIM_STEP7 = PTGJMPC1 | 0x0; // Jump to STEP0 if PTGC1!= PTGC1LIM, increment PTGC1

// End outer loop_STEP8 = PTGIRQ | 0x4; // Generate IRQ 4_STEP9 = PTGCOPY | 0x8; // Copy PTGHOLD to PTGT0LIM (restore original value)_STEP10 = PTGJMP | 0x0; // Jump to start of queue

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-33

Page 34: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

32.5.4 複数レートによるサンプリング

図 32-12 に、トリガ出力 2 を使って ADC のアナログ入力 ( 電流 ) を高速 (1x レート ) にサンプリングし、トリガ出力 3 を使って別のアナログ入力 ( 電圧 ) を 1/2 のレートでサンプリングし、トリガ出力4~7を使ってその他のアナログ入力を1/8のレートでサンプリングするアプリケーション例を示します。これは、AC 電源ラインのゼロ交差から指定時間後にトリガするシリコン制御整流器 (SCR) を使ったモータ制御アプリケーションの例です。

この例では単純な 1/2n 倍のサンプリング レートを使っていますが、PTG モジュールはアプリ ケーションの要件に応じて非常に柔軟に複数のサンプリング レートを生成できます。

図 32-12: 複数レートによるサンプリングのアプリケーション例

Load

Trigger Output 2 for

Trigger Delay Timer=2ms

Rectified

Zero Crossing Detect

TRIAC Enabled via Trigger 1 Output

Trigger Output 3 for

Broadcast Triggers 4 through 7 to Sample

10ms

ptg_

trig

_in[

0]

Current

Voltage Sampling (1/2 Rate)

Current Sampling (1x)

Analog Inputs 4 through 7 at 1/8 Rate

AC Voltage(50 Hz)

Delay = (10ms - 2ms)/8=1ms

DS70669A_JP - p. 32-34 © 2013 Microchip Technology Inc.

Page 35: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ェネ

レー

タ(P

TG

)

32

32.5.5 複数レートでサンプリングを実行するステップ命令プログラム

以下では、図 32-12 に示したタイミング シーケンスを実装するためのステップ命令プログラミ ングについて説明します。

この例では下記を前提とします。

• トリガ入力 0 をゼロ交差検出に接続する。ゼロ交差検出信号の立ち上がりエッジでシーケンスを開始する。

• トリガ入力 0 からトリガ出力 1 の生成までのトリガ遅延は 2 ms とする。

• トリガ出力 1 でアプリケーション回路内の SCR を有効にする。

• トリガ出力 2 を ADC に接続し、電流値のサンプリングを 1 ms 間隔でトリガする。

• トリガ出力 3 を ADC に接続し、電源電圧値のサンプリングを 2 ms 間隔でトリガする。

• トリガ出力 4/5/6/7 を ADC に接続し、他のデータ値を毎サイクル 1 回サンプリングする。

• ADC クロックを PTG クロック源として選択する。

• ADC クロック周波数は 14 MHz とする。

制御レジスタは下記のように初期化します。

• PTGT0LIM = 0x6D60 (2 ms x 14 クロック /s)

• PTGT1LIM = 0x36B0 (1 ms x 14 クロック /s)

• PTGC0LIM = 0x0018 ( 内側ループで 25 回の繰り返し )

• PTGC1LIM = 0x0001 ( 外側ループで 2 回の繰り返し )

• PTGHOLD = 0x0000 ( 未使用 )

• PTGADJ = 0x0000 ( 未使用 )

• PTGSDLIM = 0x0000 ( ステップ遅延なし )

• PTGBTE = 0x00F0 ( ブロードキャスト トリガ 4 ~ 7 を有効にする )

• PTGQPTR = 0x0000 ( ステップキューの開始 )

• PTGCST = 0x8200 (PTGQPTR の初期化後 )

32.5.5.1 高精度時間計測

各ステップ命令の実行には少なくとも 2 クロックを要するため、より正確に時間を計測するには、トリガ待機命令、トリガ 4 ~ 7 生成命令、トリガ遅延待機命令の遅延を補償する値をPTGDLY レジスタに書き込む必要があります。このため、PTGTDLY レジスタの初期化値を28,000 – 6 = 27,994 とします。同様に、PTGTMR レジスタの値を少し小さめの 14,000 – 4 = 13,996 とします。

例 32-3: PTGQUE レジスタ内のステップ命令/* PTG Commands */#define PTGCTRL (0x0<<0)#define PTGWHI (0x4<<4)#define PTGTRIG (0x8<<4)#define PTGJMP (0xA<<4)#define PTGJMPC0 (0xC<<4)

_STEP0 = PTGWHI | 0x0; // Wait for positive edge trigger 0_STEP1 = PTGCTRL | 0xF; // Generate output triggers 7, 6, 5 and 4 (broadcast)_STEP2 = PTGCTRL | 0x8; // Start PTGT0, wait for time-out_STEP3 = PTGTRIG | 0x1; // Generate output trigger 1

// Start main loop_STEP4 = PTGCTRL | 0x9; // Start PTGT1, wait for time-out_STEP5 = PTGTRIG | 0x2; // Generate output trigger 2_STEP6 = PTGTRIG | 0x3; // Generate output trigger 3_STEP7 = PTGCTRL | 0x9; // Start PTGT1, wait for time-out_STEP8 = PTGTRIG | 0x2; // Generate output trigger 2_STEP9 = PTGJMPC0 | 0x4; // Jump to STEP4 if PTGC0!= PTGC0LIM, increment PTGC0

// End main loop_STEP10 = PTGJMP | 0x0; // Jump to start of queue

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-35

Page 36: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

32.6 省電力モードPTG モジュールは下記の 3 種類の省電力モードをサポートします。

• 無効モード : PTG モジュールへのクロック供給が停止します。

• アイドルモード : プロセッサコアと選択された一部の周辺モジュールがシャットダウンします。

• スリープモード : デバイス全体がシャットダウンします。

32.6.1 無効モード

PTGEN = 1の場合、モジュールは動作モード中であり、完全な電力供給を受けて完全に機能し ます。PTGEN = 0に設定すると、モジュールは動作を停止します。回路の PTG クロック部分 は動作を停止し、消費電力は最小となります。制御レジスタだけは機能し続け、ソフトウェアで読み / 書きしてモジュールの動作モードを変更できます。モジュール シーケンサはリセット されます。

32.6.2 アイドルモード

アイドル中も PTG モジュールを完全に動作させるには、アイドルに移行する前に PTGSIDLビットをクリアする必要があります。PTGSIDL = 1の場合、アイドル中のモジュールの挙動は スリープ中と同じです。

32.6.3 スリープモード

PTG モジュールが有効 (PTGEN = 1) な状態でスリープに移行すると、クロックの動作が再開 するまでモジュールは現在の状態で保留されます。このような状況は、予期せぬ動作を生じる可能性があるため避けるべきです。スリープに移行する前に、全ての周辺モジュールを適切な手順でシャットダウンする事を推奨します。

DS70669A_JP - p. 32-36 © 2013 Microchip Technology Inc.

Page 37: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

© 2013

Microchip T

echnology Inc.D

S70669A

_JP - p. 3

2-37

セク

ショ

ン32. ペ

リフ

ェラ

ル ト

リガ

ジェ

ネレ

ータ

(PT

G)

ペリフ

ジェネ 32

32

レ Bit 3 Bit 2 Bit 1 Bit 0 全リセット

PT — — PTGITM<1:0> 0000

PT — PTGWDT<2:0> 0000

PT OC4TSS OC3TSS OC2TSS OC1TSS 0000

PT 0000

PT 0000

PT 0000

PT 0000

PT 0000

PT 0000

PT 0000

PT 0000

PT PTGQPTR<4:0> 0000

PT 0>(3) xxxx

凡例

No )。

ェラル トリガ レータ(PTG)

.7 レジスタマップ

32-2: PTG 関連のレジスタマップ

ジスタ名 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4

GCST PTGEN — PTGSIDL PTGTOGL — PTGSWT PTGSSEN PTGIVIS PTGSTRT PTGWDTO — —

GCON PTGCLK<2:0> PTGDIV<4:0> PTGPWD<3:0>

GBTE ADCTS4 ADCTS3 ADCTS2 ADCTS1 IC4TSS IC3TSS IC2TSS IC1TSS OC4CS OC3CS OC2CS OC1CS

GT0LIM PTGT0LIM<15:0>

GT1LIM PTGT1LIM<15:0>

GSDLIM PTGSDLIM<15:0>

GC0LIM PTGC0LIM<15:0>

GC1LIM PTGC1LIM<15:0>

GHOLD PTGHOLD<15:0>

GADJ PTGADJ<15:0>

GL0 PTGL0<15:0>

GQPTR — — — — — — — — — — —

GQUEn STEPx<7:0>(2) STEPy<7:

: — = 未実装、「0」として読み出し ; x = ビットは未知。リセット値は 16 進数で表記。

te 1: PTG キューレジスタの実際の数はパラメータで設定されます。この表に示した数は PTG_QUEUE_SIZE = 16 に対応します (32 ステップ命令に相当

2: ビット名の添え字「x」は奇数番号のステップキュー ポインタを表します。

3: ビット名の添え字「y」は偶数番号のステップキュー ポインタを表します。

Page 38: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

32.8 関連アプリケーション ノート本セクションに関連するアプリケーション ノートの一覧を下に記載します。一部のアプリケー ション ノートは dsPIC33E/PIC24E 製品ファミリ向けではありません。ただし概念は共通して おり、変更が必要であったり制限事項が存在するものの利用が可能です。ペリフェラル トリガ ジェネレータ (PTG) モジュールに関連する最新のアプリケーション ノートは以下の通りです。

タイトル アプリケーション ノート番号

現在、関連するアプリケーション ノートはありません。 N/A

Note: dsPIC33E/PIC24E デバイス ファミリ関連のアプリケーション ノートとサンプル コードはマイクロチップ社のウェブサイト (www.microchip.com) でご覧になれます。

DS70669A_JP - p. 32-38 © 2013 Microchip Technology Inc.

Page 39: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

セクション 32. ペリフェラル トリガ ジェネレータ (PTG) ペ

リフ

ェラ

ル ト

リガ

ジェ

ネレ

ータ

(PT

G)

32

32.9 改訂履歴

リビジョン A (2011 年 9 月 )

本書の初版

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-39

Page 40: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

dsPIC33E/PIC24E ファミリ リファレンス マニュアル

NOTE:

DS70669A_JP - p. 32-40 © 2013 Microchip Technology Inc.

Page 41: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

© 2013 Microchip Technology Inc. DS70669A_JP - p. 32-41

本書に記載されているデバイス アプリケーション等に関する

情報は、ユーザの便宜のためにのみ提供されているものであ

り、更新によって無効とされる事があります。お客様のアプ

リケーションが仕様を満たす事を保証する責任は、お客様に

あります。マイクロチップ社は、明示的、暗黙的、書面、口

頭、法定のいずれであるかを問わず、本書に記載されている

情報に関して、状態、品質、性能、商品性、特定目的への適

合性をはじめとする、いかなる類の表明も保証も行いません。

マイクロチップ社は、本書の情報およびその使用に起因する

一切の責任を否認します。マイクロチップ社の明示的な書面

による承認なしに、生命維持装置あるいは生命安全用途にマ

イクロチップ社の製品を使用する事は全て購入者のリスクと

し、また購入者はこれによって発生したあらゆる損害、クレー

ム、訴訟、費用に関して、マイクロチップ社は擁護され、免

責され、損害をうけない事に同意するものとします。暗黙的

あるいは明示的を問わず、マイクロチップ社が知的財産権を

保有しているライセンスは一切譲渡されません。

商標

マイクロチップ社の名称とMicrochipロゴ、dsPIC、FlashFlex、KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、PIC32 ロゴ、rfPIC、SST、SST ロゴ、SuperFlash、UNI/O は、

米国およびその他の国におけるマイクロチップ・テクノロ

ジー社の登録商標です。

FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、MTP、SEEVAL、Embedded Control Solutions Company は、

米国におけるマイクロチップ・テクノロジー社の登録商標で

す。

Silicon Storage Technology は、その他の国におけるマイクロ

チップ・テクノロジー社の登録商標です。

Analog-for-the-Digital Age、Application Maestro、BodyCom、

chipKIT、chipKIT ロゴ、CodeGuard、dsPICDEM、

dsP ICD EM. ne t、d s P IC wo rk s、dsSPE AK、E CAN、

ECONOMONITOR、FanSense、HI-TIDE、In-Circuit SerialProgramming、ICSP、Mindi、MiWi、MPASM、MPF、MPLAB認証ロゴ、MPLIB、MPLINK、mTouch、Omniscient CodeGeneration、PICC、PICC-18、PICDEM、PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、SQI、Serial QuadI/O、Total Endurance、TSHARC、UniWinDriver、WiperLock、ZENA、Z-Scale は、米国およびその他の国におけるマイクロ

チップ・テクノロジー社の登録商標です。

SQTP は、米国におけるマイクロチップ・テクノロジー社の

サービスマークです。

GestICとULPPは、その他の国におけるMicrochip TechnologyGermany II GmbH & Co. & KG ( マイクロチップ・テクノロ

ジー社の子会社 ) の登録商標です。

その他、本書に記載されている商標は各社に帰属します。

©2012, Microchip Technology Incorporated, Printed in theU.S.A., All Rights Reserved.

ISBN: 978-1-62076-582-1

マイクロチップ社製デバイスのコード保護機能に関して次の点にご注意ください。

• マイクロチップ社製品は、該当するマイクロチップ社データシートに記載の仕様を満たしています。

• マイクロチップ社では、通常の条件ならびに仕様に従って使用した場合、マイクロチップ社製品のセキュリティ レベルは、現

在市場に流通している同種製品の中でも最も高度であると考えています。

• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、

マイクロチップ社データシートにある動作仕様書以外の方法でマイクロチップ社製品を使用する事になります。このような行

為は知的所有権の侵害に該当する可能性が非常に高いと言えます。

• マイクロチップ社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。

• マイクロチップ社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コー

ド保護機能とは、マイクロチップ社が製品を「解読不能」として保証するものではありません。

コード保護機能は常に進歩しています。マイクロチップ社では、常に製品のコード保護機能の改善に取り組んでいます。マイクロ

チップ社のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはそ

の他の著作物に不正なアクセスを受けた場合は、デジタル ミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利が

マイクロチップ社では、Chandler および Tempe ( アリゾナ州 )、Gresham ( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。マイクロチップ社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ®コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関するマイクロチップ社の品質システムは ISO 9001:2000 認証を取得しています。

QUALITY MANAGEMENT  SYSTEM CERTIFIED BY DNV 

== ISO/TS 16949 ==

Page 42: セクション 32. ペリフェラル トリガ ジェネレータ …ww1.microchip.com/downloads/jp/DeviceDoc/70669A_JP.pdfPTG モジュールはアナログ/ デジタル コンバータ(ADC)、出力コンパレータとPWM

DS70669A_JP - p. 32-42 © 2013 Microchip Technology Inc.

北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel:480-792-7200 Fax:480-792-7277技術サポート : http://www.microchip.com/supportURL: www.microchip.com

アトランタDuluth, GA Tel:678-957-9614 Fax:678-957-1455

ボストンWestborough, MA Tel:774-760-0087 Fax:774-760-0088

シカゴItasca, IL Tel:630-285-0071 Fax:630-285-0075

クリーブランドIndependence, OH Tel:216-447-0464

Fax:216-447-0643

ダラスAddison, TX Tel:972-818-7423 Fax:972-818-2924

デトロイトFarmington Hills, MI Tel:248-538-2250Fax:248-538-2260

インディアナポリスNoblesville, IN Tel:317-773-8323Fax:317-773-5453

ロサンゼルスMission Viejo, CA Tel:949-462-9523 Fax:949-462-9608

サンタクララSanta Clara, CA Tel:408-961-6444Fax:408-961-6445

トロントMississauga, Ontario, CanadaTel:905-673-0699 Fax:905-673-6509

アジア / 太平洋

アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel:852-2401-1200Fax:852-2401-3431

オーストラリア - シドニーTel:61-2-9868-6733Fax:61-2-9868-6755

中国 - 北京Tel:86-10-8569-7000 Fax:86-10-8528-2104

中国 - 成都Tel:86-28-8665-5511Fax:86-28-8665-7889

中国 - 重慶Tel:86-23-8980-9588Fax:86-23-8980-9500

中国 - 杭州Tel:86-571-2819-3187 Fax:86-571-2819-3189

中国 - 香港 SARTel:852-2943-5100 Fax:852-2401-3431

中国 - 南京Tel:86-25-8473-2460Fax:86-25-8473-2470

中国 - 青島Tel:86-532-8502-7355Fax:86-532-8502-7205

中国 - 上海Tel:86-21-5407-5533 Fax:86-21-5407-5066

中国 - 瀋陽Tel:86-24-2334-2829Fax:86-24-2334-2393

中国 - 深圳Tel:86-755-8864-2200 Fax:86-755-8203-1760

中国 - 武漢Tel:86-27-5980-5300Fax:86-27-5980-5118

中国 - 西安Tel:86-29-8833-7252Fax:86-29-8833-7256

中国 - 厦門Tel:86-592-2388138 Fax:86-592-2388130

中国 - 珠海Tel:86-756-3210040 Fax:86-756-3210049

アジア / 太平洋

インド - バンガロールTel:91-80-3090-4444 Fax:91-80-3090-4123

インド - ニューデリーTel:91-11-4160-8631Fax:91-11-4160-8632

インド - プネTel:91-20-2566-1512Fax:91-20-2566-1513

日本 - 大阪Tel:81-6-6152-7160 Fax:81-6-6152-9310

日本 - 東京Tel:81-3-6880- 3770 Fax:81-3-6880-3771

韓国 - 大邱Tel:82-53-744-4301Fax:82-53-744-4302

韓国 - ソウルTel:82-2-554-7200Fax:82-2-558-5932 または 82-2-558-5934

マレーシア - クアラルンプールTel:60-3-6201-9857Fax:60-3-6201-9859

マレーシア - ペナンTel:60-4-227-8870Fax:60-4-227-4068

フィリピン - マニラTel:63-2-634-9065Fax:63-2-634-9069

シンガポールTel:65-6334-8870Fax:65-6334-8850

台湾 - 新竹Tel:886-3-5778-366Fax:886-3-5770-955

台湾 - 高雄Tel:886-7-213-7828Fax:886-7-330-9305

台湾 - 台北Tel:886-2-2508-8600 Fax:886-2-2508-0102

タイ - バンコクTel:66-2-694-1351Fax:66-2-694-1350

ヨーロッパ

オーストリア - ヴェルスTel:43-7242-2244-39

Fax:43-7242-2244-393

デンマーク - コペンハーゲンTel:45-4450-2828 Fax:45-4485-2829

フランス - パリTel:33-1-69-53-63-20 Fax:33-1-69-30-90-79

ドイツ - ミュンヘンTel:49-89-627-144-0 Fax:49-89-627-144-44

イタリア - ミラノ Tel:39-0331-742611 Fax:39-0331-466781

オランダ - ドリューネンTel:31-416-690399 Fax:31-416-690340

スペイン - マドリッドTel:34-91-708-08-90Fax:34-91-708-08-91

イギリス - ウォーキンガムTel:44-118-921-5869Fax:44-118-921-5820

各国の営業所とサービス

11/29/12