Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.71/260: Рейтинг темы: голосов - 260, средняя оценка - 4.71
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
1

работа с дисплеем на контроллере SPFD5408a

09.02.2015, 19:42. Просмотров 46767. Ответов 46
Метки нет (Все метки)

всем привет уже длительное время пытаюсь нарисовать что либо на цветном дисплее с контроллером SPFD 5408a
в нете нашел инициализационный код но ничего не получается
шина данных паралельная 16 битная на панеле 8 (передаются в 2 этапа) сперва старший а затем младший, чтение дисплеем активируется контактом WR при активном уровне (0) инициализируется ф-ция записи данных в дисплей
в примере инициализации :
LCD_Write_COM_DATA(0x02, 0x0700); // 1 параметр я так понял это индексный регистр а второй его значение
0 RS = 0 (индексный регистр )
1 я перадаю старшее слово индексного регистра 0х00
2 устанавливаю WR = 0 // дисплей читает данные
3 а вот здесь у меня вопрос сколько нужно ждать так и не разобрался ???????
4 WR = 1
5 передать младшее слово 0x02
6 WR = 0
7 WR = 1
......
......

и единственное что я смог сделать это вывести точки в массиве по порядку
проблема в том что дисплей 240х320 в таком случае прорисовывается ооочень долго хотя в 3-м пункте я использую задержку
_delay_us(1);

и точно также с его параметром только RS = 1

все это дело собираю на атмеге 16

вопрос - для установки состояния порта уходит определенное время как определить на микроконтроллере что порт уже установлен в нужное состояние ???

и если кто работал с таким дисплеем помогите пожалуйста

[11.21 Кб]

[2.82 Кб]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2015, 19:42
Ответы с готовыми решениями:

PIC16f84a. Работа с LCD дисплеем
Доброго времени суток! Такая проблема, нужна программа ( ни С или асме) для...

Работа с графическим дисплеем WG12864 из Atmega8
Добрый день. У меня такая проблема. Я тупое существо (похожее на палено), меня...

Работа с дисплеем на Kit-плате MSP-EXP430F5529
здравствуйте. хочу вывести на дисплей платы изображение, которое хочу задавать...

Работа с дисплеем HD44780 в Протеус (ATMega16, ASM)
Писал когда то програмку для выводов символов на ЖКИ. Раньше работала. Решил...

Работа с дисплеем (ATMega128, Code Vision AVR)
Здравствуйте! При попытке настроить нужные ножки МК для работы с дисплеем,...

46
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
18.06.2015, 19:23 21
Цитата Сообщение от iwkimy7
Мой дисплей визуально немножко отличается. Он попиново заточен для Ардуино Уно (которой у меня нет и никогда небыло), и примеров кода тоже не нашел, хоть и спрашивал продавца.

http://www.cyberforum.ru/savedimages/2015/06/18/svtrnddhujsq7eqmdwp.jpg
да, действительно отличается, возможно там и не SPFD5408, предлагаю вам инициализационный код на многие другие контроллеры от таких же цветных тач дисплеев, если вы перепробуете все, то однозначно выясните какой у вас контроллер :)

[20.65 Кб]
0
dosykus_2
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
18.06.2015, 19:26 22
Цитата Сообщение от vodym_123
если вы перепробуете все, то однозначно выясните какой у вас контроллер :)
Предложи уж лучше бубен ...
0
dosykus_2
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
18.06.2015, 19:30 23
Цитата Сообщение от dosykus_2
что spfd5408 это не контроллер а дисплей .
Упс... нашел даташит на spfd5408 . Один момент...

Вообщем вычитывай ID регистр , для spfd5408 он будет 0x5408 , для ILI9320 0x9320.
От этого и бум плясать...
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
18.06.2015, 19:57 24
Цитата Сообщение от dosykus_2
Цитата Сообщение от dosykus_2
что spfd5408 это не контроллер а дисплей .
Упс... нашел даташит на spfd5408 . Один момент...

Вообщем вычитывай ID регистр , для spfd5408 он будет 0x5408 , для ILI9320 0x9320.
От этого и бум плясать...

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


<Изображение удалено>
0
dosykus_2
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
18.06.2015, 19:59 25
Цитата Сообщение от vodym_123
для чтения айди устройства ничего передавать не надо
А где я озвучил что что-то надо передавать????
...
Хоть и надо передавать, передаем 0 -адрес ID регистра... :))))))))))))
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
18.06.2015, 21:03 26
Нигде не озвучивал. Но Видин ни на что и не отвечал :-)
Спасибо, народ. Попробую прочитать.
Точнее, я это уже пытался, но как выяснилось - неправильно, отправлял адрес регистра, а это делать не надо.
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
18.06.2015, 21:07 27
Что касается либы для дисплея - то это я люблю делать, уже несколько дисплеев "обиблиотечил". Здесь можно будет взять на препарирование готовую для ILI9341, я ее перелопачивал уже.
Нужно только инит нормально пройти...
0
dosykus_2
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
18.06.2015, 21:51 28
Все у тебя получиться если по даташиту сделаешь.
Удачи...
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
18.06.2015, 22:43 29
Код
      LCD_DATA_DDR = 0x00;

LCD_CONTROL_PORT |= (1 << LCD_RES) | (1 << LCD_RS) | (1 << LCD_RD) | (1 << LCD_WR) | (1 << LCD_CS);
LCD_CONTROL_DDR |= (1 << LCD_RES) | (1 << LCD_RS) | (1 << LCD_RD) | (1 << LCD_WR) | (1 << LCD_CS);

LCD_CONTROL_PORT &= ~(1 << LCD_CS);
_delay_ms(1);
LCD_CONTROL_PORT &= ~(1 << LCD_RES);
_delay_ms(10);
LCD_CONTROL_PORT |= (1 << LCD_RES);
_delay_ms(100);
LCD_CONTROL_PORT &= ~(1 << LCD_RD);
_delay_ms(1);
UDR=PINA;
LCD_CONTROL_PORT |= (1 << LCD_RD);
_delay_ms(100);
LCD_CONTROL_PORT &= ~(1 << LCD_RD);
_delay_ms(1);
UDR=PINA;
LCD_CONTROL_PORT |= (1 << LCD_RD);
Получаем код 0x0000 на терминалке однако. Вместо ожидаемых 0x5408 или 0x9320.
Дело в какой-нибудь мелкой муйне окажется, как всегда. Только вот отловить ее...
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
20.06.2015, 19:03 30
Цитата Сообщение от iwkimy7
Ти-ши-на... Ничего не понятно. Контроллер написан как SPFD5408, без букв...
еще не пробовали его прочитать ?
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
20.06.2015, 19:09 31
Цитата Сообщение от iwkimy7
Код:
LCD_DATA_DDR = 0x00;

LCD_CONTROL_PORT |= (1 << LCD_RES) | (1 << LCD_RS) | (1 << LCD_RD) | (1 << LCD_WR) | (1 << LCD_CS);
LCD_CONTROL_DDR |= (1 << LCD_RES) | (1 << LCD_RS) | (1 << LCD_RD) | (1 << LCD_WR) | (1 << LCD_CS);

LCD_CONTROL_PORT &= ~(1 << LCD_CS);
_delay_ms(1);
LCD_CONTROL_PORT &= ~(1 << LCD_RES);
_delay_ms(10);
LCD_CONTROL_PORT |= (1 << LCD_RES);
_delay_ms(100);
LCD_CONTROL_PORT &= ~(1 << LCD_RD);
_delay_ms(1);
UDR=PINA;
LCD_CONTROL_PORT |= (1 << LCD_RD);
_delay_ms(100);
LCD_CONTROL_PORT &= ~(1 << LCD_RD);
_delay_ms(1);
UDR=PINA;
LCD_CONTROL_PORT |= (1 << LCD_RD);

Получаем код 0x0000 на терминалке однако. Вместо ожидаемых 0x5408 или 0x9320.
Дело в какой-нибудь мелкой муйне окажется, как всегда. Только вот отловить ее...

если не можете число вывести на дисплей (если нет функций конвертирования числа в строку), попробуйте два порта настроить на выход и к ним подключить светодиоды, в порты присвоить значение считанное с дисплея, не забудьте что считывание нужно проводить в 2 этапа (число 16 битное а шина 8 ), и не забудьте что LCD_RD - активный 0, я в ближайшее время попробую свой прочитать, как получится напишу
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
20.06.2015, 20:24 32
Цитата Сообщение от iwkimy7
Код:
LCD_DATA_DDR = 0x00;

LCD_CONTROL_PORT |= (1 << LCD_RES) | (1 << LCD_RS) | (1 << LCD_RD) | (1 << LCD_WR) | (1 << LCD_CS);
L

Получаем код 0x0000 на терминалке однако. Вместо ожидаемых 0x5408 или 0x9320.
Дело в какой-нибудь мелкой муйне окажется, как всегда. Только вот отловить ее...

УРААА ВСЕ ПОЛУЧИЛОСЬ!!!

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

теперь вы сможете определить какой у вас контроллер

0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
20.06.2015, 20:25 33
светодиоды подключаются к порту Д
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
20.06.2015, 20:28 34
ах да чуть на забыл архивы :)

[23 Кб]
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
20.06.2015, 21:41 35
Спасибо, Видин!
Получил код.
0xBFBF.
Я чичаз херакну дисплей об угол дома...
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
21.06.2015, 09:19 36
Цитата Сообщение от iwkimy7
Спасибо, Видин!
Получил код.
0xBFBF.
Я чичаз херакну дисплей об угол дома...
за что вы его так ?
0xbfbf это значит 49087, дисплея с таким контроллером что то не находит гугл
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
21.06.2015, 09:27 37
Цитата Сообщение от iwkimy7
Спасибо, Видин!
Получил код.
0xBFBF.
Я чичаз херакну дисплей об угол дома...
может быть у вас вот этот s1d19122 ? такой есть в моих кодах инициализации
там в программе сперва считывается старшее слово потом младшее
а на индикаторы сперва выводится старшее (Н) а потом младшее (Л)
так вот если не получилось их сложить во едино то раз старшее слово BF = 191, то вариант остается
только один s1d19122
0
dosykus_2
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
21.06.2015, 09:29 38
Цитата Сообщение от vodym_123
0xbfbf это значит 49087, дисплея с таким контроллером что то не находит гугл
И не найдет .
Код дисплея в хекс и не надо ничего конвертить.
У Жени ничего не считалась .
Жень, сделай пожалуйста фотки своего дисплея . Ну и схему черкани -как подключаешь.
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
21.06.2015, 09:30 39
Цитата Сообщение от iwkimy7
Спасибо, Видин!
Получил код.
0xBFBF.
Я чичаз херакну дисплей об угол дома...
по идее так: оставляете полностью мой код, только заменяете инициализационную последовательность!
вот инициализация :)

[875 байт]
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
21.06.2015, 09:34 40
Цитата Сообщение от dosykus_2
Цитата Сообщение от vodym_123
0xbfbf это значит 49087, дисплея с таким контроллером что то не находит гугл
И не найдет .
Код дисплея в хекс и не надо ничего конвертить.
У Жени ничего не считалась .
Жень, сделай пожалуйста фотки своего дисплея . Ну и схему черкани -как подключаешь.

ааа точно, это же в хекс надо было
0
21.06.2015, 09:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2015, 09:34

Работа с LCD дисплеем HD44780 из МК Atmega16 (GCC)
Здравствуйте, пытаюсь подключить LCD дисплей к микроконтроллеру, скачал...

Проблема с дисплеем MT-10T7
В общем надыбал я при помощи хорошего человека, 5 дисплеев типа MT-10T7, и...

Амперметр на Atmega8 с LCD дисплеем
Может кто то делал или подскажет как написать самый простой амперметр на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru