Например TDA7294

Форум РадиоКот • Просмотр темы - ili9341 к AtMega 16
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 21:46:45

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 42 ]    , 2,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Ср фев 21, 2018 12:13:29 
Родился

Зарегистрирован: Ср фев 21, 2018 12:05:37
Сообщений: 1
Рейтинг сообщения: 0
Получил индикатор ILI9341, тачскрин (карандаш в комплекте).
Разъем 34 штыря.
Маркировка выводов такая (питание и общий упускаю).
Т_CS, CLK, PEN, F_CS, MISO, MOSI, BL, SDCS, D0…D15, RST, WR,RD, CS, RS.
Контактов на переключение СПИ-8-16 бит нет.
Кое что вроде понятно, но есть вопросы.
Как произвести переключение СПИ-8-16?
Или он будет работать только СПИ-16?
Какое назначение выводов, напр. Т_CS и др, которых нет в даташит на ILI9341?
Спасибо за ответ.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Ср фев 21, 2018 19:16:18 
Электрический кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 128
Зарегистрирован: Чт июн 20, 2013 00:00:58
Сообщений: 1031
Откуда: москва, м.Сходненская
Рейтинг сообщения: 0
T_ххх это относится только к тачу, SDxx к флешке, а так из коробки он работает по параллельной шине.
А так нужно фото...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Ср фев 21, 2018 19:26:38 
Грызет канифоль
Аватар пользователя

Карма: -2
Рейтинг сообщений: 43
Зарегистрирован: Ср янв 17, 2018 13:09:14
Сообщений: 250
Рейтинг сообщения: 0
Mishany писал(а):
T_ххх это относится только к тачу, SDxx к флешке

Как и весь SPI, скорее всего.
T_CS - чипселект для тача, F_CS - чипселект для флэшки, SDCS - чипеселект для SD.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Ср фев 21, 2018 21:15:05 
Родился
Аватар пользователя

Зарегистрирован: Вт окт 10, 2017 20:31:08
Сообщений: 17
Рейтинг сообщения: 0
Привет всем, кто нибудь может подсказать как инициализировать этот дисплей?
(МК - ATMega8A, дисплей - китайский на плате, SPI)

Сейчас делаю так:
вывод CS подтягиваю к земле, LED к питанию (вся схема питается от 3,3 v)
1) Инициализирую SPI микроконтроллера (скопировал из сообщения cgw)
Спойлер//7-Разрешение прерывания от SPI
SPCR^=(1<<SPIE);// SPIE=0;
//6-Включение/выключение SPI
SPCR|=(1<<SPE);// SPE=1;
//5-Порядок передачи данных
SPCR^=(1<<DORD);// DORD=0;
//4-Выбор режима работы (Master/Slave)
SPCR^=(1<<MSTR);//MSTR=0;
//3-Полярность тактового сигнала
SPCR^=(1<<CPOL);// CPOL=0;
/*Полярность тактового сигнала.
0 —генерируются импульсы положительной полярности, при отсутствии импульсов на выводе присутствует НИЗКИЙ уровень;
1 —генерируются импульсы отрицательной полярности, при отсутствии импульсов на выводе присутствует ВЫСОКИЙ уровень*/

//2-Фаза тактового сигнала
SPCR^=(1<<CPHA);// CPHA=0;
/* Фаза тактового сигнала.
0 —обработка данных производится по переднему фронту импульсов сигнала SCK (для CPOL =0 —по нарастающему фронту, а для CPOL =1 —по спадающему фронту);
1 —обработка производится по заднему фронту импульсов сигнала SCK(для CPOL =0 —по спадающему фронту, а для CPOL =1 —по нарастающему фронту) */

//1,0-Скорость передачи
SPCR^=(1<<SPR1);// SPR1=0
SPCR^=(1<<SPR0);// SPR0=0

2) RST в 0 и обратно в 1, жду 100 мс.
3) отправляю команду 0x11, жду 120 мс. (Sleep OUT) (перед отправкой команд DC устанавливаю в 0)
4) отправляю команду 0x29, жду 120 мс. (Display ON)
цикл:
5) отправляю команду 0x2C (Memory Write)
6) отправляю 2 байта данных

На дисплее точек не появляется. Может кто-нибудь помочь?


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Чт фев 22, 2018 09:13:40 
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 7
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 522
Рейтинг сообщения: 0
На дисплее точек не появляется. Может кто-нибудь помочь?

покажи, как настроен порты SPI. Особенно SS


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Чт фев 22, 2018 18:44:52 
Родился
Аватар пользователя

Зарегистрирован: Вт окт 10, 2017 20:31:08
Сообщений: 17
Рейтинг сообщения: 0
(инициализацию вернул обратно свою SPCR=(1<<SPIE)|(1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0);)
Спойлер1) прерывание по завершению передачи данных по SPI разрешено
2) активация интерфейса SPI
3) режим master
4-5) делитель частоты 128 (частота МК 2Mhz)


DDRB=0b11101111; PORTB=0b11111111;
все ножки на выход, кроме MISO.

SS не использую, CS дисплея подтягиваю к земле. (если использую SS - результат тот-же)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Пт фев 23, 2018 08:50:13 
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 7
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 522
Рейтинг сообщения: 0
SS не использую, CS дисплея подтягиваю к земле. (если использую SS - результат тот-же)

возможно, именно тут собака и порылась

дело в следующем:

Цитата:
Если же микроконтроллер находится в режиме «Master» (разряд MSTR
регистра SPCR установлен в «1»), направление передачи данных через вывод
SSопределяется пользователем. Если вывод сконфигурирован как выход,
он работает как линия вывода общего назначения и не влияет на работу мо
дуля SPI. Как правило, в этом случае он используется для управления выво
дом SSмикроконтроллера, работающего в режиме «Slave».
Если же вывод сконфигурирован как вход, то для обеспечения нормаль
ной работы модуля SPI, на него должно быть подано напряжение
ВЫСОКОГО уровня. Подача на этотвход напряжения НИЗКОГО уровня
от какойлибо внешней схемы будет воспринята модулем SPI как выбор
данного микроконтроллера в качестве ведомого, и соответственно, начало
передачи ему данных.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Пт фев 23, 2018 12:27:52 
Родился
Аватар пользователя

Зарегистрирован: Вт окт 10, 2017 20:31:08
Сообщений: 17
Рейтинг сообщения: 0
Контроллер в режиме master, вывод сконфигурирован на выход, получается все правильно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Пт фев 23, 2018 16:42:52 
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 7
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 522
Рейтинг сообщения: 0
Контроллер в режиме master, вывод сконфигурирован на выход, получается все правильно.

ну, тогда надо подключать логический анализатор и смотреть, что там реально происходит.

у меня была такая беда, что я не сконфигурировал SS на выход и SPI не работал


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Пт фев 23, 2018 21:26:20 
Электрический кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 128
Зарегистрирован: Чт июн 20, 2013 00:00:58
Сообщений: 1031
Откуда: москва, м.Сходненская
Рейтинг сообщения: 0
есть рабочий тестовый проект под мегу 328п, можно порезать шрифты и пихнуть в 8мегу
Код:
#define  LCD_CS 2//Chip Select
#define  LCD_CD 1//Command/Data
#define  LCD_RESET 7//LCD Reset
void port_ini(void)
{
   DDRB|=(1<<3)|(1<<5)|(1<<LCD_CD)|(1<<LCD_CS);
   PORTB&=~((1<<LCD_CD)|(1<<LCD_CS));
   DDRD|=(1<<LCD_RESET);
   SPCR |= (1<<SPE)|(1<<MSTR)|(0<<CPHA)|(1<<CPOL);//fosc/2 16MHz/2
   SPSR |=(1<<SPI2X);
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Пт фев 23, 2018 23:32:09 
Родился
Аватар пользователя

Зарегистрирован: Вт окт 10, 2017 20:31:08
Сообщений: 17
Рейтинг сообщения: 0
ozonn, в proteus подключил к мк spi debagger, заметил странную вещь, spi один раз отправляет передаваемый байт + лишний бит, а затем все этот же байт до бесконечности, даже если убрать все задержки и не ждать окончания отправки, он все равно не начнет передавать следующий байт.
Спойлерint main(void)
{
DDRC=0b11111111; PORTC=0b11011111;
DDRB=0b11101111; PORTB=0b11111111;

cli();
spi_init();
sei();

ClearBit(PORTB,0); //Макрос, ножка к Reset дисплея в 0
_delay_ms(2);
SetBit(PORTB,0); //Макрос, ножка к Reset дисплея в 1
_delay_ms(100);

spic(0x11); //отправка команды
_delay_ms(120);
spic(0x29);
_delay_ms(120);

while(1)
{
color0++;
color1++;
spic(0x2C);
spi(color1); //отправка данных
spi(color0);
}
}

void spi_init () //Инициализация SPI
{
SPCR=(1<<SPIE)|(1<<SPE)|(1<<MSTR);//|(1<<SPR1)|(1<<SPR0);
}

void spi(char cmd) //Отправка данных
{
SetBit(PORTB,1); //макрос, ножка к dc дисплея в 1
SPDR = cmd; //отправляем данные по SPI
while(!(SPSR&(1<<SPIF))); //ждем окончания отправки
}

void spic(char cmd) //Отправка команды
{
ClearBit(PORTB,1); //макрос, ножка к dc дисплея в 0
SPDR = cmd; //отправляем данные по SPI
while(!(SPSR&(1<<SPIF))); //ждем окончания отправки
}


Mishany, было бы здорово, у меня и mega 328p есть.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Сб фев 24, 2018 08:55:19 
Электрический кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 128
Зарегистрирован: Чт июн 20, 2013 00:00:58
Сообщений: 1031
Откуда: москва, м.Сходненская
Рейтинг сообщения: 0
Вложение:
TFT9341_V4.rar [180.76 KiB]
Скачиваний: 356
держи
А на кой прерывание по SPI? если обработчика нет? завесить МК?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Вт фев 27, 2018 20:45:35 
Родился
Аватар пользователя

Зарегистрирован: Вт окт 10, 2017 20:31:08
Сообщений: 17
Рейтинг сообщения: 0
Никак не могу разобраться с проектом, при компиляции показывает eror-ы.
[img][img]http://img.radiokot.ru/files/126303/thumbnail/1ip92fmbnp.png[/img][/img]

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Ср фев 28, 2018 11:17:02 
Электрический кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 128
Зарегистрирован: Чт июн 20, 2013 00:00:58
Сообщений: 1031
Откуда: москва, м.Сходненская
Рейтинг сообщения: 1
вот этот компилится, с V4 хз может что то сломал)))


Вложения:
TFT9341_V3.rar [146.98 KiB]
Скачиваний: 368
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Ср фев 28, 2018 21:29:08 
Родился
Аватар пользователя

Зарегистрирован: Вт окт 10, 2017 20:31:08
Сообщений: 17
Рейтинг сообщения: 0
Уррра its working :))
Большое спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Чт мар 01, 2018 10:32:43 
Вымогатель припоя

Карма: 6
Рейтинг сообщений: 7
Зарегистрирован: Чт янв 21, 2016 15:59:10
Сообщений: 522
Рейтинг сообщения: 0
и в чем же было дело?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Вс мар 04, 2018 12:35:36 
Родился
Аватар пользователя

Зарегистрирован: Вт окт 10, 2017 20:31:08
Сообщений: 17
Рейтинг сообщения: 0
Заработало с библиотекой, очень рад что дисплей рабочий. А со своим кодом остановился на том, что после того как убрал прерывания spi - дисплей стал показывать черно-белые полосы, но рисовать по прежнему отказывался, дальше разбираться не стал.
Mishany, можешь подсказать как сделать на основе шрифта 48 шрифт еще большего размера, или в какой программе его можно нарисовать? С функциями понятно, вопрос только в самих шрифтах.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Ср мар 07, 2018 07:28:32 
Электрический кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 128
Зарегистрирован: Чт июн 20, 2013 00:00:58
Сообщений: 1031
Откуда: москва, м.Сходненская
Рейтинг сообщения: 0
TheDotFactory-0.1.4


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Пт май 11, 2018 13:39:49 
Мучитель микросхем

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Ср окт 19, 2011 08:48:27
Сообщений: 443
Откуда: Мать городов русских
Рейтинг сообщения: 0
Народ, кто работал с параллельным 8-бит TFT ILI9341? У меня 2.4" 240x320, пытался прочитать ID - шлёт вроде 0xC0C0C0C0, не могу найти в инете нормального примера подключения и обращения индикатора к МК, почти всё Ардуиновские примеры.

Нашёл пример https://hubstub.ru/display/125-iniciali ... a-avr.html, но там подключение по 16-бит шине, вопрос: насколько я понял, команда (т.е. адрес) и параметры команды передаются по младшим битам 0..7, а уже данные для записи в буфер индикатора используют полную шину?

Ну тогда взял Arduino Uno, запустил среду Arduino IDE, наковырял примеров и раза с 10 скомпилировался скетч, прошил в контроллер, запустился тест индикатора, там было чтение типа контроллера - у меня контроллер отзывается и показывает тест ILI9327, 9341, 9488, ну я оставил ILI9341. Затем прочитал *.hex из контроллера, открыл AVR Stidio, хотел посмотреть как идёт обращение к индикатору - ничего не понял, в коде нет команд sbi/cbi, даже in/out всего несколько, и не к портам. Насколько я понял, компилятор использует lds/sts?

Так, вот вроде как в преферансе - карта слезу любит - поплакался, пришла мысль - раз ID чего-то не читается, можно прочитать статус индикатора (8.2.4. Read Display Status (09h) - чтобы проверить схему и подключение, поскольку юзаю макетку с ATmega8 (переставлю ATmega328), если будет мало памяти.

_________________
Хорошему коту и в декабре - март :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ili9341 к AtMega 16
СообщениеДобавлено: Сб май 12, 2018 18:52:01 
Мучитель микросхем

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Ср окт 19, 2011 08:48:27
Сообщений: 443
Откуда: Мать городов русских
Рейтинг сообщения: 0
Короче, полный песец, пока не подключил логический анализатор к Arduino Uno c подключеным TFT 2.4" 240х320 - не мог втыкнуть, как запустить дисплей. Подключил анализатор, посмотрел 4 сигнала управления и 4 бита данных - всё по даташиту - Chip Select дёргать вниз перед командой управления и отпускать вверх после чтения или записи последнего байта. Пробовал читать ID командой 8.3.23. Read ID4 (D3h) - читаются одни нули, зато чтение статуса дисплея совпало с даташитом - 0x00610000, также совпало чтение ещё некоторых команд статуса. Уже замечательно - тип контроллера определил - ILI9341, дисплей проверил, частично отладил прогу и проверил схему.

_________________
Хорошему коту и в декабре - март :)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 42 ]    , 2,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y