2020年8月25日火曜日

STM32でDCC/DDCを作る方向で (38) LEBE攻略完

告知です.
コミケ99にて当社のDDC/DACを頒布いたします.
  日付   2021年12月31日(金) 東地区 テ-40b  東5ホール
  サークル名    bangflat
コミケにお越しの際はお立ち寄りいただけますとありがたいです.
商品紹介ページを作りました.
ーーーー

STM32でDCC/DDCを作ろう、からのいってらっしゃい.(立花風)  INDEXページへ

今日は家庭の事情で外出でしたので進捗は少々です.

35回37回、と関連しますが、LEBE変換速度の問題が解決しました.

STM32F205で3480word(32bit)をLEBE変換するのに要する計算時間がどれだけかかるか? 試行した順に.
1)for文で配列扱い                                     4.04mSec      不合格
2)for文で配列扱い    マシン語REV採用     2.84mSec      ギリギリ
3)while文でptr扱い  マシン語REV採用    1.53mSec       合格

3番目が今夜の成果であります.
codeは for文を使わず、配列を使わずです.その替わりにwhileとptr++を使います.for廃止効果と配列廃止効果のどっちが強かったのかは不明です.
while(bufi++<size) { *pdst32half++ = __REV(*psrc32half++); }

3番目でのLEBE変換のCPU占有率は45%ぐらいに低下しました.ここまで高速化出来れば32bit384kHzPCMも再生可能です.よって本件は解決.

LEBE変換以外の転送動作はDMAにやらせますので、CPU占有率を圧迫することはありません.

--------
DDC開発のPCMルートは8割方終わった気がします.
残る作業は、
・44.1k系/48k系 clock切り替え
・DAC出力にグリッチがたまに出る原因究明
・乱れたcodeの修整

これらを済ませたらPCMルート終了時点での設計レポートを発行します.

メインルート攻略が終わったとしても、まだDSDルートが残っているんですね.USB audio class2.0ってDSDも通るとどこかで読んだ記憶があるのだけど、UAC2規格書にDSDの事って書かれてたかなぁ?

かしこ

0 件のコメント:

コメントを投稿