EZ-USB FX3のI2C ROMにアクセス
今日は、EZ-USB FX3のI2C ROMの読み書き実験を行いました。
半年くらい前に実験したときにはI2Cで接続したROMにWriteはできるけれども、Readはできないという謎の現象に悩まされてきました。
EZ-USB FX3のSDKを最近出たV1.2にアップデートしたところ、この問題が解決されていることが確認できました。
I2Cに512バイトの乱数をWriteしてReadして照合するというものですが、わかりやすいように、その経過をUART経由で出力するようにしました。
特電のEZ-USB FX3評価ボードでは、UARTを使うにはSPI-UART切り替えジャンパをUART側に切り替えます。パソコンとはRS232Cのストレートケーブルで接続します。
ソフトウェア的には、CyU3PDebugPrintという関数を使うと、printfデバッグのようなものが使えるようになります。
しかし、CyU3PDebugPrintを使うと謎のデータ列がくっついてきます。そのため、TeraTermにデータを出力すると、■■と表示されたりします。この■の部分はFF FFになっていたり、ゴミデータが出たりします。CyU3PDebugPrintは、ゴミがついてきます。
CyU3PDebugPrintはなかなかデバッグに使えそうです。
◆追記
APIマニュアルを読んだところ、CyU3PDebugPrintにゴミデータがつくのは、preample dataというらしいです。然るべき方法でデコードすれば便利だと書かれていました。
この動作は、CyU3PDebugPreamble(CyFalse);で無効にできます。preampleの追加を無効にしたら、TeraTermでこのように綺麗に表示されるようになりました。
このCyU3PDebugPrintは%c,%d,%u,%xと%sが使えるので、相当便利です。
| 固定リンク
コメント