码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2015-09-13 07:09:58      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

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

 

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

技术分享

图1

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

技术分享

图2

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

 

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

1.     VGEN1部分

Output of general purpose 1 regulator.

技术分享

图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;       
    }

 技术分享

图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).

技术分享

图6

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

 技术分享

图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;       
    }

 技术分享

图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挂起后硬复位系统没有声音问题

标签:

原文地址:http://blog.csdn.net/loongembedded/article/details/48395965

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!