Проблема ЖКИ128х64 на ST7920.

kriks
Offline
Зарегистрирован: 23.04.2016

Всем привет. Столкнулся с таким экраном 128х64 на ST7920.

Библиотека U8glib

Экран вроде как работает, но что-то не так как должен. Если кто сталкивался с такой проблемой. Помогите пожалуйста.

AmateurFF
Offline
Зарегистрирован: 02.02.2015

А как он подключен? 

 

kriks
Offline
Зарегистрирован: 23.04.2016

RS на 17 ногу меги

R/W на 16 ногу меги

E на 18 ногу меги

PSB на землю

Ну и питание экрана 5В.

 

AmateurFF
Offline
Зарегистрирован: 02.02.2015

У меня похожая картина была при подключении на аппаратный SPI вместе с SD картой.

Прикол оказался в том, что при CS = 0 нельзя допускать изменений на  RW(SID*) и E(SCLK*). 

 Из Datasheet ST7920: "When chip is disabled, SID and SCLK should be set as “H” or “L”. Transcient of SID and SCLK is not allowed."
kriks
Offline
Зарегистрирован: 23.04.2016

Что-то я Пина CS не могу найти.

 

AmateurFF
Offline
Зарегистрирован: 02.02.2015
kriks
Offline
Зарегистрирован: 23.04.2016

Сейчас попробую.

kriks
Offline
Зарегистрирован: 23.04.2016

А у вас случано нет куска кода. Что-то не могу сообразить где эти параменты ставить.

AmateurFF
Offline
Зарегистрирован: 02.02.2015
Думаю вот так:
1const int enLCD = 18;
2const int csLCD = 17;
3const int rwLCD = 16;
4U8GLIB_ST7920_128X64_4X u8g(enLCD, rwLCD, csLCD);

 

 

 

 

kriks
Offline
Зарегистрирован: 23.04.2016

Так я делал.

Это есть в примерах библиотеки.

U8GLIB_ST7920_128X64_4X u8g(18, 16, 17);    // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17

Но все равно полосит экран.

 

AmateurFF
Offline
Зарегистрирован: 02.02.2015

Другие примеры так же отрабатывают? 

Проверь землю, питание. Можно попробовать на другие выводы меги переключить.

kriks
Offline
Зарегистрирован: 23.04.2016

Взял этот пример https://github.com/Porokhnya/GreenhouseProject

Там такой же экран. Схема подключения есть, все подключил. (Уже другие пины) все равно на экране полоска и некоторые символы как рассыпались.

kriks
Offline
Зарегистрирован: 23.04.2016

Если кто использует эту библиотеку и результат хороший, то скорей всего у меня бракованный экран.

AmateurFF
Offline
Зарегистрирован: 02.02.2015

Я использую https://github.com/olikraus/u8glib

 

kriks
Offline
Зарегистрирован: 23.04.2016

Ну да. Она. И с таким экраном все хорошо? Подключаете как я подключал?

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

Вы подключились правильно, иначе никакого изображения бы небыло.

Скорее всего мапинг строк в вашей библиотеке отличается от мапинга купленого экрана.

Обясняю:

Экран делится на 8 горизонтальных строк высотой по 8 пикселей. Скорее всего начальный адрес заливки в память экрана начинается с 3й строки. Первые две строки не заливаются и не очищаются.

Ищите другую библиотеку.

Я использую ST7565

kriks
Offline
Зарегистрирован: 23.04.2016

Спасибо. Попробую отпишусь.

kriks
Offline
Зарегистрирован: 23.04.2016

Проблема решилась. Всем спасибо.

Что я сделал? Снял рамку экрана, достал резинки (контакты) экрана, протер спиртом, собрал. Немного помучаясь выставлением всех дорожен :) и вуаля! Все заработало и по той распиновке что писал выше. И библиотека работает u8glib

kriks
Offline
Зарегистрирован: 23.04.2016

Кому интресно, хороший пример меню http://itfap.ru/read/Realizaciya_mnogourovnevogo_menyu_dlya_Arduino_s_di...