基于RK3576开发板的扬声器和耳机使用说明

电子说

1.4w人已加入

描述

1. es8388声卡介绍

1.1  硬件接口

硬件接口位置如下所示。

rk3576

1.2  声卡选择

es8388声卡在EASY-EAI-Orin-Nano中配置成Card0,因此用aplay命令指定es8388是-c 0。

EASY-EAI-Orin-Nano与【音频输出】相关的声卡资源介绍可参考《外设接口使用说明/音频输出/声卡输出资源》。关于alsa命令(aplay,arecord,amixer)的使用可参考《alsa使用简介》。

2. es8388声卡控制

2.1  音频播放

音频播放采用aplay命令进行。

 

aplay -D plughw:0,0 test.wav ##声音从Card0输出

 

2.2  输出切换

es8388在驱动层面已经做好了耳机检测,一旦耳机接口检测到有【音频线插入】,音频会【自动】从耳机孔输出播放;一旦拔出音频信号线,音频会【自动】切换到从扬声器播放。

rk3576

手动控制输出情况命令如下:

开/关【扬声器】

 

amixer -c 0 cset name='Speaker Switch' 'ON' ##开 amixer -c 0 cset name='Speaker Switch' 'OFF' ##关

 

开/关【耳机接口】

 

amixer -c 0 cset name='Headphone Switch' 'ON' ##开 amixer -c 0 cset name='Headphone Switch' 'OFF' ##关

 

2.3  音量调节

Card0输出音量【值】的【范围】是从 0到192

 

amixer -c 0 cset name='PCM Volume' 0 ##设置Card0输出音量【值】为 0 amixer -c 0 cset name='PCM Volume' 170 ##设置Card0输出音量【值】为 170 amixer -c 0 cset name='PCM Volume' 192 ##设置Card0输出音量【值】为 192

 

注:此处的【值】是跟增益正相关的一个变量,但它既不是增益,也不是音量百分比。并且调整它,音量大小变化【不是线性】的。

3.声卡使用笔记

硬件层面使用的i2s/sai控制器,它们本身就是不支持单声道、混音等使用情况。但用户可以通过alsa-plug去做一些数据转换。具体操作方法就是修改~/.asoundrc文件。

3.1通道转换

由于i2s/sai控制器不支持单声道,如果用户要播放一些单声道的音频文件,会出现“2倍速播放”的现象。因此用户需要修改~/.asoundrc文件做通道转换,在文件的具体添加如下内容:

 

pcm.!default { type asym playback.pcm "playbackmono" capture.pcm "hw:0,0" } pcm.playbackmono { type route slave.pcm "hw:0,0" # 输出到声卡设备hw:0,0 slave.channels 2 ttable { #配置通道route, 0.0 0.5 0.1 0.5 1.0 0.5 1.1 0.5 } }

 

然后在播放音频文件时,把命令改成:

 

aplay -D default test_mono.wav

 

或者

 

aplay -D playbackmono test_mono.wav 审核编辑 黄宇

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分