mikrocontroller.net

Forum: Compiler & IDEs Fuse Bits bei ATTINY 2313


Autor: Thomas Webster (ram99)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Da ich schon einen Tiny2313 via Fusebits abgeschossen habe frage ich 
euch lieber bevor ich den zweiten kille.
Ich habe in meiner Schaltung an XTAL1/XTAL2 einen 8MHz Resonator und 
möchte diesen auch benutzen.
Das Datenblatt habe ich mir angeschaut und zwei Sachen nicht verstanden.

1.) Warum wird bei CKSEL3-0 in den Tabellen immer 8Bits angegeben wie 
z.B.
    1000-1111. Zum einstellen habe ich ja nur 4 Bits (CKSEL3-0)?
2.) Im Datenblatt steht auf Seite 23 (Clock Source) in der Tabelle 
CKSEL3-0
    1000-1111 für External Crystal/Ceramic Resonator.
    Auf Seite 27 (External Clock) steht aber in der Tabelle CKSEL3-0
    0000-0001 für 0-16 MHz. Bei SUT1..0 stehen auch zweimal 
unterschiedliche
    Sachen in den Tabellen.
    Was mich noch viel mehr verwirrt ist das es bei dem AVR Fuse 
Calculator
    drei mal die Auswahl für "Ext. Crystal Osc. Frequency 8.0MHz-; 
Start-up
    time: 14CK + 65ms" mit jedesmal unterschiedlichen fusebits gibt.
    Welches  muss ich denn jetzt benutzen.

Im Anhang ist eine Bild vom Ponyprog2000 fuse Editor wie ich denke das 
es richtig ist.
Wäre toll wenn mir jemand die Fragen oben erklären könnte und sagen ob 
die Einstellungen im bild Ok sind.

Gruß
   Thomas

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich habe in meiner Schaltung an XTAL1/XTAL2 einen 8MHz Resonator
> und möchte diesen auch benutzen

Das sollten wir nochmal konkret klären.

Hast du einen Quarz oder einen Quarzoszillator?

Quarz:  der hat 2 Anschluesse. Beide werden an den µC
        an XTAL1/XTAL2 angeschlossen

Quarzoszillator: Hat insgesammt 4 Anschluesse, von denen
        aber nur 1-er an den XTAL1 Anschluss des µC angeschlossen
        wird.

Abhängig davon, was es denn nun wirklich ist, brauchst du
andere Fuse Einstellungen. Drum frag ich nochmal nach, denn
deine Ausführungen sind etwas widersprüchlich.

Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er schreibt ja "Resonator" und die haben 3 Anschlüsse (jedenfalls die 
ich kenne)
Diese haben einen Quarz und die beiden zugehörigen Kondensatoren in 
einem Gehäuse, und sind bei den Fusebits so zu behandeln wie ein Quarz.

Autor: Thomas Webster (ram99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen wrote:
> Er schreibt ja "Resonator" und die haben 3 Anschlüsse (jedenfalls die
> ich kenne)
> Diese haben einen Quarz und die beiden zugehörigen Kondensatoren in
> einem Gehäuse, und sind bei den Fusebits so zu behandeln wie ein Quarz.



Jop, genau. Ein Resonator mit drei Anschlüssen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen wrote:
> Er schreibt ja "Resonator" und die haben 3 Anschlüsse (jedenfalls die
> ich kenne)
> Diese haben einen Quarz und die beiden zugehörigen Kondensatoren in
> einem Gehäuse, und sind bei den Fusebits so zu behandeln wie ein Quarz.

Was es nicht alles gibt.
Noch nie gehört. Aber das will nicht viel heissen :-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Warum wird bei CKSEL3-0 in den Tabellen immer 8Bits angegeben wie
> z.B. 1000-1111.

Das sind nicht 8 Bits, sondern das heist  von - bis

> Auf Seite 27 (External Clock) steht aber in der Tabelle CKSEL3-0
> 0000-0001 für 0-16 MHz.

Genau das sorgt immer wieder für Verwirrung. Ein 'external Clock'
ist kein externer Quarz.

Ach ja. Dein Pony Bild. Ich denke mal das muesste stimmen.

Autor: Thomas Webster (ram99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
>> Warum wird bei CKSEL3-0 in den Tabellen immer 8Bits angegeben wie
>> z.B. 1000-1111.
>
> Das sind nicht 8 Bits, sondern das heist  von - bis

Ohh, ergibt Sinn :)

>> Auf Seite 27 (External Clock) steht aber in der Tabelle CKSEL3-0
>> 0000-0001 für 0-16 MHz.
>
> Genau das sorgt immer wieder für Verwirrung. Ein 'external Clock'
> ist kein externer Quarz.

Wäre ein 'external Clock' wenn man auf XTAL1 mit einem Frequenzgenerator
mit 0-16 MHz anschließt?

>
> Ach ja. Dein Pony Bild. Ich denke mal das muesste stimmen.

Im Anhang ist nochmal ein anderes Bild vom Pony-Fuse. Würde das auch 
gehen?
Wenn ich es richtig verstanden habe bedeutet das erste Bild:
"External Crystal/Ceramic Resonator + Frequency Range 8.0MHz - + Ceramic 
resonator, slowly rising power 14CK + 65 ms"

Das zweite Bild würde bedeuten:
"External Crystal/Ceramic Resonator + Frequency Range 8.0MHz - + Ceramic 
resonator, Ceramic resonator, fast rising power 14CK + 4.1 ms"

Spielt das eine Rolle was man beim Start-Up für ein delay einstellt?




Autor: Thomas Webster (ram99)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ups, hier das zweite Bild

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Webster wrote:
>> Genau das sorgt immer wieder für Verwirrung. Ein 'external Clock'
>> ist kein externer Quarz.
>
> Wäre ein 'external Clock' wenn man auf XTAL1 mit einem Frequenzgenerator
> mit 0-16 MHz anschließt?

Genau.
Oder einen QUarzoszillator

>
>>
>> Ach ja. Dein Pony Bild. Ich denke mal das muesste stimmen.
>
> Im Anhang ist nochmal ein anderes Bild vom Pony-Fuse. Würde das auch
> gehen?

Ich denke: ja (ist schon spät)

Das wichtige ist, dass die CKSEL1 bis CLSEL3 alle nicht
angehakt sind. Das heist dann: externer Quarz

> Spielt das eine Rolle was man beim Start-Up für ein delay einstellt?

Ich hab meine konservativ eingestellt. D.h. slow rising power.
Dann wartet der µC ein bischen länger, bis er loslegt. Die
paar ms sind mir sowas von egal.

Das kannst du auch ausprobieren.
Es geht hier um die Zeit nach dem Anlegen der Spannung.
Wenn der µC nicht damit klarkommt, gibst du ihm einfach
die Spannung und tippst den RESET Anschluss mal kurz auf
Masse. Dann läuft er auf jeden Fall (wenn die Quarzeinstellung,
also CKSEL1 bis CKSEL3, stimmt).

Deinen zerfusten Tiny kannst du wahrscheinlich wieder zum
Leben erwecken. Ich geh mal davon aus, dass du die CKSELx
falsch eingestellt hast:
Programmier dir auf dem laufenden Prozessor eine Endlosschleife,
die ständig einen Portpin toggelt. Mit dieser selbst erzeugten
Frequent gehst du am toten Tiny an den XTAL1 Eingang und probierst
mal, ob die Bennsoftware dann wieder an die Fuses rankommt.
Wenn ja: Fuses richtig stelln -> Tiny ist wieder da.



Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Resonator mit 3 Anschlüssen:

Der hat die Kondensatoren schon eingebaut.
Mittlerer Anschluß an Masse ...

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:

> Was es nicht alles gibt.
> Noch nie gehört. Aber das will nicht viel heissen :-)

Ist ein Keramikresonator.  Der hat auch keine Kondensatoren eingebaut
:), der braucht einfach keine.  Früher[TM] haben wir einen BFO für den
Kurzwellenempfänger auch gebaut, indem wir ein keramisches Filter mit
einem Transistor zum Oszillator umfunktioniert haben, so ähnlich
funktionieren diese Teile auch.  Sind ungefähr eine Größenordnung
weniger genau als ein richtiger Quarz, aber das reicht für die meisten
Anwendungen noch gut hin.  Dafür sind sie nicht nur um einiges
billiger (in der Masse), sondern vor allem auch viel kleiner.

Guck mal bei Murata, die sind sowas wie die Nummer 1 in dieser
Hinsicht.

Autor: Thomas Webster (ram99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Deinen zerfusten Tiny kannst du wahrscheinlich wieder zum
> Leben erwecken. Ich geh mal davon aus, dass du die CKSELx
> falsch eingestellt hast:
> Programmier dir auf dem laufenden Prozessor eine Endlosschleife,
> die ständig einen Portpin toggelt. Mit dieser selbst erzeugten
> Frequent gehst du am toten Tiny an den XTAL1 Eingang und probierst
> mal, ob die Bennsoftware dann wieder an die Fuses rankommt.
> Wenn ja: Fuses richtig stelln -> Tiny ist wieder da.



Das habe ich jetzt mit meinem C51 + 10MHz Processor probiert. Wie du 
geschrieben hast habe ich einen Portpin auf XTAL1 angeschlossen und 
toggel den Portpin vom C51. XTAL2 habe ich offen gelassen. Das 
Interessante ist das mein Programm läuft aber ich nicht an die fuse 
rankomme :(  Ein neues *.hex File lässt sich auch nicht übertragen.
Ich habe irgendwo die Tage gelesen das man den Takt vom ISP-Programmer 
einstellen kann und das dieser min. 4X höher sein muss als der 
Prozessortakt.
Bei Ponyprog habe ich so etwas aber nicht gefunden. Hat noch jemand ein 
Tipp?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Frequenz hast du den jetzt so in etwa?

> Ich habe irgendwo die Tage gelesen das man den Takt vom ISP-Programmer
> einstellen kann und das dieser min. 4X höher sein muss als der
> Prozessortakt.

anders rum. Der Prozessortakt muss 4 mal höher als der ISP
Takt sein.

Bei PonyProg gibt es im Installationsverzeichnis noch
ein PonyProg.INI  Dort kann man die Taktrate runtersetzen.

Autor: Thomas Webster (ram99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Welche Frequenz hast du den jetzt so in etwa?
>
>> Ich habe irgendwo die Tage gelesen das man den Takt vom ISP-Programmer
>> einstellen kann und das dieser min. 4X höher sein muss als der
>> Prozessortakt.
>
> anders rum. Der Prozessortakt muss 4 mal höher als der ISP
> Takt sein.
>
> Bei PonyProg gibt es im Installationsverzeichnis noch
> ein PonyProg.INI  Dort kann man die Taktrate runtersetzen.

Hast du eine Ahnung welche der Zeile in PonyProg.INI verändert werden 
muss?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warte mal.
Muss schnell ins INI File schauen.

.....


SPIBusSpeed

Setzt den Eintrag mal auf "SLOW"
SPIBusSpeed=SLOW

http://www.lancos.com/e2p/ponyprog2000.html#s2.6.2


Autor: Thomas Webster (ram99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Juhuuu :)

Er läuft wieder und ich kann auch wieder programmieren. Das mit dem C51 
(8051) und dem toggeln wollte nicht richtig funktionieren aber bin dann 
einen anderen Weg gegangen.
Da ich eh am warten auf einen neuen Tiny2313 war habe ich mir heute eine 
Schaltung mit dem FT232RL Chip (USB->Seriell) aufgebaut. Bei diesem Chip 
kann man 5 freie Pins mit z.B. einen Takt (6,12,24,48 MHz) 
programmieren. Habe dann einen Pin mit 6 MHz auf den XTAL1 vom Tiny 
gehängt und siehe da, alle Ok.
Danke für die Tipps und Hilfe :)

Thomas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.