Me gustaría usar un ATMega328P para mi proyecto, espero hacerlo sin la placa Arduino.
Sé que con el IDE Arduino y una placa Arduino puedo programar el microcontrolador. Sin embargo, ¿sería posible una vez que haya programado y depurado el programa con la placa Arduino IDE + Arduino, quitar el microcontrolador de la placa Arduino y usar el ATMega328P por separado, sin la placa?
En caso afirmativo, ¿qué configuraciones adicionales debería hacer el ATMega328P para que funcione correctamente en el tablero?
arduino-ide
atmega328
Jorge
fuente
fuente
Respuestas:
Puede quitar un ATMEGA de un Arduino y usarlo en su propia placa, sin embargo, cuando se usa en una placa Arduino típica, el chip se fusionará para un cristal externo como fuente de reloj, en lugar del reloj interno (más simple pero menos preciso).
No puede cambiar la fuente del reloj a través de ISP a menos que la fuente del reloj que el chip espera actualmente esté operativa, por lo que si desea cambiar la selección del reloj, deberá hacerlo antes de quitar el chip del Arduino.
Sin embargo, también puede proporcionar un cristal de reloj y sus dos condensadores (o un resonador sustituto que a menudo tiene esto incorporado) en su placa externa.
Por lo general, los chips (incluso los que se presentaron previamente con un gestor de arranque como conveniencia) son más baratos que las placas, por lo que no está claro por qué querría mover el mismo chip del Arduino en lugar de usar otro. De todos modos, querrá un adaptador serie de nivel lógico USB, y una vez que tenga eso, puede hacer el desarrollo en el chip desnudo de su placa, incluso si realiza las pruebas iniciales en el Arduino. En caso de que no tenga el convertidor USB, puede extraer el chip de una placa Arduino y pasar los cables desde su D1 y D0, o mantener el chip incorporado en el reinicio para permitirle tomar prestadas esas líneas serie sin interferencia.
fuente
Sí, puedes usar
ATMega328P
sin placa arduino. Siempre uso el IC sin arduino. Hay dos formas de hacerlo.16MHZ Oscillator
con condensadores.USBasp
para programar suAtmega328p
. En este caso, no use el botón de carga directa, en su lugar use la carga usando las opciones del programador del menú archivo. No olvide seleccionar el tablero comoArduino Pro or Pro Mini (5v, 16mhz) With ATmega328
y el programador comoUSBasp
.NOTA : Consulte la asignación de pines Atmega328p y programe su dispositivo en consecuencia. ¡Disfrutar!
fuente
Busque "Build an Arduino" : encontrará toneladas de artículos sobre cómo hacerlo. Necesitaría poder soldar conexiones en una placa de circuito impreso (y ni siquiera eso si quisiera usar una placa de prueba sin soldadura), pero es realmente sencillo. Incluso puede construirlo primero y programar la MCU en la PCB utilizando un cable FTDI. Utilizo una placa Arduino y una placa sin soldadura para experimentar con piezas desconocidas, pero generalmente voy de inmediato a una placa construida a mano una vez que estoy familiarizado con todos los componentes que usaré.
La creación de prototipos con la placa Arduino le permite juntar un montón de partes y hacer que algo funcione rápidamente, y si el Arduino es más capaz que su objetivo final, f / ex, un Mega 2650, puede ignorar temporalmente la memoria y las restricciones de E / S del dispositivo más pequeño.
fuente
Es bastante fácil usar un chip Arduino independiente. Lo único complicado del chip utilizado para las placas oficiales es que están fusionadas para usar el oscilador externo más rápido (y más preciso) que está montado en la placa. Esto se aplica incluso cuando compra los chips sueltos, ya que la mayoría se revenden con la intención de instalarse en una placa Arduino para reemplazar una quemada, con la excepción de quizás las de Digikey.
Advertencias: El Arduino está diseñado como una placa de creación de prototipos, y pocas cosas funcionan mejor que en esta tarea. Es posible que desee dejar el chip en la placa Arduino hasta que termine de diseñar y probar su circuito. Solo entonces lo conectas directamente. Se puede usar en el lugar si tiene un circuito de reloj, o puede cambiar los fusibles (ver más adelante) y reprogramar el Arduino con un adaptador ISP y una velocidad de reloj de 8 mhz (PlatformIO le permite hacer esto ( y permite importaciones de un boceto de Arduino): consulte en su página de documentos el complemento Atmel AVR, pero también puede buscar una serie de guías sobre cómo agregar un archivo de placa a Arduino para decirle que use la opción de 8 mhz para un chip simple)
Si quita el chip para usarlo en un circuito diferente, necesita que el circuito del reloj se agregue nuevamente o que se cambien sus fusibles (lo abordaré en un minuto). También será difícil de programar, por varias razones, por lo que querrá comprar un poco de hardware bastante barato:
Programación de un chip independiente: la CPU del Arduino no está diseñada de forma nativa para hablar con una computadora. Necesitas un intermediario. En el Uno, esto se hace a través de un segundo chip Atmel que tiene capacidad USB y un gestor de arranque en el chip principal. Lo que hace es usar el UART para cargar el programa mientras el chip USB convierte los mensajes de la PC en señales UART. Dado que el gestor de arranque es algo problemático cuando el chip está solo (dado que UART es exigente e instalarlo configura el chip para usar un reloj externo como resultado), querrá comprar un programador ISP para el Arduino (o siga el boceto de Arduino como ISP y las instrucciones para hacer el suyo, que requiere un Arduino con chip presente, por lo que necesitará un segundo para programarlo).
Estos pueden programar el ATMega 328 directamente a través de SPI, sin un gestor de arranque (hay muchas instrucciones en Internet; busque "programar ATMega 328P con USBAsp", por ejemplo). Esto hace que sea mucho más fácil cambiar y depurar su programa fuera de sacar el chip y volver a colocarlo en la placa Arduino original. También necesita uno para cambiar la configuración del reloj si no desea utilizar un cristal externo.
Si desea depurar el chip, también es útil comprar un adaptador FTDI u otro convertidor de USB a UART. Tenga en cuenta que sin la parte del circuito de reinicio de la placa (o de nuevo, agregando la suya propia), esto todavía no le permitirá programar el ATMega incluso con el gestor de arranque. Para eso, conecte los pines de tierra, RX y TX al adaptador. Es posible que desee o no conectar la línea VCC, pero se recomienda no hacerlo si hay muchas cosas conectadas al chip y / o tiene su propia fuente de alimentación. Tenga en cuenta que RX y TX deben intercambiarse cuando los conecta; es decir, RX a TX y TX a RX: desea que el chip RX (reciba) lo que el adaptador es TX (transmisión) y viceversa.
El circuito del reloj no es difícil de construir, pero requiere algunos componentes que quizás no tenga. Entonces, para cambiar la fuente del reloj , vaya a http://www.engbedded.com/fusecalc/ y seleccione ATMega 328P. Los valores predeterminados son buenos, pero es posible que desee habilitar EEPROM para mantener borrado y deshabilitar el reloj dividir por 8 o ajustar la configuración de caída de voltaje. No toque nada más (deshabilitar reset o SPI o habilitar DebugWire resulta en "diversión" que requiere la reparación de un programador de HV). Cuando termine, pegue el comando que proporciona al comando AVRDude. Tendrá que cambiar las opciones -c (-p ya está configurado en el ATMega 328P, pero fallará para los que no sean P 328, no los compre) y quizás agregue la opción -P (para Puerto). No omita la opción -u en minúsculas, o se negará a actualizar los fusibles.
Tenga en cuenta que si compra un USBASP (¡asegúrese de que tenga tres juegos de puentes!), A pesar de que son mi programador favorito, es posible que no tengan el firmware actualizado que admita la opción -B (que probablemente necesitará). Eso significa que debe conectarlo a un Arduino a través del puerto de programación de seis pines, exactamente de la misma manera que lo usaría para programar el cargador de arranque del Arduino, pero luego usar el boceto Arduino como ISP para programar el nuevo firmware al programador (busque "actualizar el firmware usbasp a través de arduino-as-isp")! Como referencia, eso generalmente significa que el cable está alejado del cuerpo de la placa, y probablemente tendrá que programar el boceto antesconectando el cable. También habilite el puente de alimentación desde el programador en el USBASP (5V) y el "autoprograma". (consulte https://forum.arduino.cc/index.php?topic=560719.0 para conocer la ubicación de los puentes de alimentación y programa (JP2)).
fuente