GPIOを介してオーディオ信号を出力する方法は?


12

GPIOを介してオーディオ信号を出力する方法はありますか?この方法には欠点がありますか?


1
最小限のハードウェアを使用してデジタルI / Oピンを介してオーディオ信号を出力する非常に興味深い方法の1つは、romanblack.com
slebetman

回答:


9

オーディオジャックチャネル(左と右)は、PWM駆動のGPIO(GPIO 12または18によるチャネル0、GPIO 13または19によるチャネル1)によって提供されます。

したがって、適切な回路をそれらのGPIOに接続すると、オーディオが得られます。

参照してくださいBCM2835 ARM周辺機器を GPIOおよびPWMペリフェラルの詳細については。


追加するように編集されました

いくつかの背景

最近のPiでは、オーディオジャック出力はPWMチャンネル0および1によって提供されます。PWMチャンネル0は(ステレオ)右チャンネルに接続されたGPIO40に供給され、PWMチャンネル1は(ステレオ)に接続されたGPIO45左チャンネル。

これらのPWMチャネルは、ユーザーがアクセス可能なGPIOに追加で供給することができます。

PWMチャネル0は、GPIO12およびGPIO18にルーティングできます。

PWMチャネル1は、GPIO13およびGPIO19にルーティングできます。

次のように特定のGPIOモードを設定して、PWMをGPIOにルーティングします。

  • GPIO12-設定モードALT0
  • GPIO13-設定モードALT0
  • GPIO18-設定モードALT5
  • GPIO19-設定モードALT5

上記のBroadcom仕様リファレンスの102ページを参照してください。

GPIOモードを設定するにはさまざまな方法があります。

私のpigsユーティリティはMコマンドを使用します。

例えば、ブタm 18 5はGPIO18をモードALT5に設定します。


両方のチャネルを使用する必要がありますか?そして、なぜそこにあるの、私はPi 3を使用しており、ハードウェアPWMを備えたGPIOの数は何ですか?よれば、この、唯一つのピンは、ピン12(GPIO18)でPWMを有してあります。
トレバー

@IlDivinCodino 1つまたは2つのチャネルを使用できます。ステレオには2つのモノラルが必要です。私の答えは、使用可能なGPIOについて言及しています。または、どちらかのGPIOを使用できることを意味します(そうする理由が見つかった場合は両方を使用できます)。
ジョアン

@joan独自の(IIRC)pigpioライブラリは、任意のピンでPWMを許可します-どのように多くのオーディオチャネルを取得できるのでしょうか。
クリスH

1
@ChrisH pigpio DMAタイミングPWMは、オフと完全オンの間の限られた数のステップで固定数の周波数のみを生成できるという制限があります。多くのアプリケーションではこれで問題ありませんが、おそらく音声ではありません(PWMを使用して音声を生成する方法がわからないため、これは私の推測です)。
ジョアン

2
@joan、もっと問題になるのは離散周波数です(最大音量には50:50のデューティサイクルがおそらく最適です)。したがって、アラームには適していますが、一般的な再生には適していません。私は週末にそれで遊ぶ機会があるかもしれません。
クリスH

2

Joanの答えがすでに示唆しているように、Piのアナログオーディオ出力はまさにそれです。Adafruitには、Pi Zero(これには付属していません)で使用するためのこの回路について詳しく説明した記事がありますこちらを参照してください


記事の説明が必要です。リンクを置くだけでは、stackexchangeで答えるのに適した方法ではありません。いつかリンクが死ぬ可能性があります。
トレバー

1
1)単にリンクを置くだけでなく、コンテキストを与えています(私が認めているように少しですが)、2)外部リンクではなくraspberrypi.SE内の内部リンクであるため、リンク腐敗はおそらく問題ではありません(したがって、それはあなたの質問と同じくらい永続的であると主張します)。アイデアは、そこに提供された情報を繰り返さないことと、両方の質問をお互いに偽りとして閉じないことでした(私見ではないため)。
ガニマ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.