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”//PSoCAPIdefinitionsforallUserModulesvoidmain()
{
PGA_1_Start(3);//StartAMP
SAR6_1_Start(3);//StartADCfor(;;){
PRT2DR=(SAR6_1_cGetSample()+32)>>2;
//SAR6returnssigned6bitvalue.
//Convertitintounsigned4bitfor4LEDsonCY3210-MiniEval.
}
}
■デバイス設定(Device EditorのInterconnect View)
プログラムは簡単で、むしろデバイス設定がPSoCらしく変態的になってきた。
というかわからなすぎてPSOC関連②丸写しした。
最終的にこういう状態を目指す。
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の様な線が入っていないので引き回ししにくいみたいだ。
終わり。