AtmelStudio 6.2 cambia el reloj del ISP cuando intento ejecutar un programa

Tengo un problema extraño con AtmelStudio. Tomé algunas capturas de pantalla:

Aquí, Atmel Studio está abierto y verifico la configuración del proyecto. El reloj ISP está configurado en 125 kHz. Esto es bueno.

También compruebo la configuración en la programación del dispositivo (Herramientas -> Programación del dispositivo). 250kHz está bien. Leer la firma no es un problema e incluso puedo programar el dispositivo aquí en Archivo de producción.

Entonces todo se ve bien, presiono F5 para compilar y ejecutar el programa, y ​​esto sucede. Vaya, firma de dispositivo inesperada 0x00000000.

En esta etapa estoy confundido. La comunicación con el dispositivo funcionó perfectamente justo antes. Entrar en Herramientas -> Programación de dispositivos revela lo que sucedió. ¡El reloj del ISP está configurado en 1 MHz! Demasiado alto para el chip. Obviamente, la lectura de la firma aquí falla.

¿Qué está pasando exactamente? ¿Por qué AtmelStudio cambia el reloj ISP del programador? ¿O de dónde viene el 1MHz? ¿Hay alguna configuración que haya pasado por alto?

Puede usar [Alt] junto con [PrtScr] para copiar solo la ventana actual. Eso ahorraría muchos píxeles/bytes y mantendría las cosas más claras.
Tiene exactamente el mismo problema. El mismo proyecto funcionaba bien hace un par de semanas, pero ahora el reloj ISP de 1 MHz me impide actualizar el chip de reloj central MCU de 1 MHz.
¿Has informado de este error a Atmel? Recientemente me topé con este error cuando marqué el AVR a 1 MHz en lugar de 8 MHz. Esto sucede incluso con la última (6.2 sp1).
Informe de errores en Atmel: asf.atmel.com/bugzilla/show_bug.cgi?id=3504

Respuestas (1)

Creo que descubrí la solución.

En el archivo .proj, ATMEL almacena la configuración como ISPClock, pero no la vuelven a leer como IspClock. Intentan volver a leerlo como DebugWireClockDiv, pero eso nunca existe.

Así que simplemente abra el archivo .cppproj y busque lo siguiente, y agregue el elemento para que coincida con su IspClock.

<com_atmel_avrdbg_tool_atmelice>
  <ToolOptions>
    <InterfaceProperties>
      <IspClock>50000</IspClock>
      <DebugWireClockDiv>50000</DebugWireClockDiv>
    </InterfaceProperties>
    <InterfaceName>ISP</InterfaceName>
  </ToolOptions>