ILI9341, Чтение пикселей

Обсуждаем цифровые устройства...
Ответить
Родился
Сообщения: 9
Зарегистрирован: Пн май 02, 2016 13:26:22

Сообщение xneo »

Здравствуйте. Уже второй день мучаю дисплей. Никак не могу нормально реализовать чтение пикселей, которые хранятся в RAM дисплея. Всё остальное работает без проблем, рисует и тд.
Дисплей подключён по SPI (4 pin).
Проблема выглядит следующим образом:
- устанавливаем координаты пикселя (комманды 2A, 2B);
- читаем (2E);
- дисплей нормально отдаёт данные, но... дальше комманда чтения RAM (2E) не реагирует на изменение координат окна и по кругу отдаёт данные из первого запроса. Тоесть прочитать данные из другого участка дисплея не выходит.

На скрине из анализатора видно, как после комманды чтения (2E) дисплей циклически отдаёт 3 байта (RGB) 9C,30,CC и на повторный запрос другого участка никак не реагирует.
Пробовал уже слать всё что можно. Дисплей нормально пишет (рисует), но координаты окна для чтения никак не изменяются.
Подскажите в чём может быть проблема, может кто в курсе.

Скрин из анализатора.
ILI9341_Memory_Read.png
Скрин.
(33.05 КБ) 619 скачиваний
Даташит.
ILI9341.pdf
Даташит.
(3.42 МБ) 398 скачиваний
Реклама
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Сообщение a797945 »

я не специалист в данной теме, но позвольте предположение
может проблема в том, что start end равны, текущие значение равно end, он оно равно и start и команда зацикливается,
и может чтоб порвать круг нужно послать nop.
Реклама
Родился
Сообщения: 9
Зарегистрирован: Пн май 02, 2016 13:26:22

Сообщение xneo »

В даташите это начало и конец интервала. Тоесть они могут быть равны.
К тому же я пробовал и регион 1х1 рх и 2х2 рх и тд.
NOP пробовал тоже.
Родился
Сообщения: 9
Зарегистрирован: Пн май 02, 2016 13:26:22

Сообщение xneo »

Может есть кто, у кого работает чтение пикселей на ILI9341?
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 9
Зарегистрирован: Пн май 02, 2016 13:26:22

Сообщение xneo »

Так, заметил один момент. Дисплей после начала чтения не выходит из этой комманды. Тоесть, все последующие просто игнорирует и продолжает по кругу читать указанную область.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2042
Зарегистрирован: Чт дек 27, 2012 20:46:09
Откуда: Болгария, г. Лом

Сообщение botchin »

Посмотрите read_memory_continue(3E) и что пишут про ней.

Кстати в read_memory_continue(3E) комманда 2E названа read_memory_start(2E)

Сам я не занимаюсь етим дисплеем и здесь (в теме) заглянул случайно.
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Реклама
Родился
Сообщения: 9
Зарегистрирован: Пн май 02, 2016 13:26:22

Сообщение xneo »

Да тоже пробовал уже. Ничего не помогает.

В даташите чётко сказано, что любая комманда должна прерывать чтение.
"Pixels are read from the frame memory until the column register equals the End Column (EC) value or the host processor
sends another command."

Но не прерывает. Запись ведь работает по такому же принцыпу и там всё ок. Такое чувство, что какая-то фигня с дисплеем :)
Ответить

Вернуться в «Цифровая техника»