DelSigMulti_001-54320.pdf

6 ~ 14-Bit Delta Sigma ( デルタ シグマ ) ADC データシート DelSigMulti V 1.2
001-67651 Rev. **
Single Slope 8-Bit ADC Data Sheet
Copyright © 2009-2011 Cypress Semiconductor Corporation. All Rights Reserved.
変調器
オーダー
デシメーシ
ョン
レート
サンプル
レート
(CLK=2
MHz)
分解能
サンプ
ル
レート
(CLK=8
MHz)
デシメ
ータ数
SC
ブロッ
ク
Flash
RAM
チャネル
(I/O ピ
ン)
CY8C28x45, CY8C28x43, CY8C28x52, CY8C28x33, CY8C28x23
1
32
6
15625.0
62500.0 2
2
148
3
2
1
64
7.5
7812.5
31250.0 2
2
156
3
2
1
128
9
3906.3
15625.0 2
2
185
5
2
1
256
10.5
1953.1
7812.5
2
2
185
5
2
2
32
8
15625.0
62500.0 2
2
187
5
2
2
64
10
7812.5
31250.0 2
2
216
7
2
2
128
12
3906.3
15625.0 2
2
216
7
2
2
256
14
1953.1
7812.5
2
2
216
7
2
1
32
6
15625.0
62500.0 3
6
180
6
3
1
64
7.5
7812.5
31250.0 3
6
192
6
3
1
128
9
3906.3
15625.0 3
6
234
9
3
1
256
10.5
1953.1
7812.5
3
6
234
9
3
2
32
8
15625.0
62500.0 3
6
215
6
3
2
64
10
7812.5
31250.0 3
6
257
9
3
2
128
12
3906.3
15625.0 3
6
257
9
3
2
256
14
1953.1
7812.5
3
6
257
9
3
1
32
6
15625.0
62500.0 4
8
200
7
4
1
64
7.5
7812.5
31250.0 4
8
216
7
4
1
128
9
3906.3
15625.0 4
8
271
11
4
1
256
10.5
1953.1
7812.5
8
271
11
4
Cypress Semiconductor Corporation
Document Number: 001-67651 Rev. **
•
198 Champion Court
4
•
San Jose, CA 95134-1709
•
408-943-2600
Revised February 21, 2011
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
変調器
オーダー
デシメーシ
ョン
レート
分解能
サンプル
レート
(CLK=2
MHz)
サンプ
ル
レート
(CLK=8
MHz)
デシメ
ータ数
SC
ブロッ
ク
Flash
RAM
チャネル
(I/O ピ
ン)
2
32
8
15625.0
62500.0 4
8
243
7
4
2
64
10
7812.5
31250.0 4
8
298
11
4
2
128
12
3906.3
15625.0 4
8
298
11
4
2
256
14
1953.1
7812.5
8
298
11
4
4
その他のコンバータについては、アプリケーション ノート 「アナログ - ADC の選択」AN2239 を参照し
てください。
特徴と概要
„
„
„
„
„
„
„
„
„
„
6-bit ~ 14-bit 分解能
2 ~ 4 チャネルの同期サンプリング
符号なしまたは符号付き 2 の補数のフォーマットによるデータ
最大サンプリング速度は 6 ビット分解能で 65,500 sps、14-bit 分解能で 7812 sps
ハードウェアに完全実装された SincN フィルタが、CPU オーバヘッドとアンチエイリアスの要件を
軽減
信号対雑音比を改善する 1 次または 2 次変調器。ユーザ選択可
入力範囲は内部及び外部リファレンス オプションによって選択可能
デジタルブロックが不要
構成ウィザードによって、相互に同期しているデルタ - シグマ ADC 測定の 2、3、4 チャネルからの選
択が簡単に
デシメータの内部タイマがデジタルブロックの使用を不要に
DelSigMulti ユーザ モジュールは、単一の出力サンプルを生成するために 32 ~ 256 の積分サイクルを必
要とする、積分型変換器です。マルチプレックス入力を変更すると、変更後最初の 2 つのサンプルが無
効になります。 DelSigMulti ユーザ モジュールは、最大 4 チャネルの同時、同期のデルタ - シグマ ADC
サンプリングをサポートします。
構成ウィザードによって、各チャネルで使用されるアナログブロック数と、各チャネルのデシメータオ
ーバーサンプル速度を簡単に選択できます。
モジュールを配置する前に、「パラメータ」のセクションをお読みください。
Document Number: 001-67651 Rev. **
Page 2 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
Note
1 チャネルのみ、または複数の非同期チャネルが必要なときは、通常の 「DelSig」または
「DelSigPlus」ユーザ モジュールを使います。
Figure 1.
DelSigMulti ブロック ダイアグラムの 1 チャネル
機能説明
図 1 に示すように、DelSigMulti ユーザ モジュールは 3 つの主要機能で構成されています。
„ 変調器
„ Sinc2 デシメーション フィルタ
„ タイミング信号発生器
各コンポーネントは、アプリケーションにおいてパフォーマンスとリソース利用の適正なバランスを実
現するために選択・調整できるオプションを提供します。
変調器
変調器は 1-bit オーバーサンプリング回路で、それが生成する 1 及び 0 の密度を単位として入力電圧を表
します。 変調器の出力は、複数の 1-bit サンプルをより高い分解能のサンプルに変換するローパス デシ
メーション フィルタにより、最終のサンプリング速度に低減されます。一般に、より高い復号化レート
( つまりより高いオーバーサンプリング速度 ) は、より高い分解能の結果を生成することができますが、
変調器の次数などその他の要因も関係します。
デルタシグマ変換器の主な利点は、変調器が行う 「ノイズ シェーピング」です。 通常、信号サンプリン
グに特有の量子化ノイズは、「DC」とサンプル周波数の半分またはナイキスト周波数の間の周波数で、
ほぼ均等に分散しています (「白」)。 簡単に言うと、デルタシグマ変調器は、量子化ノイズの一部を低
周波数から高周波数にシフトします。これは後で、デシメーション フィルタによって減衰されます。 2
つのスイッチド キャパシタ アナログ PSoC ブロックを必要とする 2 次変調器は、1 つのアナログ PSoC
ブロックのみを必要とする 1 次変調器よりも、ノイズ シェーピングで優れています。 256X のより高い
復号化レートで 2 次変調器は、1 次変調器に比べ、実効分解能において 3.5-bit の増加が見られます。
Document Number: 001-67651 Rev. **
Page 3 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
Figure 2.
1次変調器を備えた DelSigMulti の回路図
アナログ ブロックは、積分器として構成されます。コンパレータの出力極性はリファレンスマルチプレ
クサを構成し、それによってリファレンス電圧が入力に加算または入力から減算され、積分器に置かれ
るように構成されます。リファレンス制御は、積分器の出力をゼロに向かって引き戻そうとします。 単
一ビットコンパレータの出力もまた、デシメータ sinc2 フィルタに入力されます。
注:1-bit オーバーサンプリング速度は、スイッチド キャパシタ PSoC ブロックを制御する φ1 と φ2 を
生成する四分周信号発生器によって決定します。 出力レートは、1-bit オーバーサンプリング速度を得る
ためにデータを 4 で割り、最終サンプリング速度を得るためにさらにデシメーションレートで割ること
によって決定します。サンプリング速度は次の式で求められます。
Equation 1
使用できるもっとも高いデータクロック周波数は、仕様表で示されています。データクロックが 8 MHz
で、デシメーションレートが 256 の場合、サンプリング速度は次のようになります。
Equation 2
Document Number: 001-67651 Rev. **
Page 4 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
2 次変調器は、1 次変調器のアナログ出力を同様の PSoC ブロックにフィードし、2 つ目のブロックの
1-bit コンパレータ出力がここに示すように両方のブロックに戻るよう、フィードバック構成を変更する
ことによって作成します。
Figure 3.
2 次変調器を備えた DelSigMulti の回路図
アナログ コンパレータのバスは、アナログ PSoC ブロック アレイのコラムで垂直に走るため、2 次変調
器のブロックは、ほかのものより 1 つ上に配置する必要があります。
DelSigMulti の範囲は、±VRef によって規定されます。 VRef は PSoC Designer のグローバル リソース ウ
ィンドウで設定します。固定スケールの場合、VRef は ±VBandgap に設定されます。PSoC デバイスの
CY8C29x66 ファミリでは ±1.6 VBandgap です。調整可能なスケールの場合、VRef は ±Port 2[6] に設定さ
れます。 レシオメトリック スケールでは、VRef は ±VDD/2 に設定されます。オプションの完全なリスト
を表 1 に示します。
Table 1.
Ref Mux グローバル パラメータ設定の入力電圧範囲
RefMux の設定
Vdd = 5V
Vdd = 3.3V
(Vdd/2) ± BandGap
1.2 < Vin < 3.8
0.35 < Vin < 2.95
(Vdd/2) ± (Vdd/2)
0 < Vin < 5
0 < Vin < 3.3
BandGap ± BandGap
0 < Vin < 2.6
0 < Vin < 2.6
(1.6*BandGap) ± (1.6*BandGap)
0 < Vin < 4.16
適用外
(2*BandGap) ± BandGap
1.3 < Vin < 3.9
適用外
(2*BandGap) ± P2[6]
(2.6 - VP2[6]) < Vin < (2.6 + VP2[6])
適用外
P2[4] ± BandGap
(VP2[4] - 1.3) < Vin < (VP2[4] + 1.3)
(VP2[4] - 1.3) < Vin < (VP2[4] + 1.3)
P2[4] ± P2[6]
(VP2[4]-VP2[6]) < Vin < (VP2[4]+VP2[6])
(VP2[4]-VP2[6]) < Vin < (VP2[4]+VP2[6])
Document Number: 001-67651 Rev. **
Page 5 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
Sinc2 デシメーション フィルタ
デシメーション フィルタの応答は、この z ドメイン関係によって得られます。
Equation 3
このセクションでプロットした周波数ドメイン伝達関数は、出力サンプリング速度 Fnom が 1.0 になるよ
うに正規化されます。 -3 dB のポイントは 0.318×Fnom のすぐ上で発生し、関数は Fnom の各整数倍でゼ
ロになります。 1-bit サンプリング速度は定格出力速度よりも 32 ~ 256 高いため、ナイキスト制限は
Fnom の 4 ~ 7 オクターブ上となり、アンチエイリアス フィルタの要件を著しく低減します。 256 の復
号化レートに対する 1-bit ナイキスト周波数は、グラフの右側に太い垂直線で示されています。さらに高
い復号化レートも可能ですが、デバイスのノイズフロアのため、利点はほとんどありません。 14-bit ト
ポロジ、256 の復号化レートを持つ 2 次変調器の場合は、分解能が信号対雑音比により制限されます。
DC 測定または移動速度の遅い信号でリピート可能な 14-bit 分解能を得るには、複数の出力サンプルの
平均を取るか、高度な信号処理技法を採用することが必要となります。
Figure 4.
-3 dB 及びナイキスト周波数を使った Sinc2 デシメーション フィルタの振幅特性
以前の DELSIG8 と DELSIG11 とは異なり、このユーザ モジュールは伝達関数の分子と分母をすべてハ
ードウェアで実行します。 これには、改良型 「タイプ 2」のデシメータが必要です。 これは 1 次および
2 次の変調器トポロジに使用されます。 デシメータは、1-bit サンプリング速度で動作する二重積分器に
より、伝達関数の分母を実装します。分子は、定格出力サンプリング速度で動作する二重微分器 (2 つ目
の差分演算子 ) によって実装されます。 DelSigMulti ユーザ モジュールが消費する CPU のオーバーへッ
ドと割り込みレイテンシは、I/O スペースのデシメータレジスタからサンプルデータを回復するために
必要な約 80 サイクル以下に限定されています。 タイプ 2 のデシメータは、n ビットコンバータ用に 0 ~
2n-1 の範囲の符号無しの値を生成します。割込みサービス ルーチンは、これを -2n-1 ~ +2n-1-1 の範囲
の 2 の補数に変換するように構成できます。
Document Number: 001-67651 Rev. **
Page 6 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
Table 2.
デルタ シグマ ADC の機能表
デルタ シグマ ADC
機能
DELSIG8, DELSIG11
DelSig
DelSigPlus
DelSigMulti
分解能
8, 11
6-14
6-14
6-14
デジタルブロック
1
1-2
0
0
アナログブロック
1-2
1-2
1-2
2-8
サポートされているコ CY8C24/27/29。
ンポーネント
CY8C24x94、
CY8C28x45 は未サ
ポート
CY8C24x94,
CY8C29xxx,
CY8C28x45
CY8C24x94,
CY8C28x45
CY8C28x45
CPU オーバーへット 高
と割り込みレイテンシ
低
低
低
タイミング信号発生器と要件
アナログ変調器に φ1 と φ2 クロックを供給する四分周信号発生器は、デシメータにビットクロックも供
給します。出力サンプリング速度に対応するデシメーションファクタは、ワードクロックによって決定
します。 ワードクロックは、デシメータの内部タイマによって生成されます。
タイプ 2 デシメータは、Sinc2 フィルタの完全にハードウェア化されたバージョンです。 そのアーキテ
クチャによって、デシメーションと割り込みの目的に使用できる内部タイマのオプションが可能になり
ます。 効果的な分解能の計算には、次の式を使用します。
一段変調器:(log2(DecimatorRate) - 1) × 1.5
二段変調器:(log2(DecimatorRate) - 1) × 2
DataFormat ビットは、符号付き (2 の補正出力)と符号無し (オフセットバイナリデータ)として加
重することができます。
Table 3.
デシメータデータの出力シフト
デシメーションレート
変調器タイプ
有効な分解能
シフト
32
一段
6
4
32
二段
8
2
64
一段
8 (7.5)
4
64
二段
10
2
128
一段
9
5
128
二段
12
2
256
一段
11(10.5)
5
256
二段
14
2
Document Number: 001-67651 Rev. **
Page 7 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
DC および AC の電気的特徴
以下の値は初期の特性データを基に、予測される性能を入れておきます。別途記載がない限り、下記で
は TA = -40、25、85、125°C および Vdd = 5.0V を想定しています。
Table 4.
5.0V 結果の概要
パラメータ
標準値
制限
単位
摘要
8 ビット、24MHz CPU Clk、1 MHz データクロック、高出力
ゲイン
-2.6482
2
%FSR
オフセット
-47.0072
13
mV
DNL
0.161
<1
LSB
INL
0.27
--
LSB
SNR
45.86
--
dB
8 ビット、24MHz CPU Clk、2 MHz データクロック、高出力
ゲイン
-2.3168
2
%FSR
オフセット
-62.3507
13
mV
DNL
0.069
<1
LSB
INL
0.172
--
LSB
SNR
45.86
--
dB
Document Number: 001-67651 Rev. **
Page 8 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
以下の値は初期の特性データを基に、予測される性能を入れておきます。別途記載がない限り、TA = 40、25、85、125°C および Vdd = 3.3V を想定しています。
Table 5.
3.3V 結果の概要
パラメータ
標準値
制限
単位
摘要
8 ビット、24MHz CPU Clk、1 MHz データクロック、高出力
ゲイン
-2.7182
2
%FSR
オフセット
-40.1334
5
mV
DNL
<1
LSB
INL
--
LSB
SNR
--
dB
8 ビット、24MHz CPU Clk、2 MHz データクロック、高出力
ゲイン
-2.8219
2
%FSR
オフセット
-42.8073
5
mV
DNL
0.064
<1
LSB
INL
0.161
--
LSB
SNR
46.02
--
dB
配置
ツールバーで DelSigMulti ユーザ モジュールを選択するか、セレクタービューでそのアイコンをダブル
クロックすると、選択ウィンドウが開き、適切なトポロジを選択するガイダンスが表示されます。 トポ
ロジは、配置ビューでユーザ モジュールを右クリックして、 コンテンツメニューで [User Module
Selection Options...] (ユーザ モジュール選択オプション)を選択すると変更できます。
1 次変調器を設計するには、2つの PSoC ブロック、1つのデジタルブロック、および 1 つのアナログ
ブロックが必要です。 アナログ ブロックは、どのスイッチド キャパシタ PSoC ブロックにも配置でき
ます。
2 次変調器デザインは、2 つのスイッチド キャパシタ PSoC ブロック、ADC0、ADC1 を利用していま
す。これらを連結するアナログコンパレータバスがアナログアレイの各コラムを縦に通っているため、
スイッチド キャパシタ PSoC ブロックは縦に上下させて並べなければなりません。
アナログ ブロックでは多数の配置が可能ですが、DelSigMulti は、PSoC デバイス唯一のハードウェア
デシメータフィルタも使用します。 デシメータは、アナログブロックが配置されたときに自動的に割り
当てられます。ユーザによる操作は不要です。 このため、1 つの構成では、DelSigMulti ユーザ モジュー
ルのインスタンスは 1 つだけ配置できます。 ダイナミックな再構成の場合、一度に 2 つ以上の構成を読
み込む (有効にする)ことが可能で、2 つの DelSigMulti ユーザ モジュールが同時に稼動することを抑
止するためのチェックは行われません。 この状態では、両方のインスタンスが稼動しているように見え
ますが、一番最近読み込んだインスタンスがデシメーションフィルタを制御します。ただし、両方の割
り込みが実行され、干渉をきたす場合もあります。
Document Number: 001-67651 Rev. **
Page 9 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
パラメータおよびリソース
DelSigMulti のインスタンスが配置されると、適正に作動するように幾つかのパラメータを構成する必要
がでてきます (入力信号マルチプレクサ選択、クロック位相、ポーリング選択)。
DataFormat0/1/2/3
このパラメータは、符号無し (デフォルト)または符号付きの値をとることがあります。 n ビット
の分解能の場合、符号無しデータはゼロから 2n-1 の値です。 符号付きデータは、-2n-1 ~ +2n-11 の間の値です。0/1/2/3 は、使用されるデルタ - シグマ ADC チャネル数を示します。
Clock Phase0/1/2/3
クロック位相の選択は、あるアナログ PSoC ブロックの出力を別のアナログ PSoC ブロックの入力
と同期させるために使用します。 スイッチド キャパシタ アナログ PSoC ブロックは、2 相クロッ
ク (φ1, φ2) を使用して、信号を取得および転送します。 通常、DelSigMulti への入力は、φ1 でサン
プリングされます。 ユーザ モジュールの多くは、φ1 中に出力を自動的にゼロに設定し、φ2 中しか
有効な出力を供給しないため、問題が発生します。そのようなモジュールの出力が DelSigMulti 入
力に配信された場合、DelSigMulti は不定値をサンプリングします。 クロック位相を選択すること
で、入力信号を φ22 中に取得するように、位相を交換できます。 0/1/2/3 は、使用されるデルタ シグマ ADC チャネル数を示します。
PosInput0/1/2/3
このパラメータは、シングルエンド入力の信号ソース、または差分入力の非反転入力を決定しま
す。0/1/2/3 は、使用されるデルタ - シグマ ADC チャネル数を示します。
NegInput0/1/2/3 および NegInputGain0/1/2/3
NegInput は、差分信号ペアの反転入力用ソースを選択します。 シングルエンドの入力を使用した
場合、このパラメータには任意の有効値を設定できます。NegInputGain パラメータを [Disconnected] (接続解除)(ゼロゲイン)に設定すると、コンバータからの接続を解除できます。
NegInputGain は非反転入力と比例して、反転入力のゲインを調整します (上述の 「NegInput パ
ラメータ」セクションを参照してください)。 シングルエンドの入力の場合、このパラメータは
[Disconnected] (接続解除)となります。 差分入力では、NegInputGain は 1.000 に設定できます。
必要に応じて、反転入力に適用されたゲインは、非反転入力と比例して、0.0625 ~ 1.9375 の範囲
で 1/16th の増分を用いて調整できます。0/1/2/3 は、使用されるデルタ - シグマ ADC チャネル数を
示します。
割り込み生成制御
PSoC Designer の "Enable interrupt generation control" (割り込み生成制御を有効にする)チェックボ
ックスがチェックされている時に、さらに二つのパラメータが設定できます。Enable interrupt
generation control (割り込み生成制御をイネーブルにする)チェックボックスがチェックされている場
合だけです。 これらは、 [Project](プロジェクト)> > [Settings](設定)> > [Chip Editor]
(チップ エディタ)>でアクセスできます。 「割り込み生成の制御」は、オーバーレイ全体で複数のユ
ーザ モジュールにより共有される割り込みとともに、複数のオーバーレイが使用される場合に重要で
す。
„ 割り込み API
„ IntDispatchMode
Document Number: 001-67651 Rev. **
Page 10 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
InterruptAPI
InterruptAPI パラメータを使うと、ユーザ モジュールの割り込みハンドラと割り込みベクタ テーブ
ル エントリの状況に応じた生成が可能になります。 「Enable ( 有効 )」を選択すると、割り込みハ
ンドラと割り込みベクトル テーブル エントリが生成されます。 「Disable ( 無効 )」を選択すると、
割り込みハンドラと割り込みベクトル テーブル エントリがバイパスされます。
複数のオーバーレイがあり、1 つのブロックリソースが異なるオーバーレイで使用されているプロ
ジェクトの場合、特に注意が必要です。 コードスペースを節約するために実際にこれを必要とする
オーバーレイの場合のみ、割り込みを生成するよう選択します。
IntDispatchMode
IntDispatchMode パラメータを使用して、同一ブロック内の異なるオーバーレイ内に存在する複数
のユーザ モジュールで共用されている割り込みについて、割り込み要求をどのように処理するか
を指定します。 ActiveStatus を選択すると、ファームウェアが、共有される割り込みリクエストに
応答する前に、どちらのオーバーレイがアクティブであるかをテストします。このテストは、共用
割り込みが要求されるたびに行われます。 このためにレイテンシが付加され、共用割り込み要求を
処理する非決定性のプロセスも生じますが、RAM は不要です。OffsetPreCalc を選択すると、ファ
ームウェアが、オーバーレイが最初にロードされるときだけ、共有割り込みリクエストのソースを
計算するようになります。 この計算によって割り込みレイテンシは減少し、共用割り込み要求を処
理する決定性のプロセスが生じますが、RAM のバイトを消費します。
アプリケーション プログラミング インタフェース
アプリケーション プログラミング インタフェース (API) ルーチンは、設計者が高級言語でモジュールを
操作できるようにユーザ モジュールをコンポーネントとして提供します。 このセクションでは、各機能
に対するインタフェースを 「include」ファイルによって提供される関連定数とともに示します。
ユーザ モジュールを配置するたびに、インスタンス名がアサインされます。 デフォルトでは、 PSoC
Designer は指定されたプロジェクトで、DelSigMulti_1 をこのユーザ モジュールの最初の例として指定
されています。 これは識別子の構文ルールに従って、独自のルールに変更できます。 割り当てられたイ
ンスタンスは、グローバル関数名、変数、定数記号のプレフィクスとなります。 次の説明では、簡単に
するために、インスタンス名は省略されて単に 「DelSigMulti」となっています。
Note
すべてのユーザ モジュール API の場合と同じように、API 関数を呼び出すことで A と X レジス
タの値が変更されることがあります。関数を呼び出した後で A および X レジスタの値が必要に
なるのであれば、関数を呼び出す側の責任において、これらのレジスタの値を関数呼び出し前に
退避させてください。 この 「レジスタは脆弱」というポリシーは、効率面の理由から採用され、
PSoC デザイナのバージョン 1.0 から発効しています。 C コンパイラは、自動的にこの条件で処
理されています。アセンブラ言語のプログラマは、コードがこのポリシーを遵守していることも
確認する必要があります。 一部のユーザ モジュール API 関数では、A と X は変更されないこと
もありますが、将来も変更されないという保証はありません。
Document Number: 001-67651 Rev. **
Page 11 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
DelSigMulti_Start
説明:
このユーザ モジュールで必要なすべての初期化を実行し、スイッチド キャパシタ PSoC ブロック
の出力レベルを設定します。 すべてのチャネルが同じ出力レベルで構成されています。
C プロトタイプ:
void DelSigMulti_Start(BYTE bfPowerSetting)
アセンブラ:
mov
A, bfPowerSetting
lcall DelSigMulti_Start
パラメータ:
bPowerSetting: 4 つの 2-bit ビットフィールドを持つ 1 バイトは、各チャネルの出力レベルを個別
に指定します。 リセットとコンフィグレーションの後、DelSigMulti に割り当てられたアナログ
PSoC ブロックの電力が遮断されます。 C およびアセンブラで記号名が登録されていますが、関連
する値を以下の表に示します。
記号名
マスク
DelSigMulti_CH0_OFF
00h
DelSigMulti_CH0_LOWPOWER
01h
DelSigMulti_CH0_MEDPOWER
02h
DelSigMulti_CH0_HIGHPOWER
03h
DelSigMulti_CH1_OFF
00h
DelSigMulti_CH1_LOWPOWER
04h
DelSigMulti_CH1_MEDPOWER
08h
DelSigMulti_CH1_HIGHPOWER
0Ch
DelSigMulti_CH2_OFF
00h
DelSigMulti_CH2_LOWPOWER
10h
DelSigMulti_CH2_MEDPOWER
20h
DelSigMulti_CH2_HIGHPOWER
30h
DelSigMulti_CH3_OFF
00h
DelSigMulti_CH3_LOWPOWER
40h
DelSigMulti_CH3_MEDPOWER
80h
DelSigMulti_CH3_HIGHPOWER
C0h
戻り値:
なし
Document Number: 001-67651 Rev. **
Page 12 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
副作用:
A および X レジスタは、この関数のこの実装または将来の実装で変更される場合があります。 大容
量メモリ モデル(c)のすべての RAM ページ ポインタ レジスタにも同じことが言えます。必要に
応じて、fastcall16 関数の呼び出しでこれらの値を保存してください。
DelSigMulti_Stop
説明:
スイッチド キャパシタ PSoC ブロックの出力レベルをオフに設定します。
C プロトタイプ:
void DelSigMulti_Stop(void)
アセンブラ:
lcall DelSigMulti_Stop
パラメータ:
なし
戻り値:
なし
副作用:
A および X レジスタは、この関数のこの実装または将来の実装で変更される場合があります。 大容
量メモリ モデル(c)のすべての RAM ページ ポインタ レジスタにも同じことが言えます。必要に
応じて、fastcall16 関数の呼び出しでこれらの値を保存してください。
DelSigMulti_SetPower
説明:
UM の各チャネルに対するスイッチド キャパシタ PSoC ブロックの出力レベルを設定します。
C プロトタイプ:
void DelSigMulti_SetPower(BYTE bPowerSetting)
アセンブラ:
mov
A, bPowerSetting
lcall DelSigMulti_SetPower
パラメータ:
bPowerSetting: 4 つの 2-bit ビットフィールドを持つ 1 バイトは、各チャネルの出力レベルを個別
に指定します。 リセットとコンフィグレーションの後、DelSigMulti に割り当てられたアナログ
PSoC ブロックの電力が遮断されます。 C およびアセンブラで記号名が登録されていますが、関連
する値を以下の表に示します。
Document Number: 001-67651 Rev. **
Page 13 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
記号名
マスク
DelSigMulti_CH0_OFF
00h
DelSigMulti_CH0_LOWPOWER
01h
DelSigMulti_CH0_MEDPOWER
02h
DelSigMulti_CH0_HIGHPOWER
03h
DelSigMulti_CH1_OFF
00h
DelSigMulti_CH1_LOWPOWER
04h
DelSigMulti_CH1_MEDPOWER
08h
DelSigMulti_CH1_HIGHPOWER
0Ch
DelSigMulti_CH2_OFF
00h
DelSigMulti_CH2_LOWPOWER
10h
DelSigMulti_CH2_MEDPOWER
20h
DelSigMulti_CH2_HIGHPOWER
30h
DelSigMulti_CH3_OFF
00h
DelSigMulti_CH3_LOWPOWER
40h
DelSigMulti_CH3_MEDPOWER
80h
DelSigMulti_CH3_HIGHPOWER
C0h
戻り値:
なし
副作用:
A および X レジスタは、この関数のこの実装または将来の実装で変更される場合があります。 大容
量メモリ モデル(c)のすべての RAM ページ ポインタ レジスタにも同じことが言えます。必要に
応じて、fastcall16 関数の呼び出しでこれらの値を保存してください。
DelSigMulti_StartAD
説明:
このユーザ モジュール用に割り込みを有効にし、サンプリングを開始します。
C プロトタイプ:
void DelSigMulti_StartAD(void)
アセンブリ:
lcall DelSigMulti_StartAD
パラメータ:
なし
Document Number: 001-67651 Rev. **
Page 14 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
戻り値:
なし
副作用:
A および X レジスタは、この関数のこの実装または将来の実装で変更される場合があります。 大容
量メモリ モデル(c)のすべての RAM ページ ポインタ レジスタにも同じことが言えます。必要に
応じて、fastcall16 関数の呼び出しでこれらの値を保存してください。
DelSigMulti_StopAD
説明:
割り込みの無効化により、A/D をシャットダウンします。 ただし、アナログブロックへの電力供給
は続行されます。
C プロトタイプ:
void DelSigMulti_StopAD(void)
アセンブラ:
lcall DelSigMulti_StopAD
パラメータ:
なし
戻り値:
なし
副作用:
A および X レジスタは、この関数のこの実装または将来の実装で変更される場合があります。 大容
量メモリ モデル(c)のすべての RAM ページ ポインタ レジスタにも同じことが言えます。必要に
応じて、fastcall16 関数の呼び出しでこれらの値を保存してください。
DelSigMulti_fIsDataAvailable
説明:
新しい ADC サンプルデータの準備ができているかどうかをチェックします。 ADC からの新しい結
果が出ると、フラグがセットされます。 この API 関数によって、ユーザがフラグがチェックできま
す。UM 全体のデータ可用性をチェックします。 すべてのチャネルが同期されるため、すべてのデ
ータが新しいか、新しくないかのいずれかになります。従って、たった 1 つのチェックがすべての
チャネルのすべてのサンプルデータに適用できるよう作られます。 ユーザは、ほかの API 関数を使
用してこのフラグをクリアしなければなりません。
C プロトタイプ:
BYTE DelSigMulti_fIsDataAvailable(void)
アセンブラ:
lcall DelSigMulti_fIsDataAvailable
cmp
A, 0
jz
.DataNotAvailable
パラメータ:
なし
Document Number: 001-67651 Rev. **
Page 15 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
戻り値:
各チャネルのデータが変換され、読み出しの準備ができていると、ゼロ以外の値が返されます。各
チャネルのデータが変換されず、読み出しの準備ができていないと、ゼロが返されます。
副作用:
A および X レジスタは、この関数のこの実装または将来の実装で変更される場合があります。 大容
量メモリ モデル(c)のすべての RAM ページ ポインタ レジスタにも同じことが言えます。必要に
応じて、fastcall16 関数の呼び出しでこれらの値を保存してください。現時点では、CUR_PP ペー
ジ ポインタ レジスタだけが変更されています。
DelSigMulti_GetAllDataClearFlag
説明:
この関数は、1 つの関数を伴うチャネルデータを取得するために使用されます。RAM アレイポイ
ンタがこの関数に渡され、関数は ADC の結果をこの RAM アレイに配置します。 ユーザは、RAM
アレイが ADC チャネルの番号と分解能に対応する正しいサイズであることを確認してください。
またこの関数は、これらの信号について、ADC データの準備が整っているというフラグをクリア
します。関数が呼び出される前にデータサンプルの準備が整っていることを検証するために、
DelSigMulti_fIsDataAvailable() を呼び出す場合もあります。
C プロトタイプ:
void DelSigMulti_GetAllDataClearFlag(BYTE* pbRamBuffer)
アセンブラ:
mov
A, >pbRamBuffer
mov
X, <pbRamBuffer
lcall DelSigMulti_GetAllDataClearFlag
パラメータ:
pbRamBuffer: このパラメータは、ADC サンプルデータがコピーされる RAM 位置を特定します。
コピーされるデータは ADC の結果です。ユーザは、RAM アレイタイプが ADC 結果のデータタイ
プに適合することを確認する必要があります。 ADC チャネルデータは、チャネル 0 データから開
始するユーザアレイに配置され、バイトの順番は MSB が最初です。 例えば、UM に 3 チャネルの
符号無しの 10-bit データがある場合、このアレイは次の順番で 6 バイトをユーザアレイにコピーし
ます。Ch0_Result_MSB, Ch0_Result_LSB, Ch1_Result_MSB, Ch1_Result_LSB, Ch2_Result_MSB,
Ch2_Result_LSB. ユーザのアレイタイプが BYTE タイプと異なる場合、ユーザはアレイポインタ
を関数に渡し、アレイポインタは BYTE ポインタになります。
戻り値:
なし
副作用:
A および X レジスタは、この関数のこの実装または将来の実装で変更される場合があります。 大容
量メモリ モデル(c)のすべての RAM ページ ポインタ レジスタにも同じことが言えます。必要に
応じて、fastcall16 関数の呼び出しでこれらの値を保存してください。現時点では、CUR_PP ペー
ジ ポインタ レジスタだけが変更されています。
Document Number: 001-67651 Rev. **
Page 16 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
DelSigMulti_iGetData
DelSigMulti_cGetData
説明:
変換されたデータを符号付き 8-bit または 16-bit2 の補数形式で返します。注:ユーザ モジュール
の DataFormat パラメータが内部表現を決定します。内部表現が符号無しの無しの場合、符号付き
の形式関数を呼び出しても、データの値は変りません。データサンプルの準備ができていることを
確認するために、DelSigMulti_fIsDataAvailable() が呼び出されることもあります。 チャネル番号は
この関数に渡されます。
C プロトタイプ:
CHAR DelSigMulti_cGetData(BYTE bChannelNumber) // use for 8-bit resolution or lower
INT DelSigMulti_iGetData(BYTE bChannelNumber) // use for 9-bit resolution or higher
アセンブラ:
mov
A, [bChannelNumber]
lcall DelSigMulti_cGetData
- or mov
A, [bChannelNumber]
lcall DelSigMulti_iGetData
; Result will be in A
; LSB will be in A, MSB in X upon return
パラメータ:
bChannelNumber: このパラメータは返されるチャネルのデータを指定します。
戻り値:
変換したデータ サンプルを 8-bit または 16-bit の 2 の補数の形で返します。
副作用:
A および X レジスタは、この関数のこの実装または将来の実装で変更される場合があります。 大容
量メモリ モデル(c)のすべての RAM ページ ポインタ レジスタにも同じことが言えます。必要に
応じて、fastcall16 関数の呼び出しでこれらの値を保存してください。現時点では、CUR_PP ペー
ジ ポインタ レジスタだけが変更されています。
DelSigMulti_bGetData
DelSigMulti_wGetData
説明:
変換されたデータを 8-bit または 16-bit 符号無し形式で返します。注:ユーザ モジュールの
DataFormat パラメータが内部表現を決定します。 内部表現が符号無しの無しの場合、符号付きの
形式関数を呼び出しても、データの値は変りません。データサンプルの準備ができていることを確
認するために、DelSigMulti_fIsDataAvailable() が呼び出されることもあります。チャネル番号はこ
の関数に渡されます。
C プロトタイプ:
BYTE DelSigMulti_bGetData(BYTE bChannelNumber) // use for 8-bit resolution or lower
WORD DelSigMulti_wGetData(BYTE bChannelNumber) // use for 9-bit resolution or higher
アセンブラ:
mov
A, [bChannelNumber]
lcall DelSigMulti_bGetData
Document Number: 001-67651 Rev. **
; Result will be in A
Page 17 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
- or mov
A, [bChannelNumber]
lcall DelSigMulti_wGetData
; LSB will be in A, MSB in X upon return
パラメータ:
bChannelNumber: このパラメータは返されるチャネルのデータを指定します。
戻り値:
関数に従い、8-bit または 16-bit の変換されたデータ サンプルを符号なしの形式で返します。
副作用:
A および X レジスタは、この関数のこの実装または将来の実装で変更される場合があります。 大容
量メモリ モデル(c)のすべての RAM ページ ポインタ レジスタにも同じことが言えます。必要に
応じて、fastcall16 関数の呼び出しでこれらの値を保存してください。現時点では、CUR_PP ペー
ジ ポインタ レジスタだけが変更されています。
DelSigMulti_ClearFlag
説明:
データ利用可能フラグをリセットします。
C プロトタイプ:
void DelSigMulti_ClearFlag(void)
アセンブラ:
lcall DelSigMulti_ClearFlag
パラメータ:
なし
戻り値:
なし
副作用
A および X レジスタは、この関数のこの実装または将来の実装で変更される場合があります。 大容
量メモリ モデル(c)のすべての RAM ページ ポインタ レジスタにも同じことが言えます。必要に
応じて、fastcall16 関数の呼び出しでこれらの値を保存してください。現時点では、CUR_PP ペー
ジ ポインタ レジスタだけが変更されています。
ファームウェア ソースコードの例
この例では前のシナリオを繰り返しますが、API 変数ではなく、グローバル変数への直接リファレンス
を使用しています。
アセンブリ言語の例をここに示します。
include "DelSigMulti.inc"
include "m8c.inc"
export _main
_main:
M8C_EnableGInt
Document Number: 001-67651 Rev. **
; enable global interrupts
Page 18 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
mov
A,DelSigMulti_CH0_HIGHPOWER | DelSigMulti_CH1_HIGHPOWER
; Establish
power setting...
call DelSigMulti_Start
; and initialize
call DelSigMulti_StartAD
; Commence sampling process
mainloop:
call DelSigMulti_fIsDataAvailable
; Retrieve the status byte
cmp
A, 0
jz
mainloop
; spin lock until(data is Available)
mov
A, >RamBuffer
mov
X, <RamBuffer
call DelSigMulti_GetAllDataClearFlag
; fastcall convention places ADC results in
RAM array defined by RamBuffer pointer
call ProcessSample
; pass the sample to the dummy fcn
jmp
mainloop
ProcessSample:
...
ret
; (do something useful with the data)
同じコードを C 言語で示します。
#include <m8c.h>
#include "PSoCAPI.h"
// part specific constants and macros
// PSoC API definitions for all User Modules
BYTE * RamBuffer;
void main(void)
{
M8C_EnableGInt;
DelSigMulti_Start(DelSigMulti_CH0_HIGHPOWER|DelSigMulti_CH1_HIGHPOWER);
DelSigMulti_StartAD();
while(1) {
if( DelSigMulti_fIsDataAvailable() ) {
DelSigMulti_GetAllDataClearFlag(RamBuffer); // copy ADC data to
// buffer before processing
}
}
}
設定レジスタ
次のセクションでは、このユーザ モジュールで変更されたレジスタについて詳細に説明しています。
アナログレジスタ、1 次変調器
Table 6.
「ADC」アナログ スイッチド キャパシタ PSoC ブロックによって使用されるレジスタ
レジスタ
7
6
0
4
1
3
0
2
ADC_CH0/1/2/3_CR0
1
ADC_CH0/1/2/3_CR1
PosInput0/1/2/3
ADC_CH0/1/2/3_CR2
0
1
0
0
0
ADC_CH0/1/2/3_CR3
1
1
1
0
NegInput0/1/2/3
Document Number: 001-67651 Rev. **
0
5
1
0
0
0
0
0
0
0
InvertingGain0/1/2/3
Power ( 出力 )
Page 19 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
PosInput0/1/2/3 はシングルエンドの入力信号または差分入力信号の非反転入力を選択します。
NegInput0/1/2/3 は、差分信号の反転入力を選択します。 InvertingGain0/1/2/3 フィールドがゼロに設定
されているとき、反転入力は接続が解除されます。出力は、DelSigMulti_Start と
DelSigMulti_SetPowerAPI 関数によって設定されます。0/1/2/3 は、使用されるデルタ - シグマ ADC チャ
ネル数を示します。
アナログレジスタ、2 次変調器
Table 7.
「ADC0」と 「ADC1」アナログ スイッチド キャパシタ PSoC ブロックによって使用されるレジスタ
レジスタ
7
6
5
0
4
0
3
0
2
1
1
0
ADC0_CH0/1/2/3_CR
0
1
0
0
0
ADC0_CH0/1/2/3_CR
1
PosInput0/1/2/3
ADC0_CH0/1/2/3_CR
2
0
1
0
0
0
0
0
0
ADC0_CH0/1/2/3_CR
3
1
1
1
0
NegInput0/1/2/3
Power ( 出力 )
ADC1_CH0/1/2/3_CR
0
1
0
0
1
0
0
0
0
ADC1_CH0/1/2/3_CR
1
LinkToADC0
0
0
0
0
0
ADC1_CH0/1/2/3_CR
2
0
0
0
0
0
0
0
0
ADC1_CH0/1/2/3_CR
3
1
1
1
0
0
0
Power ( 出力 )
InvertingGain0/1/2/3
PosInput0/1/2/3 はシングルエンドの入力信号または差分入力信号の非反転入力を選択します。
NegInput0/1/2/3 は、差分信号の反転入力を選択します。 InvertingGain0/1/2/3 フィールドがゼロに設定
されているとき、反転入力は接続が解除されます。LinktoADC0 は、ブロック配置によって決定し、
ADC0 ブロックの出力を ADC1 PSoC ブロックの 「A」入力キャパシタに接続します。 出力は、
DelSigMulti_Start と DelSigMulti_SetPowerAPI 関数によって設定されます。0/1/2/3 は、使用されるデル
タ - シグマ ADC チャネル数を示します。
デシメータ制御レジスタ
Table 8.
デシメーション制御レジスタ
ビット
7
6
5
4
DECx_DH
データの上位バイト
DECx_DL
データの下位バイト
DEC_CR0
ACC_IGEN
DEC_CR1
0
IDEC
ICLKS3
ICLKS2
DECx_CR
0
POL
GOOO
GOOE
0
Document Number: 001-67651 Rev. **
3
2
ICLKS
ACE_IGEN
ICLKS1
DCLKS3
1
0
DCLKS0
DCLKS2
DCLKS1
DATA_IN
Page 20 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
ビット
7
6
5
4
3
2
DEC_CR3
DEC1_EN
CLK_IN1
DEC0_EN
CLK_IN0
DEC_CR4
DEC3_EN
CLK_IN3
DEC2_EN
CLK_IN2
DEC_CR5
0
DECx_CR
モード
1
0
DSCLK
データ出力シフト
データフォー デシメーションレート
マット
デシメータは、Sinc2 フィルタの実装に使用される専用ハードウェアです。 3 つの制御レジスタと 2 つ
のデータ出力レジスタから構成されています。 DCol は接続するコラムコンパレータを選択します。
DCLKSEL は、デシメータタイミングを制御するデジタルブロックを選択します。 どちらのパラメータ
も、デバイス エディタで設定します。DEC_CR2 のシフトは、ソフトウェアで達成しなければならない
アラインされたデータを最小化するために、デシメーションレートに基づいて設定します。また
DEC_CR2 でも指定できます。
デジタルブロックレジスタ
Table 9.
ビット
デジタルブロック制御レジスタ
7
6
DxCxxCR0
5
4
3
2
1
0
Enable
このレジスタは、関数 DelSigMulti_StartAD. を呼び出すことにより、この UM の生成クロックを開始す
る追加のデジタルブロックとともに使用されます。また、関数 DelSigMulti _StopAD を呼び出すことに
より、生成クロックを停止するためにも使用されます。
Document Number: 001-67651 Rev. **
Page 21 of 22
[+] Feedback
Single Slope 8-Bit ADC Data Sheet
バージョン履歴
バージョン
1.2
著者
DHA
説明
デジタル リソースとアナログ リソース間でソース クロックが異なっているかどうかを
チェックする DRC を追加。
GetAllDataClearFlagAPI の実現を改良。
クロック選択 DRC を改良。
Note
PSoC Designer 5.1 では、すべてのユーザ モジュール Data Sheet にバージョン履歴を導入しま
した。 このセクションには、ユーザ モジュールの現行バージョンと旧バージョンとの相違に関す
る高度な説明が記載されています。
Document Number: 001-67651 Rev. **
Revised February 21, 2011
Page 22 of 22
Copyright © 2009-2011 Cypress Semiconductor Corporation. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility
for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended
to be used for medical, life support, life saving, critical control or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its
products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress products
in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges.
PSoC Designer ™ and Programmable System-on-Chip ™ are trademarks and PSoC® is a registered trademark of Cypress Semiconductor Corp. All other trademarks or registered trademarks
referenced herein are property of the respective corporations.
Any Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide patent protection (United States and foreign),
United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works
of, and compile the Cypress Source Code and derivative works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with
a Cypress integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source Code except as specified above is
prohibited without the express written permission of Cypress.
Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes without further notice to the materials described herein. Cypress does not
assume any liability arising out of the application or use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in life-support systems
where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress' product in a life-support systems application implies that the manufacturer
assumes all risk of such use and in doing so indemnifies Cypress against all charges.
Use may be limited by and subject to the applicable Cypress software license agreement.
[+] Feedback