【问题标题】:No DFU devices detected while trying to implement MicroPython on STM32F4Discovery尝试在 STM32F4Discovery 上实现 MicroPython 时未检测到 DFU 设备
【发布时间】:2018-05-21 20:12:27
【问题描述】:

我正在尝试在 STM32 微控制器系列上使用 Python,并且正在使用 STM32F4 Discovery 板和 STM32F429 MCU 进行实验。

MicroPython Github 自述文件对 STM 进行了演练,但我在部署步骤中一直失败,它不断提高值错误 'No DFU device found'。 (这发生在 Windows 主机上 Virtualbox 内的 Manjaro 上)

现在我尝试在 Linux 和 Windows 主机上将该板识别为 DFU 设备,但无济于事。 Windows 确实在硬件管理器中显示了该板,但它始终显示为“STM32 STLink”。它也不被文件系统识别为大容量存储,与我也尝试过的 STM32F103 Nucleo-64 板相反,它是(在 Windows 和 Linux 上)。再说一次,F103 Nucleo 也没有被识别为 DFU 设备(尽管我可能没有正确的引导引脚向上/向下拉那个)。

我在这里尝试了使用 DfuSe 的官方教程:https://www.youtube.com/watch?v=Kx7yWVi8kbU 然而,在 3:45 左右,当设备被识别为“DFU 模式下的 STM 设备”时,它不适合我。并且它在 DfuSe 的相应下拉列表中没有显示任何“可用的 DFU 设备”。我试图寻找一个名为“STM Device in DFU mode”的驱动程序,但没有找到任何官方或鼓舞人心的驱动程序。

我的设置:

  • boot0 引脚通过与 VDD 桥接来上拉
  • 通过 mini-USB 转 USB 电缆将板 (CN1) 的 STLink 部分连接到 PC
  • CN4 的跳线都已连接
  • Idd (JP3) 的跳线已连接
  • Windows 10 Pro(以及 Virtualbox VM 上的 Manjaro)

到目前为止我尝试过的:

  • 安装 DfuSe
  • 手动安装随附的 DfuSe 驱动程序
  • 从 STMicroelectronics 官方网页下载和安装 USB 驱动程序
  • 在 linux 上使用 dfu-util
  • 从 ST 网页安装虚拟 COM 端口驱动程序
  • 安装 ST-Link 实用程序

到目前为止,我唯一的成功是让 STLink 实用程序识别电路板并能够用它上传 .hex 文件。遗憾的是,这对于 MicroPython 并没有真正帮助我。

所以我真正的问题是如何将 MicroPython 安装到 STM32F4 上,重要的问题可能是如何让开发板识别为 DFU 设备。

【问题讨论】:

  • 您不能通过 st-link 使用内置的引导加载程序 :)。您需要将 USB 连接到目标 uC,因此将 ST-Link 连接到 PC 是没有意义的。使用(如果填充在板的另一侧)。如果它是内部引导加载程序使用的,那么它将起作用。
  • @PeterJ_01 你的意思是我应该通过“USB USER”端口 (CN6) 将开发板连接到我的计算机?我仍然可以通过另一个 USB 端口为其供电,还是需要获得 5V 电源并将其连接到相应的引脚?
  • 当然你需要在那里连接。是什么让你得出另一个结论。您可以通过 St-Link 为其供电 - 但只有连接的计算机由同一电源供电时才安全。
  • 好吧,考虑到我对嵌入式编程完全陌生(之前只使用过 RPi),而且我没有找到适合傻瓜的分步教程,我基本上是在猜测......如果你有更多资源给我,我会很感激。一直在努力学习!感谢您迄今为止的帮助
  • 我也用 USER USB 试过了,遗憾的是我的电脑无法识别该板。还有其他想法吗?跳线就是他们在 ST youtube vid 中的样子。但是它有一个不同的板,所以也许这就是问题所在?

标签: python driver stm32f4discovery micropython dfu


【解决方案1】:

假设您已经为 STM32F4DISCOVERY 构建了 micropython 固件,您可以使用 st-util 和 gdb 来加载固件。

terminal 1:
st-util

terminal2:
$gdb firmware.elf
(gdb) target extended localhost:4242
(gdb) load

【讨论】:

    【解决方案2】:

    最好在这里问这些问题https://forum.micropython.org

    STM32F429 的 USB 连接不暴露于 ST-LINK V2 连接器。因此,如果您需要做一个 DFU,请借助此连接器https://robu.in/product/micro-usb-turn-dip2-54-mm-upright-mother-5p-type-b-mike-patch-straight-plug-adapter-plate-welding-head/ 使用以下连接@

    我在 NUCLEO-F401RE 上试过这个,它也没有将 DFU 暴露在 STLINK-V2 标头上。

    `连接:

    USB 连接器探索套件

    D+ ------> PA12
    D- ------> PA11

    接地 ------> 接地

    现在你应该可以成功完成 DFU 了!`

    【讨论】:

      猜你喜欢
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多