Юзаем дисплеи от сотовых и других потаскунчиков.

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение спящий »

Подскажите пожалуйста:
У меня получилось настроить чернобелый экран от Nokia 3110, а вот как с Цветными? где можно взять коды на включение экрана, на ввод символов и т.д. Перерыл почти весь инет, там все примеры показаны с библиотекой,причем на СИ(я умею только на асме),есть ли гденить пример без библеотек? И вообще с ним также работать как и с чернобелым? выложите код на асме)
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение HHIMERA »

КАШАК писал(а):А под AVR ничего нет? :roll: В основном интересует подключение к МК.

Цеплять такой дисплей на АВР... печальное зрелище...
Распиновка есть на вертепе... только там в PDF'е две ноги перепутаны...
Смотрите отсюда и дальше...
http://vrtp.ru/index.php?showtopic=1120&st=1380
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
hd44780
Встал на лапы
Сообщения: 132
Зарегистрирован: Вт июл 14, 2009 09:27:37
Откуда: Донецк, Украина

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение hd44780 »

HHIMERA писал(а):Цеплять такой дисплей на АВР... печальное зрелище...


А чё печальное? Я вот сам сижу, курю потихоньку AT91SAM7S256, но щупать разные дисплеи, которые я раньше и не нюхал, буду всё равно AVR-ом, который я знаю, как свои 5 пальцев .... Хоть это и "печальное зрелище" для Вас.
Ибо, если он не заработает, куда мне рыть - в неправильную работу с дисплеем и его командами, либо в кучу ARM-овских регистров и прибамбасов, в которых я ещё путём не разобрался :shock: ? А решать уравнение в одной неизвестной всегда проще, чем с двумя.

Да и перенести потом готовый, рабочий на 100% код работы с дисплеем на другой камень проще :)) . Переписал только функции работы с портом проца и всё ...
Аватара пользователя
BigallS
Опытный кот
Сообщения: 752
Зарегистрирован: Пт апр 15, 2011 21:11:22
Откуда: Россия

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение BigallS »

спящий писал(а):Подскажите пожалуйста:
У меня получилось настроить чернобелый экран от Nokia 3110, ... И вообще с ним также работать как и с чернобелым? выложите код на асме)


Здесь есть http://forum.easyelectronics.ru/viewtop ... f=4&t=1760
Аватара пользователя
КАШАК
Это не хвост, это антенна
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение КАШАК »

HHIMERA писал(а):
КАШАК писал(а):А под AVR ничего нет? :roll: В основном интересует подключение к МК.

Цеплять такой дисплей на АВР... печальное зрелище...
Распиновка есть на вертепе... только там в PDF'е две ноги перепутаны...
Смотрите отсюда и дальше...
http://vrtp.ru/index.php?showtopic=1120&st=1380


Ну почему сразу печальное? Для статичной картинки вполне подойдет, например красивую шкалу сделать и т.п.
Опыт растет прямо пропорционально выведенному из строя оборудованию...
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение HHIMERA »

hd44780 писал(а):
HHIMERA писал(а):Цеплять такой дисплей на АВР... печальное зрелище...


А чё печальное?

Да всё печально...
И ваша попытка освоить AT91SAM7S256... тогда уже сразу, на К172 или К511 делать... или на микрухах обязательно должна сиять надпись "Atmel"??? :)))
И желание переписать готовый код под АВР, а потом обратно...
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение HHIMERA »

КАШАК писал(а):Ну почему сразу печальное? Для статичной картинки вполне подойдет, например красивую шкалу сделать и т.п.

А хранить эту картинку где собираетесь???
Печалька...
"Я не даю готовых решений, я заставляю думать!"(С)
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение спящий »

BigallS писал(а):
спящий писал(а):Подскажите пожалуйста:
У меня получилось настроить чернобелый экран от Nokia 3110, ... И вообще с ним также работать как и с чернобелым? выложите код на асме)


Здесь есть http://forum.easyelectronics.ru/viewtop ... f=4&t=1760




как раз я с ним разобрался,а вот с цветными нефига немогу понять , они работают по такомуже принципу,или с ними работают только через библиотеки?
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Satyr »

hd44780 писал(а):
HHIMERA писал(а):Цеплять такой дисплей на АВР... печальное зрелище...

А чё печальное? Я вот сам сижу, курю потихоньку AT91SAM7S256,

Не трать время зря. Старье.
Перепаяй на ATSAM3Sxxx - по ногам встает вместо без изменений
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Satyr »

HHIMERA писал(а):или на микрухах обязательно должна сиять надпись "Atmel"??? :)))

Правильно. Еще лучше чтоб вобще без атмела -))
Аватара пользователя
КАШАК
Это не хвост, это антенна
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение КАШАК »

HHIMERA писал(а):
КАШАК писал(а):Ну почему сразу печальное? Для статичной картинки вполне подойдет, например красивую шкалу сделать и т.п.

А хранить эту картинку где собираетесь???
Печалька...


Хм. Надо подумать... Пока стоит задача запустить данный дисплей, а там уже посмотрим :)
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Satyr »

Ну запустишь, велико ли достижение ? Дальше то что ? :)))
Удел аврок - только моргать светодиодами, максимум парой-тройкой семисегментников

Бери stm32f2xx в 100 ногом - будет фигарить по экрану только в путь.
Аватара пользователя
КАШАК
Это не хвост, это антенна
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение КАШАК »

Да уже давно собираюсь перейти на более производительные МК, вот с сентября и начну :) Кстати, где можно заказать ARM? А то сильно сомневаюсь, что найду их в магазинах...
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Аватара пользователя
hd44780
Встал на лапы
Сообщения: 132
Зарегистрирован: Вт июл 14, 2009 09:27:37
Откуда: Донецк, Украина

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение hd44780 »

КАШАК писал(а):Кстати, где можно заказать ARM? А то сильно сомневаюсь, что найду их в магазинах...


На Украине - в Киеве. Может ещё в Харькове, но не уверен...

Satyr писал(а):Перепаяй на ATSAM3Sxxx - по ногам встает вместо без изменений

Если буду переходить, я всю плату переразведу. Видели б вы эту уродину - мой первый опыт в PCAD-е 7-летней давности :))) . 10 SMD деталей, а размер как 2 фотографии 10х15 :)) . К тому же ошибки есть, исправленные проволочками.

Зато РАБОТАЕТ!!!
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Satyr »

ну тогда вобще забудь про атмел :)))
хотя сейчас младшие atsam3'ы стоят чуть ли не дешевле младших stm32f1xxx, но, помоему, это временный демпинг всвязи с очень запоздалым выходом на рынок кортексов. во вторых, даже в Москве в розницу штука эта весьма экзотичная.

хотя у меня даже atsam4 лежит :)))
Аватара пользователя
Кислый
Поставщик валерьянки для Кота
Сообщения: 2095
Зарегистрирован: Чт апр 08, 2010 18:50:01
Откуда: Краснодар
Контактная информация:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

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

харе оффтопить. на форуме достаточно тем для сравнения мк, и мест где их купить.
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
Аватара пользователя
CyberVad
Встал на лапы
Сообщения: 142
Зарегистрирован: Сб дек 24, 2011 12:39:03

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение CyberVad »

КАШАК писал(а):Есть дисплей от Samsung s5230, думаю запустить его совместно с AVR. Только вот нигде не могу найти его инициализацию и подключение к микроконтроллеру. Тут писали, что уже запускали данный дисплей, может поделитесь схемой подключения и парой строчек кода? :) Да, сколько вольт подавать на подсветку и как соединить все катоды и аноды подсветки?

Заранее спасибо :))


По просьбам трудящихся написал опус "Я и S5230"

Я - и LCD S5230

Говорю сразу - я не претендую на истину в последней инстанции, я лишь делюсь тем что знаю (что постиг сам и прочитал в сети). Я сделал 2 конструкции с данным дисплеем, так что, как мне кажется, имею право поведать миру.

Дисплей (дисп) очень прост в управлении, питании, подсветке. Контроллер там S6D04D1
Я делал подсветку замкнув все аноды, замкнув все катоды и подав на них +5В через резистор примерно 33 ома (точнее зависит от напряжения питания подсветки и желаемой яркости. Ток особо не мерил, примерно 100мА.
Питается дисп от 3.3В Если от такого же напряжения питается и микроконтроллер (МК), то никакого согласования уровней не надо. Если же питание МК 5В - то я соединял выводы МК с выводами диспа через резисторы 1КОм. В таком случае из диспа ничего не прочитаешь, а мне это и не нужно было.
Подключение. Для этого нужны линии (все - выходы МК) CS, WR, DC, D0...D7. RD можно активно не использовать - но не забудьте его завести на +3.3В (я когда запускал первый подобный дисплей - это был Nok 6300 долго не мог понять - что ж он не работает?? Потом заметил что я забыл о RD и никуда его не подключил!)
Подключается дисп не самым удобным образом. Это надо или напаять разъём на плату и включать в него собственно дисп (но такой разъём негде взять кроме как отпаять со шлейфа которым дисп подключается к плате в телефоне) или взять оный шлейф и включать его в разъём на плате (как в телефоне). Но достать такой разъём (на плату) проблемка. Его можно или купить в каких-то магазинах, или в сервисном центре самсунг или как предлагал controller_m30 использовать разъёмы со шлейфа NOKIA 5300/5200. Он утверждает что они того же размера и того же шага. Ссылка: http://vrtp.ru/index.php?showtopic=1120&st=1440#. Там-же и фотка настоящего самсунгового шлейфа. В любом случае шаг очень мелкий - сделать такую плату не совсем просто.
Распиновка разъёма прилагается. Прим.: это вид на разъём на плату сверху, значит мы видим золотые контакты. Шлейф дисплея будет втыкаться в него и уходить вниз. То есть контакты 1 и 2 будут скраю шлейфа.
Теперь самое интересное - как им управлять.
Я использовал оба раза в горизонтальном виде, поэтому описываю как делал я для такой ориентации. Для другой надо кое-что изменить в инициализации дисплея и ещё по мелочи.

Данные посылаемые в дисп бывают данными и командами.

Как послать байт данных:
1. Линию DC ставим в 1 - это признак данных;
2. На шине анных ставим нужный байт;
3. Линию WR в ноль;
4. Линию WR в единицу. - байт записан
Например:
void LCDData(unsigned char data)
{
A_PORT |= 1 << DC; //Единица Признак данных
PORTC = data;
A_PORT &= ~(1 << WR); //Ноль
A_PORT |= 1 << WR; //Единица
}

Как послать байт команды: точно также, только линию DC в 0 - это признак команды.
void LCDCommand(unsigned char cmd)
{
A_PORT &= ~(1 << DC); //Ноль Признак команды
PORTC = cmd;
A_PORT &= ~(1 << WR); //Ноль
A_PORT |= 1 << WR; //Единица
}

Инициализция. Мне хватало следующих байтов:
void LCDInit(void)
{
_delay_ms(100);
//************* Reset LCD Driver ****************//
A_PORT &= ~(1 << Res); //Ноль
_delay_ms(10);
A_PORT |= 1 << Res; //Единица
_delay_ms(100);
D_PORT &= ~(1 << CS); //Ноль
//************* Start Initial Sequence **********//
LCDCommand(0x11); // SLPOUT
_delay_ms(100);

LCDCommand(0x3A);
LCDData(0x08);

LCDCommand(0x36); //Ориентация верх-низ дисплея
LCDData(0x14); //Шлейф внизу - 0,0 вверху справа
LCDCommand(0x2A);
LCDData(0x00);
LCDData(0x00);
LCDData(0x00);
LCDData(0xEF);

LCDCommand(0x2B);
LCDData(0x00);
LCDData(0x00);
LCDData(0x01);
LCDData(0x8F);

LCDCommand(0x29); // DISPON
_delay_ms(100);

}
Теперь на экране должен быть разноцветный "мусор"
Можно очень обрадоваться :music: и почитать теорию дальше.
Вложения
iX5xETsRQTM.jpg
Моё творение
(44.74 КБ) 1120 скачиваний
post-57-1327096961.jpg
ссылка: http://vrtp.ru/index.php?s=aca825a39fefcfd2fe2b6c8d75b26137&showtopic=1120&st=1560
(60.38 КБ) 1096 скачиваний
Вышел из себя.
Пришел в себя.
Ушел в себя.
И решил больше сегодня никуда не ходить
Аватара пользователя
CyberVad
Встал на лапы
Сообщения: 142
Зарегистрирован: Сб дек 24, 2011 12:39:03

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение CyberVad »

Продолжение.

Каждый пиксель (вернее троица пикселей - R G и B) задаётся тремя байтами записываемыми в диплей по адресу относящемуся к данному пикселю. 0 - яркость 0, 255 - яркость максимальна. Соответственно что бы какой-то пиксель засветился ярко-бело нужно записать 255 255 255 (я пишу не шестнадцатеричные числа а десятичные так как так проще оценить как выбрать нужное число: что будет посредине между 0x00 и 0xFF? наверное проще будет решать между 0 и 255 - это 127), что бы тёмно-зелёно - 0 127 0 и так далее.
Теперь - как записать байты именно туда куда нам надо?
Сначала определяем область вывода на дисплее и потом передаём данные сплошняком. Только надо позаботиться что бы байтов было не больше чем в определённой нами области. Меньше - можно, ничего страшного. То есть надо точно определить высоту области вывода, а ширину можно задать и с запасом.
Для этого команды
LCDCommand(0x2A); //Команда ориетации по Y координате
LCDData(0x0); //Данныеначала Y координат (0)
LCDData(0x0); //
LCDData(0); //Данные конца Y координат (240)
LCDData(240); //
//----------
LCDCommand(0x2B); //Команда ориетации по Х координате
LCDData(0x0); //Данныеначала X координат (0)
LCDData(0x0); //
LCDData(1); //Данные конца X координат (400)
LCDData(0x90); //

Что происходит при последующей посылке данных. Первый байт записывается в верхний левый угол нашей области (в нашем примере это верхний левый угол дисплея). Следующий - под ним. Следующий - под ним. И так до тех пор пока не будет достигнута нижняя граница области. Следующий байт разместится в следующем столбце на самой верхней строке. Следующий - под ним. И так далее и так далее.

Допустим дисп проинициализировался и на экране разноцветный "мусор". Что бы было красиво надо очистить экран. Для этого нужно во все адреса дисплея записать байты нужного цвета.
Давайте сделаем процедуру записывающую три байта нужного нам цвета
Например так:
void SDLCDcolor(unsigned char R, unsigned char G, unsigned char B)
{
A_PORT |= 1 << DC; //Единица Признак данных
PORTC = B;
A_PORT &= ~(1 << WR); //Ноль
A_PORT |= 1 << WR; //Единица
PORTC = G;
A_PORT &= ~(1 << WR); //Ноль
A_PORT |= 1 << WR; //Единица
PORTC = R;
A_PORT &= ~(1 << WR); //Ноль
A_PORT |= 1 << WR; //Единица
}
всё просто - вызываем процедуру с параметрами цвета нужного пикселя и байт за байтом записываем в дисплей.


Теперь собственно очистка дисплея:
void CLSLcd(void)
{
unsigned int i, k; // объявляем переменную i
D_PORT &= ~(1 << CS); //Ноль
//----------
LCDCommand(0x2A); //Команда ориетации по Y координате
LCDData(0x0); //Данныеначала Y координат (0)
LCDData(0x0); //
LCDData(0); //Данные конца Y координат (240)
LCDData(240); //
//----------
LCDCommand(0x2B); //Команда ориетации по Х координате
LCDData(0x0); //Данныеначала X координат (0)
LCDData(0x0); //
LCDData(1); //Данные конца X координат (400)
LCDData(0x90); //
//----------
LCDCommand(0x2C); //Команда записи в память дисплея

for (i = 1; i <= 401; i++)
{
for (k = 1; k <= 241; k++)
{
LCDData(255); // B
LCDData(255); // G
LCDData(255); // R
}
}

}

Теперь дисплей должен быть белым.
Внимательный читатель воскликнет: "Позвольте! А что же мы записываем сначала B потом G и последним R?" Отвечаю - мне лениво было исправлять такое положение дел - это лечится каким-то байтом отвечающим за цвета в процедуре инициализации. Кому будет не лениво - исправьте. А вообще это "на скорость не влияет".

Ух, я устал. :tea: В следующей статье постараюсь рассказать как я выводил символы на дисплей. Если нужно, конечно
Вышел из себя.
Пришел в себя.
Ушел в себя.
И решил больше сегодня никуда не ходить
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Satyr »

Можно проще - вешаем дисплей на МК с интерфейсом под SRAM, DC на адресную линию какую нибудь.
Далее пишем в один адрес в памяти - устанавливаем регистр в дисплее, пишем в другой - устанавлиаем в дисплее значение.
Копирование, заливку вобще по DMA можно организовать.

Получается все совсем примитивно, типа такого (DC на A18)

#define LCD_DATA *((uint16_t *) 0x60080000)
#define LCD_ADDR *((uint16_t *) 0x60000000)

void LCD_WriteReg(uint8_t LCD_Reg, uint16_t LCD_RegValue)
{
LCD_ADDR = LCD_Reg;
LCD_DATA = LCD_RegValue;
}

uint16_t LCD_ReadReg(uint8_t LCD_Reg)
{
LCD_ADDR = LCD_Reg;
return (LCD_DATA);
}

void LCD_WriteRAM_Prepare(void)
{
LCD_ADDR = LCD_REG_34;
}

inline void LCD_WriteRAM(uint16_t RGB_Code)
{
LCD_DATA = RGB_Code;
}
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Сообщение Satyr »

Еще раз напоминаю, что микрочип раздает в исходниках библиотеку с драйверам под большинство встречающихся в дисплеях контроллерах
http://www.microchip.com/pagehandler/en ... llers.html
Ответить

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