I2Cを使用したFX2LPファームウェアのデバッグ - KBA229175 - Community Translated (JA)

Version 1

    Community Translated by  NoTa_4591161 Expert          Version: **

     

    Translation - English: Debugging of FX2LP Firmware using I2C - KBA229175

     

    質問:

    FX2LPI2Cインターフェイスを使用してデバッグメッセージを送信するにはどうすればよろしいでしょうか?

     

    回答:

    FX2LP I2Cコントローラーはマスターとして機能し、I2Cスレーブに接続してデバッグメッセージを送信できます。これは、任意のコードをリアルタイムでデバッグする必要がある場合、特にUARTインターフェイスを持たない56ピンパッケージの場合に役立ちます。このナレッジベースの記事(KBA)では、I2Cインターフェイスを介してFX2LPからデバッグメッセージを構成および受信する手順について説明します。

     

    必要要件

    USB-Serial CYUSBS236 kitは、仮想COMポート(VCP)モードでのI2Cスレーブとして動作することができます。このモードでは、デバイスがホストのCOMポートとしてエニュメレートされ、サイプレスCDC(Communications Device Class)ドライバーにバインドできます。このインターフェイスを使用して、Tera Termなどのシリアル端末のI2Cインターフェイスで受信したメッセージを表示することができます。

     

    USB-Serial Configuration Utilityを使用し、次の手順に従ってデバイスを設定します。

     

    1. Cypress USB-Serial Configuration Utilitで、[ Select Target ]タブに移動します。ドロップダウンリストからデバイスを選択し、[ Connect ]をクリックします。

    1.png 

     

    2. [ SCB 1 ]タブに移動し、CY7C65215SCB 1を無効にして、SCB 0I2C動作用に設定されている場合にデバイスが正しくエニュメレートされるようにします。

    2.png 

     

    3. [ SCB 0 ]タブに移動し、ModeI2C設定します[ Configure ]クリックします。

    3.png 

     

    4. SCB 0を必要なスレーブアドレスを持つI2C スレーブとして設定し、[ OK ]をクリックします。

    4.png

     

    5. プロトコルをVCPとして設定し、[ Program ]をクリックします

    5.png 

    6. デバイスをリセットし、デバイスマネージャーを確認して、デバイスが正しくエニュメレートされているかどうかを確認します。

     

    7. USBシリアルデバイスのSCLおよびSDAラインをFX2LPピン10SDAおよびピン11SCLに接続します。 FX2LPに接続されたI2Cラインにプルアップ抵抗が存在することを確認してください。

     

    デバッグファイル

    このKBAに添付されているファイルには、バイト、ワード、文字、または文字列の形式でメッセージを送信する機能が含まれており、任意のFX2LPプロジェクトに含めることができます。

     

    • FX2LP_I2C.h - FX2LP_I2C.hヘッダーファイルには、FX2LP_I2C.cすべての関数の関数定義が含まれていますFX2LP_I2C.cの関数にアクセスするには、このヘッダーファイルをプロジェクトに含める必要があります。
    • FX2LP_I2C.cFX2LP_I2C.cファイルには、I2Cデバッグに必要なすべての関数が含まれています。

     

    テストのセットアップ

     

    Bulkloopサンプルファームウェアは、デバッグ手順を示すために使用されます。このサンプルファームウェアは、 CY3684 EZ-USB FX2LP Development Kitをインストールした後の C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.0\Firmware\Bulkloop にあります。サンプルコードを変更して、このKBAに添付されたデバッグファイルを含めます。

     

    ターゲットコードへのファイル追加

    次の手順に従って、デバッグファイルをTarget Keilプロジェクトに追加します。

     

    1. プロジェクトウィンドウの左側のペインで、[ Target 1 ]を右クリックします。

    2. ポップアップメニューから、Options for Target ‘Target 1クリックします。

     

    1. プロジェクトメニューのOptions for Target ‘Target 1の選択

    6.png

    3. Options for Target ‘Target 1 ウィンドウで、[ C51 ]タブに移動します。

    4. [ Include Paths ]テキストボックスに、FX2LP_I2C.hヘッダーファイルへのパスを入力します。[ OK ]クリックします。

     

    2. インクルードパスの指定

    7.png

     

    5. bulkloop.cファイルを開き、FX2LP_I2C.hヘッダーファイル参照を追加します。

     

    3. ヘッダーファイル参照の追加

    8.png 

     

    6. 一度コンパイルし、FX2LP_I2C.cおよびFX2LP_I2C.hファイルがプロジェクトに含まれていることを確認します。

     

    ファームウェアの変更

    次の例に示すように、bulkloop.cサンプルプロジェクトを変更して、I2Cデバッグ関数を使用します。

    FX2LPI2C_Init()関数は、bulkloop.cTD_Init()関数内で呼び出されます。これにより、I2Cバスが初期化され、コード実行中の任意の時点で使用できるようになります。他に要求される関数は、次のセクションで説明していますように必要なときに呼び出されます。

    I2CスレーブアドレスはUSBシリアルスレーブアドレスと一致するように「0x02」として設定されており、FX2LP_I2C.hデバッグファイルで変更できることに注意してください

     

    • TD_Init()  – 次のコードスニペットは、I2Cバスを初期化し、それを反映する文字列を出力します。次に、IFCONFIGの値を出力します。

    FX2LPI2C_Init(); // I2Cデバッグコードの開始

    FX2LPI2C_XmitString("Debug mode initialized\r\n");

     

    //スレーブFIFOインターフェイスを48MHzに設定します

    IFCONFIG | = 0x40;

    FX2LPI2C_XmitHex2(IFCONFI); // IFCONFIGの値を出力する

    FX2LPI2C_XmitString ("\r\n");

    • TD_Poll() – 次のコードスニペットは、EP2からEP6へのパケットの転送とパケットのバイト数を示す文字列を出力します。

    FX2LPI2C_XmitChar('P');

    FX2LPI2C_XmitString("acket of Byte Count = ");

    FX2LPI2C_XmitHex4(count);

    FX2LPI2C_XmitString(" being moved to EP6\r\n");

     

    Tera Termの設定

     

    USBシリアルデバイスのI2Cインターフェイスを介して受信したデバッグメッセージを出力するようにTera Termを設定します。

     

    1. Tera Termを開きます。[ New Connection ]ウィンドウで適切なCOMポート(USB-シリアルデバイスが認識されているポート)を選択し、[ OK ]をクリックします。

    9.png 

    9. COMポートの選択

     

    2. Setup > Serial Port 移動します。デバッグファイルは、FX2LPからのI2C周波数として100 kHzを使用します。したがって、ボーレート(Baud rateとしてI2C周波数10000入力します。[ OK ]クリックします。400 kHzも使用できますが、それに応じてFX2LP_I2C.h デバッグファイルを変更する必要があります。

    10.png 

    10. I2C周波数をボーレートとして設定する

     

    テスト

    USBコントロールセンターは、USBを使用して、コンパイル済みの.hexファイルをダウンロードします。次の手順に従って、サンプルのファームウェアをテストします。

     

    1. USBケーブルを使用してCY3684 EZ-USB FX2LP DVKボードをコンピューターに接続し、それをドライバーcyusb3.sysにバインドします。EZ-USB FX3 SDKをダウンロードしてインストールし、USBコントロールセンターを起動します。

    2. C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\application\c_sharp\controlcenter\bin\Releaseeに移動しCyControl.exeを実行しますUSB Control Centerウィンドウが表示されます。

    11.png 

     

    3. メニューパスProgram > FX2 > RAMを選びます。表示されるポップアップウィンドウで、buglooploop.hex選択します。これには、デバッグメッセージが含まれており、Bulkloopフォルダーにあります。

    14.png

    15.png

     

    FX2LPがコードを実行すると、デバッグメッセージがTera Termに出力されます。

    16.png