für ein Projekt habe ich den Arduino Mini Pro mit SMD Bauteilen nachgebaut und geringfügig erweitert (Siehe Bild).
Programmiert wird mit dem avrisp mk2. Den Bootloader konnte ich damit schon erfolgreich aufspielen. Der Blink Sketch ließ sich damit auch problemlos auf das Board aufspielen.
Jetzt aber zum Problem:
Wenn ich bei dem Blink Sketch jeweils ein delay(10000) einstelle, solte die LED 10s an und 10s aus sein.
Jedoch ist die LED auf meinem Board nur ca. 6,4s an und 6,4s aus. Woran kann dies liegen ?
elektro31:
Wenn ich bei dem Blink Sketch jeweils ein delay(10000) einstelle, solte die LED 10s an und 10s aus sein.
Jedoch ist die LED auf meinem Board nur ca. 6,4s an und 6,4s aus. Woran kann dies liegen ?
Das könnte daran liegen, dass Du anstelle des geplanten 16 MHz Schwingquarzes einen 10 MHz Schwingquarz eingebaut hast.
elektro31:
Steht 25,00000M drauf. Hat Reichelt mir also wirklich ein falsches Bauteil geliefert? >:(
Sieht ja wohl ganz so aus.
Einen AVR Atmega Controller auf 25 MHz zu übertakten, funktioniert möglicherweise schon mal an sich nicht, ein Atmega328 ist überhaupt nur bis 20 MHz maximale Taktrate spezifiziert.
Auch die Arduino-Libraries können damit nicht umgehen. D.h. selbst wenn der Quarz Deinen AVR mit 25 MHz Übertaktung noch zum Takten bringt, mußt Du Dir Deine Timing-Library dafür natürlich selber schreiben und kannst nicht die Arduino-Core Library dafür verwenden.
Wenn ich bei dem Blink Sketch jeweils ein delay(10000) einstelle, solte die LED 10s an und 10s aus sein.
Jedoch ist die LED auf meinem Board nur ca. 6,4s an und 6,4s aus.
16MHz *10/6,4 = 25MHz: der Aufdruck auf dem Quarz stimmt also.
Ist natürlich ausserhalb der Spezifikation (max. 20 MHz) aber schwingt wohl trotzdem.
Müsstest du dir in der boards.txt einen zusätzlichen Eintrag (z.B. myfastmini statt uno) mit
myfastmini.build.f_cpu=25000000L
bauen.
Nachdem er schon eingelötet ist, brauchst du ihn an Reichelt nicht mehr zurückzuschicken
delay() und millis() schon, ob alle Libraries den Wert verwenden oder "wissen", dass ein Arduino immer mit 16 MHz läuft, wäre rauszukriegen.
Zum Glück wird der ganze Kram immer komplett kompiliert, kann also klappen.
Ich melde mich nochmal. Der Arduino läuft jetzt zwar, aber es kommt immer wieder zu Programm Störungen.
Was mir aufgefallen ist, dass der Spannungsregler (MIC5205) extrem heiß wird. Gemessen habe ich bis zu 85 °C und dann kam es auch meistens zu den Störungen.
Kann es sein, dass diese auch durch den falschen Quarz verursacht wird?
das geht total beschissen. Hab aber schon gestaunt wie du den so sauber drauf gelötet hast. Sieht nämlich astrein aus.
Am besten Du hast eine Entlötsaugpumpe. So ein Handpumpe reicht aus. Entlötzlitze ist auch nicht falsch und ein Streifen Papier. Erstmal so viel wie möglich Lötzinn wegnehmen. Notfalls nochmal mit der Entlötlitze ran. Wenn der dann noch festhängt. Mit Lötspitze erwärmen und den Streifen Papier dazwischen schieben. Notfalls mit 4 Händen.