Cómo hacer un microcontrolador reprogramable [duplicado]

3

Estoy buscando crear una plataforma similar a Arduino para un proyecto paralelo usando Microcontrolador basado en ARM Cortex M4 . El dispositivo esencialmente se comunicará con un grupo de sensores en la placa y transmitirá esa información a través de una conexión serial USB a un host USB conectado (similar al Monitor Serial Arduino). No estoy usando un Arduino porque me gustaría aprender sobre cómo crear prototipos de un circuito como este.

Mi pregunta es, ¿qué tengo que hacer para hacer que mi microcontrolador sea reprogramable a través de una conexión USB a una computadora, como es el Arduino? Estoy buscando una explicación de hardware como la que necesito incluir en mi circuito para lograr este objetivo.

Gracias y espero que mi pregunta tenga sentido.

EDITAR: Estoy buscando posibles componentes que debo incluir en mi placa para permitir la programación USB nativa.

    
pregunta Theodore_Kim

2 respuestas

4

Me gustaría utilizar Arduino para la primera iteración, ya que los esquemas de Arduino están disponibles públicamente, por lo que puede usarlos como referencia, no necesitan muchos componentes adicionales y son un poco tolerantes si la regulación de voltaje no lo es. Perfecto. Los microcontroladores más complejos tienen PLL incorporados que requieren un voltaje de suministro muy estable, generalmente alimentado por separado, que es una complicación que probablemente no puede hacer por ahora.

En general, obtendría las hojas de datos de los componentes que desea usar, que enumeran los requisitos para que el componente funcione, y generalmente también tiene fragmentos de diseño de referencia (porque los ingenieros que diseñaron el componente ya tenían una idea general). cómo se usaría).

Típicamente, necesitas

  • el propio microcontrolador
  • condensadores para estabilizar la fuente de alimentación
  • un regulador para proporcionar el (los) voltaje (s) apropiado (s)
  • un cristal como fuente de tiempo
  • un conector para la programación
  • los periféricos que quieras

La mayoría de los microcontroladores ya tienen un gestor de arranque en la ROM para admitir la programación en el circuito, por ejemplo. a través de USB DFU o a través de una conexión en serie.

Para la regulación de voltaje, un regulador lineal es más fácil de usar, pero genera bastante calor. Los reguladores de conmutación son más complejos de construir y hacer bien, así que lo haría como un proyecto separado (hice lo hice esa vez) y optimizado desde allí). Si su microcontrolador requiere múltiples voltajes, vaya con una solución integrada que garantice un comportamiento sensible de encendido y apagado.

El cristal es un poco difícil de hacer bien, pero para mí funcionó en el primer intento, así que ciertamente es factible: mantenga las conexiones cortas y use componentes SMD.

Aparte de eso, es bastante simple, porque la mayor parte de la complejidad ya está oculta dentro de los CI.

    
respondido por el Simon Richter
12

Quieres algo llamado gestor de arranque . Este es un código que se ejecuta en el micro que puede aceptar código nuevo desde el exterior, como un puerto USB, y escribirlo en la memoria del programa del micro. Luego también debe haber un código que mire la imagen del programa actual, la nueva cargada, y decida si copiar la última en la primera.

Hay muchos más detalles sobre los cargadores de arranque en ¿Qué es un cargador de arranque y cómo lo desarrollo? .

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas