Оконечные и подтягивающие резисторы шины SPI

12

Мой микроконтроллер (серия ATMEL) должен взаимодействовать с ведомым устройством по протоколу SPI. Я проектирую оборудование. Максимальная скорость шины SPI составляет 1 МГц. Расстояние между ведущим и подчиненным менее 50 мм.

Q1) Нужно ли добавлять оконечное соединение последовательно на шину SPI, чтобы избежать отражения при этой скорости SPI (1 МГц)? Если да, то как мне рассчитать его значение и куда поместить согласующий резистор - рядом с ведущим или рядом с ведомым?

Q2) Я видел другие эталонные конструкции, где иногда люди используют подтягивающие резисторы на всех сигналах SPI, иногда только на нескольких сигналах (CS или MISO), а иногда ни на одном. Нужны ли подтягивающие резисторы для сигналов SPI (поскольку порт SPI имеет двухтактную конфигурацию)? Единственные временные выводы будут работать до тех пор, пока микроконтроллер не получит питание и не сможет установить контакты в качестве выходных. Так что мне нужно использовать подтягивающие резисторы или что произойдет, если я не использую подтягивающие резисторы в моей конструкции?

Bharav
источник

Ответы:

20
  1. На 1 МГц и 50 мм (2 дюйма) вам не нужны окончания. У вас есть обычные бортовые цифровые сигналы, и даже не очень быстрые.
  2. Вам не нужны подтягивания или опускания на линиях SPI. При использовании линии SPI всегда явно направляются в обоих направлениях. Тем не менее, это может быть хорошо, чтобы поставить раскрытие (или подтягивание) на линии MISO. Это потому, что эта линия управляется только ведомым, когда утверждается его ведомая линия выбора. Когда шина не используется, все подчиненные линии выбора обычно не используются, поэтому MISO плавает. Произвольное значение данных не имеет значения, так как ничто не смотрит на его значение, если не выбран ведомый, но промежуточные напряжения на этой линии могут заставить приемник в ведущем устройстве потреблять чрезмерный ток или, возможно, колебаться. По этой причине я обычно устанавливаю MISO на 100 кОм. Сохраняет линию безвредно низкой, когда она не используется. С таким же успехом можно использовать подтягивание, если все рабы остаются включенными, даже когда они не используются.
Олин Латроп
источник
3
Одной из важных причин установки подтягивания на выводы CS / SS является обеспечение того, чтобы все ведомые устройства оставались невыбранными, когда мастер находится в режиме сброса или запуска. В этом случае его контакты обычно имеют hi-Z и, следовательно, плавающие значения, что может привести к выбору нескольких ведомых устройств и управлению шиной MISO (что приводит к коротким замыканиям). Может быть, это будет полезным дополнением к этому ответу?
Маттис