激活STM32F303上的DFU(USB编程)

激活STM32F303上的DFU(USB编程)

问题描述:

我正在构建基于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,但尚不清楚它们如何使用。

我已将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

我现在可以看到这个。事实上,我对处理器的参考号码感到困惑。谢谢你澄清 –