LINUX.ORG.RU

Принятие данных по UART из tty

 , , ,


0

1

Всем привет, бЪюсь над проблемой уже несколько дней. Есть avr микроконтроллер подключенный через аппаратный usb-uart переходник, в данный момент он просто слушает пакеты и если это ascii симвом - отвечает им же, только в верхнем регистре.

набросал простой скрипт, чтобы работать с портом

#!/bin/bash
terminal="/dev/ttyUSB0"
echo -n "==> "
stty 4800 --file=$terminal
for char in {a..z};
do
    echo -n $char > $terminal
    sleep 0.1
done
echo " <=="

пакеты отсылаются и принимаются, в этом проблем нет (проверял анализатором логики), но вот stty отображает не все принятые данные, например пара-тройка рандомных букв просто теряются. В minicom все отлично работает.

Подскажите, что может быть не так...


stty отображает не все принятые данные, например пара-тройка рандомных букв просто теряются

перед/после рандомными буквами попались «рандомные» управляющие символы..

MKuznetsov ★★★★★
()
Ответ на: комментарий от Elyas

Даже если это и так (хотя и не так), отсутствие задержки не должно влиять на передачу, пробовал закомментировать sleep, результат тот же.

AlexDi
() автор топика
Ответ на: комментарий от Elyas

пробовал, нет разницы, sleep никак не влияет.

AlexDi
() автор топика

Попробуй так:

#!/bin/bash
terminal="/dev/ttyUSB0"
echo -n "==> "
for char in {a..z};
do
    stty 4800 --file=$terminal
    echo -n $char > $terminal
    sleep 0.1
done
echo " <=="
Если не ошибаюсь, настройки tty сбрасываются после close() (который у тебя имплицитно происходит после echo).

beastie ★★★★★
()
Ответ на: комментарий от beastie

Проверить смогу только вечером, но сразу отвечу что настройки не сбрасываются даже после завершения скрипта. Баловался с параметрами stty и заметил что ранее примененные параметры сохраняются.

AlexDi
() автор топика

скорости точно одинаковые или есть небольшое расхождение?

какое расстояние от МК до переходника usb-uart и как выполнено соединение?

aiqu6Ait ★★★★
()
Ответ на: комментарий от aiqu6Ait

Скорости указаны одинаково, в minicom все прекрасно работает. Собрано все на макетной плате, соединено проводами самого переходника usb-uart.

AlexDi
() автор топика
Ответ на: комментарий от Elyas

Пробовал глушить вывод stty командой -echo и выводить на экран через

cat $terminal &
результат аюсолютно такой же как и при выводе через stty

AlexDi
() автор топика
Ответ на: комментарий от mv

что то вообще доигрался с настройками порта. Теперь из скрипта вообще не работает, миником в ответ показывает вопросительные знаки. Не могу откатить все как было, ребут не помогает.

AlexDi
() автор топика

stty -F ${terminal} 4800 raw stty -a -F ${terminal}

сделать перед общением с uart

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.