I2S
Rhino Pi IQ9N 提供 1 路 I2S 数字音频接口,连接器型号为 WAFER-GH1.25-4PLB。
接口定义
I2S 接口在板卡上的位置参见首页 Rhino Pi IQ9N 接口说明 中的接口位置示意图。
| 引脚 | 信号 | 说明 |
|---|---|---|
| 1 | DATA | 音频数据 |
| 2 | SCK | 位时钟 |
| 3 | WS | 声道选择(帧同步) |
| 4 | GND | 地 |
该接口输出的是 I2S 数字音频信号,需外接带 I2S 输入的 DAC 或编解码芯片才能驱动扬声器。
音频系统概览
| 项目 | 说明 |
|---|---|
| 板载音频 | 2 × 5W Speaker,通过 SPK 接口输出 |
| 阵列麦克风 | 4Mic Array 全向麦克风 |
| AEC | 支持回声消除,需配合 USB2.0 内部音频接口使用 |
扬声器与麦克风的接线说明参见 音频测试。
查看声卡与设备
bash
aplay -l
arecord -l播放音频
使用 aplay 播放 WAV 文件:
bash
aplay -D hw:0,0 test.wav指定声卡与设备:
bash
aplay -D plughw:<card>,<device> test.wav录制音频
bash
arecord -D hw:0,0 -f S16_LE -r 48000 -c 2 -d 5 rec.wav参数说明:
| 参数 | 说明 |
|---|---|
-f S16_LE | 16 位小端采样格式 |
-r 48000 | 采样率 48 kHz |
-c 2 | 双声道 |
-d 5 | 录制时长 5 秒 |
配置默认声卡
查看可用声卡列表:
bash
cat /proc/asound/cards设置默认声卡,可编辑 /etc/asound.conf:
text
defaults.pcm.card 0
defaults.ctl.card 0示例:读取 I2S 麦克风数据(Python)
python
import wave
import pyaudio
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 48000
CHUNK = 1024
SECONDS = 5
p = pyaudio.PyAudio()
stream = p.open(
format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK,
)
frames = []
for _ in range(int(RATE / CHUNK * SECONDS)):
frames.append(stream.read(CHUNK))
stream.stop_stream()
stream.close()
p.terminate()
with wave.open("rec.wav", "wb") as wf:
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b"".join(frames))依赖安装:
bash
sudo apt install -y python3-pyaudio注意事项
- 接口为 3.3V 电平,外接器件需支持 3.3V I2S 时序。
- 外接 I2S 器件时需确认器件是从模式还是主模式,避免时钟方向冲突。
- 采样率、位宽等参数需与从设备能力一致,否则会出现噪声或无声。
- 接线与接口位置说明参见 调试与扩展接口。