Arduino и rs232 (Протокол modbus)

bravomz
Offline
Зарегистрирован: 25.01.2014

Добрый день. 

Имею Aruino Uno и RS232-TTL конвертер.

Этот конвертер я подключил к Arduino.  Теперь с другой стороны мне нужно подключить его к тепловчислителю ВКТ 7.  Для ВКТ 7 указан формат символа: 8 бит данных, 2 стоповых бита, без контроля четности. Собственно вопрос - подскажите как мне настроить эти 2 стоповых бита при посылке байтов вкт 7, я так понял что по умолчанию Arduino использует только 1?

Заранее спасибо

bravomz
Offline
Зарегистрирован: 25.01.2014

Нашел в гугле вот это

Бит USBS0(3) регистра UCSR0C устанавливает количество стоп битов (1 стоп-бит если сброшен в 0/2 стоп-бита если установлен в 1)

Бит UCSZ02(2) регистра UCSR0B и биты UCSZ01 и UCSZ00 (2, 1) регистра UCSR0C - устанавливают длину передаваемых посылок:
 
Помогите, как мне изменить значение 3 бита USBS0 на 1? Не понимаю что то совсем.
И сколько мне установить длину передаваемых данных под этот формат: 8 бит данных, 2 стоповых бита, без контроля четности.
И как убрать контроль четности(т.е. в UPM01 и UPM00(5,4 биты) установить 0?
axill
Offline
Зарегистрирован: 05.09.2011

Вот зачем в гугл лезть, если начинать надо с первоисточника? Тут http://arduino.cc/en/Serial/Begin читали опции настройки Serial?

bravomz
Offline
Зарегистрирован: 25.01.2014

axill, Большое спасибо. Глупо получилось :)

Тогда под формат формат 8 бит данных, 2 стоповых бита, без контроля четности, я понял что мне подойдет что то из SERIAL_8N2, SERIAL_8E2 или SERIAL_8O2 - подскажите что именно?

Я понял что 8 - это данные, 2 - стоп биты, а вот четность что значат N, O и E я не понял

 

maksim
Offline
Зарегистрирован: 12.02.2012

bravomz пишет:

что значат N, O и E я не понял

А для этого гугл придумал переводчик.

Duet
Offline
Зарегистрирован: 17.01.2015

Я что-то не пойму, только разбираюсь, зачем нужен конвертер RS232 в TTL, ведь COM порт ПК уже имеет выходы RX TX, почему не подключиться на прямую?

Green
Offline
Зарегистрирован: 01.10.2015

Дядя, думаю, если тебе без нашей помощи дойдёт, это будет даже лучше. Иначе, завязывай.)

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Потому что в ардуине не RS232, а UART.

P.S. Целых шесть лет разбираешься и до сих пор не разобрался? :-)

Duet
Offline
Зарегистрирован: 17.01.2015

Блин, из 100 источников только один написал что COM на 12в работает.

sadman41
Offline
Зарегистрирован: 19.10.2016

Прямо в википедии написато.

rkit
Offline
Зарегистрирован: 23.11.2016

Duet пишет:

100 источников только один написал что COM на 12в работает.

COM это абстракция в винде. Вольты тут совершенно не в тему.

Duet
Offline
Зарегистрирован: 17.01.2015

RS232 так правильно?)

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Дело не только в отличающемся напряжении, там логические уровни по-другому обозначаются. Смотри табличку Уровни напряжения

https://ru.wikipedia.org/wiki/MAX232

Duet
Offline
Зарегистрирован: 17.01.2015

Все понял. MAX3232 выход логики 5в, а есть на 3.3в, под DUE, или резисторы поставить? Нашел адаптер на SP3220 но не совсем понятно.

SAB
Offline
Зарегистрирован: 27.12.2016

В компьютерном RS232 сигналы Rx/Tx переходят через 0. Т.е. имеют отрицательные напряжения. Как раз адаптер на микросхеме MAX232 и согласовывает порт компа и ТТL уровни  порта  контроллера.

Duet
Offline
Зарегистрирован: 17.01.2015

Я так полагаю для входа с мк на MAX3232 нужно 5в, это надо еще и согласование на TXS0108E, связь возможно будет двухсторонняя.  

nik182
Offline
Зарегистрирован: 04.05.2015

Зачем согласование? MAX232 это конвертор уровней МК с названьем TTL в уровни RS232. Как то я лет 10 уже не наблюдаю в ноутах СОМ порта. Только USB. Для USB есть свои конверторы в TTL. При включении такого конвертора в комп в системе поднимается виртуальный СОМ порт. 

Если всё же нужен именно СОМ порт с уровнями RS232 то на али есть готовые переходники RS232-TTL.

Green
Offline
Зарегистрирован: 01.10.2015

Duet пишет:

MAX3232 выход логики 5в, а есть на 3.3в, под DUE, или резисторы поставить?


Неужто тяжело ДШ открыть? Насколько помню, МАХ3232 как раз таки 3-х вольтовый, а МАХ232 - 5-ти.

Duet
Offline
Зарегистрирован: 17.01.2015

Какой порт ПК лучше использовать для передачи по протоколу ModBus? Может rs232 не лучший вариант? Для общения mach3 с ардуино, она поддерживает rs232-rs485, если через USB то это надо виртуальный rs232, а нужен ли этот посредник?

nik182
Offline
Зарегистрирован: 04.05.2015

Как раз через USB самый простой, дешёвый и быстрый. И разберитесь уже с протоколами. RS232 это железный протокол. Он уровни напряжения в линии передачи описывает. По нему могут передавать разную информацию. Логические протоколы, типа UART. А уже эти логические протоколы объединять в протоколы более высокого уровня типа MODBUS.