Hi, ich denke dieses Thema wurde schon hunderttausendmal angesprochen aber ich komme mit den üblichen Tips einfach nicht weiter. Auch das Atmel Datenblat hilft mir nicht viel. Ich habe folgende Fragen und es wäre super, wenn sie mir jemand beantworten könnte :) 1. Welche Fuse Bits muss ich denn jetzt setzen um einen externen Quarzoszillator an dem ATtiny2313 einsetzen zu können? 2. Wenn ich den Internen Oszillator benutzen will, muss ich dann in meinem Bascom Programm einfach so tuen als hätte ich einen 8 Mhz Quarz angeschlossen? 3. Ich habe ein Programm fertig für den AT90S2313 Kompilliert und auf den ATtiny2313 gespielt, das einzige was da rauskam war Mist nicht jedoch mein Programm. Okay, includefile vom Attiny2313 eingebunden, kompilliert, eingespielt, genau der gleiche Mist. Woran kann es liegen? 4. Ich habe mir mehrere ATtiny12 und mehrere ATmega8-16 schenken lassen, weiß jedoch nichts darüber. Welche Fuse Bits muss ich denn da setzen, damit ich einen externen Oszillator benutzen kann? Auf welchen Frequenzen schwingen die internen Oszillatoren? Mir währe echts ehr geholfen, wenn ihr mir weiterhelfen könnt. Und bitte keine Verweise auf das entsprechende Datenblatt, mein Problem ist nämlich die englische Zunge ;) Vielen Dank im Voraus...
>Und bitte keine Verweise auf das entsprechende Datenblatt, mein Problem ist nämlich die englische Zunge ;) schade... die Appnote von Atmel 'AVR091: Replacing AT90S2313 with ATtiny2313' beschreibt genaus die Differenzen. Sind aber nur 10 Seiten: einige Register/Bitnamen, Interrupt Vektoren, Timermodi.
Das habe ich mir ja schon durchgelesen, da mir relativ klar war, dass ich darauf verwiesen werde. Gibt es denn kein einfaches umschreiben der Fuse Bits und schon eght es? Es ist ja nichtmal ein aufwändiges Programm, es gibt lediglich Bitmuster aus. Ohne irgendwelche speziellen funktionen. Das muss man doch zum laufen bekommen oder nicht?
gut, die Bitnamen werden ok sein wenn der Compiler beim richtigen Include nicht meckert. Die Interrupts sind erweitert worden, machen nur Ärger wenn die Namen geändert wurden. Dafür gibt der Compiler aber normalerweise auch Warnings aus (wenn du überhaupt Ints benutzt). Die grössten Unterschiede sehe ich bei den Fuses, da ist in dem genannten Dokument aber in Table 4 in der letzten Spalte die Einstellung für 90S2313 Kompatibilität. In der Spalte 3 ist die Voreinstellung, da sieht man Abweichungen in der zweiten Hälfte der Tabelle, die betreffen den Takt-Teiler und die Auswahl der Taktquelle.
was beduetet den "es kommt mist raus" ? - Gehts nicht? - Das Falsche? - Was unerwartetes? - Zu langsam? - Benuzt du UART und es kommen wirre Zeichen?
FH 00101000 FL 11011011 So stelle ich die Sicherungen ein, damit eine AT90 Programm auf dem Tiny mit externem Quarz laeuft. Eine 1 heisst, das Bit ist gesetzt (programmiert).
-was beduetet den "es kommt mist raus" ? - Gehts nicht? - Das Falsche? - Was unerwartetes? - Zu langsam? - Benuzt du UART und es kommen wirre Zeichen? Also, ich habe zwei Lichteffekte einprogrammiert. Der eine Lichteffekt wird ausgegeben, wenn Pinb.1 High ist. Wenn es low ist, wird halt der andere Effekt ausgegeben. Es werden dabei lediglich die Befehle "waitms xx" und "Pind.2 = 1" benutzt nur eben mit anderen Werten. Wenn ich den ATtiny2313 nun mit dem Programm flashe, besteht die Ausgabe aus einer verbindung beider Lichteffekte. Er fängt mit dem ersten Licheffekt an und geht schlagartig in den zweiten über. Setze ich Pinb.2 auf hight, fängt er mit dem zweiten Effekt an und geht schlagartig in den ersten effekt über :(
>>Eine 1 heisst, das Bit ist gesetzt (programmiert).
Fuses sind aber programmiert, wenn sie "0" sind!
>>Fuses sind aber programmiert, wenn sie "0" sind!
Und als positiv denkender Mensch drücke ich diesen Zustand mit einer
'1' aus :-)
Generell finde ich die Datenblätter mit ihrer inversen Logik nicht sehr
hilfreich. Als Anwender interessiert es mich nicht, wie-wo-was
gespeichert wird. Wenn ich einem Programm z.B. einen Divisionsbefehl
schreibe, ist mir der µP OP-Code völlig wurscht; die Maschine soll
gefälligst das so machen, wie ich denke und nicht umgekehrt.
Das nur am Rande.
>Und als positiv denkender Mensch drücke ich diesen Zustand mit einer >'1' aus :-) Nimm lieber nen Haken... Es hat nichts mit inverser Logik zutun, sondern mit dem Programmierzustand der Fuse: Wenn sie 0 ist, ist sie programmiert (liegt daran, dass unbearbeitet Speicherzellen wie EEPROMs eine "1" wiedergeben).
>> Nimm lieber nen Haken...
Ich nehme keine Teile, wo ein Haken dran ist :-)
Und das bei der Geschichte ein Haken ist sieht man doch an der Anzahl
der Anfragen hier, die sich auf Verständnisprobleme bei den 'fuses'
beziehen.
Wie der Programmierzustand der 'fuses' ist, ist mir ebenso wurscht,
ob intern 120nm oder 90nm oder sonstwelche Strukturen vorhanden sind
oder NAND- oder NOR-Flash eingebaut wurde. Ich bin Anwender und nicht
Chipentwickler !
Ich verwende eine '1' als aktiven Zustand, was sonst.
"Ich verwende eine '1' als aktiven Zustand, was sonst" Reine Konvention. Jeder der länger mit TTLs oder '51-ern gearbeitet hat, kann mühelos auch andersrum denken.
Danke für die vielen, schnellen Antworten. Wenn ich jetzt noch Antworten zu den Fragen 2 und 4 erhalten würde, wäre ich vollstens zufrieden :))
Sosnt stell doch mal das Programm rein :) Bist du sicher das du Bascom die richtige Taktfrequenz vorgegbenhast? Perstandard läuft der Tiny auf ich mein irgenwas bei 125khz oder 0.5mhz weiß nicht mehr so genau. Und vieleicht nen Screenshot der FUses. Für nen Lauflicht mit Taster brauchst du auch keinen Externen Quarz da tuts der Interne vollkommen.
Das Programm ist leider auf einer anderen Kiste, kann es deswegen auch nicht zeigen. Aber wenn es stimmt, was du sagst, habe ich den Fehler der Geschwindigkeit immerhin schonmal gefunden: Ich bin von 8Mhz Standarttakt beim ATtiny2313 augegangen :)
Der ATTiny2313 ist standard im 1MHz getacktet mit interne Oscillator. Vielleicht hilft das was... Und 1 MHz und dan UART 9k6 gab glaub ich 6.5% Fehler. Aber wenn du es programmiert mit eine andere Tacktwert, gibt es sicher fremde Sachen. P.S. Meine Entschuldigungen fuer meine schlechte Deutschsprache.
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.