Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 28.03.2015
Сообщений: 94

TFT дисплей с параллельным интерфейсом

05.01.2021, 23:43. Показов 8039. Ответов 77
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Mega2560 в качестве обучающей платы. Код пишу на Си в AVR Studio 4. Разобрался по урокам как управлять знакогенерирующим дисплеем 16х2, и даже сделал на нем частотомер с которым бегал за домашними с требованием оценить мой успех ))
Теперь хочу освоить управление графическим TFT, также по параллельному интерфейсу. Перебираю варианты из магазина, совсем маленькие не рассматриваю, из "больших" по цене/размеру приглянулись 2.8"(2.8'' LCD 8-Bit Parallel Bus Monitor Module ILI9341 Criver For Mega2560) и 3.5"(480х320, ILI9486).
На али позиционируются как шильды для меги, т.е. по идее она должна их потянуть ... в статических задачах наверняка (текст, цифры). А в графических, например, осциллограф, при условии что АЦП будет внешним?
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2021, 23:43
Ответы с готовыми решениями:

Подключение дисплея с параллельным интерфейсом
Здравствуйте. Большая просьба к товарищам модераторам. Если не по теме, то переместите пожалуйста. Имею дисплей OSD057VA с параллельным...

Подключение внешней АЦП с параллельным интерфейсом
Приветствую коллеги, есть необходимость оцифровывать относительно короткие временные интервалы (порядка 100к сэмплов) с часотой...

TFT дисплей
Добрый день. перерыл половину интернета, последняя надежда на вас. Есть ардуино UNO и Mega. Есть Дисплей сенсорный 2,4 TFT LCD 240x320....

77
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
15.01.2021, 14:23
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Для stm32f103 вот тут говорит, что разогнал до 9 Msps на встроенном АЦП
Согласно ДШ невозможно, но... интересно ). При макс.частоте АЦП (14МГц) внутреннее сопротивления входа составляет 400Ом, чем не так уж и просто померять (https://www.st.com/resource/en... f103c8.pdf, стр. 76). Это при том, что семплинг-тайм 110нс, что также ложится в теорию о 9МГц потока данных (по крайней мере два АЦП могут осуществлять семплирование с этими условиями. Получается, граничная частота 18МГц). Но... смущает tCONV (на стр.75) - 14 таков АЦП времени общей конвертации. Тут, хотя можно забирать данные раньше от АЦП, конвертация минимум занимает 14 тактов, и как автору удалось "обмануть и физику АЦП, и цифровую стейт-машину" - остается загадкой.

PS: по теме - уже больше пяти лет пользую DS211 для домашних и авто-целей. Он собран на STM32F103VCT с FSMC. Развертка оч.быстрая, проблем с динамикой картинки нет. На Mega такое действительно не соберешь. Просто одновременно делать все сразу (и выводить, и собирать данные) конечно, не получится.

PPS: поддержу советовавших поизучать Мегу, для освоения embedded. В библиотеках AVR, по сравнению с другими платформами, гораздо меньше "глаза разбегаются", и можно сфокусироваться на собственных пробах, а не пытаться сразу окунуться в "потрясающие" возможности чужого кода.
Миниатюры
TFT дисплей с параллельным интерфейсом  
0
 Аватар для COKPOWEHEU
4127 / 2705 / 433
Регистрация: 09.09.2017
Сообщений: 12,030
15.01.2021, 14:37
Цитата Сообщение от Kabak Посмотреть сообщение
Анимацию эти дисплеи рисуют из своей памяти, а не по SPI гоняют.
"эти" это какие?
Мы про ili9341, ili9486 и подобные говорим. Их скорости вполне достаточно для отображения анимации с частотой десятки кадров в секунду. Значит, и с куда более скромными потребностями осциллографа справятся запросто. Еще раз: проблема скорее в контроллере будет.
Цитата Сообщение от Kabak Посмотреть сообщение
Парню придётся осваивать Си как минимум, а не готовые скетчи
Так он вроде это и собирался делать. И это можно только приветствовать: человек сам догадался что индусский код ардуинских библиотек ни для чего серьезного не годится. Так что он выбрал себе довольно сложную практическую задачу (создание осциллографа, пусть и с "игрушечными" характеристиками) чтобы попрактиковаться в программировании.
Цитата Сообщение от Voland_ Посмотреть сообщение
и как автору удалось "обмануть и физику АЦП, и цифровую стейт-машину" - остается загадкой.
Насколько я понял, он именно что разгонял камень за пределы значений из даташита. Ну и плюс два АЦП на один канал, естественно. Причем глубоко его статьи я не копал, так что не знаю что у него там с точностью измерений.
А если по даташиту то предел встроенного в f103 АЦП будет где-то 2 Msps (по 1 мкс на преобразование каждого АЦП согласно даташиту).
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
15.01.2021, 15:12
По системе команд ili9486 +/- такой же как и ST7789

Попиксельно гонять данные на таких дисплеях неэффективно. Например, рисовать диагональную линию. Выгоднее обновлять всю картинку или часть экрана прямоугольными блоками, предварительно создав буфер где-то в другой памяти. Создание такого буфера занимает время и + копирование такого буфера занимает время. В это же самое время как-то нужно снимать показания с АЦП. Я сомневаюсь что даже STM32 на 72Mhz потянет такой объём работы в одиночку на разрешении 480 * 320. Тормоза с отображением информации на LCD гарантированы. По-моему нужен процессор пошустрее, чтобы программно всё это обрабатывать и ещё отображать на LCD
0
Эксперт .NET
 Аватар для Rius
13353 / 7808 / 1695
Регистрация: 25.05.2015
Сообщений: 23,790
Записей в блоге: 14
15.01.2021, 15:39
Kabak, у stm есть модели, которые потянут (rgb интерфейс) , но это уже другая история.
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
15.01.2021, 15:50
Да, но после Arduino на базе Mega2560, STM32 в FPGA64 или больше... нужно как-то плату собрать или купить Development Board чтобы хоть как-то начать освоение... маловероятно.

Я вот не подумал, что SPI можно запустить на значительно большей скорости, чем позволяют это делать PIC18
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
15.01.2021, 16:14
Цитата Сообщение от Kabak Посмотреть сообщение
Попиксельно гонять данные на таких дисплеях неэффективно.
Зависит от задачи. Я одно время работал с дисплеем через SPI. Медленно, конечно, но для блочной отрисовки нормально.
Цитата Сообщение от Rius Посмотреть сообщение
у stm есть модели, которые потянут (rgb интерфейс)
Вы о чем?
0
Эксперт .NET
 Аватар для Rius
13353 / 7808 / 1695
Регистрация: 25.05.2015
Сообщений: 23,790
Записей в блоге: 14
15.01.2021, 16:20
О МК с RGB интерфейсом, позволяющим напрямую передавать изображение из буфера ОЗУ на драйвер матрицы.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
15.01.2021, 17:16
Цитата Сообщение от Rius Посмотреть сообщение
О МК с RGB интерфейсом
ну, есть примеры? Просто лет 6-7 назад ST, TI, NXP (по крайней мере) просто заболели поддержкой LCD (aka "ЖК") матриц. То есть не такие как 1602, а напрямую, с генератором отрицательного напряжения. Но это ж не тот "RGB", о котором Вы говорите, верно?
0
 Аватар для COKPOWEHEU
4127 / 2705 / 433
Регистрация: 09.09.2017
Сообщений: 12,030
15.01.2021, 17:17
Цитата Сообщение от Kabak Посмотреть сообщение
Выгоднее обновлять всю картинку или часть экрана прямоугольными блоками, предварительно создав буфер где-то в другой памяти.
Вы хоть представляете себе сколько на это надо памяти? Обычно в контроллере столько нет.
Цитата Сообщение от Kabak Посмотреть сообщение
Создание такого буфера занимает время и + копирование такого буфера занимает время.
А DMA вам на что?
Цитата Сообщение от Kabak Посмотреть сообщение
В это же самое время как-то нужно снимать показания с АЦП. Я сомневаюсь что даже STM32 на 72Mhz потянет такой объём работы в одиночку на разрешении 480 * 320.
Если уж расчет трехмерной графики тянет, то уж с парой линий для осциллографа как-нибудь справится.

Цитата Сообщение от Kabak Посмотреть сообщение
Тормоза с отображением информации на LCD гарантированы.
Даже на AVR можно сделать отображение с достаточной для осциллографа (не для анимации) скоростью. Но вот там действительно придется поскрипеть мозгами. Тем интереснее для ТСа!
Цитата Сообщение от Rius Посмотреть сообщение
О МК с RGB интерфейсом
Что-то вроде такого?
0
Эксперт .NET
 Аватар для Rius
13353 / 7808 / 1695
Регистрация: 25.05.2015
Сообщений: 23,790
Записей в блоге: 14
15.01.2021, 17:20
О STM32F429 и более новых (например, STM32F746NGH6) , с поддержкой TFT.
1
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
15.01.2021, 17:26
Вы хоть представляете себе сколько на это надо памяти? Обычно в контроллере столько нет.
Конечно представляю. Поэтому и ставят внешнюю память

А DMA вам на что?
А зачем он , если памяти нет ? Он как раз и нужен там, где есть память.

В общем, гипотетические проблемы по выводу информации раскрыты.

О STM32F429 и более новых (например, STM32F746NGH6) , с поддержкой TFT.
На нём попробуй собери плату, если ты новичок и ещё освой написание... В общем, интересный и долгий путь.
0
Эксперт .NET
 Аватар для Rius
13353 / 7808 / 1695
Регистрация: 25.05.2015
Сообщений: 23,790
Записей в блоге: 14
15.01.2021, 17:33
Для новичков есть Discovery платы. Там всё разведено, проверено и код прилагается.
0
 Аватар для COKPOWEHEU
4127 / 2705 / 433
Регистрация: 09.09.2017
Сообщений: 12,030
15.01.2021, 17:34
Цитата Сообщение от Kabak Посмотреть сообщение
Конечно представляю. Поэтому и ставят внешнюю память
Зачем ставить лишние микросхемы, когда без них можно прекрасно обойтись?
Цитата Сообщение от Kabak Посмотреть сообщение
А зачем он , если памяти нет ? Он как раз и нужен там, где есть память.
Вы видео посмотрели? Там именно что используется DMA без всяких ненужных микросхем памяти.
Цитата Сообщение от Kabak Посмотреть сообщение
В общем, гипотетические проблемы по выводу информации раскрыты.
Вы имеете в виду "надуманные"? Потому что в реальности особых проблем с этим нет. Весь кадр прекрасно просчитывается "на лету", либо рисуется линиями. Это ведь не анимация, а осциллограф - для него быстродействия хватит даже если попиксельно рисовать.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
15.01.2021, 17:46
Цитата Сообщение от Rius Посмотреть сообщение
О STM32F429 и более новых (например, STM32F746NGH6) , с поддержкой TFT.
The LCD-TFT display controller provides a 24-bit parallel digital RGB (Red, Green, Blue)
and delivers all signals to interface directly to a broad range of LCD and TFT panels up to
XGA (1024x768) resolution with the following features:
• 2 displays layers with dedicated FIFO (64x32-bit)
• Color Look-Up table (CLUT) up to 256 colors (256x24-bit) per layer
• Up to 8 Input color formats selectable per layer
• Flexible blending between two layers using alpha value (per pixel or constant)
• Flexible programmable parameters for each layer
• Color keying (transparency color)
• Up to 4 programmable interrupt events
ОК, понял. Это как примерно и была поддержка LCD-панелей - для оптового покупателя. Ни разу сам не пользовал и не видел, чтобы где-то был такой конфиг, но... что я вообще видел?

PS: для графического суб-контроллера это в принципе проканает (да, тот же осцил - вполне), для всяких IoT, и панелек - тоже. Но для полноценного standalone девайса, имхо, маловато в этом чипе оперативки и памяти вообще.
0
Эксперт .NET
 Аватар для Rius
13353 / 7808 / 1695
Регистрация: 25.05.2015
Сообщений: 23,790
Записей в блоге: 14
15.01.2021, 17:58
Voland_, у таких чипов память можно использовать уже внешнюю. На Discovery демке ОЗУ десятки МБ.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
15.01.2021, 18:35
Цитата Сообщение от Rius Посмотреть сообщение
На Discovery демке ОЗУ десятки МБ.
Нашел:
2,4 "QVGA TFT ЖК-дисплей
SDRAM 64mbits
8МБ, ну не важно - этого вполне достаточно для развертки экрана, и даже больше. Согласен, в таком конфиге можно много чего пытаться строить.

Добавлено через 10 минут
Цитата Сообщение от Kabak Посмотреть сообщение
А зачем он , если памяти нет ? Он как раз и нужен там, где есть память.
А в каком МК у нас "нет" памяти? Для примера, даже в приведенном stm32f103 - 20кб памяти, и этого вполне достаточно во многих задачах, и с использованием DMA тоже.
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
15.01.2021, 18:39
Цитата Сообщение от Rius Посмотреть сообщение
На Discovery демке ОЗУ десятки МБ.
64 МБ. в комплекте дисплей 2,4 "QVGA.
знакомый на такой плате, на дисплей графики выводит. говорит хватает памяти контроллера.
0
1 / 1 / 0
Регистрация: 28.03.2015
Сообщений: 94
15.01.2021, 20:03  [ТС]
Цитата Сообщение от Kabak Посмотреть сообщение
А какова точная цель ? Собрать хоть что-то с использованием упомянутого вами дисплея в 1-м посте
Учебная.
Цитата Сообщение от mode2 Посмотреть сообщение
Теперь хочу освоить управление графическим TFT
Цитата Сообщение от mode2 Посмотреть сообщение
задача не сделать осциллограф, а сделать еще один шажок в освоении мк, т.е. учебная.
Почему именно осциллограф? Ведь у дисплея масса других вариантов использования. Главным образом потому что в основной работе часто использую осциллограф, поэтому и выбрал его на роль "на каком проекте научиться управлять TFT дисплеем". Поверьте, еще один осциллограф мне не нужен, хватает тех что есть. Я его удалю с макетки через пару дней после того как стану "на ты" с дисплеем. Такая же участь постигла частотомер на символьном дисплее.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вы внутрь этого файла заглядывали?
Конечно )
Кликните здесь для просмотра всего текста
#include "lcd.h"

void LCDcom(char b) //функция управления (команды)
{
PORTB=0b00000001;
PORTA=b;
_delay_us(50);
PORTB=0b00000000;
}
void LCDdat(char b) // функция вывода символов (данные)
{
PORTB=0b00000011;
PORTA=b;
_delay_us(50);
PORTB=0b00000010;
}

//-----------------------
void LCDinit() //инициализация
{
_delay_ms(40);
LCDcom(0b00110000);
_delay_ms(5);
LCDcom(0b00110000);
_delay_us(120);
LCDcom(0b00110000);
_delay_us(40);
LCDcom(0b00000001);
_delay_ms(5);
LCDcom(0b00000010);
_delay_ms(5);
LCDcom(0b00000110);
_delay_ms(5);
LCDcom(0b00001100);
_delay_ms(5);
LCDcom(0b00010000);
_delay_ms(5);
LCDcom(0b00111000);
_delay_ms(5);
}

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Возможно, это и есть драйвер. А возможно, только "пульт управления" к нему.
Пульт? Или драйвер?
Если мне такую же штуку нужно написать (подсмотреть у других, слепить из разрозненных кусков, додуматься самому) для TFT, то это и является ближайшей целью на данном этапе.
Разобрал свой старый сониэрик S312, думал есть же цветной дисплей, зачем покупать. Его шлейф поверг меня в шок, 32 контакта на разъемчике размером 10х5мм, не подцепиться. На самом дисплее никакго контроллера нет, голая матрица, очевидно на плате.
0
Эксперт .NET
 Аватар для Rius
13353 / 7808 / 1695
Регистрация: 25.05.2015
Сообщений: 23,790
Записей в блоге: 14
15.01.2021, 20:33
mode2, старые дисплеи телефонов хуже современных. И по скорости, и по методам работы.
К контактам цепляются через специальные коннекторы для шлейфов.
А контроллер может быть на шлейфе или даже на стекле. Такие дисплеи прикольно вырубаются под вспышкой фотоаппарата.

Добавлено через 20 минут
По непотверждённой информации у дисплея Sony Ericsson s312 контроллер ILI9225B. Судя по корпусу, монтаж производится на стекле.
Распиновку шлейфа не нашёл.
0
 Аватар для COKPOWEHEU
4127 / 2705 / 433
Регистрация: 09.09.2017
Сообщений: 12,030
15.01.2021, 20:50
Цитата Сообщение от mode2 Посмотреть сообщение
Пульт? Или драйвер?
Под "пультом" я имел в виду хедер для библиотеки. В вашем случае там все вместе, но в более сложных случаях все же отделяют интерфейс от реализации.
То есть в *.h файл выносят только объявления функций, констант, переменных и всего остального. А код реализации находится в *.c файле. И его нужно тем или иным образом подключать к проекту (одного #include недостаточно).
Вообще, драйвер это программный модуль, обеспечивающий взаимодействие других программ с аппаратурой. В вашем случае это библиотека (код, который те, другие, программы могут вызвать по своему желанию). В больших компьютерах драйвер частенько оформляется в виде самостоятельной программы, которая работает независимо от остальных, но может принимать от них команды, данные и все остальное.
Это был такой небольшой ликбез на пальцах.
Я бы вам порекомендовал писать именно полноценный драйвер (*.h + *.c).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.01.2021, 20:50

TFT дисплей и AVR
Всем привет. Бьюсь неделю, решил попросить помощь зала. Подключаю вот такой TFT дисплей к ATMiko1280. Для начала собрал макет на базе...

TFT дисплей и ATMega8
Никак не могу заставить работать TFT дисплей ST7735, интерфейс SPI. Вроде делаю все как описано тут:...

TFT дисплей на ILI9341
Здравствуйте, пытаюсь вывести картинку на мой дисплей. Функция вывода: void TFT_Image(char const *img, uint8_t x, uint8_t y, uint8_t...

STM32VLDISСOVERY + TFT дисплей. Хелп!!!!
Пытаюсь прикрутить друг к другу. Подключил, читаю нулевой регистр - возвращается 0х9331. Следовательно, контроллер ILI9331. У кого-нибудь...

TFT дисплей + TouchPad как выбрать
Всем доброго времени суток! Я пока что новичок в программировании МК и у меня есть только платка STM32F4Dyscovery:) Нужно запрогать...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru