¿Existe algún controlador de E/S USB directo?

Necesito controlar 17 salidas digitales y 1 entrada digital desde un software que se ejecuta en una PC genérica. Las dos interfaces que espero tener siempre disponibles son USB y Ethernet. No necesariamente necesito acceso de baja latencia a los puertos IO, y solo tengo que leer las entradas una vez cada pocos segundos, pero necesito cambiar las salidas en intervalos de tiempo precisos .

Para lograr esto, pensé que el mejor enfoque sería obtener una MCU genérica de bajo costo con 18 pines IO y soporte USB, y programarla para aceptar un búfer de comandos simples con marca de tiempo a través de USB, que pondría en cola y luego ejecutar en los momentos oportunos. Las instrucciones se traducirían al inglés como: At +1.2s: output 1100101 00000100 0000o At +1.3s: read inputs.

Luego me di cuenta de que lo que estaba a punto de crear es totalmente genérico: se puede usar en cualquier aplicación, no solo en la mía. Esto me hizo pensar que es posible que ya exista algo como esto como un producto disponible comercialmente (un conector USB y MCU soldados a una placa con orificios para las E/S). Pero no puedo encontrarlo y no estoy seguro de qué palabras clave buscar. ¿Alguien sabe si puedo comprar algo así?

Editar: después de hacer esta pregunta, me encontré con esta publicación relacionada: Módulo USB a GPIO

Sí, se llama Arduino.
No lo creo, OP es muy preciso al respecto. La respuesta es: si quieres algo exactamente así, no creo que exista, puedes usar un convertidor de USB a paralelo (¿existen siquiera?) pero no hay soporte directo para programar eventos, tienes que codificarlo en tu propio.
"Para lograr esto, pensé que el mejor enfoque sería obtener una MCU genérica de bajo costo con 18 pines IO y soporte USB, y programarla para aceptar un búfer de comandos simples con marca de tiempo a través de USB", que es un Arduino .
"Es posible que ya exista algo como esto como un producto disponible comercialmente (un conector USB y un MCU soldados a una placa con orificios para las E/S)" - un Arduino.
Google "módulo usb gpio" o "módulo de relé usb" o "relé de 24 canales usb"
Arduino lo haría. Teensy parece una mejor pareja. Pero ambos son mucho más de lo que necesito.
Hay muchos tableros similares a Arduino, algunos de ellos más baratos de lo que puedes imaginar. Puede obtener una MCU semi-decente por < $ 1 en estos días.
@Passerby Gracias; Obtengo exactamente lo que busco con esas frases de búsqueda.
Si tiene USB, entonces con solo un "dongle" (se puede incluir con su sistema) también tiene serial.
@Passerby, deberías convertir eso en una respuesta.
Recientemente hice uno exponiendo pines sobre servicios relajantes. Puedes echarle un vistazo aquí tindie.com/products/gorky/restio-model-o

Respuestas (2)

Lo que está describiendo allí se conoce como una placa de desarrollo de microcontroladores. Hay muchas marcas diferentes alrededor.

El más común se llama Arduino (hecho en Italia) y consiste en una MCU Atmel (hay diferentes disponibles) en una PCB con una interfaz USB (generalmente otra MCU Atmel que actúa como una interfaz USB CDC/ACM para la MCU principal). puerto UART).

Otros fabricantes de placas similares incluyen chipKIT (que usa el microcontrolador PIC32), Maple (que usa chips ST Micro ARM), así como los propios fabricantes de chips que los fabrican (como la serie de placas Launchpad de Ti).

La mayoría de ellos están programados en C ++ utilizando una API semiestándar (la API de Arduino se considera el estándar, y la mayoría de los demás intentan emularla bastante de cerca), pero algunos de ellos también proporcionan BASIC para la programación.

También hay placas "más grandes", como Raspberry Pi y Beaglebone, que ejecutan una versión completa de Linux (también hay otros sistemas operativos disponibles) y, a menudo, proporcionan interfaces Ethernet (y/o WiFi) como así como los USB.

Las placas varían en precio, desde unos pocos dólares (como el Launchpad, la mina IIRC cuesta $ 4.50 incluida la entrega) hasta $ 50- $ 100, como el Beaglebone.

Si está buscando algo menos programable, hay módulos disponibles basados ​​en el chip FT285R. Este es un chip FIFO de USB a paralelo, al que envía bytes y el valor equivalente de 8 bits se emite en 8 pines IO. También se puede utilizar como 8 entradas si lo desea. Eso significaría que toda la programación se haría en la PC ya que el chip no es programable de ninguna forma.

Hardkernel ofrece una placa USB IO por $15. Si bien no parece admitir el tipo de almacenamiento en búfer descrito en la pregunta, admite salidas SPI, UART e I2C, así como (2) entradas ADC y PWM. Se basa en un PIC18F45K50 y parece tener 26 IO utilizables.

El firmware del chip también se puede reprogramar a través de la interfaz USB, por lo que sería posible parchear el firmware predeterminado para admitir comandos con marca de tiempo. Más información se puede encontrar aquí .