NikP 0 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба Доброго всем дня! Столкнулись с ситуацией, когда устройство на МК (делали сами), подключённое к ПК через преобразователь UART-USB одной модели, не видно при подключении через преобразователь UART-USB другой модели (скорость выбрана одинаковая)- приходится ручками перенастраивать скорость обмена. Вопросов два: 1. Какие допуски на рассогласование установленных скоростей обмена для UART ? ( Я не нашёл- может плохо искал) 2. Можно ли сделать автоподстройку частоты обмена в прошивке (вроде стандартного модуля)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 1 час назад, NikP сказал: Какие допуски на рассогласование установленных скоростей обмена для UART? Не думаю, что вообще есть какие-то нормативные документы для времянок UART. В основном, все определяется количеством семплов на один передаваемый бит. Часто в даташитах на используемый контроллер пишут формулы для расчета как скоростей, так и вероятности возникновения ошибок как раз из-за разницы частот. 1 час назад, NikP сказал: Можно ли сделать автоподстройку частоты обмена в прошивке (вроде стандартного модуля)? А почему бы и нет? Только это все-таки некий алгоритм, работа которого предусматривает совместное творчество обеих сторон. Например, узел A должен отправлять определенную последовательность символов узлу B до тех пор, пока не получит корректный ответ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 90 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 1 час назад, NikP сказал: 1. Какие допуски на рассогласование установленных скоростей обмена для UART ? ( Я не нашёл- может плохо искал) Не более 4% Вы бы хоть скорости написали, а то вдруг один на 5 Мбит работает, а другой только на 2 Мбит :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 29 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 2 часа назад, NikP сказал: приходится ручками перенастраивать скорость обмена. А можно с этого места поподробнее. Какими средствами перенастраивали и в каких пределах? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 1 час назад, Arlleex сказал: А почему бы и нет? Только это все-таки некий алгоритм, работа которого предусматривает совместное творчество обеих сторон. Например, узел A должен отправлять определенную последовательность символов узлу B до тех пор, пока не получит корректный ответ. Точно не помню, но кажется так. "узел A должен отправлять" посылку, в которой все биты идут тем же уровнем, что и стартовый. Это позволяет "узлу B" поймать посылку, даже если его тактовая гораздо ниже. Эту посылку "узел B" ловит и смотрит, что получил. Если в принятой посылке находятся биты другого уровня, то "узел B" должен пересчитать свою скорость... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Priest_89 8 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба А какая все таки скорость? Из стандартного ряда? Большинство преобразователей поддерживают ограниченный набор скоростей, и при настройке COM-порта выбирают ближайшую к требуемой. Смотреть надо в документации на преобразователь, или на микросхему моста, на которой он построен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 228 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 2 часа назад, NikP сказал: устройство на МК (делали сами) Может и его UART тоже сами, т.е. программный? Вообще, для больших скоростей UART у МК бывает обгрызанный, с минимумом выборок — такому подстраиваться под гуляющую частоту попросту нечем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vlad_G 8 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 3 hours ago, NikP said: (делали сами) Непонятно, что за устройство, в смысле на чём. Но, в старых микрочипах, например, особо не разгонишься - при соответствующем выборе константы скорости можно было уложиться в 0,16% погрешности, с учетом ухода частоты внутреннего генератора отклонение составляло до 2,6 % (если частота отклонялась на 100 кГц при 4 МГц). Если же изменить константу на 1, то отклонение уже составляло порядка 3,7%. Не припомню, чтоб были проблемы из-за этого, подключали к порту ПК через уровни и через USB-преобразователи. Автоподстройка ... хз. Я б сделал через через уровни портов: 00 - расчетная скорость, 01 - +1 к значению скорости, 10 - -1 от значения скорости. Если есть свободные ноги или через кнопочку, жмём и крутим по кругу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 3 часа назад, NikP сказал: Столкнулись с ситуацией, когда устройство на МК (делали сами), подключённое к ПК через преобразователь UART-USB одной модели, не видно при подключении через преобразователь UART-USB другой модели (скорость выбрана одинаковая)- приходится ручками перенастраивать скорость обмена. 99.9% вероятности что ошибка кроется в проектировании "МК (делали сами)" или его firmware. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NikP 0 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 1. Скорость выбрана стандартная - 256000 2. Для подключения использовались MOXA UPort1130 и UPort1450. 3. Подстраивали настройками UPort1450 (с UPort1130 работало нормально - приём, передача шли без вопросов). Понизили для него скорость до 220000 - заработало. 4. Насчёт автоподстройки понятно, что это надо делать в прошивке МК. Варианты возможны разные, просто интересно: может это уже кто-то реализовывал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wim 6 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 37 минут назад, NikP сказал: может это уже кто-то реализовывал Так давно уже реализовали. Однако, у Вас скорость большая, поэтому надо аппаратную часть смотреть осциллографом. Может, витая пара плохо скручена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 2 часа назад, iosifk сказал: Точно не помню, но кажется так. "узел A должен отправлять" посылку, в которой все биты идут тем же уровнем, что и стартовый... ИМХО, не обязательно. Можно перебором от минимальной до некоторой максимальной скорости из ряда стандартных отправлять в линию символ и ждать ответ. Не ответили? Значит не та скорость. Ответили - пробуем отправить строку (например, "Device Connect"). Удаленный узел на это присылает, например, "Device Connected". Прислал - значит скорость верна и сообщение сформировано намеренно, а не как-либо еще. А нестандартные скорости в топку, ибо не универсально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 3 октября, 2019 Опубликовано 3 октября, 2019 · Жалоба 3 часа назад, NikP сказал: 2. Для подключения использовались MOXA UPort1130 и UPort1450. Вы всех запутали. UPort1450 - это не UART-USB, а UART-RS232. Разница огромная. Так как многие драйвера высоковольтной части не тянут скорости выше 115 или 230 кбод на передачу - заваливают фронты. Сталкивался с такой проблемой не раз на USB-RS232. С преобразователями именно UART-USB такой проблемы нет: практически все работают до 1Мбод и выше. Смотрите что за драйвер RS232 стоит в вашем девайсе и смотрите осциллограммы его TXD. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NikP 0 4 октября, 2019 Опубликовано 4 октября, 2019 · Жалоба Спасибо wim за ссылку. Это интересно. Для конкретики: 1. UART контроллера соединяется с ПК через SN175ALS180 (RS485). По даташиту SN175ALS180 должна работать до 25 Мбод. 2. UPort1450 : 4-портовый преобразователь USB в RS-232/422/485 . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 4 октября, 2019 Опубликовано 4 октября, 2019 · Жалоба 3 минуты назад, NikP сказал: 1. UART контроллера соединяется с ПК через SN175ALS180 (RS485). По даташиту SN175ALS180 должна работать до 25 Мбод. На 2-м десятке постов наконец-то выясняется, что речь идёт о RS-485. И всё надо начинать сначала... Да уж.... Вы и разработку так же ведёте - сперва что-то делаете-делаете, а потом только выясняете - а что же нужно было делать? PS: Проверяйте терминирующие резисторы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться