如何让 STM32WB55 USB 加密狗出现在 linux 中?

How can I make the STM32WB55 USB dongle show up in linux?

我有一个Nucleo Pack with two STM32WB55 discovery boards。其中一块板有一个 64 针微控制器,而另一块板是带有 48 针微控制器的 USB 加密狗。

我从名为 "BLE_p2pServer" 的示例项目中刷新了二进制文件,发现 here onto the 64 pin micro controller using "STM32CubeProgrammer" and the board communicated just fine with an app called "ST BLE Sensor" as suggested in this tutorial

现在我想刷写 48 针 USB 加密狗,以便它与已经工作的 64 针板通信。

不幸的是,USB dongle 没有出现在 "STM32CubeProgrammer" 中,并且从 TrueStudio 中刷新示例项目也会导致错误:

    ST-Link enumeration failed
    Error in initializing ST-LINK device.
    Reason: ST-LINK DLL error.

板有不同的名称:

    chandran@chandran-OptiPlex-9020:~$ lsusb
    Bus 001 Device 038: ID 0483:5740 STMicroelectronics STM32F407
    Bus 001 Device 039: ID 0483:374b STMicroelectronics ST-LINK/V2.1 (Nucleo-F103RB)

两块板都有相同的微控制器 (STM32WB55),但也许 USB dongle 需要不同的 udev 规则?

当我拔下 64 针发现板并保持 48 针加密狗连接时,我的“/dev”文件夹中缺少与 st 相关的驱动程序。

连接板时:

    chandran@chandran-OptiPlex-9020:~$ ll /dev/stlinkv2-1_*
    lrwxrwxrwx 1 root root  3 Dec 30 18:32 /dev/stlinkv2-1_ -> sdb
    lrwxrwxrwx 1 root root 11 Dec 30 18:32 /dev/stlinkv2-1_0 -> bsg/6:0:0:0
    lrwxrwxrwx 1 root root  7 Dec 30 18:32 /dev/stlinkv2-1_1 -> ttyACM1
    lrwxrwxrwx 1 root root  3 Dec 30 18:32 /dev/stlinkv2-1_2 -> sg2
    lrwxrwxrwx 1 root root 15 Dec 30 18:32 /dev/stlinkv2-1_5 -> bus/usb/001/040

仅连接 48 针 USB 加密狗时:

    chandran@chandran-OptiPlex-9020:~$ ll /dev/stlinkv2-1_*
    ls: cannot access '/dev/stlinkv2-1_*': No such file or directory

加密狗在我的机器上显示为 /dev/ttyACM0

我怎样才能让 USB 加密狗正常工作?我需要额外的驱动程序或 udev 规则吗?

我在 ST-Forum 上问过同样的问题。

问题是您没有直接连接到 STM 进行编程。您正在连接一个小型 STM32F1,它使用 STLINK/V2 软件进行编程以充当编程器。

USB 加密狗没有添加该芯片,因此您必须通过 SWD 编程器自行连接 SWD 连接的编程引脚。

可以使用跳线配置您的主板(带有 STM32F1)以对外部 STM32 进行编程。您需要连接 GND 3V3 SWCLKSWIO 才能对其进行编程。

您甚至可以通过访问 ST 的网站并在资源选项卡下下载原理图来自己检查。 dongle link mainboard link