12
返回列表 发新帖
楼主: jack199

[已解决] SGTL5000爆音問題(已解决)

[复制链接]

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-6-13 13:21:34 | 显示全部楼层

回复:SGTL5000爆音問題

回复第 10 楼 于2014-06-13 13:15:25发表:
 
 
問題已解決
 
想不到我就是那個大神
 

楼主如果自己解决了问题,不妨分享下你的解决方法,这样也好帮助后来人。
回复 支持 反对

使用道具 举报

该用户从未签到

45

主题

2369

帖子

0

金牌会员

Rank: 6Rank: 6

积分
3275
最后登录
1970-1-1
发表于 2014-6-13 13:55:40 | 显示全部楼层

回复:SGTL5000爆音問題(已解决)

回复第 10 楼 于2014-06-13 13:15:25发表:
 
 
問題已解決
 
想不到我就是那個大神
 

楼主给力啊,请问是哪里的原因呢?可以把解决办法分享给大家哈~~
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

36

帖子

0

注册会员

Rank: 2

积分
83
最后登录
1970-1-1
 楼主| 发表于 2014-6-13 16:15:35 | 显示全部楼层

回复:SGTL5000爆音問題(已解决)

 應該說不算解決, 算是用改驅動的方法避掉這個問題
硬體有個PIN拉到喇叭, 此PIN為SABRESD_CODEC_PWN_EN => IMX_GPIO_NR(4, 10)
此PIN已被設為GPIO
然後爆音產生的點在sgtl5000.c的small_pop_event的SND_SOC_DAPM_PRE_PMD這個case
 
HIGH應該是1(true), LOW為0(false)
1. 所以在產生的爆音點上關閉喇叭(將此PIN拉HIGH), 需要mdelay(500), 不然爆音仍是會發生
case SND_SOC_DAPM_PRE_PMD:       
                gpio_set_value(SABRESD_CODEC_PWN_EN, true);
                mdelay(500);               
                break;
 
2.在某個點關閉喇叭, 一定要在播放聲音時開啟喇叭(將此PIN拉LOW)
static int sgtl5000_pcm_hw_params(struct snd_pcm_substream *substream,
                                  struct snd_pcm_hw_params *params,
                                  struct snd_soc_dai *dai)
{
        gpio_set_value(SABRESD_CODEC_PWN_EN, false);
        struct snd_soc_pcm_runtime *rtd = substream->private_data
 
3.打完收工
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-19 20:40 , Processed in 0.087590 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表