Estaba quitándome el pelo, ya que había recibido 20 Atmega328P y el primero pude programarlo con mi programador USBasp, pero cambiando los procesadores no pude programarlo en el tablero o en una UNO.
Gracias a algunas publicaciones, me sentí seguro de que era una configuración de fusible donde hablaba demasiado rápido. Tengo un cristal externo de 16MHz en mi configuración, así que utilicé:
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -P usb -v -C /Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -B 10 -c usbasp -p m328p -U lfuse:w:0xFF:m -U hfuse:w:0xDE:m -U efuse:w:0x05:m
Encontré la mayor parte de este comando en otros foros, pero la magia que necesitaba era el " -B 10
" para que solo hablara a una velocidad de 10us. Una vez que ejecuté este comando de línea de comandos en mi Mac, pude usar la interfaz gráfica de usuario de Arduino para hacer un cargador de arranque de Burn o cargarlo utilizando Programmer sin ningún problema.
El problema parece ser que USBasp board / sw no se detuvo automáticamente para encontrar una configuración feliz. Estoy usando el Amazon HiLetgo que dice "USBASP V2.0" pero también tiene un firmware de segundo nivel, así que tuve que actualizarlo con la última (2011) usbasp de Thomas Fischl llamada: usbasp.2011-05-28. También fue un dolor, pero es un acuerdo de una sola vez, aunque estoy esperando a que llegue un segundo programador y también tendré que volverlo a flashear.