FT6336 вкратце
Параметр | Значение | Источник |
|---|---|---|
Точки касания | 2 или 1 плюс жесты | Даташит FT6336G |
I2C-адрес (7 бит) | | Драйверы Adafruit и Espressif |
I2C SCL | 10–400 кГц | Даташит FT6336G |
Частота опроса | До 100 Гц | Даташит FT6336G |
Напряжение питания | 2,8 В – 3,6 В | Даташит FT6336G |
IOVCC | Отдельное, 1,8 В – 3,6 В | Даташит FT6336G |
Рабочая температура | от −40 °C до 85 °C | Даташит FT6336G |
В списке характеристик даташита указано 2,8 В – 3,6 В, тогда как в таблице режимов по постоянному току VDDA и VDD3 указаны как 2,8 В – 3,3 В. Проектируйте под более узкий диапазон, если поставщик модуля не скажет иное.
Какая у вас версия FT6336?
Модификация | Каналы | Корпус | Размер панели |
|---|---|---|---|
FT6336G | 31 | QFN 5×5, 40 выводов | До 4,0″ |
FT6336DMB | 36 | QFN 6×6, 48 выводов | До 4,5″ |
Эти данные взяты из двух документации FocalTech: FT6336G v1.0 и серии FT6X36 v0.3. Datasheet на FT6336U мы не нашли, поэтому сведения о нём получены из исходного кода драйвера.
Чтение данных касания
Исходный код FT63x6 в ESPHome читает следующие регистры:
Регистр | Содержимое |
|---|---|
| Режим устройства (ESPHome записывает |
| Количество касаний, младшие 4 бита |
| Событие в битах 7:6, старшие биты X в битах 3:0 |
| Младший байт X |
| ID касания в битах 7:4, старшие биты Y в битах 3:0 |
| Младший байт Y |
| Вес касания |
| Порог срабатывания касания |
| Частота опроса в активном режиме (ESPHome записывает |
| Chip ID |
Второе касание использует ту же структуру со смещением на 6 байт, начиная с 0x09. ESPHome игнорирует количество касаний 0x00 или 0xFF.
Тайминги сброса и включения питания
Из datasheet на FT6336G:
- Импульс сброса (Trst): не менее 5 мс низкого уровня на RSTN.
- После сброса (Trsi): не менее 300 мс до начала передачи координат.
- После включения питания (Tpon): не менее 300 мс до начала передачи координат.
- Перед подачей питания: удерживайте RSTN на низком уровне. Также рекомендуется удерживать низкими линию INT и линии I2C.
- Циклы питания: дайте напряжению питания упасть ниже 0.3 В более чем на 5 мс.
Здесь драйверы различаются. Драйвер edt-ft5x06 в Linux ждёт 300 мс после снятия сброса, что соответствует datasheet. Процедура сброса в ESPHome удерживает сброс 10 мс и не добавляет паузы после его снятия. Драйвер FT5x06 от Espressif удерживает сброс 10 мс, затем ждёт 10 мс.
Режимы работы и I2C
В datasheet перечислены три режима:
- Active: сканирование с частотой по умолчанию 60 кадров в секунду, хост может её изменить.
- Monitor: сканирование с частотой по умолчанию 25 кадров в секунду. Касание возвращает контроллер в режим Active. Согласно datasheet, в этом режиме «последовательный порт закрыт».
- Hibernation: режим отключения питания, для выхода из которого требуется сброс или сигнал пробуждения от хоста.
Замечание о режиме Monitor может быть важным при сканировании I2C на панели в режиме ожидания. Мы сами это не измеряли, поэтому рассматривайте это как версию, которую стоит исключить: касайтесь панели во время сканирования.
Симптомы и решения
Симптом | Проверка |
|---|---|
По адресу | Убедитесь, что RSTN в высоком уровне, подождите 300 мс после сброса, затем коснитесь панели во время сканирования. После этого проверьте SDA, SCL и подтягивающие резисторы. |
ESPHome пишет в лог "FT6336U touch driver failed to start" | ESPHome считал |
Библиотека отклоняет ID чипа | ID различаются у разных версий: Adafruit указывает |
Слишком высокая или слишком низкая чувствительность касаний | Значение регистра |
Третье касание не регистрируется | Это ограничение самого чипа: и в даташите, и в драйвере Linux указано 2 точки. Если нужно больше точек, см. GT911. |
Поддержка драйверов
- ESPHome: используйте платформу
ft63x6с опциональнымиreset_pinиinterrupt_pin. I2C должен быть настроен. В её документации упоминается плата WT32-SC01, а в исходном коде фигурирует FT6336U. - Linux: отдельной записи для FT6336 нет. Ближайший вариант —
focaltech,ft6236в драйвере edt-ft5x06: 2 точки касания и обязательные свойстваcompatible,regиinterrupts. Мы не тестировали это с FT6336. - ESP-IDF: драйвер
esp_lcd_touch_ft5x06по умолчанию использует адрес0x38и частоту 100 кГц. Его исходный код поддерживает до 5 точек и не упоминает FT6336, поэтому проверьте свой компонент, прежде чем на него полагаться. - Arduino: библиотека FT6206 от Adafruit определяет ID чипа FT6336U и по умолчанию использует адрес
0x38.
Смежные контроллеры
Для одноточечного касания на круглых дисплеях см. CST816S. Для более крупных панелей см. GT911. M5Stack Core2 — одна из плат, использующих FT6336U, — см. M5Stack Core2.
Руководства и сравнения
FT6336: устранение неисправностей и FAQ
Какой I2C-адрес у FT6336?
Драйверы Adafruit и Espressif используют адрес 0x38 (7-битный), и Linux использует то же значение в примере биндинга для семейства FT5x06. В прочитанном нами даташите FT6336G адрес не указан, поэтому подтвердите его I2C-сканированием на своей плате.
Почему мой FT6336 не отвечает по I2C?
Убедитесь, что RSTN в высоком уровне, затем подождите не менее 300 мс после сброса: это минимум по даташиту, прежде чем контроллер начнёт сообщать точки касания. В даташите также сказано, что в режиме Monitor последовательный порт закрыт, поэтому коснитесь панели и выполните сканирование ещё раз, прежде чем подозревать подключение.
В чём разница между FT6336, FT6336G и FT6336U?
В даташитах FocalTech указано, что FT6336G имеет 31 канал для панелей до 4.0″, а FT6336DMB — 36 каналов для панелей до 4.5″. Даташит на FT6336U мы не нашли. Библиотека Adafruit присваивает ему ID чипа 0x64 — тот же, что у FT6236U.
Источники
- FocalTech: даташит FT6336G v1.0
- FocalTech: даташит серии FT6X36 v0.3
- ESPHome: FT63X6 touchscreen
- ESPHome: исходный код ft63x6.cpp
- Ядро Linux: drivers/input/touchscreen/edt-ft5x06.c
- Ядро Linux: биндинг device-tree edt-ft5x06
- Espressif ESP-BSP: драйвер esp_lcd_touch_ft5x06
- Adafruit: заголовочный файл библиотеки FT6206