at90usb1287 programmieren

OP #1380546
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
Moderator Persönliche Seite #1381655
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.
Moderator Persönliche Seite #1381757
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.
Gast #1894863
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren