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
Simon H. schrieb: > Bei einigen der Boards habe ich das Problem dass ISP nun nicht mehr > funktioniert. Schaltplan und Layout mit Bild(ern) vorhanden?
Wie ist denn der Reset beschaltet? Evtl ein Problem mit dem Reset Timing?
RST Label am Vcc Pin? PG3, PG4, RST, XTAL1 und XTAL2 Label um einen Pin nach rechts verrutscht?
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.
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?
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.
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.
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).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.