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?
Frank S. schrieb: > einen eigenen Quarz für die Takterzeugung eingebaut Nö Frank S. schrieb: > aber überall wird einem > geraten, externe Widerstände zu verbauen Weil die internen eventuell zu schwach für die Anwendung sind.
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)
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.
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
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.
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.
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...
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.
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...
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.
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%.
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...
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.
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.
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?
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.
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.
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 :-)
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...
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
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.
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 :-)
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.
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!
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.
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...
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.
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.