CAT760用音声コーデック基板

CAT760用音声コーデック基板 PCB10101 の使い方です。

接続

PCB10101_pic1.jpg

  • MB760 CN2 と PCB10101 CN1 を接続します。

電源は CAT760 側から供給されるため配線不要です。

DIPSW1ポートF0につながっています。アプリケーションから読めます
DIPSW2ポートF1につながっています。アプリケーションから読めます
DIPSW3ポートF2につながっています。アプリケーションから読めます
DIPSW4録音ゲイン。OFF=0db, ON=+6db
  • CN3
    入力端子です。外部から音声を入力します。
  • CN4
    出力端子です。イヤフォンやアンプ付スピーカーを接続します。

ドライバ

シリアルサウンドインターフェースドライバをロードします

# modprobe ssi
ssi: hello. Version 0.8
ssi: major 251.  minor 0=play, 1=rec
ssi: dma buffer=0xafac0000, order=6, buffer_size=0x40000(256 Kbytes)
メジャー番号マイナー番号ファイル名適用
2510/dev/ssi_play再生ドライバ
2511/dev/ssi_rec録音ドライバ

録音

# cat /dev/ssi_rec > data.bin

とすることで録音することができます。停止は CTRL+C です。
データは 48KHzサンプリング・16bit・Stereo ですので、 48K*2*2 = 1秒あたり192Kバイトになります。データファイルの置き場は十分なスペースを用意してください。

コンパクトフラッシュをマウントし、そこに録音する場合の例

# mount /dev/hda1 /mnt
# cat /dev/ssi_rec > /mnt/data.bin

ファイル形式

リトルエンディアン符号あり16bit のデータが 左・右 チャンネルの順に置かれます。
無音時には0が連続し、最大振幅時に +32767 〜 -32768 のデータとなります。

struct pcm16stereo{
        int16_t left;
        int16_t right;
}__attribute__((packed));
アドレス+0+1+2+3
0000左下位バイト左上位バイト右下位バイト右上位バイト
0004左下位バイト左上位バイト右下位バイト右上位バイト
0008左下位バイト左上位バイト右下位バイト右上位バイト
000C左下位バイト左上位バイト右下位バイト右上位バイト
以下同じ

再生

録音したデータを再生する

録音したデータをそのまま再生できます。

コンパクトフラッシュ内のデータを再生する例

# mount /dev/hda1 /mnt
# cat /mnt/data.bin > /dev/ssi_play

CD音源から吸い出したデータや、 .WAV 形式のファイルを再生する

CD音源から吸い出したデータは 44.1KHz となっています。PCB10101のリビジョン無し版はサンプリング速度が 48KHz となっていますのでこのままでは再生できますがキーがあいません。

サンプリングレートの変換には yamahaさんが出している twe というフリーソフトを使いました。www.yamaha.co.jp のトップページから twe と検索すると出てきます。事前にサンプリングレートを変更しておいてください。

.wav ファイルにはヘッダー部がありますので、そのまま

# cp data.wav > /dev/ssi_play

を実行すると冒頭にゴミ音がします。wavデータからヘッダー部を取り除くプログラムを作りました。

filemain.c

コンパイル方法

$ sh4-linux-gcc -O2 main.c -o wav2raw

使い方

$ wav2raw [入力ファイル] [出力ファイル]
 
使用例
$ wav2raw /mnt/data.wav /mnt/out.bin

使用例2  出力ファイルを省略すると /dev/ssi_play とします
$ wav2raw /mnt/data.wav

関連