オーディオ/ミニアンプ0.1

 アナログ回路を極力排した、単純で簡易的な小出力・オーディオ・ステレオ・スピーカー・アンプです。Bluetooth入力機能を持っていますので、スマートフォン等からも手軽に音楽を楽しめます。3系統の入力を持ち、それぞれにレベルとバランスを調整可能なミキシング機能と、ピークホールド付きのレベルメータが付いています。パネルにはメインボリュームしか付いておらず、電源も自動オン/オフしますので、存在を意識しないですむ小物に仕上げました。
 製作費は約1万円ぐらい、マイクロコントローラと汎用部品だけを使用した、デジタル化の高い「フルデジタルアンプ」です。

ミニアンプ

機能/特徴

  • ライン/ヘッドフォン入力×2+Bluetooth×1、スピーカ出力は3Wクラス
  • 操作はメインボリュームのみ、細かい調整はタッチパネルで操作
  • アイドル時の消費電力は1W未満まで低減
  • 全入出力チャネルにレベルメータを付け、音声信号の状況を一目で確認できる
  • アナログ回路を可能な限りカットし、部品数が少なく単純、調整不要、特殊な部品はありません

仕様

名称:オーディオミニアンプ
分類:ステレオ・ミキシング・スピーカ・アンプ
入力数:3系統(AUX×2、Bluetooth×1)
出力数:1系統(スピーカ×1)
AUX仕様:
  物理接続:ステレオミニジャック3.5mm(メス)
  インピーダンス:AUX1が1kΩ程度、AUX2が10kΩ程度
  信号レベル:最大3Vp-p〜最小0.3Vp-p(ライン信号〜ヘッドフォン出力)
  プリアンプ機能:ゲイン=最大10倍、内蔵ボリュームで調整
  パネル音量調整機能:0.0〜2.0倍、0.1倍単位
  デジタル化パラメタ:サンプリングレート=44.1kHz、分解能=4096
Bluetooth仕様:
  バージョン2.1、A2DPプロファイル/シンク、SBCのみ
  ペアリング:フリー
  同時コネクション数:1
スピーカ仕様:
  インピーダンス:4〜8Ω
  出力電力:最大1.5W×2
  駆動方法:BTL型、PWM、レート=44.1kHz、分解能=4082、
       フルブリッジ、2値制御、駆動電圧=静的に可変(1.5〜4.5V)
内部信号データ仕様:PCM 44.1kHz
状態表示:3.2インチTFT カラー LCD、320×240ドット、タッチパネル付き
操作方法:ボリュームつまみ、LCDのタッチパネル
外形:幅145mm、奥行100mm、高さ42mm(突起を除く、1DINサイズ)
重量:約380g
電源:AC100V、AC-DCアダプタ使用(6V〜9V、2A以上)
   最大約14W(机上計算)、50%ボリューム時1.4W〜アイドル時0.6W(実測)
製作費:約9000円

使い方

各部の説明

 設置は基本的に横置きです。
 左上の3.5mmミニプラグジャックはアナログ入力のAUX1,AUX2です。その下が電源DCジャックです。真ん中の赤黒のターミナルがスピーカ端子です。基本的に横置きです。
 スピーカ出力は、左右の「黒」は共通になっていません。接続すると破損/発火する恐れがありますので、絶対つながないようにして下さい。 電磁干渉(EMI)を気にする場合は、シールド付きのケーブルをお勧めします。
 ライン出力(RCAピンジャック)の場合、ミニプラグへの変換ケーブルを用意して下さい。
 ヘッドフォン出力の場合、多くはミニプラグなので、両側ミニプラグのケーブルで接続して下さい。
 電源は、できるだけ安定化されたノイズの少ないAC-DCアダプタを使って下さい。電源スイッチはありません。プラグを差し込むと、2秒ぐらいで上面の画面にレベルメータが表示され、使用出来る状態になります。以下は画面例です。

操作方法

 前面のツマミはメインボリュームです。レベルメータなどの表示は、上面にあるLCDパネルに出されます。上部は開くようになっていて、LCDにタッチする事ができます。細かい、設定操作はタッチパネルで行います。
 各系統のレベルメータは3つに分かれ、左から調整前の現レベル/調整後の現レベル/調整後のピーク値です。毎秒50回で表示更新されますので、あまり遅延は感じられないと思います。ピークメータは、ピーク検出後は毎秒1%のレートで下がりながら、次のピークを待つというスタイルです。
 「+」「ー」ボタン:レベルの調整、一押しで10%。オレンジの線が調整位置、下の数字が%表示です。
 「<」「>」:左右バランスの調整。
 画面上部の「Bluetooth」「AUX1」「AUX2」 ボタンは、押すたびに系統のオン/オフ。灰色がオフ状態です。
 全てのオーディオ入力のレベルは、はデフォルトで100%になっていますので、レベルメータを見ながら調整して下さい。
 Bluetoothで使用したい場合は、「BTSP01」というデバイスを見つけて、ペアリングして下さい。パスコード等の応答はありません。すぐ、音が出る状態になります。アンプ本体の電源が切れると、ペアリングをやり直す必要があります。

設計図

ハードウェア

  • アナログ音声信号をA/D変換、Bluetooth受信、信号計算、PWMでスピーカ駆動、大部分をマイクロコントローラで行う
  • ST Microelectronics社(以後STMと表記)のSTM32F4マイクロコントローラ(開発/評価ボードのNucleoボードを利用)
  • H型フルブリッジでのスピーカ駆動と、可変電源で最終ボリューム調整
  • アナログ入力にオペアンプの反転増幅回路を使用(仮想グラウンドにオフセット+バンドパスフィルタ)
  • USB-Bluetoothドングル利用

回路図

 回路図が小さくて見えないので、右クリックでダウンロードして見て下さい。
 AUXのアナログ入力部は、オペアンプによる反転増幅回路でマイクロコントローラへの入力に必要な3Vレベルの信号にするのと、音声帯域外の信号をカットするバンドパスフィルタ機能、そしてマイクロコントローラを保護する目的で入れてあります。半固定抵抗は最大位置で10倍のゲイン、ヘッドフォン出力を受けるには真ん中の位置、4倍ゲインがちょうど良いです。ラインレベルを受ける場合は、1倍ゲインなの1/10の位置です。
 Bluetooth入力部は、USB-Bluetoothドングルだけで済んでいます。これは、BluetoothスタックソフトウエアにA2DPプロファイルがサポートされているのが前提となっています。
 スピーカはPWM駆動ですので、単なるスイッチ素子だけで済みます。また、Hブリッジ形によりコイルやコンデンサなどのフィルタ部品さえもカットしています。ボリューム調整と消費電力削減のため、駆動電圧を可変する構成になっています。
 表示、操作部分はタッチ機能付きのLCDモジュールだけで済ませています。結線数が多いのが難点ですが、ボタンの数や位置/表示方法など、ソフトウエアでどのような対応にも出来るのが最大の利点です。
 Nucleoボードは、クリスタルを追加したり、ソルダブリッジを仕込んだり、ちょっとした改造が必要です。これは、電源をE5Vから取り込む/B1プッシュボタンを無効にする/LSEクロックを無効にする/HSEクロックを8MHzで動かす、にする対応です。詳細は、本回路図のコメントとNucleoのユーザガイドを照らし合わせて参照して下さい。

  • JP5をE5Vの位置に変更
  • SB17のブリッジを取り除く
  • SB48,49のブリッジを盛る(ショート)
  • R34,36を取り除く
  • X3に8MHzのクリスタルを取り付け
  • C33,34に20pFのチップコンデンサを取り付け
  • SB54,55のブリッジを取り除く
  • R35,37のブリッジを盛る(ショート)
  • SB16,50のブリッジを取り除く

EAGLE9プロジェクトファイル: AudioAmplifierMini01d.zip (5.9MB)
EAGLE9ライブラリファイル : TOG.lbr.zip (53kB)

部品表

今回使用した部品のリストです。価格は2017年1月当時のものです。

 オペアンプは3V電源でフルスイング出力の物ならOKです。低雑音品なら、なお良いでしょう。
 表示不要であれば、LCDモジュールそのものを付けなくとも動作はします。配線数が多いし、3インチ級LCDモジュールは入手しやすいものでもありませんので。
 スピーカ出力部に使用するMOS-FETは、部品リストでは入手しづらい品番になっていますが、その時々で入手しやすい物を探して下さい。IDが1A前後、VGSが3V駆動、Cissが100pF以下、Qcが3nC以下を目安に、N型とP型の特性が似ているものです。N/P型が一つのパケージになっている部品は、特性もペアとなっているので選定や配線が楽でしょう。品番が決まったら、LTspiceでシミュレーションしておくと安心だと思います。
 USB-Bluetoothアダプタは、V2.1以上であればOKです。今は、PCに標準で内蔵されているものなので、古いやつを安く入手可能かもしれません。

ソフトウエア

インストール方法

 PCと開発ボード(NUCLEO)をUSBで接続して、プログラムをボード上のFLASHに書き込む必要があります。2つの方法があります。

書き込みツールでバイナリファイルを転送

 本サイトでダウンロードできるファイル群の中には、バイナリも含まれています。QSTLINK2等の書き込みツールを使えば、一番簡単に事が済みます。zipファイルを解凍すると”BTSP01/Debug/BTSP01.bin”というファイルがありますので、それをボードに転送して下さい。QSTLINK2はインターネット検索して用意して下さい。かなり古いツールなので、動作しなかったり、代替品が出ているかもしれません。

開発ツールでビルド+転送

 ソースコードを改修したい場合は、開発ツールからコンパイル+実行します。開発ツールはインストールやセットアップが面倒です。しかし、以前に比べて、かなり簡単になってきましたので、お勧めできる方法です。

ダウンロード

System Workbench for STM32プロジェクトファイル:
 ソースコードおよびビルド後のバイナリファイルを含む
  BTSP01 0.1d.zip (16.7MB) 2021.2.17(ノイズ対策)
  BTSP01 0.1c.zip (15.0MB) 2018.3.16(音質改善版)
  BTSP01 0.1b.zip (15.0MB) 2018.2.21(バグ対版)
  BTSP01 0.1a.zip (14.9MB) 2018.1.24(初版) 

 ライセンス: フリーソフトウエア(GPL v3)
 作成者:富樫豊彦 tog001@nifty.com
 開発時環境:
   Mac OSX 10.13.xx
   System Workbench for STM32 / Ac6
   STM32CubeMX For Eclipse 4.20 / STM

開発ツール

プログラムソースコードを改変して使いたい場合は、下記の開発環境/ツールを用意する必要があります。
<PC>
 Windows, Linux, Mac等が可
<統合開発環境>
 System Workbench for STM32
 OpenSTM32のサイトからダウンロードして下さい(要ユーザ登録)
<ソースコード自動生成ツール+STMライブラリ>
 STM32CubeMX
 STM社のサイトからダウンロードして下さい(要ユーザ登録)

ソフトウエア概要

  • プログラミング言語はC、開発環境はOpenSTM32コミュニティ(AC6社提供)の「System Workbench for STM32」を利用
  • STM提供のソースコードジェネレータSTM32CubeMXの利用
  • タイマ割込+ADC+DMAで音声信号をデジタル化
  • タイマ割込+PWM+DMAで音声データを出力
  • 自家製Bluetoothソフトウエアスタックを利用
  • LCDモジュールを制御する自家製GUIライブラリを利用

機能関連図
  本アプリケーションのコードはmain.cにのみ記述されています。下記の関連図は、一番中心となる音声データの流れです。DMA2-Stream0の終了タイミング割込(1面のデータが満杯になったタイミング)で、処理が起動されます。
 できる限り、ハードウエアに任せ、ソフトウエアの負担を減らします。STM32F4のペリフェラルモジュール群は、ソフトウエアの介入なしにアナログ入力とPWM出力をフリーランさせる事ができます。データはメモリバッファ渡しです。絵の青色の部分がハードウエアだけで実現できる所です。
 44.1kHzのサンプリングで、1024個のデータを処理単位としますので、23.2ms毎に割込が発生します。メモリバッファは2面あり、DMAとソフト処理がかぶらないようにします。このタイミングで音声データの変換処理を行い、PWMデータを生成します。Bluetoothからのデータも、同じ周期でデータが届きますので、特別な配慮は行いません。運悪くタイミングがかぶったら音が飛ぶだけです。
 1024個のデータを約20msで変換完了しなければなりませんので、十分速いプロセッサ処理性能やコンパイラ最適化が求められます。

実装

 設計図を元に、実体化する方法です。

基板

 メイン基板の上にLCDモジュールを、下にNucleoボードを取り付ける形です。今回製作する基板は、LCDモジュールとNucleoボードのサンドイッチ構造にする作戦です。
 基板同士の接続は、ピンヘッダコネクタ経由にして、切り離しが可能なようにしておきます。後でメンテナンスしやすくなります。本回路は大したものではないですし、一品ものなので、蛇の目基板にて作成しました。回路図とデータシートをにらめっこしながら、配線を行なっていきます。大体の部品レイアウトは写真が参考になるかもしれません。専用基板化や立体配線図などを作成する予定はありませんのであしからず。

外装(ケース)

 簡単に利用できるような、汎用的なケースはありませんので、適当な物をしつらえる必要があります。タッチ機能付きのLCDディスプレイが、少しやっかいです。
 ノイズの面から金属筐体にすべきだと思っておりましたが、作りやすさからアクリル板で専用ケースを作成する方法とします。以下に、寸法図を示します。1DINサイズにまとめました。アクリルケースの作り方は、別途参考情報があります。

 

開発情報

詳しくは、以下のページに記録しています。

関連する小物

あとがき

2018.1.21:
 今まで使っていた、ミニアンプの後継機です。先代は、部品モジュールやキット/製品の組み合わせで実現していましたが、検討を進めるうちにマイクロコントローラ1つだけでオーディオアンプ機能を実現できる事に気がつきました。時間をかけた割には、出来た物は機能的には先代とあまり変わりありません。でも、中身はぜんぜん違うんです。

2018.3.16:
 音質にはこだわらないと言った割には、省電力なPWM3値制御から、あっさりPWM2値制御に鞍替えしました。3値制御が劣っている訳ではなく、技術力が足りないだけです。が、あまりにも長い開発なので、そろそろ次に行きたいのです。

2018.12.19:
 アナログ入力(AUX)に、ヘッドフォン出力を接続する場合で、ホワイトノイズが激増する機器(例えばPC)があったので、その対策に回路を修正しました。オペアンプにコンデンサを2個追加して、ローパスフィルター機能を持たせた対策です。アナログ入力系統に関しては、これまで軽視していましたが、常習するテレビ音声(ヘッドフォン接続)に不満を持ち始めて、このような対応になった事に対しては自分でも意外です。音は、自分が思う以上に、人の中に染み込むものなのですかね。今は、新バージョンを開発中です。

2022.7.27:
 普通使っている分には不満はありませんが、やはり少し大きい音量を出した時に出るヒューヒュー音が気に触ります。通常使うのはアナログ入力(AUX)なので、ソース側機器の出力を高めにする事でメインボリュームを少なくしています。だましだまし使っているような状態ですが、せっかく作ったので、このままでいきます。

Copyright©2018-2022 Toyohiko TOGASHI


投稿日

カテゴリー:

,

投稿者:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です