2021年4月29日木曜日

SANYO LC7881 DAC その10 (PIC32MX編)

その9の続き。

データを一時保管するバッファの構造を変えたりしたが、
44.1kHz再生でノイズが消えずに1週間経ってしまった。

最終的にはUSBHandleGetLengthの使い方が間違って
いた様だ。正しい手順を書いておく。

初期化部分USBCBInitEPで、まずUSBHandleBusyで受信
できるか確認する。受信可能になればUSBRxOnePacketの
受信サイズを考えられる最大サイズを指定して呼び出す。
つまり48kHzで49サンプル分x4byte=196を指定。

メインのループUSBAudioTasks内にて、USBHandleBusyで
できるか確認する。受信可能になればUSBHandleGetLength
を呼び出し、前回受信したサイズを取得する。その後で
USBRxOnePacketの受信サイズを考えられる最大サイズを
指定して呼び出す。以降繰り返し。

つまり受信サイズは次回USBHandleBusyで受信可能になる
まで取得できないと考えられるので注意が必要だ。メーカー
サンプルを修正するなら一部48のところを49に修正するのを
忘れない様に。

その7のusb_descriptors.cについて修正した方が良さそうな
部分があったので、その7に追記しておいた。

0 件のコメント:

コメントを投稿