Hallo ihr lieben, hab jetzt erfolgreich den ganzen Tag mit meinem Arduino rumgebastelt und !ERFOLGREICH! einen ATTiny2313-20PU geflasht (mit nem Blinkprogramm). So, jedenfalls fahr ich grad total auf Atmels ab. Dennoch hab ich jetzt ein kleines Problem. Mit dem WinAVR Programmer's Notepad hab ich vorhin meine Makefile irgendwo rauskopiert usw. Mein momentanes "Problem" ist, das ich die F_CPU auf 1000000 stellen muss damit die Delay-Funktion richtig "rechnet". Aber auf dem Chip steht das er 20 MHz kann. Jetzt hab ich mich etwas umgeschaut und gelesen das ich "fuses" setzen muss. Ich stell mir diese "fuses" derzeit als eine Art "Register" im Controller vor wo ich globale Einstellungen treffen kann. So, jetzt hab ich in der makefile die ich kopiert habe auch was von fuses gelesen. Und im Datenblatt steh ich bei den Frequenzen immer Kondensatoren die da an Pins hängen. Jedenfalls um ehrlich zu sein bin ich derzeit etwas überfordert. Meine Frage ist jetzt: -> Wie schnell kann dieser ATTiny2313 jetzt "arbeiten" -> Wie setze ich diese Fuses? Hab mal die makefile angehängt. -> Sind "fuses" etwas einmaliges oder muss das bei jedem flash neu geschrieben werden? -> Brauch ich jetzt für "mehr" als diese 1 Mhz noch Kondensatoren? -> Im angehängten Abschnitt vom Datenblatt seh ich immer "von - bis" angaben. Sind diese Frequenzen "pi mal daumen"-Werte? -> Und was um Himmelswillen ist das Ding parallel zu XTAL2 + XTAL1 Mit freundlichen Grüßen, chris2go
Chris2go schrieb: > Und was um Himmelswillen ist das Ding parallel zu XTAL2 + XTAL1 Das ist ein Quarz. Den brauchst du wenn du mit 20MHz arbeiten willst. Der interne Oszillator kann nur max. 8MHz. Also einen Quarz mit der gewünschten Frequenz verwenden. Wie du allerdings mit dem Arduino die Fuses einstellst, kann ich dir nicht sagen.
Ok, wenn ich nun mit den "internen" 8 Mhz arbeiten möchte, brauche ich keine Kondensaturen und keinen Quatz? Das mit den Fuses wird wohl irgendwie mit dem avrdude zusammenhängen. Jetzt wäre noch intressant ob das mit den "fuses" einmalig gemacht werden muss oder mit jedem flashen neu gesetzt werden muss?! Trotzdem vielen dank soweit. Vielleicht kann ja noch jemand helfen :) Lg Chris2go
Bei 8MHz intern brauchst du keinen Quarz. Die Fuses werden beim flashen nicht geändert. Hier kannst du die nötigen Fuses abfragen und beim AVRdude eintragen. http://www.engbedded.com/fusecalc/
Um das eventuell noch etwas zu erläutern: Der tiny2313 hat einen internen RC-Oszillator, der immer mit (ungefähr, innerhalb der Toleranzen) 8MHz schwingt. Im Auslieferungszustand ist dort per Fuse noch ein Taktteiler vorgeschaltet, so dass der interne Takt nur noch 1MHz ist. Hat unter anderem den Grund, dass er bei dieser Freqzenz mit sämtlichen Spannungen funktioniert. Du kannst per Fuse das ganze einmalig umstellen, oder auch per Register zur Laufzeit ändern. Bei den Fuses muss man aufpassen, einmal eine falsche eingestellt und schon lässt er sich nicht mehr programmieren (Reset als IO-Pin oder externer Takt statt externer Quarz gewählt), ohne dass man zusätzliches Equipment verwendet. Schaue dir mal das CLKPR-Register im Datenblatt an, dort kannst du auch zur Laufzeit den Teiler von /8 auf /1 umstellen und somit an volle 8MHz kommen.
Hubert G. schrieb: > Bei 8MHz intern brauchst du keinen Quarz. Das geht sogar mit 16 MHz intern, wenn du auf den ATtiny861A (auch 20 Pins) umsteigst.
Vielen vielen dank für eure Hilfe. @Hubert: Habe die Seite auch gefunden, leider bin ich immer am Fuseread gescheitert. Problem war ich hatte die "Datenleitungen" um eine Pinreihe falsch im Arduino gesteckt [Freundin wollte essen also hab ichs kurz abgebaut gehabt]. ärgerlich @Moritz: Danke für die Information bezüglich der "Gefahr" beim falschstellen. War extra vorsichtig beim Fuse setzen. Erst lesen, dann auf dem fusecaln "interpretieren" und darüber dann den "DIV8" rausgenommen. Diesen dann an den Chip geschrieben und TADA, die blaue Led blinkt sich da einen vom Hocker ;D @Markus: Ja, in Zukunft werde ich mehr auf die spezifikationen der Chips achten. Mir war einfach erstmal billig wichtig. Dieses ArduinoISP ist ja nicht so... das Optimale Werkzeug. Aber ich dachte mir versuchste es halt und käufst den Billigsten Atmel mit mehr als 4 IO's. Der ATTiny2313 war so das sinnigste mit dem Einkaufspreis von 2,07€ :) Vielen dank nochmals und liebe Grüße, chris2go
Chris2go schrieb: > Dieses ArduinoISP ist ja nicht so... das Optimale Werkzeug. Aber ich > dachte mir versuchste es halt und käufst den Billigsten Atmel mit mehr > als 4 IO's. Der ATTiny2313 war so das sinnigste mit dem Einkaufspreis > von 2,07€ :) Dann möchte ich jetzt lieber nicht wissen, was du unter teuer verstehst. Guck mal hier: https://guloshop.de/shop/index.php?XTCsid=9ghkchef7r3rnqlio5u895bs70 Viel hat er nicht im Angebot. Aber was er hat, kann man auch gebrauchen. mfg.
Thomas Eckmann schrieb: > Dann möchte ich jetzt lieber nicht wissen, was du unter teuer verstehst. So meinte ich das nicht Thomas :) Ich weiß aus Erfahrung das ich mit so kleinen Elektronikkomponenten nicht das Perfekte Feingefühl hab. Studienbedingt komm ich oft am Conrad vorbei und kaufe mal mal 1 bis 2 Kleinteile um meinen "Horizont" zu erweitern. Ich wenn ich den irgendwo im Internet bestellen würde, hätte ich wohl schon wieder das Interesse verloren. Bin echt zufrieden. Abend gelesen dass das Arduino als ISP funktioniert. am Tag darauf Atmel im Conrad gekauft und losgelegt :) Hab das auch für mich jetzt mal 10 Seitig Dokumentiert weil es doch etwas "komplizierter" ist als einfach im Arduino das Target-Board auszuwählen und auf den Upload zu klicken :) Liebe Grüße, Chris2go
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.