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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Много устройств на одной SPI шине
Pasha_a13
сообщение Nov 10 2014, 11:10
Сообщение #1


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

Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244



Добрый день!

Возник вопрос - нужно на одну шину SPI навесить порядка 25-30 микроконтроллеров, которые будут работать в режиме slave. Мастер будет всего один (тоже контроллер).
Работать они будут цепочкой, т.е. данные вошли в первый MOSI, вышли из MISO и пошли к следующему контроллеру.
Тактироваться все будут от одного источника, так же и как CS у них будет общий.
Так как контроллеров довольно много, то протяженность линии будет довольно большая - порядка 40-50 см, не меньше.
Задержки при обмене данных должны быть минимальные, потому частота тактирования должна быть не менее 12 МГц.

Первую проблему, которую я вижу это нагрузочная способность выводов SCK и CS - решить ее думаю использованием дополнительных буферов с хорошей нагрузочной способностью.
Больше вопросов возникает из-за протяженности линий по плате (емкость проводников и т.п.) - каким образом избежать негативных последствий связанных с этим?

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

Спасибо!
Go to the top of the page
 
+Quote Post
vitan
сообщение Nov 10 2014, 12:31
Сообщение #2


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(Pasha_a13 @ Nov 10 2014, 15:10) *
как лучше решать

Моделировать.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 10 2014, 12:38
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Pasha_a13 @ Nov 10 2014, 15:10) *
Добрый день!

Возник вопрос - нужно на одну шину SPI навесить порядка 25-30 микроконтроллеров, которые будут работать в режиме slave. Мастер будет всего один (тоже контроллер).
Работать они будут цепочкой, т.е. данные вошли в первый MOSI, вышли из MISO и пошли к следующему контроллеру.
Тактироваться все будут от одного источника, так же и как CS у них будет общий.
Так как контроллеров довольно много, то протяженность линии будет довольно большая - порядка 40-50 см, не меньше.
Задержки при обмене данных должны быть минимальные, потому частота тактирования должна быть не менее 12 МГц.

Спасибо!

А сами микроконтроллеры 12 МГц по SPI тянут?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Pasha_a13
сообщение Nov 10 2014, 13:01
Сообщение #4


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

Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244



Да, микроконтроллеры cortex M4 вполне нормально вытягивают такую частоту SPI.

Цитата(vitan @ Nov 10 2014, 16:31) *
Моделировать.

А не подскажете каким образом лучше всего это промоделировать? Специальным софтом (каким?) или на макете?
Go to the top of the page
 
+Quote Post
vitan
сообщение Nov 10 2014, 13:38
Сообщение #5


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(Pasha_a13 @ Nov 10 2014, 17:01) *
А не подскажете каким образом лучше всего это промоделировать? Специальным софтом (каким?) или на макете?

Выбор большой, от встроенных в САПР симуляторов до "отдельно стоящих". В чем у Вас плата разведена?
Go to the top of the page
 
+Quote Post
Pasha_a13
сообщение Nov 10 2014, 13:52
Сообщение #6


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

Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244



Цитата(vitan @ Nov 10 2014, 17:38) *
Выбор большой, от встроенных в САПР симуляторов до "отдельно стоящих". В чем у Вас плата разведена?

Плата еще не разведена, я сейчас разрабатываю схему и мне нужно учесть там разные возможные нюансы...типа поставить дополнительные буферы, терминаторы на линии и т.п.
Потому и возникает вопрос как бы это промоделировать сначала, потому что плату такую изготовить будет недешево стоить и потому не хотелось бы ее переделывать потом.
Плата будет разводиться скорее всего в Mentor expedition.
Go to the top of the page
 
+Quote Post
Pasha_a13
сообщение Nov 10 2014, 13:55
Сообщение #7


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

Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244



Каким образом правильно произвести моделирование?

Сообщение отредактировал Pasha_a13 - Nov 10 2014, 13:56
Go to the top of the page
 
+Quote Post
vitan
сообщение Nov 10 2014, 14:00
Сообщение #8


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(Pasha_a13 @ Nov 10 2014, 17:52) *
Плата еще не разведена, я сейчас разрабатываю схему и мне нужно учесть там разные возможные нюансы...типа поставить дополнительные буферы, терминаторы на линии и т.п.
Потому и возникает вопрос как бы это промоделировать сначала, потому что плату такую изготовить будет недешево стоить и потому не хотелось бы ее переделывать потом.
Плата будет разводиться скорее всего в Mentor expedition.

Ну так в менторе же полным-полно всего этого. Перед началом разводки можно оценить приблизительно, разведенное - уже точнее. Скачиваете у производителя IBIS-модели, засовываете все это в гиперлинкс и смотрите. Посмотрите тут раздел ментора, там выкладывали кучу тренингов по гиперлинксу и т.п.
Go to the top of the page
 
+Quote Post
Pasha_a13
сообщение Nov 10 2014, 14:43
Сообщение #9


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

Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244



Спасибо! Попробую гиперлинксом промоделировать.
А вообще можете подсказать какие могут быть подводные камни в подобных решениях как у меня?
Просто я до этого не сталкивался с такими скоростными шинами да еще и с таким кол-вом одновременно подключенных контроллеров на эту шину.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Nov 10 2014, 14:45
Сообщение #10


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Pasha_a13 @ Nov 10 2014, 13:10) *
Добрый день!

Возник вопрос - нужно на одну шину SPI навесить порядка 25-30 микроконтроллеров, которые будут работать в режиме slave. Мастер будет всего один (тоже контроллер).
Работать они будут цепочкой, т.е. данные вошли в первый MOSI, вышли из MISO и пошли к следующему контроллеру.
Тактироваться все будут от одного источника, так же и как CS у них будет общий.
Так как контроллеров довольно много, то протяженность линии будет довольно большая - порядка 40-50 см, не меньше.
Задержки при обмене данных должны быть минимальные, потому частота тактирования должна быть не менее 12 МГц.

Первую проблему, которую я вижу это нагрузочная способность выводов SCK и CS - решить ее думаю использованием дополнительных буферов с хорошей нагрузочной способностью.
Больше вопросов возникает из-за протяженности линий по плате (емкость проводников и т.п.) - каким образом избежать негативных последствий связанных с этим?

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

Спасибо!

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


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Xenia
сообщение Nov 10 2014, 14:47
Сообщение #11


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Pasha_a13 @ Nov 10 2014, 14:10) *
Работать они будут цепочкой, т.е. данные вошли в первый MOSI, вышли из MISO и пошли к следующему контроллеру.


А кольцо организовать не хотите ли? Так, как в Википедии нарисовано:

Тогда это будет не одна шина, а у каждой пары своя отдельная.
Go to the top of the page
 
+Quote Post
Pasha_a13
сообщение Nov 10 2014, 14:52
Сообщение #12


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

Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244



Цитата(Xenia @ Nov 10 2014, 18:47) *
А кольцо организовать не хотите ли?

Да, именно так оно и будет организовано. Я наверное просто некорректно описал все.


Цитата(Maverick @ Nov 10 2014, 18:45) *
а чего не хотите поставить ПЛИС?
ПЛИС собирает данные с 25 SPI и записывает в память, а мастер-контроллер ПЛИС "видит" как внешнюю память и т.о. образом забиравет данные

Смотрели в сторону ПЛИС, согласен что наверное было бы более правильно именно их использовать.
Проблема в том что с ПЛИС ни я, ни программист не работали и потому время разработки вырастет в нереальные сроки.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Nov 10 2014, 14:57
Сообщение #13


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Pasha_a13 @ Nov 10 2014, 16:52) *
Да, именно так оно и будет организовано. Я наверное просто некорректно описал все.



Смотрели в сторону ПЛИС, согласен что наверное было бы более правильно именно их использовать.
Проблема в том что с ПЛИС ни я, ни программист не работали и потому время разработки вырастет в нереальные сроки.

ТЗ в личку можете написать - может и помогу....
а так Вы можете тоже намучиться мастер-контроллер может тоже времянку попортить особенно в большой программе (нагруженном процессоре)


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Pasha_a13
сообщение Nov 10 2014, 15:04
Сообщение #14


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

Группа: Участник
Сообщений: 166
Регистрация: 8-09-09
Из: Украина
Пользователь №: 52 244



Цитата(Maverick @ Nov 10 2014, 18:57) *
ТЗ в личку можете написать - может и помогу....
а так Вы можете тоже намучиться мастер-контроллер может тоже времянку попортить особенно в большой программе (нагруженном процессоре)

Спасибо за предложение!
Однако, к сожалению, нам нельзя привлекать к проекту сторонних программистов.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Nov 10 2014, 15:04
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Я бы с такой схемой не стал связываться. Можно уйти в отладку с головой, и больше никогда из неё не выйти.
На вскидку, проблемы будут такие : во-первых буферы на CS и CLK не будут панацеей, т.к. форма сигнала в линии будет определена в основном её индуктивностью и ёмкостью, тактовые импульсы просто расплывутся в какие-нибудь непонятные то ли колебания , то ли биения. Ну и Вы же всё равно не будете цеплять линию к буферу напрямую, а поставите последовательный резистор 10-100 Ом, как раз для борьбы с дребезгом. Одной мощностью буфера проблему не одолеть. Вы знаете, как выглядит дребезг на фронтах импульсов ? А теперь представьте, что частота этого дребезга начинает расти, что при этом происходит с импульсом и соседними к нему ? А если она попадает в резонанс ? Во-вторых надо не забыть поставить буфер и на MOSI мастер-процессора. Ведь буферы будут создавать задержки, надо их выровнять по всем линиям.

А не хотите ли задействовать по 2 SPI у каждого процессора ? Т.е. один на приём, второй на передачу. И сразу всё просто, никаких мучений.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post

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

 


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


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