¿Cómo se programa SMD ATMega328 IC de forma económica? Sé que puede hacer que una fábrica programe los chips, pero hay una manera de programarlos con Arduino sin uno de esos sockets caros .
¿Cómo se programa SMD ATMega328 IC de forma económica? Sé que puede hacer que una fábrica programe los chips, pero hay una manera de programarlos con Arduino sin uno de esos sockets caros .
Sí, pones un encabezado ISCP de 6 pines en la PCB para admitir la programación flash, compras un programador USBASP de $ 5 de Ebay y el programa Arduino directamente a la placa, omitiendo toda la información del cargador de arranque serie / USB.
He hecho esto durante años, está bien. Una cosa importante a tener en cuenta es usar el entorno Arduino (con la tarjeta de referencia / equivalente, el procesador, la tensión y la configuración de frecuencia correctos para su tarjeta de destino) para actualizar el cargador de arranque. Esto configura todos los fusibles para garantizar que ATMEGA utilice la frecuencia de reloj correcta y otras configuraciones de fusibles que normalmente son una molestia para trabajar a través de la hoja de datos / tablas en línea.
Después de grabar el cargador de arranque, use el entorno de Arduino como lo hace normalmente, pero seleccione "Cargar con programador" en lugar de "Cargar" y esto usará USBASP (asegúrese de seleccionar el programador en las opciones de herramientas del programador) para actualice el programa directamente a ATMEGA, en lugar del método del cargador de arranque USB.
Esto es excelente si sus tarjetas no tienen USB, como para proyectos muy pequeños donde no se necesitan. La depuración aún se puede realizar mediante el uso de una interfaz serial externa como un adaptador serial USB FTDI en los pines seriales de ATMEGA (que necesita salir a un encabezado en algún lugar con RX, TX y GND)
Por supuesto, puede usar el Atmel AVRISP Mk2 oficial o la interfaz completa de estilo JTAG para actualizar el chip. De cualquier manera, su PCB en la que se va a soldar el SMD IC debe tener soporte para la programación flash. Si no, añádelo. Como usted dijo, un socket para programar fuera del sistema no es realmente una buena solución. Las corridas de producción a gran escala deberían, de hecho, estar preprogramadas en la fábrica para evitar todas estas tonterías, pero eso está muy lejos en la línea del diseño del producto. A nivel de prototipo, simplemente coloque el encabezado para la programación del ISP y la ruptura en serie.
Lea otras preguntas en las etiquetas integrated-circuit arduino atmega surface-mount