警告メッセージ

Howtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。また、すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。

Howto : Armadillo-410 液晶モデル開発セット でオーディオコーデック(CS4270)を使用する

対象製品: Armadillo-410

本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
カテゴリ: