I2S

Si5351Aを使って簡易I2Sマスタを作ってみる

外部クロックがらみでいろいろ調べていたところ、秋月電子通商でSilicon Labsの3CHクロックジェネレータSi5351Aモジュールを見つけたので、これでI2Sマスタを作ってみた。 クロック出力をちょうど3系統持っているので、MCLK/BCLK/LRCLKの3種を生成してみる。…

簡易外部クロック化について 補足

必要なスペック DAI(I2Sコントローラ)側 高いBCLK入力に対応可能であること NEO2(H5)では98.304MHzでも動いてた。ただし、12.288MHzより高い周波数はスペック範囲外となる。 RPi Zero(BCM2835)では24.576MHzまで確認。それ以上は未確認。 CBM_CFS動作が可能…

AK449Xの簡易外部クロック化について

旭化成のDAC AK449Xシリーズにて、複雑なクロック生成回路ではなく単純な発振器を用いて外部クロック化する手法の紹介。 前回(BCLK/LRCLK出力しかないRaspberry Piで旭化成のDAC IC(AK449xシリーズ)を鳴らす実験 - _tkz_ memo])は外部回路追加無しでしたが…

ALSA SoCドライバメモ No.004 外部クロック関連

外部クロックを使う場合 外部クロックを使うときのクロック制御はDAI LINKに組み込むか、CODECに組み込むか。どちらでも良さそう。 PCM5122のGPIOとDividerを利用しているHiFiBerry DAC+PROではdai link (sound/soc/bcm/hifiberry-dacpro.c)でやっている PCM…

ALSA SoCドライバメモ No.003 callbackシーケンス

ALSA SoCドライバ開発でいちいちgrepするのが面倒な情報をメモしておく Callbackシーケンスのメモ 制御でよく使いそうなhw_paramsとshutdownのみ ポイントは開始時はdai_link->codecs->cpudai。終了時はcpudai->codecs->dai_linkとなること codecsが複数ある…

ALSA SoCドライバメモ No.002 private data

ALSA SoCドライバ開発でいちいちgrepするのが面倒な情報をメモしておく それぞれのドライバでprivate dataをどこに置くのか? dai link snd_soc_cardが自分の持ち物 設定方法 (probe時にsnd_soc_register_card前にやる) snd_soc_card_set_drvdata(&hoge_card…

ALSA SoCドライバメモ No.001 ドライバ構成

ALSA SoCドライバの構成 ファイルの説明 DAI LINKドライバ 例: sound/soc/bcm/hifiberry-dac.c 関連するドライバをまとめ(dai link)て登録(snd_soc_register_card)するドライバ hifiberry-dac.cではほとんど制御は行わず、登録のみを行っている。 hifiberry-…

BCLK/LRCLK出力しかないRaspberry Piで旭化成のDAC IC(AK449xシリーズ)を鳴らす実験

Raspberry PiでDAI/ASRC/CPLDなどのクロック生成周辺回路を用いず、旭化成のDAC AK449Xシリーズを使用する方法についてメモ。 Raspberry PiのDACにAK449xシリーズの採用が少ない原因のひとつとして、AK449xの要求するMCLKをRaspberry Piから供給できない点が…

Linux向けAK449x Codec Driverの紹介

旭化成エレクトロニクス製 AK4490/AK4495/AK4497/AK4493向けLinux Driverの紹介です。NanoPi NEO2でAK449xシリーズを鳴らすために作成しました。 ALSA SoC Codecドライバとして実装しています。NanoPi NEO2/Raspberry Pi Zeroで動作確認済み。そのほかのSBC…

NanoPiNEO2 HiFiBerry DAC+対応 β版

HiFiBerry DAC+ PRO対応のβ版リリース HiFiBerry DAC+ PROに対応しました。 twitterには書いてましたがこっちにも簡単にまとめます。 HiFiBerry DAC+ PROにて動作確認しています。クローンもたぶん動くはず。 HiFiBerry DAC+(外部クロックなし)は未検証で…

NanoPiNEO2 HiFiBerry DAC+対応 調査メモその1

HiFiBerry DACとはなんぞ? RaspberryPi向けの高音質DAC いくつか種類があり、RPiのクロックで動くものと、DACに乗っけたクロックで動くものがある。 RPi向けAudio用のディストロで対応したカーネルが配られている で? NanoPi NEO2でDAC側にマスタークロッ…

NanoPi NEO2 I2S AUDIO でMCLKを出すメモ

前提 Allwinner H5ではMCLKの出力が可能 PA6にアサイン可能 NanoPi Neo2でもこのPin(PA6)は出てる 作業内容とか dtsのi2s0 pinctrlにPA6を追加するもエラー PA6にi2s0のfunction設定が無いっぽい functionはpinctrlのdrivers/pinctrl/sunxi/pinctrl-sun50i-h…

NanoPi NEO2 I2S AUDIO 24bit再生でNG メモ

現象 16/32bitは再生OK 24bit再生はホワイトノイズ(かすかに音楽が聞こえる)となる 発生環境 20170909版のオフィシャルイメージ npi-configでPCM5102Aを選択 play(sox)で24/96,24/192フォーマットのFlacデータを再生 原因 24/32bit再生時の下記2レジスタの…

NanoPi NEO2 4.11系カーネルビルド手順メモ

概要 NanoPi NEO2用の4.11.xカーネルビルド方法のメモ。 公式イメージ20170909版のカーネルは本手順で生成できます。 公式ページの手順は3.10のころのものが混ざってる模様。 Ubuntu 16.04.3で確認 2018/07/21追記 Mediafireではなく、Linaroから直接Toolcha…