2023年02月27日

LaVoixski@PWMの発振周波数が音声に与える影響について

LPFにModulationを掛けた時にノイズが発生することが判明した。 PWMを駆動するために発動されたインターラプトの頻度が音声に影響を与えているようだ。

制御波形 (LFO) のエッジの部分で出音にノイズが出現するパターンは、グリッチと似ている。

原因として考えられるのはPWMに行った可聴帯域外への発振周波数の変更しか思い付けず、周波数をより低い値に再設定して様子をみることになった。

まず、オリジナルの設定から周波数設定値の逆算を行った結果、16bitフルスケールの65535に設定した場合の発振周波数は約2289kHz、また、発振周波数を20kHzに設定する場合の数値は7499となった。

ちなみに、トラブル発生時に設定していた数値 4000 に対応する周波数は約37.5kHzで、これは流石にオーヴァースペックが過ぎた。

数値を変更しながら試験を行った結果、20KHz ≒ 7500 では完全にノイズが解消されず、倍の設定値 8000 から漸増した結果、最終的には設定値 10000 ≒ 15kHz で折衷することになった。

Screen Shot 2023-02-27 at 14.12.41.png

PWMから放射されるノイズに関しては、DACを物理的に分離することで逃げられるのだが、ID-292のようにギリギリの実装を行っている場合は別のアプローチを探さなければならなかった。

ソフトウエア側でハードウエアの処理能力と折衷できるポイントを探す一方、折衷を要求される原因は「パラメータを突っ込み過ぎた」結果なところもある。 最終的には何処かの(ハードウエアを含めた)機能を削ることになるのだろう。

何れにしても、動作が不安定になるポイントが発生してしまうので、ユーザー側はそれを回避する方向で、音色の設定を行うことになる。

追記:

LFOの波形を読み出すWavetableのアドレスを uint16_t でキャストした結果、グリッチ・ノイズをほぼ消滅させることが出来た。

Screen Shot 2023-02-28 at 17.40.25.png

追記2:

暫定で、PWMの周波数を20kHzまで上げている。

Screen Shot 2023-02-28 at 21.08.49.png
posted by Yasuski at 15:11| LaVoixski

2023年02月19日

LaVoixski@反転出力選択時のレベル設定について

オーヴァーレベル設定のwaveMixアドレスの選択時に、Rchの出力を反転させると発生していた「過剰な歪」を防止する機構を追加した。

Screen Shot 2023-02-19 at 20.10.13.png

これは前触れなしに来る「パッツン系の歪」で、音楽的に美しくないタイプの音色。

Screen Shot 2023-02-19 at 21.46.24.png

追加したコードは neg_Out 作動時の出力に -0.5 が掛け算される仕掛けで、出力が過渡的な変化無しでいきなりクリップすることを防止している。
posted by Yasuski at 21:51| LaVoixski

2023年02月14日

LaVoixski@PWMの発振周波数の初期設定を変更する

pwm.c の書き換えを行って、PWM の発振周波数を可聴帯域外に変更した。

PWM の設定を行うファイルの場所はここで、、、

Screen Shot 2023-02-14 at 19.24.40.png

p->SM[i].VAL1 で、カウンタに設定されている初期値を以下のように書換える。

Screen Shot 2023-02-14 at 16.13.26.png

数値の変更によってカウンタがリセットされる間隔が短縮された結果、PWMの周波数が上昇する。 デフォルトの設定では analogWriteResolution によりカウンタのデータ幅が8bitに丸められているが、実際のカウンタ(ハードウエア)は16bitで動作している。

Screen Shot 2023-02-15 at 21.51.43.png

本家に掲載されている表によると、 Teensy4.1 にデフォルトで設定された PWM の発振周波数は 4.5kHz 程で、対応する数値は 33464 に設定されている。 これをほぼ 1/8 の 4095 に変更したところ、オーディオ・ラインに乗っていた可聴帯域のノイズは消滅した。

追記:

30kHzで高速点灯した結果、色味が落ち着いた感がある。 

IMG_20230215_072135864.jpg

特にノイズの発生が気になっていた中間色の発色が良好で、カメラ(撮影)との相性も良いようだ。

IMG_20230215_072203189.jpg
posted by Yasuski at 18:43| LaVoixski

2023年02月11日

LaVoixski@ID-292版の電源回路のリファインを行う(続き)

電源ラインを増設する過程で、より細かな隙間にグランドラインが潜り込むように設定を変更した。

Screen Shot 2023-02-11 at 18.30.38.png

ついでに、LCDの所為で倒置することになったVRTとSMDが干渉していた問題を、SMDの配置を表側に変更して解決。

Screen Shot 2023-02-11 at 13.39.28.png

オシレータ周りのグランドの面を分散させる小細工を弄していところを、単純なベタアースに変更してアースラインの分断を解消した。

Screen Shot 2023-02-11 at 2.21.37.png

GNDの面積を少しでも増やすために、配線の間隔を調整してベタアースを通す。

Screen Shot 2023-02-12 at 11.03.25.png

裏面はこんな感じになった。 IC18の横のベタアースを貫通する孔で接続を行っていた「島」の発生を、配線を工夫することで解消している。

Screen Shot 2023-02-12 at 11.03.34.png

adat出力系の基板にも同様の手当を行っているが、、、

Screen Shot 2023-02-13 at 9.25.46.png

アナログ出力回路が存在しないために、プリント・パターンの構成はかなりシンプルになっている。

Screen Shot 2023-02-13 at 9.25.57.png

Screen Shot 2023-02-13 at 9.26.06.png

追記:

出力バッファに至るアナログ音声の信号ラインとPWM出力の近接具合は、出来るだけグランドを挟むように修正したのだが、、、

Screen Shot 2023-02-12 at 22.48.25.png

これでもノイズを喰らってしまうかもしれない。

アナログ信号のラインだけを表示するとこんな感じになる。 

Screen Shot 2023-02-12 at 16.08.40.png

出力までの配線を含めるとPWMで駆動するLEDの領域と重複する度合いが深まってしまうのだが、、、問題は電源のダイナミックレンジで、±12Vの世界とは違い「単電源+5V」では、PWMから放射されるスパイクノイズに対するマージンが心許なくなってくる。

追記:

旧い基板に行う手当としては、5V化した電源ラインからDACに至る配線を事前にカットしておく必要がある。

Screen Shot 2023-03-13 at 22.53.02.png



posted by Yasuski at 18:36| LaVoixski

2023年02月09日

LaVoixski@基盤の配線を始める

AN/PRC-6のバッテリーケースに配線を行いながら基板を組み込んでいく。

IMG_9319.JPG

新しく導入したロープロファイルなMCUのソケットは丸ピンに比べて合わせ込みがクリティカルで、ほぼ換えが効かないことが判明している。 Audio基盤に光通信素子とのクリアランスの問題が発生した結果、データラインの配線は基盤と直付けになった。

IMG_9321.JPG

一見するとスカスカに見えるのだが、平面ではないために部品の配置が難しい。 今のところ空いているVRの辺りには、リモコン素子を配置する可能性が高い。

IMG_9323.JPG

ボディー中央に配置したフロントパネルの支持ステイとの干渉を避けるため、オーディオ基盤の配置が難しくなった。 フロントパネルが正確な寸法でカットされている場合には、支持ステイが不要となるのだが、、、。

IMG_9324.JPG

フロントパネルとの干渉を避けるように、フラットケーブルを引き回す。 プッシュスイッチが未実装なので、そちらのクリアランスチェックを忘れずに行わなければならない。

IMG_9325.JPG

LCDとの配線距離を最短にするにはLCDを倒置すればよいのだが、この状態でしばらくの間様子を見ることにした。 リモコンの接続は、ブレッドボード用の配線材を使用してもよいだろう。

追記:

DACに搭載されているチャージポンプ回路に繋ぐ電源ラインの配線を忘れていたので、これを追加した。

IMG_20230211_210129149.jpg

MCUにヒートシンクを取付けているが、基板を垂直に実装するために生じるズレが心配。

追記2:

オプションのオプティカル・デバイス、HFBRの接続pinに関する備忘録。

Screen Shot 2023-02-11 at 14.39.46.png

Screen Shot 2023-02-11 at 14.40.20.png

HFBRによるadat接続は一般的ではなく、オリジナルのDACユニットの構築が必須となる。 HFBR系はケーブルが安価で、通信距離が段違いに長いところが魅力ではある。 
posted by Yasuski at 15:16| LaVoixski

2023年02月07日

LaVoixski@オシレータの電源電圧について

ここ数回行ったライヴでは、全ての会場に於いてピッチを検出するディテクターの出力が不安定になる現象が発生している。 緊急措置でボディーアースを行った結果、なんとかトラブルを乗り切ったのだが、、、これはステージをとりまくノイズ環境の悪化を示唆している。

オシレータの電源電圧にはトラディショナルな発振回路の仕様としては低めの3.3Vを供給しているが、この電圧では環境に拡散されているノイズに対してマージンを稼げていないフシがある。

そこで、とりあえずの対抗処置として電源電圧を5Vまで昇圧しようと考えている。 その際に問題となってくるのがDACのアナログ電源とオシレータの電源を共有している点で、現在展開している3.3Vの電源ラインをそのまま5Vに乗り換えることは出来ない。

簡易にリプレイスを行う方法として、オシレータの電源に展開しているLCフィルタのLを撤廃して、オシレータにMCU側の5Vを直接供給する案がある。

Screen Shot 2023-02-07 at 23.23.07.png

その際、分離された従来の3.3Vの電源ラインは、引き続きDACのVA専用として使用することが出来る。

Screen Shot 2023-02-07 at 23.25.52.png

ただし、MCUは3.3V入力なので、デモジュレータ・アウトの信号ラインには分圧抵抗を追加することが必須となる。

Screen Shot 2023-02-07 at 23.34.00.png
posted by Yasuski at 23:39| LaVoixski

2023年02月04日

LaVoixski@AN/PRC-6に部品の実装を開始する

まずは、オシレータを組み込んで、調整を行っていく。

IMG_9312.JPG

フロントパネルから飛び出しているヒゲっぽい配線は、リファレンスオシレータのアウトプットをオシロスコープでチェックするための工夫だが、

IMG_9303.JPG

ダミーの接続フィードは温度変化に対するオフセット調整器を兼ねている。 オシレータの発振周波数を調整した後も接続を外さず筐体内にケーブルを這わせることになるだろう。

今回扱う素材は、AN/PRC-6のバックパネル。

EpdD9GeUcAAZ42d.jpeg

オーディオ(緑)とMCU(赤)基板。 未実装な部品を残しているが、とりあえず「赤基板」はオシレータの周波数チェックを行う目的で筐体に仮実装している。

IMG_9306.JPG

今回の改装では、レベル調整回路とバイアス変更スイッチを全て時定数をもたせたFETによるディスクリート回路に転換する一方、余ったMaximのアナログスイッチICはレベル変換用のデバイスとして使用する。

スイッチの駆動パターンは、単純な組み合わせに設定する予定。

IMG_9311.JPG

ポップノイズを防止するために導入を行うディスクリート版FETスイッチをピッチ変換基盤に組んでいる。

IMG_9304.JPG

PchなJ-FETは正電圧入力でオフになる仕様だ。

IMG_20230131_120830030.jpg

基盤の配線を進めているが、、、

IMG_9313.JPG

結線に工夫が必要。

IMG_9315.JPG

FETスイッチのアドオンパーツを基板の裏面に貼り付ける。 配線の取り回しの影響を可能な限り避けるために、バイアスラインに太い線を使っている。 茶色の線はFETのゲートに接続する。

IMG_9316.JPG

追記:

オシレータのチューニングを行っていたが、周波数の合わせ込みが難しく、殊の外手間取ってしまった。

Screen Shot 2023-02-04 at 22.34.03.png

高hfeなMPQ6100Aは、発振周波数が400kHz台でも減衰が発生せず、余裕でゲインを稼げている。

Screen Shot 2023-02-04 at 22.47.59.png

その代わり、調整になると変化がピーキーで、10pF台の変更が周波数の設定に大きく作用する。

Screen Shot 2023-02-04 at 22.48.03.png

可変周波数のレンジが狭くなった結果、調整はクリティカルになってくる。

Screen Shot 2023-02-04 at 22.50.03.png

これは、「経時変化が心配になる」ということでもある。

Screen Shot 2023-02-04 at 22.50.08.png

出来れば、発振周波数を300kHz以下に設定したほうが良い感触があるので、実際にプログラムを走らせながら様子を見ることになりそう。
posted by Yasuski at 00:26| LaVoixski