Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 27

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

  1. #1

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

    Доброго времени суток,


    хотел поделиться своим проектом 3-x портового USB-Serial адаптера для STM32 Blue Pill (STM32F103C8T6).


    Зачем все это, есть же куча USB-Serial преобразователей на любой вкус? Во-первых, это дешево. Плата Blue Pill стоит на али порядка 120 руб. Во-вторых, много портов в одном USB устройстве. Не занимаются лишние USB порты, нет нужды использовать USB-хабы. В-третьих, реализованы управляющие сигналы, не каждый USB-Serial преобразователь это умеет. В-четвертых, это гибко, можно переключить тип выхода, полярность сигнала и тип подтяжки. В-пятых, это предсказуемо, повторяемо и документировано. Лично я не раз натыкался на не определяющиеся и некорректно работающие преобразователи c али.


    Что реализовано:
    - 3 независимых последовательных порта;
    - поддержка аппаратного flow control (RTS/CTS);
    - поддержка DTR/DSR/DCD;
    - 7 и 8 бит данных;
    - поддержка контроля четности (none, even, odd);
    - 1, 1.5, 2 стоповых бита;
    - поддержка всех стандартных скоростей;
    - поддержка нестандартных скоростей (тестировал до 921600);
    - DMA на передачу и прием;
    - не требует драйверов, используются CDC Class драйвера встроенные в ОС;
    - составное USB устройство, определяется как три COM (tty) порта;
    - подписанные INF файлы для Win XP, 7, 8 (не требуется для Win 10);
    - встроенный командный шелл для настройки параметров сигнальных линий;

    Тестировалось на Win XP, 7, 8, 10, Linux, Mac OS.

    Выходные уровни совместимы с TTL 3.3 и 5 вольт. Все входы кроме UART2 RX и CTS толерантны к 5 вольтам.

    В версии 2.0.0 добавлена возможность конфигурирования типов выходных сигналов (пушпул, открытый сток), типов подтяжки сигнальных линий (floating, up, down) и выбора полярности (active-high / active-low) без пересборки ПО и перепрошивки микроконтроллера. Это позволит более свободно применять устройство с различными схемами развязок, согласования уровней, управления реле, и т.п. Самый простой пример - CI/V интерфейс ICOM. Можно поставить тип выхода TX в открытый сток, соединить TX c RX и напрямую подключиться к CI/V интерфейсу. Все будет работать отлично.

    Маленькая ложка дегтя: по неизвестной причине, на некоторых экземплярах платы Blue Pill установлен некорректный подтягивающий резистор на USB D+. Это приводит к тому, что некоторые компьютеры эту плату не видят. А некоторые другие видят. Лечится заменой подтягивающего резистора на резистор номиналом 1.5 кОм. После этого все прекрасно работает на всех компьютерах.

    Проект с открытым исходным кодом, MIT лицензия. Нет зависимостей от HAL или любых других сторонних библиотек кроме CMSIS.

    Исходный код и собранная прошивка доступны тут: https://github.com/r2axz/bluepill-serial-monster



  2. #2
    Вдогону по поводу CI/V: лучше заодно отключить и подтяжку на RX. То есть целиком команда будет: "uart 1 tx output od rx pull floating". А еще лучше сделать нормальную развязку...

  3. #3
    Аватар для vadim_d
    Регистрация
    29.10.2006
    Адрес
    Санкт-Петербург
    Сообщений
    14,741
    Цитата Сообщение от r2axz Посмотреть сообщение
    это предсказуемо, повторяемо и документировано
    Спасибо, фундаментальное творение, есть чему поучиться
    Вадим

  4. #4
    Спасибо за теплые слова! Но осторожнее, ошибки там тоже скорее всего есть, даже наверняка Потихонечку выгребу, конечно.

  5. #5
    Зарелизил поддержку RS-485.
    Сигнал TXA (TX Active) служит для управления микросхемами трансиверов RS-485 (DE, /RE). TXA активен во время передачи данных и переключается в неактивное состояние не более чем за 1 мкс после завершения передачи. Это соответствует спецификациям RS-485 на скоростях до 460 кБод не менее чем с двукратным запасом по времени переключения.
    Возможно применение и на более высоких скоростях.

    Статья на Habr: https://habr.com/ru/post/530060/
    Проект на GitHub: https://github.com/r2axz/bluepill-serial-monster

  6. Спасибо от 4Y, RK9AMX

  7. #6
    Отличная работа! Огромное спасибо автору проекта.
    Недавно понадобилось логировать обмен на UART интерфейсе одного устройства, т.е. понадобилось два USB-UART адаптера одновременно.
    Прошил плату BluePill прошивкой автора, установил драйвер (Win7 x64), запустил терминал. Всё работает отлично.
    Кстати, на моей плате для энумерации USB установлен резистор 10 кОм, но несмотря на это всё работает. Позже заменю резистор на 1,5 кОм.

  8. #7
    Аватар для R0JF
    Регистрация
    03.01.2007
    Адрес
    PO30sl
    Сообщений
    1,490
    Позывной
    R0JF
    Уважаемые Коллеги, подскажите, а APM32F103CB (Black Pill) для этого проекта можно использовать? Или только Blue Pill?

    А то есть в наличии, вроде прошилась хорошо, но ни Win ни Linux совсем не видят (даже как подкюченное USB-устройство)
    73! Игорь R0JF ex.RA0JF

  9. #8
    Ничего не знаю на счет совместимости с APM32F103CB, не пробовал, у меня его нет... Но, первое что бы я сделал глядя на схему, сделал бы нормальный pull-up на D+ (PA12): соедините PA12 через резистор 1.5 кОм с линий 3.3 В, а имеющийся там резистор на 4.7 кОм который идет на 5 В уберите. Но даже если и заработает, то сколько там еще подобных сюрпризов может быть по мелочи я даже боюсь предположить. Поэтому если хотите надежно, купите лучше blue pill.

  10. #9

    Регистрация
    10.12.2008
    Адрес
    Tambov
    Сообщений
    3,309
    Позывной
    UA3RMB
    https://aliexpress.ru/item/400116384...00014963148945
    Не подходит? Настроек - море. И портов 4.


  11. #10
    Обратите внимание, что он в 10 раз дороже, у него не TTL уровни, у него меньше скорость, меньше FIFO, нет управления 485, нельзя инвертировать управляющие сигналы, нет открытого коллектора на выходах... Но если все это не надо, а надо сходу RS-232 уровни, и не жалко денег, то чего бы не взять)

  12. Спасибо от R0JF

Страница 1 из 3 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 27
    Последнее сообщение: 15.12.2022, 12:22
  2. Linux, FTDI FT232 USB-Serial (UART) и FT-897
    от vit2 в разделе Цифровые виды связи Новые технологии в электронике и связи
    Ответов: 21
    Последнее сообщение: 11.01.2015, 16:06
  3. USB to Serial
    от Gene58 в разделе Цифровые виды связи Новые технологии в электронике и связи
    Ответов: 12
    Последнее сообщение: 26.08.2014, 15:24
  4. Проблема управления портами PIC18F452
    от RA3PCS в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 4
    Последнее сообщение: 05.01.2013, 23:12
  5. USB to UART + AVR
    от Roadman в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 0
    Последнее сообщение: 13.03.2011, 02:37

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •