PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : $CRYSTAL scheint sich allein zu ändern



A.Schilling
18.02.2009, 09:04
Benutzt wird ein Atmega 2560. Im Quelltext wird $crystal = 16000000 verwendet. Stromversorgung erfolgt über Trafo mit Spannungsstabilisierung. Programm läuft auch prima solange wir bei uns im Hause testen. Wir messen damit Temperaturwerte und überwachen Strom und Spannung wegen Meldung über Ausfall (in dem Fall wird Stromversorgung über USV/Akku gewährleistet). Jetzt der Effekt bei Kunden. Nach dem Einschalten des Gerät hat man sofort den Eindruck alles läuft langsamer, so etwa um den Faktor 5. Bestimmte Sachen werden über Display angezeigt und da kann man an einer Stelle genauch nachweisen, das aus 3Sek Wartezeit 15 bis 18 werden. Diese langsame Arbeiten führt dazu, das das ganze Gerät nicht immer so arbeitet wie es soll. Da auch der Wert für die aktuelle Netzspannung auf dem Display anzeigt wird, ist mir aufgefallen, dass die Spannung so um ca. 5 bis 10V höher liegt als bei uns im Haus. Die Frage ist: kann diese höhere Netzspannung dazu führen das beim Laden des Bascomprogramm der $crystal Wert falsch ausgelesen ??? wird bzw hat schon mal jemand den gleichen Effekt gehabt das alles langsam läuft?

Achso, nach einem Test an einer anderen Steckdose (da ging wieder alles Prima, auch die Netzspannungswerte waren im Rahmen) und einen erneuten Test an der ersten Steckdose ging auch da alles wieder (auch da war die Spannung wieder normal).

MeckPommER
18.02.2009, 09:58
Der $crystal-wert wird zur Laufzeit nicht beachtet. Er dient nur dem Compiler als Angabe, z.B. wie lang er Pausen zu generieren hat und welches Timing die Schnittstellen benötigen.

Ich vermute euren Fehler eher ...
- in der Stabilität der Schaltung/Stromversorgung an sich
- in den Takt-Fuses

Falls die unterschiedliche Netzspannung etwas bewirkt, habt ihr in der Stromversorgung eurer Schaltung etwas flasch gemacht ;-)
Im Ernst: es wäre gut, wenn man den Schaltplan hätte, dann könnte man eher etwas sagen. So kann man nur ins Blaue vermuten. Da ihr auch Messungen der Netzspannung durchführt, wäre interessant zu wissen, wie ihr das macht - vielleicht holt ihr euch ja so Störungen in die µC-Elektronik.
Wie spendabel seid ihr mit den berühmten 100nF-Kondensatoren gewesen? Was schluckt eure Schaltung an Strom, wie sieht euer Trafo leistungsmäßig aus ...

Gruß MeckPommER

A.Schilling
19.02.2009, 10:47
Die 100nF haben wir auf der ersten Platine 6 und zusätzlich noch Spannungsstabilisierung 7812 / 7805 (230V --> 12V --> 5V). Auf der nächsten Platine vor dem Atmel gibt es noch einmal 17 100nF. Daran sollte es also nicht liegen.

Bleiben die Fusebits. Oder kann der Oszillator (Quarz 16 MHZ) aus irgend einem Grund mal mit 3 bis 4 MHz laufen bzw. kann der Atmel das so interpretieren als liefe er nur mit dieser Frequenz?

Jon
19.02.2009, 11:03
Was möglich ist, ist eine Veränderung der Frequenz durch hohe Wärme oder Kälte. Sonst sind aber die Schwingungen eines normalen Quarzes sehr konstant.
Eine falsche Interpretation des µCs ist nicht möglich, solange die Fusebits richtig eingestellt sind.
Nach deinen Beschreibungen scheint es auch nicht der interne Taktteiler zu sein, aber trotzdem würde ich dir empfehlen, das mal zu kontrollieren.

Mehrkann ich dazu aber ohne Schaltplan auch nicht sagen...

jon

MeckPommER
19.02.2009, 11:52
Man kann halt nicht viel ohne Schaltplan und Platinenlayout sagen, da selbst 20 100nF-Cs nicht viel bringen, wenn sie zu weit entfernt sitzen. Es gibt tausenderlei Möglichkeiten: wie "weit" entfernt ist der Quarz vom µC, usw. Da der Fehler ja auch nicht 100% reproduzierbar ist: ohne Schaltplan und Platinenlayout kann keine bessere Antwort gegeben werden.

Nur - von einem Produkt Schaltpläne zu veröffentlichen, würde mir wahrscheinlich genauso die Nackenhaare verbiegen wie dir ;-)

Gruß MeckPommER

A.Schilling
19.02.2009, 11:53
Danke für die Antwort. Wenn man also davon ausgeht, das wenn der Teiler einmal einstellt ist (durch externe Software bzw. Upload des Quelltext) dieser im Betrieb sich nicht ändern kann. Und das ist das seltsame an dem Problem. Es wird zwischendurch keine Übertragung mehr vorgenommen. Das Geräte wird an die Steckdose gesteckt --> geht langsam, drei viermal gestartet --> geht immer noch langsam. An andere Steckdose in anderen Raum --> geht sofort super --> zurück an die erste Steckdose (inzwischen ist schon eine Stunde vergangen)--> jetzt geht es hier auch normal und seit dem läuft es auch ohne Probleme. Da wir die Messdaten in einen Speicher schreiben und per Mail zugesand bekommen, habe ich auch die Kurve der Spannung und die lag in dem Zeitraum wo es nicht ging eben höher (wie ich es schon auf der Anzeige gesehen hatte).
Den Schaltplan kann ich leider nicht veröffentlichen, weil er nicht von mir ist, da habe ich keine Freigabe bekommen. Ich bin nur für die Programmierung zuständig.

MeckPommER
19.02.2009, 12:14
Fraglich ist, ob der zuerst auftretende Fehler vielleicht auch die Messungen beeinflußt hat. So große Spannungsdifferenzen an Steckdosen ... ?

Ich tippe noch auf die Fuses - irgendeine Einstellung, bei der der Quarz nicht jedes Mal richtig einschwingt. Da der Fehler nicht reproduzierbar ist, könnte es an kleinsten Dingen liegen ... erinnert sich noch jemand an die Schlagzeile von vor ca. 20 Jahren "Computer verrückt auf Nylon-Strümpfe"? ^^ Da kam eine größere Anlage nicht mit der statischen Aufladung bestimmter Kleidungsstücke klar :)

Gruß MeckPommER

A.Schilling
19.02.2009, 12:48
Reproduzierbar ist es schon nur nicht gewollt. Es ist nicht das erste Mal, dass das Gerät dort langsam läuft. Wir hatten es in den letzten 12 Monaten schon mehrmals zum Testen dort (immer der gleiche Raum).
Wegen den Messwerten. Die können schon stimmen. Die Temperatursensoren haben keinen Ausschlag nach oben und dort in der Gegend gibt es "schlechten" Strom. Der Server dort ist schon eine Fall für die Versicherung geworden und mußte ersetzt werden. Der Stromanbieter hat bescheinigt, dass zu besagten Zeitpunkt Spannungsspitzen aufgetreten sind.