Hallo, ich habe ein Problem. Und zwar hab ich einen ATMega 16, der im großen und ganzen ein paar Werte vom ADC abfragen soll und auf einem Display ausgeben (Pollin LCD-12232). Das ganze funktioniert auf meinem STK500 mit Potis (als Testdummy) an den ADC-Eingängen auch wunderbar. Nun hab ich das ganze in eine eigenständige Schaltung gegossen. Dabei hab ich das Problem, dass das Programm ein paar Sekunden lang läuft und dann friert entweder das Display ein, oder das Programm startet komplett neu. Auch beim Einfrieren des Displays startet das Programm irgendwann neu. Oder das Display zeigt wirre Zeichen an und startet irgendwann neu. Die Spannungsversorung ist ein Labornetzteil. Ich hab mal testweise das Netzteil versucht, mit dem ich das STK500 betreibe, aber das hat auch keine Veränderung gebracht. Ich hab so gar keine Idee, wo ich suchen muss. Dies sind meine ersten (ernstzunehmenden) Schritte in diesem Gebiet, deshalb bitte ich um entwas Nachsicht mit mir ;-) Das Programm hab ich mal als Zip angehängt, das wär doch zu viel, um es zu posten. Danke! Jens
Stacküberlauf? Beendest du alle Subroutinen korrekt(rcall -> ret), wenn nicht läuft irgendwann der Stack über und dein Programm landet bei 0
Der Stack würde ja auch überlaufen, wenn der Controller im STK500 steckt. Aber dort funktioniert es ja einwandfrei. Ich vermute das Problem eher bei der Hardware. Jens
haben alle gesetzten Interrupts auch eine ISR dazu? Ist der Watchdog ausgeschaltet?
Interrupts habe ich keine in meinem Programm. Und der Watchdog ist auch nicht aktiviert. Jens
Mir fällt gerade etwas auf. Ich habe die Spannungsversorgung vom meiner Schaltung runter genommen und über den ISP mit dem STK500 verbunden (die Schlatung wird also über den ISP versorgt): Jetzt läuft alles wunderbar! Da muss doch irgendwie der Wurm in meiner Spannungsversorgung sein, oder? Jens
Also irgendwie komm ich nicht weiter. Die Spannung scheint stabil zu sein, soweit ich das mit meinem Multimeter beurteilen kann. Sie liegt immer bei genau 5 V. So recht weiß ich nicht, wo der Unterschied liegt, wenn die Spannung durch den ISP kommt, oder wenn sie direkt angelegt wird. Es ist immer noch so, wenn die Schaltung mit dem ISP mit dem STK500 verbunden ist, läuft alles stabil. Ich kann mir einfach keinen Reim drauf machen. Für Hinweise wäre ich wirklich dankbar. Jens
Wieviel Strom zieht deine Schaltung bei 12V Versorgung? Wie warm wird dein Linearregler => Kann es sein, dass der zu warm wird und nach einiger Zeit sich selbst abschaltet? Wenn du die Spannung vom STK500 benutzt - ist dann der 12V Zweig anders angeschlossen oder ist der unversorgt? Wenn unversorgt, liegt möglicherweise die Resetursache dort. Man sieht in deinem Schaltplan leider nicht wo die Leitung "Spannungsversorgung" hinführt.
Hi! Hatte vor ein paar Monaten ein ähnliches Problem... Bei mir war es FUSE CKOPT. Ständig irgendwelche Resets und komische Sachen seit dem ich das gesetzt hatte lief es dann stabil. Ob das nun bei Dir auch hilft hängt wohl vom Takt ab? Datenblatt Seite 25... Gruß AVRli...
Die Schaltung zieht so ca. 28 mA. Der Linearregler hat einen Kühlkörper. Der wird nicht mal handwarm (eigentlich mit der Hand nicht mal spürbar, dass sich da was erwärmt). Wenn die Spannung vom STK anliegt, ist der 12V-Zweig unversorgt. Die Leitung Spannungsversorgung geht über den Spannungsteiler R8 und R9 auf PA6 des µC. Allerdings habe ich testweise diesen Zweig lahmgelegt, indem ich R8 ausgelötet hab. Das hat aber nicht geändert. Jens
AVRli schrieb: > Hatte vor ein paar Monaten ein ähnliches Problem... > Bei mir war es FUSE CKOPT. Habs gerade mal probiert, hat leider auch keine Besserung gebracht. Jens
"Spannungsversorgung" ist also nur eine Messleitung, um die KFZ-Spannung an PA6 über einen Spannungsteiler zu messen. Sonst ist nix aus dem Bordnetz (Drehzahl? Reed?, Taster? NTC?) am AVR angeschlossen und er stürzt trotzdem ab bzw. bei den Versuchen mit/ohne STK500 ist das restliche Bordnetz immer identisch angeschlossen, richtig?
Hat der M16 vielleicht nen Brown Out detector ? (fuses) Gruss K
Die Schaltung hats noch gar nicht von meinem Schreibtisch in die Nähe des Boardnetzes geschafft ;-) Richtig, ist eine Messleitung für die Boardspannung. Sonst ist nichts angeschlossen, weder Drehzahl, noch Reed, noch Taster, noch NTC. Weder bei meinen Versuche mit dem STK noch wenn ich die Schaltung mit 12V aus meinem Labornetzteil versorge. Bin jetzt noch einen Schritt weiter gegangen, und hab D3 ausgelötet - auch keine Besserung. Jens
die Fuse BODEN ist nicht gesetzt. Klaus De lisson schrieb: > Hat der M16 vielleicht nen Brown Out detector ? (fuses) Ja, hat er, aber ist nicht aktiviert (Fuse BODEN nicht gesetzt).
Gleiche Probleme hatte ich auch schon mal. Ursache war einmal die schlechte Masseführung (nicht sternförmig) und lange (Flachband-)LCD-Leitung.
Ich dreh noch druch. Ich glaub, es liegt doch nicht an der Spannungsversorgung. Ich hab jetzt die Verbindung zum Drehzahlmodul komplett getrennt (die Leitungen zu Pin 5&6 vom IC2 und die Leitung von Pin7/IC2 zum PA7 getrennt). Hat keine Verbesserung gebracht. Nun hab ich folgendes gemacht: Ich hab vom STK500 NUR die Spannungsversorgung genommen (also vom einem VTG-Pin an die entsprechende Stelle, wo die Schaltung 5 V haben muss und Masse an Masse). Und was soll ich sagen: ich hab das selbe Verhalten, dass es unmotiviert Resets gibt. Nur wenn ich den kompletten ISP-Stecker verbinde, dann geht es. Meine Resetbeschaltung ist doch aber richtig, oder nicht? Oder könnte es etwas bringen, hier mal mit den Werten von R6 und C6 rumzuspielen? Jens
Mein Verdächtiger ist die GND-Verbindung. Du hast mit ISP-Adapter zwei Masseverbindungen. Die offensichtliche vom Netzteil (VTG/GND) und das nicht offensichtliche GND über den ISP-Adapter. Vielleicht steckt im ersten GND-Netz und AVR der Wurm und die GND-ISP Verbindung rettet es.
Moin! eine seltsame Sache ist das. Jetzt läuft alles stabil. Was ich geändert hab ist, dass ich den µC vom internen Takt 8 Mhz auf internen Takt 4 Mhz umgestellt hab.... Jetzt könnte ich mich zwar freuen, dass es läuft. Aber mich stört, dass ich nicht verstehe, WARUM es jetzt geht und vorher nicht. Das ist für mich unbefriedigend. Interessant ist auch, dass ich gestern noch festgstellt hab, dass es auch funktioniert, wenn das STK500 per ISP verbunden ist (ohne den VTARGET-Jumper) und "meine" Spannungsversorgung benutzt wird. Das STK500 muss noch nicht mal einschaltet sein, es reicht, dass es verbunden ist. Die Leiterbahnen hab ich mir alle nochmals genau angeschaut - da kann ich keinen Fehler feststellen. Auch hab ich an den Engstellen, wo es evtl. unsichtbar eine Verbindung geben könnte nochmal einen Schraubendreher durchgezogen. Hat alles nichts geholfen. Nur die umstellung des Taktes hat Abhilfe geschaffen. Jens
Die Stromaufnahme des AVR ist vom Takt abhängig (s. Datenblatt): Je schneller der AVR laufen soll, desto mehr Saft braucht er. Spricht weiterhin für Probleme in der Spannungsversorgung.
Danke, dann werde ich in der Richtung nochmal weiter suchen. Danke auch allen anderen, die sich Gedanken gemacht haben!
Ist nun schon etwas her, aber ich möchte die Lösung nicht vorenthalten: Nachdem ich den ATMega durch Doofheit geschrottet hab und durch einen anderen ersetzt hab, funktioniert nun alles, wie es sollte. So einfach kann es sein, und man kommt nicht drauf. Jens
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.