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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Покритикуйте схему каскадной платы расширения SPI
turnon
сообщение Apr 3 2018, 09:26
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Задумка такова - есть мастер SPI и много слейвов. Количество слейвов заранее неизвестно, максимальное - 32. Слейвы подключаются через плату расширения, на одной плате - 8 слейвов. Платы расширения могут включаться каскадом друг в друга.

Вход платы расширения: MOSI, MISO, SCK, SEL
Выход платы расширения: MOSI_OUT, MISO, SCK, SEL

Вход MOSI второй платы расширения подключается на выход MOSI_OUT первой платы раширения.

SCK, MISO – напрямую на слейвы, MOSI – через коммутатор 74HC157. При активном SEL (0) коммутатор пропускает на выход MOSI с выхода переполнения сдвигового регистра 74HC595 (пин 9), при неактивном (1) – пропускает MOSI как есть.

Выходы SELx отключенны пока активируется нужный SELx (благодаря инвертору U2).

Прикрепленное изображение


Сценарий работы.

Активируем SELx нужного слейва - подаем на SEL 0 и выводим в SPI 32-х битное число с 0-м битом в нужной позиции..

Отпускаем SEL (подаем 1), на одном из SELx оказывается активный (0) уровень. Если адрес больше 7 – он уйдет на следующую плату расширения через MOSI_QH / MOSI_OUT.

Передаем данные выбранному слейву, на текущей плате уйдет на MOSI, на следующих – на MOSI_OUT.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Apr 3 2018, 12:59
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (turnon @ Apr 3 2018, 17:26) *
Задумка такова - есть мастер SPI и много слейвов.

Я так понял, вы делаете что-то типа "PCI" для подключения карт расширения к материнской плате? У меня у самого была недавно такая идея. Пришёл к выводу, что слэйвы надо запараллелить шину, как она и предназначена, а выбирать нужный слэйв соответствующим CS. Его уже можно раздавать с 595 регистра. Считаю, что так быстрее. Меньше задержек. Но если шина длинная, то нужны буферы и резисторы последовательно.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
turnon
сообщение Apr 3 2018, 14:07
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Цитата(haker_fox @ Apr 3 2018, 16:59) *
Я так понял, вы делаете что-то типа "PCI" для подключения карт расширения к материнской плате? У меня у самого была недавно такая идея. Пришёл к выводу, что слэйвы надо запараллелить шину, как она и предназначена, а выбирать нужный слэйв соответствующим CS. Его уже можно раздавать с 595 регистра.

А у меня не так разве? Хотелось бы услышать подробности по деталям реализации, нет ли где ошибок, потенциальных проблем. Спасибо.
Go to the top of the page
 
+Quote Post
twix
сообщение Apr 3 2018, 17:30
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 4-11-15
Пользователь №: 89 174



Потенциальных проблем две.
1. SCK у Вас походу идет без буферизации от мастера сразу ко всем клиентам, то есть 32 входа.
Непонятно как он вообще идет, то есть есть плат расширения и есть еще какие то отдельные
провода или трассы которые как то идут мимо платы.

2. MISO также не показан, то есть все 32 передатчика будут подключены ко входу мастера, также без буферизации.
Тоже самое, несколько десятков устройств пускай с высоким импедансом, подключенные к одной точке,
это будет такая гидра из трасс и буферов, однозначно могут быть искажения.

Мое мнение малой кровью тут не обойтись, либо делать все по чесноку.
Пришел на плату расширения SPI, попал на мультиплексор и от него на каждое устройство отдельные 4 провода SPI.

Либо работать на очень низкой скорости, где на все плевать.

Плюс вообще нет никаких защит, ни от замыканий, ни от статики.

Я не шучу, у нас инженеры разрабатывали очень сложные устройства, и использовали шину I2C для совершенно простой диагностики и
какого там простого управления. Так вот суперсложные узлы работали как часы, а с шиной 8 месяцев был геморрой.

Сообщение отредактировал twix - Apr 3 2018, 18:29
Go to the top of the page
 
+Quote Post
turnon
сообщение Apr 3 2018, 18:10
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Цитата(twix @ Apr 3 2018, 21:30) *
1. SCK у Вас походу идет без буферизации от мастера сразу ко всем клиентам, то есть 32 входа.
Непонятно как он вообще идет, то есть есть плат расширения и есть еще какие то отдельные
провода или трассы которые как то идут мимо платы.

Спасибо за подробный ответ. Привел только схему коммутации. Чтобы быть уверенным, что это принципиально рабочее.

SPI идет только по платам расширения. Все 4 сигнала SPI заходят на плату расширения через ferrite bead и далее на буфер 74HC125, а с него уже по разъемам слейвов.
Прикрепленное изображение


Цитата(twix @ Apr 3 2018, 21:30) *
Плюс вообще нет никаких защит, ни от замыканий, ни от статики. Вы создаете себе огромный гемор с таким подходом,
хотя есть плюс, его можно долго разгребать, практически бесконечно и все это время получать зарплату занимаясь несложной работой.

От статики поставлю ESDA5V3L, 2 шт. на 4 ноги. Достаточно только на входе платы расширения или надо и на выходе мастера?
Go to the top of the page
 
+Quote Post
twix
сообщение Apr 3 2018, 18:28
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 4-11-15
Пользователь №: 89 174



Цитата(turnon @ Apr 3 2018, 19:10) *
От статики поставлю ESDA5V3L, 2 шт. на 4 ноги. Достаточно только на входе платы расширения или надо и на выходе мастера?

От статики ставят на все линии входящие и выходящие из платы, то есть по обе стороны разъема.
Go to the top of the page
 
+Quote Post
turnon
сообщение Apr 4 2018, 09:58
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Цитата(twix @ Apr 3 2018, 21:30) *
Потенциальных проблем две.

А по логике сценария опроса слейвов? Будет работать?
Go to the top of the page
 
+Quote Post
Plain
сообщение Apr 4 2018, 10:20
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



Цитата(turnon @ Apr 3 2018, 21:10) *
От статики поставлю ESDA5V3L

Как, куда, когда? А после того, как соизволите, нам ещё раз всё критиковать по-новой?
Go to the top of the page
 
+Quote Post
turnon
сообщение Apr 4 2018, 12:52
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Цитата(Plain @ Apr 4 2018, 14:20) *
Как, куда, когда? А после того, как соизволите, нам ещё раз всё критиковать по-новой?

Простите, не уточнил сразу. Вот схема.

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 4 2018, 14:13
Сообщение #10


Гуру
******

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



Цитата(turnon @ Apr 3 2018, 12:26) *
Задумка такова - есть мастер SPI и много слейвов.

Могу добавить только "бантик"...
Я бы сделал место для джампера, чтобы всю эту цепочку можно было проверить "сам на себя"... Потому как, когда железа много, то рано или поздно где-то появятся глюки.... Да и сдвиги клоков так подбирать будет удобнее...
И еще. В схеме нет ни одного триггера, а потому на сигналах может быть дребезг. А переключение чего-либо дребезжащим сигналом вызовет еще больший дребезг. И питание приходит откуда-то и только есть фильтры и не более.
Так что эта конструкция будет довольно медленной. И с плохими фронтами данных.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
turnon
сообщение Apr 4 2018, 15:35
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207



Цитата(iosifk @ Apr 4 2018, 18:13) *
Могу добавить только "бантик"...
Я бы сделал место для джампера, чтобы всю эту цепочку можно было проверить "сам на себя"... Потому как, когда железа много, то рано или поздно где-то появятся глюки.... Да и сдвиги клоков так подбирать будет удобнее...
И еще. В схеме нет ни одного триггера, а потому на сигналах может быть дребезг. А переключение чего-либо дребезжащим сигналом вызовет еще больший дребезг. И питание приходит откуда-то и только есть фильтры и не более.
Так что эта конструкция будет довольно медленной. И с плохими фронтами данных.

Спасибо, дельные замечания. Буфер заменю на 74HCT125, входы с триггером Шмитта.
Go to the top of the page
 
+Quote Post
Plain
сообщение Apr 5 2018, 08:45
Сообщение #12


Гуру
******

Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710



Цитата(turnon @ Apr 4 2018, 15:52) *
Вот схема

Где резисторы, ограничивающие ток выводов ИС? Во время статического разряда на сборках ограничителей порядка 20 В.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Apr 5 2018, 10:24
Сообщение #13


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (turnon @ Apr 3 2018, 22:07) *
А у меня не так разве? Хотелось бы услышать подробности по деталям реализации, нет ли где ошибок, потенциальных проблем. Спасибо.

Всё, кроме буферов процитировали))) Ну как у вас я не сразу понял, извините)
А теперь вам уже столько всего насоветовали, что вроде как и добавить нечего)


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
bloody-wolf
сообщение Apr 5 2018, 11:09
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 220
Регистрация: 15-05-09
Пользователь №: 49 132



Цитата(turnon @ Apr 4 2018, 15:52) *
Простите, не уточнил сразу. Вот схема.

Прикрепленное изображение


Хотелось бы уточнить целесообразность использования 5 вольтового SPI онтерфейса. Собственно нафига оно вам надо? почему не 3.3?
опять же, применительно к буферу, я бы, на вашем месте, поставил бы не буфер, как таковой, а левел шифтер, что то наподобие TXB0104 или MAX3395E, скорее всего все равно комутировать придется с логикой 3.3В, т.е. левел транслятор возможно понадобится, плюс он же как редрайвер и он же как ESD защита, ибо имет встроенную по I/O ногам.

BLM18 с сигнальных линий выкинуть фпечь и поставить резисторы, в районе 10-33 Ом.

BLM21 по питанию ставить с обвесом ОКОЛО НИХ перед и после конденсаторов, что то типа 4.7мкФ+0.1 перед, и 10...47мкФ+0.1 после. Это помимо конденсаторов у источников питания.

ЗЫ. А вообще конечно странно для таких вещей не пользовать какую-нибудь дешманскую CPLD, самое то, чтобы не городить огород с регистрами, буферами, защелками и тд и тп от Латисс или Альтеры. цена вопроса 1-4 доллара, зато к ЦПЛД можно прикрутить не только конвертер цепочки SPI, а еще и например ватч-дог/удаленный резет/управление цепочкой питания и тп.

Это так, мысли в слух.
Go to the top of the page
 
+Quote Post
Andrew Su
сообщение Apr 5 2018, 11:42
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 301
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647



Добрый день.
Обязательно надо просчитать для частоты SCK, когда к главному MISO "доберутся" данные
от самого "дальнего" слейва через все буферы.
Например мастер выдает данные по спаду(фронту) SCK и ожидает, что по фронту(спаду) сможет защелкнуть
ответные данные.
Чем длиннее цепочка, тем меньше максимально возможная скорость.
Go to the top of the page
 
+Quote Post

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

 


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


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