微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > fm单体声和立体声的切换

fm单体声和立体声的切换

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
fm单体声和立体声的切换。
[SOLUTION]
目前的设计中是支持单体声和立体声自动切换的。切换是需要在一定的条件下满足才会进行切换
,切换的条件和电台的信号强度RSSI、信号稳定性CQI等等都有关系。
目前在上层留有两个接口,分别为stereoMono和setStereoMono。
StereoMono
查询当前电台是以立体声,还是单体声播放。
setStereoMono
设置当前电台是以立体声,还是单体声播放。
需要注意的一点:
1. 当设置为单体声时,一定会切换到单体声,而且一直保持单体声,不会随着电台环境改变而改
变,除非上层重新设置为立体声播放。
2. 当设置为立体声时,电台会根据当前电台的环境,自动确定到底是切换到那种电台,即是和环
境相关的。
======= [1] 调整Stereo/mono switch threshold的缘由 =======
FM 会根据信号的强弱及信号品质(用CQI 中的RSSI & PAMD 来表征)啟動
blend 功能, 自動调整audio 输出方式 (强信号下,以stereo 数据audio;弱信號下
,
以mono方式数据audio,从而得到較好的聽感)。
目前,FM mono/stereo switch threshold 设置为-69dBm,即当RSSI大于
-69dBm时,输出为stereo;当RSSI小于-69dBm时,输出为mono。
如果希望在弱信号依然可以输出stereo,则可以调整Stereo/mono switch
threshold。
======= [2] Stereo/mono switch threshold的调整方式 =======
以下设置需要在tune channel后执行:
1. MT6628调整方法:
调整RSSI threshold
变量名:BlendCtrlRSSI_TH
Address: 0x314F in coefficient memory.
TH最大值: 1024
TH最小值: 0
TH默认值 : 356
转换公式:threshold = -((RSSI(dBuV)-107)*4*16/6 + 384)
Disable PAMD对blend的影响
变量名:BlendCtrlPamd_TH
Address: 0x3150 in coefficient memory.
设置值: 0
变量名:BlendCtrlPamd_Step
Address: 0x3152 in coefficient memory.
设置值: 0
mediatek/kernel/drivers/fmradio/mt6628/pub/mt6628_fm_lib.c文件
mt6628_SetFreq里最末return fm_true;之前添加代码:
Delayms(1);
mt6628_write(0xE2, 0x314F);
mt6628_write(0xE3, 0x020A); //rssi_th
mt6628_write(0xE1, 0x0002);
//例如修改取((RSSI(dBuV)-107) = -85dbm, threshold = 522 = 0x020A。
Delayms(1);
mt6628_write(0xE2, 0x3152);
mt6628_write(0xE3, 0); //pamd_step
mt6628_write(0xE1, 0x0002);
Delayms(1);
mt6628_write(0xE2, 0x3150);
mt6628_write(0xE3, 0); //pamd_th
mt6628_write(0xE1, 0x0002);
2. MT6627调整方法:
调整RSSI threshold
变量名:BlendCtrlRSSI_TH
Address: 0x3154 in coefficient memory.
TH最大值: 1024
TH最小值: 0
TH默认值 : 356
转换公式:threshold = -((RSSI(dBuV)-107)*4*16/6 + 384)
Disable PAMD对blend的影响
变量名:BlendCtrlPamd_TH
Address: 0x3155 in coefficient memory.
设置值: 0
变量名:BlendCtrlPamd_Step
Address: 0x3157 in coefficient memory.
设置值: 0
mediatek/kernel/drivers/fmradio/mt6627/pub/mt6627_fm_lib.c文件
mt6627_SetFreq里最末return fm_true;之前添加代码:
Delayms(1);
mt6627_write(0xE2, 0x3154);
mt6627_write(0xE3, 0x020A); //rssi_th
mt6627_write(0xE1, 0x0002);
//例如修改取((RSSI(dBuV)-107) = -85dbm, threshold = 522 = 0x020A。
Delayms(1);
mt6627_write(0xE2, 0x3157);
mt6627_write(0xE3, 0); //pamd_step
mt6627_write(0xE1, 0x0002);
Delayms(1);
mt6627_write(0xE2, 0x3155);
mt6627_write(0xE3, 0); //pamd_th
mt6627_write(0xE1, 0x0002);
======= [3] Stereo/mono switch threshold调整注意事项 =======
1.调整此参数前,请先进入公模确认target phone 会在RSSI为-69dBm左右时做
stereo/mono switch;
2.如果将此threshold 调整为更低时,即意味在信号质量较差的时候依然会以
stereo 方式输出,此时audio 输出品质将会有一定的degradation,此degradation
是合理的并且是符合设计预期的,请知悉。

谢谢分享

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top