2015年1月24日土曜日

PSoC 4 Pioneer KitとPrototyping KitでI2C通信

PSoC 4 Pioneer Kit(CY8CKIT-042)とPSoC 4 Prototyping Kit(CY8CKIT-049-42xx)で
I2C通信をさせてみた

PSoC CreatorのExample ProjectにSCB_I2cCommMasterとSCB_I2cCommSlave
というプロジェクトがあって、Pioneer Kit同士でI2C通信をさせるExampleだ

Pioneer Kit単体ではMasterもSlaveもどちらのプロジェクトもそのまま通った

SCB_I2cCommMaster

Exampleのドキュメントを読むとPSoC Creatorに付属の「Bridge Control」というツールを立ち上げて
Pioneer KitとConnectすると内部でPull-upできるみたいだが(間違ってるかもしれません)
ややこしそうなのでブレッドボード上で10kΩのRでPull-upした


オシロで波形を見てみると

上がSCL、下がSDAです
0 0 0 1 : 0 0 0 0 : 1

SlaveのいないMasterなので、プログラムで指定されたSlaveのAdress(0b0001000)+Writeモードの0を流してNACK(1)なので終了

SCB_I2cCommSlave

こちらはSlaveなのでMasterがいないと何もしない

が、PSoC Creatorに付属のBridge Controlを使うとPioneer Kitに載っているPSoC 5 LPを使って
Masterの動きをさせてPSoC 4と通信することができる

たぶんそういうことだと思う(^q^;

PC上のBridge Controlでコマンドを流してやるとPioneer KitのI2C用に指定した端子(SCL:P3_0、SDA:P3_1)でI2Cの信号波形が見れた

この時外部でPull-upはしていない


Prototyping Kitでやってみる

Pioneer Kit単体ではまあまあちゃんと動いてそうなので
Prototyping Kit: Master
Pioneer Kit: Slave
にして通信させてみた



波形を見ると9bit目がNACK(H)になる時があるがExample Projectのドキュメントを見ると
通信の終わりにMasterがNACKを返す仕様みたいなのでこれで正常だと思う

たぶん(^q^;


Slaveの方のRGB LEDの点滅はちゃんとしているが
Masterの方は正常動作だとPrototyping Kit基板上の青色LEDではなくて
外付けした緑のLEDが点灯しないといけないはずなので
攻守交替して
Prototyping Kit: Slave
Pioneer Kit: Master
でもやってみた


Pioneer KitがSlaveの時はBridge Controlが使えたが
Prototyping KitがSlaveの時は使えない

ProtocolでUART以外は選択できないようになった


Prototyping Kitに載っているCY7C65211というUSBコントローラーはUARTしかだめみたいだ

こっちはPioneer Kitの方で緑のLEDが点滅
Prototyping Kitの方は外付けのLEDも含めて順繰りに点灯する

仕様通り(^q^/

0 件のコメント:

コメントを投稿