Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подключение внешней SRAM к STM32
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
6502
Можно ли подключить внешнюю SRAM одновременно к двум МК?
Т.е. сделать ее общей, доступной для двух МК сразу, например через интерфейс FSMC.

Внутри SRAM будет разделена на 2 области, каждая из которых будет поочередно доступна только одному из МК.
_Артём_
Цитата(6502 @ Mar 28 2012, 20:30) *
Можно ли подключить внешнюю SRAM одновременно к двум МК?
Т.е. сделать ее общей, доступной для двух МК сразу, например через интерфейс FSMC.

Внутри SRAM будет разделена на 2 области, каждая из которых будет поочередно доступна только одному из МК.


Есть двухпортовая SRAM(IDT кажется производил).
Shivers
Почему бы и нет, хоть 10 объединить. По сути это будет мультипроцессорная система с shared memory, классический вариант. Единственное, нужно только чтобы мк както договорились между собой, кто шину драйверит ) Должен быть какойто механизм hand-shake.
Классический вариант с арбитрацией: предположим, есть 10 мк. Если какомуто мк нужно обратиться в sram он выставляет запрос. И среди этих 10 мк один является еще арбитром - все запросы идут к нему. А он уже раздает гранты по какомуто алгоритму (fixed priority, weighted round robin и т.д.), т.е. арбитрирует. Получается, доступ к sram есть только у того мк, кому дали грант - он запускает dma а затем говорит арбитру что закончил (и переводит выводы в 3e состояние чтобы не конфликтовать со следующим кто полезет в sram).
В общем, мк это такой же процессор, можно хоть кластер на них построить. И память не нужна двупортовая
detonator
Есть предложение завести перекрёстно сигналы FSMC_NE одного на FSMC_NWAIT другого. Получиться что при выборе памяти второй процессор будет в ожидании. Но может возникнуть комфликт на шине и придёться ставить буферы управляемые теме же сигналами FSMC_NE и отключать второй процесор от шины и сигнала FSMC_NE ( чтобы не попасть два контроллера в взоимоожидание sm.gif ). Так как опущеный FSMC_NWAIT может не гарантировать начало транзакции обращения к памяти. Таким подходом возможно полностью забыть о програмном арбитраже! Так как контроллер если даже и захотел общаться с занятой памяти всё равно он отключён от шины адреса и будет ждать пока удерживаеться ожидание.
Allregia
Вопрос чуть в сторону - если я правильно понял даташиты, то подключить внешнюю память к STM32F2x/4x можно только к чипам в больших корпусах, т.к. даже у 100-ногих не выведана вся шина адреса ?
dxp
QUOTE (Allregia @ May 13 2012, 15:14) *
Вопрос чуть в сторону - если я правильно понял даташиты, то подключить внешнюю память к STM32F2x/4x можно только к чипам в больших корпусах, т.к. даже у 100-ногих не выведана вся шина адреса ?

Подключить можно. У "малоногих" корупусов там для этого используется мультиплексированный режим - младшие 16 бит адреса выводятся на шину данных и должны быть защёлкнуты во внешнем регистре (для управления регистром-защёлкой там есть специальный сигнал). Примерно как у MCS-51 при работе с внешней шиной (только там младший байт адреса защёлкивался). Но, имхо, чем городить этот огород с внешним регистром, лучше поставить 144-лапый корпус с полноценной шиной. Либо использовать память со встроенным регистром (не знаю, выпускается ли такая ещё).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.