AtmelStudio 6.2 ändert die ISP-Uhr, wenn ich versuche, ein Programm auszuführen

Ich habe ein seltsames Problem mit AtmelStudio. Ich habe ein paar Screenshots gemacht:

Hier ist atmel studio geöffnet und ich überprüfe die Projekteinstellungen. Die ISP-Uhr ist auf 125 kHz eingestellt. Das ist gut.

Ich überprüfe auch die Einstellung in der Geräteprogrammierung (Extras -> Geräteprogrammierung). 250 kHz ist in Ordnung. Das Auslesen der Signatur ist kein Problem und ich kann das Gerät sogar hier unter Production File programmieren.

Also sieht alles gut aus, ich drücke F5, um das Programm zu kompilieren und auszuführen, und das passiert. Autsch, unerwartete Gerätesignatur 0x00000000.

In diesem Stadium bin ich verwirrt. Die Kommunikation mit dem Gerät hat kurz zuvor einwandfrei funktioniert. Wenn Sie zu Tools -> Device Programming gehen, erfahren Sie, was passiert ist. Der ISP-Takt ist auf 1MHz eingestellt! Zu hoch für den Chip. Offensichtlich schlägt das Lesen der Signatur hier fehl.

Was genau passiert? Warum ändert AtmelStudio die ISP-Uhr des Programmierers? Oder woher kommen die 1MHz, gibt es eine Konfiguration, die ich übersehen habe?

Sie können [Alt] in Verbindung mit [PrtScr] verwenden, um nur das aktuelle Fenster zu kopieren. Das würde viele Pixel/Bytes sparen und die Dinge übersichtlicher halten.
Habe genau das gleiche Problem. Das gleiche Projekt hat vor ein paar Wochen gut funktioniert, aber jetzt hindert mich der 1-MHz-ISP-Takt daran, den 1-MHz-MCU-Kerntaktchip zu flashen.
Hast du diesen Fehler Atmel gemeldet? Ich bin kürzlich selbst über diesen Fehler gestolpert, als ich den AVR mit 1 MHz statt 8 MHz getaktet habe. Das passiert sogar mit dem neusten (6.2 sp1).

Antworten (1)

Ich glaube, ich habe die Lösung herausgefunden.

In der .proj-Datei speichert ATMEL die Einstellung als ISPClock, liest sie aber nicht als IspClock zurück. Sie versuchen, es als DebugWireClockDiv zurückzulesen, aber das existiert nie.

Öffnen Sie also einfach die .cppproj-Datei und suchen Sie nach Folgendem und fügen Sie das Element hinzu, das Ihrer IspClock entspricht.

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