Каковы некоторые проблемы дизайна для связи SPI?


8

Обзор:

Я общаюсь среди 3 пользовательских печатных плат с dspic33 на них, используя SPI. У меня есть ведущий и два ведомых, но я посылаю обоим ведомым одни и те же данные (и позволяю им выбирать, на что обратить внимание).

Настройка оборудования:

Два ведомых устройства имеют встроенные контроллеры двигателя BLDC, и Master управляет этими контроллерами двигателя через SPI. Провода проложены на расстоянии около 3 футов от ведущего к каждому ведомому устройству, а заголовки являются типичными. Заголовки SAMTECH с сквозным отверстием. 1 ". Каждый контроллер мотора имеет свой собственный регулятор на 3,3 В, который управляет электроникой dsPIC / LV. Я использую один регулятор контроллера мотора. (давайте назовем его А) для питания главного DSPIC SPI. К другому контроллеру двигателя (назовем его Б) я просто запускаю линии SPI и заземление от ведущего. CLI SPI работает на частоте 100 кГц.

Приступая к делу (наконец-то):

При отсутствии работающих двигателей все работает нормально, все данные поступают, как и ожидалось, обоим ведомым. Однако, когда я запускаю моторы, Bslave больше не получает правильные данные. Он либо подбирает дополнительные часы, либо сбрасывает их, я полагаю, что делать с дополнительным шумом. В любом случае его контрольные суммы начинают проваливаться. Aslave работает как чемпион, несмотря ни на что.

1) Ожидаете ли вы, что все эти устройства должны работать от одного источника 3,3 В? Если да, можете ли вы убедить меня, говоря о более длинной петле индуктивности и чёрной магии, такой как эта.

2) Есть ли у вас эмпирическое правило относительно того, насколько быстро я могу ожидать, чтобы иметь возможность запустить SPI clk и добиться успеха при такой аппаратной настройке, как указано выше?


Имитация необходима для оценки того, насколько быстро часы смогут работать. Предполагая, что у вас есть двухслойные или однослойные платы, хорошим правилом является прокладка трассы заземления или медной плоскости заземления (на противоположном слое) под линиями SPI или рядом с ними, чтобы уменьшить шум, связанный с трассами.
Steinar

Ответы:


5

Я запустил SPI (тактовая частота 2 МГц) около 5 м от 1 блока до другого блока, и я без колебаний разработал тактовую частоту и данные для сбалансированного вывода. (Пользовательский) кабель между двумя также использовал витую пару и экран как для данных, так и для часов.

Я также отправил изолированное питание на удаленный блок через преобразователи постоянного тока в постоянный. У меня не было достаточно времени, чтобы ошибиться, поэтому, возможно, мое решение было излишним, но эй, это сработало. Мое обоснование этого решения состоит в том, что я не хотел, чтобы всплески «текущего потребления» падали по экранам витой пары. Экраны не были заземлены на стороне отправки ПК. Относитесь к цифровым сигналам, как к ценным аналоговым сигналам, чтобы получить наилучшую производительность - всегда ваш экран должен заканчиваться на приемной стороне, и если вы (по какой-либо причине) должны завершать неохотно (также) на отправляющей стороне.

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


Когда вы говорите «экран», подразумеваете ли вы «щит» при обращении к заказному кабелю?
Джелтон

1
@JYelton в Великобритании это называется экран. В какой ты стране?
Энди ака

Я в США. Один из моих лучших друзей - британец, поэтому у нас часто бывают необычные дискуссии о выборе слов. :) «Экран» для меня - это либо дисплей, либо монитор, либо сетчатая ткань, которая не дает летать из дома, когда окно открыто.
Джелтон

@JYelton. Ага сетчатая ткань, которая не пускает вещи. Звучит как экран для меня LOL
Энди ака

Выбран в качестве ответа, потому что это единственный ответ, в котором были рассмотрены оба пункта 1) и 2). Хотя, как многие предполагали, если бы я перепроектировал плату, я бы, вероятно, просто изменил протоколы вместо того, чтобы использовать дифференциальные сигналы. Я верю, что это будет работать, хотя. В этом случае я просто использую SPI, потому что он был легко доступен на моем прототипе.
Мэтт

5

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

Можете ли вы запустить его 3 фута? Безусловно. Тебе следует? Ну, есть вещи получше. Как уже отмечали другие, есть RS-4xx, который может хорошо работать. Вы также можете запустить SPI, но использовать дифференциальную сигнализацию по кабелю, как RS-4xx. Это будет использовать больше проводов, но это разрывы. Вы также можете сделать обычный RS-485, используя UART и тому подобное.

Лично я запускал SPI по 1-футовым кабелям внутри корпуса на частотах до 32 МГц без проблем. Я также запускал I2C более 4 футов при 100 кГц в среде с высоким уровнем электромагнитных помех, и SPI намного лучше, чем I2C - так что это можно сделать. Но если вы не обращаете внимание на детали, вы можете легко столкнуться с проблемами. Но, честно говоря, вам нужно уделять внимание деталям независимо от того, что вы используете.


Многие интерфейсы, такие как RS232, относительно невосприимчивы к таким вещам, как звон и перегрузка, при условии, что любые такие эффекты, возникающие в результате перехода на линию, разрешаются в течение полуразряда. Даже если линия не может поддерживать высокие скорости передачи, замедление скорости передачи поможет. Напротив, если такие вещи, как звон, вызывают проблемы с SPI на любой скорости, его замедление может не помочь, если не уменьшить крутизна линейных переходов.
суперкат

Это хороший ответ, особенно количество систем, которые вы внедрили. Я думаю, что попробую серийные резисторы на стороне водителя, чтобы посмотреть, поможет ли это. Тем не менее, я боюсь, что шум вызывает дополнительные часы ... так что в этом случае это может не помочь.
Мэтт

5

Тщательно продумайте схему заземления. Защитите линии передачи данных, если это поможет, и правильно заземлите экран. Не запускайте данные и часы на одной и той же витой паре. При необходимости используйте гальваническую развязку. Кроме этого, я не знаю никаких практических правил.

SPI был разработан для (1) связи на короткие расстояния, как правило, в пределах одной печатной платы и (2) в среде с небольшим уровнем электромагнитных помех. Возможно, единственные шины, которые работают хуже, чем SPI в присутствии EMI, - это I 2 C и 1-wire. Существуют шины, которые были предназначены для связи на большие расстояния при наличии EMI (RS-485, CAN, Ethernet).

Возможно расширить и укрепить SPI. Вот примечание к приложению , которое показывает шину SPI с дифференциальными линиями.


Я постараюсь защитить линии. Что касается гальванической развязки, когда я не соединяю заземление, ведомое устройство никогда не регистрирует часы, отправленные мастером.
Мэтт

1

Есть несколько способов минимизировать влияние шума на сигнальные линии. Самый простой способ - проложить медную плоскость или медную трассу рядом с вашими сигнальными трассами. Это минимизирует индуктивность следов и площадь петли.

На высокой частоте обратные токи любят проходить путь с наименьшим импедансом рядом с самими сигнальными линиями. Я предполагаю, что у вас есть общее заземление между вашими цепями, но это может вызвать проблемы для высокочастотной сигнализации, если ваше общее заземление - это просто «заземление» между цепями. Это приведет к очень большой площади петли для токов сигнала, что может привести к большому введению шума из-за паразитной магнитной связи.

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


Я не понимаю фразу "между основаниями, прилегающими к сигнальным линиям SPI". Конкретно слово смежное мне не понятно.
Мэтт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.