Короткое расстояние между досками связи

24

Мой MCU использует шину SPI с 4 устройствами. Я хотел бы также расширить эту шину, чтобы она была подключена к плате, т. Е. Иметь несколько плат, подключаемых к «основной» плате, и расширять функциональность. Расстояние от площадки до площадки будет:

длина трассы основной платы + длина кабеля + длина трассы на удлинительной плате

3 "+ 6" + 3 "= около 12"

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

введите описание изображения здесь

Примечание: вы не можете видеть здесь время нарастания, но вы можете увидеть чрезмерное превышение - это сигнал 3,3 В. И да, это было измерено правильно с очень коротким проводом от датчика к земле. Так же, как это часто рекомендуют на этом сайте. Я не думаю, что это ошибка измерения.

Я бы хотел, чтобы система работала на 4 МГц, но 2 МГц также приемлемы. Макс. Количество плат, которые я бы хотел подключить, составило бы около 4, и это позволило бы расширить шину SPI, чтобы иметь около 12 устройств. Я не думаю, что это будет слишком сложно для управления с помощью кода, так как у меня уже есть что-то подобное. Наличие дополнительных ведомых линий выбора также не является проблемой.

Однако меня беспокоит то, как отправить данные SPI с одной платы на другую. Должен ли я просто отправить прямой SPI или преобразовать его в LVDS на одном конце, а затем преобразовать обратно в SPI на другом конце?

Саад
источник
1
Какое у вас время подъема?
Кортук
@Kortuk Полностью забыл перечислить это, извините. Обновил вопрос.
Саад
7 нс, время нарастания, это очень быстро.
Кортук
Извините за два не относящихся к делу вопроса. какой осциллограф вы использовали? 2. Почему кольца так важны?
richieqianle

Ответы:

15

Эмпирическое правило гласит, что вы должны рассчитывать эффекты линии передачи, если длина вашего соединения превышает 1/10 длины волны сигнала.

введите описание изображения здесь

Линии передачи вызовут отражения, где они показывают внезапное изменение импеданса. Отраженный сигнал добавляет к оригиналу, может снова отражаться на стороне передатчика, и таким образом идти вперед и назад. Результат показан на графике: превышение, о котором вы говорите, и некоторые звуки.

ΩΩ Начнем с резистора, и посмотрим, как далеко это нас продвинет.

редактировать (повторно вопрос обновления)
Время подъема, кажется, 7 нс. Это быстро, как говорит Кортук, это означает, что у вас есть спектр, по крайней мере, до 400 МГц, и эти гармоники действительно будут испытывать эффекты линии передачи, даже если ваши тактовые частоты составляют всего 1 МГц. Попробуйте отфильтровать их, полоса пропускания 20 МГц (80 МГц для тактовой частоты 4 МГц) дает вам более чем достаточно времени нарастания. Это прямоугольная волна 1 МГц, отфильтрованная с помощью ФНЧ с кирпичной стеной на частоте 20 МГц:

введите описание изображения здесь

Размещение последовательного резистора сформирует ФНЧ первого порядка с емкостью линии. Если мы оценим это в 50 пФ, то

рзнак равно12π100MЧАСZ50пFзнак равно32Ω

Ω

stevenvh
источник
2
Частота 1 МГц не имеет значения. Это время подъема, что важно.
Ракетный магнит
@stevenvh, попытался добавить резистор 1K на землю в месте назначения. Это помогло с шипами, но также немного снизило уровень сигнала. Это нормально? Когда я говорю уровень, где сигнал успокаивается. Также пробовал 500 Ом, тот же эффект 220 Ом, но более выраженный.
Саад
@ Саад - Сколько это немного? 3,3 В в 1 кОм составляет всего 3 мА, драйвер должен быть в состоянии обеспечить это. Он может иметь некоторое внутреннее сопротивление, но это несколько десятков Ом, поэтому уровень должен снижаться только на 2 или 3%.
Stevenvh
@stevenvh Я забыл, что у меня есть последовательный резистор на линии, так что, очевидно, я упаду некоторое напряжение. Я такой глупый! Однако даже 180-омный резистор мало чем помог. Это привело к превышению до 4,5 В. Я предполагаю, что мне понадобится намного меньшее сопротивление, но тогда мне придется беспокоиться о текущей ничьей.
Саад
Кроме того, я должен рассмотреть активное прекращение? Использование низкого сопротивления повысит требования к питанию на всей плате, а поскольку шина работает постоянно, это увеличивает энергопотребление. Будет ли работать диоды Шоттки в качестве зажимов?
Саад
6

Для такой короткой шины я бы попытался поставить маленький резистор в ряд, чтобы что-то управляло линией. Это не теоретический идеальный способ, учитывающий теорию линий электропередачи, а прагматичный подход, который, я думаю, будет достаточно хорошим для вашего случая. Попробуйте 47 Ω для начала и посмотрите, что это делает. Если это помогает, но не совсем достаточно, вы можете пойти выше, но я бы не превысил 120 Ом. Скорее всего, где-то в этом диапазоне вы найдете значение, которое работает достаточно хорошо.

Олин Латроп
источник
Я попробовал этот подход, Олин. Я использовал резистор 100 Ом, и он сбросил выброс примерно на 500 мВ и снизил его до 4,3 В с 4,7 В. Это по-прежнему вольт выше 3,3 В! Тогда время нарастания составило 12 нс по сравнению с начальным 7.
Саад
Похоже, я вычислял свой резистор, пока ты отправил свой ответ, Олин. Извините за это
Stevenvh
@OlinLathrop Я увеличил сопротивление серии до 330 Ом, и это привело к перерегулированию до 3,7 В. Я вполне доволен этим. Время нарастания составило 10 нс. Должен ли я просто придерживаться этого или вставить нагрузочные резисторы на следующей ревизии платы? Я спрашиваю, потому что вы рекомендовали не превышать 120 Ом.
Саад
@ Саад: Меня беспокоило влияние других нагрузок на линию, и она стала чувствительной к шуму. Если сигналы чистые и на линиях нет нагрузок постоянного тока (например, только КМОП-входы с высоким сопротивлением), тогда используйте 300 Ом.
Олин Латроп
4

AFAIK перерегулирование может быть устранено пропущенным завершением, если ваш водитель может управлять нагрузкой. В противном случае определенно подойдет какая-то выделенная пара драйвер / приемник, например LVDS или, возможно, даже RS485.

Воутер ван Оойен
источник
+1: мы часто используем LVDS для передачи сигналов SPI.
Джейсон С
1

В прошлом у меня были серьезные проблемы с запуском SPI через ленточные кабели, хотя они были намного дольше, чем вы описали. Устойчивость к шуму стала настоящей проблемой, и испорченные команды в итоге оказались на моей периферии. Этого было достаточно, чтобы не пройти тестирование помехоустойчивости CE. Если позже у вас возникнут проблемы в этом отношении, я бы рекомендовал установить отдельный MCU на каждую плату и подключить их через CANbus.

Стивен Коллингс
источник