Проблема со связью по Modbus на малой скорости

Обсуждаем контроллеры компании Atmel.
Ответить
Andrew33
Родился
Сообщения: 12
Зарегистрирован: Вт дек 12, 2023 14:29:05

Проблема со связью по Modbus на малой скорости

Сообщение Andrew33 »

Приветствую всех.
Возникла проблема. Сопряжено по Modbus устройство на базе ATMega16 c ПК. Программа на основе freemodbus 1.5 отказывается работать на скорости 1200 бод. Со скоростями выше все в порядке.
К ПК подключено через преобразователь RS485-USB
С чем может быть связана такая проблема? Может кто сталкивался?
Аватара пользователя
bitwood
Открыл глаза
Сообщения: 77
Зарегистрирован: Вт апр 08, 2008 11:15:24

Re: Проблема со связью по Modbus на малой скорости

Сообщение bitwood »

А осциллограммы смотрели?
Инженерю.
Andrew33
Родился
Сообщения: 12
Зарегистрирован: Вт дек 12, 2023 14:29:05

Re: Проблема со связью по Modbus на малой скорости

Сообщение Andrew33 »

Нет, не смотрел. Понять бы в какую сторону смотреть. Вроде скорость 1200 стандартная для модбас, и тут такая проблема на ровном месте
Аватара пользователя
uni
Встал на лапы
Сообщения: 137
Зарегистрирован: Пт дек 07, 2007 11:17:40
Откуда: г. Екатеринбург
Контактная информация:

Re: Проблема со связью по Modbus на малой скорости

Сообщение uni »

Не обязательно осциллографом, можно посмотреть логическим анализатором, подключившись прямо к одной из дифф линий. Землю можно не подключать, т.к. она будет через USB преобразователь скорее всего. Это на свой страх и риск.
Россия навсегда!
Аватара пользователя
ART_ME
Друг Кота
Сообщения: 3011
Зарегистрирован: Вс окт 02, 2016 07:34:45

Re: Проблема со связью по Modbus на малой скорости

Сообщение ART_ME »

Я бы посмотрел осциллом реальную скорость передачи 1200 бод с МК.
Например вот так: https://bravikov.wordpress.com/2014/10/ ... 0%B8-uart/
Andrew33
Родился
Сообщения: 12
Зарегистрирован: Вт дек 12, 2023 14:29:05

Re: Проблема со связью по Modbus на малой скорости

Сообщение Andrew33 »

Проверил тестовой программой. Через USART на ПК идет сигнал на скорости 1200. Похоже проблема в библиотеке Freemodbus
tonyk
Это не хвост, это антенна
Сообщения: 1309
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: Проблема со связью по Modbus на малой скорости

Сообщение tonyk »

[uquote="Andrew33",url="/forum/viewtopic.php?p=4517039#p4517039"]Проверил тестовой программой. Через USART на ПК идет сигнал на скорости 1200. Похоже проблема в библиотеке Freemodbus[/uquote]
freemodbus использует аппаратный таймер МК для измерения интервалов. Я бы проверил настройки этого таймера.
Аватара пользователя
ART_ME
Друг Кота
Сообщения: 3011
Зарегистрирован: Вс окт 02, 2016 07:34:45

Re: Проблема со связью по Modbus на малой скорости

Сообщение ART_ME »

[uquote="Andrew33",url="/forum/viewtopic.php?p=4517039#p4517039"]Через USART на ПК идет сигнал на скорости 1200.[/uquote]И как Вы об этом узнали? 8)
Andrew33
Родился
Сообщения: 12
Зарегистрирован: Вт дек 12, 2023 14:29:05

Re: Проблема со связью по Modbus на малой скорости

Сообщение Andrew33 »

Всё, нашел. Это была единственная скорость из моего списка при которой задействован регистр UBRRH. В библиотеке freemodbus применялся только UBRRL
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Проблема со связью по Modbus на малой скорости

Сообщение OKF »

А так не?:)

Код: Выделить всё

#define BAUD              1200
#include <util/setbaud.h>

UBRRL = UBRRL_VALUE;
UBRRH = UBRRH_VALUE;
Andrew33
Родился
Сообщения: 12
Зарегистрирован: Вт дек 12, 2023 14:29:05

Re: Проблема со связью по Modbus на малой скорости

Сообщение Andrew33 »

[uquote="OKF",url="/forum/viewtopic.php?p=4517189#p4517189"]А так не?:)

Код: Выделить всё

#define BAUD              1200
#include <util/setbaud.h>

UBRRL = UBRRL_VALUE;
UBRRH = UBRRH_VALUE;
[/uquote]

Так не. Скорости меняются в процессе работы путем записи в holding reg . Библиотека пересчитывала присланные значения, но почему то только задействуя UBRRL. Поскольку на других скоростях все работало, то проблема всплыла не сразу. Ну.. может кому пригодится инфа
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Проблема со связью по Modbus на малой скорости

Сообщение OKF »

Существует и другая беда. Есть куча калькуляторов для вычисления значений UBRR. Задал частоту, скорость и ниочём не думай. А вот какие значения будут для 300 bps на 16 мгц, к примеру?
Andrew33
Родился
Сообщения: 12
Зарегистрирован: Вт дек 12, 2023 14:29:05

Re: Проблема со связью по Modbus на малой скорости

Сообщение Andrew33 »

[uquote="OKF",url="/forum/viewtopic.php?p=4517737#p4517737"]Существует и другая беда. Есть куча калькуляторов для вычисления значений UBRR. Задал частоту, скорость и ниочём не думай. А вот какие значения будут для 300 bps на 16 мгц, к примеру?[/uquote]

Ну так 3333 ( D05)
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Проблема со связью по Modbus на малой скорости

Сообщение OKF »

Ой, ошибся.( Нужно было 110. А тогда получается 9090 или 0x2382, чувствуете?
Ответить

Вернуться в «AVR»