Зарегистрирован: Чт сен 04, 2025 11:38:13 Сообщений: 24
Рейтинг сообщения:0
Рассматривается потребность в переключателе с не менее чем шестью позициями. В текущей реализации используется плата расширения с интерфейсом ввода/вывода, где каждый вывод соответствует определенному режиму. Данное решение представляется избыточным для данной функциональности.
В качестве альтернативы рассматривается использование микроконтроллера STM32 с портом COM (USB), что представляется более оптимальным вариантом.
Существуют ли другие, более простые варианты реализации данной задачи?
мультиплексор, отлично, но как потом отправить все в ком. порт? если это дело связывать с МК то тогда и мультплексор будет лишним. ( в моем случае, если это будет отдельное устройство.
это экстремально растяжимое понятие. Для одного специалиста просто - сунуть плату расширения в ПК, для другого - применить например, контроллер, способный эмулировать HID устройство, для третьего - применить преобразователь USB-UART и соединить его с ЛЮБЫМ знакомым микроконтроллером. Точнее сказать невозможно по причине отсутствия инфы о характеристиках обрабатываемых сигналов, о вашей квалификации в харде и софте и т.д.
у меня есть 6 сигналов и мне нужно обрабатывать работу программы в зависимости от поступающего сигнала.
Вот и начните с написания технического задания (ТЗ). Опишите свои сигналы и что нужно получить в результате. Пока пишите ТЗ, сами поймёте как его реализовать.
_________________ Спасение утопающих дело рук самих утопающих.
Вот посмотрел я на картинку, и вообще ничего не понял! Зачем вообще что-то переключать, если можно взять STM32 с достаточным количеством USART'ов. Или что нужно? У STM32 8 конечных точек. Одна - нулевая - используется в служебных целях. Следовательно, на оставшихся (двунаправленных) можно реализовать 7 CDC устройств. При помощи udev-скрипта по полю iInterface они отлично различаются - по симлинкам в /dev/ На моем гитхабе можно посмотреть, как 7 CDC реализовать. В планах у меня "мультиинтерфейсную" плату сделать (232, 422 или SSI, 485, I2C, SPI и CAN), с гальваноразвязкой на все интерфейсы. Печатные платы получил достаточно давно, все некогда ею заняться.
P.S. А еще более странным является цеплять к STM32 преобразователь UART-USB, когда на борту есть готовый USB!
_________________ Windows must die! And the users of this crap should either become smarter or become janitors.
Зачем вообще что-то переключать, если можно взять STM32 с достаточным количеством USART'ов. Или что нужно?
Господа, спокойствие! не волнуемся! Скоро вернутся из отпусков прорицатели и гадалки. Они заколят жертвенного баранчика, его кровью умилостивят духов форума, достанут из него печень и по её виду предскажут: чего именно хочет ТС? и что за чудный зверь нацарапан на его наскальном рисунке?
на первой картинке я так вижу применение 4051, но мне тогда еще нужен будет порт usb. На данный момент самый логичный вариант ft245, но может есть еще актуальные варианты ?
..... Если вам так хочется именно UART, то: 4052 выборка AB подключается к контактам RTS и DTR, выходы переключателей COM на RI, DSR или DCD. Входы 4052 на ваши 8 источников сигнала. Чтобы вычитать два источника, вначале выставляется 0-1-2-3 на сигналы RTS+DTR, потом считывается регистр RI-DSR-DCD и оттуда берутся 2 бита. Естественно, из самого device UART должны выходить TTL уровни, а не RS232.
..... Если вам так хочется именно UART, то: 4052 выборка AB подключается к контактам RTS и DTR, выходы переключателей COM на RI, DSR или DCD. Входы 4052 на ваши 8 источников сигнала. Чтобы вычитать два источника, вначале выставляется 0-1-2-3 на сигналы RTS+DTR, потом считывается регистр RI-DSR-DCD и оттуда берутся 2 бита. Естественно, из самого device UART должны выходить TTL уровни, а не RS232.
мне на выходе нужен usb виртуальный компорт который будет только лишь получать информацию о состоянии.
1. Вам уже написали, сделайте нормальное ТЗ. Я тоже не с первого раза понял что вам надо. 2. Без микроконтроллера здесь не обойтись. Он позволит снимать аналоговую инфу с любого из источников. В нужном для вас порядке и передавать в нужном для вас виде. Главное чтобы хватило скорости. Должно получиться что-то типа многоканального USB осциллографа.
У 40-рублевого STM32F103C6T6 (с этим и C4 справится — "голый" CDC на семь устройств чуть больше пяти килобайт; но почему-то они дороже) достаточно аналоговых входов, чтобы не ставить внешний мультиплексор. Между прочим, мультиплексор тоже далеко не нулевой импеданс имеет… Так, для точного чтения температур с платиновых терморезисторов, мне пришлось использовать внешний АЦП с двумя прецизионными источниками тока и три компаратора; хитрый алгоритм измерений (нашел в статье одного китайца) позволил почти до нуля свести влияние мультиплексоров. Ну, а пока ТЗ не озвучено, вообще непонятно, что нужно. Может, там вообще двухбитного АЦП хватит? А протокол - какой удобно. И, опять же, если нет нужды в одном приложении иметь все источники, можно по интерфейсу USB на каждый сделать. Открыл, скажем, /dev/analog5 - и читаешь шестой вход…
_________________ Windows must die! And the users of this crap should either become smarter or become janitors.
я кажется придумал, к555ир9, осталось придумать как эту имс привязать к например ft232.
CH32V003F4P6 обойдется на порядок дешевле и уже имеет достаточно выводов для этой задачи.
linux_rulezz писал(а):
У 40-рублевого STM32F103C6T6
CH32V003F4P6 для этой задачи использовать разумней и дешевле. Ну да, несколько больше приключений с USB, но всё решаемо https://habr.com/ru/articles/852908/
Строго говоря с этой задачей справится даже PFS154-S14, но затраты на его программатор для DIY великоваты.
ПростоНуб, там RISC-V. А ее еще освоить надо. Я вот "нахрапом" не смог сишный стартап написать и забросил эти МК. Да и по производительности они как-то не очень… И да, у V003 нет USB! Оно в более старших семействах (05 и далее).
Он есть, но своеобразный, полностью программный. Я же дал ссылку. Могу повторить https://habr.com/ru/articles/852908/ Вот еще исходник https://github.com/cnlohr/rv003usb Понятно, что программно можно получить только Low Speed USB, Но для большинства задач этого вполне достаточно )
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 51
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения