WINCE6.0+I.MX515挂起后硬复位系统没有声音问题

WINCE6.0+I.MX515挂起后硬复位系统没有声音问题

 

设备挂起后,硬复位启动,系统没有声音。经过硬件工程师确认,是挂起后给音频模块SGTL5000的VDDD和VDDA供电断开了,硬复位启动过程这两个引脚还是低电平。下面来看这个两个引脚的供电

WINCE6.0+I.MX515挂起后硬复位系统没有声音问题_第1张图片

图1

1V2_DIG2和1V65分别是PMIC(MC13892)的VGEN1和VDIG供电的。

WINCE6.0+I.MX515挂起后硬复位系统没有声音问题_第2张图片

图2

音频芯片VDDD的电压范围是1.1~2.0V,VDDA的电压范围是1.62~3.6V。

 

经确认,eboot里面的PMIC初始化代码并没有做相关的设置,下面就根据PMIC的相关部分写代码,但先来看数据PMIC的相关说明。

1.     VGEN1部分

Output of general purpose 1 regulator.

WINCE6.0+I.MX515挂起后硬复位系统没有声音问题_第3张图片

图3

因为音频芯片VDDD的电压范围是1.1~2.0V,硬件设置的时候标识为1V2_DIG2,所以我们这里选择输出1.20V。这个对应下面的寄存器控制。

 

图4

 

寄存器30的VGEN10和VGEN11需要设置,对应的代码

//     VGEN = 1V2_DIG2 = 1.2 (power audio)
if(!OALPmicWriteMasked(MC13892_REG_SET0_ADDR,
                           CSP_BITFMASK(MC13892_REG_SET0_VGEN1),
                           CSP_BITFVAL(MC13892_REG_SET0_VGEN1, 0)))
    {
       OALMSG(OAL_ERROR, (_T("OALPmicInit: Unable to configure VGEN1\r\n")));
       goto cleanUp;       
    }

 WINCE6.0+I.MX515挂起后硬复位系统没有声音问题_第4张图片

图5

 

寄存器32的VGEN1EN位需要使能,对应代码如下:

//VGEN1 enable
        if (!OALPmicWriteMasked(MC13892_REG_MOD0_ADDR,
                           CSP_BITFMASK(MC13892_REG_MODE0_VGEN1EN),
                            CSP_BITFVAL(MC13892_REG_MODE0_VGEN1EN,ENABLE)))
    {
       OALMSG(OAL_ERROR, (_T("OALPmicInit: Unable to enableVGEN1\r\n")));
       goto cleanUp;       
    }

2.     VDIG

Output regulator Digital. Low voltagedigital (DPLL, GPS).

WINCE6.0+I.MX515挂起后硬复位系统没有声音问题_第5张图片

图6

音频VDDA的电压范围是1.62~3.6V,音频驱动中选择的是1.8V,为保持一致,这里也选择1.8V。

 WINCE6.0+I.MX515挂起后硬复位系统没有声音问题_第6张图片

图7

寄存器30的VDIG0和VDIG1需要设置,对应代码如下。

//VDIG setting
        if (!OALPmicWriteMasked(MC13892_REG_SET0_ADDR,
                            CSP_BITFMASK(MC13892_REG_SET0_VDIG),
                           CSP_BITFVAL(MC13892_REG_SET0_VDIG, 3)))///1.8V
                           //CSP_BITFVAL(MC13892_REG_SET0_VDIG, 2)))///1.65v
                           //CSP_BITFVAL(MC13892_REG_SET0_VDIG, 0)))///1.05V
    {
       OALMSG(OAL_ERROR, (_T("OALPmicInit: Unable to configureVDIG\r\n")));
       goto cleanUp;       
    }

 WINCE6.0+I.MX515挂起后硬复位系统没有声音问题_第7张图片

图8

寄存器32的VDIGEN需要使能,对应的代码如下:

//VDIG enable
         if (!OALPmicWriteMasked(MC13892_REG_MOD0_ADDR,
                           CSP_BITFMASK(MC13892_REG_MODE0_VDIGEN),
                           CSP_BITFVAL(MC13892_REG_MODE0_VDIGEN, ENABLE)))
    {
       OALMSG(OAL_ERROR, (_T("OALPmicInit: Unable to enableVDIGEN\r\n")));
       goto cleanUp;       
    }

到此问题解决。

 

你可能感兴趣的:(WINCE6.0+I.MX515挂起后硬复位系统没有声音问题)