Programación Atmega128 ISP, no se puede leer la identificación del dispositivo

Estoy tratando de programar un Atmega128. Programación ISP Primero usé AVR dragon, puedo leer el voltaje objetivo, pero cuando voy a leer la firma del dispositivo, aparece una advertencia

No se puede entrar en el modo de programación.


Verifique la selección del dispositivo, la configuración de la interfaz, la potencia de destino y las conexiones al dispositivo de destino.

Estoy usando AVR Studio 6. He programado otro Atmega128 con el mismo dragón AVR, pero aún así intenté programar usando STK500. No sirve de nada ya que recibí la misma advertencia.

He buscado en google, pero no he encontrado ninguna solución. sCK, RESET, MOSI, MISO, VCC, Ground todas las conexiones son perfectas y he puesto condensadores de derivación entre Vcc y tierra de Atmega128.

Incluso reemplacé el IC con el nuevo Atmega128, pero el resultado es el mismo.

Verifique que la velocidad de la interfaz sea menor o igual a 250kHz en caso de que MEGA esté funcionando en el RC interno de 1MHz. Si los fusibles ya estaban configurados para usar un oscilador de cristal externo, ¿tal vez ese sea el problema y falte el oscilador?

Respuestas (2)

Mis pasos habituales para recuperarme de problemas con el ISP:

  1. Compruebe el poder. El Dragón no suministrará energía a través de la línea Vcc. El objetivo debe ser alimentado por su propio suministro. La línea Vcc es solo para medir el voltaje objetivo. También asegúrese de estar en la parte correcta del gráfico de voltaje de alimentación frente a la frecuencia operativa prevista (o descubrirá que no puede hacer 16 MHz a 3.3V).

  2. Asegúrese de tener los pines SPI correctos conectados. En algunos chips AVR, tienen un puerto SPI alternativo. ISP siempre usará la alternativa, si existe, pero no es común (pero esto me molestó recientemente en el ATmega32M1).

  3. Asegúrese de que Studio hable con Dragon (tenga en cuenta que ahora están en la versión 7). Si puede obtener el voltaje objetivo, entonces probablemente esté bien.

  4. Baje la velocidad del reloj (según @Rev1.0). Si eso funciona, puede intentar recuperarlo y ver qué puede obtener de él.

  5. Intenta acceder a los fusibles. Si puede llegar tan lejos, haga sus ajustes en los fusibles y probablemente esté listo para comenzar.

  6. Verifique el SPI y vea si algo en el tablero podría estar chocando en el autobús. ¿Tienes otro chip en el autobús al que le gusta hablar cuando no debería?

  7. Si eso falla, saque el o-scope y verifique las señales presentes en Reset, MOSI, MISO y SCK, y depure desde allí.

Tuve que hacer que esto funcionara varias veces antes, pero nunca fue por un mal AVR o un mal Dragon (aunque tal vez tengo suerte). Por lo general, algo los hará hablar, eventualmente.

"ISP siempre usará el alternativo". No es verdad. El ATTiny841 tiene una ubicación SPI alternativa, pero el ISP usa la ubicación predeterminada. Una mejor cosa que decir es que los pines siempre se enumerarán explícitamente en la hoja de datos en la sección de programación en serie externa.
También para agregar a la lista, alimente un reloj externo de, digamos, 1 MHz en el pin CLKI en caso de que los fusibles estén configurados para desactivar el oscilador interno.
@Tom Carpenter Cierto sobre Tiny pero no he tocado un Tiny en más de 10 años. Ni siquiera sabía sobre el puerto alternativo para ISP en AVR hasta hace dos meses cuando encendimos nuestro primer ATmega32M1 y el ISP no funcionó. Tuve que usar flywire para cambiar el ISP al puerto alternativo, pero una vez que lo tuvimos en debugWire, sacamos los flywires.

Gracias por los puntos, información. Revisé las conexiones y la alimentación. Todo estuvo bien. La identificación del dispositivo solo no puedo leer, por lo que no puedo cambiar/modificar la configuración del fusible, también el IC atmega128 es un IC nuevo. He usado cristal de 11.0592MHz. Como era la última opción, traté de verificar la señal del cristal, usando un osciloscopio cuando verifiqué la señal/frecuencia en XTAL1, XTAL2 y descubrí que es cero/tierra, sin pulso/señal/frecuencia. Cambié mi cristal, incluso los condensadores de derivación utilizados. Pero no sirve de nada. Finalmente reemplacé este atmega128 con un Atmega128 ya usado/programado/en funcionamiento. Ahora puedo programarlo en mi misma placa PCB, con el mismo cristal y el mismo avr dragon.