реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Какой интерфейс выбрать: SPI, TWI, UART?, Для соединения трех устройств
Mastakkos
сообщение Dec 2 2010, 11:54
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 13-11-10
Пользователь №: 60 871



Ситуация такая.

Есть три устройства, расположены на расстоянии 3-х метров друг от друга, одно master, два slave. Все три на ATMega446. Необходимо периодически обмениваться данными между мастером и слейвами. Размер пакета - 10 байт, скорость обмена - около 30 пакетов в секунду. Смотрел в сторону TWI- вроде бы он идеально подходит для моей задачи.

Проблема только одна - питания всех трех устройств гальванически развязаны друг от друга. А TWI вроде бы работает только в том случае, когда питание у всех МК общее.

Подскажите, как лучше решить эту проблему?
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Dec 2 2010, 12:09
Сообщение #2


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



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

У каждого устройства своя подтяжка к своиму питанию. Нада еще поставить защитные диоды на случай перекосов напряжений и т.д.
Go to the top of the page
 
+Quote Post
GDI
сообщение Dec 2 2010, 12:17
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



RS485 не годится? И модбас на нем и тогда, если в будущем, понадобиться, то можно без переделок сделать и 10, и 30 метров расстояние. Можно и развязать его при желании, хотя сейчас есть драйверы которые позволяют работать при перекосах питания до 70в. И еще один плюс - надо всего 2 провода, землю тянуть не придется.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Mastakkos
сообщение Dec 2 2010, 12:22
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 13-11-10
Пользователь №: 60 871



MALLOY2, я правильно Вас понял, что вместо вот такого (из даташита):

Прикрепленное изображение


можно использовать вот такое:

Прикрепленное изображение


При этом Vcc1, Vcc2, Vcc3 - это всё местные питания, друг с другом не связанные. И ещё соединить землю питаний всех трех устройств вместе. Я правильно понял?

Сообщение отредактировал Mastakkos - Dec 2 2010, 12:24
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
_pv
сообщение Dec 2 2010, 12:32
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(MALLOY2 @ Dec 2 2010, 18:09) *
UART отпадает, это точка-точка

Не обязательно, можно соединить tx мастера с rxами слэйвов, а txы слэйвов через диоды (оптопары с ОК) на rx мастера, говорить одновременно и мешать друг другу они не будут.
и UART тут развязывать проще, линии однонаправленные.

ну а лучше конечно RS485.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 2 2010, 12:48
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Mastakkos @ Dec 2 2010, 15:54) *
Проблема только одна - питания всех трех устройств гальванически развязаны друг от друга. А TWI вроде бы работает только в том случае, когда питание у всех МК общее.


Если питания развязаны, то развязаны и земли, и сигнальные линии. Иначе какой в этой развязке смысл ? А если земли у всех общие, то это и не развязка, и незачем тогда развязывать питания. Что-то я вопроса не понял. И вообще, зачем развязка, если между устройствами три метра ? Они что, от разных подстанций питаются ? Уточнили бы задачу, а то не совсем понятно, что, от чего и как питается. А так, первое, что приходит на ум - в мастере сделать два УАРТА, программных или аппаратных, и соединить их со слэйвами с помощью той же опторазвязанной токовой петли (Current Loop). Тогда действительно можно отвязать все и от всего, и расположить слэйвы хоть за 500м от мастера ...

Примеры развязок (CL):
http://www.kron.com.ua/conv/docs/T232-CL20%20S%20V4.pdf

Сообщение отредактировал kovigor - Dec 2 2010, 12:53
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Dec 2 2010, 13:07
Сообщение #7


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Цитата
MALLOY2, я правильно Вас понял, что вместо вот такого (из даташита):


Да, только если напряжения питания одинаковые, иначе нужно будет согласовывать.

Цитата
Не обязательно, можно соединить tx мастера с rxами слэйвов, а txы слэйвов через диоды (оптопары с ОК) на rx мастера, говорить одновременно и мешать друг другу они не будут.
и UART тут развязывать проще, линии однонаправленные.


Не находите что вы стоите ту же физику что и I2C ??? зачем тратитьь деньги на то что уже в монтировано в камень ???, а если обмен будет асинхронным ? как вы будите колизии разруливать ? а адресация, зачем писать лишний код ?

Еще раз повторю для тех кто в бронепоезде UART это точка точка, если хотите UART много UARTов это уже RS-422 или RS-485, но тут может получится что затраты на драйвера будут лишними.
Go to the top of the page
 
+Quote Post
_pv
сообщение Dec 2 2010, 13:53
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(MALLOY2 @ Dec 2 2010, 20:07) *
Не находите что вы стоите ту же физику что и I2C ??? зачем тратитьь деньги на то что уже в монтировано в камень ???, а если обмен будет асинхронным ? как вы будите колизии разруливать ? а адресация, зачем писать лишний код ?

Не нахожу, разница в однонаправленности линий.
для развязки i2c потребуются специализированные микросхемы которые будут определять с какой стороны кто в данный момент шину тянет,
либо вот так,
вместо просто одной оптопары.

Слова про мастера и слэйвов в исходном посте и i2c как один из вариантов как бы намекают на отсутствие асинхронности.
и во всех остальных случаях разве адресация не нужна?

Цитата(MALLOY2 @ Dec 2 2010, 20:07) *
Еще раз повторю для тех кто в бронепоезде UART это точка точка, если хотите UART много UARTов это уже RS-422 или RS-485, но тут может получится что затраты на драйвера будут лишними.

UART это никакая не "точка-точка", а всего лишь способ синхронизации для передачи данных по одной линии без клоков, а вот уж как будет сделан физический уровень 232, 422 (который, кстати, точка-точка в основном), 485 или просто выходы OK оптопар в качестве драйвера линии - это совсем другой вопрос.
Go to the top of the page
 
+Quote Post
Mastakkos
сообщение Dec 2 2010, 22:32
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 13-11-10
Пользователь №: 60 871



MALLOY2, да, напряжения питания одинаковые, просто разные источники питания. Объединить их нельзя. Спасибо за совет!

_pv, Вы идете против бритвы Оккама ) Да вообще, мне субъективно TWI больше нравится. Я прочтя соответствующий даташита с перовго раза там все понял, прочтя то же самое по UART - не понял, осталось много вопросов. Вот этот факт и определил мой выбор. Никакой цели организовать гальваноразвязку между устройствами у меня нет - она и так уже есть, это развязка, т.к. источники питания разные. Не было бы её - было бы проще жить на свете.
Go to the top of the page
 
+Quote Post
firstvald
сообщение Dec 3 2010, 08:40
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 580
Регистрация: 3-06-08
Пользователь №: 38 041



Выбрав UART вы сможете спокойно отладить обмен устройств независимо друг от друга.
UART это сколько угодно slavov. Вся промышленность так работает.
Go to the top of the page
 
+Quote Post
forever_student
сообщение Dec 3 2010, 08:51
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 5-04-09
Из: Москва
Пользователь №: 47 180



Цитата(Mastakkos @ Dec 3 2010, 01:32) *
...Никакой цели организовать гальваноразвязку между устройствами у меня нет - она и так уже есть, это развязка, т.к. источники питания разные...

Если у Вас земля общая - значит гальваноразвязки нет.
Если земля развязана - без доп. геморроя I2C сделать не получится.
В похожей ситуации (только слэйвов побольше) использовали UART+драйверы RS-485 - и все очень здорово получилось.
P.S. На 3 метрах I2C ничего не наловит?

Сообщение отредактировал forever_student - Dec 3 2010, 08:52
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 3 2010, 09:03
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(forever_student @ Dec 3 2010, 11:51) *
Если у Вас земля общая - значит гальваноразвязки нет.

Да, вопрос так поставлен, что ничего не понять. Гальваноразвязки у автора действительно и в помине нет. И для чего она ему нужна на трех метрах - тоже понять трудно. Разве что нужно связать между собой, например, несколько высоковольтных блоков. Например, человеку нужен управляемый источник высокого напряжения ...

Цитата(Mastakkos @ Dec 3 2010, 01:32) *
прочтя то же самое по UART - не понял, осталось много вопросов

Вы заблуждаетесь. На практике применить и запрограммировать UART на порядок проще, чем TWI. Чего только стоит одна обработка ошибок приема/передачи на TWI. Хотя это дело хозяйское. Пробуйте сами ...
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 3 2010, 10:32
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(kovigor @ Dec 3 2010, 12:03) *
Чего только стоит одна обработка ошибок приема/передачи на TWI.

И чего такого особенного она стоит?


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 3 2010, 10:35
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ILYAUL @ Dec 3 2010, 13:32) *
И чего такого особенного она стоит?


По сравнению с UART она выглядит заметно сложнее, как, впрочем, и сам TWI ...
Go to the top of the page
 
+Quote Post
777777
сообщение Dec 3 2010, 13:49
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(MALLOY2 @ Dec 2 2010, 15:09) *
SPI можно но в данном случае избыточно, TWI он же I2C идеально подходит


SPI избыточно? Вы хотите сказать что SPI сложнее чем I2C? Да это самый простой из всех этих интерфейсов, нужно не морочить никому голову, а делать на нем.


Цитата(firstvald @ Dec 3 2010, 11:40) *
Выбрав UART вы сможете спокойно отладить обмен устройств независимо друг от друга.
UART это сколько угодно slavov.

А как их адресовать?
Цитата(firstvald @ Dec 3 2010, 11:40) *
Вся промышленность так работает.

Весьма самоуверенное заявление.

Цитата(kovigor @ Dec 2 2010, 15:48) *
Если питания развязаны, то развязаны и земли, и сигнальные линии. Иначе какой в этой развязке смысл ? А если земли у всех общие, то это и не развязка, и незачем тогда развязывать питания.

Может там сделать каждому свое питание легче, чем тащить к каждому устройству 5В. Развязывать земли при расстоянии 3 метра нет никакого смысла, а вот 5-вольтовое питание передавать на такое расснояние я бы не стал.

Цитата(kovigor @ Dec 3 2010, 12:03) *
Вы заблуждаетесь. На практике применить и запрограммировать UART на порядок проще, чем TWI.

Правильно. А SPI на порядок проще чем UART. Ну хорошо, на пол-порядка smile.gif Зато с адресацией слейвов никаких проблем.

Сообщение отредактировал 777777 - Dec 3 2010, 13:47
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01482 секунд с 7
ELECTRONIX ©2004-2016