Forum: Mikrocontroller und Digitale Elektronik debugWIRE mit JTAG ICE mkII


von Robert (Gast)


Lesenswert?

Hallo,

hat damit schon jemand gearbeitet? Ist mit debugWIRE auch programieren
der Chips in kleinen Serien praktikabel? Leider Schweigen die
Datenblätter zu den Details wie z.B. Können Fuses und Locks gesetzt und
gelöscht werden?

von René König (Gast)


Lesenswert?

> Ist mit debugWIRE auch programieren der Chips in kleinen Serien
> praktikabel?

Ganz und gar nicht. debugWIRE eignet sich ausschließlich zum Debuggen.
Zum Programmieren brauchst Du nach wie vor ISP. Atmels mkII beherrscht
das Programmieren über ISP übrigens nicht (nur zum Enablen/ Disablen
von debugWIRE), da braucht es zusätzlich ein zweites Gerät. Ich habe
keine Ahnung, ob sich Atmel dabei etwas gedacht hat oder nicht.

von Robert (Gast)


Lesenswert?

Schade,

aber irgendwie habe ich so was befürchtet, obwohl die Featureliste des
Mega88 klar was anderes behauptet...

Jetzt wäre nur noch interesant ob es zum fuse unbd lock Handling auch
noch den parallel Modus braucht. Laut doku löscht ein chip erase, der
auch seriell möglich ist, alle locks und fuses.

Da hilft wohl nur ausprobieren...

von René König (Gast)


Lesenswert?

> aber irgendwie habe ich so was befürchtet, obwohl die Featureliste
> des Mega88 klar was anderes behauptet...

Nicht das wir aneinander vorbeireden: Der Debugger ist schon in der
Lage, das Programm über debugWIRE in den Controller zu jagen (anders
wäre das Ganze auch reichlich sinnfrei).

Das nützt Dir aber in der Serie nichts, und so sagt es dann auch die
Hilfe zum mark2: "Note that debugWIRE is a debugging interface only
and not a programming interface."

Zum Fusen und Locken bin ich bislang seriell ganz gut klargekommen
(ATmega168). Ich habe mich aber auch noch nicht wirklich 'verfused'.

von Wolfgang (Gast)


Lesenswert?

Wie bekommt man denn wieder "Originalzustand" wenn man sich mal
"verfused" hat.... ?!

von Robert (Gast)


Lesenswert?

@René
ist schon klar. Ich begreif allerdings nicht warum man nicht ein
einheitliches Interface pflegt, statt 3e die alle teilweise
überlappende Funktionssets haben. Man könnte je wenigstens eine Tabelle
spendieren was mit welchem Interface geht bzw. nicht geht.


@Wolfgang
laut datenblatt mit einem Chip erase command. Ob er das natürlich im
LB3 Mode noch versteht? So steht es im Datenblatt, Zitat:
"Further programming and verification of the Flash and EEPROM
is disabled in Parallel and Serial Programming mode. The Boot
Lock bits and Fuse bits are locked in both Serial and Parallel
Programming mode."

Die LB1 und LB2 werden dort als "Memory Lock Bits" bezeichnet.

Jetzt darf spekuliert werden...

von Armin Kniesel (Gast)


Lesenswert?

Ich bin mir ziemlich sicher dass man mit dem debugWire auch Fuses setzen
und flashen kann, ALLERDINGS wenn man zuerst per SPI die
debugWire-Enable-Fuse gesetzt hat. Danach ist kein SPI mehr möglich,
bis man nicht wieder per debugWire diese Fuse setzt.

Alles klar?

Armin

von René König (Gast)


Lesenswert?

> Alles klar?

Ganz und gar nicht. Ich kann per debugWIRE keine Fuses setzen, selbst
für DWEN brauche ich ISP ("The debugWIRE interface itself cannot
enable this fuse."). Wie also machst Du das?

@Robert
Beim ChipErase werden EEPROM, FLASH und die LockBytes gelöscht. Das
funktioniert prima.

von René König (Gast)


Lesenswert?

BTW: Vermieden werden sollte die Kombination DWEN und LockBits gesetzt.
"Always be sure that the lockbits are cleared before programming the
DWEN fuse and never set the lockbits while the DWEN fuse is programmed.
If both the debugWIRE enable fuse (DWEN) and lockbits are set, one can
use High Voltage Programming to do a chip erase, hence clear the
lockbits."

von marcel (Gast)


Lesenswert?

der grund für das debugwire ist, ganz einfach, dass man den chip in der
fertigen schaltung lassen kann und innerhalb dieser schaltung (wo der
chip dann auch zum einsatz kommt) zu debuggen und nicht etwa den chip
beim debuggen herauszunehmen. auch werden dann keine funktionalen Pins
verschwendet (Reset resetten halt nur).

wegen den einheitlichen programmier-interface:
kann nicht jtag auch debuggen?

von René König (Gast)


Lesenswert?

Der Grund für debugWIRE ist schon klar. Nicht klar ist, warum der mkII
nur solch halbherzige ISP Fertigkeiten hat. Der JTAGICE (der Erste) ist
doch schliesslich auch in der Lage, die Controller über ISP zu
programmieren, AFAIK.

> wegen den einheitlichen programmier-interface:
> kann nicht jtag auch debuggen?

Ja, aber das kostet, wie Du selbst festgestellt hast, viele PINs.

von marcel (Gast)


Lesenswert?

wo wir gerade bei mangelhaft geplanten isp's sind:
avrisp (über spi) ist auch recht gut gelungen...
bei den AT90S hat fast jeder Typ einen neuen Befehl für die Lock Bits
bekommen. Und außerdem ist ein nachträgliches emulieren von chips, die
in der firmware nicht drin sind, (noch) nicht möglich...
was besonders schon ist, wenn man neue Chips hat...

von Armin Kniesel (Gast)


Lesenswert?

DWEN setzt man per SPI
und
DWEN löscht man per debugWire.

von René König (Gast)


Lesenswert?

Richtig, so sehe ich das auch. Man kann per debugWIRE keine Fuses
setzen. Man hat lediglich Einfluss auf DWEN, und dieses Bit lässt sich
auch nur löschen. Du schriebst aber:

> ... auch Fuses setzen ...

Ein Fuse-Bit haben wir jetzt ja geklärt. Und weiter? Ich für meinen
Teil brauche immer noch ein weiteres Gerät, um vor der Debug-Sitzung
die (anderen) Fuses wie gewünscht zu setzen/ löschen.

von Koopi (Gast)


Lesenswert?

JTAG ICE MKII kann im Prinzip alle Bereiche der Controller
programmieren. Leider ist das AVR Studio einmal mehr nicht aktuell.
Deshalb ist es, wie Rene schon sagt, nur mit einem "anderen"
Programmer möglich, die Fuses zu setzen.

MfG

Koopi

von Robert (Gast)


Lesenswert?

Danke an alle,

da steckt ja jede Menge Information drin. Nur eines ist mir nicht ganz
klar, schliessen sich SPIEN und DWEN gegenseitig aus? Im Datenblatt des
Mega88 steht davon nichts drin, die einzige Einschränkung ist, dass
SPIEN im seriellen Modus nicht erreichbar ist.

Oder anders gefragt, muss DWEN wirklich gelöscht werden bevor man LB1
und LB2 setzt (per SPI). Externer Reset ist dann natürlich im Target
nicht möglich. Aber warum ist dann in diesem Zustand kein serieller
ChipErase mehr möglich?

Robert

von Robert (Gast)


Lesenswert?

Help me please!!

So nun habe ich einen Aufbau mit STK500 und JTAG-ICE MKII und natürlich
AVR Studio. Und der Ärger fängt gleich an... dabei sollte alles so
simple sein.

Ist das normal?
1.
Der Versuch einen Mega88 zu programmieren klappt nur im SPI Mode, aber
nicht im HV-Parallel Mode!? Dieser Mode erlaubt nur Fuse settings zu
verändern oder z.B. die Signatur zu lesen. Ein Versuch zu flashen
scheitert. (Ja ich habe die Kabel alle so gesteckt wie in der htm hilfe
beschrieben)

2.
ISP über SPROG2 man kann das flash normal programmieren, aber der
Versuch die Debugwire Fuse zu setzen führt direkt in den Abgrund. (->
nächster MEGA88 bitte oder zurück zum HV Mode..)

3.
DebugWire über JTAG-ICE MKII klappt. Debuggen und reprogrammieren
klappt gut. So aber jetzt werde ich die DWEN Fuse nicht mehr los. Der
beschriebne Weg über das debug menue klappt nicht. Wenn man trotzdem
irgendwie den dialog mit dem button zum löschen der dwen fuse
hochkriegt kratzt AVR Studio einfach mit Schutzverletzung ab. Wieder
hilft nur: (-> nächster MEGA88 bitte oder zurück zum HV Mode..)


Hat da jemand gute tipps wie man mit dieser Konfiguration einigermassen
rationell arbeiten kann?

Robert

Versionen:

AVR Studio    4.11.410  Service Pack 3
GUI Version    4, 11, 0, 403
JTAGICE mkII    1, 0, 1, 119
ATmega88    156

Operating System
Major      5
Minor      0
PlatformID    2
Build      2195
Service Pack 4

Plugins:

Stk500Dll  1, 0, 0, 44

von Koopi (Gast)


Lesenswert?

@Robert,

zu1.
Parallelmode klappt mit Mega168 und Mega8 wunderbar. Habe noch keinen
Mega88 getestet.
Hast Du die Jumper für z.B. reset auf dem STK500 überprüft?

zu3.
Über Menü "Debug  JTAGICE MKII OPTIONS  Connection / Disable Debug
Wire" kann man das Bit zurücksetzen. Leider nur wenn ein Projekt
geladen ist.

Koopi

von Robert (Gast)


Lesenswert?

Hallo Koopi,

zu 1.
ja Jumper sind gesetzt. Man kann auch fuses setzen / rücksetzen, oder
die Signatur lesen. Aber eben kein flash lesen oder schreiben.

zu3.
ja mittlerweile bin ich draufgekommen, nicht nur ein Projekt laden
sondern auch eine debugsession muss laufen, dann erscheint der
Menuepunkt im AVR Studio...

Robert

von fuzzy (Gast)


Lesenswert?

Falls jemand diesen alten Thread findet: Was auch immer das Problem mit 
dem mkII und programmieren über ISP gewesen ist, mittlerweile scheint es 
zu gehen (siehe [1]). Zumindest behauptet Atmel: "In addition to using 
the JTAGICE mkII as an On-Chip Debugger, it can also be used as a 
programmer through both the JTAG and ISP interface." Allerdings hab ich 
es nicht getestet ...

[1] 
http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/JTAGICEmkII/mkII/Html/JTAGICE_mkII_Programming_with_JTAGICE_mkII.htm

von GAST (Gast)


Lesenswert?

ISP und debugWire funktionieren biede einwandfrei über JTAGICE mkII 
beides getestet!

von Hugo P. (portisch)


Lesenswert?

Hallo!

Es ist schon ein etwas älterer Beitrag aber ich versuche es hier einmal!

Ich habe so meine Erfahrungen mit dem Atmega168 (DIL).
Wenn ich über das mkII ein Programm debuge wird ja das "DWEN" Fuse 
gesetzt.
Danach ist kein Zugriff per SPI mehr möglich. Das "SPIEN" ist auch 
gesetzt.

Den DIL habe ich dann einfach in einen Galep4 Programmer gesteckt und 
das DWEN gelöscht. Danach ist der Zugriff per SPI wieder möglich.

Nun habe ich den Atmega168 aber in 32 Pin SMD:
Ich habe ohne Probleme mit dem mkII das DWEN gesetzt beim Debug.

Nun habe ich nach einem Powerreset aber das Problem, dass das debuggen 
nicht mehr geht und auch die SPI nicht geht. Am einfachsten wäre es halt 
per Programmer wieder zu löschen um die SPI wieder zu aktivieren.
Das ist mit SMD und fehlendem Programmieradapter für den Galep aber 
nicht so einfach.

In AVR Studio v5 finde ich keine Möglichkeit das DWEN temporär wieder zu 
deaktivieren um die Fuses dann per SPI wieder einstellen zu können.

Kann mir jemand eine Anleitung geben wie ich mit dem mkII und AVR Studio 
v5 das DWEN wieder weg kriege!?

von Hugo P. (portisch)


Lesenswert?

EDIT:

Ich habe mir nun die Beta 5.1 installiert. Jetzt gibt es ein Command 
Tool und ein "Disable DebugWire" option.

Das gab es bei der 5.0 noch nicht...

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.