Forum: Mikrocontroller und Digitale Elektronik AT90S2313 gegen ATtiny2313 austauschen


von Sebastian (Gast)


Lesenswert?

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...

von Jojo S. (Gast)


Lesenswert?

>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.

von Sebastian (Gast)


Lesenswert?

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?

von Jojo S. (Gast)


Lesenswert?

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.

von Laeubi (Gast)


Lesenswert?

was beduetet den "es kommt mist raus" ?
- Gehts nicht?
- Das Falsche?
- Was unerwartetes?
- Zu langsam?
- Benuzt du UART und es kommen wirre Zeichen?

von Michael (Gast)


Lesenswert?

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).

von Sebastian (Gast)


Lesenswert?

-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 :(

von TravelRec. (Gast)


Lesenswert?

>>Eine 1 heisst, das Bit ist gesetzt (programmiert).

Fuses sind aber programmiert, wenn sie "0" sind!

von Michael (Gast)


Lesenswert?

>>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.

von Rahul (Gast)


Lesenswert?

>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).

von Michael (Gast)


Lesenswert?

>> 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.

von A.K. (Gast)


Lesenswert?

"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.

von Sebastian (Gast)


Lesenswert?

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 :))

von Laeubi (Gast)


Lesenswert?

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.

von Sebastian (Gast)


Lesenswert?

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 :)

von Eerhard (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.