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

STM32 <- FSMC -> FPGA

Добрый вечер, уважаемое сообщество!

Обращаюсь к знатокам STM32 со следующим вопросом.

 

Исходные данные:

есть плата с STM32F407 и Cyclone-III на борту (плата не моя). В эту плату (не мной =)) заложена возможность перегонять сжатое видео из сцыклона в STM (т.е. контроллер всегда только читает из FPGA ("внешней памяти"), обратно - с FPGA в контроллер - данные не идут). Интерфейс предствален на рис. 1. Из данных сигналов я делаю вывод, что разработчиком платы предполагалось использовать обмен данными в режиме синхронной немультиплексированной NOR-Flash, времянка из даташита - рис. 2.

 

Также в референс мануале нахожу упоминание о режиме "Single-burst transfer":

When the selected bank is configured in burst mode for synchronous accesses, if for

example an AHB single-burst transaction is requested on 16-bit memories, the FSMC

performs a burst transaction of length 1 (if the AHB transfer is 16-bit), or length 2 (if the AHB

transfer is 32-bit) and de-assert the chip select signal when the last data is strobed.

Clearly, such a transfer is not the most efficient in terms of cycles (compared to an

asynchronous read). Nevertheless, a random asynchronous access would first require to re-

program the memory access mode, which would altogether last longer.

 

В английском не силён, сделал вывод, что этот режим выигрыша по скорости не даёт (выдавая лишь 1 или 2 слова подряд).

 

Собственно вопрос - для каждого чтения 16-битного слова контроллер организует цикл чтения "внешней памяти" как на рис. 2 (выставляется адрес, сигналы NE, NADV, NOE....), что занимает несколько тактов или всё же есть возможность вычитывать какой-то блок памяти, один раз выставив адрес и шараша данные по каждому фронту FSMC_CLK?? (что в моём понимании и был бы режим burst transfer..)

 

Какой режим будет самым простым и самым быстрым для исходных сигналов на рис. 1? Какую по вашему опыту в данной ситуации можно получить скорость чтения данных?

post-62983-1392047321_thumb.png

post-62983-1392047512_thumb.png

Изменено пользователем Кузнецофф Ю.

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


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

Так у вас данные и адрес мультиплексированы? или просто шина адреса в 1 разряд, от этого и зависить нужен или нет - FSMC_NADV.

 

Тайминги цикла чтения можно задать какие вам нужно в контроллере FSMC, на картинке просто один из примеров использования

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


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

Я на картинке увидел, что контроллер тратит на выставление адреса 4 такта FSMC_CLK, потом несколько тактов подряд читает данные.

Вопрос в том, можем ли мы читать, допустим 300 или сколько нам надо слов подряд, один раз выставив адрес?

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


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

Я на картинке увидел, что контроллер тратит на выставление адреса 4 такта FSMC_CLK, потом несколько тактов подряд читает данные.

Вопрос в том, можем ли мы читать, допустим 300 или сколько нам надо слов подряд, один раз выставив адрес?

 

 

Может в FPGA автоинкремент адреса заложен?

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


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

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

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

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

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

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

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

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

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

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