Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

rx111におけるCDCドライバを使用したFTDIチップ搭載デバイスとのシリアル通信について

以下に状況

私は今、rx111においてrenesasで配信されているan_r01an2293jj0102_usb.zipファイルの

USB Host Communications Device class Driver for USB Mini Firmware Using Firmware Integration Technology Modules

を使用してFTDIチップ搭載デバイスとシリアル通信を行う製品を開発しています。

bspの設定をマイボードに設定しサンプルコードをそのまま使用するようにしています。

ソフトを動かせるところまでいけたのですが、通信が正常に行われているかわかりません。

アプリケーションステートのアタッチステートから一向に変化がありません。

以下に質問等

・FTDIチップに対してRenesasのCDCドライバで通信を行うことができるのでしょうか?

・アプリケーションをうまく動作させるためにはどうすればいいでしょうか?

・renesas製のCDCドライバを使って仮想シリアル通信をするためにはどういったコツが必要なのでしょうか?

以上よろしくお願いします。

  • わわいです
    シリアル通信が正常にできているかどうかは、オシロかなんかで送信データが出ているか見ればいいんじゃないでしょうか。
  • In reply to わわい:

    わいわいさん返信ありがとうございます。
    さらに調べてみたのですが、
    エニュメレーションのはじめにデバイス情報を取得するGET_DESCRIPTORコマンドを送信するところまで動作しているのですが、応答エラーのNAK割り込みが発生してしまい次にすすめていない状況です。
    USBデバイス自体はwindowsPCで正常に動作することを確認して使用しており、SOFパケットが正常に送信されているのを確認できているのでハード的な問題とは考えにくいのですがいまいち原因がつかめていません。
  • こんにちは
    USBは詳しくないのですが、renesas製のCDCドライバはCDC仕様しかサポートしていないのではないのでしょうか?
    FTDI仕様はサポートしていないのではないでしょうか?
  • In reply to SA:

    SAさん返信ありがとうございます。
    私が調べた限りではFTDI仕様対応と明記されているものはありませんでした。
    現在正常に動作してない部分がUSB全体に共通な標準コマンドに対する応答なので
    CDCでFTDIチップ搭載デバイスを動作させることができるのかという検証はできてない状況です。
  • In reply to yamayama:

    新しい追記です。
    データラインの周波数が使用上フルスピードが12Mbpsになっているのですが、オシロスコープで波形をモニタしていたところ約8Mbpsしか出ていませんでした。
    このことについても情報をもっている方がいらっしゃいましたら教えていただければと思います。
  • In reply to yamayama:

    新しい追記です。
    私調べではUSBフルスピード通信の周波数は12Mbps±0.25%の精度が必要でした。
    rx111でフルスピード通信を行うには48MHzのクロックが必要らしく
    rx111のUSBクロックはセレクタで選択したクロックソースをそのまま利用しているので
    rx111オンチップオシレータのみでは48MHzのクロックを作り出すことができない?
    外部発振子を接続し分周器とPLL回路で48MHzのクロックを作り出し、
    クロックソースをPLL回路に設定することで正常に通信できることを確認できました。
    32MHzのオシレータで8MHz、48MHzのPLLで12MHzだったので最終的に1/4分周して使用するみたいです。
    まだ、標準コマンドの応答が正常に行われていることを確認しているだけなので
    ルネサスのCDCドライバでFTDIチップ搭載マイコンとの通信を行うことができるのかという検証はできていません。
    なので、今後も情報を追記していきます。
    みなさまにも情報を提供していただければ幸いです。
  • わわいです
    FTDIのチップを駆動してそいつでシリアル通信をさせたい、という話でしょうか。
    そうなら、そのドライバだけでは無理でしょうね。
    FTDIチップを駆動するコードを、「あなたが」書かないといけません。
  • In reply to yamayama:

    yamayamaさん、こんにちは。

    FTDIチップがスタンダードなCDC-ACMプロトコルで制御出来るかどうかFTDI社の
    ウェブサイトに資料がないか見てみたのですが見付けられませんでした。そこで、
    困った時のオープンソースプロジェクトとばかりに、Arduinoとmbedのフォーラムを
    調べてみました。まだ、ちらっと見ただけですが、FTDIチップはスタンダードな
    CDC-ACMプロトコルから若干外れているような印象です。(英文を斜め読みした
    印象ですので、もし読み間違えていたら申し訳ありません。)

    forum.arduino.cc/
    USB HOST FTDI CDC で検索。参考になりそうなものとして以下がありました。
    forum.arduino.cc/index.php?topic=62310.0

    [検索画面コピー]



    developer.mbed.org/forum/
    USB HOST FTDI CDC で検索。参考になりそうなものとして以下がありました。
    developer.mbed.org/questions/668/How-can-I-send-and-receive-USB-Host-Seri/

    [検索画面コピー]



    取っ掛かりになりそうだと思ったのが以下のGitHubのオープンソースプロジェクト
    です。もっとも、当たるも八卦、当たらぬも八卦、と口上を述べる占い師のごとく
    思われそうな気もしますが、仮に自分の仕事だとしても、このURLは取り敢えず
    メモを残しておくだろうと思ったURLです。

    github.com/felis/UHS30
    github.com/felis/UHS30/.../UHS_CDC_ACM/examples/.../acm_terminal.ino
    github.com/felis/UHS30/.../UHS_CDC_ACM/examples/.../buffered_acm_terminal.ino

  • In reply to NoMaY:

    わわいさん、NoMayさん返信ありがとうございます。
    お二人の意見を読ませていただいた限り、そのままCDCドライバで動作させるのは難しそうですね。
    NoMayさんにいただいた情報も含めて私のほうでさらに調べていこうと思います。
    GitHubとmbedというサイトは利用したことはなかったのでこういったサイトも教えていただけると助かります。
    情報ありがとうございます。
  • In reply to yamayama:

    状況が進展したので報告させていただきます。
    現在、マイコン側がからFTDIチップ搭載デバイスへデータを送信するところまで成功しました。
    成功した方法を以下にまとめます。
    1、まず、CDCドライバのクラスリクエストはFTDIチップに対応していないためクラスリクエストの処理を削除しました。
    2、以下のサイトを参考にFTDIチップに対応している2つのリクエストを行う記述を追加しました。
    osdn.net/.../ftdi_sio.h
    www.ftdichip.com/.../AN232B-05_BaudRates.pdf
    ビット数、パリティ、ストップビットの設定を行うリクエストのFTDI_SIO_SET_DATA(0x04)を追加
    ボーレートの設定を行うリクエストのFTDI_SIO_SET_BAUDRATE_REQUEST (0x03)を追加
    コマンドの詳細はサイトを参考にしていただければと思います。
    3、CDCドライバで既に用意されているデータ送信関数をそのまま流用して送信処理を行いました。
    以上が成功した方法です。
    今回私が使用したのはFTDIチップのFT232Rという型番のため、他の型番で動作するかはわかりません。
    まだ受信の確認ができていないため、また進捗があれば報告させていただきます。
  • In reply to yamayama:

    状況が進展したので報告させていただきます。
    FTDIチップ搭載デバイスからのデータ受信に成功し、仮想シリアル通信機能を完成させることができました。
    ご協力いただいた皆様に感謝いたします。
  • 便乗します、、

    多くのRS232変換器などはFTDIのチップが載っていますが
    Renesasのサンプルコードそのままで
    PCのターミナルソフトに繋げることができるデバイスはあるのでしょうか??
  • In reply to t-t:

    わわいです
    そのデバイスとはなんのことを言ってるんでしょうか。
    FTDIに限らず、あらゆるUSB-RS232C変換ケーブルででも、繋げば通信できます。
  • In reply to わわい:

    わわいさん

    分かり辛くすみません。
    今回のサンプルコードではあらゆるUSB-RS232C変換器を接続して
    RS232C通信できるということですか??

    変換器がFTDIチップを採用している場合は無理という趣旨なのかと思いまして。
  • In reply to t-t:

    わわいです
    RS232CでPCとつなぎたい、PCのターミナルソフトでつなぎたいというのであれば、FTDIに限らず、あらゆるRS232C-USB変換ケーブルを介して、RX(にかぎらず)CPUのシリアルポートと繋いで接続することができます。

    RXのUSBポートからUSBーRS232C変換ケーブルを駆動したい、というはなしであれば、どんな変換器であれ、サンプルコードでは接続することはできません。
    まずは、何を実現したいのか、ということをはっきりさせましょう

Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page