реклама на сайте
подробности

 
 
> STM32 SDRAM, NOR Flash
Arlleex
сообщение Jul 19 2015, 11:44
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Добрый день!
Наверняка многие из тех, кто "щупал" STM32F429, знают, что в этом контроллере STMicroelectronics допустила серьезную ошибку в аппаратной части модуля FMC - невозможно одновременно получить доступ к статической и динамической памяти без предварительного переключения последней в режим автоматической регенерации. Для программ, у которых четко однозначно распределено выделение и обращение к памяти во времени эта проблема не является существенной. Однако, в большинстве других приложений эта проблема - по сути катастрофа. Я разрабатываю графическое встраиваемое приложение, на плате установлена статическая NOR Flash память и SDRAM. Поскольку графических примитивов у меня довольно много, я разместил их в NOR Flash. SDRAM же у меня выполняет функцию графического буфера. Стандартная схема работы этого приложения - контроллер TFT-матрицы (LTDC) "прозрачно" (т. е. в неизвестно какой момент времени) для процессора через выделенный DMA (опять же, не видимый для программиста) отправляет пиксели на экран. Графический ускоритель DMA2D в это время копирует примитивные изображения в ту же SDRAM (в ту же экранную область). Получается несколько потоков претендуют на одну периферию, и тут контроллер FMC устанавливает арбитраж между DMA LTDC и DMA2D. Работает это, когда графические примитивы расположены во внутренней памяти микроконтроллера. Но стоит "натравить" DMA2D на источник NOR Flash, как все попадает в позицию Errata (нельзя достучаться до статической и динамической памяти одновременно), ведь по сути контроллер FMC должен "разрулить" следующие передачи:
1) SDRAM (экранный буфер) -> экран;
2) NOR Flash -> SDRAM (копирование графических примитивов).
И как видно, как раз на втором пункте и будет "затык". При обращении к NOR Flash SDRAM не перейдет в режим автоматической регенерации, данные в ней станут некорректными. Казалось бы, можно "руками" передать команду автоматической регенерации SDRAM, прежде чем обращаться к NOR Flash, и выхода из нее, чтобы вновь обращаться к SDRAM, но ведь первый пункт (запросы DMA LTDC) работает асинхронно. Если ее и контролировать, на экране будут жуткие мерцания частей изображений (как раз "затыки" между обращениями к SDRAM и NOR Flash).
Производитель исправил ошибку в 3 ревизии микроконтроллера. Но, пройдя по большинству интернет-магазинов электронных компонентов, никакой информации о ревизии нет (ну, наверное, в этом есть логика).
В микроконтроллере STM32F446 эта проблема уже полностью исчезла, но тут другая проблема - этот микроконтроллер максимум в 100-выводном корпусе.
А микроконтроллеров STM32F7-серии и подавно еще пока что нет в продаже.

Кто сталкивался, как решали проблему?

Сообщение отредактировал Arlleex - Jul 19 2015, 11:46
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Arlleex
сообщение Jul 19 2015, 15:15
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



А вы как примитивы отрисовывали?
Просто у меня та же кнопка - это не набор из битмапа самой кнопки и отдельно накладываемого текста. У меня это кнопка с текстом сразу. Кнопка 229x54 пикселя, 32 бита на пиксель, итого ~49 кБайт на кнопку. Городить отдельно кнопку и накладывать на нее текст не хочу =) Если бы их было очень много, разных - тогда да, делал бы так.
SPI Flash не использовал. Потому что поставил сразу NOR Flash, т.к. хотел напрямую оттуда грузить данные в экран. Лишь позже узнал, что STM32F429 имеет неисправимый аппаратный глюк.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jul 19 2015, 17:12
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Arlleex @ Jul 19 2015, 18:15) *
А вы как примитивы отрисовывали?
Просто у меня та же кнопка - это не набор из битмапа самой кнопки и отдельно накладываемого текста. У меня это кнопка с текстом сразу. Кнопка 229x54 пикселя, 32 бита на пиксель, итого ~49 кБайт на кнопку.


О как оно!!! А вы не подумали, сколь времени будет отрисовываться такая кнопка? А если их много и переместили окно, будет слайд-шоу какое-то...
Я рисовал как обычно, с помощью прямоугольников, линий и дуг, а текст - растеризованный ttf шрифт. Занимает нисколько места и рисуется почти мгновенно.

Цитата(Arlleex @ Jul 19 2015, 18:15) *
Городить отдельно кнопку и накладывать на нее текст не хочу =)


Никогда бы не подумал, что это так сложно biggrin.gif

Цитата(scifi @ Jul 19 2015, 16:47) *
С нюансами не знаком, но не вижу повода для иронии. Неужели переписать содержимое из NOR Flash в SDRAM - неподъёмная задача? Коли так, бросайте эти микроконтроллеры.


Ну если уж там такая засада, что нужно отключать регенерацию динам. памяти, то читайте с флешки, как с гпио, она-же очень просто адресуется, как старые ромы - шина адреса, данных и строб ОЕ.

Или, если идет линейная переброска в рам, то регенерация не нужна, там и так будет полный перебор строк... Нужно только включить ее не забыть после копирования biggrin.gif

Сообщение отредактировал mantech - Jul 19 2015, 17:13
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Arlleex   STM32 SDRAM, NOR Flash   Jul 19 2015, 11:44
- - scifi   Если я правильно понимаю, SDRAM легко может быть в...   Jul 19 2015, 11:52
- - Arlleex   По сути, как я понял, ты предлагаешь выделить небо...   Jul 19 2015, 11:57
|- - scifi   Цитата(Arlleex @ Jul 19 2015, 14:57) По с...   Jul 19 2015, 13:47
- - Genadi Zawidowski   ЦитатаВ микроконтроллере STM32F446 эта проблема уж...   Jul 19 2015, 12:29
- - Rash   Сделайте запрос в инет магазины, что бы сообщили р...   Jul 19 2015, 12:42
- - Arlleex   Насчет STM32F446 - пардон, написал по памяти, но м...   Jul 19 2015, 12:51
- - Rash   просто активно юзаю emWin, виджетов и диалогов мно...   Jul 19 2015, 13:24
- - Arlleex   scifi, я не иронизировал. Я принял это как пока чт...   Jul 19 2015, 14:01
- - mantech   Цитата(Arlleex @ Jul 19 2015, 14:44) Поск...   Jul 19 2015, 15:07
|- - DVF   Цитата(mantech @ Jul 19 2015, 20:12) О ка...   Jul 19 2015, 18:37
- - Arlleex   mantech, ну, по мне так, как-то бледновато выходит...   Jul 19 2015, 17:30
- - Arlleex   Линиями, думаю, такого эффекта не добиться. Не наж...   Jul 19 2015, 18:58
|- - scifi   Цитата(Arlleex @ Jul 19 2015, 21:58) Лини...   Jul 19 2015, 19:09
||- - DVF   Цитата(scifi @ Jul 19 2015, 22:09) Сейчас...   Jul 19 2015, 20:30
|- - mantech   Цитата(Arlleex @ Jul 19 2015, 21:58) Все-...   Jul 20 2015, 06:18
- - Rash   не критикую, но 49k на кнопку очень круто по ресур...   Jul 19 2015, 19:23
|- - scifi   Цитата(Rash @ Jul 19 2015, 22:23) не крит...   Jul 19 2015, 19:57
- - Rash   Цитата(scifi @ Jul 19 2015, 22:57) Я вас ...   Jul 20 2015, 05:40


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 21:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016