PSoCとは
一言でいうと「パソコン内でリアルにはんだ付けできるIC」です。パソコンの画面上で設計した回路がそのままICの中に作りこまれて動作します。
IC内にはオペアンプやコンパレータ、ADコンバータなどのアナログコンポーネントが内蔵されており、回路を設計するだけで、内部で結線されIC内で動き出します。まさに自分だけのアナログICです。
回路構成
12bitのADコンバータの入力の前段にバッファ回路を挟み、電圧を読み取ります。このようにすることで入力ピンのインピーダンスが大きくなり、測定対象の回路に影響なく電圧を図ることができます。またPSoCのADコンバータの入力インピーダンスが小さいので、正確にデジタル変換するためにはこのようにする必要があります。
DAコンバータで既知の電流を出力し、抵抗で生じた電圧を読み取ることで抵抗値を読み取ることができます。ADコンバータの部分だけで使えば電圧計としても使えます。
電圧計として使用する場合はこのオペアンプのGBWが数MHzなので、数MHzくらいまでの信号を正確に読むことができます。
AD変換からのカウント数はUARTのTXを用いてPCに送信しています。
使用するコンポーネント
- オペアンプ(詳しい説明)
オペアンプはModeでフォロワーを選択するとボルテージフォロワ(バッファ回路)の配線に自動で変化します。もちろんオペアンプモードのまま自分でボルテージフォロワを組んでも大丈夫です。今回はバッファ回路として利用するのでフォロワを選択します。
またOutputではオペアンプ出力をピンに出力する場合はOutput to pinを選択し、ピンに出力しない場合はInternal onlyを選択します。今回はピンに出力しないのでInternal onlyを選択します。
- ADコンバータ
より正確にするためには平均化するといいと思います。
- DAコンバータ
今回は153.6μAの定電流源としています。
- UART
PCのUSBを通して信号を送信するにはUARTを使用します。送信する際はTXを使用するのでDirectionをTXonlyとしてそのほかのパラメータは画像のように設定します。
プログラム
main.c
/* ======================================== * * Copyright YOUR COMPANY, THE YEAR * All Rights Reserved * UNPUBLISHED, LICENSED SOFTWARE. * * CONFIDENTIAL AND PROPRIETARY INFORMATION * WHICH IS THE PROPERTY OF your company. * * ======================================== */ #include "project.h" #include <stdlib.h> int main(void) { CyGlobalIntEnable; /* Enable global interrupts. */ /* Place your initialization/startup code here (e.g. MyInst_Start()) */ uint32 adc = 100000; int16 ai0 = 0; char aistr[] = " "; char *aiout; aiout = aistr; //各コンポーネントをスタートさせる ADC_SAR_Seq_1_Start(); UART_1_Start(); ADC_SAR_Seq_1_IRQ_Enable(); ADC_SAR_Seq_1_StartConvert(); IDAC7_1_Start(); Opamp_1_Start(); for(;;) { //adcが0になるたびにPCに結果を出力 adc--; if (adc == 0){ ai0=ADC_SAR_Seq_1_GetResult16(0);//ADCのカウント数をsignedで取得 utoa(ai0,aiout,10);//カウント数を文字列に変換 //文字列をPCに送信 UART_1_UartPutString("Count::"); UART_1_UartPutString(aiout); UART_1_UartPutCRLF(1); adc = 100000; } /* Place your application code here. */ } } /* [] END OF FILE */
PC側の設定
TXからくる信号はTeraTermを使用しました。TeraTermでPSoCのCOMを選択し、設定→シリアルポートの設定をUARTと同じにすると文字化けせず表示することができます。
1
1
投稿者の人気記事
-
yusufu
さんが
2020/04/28
に
編集
をしました。
(メッセージ: 初版)
-
yusufu
さんが
2020/04/28
に
編集
をしました。
-
yusufu
さんが
2020/04/29
に
編集
をしました。
-
yusufu
さんが
2020/04/29
に
編集
をしました。
-
yusufu
さんが
2020/04/29
に
編集
をしました。
-
yusufu
さんが
2020/04/29
に
編集
をしました。
ログインしてコメントを投稿する