|
Покритикуйте схему каскадной платы расширения SPI |
|
|
|
Apr 3 2018, 09:26
|
Местный
  
Группа: Свой
Сообщений: 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.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 19)
|
Apr 3 2018, 14:07
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Цитата(haker_fox @ Apr 3 2018, 16:59)  Я так понял, вы делаете что-то типа "PCI" для подключения карт расширения к материнской плате? У меня у самого была недавно такая идея. Пришёл к выводу, что слэйвы надо запараллелить шину, как она и предназначена, а выбирать нужный слэйв соответствующим CS. Его уже можно раздавать с 595 регистра. А у меня не так разве? Хотелось бы услышать подробности по деталям реализации, нет ли где ошибок, потенциальных проблем. Спасибо.
|
|
|
|
|
Apr 3 2018, 17:30
|
Местный
  
Группа: Участник
Сообщений: 326
Регистрация: 4-11-15
Пользователь №: 89 174

|
Потенциальных проблем две. 1. SCK у Вас походу идет без буферизации от мастера сразу ко всем клиентам, то есть 32 входа. Непонятно как он вообще идет, то есть есть плат расширения и есть еще какие то отдельные провода или трассы которые как то идут мимо платы.
2. MISO также не показан, то есть все 32 передатчика будут подключены ко входу мастера, также без буферизации. Тоже самое, несколько десятков устройств пускай с высоким импедансом, подключенные к одной точке, это будет такая гидра из трасс и буферов, однозначно могут быть искажения. Мое мнение малой кровью тут не обойтись, либо делать все по чесноку. Пришел на плату расширения SPI, попал на мультиплексор и от него на каждое устройство отдельные 4 провода SPI.
Либо работать на очень низкой скорости, где на все плевать.
Плюс вообще нет никаких защит, ни от замыканий, ни от статики.
Я не шучу, у нас инженеры разрабатывали очень сложные устройства, и использовали шину I2C для совершенно простой диагностики и какого там простого управления. Так вот суперсложные узлы работали как часы, а с шиной 8 месяцев был геморрой.
Сообщение отредактировал twix - Apr 3 2018, 18:29
|
|
|
|
|
Apr 3 2018, 18:10
|
Местный
  
Группа: Свой
Сообщений: 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 ноги. Достаточно только на входе платы расширения или надо и на выходе мастера?
|
|
|
|
|
Apr 3 2018, 18:28
|
Местный
  
Группа: Участник
Сообщений: 326
Регистрация: 4-11-15
Пользователь №: 89 174

|
Цитата(turnon @ Apr 3 2018, 19:10)  От статики поставлю ESDA5V3L, 2 шт. на 4 ноги. Достаточно только на входе платы расширения или надо и на выходе мастера? От статики ставят на все линии входящие и выходящие из платы, то есть по обе стороны разъема.
|
|
|
|
|
Apr 4 2018, 09:58
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Цитата(twix @ Apr 3 2018, 21:30)  Потенциальных проблем две. А по логике сценария опроса слейвов? Будет работать?
|
|
|
|
|
Apr 4 2018, 12:52
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Цитата(Plain @ Apr 4 2018, 14:20)  Как, куда, когда? А после того, как соизволите, нам ещё раз всё критиковать по-новой? Простите, не уточнил сразу. Вот схема.
|
|
|
|
|
Apr 4 2018, 14:13
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(turnon @ Apr 3 2018, 12:26)  Задумка такова - есть мастер SPI и много слейвов. Могу добавить только "бантик"... Я бы сделал место для джампера, чтобы всю эту цепочку можно было проверить "сам на себя"... Потому как, когда железа много, то рано или поздно где-то появятся глюки.... Да и сдвиги клоков так подбирать будет удобнее... И еще. В схеме нет ни одного триггера, а потому на сигналах может быть дребезг. А переключение чего-либо дребезжащим сигналом вызовет еще больший дребезг. И питание приходит откуда-то и только есть фильтры и не более. Так что эта конструкция будет довольно медленной. И с плохими фронтами данных.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Apr 4 2018, 15:35
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Цитата(iosifk @ Apr 4 2018, 18:13)  Могу добавить только "бантик"... Я бы сделал место для джампера, чтобы всю эту цепочку можно было проверить "сам на себя"... Потому как, когда железа много, то рано или поздно где-то появятся глюки.... Да и сдвиги клоков так подбирать будет удобнее... И еще. В схеме нет ни одного триггера, а потому на сигналах может быть дребезг. А переключение чего-либо дребезжащим сигналом вызовет еще больший дребезг. И питание приходит откуда-то и только есть фильтры и не более. Так что эта конструкция будет довольно медленной. И с плохими фронтами данных. Спасибо, дельные замечания. Буфер заменю на 74HCT125, входы с триггером Шмитта.
|
|
|
|
|
Apr 5 2018, 11:09
|
Местный
  
Группа: Свой
Сообщений: 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, а еще и например ватч-дог/удаленный резет/управление цепочкой питания и тп. Это так, мысли в слух.
|
|
|
|
|
Apr 5 2018, 13:11
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Цитата(Plain @ Apr 5 2018, 12:45)  Где резисторы, ограничивающие ток выводов ИС? Во время статического разряда на сборках ограничителей порядка 20 В. А какой номинал порекомендуете? Скорость SPI - макс 1 MB. Цитата(bloody-wolf @ Apr 5 2018, 15:09)  Хотелось бы уточнить целесообразность использования 5 вольтового SPI онтерфейса. Собственно нафига оно вам надо? почему не 3.3? Слейвы в основном на STM8S с питанием 4.1В (задается питанием GSM модуля), мастер - STM32 c питанием 3.3В Цитата(bloody-wolf @ Apr 5 2018, 15:09)  BLM18 с сигнальных линий выкинуть фпечь и поставить резисторы, в районе 10-33 Ом. На линии до каждого слейва или на линии входа платы расширения?
|
|
|
|
|
Apr 5 2018, 13:29
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(bloody-wolf @ Apr 5 2018, 14:09)  ЗЫ. А вообще конечно странно для таких вещей не пользовать какую-нибудь дешманскую CPLD, самое то, чтобы не городить огород с регистрами, буферами, защелками и тд и тп от Латисс или Альтеры. цена вопроса 1-4 доллара, зато к ЦПЛД можно прикрутить не только конвертер цепочки SPI, а еще и например ватч-дог/удаленный резет/управление цепочкой питания и тп.
Это так, мысли в слух. еще мысли. Если уж ставить CPLD, то можно часть выходов сконфигурить как JTAG... Хотя бы и дать внешнюю к CPLD перемычку, что бы выбрать режим работы порта SPI или JTAG... Тогда можно будет не только удаленно перепрошивать что-то, но и делать сканирование удаленных плат...
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Apr 5 2018, 16:12
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Цитата(iosifk @ Apr 5 2018, 17:29)  еще мысли. Если уж ставить CPLD, то можно часть выходов сконфигурить как JTAG... Хотя бы и дать внешнюю к CPLD перемычку, что бы выбрать режим работы порта SPI или JTAG... Тогда можно будет не только удаленно перепрошивать что-то, но и делать сканирование удаленных плат... Остапа несло..  Сканировать и так могу удаленно. Но это ненадежный сценарий. Модуль на посадочном месте должен быть прописан принудительно, если его там нет - значит кричать наружу об ошибке.
|
|
|
|
|
Apr 5 2018, 19:20
|
Гуру
     
Группа: Участник
Сообщений: 6 776
Регистрация: 5-03-09
Из: Москва
Пользователь №: 45 710

|
Цитата(turnon @ Apr 5 2018, 16:11)  А какой номинал порекомендуете? Повторяю, в паспортах Ваших ИС указан предельный ток выводов, обычно он половина от указанного там же тока защёлкивания, следовательно, вычитаете напряжение при помехе из напряжения питания и делите на этот ток. Улучшить ситуацию можно посредством двухкаскадной защиты, т.е. последовательно вторая такая же сборка ограничителей и меньше сумма сопротивлений. И такие резисторы будут с обеих сторон, т.е. последовательно, а скорость — уж как получится, ведь ещё есть произвольная ёмкость соединений, и несогласованная линия связи вообще.
|
|
|
|
|
Apr 5 2018, 20:15
|
Местный
  
Группа: Свой
Сообщений: 340
Регистрация: 17-10-14
Пользователь №: 83 207

|
Цитата(Plain @ Apr 5 2018, 23:20)  Повторяю, в паспортах Ваших ИС указан предельный ток выводов, обычно он половина от указанного там же тока защёлкивания, следовательно, вычитаете напряжение при помехе из напряжения питания и делите на этот ток. Спасибо за подробный ответ, но хотелось бы узнать конкретный номинал.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|