完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
总体控制的概念主要描述音频的相关代码、结构。
1.2 概念 CPU DAI:主端的音频数据接口,S,Spdif,Pdm,Tdm CODEC DAI:即Codec 2_LINK:绑定定为一个声卡DAI 和Codec_Dmai等Dmai:Dmai等 机器驱动程序。ACK :监控耳机的检测监控部分,监控使用的监控监控部分,用于监控监控的监控功能,用于监控设备的监控功能。 Sound soc:主要包含部分代码, dapm 控制,jack,dmaengine,core等; sound/soc/ rockchip平台:包括Rockchip平台的cpu dai的驱动,比如I2S,spdif等以及自定义声卡机驱动;sound/soc/rock 通用平台:simple card framework ;sound/soc/generic code 驱动:所有的codec driver/rockchip 存放位置;sound/soccodecs 2开发指南 音频开发指南 的一个声卡包含cpu_dai、codec_dai、以及dai_link组成,分别是cpu dai的驱动程序,比如I2S驱动、spdif驱动;codec驱动,比如rt5640编解码驱动;dai_link驱动,也就是机器驱动,比如sound/soc/rockchip /rockchip_rt560.c。 4.4 的内核中支持方式创建声卡,是一种通用的简易卡创建框架,是传统的自定义机器驱动。本文档均以rt564040.c。 2.2. 1 simple-card 简单卡驱动,如果simple-card 早点满足需求,优先使用simple-card 框架,简单,方便,通用的推荐c。 1. 添加code driver,比如添加:sound/soc/ codec/rt5640.c 2. 修改sound/soc/codec/Kconfig以及Makefile加入驱动编译 sound/soc/codec/Kconfig: config SND_SOC_RT5640 tristate "Realtek ALC5640 CODEC" 取决于I2C sound/soc/codec/Makefile: snd-soc -rt5640-objs := rt5640.o obj-$(CONFIG_SND_SOC_RT5640) += snd-soc-rt5640.o 3. menuconfig中enable simple card,codec make menuconfig Device Drivers ---> Sound card support ---> Advanced Linux Sound Architecture ---> ALSA for SoC audio support ---> ASoC support for Rockchip Rockchip I2S Device Driver CODEC drivers ---> Realtek ALC5640 CODEC ASoC Simple sound card support 4. 产品的DTS中添加Simple Card Node rt5640-sound { compatible = "simple-audio-card"; 简单的声卡,格式=“i2s”; simple-audio-card,name = "rockchip,rt5640-codec"; 简单声卡,mclk-fs = <256>; simple-audio-card,widgets = "麦克风", "麦克风插孔", "耳机", "耳机插孔"; simple-audio-card,routing = "Mic Jack", "MICBIAS1", "IN1P", "Mic Jack", "Headphone Jack", "HPOL", "Headphone Jack", "HPOR"; 简单的声卡,cpu { sound-dai = <&i2s_8ch>; }; 简单的声卡,编解码器 { sound-dai = <&rt5640>; }; }; &i2c1 { 状态 = "好的"; rt5640: rt5640@1c { #sound-dai-cells = <0>; 兼容 = "realtek,rt5640"; 注册 = <0x1c>; 时钟 = <&cru SCLK_I2S_8CH_OUT>; 时钟名称=“mclk”; realtek,in1-差分; }; }; 当这个简单的卡片不适合这种特殊需要的时候,需要的时候,合适的时候编写对应的,比如:声音/机器驱动程序,然后添加机器驱动程序的特殊性,程序等等。 3.2.2.2.2.2.可作为 调试调试 1.。通过如下命令确认声卡是否注册成功 root@rk3366:/ # cat /proc/asound/cards 0 [rockchiprt5640c]: rockchip_rt5640 - rockchip,rt5640-codec rockchip,rt5640-codec root@rk3366:/ # ls -l /dev/ snd/ crw-rw---- 系统音频 116, 2 2013-01-18 08:51 controlC0 crw-rw---- 系统音频 116, 4 2013-01-18 08:51 pcmC0D0c crw-rw--- - 116, 3 2013-01-18 08:51 系统 pcmC0p 2. 波端再使用 D 播放录音 0 调试弦卡:然后播放播放录音 0 调试弦卡: 然后播放 11kh db 正则失真,杂音通常,,如果root@ rk3366 :/#tinyplay Usage: tinyplay file.wav [-D 卡] [-d 设备] [-p period_size] [-n n_periods] |root@rk3366:/ # tinyplay /sdcard/test44.wav -D 0 -d 0 -p 1024 -n 3 播放样本:2 ch, 44100 hz, 32 bit : root@rk3366:/ # tinycap Usage tinycap file.wav [-D card] [-d device] [-c channels] [-r rate] [-b bits] [-p periodsize] [-n n_periods] ||tinycap /sdcard/sdcard/c.wav -D 0 -c 2 -r 44100 -b 16 -p 1024 -0 -n@root@ 通过电话调试声卡的提供: 可提供各种类似复杂的代码,如下所示:是部分数字控制图和类似控制图,显示出显示有显示控制的位,编解码器驱动程序,给上层设置通过监控显示使用,实际的调试为从数字部分的点赞开始,DAT 模拟输出端,例如 DAC 的最佳路径HPOUT。 rk . tinymix 破解 3666 root@336 混合器名称: 'rockchip,rt5640-codec' 控件数量 ctl type num name value 0 BOOL 1 Mono Playback Switch Off 1 INT 2 Mono DAC Playback Volume 175 175 2 BOOL 2 Speaker Channel Switch Off 3 INT 2 Speaker Playback Volume 31 31 4 BOOL 2 HP Channel Switch Off Off 名称来控制,例子,不带val设置时,为查询该mix的当前状态 root@rk3366:/#tinymix 0 1 root@rk3366:/#tinymix 0 单声道播放开关:在 root@rk3366:/#tinymix" Mono Playback Switch 1 根场景下366:/ #tinymix“Mon@rk Playback Switch” 单声道播放开关:然后是播放器” 。然后,需要把功能配置配置到hal的声卡以及部署后5个不同的部署层的播放确定。 ,配置的值配置即为成功配置后的配置列表的,把值分别加入到其中,例如: alsa_hal/hardwarehchip/audio40_hal/hardwarehchip/audio5 #ifndef _RT5640_CONFIG_H_ #define _RT5640_CONFIG_H_ #include "config.h" const struct config_control rt5640_speaker_normal_controls[] = { { .ctl_name = "DAI select", .str_val = "1:2|2:1", }, { .ctl_name = "单声道 DAC 播放音量", .int_val = {175, 175}, }, { .ctl_name = "DAC2 播放开关", .int_val = {on, on}, }, hardware/rockchip/audio/tinyalsa_hal/codec_config/config_list。 h struct alsa_sound_card_config sound_card_config_list[] = { …… { .sound_card_name = "rockchiprt5640c", .route_table = &rt5640_config_table, }, …… 通过步骤即完成基本的声卡创建,调试代码,以上使用的tinyplay, tinycap, tinymix位于android/external/tinyalsa中,如果系统中没有该命令,可进到该目录执行mm生成相应的命令。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1906 浏览 1 评论
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
2382 浏览 1 评论
RK3588 GStreamer调试四路鱼眼摄像头四宫格显示报错
5175 浏览 1 评论
【飞凌嵌入式OK3576-C开发板体验】RKNN神经网络-YOLO图像识别
254 浏览 0 评论
【飞凌嵌入式OK3576-C开发板体验】SSH远程登录网络配置及CAN通讯
1336 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 05:10 , Processed in 0.606838 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号