Nextion Enhanced NX4827K043 — 4.3» дисплей + тачскрин + контроллер для взаимодействия с пользователем

 

В прошлом месяце приехало весьма интересное устройство — дисплей с контроллером, встроенной памятью и UART интерфейсом.

Про то как их использовать написано уже много, поэтому я только в общих чертах расскажу, что это за зверь и с чем его едят.

Состоит устройство (язык не поворачивается называть его дисплеем) из

  • Микроконтроллера GD32F103R8T6;
  • SDRAM Winbond W9864G6KH-6 (8 МБ);
  • Флеш памяти Winbond W25Q256FG (32 МБ, 100 000 циклов перезаписи);
  • ПЛИС Altera MAX II EPM570T144C5N;
  • Дисплея 480*272 пикселя с резистивным сенсором нажатий (не касаний!).

Аккуратно собранных вот в таком виде:

Судя по тому, что дорожки от МК, ОЗУ и экрана ведут к ПЛИС, можно предположить, что все данные из ОЗУ на экран проходят через неё, а МК занимается более полезными задачами.

Наружу выведены:

  • Разъём GPIO под шлейф (гребёнки 2.54 мм нет, что плохо). Сразу скажу, что это не то же самое, что GPIO у Arduino или Raspberry pi. Тут оно заточено на подключение кнопок и индикаторов.
  • Разъём с четырьмя контактами: питание (GND и +5V) и UART (RX, TX), провод в комплекте.
  • Разъём для SD карты. Теоретически, когда устройство будет далеко от компа, через неё можно будет обновлять прошивку.

Expansion Board к нему — это плата с 6-ю кнопками, светодиодом, пищалкой и шлёйфом. Выглядит так:

И стоит $5.

Перед дальнейшим чтением рекомендую бегло ознакомиться ознакомиться с

В принципе, это почти всё, что вам понадобится в работе.
Из полезного есть ещё Nextion user manual

Теперь ответим себе на вопрос: «Зачем это устройство создано?».
Экран 480*272=130560 пикселя. Умножим на 2 байта на пиксель и получим размер полноэкранного изображения ровно в 255 кБ.
Флеш памяти у нас 32 МБ. Этого хватит на 128 полноэкранных картинки. Много это или мало? Для видео однозначно мало, а для всяких красивостей фона и элементов управления более чем достаточно.
UART может работать на скорости максимум 115200 бод. Это значит что наша картинка будет передаваться не менее чем за 255*1024*8/115200=18.1 секунды. Так что не то что видео, а даже картинки через него передавать не вариант.
Девайс предназначен для другого. Он предназначен чтобы взаимодействовать с человеком посредством обработки нажатий (да-да — он сам обрабатывает нажатия, для этого не нужен внешний контроллер!) и отображения заранее запрограммированных в него элементов!
К внешнему контроллеру при этом предъявляются очень низкие требования — отправлять и принимать команды (из Nextion Instruction Set) по UART на скорости от 2400 до 115200 бод. С этим может справиться даже какой-нибудь ATtiny24A с 2 кб флеша и 128 байтами ОЗУ без кварца, а пользователю при этом будет отрисовываться многомегабайтный интерфейс со всякими красивостями.

Устройство предназначено для взаимодействия внешнего контроллера с человеком. Попробовал сделать пример взаимодействия и настройки хотя бы того что есть в самом устройстве и плате расширения. Вот что получилось (обратите внимание, что внешний контроллер при этом не используется, всё реализовано средствами самого «дисплея»):

HMI файл работа которого показана на видео
Внешнему контроллеру при этом можно отправлять по UART короткие посылки.
К сожалению, качество видео очень плохое. Для оценки качества экрана сделал две фотографии:


Достоинства:

  • Прост и изучении. За пару часов можно с нуля разобраться.
  • Быстрая разработка, есть визуальный редактор.
  • Качественные компоненты. Например, флеш память на 100 000 циклов перезаписи.
  • Отладчик. Можно вначале поиграться, а потом решить покупать или нет.
  • Резистивный сенсор. Можно нажимать ногтём или любым стилусом.
  • Экран матовый.

Недостатки:

  • Цена. $55 — это много за такое устройство (с Expansion Board).
  • Весьма скудная библиотека компонентов. Встроенный язык тоже не очень. Вот пример очень неудачного ограничения:

    When configure a GPIO to input binding mode, only components in current page can be bind. It is recommended to put the instruction in the preinitialize event, because binding event wont not be triggered after page refreshing or switching.

    Т.е. перебиндить аппаратные кнопки после перехода на другую страницу не получится.

  • Мерцание при обновлении стандартных компонентов. Замечено у Gauge и Waveform.
  • Не нашёл поддержки картинок с прозрачностью.
  • Требователен к источнику питания: 4.75-7 В и средний ток 250 мА. При просадке напряжения, дисплей начинает мигать.
  • Только UART. Могли бы сделать общение с ним ещё по SPI и I²C.
  • Вывод GPIO только под шлейф (гребёнку 2,54 мм можно впаять только в Expansion Board), нет АЦП.

Хотя последние два пункта — это из серии «хотелось бы иметь».

В целом, создалось впечатление весьма качественно сделанного устройства с рядом мелких недоработок.

Рекомендовать этот девайс могу только тем, для кого быстрая разработка и качество важнее цены.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *