The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Конфигурация serial port"
Отправлено Аноним, 26-Июн-15 07:07 
> Нашел - установил - буду пробовать.

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

И кстати вот еще какой момент: безбашенным echo и прочим - вы могли ... загадить себе файл девайса. Дело в том что /dev/ttyUSB0 - не только девайс, но и некий СПЕЦИАЛЬНЫЙ файл, реально существующий в файловой системе на диске. Как часть иерархии ФС. А ваше "echo" и прочие "обычные" утилиты - не в курсе что файл СПЕЦИАЛЬНЫЙ. И могут, натурально, снести его куда подальше и создать на месте /dev/ttyUSB ... обычный файл, в который запишут тот же текст из echo. Файловой системе все-равно. Просите нормальный файл по этому пути - сделаем нормальный, значит. Единственная проблема: этот файл ... не будет иметь никакого отношения к UART-ам и вас ждет много интересных открытий. Когда вы будете пытаться читать обычный текстовичок как якобы UART и внезапно обнаружите что творится какая-то фигня. Если терминалки и прочие jpnevulator "глючат" и вопят что не удалось получить статус модемных линий и что там еще - это оно. У простого текстового файла нет модемных линий, IOCTL завалится с ошибкой. Не надо эхать в спецфайлы, это источник грабель. С файлами в /dev вообще стоит поаккуратнее.

Workaround такой ситуации, если это она:
1) Удаляем кривой файл - от рута: rm /dev/ttyUSB0
2) отключите адаптер на CP2102 от компьютера.
3) переподключите адаптер.
4) Убедитесь что /dev/ttyUSB0 пересоздался (таким как изначально задуман).
5) Больше не эхайте в спецфайлы!

А еще, для понимания того что реально происходит в плане системных вызовов - есть хотя-бы strace. Покажет какие системные вызовы были и чем закончились. Может навести на мысли. Если оно отлупляет нечто типа inappropriate IOCTL for device, это хорошая подсказка что идут "неожиданные" файловые операции.

> К сожалению  систему не могу выбирать.

Ну так проверьте что ваш UART для начала работает как надо. CP210x древние и возможно нормально работают даже в этом дебиане.

Как-то примерно так:
1) picocom /dev/ttyUSB0  
(При старте напишет параметры порта, если все ок. Возможно надо будет еще указать правильный baud rate, т.к. не факт что дефолтный - такой какой вам надо)

2) Напечатайте что вы там хотели. Посмотрите приехал ли ответ от вашего девайса.

Если есть какие-то непонятки, делаем тот самый тест UART с замыканием линий: запускаем picocom, CP2102 - не подключен ни к чему. Печатаем. Убеждаемся что ничего не печатается (локального эха нет). Соединяем TX и RX вашего CP2102. Проверяем что теперь - печатается (т.е. то что шлется в TX, прилетает назад по RX). Если это так - ок, порт работает и дело в чем-то другом (baud rate, flow control, кривая работа с портом, ...). Если не ок - напишет в чем проблема. Если не рабтает даже picocom, простой как 5 копеек, то у вас таки проблемы системного характера.

> Если ничего не поможет, то так и сделаю.

Это имеет смысл сделать одной из первых вещей - позволяет понять насколько работает UART, в обе стороны. Если этот тест не прошел - у вас что-то не так и остальное работать и подавно не будет.

> Под виндой сделал за пару часов, а тут борюсь уже пару недель.

Как я уже сказал, винда и линукс - разные вещи. И есть некоторые нюансы. Поэтому если вы будете лезть с виндовым бэкграундом в линух - будете получать граблями по лбу. Примите как данность: Linux - это не еще один вариант винды. Это другая система. И у него свои особенности. Вот файлы девайсов - в том числе. Не стоит в них лишний раз соваться general purpose утилитами, особенно от рута, без четкого понимания последствий.

> То что девайс работает - это точно, затык именно в линухе.

ИМХО затык в том что вы пытаетесь применять виндовый бэкграунд к линуху. А это чревато интересными обломами. Чтобы работать с системой - надо ее все-таки знать.

А чтобы подсмотреть как работать с UART в Linux в явно работающих программах, в дебиане и прочих убунтах есть фирменный чит: apt-get source <какая-нибудь программа работающая с UART>. Желательно маленькая, чтобы разбираться поменьше было. Например, stm32flash (прошивалка STM32 по UART). Или тот же picocom (но он работает с текстовыми данными и не лучшим образом, это отдельный случай и его я не порекомендую). Получите сорц программы, при том - заведомо более-менее рабочей. Позволит посмотеть "а как это делали другие". Вообще, пакетный менеджер и открытый софт - штука хорошая. В винде такой чит не получится, хоть там что.

> Вообще спасибо за советы! Очень путные!

Ну еще бы - я по таким грабелькам уже попрыгал :).

А еще - за неделю можно было бы задолбаться и накормить поисковик очевидными кейвордами. И в первых строках найти что-то типа http://tldp.org/HOWTO/Serial-Programming-HOWTO/index.html - с рассказом что есть UART и с какого бока к нему заходить. Кстати говоря, даже в винде с UART есть свои бестолковости, особенности и грабли. Самая очевидная грабля с которой я столкнулся: винда врет про успех установки baud rate, каким бы он ни был, даже бредовым. Это вынуждает городить нефиговые костыли иной раз. В линухе соотв. вызовы честно отлупляют статус: если порт такой baud не умеет - выставить его и не дадут, собственно.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру