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

 
 
> Реализовать мультипроцессорный доступ к SPI DATA FLASH, --
Kovrov
сообщение Apr 6 2006, 15:31
Сообщение #1


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



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


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kovrov
сообщение Apr 6 2006, 18:33
Сообщение #2


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



я тоже нехочу варианта когда оба хотят!!
думаю сделать пару доп пинов занят - хочу :-)
ещё больное место это установить (освобождать) линии в зет состояние..
как бы так бы изголиться....
так навскидку беспокоит сигнал CS + ещё согласование 5- 3 вольта
ну это ладно буфер НСТ серии поможет наверное....


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 6 2006, 20:02
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Kovrov @ Apr 7 2006, 00:33) *
ещё больное место это установить (освобождать) линии в зет состояние..
как бы так бы изголиться....

Дык я же предложил вам муксер (мультиплексор) поставить. Но только не серии HCT! Типа 74HC257. Сигналы CS, SCK, DI от каждого МК завести на свою группу входов муксера. Арбитраж сделать на XORе типа 74HC86. Завести на входы XOR по CSу от каждого МК, на втором элементе 74HC86 проинвертировать и дальше на вход OE муксера. Состояние входа ОЕ должны проверять каждый из МК. Если МК CS сбросил, а вход OE остался в лог. 1, то значит произошел конфликт доступа. При этом выходы мультиплексора перейдут (или останутся) в высокоимпедансное состояние. А если будет наличествовать pull-up на его выходах, то для DataFlash это будет обычное НЕактивное состояние. Мультиплексор можно запитать от 3.3В и сразу же получить согласование уровней с входами DataFlash. Если хочется ВЫходные уровени схемы "арбитража и согласования" иметь TTL, то никто не мешает использовать свободный элемент 74HC86 в качестве повторителя, запитав ее от 5В. Согласовение же по входам мультиплексора легко делается с помощью последовательного включения резисторов. Например, для 74AC257 (ИМХО более предпочтительный муксер в данном случае, чем HC257) входная емкость не более 10pF, а макс. ток защитного диода 20мА. Так что резисторы, скажем 330 Ом, вообще нисколько не повлияют на работоспособность SPI до частоты этак в 10МГц. Не думаю, что ваш МК будет работать с DataFlash на более высокой частоте тактирования SPI.
Итого подытожим. Два корпуса м/с малой степени интеграции 74AC257 и 74AC(HC)86 вполне спасают отца русской демократии от придуманной им проблемы. Ферштейн? wink.gif
P.S. забыл еще про адресацию входов написать. Если вдруг сами не додумаетесь, то заведите один из CSов на адресный вход S указанного мультиплексора. Соответственно для этого МК сигналы нужно завести на те входы муксера, которые выбираются при низком уровне на входе S. Никакого высокого приоритета для этого МК такая схема адресации сигналов не дает. Догадались почему?
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Apr 7 2006, 06:23
Сообщение #4


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



Цитата(rezident @ Apr 7 2006, 00:02) *
. Так что резисторы, скажем 330 Ом, вообще нисколько не повлияют на работоспособность SPI до частоты этак в 10МГц. Не думаю, что ваш МК будет работать с DataFlash на более высокой частоте тактирования SPI.

скорее всего CLK на SPI будет работать больше чем 10 мгц
пояснение...
первый мк будет по наличии аварии весь архив данных записывать в датафлеш
процесс не спешный.. и проблем не вызывает
потом все это хозяйство из флешки должен забрать второй мк
что за мк будет и какая скорость не известно
поэтому на 50 мгц должен быть запас - от греха подальше...
чначала велось к тому что чтоб все это передавалось по уарту по рс485
но протокол так и не был утвержден сторонами..
поэтому мня посетила мысль от мультипроцессорном доступе

Цитата(defunct @ Apr 7 2006, 10:01) *
Такой вариантец могу предложить:
Тупо. Соединить линии обращения к датафлешу с обоих МК. Перед обращением к датафлешу активировать выход DDRX = 11, после окончания работы - отключать DDRX = 00. И уже после того как пины от шины датафлеша отрублены - сигнализировать сопроцессору, что линия свободна.


Угу. меня этот вариант тоже сразу начал крутиться в голове...
но может мультиплексирование всетаки правильней?
надо подумать....


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 7 2006, 11:23
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Kovrov @ Apr 7 2006, 12:23) *
скорее всего CLK на SPI будет работать больше чем 10 мгц
пояснение...
первый мк будет по наличии аварии весь архив данных записывать в датафлеш
процесс не спешный.. и проблем не вызывает
потом все это хозяйство из флешки должен забрать второй мк
что за мк будет и какая скорость не известно
поэтому на 50 мгц должен быть запас - от греха подальше...

Я конечно много не знаю, но где вы нашли DataFlash AT45DB161(с каким-нибудь суффиксом), работающую с частотой тактирования 50МГц? Это во-первых. А во-вторых, поскольку тема размещена в разделе AVR, то я логично предположил, что один из МК тоже AVR. Я не очень хорошо знаю все AVR, но растолкуйте который из них сможет выгребать с конвейера SPI данные чаще чем 2-3 миллиона раз в секунду? Или для этого процесса DMA используется?
Я в принципе тоже сторонник, что "лучше переспать, чем недоесть", однако от ваших запросов вы не слишком рискуете "лопнуть" ? wink.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kovrov   Реализовать мультипроцессорный доступ к SPI DATA FLASH   Apr 6 2006, 15:31
- - beer_warrior   Самое простое схемотехнически, процессор, прежде ч...   Apr 6 2006, 17:51
- - rezident   Я бы для исключения аппаратных коллизий все-таки п...   Apr 6 2006, 18:00
|- - defunct   Цитата(Kovrov @ Apr 7 2006, 09:23) Угу. м...   Apr 7 2006, 07:41
- - beer_warrior   Цитататак навскидку беспокоит сигнал CS + ещё согл...   Apr 6 2006, 18:41
- - beer_warrior   А нафига все сигналы заводить на мукс? Достаточно ...   Apr 6 2006, 20:15
|- - rezident   Цитата(beer_warrior @ Apr 7 2006, 02:15) ...   Apr 6 2006, 20:59
- - Kovrov   спасибо всем откликнувшимся щя буду вникать че куд...   Apr 7 2006, 05:46
- - defunct   Такой вариантец могу предложить: Соединить две пар...   Apr 7 2006, 06:01
- - Kovrov   один из процессоров имеено тот который будет выпол...   Apr 7 2006, 12:31
|- - rezident   Цитата(Kovrov @ Apr 7 2006, 18:31) один и...   Apr 7 2006, 15:13
|- - Kovrov   Цитата(rezident @ Apr 7 2006, 19:13) Зада...   Apr 7 2006, 15:26
- - rezident   Гм. Вот вам предложат накормить в ресторане какого...   Apr 7 2006, 15:43
- - Kovrov   нет я просто предложу ему меню!!!...   Apr 7 2006, 16:01
- - rezident   Я уж и не стал на выходные данные 125-ю предлагать...   Apr 7 2006, 16:19
- - Kovrov   как так не ко двору - так и сделал!!!   Apr 7 2006, 16:26
- - Ledol   Если речь идет о 2-х процессорной схеме то можно о...   Apr 20 2006, 15:24


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

 


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


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