Используйте USB для активации MOSFET / Relay - PullRequest
3 голосов
/ 03 октября 2010

Я работаю над личным проектом, включающим отправку простых сигналов с моего компьютера на схему через USB. В основном я использую сигнал USB в качестве сигнала затвора для MOSFET, который, в свою очередь, активирует реле для включения / выключения различных периферийных устройств переменного тока. Например, если я хочу включить лампочку на 5 секунд каждую минуту, я бы посылал 1 по первому проводу в течение первых 5 секунд каждой минуты.

Это моя проблема: я понятия не имею, как вручную отправить 0/1 по определенному проводу на USB-кабель или вообще взаимодействовать с USB-портом: (

Итак, я думаю, что этот вопрос состоит из нескольких частей. Можно ли напрямую взаимодействовать с битами, отправляемыми через порт USB? Если так, как бы я это сделал? Я знаком с C ++ и C #, поэтому я очень надеюсь, что вы можете сделать это в одном из этих ...

Спасибо!

edit Хм, похоже, порт USB на самом деле имеет только один контакт 5 В, поэтому прямое взаимодействие с USB не будет работать. Посмотрим на параллельный адаптер и вернемся к нему.

Ответы [ 6 ]

3 голосов
/ 04 октября 2010

Как и предполагал Крис, вы можете получить ведомое USB-устройство от FTDI. 27 долларов на digikey принесет вам небольшую плату со всей тонкой проводкой.

Тем не менее, для ваших целей режим стрельбы по битам, описанный на стр. 39 таблицы , будет намного лучше, чем режим UART (UART генерирует импульсы с частотой несколько килогерц, вы хотите, чтобы напряжение оставалось уровень, на который вы его установили).

Надеюсь, ваш полевой МОП-транзистор включится с сигналом 3 В, так как FTDI выдаст приблизительно 3,1-3,2 В для высокого выхода.

Также убедитесь, что вы используете последние драйверы от FTDI ... пару лет назад у них были драйверы (даже WHQL-сертифицированные), которые вызывали частые BSOD, и я часто обнаруживал, что компакт-диски с драйверами которые поставляются с оборудованием, устарели на несколько лет.

3 голосов
/ 03 октября 2010

Для этого приложения проще всего использовать эмуляцию последовательного порта, либо с помощью USB-последовательного кабеля, либо с помощью чипа USB-последовательного преобразователя (например, FTDI FT232) в вашем аппаратном устройстве.

В любом случае, это позволяет вам взаимодействовать с вашим USB-устройством так же, как с последовательным портом (см., Например, здесь , как это сделать в C ++ в Windows)

3 голосов
/ 03 октября 2010

USB плохо подходит для всего, у кого нет интерфейса USB на другом конце провода. Если вы не хотите создавать собственное USB-устройство, я бы предложил приобрести адаптер USB-последовательный порт, который дает вам две напрямую управляемые выходные линии (линии управления потоком), или адаптер USB-параллельный, который дает вам более 8 строк.

Ответ Криса Джонсона содержит ссылку на инструкции по программированию последовательного порта Windows. Вы захотите взглянуть на раздел 7 - SETDTR, CLRDTR, SETRTS и CLRRTS - это переключатели линии управления потоком (для линий DTR и RTS соответственно).

Что касается аппаратного обеспечения, значение «1» (SET) на линии управления потоком составляет от +3 до +15 Вольт на линии, а «0» - от -3 до -15. Фактические напряжения могут варьироваться между устройствами; измерить это, чтобы быть уверенным. (ИЗМЕНЕНО; я перепутал 1 и 0. Строки управления используют противоположное соглашение от линий данных.)

Вот страницы Википедии для характеристик напряжения и распиновки .

РЕДАКТИРОВАТЬ: Проведя дополнительные исследования адаптеров USB-параллельный, я не думаю, что они дадут необходимый уровень контроля. Для достижения наилучших результатов вам потребуется параллельная карта PCI или PCMCIA или параллельный порт, встроенный в материнскую плату.

Я не программист Windows, но эта библиотека может быть полезна для управления линиями параллельного порта из Windows.

1 голос
/ 04 октября 2010

Я построил что-то очень похожее на то, что вы делаете (я управлял мотором стеклоподъемника от USB-устройства, использовал H-мост mossfet (HDR1X8 на схеме) для привода мотора.).Вам нужно устройство ввода-вывода USB , это то, что я использовал (у меня есть U421, они идеально подходят по центральной линии макета, 401 также хорошо работает с макетами, если у вас нетразделенный.

http://img201.imageshack.us/img201/9316/u421.png

Они дают вам dll, и вы просто ссылаетесь на нее с помощью своего кода. Это так же просто, как сделать вызов WriteA и WriteB для записина ваше устройство mosfet. Имейте в виду, что линии логического уровня не предназначены для возбуждения тока, поэтому вам необходимо подключить его к транзистору, если вы ожидаете какой-либо ток среднего или большого тока. См. Приложение 1 в примечаниях по применению меню наСайт usbmicro, чтобы увидеть, как правильно его подключить.

0 голосов
/ 07 сентября 2013

Проверьте эти ссылки на моем веб-сайте: 1.Вы можете использовать конвертер USB в последовательный порт.Все, что вам нужно знать, это здесь 2.Вы можете использовать программирование для прямого доступа к USB, но для этого у вас должен быть уже установлен драйвер для вашего устройства.Подробности здесь

0 голосов
/ 03 октября 2010

Используйте плату прототипа USB.Обычно поставляется с программным обеспечением SDK.

...