www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie genau ist der Intere Quarz


Autor: Olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe mir einen Counter mit Siebensegmentanzeige gebaut. Der Counter 
soll ca. jeder Sek einen Variable herunterzählen. Ich habe folgenden 
Ansatz gewählt:

Hardware:
- Atmega 8
- Spg. Versorgung
   - 230V->9V Trafo
   - Brückenschaltung aus vier Dioden
   - 1000µF zur Glättung

Software:
- Internen Quarz auf 8 Mhz eingestellt
- Timer0 auf 31250 Hz eingestellt
- Timer0 Interrupt aktiviert
- In der Interruptfkt. eine Schleife, die von 122 (=31250/256) bis 0 
zählt und dann eine globale Variable herunterzählt

Irgendwie hat das ganze auf meinem Schreibtisch mit einem Schaltnetzteil 
ohne Probleme funktioniert. Jetzt mit dem Trafo habe ich das Problem, 
dass der Counter manchmal jede Sekunde herunterzählt und manchmal ca. 
die dreifache Geschwindigkeit hat, sprich dreimal pro Sek herunterzählt. 
Kann das an dem Internen Quarz liegen (wäre ganz schön häftig wenn da 
solche unterschiede geben sollte)?
Oder habt Ihr ne Idee, woran es liegen könnte?

Gruß
Olli

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
interner Quarz? Gibts es nicht.
Nur einen RC-Oszillator, ziemlich ungenau, abhängig von Temperatur und 
Spannung.
Sprünge von 1:3 gibts da allerdings nicht, das ist was anderes.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olli wrote:

> - Internen Quarz auf 8 Mhz eingestellt

Sowas gibt es nicht.

Das ist ein RC-Oszillator.  Der lässt sich bei konstanten Umgebungs-
bedingungen (Vcc, Tamb) auf ca. 0,5 % genau kalibrieren.

> Irgendwie hat das ganze auf meinem Schreibtisch mit einem Schaltnetzteil
> ohne Probleme funktioniert. Jetzt mit dem Trafo habe ich das Problem,
> dass der Counter manchmal jede Sekunde herunterzählt und manchmal ca.
> die dreifache Geschwindigkeit hat, sprich dreimal pro Sek herunterzählt.

So ungenau wiederum ist der RC-Oszillator aber auch nicht.  Du
wirst irgendwelche Spikes auf deinem Signal haben.

Autor: Frank Esselbach (Firma: Q3) (qualidat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im ATMega ist kein Quarz, sondern ein (Temp.-stabilisierter) 
RC-Oszillator. Dessen Genauigleit ist für viele Anwendungen ausreichend, 
mit einem Quarz aber nie und nimmer vergleichbar.

Dein Problem klingt aber eher nach ungenügender Siebung der 
Betriebsspannung, evtl. im Zusammenhang mit schwankendem Verbrauch 
deiner Anzeige. Ein solches Netzeil ohne Regler ist bei dem geringen 
Strombedarf ein Risiko, die Quasi-Lehrlaufspannung kann kritisch hoch 
werden. Ich würde einen 780x-Reglerchip verwenden.

davon abgesehen - Probier mal Folgendes:

- unmittelbar am ATMega eine Parallelschaltung von 1 yF Elko und 10 nF 
Keramik

- den ATMega über 100 Ohm Widerstand versorgen, getrennt vom Rest der 
Schaltung

Frank

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olli wrote:
> Kann das an dem Internen Quarz liegen (wäre ganz schön häftig wenn da
> solche unterschiede geben sollte)?

Ne am internen Quarz liegst garantiert nicht, weil kein AVR nen internen 
Quarz hat.
Die AVRs haben nen internen RC-Generator, nach wenigen Minuten sind 
schon mehrere Sekunden Abweichung zu sehen. Für ne Eieruhr gerade noch 
geeignet.


> Oder habt Ihr ne Idee, woran es liegen könnte?

Naja, 9V ist ganz schön heftig.
Es wundert mich, daß der AVR überhaupt noch lebt.


Peter

Autor: Düsentrieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
9v trafo....und wo is der 5v-regler ???

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wide-supply-range-Typ verwendet :-)

Autor: Olli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok ok,

meinte natürlich den interen RC-Oszillator. Und habe auch vergessen zu 
schreiben, dass ich natürlich einen 7805 mit auf der Schaltung habe. 
Anbei habe ich mal die Schaltung gehängt allerdings ohne Trafo, 
Brückengleichrichter und Glättungselko.

Gruß
Olli

Autor: Olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und noch ein kleiner Fehler, an dem 7805 hängen nicht zwei mal 1µF 
sondern einmal 1µF und einmal 0,1µF

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde die Kondensatoren auf der VCC-Seite erhöhen. Wenn Du da 
wirklich nur einen 100nF hast, dann dürfte das vermutlich nicht reichen. 
Mach noch einen 10uF parallel. Auch auf der 9V Seite würde ich mehr als 
nur 1uF ansetzen.

Autor: Olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ja auf der 9V Seite ist ja noch der Glättungselko mit 1000µF das 
reicht dann doch oder? das mit den 10 µ werde ich dann gleich mal 
testen.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auch noch einen zusätzlichen 10uF Kondensator nah an die 
Transistoren legen, so dass dieser den kurzfristigen Strombedarf der 
Segmentanzeigen besser abdecken kann.

Es ist schon möglich, dass lokale Spannungsschwankungen durch stark 
unterschiedlichen Strombedarf zu Aussetzern beim Prozessor führen.

Generell solltest Du aber auf jeden Fall eine mögliche Fehlerquelle 
nicht übersehen, Dein Programm. Häufig liegt der Fehler in der Software 
begraben.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe UP, DOWN, START und STOP in Verdacht. Mehr Eingänge hat die 
Schaltung ja nicht.

Vom Schaltbild her sieht es so aus, als ob diese Anschlüsse gegen GND 
schalten und ansonsten floaten (auf dem 16-pol. anschluss ist kein Vcc 
für ein Pullup!). Vielleicht fängst du dir ein Dauer-UP/DOWN ein. 
Versuchsweise würde ich diese Eingänge mit internen Pullups versorgen 
(10k Widerstände brücken).

Autor: Olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok ich habe das ganze jetzt noch mal überarbeitet.

- 10µ Elko am Atmega zischen VCC und GND
- 10µ Elko bei den Transistoren für die Segmentanzeigen
- 100µ Elko beim Transistor für das Relai
- Pullupwiderstände auf VCC bei STRAT, STOP, UP und DOWN

gibt es sonst noch was? Was sollte man mit nicht genuzten PIN machen? 
Bei mir PB6 und PB7? Was ist mit AGND, AVCC und AREF? Kann man die 
einfach offen lassen?

Autor: Olli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier die Datein ;-)

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>  Was ist mit AGND, AVCC und AREF? Kann man die einfach offen lassen?

NEIN!
Auch wenn kein ADC verwendet wird, AGND an Masse, AVCC an +5V, und 
nochmal 100nF Kerko dazwischen. AREF kann offen bleiben.

Autor: Olli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So jetzt auch noch 100nF am ADC.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Besser.

Nochwas ist mir aufgefallen:
Bei der Relais-Ansteuerung nimmst du einen Emitter-Folger. Im Prinzip in 
Ordnung, allerdings hat das Relais dann nur noch so 4.3 V zum Anziehen. 
Reicht das?

Autor: Olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist an der untern Grenze aber wie würdest du es sonst lösen?

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Emitter an Masse, Last zw. Kollektor und +5V, Vorwiderstand 1-10kOhm:

Relais mit Logik ansteuern

http://www.mikrocontroller.net/articles/Transistor...

Autor: Olli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Quasi so?!

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mich wundert, dass der µC überhaupt läuft. Der müsste ja im Reset 
sein!
Am Rest-Pin müssen 0V (GND) anliegen, damit der Mega8 läuft.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder steckt dein SPI Stecker immer dran?

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tobi wrote:

> Am Rest-Pin müssen 0V (GND) anliegen, damit der Mega8 läuft.

Nö, das ist ein AVR, kein 8051. Nur sind 1µF ein bischen heftig, je 
dicker der Reset-Kondensator, desto heftiger der Strom durch den 
ISP-Treiber der den Reset auf 0 zieht.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt, du hast recht, sorry!

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja.

Noch ein paar Kleinigkeiten:

Vor den 7805 einen größeren Kondensator parallel schalten (~ 100µF)

Eine Diode "über" den 7805, damit sich die Kondensatoren auf der 
5V-Seite entladen können, wenn die 12V weg sind, ohne den 7805 zu 
grillen.

der 1µF am Reset-Pin ist vermutlich zu groß, da könnte der ISP Probleme 
kriegen. Eher 100nF.

der 100 Ohm Vorwiderstand für die Power-On-Led ist für meinen Geschmack 
zu klein, hängt aber von der LED-Farbe (Flussspannung) ab. auch mit 330 
oder 470 Ohm wird die Helligkeit nicht wesentlich nachlassen...

von den vielen 10µF Kondensatoren kann man einige einsparen, wenn die 
beim Layout nah beienander liegen. z.B. wenn die drei Segment-Treiber 
nebeneinander auf der Platine sind, reicht einer für alle drei.
Wenn du von denen aber eh eine Tüte voll zum verteilen hast, und Platz 
kein Problem ist, kannst du die auch so lassen.

Wenn du weitere Bauteile sparen willst: die 100Ohm Vorwiderstände vor 
T1-T3 kann man weglassen. Sind aber beim Layouten evtl hilfreich als 
"Drahtbrückenersatz"

Du könntest auch im Layout noch einen Quarz (+Lastkapazitäten) am AVR 
vorsehen, und dann einfach nicht bestücken. Wenns dann zu ungenau ist, 
kann man den einfach nachlöten und die Fuses umstellen, ohne das ein 
neues Layout fällig wird.

Autor: Oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz oben las ich "auf Schreibtisch mit einem Schaltnetzteil
ohne Probleme funktioniert. Jetzt mit dem Trafo habe ich das Problem,"..
.....dann sagt meine Glaskugel: Spannungproblem!

Brummen, Störimpulse oder butterweiches Netzteil?

Als Test evtl. Contoller-Logik nochmals aus sauberem Schaltnetzteil 
speisen und nur Anzeige über neues Trafo-Netzteil ?
Später: evtl. Elko hinter 7805 auf 100uF vergößern und Beschaltung des 
7805 mit Schutzdioden (wegen Elko-Entladung nach Ausschalten)?

Eine Ursache könnte auch die räumlche Anordnung des Trafos sein, die 
Störungen im Nahfeld erzeugt.

Gruß Lutz

Autor: Olli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe gestern das Board noch einmal neu gemacht und es funktioniert 
so weit auch allerdings tritt der Fehler immer noch auf. Mir ist jetzt 
aber folgendes aufgefallen, die Sekunde wird genau gezählt, wenn der 
ISP-Programmer (MkII) angeschlossen ist, wenn ich den Porgammer abziehe, 
läuft meine Sekunde mit doppelter bis dreifacher Geschwindigkeit.
Anbei nochmal die aktuelle Schematic.

Gruß
Olli

PS: Der Quarz ist nicht eingbaut.

Autor: Olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Problem gelöst!!!

Und zwar war es doch ein Softwareproblem ;-). Man kann im AVR Studio 
drei verschiedene Einstellungen für den RC-Oszillator bei 8Mhz trefeen:

1. Int.RC Osc 8Mhz;Start-up time 6CK + 0 ms;(CKSEL: 0100 SUT00)
2. Int.RC Osc 8Mhz;Start-up time 6CK + 4 ms;(CKSEL: 0100 SUT01)
3. Int.RC Osc 8Mhz;Start-up time 6CK + 64 0ms;(CKSEL: 0100 SUT10)

Ich hatte die 1. Einstellung gewählt, leider hat die immer nur im 
zusammenspiel mit dem ISP-Porgammer (MkII) funktioniert. Bei den beiden 
letzten (2. und 3.) Einstellungen funktioniert es jetzt auch ohne das 
der Programmer angeschlossen sein muss. Das muss ja was mit den + 4 ms 
bzw. + 64 ms zutun haben. Aber wieso die Verzögerung dort mit eingebaut 
werden muss weiss ich aber immer noch nicht. Vielleicht habt Ihr ja ne 
Idee.

Gruß
Olli

PS: Danke nochmal für die vielen hilfreichen Hardwaretips

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.