Мой MCU использует шину SPI с 4 устройствами. Я хотел бы также расширить эту шину, чтобы она была подключена к плате, т. Е. Иметь несколько плат, подключаемых к «основной» плате, и расширять функциональность. Расстояние от площадки до площадки будет:
длина трассы основной платы + длина кабеля + длина трассы на удлинительной плате
3 "+ 6" + 3 "= около 12"
По моему опыту, даже сигнал 1 МГц с временем нарастания около 7 нс на этом расстоянии по ленточному кабелю превышал 1 В (но чрезмерного звона не было). Платы будут питаться от того же источника питания.
Примечание: вы не можете видеть здесь время нарастания, но вы можете увидеть чрезмерное превышение - это сигнал 3,3 В. И да, это было измерено правильно с очень коротким проводом от датчика к земле. Так же, как это часто рекомендуют на этом сайте. Я не думаю, что это ошибка измерения.
Я бы хотел, чтобы система работала на 4 МГц, но 2 МГц также приемлемы. Макс. Количество плат, которые я бы хотел подключить, составило бы около 4, и это позволило бы расширить шину SPI, чтобы иметь около 12 устройств. Я не думаю, что это будет слишком сложно для управления с помощью кода, так как у меня уже есть что-то подобное. Наличие дополнительных ведомых линий выбора также не является проблемой.
Однако меня беспокоит то, как отправить данные SPI с одной платы на другую. Должен ли я просто отправить прямой SPI или преобразовать его в LVDS на одном конце, а затем преобразовать обратно в SPI на другом конце?
источник
Ответы:
Эмпирическое правило гласит, что вы должны рассчитывать эффекты линии передачи, если длина вашего соединения превышает 1/10 длины волны сигнала.
Линии передачи вызовут отражения, где они показывают внезапное изменение импеданса. Отраженный сигнал добавляет к оригиналу, может снова отражаться на стороне передатчика, и таким образом идти вперед и назад. Результат показан на графике: превышение, о котором вы говорите, и некоторые звуки.
редактировать (повторно вопрос обновления)
Время подъема, кажется, 7 нс. Это быстро, как говорит Кортук, это означает, что у вас есть спектр, по крайней мере, до 400 МГц, и эти гармоники действительно будут испытывать эффекты линии передачи, даже если ваши тактовые частоты составляют всего 1 МГц. Попробуйте отфильтровать их, полоса пропускания 20 МГц (80 МГц для тактовой частоты 4 МГц) дает вам более чем достаточно времени нарастания. Это прямоугольная волна 1 МГц, отфильтрованная с помощью ФНЧ с кирпичной стеной на частоте 20 МГц:
Размещение последовательного резистора сформирует ФНЧ первого порядка с емкостью линии. Если мы оценим это в 50 пФ, то
источник
Для такой короткой шины я бы попытался поставить маленький резистор в ряд, чтобы что-то управляло линией. Это не теоретический идеальный способ, учитывающий теорию линий электропередачи, а прагматичный подход, который, я думаю, будет достаточно хорошим для вашего случая. Попробуйте 47 Ω для начала и посмотрите, что это делает. Если это помогает, но не совсем достаточно, вы можете пойти выше, но я бы не превысил 120 Ом. Скорее всего, где-то в этом диапазоне вы найдете значение, которое работает достаточно хорошо.
источник
AFAIK перерегулирование может быть устранено пропущенным завершением, если ваш водитель может управлять нагрузкой. В противном случае определенно подойдет какая-то выделенная пара драйвер / приемник, например LVDS или, возможно, даже RS485.
источник
В прошлом у меня были серьезные проблемы с запуском SPI через ленточные кабели, хотя они были намного дольше, чем вы описали. Устойчивость к шуму стала настоящей проблемой, и испорченные команды в итоге оказались на моей периферии. Этого было достаточно, чтобы не пройти тестирование помехоустойчивости CE. Если позже у вас возникнут проблемы в этом отношении, я бы рекомендовал установить отдельный MCU на каждую плату и подключить их через CANbus.
источник