Hallo, ich arbeite mit einem Arduino Uno. Für diesen habe ich mir ein ISP Shield hergestellt, damit ich ATMega328P's flashen kann. Das hat bis gestern auch wunderbar funktioniert. Seitdem sind alle aufgespielten Programme (ich nutze auch die Arduino Software) viel zu langsam. Ausprobiert habe ich bereits die Hardware zu tauschen in der der ATMega eingesetzt werden soll, Arduino getauscht. 6 ATMegas getauscht. .h Dateien gelöscht und neu heruntergeladen, Arduino Software deinstalliert und neu heruntergeladen. Es hilft alles nichts, der Fehler bleibt bestehen. Woran kann das liegen??? Software, die aufgespielt werden soll, wurde nicht verändert. Bitte um Hilfe!!!
chris schrieb: > CLKDIV8 Das habe ich auch schon in div. Foren gelesen. Aber jedoch nur unter anderen Programmierprogrammen (Sagt man das so?). Wie gehe ich da mit der Arduino Software ran?
Mathis S. schrieb: > chris schrieb: >> CLKDIV8 > > Das habe ich auch schon in div. Foren gelesen. Aber jedoch nur unter > anderen Programmierprogrammen (Sagt man das so?). Wie gehe ich da mit > der Arduino Software ran? Dafür gibt's das "Fuse-Shield". Damit kann man auch die CLKDIV8 Fuse umstellen.
Cyblord -. schrieb: > Mathis S. schrieb: >> chris schrieb: >>> CLKDIV8 >> >> Das habe ich auch schon in div. Foren gelesen. Aber jedoch nur unter >> anderen Programmierprogrammen (Sagt man das so?). Wie gehe ich da mit >> der Arduino Software ran? > > Dafür gibt's das "Fuse-Shield". Damit kann man auch die CLKDIV8 Fuse > umstellen. Aber wieso verstellt sich das von allein? Da habe ich ja nie was dran gemacht?!
Mathis S. schrieb: > chris schrieb: >> CLKDIV8 > > Das habe ich auch schon in div. Foren gelesen. Aber jedoch nur unter > anderen Programmierprogrammen (Sagt man das so?). Wie gehe ich da mit > der Arduino Software ran? Die Arduino IDE nutzt zum flashen AVRDUDE. Öffne mal cmd.exe und gib avrdude ein. Mathis S. schrieb: > Aber wieso verstellt sich das von allein? Da habe ich ja nie was dran > gemacht?! Die ist normalerweise drin. Sollte aber raus, weil man sonst nur ein achtel der gewählten Taktquelle hat
:
Bearbeitet durch User
Jan H. schrieb: > Mathis S. schrieb: >> chris schrieb: >>> CLKDIV8 >> >> Das habe ich auch schon in div. Foren gelesen. Aber jedoch nur unter >> anderen Programmierprogrammen (Sagt man das so?). Wie gehe ich da mit >> der Arduino Software ran? > > Die Arduino IDE nutzt zum flashen AVRDUDE. > > Öffne mal cmd.exe und gib avrdude ein. der Befehl "avrdude" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
Mathis S. schrieb: > der Befehl "avrdude" ist entweder falsch geschrieben oder konnte nicht > gefunden werden. Eigentlich müsste das funktionieren. Zumindest hab ich bei Tante Google nur gefunden, dass Arduino avrdude einfach normal installiert. Bei mir geht's, ich hatte es aber vor der IDE drauf.
Es gibt im grunde zwei möglichkeiten: - Der Arduino ist "schuld" - Die Software ist "schuld" Um diese Fälle auseinander zu legen machst du folgendes: Du schreibst (am besten an einem anderen PC) ein simpelstes blinky programm und lädst das auf den ardu. Entweder blinkt es richtig, dann ist der pfusch in deinem alten code, oder es blinkt falsch, dann ist es an dem arduino.
Mathis S. schrieb: > Cyblord -. schrieb: >> Mathis S. schrieb: >>> chris schrieb: >>>> CLKDIV8 >>> ... > Aber wieso verstellt sich das von allein? Da habe ich ja nie was dran > gemacht?! Das ist das Problem: Das ist werksseitig gesetzt, d.h. du bekommst es von Atmel nur mit gesetztem CLKDIV8, genauer: Der (bzw. jeder) Atmega verlässt Atmel mit einem Systemtakt von 1 MHz. Da der Atmega328 intern einen 8 MHz Oszilator hat wird hier das CLKDIV8-Fusebit (Clockteiler wird statt auf 1 auf 8 gesetzt beim Reset) gesetzt.
Michael K. schrieb: > Mathis S. schrieb: >> Cyblord -. schrieb: >>> Mathis S. schrieb: >>>> chris schrieb: >>>>> CLKDIV8 >>>> > ... >> Aber wieso verstellt sich das von allein? Da habe ich ja nie was dran >> gemacht?! > > Das ist das Problem: Das ist werksseitig gesetzt, d.h. du bekommst es > von Atmel nur mit gesetztem CLKDIV8, genauer: Der (bzw. jeder) Atmega > verlässt Atmel mit einem Systemtakt von 1 MHz. Da der Atmega328 intern > einen 8 MHz Oszilator hat wird hier das CLKDIV8-Fusebit (Clockteiler > wird statt auf 1 auf 8 gesetzt beim Reset) gesetzt. Den internen oszillator von 8MHz nutze ich nicht. Sowohl das ISP Shield als auch die fertige Schaltung wo der ATMega eingesetzt werden sollen haben eine externe crystal Beschaltung mit einem 16MHz Quarz. Und wie gesagt, bis gestern funktionierte ja auch alles einwandfrei. Von jetzt auf gleich, war dann das Problem vorhanden.
Max D. schrieb: > Es gibt im grunde zwei möglichkeiten: > - Der Arduino ist "schuld" > - Die Software ist "schuld" > > Um diese Fälle auseinander zu legen machst du folgendes: > Du schreibst (am besten an einem anderen PC) ein simpelstes blinky > programm und lädst das auf den ardu. > > Entweder blinkt es richtig, dann ist der pfusch in deinem alten code, > oder es blinkt falsch, dann ist es an dem arduino. Ich habe jetzt zwei Rechner, 3 Arduinos (als ISP Programmer genutzt) und 6 ATMegas durch. Sowohl beim Alten Quellcode als auch beim Blinky Programm tritt nach wie vor der Fehler auf.
Mathis S. schrieb: > Ich habe jetzt zwei Rechner, 3 Arduinos (als ISP Programmer genutzt) und > 6 ATMegas durch. Sowohl beim Alten Quellcode als auch beim Blinky > Programm tritt nach wie vor der Fehler auf. Dann lösch doch endlich die CLKDIV8-Fuse!
Die CLKDIV8 Fuse ist nur gesetzt, wenn man einen neuen Atmel-Chip nimmt. Nimmt mein ein Arduino-Board ist die Fuse niemals gesetzt! Nie. Bei keinem Arduino Board. Hast du einen Arduino Uno mit Sockel und hast den Chip getauscht? Ja, dann kann die Fuse gesetzt sein. Hast du aber einen Arduino Uno mit Atmel im SMD-Format gibt es keinen Grund weshalb die Fuse gesetzt sein sollte.
Kaj schrieb: > Die CLKDIV8 Fuse ist nur gesetzt, wenn man einen neuen Atmel-Chip > nimmt. Nimmt mein ein Arduino-Board ist die Fuse niemals gesetzt! > Nie. Bei keinem Arduino Board. > Hast du einen Arduino Uno mit Sockel und hast den Chip getauscht? > Ja, dann kann die Fuse gesetzt sein. > Hast du aber einen Arduino Uno mit Atmel im SMD-Format gibt es keinen > Grund weshalb die Fuse gesetzt sein sollte. > Für diesen habe ich mir ein ISP > Shield hergestellt, damit ich ATMega328P's flashen kann. Wenn man per ISP drauf geht, kann man natürlich auch die Fuses ändern. Auch versehentlich. Weil Arduino Nutzer das Pferd aber wie immer von hinten aufzäumen, gibt es diese Probleme. Normalerweise ist das programmieren per ISP und das damit verbundene setzen der Fuses absolute Grundlage für jeden AVR Nutzer. Mal schnell eine Fuse löschen ist da kein Ding mehr. Aber Arduinos fehlt das Werkzeug, die Software und das gesamte Verständnis für alles. Da ist nur Leere.
Frank M. schrieb: > Mathis S. schrieb: >> Ich habe jetzt zwei Rechner, 3 Arduinos (als ISP Programmer genutzt) und >> 6 ATMegas durch. Sowohl beim Alten Quellcode als auch beim Blinky >> Programm tritt nach wie vor der Fehler auf. > > Dann lösch doch endlich die CLKDIV8-Fuse! Ja, würde ich ja gerne. Wenn du mir verrätst wie...
Mathis S. schrieb: > Und wie gesagt, bis gestern funktionierte ja auch alles einwandfrei. Von > jetzt auf gleich, war dann das Problem vorhanden. "Gestern gings noch" ist immer ein Indiz dafür, daß das Problem vor der Schaltung sitzt. Da verändert sich nichts von selbst. Wenn du deine Fuses lesen und einstellen kannst, dann kontrolliere das und stelle es ggf. richtig ein. Wenn du das nicht kannst, läuft jeder neu erworbene Controller mit 1MHz intern. Wenn dir die Geschwindigkeit und die Genauigkeit des internen Oszillators ausreichen, kannst du den Taktteiler, der mit der CKDIV8-Fuse vorgegeben wird, auch per Software einstellen. In der AVR-Lib gibt es dafür die "power.h", die eine komfortable Funktion dafür bereitstellt. Wie das bei Arduino aussieht, weiss ich nicht. Aber das lässt sich natürlich auch "zu Fuß" einstellen. Näheres sagt dir das Datenblatt. Mathis S. schrieb: > Ich habe jetzt zwei Rechner, 3 Arduinos (als ISP Programmer genutzt) und > 6 ATMegas durch. Sowohl beim Alten Quellcode als auch beim Blinky > Programm tritt nach wie vor der Fehler auf. Daß du uns das mitteilst, bringt dich kein bißchen weiter. Der einzige Weg ist, die Fuses zu kontrollieren und ggf. richtig einzustellen.
avrdude -c avrisp -p m328p -P hier dein COM-Port -U lfuse:w:0xd7:m -U hfuse:w:0xd9:m -U efuse:w:0xfc:m
Mathis S. schrieb: > Ja, würde ich ja gerne. Wenn du mir verrätst wie... http://technikhobby.blogspot.de/2013/01/arduinoisp-avr-chips-programmieren.html
Drücke einmal auf bootloader installieren, dann ist das Problem weg. Dann beschäftigst du dich einmal mit den Datenblättern der eingesetzten komponenten und hinterfragst mal die funktionsweise der tools die du einsetzt.
Flip B. schrieb: > Drücke einmal auf bootloader installieren, dann ist das Problem > weg. > Dann beschäftigst du dich einmal mit den Datenblättern der eingesetzten > komponenten und hinterfragst mal die funktionsweise der tools die du > einsetz Flip B. schrieb: > Drücke einmal auf bootloader installieren, dann ist das Problem > weg. > Dann beschäftigst du dich einmal mit den Datenblättern der eingesetzten > komponenten und hinterfragst mal die funktionsweise der tools die du > einsetzt. Ich traue es mich kaum zu schreiben.... bei all der Hektik gestern, habe ich den Schritt total vergessen :-/ ein ganz ganz fettes DANKE :'D
> Sowohl das ISP Shield als auch die fertige Schaltung wo der ATMega > eingesetzt werden sollen haben eine externe crystal Beschaltung mit > einem 16MHz Quarz. Ein angeschlossener Kristall wird nicht automatisch verwendet. Auch dazu müssen Fuses gesetzt werden. Nur so zur Info, falls du dich später nochmal über "falsche" Taktraten wunderst.
Mathis S. schrieb: > Für diesen habe ich mir ein ISP Shield hergestellt, damit ich ATMega328P's flashen kann. Dieser Schritt ist mir ehrlich gesagt nicht klar. Mal davon ab, dass die Teile ja normalerweise per Bootloader über den USB-Anschluss geflasht werden. Die UNOs die ich hier für die Azubis rumliegen habe, die haben einen sechs-poligen ISP Header mit verbaut. Du hast also ein Shield gebaut das einen ISP-Header drauf hat statt den ohnehin vorhandenen zu benutzen? Warum?
Rudolph schrieb: > Mathis S. schrieb: >> Für diesen habe ich mir ein ISP Shield hergestellt, damit ich ATMega328P's > flashen kann. > > Dieser Schritt ist mir ehrlich gesagt nicht klar. > Mal davon ab, dass die Teile ja normalerweise per Bootloader über den > USB-Anschluss geflasht werden. > > Die UNOs die ich hier für die Azubis rumliegen habe, die haben einen > sechs-poligen ISP Header mit verbaut. > Du hast also ein Shield gebaut das einen ISP-Header drauf hat statt den > ohnehin vorhandenen zu benutzen? Warum? Weil ich keinen Arduino bauen will, sondern den ATMega328P der zufällig auch auf dem Arduino Uno sitzt in einer Schaltung als Stand alone betreiben will. Der Arduino mit shield dient nur dazu, die Software auf den ATMega328 zu spielen. Hierbei wird auf dem Arduino das Beispielprogramm ArduinoISP installiert. Das Shield hat den Vorteil, dass es einen null-Kraft Sockel verbaut hat, sodass ich die ATMega's nur aufkelmmen brauche.
:
Bearbeitet durch User
Ein bisschen mehr Information und es macht deutlich mehr Sinn. :-)
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.