2020-02-13 10:13 AM
Hello!
I'm using TouchGFXDesigner 4.13.0 to flash my STM32F469i-Discovery board. Everything runs as intended on the simulator. But on the board the UI is non responsive, Everything looks as intended, but no button can be clicked, nothing.
Could you give me a hint what am I missing, please?
2020-02-17 12:46 AM
Hi @robinbobin1979,
Have you tried debugging? Is the application actually running? If you're using an OS then maybe check your stack/heap sizes and if not then the size of your cstack could be too low. Just a few things to try.
/Martin
2020-02-17 01:43 AM
Hi, Martin!
Thanks for taking time to answer. Debugging in STM32CubeIDE showed the app crashes right after launch. Stack / heap sizes are 2000. Will be looking further.
2020-02-17 10:53 AM
Hi,
Same problem here! Working with a stack size of 4096. I can upload old programs to the board, but even if I just change a text field, the UI is not working anymore. There are no errors or warnings after debugging.
2020-02-17 10:45 PM
Hi Martin
I had the same problem here.
Here is what I have found
For GUI program created by STemWin, touch panel works (I flashed the STemWin demo program from STM32CubeF4, and confirmed)
I confirmed other version 32F469iDISCO/01 or /02, the UI works with GUI program created by TouchGFX
I consider there might be a compatibility issue in touch panel driver used in TouchGFX application template, when evaluation board is upgraded
Hi robinbobin1979 , LKamm.1
Could you let us know, which board version are you using?
Best Regards
Long
2020-02-18 12:58 AM
Hi,
Thank you for your fast response. I am using the /01-0 Version. Does anybody know the exact configurations of the .ioc-file which are needed for a running Board?
Best Regards
Lukas
2020-02-18 01:50 AM
Hi Lukas
If you use other flash programming tool, you need to do flash loader setting
For example with ST-Link Utility, you need to set it to N25Q128A_STM32469I-DISCO.
If you use TouchGFX designer, all you need to do is running "Run Target".
In my case, it works well with /01-0 Version.
Hope it answers your question
Long
2020-02-18 02:00 AM
Thanks for the info. I'm using /03-0.
2020-02-18 02:39 AM
I managed to do some debugging and that's what I found (not much, unfortunately). I didn't manage to run with a debugger, so I can't give a stacktrace.
`OTM8009TouchController::init()` invokes `BSP_TS_Init()` with a correct screen size. `BSP_TS_Init()`'s body has the line
ft6x06_ts_drv.ReadID(TS_I2C_ADDRESS, kuku) == FT6206_ID_VALUE
which evaluates to `FALSE`, as the return value of `ft6x06_ts_drv.ReadID()` is zero, so `BSP_TS_Init()` returns `TS_DEVICE_NOT_FOUND`.
As for `ft6x06_ts_drv.ReadID()`, it seems to be a pointer to `ft6x06_ReadID()` defined in `target\bsp\source\vendor\Components\ft6x06\ft6x06.c`. When `ft6x06_ReadID()` is invoked finally `I2C_WaitOnMasterAddressFlagUntilTimeout()` from `target\bsp\source\platform\hal\mcu\stm32f4cube\STM32F4xx_HAL_Driver\stm32f4xx_hal_i2c.c` gets invoked and the line
__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET
evaluates to `TRUE` making `I2C_WaitOnMasterAddressFlagUntilTimeout()` return `HAL_ERROR`.
Maybe this info might shed some light on what's going on.
2020-02-18 06:49 AM
Solved.
We managed to find out that the TS_I2C_ADDRESS define in target\bsp\source\vendor\STM32469I-Discovery\stm32469i_discovery.h must be 0x70 and not 0x54.
That's for STM32F469i-Discovery /03-0.