您的位置:首页 > 其它

fm单体声和立体声的切换

2016-05-27 17:41 288 查看

fm单体声和立体声的切换

[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

是合理的并且是符合设计预期的,请知悉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  fm MTK 立体声