cancel
Showing results for 
Search instead for 
Did you mean: 

The USB interface may interfere with the QVGA display on the STM32F429I-DISC1

balaji_s
Associate II

In my program code, I select an STM32F429I-DISC1 example code through the TouchGFX IDE, which runs successfully in STM32F429I-DISC1 dev board. The displays work fine without any issues. However, I need to configure the USB CDC. Since the USB_OTG_FS pins are connected to the display, I enabled USB_OTG_HS with the following settings:

              1.PB14 set to USB_OTG_HS_DM

              2.PB15 set to USB_OTG_HS_DP

              3.Internal FS PHY set to "device only."

              4.USB device class set to "communication device class" for HS IP.

The output is received, but the display screens appear half-filled and continuously blink. The USB pins are not configured for any other operation, so why is there a conflict between the USB and the display?

5 REPLIES 5

Maybe bandwidth exhaustion?

JW

GaetanGodart
ST Employee

Hello @balaji_s ,

 

I have created a a project using the STM32F429I-Dk rev E01.
It worked fine.

Then I went on the IOC and enabled the USB_OTG_HS like you did but I did not find where to set USB device class to "communication device class" for HS IP.
It also worked fine.

I am not sure how to help you since I am unable to replicate the issue.

Have you selected the right TouchGFX Board Setup (TBS)? There is 2 TBS for this board, you have to take the correct one based on your board revision :

GaetanGodart_0-1734446956366.png

 

 

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)
balaji_s
Associate II

Hello @GaetanGodart ,

 

I’ve set up my project configuration, and everything is functioning well until I enable the USB CDC.

 

Screenshot 2024-12-18 110504.png

 

 

WhatsApp Image 2024-12-18 at 11.21.22_41543469.jpg

 

When I drag the cursor over the USB_OTG_HS, the status shows as "partly disabled," and there is a conflict with the LTDC, where the display type is set to RGB565 (16-bit). Here are the steps I followed for configuration:

  • I selected USB_OTG_HS with the Internal FS Phy set to Device Only.
  • For USB_DEVICE, I chose Class For HS IP and set it to the Communication Device Class.

 

Screenshot 2024-12-18 114448.png

 

Screenshot 2024-12-18 102419.png

 

 

Screenshot 2024-12-18 102437.png

  

 

Screenshot 2024-12-18 102540.png

 

After completing all the configuration steps and generating the code, I started receiving data from the USB. However, the display flickers or blinks intermittently, with only half of the display functioning correctly.

 

Screenshot 2024-12-18 102813.png

 

WhatsApp Image 2024-12-18 at 11.21.23_9b006d46.jpg

 

 

 

 

 

 

 

 

 

 

Hello @balaji_s ,

 

I have been able to setup USB_OTG_HS and USB_Device like you and compile and flash using STM32CubeIDE and STM32CubeProgrammer.
It display and run fine for me.

It seems that the only difference between your project and mine is that I do not send/receive anything through the USB that I enabled.
Could you try to not send or receive anything through the USB and tell me what happens?

Also, could you try to make the LTDC global interrupt higher priority than the newly added USB interrupt?
To make it higher priority, the number should be lower, so setting it to 4, 3 or 2 maybe.

GaetanGodart_0-1734616747792.png

 

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)

Hello @GaetanGodart ,

                  The issue of LCD flickering occurred when the clock configuration was set higher than 6 MHz. This problem has now been resolved. Thank you for your support sir.