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

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

09.02.2015, 19:42. Просмотров 46715. Ответов 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
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
29.05.2015, 21:14 #2
Ну как, прогресс появился?
Ко мне тоже приехал аналогичный дисплей, но на SPFD5408. Вроде как они одинаковы, но у меня пока вообще не взлетает...
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
06.06.2015, 19:14 #3
Кто-нибудь из уважаемых форумчан работал с таким дисплеем?
http://www.ebay.com/itm/271708857459?_t ... EBIDX%3AIT
В описании значится SPFD5408, однако не взлетает, перепробовал разные вариации кодов инита. Или вообще не реагирует, или начинает мерцать со страшной силой. Даташит тоже не помог.
Да и описание платы не совпадает (2,4 и 2,8 дюйма в описаниях). Ушатался его запускавши... :(
0
Kytomo8
0 / 0 / 0
Регистрация: 19.07.2013
Сообщений: 423
06.06.2015, 19:29 #4
ID попробуйте прочитать у контроллера дисплея
0
Sykmottir
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
06.06.2015, 23:33 #5
Цитата Сообщение от vodym_123
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
......
......
Из вашего текста не совсем понятно:
1.LCD_Write_COM_DATA(0x02, - может 0x22?
2. По 3, я гонял этот дисплей на частоте 8МГц (если не больше), так что задержка не нужна (в любом случае, если что пойдет не так вы увидите). И если уж совсем точно, то см. таблицу 14-4 ДШ.
4. Ну и на пальцах для AVR - установка бита порта -2 цикла, считывание из памяти -2 цикла. Итого 12 тактов на пиксель, для AVR с 16МГц, это в лучшем случае 15 кадров в сек, в реальности куда медленнее.
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
14.06.2015, 19:37 #6
Всем привет, нет на самом деле я больше с этим дисплеем не работал, просто времени ни на что не хватает, сейчас диплом пишу, скоро защита, все готовлюсь, готовлюсь, учусь.
конечно с дисплеем работать я непременно продолжу, уж очень он привлекательный, кстати приведенные коды полностью рабочие (в самом верху ссылки ) на атмель студио могу целый проект скинуть - весь экран прорисовывается разными цветами. Вот такая сложность возникает - адресация -последовательная (горизонтальная или вертикальная) но построчная, и чтобы сформировать текст нужно все эти пиксели как то прорабатывать в МК а как? - ведь у МК просто не хватит оперативки чтобы сохранить такой массив, думал может если просто 1 строчку буферизировать в памяти тогда еще пойдет, но вот какой алгоритм? а он здесь будет примерно таким же как вывод текста на ЭЛТ дисплей, потому что что у них схожая адресация! Еще там есть специальный режим я в этом пока еще не успел толком разобраться но вот какой - можно в экране создать маленькую адресную область (тоесть в нутри экрана - маленький экран) и таким образом получится примерно такая же система как на дисплее от нокии 3110 (если создать маленький экран 6 * 8), то и шрифты подойдут от стандартной нокиевской библиотеки. :)
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
14.06.2015, 19:38 #7
Цитата Сообщение от Sykmottir
Цитата Сообщение от vodym_123
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
......
......
Из вашего текста не совсем понятно:
1.LCD_Write_COM_DATA(0x02, - может 0x22?
2. По 3, я гонял этот дисплей на частоте 8МГц (если не больше), так что задержка не нужна (в любом случае, если что пойдет не так вы увидите). И если уж совсем точно, то см. таблицу 14-4 ДШ.
4. Ну и на пальцах для AVR - установка бита порта -2 цикла, считывание из памяти -2 цикла. Итого 12 тактов на пиксель, для AVR с 16МГц, это в лучшем случае 15 кадров в сек, в реальности куда медленнее.

все равно слишком медленно
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
14.06.2015, 19:49 #8
Цитата Сообщение от Sykmottir
Цитата Сообщение от vodym_123
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
......
......
Из вашего текста не совсем понятно:
1.LCD_Write_COM_DATA(0x02, - может 0x22?
2. По 3, я гонял этот дисплей на частоте 8МГц (если не больше), так что задержка не нужна (в любом случае, если что пойдет не так вы увидите). И если уж совсем точно, то см. таблицу 14-4 ДШ.
4. Ну и на пальцах для AVR - установка бита порта -2 цикла, считывание из памяти -2 цикла. Итого 12 тактов на пиксель, для AVR с 16МГц, это в лучшем случае 15 кадров в сек, в реальности куда медленнее.

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

но бывают такие же дисплее с таким же контроллером но с 16 битной паралельной шиной данных, а бывают даже и с SPI, принцип работы у них один и тотже
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
15.06.2015, 23:25 #9
vodym_123, после инициализации внешний вид экрана как-то изменяется? Темнееет/светлеет/мерцает ?
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
15.06.2015, 23:27 #10
Цитата Сообщение от vodym_123
на атмель студио могу целый проект скинуть - весь экран прорисовывается разными цветами.)
Буду крайне признателен... У меня пока никак не заводится :(
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
16.06.2015, 07:42 #11
Цитата Сообщение от iwkimy7
Цитата Сообщение от vodym_123
на атмель студио могу целый проект скинуть - весь экран прорисовывается разными цветами.)
Буду крайне признателен... У меня пока никак не заводится :(

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

здесь на фотографии просто плохо видно (полосатый ) но на самом деле я его закрашиваю разными цветами в цикле

0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
16.06.2015, 07:45 #12
Цитата Сообщение от iwkimy7
Цитата Сообщение от vodym_123
на атмель студио могу целый проект скинуть - весь экран прорисовывается разными цветами.)
Буду крайне признателен... У меня пока никак не заводится :(

вот готовый 100% рабочий проект на атмегу16

[25.56 Кб]
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
16.06.2015, 10:57 #13
Спасибо, добрый человек! Буду курить до просветления :)
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
16.06.2015, 17:59 #14
кстати вы же так и не сказали какой у вас интерфейс на дисплее, просто бывают 8,9,16 битные параллельные и SPI интерфейсы но с одним и тем же контроллером, если у вас не 8 битный как у меня, то вам нужно будет переделывать функцию передачи данных, а инициализационная последовательность полностью совпадает у всех :)
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
16.06.2015, 23:50 #15
8 бит, такой же.
Сейчас буду пробовать на меге32.
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
17.06.2015, 00:06 #16
Ти-ши-на... Ничего не понятно. Контроллер написан как SPFD5408, без букв...
0
vodym_123
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 164
18.06.2015, 06:30 #17
Цитата Сообщение от iwkimy7
Ти-ши-на... Ничего не понятно. Контроллер написан как SPFD5408, без букв...
а вы правильно подключаете?
там предполагается что шина данных подключается к порту А: на микроконтроллере А0 подключается LCD Data 0, A1 - LCD Data 1 и так далее. Просто это там нигде не написано.
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
18.06.2015, 18:28 #18
Да правильно подключаю, не первый раз замужем, как говорится...
На платке сигналы расписаны.
0
iwkimy7
0 / 0 / 0
Регистрация: 03.02.2011
Сообщений: 45
18.06.2015, 18:33 #19
Мой дисплей визуально немножко отличается. Он попиново заточен для Ардуино Уно (которой у меня нет и никогда небыло), и примеров кода тоже не нашел, хоть и спрашивал продавца.

http://www.cyberforum.ru/savedimages/2015/06/18/mwzgx5dugkqbpgcjuukmzm.jpg
0
dosykus_2
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
18.06.2015, 19:23 #20
iwkimy7, Жень, поиск показывает что spfd5408 это не контроллер а дисплей .
Контроллер ILI9320 или клон . http://misc.ws/2013/11/08/touch-ssreen- ... duino-uno/
Определись с шиной, скорей всего там i80 - 8bit .
Вычитай регистр 0 - данные сюды .
И фотки платы дисплея, чтоб пины можно прочитать...
0
18.06.2015, 19:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2015, 19:23

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

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

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


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

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

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