CY3210-MiniEval上のPORT0_1につながっている半固定抵抗の電圧を、いちばん簡単な6bit-ADCことSAR6で読んでみた。

まだ使ってないけど、User Modules見ると12bitや14bitのADCもある。あとでやる。

プログラムよりもDevice Editorでの結線が大変だったけど勉強になった。

■ビデオ

■ソースコード一式

Source Code (PSoC Designer 4.3 + ImageCraft C Compiler)



■プログラム

今回のプログラムはこれだけ。特に特殊な所は無いな。

SAR6_1_cGetSample()でAD値が読める。

ADCが6bitで、-32~+31の値を返してくるのでそれを4桁のLEDで表示できるように計算した。

main.c

/***

Get6bit-ADCvalueandindicateiton4LEDs.

CPU:CY8C2946624MHz(Internal)

Board:CY3210-MiniEval

Compiler:PSoCDesigner4.3+CCompiler

Date:2007/4/2

Author:ShoHashimoto

WebSite:http://shokai.org

***/

#include//partspecificconstantsandmacros

#include”PSoCAPI.h”//PSoCAPIdefinitionsforallUserModules

voidmain()

{

PGA_1_Start(3);//StartAMP

SAR6_1_Start(3);//StartADC

for(;;){

PRT2DR=(SAR6_1_cGetSample()+32)>>2;

//SAR6returnssigned6bitvalue.

//Convertitintounsigned4bitfor4LEDsonCY3210-MiniEval.

}

}

■デバイス設定(Device EditorのInterconnect View)

プログラムは簡単で、むしろデバイス設定がPSoCらしく変態的になってきた。

というかわからなすぎてPSOC関連②丸写しした。

最終的にこういう状態を目指す。

PSoC 6bit ADC

6bit-ADCのSAR6(successive approximation register)だけでなく、PGA(プログラマブルアンプ)もplaceする。

これは、PSoCのアナログブロックの都合で、SAR6をASC10に置くとPORT2_3にしか接続できない為。

CY3210-MiniEvalの半固定抵抗がついているPORT0_1に接続するには、ACB00にPGAを置いてPORT0_1とSAR6の橋渡しにしてやらなければならないらしい。

んでPGAの倍率は1倍にする。本当にproxyとしてしか使ってない。

どうもデジタルブロックと違ってアナログブロックはROW_OutputやROW_Inputの様な線が入っていないので引き回ししにくいみたいだ。

CPUとI/Oの設定

PSoC 6bit ADCPSoC 6bit ADC

PGAとSAR6の設定

PSoC 6bit ADCPSoC 6bit ADC

終わり。