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

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

05.01.2021, 23:43. Просмотров 2757. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2021, 23:43
Ответы с готовыми решениями:

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

Дисплей TFT 160x128 RGB и плата Arduino Mega 2560 + WiFi ESP8266 (micro usb)
Здравствуйте. Пользуясь случаем задам в этой теме вопрос. Есть дисплей TFT 160x128 RGB и плата...

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

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

77
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
15.01.2021, 14:23 41
Цитата Сообщение от 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, по сравнению с другими платформами, гораздо меньше "глаза разбегаются", и можно сфокусироваться на собственных пробах, а не пытаться сразу окунуться в "потрясающие" возможности чужого кода.
0
Миниатюры
TFT дисплей с параллельным интерфейсом  
2743 / 1692 / 350
Регистрация: 09.09.2017
Сообщений: 7,064
15.01.2021, 14:37 42
Цитата Сообщение от Kabak Посмотреть сообщение
Анимацию эти дисплеи рисуют из своей памяти, а не по SPI гоняют.
"эти" это какие?
Мы про ili9341, ili9486 и подобные говорим. Их скорости вполне достаточно для отображения анимации с частотой десятки кадров в секунду. Значит, и с куда более скромными потребностями осциллографа справятся запросто. Еще раз: проблема скорее в контроллере будет.
Цитата Сообщение от Kabak Посмотреть сообщение
Парню придётся осваивать Си как минимум, а не готовые скетчи
Так он вроде это и собирался делать. И это можно только приветствовать: человек сам догадался что индусский код ардуинских библиотек ни для чего серьезного не годится. Так что он выбрал себе довольно сложную практическую задачу (создание осциллографа, пусть и с "игрушечными" характеристиками) чтобы попрактиковаться в программировании.
Цитата Сообщение от Voland_ Посмотреть сообщение
и как автору удалось "обмануть и физику АЦП, и цифровую стейт-машину" - остается загадкой.
Насколько я понял, он именно что разгонял камень за пределы значений из даташита. Ну и плюс два АЦП на один канал, естественно. Причем глубоко его статьи я не копал, так что не знаю что у него там с точностью измерений.
А если по даташиту то предел встроенного в f103 АЦП будет где-то 2 Msps (по 1 мкс на преобразование каждого АЦП согласно даташиту).
0
158 / 146 / 14
Регистрация: 03.02.2012
Сообщений: 703
Записей в блоге: 1
15.01.2021, 15:12 43
По системе команд ili9486 +/- такой же как и ST7789

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

Я вот не подумал, что SPI можно запустить на значительно большей скорости, чем позволяют это делать PIC18
0
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
15.01.2021, 16:14 46
Цитата Сообщение от Kabak Посмотреть сообщение
Попиксельно гонять данные на таких дисплеях неэффективно.
Зависит от задачи. Я одно время работал с дисплеем через SPI. Медленно, конечно, но для блочной отрисовки нормально.
Цитата Сообщение от Rius Посмотреть сообщение
у stm есть модели, которые потянут (rgb интерфейс)
Вы о чем?
0
Эксперт .NET
7494 / 4992 / 1188
Регистрация: 25.05.2015
Сообщений: 15,247
Записей в блоге: 14
15.01.2021, 16:20 47
О МК с RGB интерфейсом, позволяющим напрямую передавать изображение из буфера ОЗУ на драйвер матрицы.
0
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
15.01.2021, 17:16 48
Цитата Сообщение от Rius Посмотреть сообщение
О МК с RGB интерфейсом
ну, есть примеры? Просто лет 6-7 назад ST, TI, NXP (по крайней мере) просто заболели поддержкой LCD (aka "ЖК") матриц. То есть не такие как 1602, а напрямую, с генератором отрицательного напряжения. Но это ж не тот "RGB", о котором Вы говорите, верно?
0
2743 / 1692 / 350
Регистрация: 09.09.2017
Сообщений: 7,064
15.01.2021, 17:17 49
Цитата Сообщение от Kabak Посмотреть сообщение
Выгоднее обновлять всю картинку или часть экрана прямоугольными блоками, предварительно создав буфер где-то в другой памяти.
Вы хоть представляете себе сколько на это надо памяти? Обычно в контроллере столько нет.
Цитата Сообщение от Kabak Посмотреть сообщение
Создание такого буфера занимает время и + копирование такого буфера занимает время.
А DMA вам на что?
Цитата Сообщение от Kabak Посмотреть сообщение
В это же самое время как-то нужно снимать показания с АЦП. Я сомневаюсь что даже STM32 на 72Mhz потянет такой объём работы в одиночку на разрешении 480 * 320.
Если уж расчет трехмерной графики тянет, то уж с парой линий для осциллографа как-нибудь справится.

Цитата Сообщение от Kabak Посмотреть сообщение
Тормоза с отображением информации на LCD гарантированы.
Даже на AVR можно сделать отображение с достаточной для осциллографа (не для анимации) скоростью. Но вот там действительно придется поскрипеть мозгами. Тем интереснее для ТСа!
Цитата Сообщение от Rius Посмотреть сообщение
О МК с RGB интерфейсом
Что-то вроде такого?
0
Эксперт .NET
7494 / 4992 / 1188
Регистрация: 25.05.2015
Сообщений: 15,247
Записей в блоге: 14
15.01.2021, 17:20 50
О STM32F429 и более новых (например, STM32F746NGH6) , с поддержкой TFT.
1
158 / 146 / 14
Регистрация: 03.02.2012
Сообщений: 703
Записей в блоге: 1
15.01.2021, 17:26 51
Вы хоть представляете себе сколько на это надо памяти? Обычно в контроллере столько нет.
Конечно представляю. Поэтому и ставят внешнюю память

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

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

О STM32F429 и более новых (например, STM32F746NGH6) , с поддержкой TFT.
На нём попробуй собери плату, если ты новичок и ещё освой написание... В общем, интересный и долгий путь.
0
Эксперт .NET
7494 / 4992 / 1188
Регистрация: 25.05.2015
Сообщений: 15,247
Записей в блоге: 14
15.01.2021, 17:33 52
Для новичков есть Discovery платы. Там всё разведено, проверено и код прилагается.
0
2743 / 1692 / 350
Регистрация: 09.09.2017
Сообщений: 7,064
15.01.2021, 17:34 53
Цитата Сообщение от Kabak Посмотреть сообщение
Конечно представляю. Поэтому и ставят внешнюю память
Зачем ставить лишние микросхемы, когда без них можно прекрасно обойтись?
Цитата Сообщение от Kabak Посмотреть сообщение
А зачем он , если памяти нет ? Он как раз и нужен там, где есть память.
Вы видео посмотрели? Там именно что используется DMA без всяких ненужных микросхем памяти.
Цитата Сообщение от Kabak Посмотреть сообщение
В общем, гипотетические проблемы по выводу информации раскрыты.
Вы имеете в виду "надуманные"? Потому что в реальности особых проблем с этим нет. Весь кадр прекрасно просчитывается "на лету", либо рисуется линиями. Это ведь не анимация, а осциллограф - для него быстродействия хватит даже если попиксельно рисовать.
0
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
15.01.2021, 17:46 54
Цитата Сообщение от 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
7494 / 4992 / 1188
Регистрация: 25.05.2015
Сообщений: 15,247
Записей в блоге: 14
15.01.2021, 17:58 55
Voland_, у таких чипов память можно использовать уже внешнюю. На Discovery демке ОЗУ десятки МБ.
0
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
15.01.2021, 18:35 56
Цитата Сообщение от Rius Посмотреть сообщение
На Discovery демке ОЗУ десятки МБ.
Нашел:
2,4 "QVGA TFT ЖК-дисплей
SDRAM 64mbits
8МБ, ну не важно - этого вполне достаточно для развертки экрана, и даже больше. Согласен, в таком конфиге можно много чего пытаться строить.

Добавлено через 10 минут
Цитата Сообщение от Kabak Посмотреть сообщение
А зачем он , если памяти нет ? Он как раз и нужен там, где есть память.
А в каком МК у нас "нет" памяти? Для примера, даже в приведенном stm32f103 - 20кб памяти, и этого вполне достаточно во многих задачах, и с использованием DMA тоже.
0
Тутошний я
1985 / 1088 / 200
Регистрация: 03.11.2009
Сообщений: 3,771
Записей в блоге: 2
15.01.2021, 18:39 57
Цитата Сообщение от Rius Посмотреть сообщение
На Discovery демке ОЗУ десятки МБ.
64 МБ. в комплекте дисплей 2,4 "QVGA.
знакомый на такой плате, на дисплей графики выводит. говорит хватает памяти контроллера.
0
1 / 1 / 0
Регистрация: 28.03.2015
Сообщений: 94
15.01.2021, 20:03  [ТС] 58
Цитата Сообщение от 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
7494 / 4992 / 1188
Регистрация: 25.05.2015
Сообщений: 15,247
Записей в блоге: 14
15.01.2021, 20:33 59
mode2, старые дисплеи телефонов хуже современных. И по скорости, и по методам работы.
К контактам цепляются через специальные коннекторы для шлейфов.
А контроллер может быть на шлейфе или даже на стекле. Такие дисплеи прикольно вырубаются под вспышкой фотоаппарата.

Добавлено через 20 минут
По непотверждённой информации у дисплея Sony Ericsson s312 контроллер ILI9225B. Судя по корпусу, монтаж производится на стекле.
Распиновку шлейфа не нашёл.
0
2743 / 1692 / 350
Регистрация: 09.09.2017
Сообщений: 7,064
15.01.2021, 20:50 60
Цитата Сообщение от mode2 Посмотреть сообщение
Пульт? Или драйвер?
Под "пультом" я имел в виду хедер для библиотеки. В вашем случае там все вместе, но в более сложных случаях все же отделяют интерфейс от реализации.
То есть в *.h файл выносят только объявления функций, констант, переменных и всего остального. А код реализации находится в *.c файле. И его нужно тем или иным образом подключать к проекту (одного #include недостаточно).
Вообще, драйвер это программный модуль, обеспечивающий взаимодействие других программ с аппаратурой. В вашем случае это библиотека (код, который те, другие, программы могут вызвать по своему желанию). В больших компьютерах драйвер частенько оформляется в виде самостоятельной программы, которая работает независимо от остальных, но может принимать от них команды, данные и все остальное.
Это был такой небольшой ликбез на пальцах.
Я бы вам порекомендовал писать именно полноценный драйвер (*.h + *.c).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2021, 20:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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

STM32F3 и TFT дисплей (ILI9341) ЧЯДНТ ?
Хочу подключить mykroTFT дисплей к плате STM32F3 Dyscovery через 16 битовый RGB интерфейс. ...

Какой TFT-LCD дисплей на 3-4" лучше использовать для STM32
Всем привет! Вопрос такой, у кого есть опыт подключения различных дисплеев к STM32 (особенно...


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

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

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