Pregunta sobre la producción de periféricos USB de computadora [cerrado]

Tengo un controlador de juego. Este controlador tiene un cable USB y cuando está conectado, la computadora lo reconoce instantáneamente. Quería saber de qué estaba hecho, así que abrí la carcasa y encontré el chip "STM32F103C8T6". Busqué en Google y encontré: http://datasheetz.com/data/Integrated%20Circuits%20(ICs)/Microcontrollers/497-6063-datasheetz.html

  • Al principio pensé que el interior debía tener una especie de "chip de joystick" o algo así, pero en realidad es una computadora de propósito general. (¿Probablemente con un programa personalizado cargado en él?) Entonces, ¿la capacidad de interactuar con la computadora depende únicamente del programa cargado en esta MCU?

  • ¿Otros dispositivos informáticos (mouse, teclado, controlador MIDI, etc.) tienen este tipo de computadora en su interior?

  • Si también quisiera producir productos de computadora, ¿dónde debería comenzar a obtener la placa de circuito completa al final? Parece que el chip no se puede quitar de la placa y la conexión a su alrededor es muy pequeña. Supongo que solo debe ensamblarse con una máquina automática de precisión de fábrica. (No el que puedes comprar por separado y ensamblar como ATMEGA en Arduino. Ese es mucho más grande y puedes contar todos los pines con el ojo)

  • ¿Cómo puede el fabricante (¿quién? ¿la fábrica?) programarlo en primer lugar?

  • Encontré varias "placas de descubrimiento" que tienen este chip y también un puerto USB para que pueda programar en ellas. Entonces, ¿significa que también puedo volver a programar en este chip STM en mi controlador de juego? Porque después de todo, estoy usando una conexión USB para usar el controlador, y este USB se conecta a la MCU. Creo que este mismo USB debería poder hacer "usar" y "programar".

¡Hola! Es genial estar interesado en estas cosas, pero tal como está, su pregunta toca vagamente muchos temas, sin hacer una pregunta única, específica y que se pueda responder como lo exigen las reglas de este sitio. Existen muchos MCU con hardware USB incorporado, como el STM32F103, y son bastante flexibles para su uso en proyectos. Solo algunas de las placas de descubrimiento tienen un conector USB conectado a la MCU "objetivo"; la mayoría solo tiene uno conectado al programador, por lo que incluso si el chip objetivo es compatible con USB, tendrá que conectarlo a mano. En general, los paquetes TQFP y QFN pueden soldarse a mano con cuidado.
Cualquier circuito adicional requerido para un microcontrolador compatible con USB se detallará en la hoja de datos del propio microcontrolador.

Respuestas (2)

Toda tu publicación es un poco amplia. Pero tomada por separado, cada pregunta tiene respuesta en sí misma, así que...

... esta es en realidad una computadora de propósito general, con un programa personalizado cargado en ella? Entonces, ¿la capacidad de interactuar con la computadora depende únicamente del programa cargado en esta MCU?

En este caso particular, tienes toda la razón en ambos puntos.

¿Otros dispositivos informáticos (mouse, teclado, controlador MIDI, etc.) tienen este tipo de computadora en su interior?

Todos tienen un chip controlador. En algunos casos, es una MCU genérica, como en su ejemplo específico aquí. Pero en otros casos (por ejemplo, un mouse barato con un alto volumen de ventas), se trata de un chip específico como pensó al principio que era (y en este caso, el chip no suele estar documentado).

Y si algún día también quisiera producir productos de computadora, ¿dónde debería comenzar a obtener la placa de circuito completa al final? Parece que el chip no se puede quitar de la placa y la conexión a su alrededor es muy pequeña. Supongo que solo debe ensamblarse con una máquina automática de precisión de fábrica. (No el que puedes comprar por separado y ensamblar como ATMEGA en Arduino. Ese es mucho más grande y puedes contar todos los pines con el ojo)

El chip que vio (STM32F103C8T6) es un LQFP48. Esos tienen pines expuestos, por lo que todavía son relativamente fáciles de soldar a mano (en comparación con QFN), incluso si el paso es bueno. Pero sí, por supuesto, dado el volumen, se ensamblan mediante un proceso automatizado (máquina pick and place, soldadura por reflujo). Pero incluso las placas arduino que usan DIL se ensamblan mediante un proceso automatizado.

Entonces, también me pregunto cómo puede el fabricante (¿quién? ¿Fábrica?) Programarlo en primer lugar.

Hacen programación en circuito. Hacen trazos en la PCB que van desde los pines de depuración del chip hasta algún encabezado personalizado. Luego, durante la fabricación, hay un paso en el que un tipo (generalmente chino y que no paga mucho, o, nuevamente, para volúmenes muy altos, una máquina) coloca un cable en este encabezado y hay una computadora que luego inicializa el código del programa en el flash del microcontrolador. A veces, ni siquiera hay un encabezado, son solo almohadillas en la PCB y usan pines pogo.

Encontré varias "placas de descubrimiento" que tienen este chip y también un puerto USB para que pueda programar en ellas. Entonces, ¿significa que también puedo volver a programar en este chip STM en mi controlador de juego? Porque después de todo, estoy usando una conexión USB para usar el controlador, y este USB se conecta a la MCU.

Sí, las placas de descubrimiento ST (¿o son las placas nucleo? - de todos modos) tienen una parte de "programación" y una parte de "demostración". La parte de demostración contiene la MCU para demostrar y algunos periféricos de ejemplo. La parte de programación contiene otro chip que hace de puente desde USB al protocolo de depuración para que puedas programar chips ST con él. En estas placas, puede desactivar la parte de demostración y conectar otra placa a la parte de programación. Entonces podrías usar eso para reprogramar tu controlador de juego. También existen dispositivos independientes y económicos (con la marca "ST-LINK v2") que pueden hacerlo. Sin embargo, debe identificar en qué parte de su placa de demostración están disponibles los pines de depuración (el "encabezado personalizado" o las "almohadillas expuestas" de las que estaba hablando anteriormente).

Podría haber otra solución para reprogramar el controlador del juego, que es aprovechar el cargador de arranque que ya está en la ROM. En ese caso, ni siquiera necesita hardware adicional específico. Solo necesita configurar los pines BOOT de la MCU en el nivel apropiado (consulte la hoja de datos, pero también debe identificar dónde se puede acceder a este pin en la PCB) y debería poder descargar el nuevo código de firmware directamente desde el gamepad Puerto USB en sí.

Pero volver a desarrollar un firmware, incluso para un gamepad, no es una tarea sencilla. Y tendrás que hacer mucha ingeniería inversa en el hardware del gamepad. No es imposible, pero yo no empezaría con un desafío así.

Este microcontrolador es un microcontrolador de uso general con hardware USB integrado. Puede ser programa para trabajar como muchas cosas. Por lo general, estos dispositivos USB utilizan las descripciones genéricas de dispositivo de interfaz humana USB (HID) y se anuncian como joystick o gamepad. Es bastante simple. Joystick USB HID de Google para ver muchos ejemplos. Prácticamente todos los sistemas operativos tienen controladores para dispositivos USB HID genéricos.

El IC en sí es un paquete QFN o LLP, dispositivo de montaje en superficie (SMD). La lata y, a menudo, se sueldan a mano, pero cualquier dispositivo de producción masiva se realiza mediante reflujo, un proceso de soldadura SMD. Mayormente automatizado.

Para programarlos, se utiliza un programador antes de soldarlos, o implementan puntos de prueba o rompen un encabezado para el programa en serie en circuito (ICSP). Esto también se puede hacer como parte del proceso de fabricación, mediante máquinas automatizadas.