2015年2月3日火曜日

PSoC 4 Pioneer KitでSPIを使ってみた

MCP4922というDACの手持ちがあるのでこれも動作させてみることにした

まずはArduinoで動作チェック

↓こちらを参考にしさせていただきました
http://www.geocities.jp/zattouka/GarageHouse/micon/circuit/D_A.htm


ノコギリ波はちゃんと出力された


PSoCで使ったときのデバッグ用にSPIの出力波形もとってみた

上:MOSI(Slaveへのデータ信号) 下:クロック


上:SS(Slave Select) 下:クロック


SSがLのときSlaveがアクティブになる

上:LDAC(ラッチ信号) 下:クロック


ラッチがHighの時にArduinoとMCP4922の間でSPIのシリアル通信をして
ラッチがLowになった時にMCP4922のVOUTから実際に電圧が出力されるという仕様らしい

Single Triggerで電源投入直後のクロック信号を補足してみると
謎のパルスが3個入っていた(周期133msぐらい)


これはなんだ(@@?

データーシート(AVRのかな?)を読むのがめんどくさいのでこれは保留しておく(^q^;

PSoC 4 Pioneer KitでSPI通信をやってみる

Example Projectを探すとSpiCommというSPIのサンプルプロジェクトがあったが
これはそのままではPSoC 4 Pioneer Kitでは動作させられないようだ

SPI通信用にP4[0..3](Port4の0から3Pinのこと)を使え、となっているが、
PSoC 4 Pionner KitのピンソケットにはP4[2]とP4[3]が引き出されていない

PSoC 4 Pionner Kitのデーターシートによると
P4[2]はCAPSENSE用に使われているようである

P4[1]P4[3]はあえて使えないようになっているのかな(?)

PSoC4にはSPIやI2Cで使えるSCBブロックが2個載っているが
データーシート(PSoC4 PSoC 4200 Family Datasheet_001-87197_0B.pdf)の9P~10Pを見ると
これをscb0、scb1と名前付けしていてscb0の方はPort4でしか使えないようだ

さらにscb1のclkとして使えるPort3のP3[2]も*.cydwrのPinsタブで「Debug」として予約されていて
これもPSoC 4 Pioneer Kitでは使えないと思う



※まだ使ったことないですがIn Circuit Debug用のPinなんだと思う。たぶん(^q^;

なので、PSoC 4 Pioneer KitでSPIを使おうと思うとPort0を使うのが無難だろう

というわけでとりあえずPort0を使ってMCP4922と配線して


SPIの波形を見ると


GJ(^q^/

MCP4922の値をテスタで測ると
VDD: 3.39V
VOUT: 1.696V
VDD / 2 で出力するプログラムにしたのでこれでOK

次は外付けDACで音出しをする予定

0 件のコメント:

コメントを投稿