Перейти к содержанию
    

Полноценный адаптер USB-Serial с 3 UART портами на STM32 Blue Pill

13 minutes ago, rx3apf said:

Но не делать же ради этого полноценный встроенный конфигуратор a la ANSI терминал ? (Было бы красиво, но очень уж избыточно). Можно же тупо регистр = значение. Прочитать/записать/справка по синтаксису (без подробностей). Впрочем, это дело совершенно "хозяйское" (потому и говорю - в порядке бреда ;)

А я сделал уже :) Кнопочки влево-вправо работают. Удаление/вставка в любое место работает. Кнопочкой вверх можно вызвать предыдущую команду (только одну, это доказательство того факта, что я не конченый псих). Backspace в "исполнении mac OS" работает. Что еще. А можно написать

uart all tx output od rts actve high

То есть, применить команду ко всем портам и конфигурировать больше одного сигнала за раз. Конечно это не полноценный ANSI терминал, но это гораздо удобнее, чем когда ты нажимаешь кнопочку backspace а тебе вместо удаления гора кракозябр лезет. Так бесит это! А тут вроде удобно получилось :) 

13 minutes ago, rx3apf said:

Да, само собой. Да хоть бы и FT4232 на четыре порта. Но три - ни то, ни се, да и в повседневной жизни редко может пригодиться.

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

 

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

Изменено пользователем r2axz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно и что-то в стиле BBS-ок смастерить, можно сделать картинку в стиле старого BIOS SETUP (без разворачивания окон, максимум пролистывание вариантов или ввода значения текстом или числом), с рамочками и цветом. Но это явно для более масштабного проекта. telnet под роутеры красивостями на заморачивается, все совсем тупо. Но тоже, как вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, rx3apf said:

 

Можно и что-то в стиле BBS-ок смастерить, можно сделать картинку в стиле старого BIOS SETUP (без разворачивания окон, максимум пролистывание вариантов или ввода значения текстом или числом), с рамочками и цветом. Но это явно для более масштабного проекта. telnet под роутеры красивостями на заморачивается, все совсем тупо. Но тоже, как вариант.

 

Ну я все таки не заморачивался ради не особо полезных красивостей, а решал конкретную проблему имени себя. Лично я часто промахиваюсь по кнопкам и у меня правда портится настроение когда я не могу стереть написанное :) Поэтому я все-таки считаю что нашел разумный по функционалу и сложности реализации компромисс. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, rx3apf сказал:

Можно и что-то в стиле BBS-ок смастерить, можно сделать картинку в стиле старого BIOS SETUP

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, r2axz сказал:

 Лично я часто промахиваюсь по кнопкам и у меня правда портится настроение когда я не могу стереть написанное :) 

У меня не просто настроение в таких случаях портится, я вообще зверею ;) TeraTerm чем хорош - можно выделить, и оно сразу вставляется обратно на передачу. Но от ошибок это не спасает, хоть и облегчает жизнь с передачей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, rx3apf said:

У меня не просто настроение в таких случаях портится, я вообще зверею ;) TeraTerm чем хорош - можно выделить, и оно сразу вставляется обратно на передачу. Но от ошибок это не спасает, хоть и облегчает жизнь с передачей.

Вот, я не одинок))) Поэтому я и решил чутка заморочиться.

 

17 minutes ago, Сергей Борщ said:

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

Как-то это too much все-таки для подобного устройства)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, r2axz сказал:

Конфигуратор доступен в виде шелла на первом порту когда PB5 замкнут на землю.

А если устройство реализует CDC ACM, то может быть можно параллельно работать с ним через его control-EP0? Не знаю - давно уже не использовал CDC...

Но если это возможно, то тогда можно написать конфигуратор, работающий командами через control-EP0, с дружелюбным интерфейсом (без необходимости запоминать кучу текстовых команд).

При желании туда даже не только конфигурирование, но и какой-то мониторинг обмена по COM-портам добавить можно (с лампочками, счётчиками байт и даже графиками).

Хотя это конечно будет не мультиплатформенно....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, jcxz said:

А если устройство реализует CDC ACM, то может быть можно параллельно работать с ним через его control-EP0? Не знаю - давно уже не использовал CDC...

В теории можно, но на практике Control Endpoint по-умолчанию занят драйвером операционной системы, который использует этот endpoint для SET_CONTROL_LINE_STATE, GET/SET_LINE_CODING и т.п. То есть, как минимум нужно будет написать свой драйвер CDC ACM для каждой интересующей операционной системы. Чтобы перейти через равенство с текущим вариантом, надо сделать драйвера для кучи версий Windows, Mac OS, Linux. И мы все равно на этом шаге потеряем всякие маргинальные операционные системы которые волею судеб используют три калеки, но которые при этом все-таки умеют CDC. Без спец-драйвера сам порт вполне может работать, а вот конфигуратор - нет. Далее, чтобы выполнялся критерий удобства, для того же самого Linux нужно обеспечить бинарные сборки драйвера под распространенные дистрибутивы. Получается куча работы, а мы еще даже до самого конфигуратора не дошли.

6 hours ago, jcxz said:

Но если это возможно, то тогда можно написать конфигуратор, работающий командами через control-EP0, с дружелюбным интерфейсом (без необходимости запоминать кучу текстовых команд).

Дружелюбный интерфейс - это понятие очень скользкое. Дружелюбен ли будет GUI-интерфейс конфигуратора в окружении какого-нибудь сервера, на котором и оконного менеджера-то нет. Или какого-нибудь встраиваемого решения? Не особо ведь, правда? А если нам надо управлять настройками из какого-нибудь скрипта, то GUI-решение тоже не годится. Значит надо как минимум сделать command-line решение для конфигурации. И только после этого начать кропотливо кодить UI. Под все платформы выше...

6 hours ago, jcxz said:

без необходимости запоминать кучу текстовых команд

И весь этот, не побоюсь этого слова, гигантский объем работы надо проделать для того, чтобы пользователь не запоминал три(!) команды, одна из которых help, а две другие подробно описаны этим help прямо внутри управляющего шелла. И ради этого удобства надо еще поставить себе кучу ненужного софта... Получается странно...

6 hours ago, jcxz said:

При желании туда даже не только конфигурирование, но и какой-то мониторинг обмена по COM-портам добавить можно (с лампочками, счётчиками байт и даже графиками).

Это отличная идея! Но это отличная идея для абсолютно другого продукта. Анализатор обмена по последовательному порту и переходник - это концептуально совершенно разные вещи. И пользователи у них разные. И если для анализатора действительно было бы правильным писать софт для визуализации данных и ожидать от пользователя его установки, то переходник должен тупо сразу работать и иметь минимально возможное количество зависимостей. Вот честно, я очень грущу из-за того, что виндовс до 10-ки требует INF-файл который ей объясняет что "вот с этим устройством, пожалуйста, используй свой встроенный драйвер usbser.sys", ибо это лишняя зависимость... До кучи, если бы я делал анализатор, то внутри он был бы устроен тоже совершенно иначе. В частности, я бы запоминал временные метки событий и еще кучу подобных вещей.

Весь смысл конфигуратора в том, что он облегчает использование переходника в составе различных схем согласования, потенциально снижая количество требуемых деталей и упрощая схемотехнику. Не более. И то, все это в контексте штучных устройств и лабораторных экземпляров. Если нам таких устройств нужно 10, то проще изменить конфигурацию в прошивке и сразу прошить как надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тем временем таки зарелизил вторую версию с возможностью конфигурации параметров сигнальных линий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот, кстати, что стоит проверить - выгрузить какой-нибудь хороший  толстый файлец не несколько mb (а то и десятков mb) и принять его (эхом или с другого порта). Будет 1:1 ? Или, вдруг, что выпадет или исказится ?

Была у меня поганая история - много лет грузил прошивки в устройства просто по copy /b <file> COMx, переходником были FT232 и FT2232 (обычно 921600 и 115200), все работало и был уверен, что тут никаких вообще сложностей нет и быть не может. И вдруг понадобилось это сделать через CP2102 (китайские платы, а вот насколько оригинальные чипы не поручусь, но драйвер родной). И - облом. Не шьется ! 115200, управления потоком нет (приемник заведомо успевает). Решил глянуть, что уходит - а там реально пропадают байты на выходе ! Понятное дело, что без управления потоком на приеме можно потерять (сам виноват), но на ВЫХОДЕ !!!??? Реально дурдом, причем вполне даже воспроизводимый (там где-то после нескольких кило начинают выпадать байты). Что-то мой склероз подсказывает, что когда-то встречал утверждения о непофиксенной много лет ошибке в виндовом драйвере, но тут-то ведь установленный драйвер от Silabs ?

Решать пришлось отказом от "copy /b", написав на vbs утилиту, посылающую блоками по 256 байтов и дающую чуть-чуть (в районе 1%) задержку, чтобы общая скорость потока укладывалась в 115200,8,n,1. Но как же это гадостно, а ?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как вариант - перепрошивка сотовых телефонов/модулей. Перегнать на 460800 или 921600 пару десятков МБ по протоколу, который в первом приближении X-modem, при том, что аппаратный контроль потока там обычно отсутствует.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

X-модем - мимо. Там же квитирование, следующий блок не пойдет, пока нет подтверждение. Самый-то цимес просто слить файл на максимальной скорости без какого-либо управления - дойдет ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, rx3apf said:

 

X-модем - мимо. Там же квитирование, следующий блок не пойдет, пока нет подтверждение. Самый-то цимес просто слить файл на максимальной скорости без какого-либо управления - дойдет ?

 

Только что для теста слил файл размером около 6 MB c одного порта на другой на скорости 921600, без использования hardware flow control. Размер и содержимое совпали. Это был мой специальный тестовый файл который я многократно в процессе разработки использовал именно для этих целей. Но прежде чем вам отвечать, я не поленился и еще ра повторил этот тест на самой свежей версии прошивки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

35 минут назад, rx3apf сказал:

X-модем - мимо. Там же квитирование, следующий блок не пойдет, пока нет подтверждение. 

Оно-то так, но не совсем. Квитирование и повторная пересылка блоков затормозят процесс. Порой весьма существенно, вплоть до потери всякого терпения. :)

Скрытый текст

Как-то на заре пришлось устанавливать Win98 на ушатанный ноутбук, в котором единственным средством общения с внешним миром остался COM-порт со слегка "поджаренным" приёмопередатчиком. На 115200 работать отказался, а на 57600 дистрибутив таки передался. За 6 часов. Именно по x-modem.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...