PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ich werd noch Irre - unerklärliche Taktverdoppelung



vajk
11.11.2010, 00:48
Hallo

Ich habe folgendes Konstrukt: atmega128L, betrieben mit 3V3 über Regler aus 4.2V LiPo, ermöglicht via Software-UART an FTDI auf Konsole eine Textausgabe.

Die Fuses http://www.engbedded.com/fusecalc/ sind wie folgt gesetzt: BODEN füer Burnout 2.7V, SUT0, CKSEL3 = ext. Oszi 3MHz - 8MHz [Anm.: mit genau diese Einstellung werkelt eine andere Platine in sehr ähnlicher Systemfunktionalität wie erwartet korrekt].

Jetzt wirds merkwürdig:

ab dem Zeitpunkt, wo ich von internen Oszi (4MHz, CKSEL2) auf den externen "umfuse" wird die Frequenz (mit dem Scope ams Outpin des Qarzsoszi gemessen) von 3.686 MHz auf das genau doppelte = 7.3728 MHz verdoppelt. VERDOPPELT !

Ganz sicher? - JA !

Denn wenn ich jetzt diese Frequenz im Makefile für F_CPU eingebe und kommen Textdaten über eine Software-UART mir brav mit 9600 Baud raus..
.. wenn ich im Makefile die eigentlichen 3.6864 MHz einstelle - die auf dem Quarzoszi draufsteht - kommt auf der Software-UART die doppelte Baudrate raus.

Ganz sicher? - JA !

Was passiert hier - hat dafür jemand eine Erklärung?



Ist der Oszi wohl eine 5V type der keine 3V3 abkann ... oder hat der uC eine Macke ... die Platine gibts 2 mal, beide mit gleichem Dämon.

Das mit dem Oszi versuche ich heute am Tage rauszubekommen.

Meine Firmware läuft auf 3 anderen ähnlichen System einwandfrei, nur das neue Board will wie oben beschrieben, nicht so, wie es soll. Daß habe ich noch nie erlebt...

Wortlos,
Vajk

PICture
11.11.2010, 03:15
Hallo!


Ist der Oszi wohl eine 5V type der keine 3V3 abkann ...

Das ist am wahrscheinlichsten, einfach bei 5 V unbelastet mit Oszilloskop prüfen. :)

MfG

vajk
11.11.2010, 14:00
jetzt wirds für mich noch merkwürdiger

der Hammer von eben, telefoniere mit meinem Kollegen, der das Gerät der bisherigen Baureihe immer programmiert, und er sagte mir, er hat da ganz andere Fuses - Einstellungen.
Welche - diese: SUT0,1,CKSEL0..3 nicht gesetzt !
=> somit ext. Quarz, hohe Freq. - und NICHT QuarzOsci!

Bilder zeigen es:
korrekte Fuses = ext. Oszi, altes Gerät: DSC_5995 und 3.686 MHz
korrekte Fuses = ext. Oszi, neues Gerät: DSC_5996 und 7.374 MHz <- falsches Signal -> Freq.Verdoppelung
falsche Fuses = ext. Quarz, altes Gerät: DSC_5998 und 3.686 MHz
falsche Fuses = ext. Quarz, altes Gerät: DSC_5999 und 3.686 MHz

Also total falsche Fuses - aber super Signalform und die Frequenz stimmt natürlich auch ...

Wer kann dazu was sagen ?

Ceos
11.11.2010, 14:05
was für nen quarz oszi genau benutzt du denn ?

vajk
11.11.2010, 14:11
STATEK CXO3M OSCILLATOR, CXO3M10T mit 3.6864Mhz, 3V3-Typ

Besserwessi
11.11.2010, 16:45
Wenn man einen externen Oszillator und nicht nur einen externen Quarz hat, sollte man auch auf externen Takt einstellen, nicht auf einen Quarz oder RC Takt.
Da kann es wohl tatsächlich mal passieren das man einen Überschwinger bekommt und damit den doppelten Takt.

Osser
11.11.2010, 18:20
Hi,

lt. Datenblatt sollte deine Einstellung folgende sein



CKOPT == 1
CKSEL3..1 == 111

Bei "fast rising power"
CKSEL0 == 1
SUT1..0 == 10


wobei wie immer eine "1" als Symbol und nicht als Zahl zu verstehen ist und für "nicht gesetzt" steht.
Ergo: Deine(Eure) Einstellung weicht nur in SUT1..0 ab und ist also auf "slow rising power" eingestellt.

Mit externem Takt stimmt die Konfiguration, was wundert Dich daran?

Gruss,

O.

vajk
11.11.2010, 19:15
Danke für eure Antworten.

Nochmal:

ich habe einen externen Oszillator und sollte somit die Fuses auch darauf einstellen.

Die fuses - Konfiguration für den atmega 128 habe ich von hier: http://www.engbedded.com/fusecalc/

(die menschlichere Logik ist hier angepaßt - Haken entspricht 0, kein Haken der 1).

Zum Setzen der Fuses verwende ich PonyProg.

Wenn ich das tue, bekomme ich die doppelte Frequenz.
Siehe:

http://www.reitinsel.de/DSC_5996.JPG

Und fuses siehe:

http://www.reitinsel.de/fuse_extOszi.jpg

Wenn ich eben nicht auf ext. Oszi sondern auf ext. Quarz fuse,
was ja nicht sein sollte, dann ist der Rechteck sauber und die Frequenz richtig.

Siehe:

http://www.reitinsel.de/DSC_5999

und fuses siehe:

http://www.reitinsel.de/fuse_extQuarz.jpg

Ich finde das immer noch merkwürdig!

vajk
11.11.2010, 21:30
ohke ohke .. ein Freund macht mich drauf aufmerksam:

"Ext. RC Osc." ist nicht ein externer Quarzoszi sondern eine R-C-Kombination die schwingt ...

... man muß ext. Clock wählen !!!

Es lebe die Fehlinterpretation von Englisch ins Deutsche ... *schäm*

Vielleicht hilft das ja jemandem .. und interessant, daß eben auch ext. Quarz funktioniert, XtalOut hängt ja in der Luft ....