Forum: Mikrocontroller und Digitale Elektronik Arduino Nano auf 20 Mhz?


von Me (Gast)


Lesenswert?

Hi,

der Arduino Nano kommt mit einem 16 Mhz Quartz, laut Datenblatt kann der 
ATmega328P allerdings 20 MHz.

Gibt es irgend einen sinnvollen Grund für diese Beschränkung des Nano 
oder könnte man diesen auch einfach durch einen 20 MHz Quartz ersetzen?

Danke!

von Stefan F. (Gast)


Lesenswert?

Alle Arduino Module liefen ursprünglich mit 16MHz, und die ersten 
konnten auch nicht schneller. Man hat das sicher beibehalten, um hier 
keine unnötige Verwirrung zu stiften.

> könnte man diesen auch einfach durch einen 20 MHz Quartz ersetzen

Kann man, dann aber vermutlich mit anderen Lastkapazitäten und du 
brauchst einen modifizierten Bootloader.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Quarz ohne "t".

Ein Grund, bei 16 MHz zu bleiben, könnte die in diversen Libraries etc. 
vorhandenen Berechnungen für die Timerprogrammierung und für 
Verzögerungen etc. sein, die bei anderem Takt angepasst werden müssten.

Ansonsten sind 20 MHz gerade mal 25% mehr als 16 MHz, das kann man 
messen, aber nicht in Form schnellerer Reaktionszeit o.ä. spüren.

von Joachim B. (jar)


Lesenswert?

Rufus Τ. F. schrieb:
> Ansonsten sind 20 MHz gerade mal 25% mehr als 16 MHz, das kann man
> messen, aber nicht in Form schnellerer Reaktionszeit o.ä. spüren.

die größte Zeitvernichtung bleibt delay() und ungünstige Programmierung.

Meist reicht ein kleinerer Takt und bessere Programmierung, das versteht 
heute keiner mehr weswegen immer mehr nach GHz gerufen wird.

Ein guter Grund den Quarz zu tauschen wäre nur Baudratenquarz um seriell 
kleinere Fehler bei hohen Baudraten zu bekommen, aber dazu müsste der 
Bootloader neu gemacht werden.

Rufus Τ. F. schrieb:
> Ein Grund, bei 16 MHz zu bleiben, könnte die in diversen Libraries etc.
> vorhandenen Berechnungen für die Timerprogrammierung

sollte mit F_CPU und angepasster Board.txt eigentlich kein Problem sein, 
der mini 328p mit 8MHz kanns ja auch.

von c.m. (Gast)


Lesenswert?

könnte es sein, dass 16MHz eine bessere zeitbasis für UART liefern? 
weiss ich jetzt nicht auswendig.

Joachim B. schrieb:
> Meist reicht ein kleinerer Takt und bessere Programmierung, das versteht
> heute keiner mehr weswegen immer mehr nach GHz gerufen wird.

GHz braucht man vor allem wenn man fette frameworks für sehr 
hochsprachige aufgaben verwenden will. für kleine pipi-programme auf 
microcontrollern sicher nicht.
obwohl… ich fände es schon schön wenn marlin mehr steps/sekunde 
rausklöppeln könnte.

von Joachim B. (jar)


Lesenswert?

c.m. schrieb:
> GHz braucht man vor allem wenn man fette frameworks für sehr
> hochsprachige aufgaben verwenden will. für kleine pipi-programme auf
> microcontrollern sicher nicht.

und deswegen werden die kleinen µC immer mehr verachtet?
man kann es ja beobachten auch das gehts rasant aufwärts oft ohne Not 
ESP vs. AVR

ich gebe aber zu mehr Leistung und mehr RAM ist nicht zu verachten, 
preislich nimmt sich das ja für Hobbyuser nichts.

Übrigens kleiner µC wenn in milionenfach verkauften Küchenmaschinen 
MUM44 ein PIC eingesetzt wird regt sich keiner auf.

von Erwin D. (Gast)


Lesenswert?

c.m. schrieb:
> ich fände es schon schön wenn marlin mehr steps/sekunde

Wer ist 'marlin'?

von c.m. (Gast)


Lesenswert?

Erwin D. schrieb:
> c.m. schrieb:
>> ich fände es schon schön wenn marlin mehr steps/sekunde
>
> Wer ist 'marlin'?

3d drucker firmware. google.

von Joachim B. (jar)


Lesenswert?

Joachim B. schrieb:
Bewertung -1

:P na und :)

von Luki (Gast)


Lesenswert?

Läuft der Nano nicht mit 3.3V?
Da wäre max 16Mhz lt. Datenblatt

Figure 32-1. Maximum Frequency vs. VCC

von avr (Gast)


Lesenswert?

Luki schrieb:
> Da wäre max 16Mhz lt. Datenblatt
>
> Figure 32-1. Maximum Frequency vs. VCC

16 MHz macht er ziemlich sicher nur bei 4,5 V. Ohne ins Datenblatt 
geschaut zu haben, machen die AVRs eher maximal 12 MHz bei 3,3 V.

von Korinthen Kacka (Gast)


Lesenswert?

avr schrieb:
> 16 MHz macht er ziemlich sicher nur bei 4,5 V.

Nach dem Prinzip "Prinzipienreiter" ja. In der Paxis gehen
die Dinger bei 3.3V auch noch mit 20 MHz. Nicht garantiert,
und nicht in allen erdenklichen Lebensumständen, aber mit
ausprobieren schon ziemlich gut ..... es soll auch Leute
geben die lassen sie sogar mit mehr als 20 MHz (bei 5V)
laufen.

von avr (Gast)


Lesenswert?

Korinthen Kacka schrieb:
> Nach dem Prinzip "Prinzipienreiter" ja. In der Paxis gehen
> die Dinger bei 3.3V auch noch mit 20 MHz.

Man könnte auch zwischen Pfusch und professionell unterscheiden. Und wer 
sich dessen bewusst ist, sollte keine Designs im Internet 
veröffentlichen, die bei manchen Leuten möglicherweise nicht 
funktionieren.

von ochje (Gast)


Lesenswert?

avr schrieb:
> Korinthen Kacka schrieb:
>> Nach dem Prinzip "Prinzipienreiter" ja. In der Paxis gehen
>> die Dinger bei 3.3V auch noch mit 20 MHz.
>
> Man könnte auch zwischen Pfusch und professionell unterscheiden. Und wer
> sich dessen bewusst ist, sollte keine Designs im Internet
> veröffentlichen, die bei manchen Leuten möglicherweise nicht
> funktionieren.

Spar dir den Atem, das ist die Arduino - Fraktion.
Pfusch per Definition. Da erwartet man nix anders, als dass das Zeug 
absemmelt, wenn eine Fliege daneben hustet. Oft mit einer Rauchfahne. 
Für diese Leute ist das normal, da wird nicht mal nach dem Fehler 
gesucht.
Und wenn jemand gescheit arbeit - dann ist das "Korinthenkackerei".

Was die EIGENTLICHE Frage angeht:
Was spricht gegen den Arduino Due? Der hat einen dicken 32-Bit-ARM 
drauf, der deutlich schneller sein sollte.
https://store.arduino.cc/arduino-due
Wennn man Ansprüche an die Perfomance hat, hier wird man geholfen.

von Stefan F. (Gast)


Lesenswert?

> Man könnte auch zwischen Pfusch und professionell unterscheiden.

Ich musste gestern umlernen und zur Kenntnis nehmen, dass 
"professionell" etwa so viel wie "damit Geld verdienen" oder 
"berufsmäßig ausführen"  bedeutet.

Wenn ich so sehe, was bei Amazon, Ebay und Aliexpress an Elektronik, 
Spielwaren und Kleidung verkauft wird, befürchte ich, dass Pfusch leider 
häufig professionell ist.

Dann gibt es als zweite Bedeutung "fachmännisch anerkannt". Deutsch 
nervt!

von Karsten U. (herr_barium)


Lesenswert?

Stefanus F. schrieb:
> Deutsch
> nervt!

это правильно. Вот почему говорят по-русски!
:)

von Manfred (Gast)


Lesenswert?

Joachim B. schrieb:
> die größte Zeitvernichtung bleibt delay() und ungünstige Programmierung.

Du hast schon mitbekommen, dass es auch bei Arduino einen Timer gibt, 
den man abfragen kann? Spätestens, wenn man Tasten abfragen und / oder 
eine Regelschleife bauen will, wird delay() wenig glorreich enden.

> sollte mit F_CPU und angepasster Board.txt eigentlich kein Problem sein,
> der mini 328p mit 8MHz kanns ja auch.

In der Board.txt sehe ich aber auch, dass der ProMini_8MHz einen anderen 
Bootloader hat.

Luki schrieb:
> Läuft der Nano nicht mit 3.3V?
> Da wäre max 16Mhz lt. Datenblatt

Der Nano hat 5 Volt. Wenn Du das Datenblatt lesen würdest, wäre klar, 
dass 16MHz @5V von Atmel nicht garantiert sind.

Korinthen Kacka schrieb:
> Nach dem Prinzip "Prinzipienreiter" ja. In der Paxis gehen
> die Dinger bei 3.3V auch noch mit 20 MHz.

Mein Bedauern. Es wurde schon korrekt gesagt:
avr schrieb:
> Man könnte auch zwischen Pfusch und professionell unterscheiden.

ochje schrieb:
> Spar dir den Atem, das ist die Arduino - Fraktion.
> Pfusch per Definition.

Was soll das denn? Meine Nanos oder ProMini stecken auf Lochrasterkarten 
mit selbst entwickelter Peripherie, welche einer groben Nachrechnung 
stets Stand hält.

von Joachim B. (jar)


Lesenswert?

Manfred schrieb:
> In der Board.txt sehe ich aber auch, dass der ProMini_8MHz einen anderen
> Bootloader hat.

ja und wenn der Bootloader angepasst wird....

Joachim B. schrieb:
> Ein guter Grund den Quarz zu tauschen wäre nur Baudratenquarz um seriell
> kleinere Fehler bei hohen Baudraten zu bekommen, aber dazu müsste der
> Bootloader neu gemacht werden.

liest du auch oder schreibst du nur?

von spess53 (Gast)


Lesenswert?

Hi

>Der Nano hat 5 Volt. Wenn Du das Datenblatt lesen würdest, wäre klar,
>dass 16MHz @5V von Atmel nicht garantiert sind.

Welches Datenblatt vom ATMega328 benutzt du? Oder woher stammt diese 
"Erkenntnis"?

Meine Datenblätter vom ATMega328(P) sagen einheitlich

 0 - 20MHz @ 4.5 - 5.5V

MfG Spess

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

spess53 schrieb:
>>Der Nano hat 5 Volt. Wenn Du das Datenblatt lesen würdest, wäre klar,
>>dass 16MHz @5V von Atmel nicht garantiert sind.
>
> Welches Datenblatt vom ATMega328 benutzt du? Oder woher stammt diese
> "Erkenntnis"?

Ich nehme alles zurück und behaupte das Gegenteil - hier war die 
Schreibhand schneller als mein Hirn. Da hätte stehen sollen 16MHz @ 
3,3V.

Ich hänge das Diagramm mal an.

von Joachim B. (jar)


Lesenswert?

Manfred schrieb:
> Der Nano hat 5 Volt

nicht wenn er von USB Spannung bekommt

https://www.arduino.cc/en/uploads/Main/ArduinoNano30Schematic.pdf

da ist noch eine Diode im Weg (und meine Messungen haben nicht an jedem 
USB 5V ergeben, so das 16 MHz sicherer sind am USB)

von Manfred (Gast)


Lesenswert?

Joachim B. schrieb:
> da ist noch eine Diode im Weg (und meine Messungen haben nicht an jedem
> USB 5V ergeben, so das 16 MHz sicherer sind am USB)

Wir nehmen also zur Kenntnis, dass die Entwickler des A* die 16MHz 
sinnvoll gewählt haben und man sie nicht verändern sollte, OK?

von Alex G. (dragongamer)


Lesenswert?

Manfred schrieb:
> Joachim B. schrieb:
>> da ist noch eine Diode im Weg (und meine Messungen haben nicht an jedem
>> USB 5V ergeben, so das 16 MHz sicherer sind am USB)
>
> Wir nehmen also zur Kenntnis, dass die Entwickler des A* die 16MHz
> sinnvoll gewählt haben und man sie nicht verändern sollte, OK?
Wenn man mit den standardboards arbeitet und auf Numemr sicher gehen 
will, ja.

Wenn man aber schon den Quarz auslöten und ersetzen will, könnte man 
natürlich auch andere Teile verändern und die Spannungsversorgung 
sichergehen.

von Joachim B. (jar)


Lesenswert?

Alex G. schrieb:
> Wenn man aber schon den Quarz auslöten und ersetzen will, könnte man
> natürlich auch andere Teile verändern und die Spannungsversorgung
> sichergehen.

jau
https://www.pololu.com/product/2115

von Philipp K. (philipp_k59)


Lesenswert?

Manfred schrieb:
> Wir nehmen also zur Kenntnis, dass die Entwickler des A* die 16MHz
> sinnvoll gewählt haben und man sie nicht verändern sollte, OK?

Das geht, die Library ist sogar so intelligent das die das merkt.

Allerdings gehen nur volle Mhz zahlen die durch 2/4 Teilbar sind genau 
genug soweit ich das weiß.

Man muss nur einen optiboot Bootloader für 20 Mhz 
anpassen/kompilieren/Downloaden und die Boards.txt ändern.

Gegebenfalls muss man mal eine Library zu Fuß anpassen, wobei fast jede 
auch nur FCPU benutzt da man 8Mhz oder 16Mhz haben kann.

Das kann man dann ja sehen.

von Joachim B. (jar)


Lesenswert?

Philipp K. schrieb:
> Gegebenfalls muss man mal eine Library zu Fuß anpassen

das musste ich bei meinem arduino mighty mini 1284p clone machen weil 
der Zugriff auf fastLED für die WS2812b um 10% verlangsamt war,

https://www.mikrocontroller.net/attachment/244099/m1284p_timing.jpg
Beitrag "Arduino FastLED LIB vs. WS28xx LIB"

ich hatte einfach die entsprechende Stelle um F_CPU * 9L/10L erweitert 
und schon passte das Timing wieder
Beitrag "Re: Arduino FastLED LIB vs. WS28xx LIB"

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.