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

2 stm32 на одну шину fmc

Всем привет.

Есть 2 stm32f7 fmc подключенные через 245 формирователи на одну шину, 245 открываются только при обращении к этой шине (скажем в 1м банке), когда обращаются по очереди проблем вроде не должно быть, а если сразу в момент обращения одной полезет другая ?

Возникла идея для этого использовать wait, если лезет первая - wait на вторую, (соответственно и на её 245е) и наоборот, если полезут сразу одновременно обе - можно сделать приоритет по первой.

Как отнесется fmc к такому сигналу wait ?

сколько можно по времени держать wait ?

скорость шины не более 5-7 мГц планируется

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


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

Судя по рабочим диаграммам в мануалах, сигнал WAIT принимается контроллером в расчёт уже ПОСЛЕ начала обращения к микросхеме памяти. Считается, что микросхема ВСЕГДА готова к обращению после завершения предыдущей операции.

 

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

К сожалению, ведомый контроллер сможет узнать о том, что шина недоступна только косвенно, например, дополнительно перечитав этот самый сигнал.

Никакого DMA в этом случае не будет и в помине. Обращение - только атомарное, с логикой контроля ошибки и отказа арбитража. Я бы предположил в этом случае использовать аппаратную логику типа триггера, указывающего, было ли обращение к микросхеме памяти от мастера во время обращения ведомого, или что-то похожее.

 

Либо попробовал поискать двухканальную память, умеющую работать на два устройства паралельно.

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


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

Вам надо сделать арбитраж между 2-мя мастерами на FMC, например, по аналогии с PCI шиной, проложить 2 провода между процессорами - REQ# и GNT#, один процессор ведущий - у него GNT# выход, а REQ# вход, у второго - наоборот. Ведущий может лезть на FMC, только если у него GNT# выход неактивен, ведомый должен выставить REQ# и дождаться GNT# от ведущего, после чего лезть на FMC.

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


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

Судя по рабочим диаграммам в мануалах, сигнал WAIT принимается контроллером в расчёт уже ПОСЛЕ начала обращения к микросхеме памяти. Считается, что микросхема ВСЕГДА готова к обращению после завершения предыдущей операции.

По диаграмам WAIT задерживает цикл шины, если он не анализируется в начале при выдаче адреса и управляющих - должно получится

Но сколько его можно держать активным ? в DS не нашел....

 

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

К сожалению, ведомый контроллер сможет узнать о том, что шина недоступна только косвенно, например, дополнительно перечитав этот самый сигнал.

Никакого DMA в этом случае не будет и в помине. Обращение - только атомарное, с логикой контроля ошибки и отказа арбитража. Я бы предположил в этом случае использовать аппаратную логику типа триггера, указывающего, было ли обращение к микросхеме памяти от мастера во время обращения ведомого, или что-то похожее.

Будет наверное использоваться сигнал выбора банка (например ncs1)

DMA как бы и не требуется, обьем данных не большой

Для чего логика отказа арбитража ? Если при обрашении шина занята другим - по wait ждем освобождения шины и получаем доступ, если конечно идея работы по wait будет работать

 

Либо попробовал поискать двухканальную память, умеющую работать на два устройства паралельно.

В основном там будет переферия типа hc573 и 16550

Про двух канальную память знаю.

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


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

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

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

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

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

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

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

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

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

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