1

I have a "STM32VLDISCOVERY" board (link) that I connected to my Windows PC.

This board has an integrated "ST-Link V2" programmer / debugger based on the "STM32F103C8" micro controller which actually communicates with the PC. But this micro controller is recognized as a "USB mass storage device". In the "Device manager" it is located under Disk drives/STM32.

If i right click it and follow Properties/Driver/Driver Deatils/ no ST drivers are listed. There are only some Windows default drivers used for this device:

enter image description here

Now I disconnect the board.

As stated in the documentation we have to only install the "ST-Link V2" Windows driver "STSW-LINK009" (link) before we connect board to a PC.

I downloaded the driver, uncompressed it, and ran the stlink_winusb_install.bat script as the administrator. This installs the driver and should enable PC to communicate with "STM32F103C8" as it should.

I connect the board back to the workstation PC but nothing changes. Board is still treated as a "USB mass storage device". In the "Device manager" it is still located under Disk drives/STM32 and Properties/Driver/Driver Deatils/ lists no ST drivers. Again only Windows drivers.

ADD 1:

After the drivers were installed and board connected to the PC (as a "USB mass storage device") I tried to flash the newest firmware to the board by using "STSW-LINK007" board firmware update utility (link) which fails to connect to the board:

enter image description here

How can I overcome this problem?

71GA
  • 1,132
  • 6
  • 36
  • 69
  • 1
    Does it work with STM32CubeIDE or STM32CubeProgrammer? Can you connect or debug the board using these programs? – Tagli Mar 30 '22 at 16:08
  • @Tagli I added the ADD 1. Note that *"STSW-LINK007"* is specified on the official ST website as the tool for board flashing. And it fails to work. – 71GA Mar 31 '22 at 07:42
  • I read in the "TN1235" that @Armandas posted in his answer that *"USB mass storage mode"* is supported in *"ST-Link V2-1"*, *"ST-Link V2-A"*, *"ST-Link V2-B"* where *"ST-Link V2-A"* doesn't have support for *"virtual COM port"*. Is it possible that my *"STM32VLDISCOVERY"* board has a *"ST-Link V2-A"* and therefore can't connect through *"virtual COM port"*!? How can I verify which *"ST-Link"* version it has? – 71GA Mar 31 '22 at 07:42
  • Is the board brand new? Is there any chance that someone re-programmed the on-board ST-Link MCU by mistake? – Armandas Mar 31 '22 at 08:08

1 Answers1

3

ST-Link V2-1 implements USB mass storage interface to allow drag-and-drop programming.

If you must disable the mass storage interface, you can do it via the firmware update. From the TN1235 document:

On ST-LINK/V2-1 boards, it is possible to disable and restore the mass storage interface by means of the STLinkUpgrade applications (refer to Figure 1)

enter image description here

Armandas
  • 2,276
  • 1
  • 22
  • 27
  • This makes sense! I thought that I have ST-Link V2! I did not realize that there is also a version ST-Link V2-1! – 71GA Mar 31 '22 at 06:32
  • I tred using the *"STSW-LINK007"* ([link](https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-link007.html)) to flash the board, but it fails to connect... Check **ADD 1** added to my question. – 71GA Mar 31 '22 at 07:45