cancel
Showing results for 
Search instead for 
Did you mean: 

Pin conflict between LTDC gpio and touchscreen gpio

GMart.5
Associate II

0693W00000D1RygQAF.pngHello! I am working on a custom board that has an STM32F469ZI to control a touchscreen by focusLCDs (E43RB-FW405-c) . We have the pin that controls the backlight of the touchscreen on pin PB0 but in cubeMX I am getting a pin conflict between LTDC and this gpio that I have set. Apparently the LTDC needs pin PB0 for LTDC_G1 or LTDC_R3. I have configured the 4 LTDC control signals (LTDC_HCLK, LTDC_DE, LTDC_VSYNC, and LTDC_HSYNC) manually in cubeMX and made sure the polarities and clock timings were correct to see if it could work but to no avail. Is this pin absolutely needed by LTDC to control the framebuffer? If so, would this mean we would have to change the backlight pin to something different?

I am following the touchGFX-documentation guide that helps set up boards for touchGFX. At this moment, I am only able to turn the backlight of the screen which is really dim. In the guide, LTDC is the only configuration that is set up before step 3 so I am not even able to change the background color to a solid color through cubeIDE. Eventually this screen will be running a UI that will be set up in touchGFX so I really need to know if the LTDC requires this pin. Thank you for any help you are able to give.

7 REPLIES 7
TDK
Guru

It's required if you need the R3 or G1 bits, unless you're using DSI mode. There aren't alternative pins for it.

Yes, it means you need to change the pin you're using.

Typically mapping the pinout is the first thing you do when laying out a board.

If you feel a post has answered your question, please click "Accept as Solution".
MM..1
Chief III

Your LCD is E43RB-FW405-c , MIPI DSI interface, then on STM you dont use any LTDC pin.

So yes, when configuring LTDC, there were no pins that showed on the CubeMX screen. However, when LTDC was properly configured with touchGFX and used in DSI mode, the screen would just stay off even when I had a colored box in the touchGFX portion. I learned that DSI uses LTDC so would this conflict still affect the backlight gpio? As I said when LTDC was disabled, the backlight could turn on and off freely, but when LTDC was configured with touchGFX and in DSI mode it would just shut off.
thanks for replying quickly, TDK and MM.1. This project has become urgent so much help is needed.
So when configuring, I did notice that LTDC doesn't use pins when it's in DSI mode but it's still not letting the backlight come on whenever LTDC is configured in DSI mode and touchGFX was activated in the software packs. It only lets me set up in DSI-mode for that matter but when introducing touchGFX and the DSI stuff, it seems like I can either only have LTDC or the backlight. Is this still between the pin conflict? We're planning on using the whole screen so I'm assuming those R3 or G1 bits are needed. I would just like to confirm your answer because that would be a heavy task to undergo to change our board for one pin.

In normal situation LTDC or TouchGFX havent with backlight control and too CubeIDE havent any definition for this control.

Backlight is controlled by user code or on some displays can be controlled in driver IC.

In basic design is pin for control backlight choiced to an PWM TIM output from STM.

And DSI stay off is normal situation, when you dont add driver config to generated code... usw DSI isnt simple

I have a line of code (HAL_GPIO_WritePin) in my main function that turns on the backlight. It's just when I change the LTDC configurations, that line of code doesn't work anymore. I tried toggling it twice with (HAL_GPIO_TogglePin) to see if it would either turn on and then off or the other way around. The backlight just seems incompatible with LTDC in DSI mode and TouchGFX. Is there a way to use DSI mode and TouchGFX without having to manually turn on the backlight with a line of code? I've been working with a discovery kit and saw that there was no backlight pin assigned as well as no code written for turning it on.
Thank you for your help MM..1

Example end init code

  HAL_DSI_ShortWrite(&hdsi, 0, DSI_DCS_SHORT_PKT_WRITE_P0, DSI_SET_DISPLAY_ON , 0);
 
  LCD_LIGHT_GPIO_Port->BSRR = LCD_LIGHT_Pin;

And you need check , that GPIO init is called before and properly for your port used pin.

Stop search incompatibility and start check code and schematics.