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

 
 
 
Reply to this topicStart new topic
> STM32 <- FSMC -> FPGA
Кузнецофф Ю.
сообщение Feb 10 2014, 16:03
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 15-02-11
Из: мск
Пользователь №: 62 983



Добрый вечер, уважаемое сообщество!
Обращаюсь к знатокам 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? Какую по вашему опыту в данной ситуации можно получить скорость чтения данных?


Сообщение отредактировал Кузнецофф Ю. - Feb 11 2014, 13:21
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
DeNi
сообщение Feb 10 2014, 16:41
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 18-10-06
Из: Москва
Пользователь №: 21 459



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

Тайминги цикла чтения можно задать какие вам нужно в контроллере FSMC, на картинке просто один из примеров использования
Go to the top of the page
 
+Quote Post
Кузнецофф Ю.
сообщение Feb 11 2014, 07:49
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 15-02-11
Из: мск
Пользователь №: 62 983



Я на картинке увидел, что контроллер тратит на выставление адреса 4 такта FSMC_CLK, потом несколько тактов подряд читает данные.
Вопрос в том, можем ли мы читать, допустим 300 или сколько нам надо слов подряд, один раз выставив адрес?
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Feb 11 2014, 12:24
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(Кузнецофф Ю. @ Feb 11 2014, 13:49) *
Я на картинке увидел, что контроллер тратит на выставление адреса 4 такта FSMC_CLK, потом несколько тактов подряд читает данные.
Вопрос в том, можем ли мы читать, допустим 300 или сколько нам надо слов подряд, один раз выставив адрес?



Может в FPGA автоинкремент адреса заложен?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 9th July 2025 - 04:23
Рейтинг@Mail.ru


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