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 件のコメント:

コメントを投稿

pic16F18326のNCO1の機能を使った信号発生器

pic16F18326のNCO1の機能を使った、信号発生器をテストしました。 8Mhzのセラクロックを内部PLLで4倍し、FOSC 32Mhzを基に動いています。 pic16FのNOC1の仕様上は上限16MHz程度まで発信できるようですが、試していません。 ロータリーエンコーダー...