LCD12864 (ST7920) на типа arduino

whoim
Offline
Зарегистрирован: 03.11.2011

 Вот тут написано: 

Wiring:

EN = Arduino Pin 18
RS = Arduino Pin 17
RW = Arduino Pin 16
D7 = Arduino Pin 7
D6 = Arduino Pin 6
D5 = Arduino Pin 5
D4 = Arduino Pin 4
D3 = Arduino Pin 11
D2 = Arduino Pin 10
D1 = Arduino Pin 9
D0 = Arduino Pin 8
CSEL1 = Arduino Pin 14

И там же ниже

setPins(int tRS, int tRW, int tD7, int tD6, int tD5, int tD4, int tD3, int tD2, int tD1, int tD0) Pass a command directly to the screen
tRS = Register Set
tRW = Read/Write
tD7 = Data line 7
tD6 = Data line 6
tD5 = Data line 5
tD4 = Data line 4
tD3 = Data line 3
tD2 = Data line 2
tD1 = Data line 1
tD0 = Data line 0

В списке второй команды отсутсвуют EN и CSEL1. Получается, я не могу перенести их с 18 и 14 пина ардуины?

Второй вопрос. Как я могу работать с этим дисплеем в режиме с меньшим колвом пинов, пусть и медленнее? Есть библиотека? Контроллер ST7920

step962
Offline
Зарегистрирован: 23.05.2011

whoim пишет:

В списке второй команды отсутсвуют EN и CSEL1. Получается, я не могу перенести их с 18 и 14 пина ардуины?

Второй вопрос. Как я могу работать с этим дисплеем в режиме с меньшим колвом пинов, пусть и медленнее? Есть библиотека? Контроллер ST7920

Загляните в библиотеку, найдите там функцию LCD12864::selectCS1(void) - вот с ее помощью и "перенесете их".

Вроде бы есть библиотека для работы по последовательному протоколу (три пина всего заняты) с подобным дисплеем. Если китайский язык не пугает - пробуйте.

whoim
Offline
Зарегистрирован: 03.11.2011

 step962, огромное спасибо!

как прийдет дисплей, буду заморачиваться. По поводу последовательного - сильно страдает быстродействие? Я вроде в своем проекте разрулил колво портов мультиплексорами и сдвиговым регистром, как то так: http://my.jetscreenshot.com/1474/20111113-py0w-161kb . Если можно, "зацените" на предмет работоспособности всего этого, там вроде все понятно должно быть.

Еще вопрос по дисплею, задал его продавцу но пока ответа нет.. Несовпадают названия пинов на проданном и в описании библиотеки. Что то нашел по англоязычным форумам, но не все..

Interface:

PIN1---VSS
PIN2---VDD
PIN3---VO/VDD/NC
PIN4---D/I
PIN5---R/W
PIN6---E
PIN7-PIN14----DB0-DB7
PIN15---PSB
PIN16---NC
PIN17---RST
PIN18---VEE/NC
PIN19---A
PIN19---K

Arduino at http://www.arduino.cc/playground/Code/LCD12864
pins: 
EN = Arduino Pin 18
RS = Arduino Pin 17
RW = Arduino Pin 16
D7 = Arduino Pin 7
D6 = Arduino Pin 6
D5 = Arduino Pin 5
D4 = Arduino Pin 4
D3 = Arduino Pin 11
D2 = Arduino Pin 10
D1 = Arduino Pin 9
D0 = Arduino Pin 8
CSEL1 = Arduino Pin 14

DB0-DB7, R/W=RW, PSB=CSEL1, E=ES? More pins?

Thanks!

 

whoim
Offline
Зарегистрирован: 03.11.2011

по сериал нашел еще http://nopaste.info/5fa51041a7.html 

step962
Offline
Зарегистрирован: 23.05.2011

DB0..7 - DataBus - 8 линий для переллальной передачи данных. Соответственно на Arduin'e - D0...7

CSELx Arduin'ы - скорее всего имеется в виду линия выбора микросхемы (выбор высоким или низким уровнем - надо смотреть в даташите, какой из выводов контроллера отвечает за его активацию при подаче соответствующего сигнала - также необходимо смотреть  в даташите).

По линии R/W (или RW) контроллер указывает драйверу дисплея, в каком режиме тому следует работать - чтение или запись.

Не удалось найти даташита на ST7920? Ищите в сети информацию о том, с каким из LCD-драйверов он совместим - скроее всего, будет 100%-соответствие.

Ищем, например, по магическому сочетанию "12864 datasheet", среди прочего натыкаемся на:

http://kazus.ru/datasheets/search/go/?query=12864&sklad=yes

качаем любой из них, сравниваем со своей железякой, радуемся если совпало по размерам, расположению пинов, деталям описания...

Попробуйте еще искать по "12864 application notes", получите еще кучу ссылок, побродив по которым, рано или поздно наткнетесь на что-то типа.

Информации в Интернете выше крыши! На любой вкус и карман. Только не ленитесь учиться...

whoim
Offline
Зарегистрирован: 03.11.2011

 step962 огромное спасибо! Особенно за алгоритм поиска :)

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

У меня есть пара дисплеев с голубой подсветкой, я их прекрасно запустил. из внешней обвязки переменник на 10К для регулировки яркости. я подключил всё к меге2560 через макетку. у меня на дисплее не было CSEL1, но был PSB - режим передачи, его подтянул к +5В. пин ресет 10к резистором согласно даташиту. буду вопросы пишите что к чему
 

whoim
Offline
Зарегистрирован: 03.11.2011

Adessit пишет:

У меня есть пара дисплеев с голубой подсветкой, я их прекрасно запустил. из внешней обвязки переменник на 10К для регулировки яркости. я подключил всё к меге2560 через макетку. у меня на дисплее не было CSEL1, но был PSB - режим передачи, его подтянул к +5В. пин ресет 10к резистором согласно даташиту. буду вопросы пишите что к чему
 

Спасибо, прийдет - буду писать! Если не получится :)

whoim
Offline
Зарегистрирован: 03.11.2011

 Дисплей еще не пришел но вопрос: верно ли это? ))

Напоминаю - контроллер ST7920

аналоговые же выходы не нужны для него?

step962
Offline
Зарегистрирован: 23.05.2011

whoim пишет:

 [...]

аналоговые же выходы не нужны для него?

А почему бы и нет?

Магические слова на 6-й странице даташита на аналогичный контроллер:

"Power Supply for LED dacklight"

Еще вариант из примерно такого же контроллера (9-я страница):

"A0 - Control/Data Select Signal"

whoim
Offline
Зарегистрирован: 03.11.2011

 А почему бы и нет?
они нужны мне для других целей)))

"Power Supply for LED dacklight"
думаю, резистора вполне хватит)

"A0 - Control/Data Select Signal"
знать бы, что это значит.. что за дата, откуда и куда селект..

cс даташитом на конкретно этот целая засада.. 

step962
Offline
Зарегистрирован: 23.05.2011

whoim пишет:

они нужны мне для других целей)))

Здесь определяющим является не то, что хотите ВЫ, а то, что хочент ОН (дисплей) ;)

Цитата:

думаю, резистора вполне хватит)

Обычно так и поступают

Цитата:

знать бы, что это значит.. что за дата, откуда и куда селект..

Есть на этой линии сигнал - данные на шине D0...D7 воспринимаются как данные, нет - как команда.

Ну или наоборот

Цитата:

с даташитом на конкретно этот целая засада.. 

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

whoim
Offline
Зарегистрирован: 03.11.2011

 а то, что хочент ОН (дисплей) ;)
ну тут конечно :))) Но вроде в обычном режиме (4-8бит парралель) и в реализации "только вывод) не требует он аналогового?

Есть на этой линии сигнал - данные на шине D0...D7 воспринимаются как данные
опять же - подтянуть на +5В значит?

почти со 100-процентной вероятностью они взяли самую распространенную распиновку
да и правда, дисплей еще не приплыл а я уже панику поднимаю. Спасибо!

whoim
Offline
Зарегистрирован: 03.11.2011

 перенес с соседней темы
http://nopaste.info/5fa51041a7.html

http://www.youtube.com/watch?v=m_Rn253_z3o

http://www.dfrobot.com/image/data/FIT0021/LCD12864RSPI.rar serial interface

http://www.dfrobot.com/image/data/FIT0021/LCD12864R.rar parallel interface

 

там ток придется русские буквы самому в свою библиотеку собрать http://mikenz.geek.nz/blog/1006/mindkits-128x64-graphic-lcd-and-arduino/

step962
Offline
Зарегистрирован: 23.05.2011

whoim пишет:

Есть на этой линии сигнал - данные на шине D0...D7 воспринимаются как данные

опять же - подтянуть на +5В значит?

Нет - тут уж придется линию выделить. Ведь дисплей не только данными кормить надо, но и командами.

whoim
Offline
Зарегистрирован: 03.11.2011

 значит, в http://my.jetscreenshot.com/1474/20111117-jvxm-26kb.jpg в принципе все верно? все пины - цифровые? Ну так уже, чтоб успокоится и поверить в себя :)

step962
Offline
Зарегистрирован: 23.05.2011

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

Сколько всего пинов у дисплея? 20? 30? Другое количество?

whoim
Offline
Зарегистрирован: 03.11.2011

 step962
 

PIN1---VSS
PIN2---VDD
PIN3---VO/VDD/NC
PIN4---D/I
PIN5---R/W
PIN6---E
PIN7-PIN14----DB0-DB7
PIN15---PSB
PIN16---NC
PIN17---RST
PIN18---VEE/NC
PIN19---A
PIN19---K

20 штук :)

Model size: 93.0x70.0x 13.0mm
Viewing area: 70.0x40.0 mm
DOT(Size): 0.48x 0.48 mm
DOT(Pitch):0.52x 0.52mm
Voltage: 5V
CONTROLLER:ST7920(8BIT INTERFACE)
128×64
EDITOR:ZY
CRYSTAL:12MHz
RS=P3.0 RW=P3.1 E=P3.2  D0-D7=P1

 

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

никаких аналоговых входов ардуино при подключении дисплея 100% не надо. Там может быть опечатка. На пинах дисплея может быть  V0, что есть регулировка контраста. В моем дисплее сзади было напаянно(с завода) переменник мелкий, которым реглировался контраст. Я лишь притаранил обычный переменник для регулировки яркости светодиодной подсветки.  У меня дисплей с dfrobot.

whoim
Offline
Зарегистрирован: 03.11.2011

  На пинах дисплея может быть V0, что есть регулировка контраста.

PIN3---VO/VDD/NC

whoim
Offline
Зарегистрирован: 03.11.2011

 пин ресет 10к резистором

тоже на +5? остальное вроде в теории понятно
блин, когда же приедет дисплей )) у меня уже печатка проекта нарисована )))

whoim
Offline
Зарегистрирован: 03.11.2011

нашел подспорье. Чтоб не потерять: 

whoim
Offline
Зарегистрирован: 03.11.2011
Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

да помоему ресет на 10К сопротивление на +5В

Есть тут и PSB 

Его надо из даташита накопать, там паралельное или последовательный режим передачи данных, его или к + или к нулю.

whoim
Offline
Зарегистрирован: 03.11.2011

 режим вроде параллельный, но точно неясно - все даташиты на китайском) Ну методом тыка я же определю надеюсь?))

 

step962
Offline
Зарегистрирован: 23.05.2011

 Методом тыка - едва ли.

Лучше перебором. Существует не так много вариаций контроллеров для 20-пиновых (мне встречались еще 24- и 30-пиновые) графических дисплеев 128х64. Пока ждете "свой", скачайте 5-6 даташитов (а еще лучше - демонстрационных исходников) для различных контроллеров, рулящих подобными дисплеями. С весьма высокой вероятностью один из них подойдет. Ведь связь устройства с внешним миром - это не та область, где каждый мелкий производитель пытается стать уникальным. Это могут позволить себе лишь монстры типа Sony, Apple или Microsoft. А дядюшка Минь из провинции Сычуань скорее всего лепит клон наиболее распространенного дисплея.

whoim
Offline
Зарегистрирован: 03.11.2011

 Пришел, начинаю паять. Правда напился в какашку) Если засну пред паялкой, завтра закончу и  отпишусь)

whoim
Offline
Зарегистрирован: 03.11.2011

 В общем то, заработал, но  не могу нормально вывести битмап на него. Размер картинки 122 на 49, перевел в индексированное с палитрой 1бит, подправил, сохранил в .h

Использую библиотеку LCD12864.h. Закинул свой результат в LCDSprite.h

/*  GIMP header image file format (INDEXED): /home/markos/pythonDevelopment/test4.h  */

// TEST BMP, Picture of a Penguin


static int swidth = 122; // change these
static int sheight = 49; // change these


static const prog_char header_data[] PROGMEM = { // add data here
	1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,1,
	0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,1,1,0,
	0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,1,1,0,0,0,
	0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,1,1,1,0,0,0,0,0,
	0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,1,1,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
	1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,
	1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,
	0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
	1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,
	1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,
	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
	1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,
	1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,
	0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
	1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,
	1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,
	1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,
	1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,
	1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,
	1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,
	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
	0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,
	0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
	0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,
	0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,
	1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,
	0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,
	1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,
	0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,
	1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,
	0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,
	1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,
	0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
	0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,
	1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
	0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
	0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
	0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
	0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
	0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
	0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,
	0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
	0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
	0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
	0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,
	1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
	0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,
	1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
	0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,
	1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
	0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
	0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,
	0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
	0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
	1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,
	0,0,0,0,0,0,0,0,0,0
	};

Написал скетч

#include <LCD12864.h>

void setup() {
LCDA.Initialise(); // INIT SCREEN
delay(500); // Some delay
LCDA.Render(); // Start the Rendering process
}

void loop() {
LCDA.DrawSprite(1,1);
LCDA.RenderScreenBuffer(1);
delay(10000);
}

Рисует только в верхней половине экрана, накладывая нижнюю поверх. Куда покопать посоветуете?

 

whoim
Offline
Зарегистрирован: 03.11.2011

 Я немного разобрался. Необходимо заполнять буфер в два захода - первая половина экрана и вторая, потом по отдельности рендер. Решил доработать функцию DrawSprite в библиотеке - она расчитанна только на вывод одного спрайта из файла LCDSprite.h

Я добавил во входные аргументы функции параметры ширины и высоты, и встрял на добавлении параметра - переменной (массива) содержащей обственно битмап. Используется тип prog_char с добавлением PROGMEM, как я понял, для хранения данных в области SRAM. Однако отсутствие базовых знаний си делает свое дело..

Как мне объявить правильно эту переменную (массив) и передать ее в функцию?

Вот объявление:

prog_char uaz1_logo[] PROGMEM = {
}

Вот функция:

void LCD12864::DrawSprite(uint8_t xPos, uint8_t yPos, uint8_t swidth, uint8_t sheight, prog_char header_data) {
int count = 0;
for (int j = 0; j < sheight; j++) {
for (int i = 0; i < swidth; i++) {
if (pgm_read_byte_near(header_data + count) == 1)
this->DrawScreenBuffer(xPos+i,yPos+128+j);
count++;
}
}
}

Не компилится -  no matching function for call. Подскажите, как правильно организовать передачу массива в функцию?

whoim
Offline
Зарегистрирован: 03.11.2011

 Разобрался. void DrawSprite(uint8_t xPos, uint8_t yPos, uint8_t swidth, uint8_t sheight, prog_char* header_data);

в двух файлах - .h и .cpp (про первый где объявление функции я забыл). также пришлось убрать const из объявления.

Спасибо!

whoim
Offline
Зарегистрирован: 03.11.2011

  Да.. Хороших библиотек под ST7920 нет. Куча поделок, которые надо изучать и перерабатывать под себя.. Накидаю ссылок

http://www.hackchina.com/en/r/165941/Lcd12864.c__html
http://www.arduino.cc/playground/Code/LCD12864
http://www.dfrobot.com/image/data/FIT0021/LCD12864RSPI.rar

http://mikenz.geek.nz/blog/1006/mindkits-128x64-graphic-lcd-and-arduino/

step962
Offline
Зарегистрирован: 23.05.2011

 А этой ссылки (www.crystalfontz.com/controllers/ST7920.pdf) почему нет?

whoim
Offline
Зарегистрирован: 03.11.2011

 step962, потому что на  моем уровне даташит бесполезен) Я попробую взять то что мне надо из разных библиотек, свой фонт рисовать прийдется

mitos
Offline
Зарегистрирован: 11.12.2011

получил экран 12864 128x64 Graphic LCD Display module  Controller: ST7920

вроде похоже на то что тут обсуждается .

если я правильно понял то к ардуино надо подключить только 8 проводов данных db0 - db7 rs и psb подключить к +5v а rst и rw посадить на - 

и еще , правильно ли я понял что этот экран может работать и параллельным и последовательным интерфейсом ?

вот ссылка на продавца http://www.ebay.com/itm/12864-128x64-Graphic-LCD-Display-module-Free-pin-header-Arduino-51-284-/250953075560?pt=LH_DefaultDomain_0&hash=item3a6df80b68

whoim
Offline
Зарегистрирован: 03.11.2011

 mitos я встречал видео о работе по SPI, но примеров не находил

mitos
Offline
Зарегистрирован: 11.12.2011

попробовал подключить свой экран по spi - результат нулевой , видимо не умеет так работать .

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

 проверить надо и фидбек продавцу оставить , а время уже почти вышло .

заранее спасибо !

 

whoim
Offline
Зарегистрирован: 03.11.2011

 mitos я встречал видео о работе по SPI, но примеров не находил

или надо по парралельному?

whoim
Offline
Зарегистрирован: 03.11.2011

 http://www.arduino.cc/playground/Code/LCD12864

как вот здесь - все работает

mitos
Offline
Зарегистрирован: 11.12.2011

у меня на экране нет CSEL1  

все что есть :

 
gnd
vcc
0v
rs
rw
e
db0
db1
db2
db3
db4
db5
db6
db7
psb
nc
rst
vout
A
K

и все .

whoim
Offline
Зарегистрирован: 03.11.2011

data pins 8
RST+5v 10kohm
CSEL1(PSB)  
RS/DI 1
RW 1
E 1
VDD +5
VSS GND

whoim
Offline
Зарегистрирован: 03.11.2011

 mitos я встречал видео о работе по SPI, но примеров не находил

я идиот, читайте второе сообщение )

mitos
Offline
Зарегистрирован: 11.12.2011

whoim, спасибо !

 правильно ли я понял , на rst надо дать логический 0 

а на rs rw и e логическая 1 ?

и главное , где прописаны адреса пинов и можно ли их поменять на другие ?

 

whoim
Offline
Зарегистрирован: 03.11.2011

 rs на плюс через 10К

остальные к пинам ардуино согласно библиотеке)) это у меня колво контактов подсчитывалось сколько надо

прописаны - читай выше библиотеку