WINCE6.0+I.MX515掛起後硬複位系統沒有聲音問題,wince6.0i.mx515

來源:互聯網
上載者:User

WINCE6.0+I.MX515掛起後硬複位系統沒有聲音問題,wince6.0i.mx515

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

到此問題解決。

 

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.