Например TDA7294

Форум РадиоКот :: Просмотр темы - SPI длинная линия
Форум РадиоКот
https://radiokot.ru/forum/

SPI длинная линия
https://radiokot.ru/forum/viewtopic.php?f=61&t=90381
Страница 1 из 1

Автор:  xmavr [ Пн июн 03, 2013 06:52:53 ]
Заголовок сообщения:  SPI длинная линия

Доброго времени суток!
Хотелось бы узнать как правильно согласовать линию передачи данных между мегой и несколькими датчиками по SPI-интерфейсу (длина веревки около 5-8м)? Датчики соединены стандартно: MOSI,MISO,CLK в общей шине, CS для каждого свой.

Автор:  SmarTrunk [ Пн июн 03, 2013 07:11:47 ]
Заголовок сообщения:  Re: SPI длинная линия

Несколько метров для SPI многовато.

Самое простое - на приемном конце, непосредственно перед микросхемой, поставить резисторы около 300 Ом в разрыв каждой линии интерфейса. Это предотвратит (ну или уменьшит) выбросы на фронтах ("звон" из-за несогласованной линии передач). Учесть, что для линий MISO и MOSI приемные концы с противоположных сторон. Может, для такой длинной линии поставить резисторы с обоих сторон линии...

Если не поможет, то можно ставить на передающем конце микросхемы - шинные формирователи, а на приемном - соответственно шинные приемники. Я бы так стал делать.

Автор:  uk8amk [ Пн июн 03, 2013 07:21:24 ]
Заголовок сообщения:  Re: SPI длинная линия

Или дифференциальные трансмиттеры если уровень помех высокий.

Автор:  const1105 [ Пн июн 03, 2013 09:06:36 ]
Заголовок сообщения:  Re: SPI длинная линия

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

Автор:  SmarTrunk [ Пн июн 03, 2013 11:55:30 ]
Заголовок сообщения:  Re: SPI длинная линия

Это полезно, но не так важно, т.к. SPI - изначально быстрый интерфейс, и даже если его "замедлить", уменьшив частоту CLK, останутся проблемы искажения фронтов из-за длинных несогласованных линий и т.д.

Хотя при меньших скоростях можно советовать переходить на UART, тоже с установкой каких-то доп.микросхем.

Автор:  Kavka [ Пн июн 03, 2013 12:24:14 ]
Заголовок сообщения:  Re: SPI длинная линия

SmarTrunk писал(а):
Самое простое - на приемном конце, непосредственно перед микросхемой, поставить резисторы около 300 Ом в разрыв каждой линии интерфейса. Это предотвратит (ну или уменьшит) выбросы на фронтах ("звон" из-за несогласованной линии передач). Учесть, что для линий MISO и MOSI приемные концы с противоположных сторон. Может, для такой длинной линии поставить резисторы с обоих сторон линии...
Про резистор на стороне приёмника, это да. Но лучше его ставить на передающей стороне. А лучше RC-цепочку (параметры посчитать исходя из скорости). Т.к. любой провод это антенна и, например, фронт в несколько нано секунд с выхода микрухи будет такой звон создавать на длинном проводнике без цепочки уменьшающей скорость нарастания сигнала.

Автор:  Alexey_Sh [ Пн июн 03, 2013 15:23:45 ]
Заголовок сообщения:  Re: SPI длинная линия

uk8amk писал(а):
Или дифференциальные трансмиттеры

Для подключения датчика по SPI на нескольких метрах я использовал передатчики и приемники стандарта RS485. А также разъёмы на ПП 8P8C и покупные кабели (патч корды) :).

Автор:  xmavr [ Пн июн 03, 2013 16:30:27 ]
Заголовок сообщения:  Re: SPI длинная линия

Спасибо всем :)
Получается для длинных линий необходимо использовать либо LVDS, либо RS422/485 приёмопередатчик и согласовывать линии резисторами равными волновому сопротивлению кабеля?

Автор:  SmarTrunk [ Пн июн 03, 2013 16:34:01 ]
Заголовок сообщения:  Re: SPI длинная линия

Я считаю, что можно руководствоваться примерами и рекомендациями из даташитов упомянутых микросхем

Автор:  КРАМ [ Пн июн 03, 2013 16:43:49 ]
Заголовок сообщения:  Re: SPI длинная линия

xmavr писал(а):
Спасибо всем :)
Получается для длинных линий необходимо использовать либо LVDS, либо RS422/485 приёмопередатчик и согласовывать линии резисторами равными волновому сопротивлению кабеля?

Совершенно неважно какой сигнал передается в линии, важно лишь, чтобы отраженный от нагрузки сигнал был достаточно мал и не создавал звона.
Таким образом можно передавать хоть 10 МГц SPI...
Я, например, передаю похожий сигнал через приемопередатчик ADM4857 с частотой до 9 МГц на расстояния около 10...12 метров.
Главное - согласовать линию У НАГРУЗКИ и чтобы драйвер тянул это волновое сопротивление.

Автор:  Кудесник [ Вт июл 09, 2013 10:30:57 ]
Заголовок сообщения:  Re: SPI длинная линия

Дополнительно ко всем "терминаторам" придётся и второй канал "SPI" использовать для приёма от датчиков данных, так как опережение сигнала "SCK" в комплексе с отставанием данных будет нарушать синхронизацию. Необходимо чтобы данные шли вместе с синхронизацией, то есть, "SCK" ушёл, а потом вернулся с данными от датчика!

Автор:  Kavka [ Вт июл 09, 2013 10:42:30 ]
Заголовок сообщения:  Re: SPI длинная линия

Ну, да. Если уж пошла речь о таких длинах, то вот
http://www.ti.com/lit/an/slyt441/slyt441.pdf

Автор:  Кудесник [ Вт июл 09, 2013 20:52:12 ]
Заголовок сообщения:  Re: SPI длинная линия

Отличный материал! Более 100 метров - верится легко, да и кабель очень удобно какой нибудь UTP в 4 витые пары применить.

Автор:  SmarTrunk [ Ср июл 10, 2013 01:36:05 ]
Заголовок сообщения:  Re: SPI длинная линия

Интересный документ, очень детальный.

Только не раскрыта тема сигнала SS (или CS, или CE, в общем как его там...). Часто "слейвы" требуют такого сигнала в обязательном порядке, от мастера. При двухсторонней коммуникации по принципу, описанному в документе, может еще и потребоваться такой сигнал назад, от "слейва" ко второму SPI мастера, который тоже будет "слейв" (согласно Figure 2 документа)... Хотя при односторонней передаче данных, например, в случае вывода информации на устройство отображения, будет проще. Так что, считаю, в статье полезный пример, но не окончательный рецепт на все случаи жизни.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/