2025-07-16 6:26 PM
Hello ST and community members,
I am writing to ask for help with a persistent issue regarding the Virtual COM Port (VCP) feature on the STLINK-V3MINIE.
Summary
I have two STLINK-V3MINIE units, and on both of them, serial communication via the VCP does not work at all. However, the SWD interface for programming and debugging functions correctly. For comparison, I tested an older STLINK-V2, and its VCP works perfectly fine.
Environment
* PC OS: Windows 10/11
* IDE: STM32CubeIDE v1.19.0
* Debug Probes:
* STLINK-V3MINIE (Device with the issue; two separate units behave identically)
* STLINK-V2 (Reference device that works correctly)
* Target MCU: Wio-E5 (STM32WLE5JC)
* Terminal Software: Tera Term
Troubleshooting Steps Performed
I have performed the following diagnostic steps:
1. Confirmed Target MCU is Running: I added code to toggle an LED within the while(1) loop on the Wio-E5. The LED blinks as expected, confirming the main program is running correctly.
2. Verified with STLINK-V2: I can establish a stable serial communication link with the Wio-E5 using the STLINK-V2 without any issues.
3. STLINK-V3MINIE Loopback Test: I disconnected the V3MINIE from the target MCU and performed a loopback test by connecting its T_VCP_TX and T_VCP_RX pins together. When typing into the terminal, no characters were echoed back.
4. Oscilloscope Analysis: While performing the loopback test, I directly monitored the TX pin of each debug probe with an oscilloscope and found a critical difference:
* STLINK-V2 (Normal): The TX pin idles high (3.3V) and correctly generates UART signal pulses that drop to 0V during transmission.
* STLINK-V3MINIE (Abnormal): The TX pin idles low (0V). No signal or waveform is generated on this pin when sending data from the terminal.
5. External Pull-up Resistor Test:
Based on the idle-low observation, I added a 10kΩ pull-up resistor between the T_VCP_TX and T_VCC pins on the STLINK-V3MINIE.
* Result: This successfully changed the idle voltage to 3.3V.
* Outcome: Despite the correct idle voltage, the loopback test still failed, and no communication was possible.
Questions
Based on these results, I believe there is a fundamental issue with the VCP implementation on the STLINK-V3MINIE.
1. Is the idle-low (0V) state on the VCP TX pin the intended design or specification for the STLINK-V3MINIE?
2. Is this a known issue related to a specific hardware revision or firmware version of the STLINK-V3MINIE?
3. Are there any other special settings or procedures required to get the VCP to function correctly?
Since two separate STLINK-V3MINIE units exhibit the exact same behavior, I suspect this is not a random failure but a more fundamental issue.
Any information or suggestions you could provide would be greatly appreciated.
Thank you.
Solved! Go to Solution.
2025-07-16 7:01 PM - edited 2025-07-16 7:16 PM
It should just work. Perhaps you have things miswired. Sounds like you may have TX/RX swapped. Can you show your board schematic and how things are wired?
Note that the T_VCP_TX pin is an input to the programmer. It's a UART RX pin. Idle state would be set by whatever device is driving the pin. Sending data on the terminal will be transmitted on the T_VCP_RX pin. Loopback should still work. Note that RealTerm may buffer characters until a newline is sent.
2025-07-16 7:01 PM - edited 2025-07-16 7:16 PM
It should just work. Perhaps you have things miswired. Sounds like you may have TX/RX swapped. Can you show your board schematic and how things are wired?
Note that the T_VCP_TX pin is an input to the programmer. It's a UART RX pin. Idle state would be set by whatever device is driving the pin. Sending data on the terminal will be transmitted on the T_VCP_RX pin. Loopback should still work. Note that RealTerm may buffer characters until a newline is sent.
2025-07-16 7:22 PM
Thank you very much for your reply and your time. I'm happy to report that I have solved the issue.
To conclude, the entire problem was caused by my own complete misunderstanding.
The initial reason I could not establish serial communication was that I had simply mistaken which port pins to use on my target microcontroller (Wio-E5).
During the debugging process, the loopback test on the STLINK-V3MINIE failed, which led me to mistakenly believe that the problem was with the STLINK-V3MINIE hardware itself.
Finally, after confirming that I could communicate successfully using a STLINK-V2, I reviewed my MCU's pin configuration from scratch and realized my port selection error. After correcting the configuration to the proper port (USART1), I can confirm that serial communication with the STLINK-V3MINIE now works perfectly.
My apologies for the confusion, and thank you again for your support.
2025-07-16 7:29 PM
You're not the only one who got this trouble. Two years ago, my new bought stlink-v3minie works all fine including the VCP function, but just few months ago I found that function doesn't work sometimes. That wasted a lot of my time to check the problem and I thought there was the problem of my target board but actually it wasn't.
I checked my debugger with a scope and the pin level is totally the same as your described. In my opinion there must be some fault in the firmware. But I'm sorry about that and I got no solution for it too.
What I can only tell is, the VCP function may work if you try to reconnect it to your pc for multiple times, although that does not fix it at all.