FT5x06 Процедура калибровки

Я успешно интегрировал драйвер для сенсорного экрана FTX506 в Windows CE 7. Этот драйвер использовался почти год для двух прототипов. В последнее время на одном из них перестали работать сенсорные события в верхней части экрана. Мертвая зона - это идеальный прямоугольник, который представляет 10% высоты экрана сверху.

Мне интересно, если это можно решить с помощью калибровки, но я не могу найти процедуру калибровки для этого чипа. Все, что я нашел до сих пор, это процедура калибровки в источниках Linux:

int fts_ctpm_auto_clb(struct i2c_client *client)
{
    unsigned char uc_temp;
    unsigned char i ;

    printk("[FTS] start auto CLB.\n");
    msleep(200);
    ft5x0x_write_reg(client,0, 0x40);  
    delay_qt_ms(100);   //make sure already enter factory mode
    ft5x0x_write_reg(client,2, 0x4);  //write command to start calibration
    delay_qt_ms(300);
    for(i=0;i<100;i++)
    {
        ft5x06_get_reg(client,0,&uc_temp);
        if ( ((uc_temp&0x70)>>4) == 0x0)  //return to normal mode, calibration finish
        {
            break;
        }
        delay_qt_ms(200);
        printk("[FTS] waiting calibration %d\n",i);

    }
    printk("[FTS] calibration OK.\n");

    msleep(300);
    ft5x0x_write_reg(client,0, 0x40);  //goto factory mode
    delay_qt_ms(100);   //make sure already enter factory mode
    ft5x0x_write_reg(client,2, 0x5);  //store CLB result
    delay_qt_ms(300);
    ft5x0x_write_reg(client,0, 0x0); //return to normal mode 
    msleep(300);
    printk("[FTS] store CLB result OK.\n");
    return 0;
}

Однако, если я пересекаю этот код с регистрами FT5X06, это немного сбивает с толку.

Например:

  • Запись (0, 0x40) -> Вход в заводской режим: в руководстве нет заводского режима
  • Запись (2,0x4) -> Начать калибровку: 0x02 - регистр "Точки касания", калибровка не запускается

Кроме того, на чипе имеется регистр автоматической калибровки (ID_G_AUTO_CLB_MODE). Запись в 0x00 не имеет никакого эффекта (по крайней мере, в моем случае), и мы всегда читаем 0xFF.

Если кто-то может указать мне правильное направление, чтобы выполнить калибровку экрана, это было бы здорово.

Некоторая дополнительная информация:

  • Я проверил сигнал прерывания чипа: нет прерывания при касании в мертвой зоне
  • Я пытался прочитать значения регистра касания при нажатии на экран: в мертвой зоне касание не обнаружено.

Я использую документы: https://media.digikey.com/pdf/PCNs/NewHaven%20Display/ECN_12-12-14.pdf

0 ответов

Другие вопросы по тегам