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

 
 
> STM32F4. Как правильно использовать FSMC?
TolikG
сообщение Oct 14 2014, 06:16
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 19-03-10
Пользователь №: 56 071



Использую интерфейс внешней памяти для формирования сигналов выбора периферийных устройств подключенных к шине SPI. Сигналы формирует ПЛИС, а через FSMC засылается адрес устройства. Дешифратор адреса - комбинаторная схема, задержек практически не вносит. Псевдокод обращения к устройству по шине SPI:

*(uint16_t *)(SPI_CS_CONTROL) = 0x20; // запись адреса устройства в ПЛИС через FSMC
GPIOI->BSRRH |= GPIO_Pin_0 ; // устанавливаю чипселект в 0
mySPI_Write(data); // выдаю байт в шину SPI
....

Проверяю осциллографом сигналы на входах периферийного устройства. Иногда происходят сбои - синхроимпульсы появляются раньше чем установится низкий уровень чипселект.
Значит шина SPI начала выдачу данных, а FSMC еще не выдала адрес в дешифратор.
Подскажите как убедиться что FSMC отработала команду?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
khach
сообщение Oct 14 2014, 17:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



SPI в мультимастер мод,
NSS output disabled (SSM = 0, SSOE = 0)
This configuration allows multimaster capability
NSS формировтаь в FPGA после того, как FSMC все пропишет. Иначе гонки на шинах с непредсказуемым результатом. Только с этим мультимастером проблемы были- не на всех ревизиях работало.
Ну или вообще старый костыль- оба устройства слейвы, а клок формирует FPGA. Учесть правильную полярность клока для приемника и передатчика.
Можно с FPGA дернуть триггер DMA, который прогрузит SPI и запустит передачу.
Короче, все с костылями, т.к задержки цикла на FSMC зависят от настройки FSMC, в том числе и других банков, а не только банка FPGA.
Go to the top of the page
 
+Quote Post



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

 


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


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