Здравствуйте! 21 век давно на дворе, а RS485 все еще актуален. Адаптеры — вечная проблема: спалил, забыл, сломал и т.д… FTDI тут конечно, не оригинал, но цена-качество нормальное. Мини обзор.
По работе частво встречаюсь с этим протоколом. Почему-то сейчас в промышленной электронике стало модно разводить все что ни попадя на RJ45 коннекторы. Периодичекски народ палит адаптеры подключив не туда: например с частотного преобразователя для мотора на адаптер приходит питание 12В, а в адаптере диода для защиты нет. И эти 12В приходят в ноутбук на USB, от чего ему становится грустно. Соответственно стояла задача купить максимально дешевый девайс без глюков. FTDI со своими драйверами весльма хорошо зарекомендовала, но, как вы понимаете, тут за менее чем 2 бакса не будет настоящей FT232. Почему именно она? А потому что у нее есть выход годовности к передаче. Что избавляет от необходимости ставить доп. логику. Драйвера стабильны и безглючны. Аналоги на ch340 и cp2102 кроме того что нуждаются в доп логике, так еще и шалят иногда не давая компу выйти из спячки. Встречаем!
Флюс не смыт, пайка с большего нормальная, но например, разъем кривовато припаян. На микросхеме гордое «FTOI» :) Модуль весьма небольшой:
Тут с 10мм меряю:
На преобразователе 3 светодиода: Tx / Rx и питание.
Мне не нравится тип разъема USB. Так сложилось что у нас в промышленности стал стандартом miniUSB. Не знаю почему, но производители его постоянно везде ставят. Так что придется нарисовать переходник. В качестве защиты — стабилитрона на 6,8 В. То что на выходе оригинал MAX485 я тоже сомневаюсь. Ну и полезная фича — перемычки. Ими можно отключить MAX485 и получить ТТЛ уровни с фейковой FTDI.
Отмываем флюс и подключаем. Преобразователь моментально подхватывается Win10 и ставятся родные драйвера. Это серьезный плюс. В системе видится так:
Драйвера вроде как микросхему не портят. По кайней мере за пару часов ничего не случилось.
Самое быстрое что было в хозяйстве — частотный преобразователь от SchneiderElectric. Соединился с ним на 38400. При конекте радостно перемаргивают красным Tx-Rx. На первый взгляд никаких подводных камней нет. Я как-то читал что китайские клоны FTDI начинают глючить при длительной работе. Так что проверяйте на всякий случай.
Пока я не нашел никаких серьезных подводных камней кроме плохонькой пайки и фейковых микросхем. Впринципе, как за чуть больше 1,5 баксов — отличный вариант, который в случае сгорания можно выбросить и не жалеть.
На этом у меня все. Спасибо за внимание!
хотя такие адаптеры идут в комплекте с тем модулем измерителя энергии
так пока и не разобрался, кто же глючит
у трансивера 2 контакта вместе соединяются и вешаются на один вывод дискретный
у трансивера один вывод инвертирован внутри, поэтому их обычно вместе соединяют и вешают на один управляющий провод без всяких транзисторов
просто глюк у меня то ли с адаптером, толи с китайским софтом
в терминале-то я вижу цифры
Ну и традиционно у совсем дешевки только два провода, «землю» на клеммник не выводят принципиально. Радости гонять уравнивающий ток через трансиверы, особенно если оборудование хорошо разнесено, и, как водится, не заземлено — тоже поиск приключений на пятую точку…
Чуть не так на объекте с ноутбуком повернулся, ХРУП! и USB разъем отломился. :) Думаешь — припаяю, делов-то! ан нет, плата спроектирована грамотно, с умом: или у чипа пайка под ногами треснет, или переходы на плате меж сторонами… Нет, провозившись полдня, половину из них восстановить можно, конечно… :)
Я про вот эти, если что.
shop.bolid.ru/catalog/803660864/808049990/tovar_250774852.html
Да, если сразу после покупки вскрыть и доработать — жить будут. Но за $25 вместо $2 как-то не ожидаешь подставы.
P.S. www.ti.com/lit/an/slla272c/slla272c.pdf
www.planetanalog.com/author.asp?section_id=483&doc_id=562062
Даже гадать не собираюсь, поскольку не понимаю терминологии «работает»/«не работает». Для любой нештатной ситуации есть физическое объяснение, которое в данном случае достаточно легко проясняется. Но не гаданием.
По поводу «не работает» — даже и не знаю, как Вам объяснить. Расскажу так: подключаем Болид, к примеру С2000-2 или УО-4С, через родной БП Болид с АКБ. К клеммам RS485 подключаем последовательно преобразователь Болида и Moxa, подключенный в свою очередь в USB-порт ПК. В первом случае UProg Болида обнаруживает устройство на шине, во втором — нет. Драйверы, разумеется, все стоят. Правильные.
я за все время работы понял вот что: кабеля на двигатели должны быть экранированные, особенно если частотник управляет, все коммуникации только в экране, землю, по возможности разводить звездой.
А такие адаптеры, как вы описали удобны для временного подключения для диагностики или отладки. Обозреваемый девайс — норм для личного пользования, но не для серьезного промышленного применения.
За обзор спасибо! Прикуплю кучку для похожих целей, а то в последний раз для отладочных целей пришлось в dns-е за 450 рублей подобный на 340 чипе брать.
Из преимуществ — 2х или 4х-проводная линия, работа в полудуплексе (2х-пров) и полном дуплексе (4х-пров), многоточечная технология (несколько приемников и передатчиков), в сегменте до 32 устройств (без повторителей, с ними до 256 устройств) и длинная линия (до 1200м), со снижением скорости, само-собой.
Все это позволяет достаточно просто объединить в сеть несколько исполняющих контроллеров и управляющий комп (контроллер) в пром оборудовании.
Пользователь скачивает свежие драйвера, не читает и соглашается с лицензионным соглашением, после чего драйверы изменяют PID на FTDIBUS\COMPORT&VID_0403&PID_0000 вместо PID_6001
Лечение: поставить старые драйверы 2.8.14 (или ранние), прописать правильный PID (по возможности заблокировав его на запись), в дальнейшем не обновлять драйверы FTDI.
Советую посмотреть в сторону микроконтроллеров CH55x. Я себе на пробу взял десяток CH552G, у них на борту обычный 8-битный 8051 + «бескристалльный» USB. Конечно, периферии как кот наплакал (хотя даже этот скудный набор даст фору какому-нибудь аврскому шлаку).
Цена — около 30 центов за штучку!
30 центов за микроконтроллер с некоторым набором периферии и нормальным USB без кварца — это ж просто даром! Написать под него CDC, и будет счастье! Ну, еще можно под него HID написать, если джойстик или кастомную клавиатуру захочется сделать.
А «проблема с дровами» может возникнуть только если ядро не подумавши собирать. Я сразу включаю модули подо все используемые USB-железяки. В любом случае, не беда при необходимости включить в make menuconfig новую железку и сделать make modules && make modules_install!
А «ходить в интернет для их обновления» нужно. У меня на работе гента автоматом каждую ночь emerge -u world делает и раз в неделю emerge -uDN world, дома минимум раз в месяц стараюсь компьютер и все ноутбуки обновлять. Про промышленные компьютеры, правда, забываю. Вчера один обновлял — полгода как без обновлений был, замучился вручную зависимости разруливать (тут уже столько всего нового за полгода вышло, в т.ч. gcc девятый!
а насчет обновлений — существует «не совсем легальный» софт, которым некоторые люди вынуждены пользоваться и которому крайне нежелательно давать нюхать интернет.
Нормальные люди всякую дрянь себе на компьютеры не ставят! А насчет интернета, «песочницы» изобрели давным-давно! Хоть в виде чрута, хоть в виде виртуальной машины!
А на свободный софт воровская душа мешает перейти?
Тьфу, ворье!
«промышленности стал стандартом miniUSB»
Пару раз применял его для вывода отладочной информации, и не долго он там жил.
Либо обламывали т.к. провода обычно тягают не церемонясь, либо он тупо перестает контачить от частых соединений.
Может это конечно партия разъемов такая была.
Теперь ставлю USB-B и проблема ушла :-)
В качестве USB-TTL UART люблю CP2102 у них и скорость до 1Мбит и FIFO буфер поболе и еще для меня важное преимущество — они не вешаются на разные порты кaк FTDI т.е. если у меня в 10 девайсах стоят FT232 то каждая будет вешаться на свой СОМ порт, а CP2102 все на один.
На CP2102 я адаптеры не использовал, но на самый дешевый китайский на CH как-то там, работал даже не 256000, но в основном использую самодельный на FT232 с гальванической развязкой, собран был когда CP2102 еще не были распространены, лет 10 назад :-)
Видел много. Если оборудование промышленное и полноразмерное — обычно всегда стоит USB-В.
Сам при разработке схем всегда ориентировался так:
1) USB — работа на улице, в перчатках. Оборудование с постоянным включением/отключением разьема.
2) MiniUSB — компактное оборудование с дефицитом места
3) MicroUSB — не использую. При частом использовании живет не долго.
и если уж цитируете, то полностью, а то весь смысл меняется. «Так сложилось что у нас в промышленности стал стандартом miniUSB»
Особенность RS485 в очень жестком времени ответа на посылку, и включение режима передачи на RS485 осуществляется через отдельный пин с микроконтроллера.
На RS232-RS485 переходнике — это эмулируется с разным успехом, а если там еще и USB добавляется — вероятность успеха снижается, и если это шина с кучей устройств, то такой воткнутый в нее переходник может принести кучу головной боли (печальный опыт).
На производстве кривые ручки прямой путь к техногенным катострофам. На производстве недопустимо наличие не квалифицированного персонала.
А для дома подойдёт и конвертер за 1$.
без проблем подцепляет разные приборы
и защита хорошая
стоимость не малая
овеновские большие и цепляют не все.
головная боль в основном если протоколы передачи
не состыкованы или как было с Schneider Electric
хитрожопые переходники по 2500 руб.
а делов то, берешь переходник SVGA от видеокарты
и распаиваешь на USB
Есть еще накладки, когда из-за особенностей работы чипа USB-TTL RTS выключается раньше, чем ушли все данные.
Даже у того же TI в «Low-latency industrial RS-485 communication» в сносках скромно указано " Ideal RS-485 turn-around delay is roughly 1 bit time, which is a factor of the baud rate (e.g., turn-around of 1 ms is ideal for a baud rate of 9600)". Т.е. подключаясь например в шину где стоят отлаженные относительно друг-друга девайсы которые работают с жестким turnaround, можно получить проблемы. Достаточно, чтобы система «джиттернулась» (возможные виновники: софт + ОС(винда) + usb) и передача не успеет выключится.
На некоторых умных переходниках ставят микроконтроллер, который буферизует запрос и соответственно управляет turnaround, на некоторых (например Auto485 от Triangle Research) есть переменный резистор для настройки чувствительности от 0.5мс до 1.5мс (но это скорее работа без RTS).
А большинство китайщины работает на «авось». Вот по вышеприведенному устройству, например тот же FT232 для данных использует USB bulk endpoint, который не гарантирует задержки (FTDI devices use a control endpoint and one bulk IN and one bulk OUT endpoint for each port in their devices.), плюс есть еще особенности реализации буфера на прием (с задержкой до 16мс по умолчанию) с вытекающими последствиями. Я вот честно говоря не знаю, как поведет себя чип, когда в буфере на передачу есть данные(комп видит, что они уже отправлены), пришедшие по bulk endpoint, а по control endpoint приедет указание уронить RTS. По этой теме есть AN232B-04, но его надо читать и читать.
А если еще взять во внимание то, что чип «левый», то вообще непонятно, как оно будет работать с такими нюансами.
В случае 20ms вы рискуете заполучить проблемы, если устройство ответит в течении 5ms, и по гайдам по PLC это вполне возможная ситуация.
По моему опыту, бывало, что из-за несоблюдения рекомендаций получали плавающую проблему, на тестах устройство отвечало 50ms+, а в работе изредка отвечало с гораздо меньшей задержкой, в итоге ответы приходили «битые».
RS485 это лишь электрических интерфейс, остальное это уже протокол обмена и задержка ответа может и несколько секунд быть.
Или просто взгляните во внутренние гайды по подключению к различным PLC, они указывают Turn around delay (ms), у большинства — 5ms (например тот же Siemens S7-200).
Что они там указывают — плевать. Они свою продукцию до ума не в состоянии довести, набрали пол Индии в штат без толку
Да и 1/6 это был СССР, Россия — 1/8.
Продукция TI доступна в РФ, например относительно RS-485
www.promelec.ru/search/?search=SN65HVD485E&st=2
в другой ревизии есть. покурите доки.CP2104: GPIO.2—RS-485 Transceiver Bus ControlНа измерителе СО2 есть выход 232, на бризере вход 485 — хочу попробовать их подружить.
тут обзор был с нею.
Только у меня преобразователем USB<->UART были PL2303, а дальше какой-то конвертер уровней вроде max485.
Пара обошлась в $1.10 на аукционе (ebay).
Соединил куском витухи, поставил терминатор — работает. Переключение прием-передача там, похоже, на DTR организовано, поэтому некоторые терминалы с этим делом могут не работать (у меня с дефолтными настройками простым cat /dev/ttyUSB0 и echo «hello» > /dev/ttyUSB1 не получилось, а со screen заработало сразу — надо было stty правильно запустить сначала).
А рс485 как и юарт походу действительно нас всех переживут:))
По переходнику- отсутствие развязки и поддельная фтди- это конечно не дело. Ладно хоть супрессоры на порт повесили.
По юсб- ладно хоть обычный полноразмерный повесили- лично мне ни мини, ни микро не нравятся. Хотя да- если посмотреть на тот же сименс или например овен- то там частенько мелькает мини юсб(
Я вам больше скажу товаристЧ, данный вид интерфейса большей частью используется для передачи данных в пожарных и охранных системах, а так же в системах управления видеонаблюдения, это как минимум, так что это протокол будет жить еще очень долго.