Forum: Mikrocontroller und Digitale Elektronik Atmel-Ice: Debug programmieren über Jtag bei Atmega´s sehr langsam


von Schoof (Gast)


Lesenswert?

Hallo zusammen,

leider finde im Internet nix zu dem Thema, drum schreibe ich mal hier.
Folgende Konstellation haben wir:
µC: Atmega324PA, Atmega644P und XMega32D4
Compiler: IAR 7.10 (probeweise auch mit 7.20, selbe Zeiten)
Debugger SW: IAR 7.10 oder AtmelStudio 7 (1931)

Die Atmegas sind über Jtag mit dem ICE verbunden. Wenn wir nun das 
debuggen starten, dauert das laden des Programms in den µC sehr lange.
324PA ca 32sec
644P ca 60sec

im Vergleich haben wir noch den AVRISP MK2
324PA ca 11sec
644P ca 20sec

AVR Dragon ist vom Speed wie der MK2.

Beim XMega (über PDI) geht es "normal" schnell und hier sind wir mit dem 
ICE zufrieden.
Aber bei den Atmegas nervt es schon das lange warten.
Frequenz des ICE ist 100Khz. Kann diese auf 200 erhöhen, bringt aber ca 
nur 10-20% Zeitersparnis.

Ist das eine Einstellungssache oder ist der ICE über Jtag einfach 
langsam?

Danke

von Rudolph (Gast)


Lesenswert?

Stell den mal auf 2MHz hoch.

von Schoof (Gast)


Lesenswert?

Im IAR unter Projekt Options -> Atmel-ICE -> Atmel-ICE 1 -> Frequency 
kann ich keine 2Mhz auswählen. 750Khz, nächste 3,6Mhz.

Beim 324 kann ich 750Khz einstellen und es lädt viel schneller, klaro 
hatte ja nur 100Khz, aber beim 644 ist bei 290Khz Schluss. Höhere 
Einstellungen erzeugt eine Fehlermeldung am Anfang vom programmieren.

Der MK2 läuft auch "nur" mit 100Khz.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Was man wie beim IAR einstellen kann bzw. wonach sie die Limits 
festlegen, weiß ich nicht.

Generell musst du bei JTAG zwischen reiner Programmierung (Controller 
ist im Reset) und On-chip-Debugging unterscheiden. Bei der 
Programmierung ist die JTAG-Schnittstelle (anders als ISP) 
selbsttaktend, du kannst in der Frequenz daher so hoch gehen, wie es 
deine Programmierhardware und der Aufbau (parasitäre Kapazitäten, 
Übersprechen) gestattet. Beim On-chip-Debugging dagegen gilt die gleiche 
Bedingung wie bei ISP, der (JTAG-)Takt muss dann kleiner als ¼ der 
CPU-Frequenz sein, damit die Abtastung innerhalb des Prozessors an der 
Schnittstelle keine Bits „verliert“.

von Rudolph (Gast)


Lesenswert?

Bei IAR reklamieren?
Oder einfach auf 3,6MHz hoch stellen, wenn ich AS7 aufmache und JTAG 
auswähle steht da per Default 7,5MHz.
ISP muss unter 1/4 des Taktes bleiben, bei JTAG gilt so nicht, ich habe 
nur gerade nicht im Kopf wie es da aussieht, da meine Controller sowieso 
fast immer auf 16MHz laufen.

von Rudolph (Gast)


Lesenswert?

Die 2MHz sind als Default im AS7 für SWD eingestellt, nur noch um mal 
klar zu stellen aus welchem Hut ich die Zahl gezogen habe.
Und darauf stelle ich den ISP normalerweise ein, von daher habe ich das 
mit JTAG in einen Topf geworfen.

Schoof schrieb:
> Höhere Einstellungen erzeugt eine Fehlermeldung
> am Anfang vom programmieren.

Welche?

von Schoof (Gast)


Angehängte Dateien:

Lesenswert?

diese hier (siehe Anhang)

von Jim M. (turboj)


Lesenswert?

Hast Du mal versuch den ICE über einen USB 2.0 (3.0 ginge auch) Hub an 
den PC anzuschließen?

Durch die High Speed Verbindung Hub<->PC ändert sich das Timing etwas, 
was grade JTAG Verbindungen beschleunigen kann.

von Schoof (Gast)


Lesenswert?

Jim M. schrieb:
> Hast Du mal versuch den ICE über einen USB 2.0 (3.0 ginge auch)
> Hub an
> den PC anzuschließen?
>
> Durch die High Speed Verbindung Hub<->PC ändert sich das Timing etwas,
> was grade JTAG Verbindungen beschleunigen kann.


Jup, alles schon probiert. Direkt an PC, über Hub vom Monitor, über 4x 
Hub, an 3 Verschiedenen Rechnern (2x Win10, 1x Win7).
Immer kommt fast (+/- 5sec) die selbe "lange" Zeit dabei raus.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.