EDP дисплей не запускается (решено)

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 13, 2020 07:41:02

Сообщение Кислородный »

Драсте.
Есть дисплей EPD 2.9" вот такой
Изображение
и вот чето не получается его запустить. Код инициализации брал с ихнего офиц.сайта https://www.waveshare.com/wiki/2.9inch_e-Paper_Module . Ни по нарытой документации, ни по примерам - чета не хочет работать. Молчит и всё. Логанализатор подключал, байты верно идут. Причем, такой же, но другого размера, 200х200 точек - завелся. А этот не хотит. Дохлый он, чтоль?
Кто нибудь сталкивался с ним? Может там в ихнем коде какая ошибка закралась?

upd: РЕШЕНО, запустился.
Последний раз редактировалось Кислородный Чт фев 13, 2020 21:26:44, всего редактировалось 1 раз.
еавс!
Реклама
Друг Кота
Аватара пользователя
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Сообщение musor »

очень специфична вещь....
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Реклама
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Чт фев 13, 2020 07:41:02

Сообщение Кислородный »

Да, специфический дисплейчик. Но я его наконец победил черт возьми! Не знаю какого черта он не запускался. Наверно при адаптации примера с ихнева сайта гдето чета ошибся.
DSC_1388 (1).JPG
(247.3 КБ) 216 скачиваний
Документация отстойная, и наполовину несоотвествует тому что написано в ихнем примере. В документации вообще не указана ориентация байтов в дисплее. После серии экспериментов нашел дефолтную ориентацию. Начало координат находится в правом верхнем углу (дисплей горизонтально, разъем платы справа). При этом X направлен вниз (от 0 до 127), младший бит внизу. Y направлен влево (от 0 до 295), причем это отрицательная координата Y - изображение зеркально по горизонтали.
Картинка выводится в инверсном виде. 1 - белый, 0 - черный.
Время полного обновления всего дисплея - гдето около 1 с. Частичное обновление пока не пробовал.
Хорошо что в примере даны паттерны (waveform) для обновления дисплея. Но нигде не написано че это такое, за каким оно нужно и почему именно так выглядит. Интуитивно догадываюсь, что это последовательность напряжений на электродах для перетряхивания микрокапсул.

Upd:
После некоторых экспериментов. Да, действительно, паттерн (waveform) для обновления картинки представляет собой последовательность напряжений, стирающих предыдущую картинку. Есть два паттерна - полное обновление и частичное обновление.
Полное обновление занимает около 1 секунды и полностью затирает предыдущую картинку, несколько раз перемешивая микрокапсулы. Картинка при этом несколько раз мигает.
Частичное обновление срабатывает в несколько раз быстрее. Но картинка может быть не чистой. При замене полностью черного на полностью белый экран остается примерно 30-40% черных точек.
В документации советуют после серии частичных обновлений проводить одно полное.
Выбор частичного или полного обновления делается методом загрузки 30-байтного паттерна waveform LUT.

Горизонтальное зеркалирование удалось победить настройкой декремента по оси Y (в ширину) и установкой курсора (SET_RAM_Y_ADDRESS_COUNTER) в начальную позицию [0, 295]
еавс!
Ответить

Вернуться в «Периферия»