2019年7月11日木曜日

PIC24F USB OTG ホスト機能 BDTについて、

PIC24FのUSB OTG ホスト機能について調べています。20190711+5.0h
USB OTG機能の BDT(バッファディスクリプタテーブル)の使い方が難しく難航しています。

そこで備忘録としてBDTについてメモをしておきます。

BDTは、USB機能のSIE(シリアルインターフェースエンジン)とCPU(PIC)とのデータ受け渡しとなるメモリバッファ(EPn)のアドレス情報などが格納されたテーブルとなります。USB機能はBDTに設定された情報をもとに、PICのメモリにDMAで読み書きします。

  • BDTの配置は512バイト境界に合わせる必要がある。
  • U1BDTP1 レジスタにBDTのアドレスの上位7bitを格納する。
  • ホスト機能の場合、EP0の領域のみを使用する。 ※USBの通信がEP1やEP2で通信が行われていても ホスト機能のはBDTのEP0領域のみ使用。
  • EPnにはRX(受信)のエリアとTX(送信)のエリアがそれぞれある。
  • RX,TXのエリアはそれぞれ レジスタ2Byte+アドレス2Byte構成となり、EP0だけで8Byte必要となる。
    • BDT
      • EP0
        • RX
          • RXレジスタ--------------16 bits
          • RXバッファアドレス-----16 bits
        •  TX
          • TXレジスタ--------------16 bits
          • TXバッファアドレス-----16 bits



  • data0, data1 を別々のバッファ(ピンポンバッファ)として使う場合は、上記をそれぞれに用意する為、16Byte必要となる。 
    • data0 EVEN(偶数) BD
    • data1 ODD(奇数) BD



0 件のコメント:

コメントを投稿

KT0913 FMラジオの作成(8) 出来上がったPCB基板にミスあり。

  FusionPCB から基板がとどきました。20240121. 1月11日に発注したので10日で出来上がって届きました。 早速組み立てましたがが、イヤホンジャックのフットプリントが裏返っており、痛恨のミス。。。 しかしながら、他にも問題が無いか一通り組み立ててチェックしました...