|
LTDC + ChromART в STM, Проконсультируйте, кто работал. |
|
|
|
Mar 1 2016, 10:26
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Наконец, дошли руки до нового проекта. Изучил, насколько мозгов хватает. Мне непонятны некоторые моменты. 1. Допустим я хочу работать с LTDC в режиме L8 через CLUT. 565 на выходе. Вроде бы всё понятно никаких проблем не вижу. При копировании цветных картинок тоже проблем не вижу. Получается что их надо кратными 4 точкам делать да и запускать в 32-ух битном цвете 1 в 1. Фонты я сделал L4 b вот тут проблема. Либо вручную разворачивать L4 в L8, либо пробовать обычным DMA память - память, источник байт, получатель 16 бит, на предварительно очищенную память (если такое есть ещё). После чего делать альфа преобразование с цветом фонта. и потом прямое копирование DMA2D. 2. Допустим я хочу работать с LTDC в режиме 565 на прямую, а цветные картинки выводить через LUT. Вот тут проблема. По описанию CLUT имеет 2 режима 32/24 бита. Я что-то не пойму. То есть если я хочу преобразовать L8 -> 565(16), то такой возможности в DMA2D нет? И L4 -> 565 тоже нет. Или я чего-то недогоняю? PS: Нашёл в регистре (DMA2D output PFC control register (DMA2D_OPFCCR)) Color mode: These bits define the color format of the output image. И там режим RGB565. То есть вариант работы 2 просматривается. Для варианта L4 -> 8, только косвенные подходы. То есть сформировать CLUT на две точки Получится конструкция типа L4L4 -> L8L8. Правда размер LUT не маленький 256 * 3 = 768 по минимуму. Вроде бы где-то читал, что можно FLASH таблицу использовать. Короче буду думать пока. Наверное склоняюсь к варианту 2. === Если есть кто реализовывал аналогичные варианты - откликнитесь. Любопытно кто как делал.
|
|
|
|
|
 |
Ответов
(60 - 74)
|
Apr 14 2016, 00:43
|
Местный
  
Группа: Свой
Сообщений: 285
Регистрация: 5-11-05
Пользователь №: 10 491

|
Цитата(SasaVitebsk @ Apr 12 2016, 09:29)  Почему? Поясните, пожалуйста. У меня видимо какие то слабоватые глаза и я очень мучаюсь с разными мониторами. А со временем в мониторы ставят все более и более мощные диоды и ситуация становится просто невыносимой  Я как то купил ноут, несколько дней посмотрел в него на минимальной яркости и потом какое то время мог только читать электронную книгу. Ну и по логике, даже если сознание человека этого почти не фиксирует, как то глупо пыхать в глаза с полностью открытым зрачком (вечером) всей дурью сверхярких светодиодов. Цитата(SasaVitebsk @ Apr 12 2016, 09:29)  С точки зрения CPU, вы будете читать 32 бита. То есть 4 отсчёта/ точки. Как будет обеспечиваться ваше чтение, зависит от схемотехники. На найболее распростанённых схемах, применена 16 битная SDRAM (дешёвая и легко разводится). В этом случае ваше обращение к 32-ух битному слову выльется в 2 обращения к ОЗУ. В каждом случае будут вставлены определённые такты ожидания. Иными словами, с точки зрения CPU обращение к внешней памяти осуществляется также как к внутренней, но операции чтения/ записи выполняются медленнее. Есть ещё регенерация. Насколько прозрачно она выполняется я не смотрел. Думаю, что сейчас контроллеры динамической памяти уже вполне отработаны, и регенерация осуществляется прозрачно (то есть процессор значимо не тормозится, при выполнении регенерации). В теории это все понятно, но вот как будет работать конкретный МК, пока не ясно. В идеале конечно же хотелось бы, чтобы МК умел использовать burst как для чтения так и для записи. Даже если изначальный поток например с ацп идет 8 бит...
|
|
|
|
|
Apr 14 2016, 08:56
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(AVI-crak @ Apr 14 2016, 11:46)  У ускорителя st производится непрерывная предвыборка в половину буфера - это 8/16 32d слов. По сему разница в скорости от ширины памяти не столь заметна. По сему как раз разница между 16 и 32 битными шинами будет очень приличной  Или Вы про что-то другое? Передача адреса со всеми "попутными" расходами времени будет производится один раз на блок, затем данные в пределах блока будут вычитываться каждый такт SDRAM. Соответственно если вариант с 16битной SDRAM требует t1+t2 времени, где t1 - время требуемое для выборки, t2 собственно для чтения данных, то в случае с 32бит SDRAM потребуется t1+t2/2. Как по мне это весьма существенно. Цитата(SpyBot @ Apr 14 2016, 03:43)  как то глупо пыхать в глаза с полностью открытым зрачком (вечером) всей дурью сверхярких светодиодов. Да, поддерживаю Вас в этом плане, но в данном случае все намного проще. С высокой частотой ШИМа импульсный стабилизатор тока светодиодов просто не будет успевать нормально стартовать
|
|
|
|
|
Apr 14 2016, 10:43
|
Местный
  
Группа: Свой
Сообщений: 285
Регистрация: 5-11-05
Пользователь №: 10 491

|
Цитата(AVI-crak @ Apr 14 2016, 11:46)  У st есть макетки с использованием такой памяти, но чего-то они не прижились - ценник ломовой. Это и понятно. Грубо говоря, быстрая малопотребляющая (относительно других) SRAM нормального объема стоит как дискавери с 4-5" экранчиком...
|
|
|
|
|
Apr 14 2016, 16:50
|
Частый гость
 
Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894

|
Цитата(Шаманъ @ Apr 14 2016, 15:56)  По сему как раз разница между 16 и 32 битными шинами будет очень приличной  Или Вы про что-то другое? Сухие цифры: самый не оптимальный режим - 2 слоя, запись в буфер, и его-же отображение на rgb выхлопе - пред выборка по 8 32b слов. 8 бит: адрес 10 тиков + 64 тика на чтение = 72 тика на заполнение буфера. 16 бит: адрес 10 тиков + 32 тика на чтение = 42 тика на заполнение буфера. 32бит: адрес 10 тиков + 16 тиков на чтение = 26 тика на заполнение буфера. 32бит sram 10nc: 2 тика на чтение = 16 тиков на буфер из восьми выборок. Разница в скорости между 16b и 32b - 1,6, до двойки не дотягивает - зато освобождает сражу 16 линий мк. А вот для sram уже не жалко все 32b выделить, и даже махнуть рукой на прожорливость системы. Потому как скорость чтения/записи практически равна скорости выборки из внутренней sram (необходимость каждый раз качать права на шине арбитра - 1 такт). Но вот из всего многообразия современной и быстрой sram памяти 10nc - самая дешёвая на 8 метров имеет ценник в 3 бакса, и не совсем гуманный бга корпус. А ценник на 64 метра - просто улетают в космос, получается в сто раз дешевле поставить 8 восмиметровых чипов.
|
|
|
|
|
Apr 14 2016, 18:48
|
Частый гость
 
Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894

|
Цитата(mantech @ Apr 15 2016, 01:02)  Вы какое хоть разрешение экрана используете? Проверял на 2х ядерном LPC(не помню номер его) ... Внешняя sdram с безграничным презрением смотрит на любой чип рядом с собой - она не будет работать быстрее чем записано в её доке. Для описания скорости "работы" nad памяти - у меня не хватит ругательных слов. Лично я жду доступную оптическую память на кристаллах. Уже наверное скоро изобретут.
Сообщение отредактировал AVI-crak - Apr 14 2016, 18:52
|
|
|
|
|
Apr 15 2016, 07:53
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Огурцов @ Apr 14 2016, 23:52)  какой интерес считывать из внешнего озу в мк, чтобы тут же выдавать обратно наружу память уже добавили - добавьте ещё и защёлку-другую для данных и гоните их сразу на дисплей Какой смысл что-то ставить снаружи и как-то это синхронизировать с записью/чтением данных от МК (типа арбитр городить), если все уже изобретено и есть в МК? Цитата(AVI-crak @ Apr 14 2016, 19:50)  Разница в скорости между 16b и 32b - 1,6, до двойки не дотягивает - зато освобождает сражу 16 линий мк. 469й позволяет подключать дисплей по последовательной шине - там столько пинов освобождается, что можно и память до 32х бит нарастить и еще останется  А в 1.6раза согласитесь, это не мало. Цитата А вот для sram уже не жалко все 32b выделить, и даже махнуть рукой на прожорливость системы. Кто б спорил, но цена/потребление, да и доступность больших чипов SRAM сразу делает такое решение неприемлемым, ну или как минимум не привлекательным...
Сообщение отредактировал Шаманъ - Apr 15 2016, 07:54
|
|
|
|
|
Apr 15 2016, 21:43
|
Местный
  
Группа: Свой
Сообщений: 285
Регистрация: 5-11-05
Пользователь №: 10 491

|
Цитата(Шаманъ @ Apr 15 2016, 10:53)  Кто б спорил, но цена/потребление, да и доступность больших чипов SRAM сразу делает такое решение неприемлемым, ну или как минимум не привлекательным... Мне кажется, что пока требуется просто использовать память под видеобуфер, SDRAM будет лучшим решением. Но как только появляется необходимость в обработке, допустим, второй картинки, здесь уже нужно брать SRAM.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|