エンジニアブログ

オーディオ&組み込み技術ノート

Bestom のエンジニアチームが、Rockchip AIoT のオーディオおよび SoC 量産に関する技術記事をキュレーションして保管しています。一部の内容はコミュニティの公開資料に由来しますが、各記事には出典の帰属と元リンクを明記し、著作権は原著者に帰属します。

オーディオ Rockchip ドライバ Linux / ALSA

ハードウェア DAC/アンプは電源を入れるだけで音が出てドライバ不要——ではソフト側は何をすれば音が再生できるのか?

帰属:原著者 Luo Zong(罗总)、Rockchip、WeChat 公式アカウント 「罗总开发笔记」 にて 2026-08-25 公開。元 URL:mp.weixin.qq.com/s/CqBo2NonYYGqC99ojL--4Q。シリーズ:「自分で CODEC ドライバを書く」第 2 回(DAC 再生)。著作権は原著者に帰属し、許諾を得て転載しています。

注釈付き正規版 → 技術ノート・第 2 回:DAC 再生(全文翻訳+Bestom エンジニア注釈)。

多くの DAC チップ(例:TI PCM5102A)は制御インターフェースすら不要です。I2S データ線をつなぎ電源を入れるだけで音が出ます——内蔵 PLL を持ち、MCLK すら不要です。本稿では、Rockchip Linux 上でこのような「制御ゼロ」DAC を駆動するための ダミーコーデック(dummy-codec) の使い方を解説します。

  • 方向:再生 DAI ストリーム(.playback)を宣言すると、サウンドカードは /dev/snd/pcmC0D0p を生成します。これは前回の PDM キャプチャ記事(キャプチャ/pcmC0D0c)の逆です。
  • ドライバ:ダミーコーデックの .playback 能力宣言は単なるプレースホルダーで、ドライバコードは 0 行です。実チップのドライバ(例:pcm5102a.c)はデータシートに厳密に従って能力を宣言する必要があります。
  • DTS 三點セット:Codec DAI(ダミーコーデックのプレースホルダー)→ CPU DAI(&i2s0 の有効化+ピンマルチプレックス)→ Machine(multicodecs-card がサウンドカードを組み立てる)。PDM を I2S に、キャプチャを再生に差し替えるだけで同じように動きます。
  • 検証cat /proc/asound/cardsls /dev/snd/aplay -D hw:0,0 ...。データ経路は wav → リングバッファ → DMA → I2S → DAC → スピーカー です。
/* ダミーコーデックの再生能力宣言(kernel-6.1) */
struct snd_soc_dai_driver dummy_dai = {
  .name = "dummy_codec",
  .playback = {
    .stream_name = "Dummy Playback",
    .channels_min = 1, .channels_max = 384,
    .rates = SNDRV_PCM_RATE_CONTINUOUS,
    .formats = SNDRV_PCM_FMTBIT_S16_LE | ... ,
  },
};

Bestom との関連・当社のオーディオプラットフォームも同じ枠組み上に構築されています

本ノートの「ダミーコーデック+I2S 三點セット DTS」は、Bestom の RK2108D(M08D モジュール)RK2118(フラグシップ車載オーディオ、Audio-NPU 40 GOPS)RK962(ワイヤレスオーディオ) といった量産オーディオソリューションの基盤そのものです。その上に、マイクアレイのビームフォーミング、低消費電力音声ウェイクアップ(RT-Thread)、HiFi DSP フロントエンド処理、およびボイスレコーダー/スマートスピーカー/車載オーディオ向けの基板全体納入を追加しています。

技術ノート全文を読む → 原文(Luo Zong・WeChat、中国語) Copyright © Luo Zong(罗总), Rockchip. 許諾を得て転載。

シリーズ予告(同一著者)

第 3 回:MCLK/RESET/基板レベル GPIO の協調 ・ 第 4 回:ES7202 レジスタの力技移植 ・ 第 5 回(最終):DAPM & Mixer アーキテクチャ。Rockchip BSP kernel-6.1(v6.1.162)に基づく。