FTDI Community

Please login or register.

Login with username, password and session length.
Advanced Search  

News:

Welcome to the FTDI Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ FTDI Support


New Bridgetek Community is now open

Please note that we have created the Bridgetek Community to discuss all Bridgetek products e.g. EVE, MCU.

Please follow this link and create a new user account to get started.

Bridgetek Community

Author Topic: FT810 touch calibration problem  (Read 9597 times)

EnsAltun

  • Newbie
  • *
  • Posts: 3
    • View Profile
FT810 touch calibration problem
« on: February 22, 2022, 02:05:06 PM »

Hi,
I am using FT810 with 7" TFT. But i use it on portrait orientation. But i have a problem with touch orientation. It doesnt happen always but touch orientation of some devices change.  Seems you see TFT screen on portrait orientation but touch system changes to landscape. Thats why you cant use touch screen. Also i calibrate system once after programming process. Flowchart of algorithm is like below;
Run system first time after programming  -> (System goes to calibration mode because calibration values are zero on mcu eeprom) -> Calibrate screen -> read REG_TOUCH_TRANSFORM_X values and save to mcu eeprom -> reboot system
After rebooting system, mcu will see values on eeprom and FT810 wont be calibrated again. I read calibration values and write to REG_TOUCH_TRANSFORM_X again same values. This system was running without problem. But a few devices get this problem. My calibration code is below. Do you have any idea why i have this problem?


ft800memWrite32(RAM_CMD + cmdOffset, (CMD_DLSTART));                                                                                                                                             
cmdOffset = incCMDOffset(cmdOffset, 4);     
ft800memWrite32(RAM_CMD + cmdOffset, CLEAR_COLOR_RGB(0,255,0));
cmdOffset = incCMDOffset(cmdOffset, 4);       
ft800memWrite32(RAM_CMD + cmdOffset, CLEAR(1,1,1));
cmdOffset = incCMDOffset(cmdOffset, 4);       
   
ft800memWrite32(RAM_CMD + cmdOffset, (CMD_SETROTATE));                                                    
cmdOffset = incCMDOffset(cmdOffset, 4);       
ft800memWrite32(RAM_CMD + cmdOffset, (0));   //rotate screen portrait orientation                                 
cmdOffset = incCMDOffset(cmdOffset, 4);       
   
   
ft800memWrite32(RAM_CMD + cmdOffset,CMD_CALIBRATE); // calibrate screen
cmdOffset = incCMDOffset(cmdOffset, 4);   
ft800memWrite32(RAM_CMD + cmdOffset, DISPLAY());
cmdOffset = incCMDOffset(cmdOffset, 4);       
ft800memWrite32(RAM_CMD + cmdOffset, (CMD_SWAP));
cmdOffset = incCMDOffset(cmdOffset, 4);       
ft800memWrite16(REG_CMD_WRITE, (cmdOffset));
do
{
cmdBufferRd = ft800memRead16(REG_CMD_READ);       
cmdBufferWr = ft800memRead16(REG_CMD_WRITE);
}while (cmdBufferWr != cmdBufferRd);

DEVICE_TRANSFORM_A=ft800memRead32(REG_TOUCH_TRANSFORM_A);  // read calibration values
DEVICE_TRANSFORM_B=ft800memRead32(REG_TOUCH_TRANSFORM_B);
DEVICE_TRANSFORM_C=ft800memRead32(REG_TOUCH_TRANSFORM_C);
DEVICE_TRANSFORM_D=ft800memRead32(REG_TOUCH_TRANSFORM_D);
DEVICE_TRANSFORM_E=ft800memRead32(REG_TOUCH_TRANSFORM_E);
DEVICE_TRANSFORM_F=ft800memRead32(REG_TOUCH_TRANSFORM_F);
           
save_eeprom_transform_values();   // save calibration values to eeprom
               


Logged

FTDI Community Admin

  • Administrator
  • Newbie
  • *****
  • Posts: 23
    • View Profile
Re: FT810 touch calibration problem
« Reply #1 on: February 22, 2022, 03:46:16 PM »

Hello,

Can you please post this msg in the BRT forum and one of the support team will respond.

www.brtcommunity.com

thanks

FTDI Community Admin
Logged