0 Replies Latest reply on May 10, 2020 3:32 PM by NoTa_4591161

    Community Translation - FX2LP I2C Based Debug with SDCC on Eclipse IDE- KBA229648

    NoTa_4591161

      Hi,

       

      I would like to translate KBA229648 into Japanese.

       

      Thanks,

      Kenshow


      Original KBA:

      FX2LP I2C Based Debug with SDCC on Eclipse IDE- KBA229648

       

      Translated by Kenshow

      ==============================

       

      タイトル: Eclipse IDE上のSDCCによるFX2LP I2Cベースのデバッグ-KBA229648

       

      バージョン:**

       

      質問:

      SDCCコンパイラを使用している場合、FX2LPを介してI2Cデバッグメッセージを送信するにはどのようにすればよいでしょうか?

       

      回答:

      FX3 SDKからインストールできるEclipse統合開発環境(IDE)には、SDCCコンパイラスイートプラグインが含まれており、FX2LPプロジェクトのビルドに使用できます。Eclipse IDEにあるテンプレートを使用してFX2LPプロジェクトを作成する方法の詳細については、 EZ-USB Suite User Guideをご参照願います。このナレッジベースの記事(KBA)では、I2Cインターフェイスを介してFX2LPからデバッグメッセージを受信するようにEclipse IDEでプロジェクトを構成する手順について説明します。

       

      USBシリアルデバイス(CY7C65215)をI2Cスレーブとして使用してFX2LPからメッセージを送信するには、5 Debugging of FX2LP Firmware using I2C - KBA229175.をご参照願います。

       

      FX2LPプロジェクトテンプレートを使用したプロジェクトの作成

       

      1.Eclipse IDEで、メニューパスの[File ] →[New]→[Project ]を選択します

      1. Eclipse IDEで新しいプロジェクトを開く

      1.png  

       

      2. New Projectダイアログで、FX2LP Project選択します。

      2. FX2LPプロジェクトの選択

      2.png  

       

      3. [Create the Project using one of the Templates ]チェックボックス選択します。プロジェクトの名前を入力し、Bulkloop_SDCCテンプレートを選択します。[ Finish ]をクリックしてプロジェクトを作成します

      3. Bulklopp_SDCCテンプレートを使用したプロジェクトの作成

      3.png  

      注: EZ-USB Suite User Guide説明されていますように、SDCCコンパイラスイートをダウンロードしたことを確認してください。

       

      4.プロジェクトを作成さら、 Properties → C/C++ Build.に移動します。ビルドコマンドスペースにC:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\Eclipse\plugins\net.sourceforge.eclipsesdcc.win32_1.0.0\os\win32\x86\make.exe -k追加し、[OK]をクリックします。

       

      デバッグファイル

       

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

       

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

       

      テストのセットアップ

       

      Bulkloopテンプレートファームウェアは、デバッグ手順を示すために使用されます。一般的なI2C操作を有効にするには、USBJmpTb.asmファイルを変更する必要があります。これは、I2C ISRのアドレスをハードコーディングするために行われます。これは、SDCCコンパイラがデフォルトでアドレスを任意の場所に配置するため、ISR呼び出しとUSBのエヌメレーションで問題が発生するためです。ファイルに次の行を追加します。

      .area INTI2C (CODE,ABS)

      .org 0x004B

         ljmp _i2c_isr

      4. USBジャンプテーブルファイルへのISRアドレスの追加

      4.png  

      テンプレートプロジェクトを変更して、このKBAに添付されたデバッグファイルを含めます。

       

      ターゲットプロジェクトへのファイルの追加

       

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

      1.デバッグファイルをプロジェクトフォルダに追加します。

       

      5. プロジェクトへのファイルの追加

      5.png  

       

      2. Eclipse IDEでプロジェクトを開き、ファイルが追加されていることを確認します。

      6. ファイルが追加されたかどうかの確認

      6.png  

       

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

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

      7.png  

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

       

      ファームウェアの変更

       

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

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

      I2Cスレーブアドレスと周波数はfx2lpi2c.hデバッグファイルで変更できることに注意してください。

       

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

             FX2LPI2C_Init();// I2C Debug Code Start

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

       

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

      IFCONFIG | = 0x40;

      FX2LPI2C_XmitHex2(IFCONFIG); // 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 ");

       

      デバッグ用のファームウェアファイルのすべての変更を含む添付プロジェクトをご参照願います。

       

      参考文献

       

      ==============================

      11-May-2020

        Kenshow