Forum: Mikrocontroller und Digitale Elektronik Wieso externe Komponenten nutzen?


von Frank S. (Gast)


Lesenswert?

Hallo Leute,

ich beschäftige mich seit kurzem mit der Mikrocontroller-Entwicklung und 
habe neulich erst meinen ersten Mikrocontroller auf einem Bread-Board 
aufgebaut. Jetzt habe ich einige Fragen dazu.

In der Entwicklung von irgendwelchen Geräten spielt der Preis auch immer 
eine gewisse Rolle. Ich habe jetzt mal den ATmega328 verwendet. Der Chip 
hat ja z.B. einen eigenen Quarz für die Takterzeugung eingebaut, genauso 
wie Pull-Up Widerstände. Ich glaube, ich habe aber noch nie den 
ATmega328 irgendwo ohne externen Quarz gesehen. Bei den Pull-Up 
Widerständen bin ich mir da nicht sicher, aber überall wird einem 
geraten, externe Widerstände zu verbauen.

Kann mir jemand erklären, wieso?

von Eumel (Gast)


Lesenswert?

Frank S. schrieb:
> einen eigenen Quarz für die Takterzeugung eingebautFrank S. schrieb:
> aber überall wird einem
> geraten, externe Widerstände zu verbauen

Weil die internen eventuell zu schwach für die Anwendung sind.

von Peter II (Gast)


Lesenswert?

Frank S. schrieb:
> . Der Chip
> hat ja z.B. einen eigenen Quarz für die Takterzeugung eingebaut,

nein hat er nicht. Er hat einen RC-Oszillator der z.b für UART schon zu 
ungenau ist. (bzw erst Kalibriert werden muss)

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Der interne Taktgenerator ist ohne Quarz, extern gehen meistens höhere 
Frequenzen und genauer sind sie auch.

Die internen Pullups sind für einige Anwendungen zu hochohmig und haben 
hohe Streuungen.

Wenn die Werte (Frequenz, Widerstandswert, Genauigkeit) reichen, kannst 
Du die internen nehmen.

von Frank K. (fchk)


Lesenswert?

Frank S. schrieb:

> eine gewisse Rolle. Ich habe jetzt mal den ATmega328 verwendet. Der Chip
> hat ja z.B. einen eigenen Quarz für die Takterzeugung eingebaut

nein. Er hat einen internen Taktgeber eingebaut, ja. Der ist aber 
wesentlich ungenauer als ein Quarz und deshalb oft nicht für die 
Anwendung geeignet.

> ATmega328 irgendwo ohne externen Quarz gesehen. Bei den Pull-Up
> Widerständen bin ich mir da nicht sicher, aber überall wird einem
> geraten, externe Widerstände zu verbauen.

Entweder sind sie nicht kräftig genug. Oder sie müssen schon beim Reset 
aktiv sein.

Anderes Beispiel: AD-Wandler. Die können nicht genau genug sein, nicht 
schnell genug, oder der Prozessor kann die analogen Signale stören.

fchk

von amateur (Gast)


Lesenswert?

Du musst Bastler und professionelle Entwickler strikt von einander 
trennen.

Der Bastler benutzt oft das Wörtchen vielleicht. Also vielleicht reicht 
mir die Genauigkeit des Quarzes nicht aus, möglicherweise sind die 
Pull-Up Widerstände doch nicht geeignet. Manchmal reicht auch ein: Habe 
ich noch in der Schublade – ist zwar total überdimensioniert aber...

Im professionellen Bereich da geht es im Grunde um zwei Dinge:
1. Kosten
2. Kosten
3. Kosten
4. Folgekosten.

Jeder unnötige Pin am Prozessor kostet. Den Hersteller Material und Dich 
Fläche auf der späteren Platine.
Ein unnötiger Quarz kostet natürlich Geld, kostet Platinenfläche und der 
Bestücker ist auch aus der sozialistischen Partei ausgetreten.
Bei größeren Stückzahlen, kann schon der Gedanke an einen weggelassenen 
Quarz, die Mundwinkel deines Chefs in die Höhe schnellen lassen. 
Eventuell reicht die Genauigkeit des eingebauten A/D-Wandlers doch aus…
Jedes unnötige Teil reduziert die Betriebssicherheit des Produktes. So 
reizvoll eine Reise nach Japan auch sein mag, wenn dies nur wegen einer 
Reparatur geschieht, so sind die Mundwinkel deines Vorgesetzten schnell 
wieder unten.

von Sunnyboy (Gast)


Lesenswert?

Weil sie besser sind!

von Frank S. (Gast)


Lesenswert?

Okay, ich verstehe schon, worauf ihr hinauswollt.
Ich habe hier gerade einen Toaster bei mir auf dem Tisch liegen. Verbaut 
ist ein ATtiny der offensichtlich die Eingabe der Knöpfe auswertet und 
per Optokoppler / SSR den Strom zu dem Elektromagneten und zu den 
Heizspiralen freigibt.

Bei der Schaltung ist sowohl ein externer Quarz verbaut als auch Pull-Up 
Widerstände für die Taster.

Ein Toaster macht ja nichts zeitkritisches, nichts was auf ein paar 
100ms ankommt. Und ebenso die Taster. Da braucht man diese Genauigkeit 
nicht. Deshalb wundere ich mich schon, wieso der Hersteller sich 
entschieden hat, sowohl einen Quarz zu verbauen, als auch Pull-up 
Widerstände.

von ich (Gast)


Lesenswert?

Ich gebe dir völlig recht, das verstehe ich auch nicht. Selbst das Thema 
Zuverlässigkeit kommt wohl hier nicht in Frage, im Zeitalter der 
geplanten Obsoleszenz...
Aber in einem Fall muß ich dir heftig widersprechen:

> Ein Toaster macht ja nichts zeitkritisches, nichts was auf ein paar
> 100ms ankommt. Und ebenso die Taster. Da braucht man diese Genauigkeit

Ein paar 100ms sind für den Prozessor absolut nichts zeitkritisches. Da 
ist er fast noch im Tiefschlaf und macht das so nebenbei. Wenn du von 
paar µs geschrieben hättest, wäre das was anderes.
Aber wie gesagt, der Kern deiner Aussage bleibt richtig, siehe oben. 
Warum man dann einen Quarz und Pullups einbaut, weiß ich auch nicht...

von Martin K. (maart)


Lesenswert?

ich schrieb:
> Warum man dann einen Quarz und Pullups einbaut, weiß ich auch nicht...

Ich habe das jetzt nicht mit dem Datenblatt verglichen und mal 
nachgerechent. Wenn der Toaster am Anfang 3 Minuten toastet, sich 
erwährmt und danach nur noch 2,5 Minuten toastet, weil der RC-OSzillator 
Hitzewallungen bekommt, dann ist das auch nicht so toll.

Gibt von dem Toaster vielleicht auch noch eine Luxusvariante, wo ein 
genauer Quarz vielleicht nötig ist.
Oder der Hersteller hat auf eine fertige, zwar etwas teurere Platine 
zurückgegriffen und musste selber nichts entwickeln.

von ich (Gast)


Lesenswert?

Martin Kreiner schrieb:
>
> Ich habe das jetzt nicht mit dem Datenblatt verglichen und mal
> nachgerechent. Wenn der Toaster am Anfang 3 Minuten toastet, sich
> erwährmt und danach nur noch 2,5 Minuten toastet, weil der RC-OSzillator
> Hitzewallungen bekommt, dann ist das auch nicht so toll.
>

Ich hab jetzt nicht nachgerechnet, aber ist es wirklich so viel? Der 
Prozessor sitzt doch nicht auf den Heizdrähten, oder? ;-))
Gefühlsmäßig würde ich sagen, bei 3min wäre eine Sekunde schon viel...

von Ulrich (Gast)


Lesenswert?

Für einen Quarz sehe ich im Toaster auch wirklich keine Notwendigkeit - 
außer ggf. falls der Toaster per Bluetooth auch gleich den Kaffee 
anstellen soll oder ähnliches.

Für den externen Widerstand kann es schon den einfachen Grund geben, 
dass der interne zu groß ist und damit leichter Störungen einfängt.

Es kommt aber auch vor das kommerzielle Entwickler Fehler machen - sonst 
würden die Produkte ja noch seltener kaputt gehen.

von Markus (Gast)


Lesenswert?

ich schrieb:
> Gefühlsmäßig würde ich sagen, bei 3min wäre eine Sekunde schon viel...

Das wären nur ca. 0.5% Abweichung.
Realistisch sind aber eher +-10%.

von ich (Gast)


Lesenswert?

Markus schrieb:
> ich schrieb:
>> Gefühlsmäßig würde ich sagen, bei 3min wäre eine Sekunde schon viel...
>
> Das wären nur ca. 0.5% Abweichung.
> Realistisch sind aber eher +-10%.

Hallo Markus,

ich hab jetzt auf die Schnelle im Datenblatt keine Angabe gefunden, wie 
weit der interne RC bei einer bestimmten Temperaturdifferenz driftet. 
Wenn du von +-10% schreibst, würde das ja bedeuten, daß die 8MHz von 
7,2..8,8MHz laufen würden. Sorry, aber ich habe mich mit dem internen RC 
noch nie beschäftigen müssen, weil bei mir immer das Timing eine Rolle 
spielt (USART, CAN...)
Kannst du mir was genaues dazu sagen, evtl. wo man Infos darüber findet? 
Vielleicht habe ich es auch im Datenblatt übersehen...

von Andreas B. (andreas_b77)


Lesenswert?

ich schrieb:
> ich hab jetzt auf die Schnelle im Datenblatt keine Angabe gefunden, wie
> weit der interne RC bei einer bestimmten Temperaturdifferenz driftet.

Ich hab grad mal schnell das ATmega88 Datenblatt runtergeladen, auf 
Seite 337 (Typical Characteristics / Internal oscillator speed) ist ein 
Diagramm zum Thema.

von Frank S. (Gast)


Lesenswert?

Hmm...

Nehmen wir mal die typischen Betriebstemperaturen, dann habe ich einen 
Bereich von 8-8,1MHz. Das wären "nur" ca. 1,5% Abweichung. Ich denke, 
dass man damit leben kann.

von ich (Gast)


Lesenswert?

Danke, Andreas!
In diesem Diagramm sehe ich, daß der interne RC bei einer 
Temperaturspanne von 0..70°C von 7.9 bis 8.1MHz läuft. Bezogen auf die 
8MHz sind das knapp über +/- 1,0% und da lag ich doch gar nicht sooo 
falsch, oder? Und bezogen auf die oben genannten 3min sind das ca. 1,8s. 
Habe ich richtig gerechnet?

von Rolf Magnus (Gast)


Lesenswert?

amateur schrieb:
> Im professionellen Bereich da geht es im Grunde um zwei Dinge:
> 1. Kosten
> 2. Kosten
> 3. Kosten
> 4. Folgekosten.

Das gilt aber nur für Massenproduktion. Bei Einzelstücken sieht es 
vollkommen anders aus. Lieber kauft man eine fertige Baugruppe für 2000 
Euro, als sich den Aufwand zu geben, mit Eagle eine einfache 
Leiterplatte zu entwerfen, zu bestücken und zu testen. Letzteres ist 
nämlich teurer, auch wenn die Materialkoten dann nur 100 Euro betragen.


> Jedes unnötige Teil reduziert die Betriebssicherheit des Produktes.

Genauso wie das Fehlen jedes nötigen Teils, das von einem übereifrigen 
Sparer wegoptimiert wurde.
So aus der Erinnerung heraus kenne ich mehr Stories von Ausfällen, weil 
ein Teil weggelassen wurde, als von solchen, die durch zuviele Teile 
passiert sind.

von Thomas E. (thomase)


Lesenswert?

ich schrieb:
> Danke, Andreas!
> In diesem Diagramm sehe ich, daß der interne RC bei einer
> Temperaturspanne von 0..70°C von 7.9 bis 8.1MHz läuft. Bezogen auf die
> 8MHz sind das knapp über +/- 1,0% und da lag ich doch gar nicht sooo
> falsch, oder? Und bezogen auf die oben genannten 3min sind das ca. 1,8s.
> Habe ich richtig gerechnet?
Wahrscheinlich ja. Die Tendenz passt.

Aber guck dir mal die geichen Kurven beim Atmega8 an. Dann siehst du, wo 
die +-10%, die hier immer gehandelt werden, herkommen. Und da der 
Atmega8 bei 99,9731% der Leute hier State-Of-The-Art ist, hat ein AVR 
ganz allgemein nun mal 10% Abweichung.

Mit Atmega48 Co. kann man problemlos Datenübertragung bis 9600 Bit/s 
machen. Kalibriert man den Oszillator auf 7,3728MHz, was im definierten 
Bereich von 7,3-8,1 MHz liegt, hat man eine Baudratenfrequenz und kann 
mit Prescaler 8 bei 921,6Khz sogar 115K2 fahren.

Das kann ein  gemeiner Atmega8-User natürlich gar nicht glauben. Die 
Minderheit der 0,0269% Nicht(mehr)-Atmega8-User überrascht das 
selbstverständlich überhaupt nicht.

mfg.

von ich (Gast)


Lesenswert?

Stimmt, der ATMega88 & Co. ist ja auch bei der Stabilität gegenüber dem 
Mega88 besser geworden. Aber wie gesagt, ich mußt den internen bis jetzt 
noch nicht verwenden, weil ich immer mit zeitkritischen Sachen zu tun 
habe und deswegen gegerell mit Quarz arbeite.

Danke für die Tipps :-)

von ich (Gast)


Lesenswert?

Nochmal ich :-)
Im Diagramm vom M8 sehe ich zwar eine größere Abweichung als beim 88, 
aber so viel ist es auch wieder nicht. Bei 20°C sind es 8.1MHz, bei 70°C 
sind es 7.9MHz. Das ist doch auch noch weit von 10% weg...

von Digi S. (digispark)


Lesenswert?

Beim Toaster gebe ich Euch recht, was den Quarz betrifft.

Anders sieht es aber bei den Pullup-Widerständen aus. Je nach verbautem 
Prozessor können das bis zu 70k oder 80k für die internen sein. Je höher 
dieser Widerstandswert ist, desto anfälliger ist die Steuerung gegen 
Störeinflüsse (wurde oben auch schon mal erwähnt). Die häufigsten 
Störungen, die zu Problemen führen dürften hier z. B. Verschutzungen der 
Taster sein, die zu höheren Kriechströmen führen können und ähnliches. 
Je hochohmiger der Pullup- /down- Widerstand ist, um so eher führt das 
zu Problemen.

Die meisten Empfehlungen die ich bislang gelesen habe gehen in Richtung 
5k bis 10k (letztere verbaue ich eigentlich standardmäßig). Siehe z. B. 
auch: http://www.elektronik-kompendium.de/public/schaerer/pullr.htm

von Thomas E. (thomase)


Lesenswert?

ich schrieb:
> Nochmal ich :-)
> Im Diagramm vom M8 sehe ich zwar eine größere Abweichung als beim 88,
> aber so viel ist es auch wieder nicht. Bei 20°C sind es 8.1MHz, bei 70°C
> sind es 7.9MHz. Das ist doch auch noch weit von 10% weg...

Betrachte das mal über den gesamtem Spannungsbereich. Den 88er kannst du 
bei Zimmertemperatur von 1,8 - 5V ohne Nachkalibrierung für DÜ bis 9600 
einsetzen. Der 8er liefert mit Werkskalibrierung bei 5V/25° 8Mhz, bei 
2,7V nur noch 7,2MHz.

mfg.

von ich (Gast)


Lesenswert?

Thomas Eckmann schrieb:
>
> Betrachte das mal über den gesamtem Spannungsbereich. Den 88er kannst du
> bei Zimmertemperatur von 1,8 - 5V ohne Nachkalibrierung für DÜ bis 9600
> einsetzen. Der 8er liefert mit Werkskalibrierung bei 5V/25° 8Mhz, bei
> 2,7V nur noch 7,2MHz.
>
> mfg.

Ja, in Bezug auf die Spannung hast du recht. Ich habe es nur auf die 
Temperatur bezogen, weil weiter oben davon die Rede war. Kann natürlich 
sein, daß der Toaster auch keine stabilen 5V hat, sonden diese auch mit 
der Temperatur weglaufen, dann addieren sich die Fehler :-)

von Thomas E. (thomase)


Lesenswert?

ich schrieb:
> Ja, in Bezug auf die Spannung hast du recht. Ich habe es nur auf die
> Temperatur bezogen, weil weiter oben davon die Rede war. Kann natürlich
> sein, daß der Toaster auch keine stabilen 5V hat, sonden diese auch mit
> der Temperatur weglaufen, dann addieren sich die Fehler :-)

Ich denke da jetzt weniger an den Toaster als allgemein an 
Batteriebetrieb. Da läuft der Atmega8 ja völlig aus der Spur wenn die 
Spannung absinkt.

mfg.

von ich (Gast)


Lesenswert?

Stimmt, da sind wir uns einig. Da ist beim 88er schon viel gemacht 
worden. Ich bin eben nur auf den Beitrag von Martin Kreiner eingegangen.

Schönen Abend!

von Markus (Gast)


Angehängte Dateien:

Lesenswert?

ich schrieb:
> Hallo Markus,
>
> ich hab jetzt auf die Schnelle im Datenblatt keine Angabe gefunden, wie
> weit der interne RC bei einer bestimmten Temperaturdifferenz driftet.
> Wenn du von +-10% schreibst, würde das ja bedeuten, daß die 8MHz von
> 7,2..8,8MHz laufen würden.

Ich hab mich auf einen ATtiny45 bezogen mit Werkskalibrierung. 
(Datenblatt S. 164)
Ja, wenn man ihn kalibriert, wird er wesentlich genauer.

Ich denke aber, das bedeutet in der Massen-Produktion doch auch wieder 
einen zusätzlichen Arbeitsschritt, oder? (Das würde doch auch wieder 
etwas Kosten verursachen, oder irre ich mich?) Von dem her, habe ich das 
Gefühl, wird man daher lieber gleich einen Quarz verwenden, der ohne 
Kalibrierung genau ist.

von ich (Gast)


Lesenswert?

Hm, also ich denke, hier stimmen wir alle überein.
Die neueren sind genauer und laufen weniger als die älteren Typen. Und 
wenn man die Genauigkeit nicht braucht, weil eben beispielsweise nur 
unkritische Steuerungs- oder Logik-Aufgaben zu bewältigen sind, kann man 
getrost den inneren RC nehmen.
Und bei den Pullups kommt es auch darauf an, ob die inneren reichen. 
Wenn die eben zu hochohmig sind, braucht man außen noch welche. Immer je 
nach Einsatz-Zweck...

von Thomas E. (thomase)


Lesenswert?

Markus schrieb:
> ich schrieb:
>> Hallo Markus,
>>
>> ich hab jetzt auf die Schnelle im Datenblatt keine Angabe gefunden, wie
>> weit der interne RC bei einer bestimmten Temperaturdifferenz driftet.
>> Wenn du von +-10% schreibst, würde das ja bedeuten, daß die 8MHz von
>> 7,2..8,8MHz laufen würden.
>
> Ich hab mich auf einen ATtiny45 bezogen mit Werkskalibrierung.
> (Datenblatt S. 164)
> Ja, wenn man ihn kalibriert, wird er wesentlich genauer.
>
> Ich denke aber, das bedeutet in der Massen-Produktion doch auch wieder
> einen zusätzlichen Arbeitsschritt, oder? (Das würde doch auch wieder
> etwas Kosten verursachen, oder irre ich mich?) Von dem her, habe ich das
> Gefühl, wird man daher lieber gleich einen Quarz verwenden, der ohne
> Kalibrierung genau ist.
Das sehe ich grundsätzlich genau so. Allerdings sind dann vom Tiny45 
zwei Pins weg. Und mit seiner Pll hat er noch andere Qualitäten. Bei 
Controllern mit mehr Pins, z.B. 4313, kommt ein Quarz dran und fertig.

Nur bei Atmega 48 & Co. sieht das etwas anders aus.
Da kann man am Quarz- Anschluss alternativ zum normalen Quarz einen 
Uhrenquarz anschliessen und Timer2 asynchron damit takten, was im 
Batteriebetrieb, wenn er sich selbst aufwecken können soll, die 
stromsparendste Lösung ist. Soll in dieser Konstellation 
Datenübertragung gemacht werden, kann der Controller sich selbst zur 
Laufzeit mit dem Uhrenquarz als Zeitreferenz auf 7,3728MHz(921,6KHz) 
kalibrieren.

mfg.

von Markus (Gast)


Lesenswert?

Thomas Eckmann schrieb:
> Nur bei Atmega 48 & Co. sieht das etwas anders aus.
> Da kann man am Quarz- Anschluss alternativ zum normalen Quarz einen
> Uhrenquarz anschliessen und Timer2 asynchron damit takten, was im
> Batteriebetrieb, wenn er sich selbst aufwecken können soll, die
> stromsparendste Lösung ist. Soll in dieser Konstellation
> Datenübertragung gemacht werden, kann der Controller sich selbst zur
> Laufzeit mit dem Uhrenquarz als Zeitreferenz auf 7,3728MHz(921,6KHz)
> kalibrieren.

Interessanter Ansatz. Danke für den Tipp!

von Frühstücker (Gast)


Lesenswert?

Quarz und externe Pullups braucht es im Normalbetrieb sicher nicht.
Ich sehe die Möglichkeit, dass der Toaster durch einen EMV-Test musste, 
bevor er in den Handel kam. Das soll es ja noch geben.
Hier wären größere Pullup-Ströme vorteilhafter.

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
Noch kein Account? Hier anmelden.