cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F413H-Discovery board issue about Touchscreen Calibration : ERROR (because of ts_status = TS_DEVICE_NOT_FOUND; )

Echan.1
Associate II

Hi, MCD teams,

I bought a new STM32F413H-Discovery board (MB1274-F413HT6-E03 A214500149) from Mouser and received it on last week.

Now I tried to run the application under the folder of F4 Firmware Package\Demonstrations\STemWin\MDK-ARM\Project.uvproj, but the LCD always show the message as my question title highlighted (Touchscreen Calibration : ERROR). I had checked the user manual and it had mentioned that the touchscreen must be calibration at first time. But now TS device can not be found, what should I do for the next?

PS: I have trace the source code, the Touchscreen calibration ERROR is because of the following function always return "0x00".

uint16_t ft6x06_ReadID(uint16_t DeviceAddr)

{

 /* Initialize I2C link if needed */

 TS_IO_Init();

  

 /* Return the device ID value */

 return (TS_IO_Read(DeviceAddr, FT6206_CHIP_ID_REG));

}

2 REPLIES 2
Echan.1
Associate II

Additional information​:

  1. My firmware version is STM32Cube_FW_F4_V1.27.0
  2. The same message also occurs in STM32F413H-Discovery\Examples\BSP\MDK-ARM\project.uvproj

when program runs to the step of "TS Interrupt demo example" .

Echan.1
Associate II

I check the return value of TS_IO_Read(DeviceAddr, FT6206_CHIP_ID_REG) again.

Every first time, the touch screen driver ft6x06_ts_drv.ReadID (TS_I2C_ADDRESS) return 「0x11�?. it means the FT6206 device exist and was mounted on the board , but the stm32f413h_discovery_ts.c seems doesn't support FT6206 CTP anymore.

If so, why ST still sold out the STM32F413H-DISCOVERY board that mounted with out of date CTP device FT6206???

#define FT6206_ID_VALUE         0x11

 /* Scan TouchScreen IC controller ID register by I2C Read */

 /* Verify this is a FT6x36 or FT3x67, otherwise this is an error case   */

 if( ft6x06_ts_drv.ReadID(TS_I2C_ADDRESS) == FT6x36_ID_VALUE )

 {

   /* Found FT6x36 : Initialize the TS driver structure */

........

 }

 else

 {

#if defined (USE_STM32F413H_DISCOVERY_REVE)

  ft3x67_ts_drv.Init(I2C_Address);

​   if( ft3x67_ts_drv.ReadID(TS_I2C_ADDRESS) == FT3X67_ID_VALUE )

  {

   /* Found FT3x67 : Initialize the TS driver structure */

    ................

  }

#else /* USE_STM32413H_DISCOVERY */

  ts_status = TS_DEVICE_NOT_FOUND;

#endif /* USE_STM32F413H_DISCOVERY_REVE */

 }

 return (ts_status);

}