Соединения шины SPI - зацикливаться или не зацикливаться?

9

У меня есть вопрос относительно физического подключения шины SPI.

У меня есть мастер SPI (устройство PIC32) и несколько ведомых устройств (в данном случае устройства PIC16). Я пишу только подчиненным, и протокол заботится о том, что и когда делать, поэтому нет никаких сигналов MISO или SS, о которых нужно беспокоиться, и я просто распределяю данные и линии синхронизации всем подчиненным. Общая длина шины составляет не более пары футов (скажем, 60 см), и я использую SCK на 8 МГц.

Теперь физическое расположение подчиненных устройств (которые на самом деле являются интерфейсными узлами на других платах) таково, что шина SPI возвращается к шлейфу обратно к ведущему, чтобы можно было соединить оба конца каждого цикла с MOSI и SCK соответственно.

Следующая диаграмма показывает, что я имею в виду - я говорю о соединениях с красными точками - и вопрос: хорошо это делать или нет?

SPI автобус

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

Я пробовал это как с подключением точек, так и без, так сказать, функциональных различий и изменений я не вижу, но возможно, если он был немного длиннее 60 см или немного быстрее 8 МГц, У меня будет проблема? Поэтому я ищу совет о том, что делать, чтобы избежать неприятностей, если что-то изменится.

Хотя этот вопрос особенно беспокоит меня для шины SPI 60 см при 8 МГц, есть ли общие принципы для других ситуаций? Возможно подтягивания на шине I2c должны быть размещены по-другому?

Любые ссылки на подходящие материалы для чтения тоже приветствуются - я не нашел ничего, что охватывало бы этот конкретный вопрос.

Роджер Роуланд
источник
Я не совсем уверен, какую проблему вы пытаетесь решить с помощью этой связи
PlasmaHH
@PlasmaHH Ну, это действительно мой вопрос - мне не нужно решать проблему, но у меня есть такая возможность. Я знаю, что это помогает с линиями электропередач, я не знаю, помогает ли это с сигнальными линиями. Это глупый вопрос? Может быть, я слишком много думаю.
Роджер Роуланд,
Я бы добавил, что в идеале 4-слойная печатная плата и выделенные плоскости Vdd и Vss были бы хорошей идеей здесь по нескольким причинам, наряду с выделенными заглушками байпаса, расположенными очень близко к каждому устройству.
rdtsc
1
ИМО, я бы сделал соединение, которое вы предложили красным, и избавился бы от соединения от подчиненного 3 к подчиненному 4.
lucas92

Ответы:

9

Вернуться назад? NO. Если линия достаточно длинная, чтобы ее можно было завершить (дольше, чем время нарастания * c / 10 или около того), то проведите ее достаточно сильно, чтобы завершить ее правильно, и достаточно хорошо совместите линию и завершение. Если линия достаточно короткая, чтобы не нуждаться в обрыве, ей не понадобится «дополнительная» проводимость, которую вы, похоже, ищете с петлевой обратной связью.

Резистор серии? NO. Этот стиль завершения конца источника работает только для получателя с одной точкой в конце линии. В более ранних точках на линии вы получаете наихудшую форму сигнала для ваших приемников, которая представляет собой шаг к половине напряжения, затем задержку и еще один шаг к полному напряжению.

Neil_UK
источник
Хорошо, спасибо. Можете ли вы объяснить, что вы имеете в виду, говоря «достаточно сильно» ? Вы имеете в виду не прямо из ПОСа, а через МОП-транзистор или что-то еще? Также, чтобы «правильно завершить» , вы имеете в виду резисторы на землю? Я понимаю, что точнее время нарастания, а не тактовая частота, определяющая необходимость завершения, можете ли вы показать полное эмпирическое вычисление? Время подъема в каких единицах? Что c/10?
Роджер Роуланд
@RogerRowland «достаточно сильно», чтобы развить хороший логический уровень в нагрузке завершения. Выходной сигнал UC может быть достаточно сильным, может и не быть, зависит от завершения и его мощности привода. Используйте буфер или два параллельно, если не хватает достаточного тока привода. «Правильно» означает резистивное сопротивление шунта. Будь то заземление, промежуточная шина или переменный ток, зависит от системы. Если вы когда-либо 3-х состояния драйвер, то он должен быть заземлен, чтобы поддерживать действительные логические уровни. В противном случае прекращение в середине рельса меньше загружает водителя.
Neil_UK
@RogerRowland время нарастания в секундах, c скорость света в м / с, так что время нарастания * c в метрах, / 10 немного волнистое для «незначительной доли времени нарастания, присутствующей одновременно на сигнальной линии»
Neil_UK
Еще раз спасибо, Нил, это действительно полезно! Я думаю, что мне было бы полезно провести некоторые эксперименты, чтобы убедиться в том, что вы сказали, что, возможно, дождливый уик-энд будет хорошо проведен.
Роджер Роуланд,
3

Проблема, которую я вижу с топологией цикла, состоит в том, что трудно правильно разместить терминаторы для подавления отражений. это не имеет большого значения при 8 МГц, но могло стать проблемой на более высоких частотах или с более длинными линиями.

Единственный случай, который я вижу, где пунктирные линии могут помочь, - это когда SLAVE 6недопустима задержка распространения от мастера к . В этом случае вы должны соединить пунктирные линии, но разорвать цикл где-то посередине (скажем, между SLAVE 3и SLAVE 4) и завершить каждую ветку независимо.

Дмитрий Григорьев
источник
2

С быстрыми сигналами или длинными линиями отражение сигнала становится проблемой. В этих случаях вы должны правильно завершить линию, установив резистор, соединяющий конец линии и землю (не начало линии). Завершение заставляет линию «выглядеть бесконечно электрически», поэтому сигнал не возвращается. Для прекращения иногда также необходимы элементы LC для противодействия реактивному сопротивлению.

Однако для вашего случая прерывание не требуется (короткая линия для скорости вашего сигнала, при условии, что вы не работаете в среде с электрическим шумом). Вот почему вы не видите никакой разницы. Это также плохая практика проектирования, чтобы зациклить ваш сигнал. Это делает сигнальную петлю, внося шум в вашу схему (и она зацикливается в обоих направлениях). Это также облегчает захват радиочастотного шума в ваших линиях.

Кроме того, обычно также плохо зацикливать заземление и линии электропередачи. Цифровой коммутационный шум и контуры заземления также присутствуют, и они могут оказать существенное влияние на аналоговые цепи. При необходимости вы можете использовать вилки Y (без соединения на дальнем конце), чтобы уменьшить падение напряжения. Если этого недостаточно, используйте более широкие трассы (более широкие трассы -> меньшее сопротивление -> меньшее падение напряжения).

Ронан Пайшао
источник