本Howtoは参考情報ですので、動作を保証するものではありません。 また、ハードウェアを一部改造する必要がありますので、十分ご注意ください。
Armadillo-840液晶モデルにオーディオコーデック(CS4270)を接続して使用する方法を説明します。
CS4270について
CS4270はCIRRUS LOGIC社の24ビット、192 kHzステレオ・オーディオ・コーデックです。 デバイスの詳しい情報については、メーカーのホームページを参照してください。
必要機材
- Armadillo-840液晶モデル
- CS4270ボード(本Howtoに掲載している回路図を参考に作成してください)
ソフトウェア
本Howtoで使用するソフトウェアは次の通りです。
Linux カーネルソースアーカイブ | linux-3.4-at9.tar.gz |
---|
本Howtoで作成するソフトウェアのバイナリファイルは以下よりダウンロードすることが出来ます。
Linux カーネルイメージ | linux-a840-cs4270-support.bin.gz |
---|
ハードウェア仕様
今回オーディオコーデックを動作させるために使用するArmadillo-840の機能は以下の通りです。
機能 | R-Mobile A1インターフェース名 | フォーマット | コネクタ |
---|---|---|---|
デジタルオーディオ入出力 | FSIA | I2S | CON7 拡張インターフェース1(Cコネクタ) |
オーディオコーデック制御 | I2C_0 | I2C | CON7 拡張インターフェース1(Cコネクタ) |
Armadillo-840液晶モデルでは、Armadillo-840 拡張ボード01(Cコネクタ用)の CON8 拡張インターフェース2でこれらの機能を使うことができます。
CS4270ボード参考回路
CS4270ボードは、ステレオのヘッドホン出力とライン入力を装備したボードです。 Armadillo-840液晶モデルのArmadillo-840 拡張ボード01を介してArmadillo-840と接続します。 CS4270ボードの参考回路は以下の通りです。
参考回路図 | a840_demo_cs4270_rev2.pdf |
---|
Armadillo-840 拡張ボード01の改造
Armadillo-840液晶モデルで外付けのオーディオコーデックを使用するために、Armadillo-840 拡張ボード01に 搭載しているオーディオコーデック(WM8978)の配線をArmadilloから切り離す必要があります。 以下の基板図を参考にArmadillo-840 拡張ボード01に搭載しているチップ抵抗を事前に取り外してください。 取り外すチップ抵抗は以下の通りです。
リファレンス名 | 抵抗値 |
---|---|
R25 | 0Ω |
R27 | 22Ω |
R29 | 22Ω |
R31 | 0Ω |
R32 | 22Ω |
R36 | 0Ω |
R38 | 0Ω |
Armadillo-840 拡張ボード01 基板A面側 全体図
Armadillo-840 拡張ボード01 基板A面側 拡大図
Armadillo-840 拡張ボード01 基板B面側 全体図
Armadillo-840 拡張ボード01 基板B面側 拡大図
Linuxカーネルイメージの作成
CS4270を有効化したLinuxカーネルイメージを作成します。
はじめに、ソースコードの準備を行います。Linux カーネルのソースアーカイブを展開します。
atmark@atde5:~$ ls
linux-3.4-at9.tar.gz
atmark@atde5:~$ tar zxf linux-3.4-at9.tar.gz
atmark@atde5:~$ cd linux-3.4-at9/
次に、カーネルコンフィギュレーションの変更を行います。Armadillo-840のデフォルトコンフィギュレーション(armadillo840_defconfig)を適用した後に、CS4270ドライバを有効に設定します。
atmark@atde5:~/linux-3.4-at9$ make ARCH=arm armadillo840_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
#
# configuration written to .config
#
atmark@atde5:~/linux-3.4-at9$ make ARCH=arm menuconfig
System Type --->
Armadillo-840 System Configuration --->
CON7 extension board (LCD) --->
(X) Custom
-*- use FSIA as Slave
Audio Codec (AUDIO: WM8978 codec) --->
(X) AUDIO: CS4270 codec
最後に、ビルドを実行します。作成されるLinuxカーネルイメージは、本Howtoよりダウンロードして入手することもできます。
atmark@atde5:~/linux-3.4-at9$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KALLSYMS_EXTRA_PASS=1 && gzip -c arch/arm/boot/Image > linux-a840-cs4270-support.bin.gz
:(ビルドには数分かかります)
Linuxカーネルイメージの更新
作成したLinuxカーネルイメージを、Armadillo-840のフラッシュメモリに書き込みます。 Armadillo のオンボードフラッシュメモリを書き換える手順につきましては、 Armadillo-840 製品マニュアル「12. フラッシュメモリの書き換え方法」をご確認ください。
動作確認
CS4270の動作確認を行います。 CS4270ボードが接続されたArmadillo-840液晶モデルを起動します。 CS4270が認識されると、Linuxカーネルのブートメッセージに以下のメッセージが表示されます。
cs4270 0-004a: found device at i2c address 4A
cs4270 0-004a: hardware revision 3
ALSA device list:
#0: FSI2B-HDMI
#1: FSI2A-CS4270
Armadilloにログイン後、以下のコマンドを参考に動作確認を行ってください。
再生音量の調節
音量は0~100%の数値で設定することができます。 以下のコマンド例では、70%の音量設定となります。
[root@armadillo840-0 (ttySC2) ~]# amixer -c 1 set Master on 70%
Simple mixer control 'Master',0
Capabilities: pvolume pswitch cswitch
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: Playback 0 - 255
Front Left: Playback 179 [70%] [on] Capture [on]
Front Right: Playback 179 [70%] [on] Capture [on]
WAVファイルの再生
以下のコマンド例では、48kHz16bitステレオのWAVファイル(test.wav)を再生しています。
[root@armadillo840-0 (ttySC2) ~]# aplay -Dplug:hw:1 -M -twav /home/ftp/pub/test.wav
Playing WAVE '/home/ftp/pub/test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
音声の録音 (ステレオの場合)
以下のコマンド例では、48kHz16bitステレオで録音します。 録音を終了する場合は、コンソール上でCTRL+Cキーを入力してください。
[root@armadillo840-0 (ttySC2) ~]# arecord -Dplug:hw:1 -M -twav -fS16_LE -c2 -r48000 /home/ftp/pub/sample.wav
Recording WAVE '/home/ftp/pub/sample.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
音声の録音 (モノラルの場合)
以下のコマンド例では、48kHz16bitモノラルで録音します。 録音を終了する場合は、コンソール上でCTRL+Cキーを入力してください。
[root@armadillo840-0 (ttySC2) ~]# arecord -Dplug:hw:1 -M -twav -fS16_LE -c1 -r48000 /home/ftp/pub/sample.wav
Recording WAVE '/home/ftp/pub/sample.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono