Перейти к содержанию
    

кэширование внешней SDRAM на stm32h743

С DMA на stm32 не работал, прошу ответить, кто пробовал или знает.

планируется одновременная передачи и прием по SPI на максимальной скорости (60 mbit) через DMA из/в внешнюю SDRAM сразу по 2 разным каналам SPI

будет ли при этом работать кэш ? полагаю что нет

не будут ли DMAшки драться за доступ ? и как следствие падение скорости передачи через SPI......

 

Модератор: давайте как можно больше подробной информации. В т.ч. и в заголовке темы.

Изменено пользователем haker_fox
Название темы уточнил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, Arlleex said:

Какая STM, какие кэши, какая системная частота... конечно же, знать не нужно.

планируется stm32h743 на 400 мГц

и SDRAM 32бита

Изменено пользователем poinr5217

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

33 minutes ago, poinr5217 said:

будет ли при этом работать кэш ?

Нет, только FIFO SPI и DMA.

 

33 minutes ago, poinr5217 said:

не будут ли DMAшки драться за доступ ?

Непременно будут. Вопрос, к чему это приведет, т.е. хватит ли буферизации. Учитывая весьма скромные размеры FIFO, я бы предпочел проверить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 минут назад, aaarrr сказал:

Непременно будут. Вопрос, к чему это приведет, т.е. хватит ли буферизации. Учитывая весьма скромные размеры FIFO, я бы предпочел проверить.

60 Mbit/s SPI это в худшем случае (8-битные данные) - 7.5 МГц запросов в DMA на одно событие. Суммарно с 2 SPI-контроллеров 30 МГц. DMA обычно молотит на частоте ядра, поэтому у DMA-контроллера в запасе 400/30 ~= 13 тактов. Если настроить FIFO SPI + FIFO DMA, да на пакетную передачу, да не лезть в SDRAM на время транзакций, то все должно пролезть)) Но проверить, действительно, стоит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кэш чего? Ну то есть в каком модуле?

60 Мбит/с при 32-битной шине SDRAM - это  3,75 МГц запросов на два канала.  При частоте SDRAM 133 МГц - это кот наплакал. Никаких конфликтов не будет возникать. Нужно просто настроить DMA так, чтобы на его входе он забирал данные в 32-битной разрядности, а отправлял в SPI в разрядности 8 или 16 бит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Variant99 said:

При частоте SDRAM 133 МГц

Не умеет STM32 такую высокую частоту 🤣

 

10 minutes ago, Variant99 said:

это кот наплакал

Не сказал бы. Сколько тактов уйдет на транзакцию, если данные в разных банках?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про DMA-контроллер в этом МК мануал обещает FIFO:

Four-word depth 32 first-in, first-out memory buffers (FIFOs) per stream, that can be used in FIFO mode

Также заявлена поддержка пакетных транзакций:

Supports incremental burst transfers of 4, 8 or 16 beats. The size of the burst is software-configurable, usually equal to half the FIFO size of the peripheral

Если всё это удастся задействовать, то пакетные транзакции SDRAM не должны быть страшны. И разрядность для канала доступа к ОЗУ тоже поставить на 32 бита. Только с чередованием байт разобраться.

Т.е. - если писать/читать SDRAM не одиночными байтами, а пакетами макс.разрядности, то интерфейс с SDRAM не должен стать бутылочным горлышком.

41 минуту назад, aaarrr сказал:

Не сказал бы. Сколько тактов уйдет на транзакцию, если данные в разных банках?

Для пакетных транзакций DMA это не должно быть проблемой. Думаю - FMC-контроллер при пакетном доступе со стороны DMA, должен запускать пакетные транзакции по внешней шине. Да и несколько идущих подряд не-пакетных обращений должен преобразовывать в единую транзакцию. При возможности.

3 часа назад, aaarrr сказал:

Нет, только FIFO SPI и DMA.

Работать будет. Так как FMC имеет:

Цитата

Cacheable Read FIFO with 6 x64-bit depth (6 x14-bit address tag) for SDRAM controller.

А значит - как минимум передающие каналы SPI могут обслуживаться из кеша FMC.

 

PS: Но проверять надо. Так как на практике дел с этим МК не имел. Сужу только по мануалу, утверждать не берусь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...