2025年2月12日水曜日

ArLFO Ver.1.2 Arduino(ATMega328P)とSPI DAC(MCP4921)を使ったLFOの製作

以前、テストしたArLFOのEurorackモジュールを製作しました。

はんだ付けしている様子をYoutubeにアップしてますので参考にしてください。

Arduinoのスケッチを書き込んだATMega328PとSPI DACのMCP4921を使ったLFOです。12bit DACでサンプリング周波数25kHzで動作させています。

オーディオ用DACに比べて低ビット、低レートですが、CV(モジュレーション信号)なので実用上問題ありません。MIDIが8bitデータ、分解能が1ms程度であることを考えるとむしろハイスペックと言えるかも知れません。また、出力段に4次多重帰還ローバス・フィルタを設けて量子化歪(信号波形のガタガタ)を低減しています。

ファームウェアはArduinoのスケッチなのでAVRライターなどは不要で、Arduino IDEからUSB-Serial変換モジュールを使ってプログラミング出来ます。デフォルトのファームウェアは性能を上げるために直接レジスタを操作しているので、書き換える際はAVRの知識が多少あった方がいいかもしれません。

ファームウェアはGithubで公開しています。

実装済基板

パネルに取付

出力波形


出力は以下6種類をプッシュスイッチで切り替えます。

  • サイン波
  • 三角波
  • 矩形波(パルス幅可変)
  • ノコギリ波(上昇)
  • ノコギリ波(下降)
  • サンプル&ホールド

サイン波

三角波

矩形波(パルス幅可変)

ノコギリ波(上昇)

ノコギリ波(下降)

サンプル&ホールド

Dual波形とSingle波形


ArLFOには2系統の出力があります。Singleは0V~+5V、Dualは-5V~+5Vです。受け側の入力電圧範囲に合わせて利用できます。


CH1:Dual CH2:Single

ローパス・フィルタ


DACの出力に4次多重帰還LPFを入れて量子化歪を除去しています。またLPFを掛けないDACの信号も出力できます。


CH1:LPF通過後 CH2:LPF通過前

LPFはカットオフ周波数6.25kHz、ベッセル特性で設計しています。LTSpiceでのシミュレーションは以下の通りです。

シミュレーション回路図

AC解析

過渡解析

1kHz/2Vp-p矩形波

ベッセル特性はフィルターの切れはいまいちですが、過渡特性が良く信号波形のリプルが少なく素直な特性になります。

出力周波数


出力周波数はLとHをトグルスイッチで切り替えます。

  • L:  0Hz~5Hz
  • H:  0Hz~50Hz

Hにすると可聴帯域の信号も出力できるので実際に耳で聞くこともできます。振幅が大きいので注意してください。最大周波数はスケッチ内の定数で変更できます。

回路について


回路図

回路図(アクティブフィルタ)

MCP4921の出力を直接アクティブフィルタに入力すると十分にドライブ出来ず、波形の一部がクリップしてしまいました。長年MCP492Xを使っているのですが、いつも何の気なしに出力にボルテージフォロワを入れていたので気づきませんでした。


MCP4921の出力を直接アクティブフィルタに入力すると波形がクリップする

このため、実際の回路ではDACの後段にボルテージフォロワによるバッファ(U3B)を入れています。前出のオシロの波形がクリップしていないのをご確認ください。

Q1の2SC1815はBLランクにします。YランクやGRランクだと増幅率が小さくインジケータLEDの明るさが暗く点滅するようになると思います。正規品の2SC1815は入手困難なのでUNISONIC製などセカンドソース品で十分です。

抵抗は、手持ちの関係で一部金属皮膜を使っていますが、今回の製作はすべてカーボンで十分です。また、フィルムコンデンサもマイラで大丈夫だと思います。

ファームウェアの書き込み


あらかじめATMega328PにArduinoのBootloaderを書き込んでおきます。


ファームウェアはGithubで公開しています。

ファームウェアに書き込むにはUSB-Serial変換モジュールをArLFOのJ7(ARDUINO_ISP)と接続します。

配線表

QIコネクタを使ってハーネスを作っておくと良いでしょう。


※光の加減でコネクタが白く映っていますが、黒いQIコネクタのハウジングです。

USB-Serial変換モジュールは、私はAliExpressのノンブランド品を使用しています。DTR、TXD、RXD、GNDの端子が出ていて、5V動作するものであれば大丈夫だと思います。FT232RLとCH340使用のもので動作確認しています。

ファームウェア書き込み手順

  1. USB-Serial変換モジュールをArLFOに接続
  2. USB-Serial変換モジュールをPCにUSBで接続
  3. ArLFOの電源投入
  4. Arduino IDEを起動
  5. Tools - Board - Arduino Uno
  6. Tools - Port - <USB-Serial変換モジュールのポート>

あとは普通のArudinoと同じようにスケッチをUploadします。

0 件のコメント:

コメントを投稿