Подключение дисплея GMG12864-06D на ST7565R
- Войдите на сайт для отправки комментариев
Чт, 27/12/2018 - 09:20
Помогите подключить дисплей на ST7565R
ТТХ:
Название: ЖК-дисплей модуль
Модель: GMG12864-06D
Матричный: 12864
Размеры: 61,8*45,8*6,8
Размер окна: 58*28
Драйвер IC: ST7565R
IC: 20L16S1Y упрощенный китайский
Температура:-20 градусов + 70 градусов
Напряжение: 3,3 В
Режим интерфейса: интерфейс SPI

фото 

Не пойму, что куда подключать. Библиотека при подключении hardware SPI просит указать
cs, dc, reset подключение, на дисплее же контакты
cs
rse
rs
scl
si
vdd - питание
vss - земля
a - подсветка
k - подсветка
ic_scl
is_cs
ic_so - наверное MISO
ic_si - наверное MOSI
залазим в комменты и видим что подключается 5 пинами (кроме питания)
в библиотеке они определяются как /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8); только что куда подключать?
Во первых, мусью, представьте ссылку на библиотеку и Ваш контроллер. Во вторых - прочитайте про SPI - там как раз пять - "дата туда", "дата обратно", "синхро", "признак передачи", "выбор устройства". Кстати MOSI и MISO могут быть в полудуплексе.
"представьте ссылку на библиотеку"
https://github.com/olikraus/u8g2/
на контроллер выше писал
https://www.lcd-module.de/eng/pdf/zubehoer/st7565r.pdf
пины расписаны на 20 стр., но там нет таких обозначений, как на плате
Нашел в faq, что dc пин часто обозначается как rs
rse пин, судя по схеме - это просто ошибка, должно быть rst
clock это скорее всего scl
осталось найти пин data, причем если использовано 5 пинов с конца платы, то остается только si
пойду включу паяльник
upd: картинка появилась, но сдвинута на 3 пикселя и шрифты отзеркалены. В библиотеке есть функция flip, но не помогает
Запустил уже в новом году, библиотека u8g2
работает через настройки для U8G2_ST7565_ZOLEN_128X64_F_4W_SW_SPI u8g2
но надо выставить контрастность u8g2.setContrast (80);
русские шрифты поддерживает, вот полный список: https://github.com/olikraus/u8g2/wiki/fntlistall
русские ищутся по названию cyr в имени шрифта. Памяти только жрет много, в меге 18 процентов динамической отьело сразу ( с двумя добавленнми шрифтами)
Тему можно закрывать.
А кто подскажет как запустить ее на тестере маркуса ESR метре транзистортестере ?
Там задействовано меньше линий и названия не те.
https://vrtp.ru/index.php?act=Attach&type=post&id=692372
Спасибо.
В скетче FPS написано раскоментируйте строку конструктора, я раскоментировал и получил ошибку.
Как ошибка переводится?
сообщает что ожидается закрывающая кавычка но ее не появилось до ;
Я уже увидел, причем здесь.
В среде цвета вырви глаз ничего не видно нормально.
библиотека чрезмерно большая и кто-то делал без зацикливания ?
Кстати на тестере маркуса сносно запускается вариант: U8G2_ST7565_ZOLEN_128X64_F_4W_SW_SPI
Можно использовать как заготовку для поделок :)
В ней есть какой-то "чисто текстовый режим". А "зацикливание" - экономит RAM под буфер. Без этого ещё меньше ресурсов остаётся.
сообщает что ожидается закрывающая кавычка но ее не появилось до ;.....
Ух ты оказывается это кавычка! А я её скобочкой называл :-(
Теперь понятнее...
Эти дисплеи только в режиме записи работают ? Внутреннюю память контроллера считать нельзя ?
Я думаю что мешает просто записать на дисплей текст как в 1602 текстовый и все, у него че конденсаторная память и все забудет если не обновлять ?
А еще вопрос есть ли в библиотеке опция переворачивания изображения, у меня получается тестер маркуса наоборот надо переворачивать... ((
В конструкторе первый параметр:
https://github.com/olikraus/u8g2/wiki/u8g2reference#carduino-example
О, спасибо!
Еще вопрос, кто-то запускал скетч iconmenu ?
У меня на экране вообще ничего не отображается.
Библиотека всегда использует буфер в RAM ?
Почему нельзя просто передать в память экрана содержимое моей переменной строковой ?
Тут же написано черным по белому:
U8g2 also includes U8x8 library. Features for U8g2 and U8x8 are:
Тут же написано черным по белому:
Спасибо ,я почему-то искал по слову buffer и ничего внятного не нашел поиском о методах передачи. Хорошо что есть люди которые читают полностью текст описания :)
Библиотека описана просто ужасно.
Без примеров.
Например:
clearDisplay
u8x8
: A pointer to the u8x8 structure.---------------------------------
В каком месте здесь, я (или прочий начинающий и не очень) должен догадаться что надо вставить в код ?
Мне пришлось пошариться в сети что бы через 5 минут написать правильно
u8x8.clearDisplay();
Библиотека описана просто ужасно.
Напиши автору своё громкое "ФИ". Можешь прислать ему мешочек овечьих какашков.
Напиши автору своё громкое "ФИ". Можешь прислать ему мешочек овечьих какашков.
[/quote]
Обязательно ему напишу.
На экране появляется какой-то мусор, может есть у кого идеи как его убрать и в чем причина ?
( если повернуть изображение то токи меняют место но все так же в 0 и 3 колонках, хаотично появляются при каждом включении после вывода строчки)
У меня так было на дисплее - один из драйверов углиба рисовал нормально, но были точки сбоку. Перебирал все, регулировал контраст - нашел более-менее. Но сильно не заморачивался.
но это же не эстетично, неправильно,что-то надо делать, как-то решать, с этим нельзя жить, нельзя смириться!
https://github.com/robsoncouto/ST7565-T3
Библиотека допиленная под этот тестер, есть пример с демкой.
Все уже настроено, без правки кода, после компиляции все выводит на экран.
Только режим с буфером, весит 6кб +1кб буфер + переменные.
Отписался автору U8x8
По-моему адрес начала памяти экрана указан неверно, поэтому пиксели эти есть и не стираются.
И u8x8.drawString(0,0,"Hello World!"); начинается не с первого столбца.
Подскажите, как подключить этот экран:
Здравствуйте! А кто подскажет, как этот дисплей переваривает логические уровни 5V той же Arduino Nano? Ведь питается модуль от 3.3V. Или ставить делители/преобразователь уровней?
Всем привет. Купил один дисплейчик GMG12864-06D ver. 2 на пробу, столкнулся с такой же проблемой, как в посте 22.
У меня был готовый код для работы с WO12864A1-TFH, использовал в старом проекте. И один экземплярчик в наличии, работает беупречно. Не понимаю, в чем проблема, контроллер вроде одинаков, либо ST7565R точно, как пишут китайцы, ибо с другой буквой, но система команд у всей группы ST7565 идентична. В первые 4 левых столбца каждой страницы не записываются данные. Следовательно, там остается мусор в ОЗУ, который выводится в ввиде хаотических точек. Кто подскажет, что не так, почему такое различие Winstar и китая? И это, кстати, еще не все проблемы. Если первая проблема выглядит системно, поскольку уже встречалась, то вторая совсем непонятна. Периодически на дисплее пропадают части изображения, затем восстанавливаются. Тут я не могу сказать, самопроизвольно ли восстанавливаются, поскольку раз в сек обновляю статическую картинку, возможно восстанавливается и повторной записью. Также участки изображения меняются местами, затем опять же восстанавливаются. И последнее, иногда, не каждый раз, через некоторое время после начала работы изображение становится практически невидимым. Как будто контрастность уменьшается, изображение еле различимо. Через некоторое время бывает пропадает вовсе. Что это, дефектный экземпляр? Второго такого пока нет, с чем сравнить. Да и желание покупать пропало.
Удалил-разобрался уже
Привет!
А как включить подсветку на этом дисплее?
Есть пины А и К для подсветки. Но не ясно что там за светодиод стоит:
1) Какой резистор подключить? И вообще, нужен ли резистор (может там уже есть)?
2) Какое напряжение подавать?
А и К наерно анод и катод светодиода подсветки.
1. Анод на плюс, через резистор 220 Ом, катод на GND
2. 5В для начала, потом можно попробовать зажечь от 3.3
А и К наерно анод и катод светодиода подсветки.
1. Анод на плюс, через резистор 220 Ом, катод на GND
2. 5В для начала, потом можно попробовать зажечь от 3.3
Спасибо! Попробовал на 5 вольт. Работает!
Правда я Анод на минус кинул.
Попробовал на 5 вольт. Работает!
Правда я Анод на минус кинул.
Походутам лампочка Ильича вместо светодиода, ватт на сто ))))
Вот кстати тетрис под экран с просторов необъятного...
А серьёзно, наверно можно экраном и без графической библиотеки управлять, не?
Что-то я сомневаюсь что можно уложиться. Там же кроме стакана много чего еще. Например счет хранить надо, управление (джойстик я хотел попробовать добавить) возможно займет памяти.
Да мне без разницы. Тетрис это конечная цель с этим дисплеем. Спасибо за ссылку и код. Буду разбираться.
А серьёзно, наверно можно экраном и без графической библиотеки управлять, не?
Вы лучше объясните, как Вы считали, что осталось 250 байтов?
Если это Атмега328, то куда ушли остальные 1798 байтов?
Вы лучше объясните, как Вы считали, что осталось 250 байтов?
Если это Атмега328, то куда ушли остальные 1798 байтов?
Arduino IDE показывается эти данные после компиляции. У меня на всех примерах из этой библиотеки от ОЗУ оставалось 250-300 байтиков. А один пример вообще не хотел загружаться, там уже был перебор в -1000 байт. То есть явно расчет на Мегу.
Но пока нет времени так глубоко разбираться с SPI. Хотел побыстрому разобраться с этим дисплеем при помощи готовых библиотек.
Библиотека и SPI - вещи ортогональные. Можно разобраться с одним, не затрагивая другое.
Но пока нет времени так глубоко разбираться с SPI. Хотел побыстрому разобраться с этим дисплеем при помощи готовых библиотек.
Библиотека и SPI - вещи ортогональные. Можно разобраться с одним, не затрагивая другое.
Вы меня не поняли. Кроме Ардуино еще дом строить надо и деньги зарабатывать. Остается времени с гулькин нос)))
Arduino IDE показывается эти данные после компиляции. У меня на всех примерах из этой библиотеки от ОЗУ оставалось 250-300 байтиков. А один пример вообще не хотел загружаться, там уже был перебор в -1000 байт. То есть явно расчет на Мегу.
Вот в этом и проблема: "IDE показала" вместо того, чтобы "сам посчитал".
Библиотека скорее всего с экранным буфером (от него, кстати, тоже можно избавиться), это 1024 байта памяти. Сверх этого библиотека может использовать еще 10-20 байтов. Где остальные 700-750 байтов?
Вот в этом и проблема: "IDE показала" вместо того, чтобы "сам посчитал".
Библиотека скорее всего с экранным буфером (от него, кстати, тоже можно избавиться), это 1024 байта памяти. Сверх этого библиотека может использовать еще 10-20 байтов. Где остальные 700-750 байтов?
Вы наверное с легкостью разбиратесь в этом))) Сам посчитать, избавиться от экранного буфера. Теоретически конечно все хорошо звучит. Но я там был (в коде библиотеки). Там мне на неделю разбираться. Библиотека писалась явно давно причем на разный набор дисплеев (или контроллеров дисплеев). Кода очень много. Даташит не лучше.
В общем мне сейчас либо другая библиотека нужна. Пока не нашел. Которая не кушает так много ОЗУ. Либо нужны конкретные настройки для этой библиотеки. Тоже пока не нашел в их инструкциях как уменьшить поедание ОЗУ (кроме текстового режима, там все хорошо).
Вот кстати тетрис под экран с просторов необъятного...
Код самого тетриса мне не нужен (он как пример взят, что уже было кем-то сделано на Ардуино, мол тетрис для дисплея Нокиа сделали, хватило там ОЗУ, а для этого дисплея нельзя сделать, так как ОЗУ остается 250 байт). Мне нужен код для работы с этим дисплеем, но чтобы ОЗУ было более-менее свободно.
По ссылке я прошелся. Спасибо за отклик, но это не подходит. Там о другом дисплее идет речь (OLED какой-то). Это не подходит. В данной теме разбирается дисплей ST7565_ERC12864 (у меня к тому же версия 2.0).
Код самого тетриса мне не нужен (он как пример взят, что уже было кем-то сделано на Ардуино, мол тетрис для дисплея Нокиа сделали, хватило там ОЗУ, а для этого дисплея нельзя сделать, так как ОЗУ остается 250 байт). Мне нужен код для работы с этим дисплеем, но чтобы ОЗУ было более-менее свободно.
По ссылке я прошелся. Спасибо за отклик, но это не подходит. Там о другом дисплее идет речь (OLED какой-то). Это не подходит. В данной теме разбирается дисплей ST7565_ERC12864 (у меня к тому же версия 2.0).
Так в примере тетриса как раз автор не пользуется графической библиотекой, дисплеи разные-стратегия одинаковая :-)... в теме по ссылке как раз о ней, о стратегии. А так конечно надо искать библиотеку на полбуфера для экрана. Такая вроде даже есть.
...Там о другом дисплее идет речь (OLED какой-то). Это не подходит. В данной теме разбирается дисплей ST7565_ERC12864 (у меня к тому же версия 2.0).
...А так конечно надо искать библиотеку на полбуфера для экрана. Такая вроде даже есть.
Улыбнуло.
khusamov, судя по маркировке, Ваш дисплей имеет разрешение 128*64 пикселя. А, судя по занимаемому библиотекой объему, используется экранный буфер (ничем другим объяснить расход более 1000 байт нельзя). Так вот, OLED дисплей, который здесь упоминается, имеет такой же по разрешению экран и такую же (или очень сходную) организацию видеопамяти. Но гораздо более распространен, чем Ваш. Поэтому Вам и посоветовали воспользоваться наработками именно для него.
lilik, я не знаю, что такое "полбуфера", но если имеется в виду буфер на полэкрана, то для тетриса достаточно буфера где-то на 20-24% экрана, а то и кратно меньше. Минимально - 24 байта (но можно, думаю, ограничиться и 4-8 байтами). Думаю, при желании весь тетрис можно было бы уместить в 128 байтах (насчет 64 - уже не уверен).