Общение Ардуино с компом по UART.

Не могу добиться стабильного получения подстроки.

Александр_Светлый
Лейтенант
Сообщения: 355
Зарегистрирован: 12.10.2016{, 19:03}
Репутация: 2
Откуда: Краснодар

Общение Ардуино с компом по UART.

#1

Сообщение Александр_Светлый » 09.11.2018{, 01:26}

Всем доброго!
Продолжаю свой старый проект Антенного ротатора. Перековырял проект убрав много лишнего дабы облегчить поиск неисправности. Суть проблемы в том, что комп отправляет "задание" Ардуине в формате W000"000\r где 000 это координаты которые нужно записать в переменную в качестве уставки. Но оно как то не стабильно пишется, может 2-3 раза нормально пройти, на 4-й вместо допустим 100 и 45 записывает 2 и 9... Смотрю логическим анализатором на порту - строка уходит как и положено, без сбоев но контроллер видимо как то не так её отлавливает. Подскажите пожалуйста решение, может как то по маске отлавливать или ещё какие варианты?

Отправлено спустя 12 минут 58 секунд:
Вот пример посылки от компа для записи новых координат.

Отправлено спустя 11 минут 57 секунд:
Плюс ко всему не могу понять как заставить контроллер отвечать без задержки на запрос, подозреваю что в этом может крыться корень проблемы!
Вложения
Rotator_5.3_Serial.rar
(64.83 КБ) 65 скачиваний
Безымянный.jpg
Последний раз редактировалось Александр_Светлый 09.11.2018{, 22:18}, всего редактировалось 1 раз.
Я не флудер , просто мне есть что сказать =)

Александр_Светлый
Лейтенант
Сообщения: 355
Зарегистрирован: 12.10.2016{, 19:03}
Репутация: 2
Откуда: Краснодар

Общение Ардуино с компом по UART.

#2

Сообщение Александр_Светлый » 09.11.2018{, 01:53}

Вот что происходит
Вложения
Без.jpg
Я не флудер , просто мне есть что сказать =)

Александр_Светлый
Лейтенант
Сообщения: 355
Зарегистрирован: 12.10.2016{, 19:03}
Репутация: 2
Откуда: Краснодар

Общение Ардуино с компом по UART.

#3

Сообщение Александр_Светлый » 09.11.2018{, 01:59}

А вот как надо, всё чётко, запрос - ответ. Это серийное устройство. Запрос-Ответ в увеличенном виде, хорошо видно что МК отвечает незамедлительно! И общая картинка запросов и ответов. У меня же ни как не выходит систематизировать передачу данных. Комп сам себе спрашивает а ардуина сама себе отвечает.
Вложения
Безым.jpg
Безы.jpg
Я не флудер , просто мне есть что сказать =)

kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22.10.2016{, 14:22}
Репутация: 28

Общение Ардуино с компом по UART.

#4

Сообщение kalobyte » 09.11.2018{, 02:07}

используй протокол модбас, он гарантирует доставку

Александр_Светлый
Лейтенант
Сообщения: 355
Зарегистрирован: 12.10.2016{, 19:03}
Репутация: 2
Откуда: Краснодар

Общение Ардуино с компом по UART.

#5

Сообщение Александр_Светлый » 09.11.2018{, 02:11}

Дело в том, что Ардуина будет использоваться с конкретной программой, под неё и подгоняю.

Отправлено спустя 2 минуты 33 секунды:
Мне кажется первостепенно нужно её заставить незамедлительно отвечать на запросы а не тогда когда ей моча в голову стукнет.
Я не флудер , просто мне есть что сказать =)

kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22.10.2016{, 14:22}
Репутация: 28

Общение Ардуино с компом по UART.

#6

Сообщение kalobyte » 09.11.2018{, 02:40}

тогда все хуже
весь код работает в суперцикле и он не всегда успевает отработать вовремя или может быть у тебя происходит переполнение стека и часть данных теряется
операции с юартом жрут очень много памяти

и что за прога такая?

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

Общение Ардуино с компом по UART.

#7

Сообщение fsergei70 » 09.11.2018{, 07:48}

kalobyte писал(а):
09.11.2018{, 02:40}
и что за прога такая?
Это логический анализатор Saleae Logic.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Общение Ардуино с компом по UART.

#8

Сообщение Sancho » 09.11.2018{, 09:04}

Александр_Светлый, Архив не открывается (
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22.10.2016{, 14:22}
Репутация: 28

Общение Ардуино с компом по UART.

#9

Сообщение kalobyte » 09.11.2018{, 12:39}

fsergei70 писал(а):
09.11.2018{, 07:48}
Это логический анализатор Saleae Logic.
это я в курсе, положил в корзину на 11.11, а то давно хотел купить 8 каналов, но сейчас есть 16 каналов с защитой

я имел в виду прогу для антенн
может быть там есть протокол модбас?

Александр_Светлый
Лейтенант
Сообщения: 355
Зарегистрирован: 12.10.2016{, 19:03}
Репутация: 2
Откуда: Краснодар

Общение Ардуино с компом по UART.

#10

Сообщение Александр_Светлый » 09.11.2018{, 22:17}

Sancho писал(а):
09.11.2018{, 09:04}
Александр_Светлый, Архив не открывается (
Хм, странно, не прицепился наверное, на компе в норме... Сейчас перезалью...

Отправлено спустя 3 минуты 39 секунд:
Перезалил архив в первом сообщении, проект очень большой получился, не грузился на сайт, по этому в архиве. Вообще общение с компом началось с вот этого примера который мне набросал rw6cm, с ним происходит абсолютно то же самое.

Отправлено спустя 7 минут 24 секунды:
А по анализатору, да, весьма не плох для своей цены. Есть подороже на 16-18 портов но есть ли в них необходимость? Я реально никогда больше 4 портов не подключал ибо некуда, мне бы лучше пару аналоговых. За то вот тут пришёлся как нельзя кстати.
Вложения
testrotator.flp
(190.5 КБ) 73 скачивания
Я не флудер , просто мне есть что сказать =)

kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22.10.2016{, 14:22}
Репутация: 28

Общение Ардуино с компом по UART.

#11

Сообщение kalobyte » 09.11.2018{, 22:36}

Александр_Светлый писал(а):
09.11.2018{, 22:28}
Я реально никогда больше 4 портов не подключал ибо некуда
дело не в количестве каналов, а в их скорости
спи может на 16мгц работать с индикаторами, да и в новых схемотехника улучшена

вот только в них есть одна большая жопа - они не могут воспроизводить записанный сигнал или генерировать
такие девайсы называются pattern generator и стоят сотни баксов

я думаю селаевцы запилят скоро новую версию с генератором, когда продажи этих упадут

Александр_Светлый
Лейтенант
Сообщения: 355
Зарегистрирован: 12.10.2016{, 19:03}
Репутация: 2
Откуда: Краснодар

Общение Ардуино с компом по UART.

#12

Сообщение Александр_Светлый » 10.11.2018{, 15:30}

Ну так что, есть сведущие в делах портовых? Можете помочь с решением данной задачи?
Я не флудер , просто мне есть что сказать =)

kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22.10.2016{, 14:22}
Репутация: 28

Общение Ардуино с компом по UART.

#13

Сообщение kalobyte » 10.11.2018{, 15:51}

скинь весь проект и название проги той
а то непонятно, в чем тебе помочь

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Общение Ардуино с компом по UART.

#14

Сообщение Sancho » 10.11.2018{, 15:59}

Александр_Светлый писал(а):
10.11.2018{, 15:30}
Ну так что, есть сведущие в делах портовых? Можете помочь с решением данной задачи?
Через что и как подключена ардуинка к компу?

Отправлено спустя 12 минут 48 секунд:
Архив пишет - повреждён. Попробуйте зазиповать...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Александр_Светлый
Лейтенант
Сообщения: 355
Зарегистрирован: 12.10.2016{, 19:03}
Репутация: 2
Откуда: Краснодар

Общение Ардуино с компом по UART.

#15

Сообщение Александр_Светлый » 10.11.2018{, 17:59}

Sancho, К компу подключена как обычно, напрямую кабелем. Программа с которой она по задумке должна работать называется PSTrotator скачать можно по ссылке. Как программа общается с контроллером подсмотрел в этом проекте, загрузил в ардуину, сконектил с PSTrotator и подсмотрел лог. анализатором как происходит обмен.
Вложения
Rotator_5.3_Serial.flp
(1.27 МБ) 81 скачивание
Я не флудер , просто мне есть что сказать =)

Александр_Светлый
Лейтенант
Сообщения: 355
Зарегистрирован: 12.10.2016{, 19:03}
Репутация: 2
Откуда: Краснодар

Общение Ардуино с компом по UART.

#16

Сообщение Александр_Светлый » 10.11.2018{, 18:02}

Во, после "зачистки" загрузился проект, раньше непролазил по размеру видимо...
Выше есть пример парсинга который набросал мне rw6cm, я попытался встроить его. Но даже в голом виде как то нестабильно работает, не всегда обновляются данные.
Я не флудер , просто мне есть что сказать =)

kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22.10.2016{, 14:22}
Репутация: 28

Общение Ардуино с компом по UART.

#17

Сообщение kalobyte » 10.11.2018{, 18:54}

что-то я не нашел там протокол

Александр_Светлый
Лейтенант
Сообщения: 355
Зарегистрирован: 12.10.2016{, 19:03}
Репутация: 2
Откуда: Краснодар

Общение Ардуино с компом по UART.

#18

Сообщение Александр_Светлый » 10.11.2018{, 20:03}

Какой именно протокол Вас интересует?

Отправлено спустя 6 минут 5 секунд:
Я пытаюсь эмитировать протоколы Yaesu GS-232A / B и Easycom (в о-о-очень урезанном варианте). Но если по протоколу Yaesu GS-232A /B в сети есть исчерпывающая информация с описанием команд то по Easycom ничего не нашлось.
Yaesu GS-232A /B это односторонняя связь, комп отправляет в порт координаты куда должно следовать устройство а вот последовало ли должен ответить Easycom.
Я не флудер , просто мне есть что сказать =)

kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22.10.2016{, 14:22}
Репутация: 28

Общение Ардуино с компом по UART.

#19

Сообщение kalobyte » 10.11.2018{, 20:19}

Александр_Светлый писал(а):
10.11.2018{, 20:09}
комп отправляет в порт координаты куда должно следовать устройство а вот последовало ли должен ответить Easycom.
это же костыли лютые

Отправлено спустя 8 минут 2 секунды:
вот что там пишут
For those commands that require a response, the response is an echo of
the command followed by the response. If the command specifies a field
number (eq. AN or IP), then the two numbers are delimited with a comma.

т.е. протокол один и он подтверждает команды, так что непонятно зачем там езу протокол
вот все данные и так есть
https://www.mustbeart.com/software/easycomm.txt
нужно написать модуль парсера и всего-то делов

Александр_Светлый
Лейтенант
Сообщения: 355
Зарегистрирован: 12.10.2016{, 19:03}
Репутация: 2
Откуда: Краснодар

Общение Ардуино с компом по UART.

#20

Сообщение Александр_Светлый » 10.11.2018{, 20:32}

kalobyte писал(а):
10.11.2018{, 20:19}
это же костыли лютые
Комп спрашивает Ардуину c2\r (это видимо означает "где ты?") тут же она ему отвечает AZ=000EL=000\r\n (то-есть азимут 000° элевация 000°). Если в окне программы ввести новые координаты, например - азимут 90°элевация 90° компьютер отправляет в порт W090"090\r на что Ардуина отвечает \r\n. Далее запросы/ответы повторяются, комп С2\r ардуина ему в ответ AZ=090EL=090\r\n.
Тоесть сам этот обмен до смешного прост.
Эти данные были считаны с порта на действующем устройстве от k3ng
kalobyte писал(а):
10.11.2018{, 20:27}
нужно написать модуль парсера и всего-то делов
Вы можете это сделать т.к. для меня это тёмный лес...
Или может быть подскажите где можно посмотреть как это сделать.
То что мне удалось слепить тоже работает но не стабильно, периодически"посылки" в контроллер теряются и вместо них приходит какой то мусор.
Последний раз редактировалось Александр_Светлый 10.11.2018{, 20:51}, всего редактировалось 3 раза.
Я не флудер , просто мне есть что сказать =)

Ответить

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