Byte definido por hardware

3

Me gustaría hacer un PCB que envíe un byte específico de información a través de una conexión USB. Necesito que la PCB sea lo más pequeña y simple posible para que quepa en una carcasa delgada y bonita. En pocas palabras, habría un botón que enviaría un byte de información que lo identificó, sin un microcontrolador. ¿Hay una manera de especificar una secuencia de encendido-apagado 1-0 dentro de los circuitos en la PCB? es decir, un byte. He buscado EN TODAS PARTES y no he encontrado nada relevante.

    
pregunta Mark Y.

5 respuestas

4

USB es una conexión de esclavo maestro; para todos los propósitos prácticos, supongamos que usted preguntó cómo hacer un dispositivo esclavo que haga esto, ya que hacer un maestro es mucho más complicado.

Aunque teóricamente sería posible implementar una interfaz esclava USB como una máquina de estado, en términos prácticos, la mayoría de las implementaciones usarán un microcontrolador o un núcleo de procesamiento de programas almacenados para manejar las operaciones de protocolo de nivel superior. Aunque posiblemente sea uno con un firmware instalado de fábrica que es simplemente configurable, y no reescribible por un diseñador de circuitos que lo utiliza.

Hay numerosos microcontroladores físicamente pequeños y / o económicos que implementan verdaderas interfaces de esclavo USB; casi todos los proveedores ofrecen uno. Para sus propósitos, los paquetes disponibles y los osciladores externos frente a los internos pueden ser una consideración. La facilidad de desarrollo también puede ser importante (por ejemplo, poder instalar un chip en bruto en una placa y programarlo por USB es bueno, pero a veces es un medio a la característica de gama alta).

Otra opción para un proyecto pequeño de este tipo es una emulación de software de la versión de menor velocidad de USB en un pequeño microcontrolador de propósito general. Hay ejemplos que flotan alrededor de la red para construir cosas utilizando un ATTINY85 y unos pocos diodos Zener o LED para aproximar los rangos de voltaje de señal requeridos, desconectados del oscilador interno, por lo que no se necesita ningún cristal o resonador. Estas no son implementaciones USB oficialmente compatibles, pero en muchos casos funcionan, y pueden ser una forma simple de tener algo que se parece a un teclado o puerto serie virtual y envía datos simples en respuesta al estado de un pin, o incluso a hace cosas más complejas.

Dado que las soluciones de microcontroladores no son más caras que las dedicadas y no son físicamente más grandes, no está claro por qué sería deseable evitar una solución de esa naturaleza.

    
respondido por el Chris Stratton
5

El USB no es un protocolo serial fácil. No puedes discutir sobre USB usando algunos transistores y resistencias. Debe tener un chip que pueda comportarse como un punto final USB y que conozca el protocolo USB. Si no desea utilizar un microcontrolador, esto podría ser difícil.

Y el problema también estará en el otro lado del cable: si planea usar MS Windows, necesitará un controlador para su dispositivo USB. Así tendrás que escribirlo. Y con Windows 7 y versiones posteriores, debe firmar el controlador para poder usarlo. (Hay una manera de evitar esto, pero creo que está fuera de alcance aquí).

Lo que sugiero es que desmonte un dispositivo HID como un mouse USB o un joypad USB y conecte su botón a la electrónica. Entonces podría usar la interfaz HID sin tener que preocuparse por los controladores.

No es una buena solución, desde el punto de vista de la ingeniería, pero si no quieres usar un microcontrolador ...

    
respondido por el Blup1980
5

Utilice el chip FTDI FT245RL para esto. Puede obtener uno en una tabla de ruptura para realizar pruebas en Sparkfun Electronics .

El chip FTDI se puede usar para enviar un byte a través de USB a una PC con un sistema operativo y usando el controlador USB premezclado apropiado del sitio web de FTDI. Puede hacer que esto funcione al cablear el valor de byte que desea a las líneas D0- > D7 del FT245RL. Luego, conecte la entrada del interruptor al pin de entrada WRITE en el chip e iniciará una transferencia del valor de byte a la PC. (El cambio tendrá que ser rebotado para que el rebote no inicie transferencias de múltiples bytes). En el lado de la PC, el valor del byte aparecerá como un byte que se recibe a través de un puerto COM, por lo que solo tiene que proporcionar un programa simple que pueda abrir el puerto COM y responder al byte cuando llegue. Existe una amplia información sobre este chip disponible tanto en Sparkfun como en FTDI.

    
respondido por el Michael Karas
2

Puede usar un ATTiny13 o ATTiny45 como una interfaz HID emulada por software. Proyectos como "El alcance dual más barato en la galaxia" hacer esto posible. Modificación de código pequeño y listo!

El código realmente puede caber en una versión DIP o SMD de 8 pines de ATTiny. Solo necesitarías unos cuantos diodos y resistencias para que esto funcione.

Incluso si usa componentes de orificio pasante, puede hacer esto muy delgado, aproximadamente del tamaño de un pendrive. Si utiliza componentes SMD, podría ser incluso más pequeño.

    
respondido por el Jonny B Good
1

Un ejemplo realmente mínimo basado en un ATtiny de 8 pines y casi ningún componente adicional es el AVR Stick . Fuera de la caja, lee dos voltajes y los informa "escribiendo" como si fuera un teclado. El firmware es de código abierto, y las herramientas para construirlo son gratuitas. El palo en sí está funcionando a menos de US $ 10 hoy.

    
respondido por el RBerteig

Lea otras preguntas en las etiquetas