完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
问题:3399是配ACL5651,系统声音和录音都正常的,现在是要调4G模块通话和蓝牙语音
3288是配5640, 【1】把以下2个APK编译出来 Dialer Messaging 4G模块通话问题: 在RK3399 7.1平台我们把系统里面的Dialer、Messaging及google服务都编译出来了进行了测试; Dialer拨号之后就退到了联系人收藏界面; Messaging发送短信也提示"短信功能已暂停"; 【2】下面的属性设置了没? 1、device/rockchip/common/overlay/frameworks/base/core/res/res/values/config.xml:23: 2、device/rockchip/common/overlay/frameworks/base/core/res/res/values/config.xml:167: 【3】RK原厂提供的补丁打上去两端都没有声音; (1) 通过adb 打印寄存器:cat d/regmap/1-001a/registers 查看 将打印信息发给codec原厂工程师分析; (2) 拨通电话后,通过 adb shell logcat -s alsa_route 查看耳机是通过route 1传输声音的,但在const struct config_control rt5651_speaker_normal_controls[] 并没有添加这个通道: { //add by begin .ctl_name = "DAC MIXL INF1 Switch", .int_val = {on}, }, { .ctl_name = "DAC MIXR INF1 Switch", .int_val = {on}, },//add by end 编译相关库之后,烧录后发现对方可以听到RK3399主板发出的声音,但接听方说话,主拨方无法听到声音; 【4】 把相关log打印出来,CODEC原厂工程师分析是4G 通话不是标配功能,所以寄存器没有配置;然后修改了一下驱动,配置寄存器: 在kernelsoundsoccodecsrt5651.c文件中rt5651_bst3_event函数中添加: @@ -966,14 +930,21 @@ static int rt5651_bst3_event(struct snd_soc_dapm_widget *w, struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); switch (event) { + case SND_SOC_DAPM_POST_PMU: + printk("-------libing----4G acl5651 audio inn"); + snd_soc_update_bits(codec, RT5651_D_MISC, + RT5651_CLK_DET_EN, RT5651_CLK_DET_EN); snd_soc_update_bits(codec, RT5651_PWR_ANLG2, RT5651_PWR_BST3_OP2, RT5651_PWR_BST3_OP2); break; case SND_SOC_DAPM_PRE_PMD: + printk("-------libing----4G acl5651 audio outn"); snd_soc_update_bits(codec, RT5651_PWR_ANLG2, RT5651_PWR_BST3_OP2, 0); + snd_soc_update_bits(codec, RT5651_D_MISC, + RT5651_CLK_DET_EN, 0); break; 编译烧录测试,双方接听都正常了! 【5】测试发现,短信应用没有显示出来: 需要到/packages/apps/Messaging 目录下面 mm -B ;如果之前已经./mkimage.sh ota 进行打包的话,需要先./mkimage.sh一下,然后再./mkimage.sh ota 这样的话,Messaging就会显示出来 【6】蓝牙电话 下行: 蓝牙模块 通过codec的 I2S2--LOUT 送到 4G模块 然后4G发射出去, 上行:4G模块古来的数据 通过codec MIC----I2S2 ---蓝牙模块 【7】 新板子可实现功能,播电话时可测得信号,但有杂音 1、MCLK频率是12.28Mhz 2、PCM_CLK的时钟为512K; 3、PCM_SYNC 为8K; 【8】正常调试打印: (1) 通过adb 打印寄存器:cat d/regmap/1-001a/registers 查看 将打印信息发给codec原厂工程师分析; (2) 拨通电话后,通过 adb shell logcat -s alsa_route 查看耳机是通过哪个route 传输声音的 【9】杂音问题解析: (1)CPU出来的MCLK在播放本地音视频文件有12.28MHz,属于正常状态;但拔通4G电话后切换到了蓝牙模式,这时用示波器量MCLK是没有的,所以切换到蓝牙模式后MCLK被disabled了; (2)codec原厂工程师通过调试寄存器分析:杂音问题是因为默认使用了rt5651内部时钟导致的,原理上要使用CPU供出来的MCLK; (3)跟RK原厂沟通后,把拔通蓝牙电话CPU出来的MCLK配置为常有,这样就触决了杂音问题; (4)经过测试发现:从rt5651出来的声音对方听上去有回音,这个是rt5651芯片本身不带消音功能导致的,如果客户需要此功能要跟客户说明清楚; (5)还有一个问题(目前还需要跟RK对接):断电开机拔通蓝牙电话无法跑rt5651_bluetooth_incall_controls,需要多拔打2-3次就可以切换到rt5651_bluetooth_incall_controls; 【10】现在蓝牙4G通话调通了 但还有一个问题:每次断电开机拔通蓝牙电话无法跑rt5651_bluetooth_incall_controls,需要多拔打2-3次就可以切换到rt5651_bluetooth_incall_controls 解决: diff --git a/tinyalsa_hal/audio_hw.c b/tinyalsa_hal/audio_hw.c index a2d18ac..5957a76 100755 --- a/tinyalsa_hal/audio_hw.c +++ b/tinyalsa_hal/audio_hw.c @@ -298,8 +298,8 @@ static void start_call(struct audio_device *adev) goto err_call_in; } - pcm_start(adev->pcm_hfp_out); - pcm_start(adev->pcm_hfp_in); + pcm_start(adev->pcm_call_out); + pcm_start(adev->pcm_call_in); return; 【11】查看声卡:cat /proc/asound/cards 0 [realtekrt5651co]: realtekrt5651co - realtekrt5651codec_hdmiin realtekrt5651codec_hdmiin 1 [C920 ]: USB-Audio - HD Pro Webcam C920 HD Pro Webcam C920 at u***-fe3c0000.u***-1, high speed 2 [rkhdmidpsound ]: rk-hdmi-dp-soun - rk-hdmi-dp-sound rk-hdmi-dp-sound 原作者:Haidern |
|
相关推荐
1个回答
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
1106 浏览 0 评论
1278 浏览 1 评论
993 浏览 1 评论
2293 浏览 1 评论
3619 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 15:40 , Processed in 0.617641 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号