Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Esta es una pequeña guía para actualizar el nuevo firmware en un clon USBasp como el mío. Esta guía está escrita específicamente para el clon USBasp que se ve en las imágenes, sin embargo, aún debería funcionar con otros. El cableado se muestra en el paso 5, hay un TL; DR en el paso 9.
¡Disfrutar!
Paso 1: el problema
Avrdude me dice que el programador que estoy usando tiene un firmware desactualizado. El puente normal para autoprogramación no existe en mi placa. He aquí cómo solucionarlo. Los esquemas para USBasp se pueden encontrar en fischl.de.
Paso 2: Materiales necesarios
Necesitará…
- Un soldador
- Un Arduino (preferiblemente Nano)
- Algunos cables de puente
- Una PC con Arduino IDE y avrdude instalados
Paso 3: la solución
Para que podamos actualizar el nuevo firmware en el ATmega8, necesitamos obtener el control de su pin RESET. Normalmente, un puente en el USBasp se puede cerrar para permitir la autoprogramación, sin embargo, el fabricante de mi placa no incluyó uno.
En el ATmega8, el pin RESET es el pin 29, el cuarto pin en la parte superior desde la izquierda. Está conectado a una resistencia pull-up de 10k a 5V. Tenemos que conectarlo al pin 5 del encabezado ICSP.
Podríamos intentar soldar un cable directamente a la resistencia o al pin en sí, sin embargo, es tedioso y puede dañar su placa. (Lo probé y arranqué la resistencia pull-up, no lo recomiendo) ¡Además, hay una manera mucho más fácil!
Aunque el fabricante no incluyó un puente real para permitir la autoprogramación, sí colocó un encabezado debajo del microcontrolador. Simplemente podemos soldar un cable y …
Paso 4: ¡Voilà
¡Hemos conectado los dos pines de reinicio! Los dos orificios de la parte inferior conectan el pin 29 y el pin 14 del microcontrolador.
Paso 5: Configuración del Arduino
Para actualizar el nuevo firmware en el programador, necesitamos otro programador, en este caso un Arduino con el boceto de ArduinoISP. Solo para asegurarse de que su configuración sea la misma, descomente la línea 81
// #define USE_OLD_STYLE_WIRING
Ahora conecte el Arduino con el encabezado ICSP en su programador.
Arduino USBasp
5V Pin 2 (VCC) GND Pin 4/6/8/10 (GND) Pin 10 Pin 5 (Reset) Pin 11 Pin 9 (MISO) Pin 12 Pin 1 (MOSI) Pin 13 Pin 7 (SCK)
El USBasp permanece desconectado de la PC.
Abra una terminal y escriba
avrdude -cavrisp -pm8 -b19200 -P [Su número de puerto va aquí, debería ser el mismo que en el IDE de Arduino]
Si todo va bien, avrdude debería imprimir alguna información sobre el ATmega8 (fusibles, firma, etc.)
Paso 6: flasheo del ATmega8
Para actualizar el chip, todavía necesitamos el firmware. Visite fisch.de y descargue la versión más reciente. Extraiga el archivo y navegue hasta él usando el shell.
Compilar el código no me funcionó, pero afortunadamente el archivo contiene todos los programas compilados en
bin / firmware
Aquí debería ver tres archivos.hex. Elija el que tenga el mismo nombre que su chip. Mi programador usa un ATmega8, así que elegí
usbasp.atmega8.yyyy-mm-dd.hex
Con una conexión que funcione al ATmega8, flashearlo debería requerir solo escribir
avrdude -cavrisp -pm8 -b19200 -P [PUERTO] -U flash: w: [archivo hexadecimal]
Si todo se hizo correctamente, avrdude debería escribir y verificar el firmware seleccionado.
Paso 7: Asegurarse de que el programador funcione
Para volver a usar el USBasp como programador, tenemos que quitar la conexión entre el pin 29 y el pin 14. Cortar el jumper por la parte inferior debería ser suficiente, pero quitarlo tampoco hace daño.
Puede probarlo conectándolo de nuevo a la PC y escribiendo
avrdude -cusbasp -pm8
Incluso si avrdude no puede alcanzar el objetivo, al menos debería reconocer el nuevo firmware de nuestro programador.
Paso 8: solución de problemas
Si avrdude muestra un error como este, probablemente tenga algo que ver con la función de reinicio automático de Arduino. Para evitar esto, agregue un condensador entre RESET y GND del Arduino. Generalmente se recomienda usar un capacitor de 10 µF, sin embargo, en mi caso, un capacitor de 100 µF funcionó bien.
Si recibe un error como
avrdude: error: habilitación del programa: el objetivo no responde. 1
o se devuelve una firma no válida, verifique su cableado. Tuve un problema con mis cables de alimentación oxidados y que ya no conducían electricidad. Recomiendo comprobar todos los cables de puente de antemano.
También asegúrese de cambiar el pin 11 y el pin 12 en el Arduino, si el problema persiste.
Asegúrese también de configurar la velocidad de transmisión correcta para Arduino como ISP, 19200. Se puede configurar con la opción
-b19200
Si tiene alguna pregunta o ha detectado un error, hágamelo saber:)
Paso 9: TL; DR
- Suelde un cable a través de los dos pines en la parte inferior de la placa.
- Configure un Arduino como ISP, asegurándose de habilitar el esquema de cableado anterior
- Conecte el Arduino al programador a través del encabezado ICSP
- Actualice el nuevo firmware en el programador
- Retire la conexión en la parte inferior
- No robes ninguna resistencia SMD