Showing results for 
Search instead for 
Did you mean: 

Nucleo-H743ZI: Problems setting USB-FS-Device into operation

Torsten Aurich
Associate II
Posted on November 15, 2017 at 13:20

Hello Community,

currently i'm starting development with Nucleo-H743ZI. I'm using STM32CubeMX V4.22.1 and

Atollic True Studio V8.0.0 on Win10.

I'm creating a new CubeMX project. Under Board Selector i'm selecting the Nucleo144

NUCLEO-H743ZI as target.

1. First i fixed pinning in the Pinout Tab.

Under USB_OTG_FS i do the following settings:

- Mode: Device Only

- Activate_VBUS: VBUS sensing

- Activate SOF: Yes

Under SYS:

- Debug: Trace Asynchronous SW

Under RCC:

- HSE: Crystal/Ceramic Resonator

- LSE: Crystal/Ceramic Resonator

Under MiddleWares:

- Class for FS IP: CDC (VCP)

2. Second i go to Clock Configuration:

- Setting HSE Input Frequency to 8MHz

- PLL Source Mux: PLL source is HSE

- PLL1: DIVM1=4; DIVN1=400; DIVP1=2

- System Clock Mux: switch to PLLCLK (on SYSCLK appears 400MHz)

- Prescaler for core/peripherals: D1CPRE=1; D1HPRE=2; HPRE=2; D1PPRE=2; D2PPRE1=2; D2PPRE2=2; D3PPRE=2

- PLL3: DIVM3 = 4; DIVN3 = 192; DIVQ=8 (right to DIVQ3 48MHz appears)

- USB Clock Mux: select PLL3Q (on clock to USB 48MHz appears)

3. Go to the Configuration Tab:

A. Under Connectivity switch to USB_FS to open dialog:

I'm using the following Parameter Settings:

- Speed: FS 12MBit/s

- EP0 Max Packet size: 64Bytes

- internal IP DMA: Disable

- Low Power: Disable

- Battery Charging: Disable

- Link Power Management: Disable

- Use dedicated EP0 interrupt: Disable

- VBUS sensing: Enabled

- Signal start of frame: Enabled

NVIC Settings:

- USB OTG FS EP1 OUT Global Interrupt: Disable

- USB OTG FS EP1 In Global Interrupt: Disable

- USB OTG FS Global Interrupt: Enabled (by default)

GPIO Settings:

- leave unchanged

B. Under System BDMA:

- leave unchanged

C. Under System CORTEX_M7:

- CPU ICache: Enabled

- CPU DCache: Enabled


D. Under System DMA:

- leave unchanged

E. Under System GPIO:

- leave unchanged

F. Under System MDMA:

- leave unchanged

G. Under System NVIC:

- leave unchanged

H. Under System RCC:

- leave unchanged except of:

- Flash Latency(WS): 7 WS (8 CPU cycles)

I. Under Middleware USB_DEVICE:

Parameter Settings:






- USBD_DEBUG_LEVEL: 0: No debug messages

- USB CDC Rx Buffer Size: 2048Bytes

- USB CDC Tx Buffer Size: 2048Bytes

Device Descriptor FS:

- PID: 22336

- PRODUCT_STRING: STM32 Virtual ComPort




4. Go to CubeMX Project Tab, change Project Settings:

In Tab Project:

- Project Name: select a project name

- Project Location: set Path to Project


- Under Firmware Package Name and Version appears: 'STM32Cube FW_H7 V1.1.0'

Tab Code Generator:

- leave all unchanged

Tab Advanced Settings:

- leave all unchanged

5. Go to CubeMX Project Tab: Press Generate Code...

6. Switch to AtollicTrue Studio:

- Import Project

- Compile Project

- Select Tab RUN->Debug (Debugger starts)

- Run the project...

7. Open Windows Device Manager Tree:

Looking under communications (COM&LPT) and waiting to a new STMicro VCP appears...

Nothing happens!!! No new connection (USB/VCP) appears...

To find the problem i try the following:

1. Check PLL: route SYSCLK to MCO2, use Oszi to verify: i can verify a square wave signal

on the Oszi with same frequency as displayed in CubeMX clock configuration tool MCO2 info box.

2. Check the USB cabels: I change the USB cable. Same effect. Nothing appears in Windows Device Manager.

3. I use Win10 (Maybe the Problem???): Change to a Windows 7 Laptop. Plug the flashed Nucleo in

the USB ports (STLink for Powering, 2nd Micro-USB to H7-USB-FS-Port). Same effect.

Nothing appears in Windows Device Manager.

So now i decided to change the platform:

1. Go back to Win10. Take a Nucleo-F767ZI. Create a CubeMX Project. Do the same steps as above but parameters

slightly adapted to F767. Use FW package 'STM32Cube FW_F7 V1.8.0' and create an Atollic True Studio Project.

Plug the board onto the USB ports.

Import the project in Atollic True Studio.

Compile and run.

And SUCCESS: A new serial port appears in the Windows Device Manager (named USB Serial Device).

So now i ask myself, what is the problem with the H743-Nucleo?

I think cables are not the problem. The Micro-USB port connectors on both Nucleos seems to be the same.

Also not Win10 (because F767 works).

I have studied the STM32H743xI errata too but found nothing that could cause the problem.

Maybe there is somebody out there, who can advice me? Any remarks?



Update: I found what i'm looking for and solve the problem...

#stm32cube_fw_h7_v1.0.0 #stm32h743 #nucleo-h743 #usb-fs #cubemx-4.22
ST Employee
Posted on November 15, 2017 at 15:59




Good to know that your problem is fixed.

It would be grateful to share the solution, this will be

helpful for other users on our STM32 forum facing the same kind of issues.

Best Regards


When your question is answered, please close this topic by clicking "Accept as Solution".
Posted on November 16, 2017 at 08:24

Hello Imen,

Of course I like doing that. The solution can be found in the post:



Posted on November 16, 2017 at 15:10


Thank you for sharing the post and solution.

I reported this issue to the appropriate team for investigation.

Best Regards


When your question is answered, please close this topic by clicking "Accept as Solution".
Andrew Ivanov
Associate II
Posted on November 29, 2017 at 08:53

May be you know how to resolve, I worked with nucleo144 board (stm32f767) and I had some problem. Windows define board how unkown usb device. But Keil debuger stopped in irq handler 'void OTG_FS_IRQHandler(void)'. May be I dont`t initialize any option. 

@Torsten Aurich​ So, what was your discovery? I have a similar problem of USB/VCP not working at all with example project derived code, which I'm struggling with for a month now.

Associate III

@ETone​ Thanks for the info, but the call already exists in my code ...

I have filed a new Q&A.