Комунікація між дошкою та дошкою на короткі відстані


24

Мій MCU працює з шиною SPI з приблизно 4-ма пристроями. Я хотів би розширити цю шину і поза бортом, тобто підключити певні друковані плати до "головної" плати і розширити функціональність. Відстань "pad to pad" буде такою:

довжина доріжки основної плати + довжина кабелю + довжина траси на розширювальній дошці

3 "+ 6" + 3 "= приблизно 12"

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

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

Примітка. Тут ви не бачите часу підйому, але ви можете бачити надмірне перекриття - це сигнал 3,3 В. І так, це було виміряно належним чином дуже коротким проводом від зонда до землі. Так само, як часто рекомендують на цьому сайті. Я не думаю, що це помилка вимірювання.

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

Однак мене хвилює те, як передавати дані SPI з однієї плати на іншу. Чи повинен я просто надіслати прямий SPI або перетворити його в LVDS з одного кінця, а потім перетворити його назад в SPI на іншому кінці?


1
Який час підйому?
Кортук

@Kortuk Повністю забув перелічити це, вибачте. Оновлено питання.
Саад

Час підйому 7nS, це кричить швидко.
Кортук

Вибачте за два нерелевантні питання..1. який осцилограф ви використовували? 2. Чому так важливі кільця?
richieqianle

Відповіді:


15

Правило показує, що вам потрібно обчислити ефекти лінії передачі, якщо довжина вашого з'єднання перевищує 1/10 довжини хвилі сигналу.

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

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

ΩΩ резистор для початку, і подивіться, наскільки далеко ми дістанемося.

редагувати (повторне оновлення запитання)
Час подорожі, здається, становить 7нс. Це швидко, як каже Кортук, це означає, що ви маєте спектр принаймні до 400 МГц, і ці гармоніки дійсно зазнають ефектів лінії передачі, навіть якщо ваш годинник становить лише 1 МГц. Спробуйте відфільтрувати їх, пропускна здатність 20 МГц (80 МГц для тактової частоти 4 МГц) дає більше, ніж достатній час підйому. Це квадратна хвиля 1 МГц, відфільтрована LPF з цегляної стіни на 20 МГц:

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

Якщо розмістити резистор серії, сформується ФНП першого порядку з ємністю лінії. Якщо ми оцінимо, що в 50pF, то

R=12π100МНz50pЖ=32Ω

Ω


2
Частота 1 МГц не має значення. Це важливий час підйому.
Rocketmagnet

@stevenvh, Спробував додати резистор 1K на землю за призначенням. Це допомогло з шипами, але також трохи знизило рівень сигналу. Це нормально? Коли я кажу про рівень, де сигнал вщухає. Також спробували 500 Ом, 220 Ом такого ж ефекту, але більш виражений.
Саад

@Saad - Скільки коштує трохи? 3,3 В в 1 к - це лише 3 мА, водій повинен бути бездоганним. Він може мати деякий внутрішній опір, але це кілька десятків Ом, тому рівень повинен бути нижчим лише на 2 або 3%.
stevenvh

@stevenvh Я забув, що я ряду резистор на лінії, так що очевидно, я скину деяку напругу. Дурний мене! Однак навіть резистор на 180 Ом не дуже допоміг. Це призвело до перевищення 4.5V. Я здогадуюсь, що мені знадобиться значно менший опір, але тоді мені доведеться турбуватися про нинішню нічию.
Саад

Також слід розглянути питання про активне припинення? Використання низького опору збільшить потреби в електроенергії на всій платі і тому, що шина працює постійно, це збільшує споживання електроенергії. Чи добре використовувати діоди Шоткі як затискачі?
Саад

6

Для такої короткої шини я б спробував поставити невеликий резистор послідовно з будь-чим, що рухає лінію. Це не теоретичний ідеальний спосіб врахування теорії ліній електропередачі, а прагматичний підхід, який, на мою думку, буде працювати досить добре для вашого випадку. Спробуйте 47 Ом для початківців і подивіться, що це робить. Якщо це допомагає, але недостатньо, ви можете піти вище, але я не перевищував би 120 Ом. Можливо, десь у цьому діапазоні ви знайдете значення, яке працює досить добре.


Я спробував такий підхід, Олін. Я використав резистор 100 Ом, і він упустив простріл приблизно на 500 мВ і знизив його до 4,3 В з 4,7 В. Це все ще вольт вище 3,3 В! Час підйому тоді становив 12 нс порівняно з початковим 7.
Саад

Схоже, я підраховував свій резистор, поки ви розмістили свою відповідь, Олін. Вибачте з цього приводу
stevenvh

@OlinLathrop Я збільшив опір серії до 330 Ом, і це призвело до перевищення до 3,7 В. Я цілком задоволений цим. Час підйому становив 10 нс. Чи варто просто дотримуватися цього чи вставляти резистори припинення на наступній редакції плати? Я прошу, бо ти рекомендував не перевищувати 120 Ом.
Саад

@Saad: Мене хвилювало вплив інших навантажень на лінії, і це стає чутливим до шуму. Якщо сигнали чисті і на лініях немає постійних навантажень постійного струму (наприклад, вхід CMOS з високим імпедансом), тоді продовжуйте та використовуйте 300 Ом.
Олін Латроп

4

AFAIK пропуск може бути усунений шляхом припинення проппер, якщо ваш драйвер може керувати вантажем. Інакше якась виділена пара драйверів / приймачів, як LVDS або, можливо, навіть RS485.


+1: ми часто використовуємо LVDS для передачі SPI-сигналів.
Джейсон S

1

У мене були серйозні проблеми в минулому запуску SPI через стрічкові кабелі, хоча вони набагато довші, ніж ви описуєте. Імунітет від шуму став справжньою проблемою, і пошкоджені команди в кінцевому підсумку потрапили на мою периферію. Було достатньо, щоб провести тест на захист від шуму на CE. Якщо у вас виникнуть проблеми з цим питанням пізніше, я рекомендую поставити окремий MCU на кожну плату та з'єднати їх через CANbus.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.