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
|
|
05.01.2021, 23:43 | |
TFT дисплей Дисплей TFT 160x128 RGB и плата Arduino Mega 2560 + WiFi ESP8266 (micro usb) Подключение дисплея с параллельным интерфейсом Подключение внешней АЦП с параллельным интерфейсом |
|
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
|
|
15.01.2021, 14:23 | 41 |
Согласно ДШ невозможно, но... интересно ). При макс.частоте АЦП (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
|
2743 / 1692 / 350
Регистрация: 09.09.2017
Сообщений: 7,064
|
|
15.01.2021, 14:37 | 42 |
"эти" это какие?
Мы про ili9341, ili9486 и подобные говорим. Их скорости вполне достаточно для отображения анимации с частотой десятки кадров в секунду. Значит, и с куда более скромными потребностями осциллографа справятся запросто. Еще раз: проблема скорее в контроллере будет. Так он вроде это и собирался делать. И это можно только приветствовать: человек сам догадался что индусский код ардуинских библиотек ни для чего серьезного не годится. Так что он выбрал себе довольно сложную практическую задачу (создание осциллографа, пусть и с "игрушечными" характеристиками) чтобы попрактиковаться в программировании. Насколько я понял, он именно что разгонял камень за пределы значений из даташита. Ну и плюс два АЦП на один канал, естественно. Причем глубоко его статьи я не копал, так что не знаю что у него там с точностью измерений. А если по даташиту то предел встроенного в f103 АЦП будет где-то 2 Msps (по 1 мкс на преобразование каждого АЦП согласно даташиту).
0
|
15.01.2021, 15:12 | 43 |
По системе команд ili9486 +/- такой же как и ST7789
Попиксельно гонять данные на таких дисплеях неэффективно. Например, рисовать диагональную линию. Выгоднее обновлять всю картинку или часть экрана прямоугольными блоками, предварительно создав буфер где-то в другой памяти. Создание такого буфера занимает время и + копирование такого буфера занимает время. В это же самое время как-то нужно снимать показания с АЦП. Я сомневаюсь что даже STM32 на 72Mhz потянет такой объём работы в одиночку на разрешении 480 * 320. Тормоза с отображением информации на LCD гарантированы. По-моему нужен процессор пошустрее, чтобы программно всё это обрабатывать и ещё отображать на LCD
0
|
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 |
Зависит от задачи. Я одно время работал с дисплеем через SPI. Медленно, конечно, но для блочной отрисовки нормально.
Вы о чем?
0
|
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
|
|
15.01.2021, 17:16 | 48 |
ну, есть примеры? Просто лет 6-7 назад ST, TI, NXP (по крайней мере) просто заболели поддержкой LCD (aka "ЖК") матриц. То есть не такие как 1602, а напрямую, с генератором отрицательного напряжения. Но это ж не тот "RGB", о котором Вы говорите, верно?
0
|
2743 / 1692 / 350
Регистрация: 09.09.2017
Сообщений: 7,064
|
|
15.01.2021, 17:17 | 49 |
Вы хоть представляете себе сколько на это надо памяти? Обычно в контроллере столько нет.
А DMA вам на что? Если уж расчет трехмерной графики тянет, то уж с парой линий для осциллографа как-нибудь справится. Даже на AVR можно сделать отображение с достаточной для осциллографа (не для анимации) скоростью. Но вот там действительно придется поскрипеть мозгами. Тем интереснее для ТСа! Что-то вроде такого?
0
|
15.01.2021, 17:26 | 51 |
В общем, гипотетические проблемы по выводу информации раскрыты.
0
|
2743 / 1692 / 350
Регистрация: 09.09.2017
Сообщений: 7,064
|
|
15.01.2021, 17:34 | 53 |
Зачем ставить лишние микросхемы, когда без них можно прекрасно обойтись?
Вы видео посмотрели? Там именно что используется DMA без всяких ненужных микросхем памяти. Вы имеете в виду "надуманные"? Потому что в реальности особых проблем с этим нет. Весь кадр прекрасно просчитывается "на лету", либо рисуется линиями. Это ведь не анимация, а осциллограф - для него быстродействия хватит даже если попиксельно рисовать.
0
|
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
|
|
15.01.2021, 17:46 | 54 |
![]() PS: для графического суб-контроллера это в принципе проканает (да, тот же осцил - вполне), для всяких IoT, и панелек - тоже. Но для полноценного standalone девайса, имхо, маловато в этом чипе оперативки и памяти вообще.
0
|
1856 / 1181 / 114
Регистрация: 04.01.2010
Сообщений: 4,208
|
|
15.01.2021, 18:35 | 56 |
Нашел:
Добавлено через 10 минут А в каком МК у нас "нет" памяти? Для примера, даже в приведенном stm32f103 - 20кб памяти, и этого вполне достаточно во многих задачах, и с использованием DMA тоже.
0
|
1 / 1 / 0
Регистрация: 28.03.2015
Сообщений: 94
|
|
15.01.2021, 20:03 [ТС] | 58 |
Учебная.
Почему именно осциллограф? Ведь у дисплея масса других вариантов использования. Главным образом потому что в основной работе часто использую осциллограф, поэтому и выбрал его на роль "на каком проекте научиться управлять TFT дисплеем". Поверьте, еще один осциллограф мне не нужен, хватает тех что есть. Я его удалю с макетки через пару дней после того как стану "на ты" с дисплеем. Такая же участь постигла частотомер на символьном дисплее. Конечно ) Кликните здесь для просмотра всего текста
#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); } Пульт? Или драйвер? Если мне такую же штуку нужно написать (подсмотреть у других, слепить из разрозненных кусков, додуматься самому) для TFT, то это и является ближайшей целью на данном этапе. Разобрал свой старый сониэрик S312, думал есть же цветной дисплей, зачем покупать. Его шлейф поверг меня в шок, 32 контакта на разъемчике размером 10х5мм, не подцепиться. На самом дисплее никакго контроллера нет, голая матрица, очевидно на плате.
0
|
![]() |
|
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 |
Под "пультом" я имел в виду хедер для библиотеки. В вашем случае там все вместе, но в более сложных случаях все же отделяют интерфейс от реализации.
То есть в *.h файл выносят только объявления функций, констант, переменных и всего остального. А код реализации находится в *.c файле. И его нужно тем или иным образом подключать к проекту (одного #include недостаточно). Вообще, драйвер это программный модуль, обеспечивающий взаимодействие других программ с аппаратурой. В вашем случае это библиотека (код, который те, другие, программы могут вызвать по своему желанию). В больших компьютерах драйвер частенько оформляется в виде самостоятельной программы, которая работает независимо от остальных, но может принимать от них команды, данные и все остальное. Это был такой небольшой ликбез на пальцах. Я бы вам порекомендовал писать именно полноценный драйвер (*.h + *.c).
0
|
15.01.2021, 20:50 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. TFT дисплей и ATMega8 TFT дисплей и AVR STM32VLDISСOVERY + TFT дисплей. Хелп!!!! TFT дисплей + TouchPad как выбрать STM32F3 и TFT дисплей (ILI9341) ЧЯДНТ ? Какой TFT-LCD дисплей на 3-4" лучше использовать для STM32 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |