raspi005
Raspberry Pi

(2013/1/14追記)
http://elinux.org/RPi_Bugsにオーディオ出力に関するハードウエア上のバグ情報が載っていた。
これによると、保護ダイオードのせいでDCオフセットが生じてしまうとのこと。
回路図を見ると、DCカット用のコンデンサ(C48,C34)の後ろに保護用ダイオード(D12,D13)がついている。
sound.png
C48,C34が直流分をカットして交流分を流しているのだが、保護用ダイオードのせいでマイナス側に振れた分をカットしてしまっている。
実際どのようになっているか、オシロを使って測定してみた。

音源はフリーソフトの「WaveGene」を利用してwavファイルを生成。
WaveGeneの設定条件は下の図のとおり。
秒数は画面にある5秒ではなくて長めに設定してある。
wavegene.png

これをRaspberry Piでomxplayerコマンドで再生。

$ omxplayer ファイル名

音声ファイル再生中に+キーと−キーで音量を上下できるので、これで音量を変えて測定。

raspi009raspi010
無負荷状態で測定。
左がomxplayerの音量を0dB、右が+3dBで測定。
オシロの画面で左のマークのところが0Vのライン。
信号がプラス側にずれているのがわかる。
音量を+3dBにすると音が歪んでいる。


raspi011raspi012
ヘッドホンを付けた状態で測定。
同じく左が0dB、右が+3dB。
ヘッドホンの抵抗分のせいかオフセット分が無いように見える。


バグ情報に従って対処してみる。
raspi013
元凶のダイオード。

raspi014
ダイオードを取り外したところ。

raspi015
信号線とGNDの間に100KΩの抵抗を取り付けたところ。


対処後の信号を測定してみる。
raspi016raspi017
無負荷状態で測定。
同じく左が0dB、右が+3dB。
DCオフセット分が無くなって、交流分だけになっている。
ただし、音量を+3dBに上げたときに歪むのは変わっていない。
若干下にずれているのは、オシロの0V時の線が左のマークより1ドット分ずれていたせい。


raspi018raspi019
ヘッドホンを付けた状態で測定。
同じく左が0dB、右が+3dB。
これも同じ。

以前作ったオシロのキットが役に立った。
とはいえ、ちゃんとしたオシロがほしい今日この頃。
オシロの機能で画面のキャプチャがとれるのだが、画像が小さくファイルの転送も面倒なので写真でとった。


(2013/1/16追記)
音声再生前後でブチッって音がなるのは別の問題です。


目次
戻る

nazo-fjt.com