本Howtoは参考情報ですので、動作を保証するものではありません。
2014年10月1日現在、オーディオの録音動作において、以下の問題がありますのでご注意ください。
・24ビットデータフォーマットでの録音が正常に行われない
Armadillo-410 液晶モデルにオーディオコーデック(CS4270)を接続して使用する方法を説明します。
CS4270について
CS4270はCIRRUS LOGIC社の24ビット、192 kHzステレオ・オーディオ・コーデックです。 デバイスの詳しい情報については、メーカーのホームページを参照してください。
必要機材
- Armadillo-410液晶モデル
- CS4270ボード(本Howtoに掲載している回路図を参考に作成してください)
ソフトウェア
本Howtoで使用するソフトウェアは次の通りです。
Linux カーネルソースアーカイブ | linux-2.6.26-at20.tar.gz |
---|---|
Linux カーネルパッチ(1) | 0001-a400-Add-cs4270-support.patch |
Linux カーネルパッチ(2) | 0002-cs4270-corrected-maximum-and-minimum-channel-number.patch |
Linux カーネルパッチ(3) | 0003-cs4270-fix-recording-error.patch |
本Howtoで作成するソフトウェアのバイナリファイルは以下よりダウンロードすることが出来ます。
Linux カーネルイメージ | linux-a400-cs4270-support.bin.gz |
---|
ハードウェア仕様
今回オーディオコーデックを動作させるために使用するArmadillo-410の機能は以下の通りです。
機能 | i.MX25インターフェース名 | フォーマット | コネクタ |
---|---|---|---|
デジタルオーディオ入出力 | AUD5 | I2S | CON2 拡張インターフェース |
オーディオコーデック制御 | I2C3 | I2C | CON2 拡張インターフェース |
Armadillo-410液晶モデルでは、Armadillo-410拡張ボードの CON16 テストインターフェースでこれらの機能を使うことができます。
CS4270ボード参考回路
CS4270ボードは、ステレオのヘッドホン出力とライン入力を装備したボードです。 Armadillo-410液晶モデルのArmadillo-410 拡張ボードを介してArmadillo-410と接続します。 CS4270ボードの参考回路は以下の通りです。
参考回路図 | a410_demo_cs4270_rev1.pdf |
---|
CS4270ボードをArmadillo-410液晶モデルに接続する際の注意点
Armadillo-410 拡張ボードのCON11に接続されているFFCケーブルを取り外してから、 CS4270ボードをArmadillo-410液晶モデルに接続してください。 Armadillo-410液晶モデルにそのままCS4270ボードを接続すると、LCD拡張ボードの オーディオコーデックとCS4270の信号同士が衝突して、部品が故障する恐れがあります。
Linuxカーネルイメージの作成
CS4270を有効化したLinuxカーネルイメージを作成します。
はじめに、ソースコードの準備を行います。Linux カーネルのソースアーカイブを展開し、パッチを適用します。
atmark@atde3:~/cs4270_demo$ ls
0001-a400-Add-cs4270-support.patch
0002-cs4270-corrected-maximum-and-minimum-channel-number.patch
0003-cs4270-fix-recording-error.patch
linux-2.6.26-at20.tar.gz
atmark@atde3:~/cs4270_demo$ tar zxf linux-2.6.26-at20.tar.gz
atmark@atde3:~/cs4270_demo$ cd linux-2.6.26-at20/
atmark@atde3:~/cs4270_demo/linux-2.6.26-at20$ patch -p1 < ../0001-a400-Add-cs4270-support.patch
patching file arch/arm/mach-mx25/armadillo400.c
patching file arch/arm/mach-mx25/devices.c
patching file arch/arm/mach-mx25/devices.h
patching file sound/soc/codecs/cs4270.c
patching file sound/soc/imx/Kconfig
patching file sound/soc/imx/Makefile
patching file sound/soc/imx/armadillo440-cs4270.c
atmark@atde3:~/cs4270_demo/linux-2.6.26-at20$ patch -p1 < ../0002-cs4270-corrected-maximum-and-minimum-channel-number.patch
patching file sound/soc/codecs/cs4270.c
atmark@atde3:~/cs4270_demo/linux-2.6.26-at20$ patch -p1 < ../0003-cs4270-fix-recording-error.patch
patching file sound/soc/codecs/cs4270.c
patching file sound/soc/imx/imx-ssi.c
atmark@atde3:~/cs4270_demo/linux-2.6.26-at20$
次に、カーネルコンフィギュレーションの変更を行います。Armadillo-410のデフォルトコンフィギュレーション(armadillo400_defconfig)を適用した後に、CS4270ドライバを有効に設定します。
atmark@atde3:~/cs4270_demo/linux-2.6.26-at20$ make ARCH=arm armadillo400_defconfig
:(カーネルの設定情報が表示されます)
#
# configuration written to .config
#
atmark@atde3:~/cs4270_demo/linux-2.6.26-at20$ make ARCH=arm menuconfig
-> Device Drivers
-> Sound
-> Advanced Linux Sound Architecture
-> System on Chip audio support
<*> Audio Codec (SoC Audio support for Armadillo-440 - CS4270)
最後に、ビルドを実行します。作成されるLinuxカーネルイメージは、本Howtoよりダウンロードして入手することもできます。
atmark@atde3:~/cs4270_demo/linux-2.6.26-at20$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- && gzip -c arch/arm/boot/Image > linux-a400-cs4270-support.bin.gz
:(ビルドには数分かかります)
Linuxカーネルイメージの更新
作成したLinuxカーネルイメージを、Armadillo-410のフラッシュメモリに書き込みます。 Armadillo のオンボードフラッシュメモリを書き換える手順につきましては、 Armadillo-400 シリーズ ソフトウェアマニュアル「6. フラッシュメモリの書き換え方法」をご確認ください。
動作確認
CS4270の動作確認を行います。 CS4270ボードが接続されたArmadillo-410液晶モデルを起動します。 CS4270が認識されると、Linuxカーネルのブートメッセージに以下のメッセージが表示されます。
ASoC version 0.13.2
CS4270 ALSA SoC Codec
asoc: CS4270 <-> imx-i2s-1 mapping ok
cs4270: found device at I2C address 4A
cs4270: hardware revision 3
ALSA device list:
#0: armadillo440 (CS4270)
Armadilloにログイン後、以下の説明を参考に動作確認を行ってください。
asound.confの編集
モノラルの録音再生に対応するため、以下を参考に/etc/asound.confの内容を修正してください。
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
pcm.mono {
type route
slave.pcm default
slave.channels 2
ttable.0.0 0.5
ttable.0.1 0.5
ttable.1.0 0.5
ttable.1.1 0.5
}
再生音量の調節
音量は0~100%の数値で設定することができます。 以下のコマンド例では、70%の音量設定となります。
[armadillo ~]# amixer set Master on 70%
WAVファイルの再生 (ステレオの場合)
以下のコマンド例では、WAVファイル(sample.wav)を再生しています。
[armadillo ~]# aplay -Dplug:default -M -twav sample.wav
WAVファイルの再生 (モノラルの場合)
以下のコマンド例では、WAVファイル(sample.wav)を再生しています。
[armadillo ~]# aplay -Dplug:mono -M -twav sample.wav
音声の録音 (ステレオの場合)
以下のコマンド例では、48kHz16bitステレオで録音します。 録音を終了する場合は、コンソール上でCTRL+Cキーを入力してください。
[armadillo ~]# arecord -M -twav -fS16_LE -c2 -r48000 sample.wav
音声の録音 (モノラルの場合)
以下のコマンド例では、48kHz16bitモノラルで録音します。 録音を終了する場合は、コンソール上でCTRL+Cキーを入力してください。
[armadillo ~]# arecord -Dplug:mono -M -twav -fS16_LE -c1 -r48000 sample.wav