PSoC4M Pioneer Kit と Si4735 ラジオモジュールを接続した動作確認をやりはじましたが、いまいち動作が安定しませんでした。こういうときは、Bridge Control Panel というのを使用して i2c でエラー(NACK) が発生しているか確認するのが早いです。
PSoC4M のボードには KitProg というのが付いていて普段はマイコンのプログラミングに使用しますが、それ以外にもデバッガ、USB-UART Bridge, USB-I2C Bridge という機能も提供しています。今回は USB-I2C Bridge を使用します。
USB-I2C Bridge は Bridge Control Panel という Windows アプリから I2C のデバイスにデータの write/read をするものです。マイコンで試行錯誤する手間が省けるので大変便利です。
上の写真のようにブレッドボードに Si4735 ラジオモジュールを差して、PSoC4M ボードの SDA/SCL 端子、電源を接続します。マイコン側は何もしなくて良いので、Lチカでもなんでもいいです。
Bridge Control Panel の上側のテキストボックスに送信する予定のコマンドを入れます。カーソルを送信したいデータの行に移動してリターンキーを叩けば i2c に送信されます。そして、送信結果は下側のテキストボックスに表示されます。
w 11+ 20+ 00+ 22+ 6A+ p r 11+ 80+ p
結果の最終行を例にしますと
W : データ送信開始(Start コンディション)
11: デバイスのアドレス
+ : ACK が返ってきた
20: データ送信
+ : ACK が返ってきた
00: データ送信
+ : ACK が返ってきた
22: データ送信
+ : ACK が返ってきた
6A: データ送信
+ : ACK が返ってきた
p : 送信終了(stop コンディション)
r : 受信開始(start コンディション)
11: デバイスのアドレス
+ : ACK が返ってきた
80: データ受信
+ : ACK 送信
p : 受信終了(stop コンディション)
という内容です。
+ のかわりに – が表示されたら NACK が返ってきたことが一発でわかります。今回はプルアップ抵抗間違えて Si4735 ラジオモジュールが上手くうごきませんでしたが、これで動作確認してみたら NAK が返ってきたりしてるのがわかったので原因を調べるのに役立ちました。