2021年6月16日水曜日

またまたLM380/384

基板の追加作成や作り直しでパターンを作成しているが、
基板に余りがあるので何か作れないか部品を眺めていた。

前に実験したLM384が沢山あるので使えないか考えて
いたら、ふと閃いた。

LM380/384が2段になるのでスルーレートが倍になるが
1段目で電圧シフトして2段目の出力と同じ電圧に上げて、
それを2つ用意して初段を逆接続で反転してBTLをすれば
コンデンサレスで非革命非革命BTLアンプを作れそうだ。

初段はスピーカが付いていないので非革命にしなくても
歪まないだろう。

片CHにLM380/384が4個必要なのが難点だな。

部品も余っているし、作ってみるかな?

2021年6月10日木曜日

SANYO LC7881 DAC その13(PIC32MX編)

基板を作る前にPIC32MXのI2S回路で使うピン番号を
基板に合わせて変更と、PIC32MXのソフト改良の為に
プログラム動作チェック用のUART回路追加とソフト
修正をした。

現在取り付けてあるDACのクロックは高精度温度補償型
TCXO水晶発振器FOX924Bで、パソコンのクロックより
性能が良い品物である。PIC32MXのソフトでは動作中に
PLLの数値を変更してパソコンの周波数に近くなる様に
なっている。しかし、完全に一致する訳ではないので、
脈動するだろう。

そもそもUSBのDACはパソコンからデータを垂れ流しで
あり、DACのクロックが良くてもデータの不足や余りを
発生させる。AmaneroやXMOSでTCXOを付けていても
同じなので、何らかの対策が必要になりその対策をして
いるだろう。

この対策をする為のソフト改良が必要なのだが、実際の
ところどれくらいの頻度でデータ不足や余りが発生する
のか判らないし、改良したプログラムの動作確認が必要
なのでUARTでパソコンにデータを送る事にした。送信
だけできればOKなので、送信しか実装しなかった。

本気でプログラムするなら、USB複合デバイスにすれば
UARTは不要なのだが、そこまでは出来ないと思った。

難しくは無いが作ると面倒なので、UARTプログラムの
抜粋を書いておく。

//初期化 9600bps 8N1
PPSOutput(1,RPA0,U1TX);
U1BRG=259;U1STA=0x0400;U1MODE=0x8000;

//送信 '@'を送る
if(U1STAbits.UTXBF==0)U1TXREG='@';

実際に現在付いているTCXOで調べたところ、1秒間に
2回程度のデータ不足が発生していた。47998/48000
としてパソコンより0.00416%早いと言う結果だった。
5分で600回0.0125秒となりバッファを2400byte用意
して、無音時にバッファを調整すれば5分の曲なら対応
可能だろう。

訂正:遅い→早い