turnon 1 3 апреля, 2018 Опубликовано 3 апреля, 2018 · Жалоба Задумка такова - есть мастер 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 3 апреля, 2018 Опубликовано 3 апреля, 2018 · Жалоба Задумка такова - есть мастер SPI и много слейвов. Я так понял, вы делаете что-то типа "PCI" для подключения карт расширения к материнской плате? У меня у самого была недавно такая идея. Пришёл к выводу, что слэйвы надо запараллелить шину, как она и предназначена, а выбирать нужный слэйв соответствующим CS. Его уже можно раздавать с 595 регистра. Считаю, что так быстрее. Меньше задержек. Но если шина длинная, то нужны буферы и резисторы последовательно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnon 1 3 апреля, 2018 Опубликовано 3 апреля, 2018 · Жалоба Я так понял, вы делаете что-то типа "PCI" для подключения карт расширения к материнской плате? У меня у самого была недавно такая идея. Пришёл к выводу, что слэйвы надо запараллелить шину, как она и предназначена, а выбирать нужный слэйв соответствующим CS. Его уже можно раздавать с 595 регистра. А у меня не так разве? Хотелось бы услышать подробности по деталям реализации, нет ли где ошибок, потенциальных проблем. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
twix 0 3 апреля, 2018 Опубликовано 3 апреля, 2018 (изменено) · Жалоба Потенциальных проблем две. 1. SCK у Вас походу идет без буферизации от мастера сразу ко всем клиентам, то есть 32 входа. Непонятно как он вообще идет, то есть есть плат расширения и есть еще какие то отдельные провода или трассы которые как то идут мимо платы. 2. MISO также не показан, то есть все 32 передатчика будут подключены ко входу мастера, также без буферизации. Тоже самое, несколько десятков устройств пускай с высоким импедансом, подключенные к одной точке, это будет такая гидра из трасс и буферов, однозначно могут быть искажения. Мое мнение малой кровью тут не обойтись, либо делать все по чесноку. Пришел на плату расширения SPI, попал на мультиплексор и от него на каждое устройство отдельные 4 провода SPI. Либо работать на очень низкой скорости, где на все плевать. Плюс вообще нет никаких защит, ни от замыканий, ни от статики. Я не шучу, у нас инженеры разрабатывали очень сложные устройства, и использовали шину I2C для совершенно простой диагностики и какого там простого управления. Так вот суперсложные узлы работали как часы, а с шиной 8 месяцев был геморрой. Изменено 3 апреля, 2018 пользователем twix Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnon 1 3 апреля, 2018 Опубликовано 3 апреля, 2018 · Жалоба 1. SCK у Вас походу идет без буферизации от мастера сразу ко всем клиентам, то есть 32 входа. Непонятно как он вообще идет, то есть есть плат расширения и есть еще какие то отдельные провода или трассы которые как то идут мимо платы. Спасибо за подробный ответ. Привел только схему коммутации. Чтобы быть уверенным, что это принципиально рабочее. SPI идет только по платам расширения. Все 4 сигнала SPI заходят на плату расширения через ferrite bead и далее на буфер 74HC125, а с него уже по разъемам слейвов. Плюс вообще нет никаких защит, ни от замыканий, ни от статики. Вы создаете себе огромный гемор с таким подходом, хотя есть плюс, его можно долго разгребать, практически бесконечно и все это время получать зарплату занимаясь несложной работой. От статики поставлю ESDA5V3L, 2 шт. на 4 ноги. Достаточно только на входе платы расширения или надо и на выходе мастера? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
twix 0 3 апреля, 2018 Опубликовано 3 апреля, 2018 · Жалоба От статики поставлю ESDA5V3L, 2 шт. на 4 ноги. Достаточно только на входе платы расширения или надо и на выходе мастера? От статики ставят на все линии входящие и выходящие из платы, то есть по обе стороны разъема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnon 1 4 апреля, 2018 Опубликовано 4 апреля, 2018 · Жалоба Потенциальных проблем две. А по логике сценария опроса слейвов? Будет работать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 168 4 апреля, 2018 Опубликовано 4 апреля, 2018 · Жалоба От статики поставлю ESDA5V3L Как, куда, когда? А после того, как соизволите, нам ещё раз всё критиковать по-новой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnon 1 4 апреля, 2018 Опубликовано 4 апреля, 2018 · Жалоба Как, куда, когда? А после того, как соизволите, нам ещё раз всё критиковать по-новой? Простите, не уточнил сразу. Вот схема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 4 апреля, 2018 Опубликовано 4 апреля, 2018 · Жалоба Задумка такова - есть мастер SPI и много слейвов. Могу добавить только "бантик"... Я бы сделал место для джампера, чтобы всю эту цепочку можно было проверить "сам на себя"... Потому как, когда железа много, то рано или поздно где-то появятся глюки.... Да и сдвиги клоков так подбирать будет удобнее... И еще. В схеме нет ни одного триггера, а потому на сигналах может быть дребезг. А переключение чего-либо дребезжащим сигналом вызовет еще больший дребезг. И питание приходит откуда-то и только есть фильтры и не более. Так что эта конструкция будет довольно медленной. И с плохими фронтами данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
turnon 1 4 апреля, 2018 Опубликовано 4 апреля, 2018 · Жалоба Могу добавить только "бантик"... Я бы сделал место для джампера, чтобы всю эту цепочку можно было проверить "сам на себя"... Потому как, когда железа много, то рано или поздно где-то появятся глюки.... Да и сдвиги клоков так подбирать будет удобнее... И еще. В схеме нет ни одного триггера, а потому на сигналах может быть дребезг. А переключение чего-либо дребезжащим сигналом вызовет еще больший дребезг. И питание приходит откуда-то и только есть фильтры и не более. Так что эта конструкция будет довольно медленной. И с плохими фронтами данных. Спасибо, дельные замечания. Буфер заменю на 74HCT125, входы с триггером Шмитта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 168 5 апреля, 2018 Опубликовано 5 апреля, 2018 · Жалоба Вот схема Где резисторы, ограничивающие ток выводов ИС? Во время статического разряда на сборках ограничителей порядка 20 В. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 5 апреля, 2018 Опубликовано 5 апреля, 2018 · Жалоба А у меня не так разве? Хотелось бы услышать подробности по деталям реализации, нет ли где ошибок, потенциальных проблем. Спасибо. Всё, кроме буферов процитировали))) Ну как у вас я не сразу понял, извините) А теперь вам уже столько всего насоветовали, что вроде как и добавить нечего) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bloody-wolf 0 5 апреля, 2018 Опубликовано 5 апреля, 2018 · Жалоба Простите, не уточнил сразу. Вот схема. Хотелось бы уточнить целесообразность использования 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, а еще и например ватч-дог/удаленный резет/управление цепочкой питания и тп. Это так, мысли в слух. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_su 1 5 апреля, 2018 Опубликовано 5 апреля, 2018 · Жалоба Добрый день. Обязательно надо просчитать для частоты SCK, когда к главному MISO "доберутся" данные от самого "дальнего" слейва через все буферы. Например мастер выдает данные по спаду(фронту) SCK и ожидает, что по фронту(спаду) сможет защелкнуть ответные данные. Чем длиннее цепочка, тем меньше максимально возможная скорость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться