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.
avrdude -p m328p -v -c usbasp -B 100 -u [add extras here: (-P <PORT>) <fuse set command here>]
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)).