まずは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用に使われているようである
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.39VVDD / 2 で出力するプログラムにしたのでこれでOK
VOUT: 1.696V
次は外付けDACで音出しをする予定
0 件のコメント:
コメントを投稿