Texas Instrumentsの 32-bit、384-kHz PCM DAC
PCMインターフェース及びフル・プログラマブル miniDSP付き
・サンプリング周波数:8kHz~384kHz
・データ長:16bit、24bit、32bit
・ダイナミックレンジ:112dB
・SPIまたはI2C制御
・2ch DAC
・電源電圧:3.3V
・パッケージ:TSSOP-28P
■2016年4月2日 追記
PCM5142をそのまま半田付けはできないので、ピッチ変換基板を使いました。
定番のダイセン工業のD028です。
とりあえず、スレーブモードで動作するように配線しました。
さぁ、音はでるでしょうか?
■2016年4月5日追記
44.1KHzのMP3はきれいに再生できるのですが、44.1KHzのALACは雑音になります。
なぜだろうということで、プロトコルアナライザーで見てみました。
44.1KHz/MP3のI2Sデータです。上からLRCK、BCK、DATAです。
44.1KHz/ALACのI2Sデータです。サンプルレートが高いはずなのに、BCKが上の
半分です。
原因はこのBCKの周波数のようですが、何故なんでしょう?
ちなみに上のBCKはRaspberry PiのI2Sの揺らぎを見ることができます。
マスターモードではこれを解決することができます。
■2016年4月7日追記
ハードウェアモードは諦めて、I2Cモードで動かしてみることにしました。
Mode1ピンをLow、Mode2ピンをHighに設定して、I2Cのクロックと
データを接続します。
(PCM5142はPCM5102Aより8ピン多いのですが、ハードウェアモード
だと、そのピンがゲインコントロールの入力になるようです。そこをオー
プンにしていたことも原因のひとつかもしれないです)
そして、Volumioの設定画面からドライバーを「HifiBerry+」にします。
おもむろにreboot... すると...
メッセージを見ると、SCLKをGNDにつないでいることも認識して、BCLK
を逓倍することを選択したようです。
音でました。44.1KHzも48KHzも96KHzも192KHzもです。
よかった。
これで次のクリスタル KC7050Kの実験に進めます。
◼︎2016年4月26日追記
マスターモードはどうにか動きました。
でもRpi2のせいだと思っていた44.1KHz16bitの雑音は、RPi B+にしたの
に解消されません。
デバイスドライバーの中で32fsを強制的に64fsにすると、DMAエラーにな
ってしまいました。改修する場所が違いそうです。
(Volumioで44.1KHz24bitにアップサンプリングするとノイズは消えるの
でハードのせいでは無いようです。)
■2016年4月29日追記
Volumio側の改修は、MPD/PCM512Xドライバー/Hifiberry_dacplusドラ
イバーがからみあっていて難しいので、対症療法として手持ちの16bit FLAC
を24bitにコンバートしてしまいました。
■2016年5月25日追記(Alsamixerについて)
Raspbianに Hifiberry_dacplusのデバイスドライバーを登録していると
AlsamixerでPCM5142の各種パラメーターを操作することができます。
以下のようなCUIでDSPのプログラムやアナログボリューム等を設定する
ことが可能です。
この設定は一時的なものなので、設定を保存する場合は、以下のコ
マンドを投入する必要があります。
# alsactl store
DSPのプログラムは以下の5つの設定が可能なようです。
・FIR interpolation with de-emphasis
・Low latency IIR with de-emphasis
・High attenuation with de-emphasis
・Fixed process flow
・Ringing-less low latency FIR
Volumioで音楽を流しながら、操作するとリアルタイムに音が変わ
っていきます。
一番下の「Ringing~」が一番華やかな音になります。
もう少しこのDSPプログラムの部分を調べてみると、pcm512x.cという
チップドライバーに以下のような記述が見つかりました。
そして、PCM512x_DSP_PROGRAM を調べると、PCM512Xのpage 0
Register 43だということがわかりました。
それをデータシートで調べると、ここに値を設定することでDSPのプロ
グラムが選べることがわかります。デバイスドライバーに書いてある
1,2,3,5,7です。
31を設定することでユーザプログラムも書けることもわかりました。
ちなみに PCM512Xのデータシートの同じページを見てみると、
最後の 31 つまり '11111' は Reservedになっていました。
PCM512XはプリセットのDSPプログラムが使えるだけで、ユーザプロ
グラムを使うことができないということですね。
-
購入金額
1,300円
-
購入日
2016年03月31日
-
購入場所
秋葉原 千石電商
mr_osaminさん
2016/03/31
PCM5142を使った事例は少ないので注目しています。
yosyos888さん
2016/03/31
miniDSPの設定はツールが必要らしいので、当面放置プレイです
mr_osaminさん
2016/03/31
以前も紹介したかもしれませんが、5102Aでマスタークロックを注入する事例です。
http://linuxcom.info/beaglebone-black-dac.html
yosyos888さん
2016/03/31
もちろん、Raspberry piとPCM5122/5142とは、I2CとI2Sで接続しておく必要はありますかが。
yosyos888さん
2016/03/31
デバイスドライバーに手を入れて、アイソレータの制御をしないといけないかもしれません。
mr_osaminさん
2016/03/31
あれ、基板は何を使われる予定でしたっけ?
yosyos888さん
2016/03/31
構成部品も少ないのでなんとかなるかなと思っています。
でもLDOレギュレータだらけになりそうな予感がしていますw
CR-Xさん
2016/03/31
どうせならやなさんのP2Dから良質のクロックとジッタ抑えたI2S流し込みたいなあ。
CR-Xさん
2016/03/31
200mAより沢山流せて6.5Vまで印加できるLDOキット出してもらえんかなあ…
yosyos888さん
2016/03/31
でも本当はベタアースとかが取れるプリント基板がよいのですが。
悩ましいものです。
yosyos888さん
2016/04/01
それでスレーブモードに設定したRaspberry piを動かします。
yosyos888さん
2016/04/03
が、Raspberry Pi2 と volumio 1.55での96KHz以上の音楽データを再生出来ないトラブルに当たりました。
これってどこかで解決していたんでしたっけ?
CR-Xさん
2016/04/04
Raspberry Pi 2 情報(2)
yosyos888さん
2016/04/04
volumioは1.55を使っているのですが、LCDをうごかすのにrpi-updateをしていて、カーネルが違うバージョンになっています。
素の1.55では解決したのかを知りたかったのですが、あまりそこのところがネットでは言及されていなくて…
もう一度、1.55のSDカード作りからやり直してみます。
yosyos888さん
2016/04/05
96KHzのFLACファイルだと「グルュグルュグリョグリョ」と音楽になりません。
44.1KHzのMP3だと綺麗に再生できるのですが
PCM5142の配線が正しいことを確認したいだけなのですが…
yosyos888さん
2016/04/08
PCM5142のハードウェアモードは、PCM5102のそれと何か違うんでしょうね。
I2Cモードにすることによって、どんなサンプリング周波数のデータでも綺麗に音が出るようになりました。
次はマスターモードです。
yosyos888さん
2016/05/25
DSPプログラムは、Page0 Register43への値の設定のようです。
一部のプログラムで音がでないということは、値が設定されていないか
チップが壊れているかのどちらかではないかと思います。
raspbianを導入して、alsamixerで確認されると良いと思います。
yosyos888さん
2016/05/25
設定する方法ですね。
作者のページでも設定例が 'FIR' だったり 'Fir'だったりどちら
が正しいのかよくわかりません。
この文字列が違っている可能性も高いですね。
通りすがりのおじさんさん
2016/05/25
今までVolumioのUIで設定できる事しかいじっていませんでいたが、alsamixer使うとチップの細かい調整も出来るんですね。
こんな事が出来るとは知りませんでした。いいですね!
早速下記の組み合わせで試してみました。
本体 : Raspberry Pi2B
DAC : 自作DAC1(PCM5122) マスターモード
自作DAC2(PCM5122) マスターモード
サインスマート HifiberryDAC+(PCM5122) スレーブモード
ソフト : Volumio1.55-OLED対応版(rpi-update実行済)
Volumio2 RC1(自作DACにのみ適用)
テスト方法 : alsamixerでフィルタを切り換えたら曲を何度か再生しなおす
自作DAC1,2,サインスマート全て、Fixed process flowを選択した時のみ音が出なくなるという結果になりました。
最初自作DAC2枚とも同じ結果だったので、回路ミスか配線上のノイズかな~?と思ったのですが、市販品のも同じだったので違うところに問題がありそうです。
データシートには、
Fixed process flow with configurable parameters
となっているので、他にパラメータの設定が必要なのかなと・・・
lightMPDでは、High attenuation with de-emphasisとFixed process flowの2種類が駄目だったのですが、High attenuationの方はYosyos888さんのおっしゃる通り、文字列の問題かも知れません。
色々とお手数をおかけしてすみませんでした。
また、有用な情報をいただきありがとうございました。
Volumio+alsamixer、お気に入りになりました。
yosyos888さん
2016/05/25
私のPCM5142では、Fixed ~ flow でも音は出ていました。
PCM5122と何か違うのかもしれません。
ドライバーのバージョンの可能性もありますね。
通りすがりのおじさんさん
2016/05/26
ドライバーのバージョンはわかりませんが、最近のRaspbian+MPDで試しましたが、同じでした。
来月になったらPCM5142でも試してみようと思います。
通りすがりのおじさんさん
2016/06/04
PCM5122の仕様書に、Fixed process flowはサンプリングレート48KHzまでしか駄目と記載がありました・・・
確かに音が出なくなるのは96KHzのFLACで、44.1KHzのMP3だと大丈夫でした。
お手数をおかけしてすみませんでした。
yosyos888さん
2016/06/04
私がテストした時は、CDからリッピングしたデータで、いろいろ
DSP PROGRAMをさわっただけなので、全部音が出たんですね。
でも、とりあえず原因判明でよかったです。
yosyos888さん
2016/06/04
NOTE
This process flow requires 1024 instruction cycles. Therefore,
it will only function at sampling frequencies up to 48 kHz.