TOG 0 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба 7 hours ago, AleksBak said: Получается, что тут идет просто "перекачка байтов(?)" по такой схеме: SDRAM----->дисплей? А LTDC не лопнет тут от переизбытка? Как-то не так все тут рассчитывается вроде. (откуда именно '110МГц' взялось тоже покамест никак не пойму - честно). Так говорит даташит на STM32H743 (стр. 272) - 110 МГц это максимально разрешенная частота клока FMC (ревизия V). Через FMC подключен SDRAM IS42S16160G Скриншот Если объясните как можно посчитать заранее какой можно ожидать FPS буду очень рад. Приложение работает под FreeRTOS + TouchGFX. Сейчас дисплейчик 320х240 (24bit), а хотим поставить 1280x720(24bit). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AleksBak 0 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба 13 минут назад, TOG сказал: Так говорит даташит на STM32H743 (стр. 272) - 110 МГц это максимально разрешенная частота клока FMC (ревизия V) Все. Понял. Думал, что 125МГц для 'V'. Но тут вообще-то не только FMC участвует так сказать. Все гораздо комплекснее и поэтичнее. 15 минут назад, TOG сказал: Если объясните как можно посчитать заранее какой можно ожидать FPS буду очень рад. Приложение работает под FreeRTOS + TouchGFX. Сейчас дисплейчик 320х240 (24bit), а хотим поставить 1280x720(24bit). Попробую немного прояснить тут - насколько знаю. У Вас тут уже 1280х720. А какая номинальная частота у дисплея (PCLK)? Допустим 32МГц. Тогда посчитаем примерно: Время отрисовки LTDC = [(1280(длина строки) + ~130(всякие "бекпорчи")) * 31.25нс(период 32МГц)] * [720(кол-во строк) + ~125(всякие "бекпорчи")] = ~37.23мс. Т.е. частота прерывания LTDC и вызова его HAL-овского колбека 'HAL_LTDC_LineEventCallback' (а 'TouchGFX' его использует насколько понял) будет ~26.9 кадров в сек. Т.е. уже LTDC наложил ограничения макс. в 27fps (и FMC тут не при чем пока что). Если у Вас дисплейчик сможет по более 32МГц, то соотв. пересчет, но пока такая цифра. Но дальше начинается самое сложное и попробуем хоть немного разобраться. Этот LTDC является "master"-ом(!) и сидит в 64-ти битном AXI Bus домене (у его шины (наверное просто "выводов" прямо из него на кристалле процессора) есть соотв. наименование - ASIB6 и я как покамест понял это просто назвали так). Главное тут, что этот LTDC с частотой 27fps "захватывает" шину AXI Bus и "имеет контакт" с внешней SDRAM через FMC. А эта внешняя SDRAM отвечает взаимностью с частотой 110Мслов как у Вас тут. Но еще нужен другой "master"! И появляется на сцене он - монстр DMA2D. Он тоже "насилует" внешнюю SDRAM, "захватывая" опять-таки шину AXI Bus домена(у DMA2D шины (наверное просто "выводов" прямо из него на кристалле процессора) есть соотв. наименование - ASIB5 и я как покамест понял это просто назвали так) (я вот так все понимаю - если кто-то знает лучше, то пожалуйста не стесняйтесь и поправьте). Но делает он это вроде бы тоже с частотой 27fps, но это может быть не совсем и так! Т.к. он должен же "откуда-то" брать видеоданные и "успеть" их подготовить. И если он берет их скажем с внешней QUADSPI, то теперь смотрим на нее и проверяем успеет ли она "отдаться" быстрее чем нужно тут (а это тоже целая запутанная головомка (для меня по-крайней мере) узнать как тут все работает). Захватывая при этом (!) опять-таки шину AXI Bus точно такого же (!) домена D1. Они все тут сидят в этом домене D1 и имеют друг с другом "половые связи" через одну и ту же шину AXI Bus (я вот так все понимаю - если кто-то знает лучше, то пожалуйста не стесняйтесь и поправьте). Т.е. пока один "насильник" не закончит свое дело, то шина занята получается и другой "master" ждет и нехера не сможет делать (я вот так все понимаю - если кто-то знает лучше, то пожалуйста не стесняйтесь и поправьте). Т.е. магическое 27fps делается все меньше и меньше. Это если не учитывать "главного маньяка" - ядра M7. Он тоже сидит в этом домене D1 (неужели??). И он тоже может "взбеситься" и всех "обломать" своей "работой" захватывая при этом (!) опять-таки шину AXI Bus (я вот так все понимаю - если кто-то знает лучше, то пожалуйста не стесняйтесь и поправьте). Как-то так вроде. Для полноты картины попробую сейчас приложить картину (блок-схему) этого "бедлама" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 179 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба Не учитываете, скорее всего, многослойность шинной матрицы. Там много чего может работать параллельно, если друг другу не мешает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AleksBak 0 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба Еще, вот подумал, все таки может у Вас, у дисплея, частота (PCLK) больше 32МГц очень возможно. А какая все-таки? Т.е. число 27fps тут соотв-но линейно увеличивается. 2 минуты назад, Arlleex сказал: Не учитываете, скорее всего, многослойность шинной матрицы Многослойность - это как? Пожалуйста проясните. Она (он) 64-битная (ый) тут. Т.е. этот домейн. и его проводники тянутся между "красными" кружками (шинными формирователями/демультиплексорами и т.п.) - на приведенной блок-схеме. Т.е. все они "общие" как бы для всех тут? Или у каждого свои линии что ли? 6 минут назад, Arlleex сказал: Там много чего может работать параллельно, если друг другу не мешает. Тут, все эти модули, находятся в одном вроде домене D1 и у них одни и те общие трассы между их "красными" кружками? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TOG 0 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба 14 minutes ago, AleksBak said: Еще, вот подумал, все таки может у Вас, у дисплея, частота (PCLK) больше 32МГц очень возможно. А какая все-таки? Т.е. число 27fps тут соотв-но линейно увеличивается. Вопрос конечно интересный. Дисплейчик который мы хотим поставить Winstar WF50DSYA3MNN0 имеет интерфейс MIPI DSI (4 lanes). И мы собирались подключить его к нашему STM32H743 (LTDC параллельный RGB) через "RGB_to_DSI_bridge SSD2828" или ему подобный. Так, что про частоту вообще даже не знаю что сказать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AleksBak 0 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба 10 минут назад, TOG сказал: про частоту вообще даже не знаю что сказать... Надо пересчитывать. Про MIPI DSI вообще ничего не знаю. LVDS - да (тоже заложил его отдельно у себя), а до этого не дошел пока что. Тут ILI9881C получается. 33 минуты назад, Arlleex сказал: Там много чего может работать параллельно А какой fps у Вас получилось "выжать"? У меня пока что все очень скромно и где-то 14fps на 1024*600. Покамест с QUADSPI до конца не разобрался и как только разберусь, надеюсь, то сообщу еще что получилось. Я пока что изучаю тут (плату сделал, спаял, но пока изучаю). У кого-нибудь получился "достойный" fps тут? На H7-м и дисплее больше/равно чем 800*600? (25fps на 800*600 вроде теоретически возможен тут) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 179 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба У меня экран был 640*480, цветность RGB565, FPS не измерял ибо было не нужно. МК был другой, правда - F429. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 236 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба 4 часа назад, TOG сказал: Сейчас дисплейчик 320х240 (24bit), а хотим поставить 1280x720(24bit). А в чём тогда проблема посчитать? Поделить текущую частоту на (1280*720)/(320*240) = 12. И умножить на разницу частот памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба 3 hours ago, TOG said: Так, что про частоту вообще даже не знаю что сказать... 66МГц, половина полосы памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 77 28 апреля, 2022 Опубликовано 28 апреля, 2022 · Жалоба 31 minutes ago, aaarrr said: 3 hours ago, TOG said: Так, что про частоту вообще даже не знаю что сказать... 66МГц, половина полосы памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться