Помогите подключить прибор к Arduino

i-sobot
Offline
Зарегистрирован: 21.10.2011

Имеется прибор (электронный микрометр) с выходом на RS232. Но вот подключается к компьютеру он по очень странной схеме:

Т.е. используется сигнал RTS (для чего я не понял). На приборе выставляется непрерываная передача данных и на компьютере, обычным тернминалом, они принимаются без проблем. А можно ли подключить такой прибор к Arduino? Прямого вывода RTS у него нет, есть только Tx и Rx. Может можно как то его емулировать? Подскажите пожалуйста!

leshak
Offline
Зарегистрирован: 29.09.2011

 Если верить википедии ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D1%8B_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2

то RTS означает "готов к приему данных". То есть его нужно просто "поднять". После чего слушать что вам приходит.

Подобная схема включения TX означает (мои догадки) что он "не используетсяя". Комп ничего не шлет в "девайс". Только слушает. Ну а резистор, возможно просто для того что-бы проверять "подключен девайс физически или нет". Типа "плюнули что-то в TX, услышали это в RX через резистор - значит подключен.

Но прежде чем "подключать", стоит почитать easyelectronics.ru/svyaz-mikrokontrollera-s-kompyuterom-cherez-rs232.html, взять вольтметр посмотреть какой уровень выдает ваш девайс на выходе. Если там что-то типа 12v, прийдется согласовать, что-бы не спалить дуинку.

i-sobot
Offline
Зарегистрирован: 21.10.2011

Про согласование я в курсе. Для этого планирую использовать чип MAX232, на выходе которого буду получать чистую логику. Вот только RTS меня смутил. Впрочем странность реализации еще больше! Дело в том что сигнал от головки идет только п 2-м проводам! Никакой общей земли нет и в помине! Питание прибора осуществляется маленькой таблеткой-батарейкой на 3 вольта (RC2032). Может прибор каким-то ключем периодически замыкает сигнал от RTS на выход Rx, формируя пакеты последовательных импульсов. И это это еще не све проблемы! У этого прибора хитрые настройки порта:

скорость 1200
биты данных 7
четность нет
стоповые биты 2

А в библиотеках для работы с последовательными портами у Arduino можно указать явно только скорость порта. Вот как тут быть?

 

leshak
Offline
Зарегистрирован: 29.09.2011

 >Дело в том что сигнал от головки идет только п 2-м проводам

Получается что даже не по двум, а по одному. RTS сообщает что-то типа "могу принимать данные", а данные от головки идут по RX.

>Никакой общей земли нет и в помине

Ну я могу высказать два предположения, либо ее просто не указали на схеме. Типа как "само собой понятно", либо в качестве земли используют RTS. Что конечно "странно", но она "устанавливается в ноль", как раз когда комп "готов к приему". microsin.ru/content/view/411/43/ Возможно они решили что "это можно считать землей".

То есть если ардуина всегда будет готова "принять данные", то RTS можно просто "навсегда задавить в ноль", а вот если устройство начало передавать, а ардуина хочет ему сказать "погоди, я еще не готова", то его нужно поднять в HIGH. Думаю это можно сделать любым цифровым пином.

>Вот как тут быть?

Как всегда, либо самому "раскуриватьм мануалы" и реализовывать. В самом крайнем случае софтверную реализацию. Либо попытаться нагуглить. Например тут что-то похожие решали тут

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1243894373

http://code.google.com/p/arduino/issues/detail?id=573

Как я понял основная "идея" этих решений - напрямую устанавливать четность-битность через запись в "магические порты контроллера". Название портов и "че в них нужно писать", можно узнать из даташита на контроллер который у вас стоит в ардуине.

leshak
Offline
Зарегистрирован: 29.09.2011

 >Про согласование я в курсе.

Но я не вкурсе, что вы в курсе :) . Лучше я 99 раз впустую предупрежу, чем 1 раз кто-то спалит свой девайс. :) Тем более что случаи когда человек "не знал" уже были на этом форуме.

>Для этого планирую использовать чип MAX232

Если это не шибко ценный девайс и вы его крутите просто для "поигратся", то можно попробовать его расковырять и попробовать внутри найти его TX (он же RX со стороны компа) с уровнем 3 вольта. Раз там такая таблетко, то скорее всего  изначально TX именно трех-вольтовый, а уж потом его повышают в "угоду компьютеру".

Попробуйте его просто "померять", даже просто снаружи. Может быть этот "финт" 1.5kOm нужен что-бы поднятуть низковатый RX до нужного уровня? Я плохо представляю себе механизм "подобного" подтягивания, но зачем-то же эта "мутность" нужна. Вообщем дайте 0 на RTS и попробуйте ткнуть в Tx (который идет в Rx на компе) вольтметром, посмотрите "че там" (не подключая к компу).

i-sobot
Offline
Зарегистрирован: 21.10.2011

Насчет 2-х проводного соединения - это точно! Схемы у нас не было. Мы просто раздраконили интерфейсный кабель :) и были сами удивлены! А за такой кабель (с 9-pin с одной стороны и джеком 3,5 мм с другой и одним резистором) поставщики просили ни много ни мало 5000 руб O_o! Вот мы их сами и наделали. А теперь есть идея создать эксперементальную платформу по измерению усадки материалов. Нам подсказали про Arduino.

Короче, спаибо leshak за наводки! Если у кого еще будут идеи, рады будем почитать!

 

Mogalkov
Offline
Зарегистрирован: 23.06.2011

 ачто за идеи вым надо?  ft 232rl и все. Прифигачиваешь к любому юсб.

i-sobot
Offline
Зарегистрирован: 21.10.2011

 Идеи???!!!! Мне нужны идеи или советы подключить мой прибор именно к Arduino! К ft323 мы уже подключали! Нам нужен более интелектуальный преобразователь данных. Мы к данным прибора хотим добавить значение температуры и влажности, собрать все это в один пакет данных, да еще при невозможности их получения компьютером (например нет питания компьютера) записывать данные на SD-карту. Длительно поддерживать питание Arduino и маложрущего прибора проще чем компьютера, да и менее накладно финансово (не нужен навороченный дорогостоящий UPS)! Основная проблема стоит в том что нужна эмуляция 232 потра и тонкие настройки этого порта (битность данных и стоповые биты). Короче получить данные от прибора и нужным образом их обработать или сохранить.

maxvalin
Offline
Зарегистрирован: 22.02.2016

Извиняюсь, тема совсем усохла конечно но все же:

к ардуино получилось подключить? 

i-sobot
Offline
Зарегистрирован: 21.10.2011

УУУ! Давно это было! Да все получилось! Все подключилось! Правда очень зависит типа и модели прибора. У них могум быть разные протоколы. У той с которой все начиналось, был реальный rs232 (правда урезанный). С ним все было просто. А вот другие приборы имели свой протокол и пришлось его вычислять и писать вручную разбор всех импульсов и задержек для расшифровки передаваемых значений.