delta sigma adc psoc 3/5 experiment labmikami.a.la9.jp/meiji/b3/adc_35.pdfanalog...
TRANSCRIPT
© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop 1
Renji [email protected]
⊿Σ AD変換演習
Delta Sigma ADC
PSoC 3/5 ExperimentLab
Delta Sigma ADC for Experiment Course Material 5 V 2.10June 25th. 2012ADC_35.PPT (25 Slides)
5
© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
5.1
2© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
補足:WorkspaceとProjectの関係
演習ファイルと使用文字などの注意事項
各演習プロジェクトを置くための演習用ディレクトリを作成してください。場所と名前は、演習中に指示します。(デフォルトは、C:¥PSoC5_Lab )設計例(正解の例)プロジェクトは、演習で指示する場所のPSoC_Lab_MasterXXXXにあります。使用するファイルのあるディレクトリのパス名に英数字以外の文字が含まれていないことを確認してください。(不可例参照)ファイル名、プログラムのソースには、英数字と構文で許された記号以外は使用しないでください。(不可例参照)WorkspaceとProjectを1対1に対応して作成(次スライド)
不可例:全角文字、日本語文字、半角カナ
3© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
演習プロジェクト作成のグランドルール
設計は、プロジェクトをひとつの単位としますが、大規模設計では複数のプロジェクトをまとめて、ひとつのWorkspace内で管理することができます。
複数のプロジェクトを一つのWorkspaceに追加した場合、同じ名前のファイルを開いたときに、どのプロジェクトに含まれるものなのかを毎回確認する必要があります。例えば main.c などです。ワークショップ中は、この混乱をさけるために、一つのWorkspace には一つのプロジェクトしか配置しないように注意して下さい。
この方法は三つあります。
1.新プロジェクトを作成する前に、一度現在のPSoC Creatorを閉じる2.プロジェクト作成する前に、FileメニューからClose Workspaceを実行して現在開いているWorkspaceを閉じる3.新規プロジェクトを作成する時、Advancedオプション内のWorkspaceをCreate New Workspaceに設定する。この方法については次のページに説明があります。
4© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
プロジェクト新規作成時の注意事項プロジェクトを既に開いた状態で新規プロジェクトを作成した場合、デフォルトでは、現在開いているWorkspaceに追加されます。ウィザード内のWorkspaceをCurrent New Workspaceに切り替えて下さい。
Advancedオプションをオープンする
Add to Current Workspaceを選択すると現在開いているWorkspace内に新規プロジェクトが作成されます。Create New Workspaceを選択すると、新規Workspaceが作成され、その中に新規プロジェクトが作成されます。
5© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
電圧計A/Dで電圧読み込み結果をLCDに表示
Programmable Gain Ampを追加してみよう
LCD
MCU
InVRからの電圧入力
ADC_35ラボの目的• ⊿ΣAD変換器の実装• 入力電圧のLCD表示
6© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 1 PSoC Creator Softwareの起動
1.PSoC Createrの起動は、>すべてのプログラム>Cypress>PSoC Creater 2.X> PSoC Createrのクリック。2.この
エリアにファイルがないことを確認すること
前のプロジェクトが表示される場合は、
File>Close Workspaceでクローズする。
7© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 2 ADC_35プロジェクトの作成1.File->New->Projectを選択 2.Projectの設定
8© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 3 各コンポーネントの追加Delta Sigma ADCCharacter LCDを追加
Analog Pinを追加
9© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 3.1 ADCの設定入力レンジの設定
参照電圧の指定
10© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 3.2 LCDの設定Horizontalバーグラフをオンにします
11© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 3.3 Pinの設定Pin_1 をアナログに設定
12© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 4 ワイヤーツールで接続
Analog Pin,ADCを接続
13© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 5 ピンアサイン
ここ.cydwrをクリック
ピンを設定
050基板では、VR(の2番ピン)はP6[5]に固定配線されています。ピン設定をP3[5]からP6[5]に変更すると、ジャンパは不要になります。Step 8参照
14© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
ADC_DelSigのAPI関数
ADC_DelSig_1_Start();//イニシャライズとADC_Init(), ADC_Enable()呼び出し
ADC_DelSig_1_StartConvert();//変換の開始、停止はADC_DelSig_1_StopConvert();
ADC_DelSig_1_IsEndConversion();//変換の完了時に”ノンゼロ”を返す関数
ADC_DelSig_1_WAIT_FOR_RESULT
ADC_DelSig_1_GetResult16();//右づめで16ビットの変換値を返す関数//数値…8()は8ビット、…32()は32ビット
15© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 6 コードの記述
Main.cをクリック
#include <device.h>int16 adcResult = 0;
void main(){
/* Place your initialization/startup code here (e.g. MyInst_Start()) */unsigned char j = 50;
/* CYGlobalIntEnable; */ /* Uncomment this line to enable global interrupts. */LCD_Char_1_Start();
LCD_Char_1_ClearDisplay();LCD_Char_1_PrintString("ADC : ");ADC_DelSig_1_Start();ADC_DelSig_1_StartConvert();for(;;)
{/* Place your application code here. */
if(ADC_DelSig_1_IsEndConversion(ADC_DelSig_1_WAIT_FOR_RESULT)){
LCD_Char_1_Position(0, 6);LCD_Char_1_PrintString(" ");
LCD_Char_1_Position(0, 6);adcResult = ADC_DelSig_1_GetResult16();LCD_Char_1_PrintNumber((uint16)adcResult);CyDelay(j);
}}
}/* [] END OF FILE */
1_IsEnd大文字の”アイ”
大文字の”アイ”
小文字の”エル”
16© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
値を表示する関数LCD_Char1_のAPI関数
LCD_Char_1_PrintInt16(); // “I”は大文字の”アイ”//16進(HEX)表示
LCD_Char_1_PrintNumber(); // ()内は、int型//10進(Decimal)表示
17© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 7 Build
Build -> Build XX(XXはプロジェクト名)を選択しBuild
エラーが発生したら、Notice List をクリックする赤のXマークのある行をクリックするとエラー発生箇所にジャンプ
18© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 8 プログラムを書き込み動作チェックDebug->Programを選択
Debug->Programを選択
050基板では、VR(の2番ピン)はP6[5]に固定配線されています。ピン設定をP3[5]からP6[5]に変更すると、ジャンパ線は不要になります。
J30:POT_PWRにジャンパ設置
VR と P3[5]を接続
VR
P3[5]
050基板
19© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Step 9:終了 プロジェクト/ワークスペースのクローズ
このエリアにファイルがないことを確認すること
1.File > Close Workspaceを実行
プロジェクトをロードして再開する場合は、File>Open>Project/Workspaceを実行プロジェクト/ワークスペースを選択
20© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
補足: マルチプレクサを使用する場合
Analog Muxコンポーネントを使用することで、ADCに複数のアナログ入力ピンを接続することが可能
このとき、ADCのConversion Modeは 「1-Multi Sample」もしくは「3-Multi Sample Turbo」に設定
21© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
課題演習値を表示する関数LCD_Char1_のAPI関数で10/16進表示せよ電圧をmV表示にせよ、またバーグラフによる表示をせよ
LCD_Char_1_PrintInt16(); // “I”は大文字の”アイ”//16進(HEX)表示
LCD_Char_1_PrintNumber(); // ()内は、int型//10進(Decimal)表示で小数部を含む
ADC_DelSig_1_CountsTo_mVolts() //mVに変換する関数ADC_DelSig_1_CountsTo_uVolts() //uVに変換する関数ADC_DelSig_1_CountsTo_Volts() //浮動小数点Vに変換する関数// バーグラフを表示する関数
LCD_Char_1_DrawHorizontalBG(1, 0, 16, result/819 );LCD_Char_1_Position(0, 10);LCD_Char_1_PrintString("Gain:");
22© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
参考コード
int16 mv_result;//Data convert to [mV]
mv_result = ADC_DelSig_1_CountsTo_mVolts(result);
//Write Charcters on LCDLCD_Char_1_Position(0, 0);LCD_Char_1_PrintNumber(mv_result);LCD_Char_1_PrintString("mV ");
//write Bar graphsLCD_Char_1_DrawHorizontalBG(1, 0, 16, result/819 );LCD_Char_1_Position(0, 10);LCD_Char_1_PrintString("Gain:");
23© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
ネガティブ・バイアス
VRのPOTを左に一杯回すと、入力電圧は、ほとんどゼロだが、16ビットでは、非常に大きな値を示す。これは、変換値にネガティブ・バイアスがかかっていて、負数表示になり、LSBサインビットが立つためである。POTを少し右に回すと表示がゼロのポイントを通過して、正の値を示す
変換値は、Step3.1で設定したAD設定のInput Range 電圧を変換データ値に対応させて計算する
24© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
Lab ADC_35
終了
25© Renji Mikami – 2012 PSoC 5 / 3 CUA Workshop
MemoフォローアップURLhttp://mikamir.web.fc2.com/?/?.htm?に入る文字列は、講義中に示します。本資料は、米国および日本サイプレス社の協力と情報の提供
により作成されおり、著作権は以下に帰属します。
内容は定期的に改訂されます。引用や再使用の場合はご連絡ください。
担当講師ミカミ設計コンサルティング
〒142-0042 東京都品川区豊町 2-17-8
三上廉司(みかみれんじ) [email protected]://homepage3.nifty.com/western/mikamiconsult.htm電話 080-5422-2503(au)