1: todo lo relacionado con la programación está funcionando, incluida la lectura de voltaje, lo que significa que eres bueno con los controladores y la conexión USB y todas esas otras cosas. También significa que lo más probable es que coloque el conector para el ISP (bus SPI para "Programación en el sistema") de la manera correcta. Porque si no lo hubieras hecho, no leería el voltaje, ya que eso requiere que todas esas cosas funcionen. Es decir, leer el voltaje objetivo correctamente requiere:
- El pin GND se conectará correctamente
- El pin VCC (ISP) o VTG (JTAG) se conectará correctamente
- La comunicación USB para funcionar
- Todos los controladores de programadores deben estar presentes
Ser capaz de compilar su programa indicaría que también tiene todas las definiciones requeridas, aunque si puede seleccionar el procesador del menú desplegable en el menú de programación, eso también significa que el sistema central al menos ha encontrado las definiciones de sus dispositivos. . Y también, incluso si elige un procesador completamente diferente, eso ni siquiera le impediría leer la suma de comprobación de ID desde un cajero automático utilizando Atmel Studio 5 o posterior.
2: Las causas más comunes para no poder programar un dispositivo (algunas pueden aplicarse a su dispositivo, otras pueden no, pero esta lista debería ayudarlo a verificar varios diseños):
- El programador no puede alternar el pin de reinicio: el pin de reinicio no está conectado al ISP o al conector JTAG, o puede estar conectado a algo que drene o genere demasiada corriente.
- Una de las líneas de datos o de reloj no se puede usar para comunicarse: están rotas (en el cable, en la placa o una conexión incorrecta en un conector), o también pueden conectarse a otra cosa que sea demasiado fuerte para El chip o el programador.
- Voltaje de suministro del dispositivo incorrecto para la programación: 99 de cada 100 casos; si esto es un problema, aún le indicará la firma, pero algunos Atmels más pequeños requieren su mayor voltaje de suministro para poder programar a través de uno o más buses específicos. Probablemente este no sea el problema en este momento, pero es bueno tenerlo en cuenta cuando se puede leer una firma, pero parece que no se puede programar. En esos casos, busque "Voltaje de programación mínimo" o similar en las especificaciones eléctricas de CC.
- La velocidad de reloj ISP / JTAG de su programador es demasiado alta para el dispositivo: nunca debe ser más de 1/4 de la velocidad de la uC, pero puede ser tan baja como su programador admita para el dispositivo seleccionado. Una cosa a probar con la lectura de la firma es si funciona a la velocidad más baja posible (100 Hz), si lo hace de repente, la velocidad del programador puede ser el problema. Todos los procesadores salen de la caja configurados con un esquema de reloj por defecto y la hoja de datos le informará al respecto. Para Tiny / Mega / XMega, generalmente se trata de un conjunto de osciladores y divisores internos que funciona a 1 MHz (significa ISP de 250 kHz o menos), pero eso no es cierto para todos ellos.
- Su unidad de control de destino puede haber sido configurada para ejecutarse en una fuente de reloj externa o en un cristal que falta o está roto, lo que significa que su núcleo ya no se está ejecutando. En ese caso, el ISP no se podrá utilizar para recuperarlo en la mayoría de los procesadores "más pequeños" / "más baratos" sin aplicar esa fuente de reloj externa / cristal. Algunos controladores pueden tener opciones para programar de otra manera que no depende del reloj central interno (como algunos de los paralelos programables, pero tampoco todos)
Así que ya ves, no es una respuesta muy fácil o clara para dar con tan poca información.