Forum: Mikrocontroller und Digitale Elektronik at90usb1287 programmieren


von Hans M. (hansilein)


Lesenswert?

Hallo,
ich entwerfe gerade eine Platine, die den at90USB1287 enthalten soll.
Jetzt ist mir aufgefallen, daß der JTAG-Port auf den A/D 
Wandler-Eingängen sitzt. Ich würde JTAG aber gerne benutzen gerade um 
den Code, der den A/D-Wandler beutzt zu untersuchen.
Was kann ich tun?

Vielen Dank für Eure Hilfe,
Hansi

von Christian R. (supachris)


Lesenswert?

Beim MSP430 gibts für sowas "Release JTAG on Go", wenn man die shared 
JTAG Pins benutzt. Sicher kann man das beim JTAGICE auch irgendwo 
aktivieren....denn dedizierte JTAG Anschlüsse hat der Atmel ja 
eigentlich nie...

von Hans M. (hansilein)


Lesenswert?

Wo finde ich Informationen dazu?
Dem Datenblatt nach habe ich nur diese JTAG-Pins auf den a/d wandlern 
gefunden und keine Möglichkeit sie zu verlegen.

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


Lesenswert?

Naja, 4 ADC-Pins hast du ja auch mit JTAG.  Wenn die dir nicht reichen,
musst du dich halt entscheiden, was dir wichtiger ist.

JTAG kann man auch im Betrieb abschalten (über das Bit JTD in MCUCSR),
aber dann kannst du natürlich nicht mehr mit JTAG debuggen.  Wenn du
nur im laufenden Betrieb JTAG abschalten willst, aber trotzdem die
gleiche Firmware initial noch debuggen können willst, kannst du einen
kleinen Trick anwenden: um das JTAG abschalten zu können, muss man
JTD zweimal hintereinander innerhalb einer gewissen Zeit beschreiben.
Wenn du nun im Debugger einen Breakpoint auf das erste Schreiben des
Bits legst und danach mit single-step drüber gehst, dann ist die
timed sequence kaputt, und das JTAG-Interface bleibt aktiviert.

von Hans M. (hansilein)


Lesenswert?

Vielen Dank, jetzt bin ich schon etwas schlauer.
Dann muss ich eben mit nur 4-a/d kanälen debuggen.

Das ganze klingt so als sollte ich den ISP besser auch herausführen, 
damit ich mich nicht evtl. durch jtag-abschalten aussperre, oder?

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


Lesenswert?

Hans Mayer schrieb:

> damit ich mich nicht evtl. durch jtag-abschalten aussperre, oder?

Solange du an der JTAGEN-Fuse nicht fummelst, sperrst du dich nicht
aus.  Das JTAG ICE kann im Zweifelsfall den über JTD abgeklemmten
Zugang zum JTAG dadurch wiederherstellen, dass es den Controller im
CPU-Reset hält (dadurch kann der Code, der JTD setzt, nicht
erreicht werden) und dann die JTAG-Initialisierung vornimmt.

von Hilfesuchender (Gast)


Lesenswert?

Mal ne Frage ich habe das selbe Problem mit dem AT90CAN128.
Die JTAG ports sitzen auf den oberen 4 A/D Wandlern. Ich habe versucht 
JTAG im betrieb über setzen des JTD bits abzuschalten:

MCUCR|=(1<<JTD);
MCUCR|=(1<<JTD);

Nun habe ich aber an den A/D Wandlern auf den JTAG Ports immer nen high 
Pegel von 5V. Den kann ichmit den A/D Wandlern auch super messen, bloß 
halt nichts anders. Eigentlich sollte an den Ports aber nichts anliegen 
sprich 0V.

Ich habe gelesen das sich die Pins automatisch auf high ziehen sobald 
man JTD auf eins setzt also JTAG disabled. Kann man das irgendwie 
verhindern so das man den A/D wandler auch irgendwie benutzen kann?

Oder kann man die nur benutzen wenn man die JTGEN FUSE disabled, was 
aber reichlich schlecht wäre da ich keine ISP Schnittstelle vorgesehen 
habe.

Ps. Die anderen A/D Wandler funktionieren super. was mach ich da falsch?

Bitte um hilfe.
ich hab den entsprechenden Port auch schon nach dem Abschalten von JTAG 
über JTD als input definiert über DDRF=0x00; und dann mit PORTF=0x00 die 
Pins auf low gezogen trotzdem meß ich hier 5 Volt dran....

Hab ich da irgendwie nen denkfehler gema8 oder geht das einfach nur 
nicht wenn die JTAG FUSE enabled ist.

von Hilfesuchender (Gast)


Lesenswert?

SRY har sich erledigt beitrag bitte löschen hatte mich beim register 
verschrieben, sowas aber auch....

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.