<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于Azure USBx 開發(fā)USB_OTG_HS MSC 應(yīng)用的幾個(gè)問題

          基于Azure USBx 開發(fā)USB_OTG_HS MSC 應(yīng)用的幾個(gè)問題

          作者: 時(shí)間:2023-11-13 來源:ST 收藏

          1. 前言

          本文引用地址:http://www.ex-cimer.com/article/202311/452790.htm

          某客戶在使用 開發(fā)一款智能手表時(shí),需要使用USB_OTG_HS 實(shí)現(xiàn)USBStorage 功能。建議客戶參考“STM32U575I-EVApplicationsUSBXUx_Device_MSC”例程來實(shí)現(xiàn)。但是,客戶抱怨參考U575 的例程也無法調(diào)試通過,程序在USB_CoreInit()無法初始化成功。在支持解決了客戶初始化失敗的問題后,客戶反饋仍然無法調(diào)通 的MSC storage 程序。

          本文主要介紹使用 開發(fā) 應(yīng)用時(shí)的幾個(gè)問題點(diǎn),詳細(xì)配置和移植過程,讀者可自行參考本文附件中的工程源碼。

          2. 問題調(diào)研與驗(yàn)證

          客戶在使用STM32CubeMX 生成 工程時(shí)采用的默認(rèn)RCC 時(shí)鐘樹配置如下:

          1699853918340650.png

          外設(shè)初始化失敗,筆者在J_DK 板上也得到了同樣的結(jié)果。

          1699853943855726.png

          3. 問題分析與解決辦法

          USB初始化失敗的問題既然能夠穩(wěn)定復(fù)現(xiàn),那么問題應(yīng)該比較好找,經(jīng)過查看DS13633 和RM0456對(duì)于STM32U599的USB_OTG_HS外設(shè)有如下相關(guān)描述。

          1699853969409017.png

          根據(jù)文檔描述,也就是說USB_OTG_HS這個(gè)IP Core工作于60MHZ,它是由OTG_HS_PHY Clock提供的,為了保證其精度必須使用外部晶振HSE,且OTG_HS_PHY的時(shí)鐘頻率僅支持16/19.2/20/24/26/32這幾個(gè)頻率大小。

          在STM32CubeMX里將USB_OTG_HS時(shí)鐘重新配置如下:

          1699853996130403.png

          重新生成代碼,下載測(cè)試可以看到USB_OTG_HS已經(jīng)能夠成功初始化了。

          1699854018963766.png

          1699854044156358.png

          到這一步看起來似乎問題應(yīng)該解決了。然后,事實(shí)并非如此,下載程序插上USB后,Windows仍然沒有出現(xiàn)任何提示。其實(shí),STM32CubeMX生成 USBx 應(yīng)用時(shí),只生成了相應(yīng)的用戶層級(jí)框架,并不是直接就可以工作的,application層的部分接口還需要用戶去完成的。

          但是,在STM32Cube_FW_U5_V1.2.0及以上的版本中,ST提供了幾乎覆蓋了所有常見USBx各種USB類的例程,它們分布在不同型號(hào)的ST開發(fā)版上的,這些例程是可以相互交叉參考的??蛻鬠SB_OTG_HS MSC storage參考的例程是STM32U575I-EVApplicationsUSBXUx_Device_MSC。

          查看STM32U599J_DK板原理圖,使用STM32CubeMX配置后發(fā)現(xiàn),ST所有開發(fā)板的USB_OTG_FS/HS接口都是使能了TypeC-PD功能的,而客戶板子上是沒有使能TypeC-PD,直接按照USB_OTG_HS Device Only模式接的。

          1699854072997568.png

          通過單步調(diào)試和代碼跟蹤,最終發(fā)現(xiàn)USBx里面使用了TypeC CC引腳來檢測(cè)Device是否插入,當(dāng)檢測(cè)到有Device插入或拔出時(shí),發(fā)出設(shè)備狀態(tài)信息USB_Device_State_Msg的消息隊(duì)列,通知USBx Device線程入口函數(shù)app_ux_device_thread_entry(),并做相應(yīng)的USB啟動(dòng)和停止??蛻舻陌遄雍蚐TM32CubeMx里面并沒有使能USB Type C-PD自然無法成功啟動(dòng)USB服務(wù)。

          如下圖所示。

          1699854100818520.png

          既然問題是由于USB TypeC-PD引起,找到原因就不能解決那么問題了。只需要在USB_OTG_HS外設(shè)初始化后,直接啟動(dòng)USB服務(wù),代碼修改如下。

          1699854131577574.png

          經(jīng)測(cè)試,經(jīng)修改后程序工作正常。

          4. 小結(jié)

          筆者后期在STM32U599J_DK板上進(jìn)行測(cè)試,發(fā)現(xiàn)STM32U599的USB_OTG_HS外設(shè)時(shí)鐘(OTG HS Clock Mux),對(duì)于頻率及時(shí)鐘源具有較強(qiáng)的選擇性,強(qiáng)烈建議OTG HS Clock Mux選擇HSE(16MHZ)作為時(shí)鐘。

          參考文獻(xiàn)

          1699854163761489.png

          文檔中所用到的工具及版本

          STM32CubeMX 6.8.0/IAR 9.32

          LAT中的附件

          STM32U599_DK_Threadx_USBx_Demo.zip

          版本歷史

          1699854187846491.png




          關(guān)鍵詞: USBx Azure USB_HS MSC Device STM32U599

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();