前言
某客戶在使用 STM32U599 開(kāi)發(fā)一款智能手表時(shí),需要使用 USB_OTG_HS 實(shí)現(xiàn) USBStorage 功能。建議客戶參考“STM32U575I-EVApplicationsUSBXUx_Device_MSC”例程來(lái)實(shí)現(xiàn)。但是,客戶抱怨參考 U575 的例程也無(wú)法調(diào)試通過(guò),程序在 USB_CoreInit()無(wú)法初始化成功。在支持解決了客戶初始化失敗的問(wèn)題后,客戶反饋仍然無(wú)法調(diào)通 Azure USBx 的MSC storage 程序。
本文主要介紹使用 STM32U599 USB_HS 開(kāi)發(fā) USBx 應(yīng)用時(shí)的幾個(gè)問(wèn)題點(diǎn),詳細(xì)配置和移植過(guò)程,讀者可自行參考本文附件中的工程源碼。
問(wèn)題調(diào)研與驗(yàn)證
問(wèn)題分析與解決辦法
USB 初始化失敗的問(wèn)題既然能夠穩(wěn)定復(fù)現(xiàn),那么問(wèn)題應(yīng)該比較好找,經(jīng)過(guò)查看 DS13633 和RM0456 對(duì)于 STM32U599 的 USB_OTG_HS 外設(shè)有如下相關(guān)描述。
小結(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 HSClock Mux 選擇 HSE(16MHZ)作為時(shí)鐘。