Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: передать UART по длинной линии
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
andybeg
есть PIC (pic16f917) который работает с другим контроллером по UART, но надо разнести эти два устройства на расстояние порядка 10 метров, в связи с чем подозреваю пойдут помехи, не подскажете какогоньть драйвера для решения этой проблемы, когда то давно находил устройство, но сейчас совсем запамятовал где оно sad.gif
dac
ключевое слово ИРПС, Current Loop - по два оптрона на каждой стороне, пример был на сахаре

можно как на картинке, только в ней наворотов для переключения типА, типБ
andybeg
Цитата(dac @ Dec 4 2007, 12:44) *
ключевое слово ИРПС, Current Loop - по два оптрона на каждой стороне, пример был на сахаре

можно как на картинке, только в ней наворотов для переключения типА, типБ

сейчас поищу, а не встречали отдельную микросхему чтобы выполняла эти функции?
dac
сдвоенные оптопары smile.gif

а если серьезно, куда уж проще - две оптопары, 3 резистора - эта схема вам для творческой обработки, я просто скопировал с готового устр-ва, там навороты нужны были (индикация обмена, переключение тип А или тип Б, защита от обратной полярности, поскольку расстояния до сотен метров и т.д.)
rezident
См. схемы на caxapa.ru
Pyku_He_oTTyda
Добавлю пять копеек: оптроны нужны достаточно быстрые (на 9600 распространенный PC817 уже не канаетsmile.gif ), после оптрона желательно триггер Шмидта, для увеличения крутизны фронтов. Удобнее одногейтовый.
rezident
Цитата(Pyku_He_oTTyda @ Dec 4 2007, 14:48) *
Добавлю пять копеек: оптроны нужны достаточно быстрые (на 9600 распространенный PC817 уже не канаетsmile.gif ), после оптрона желательно триггер Шмидта, для увеличения крутизны фронтов. Удобнее одногейтовый.

H11L1 удовлетворяют этим условиям, доступные и довольно дешевые.
dac
817 не знаю, а tl521 до 38кбит прекрасно работают, больше тоже можно, но надо резистор подтяжки подбирать,
H11L1 конечно лучше будут, но и дороже smile.gif
SergR
Я в подобном случае применял преобразаватель на 485 интерфейс MAX485, если нужен дуплекс то подойдёт MAX488. на скорости 9600 и расстоянии ~150M работало без проблем устойчиво
oran-be
Цитата(Pyku_He_oTTyda @ Dec 4 2007, 13:48) *
Добавлю пять копеек: оптроны нужны достаточно быстрые (на 9600 распространенный PC817 уже не канаетsmile.gif ), после оптрона желательно триггер Шмидта, для увеличения крутизны фронтов. Удобнее одногейтовый.

Это если очень неоптимально с них снимать сигнал. При условии, то в открытом режиме с транзюка оптрона снимается ток ма под 10, то китайцы К1010 - чуть похуже, чем "честные" 817 - спокойно работают на 38400. Без триггеров Шмидта.
А на расстояние 10 м, при условиия, что не будете класть рядом с неэкранированным проводом связи сетевые провода, можно применить драйвер 485-го интерфейса - будет проще и дешевле.
Pyku_He_oTTyda
Цитата
Это если очень неоптимально с них снимать сигнал.

а как оптимально, поделитесь!
Энтомолог
Сами по себе 10 м провода - это не криминал. У меня на PIC-ах (877 и 622) все работало на 5 метров без всяких драйверов. Пики, правда, питались от одного источника - 622-й был подключен 4-жильным проводом.
Mik174
Советую применить полнодуплексные микросхемы RS485 интерфейса, как посоветовали выше - простейшая схема включения, при этом длина линии может достигать 1300 метров, на 10 метрах будет работать как часы.
При этом помехоустойчивость намного выше, чем у RS232, для которого, кстати, 10 метров - расстояние близкое к максимальному.
Достигается это за счет того, что наведенное на провода напряжение помех, на входе приемника взаимно вычитаются.
Энтомолог
Цитата(Mik174 @ Dec 5 2007, 23:29) *
При этом помехоустойчивость намного выше, чем у RS232, для которого, кстати, 10 метров - расстояние близкое к максимальному.


Пожалуйста, назовите максимальное расстояние для RS232 и объясните, почему.
rezident
Цитата(Mik174 @ Dec 6 2007, 01:29) *
Достигается это за счет того, что наведенное на провода напряжение помех, на входе приемника взаимно вычитаются.

У приемников RS485 тоже есть ограничение на величину синфазной (common-mode) помехи -7В...+12В, которое регламентируется стандартом EIA/TIA-485.

Цитата(Энтомолог @ Dec 6 2007, 02:31) *
Пожалуйста, назовите максимальное расстояние для RS232 и объясните, почему.

Расстояние определяется емкостью линии и скоростью передачи.
Энтомолог
Цитата(rezident @ Dec 6 2007, 00:59) *
Расстояние определяется емкостью линии и скоростью передачи.


Вы полагаете, что в данном случае только от этого? От сопротивления драйвера ничего не зависит? Хотелось бы услышать Mik174. Он, видимо, как-то вычислил это расстояние, раз утверждает, что "10 метров - расстояние близкое к максимальному". Скорость человек задавший вопрос не указал, но я подозреваю, что не больше 115200.
rezident
Цитата(Энтомолог @ Dec 6 2007, 03:32) *
Вы полагаете, что в данном случае только от этого? От сопротивления драйвера ничего не зависит?

Естественно зависит. Но сопротивление драйвера определяется требованиями стандарта EIA/TIA-232-F, поэтому я про него и не упомянул. Кроме того, этим же стандартом определяется ограничение на скорость нарастания выходного напряжения драйвера (<=30В/мкс). Кстати по стандарту скорость для RS-232 ограничена 19200 bps smile.gif
Цитата
The standard allows for operation up to 20 kbps (19.2 kbps). For higher data rates TIA/EIA-562 or TIA/EIA-423-B are recommended.
Энтомолог
Цитата(rezident @ Dec 6 2007, 01:53) *
Естественно зависит. Но сопротивление драйвера определяется требованиями стандарта EIA/TIA-232-F,


Человек задал вполне конкретный вопрос про PIC-контроллер. Я ему отвечаю: будет работать, я проверял. Зачем ему советовать вместо двух проводов эзернет-адаптер? Если эти два устройства предполагается питать от двух разных сетевых БП, тогда оптроны, конечно, желательны, а если нет гальванической развязки - обязательны.
rezident
Цитата(Энтомолог @ Dec 6 2007, 07:26) *
Зачем ему советовать вместо двух проводов эзернет-адаптер?

Это где и кто тут про Ethernet упоминал? 07.gif
Mik174
Цитата(Энтомолог @ Dec 6 2007, 01:32) *
Вы полагаете, что в данном случае только от этого? От сопротивления драйвера ничего не зависит? Хотелось бы услышать Mik174. Он, видимо, как-то вычислил это расстояние, раз утверждает, что "10 метров - расстояние близкое к максимальному". Скорость человек задавший вопрос не указал, но я подозреваю, что не больше 115200.


Расстояние я не вычислял, очень просто найти обоснование в интернет, и в спецификации RS232:
http://www.gaw.ru/html.cgi/txt/interface/rs232/start.htm
http://www.vtsoft.ru/support/service/rs232.php
http://www.shtrih-yug.ru/tr_rs232.html
http://www.camiresearch.com/Data_Com_Basic...2_standard.html

Спецификации RS-232-C не огpаничивают максимальнyю длинy кабеля, но огpаничивают максимальное значение его емкости 2500 пф. Емкость интеpфейсных кабелей pазлична, однако общепpинятой длиной yдовлетвоpяющей данной спецификации считается длина 50 фyт (15 м) (до 20000 бод). Чем выше скоpость пеpедачи, тем больше искажения сигнала, вызванные емкостными хаpактеpистиками кабеля.

С учетом, что предполагается скорость 115200, что ощутимо больше чем предписанные тем же стандартом 19200 бод, которым соответствуют 15 метров, уже не гарантируется.
Разумеется, все зависит еще и от скорости обмена. Если скорость будет маленькая - длина может быть и гораздо больше. Но, как я понимаю, нужно немного побыстрее smile.gif

Кроме того, все зависит еще от условий, в которых будет эксплуатироваться устройство.
Если это разовая поделка, которая будет работать в офисе на столе - это одно, а
если устройство будет управлять дорогим промышленным оборудованием или ответственным технологическим процессом в условиях наличия достаточно сильных помех, я бы не рискнул использовать RS232 на расстоянии 10 метров.
Еще момент: RS232 несимметричный интерфейс, поэтому все наведенные на длинной линии помехи попадут на вход приемника.
В отличие от него, RS485 - симметричный интерфейс, у него наведенные помехи взаимовычитаются, в результате чего помехоустойчивость гораздо выше.
oran-be
Цитата(Pyku_He_oTTyda @ Dec 5 2007, 21:36) *
а как оптимально, поделитесь!

Оптимально - это побольше тока ожирать от транзистора для более быстрого рассасывания зарядов. При этом надо учитывать, что светодиод имеет предел по току, да и транзюк тоже не бесконечный ток коллектора имеет. На практике в светодиод больше 10 ма задувать не стоит. У 817 СМР имеет диапазон от 50 до 600 (примерно), т.е. при токе в светодиод транзюк войдет в насыщение при ожираемом токе от 5 до 60 ма. Гарантированно будет сунуть в светодиод 10-15 мА и от транзистора отобрать 5 - 7.5 ма. Но на практике, с учетом того, что технология светодиодов несколько подусовершенствовались, в последнее время типовое значение СМР у 817-х составляет около 200, разумным риском будет заложиться на СМР 100%. тогда, вдувая в сетодиод 10 мА, надо буит и ожирать от него тоже 10 мА.
Энтомолог
Цитата(Mik174 @ Dec 6 2007, 14:25) *
Расстояние я не вычислял, очень просто найти обоснование в интернет, и в спецификации RS232:
http://www.gaw.ru/html.cgi/txt/interface/rs232/start.htm
http://www.vtsoft.ru/support/service/rs232.php
http://www.shtrih-yug.ru/tr_rs232.html
http://www.camiresearch.com/Data_Com_Basic...2_standard.html


Ну нет по этим ссылкам обоснования! Как говорится, чего нет, того нет! В последнем креативе даже рисунок есть с сопротивлениями, источниками и пр., а вот обоснования нет. Но это, в общем то, и не важно. Скажите, какое отношение имеет USART, применяемый на PICах к RS-232?

Цитата(oran-be @ Dec 6 2007, 16:52) *
Оптимально - это побольше тока ожирать от транзистора для более быстрого рассасывания зарядов.
У 817 СМР имеет диапазон от 50 до 600 (примерно), т.е. при токе в светодиод транзюк войдет в насыщение при ожираемом токе от 5 до 60 ма.
тогда, вдувая в сетодиод 10 мА, надо буит и ожирать от него тоже 10 мА.


Слово "ожирать" понравилось! Сначала думал, что опечатка, потом понял, что нет!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.