2017-09-13 75 views
1

我正在構建基於STM32F303RET6的電路板。激活STM32F303上的DFU(USB編程)

Processor Datasheet,第17頁/ 3.5節,提到編程可以做到 「使用USART1(PA9/PA10),USART2(PA2/PA3)或USB(PA11/PA12)通過DFU(設備固件升級)」

我正在使用此處理器的NUCLEO板。

我已將USB的Vdd,Gnd,D +和D-引腳連接到NUCLEO板,並禁用了附加編程器板上的電源。

但是,無論何時使用BOOT0 HIGH重新啓動,USB永遠不會枚舉任何設備。 我將引腳直接連接到USB插頭,無需任何外部電阻。數據表似乎表明這些不是必需的。

爲了使事情有點棘手,該處理器具有額外的特性,沒有BOOT1引腳;它是一個軟件位。

我的問題是,處理器實際上是否使用內置的bootloader支持DFU? 如果是這樣,那麼應該如何啓動它並通過USB進行編程?

非常感謝, 佩德羅。

PS:ST實際上得到了關於在此處理器上支持USB編程的衝突信息。儘管數據表表示支持,但Application Note AN2606(第81頁)(第19節)僅提到支持通過USART1,USART2和I2C進行編程。它參考了USART,但尚不清楚它們如何使用。

回答

1

我已將USB的Vdd,Gnd,D +和D-引腳連接到NUCLEO板 ,並禁用了附加編程器板上的電源。

檢查Vdd上的實際電壓和電流。主機可能會限制電流,或者在枚舉之前消耗量超過100mA時關閉端口。嘗試使用外部電源。

我將引腳直接連接到USB插頭,沒有任何外部 電阻。

您需要D +(全速)或D-(低速)的1.5k上拉。這是從STM32F3發現原理圖(這是一個OTG插座,忽略用於常規四線端口ID線)

enter image description here

當沒有上拉,當裝置是主機不能檢測插入,因此不會枚舉它。

ST在這個處理器上實際上獲得了有關支持USB編程的衝突信息。雖然數據表表示支持,但應用筆記AN2606,第81頁(第19節)僅提到支持通過USART1,USART 2和I2C進行編程。

那裏沒有衝突的信息。 第81頁的第19部分涉及其他一些控制器。

STM32F303RET6的功能列於第77頁的表18第18.1節。(As I've already pointed it out.)另請參見第23頁的表3,線路STM32F302xD(E)/ 303xD(E)。

+0

我現在可以看到這個。事實上,我對處理器的參考號碼感到困惑。謝謝你澄清 –