Linux Alsa
文章平均质量分 51
这歌声无聊可是辉煌
这个作者很懒,什么都没留下…
展开
-
Asoc codec bringup总结
Asoc codec bringup总结原创 2022-07-27 13:48:56 · 611 阅读 · 0 评论 -
解决Alsa underrun爆音问题的一种措施
alsa underrun pop音问题原创 2022-07-22 15:50:35 · 1575 阅读 · 0 评论 -
数字音频接口之TDM
TDM相比I2S 可以传输多ch音频数据,分为2种模式:dsp_a 和dsp_b调试的时候,soc端和codec端协议要匹配,可以使用特殊文件来确认,如有效数据都是0xaa的wav文件,这样通过示波器抓取FS、BCLK和Data的波形就可以判断出当前是什么模式,实测dsp_b的波形图如下:黄色为6ch的数字data信号,每个ch的数据为0xaaaa绿色的信号为FS,宽度为1个BCLK周期,这种同步方式叫做短帧同步 Short Fram Sync两个FS 之间为一个frame,中间是一原创 2021-06-23 16:01:56 · 10283 阅读 · 0 评论 -
ALSA driver--pcm_read和pcm_write的阻塞问题
一张图先看下pcm_write的调用流程做的工作一是将数据送到dma 中,另外就是更新alsa的缓冲区指针在snd_pcm_lib_write1接口中看到这样一个函数wait_for_availwait_for_avail函数将会将当前写或读数据的任务通过add_wait_queue加入一个队列中,等待被唤醒,如果有没有收到唤醒,schedule_timeout将会挂起直到设置...原创 2020-03-26 15:36:44 · 9195 阅读 · 2 评论 -
多个codec使用同一份驱动
一般来说,消费电子产品比如智能电视和音箱只有立体声两个喇叭,硬件上只需要一个codec芯片即能满足要求,有时需要做多声道,这时候可能就用到多个codec芯片了,如果是不同的codec芯片,则分别编写对应的驱动即可,如果用的都是同一款芯片,那么就只需要一份驱动即可,方法也简单。在dts设备数里i2c的的模块添加板子对应的codec,当然i2c地址肯定也是不同的。比如添加3个ti的tas5805 ...原创 2019-11-05 19:35:21 · 1051 阅读 · 1 评论 -
Linux Kernel4.9新增的alsa kcontol宏SND_SOC_BYTES_EXT
kcontol为何?写过alsa codec驱动的人都很熟悉了。droidphone前辈的这篇文章也非常详细:https://blog.csdn.net/droidphone/article/details/12793293通俗一点讲,kcontol控件提供了很方便的在线调试手段,比如linux下使用amixer,android下使用timymix,也方便我们封装接口供上层使用,比较静...原创 2018-11-02 15:42:42 · 1045 阅读 · 0 评论 -
Linux asoc codec驱动调试小结
本篇记录下自己在调试codec驱动时的经验及注意事项,这里主要是放音playback调试需要什么:标准的linux codec驱动,如何编写驱动以后有时间再写一篇吧原理图,需要查看对应的引脚,I2S的clck和data脚以及是否有reset pin脚和pdn引脚等步骤:1.编写好驱动,更改相关目录makfile和kconfig确认驱动可以编译通过并能编译进内核之中。2.根据...原创 2018-11-16 19:19:31 · 2389 阅读 · 2 评论 -
修改ALSA支持的最大pcm device个数——一次usb声卡不识别问题
在android或linux电子设备设备中,通常都有一个主声卡,通过cat/proc/asound/cards可以查看当前设备的声卡情况以我的平台为例:可以看到我的平台只有一个主声卡命令cat /proc/asound/pcm 可以看到声卡下面所有的pcm devices,显示了平台所有的playback和capture能力而当有外置声卡如插上一个usb声卡的时候,就能多...原创 2019-09-19 17:33:07 · 1417 阅读 · 0 评论