RX63N USB通信機能の実装について

質問失礼致します。

初歩的な質問で大変恐縮でございますが、

RX63NマイコンでのUSB通信機能の実装についてご教示頂けないでしょうか。

 

現状のUSB通信方法として、

デバイス側では、RX63NマイコンからUARTを[CP210x]シリアル-USB変換IC経由でUSB出力し、

ホスト側PCでは、[CP210x]ドライバをインストールし仮想COMポートとして通信させております。

 

本件の試みとしては、

デバイス側では、シリアル-USB変換ICを廃止しRX63Nマイコン内部でSCI→USB変換し、

ホスト側PCでは、CDCドライバをインストール(Windows10では不要?)し通信させようと考えております。

 

アプリケーションノート[R01AN0273JJ0233]の記載があるように、

https://www.renesas.com/jp/ja/doc/products/mpumcu/apn/rx/013/r01an0273jj0233_usb.pdf

RX63NのUSBドライバ[Comm.(PCDC)]をインストールし、

(https://www.renesas.com/br/ja/products/software-tools/software-os-middleware-driver/usb/usb-driver.html)

このe2studio用プロジェクトをCS+で使用しようと考えております。

 

ここで質問なのですが、

①上記のサンプルコードを既存のソースコードに組み込む事は可能なのでしょうか。

②SCIからUSB通信に変換する際にデータ変換のイメージができないのですが、

 SCI送信用のデータバッファをサンプルコードに組み込むイメージでしょうか。

 

下記のアプリケーションマニュアルを参照し実装を試みているのですが、

(r01an0512jj0233_usb.pdf ※サンプルコードファイル内にありました。)

どの作業から手をつけたら良いか悩んでいる状態です。

 

ざっくりとした質問で大変申し訳ございません。

ご教示の程宜しくお願い致します。

  • > ①上記のサンプルコードを既存のソースコードに組み込む事は可能なのでしょうか。

    技術的には可能でしょう。ライセンス的にはドキュメントを確認しましょう。USB の VID や PIDは自由には使えないと思います。

    > ②SCIからUSB通信に変換する際にデータ変換のイメージができないのですが、
    >  SCI送信用のデータバッファをサンプルコードに組み込むイメージでしょうか。

    SCI にしろ USB にしろ用意されてる抽象化されたインタフェースを使用するだけだと思います。
  • sktytrさん、こんにちは。NoMaYです。

    > ①上記のサンプルコードを既存のソースコードに組み込む事は可能なのでしょうか。

    禅問答というか頓知問答というか、そんな感はありますが、どの作業から手をつけたら良いか悩んでいる状態であれば、サンプルコード(処理内容の詳細は謎だが兎に角動いている)の方へ既存のソースコード(酸いも甘いも知り尽くしている)を組み込んで行く、というやり方の方が確実性が高いのではないかな、という考えが今しがた思い浮かびました。そういう方向性ではどうでしょうか。

    > ②SCIからUSB通信に変換する際にデータ変換のイメージができないのですが、
    >  SCI送信用のデータバッファをサンプルコードに組み込むイメージでしょうか。

    サンプルコードのソースまでは見ていないのですけど、アプリケーションノート[R01AN0273JJ0233]記載の以下の処理のことですので、サンプルコードのソースを見れば参考になるかと思うのです。
    16P
    7.2.3 メインループ (USB-シリアル変換モード)

    6. 上記の処理が完了した後、以下の送信処理が行われます。なお、以下の送信処理を行う前に上記4と5でセットされたフラグを参照し、送信可能かどうかを判断しています。
    (1). USB Host から受信したBulk データをCOM ポートへ送信するSCI 送信処理。
    (2). SCI エラー(Parity error/Framing error/Overrun error など)を検出した場合、USB Host へ通知
    するためのClass Notification (Serial State)送信要求処理
    (3). COM ポートから受信したデータをUSB Host へ送信するためデータ送信要求処理。

  • >fujita nozomu様
    返信が遅くなり大変申し訳ございません。
    返信頂きありがとうございます。

    まずはドキュメントを確認してみます。
    読み進めていく上でもっと具体的な質問ができるようにしたいと思います。
  • >NoMaY様
    返信が遅くなり大変申し訳ございません。
    返信頂きありがとうございます。

    >①について
    まさに仰る通りでございまして、
    どこから手を付けてよいかわからない状態です。

    既に動作しているサンプルコードというのが、
    www.renesas.com/.../usb-driver.html】
    上記のドライバかと思ったのですが違うのでしょうか?


    >②について
    (1). USB Host から受信したBulk データをCOM ポートへ送信するSCI 送信処理。
    →マイコン内で生成したデータをPCに送信する事でしょうか?
    (3). COM ポートから受信したデータをUSB Host へ送信するためデータ送信要求処理。
    →PCのデータをマイコンに受信する事でしょうか?


    >ソースコードについて
    SCIで通信する際にはPDG2を用い下記の様な処理をメインで行っておりました。
    送信データは別データで常時更新しているようなイメージです。
    -------------------------------------------------------------------------------------------------------------------------
    if (tim_sci == TIME_INH){ /*周期的に所得*/
    tim_sci = TIME_WAIT;
    R_PG_SCI_StartSending(&送信データ先頭,送信データbyte数); /*マイコン→PC送信処理*/
    }else{
    if (送信完了フラグ){
    R_PG_SCI_StartReceiving(&受信バッファ先頭,受信データ数); /*PC→マイコン受信処理*/
      }
    }
    -------------------------------------------------------------------------------------------------------------------------

    USB通信のサンプルコードには下記の様な関数が設けられております。
    SCI通信のソースコードと比べ引数が増えていました。
    -------------------------------------------------------------------------------------------------------------------------
    R_USB_Read(&構造体領域のポインタ,ライトデータ格納ポインタ , データサイズ);
    R_USB_Write(&構造体領域のポインタ,ライトデータ格納ポインタ , データサイズ);
    -------------------------------------------------------------------------------------------------------------------------
    →この「構造体領域のポインタ」とは何の情報の事を指しているのでしょうか?


    初歩的な質問で大変申し訳ございません。
    ご教示の程宜しくお願い申し上げます。
  • sktytrさん、こんにちは。NoMaYです。

    あっ、既存のソースコードでPDG2を使用されているのですね。そうなると、既存のソースコードでも詳細不明なところ(PDG2のバイナリライブラリの内部(そのソースも一応公開されていますが)とか)が結構ありそうですね。すみません、そうなると、話が変わってきますね、、、

    加えて、公開されているRXマイコン向けUSBドライバは、FITのUSBドライバの派生品(の筈)で、FITのBSPモジュールを使うことを前提にしていますが、以前に以下の別スレッドに返信したように、PDG2とFITをちゃんぽんにするのは難度の高い複雑な業務だと私は考えています。すみません、アドバイスの内容を大変更して申し訳ないのですけど、今回は諦めた方が良いのではないかと私は思います、、、

    RX210のFIT
    japan.renesasrulz.com/cafe_rene/f/forum5/5683/rx210-fit/31644#31644