Forum: Mikrocontroller und Digitale Elektronik ISP steigt aus (ATmega325A + AVRISP MKII)


von Simon H. (simon9)


Lesenswert?

Hallo,

ich habe seit gestern ein nicht nachvollziehbares Problem mit dem ISP 
bei einem ATmega325A zusammen mit dem AVRISP MKII.

Der Controller lässt sich aus dem Auslieferungszustand wunderbar 
ansprechen. Ich setzte dann die Fuse-Bits für meinen externen Oszillator 
mit Start-Zeit, die brown-out detection, EE-Save. Im zweiten Schritt 
deaktiviere ich JTAG. So weit, so gut.

Nach der erfolgreichen Programmierung von EEPROM und FLASH mit 1 MHz 
funktioniert der Controller auch wie gewünscht, auch der externe 
Oszillator wird erfolgreich verwendet.
Bei einigen der Boards habe ich das Problem dass ISP nun nicht mehr 
funktioniert. Als Fehlermeldung erhalte ich die Meldung dass die ID 
0x00FFFFFF gelesen wurde und habe somit keinen Zugriff mehr auf den 
Controller.

Reset des AVRISP MKII, bzw. des PCs habe ich bereits probiert, da ich in 
der Vergangenheit schonmal probleme mit diversen Treibern hatte.

Ein paar Randinfos zum Projekt:

- Ich verwende AVR Studio 5.1
- Die benötigten Pins für ISP werden in der Schaltung exklusiv dafür 
verwendet.
- SPIEN wurde bei keinem der Boards versehentlich deaktiviert (Laut 
Datenblatt sollte es bei serieller Programmierung auch kein Zugriff auf 
dieses Fuse-bit geben).
- Auf dem Oszilloskop sehe ich, dass nach meinem Adress-Kommando vom 
Programmer (MOSI) eine Antwort (MISO) erfolgt, welche auf den ersten 
Blick, zumindest von den Pegeln her vernünftig aussieht.
- Das Problem taucht bisher nur bei einigen Boards auf und ist daher 
nicht wirklich reproduzierbar.
- Externe Frequenz 8Mhz, 16t Startzyklen + 4,1ms.

Ich würde mich freuen wenn jemand einen Tipp hat.

Grüße, Simon

von Simon H. (simon9)


Lesenswert?

Hallo,

hat wirklich niemand eine Idee?

Grüße, Simon

von Berd Seifert (Gast)


Lesenswert?

Simon H. schrieb:
> Bei einigen der Boards habe ich das Problem dass ISP nun nicht mehr
> funktioniert.

Schaltplan und Layout mit Bild(ern) vorhanden?

von Simon H. (simon9)


Angehängte Dateien:

Lesenswert?

Hier der reduzierte Schaltplan

von Brammer (Gast)


Lesenswert?

Wie ist denn der Reset beschaltet? Evtl ein Problem mit dem Reset 
Timing?

von Berd Seifert (Gast)


Lesenswert?

RST Label am Vcc Pin?
PG3, PG4, RST, XTAL1 und XTAL2 Label um einen Pin nach rechts 
verrutscht?

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


Lesenswert?

Simon H. schrieb:
> Auf dem Oszilloskop sehe ich, dass nach meinem Adress-Kommando vom
> Programmer (MOSI) eine Antwort (MISO) erfolgt, welche auf den ersten
> Blick, zumindest von den Pegeln her vernünftig aussieht.

Hast du mal probiert, den ISP-Takt runterzusetzen?

Nach Möglichkeit würde ich persönlich JTAGEN nicht als Fuse abwählen,
sondern stattdessen zur Laufzeit das JTD-Bit setzen. Damit lässt man
sich die Möglichkeit offen, bei Bedarf noch über JTAG ranzukommen.
Wenn man an den entsprechenden Pins nur belangloses Zeug dran hat
(LEDs bspw.), dann kann man sogar in der Schaltung noch ohne Änderung
der Hardware debuggen.

Ansonsten musst du wohl mal das komplette ISP tracen.

von Simon H. (simon9)


Lesenswert?

Der RST ist wie folgt beschaltet: 4,7k pull-up auf +5V und ein 
Kondensator von 470nF gegen GND. RST hatte ich auch schon am Oszilloskop 
um die funktionierenden Baugruppen mit den ISP-erkrankten zu 
vergleichen. Vom Timing her lässt sich kein Unterschied feststellen; 
auch Variationen mit dem Kondensator entsprechend der ATMEL-Vorgabe 
(4,7k, 10nF) brachten keinerlei Veränderungen.


Die Zuweisungen stimmen, der Controller funktioniert ja auch soweit 
innerhalb der gewünschten Parameter. Nur die ISP-Schnittstelle ist bei 
einigen Exemplaren komplett ausgestiegen.


Den Takt habe ich variiert, leider ohne Erfolg. Die Möglichkeit JTAG 
aktiv zu lassen werde ich überprüfen.


Weiß jemand ob der MISO überhaupt auf MOSI input reagiert, falls ISP via 
Fuse bit deaktiviert wäre?

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


Lesenswert?

Simon H. schrieb:
> … ein
> Kondensator von 470nF gegen GND.

Ist ja riesig.  Hoffentlich hast du dann nicht die Ableitdiode nach
Vcc vergessen.

> Weiß jemand ob der MISO überhaupt auf MOSI input reagiert, falls ISP via
> Fuse bit deaktiviert wäre?

Nein, macht er sicher nicht (macht er ja schon nicht, wenn man die
ISP-Sequenz nicht richtig einhält), aber ich glaube, diesen Fall
kannst du ausschließen. Ich habe von noch niemandem gehört, dem
dies mittels ISP versehentlich passiert wäre.

von Simon H. (simon9)


Lesenswert?

Hallo Jörg,

danke für den Tipp! Ich verwende die Pins sonst als Analogeingänge für 
meine Sensoren, da kann ich notfalls drauf verzichten. Via eines freien 
IO-pins kann ich dann das setzen des JTDs steuern.

Das Hauptproblem muss ich natürlich trotzdem nachvollziehen können; 
warum die ISP-Schnittstelle nach belieben dauerhaft aussteigt.

Die Ableit-Diode ist tatsächlich nicht vorhanden. Die wurde vergessen 
(allerdings nicht von mir). Was meinst du kann im schlimmsten Fall 
passieren?

Ja, dass mit SPIEN hatte ich auch gelesen (The SPIEN Fuse is not 
accessible in serial programming mode); aber komplett ausschließen 
wollte ich die Möglochkeit nicht.

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


Lesenswert?

Simon H. schrieb:

> danke für den Tipp! Ich verwende die Pins sonst als Analogeingänge für
> meine Sensoren, da kann ich notfalls drauf verzichten. Via eines freien
> IO-pins kann ich dann das setzen des JTDs steuern.

Muss man nicht einmal. Da das JTD-Bit ja mit einer timed sequence
gesetzt werden muss, gibt es einen einfachen Trick, wie man trotzdem
debuggen kann: man setzt anfangs einen Breakpoint auf diese Sequenz,
und durchläuft sie dann im (CPU-befehlsweisen) Einzelschrittbetrieb.
Danach kann man weiter debuggen wie normal, die JTAG-Pins sind dann
halt keine IO-Pins.

Um zum Programmieren wieder ans JTAG ranzukommen, muss man dann
allerdings natürlich nSRST verdrahtet haben, denn nur durch einen
Hardware-Reset werden die Pins aus dem laufenden Betrieb heraus
wieder zu JTAG-Pins.

> Die Ableit-Diode ist tatsächlich nicht vorhanden. Die wurde vergessen
> (allerdings nicht von mir). Was meinst du kann im schlimmsten Fall
> passieren?

Zerstörung der Pad-Zelle. Die Diode ist ja vor allem deshalb in der
Empfehlung von Atmel drin, weil die Pad-Zelle von /RESET keine
reguläre Ableitdiode nach Vcc eingebaut hat, damit sie 12-V-fähig
wird (für die HV-Programmierung).

von Simon H. (simon9)


Lesenswert?

Hallo Jörg,

vielen Dank für die Infos! Dann werde ich bei den nächsten Baugruppen 
erst einmal die Layout-Schaltung überarbeiten, bevor ich diese in 
Betrieb nehme.

Der Zugriff via JTAG wäre dann sicherlich was für die nächste Revision 
der Baugruppe.

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.