Hallo, ich sitzt nun seit Stunden dran und komme nicht hinter das Problem. Ich benutzt einen AVR Mega 32 und lasse damit einen Motor laufen. Was der Motor machen soll kommt über die Serialschnittstelle. So weit so gut das Programm ( C - Code )läuft auch mal 2 Sekunden mal 5 Minuten ohne aussetzer. Im ICE sehe ich: - das mir der Y Pointer weg läuft. - der Interrupt sich selbstständig ausschaltet. - Speicher beschrieben wird der nicht benutzt wird. - der Stack wird manchmal falsch ausgelesen (main wird verlassen). Das ist alles eigentlich vollkommen unmöglich und es liegt auch kein Compiler Fehler vor. Ich arbeite seit Jahren mit diesem Prozessor ( & Compiler) aber sowas ist mir noch nicht untergekommen. Die Spannung ist stabil bei 5 Volt. 2., 3. und 4. Prozessor haben das gleiche verhalten. Hat jemand eine Idee was das sein kann? Viele Grüße, Dirk
Vllt ist der Ram voll? somit wird der Stack überschrieben und das Programm spielt verrückt
128 Byte sollten reichen für ein Programm was nur 2 Unterfunktionen hat und einen Interrupt. Hatte ich aber auch schon geprüft.
Ich habe nur 100 Byte RAM benutzt und dann noch die 128 für den Stack. Da liegt nicht der Fehler, das ist schon alles überprüft.
Hallo, zu kleinen Stack eingerichtet glaub ich nit, der wächst von RAM Ende nach oben. Da kann nix zu klein sein. Es könnte natürlich der Stack in reservierten Ram Bereich von deinem Programm reinlaufen. Aber ohne deinen Code kann man nur raten, poste ihn doch einfach mal. GRUSS
Ich glaube das Hier keiner was mit dem Source Code anfangen kann. Darf ich auch nicht veröffentlichen nicht mal auszugsweise. Ist ganz simple, Main mit Schleife und einer Auswertung der empfangenen Daten. Interrupt (40us) mit SIO abfrage und Motor Treiber (PWM auf 8 Port Pins). Der Interrupt ist auch nicht zulang!
Dirk wrote: Ich glaube das Hier keiner was mit dem Source Code anfangen kann. HUST. Dirk wrote: Darf ich auch nicht veröffentlichen nicht mal auszugsweise. Wer soll dir dann helfen können ? Gruss
Tja eine gute Frage. Am Code liegt es nur nicht! Ich wollte doch nur wissen, ob jemand so ein verhalten kennt und woher es bei Ihm herkam.
oder hast du vielleicht hardware-probleme durch die pwm am motor? freilaufdiode? vielleicht mal galvanisch getrennt treiben, oder sonstigen kram anstellen?
Ha Ha Ha! Erfahrung damit gemacht? So ich habe das Problem gefunden, ist natürlich nicht im Code. Das hatte ich ja schon mehrfach ausgeschlossen. Ist EMV der Prozessor ist der letzt Müll für DIESE Anwendung. Schade ich setzt ihn nun schon seit Jahren ein (ca. 30 Tausend Stück bei ca. 25 Projekten). Und nun so was, OK Dumm gelaufen kommt ein Anderer rein. Mehr abblocken geht nicht und noch weiter abschirmen ist auch nicht drin.
Ich würde den Motor mal abklemmen und stattdessen eine Lampe anschließen. Dann mal schauen, ob das gleiche Verhalten zu beobachten ist. (Evtl. auch mal ganz ohne Last)
Ah, zeitgleich gepostet... Also das halte ich für ein Gerücht, dass man den uP nicht genügend schützen kann. Spätestens ein Optokoppler zwischen Ausgang und Motor sollten abhilfe schaffen.
so isses. oder treibst du etwa 10kW motoren? vielleicht geht wirklich nicht mehr blocken, aber zum beispiel supressordioden, oder dioden in reihe und dazwischen den eingang. und mit dem optokoppler dürfte dann auch der rest vom spaß vorbei sein. wenn du die selbe versorgungsspannung für motor und atmel benutzt, solltest du vllt für den atmel einen extra linearregler mit schön dick tiefpass und puffer spendieren.
Bauart bedingt kann ich da nicht viel machen. Ich sollte einen alten 8052 ersetzen und gleichzeitig die Firmware auf C portieren. Nun der 8052 hatte in der Umgebung keine Probleme. Ich bin gerade dran das ganze noch besser einzukreisen, vielleicht habe ich doch noch Glück und finde eine Akzeptable Lösung. Danke für die Ratschläge.
Kann das nicht jemand mal früher sagen / fragen. Ich hatte meine Standard Einstellung drin. Benutze sonnst nur maximal 4 MHz. Jetzt läuft es schon viel viel besser. Bin nur noch nicht überzeugt das das alles ist. DANKE, Ihr habt meinen Tag gerettet.
Dirk wrote: > Kann das nicht jemand mal früher sagen / fragen. =) > Ich hatte meine Standard Einstellung drin. Benutze sonnst nur maximal 4 > MHz. > > Jetzt läuft es schon viel viel besser. Bin nur noch nicht überzeugt das > das alles ist. bestimmt nicht, denn die emv-störlinge sind ja trotzdem da. du kannst sie jetzt nur schlechter "detektieren" =) > DANKE, Ihr habt meinen Tag gerettet. einmal volltanken, bitte ^^
Da die Störungen sich aber nicht mehr so bemerkbar machen, kann ich aber auch den großen abschirm und abblock Kram verzichten (zum Glück). Ich setzte zur Sicherheit noch ein paar Kondensatoren und wenn das Ding bis Montag durch läuft, gibt es am Montag den großen EMV Hammer von außen. Mal sehen vielleicht gönne ich mir auch morgen schon mal den Spaß. Ist doch immer wieder verwunderlich, über was man bei einem Projekt so stolpern kann.
Wenn es wirklich an den Störungen liegt nimm einen PIC, die sind teilweise auch in Frequenzumformern verbaut und wenns da nicht Störverseucht ist weiß ich auch nicht. :) Die PICs sind sehr robust die bekommt man so schnell nicht zum Absturz durch Störungsprobleme. Entkopple deine Last eventuell auch noch mit einem Optokoppler und Verbinde die Massen von Steuer und Lastkreis an genau EINER Stelle dann solltest du Ruhe haben. Die üblichen 100nF-Abblockkondensatoren am uC hast du dran oder? Eventuell die Betriebsspannung mit einem LC-Filter von Störungen befreien. Brown-Out auch anstellen (!) verhindert zumindest daß der uC mit Mist weiterrechnet. Stefan
So habe heute mal ein paar Tests gemacht. Die Steuerung kann eine Heimzulassung bekommen. Hatte schon gedacht das ich nicht mal eine Industrie Zulassung schaffen würde. Weder ein Burst auf der Versorgungsspannung noch ein ESD Test bringt den AVR oder den Rest zum erliegen. Die anderen Test sind auch alle im Normbereich. War nur die Dummheit mit den Fuses, ein AVR ist auch in dieser Anwendung OK. In einem Anderen Projekt hatte ich aber mit dem AD Wandler Probleme bei der HF Einstrahlung. Ist also doch manchmal nicht die beste Wahl, haben dann einen Mitsubishi genommen.
>Schade ich setzt ihn nun schon seit Jahren ein (ca. 30 Tausend Stück bei >ca. 25 Projekten). >Ist also doch manchmal nicht die beste Wahl, haben >dann einen Mitsubishi genommen. Masse ist eben nicht Klasse. Damit meine ich nicht den Prozessor.
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.