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
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
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.