PIAiF
Raspberry Pi i2s ”IN-OUT” AudioInterFace

hsgwさん(@hsgwchan)が投稿した写真 -

Rapberry pi 3用のオーディオ入力・出力を備えたi2sオーディオインターフェースです。
特に音を処理するインスタレーションやガジェット、楽器制作のために設計しました。 
Raspbian Jessie kernel4.4ならコンフィグファイルに一行追記するだけで使用できます。 
もちろん、入出力は同時使用できます。 (Line inとMic inはどちらかを選択)

ベータテスト版です。現状、ハードウェア/ドライバに不具合がある可能性があります。 
ちなみにPIAiFは"ピアフ"と読んで下さい。 

○ コーデック

  • Wolfson(Cyrus) WM8731
    最大24bit/96kHzのADCとDACが2基ずつ
    マイクアンプ、ヘッドホンアンプ内蔵
    i2sで音声データを送受信してi2cでコントロールします。
    http://www.cirrus.com/en/products/pro/detail/P1307.html 
    マスターモードで駆動し、クロックには12.288MHz 10ppmのクリスタルを使用しています。 

○ 入出力

  • ステレオ3.5mmジャック
    ライン入力、ライン出力、ヘッドホン出力
  • 2.54mmヘッダー 
    マイク入力(未テスト)、i2c+電源、電源入力
  • 2.1mm電源DCジャック
    5V入力(定格4A、センタープラス、内径2.1mm、外径5.5mm )
    Raspberry Pi本体の電源用USBコネクタではなく、こちらから電源を供給するのを推奨します 

○ TIPS

  • ドライバの有効化(Raspbian JESSIE kernel4.4)
    /boot/config.txt
  • dtoverlay=rpi-proto
    を追記して再起動。
    ネット上にはこれ以外の設定をすべきとの記事がたくさんありますが通常は上記の1行だけで動作します。
    オンボードのサウンドはオフにしておくと安心です。

    認識はしているけど音が出ない場合はHiFi Playback Switch(DACからの出力をLINEOUTへ送るスイッチ)がオフになっているかもしれません。amixerで設定して下さい。
  •  サンプリングレート
    クロックの都合上、8kHz・32kHz・48kHz・96kHzに対応しています。
    よくある44.1kHzには対応していません。ALSAもしくはソフトウェアでサンプリングレートの変換が必要です。 
  • ビット数
    16、20、24bitに対応しているようですが、16bit以外はテストしていません。

  • おすすめ
    16bit/48kHzがおすすめです。
     
  • Line inの分圧
    WM8731の推奨回路の通り、入力を抵抗分圧で半分にして入力時のクリップを防いでいます。
    もし気になる場合は回路図を見て取り外して下さい。(入力の保護抵抗は必要です。 )

  • i2c
    コントロールにi2cを使用しています。
    アプリケーションでi2cの通信をする場合は少しだけ気をつける必要があるかもしれません。
    普通に入出力するだけならWM8731はほとんどi2cを使用しません。 
    (ちなみにR1、R3はi2cのプルアップ抵抗です。) 

○ 回路図・基板データ

○ フィードバック・質問など