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

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

28 minutes ago, r2axz said:

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

Для истории: проверял в Win 10 в Tera Term. На счет глюков в usbser.sys в более раних версиях Windows не знаю, если честно. Вообще не особо много пользуюсь этой платформой. Но знаю, что в десятке этот драйвер был переписан и стал подхватывать CDC ACM без пинка в виде INF файла. Пинок, кстати, мне обошелся в $85 за code-signing сертификат))) сволочи) Ну да ладно, я им потом еще что-нибудь подпишу...

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


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

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

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

  Показать содержимое

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

 

По крайней мере в X-modem да, именно так. Я пробовал когда-то, даже с 1K блоками тормоза безумные. В USB я дуб-дубом, но помню, что есть какие-то проблемы (ну хотя бы потому, что это полудуплекс) и мгновенной реакции как у реального UART на шине достичь невозможно. Вроде бы можно настройками что-то вытянуть, но накладные расходы все равно велики. Так что - просто лить (Z-modem вроде бы именно с отложенным квитированием работает ? Но все равно, лишняя сущность) и сравнивать . У меня на CP2102 ломались любые файлы, строго в определенных местах. Ломались по "copy /b", в "send file" в TeraTerm, в VBS-скрипте (не помню точно, одинаково ли при посылке разными программами, но в каждом случае воспроизводилось с точностью до байта).

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


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

1 minute ago, rx3apf said:

У меня на CP2102 ломались любые файлы, строго в определенных местах. Ломались по "copy /b", в "send file" в TeraTerm, в VBS-скрипте (не помню точно, одинаково ли при посылке разными программами, но в каждом случае воспроизводилось с точностью до байта).

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

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


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

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

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


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

18 minutes ago, rx3apf said:

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

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

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


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

С прошивкой-то разберусь, вероятно - вот только как руки дойдут...

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


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

12 hours ago, rx3apf said:

Это радует !

C утра осознал что я - балбес, а в Tera Term можно ставить произвольные скорости, а не только выбирать из списка. Так вот, до 2 Мбит/с все в порядке, естные 200 Кбайт/с, без искажений и пропусков. Несколько выше 2 Мбит/с начинаются странности, скорость передачи данных падает на порядки, но при этом данные все таки передаются. При этом, проблема именно на передаче. Надо смотреть внимательнее как там USART c DMA взаимодействует при таких значениях BRR... Да, и это относится в первую очередь к портам 2 и 3, дело в том, что у порта 1 поменьше размер bulk endpoints, 32 байта против 64, поэтому порт 1 после 100 Кбайт/с потихоньку начинает упираться в производительность USB.

С другой стороны, если сравнить, то получается вот какая картинка по максимальным скоростям: CP2102 - 921600 bps, CP2104 - 2 Мбит/с/s, FT232 - 3 Мбит/с, то есть я со своими "чуть больше 2 Мбит/с" вполне себе в одной лиге со всеми этими устройствами. По-моему, это довольно неплохо...

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


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

Очень даже неплохо ! Да, а про произвольную скорость в teraterm далеко не все знают (я вообще это узнал совершенно случайно), оно как-то неочевидно.

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


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

8 minutes ago, rx3apf said:

Очень даже неплохо ! Да, а про произвольную скорость в teraterm далеко не все знают (я вообще это узнал совершенно случайно), оно как-то неочевидно.

Вот да, оно действительно неочевидно. Как-то не ожидаешь от выпадающего списка возможности прямого ввода значений. Такая вот интерфейсная слепота.

В копилку тестов, проверил работу с Raspberry PI, у меня там стояла какая-то "древняя" версия Kali, но все отлично определилось как /dev/ttyACMx и заработало. Особых сомнений не было, но "не тестировал - значит не работает", все дела...

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


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

On 11/23/2020 at 8:44 PM, r2axz said:
Зачем все это, есть же куча USB-Serial преобразователей на любой вкус? Во-первых, это дешево. Плата Blue Pill стоит на али порядка 120 руб. 

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

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


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

1 hour ago, AlexandrY said:

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

Во-первых, некоторая защита от статики есть и в самом stm32f103c8t6. Это не значит, что она достаточна для всех случаев жизни, но она есть. У меня в квартире очень сухо и когда я дотрагиваюсь до металлического корпуса ноутбука, очень часто проскакивает приличная такая искра от которой выбивает второй монитор, подключённый по HDMI. Неоднократно я разряжался таким образом и в stm32, монитор выбивало, а микроконтроллер даже не зависал. Я не спорю с тем, что нормальная защита - это хорошо и правильно. Но безапелляционность вашего утверждения мне режет глаз.

Во-вторых, это все таки отладочная плата, а не законченное устройство. Желаете супрессоры - припаяйте суппресоры. Желаете развязку - припаяйте развязку. Или вообще разведите свою плату если надо. Проект не об этом. Проект в первую очередь про прошивку. А STM32 blue pill - это просто минимально необходимое и доступное железо на котором все заработает. 

Кроме этого, добрая половина (если не больше) недорогих адаптеров USB-serial (а уж с али-то и подавно) примерно так же и сделана. И ничего, живут люди. Просто надо понимать где острые углы и недостатки, что куда можно втыкать, а что нельзя.

 

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

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


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

41 минуту назад, AlexandrY сказал:

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

Что за поток сознания ? Вы хоть раз видели китайский USB/UART или USB/COM с супрессорами на шине ? Или, быть может, видели USB-хаб с супрессорами по входу (по выходам, впрочем, их тоже почти не бывает) ? И как Вы вообще представляется процесс "спаливания" "компа" подключением совершенно автономного устройства по USB ?

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

 

Кроме этого, добрая половина (если не больше) недорогих адаптеров USB-serial (а уж с али-то и подавно) примерно так же и сделана. 

 

 

Подозреваю, что процент таковых куда больше 90%. Исключения я лично вообще не помню...

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

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


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

Даже у недешёвых MOXA Uport 1110/30/50 защита отсутствует (а зря).

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


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

А смысл защищать устройство по шине ? Только разве что от шаловливых ручонок пользователей ? Было бы желание - если специально этим заниматься, можно убить и самый что ни на честь защищенный хост ("USB killer").

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


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

3 hours ago, rx3apf said:

Вы хоть раз видели китайский USB/UART или USB/COM с супрессорами на шине ?

Логику -то включите. Адаптеры идут залитые и в экране. 
А тут голая байда с пинами наружу. 
Читайте Hardware Design Guidelines от FTDI.
 
По любому три отдельный адаптера будет удобней и функциональней  чем лишняя борда на столе представляющаяя собой постоянный головняк.  

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


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

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

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

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

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

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

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

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

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

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