cancel
Showing results for 
Search instead for 
Did you mean: 

Hosting TCP server on STM32 with LTDC, graphics acceleration, and TouchGFX support

CN.1
Associate II

Hi, I'm looking at a few different STM32 discovery boards and am trying to decide which one would best fit my needs and I'm also trying to figure out how to go about creating my desired application.

My application will require both networking (TCP/IP etc.) and TFT display capabilities and I would like to use as many native STM tools as possible, such as STM32CUBE IDE, CUBE MX, and TouchGFX.

Ideally I would like to be able to start and configure the whole project from CUBE MX, add support for an RTOS, add support for a display using TouchGFX (and make use of the LTDC and ChromeART (DMA2D)), and a TCP/IP server; then generate the code from CUBE MX for the project; then be able to continue the rest of the development using CUBE IDE and TouchGFX in tandem, and still be able to use CUBE MX to modify the configuration.

From all my testing so far, this did not seem possible for one reason or another. Some of the problems I ran into include

  • Not being able to enable both AzureRTOS and TouchGFX support simultaneously
  • NetX duo TCP functionality not being available at all in CUBE MX (UDP options were there though)
  • TouchGFX being enabled in CubeMX, but not generating any .part file that can be opened in TouchGFX (everything looked fine and the rest of the code was generated fine, and a TouchGFX folder was generated, but no *.part file)
  • etc.

All in all, I'm wondering:

  1. What is the best way to accomplish my goal? Is there any way to accomplish my ideal goal or will I have to go about it in a different way? Will I have to give up the ease of using the native CUBE tools since they don't seem to have support for all the functionality I want or am I just doing something wrong?
  2. Should I use AzureRTOS with NetX to accomplish the networking side of things or should I use FREERTOS with LwIP or something else entirely?
  3. Why are a bunch of examples listed in CUBE MX not supported by CUBE MX? What does it mean when it says they aren't supported and have to be opened in a different IDE? For example, the LTDC examples say they aren't supported by CUBE MX, yet I can go through and manually configure the LTDC (or do it via TouchGFX) and open the project and work with it just fine in CUBE IDE and still configure it etc via CUBE MX, so why are the examples not supported if all their functionality seems to be supported fine? Is it because it was created with an older version and doesn't support a mixture of auto generated code and user code or something? Also how else can you adjust the basic configuration if you can't use CUBE MX? Do you just have to do it manually?
  4. I'm trying to decide between the STM32H735G-DISCO and the STM32H745I-DISCO. The H745 is dual core, and the H735 is single core. I noticed the H735 seems to have much better support as far as the availability of examples etc. in TouchGFX and CUBE MX. I also saw online that the CUBE tools still seem to be working on rolling out support for dual core MCU's. Would it be easier to accomplish my goals with the H735 since there seems to be better support for it, or will it not make much difference? Which one would you recommend?

TLDR: I want to setup an STM32H7*** discovery board with a TCP server and a display and be able to use TouchGFX, CUBE IDE, and CUBE MX throughout the whole development process but I can't seem to.

UPDATE: It looks like my main issue may be pin conflicts. Is it just not possible to enable ETH MII and LTDC with 24bpp color depth simultaneously with the discovery board pinout? What if I only use 16bpp color depth, would it work then?

0 REPLIES 0