DJ技術論

2021年10月15日 (金)

無帰還電流駆動ヘッドホンアンプ改良 (基板頒布あり)

Hpa0


【訂正情報】
・2021/10/21
Q9,Q11,Q21,Q23(2SA1020)のHFEが間違っていました。マニュアルおよび回路図の記載を280→240に訂正しました。


以前開発した、無帰還電流駆動ヘッドホンアンプを改良して基板を起こしたので報告する。

無帰還電流駆動ヘッドホンアンプを開発試作したのは2016年のことで、製作記事をこのブログにもアップした
その後、手作りアンプの会2016年冬のお寺大会に出品したところ、ありがたいことに最優秀賞をいただいた
手作りアンプの会での評価は、実際の試聴による音質に重きが置かれていて、評価されたことはとてもうれしかった。
作ってみたいという人が何人かいたため、基板を起こそうとも思ったのだが、いくつか問題点があって、どうしようか考えているうちに5年経ってしまった(^-^;

まず、この無帰還電流駆動ヘッドホンアンプとはどういうものなのか、簡単に説明したい。
通常、スピーカーやヘッドホンは電圧で駆動する。つまり入力信号に比例した出力電圧で負荷を駆動する。この場合、負荷の状態はまったく無関係で、たとえスピーカーがつながっていなくても電圧で音楽信号が出力される。逆にスピーカー端がGNDとショートされていたら、出力電流が無限に流れるので、アンプが壊れるかヒューズが飛ぶ。
対して、電流駆動の場合は、負荷に対して入力信号に比例した電流で負荷を駆動する。たとえ出力がショートされても問題なく出力電流が流れるため、スピーカー出力をショートするタイプの保護回路が使える。出力がオープンの場合は、負荷インピーダンスが無限大になるため、そこに電流を流すように動作して、出力はクリップしてしまう。
通常、スピーカーやヘッドホンは電圧駆動をする前提で、電圧駆動した時にフラットな特性が出るように開発、設計されている。
これを電流駆動するとどうなるかというと、スピーカーやヘッドホンのインピーダンス特性に沿った音圧特性で駆動される。
通常、スピーカーやイヤホンのインピーダンス特性はどのようになっているかというと、最低共振周波数f0で最大になり、その後一旦下がるが、高域では徐々に上昇する。
こういった特性を持ったスピーカーやイヤホンでも、通常の電圧駆動をすることで、フラットな特性を得るわけだが、電流駆動するとインピーダンス特性に沿った音圧特性になるのでインピーダンスが上昇するf0や高域が増強される。
見方を変えれば、インピーダンスが上昇するポイントは、そのスピーカーやヘッドホンが鳴らすのを得意とする帯域なので、その得意な帯域を伸び伸びと鳴らさせてあげる!というアンプだということもできる(こじつけくさくないか?)
そういうわけで、ほとんどのスピーカーやヘッドホンは電流駆動すると、f0付近と高域が持ち上がって、ドンシャリ傾向の音になる。
ただし、もしインピーダンス特性がフラットなスピーカーやヘッドホンなら、電圧駆動、電流駆動で差が出にくいとも考えられる。(もっとも出力インピーダンスがまったく真逆なので、ダンピング特性の差は出るだろうと思われるが)

そもそも無帰還電流駆動ヘッドホンアンプは、その前身となる無帰還電流駆動アンプをヘッドホン用にリメイクしたものだ。
無帰還電流駆動アンプはもともと、オーラトーン5Cを慣らすための専用アンプとして開発したものだ。

さて、上述のように、電流駆動アンプの特徴として出力をショートするタイプの保護回路が組めるので、ミュート&保護回路のリレー接点による音質劣化に悩まされないで済む。ただ、DCが出力されて保護回路が働いたということは、アンプに何か異常がある可能性があるので、その状態で出力をGNDに短絡すれば事故が起きる可能性がある。そのため、無帰還電流駆動アンプでは、保護回路動作時は出力をショートするとともに、SSR(ソリッドステートリレー)を使ってAC100V電源を遮断するという構成にした。

無帰還電流駆動ヘッドホンアンプの場合は、バッテリー駆動ということもあって、そこまでの検討はしていなかった。ショート方式の保護回路には欠点があって、出力にDCを検出したときに出力端をショートすると、検出されていたDCが0になってしまうので、保護回路が解除される。するとまたDCが発生し……ということ繰り返してしまう。つまりひとたび保護回路が働いたらラッチがかかって、リセットしない限り再起動できないような仕掛けが必要になる。そういう意味では上で説明した無帰還電流駆動アンプのACを落としてしまうやり方は合理的だ。
ヘッドホンアンプの場合、バッテリー駆動だし、ヒューズかポリスイッチでも入れとけばいいかな……でもなあ、電源のインピーダンスが上がるのできもちわるいよなあ……やるとしたら±両方の電源を同時に落とす仕掛けも必要だし……うーんうーん……とかやっているうちに5年の歳月が(^-^;

今回はちょっとがんばって±のバッテリー電源を両方遮断する回路を設計して搭載した。
これでいちばん大きな問題点がひとつ解決した(^-^)
ただ、少しスイッチの構成が特殊で、電源ONのタクトスイッチSW1と電源OFFのタクトスイッチSW2が別になっていて、ON時はSW1を長押し、OFF時はSW2を押す、という構成になった。ロジック回路かマイコンを使えばスイッチひとつでもできると思うが、どうもアナログアンプにデジタル回路を積む気になれなかったので、今回のような構成になった。

あとは細々した問題点として、前回の設計では終段に2SA1668/2SC4382を使っていたが、これでは大きすぎて小型化が難しい。今回はこれらを2SA1020/2SC2655に変更することで小型化した。
次に、前回はニッカド電池を8本つかって±4.8Vの構成にしたが、これでは大きくなりすぎる上に電池持ちもよくないので、これを±3.8Vのリチウムイオン電池にした。
動作電圧を下げたことで、保護回路も定数変更した。保護回路は前回同様、±150mV以上のDCを検出すると働く。

最終的な回路を図1,図2に示す。図1がアンプ回路で、図2が電源と保護回路だ。
見やすいきちんとした図面は、この記事の最後に頒布用のマニュアルをリンクするのでそちらを参照してほしい。

Hpac_sch
図1.無帰還電流駆動ヘッドホンアンプ回路(片チャンネル)


Protectsch
図2.電源回路および保護回路


図2の左上にあるJ3,J4がそれぞれマイナス側とプラス側のバッテリー入力で、そのすぐ右側がMOSFETを使った電源ON/OFF回路だ。マイナス側のON/OFFはプラス側に追従するようになっている。
同じ図2の中央より下の回路はDC検出保護回路で、従来トランジスタのVBEに反応して0.6V以上でプロテクトがかかる典型的な回路に対して、ショットキーダイオードを使って基準電圧を底上げすることで0.15Vでプロテクトがかかるようにしている。

このあたりの開発経緯も、前回の無帰還電流ヘッドホンアンプの記事に書かれているので参照してほしい。

今回設計した基板による諸特性を以下に紹介する。

まずはひずみ率雑音特性。左右チャンネルにつき、それぞれ負荷が33Ω、100Ωの場合のTHD+N(%)を図3~図6に示す。

Thdn33_l Thdn33_r
図3.Lch 33Ω負荷 THD+N               図4.Rch 33Ω負荷 THD+N



Thdn100_l Thdn100_r
図3.Lch 100Ω負荷 THD+N              図4.Rch 100Ω負荷 THD+N


ひずみ率雑音特性THD+Nは、ボトムでおよそ0.03%、実用域で0.1%以下で、これは前回とほぼ同じだ。

次に周波数特性。
周波数対ゲインのグラフを図5、図6に示す。L、R同等だったので、Lchのみ。

Ftoku33l Ftoku100l
 図5.周波数ゲイン特性 33Ω負荷(Lch)           図6.周波数ゲイン特性 100Ω負荷(Lch)

100Ω負荷では-3dBポイントが1MHz、33Ω負荷では1MHz超となり、前回よりも改善した。


次は方形波出力波形。
これもL、Rで差がなかったのでLchのみ、33Ω、100Ω負荷に対してそれぞれ10kHz、100kHの波形を図7~図10に示す。

10khz33ohml 100khz33ohml
図7.方形波出力33Ω10kHz(Lch)          図8.方形波出力33Ω100kHz(Lch)

10khz100ohml 100khz100ohml
図9.方形波出力100Ω10kHz(Lch)          図10.方形波出力100Ω100kHz(Lch)

以上のように、オーバーシュートやリンギングは一切ないので、位相補償は行っていない。

次は出力インピーダンス。
今回は1kΩと2kΩ負荷を切り替えてのON/OFF法で測定した。これもL、Rで大差ないので、Lchのみ表1に示す。

表1.出力インピーダンス(Lch)
Impedancel_20211017223901

前回の測定結果は11kΩだったので悪化しているが、測定方法の違いも影響があるかもしれない。
ヘッドホンのインピーダンスが16Ω~100Ω程度だと考えれば十分な値だろう。

最後に主要諸元を表2にまとめておく。

表2.主要諸元
Syogen

音質については電流駆動故に、使用するヘッドホン、イヤホンの個性が非常によく出る。
普段使いのパイオニアHDJ-1500とは相性がよく、低域、高域が若干持ち上がり気味で
メリハリの強い、なおかつクリアな音質となった。
ヘッドホン、イヤホンに対する音質の違いについても前回の記事で書いているので参照してほしい。

2021/10/18追記
3Dプリンタで専用ケースを製作した。単三型(14500)リチウムイオン電池がそのまま入れられるように、電池ホルダを一体形成した。
写真1にケース入りのヘッドホンアンプ(下)とスーパーサンプリングSDプレイヤーSSSDP4490(上)を示す。
写真2はフタを外したところ。

Hpacincase
写真1.今回製作した無帰還電流駆動ヘッドホンアンプ(下)とスーパーサンプリングSDプレイヤー(上)


Hpacincase2
写真2.フタを外したところ。左側の電池は単三型リチウムイオン電池2本。


ケースのstlデータ
ダウンロード - 20211017hpac_top000.zip



【基板頒布のお知らせ】
この記事の無帰還電流駆動ヘッドホンアンプ生基板をご希望の方に頒布します。
生基板1枚と、製作説明書と回路図、部品表等の資料、LTSPICEのシミュレーションファイルをセットで
1880円(税、送料込み)で頒布します。(自力で部品収集、部品選別、調整できる方が対象です。)

ご希望の方は表題に「無帰還電流ヘッドホンアンプ基板頒布」、
本文にお名前、送付先郵便番号、ご住所、電話番号をお書きのうえ、

dj_higo_officialアットhigon.sakura.ne.jp
(アットを@に替えてお送りください)

までメールをお送りください。

代金の振込先のご案内メールをお送りします。入金が確認でき次第発送します。

製作マニュアル、回路図、部品表、その他

| | コメント (0)

2021年10月 9日 (土)

LTspiceでフォノイコライザシミュレーション

以前、フォノイコライザをIIRフィルタで構成してFPGAに実装する記事を書いたが、今回はLTspiceでフォノイコライザのシミュレーションを行ったので、紹介する。

LTspiceでのシミュレーションでは回路に対してトランジェント解析で波形の応答を見ることもできるし、AC解析で周波数特性を見ることもできるが、ほかに非常におもしろい機能があって、WAVファイル(音声データ)を入力して、シミュレーション結果を同じくWAVファイルとして出力することができる。
今回はレコードからフォノイコライザなしでダイレクトリッピングしたWAVファイルを、LTspiceでのフォノイコライザ回路シミュレーションを通してWAVファイルで出力する検証を行った。


1.実際に使用しているフォノイコライザ回路
図1に実際に部屋で使用しているフォノイコライザの回路を示す。使用カートリッジはDL-103。

Usingeqsch
図1.実際に使用しているフォノイコライザ回路
MJの安井章氏の回路を参考にして設計した。

図1の回路ではカートリッジ入力を最初のオペアンプで120倍したあとCRイコライザを通し、次段で100倍増幅して、カップリングコンデンサを通して出力している。電源はエネループを8個使って±4.8Vとしている。


2.シミュレーション用回路
シミュレーションに使う回路は基本的に実使用中の図1の回路と同じだが、オペアンプを電圧制御電圧源に置き換えている。図2にオペアンプの非反転増幅回路と、電圧制御電圧源を使った帰還型増幅回路の置き換えを示す。

Opampvsvdv
図2.オペアンプ非反転増幅回路の、電圧制御電圧源での置き換え
電圧制御電圧源のゲインを1000万倍(140dB)として、負帰還増幅器を構成している。

図2ではオペアンプを使った非反転の10倍アンプを、電圧制御電圧源を使った10倍アンプに置き換えている。
電圧制御電圧源のゲインは1000万倍として、1/10の帰還をかけることでオペアンプ回路と同等の機能を持たせている。

ただ、電圧制御電圧源はゲインが自由に設定できるので、単に図3のようにしてもよい。

Vdv20db
図3.ゲイン10倍の電圧制御電圧源

今回評価するフォノイコライザ回路は、図3のように電圧制御電圧源に直接必要なゲインをもたせるやり方で、オペアンプを置き換えることにする。
今回評価したシミュレーション回路を図4に示す。

Simeq_wav
図4.今回使用したフォノイコライザシミュレーション回路
レコードのダイレクトリッピングゲインを160倍としたため、フォノイコライザのゲインは入力側32倍、出力側2倍のトータル64倍とした。またオフセットは無視できるのでカップリングコンデンサは省略した。

この回路の周波数特性を図5に示す。

Eq_gainphase
図5.今回の回路のAC解析

シミュレーション用のファイルは以下。
ダウンロード

3.WAVファイルを使ったシミュレーション手順
①LTspiceに回路を入力する
・回路の入力に上記wavファイルを割り付けるが、回路入力では単に電圧源(voltage source)を使う。
②実際に使用するwavファイルを用意する。
・今回は44.1kHz16bitステレオのwavファイルを使う。長いとシミュレーションに時間がかかるので、短いものを使う。(40秒の曲を処理するのに30分以上かかる)
・用意したwavファイルをLTspiceの回路(.ascファイル)と同じホルダに入れておく。ファイル名は任意だが、スペースは使えない。
・今回実際に使用したwavファイル名は、"night_in_tunisia_Direct40sec.wav"
③回路に対してwavファイルの入出力設定を記述する
・入力の電圧源(図4ではv4)を右クリックして"advanced"をクリックして詳細設定に入る。
・PWL FILEを選び、BrowseからファイルタイプをAll Files(*.*)として、上で用意したwavファイルを設定する。
●回路に戻ると電圧源のソースが”PWL file=night_in_tunisia_Direct40sec.wav”と表示されているので、これを右クリックして、手入力で編集し、
"wavefile=night_in_tunisia_Direct40sec.wav channel=0"
に変更する。
・同じようにv3に対して"wavefile=night_in_tunisia_Direct40sec.wav channel=1"を設定する。
・.opボタンを押して、".wave soundout00.wav 16 44.1k V(voutL) V(voutR)"と入力して、回路上に貼り付ける。soundout00.wavは出力されるファイル名(任意)。
・SimulateのEdit Simulation CmdのTransientタブで、
 Stop time = 40(今回のwavの長さ)
   Time to start saving data = 0
   Maximum Time step = 0.708u(1411kbpsの逆数)
としてOK。".tran 0 40 0 0.708u"が回路図上に配置される。

以上ができたら、SimulateのRun(走るボタン)を実行すると、しばらく演算した後、同じホルダに出力ファイル"soundout00.wav"が生成される。
※とにかく実行には時間がかかるので、最初は短いファイル(数秒レベル)で確認してみるとよい。

4.シミュレーション結果
上述の通り、DL-103からゲイン160倍でダイレクトリッピングしたファイルと、処理後の出力ファイルは次の通り。

・ダイレクトリッピングファイル
night_in_tunisia_Direct40sec.wav

・フォノイコライザシミュレーション出力ファイル
soundout00.wav

ちなみにこの音源は、
Hot Salsa meets Swedish Jazz
というLPに収録されたお気に入りの一曲です。

順序が前後してしまったが、ダイレクトリッピングに使用した回路を図6に示す。


Directripsch
図6.ダイレクトリッピングに使用した回路


5.まとめ
以上のように、LTspiceを使って、wavファイルの信号処理を行うことができる。
・今回はオペアンプの代わりに電圧制御電圧源を使ったが、もちろんオペアンプを使ったシミュレーションもできる。ただし、シミュレーションの時間が猛烈にかかる。(以前オペアンプでシミュレーションしたら、3分の曲を処理するのに一晩かかった)
・シミュレーションは仮想現実であり、今回の実験は現世のwavファイルを仮想現実世界で処理して、それをまた現世に持って帰ってくる、というような感覚がして非常におもしろいと思う。
・レコードのダイレクトリッピングを今回の方法で処理するやり方は、膨大な時間がかかることから実用的ではないが、ごく短いサンプル音源を使って、エフェクター回路の検証を行うといったような使い方は想定できる。

実際に音が出ると感動するので、ぜひやってみてください(^-^)

| | コメント (0)

2021年8月11日 (水)

シングルコアESP32-SOLO-1とクロックダウンと低消費電力化について 11/6追記

前回予告したとおり、シングルコアのESP32-SOLO-1と従来のESP32(デュアルコア)の比較において、
低消費電力化の検証を行ったので、その報告をする。

【20211106追記】
この記事をあげた当初、電池持ちに関し「実稼働で35日」と記載したが、これは初期バージョンの数値で、現行バージョンでは再現しないため、比較対象とはせずに参考値とする。現行品ではESP32ノーマル品(デュアルコア)で18日程度。
初期バージョンと現行品の主な違いは次のとおり。
・ソフトに初期設定モードと、タイムサーバーによるsleep時間補正機能を追加。
・初期設定モード追加に伴い、SW1,JP1,LED,R2,R3,R4を追加。
これらの変更は消費電流にはほとんど影響を与えないだろうと考えていたが、実際には稼働日数35日→18日に短縮した。
●ESP32(ノーマル品)→ESP32-SOLOに変更した場合、実稼働18日→25日に改善した。(1.39倍)


1.測定に使ったWIFI気象計の概要
検証に使った回路は図1のとおりで、これは一定時間(実運用は900秒)毎に温度、湿度、気圧を測定し、測定結果をWIFIのUDPと、WIFI越しのFTPサーバーに送信する気象計だ。1回の測定、送信に要する時間は10秒前後で、測定、送信が終わったら次のタイミングまでDeepSleepするようになっている。ソフト開発はArduino。

Weathercheckersch
図1.今回の検証に使用したWIFI気象計回路図


今回の測定では図1に示すとおり、外部の電源から3.3VPを与え、直列抵抗Rsの両端電圧をオシロで観測し消費電流を算出した。
実際には、電源として3.7V400mAhのリチウムポリマ電池にTPS63000という昇降圧スイッチングレギュレータICを用いた3.3V電源回路を付加して運用しており、その際のレギュレータ消費電流IQはおよそ55μA。
回路図中、J1は書き込みおよびモニタ用のシリアル入出力で通常時は未使用、J2は書き込み時に使用するタクトスイッチでこれも通常時は未使用、LEDのD1とSW1およびJP1は設定時に使用するが運転中はオープン(未使用)、U1のBME280は温湿度気圧センサで、これはI2Cで接続していて、I2Cのプルアップ抵抗は各10kΩがモジュール側に実装されている。

このWIFI気象計の動作フローは次のとおり。

①Sleepから目覚める
②初期設定
③フラッシュメモリから動作設定を読込
④WIFI接続 → 接続ができるまで1秒ごとに10秒までリトライ、接続不可なら設定時間のsleepに入る
⑤温湿度気圧をBME280から取得、電池電圧をADCから取得
⑥NTPから現在の年月日時間を取得
⑦上記取得データをUDP送信
⑧上記取得データをファイル化してFTPサーバーに送信
⑨設定時間(=900秒)のsleepに入る

DJ HIGO宅のベランダに設置した気象計の送信データが見たい方はこちら
ただし、現在は設定時間1800秒で運用している。


2.測定条件
次の4通りについて消費電流の測定を行った。
①従来のESP32でCPUクロック240MHz動作
②従来のESP32でCPUクロック80MHz動作
③ESP32-SOLO-1でCPUクロック240MHz動作
④ESP32-SOLO-1でCPUクロック80MHz動作

3.測定結果
測定結果を表1に示す。測定内容の詳細については後述する。
動作時の測定電流の単位はミリアンペア・秒とした。これは電池持ちと平均電流の計算をしやすくするため。
たとえば、900mAsecであれば、これが900秒ごとに発生した場合は平均で900mAsec/900sec=1,つまり平均電流は1mAである。

表1.測定結果(20210818DeepSleep電流差し替え
Deepsleep

①DeepSleep電流
DeepSleep時の回路電流は、従来のESP32、ESP32-SOLO-1はほぼ同じだった。

②従来のESP32の動作電流
・クロック240MHzと80MHzでは差が10%以下であった。ただし、後述するが80MHzでは接続リトライのためか3.7秒ほど時間が余計にかかっているため、その影響で差が少ない可能性あり。

③ESP32-SOLO-1の動作電流
・クロック80MHzでは240MHzの75%程度に消費電流が減少している。
・クロック80MHzでの消費電流は従来のESP32(240MHz)にくらべ32%減となっており、明らかに効果が認められる。


4.測定データ
実際の測定データを以下に示す。

①DeepSleep電流波形
図2に従来のESP32、図3にESP32-SOLO-1のDeepSleep電流波形を示す。

Esp32sleep
図2.従来のESP32のDeepSleep電流波形
検出抵抗10kΩで検出。55mV/10kΩ=5.5μA


Esp32solosleep
図3.ESP32-SOLO-1DeepSleep電流波形
50mV/10kΩ=5μA

②動作電流波形
従来のESP32の240MHz、80MHzそれぞれの動作電流波形を図4、図5に、
ESP32-SOLO-1の240MHz、80MHzそれぞれの動作電流波形を図6、図7に示す。

20210811esp32_240mhz
図4.従来のESP32の240MHz動作電流波形
長いヒゲ状のピーク電流は無視した。櫛状の73mAの部分はデュティ1/3程度と仮定している。


20210811esp32_80mhz
図5.従来のESP32の80MHz動作電流波形
動作時間が240MHzの場合とくらべて3.7秒多い。WIFI接続のリトライなどが原因か。


20210811esp32solo240mhz
図6.ESP32-SOLO-1の240MHz動作電流波形


20210811esp32solo80mhz
図7.ESP32-SOLO-1の80MHz動作電流波形


5.考察
①リチウムポリマ電池による実動作時間
以上の測定結果による条件で、400mAhのリチウムポリマ電池で900秒ごとに動作させた場合の理論稼働時間は、

a. 従来のESP32でクロック240MHzの場合
・動作電流979mAsec、レギュレータIQ=55μA、Sleep電流5.5μA、測定間隔900秒とすると、平均電流Iav(mA)は
Iav=979/900 + 0.055  + 0.0055 = 1.148 (mA)
・400mAhリチウムポリマ電池での稼働時間Dt(h)は
Dt=400 / 1.148 = 348(h)=14.5(日)
と計算できる。
ところが実際にこの条件で動作させたところ、およそ35日の稼働となった。
原因としては、今回の測定精度、とくに動作波形の読み取り精度が甘いこと、また、400mAhの電池に対して放電終止電圧を何ボルトに設定するかによっても変わる。実際の稼働ではレギュレータの働きにより2.1V程度まで動作していた。(20211106削除)
実機による稼働時間は、
試験機①    18日
試験機②    18日
だった。

b.ESP32-SOLO-1でクロック80MHzの場合
上記測定結果によれば、ESP32-SOLO-1で80MHzで駆動した場合は665mAsecであり、消費電流は従来のESP32(240MHz)よりおよそ3割減が見込まれる。上述した実稼働日数35日に対して3割増とすれば45日程度の稼働日数となるが、これは現在実動検証中だ。(20211106削除)
上記試験機②をESP32-SOLO-1に差し替えて実測した稼働時間は、
試験機②(ESP32-SOLO-1に差し替え) 25日(3.9割増し)

②ESP32の動作クロック変更方法
ESP32の動作クロック変更は、Arduinoのsetup()で
int ret = setCpuFrequencyMhz(240);
とすればよい。()内にはクロック周波数(240,160,80,40,20,10)が使用できるが、今回は40MHz以下では動作しなかったため、下限を80MHzとした。初期値は240MHz。

【結論】
ESP32ノーマル品(デュアルコア)とESP32-SOLO-1(シングルコア)では、ディープスリープ電流には差がなかったが、実稼働時の消費電流には差があり、今回評価したWIFI気象計では、ESP32(デュアルコア、クロック240MMz)からESP32SOLO(シングルコア、クロック80MHz)に変更することで電池持ちが計算上3割、実測では3.9割改善した。
よって、クロック速度やマルチコアよりも消費電流が優先される用途には、ESP32-SOLOを80MHzで使用すると効果が期待できる。

| | コメント (0)

2021年8月10日 (火)

ESP32-SOLO-1を使う

ESP32のシングルコア版で、ESP32-SOLO-1というデバイスがあり、省消費電力用途向けという位置付けのようだ。
いまのところあまり話題にも上らず検証記事も乏しいので、今回はArduinoでESP32-SOLO-1を使う方法を紹介し、次回の記事で従来のESP32との比較をしたいと思う。

0.Arduinoで従来のESP32と同じ扱いでESP32-SOLO-1に書き込むとどうなるか
 ①コンパイルと書き込みは正常に終了する。
 ②リセットしてプログラムを開始すると、「これはシングルコアじゃねえか!勘弁してくれ!!」みたいなエラーが出てリセットを繰り返す。

1.ArduinoをESP32-SOLO-1に対応させる
 ①https://github.com/lbernstone/arduino-esp32-soloからESP32-SOLO用のライブラリをダウンロードする。
 ②これを解凍し、arduino-esp32-solo-master\tools\sdk\libにある9つのライブラリファイル(*.a)を、PCのAruino15\packages\esp32\hardware\esp32\1.0.6\tools\sdk\lib
  のホルダに上書きコピーする。(ただし元の同名の9つのファイルは念のためバックアップしておく)
 ③同じくarduino-esp32-solo-master\tools\sdk\include\configにあるsdkconfig.hを、PCの  Arduino15\packages\esp32\hardware\esp32\1.0.6\tools\sdk\include\config
  に上書きコピーする。(ただし元のsdkconfig.hは念のためバックアップしておく)

 ※1  Arduino15ホルダは、
  C:\Users\username\AppData\Local\Arduino15  あるいは C:\Users\username\AppData\Roaming\Arduino15  あたりにあると思いますが、見つからない場合はusernameあたりから下を検索してください。
 ※2 上記変更後に通常のESP32が正常にコンパイルできるかどうかわからないので、通常のESP32を使う場合は元に戻すことにしています。

2.Arduinoでプログラムして実行する
 まずはArduinoで新規ファイルを作り、setupもloopも空のままコンパイルして書き込んでリセットする。すると、

ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10944
load:0x40080400,len:6388
entry 0x400806b4
E (10095) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (10095) task_wdt: - IDLE0 (CPU 0)
E (10095) task_wdt: Tasks currently running:
E (10095) task_wdt: CPU 0: loopTask
E (10095) task_wdt: Aborting.
abort() was called at PC 0x400d8fdb on core 0

ELF file SHA256: 0000000000000000

Backtrace: 0x400840e7:0x3ffbe3a0 0x40084345:0x3ffbe3c0 0x400d8fdb:0x3ffbe3e0 0x4008291e:0x3ffbe400 0x400dd289:0x3ffb1fb0 0x400852cd:0x3ffb1fd0

Rebooting...

 のようなメッセージが3秒ごとに延々と繰り返される。
 これは3秒に一度、WDT(ウォッチドッグタイマー)により再起動してしまっているからだ。
 WDTはArduinoを使ってるとあまりなじみがないが、不慮の無限ループやノイズによるフリーズなどの場合に、一定時間反応がないとハードウェアリセットをかけてくれるありがたい機能だ。
 従来のESP32はデュアルコアであり、core0とcore1のうちArduinoのloop()で使用しているcore1にはWDTが付いていない。core0には WDTが付いていて、これはArduinoで内部処理されている。
 シングルコアのESP32-SOLO-1はcore0のみで、WDTが付いているため、プログラム内で明示的にWDTをリセットする必要がある。
 WDTのリセットは簡単で、loop()内にdelay(1)を挿入するだけでよい。()内は1以上ならOK。注意すべきことはdelay(0)はNGということと、WDTが3秒だからdelay(3000)以内でなければダメかというとそんなことはなく、delay(10000)でもOKだ。
 もうひとつ注意すべきことは、必ずloop()でdelay(1)を行うこと。たとえばTickerを仕掛けておいて、その割り込み先でdelay(1)してもWDT をリセットすることはできない。また、loop()内であってもdelayMicroseconds()ではWDTをリセットすることはできない。
 
 WDTによる再起動を回避するもうひとつの方法は、WDTを無効化することだ。これはsetup()で
 disableCore0WDT();
 と記述しておけばよい。こうすることでWDTは無効化される。


次回は、従来のデュアルコアのESP32と、シングルコアのESP32-SOLO-1との、消費電流の違いについて検証します。
先に結論を予告しておきますが、シングルコアだからといって半分にはなりません。連続稼働状態でいいとこ2割減(20211106修正。4割近く改善)、sleep時の電流はほぼ変わらないので、間欠動作で動作デューティが小さくなれば消費電流の削減効果は低下します。

詳細は次回!

 

| | コメント (0)

2021年7月 4日 (日)

16倍24Bit スーパーサンプリングSDメモリプレイヤー(基板頒布あり)

16x 24Bit Super Sampling SD Memory Player (with board distribution)

1_20210704141501
写真1.16倍24bitスーパーサンプリングSDメモリプレイヤー
Photo 1. 16x 24bit super sampling SD memory player

5月より試作していた16倍24bitスーパーサンプリングSDメモリプレイヤーの基板が完成した。
スーパーサンプリングDACは、このブログで従来から説明している、3次自然スプライン関数でデータ補間を行うD/Aコンバータで、
今回はSDメモリに収録されたWAVデータを時間軸方向に16倍、ビット精度24bitでスーパーサンプリング処理し、AK4490でD/Aして出力する、SDメモリプレイヤーに応用した。
音質はスーパーサンプリングの特徴が出ていて、特に高音において、従来にないきめ細かな音になっている。

The board for the 16x 24-bit super-sampling SD memory player that was prototyped from May has been completed.
The supersampling DAC is a D / A converter that interpolates data with a third-order natural spline function, which has been explained in this blog. This
time, the WAV data recorded in the SD memory is multiplied by 16 in the time axis direction and bits. It was applied to an SD memory player that performs supersampling processing with an accuracy of 24 bits, D / A with the AK4490, and outputs it.
The sound quality is characterized by super-sampling, and especially in the high-pitched sound, it is a finer sound than ever before. 

2_20210704141501
写真2.スイッチ側から
Photo 2. From the switch side


基板サイズは57mm x 75mm、供給電源は6.5~9Vの単電源で、負電源チャージポンプを搭載してDC構成とした。
消費電流はおよそ200mA。
対応SDカードは、32GBまでのmicroSDHCで、対応ファイルフォーマットはWAV(44.1kHz16bit)。
出力はヘッドホンとLineの2系統をそれぞれΦ3.5ステレオミニジャックで出力している。ヘッドホン出力はアンプを搭載し、VRで音量調整可能。
ジャンパピンの設定により、スーパーサンプリングモードとNOS(生データ)モードの切り替えが可能。
主要諸元を表1に示す。

the board size is 57mm x 75mm, the power supply is a single power supply of 6.5 to 9V, and a negative power supply charge pump is installed to form a DC configuration. Current consumption is about 200mA. The compatible SD card is microSDHC up to 32GB, and the compatible file format is WAV (44.1kHz 16bit). The output is a Φ3.5 stereo mini jack for each of the two systems, headphones and Line. The headphone output is equipped with an amplifier, and the volume can be adjusted with VR. By setting the jumper pin, it is possible to switch between super sampling mode and NOS (raw data) mode. The main specifications are shown in Table 1. table 1. Please download the main specifications from the link below. 
● Circuit diagrams, parts lists , manufacturing manuals , operation manuals , IEEJ papers

表1.主要諸元
Table1.Spec
Sssdp4490spec_20210717220101

資料は下記リンクからダウンロードしてください。
回路図、部品表製作マニュアル操作マニュアル電気学会論文


【2021/07/07追記】
専用ケースを設計し、3Dプリンタで印刷してみた。写真3~写真5参照。

Sssdp_case1
写真3.専用ケースに入れたSDプレーヤー(500円玉は大きさ比較用)


Sssdp_case3
写真4.ジャケットの胸ポケットにも入る大きさ


Sssdp_case2
写真5.箱の中の様子


電源は単4型リチウムイオン電池を2本使用した。容量は350mAhなので、フル充電状態で1時間40分ほど使用可能。
材料にPLAを使う3Dプリンタによる造形では、精度、強度、ネジ穴のスペースなどを考慮すると無骨なデザインになりがちだが、
今回の設計ではケースの肉厚を1mmとし、ケースとフタはパッチン止めにしたので、スマートにデザインできた。

stlデータを公開しますので、ご自由にお使いください。

ダウンロード - bottom001.stl

ダウンロード - top001.stl


【2021/07/10追記】
単3型(14500サイズ)のリチウムイオン電池を入手したので、専用ケースを試作した。
写真6,写真7に示す。

Aacase1
写真6.単3(14500)サイズ電池入りケースは7mm長くなった


Aacase2
写真6.単3(14500)サイズの電池ホルダはケース一体型とした。

ケースサイズは前回の単4型電池にくらべて7mm長くなるが、電池持ちは3倍でおよそ5時間になり、より実用的になった。

stlデータは以下のとおり。

ダウンロード - bottomaa000.stl

ダウンロード - topaa000.stl

 

次の2種類を頒布します。

①書き込み済みFPGA(10M08SCE144C8G)およびPIC32MX250F128D搭載基板   24000円(送料、消費税込み)
・プログラム書き込み済みFPGAおよびPICマイコンのみ搭載した基板です。
・納期:1週間~10日程度

②全部品実装基板(動作確認済み) 52000円(送料、消費税込み)
・書き込み済みFPGAおよびPICマイコンを含む全部品を搭載した基板です。
・すべて手実装です。
・納期:2~3週間程度(受注生産)

③AK4490EQ 1000円(基板お買い上げ方限定、基板同梱)
・入手難となっているAK4490EQチップを、上記①基板お買い上げの方に限り、基板1枚につき1個限定にて頒布します。
・基板お申し込み時に「AK4490チップ希望」とお書きください。

購入ご希望の方は表題に「SSSDP4490頒布希望」とお書きのうえ、
dj_higo_officialアットhigon.sakura.ne.jp(アットを@に換えて)までメールにて
お申し込みください。
※ご希望のセット番号と、お名前、ご住所、電話番号をお書きください。
折り返し、代金振込先等のご案内をお送りします。

【注記】  現在、部品市場が品薄状態になっており、FPGA、マイコン、DACデバイスの入手が非常にわるくなっています。
 お申し込み順に在庫部品にて対応しますが、在庫切れの場合の納期については別途相談させていただきます。

製造・頒布はSLDJ合同会社が行います。

(Please contact us for overseas shipping.)

| | コメント (3)

2021年6月27日 (日)

浄水器の蛇口アダプタ

キッチンの水道の蛇口に浄水器をつけている。
クリンスイCB013-WTという製品で、1700円程度、カートリッジのみなら2個で2400円ほどで買える、比較的廉価なタイプだ。
最初はおまじないのつもりで買ってつけてみたが、この程度でも水道直接と浄水器で濾過した水では味が違う。
いきなり一杯出されてどちらか当てろと言われれば無理かもしれないが、ふたつ並べて出されて、どちらが浄水器を通したものかといわれたら、おそらく当てられるであろう程度の効果がある。

キッチンの蛇口はもともと金属のねじ込み式の泡沫金具が付いていたが、浄水器を使うには 泡沫金具の代わりにプラスチックのアダプタをねじ込んで、浄水器に接続する。

Jousuiki
写真1.浄水器と蛇口を接続するアダプタ


ところで、ベランダの鉢植えが最近は増えてきてしまったので、水遣りに自動散水機を使っているが、散水機を使うにはその都度浄水器を外して、散水機に付け替えなければならない。夏場の水遣りは毎日なので、少なくとも一日に一度は浄水器と散水機の付け替えをすることになる。
すると、浄水器のアダプタのプラスチックのネジが、蛇口の金属のネジに負けて、だんだんに摩耗したり、あるいはねじ込むときに曲がって入れてしまったりして、ネジがバカになってしまう。どれくらいでダメになるかというと、1シーズン持つかどうかといった具合だ。

それで、このアダプタのネジがバカになってしまったらもう使えないのだが、このアダプタ部分だけを買うことはできないので、浄水器を買い直すしかないということになる。それで毎回モヤモヤするわけだ。

今回もまさに今日、ネジをバカにしてしまって悔しいので、この部分だけ3Dプリンタで作れないかどうか検討した。

これまで3Dプリンタでネジを造形したことはないし、最小1mm幅程度の造形しかできないような精度の3Dプリンタで、はたして実用できるネジが造形できるだろうか。やってみるまではかなり悲観的で、でもやってみてダメならあきらめもつくだろう、程度の意気込みだった。


Jousuiki_adapter
写真2.ねじをバカにしてしまったアダプタ(左)と3Dプリンタで造形したアダプタ(右)

Jousuiki3d
図1.浄水器アダプタの設計の様子


写真2にもとのアダプタと今回3Dプリンタで造形したアダプタを示す。
図1にはDesignSpark Mechanicalでの設計の様子を示す。

1回目は径が小さく蛇口にねじ込めなかったが、2回目の設計でうまくいった。
黒いゴムのパッキンを新しく造形したアダプタに付け替えて、蛇口に装着すると、なんと問題なく使えた\(^o^)/
これで人生のモヤモヤがひとつ減った。

今回製作したアダプタはクリンスイCB013-WTに付属のW-22というタイプのものだ。
おそらくそんな人はいないとは思うが、ぼくと同じ悩みを抱えている人に3Dプリンタのデータをさしあげます。
ダウンロードしてお使いください。

ダウンロード - jousui_adapter001.stl

 

 

| | コメント (0)

2021年5月22日 (土)

16倍 24Bit スーパーサンプリングSDメモリープレイヤーの試作

16x 24Bit Super Sampling SD Memory Player Prototype

Sd_ss4490all 
写真1.試作したスーパーサンプリングSDメモリープレイヤー
photo1. Prototype Super Sampling SD Memory Player


今回はスーパーサンプリングSDメモリープレイヤーを試作したので紹介する。

再生可能なファイルフォーマットは、44.1kHz16bitのwavのみで、これを16倍24bitスーパーサンプリング処理(3次自然スプライン関数によるデータ補間処理)してI2S DACであるAK4490でD/Aして出力する。

32bitマイコンPIC32MX230F064Bを動作クロック11.2896MHz(発振器は22.5792MHz)で動作させSDメモリからWAVを読み出してI2Sに変換し、これをトラ技MAX10基板(10M08SAE144)で受けて16倍24Bitスーパーサンプリング処理を行い、705.6kHzサンプリングのI2SとしてAK4490に送る。
16倍サンプリングでは44.1k x 16でLRCKが705.6kHzとなり、このときBCLKは705.6 x 64 = 45.1584MHzとなる。今回は水晶発振器に22.5792MHzを使い、MAX10で2倍PLLして45.1584MHzを生成している。
MAX10でPLLを行う場合、ソースクロックはCLK0またはCLK1端子に入れる必要があり、トラ技のMAX10基板ではメインのCN1,CN2には接続されておらず、CN5-5に接続されているP28(CLK1n)から入力した。

 

This time, we will introduce a prototype of Super Sampling SD Memory Player.

The supported file format is 44.1kHz 16bit wav, which is 16x 24bit supersampling processing (data interpolation processing by the 3rd order natural spline function) and D/A is output by AK4490 which is an I2S DAC.

The 32-bit microcomputer PIC32MX230F064B is operated with an operating clock of 11.2896 MHz (oscillator is 22.5792 MHz), WAV is read from the SD memory and converted to I2S, and this is received by the Tora Gi MAX10 board (10M08SAE144) to perform 16 times 24-bit supersampling processing. Send to AK4490 as I2S with 705.6kHz sampling.
In 16x sampling, LRCK is 705.6kHz at 44.1k x 16, and BCLK is 705.6 x 64 = 45.1584MHz. This time, 22.5792MHz is used for the crystal oscillator, and 45.1584MHz is generated by double PLL with MAX10.
When performing PLL with MAX10, the source clock must be put in the CLK0 or CLK1 terminal, and P28 (CLK1n) connected to CN5-5, not connected to the main CN1 and CN2 on the MAX10 board. ).



Sd_ss4490_pic32
写真2.PIC32はMAX10の下に配置してある
Photo 2 of PIC32 placed under MAX10 shows the implementation of PIC32.


写真2にPIC32の実装の様子を示す。PIC32はトラ技MAX10基板の下に配置しており、書き込み用のICSPピンヘッダはPIC32の1~6ピンの横に配置した。PIC32の上側の14ピン部品は発振回路に使用した74HCU04で、水晶は22.5792MHz。

The PIC32 was placed under the Tora Gi MAX10 board, and the ICSP pin header for writing was placed next to pins 1 to 6 of the PIC32. The 14-pin component on the upper side of PIC32 is 74HCU04 used for the oscillation circuit, and the crystal is 22.5792MHz.


Sd_ss4490_sdcard
写真3.SDアダプタとOLEDユニット(SSD1306)
Photo 3. SD adapter and OLED unit (SSD1306)


SDカードのホルダは、microSD→SDの変換アダプタを利用した。変換アダプタの接点に直接はんだ付けして各信号線を引き出している。
表示パネルはI2C接続のOLEDユニットSSD1306を使用した。

再生波形は以下のとおり。

The SD card holder used a microSD to SD conversion adapter. Each signal line is pulled out by soldering directly to the contacts of the conversion adapter.
The display panel used an I2C-connected OLED unit SSD1306.

The reproduced waveform is as follows.

 

Sd_ss4490_1khz
図1.スーパーサンプリング1kHz再生波形
Figure 1. Super sampling 1kHz playback waveform

 


Sd_ss4490_10khz_nos
図2.NOS 10kHz再生波形
Figure 2. NOS 10kHz playback waveform

 


Sd_ss4490_10khz
図3.スーパーサンプリング10kHz再生波形
Figure 3. Super sampling 10kHz playback waveform

 


Sd_ss4490tr1khz_nos
図4.NOS 1kHz方形波再生波形
Figure 4. NOS 1kHz square wave reproduction waveform


Sd_ss4490_tr1khz
図5.スーパーサンプリング1kHz方形波再生波形
Figure 5. Super sampling 1kHz square wave reproduction waveform


音質はスーパーサンプリングの良さが出ていて、D/AデバイスにI2S、ΔΣのデバイスを使用する場合は、内部デジタルフィルタをOFFにするため、デバイスの個性は出にくいように思える。

電源は、9VのACアダプタを2個使用し、正負電源を構成した。この場合正負電源の消費電流が、正側約200mA、負側約10mA(オペアンプの負電源のみ)と非常にアンバランスなので、バッテリー駆動にするには検討が必要だ。

The sound quality is good for super sampling, and when using an I2S, ΔΣ DAC device for the super sampling DAC, the internal digital filter is turned off, so it seems that the individuality of the device is hard to come out.

The power supply used two 9V AC adapters to form a positive and negative power supply. In this case, the current consumption of the positive and negative power supplies is very unbalanced, about 200mA on the positive side and about 10mA on the negative side (only the negative power supply of the operational amplifier), so it is necessary to consider how to drive it with a battery.

●20210529追記
・NJW4191による負電圧チャージポンプ回路追加により、単電源に対応
・ランダム選曲機能追加

● 20210529 Addendum
・ Addition of negative voltage charge pump circuit by NJW4191 supports single power supply
・ Addition of random music selection function

●20210530追記
負電圧にチャージポンプを使った単電源回路で、単4(AAA)サイズのリチウムイオン電池ICR10440での動作試験を行った。
回路の消費電流は約200mA、この電池の容量は350mAhなので、

350 / 200 = 1.75h = 105min

つまり1時間45分使える計算になる。
実際に動作させてみたところ、14時45分開始、16時27分終了となったので1時間42分でほぼ計算通りとなった。

● 20210530 Addendum
A single power supply circuit that uses a charge pump for negative voltage, with AAA size lithium-ion battery ICR10440. An operation test was performed.
The current consumption of the circuit is about 200mA, and the capacity of this battery is 350mAh, so

350/200 = 1.75h = 105min

In other words, it is a calculation that can be used for 1 hour and 45 minutes.
When I actually operated it, it started at 14:45 and ended at 16:27, so it was almost as calculated in 1 hour and 42 minutes.

20210530sssd_batt
写真4.リチウムイオン電池による動作試験
Photo 4. Operation test with lithium-ion battery

●20210602追記
・ヘッドホンモニター用にΦ3.5ステレオミニジャックを付けていたが、ボリュームがないと不便なので、ヘッドホンアンプとボリュームを追加した。

● 20210530 Addendum
・I had a Φ3.5 stereo mini jack for the headphone monitor, but it was inconvenient if there was no variable resistor, so I added a variable resistor  and headphone amplifier.

Add_hpa
写真5.ヘッドホンアンプおよびボリュームを追加
Photo 5. Added headphone amplifier and variable resistor


回路図
Schematic
ダウンロード - sd_ss4490_003sch.pdf



| | コメント (0)

2021年5月 7日 (金)

PCM1795 Dual 16倍 24Bit スーパーサンプリングDAC ( 基板頒布あり )

PCM1795 Dual 16x 24Bit Super Sampling DAC (with board distribution)

Ss1795pcbs
写真1.PCM1795をモノラル構成で2個使用した16倍24Bit スーパーサンプリングDAC
photo1. 16x 24Bit Super Sampling DAC Using Two PCM1795 in Monaural Configuration

今回はI2S入力のΔΣ方式DAC、PCM1795をモノラル構成で2個使用した16倍24Bit SSDACを開発したので紹介する。

I2S入力のΔΣDACを使ったスーパーサンプリングDACについては、すでに最初のSS128I2SでAK4490とPCM5102を使って実現している。
今回はバーブラウンのハイエンドDACであるPCM1795を、内部デジタルフィルタなしのモノラルモードで2個使用し、専用のFPGAで16倍24BitスーパーサンプリングDACを構成した。
このデバイスをモノラルモードで使用する場合はI2Sフォーマットではなく、24Bit右詰フォーマットで使用する。これは有名なPCM1704と同じデータフォーマットだ。

再生波形は以下のとおり。

This time, we have developed a delta-sigma DAC with I2S input and a 16x 24Bit SSD AC using two PCM1795 in monaural configuration.

For super-sampling DAC using ΔΣDAC of I2S input, already the first SS128I2S is realized by using the in AK4490 and PCM5102.
This time, two Bar Brown high-end DACs, PCM1795, were used in monaural mode without an internal digital filter, and a 16x 24-bit supersampling DAC was configured with a dedicated FPGA.
When using this device in monaural mode, use it in 24-bit right-justified format instead of I2S format. This is the same data format as the famous PCM1704.

The reproduced waveform is as follows.

Nos10ksin
図1.44.1kHz16Bit入力 NOSモード 10kHz正弦波
補間なしの生データ再生。
Figure 1. 44.1kHz 16Bit input NOS mode 10kHz
Raw data playback without sine wave interpolation.

Ss10ksin
図2.44.1kHz16Bit入力 16倍24bitスーパーサンプリング 10kHz正弦波
きれいな正弦波が再現された。
Figure 2. 44.1kHz 16Bit input 16x 24bit supersampling 10kHz sine wave
beautiful sine wave was reproduced.


Nos1ktr
図3.44.1kHz16Bit入力 NOSモード 1kHz方形波
Fig. 3.  44.1kHz 16Bit input NOS mode 1kHz square wave


Ss1ktr
図4.44.1kHz16Bit入力 16倍24bitスーパーサンプリング 10kHz方形波
オーバーシュートとアンダーシュートが1山ずつ出るSSDACの特徴的な波形。
Fig. 4.  44.1kHz 16Bit input 16 times 24bit super sampling 10kHz square wave 
Characteristic waveform of SSDAC with one overshoot and one undershoot. 


Nos1ksaw
図5.44.1kHz16Bit入力 NOSモード 1kHzのこぎり波
Fig. 5. 44.1kHz 16Bit input NOS mode 1kHz sawtooth wave


Ss1ksaw
図6.44.1kHz16Bit入力 16倍24bitスーパーサンプリング 1kHzのこぎり波
過渡的な応答は方形波と同じようにオーバーシュートとアンダーシュートが出る。
Fig. 6. 44.1kHz 16Bit input 16 times 24bit supersampling 1kHz sawtooth wave
The 
transient response is overshoot and undershoot like a square wave.


音質はこれまでのSSDACの特徴を引き継いでいて、とくに高域がきめ細かく再生される。
またモノラル構成で2個使いとしたことで、チャンネルセパレーションやSNRでも有利で、ヘッドホンで聴いてもノイズはまったく感じられない。
今回採用したPCM1795は入手性もよく、価格も比較的廉価なので、SSDACの入門用としておすすめします。

以下のとおり、基板を頒布します。

The sound quality inherits the characteristics of SSDAC so far, and especially the high frequencies are reproduced in detail.
Also, by using two in a monaural configuration, it is advantageous for channel separation and SNR, and no noise is felt even when listening with headphones.
The PCM1795 adopted this time is easily available and the price is relatively low, so it is recommended as an introduction to SSDAC.

The boards will be distributed as follows.
(Please contact us for overseas shipping.)

【主な仕様】
●Amanero COMBO384互換入力
●NOSおよび16倍24BitスーパーサンプリングΔΣDAC(PCM1795x2)音声差動出力
●入力電源:AC12V~AC15V x2(±電源)
●基板サイズ:112mm x 140mm
回路図、部品表製作マニュアル操作マニュアル電気学会論文

[Main specifications]
● Amanero COMBO 384 compatible input
● NOS and 16x 24 Bit Super Sampling ΔΣ DAC (PCM1795x2) Audio differential output
● Input power supply: AC12V to AC15V x2 (± power supply)
● Board size: 112mm x 140mm
● Circuit diagram, parts Table , production manuals , operation manuals , the Institute of electrical Engineers of paper with

 
次の3種類を頒布します。

①書き込み済みFPGA搭載基板   22000円
・書き込み済みFPGAのみ搭載した基板です。
・納期:1週間~10日程度

②全部品実装基板(動作確認済み) 51000円
・書き込み済みFPGAを含む全部品を搭載した基板です。
・Amanero COMBO384は含まれません。
・すべて手実装です。
・納期:2~3週間程度(受注生産)

③全部品実装基板(動作確認済み)、AmaneroCOMBO384、電源トランスセット 74000円
・すべて手実装です。
・AC電源ケーブルおよび電源スイッチ、ヒューズ等はご用意ください。
・納期:2~3週間程度(受注生産)


購入ご希望の方は表題に「SSDAC1795頒布希望」とお書きのうえ、
dj_higo_officialアットhigon.sakura.ne.jp(アットを@に換えて)までメールにて
お申し込みください。
※ご希望のセット番号と、お名前、ご住所、電話番号をお書きください。
折り返し、代金振込先等のご案内をお送りします。

製造・頒布はSLDJ合同会社が行います。

| | コメント (0)

2021年4月 5日 (月)

SSDAC対応DDコンバーター(USB to I2S)について

About SSDAC compatible DD converter (USB to I2S)


頒布中のSSDAC基板に対応するDDコンバータ(USB to I2S)について、動作確認できているものは次のとおり。
The following DD converters (USB to I2S) that are compatible with the SSDAC board being distributed have been confirmed to work.

Dd_boards
写真1.SSDACで動作確認済みのDDコンバーター
photo1. DD converter that has been confirmed to work with SSDAC

 

①Amanero COMBO384(写真左端)
・SSDACで標準としているDDコンバータ。
・The standard DD converter for SSDAC.

②Amanero COMBO384互換ボード(写真左から2番目)
compatible board (second from the left in the photo)
・amazonやAliexpressなどで廉価で入手できる。
・動作はAmanero COMBO384と同じだが、ファームウェアのアップデートはできない。
・Available at low prices on Amazon and Aliexpress.
・The operation is the same as Amanero COMBO384, but the firmware cannot be updated.

③XMOS U208(写真中央) (center of the photo)
・Amanero COMBO384と同等。
・ Equivalent to Amanero COMBO 384.

④6631PRO(写真右から2番目) (second from the right in the photo)
・CM6631Aを使用したDDコンバータ。
・SSDAC基板上のサンプルレート、ビット深度を示すLEDは点灯しないが、動作は問題なし。
・USB接続有無を示す”PLUG”信号が必要な場合は、コネクタの1pinと10pinをジャンパで接続する。(SSDACでは不要)
・DD ​​converter using CM6631A.
・The LED indicating the sample rate and bit depth on the SSDAC board does not light, but there is no problem in operation.
・If a "PLUG" signal indicating the presence or absence of a USB connection is required, connect pins 1 and 10 of the connector     with a jumper. (Not required for SSDAC)

⑤PCM2706ボード(写真右端) (far right in the photo)
・PCM2706を使用したDDコンバータ。
・SSDAC基板上のサンプルレート、ビット深度を示すLEDは点灯しないが、動作は問題なし。
・USB接続有無を示す”PLUG”信号は無し(SSDACでは不要)。
・44.1kHz,48kHzの16bitのみ対応。
・SSDACへの接続コネクタに電源が供給されていないため、コネクタ 7pinにジャンパで電源を接続する必要がある。
・クロックがUSBと兼用で、I2Sに必要なクロックはPLLで生成されているため、積極的にはおすすめしない。
・DD ​​converter using PCM2706.
・The LED indicating the sample rate and bit depth on the SSDAC board does not light, but there is no problem in operation.
・There is no "PLUG" signal indicating the presence or absence of a USB connection (not required for SSDAC).
・ Only 16bit of 44.1kHz and 48kHz are supported.
・Connecting to SSDAC Since power is not supplied to the connector, it is necessary to connect the power to pin 7 of the         connector with a jumper.
・The clock is also used for USB, and the clock required for I2S is generated by PLL, so we do not actively recommend it.

以上参考にしてください。
Please refer to the above.

| | コメント (0)

2021年3月 1日 (月)

SSDAC(スーパーサンプリングDAC)の説明

Description of SSDAC (Super Sampling DAC)

20210113ss_pcb

このところSSDAC(スーパーサンプリングDAC)の開発から試作品頒布まで、SSDACの話題が多いが、

「SSDACについて興味があるが、よくわからないので、わかりやすく説明してほしい」

とのご意見をいただいたので、今回はSSDACについて解説したい。
わかりやすく、数式をできるだけ使わずに説明したいと思う。

Recently, there have been many topics about SSDAC, from the development of SSDAC (super sampling DAC) to the distribution of prototypes.

"I'm interested in SSDAC, but I'm not sure, so please explain it in an easy-to-understand manner."

I would like to explain about SSDAC this time.
I want to explain it in an easy-to-understand manner without using mathematical formulas as much as possible.


1.SSDACの音
SSDACはオーディオ用のD/Aコンバータとして開発しているので、音質がどのように良くなるか、ということがいちばん大事な点だ。
あまり抽象的なことは言いたくないので、まずは音楽再生中にNOS(補間なしの生データ)とスーパーサンプリングを切り替えたときに、聴感上どのように変わるかという点から、音の印象を書いておく。

・高域がきめ細かく聞こえる
とくにボーカルの息づかいや、ハイハットシンバル、弦楽器の弦のこすれる音などがよりリアルに聞こえるようになる。

・音場に広がりが出る
例えていうと、モノラルからステレオに切り替えたときのよう(もちろんそこまで極端ではないが)に広がる印象がする。
たとえば、ノイズが付帯したり、エコーがかかったりしても同じような印象になることがあるので、こういう評価は慎重さが求められるが、 おそらく上で述べたように特に高域の分解能が増したことに関連しているのではないだろうか。

次に、市販の一般的なオーバーサンプリングデジタルフィルタを使ったΔΣ方式のDACとの比較においては、次のとおり。

・立ち上がりが良く、音の輪郭がはっきりして、ドライな印象
要因としておそらくΔΣ方式とマルチビットの違いが大きい。またプリエコー、ポストエコーといった、音源にない付帯音が排除された結果、ドライな印象になるのではないか。
以前トランジスタ技術からキット販売された64倍SSDAC(トランジスタ技術2018年10月号)においても、低音が物足りない印象がする、といった意見が聞かれたが、低域特性については全段直結でDCまで確保しているので、低域が減衰することはない。

1. SSDAC Sound
SSDAC is being developed as a D/A converter for audio, so the most important point is how to improve the sound quality.
I don't want to say too abstract, so first write the impression of the sound from the point of how it changes audibly when switching between NOS (raw data without interpolation) and supersampling during music playback. 

・ High frequencies can be heard in detail.
Especially, the breathing of vocals, hi-hat cymbals, and the rubbing sound of strings of stringed instruments can be heard more realistically.

・ The sound field expands.
For 
example, I get the impression that it expands like when switching from monaural to stereo (although not so extreme, of course).
For example, noise and echo can give the same impression, so this kind of evaluation requires caution, but probably as mentioned above, it increases the resolution especially in the high frequency range. Isn't it related to what you did?

Next, in comparison with a delta-sigma DAC using a commercially available general oversampling digital filter, it is as follows.

・ The rise is good, the outline of the sound is clear, and
the difference between the ΔΣ method and the multi-bit method is probably large as a dry impression factor. Also, as a result of eliminating incidental sounds that are not in the sound source, such as pre-echo and post-echo, it may give a dry impression.
There was an opinion that the 64x SS DAC (Transistor Gijutsu October 2018 issue), which was previously sold as a kit from Transistor Gijutsu, also gave the impression that the bass was unsatisfactory. Therefore, the low range is not attenuated.

 

2.SSDACの原理
SSDACの原理を説明する前に、まずはCDに入っている音を何も処理しないで再生した場合(NOS)の波形を見てほしい。
図1に示すのは、44.1kHz16Bitサンプリング(CDのデータフォーマット)の10kHz正弦波だ。

2. SSDAC Principle
Before explaining the SSDAC principle, first look at the waveform when the sound on a CD is played back without any processing (NOS).
Figure 1 shows a 10kHz sine wave with 44.1kHz 16Bit sampling (CD data format).

Nos10k
図1.10kHz正弦波の生データ(NOS)波形
Figure 1. Raw data (NOS) waveform of 10kHz sine wave

CDのサンプリング周波数は44.1kHzなので、10kHzの正弦波は一周期が4個ほどのデータになってしまい、正弦波からは程遠い波形になってしまう。あるデータが出てから次のデータが出るまでの間は、データの値を保つので、すきまのない棒グラフだと考えるとよい。これを0次ホールドという。
この状態からもとの正弦波が再現できるだろうか。もちろん急峻なローパスフィルタを通せば角が落ちてなめらかになるだろうが、波形の復元といいう観点から考えるとどうだろうか。

図2は適当なデータをEXCELで棒グラフにしたものだ。

10kHz sine wave Since the sampling frequency of CD is 44.1kHz, the sampling frequency of 10kHz sine wave is about 4 data per cycle, which is far from the sine wave. .. Since the value of the data is maintained from the time when one data comes out until the next data comes out, it is good to think of it as a bar graph with no gaps. This is called the 0th-order hold.
Can the original sine wave be reproduced from this state? Of course, if you pass it through a steep low-pass filter, the corners will drop and it will be smooth, but what about from the perspective of waveform restoration?

Figure 2 is a bar graph of appropriate data in EXCEL.

Excel_nos

図2.EXCELで作った棒グラフ
Figure 2. Bar graph made with EXCEL

 

図2は棒と棒の間にすきまがあるので0次ホールドとは少しちがうが、同じデータをEXCELの散布図(平滑線)を使うと、図3のようになる。
Fig. 2 is a little different from the 0th-order hold because there is a gap between the rods, but if the same data is used in the scatter plot (smooth line) of EXCEL, it will be as shown in Fig. 3.

Excel_spline
図3.EXCELの散布図(平滑線)
Figure 3. EXCEL scatter plot (smooth line)

EXCELの散布図(平滑線)はスプライン関数でデータ間をなめらかにつないでいる。
SSDACでの処理はまさにこれと同じで、点と点の間を3次のスプライン関数で補間するものだ。3次のスプライン関数というのは、データ間がなめらかにつながるような3次関数を区間毎に当てはめるという方法だ。
EXCEL's scatter plot (smooth line) connects data smoothly with a spline function.
The process in SSDAC is exactly the same: interpolating between points with a third-order spline function. A cubic spline function is a method of applying a cubic function that smoothly connects data to each interval.

3jikansuu - 式1

3次関数というのは式1のようなもので、ここではdがCDの元データ、xが時間、yが信号レベルだ。

実際にSSDACで図1と同じ10kHzの正弦波を再生すると図4のようになる。

A cubic function is like Equation 1, where d is the original data on the CD, x is the time, and y is the signal level.

When the same 10kHz sine wave as in Fig. 1 is actually reproduced by SSDAC, it becomes as shown in Fig. 4.

 

Ss64_10k
図4.SSDACで処理した10kHz正弦波(64倍SSDAC)
Figure 4. 10kHz sine wave processed by SSDAC (64x SSDAC)


参考:SSDACの電気学会論文
Reference: SSDAC Institute of Electrical Engineers of Japan paper


3.市販DACの問題点
それでは現在一般的に使われている市販のDACはどうだろうか。
まず波形再現性では、オーバーサンプリングとデジタルフィルタという技術を使って、図4に示したものとまったく同様になめらかな波形が再現される。それなら何が問題なのだろうか。
図5に過渡応答(矩形波)の波形を示す。

3. 3. Problems with commercial DACs
So what about commercially available DACs that are commonly used today?
First, in terms of waveform reproducibility, using techniques called oversampling and digital filters, a smooth waveform is reproduced exactly as shown in Fig. 4. Then what's wrong?
Figure 5 shows the waveform of the transient response (square wave).

 

Es9018k2m_1ktr
図5.ES9018K2Mの過渡応答(1kHz矩形波)
Figure 5. Transient response of ES9018K2M (1kHz square wave)


図5の元データは単純な矩形波だが、デジタルフィルタを通すことで、波形の立ち上がり前後に波のようなノイズが発生している。これをプリエコー、ポストエコーといい、オーバーサンプリングとデジタルフィルタという方式がもつ根本的な問題点だ。
プリエコー、ポストエコーの周波数はサンプリング周波数の1/2なので、CDの場合は44.1kHz/2=22.05kHzだ。
22.05kHzならば可聴周波数より上なので問題はない?
音楽の場合はCDでは0~22.05kHzまでの音楽信号が出力され、その音楽信号に対し22.05kHzのノイズが重畳すれば、常に干渉波が発生することになり聴感にも影響を与える。デジタルオーディオの音がなんとなくにぎやかな印象がしたり、不自然な艶っぽさがあるような印象になるのは、このプリエコー、ポストエコーの影響があるのではないかと個人的に考えている。

それでは、SSDACの過渡応答はどのようになっているのだろうか。図6にSSDACでの再生波形を示す。

The original data in Fig. 5 is a simple square wave, but by passing it through a digital filter, noise like a wave is generated before and after the rise of the waveform. These are called pre-echo and post-echo, and are the fundamental problems of oversampling and digital filters.
The pre-echo and post-echo frequencies are 1/2 of the sampling frequency, so in the case of a CD, it is 44.1kHz / 2 = 22.05kHz.
If it is 22.05kHz, it is higher than the audible frequency, so is there any problem?
In the case of music, a music signal from 0 to 22.05kHz is output on a CD, and if noise of 22.05kHz is superimposed on the music signal, an interference wave is always generated, which affects the audibility. I personally think that the pre-echo and post-echo effects may be the reason why the sound of digital audio has a lively impression or an unnatural luster.

So what is the transient response of SSDAC? Figure 6 shows the playback waveform on the SSDAC.



Ss_tr1k
図6.SSDACの過渡応答(1kHz矩形波)
Figure 6. SSDAC transient response (1kHz square wave)


SSDACの過渡応答は、オーバーシュートとアンダーシュートがひと山ずつ出ているが、これはすべてのデータ点を通り、連続する3次曲線で補間するという原理上発生するものだ。
SSDAC transient response has one mountain of overshoot and one undershoot, which occurs on the principle of passing through all data points and interpolating with a continuous cubic curve. Thing.


4.フルーエンシDACについて
先行する技術としてフルーエンシDACというものが存在する。
これは寅市和男教授により発明され、80年代に高級CDプレーヤーに搭載された。また映像の補間技術にも応用され、世界的にも注目を浴びた。音声用DACは現在でもFN1241というデバイスとして販売されている。秋月電子でも入手可能だ。
フルーエンシDACは、デジタルフィルタのsinc関数を2次関数で近似するという技術で、タップ係数の収束が早いので過渡応答に優れている。
フルーエンシDACによる過渡応答を図7に示す。

4. Fluency DAC There is a fluency DAC as aleading technology.
It was invented by Professor Kazuo Toraichi and was installed in high-end CD players in the 1980s. It was also applied to video interpolation technology and attracted worldwide attention. Audio DACs are still sold as a device called FN1241. It is also available at Akizuki Denshi.
Fluency DAC is a technology that approximates the sinc function of a digital filter with a quadratic function, and has excellent transient response because the tap coefficient converges quickly.
Figure 7 shows the transient response of the fluency DAC.

 

Fluency_tr1k
図7.フルーエンシDACによる過渡応答(1kHz矩形波)
Figure 7. Transient response by fluency DAC (1kHz square wave)


フルーエンシDACによる過渡応答は優秀で、オーバーシュートがひと山出ているだけで、アンダーシュートがない。
波形はどうだろうか。図8にフルーエンシDACによる10kHz正弦波の再生波形を示す。
The transient response by the fluency DAC is excellent, with only one overshoot and no undershoot.
How about the waveform? Figure 8 shows the playback waveform of a 10kHz sine wave by the Fluency DAC.

 

Fluency10k
図8.フルーエンシDACで処理した10kHz正弦波
Figure 8. Since the 10kHz sine wave


フルーエンシは2次関数で近似するため、1次微分までしか連続性が確保できず、波形が歪んでしまう。

参考:フルーエンシDAC特許

fluency processed by the fluency DAC is approximated by a quadratic function, continuity can be ensured only up to the first derivative, and the waveform is distorted.

Reference: Fluenci DAC patent




5.トランジスタ技術で販売した、64倍SSDACの各動作モードについて
トラ技でキット販売した64倍SSDACでは、3次スプラインのスーパーサンプリングモードのほかに、NOSモード、1次補間モード、2次補間モードがスイッチで切り替えられるようになっている。ここでは、各モードでの再生波形を紹介する。

5. About each operation mode of 64x SSDAC sold by transistor technology In the 64x SSDAC
sold as a kit by Transistor Gijutsu, in addition to the super sampling mode of the 3rd spline, NOS mode, 1st interpolation mode, and 2nd interpolation mode are switched. It can be switched with. Here, the playback waveforms in each mode are introduced.

Nos_tr1k
図9.NOSモード時の過渡応答(1kHz矩形波)
Figure 9. Transient response in NOS mode (1kHz square wave)


NOSモードはなにも処理しない生データの状態で、正弦波についてはすでに図1に示したとおり。NOSモードでの過渡応答は図9のようになり、過渡応答だけ見れば理想的な状態だ。

次に1次補間モードの正弦波波形を図10に示す。

NOS mode is a state of raw data that does not process anything, and the sine wave is already shown in Fig. 1. The transient response in NOS mode is shown in Fig. 9, which is ideal if you look only at the transient response.

Next, Fig. 10 shows the sine wave waveform in the first-order interpolation mode.


10k
図10.1次補間モードで処理した10kHz正弦波
Fig. 10. The 10kHz sine wave primary interpolation mode


1次補間モードというのはデータ間を直線で補間するモードで、折れ線の状態になる。

次に2次補間モードの正弦波波形を図11に示す。

Processed in the linear interpolation mode is a mode in which data are interpolated with a straight line, and is in a polygonal line state.

Next, Fig. 11 shows the sine wave waveform in the second-order interpolation mode.

 

10k_20210301173001
図11.2次補間モードで処理した10kHz正弦波
Figure 11. In the 10kHz sine wave secondary interpolation mode

2次補間モードは1次微分までしか連続性が確保されないため、波形が歪んでしまう。フルーエンシDACに類似。
Processed in the secondary interpolation mode,continuity is ensured only up to the first derivative, so the waveform is distorted. Similar to Fluency DAC.

 

6.SSDACのシミュレーション
6.SSDAC simulation
図12に、今回頒布している128倍SSDACの、実際のVHDLコードによる補間シミュレーションを示す。
Figure 12 shows the interpolation simulation of the 128x SSDAC distributed this time using the actual VHDL code.

Simwav
図12.128倍SSDAC、VHDLソースのModelsimシミュレーション
Figure 12. Modelsim simulation

スプラインの演算は128倍スーパーサンプリング24Bit精度で行っており、駆動するデバイスに応じてスーパーサンプリング比とビット精度を調整(縮小)して出力する。
Spline of 128x SSDAC and VHDL source is calculated with 128x supersampling 24bit accuracy, and the supersampling ratio and bit accuracy are adjusted (reduced) according to the device to be driven and output.


7.SSDACの演算精度
今回開発したSSDACは、上述の通り内部演算を128倍スーパーサンプリング24Bit精度で行っている。
128倍16BitスーパーサンプリングDAC基板では、16BitマルチプライングDAC(DAC8820)を使って、最大レートである128倍スーパーサンプリングで出力している。内部演算24ビットのうち上位16Bitを使用している。
同じ128倍SSDAC基板に搭載された16倍24BitのI2S出力は、転送レートの上限が768kHzのため、スーパーサンプリング比を128倍から16倍にダウンしているが、Bit精度は24Bitであるので、16Bitと比較すれば8ビット増(256倍)のBit精度になる。
PCM1702用の16倍20Bitでは、同様に16ビットより4Bit(16倍)増のBit精度だが、このデバイスはサインマグニチュード方式のマルチビットDACとしてのアドバンテージが音質にも現れている。


128倍 16Bit スーパーサンプリングDAC 基板頒布

PCM1702 16倍 20Bit スーパーサンプリングDAC 基板頒布


7. Calculation accuracy of SSDAC The SSDAC
developed this time performs internal calculation with 128 times super sampling 24 Bit accuracy as described above.
The 128x 16bit supersampling DAC board uses a 16bit multiplexing DAC (DAC8820) to output at the maximum rate of 128x supersampling. The upper 16 bits of the 24 internal operations are used.
The 16x 24Bit I2S output mounted on the same 128x SSDAC board has a supersampling ratio down from 128x to 16x because the upper limit of the transfer rate is 768kHz, but the Bit accuracy is 24Bit, so Compared to 16 Bit, the Bit accuracy is increased by 8 bits (256 times).
The 16x 20Bit for PCM1702 also has a 4Bit (16x) increase in Bit accuracy from 16bit, but this device also shows the advantage of a sine magnitude multi-bit DAC in sound quality. 

128x 16Bit 
Super Sampling DAC Board Distribution

PCM1702 16x 20Bit Super Sampling DAC Board Distribution

| | コメント (0)

より以前の記事一覧