警告メッセージ

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

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

対象製品: Armadillo-840

本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
R27 22Ω
R29 22Ω
R31
R32 22Ω
R36
R38

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