ILI9481 TFT дисплей + ATMega16, нужна помощь

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Встал на лапы
Сообщения: 142
Зарегистрирован: Вс авг 23, 2015 08:14:05

Сообщение Denis82 »

Доброго времени суток уважаемые Коты и Кошечки :)

помогите победить дисплей на контроллере ILI9481
дисплей вот такой

Изображение Изображение

подключал к меге16
на самом дисплее выводы не подписаны, но в нете нарыл 2 картинки

Изображение Изображение

к меге подключил так
PD0 - WR
PD1 - RS
PD2 - RST
PD3 - CS
PD4 - RD(FLASH_CS)

PB8-PB15 (VH) - PORTC
PB0-PB7 (VL) - PORTA

т.е. VL0-PA0, VL1-PA1 и т.д.
соответственно VH0-PC0, VH1-PC1 и т.д.

про инициализацию в ДШ ничего не увидел, в нете тоже мало что нашёл, но нашёл переписаную на xmega UTFT библиотеку для ардуино (переписаная либа отсюда )
немного поправил её для atmega, добавил инициализацию драйвера ILI9481 из родной исходной библиотеки UTFT, так-же оттуда взял установку позиции X-Y

но как не шаманил дисплей просто горит белым светом :(

пробовал так

Код: Выделить всё

	DDRB = 0b00000001;		//PB0 выход (светодиод)
	PORTB |= _BV(PB0);		//зажечь
	_delay_ms(4000);
	PORTB &= ~_BV(PB0);	//погасить
	
	
	LCD_Init(ILI9481, LANDSCAPE); 
	PORTB |= _BV(PB0);		//зажечь
	_delay_ms(1000);
	
	LCD_ClrScreen();
	LCD_SetFont(BigFont);
	LCD_SetColor_Word(VGA_WHITE);
	LCD_Text("Fill Screen",0,0,0);
	_delay_ms(1000);
	PORTB &= ~_BV(PB0);	//погасить
зажигаю и гашу светодиод на PB0 для проверки не повисло ли на какой функции, ничего не виснет

подскажите в какую сторону копать ?

проект в atmel studio 6.1 прилагаю
Вложения
TFT_ILI9481_UTFT.zip
(132.18 КБ) 502 скачивания
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

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

Добавлено after 2 minutes 43 seconds:
у менф он был в комплекте с непропаянной ардуиной, что тоже подарило много увлекательных часов :)
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Реклама
Мудрый кот
Сообщения: 1711
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Сообщение Novice user »

Denis82,попробуй это залить,атмега16,кварц 16 мгц
Вложения
Denis82.hex
(13.75 КБ) 856 скачиваний
Родился
Сообщения: 15
Зарегистрирован: Чт май 25, 2017 21:32:27

Сообщение croc19 »

получилось?
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Сообщения: 142
Зарегистрирован: Вс авг 23, 2015 08:14:05

Сообщение Denis82 »

спасибо всем ответившим !

прошивку ещё не пробовал, руки не доходят да и кварца на 16мгц помойму нет ...

кстати на ардуине этот дисплей у меня завелся, так что по идее можно с ардуины код взять, пока было время я с utft вырезал что было лишним для простоты портирования, но повторюсь пока другим занят, закончу с текущей задачей и вернусь к дисплею
Реклама
Встал на лапы
Сообщения: 142
Зарегистрирован: Вс авг 23, 2015 08:14:05

Сообщение Denis82 »

[uquote="Novice user",url="/forum/viewtopic.php?p=3119093#p3119093"]Denis82,попробуй это залить,атмега16,кварц 16 мгц[/uquote]
попробовал, просто белый экран и периодически помаргивает

соединял как в первом посте, питание 5в (как и на ардуине)
Реклама
Родился
Сообщения: 4
Зарегистрирован: Вт мар 31, 2015 23:27:59

Сообщение goldexer »

Ребят, помогите пожалуйста! Я понимаю, что портирование с ардуино драйвера и перепись под атмел студию уже грандиозная работа!
Но всё же вынужден просить помощи, полтора года мучаюсь...

Суть проблемы:
Есть этот дисплей, подключен к ардуино мега, на скомпиллированном скетче из примеров UTFT работает, рисует.
Далее открыл прикрепленный проект в атмел студии, поменял тип контроллера на Mega2560, F_CPU на 16 000 000,

Код: Выделить всё

#define LCD_LO_DDR   	 DDRC
#define LCD_LO_PORT  	 PORTC
#define LCD_LO_PIN   	 PINC

#define LCD_HI_DDR   	 DDRA
#define LCD_HI_PORT  	 PORTA
#define LCD_HI_PIN   	 PINA


#define LCD_WR_DDR   	 DDRG
#define LCD_WR_PORT  	 PORTG
#define LCD_WR_PIN   	 PING
#define LCD_WR_BIT   	 2
 
#define LCD_RS_DDR   	 DDRD
#define LCD_RS_PORT  	 PORTD
#define LCD_RS_PIN   	 PIND
#define LCD_RS_BIT   	 7 

#define LCD_RST_DDR  	 PORTG
#define LCD_RST_PORT 	 PORTG
#define LCD_RST_PIN  	 PORTG
#define LCD_RST_BIT  	 0

#define LCD_CS_DDR   	 DDRG
#define LCD_CS_PORT  	 PORTG
#define LCD_CS_PIN   	 PING
#define LCD_CS_BIT   	 1
 
#define LCD_RD_DDR   	 DDRL
#define LCD_RD_PORT  	 PORTL
#define LCD_RD_PIN   	 PINL
#define LCD_RD_BIT   	 4 
и как результат работы прошивки просто разноцветные пиксели, шум.

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

Я уже сравнил код инициализации хекс в хекс, там всё отлично. Перепроверил выводы, тоже, вроде всё правильно! Порты А и С менял местами.
Ткните, товарищи, носом, пожалуйста, в чем я мог ошибиться.

Сколько лет читаю этот форум, всегда старался держать себя в руках и не постить простые вопросы или некомпетентные ответы. Но уже полтора года будь проклят тот день, когда я сел за баранку этого пылесоса.
А дисплей хорош, ничего не скажешь, достаточно крупный! Я уже отчаявшись заказал на али дисплей на контроллере 9341? потому что код под него генерирует CodeVisionAVR. Ну не выбрасывать же хороший рабочий дисплей...

UPD: ну не может же ардуино компилировать во что-то такое магическое, во что не может студия.
Кстати, у старших мег есть External Memory Interface очень напоминающий FSMC и вроде как встречались подключения похожих дисплеев по этому способу. По идее должно выйти быстрее, нет? Хотя я не лез в принципы работы, может управляющие сигналы разнятся.
Нашел: http://andybrown.me.uk/2013/06/08/a-gen ... e-arduino/
Последний раз редактировалось goldexer Вт авг 29, 2017 10:32:05, всего редактировалось 3 раза.
Встал на лапы
Сообщения: 142
Зарегистрирован: Вс авг 23, 2015 08:14:05

Сообщение Denis82 »

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

ну а ILI9341 у меня прекрасно завелся на 16 меге, проект на AS6.2
Родился
Сообщения: 4
Зарегистрирован: Вт мар 31, 2015 23:27:59

Сообщение goldexer »

ПОБЕДИЛ Я ЕГО!!! ДА-ДА-ДА!

Не полностью, конечно, но уже есть на что посмотреть!

Кстати, ребят, после прошивки ПОЛНОСТЬЮ обесточиваем ардуинку и включаем снова! НЕ РЕСЕТ, а именно полное отключение!
Вложения
TFT_ILI9481_UTFT - копия.rar
(131.64 КБ) 549 скачиваний
Встал на лапы
Сообщения: 142
Зарегистрирован: Вс авг 23, 2015 08:14:05

Сообщение Denis82 »

поздравляю !

а в чем дело было если не секрет ?

так ардуину или мегу ?
Родился
Сообщения: 4
Зарегистрирован: Вт мар 31, 2015 23:27:59

Сообщение goldexer »

Кхм, нууу не совсем победил, но стала включаться. Вообще у меня ардуино мега с микрококонтроллером Atmega2560, прошиваю его через usb-asp. Почему-то не хочет нормально очищать экран, вместо этого просто заливаю его черным цветом. Есть ещё там куча недочётов, но просто я этим занимаюсь на работе, скажем так, пятиминутками. Потихоньку разберусь с ним полностью, добьюсь от него адекватной работы и напишу ещё раз.

Для только что подошедших: экран как у ТС на фотке, вставляется как есть всей своей гребенкой в разъем ардуино-мега на мк 2560. Так вот выложенный проект не работал ни в какую, строго черный экран и всё. Я его чуток подправил, параллельно убираю все ненужные режимы (8бит, др. драйвера, т.е. остаётся только для ili9481 HX8357B). Сейчас уже запускается, это уже хоть что-то! Дальше дело за малым...

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

UPD: Так, заливает экран цветом хорошо, даже очень! За секунду "на глазок" раз пять-семь на частоте меги 16 МГц. Можно попробовать ещё ускорить, если не сохранять состояния порта для инверсии конкретного бита, а просто весь порт дергать и всё. Насколько я смог понять, сейчас первая проблема именно в очистке экрана. Заливает без проблем, а очищать - глюк.

Кстати, вопрос: можно ли отрисовать картинку, а контроллер заставить отобразить всё это дело только после того, как рисование закончено?
Последний раз редактировалось goldexer Ср авг 30, 2017 10:19:13, всего редактировалось 2 раза.
Встал на лапы
Сообщения: 142
Зарегистрирован: Вс авг 23, 2015 08:14:05

Сообщение Denis82 »

goldexer писал(а):Потому что когда у тебя черный экран и под рукой ни анализатора, ни отладчика, ни осциллографа, ничего нет, то остается только гадать, почему не работает. И что с этим делать - тоже только наугад.
очень знакомо, именно поэтому я и отложил его до лучших времен, тех, когда разорюсь на осциллограф и JTAG
Ответить

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