Forum: Mikrocontroller und Digitale Elektronik Atmega8 senden unterschiedliche Zeichen


von T.M .. (max)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bin schon fast am Verzweifeln. Ich habe hier drei Atmega8s.
Alle haben das gleiche Programm un dich stecke die Controller lediglich 
in ein STK500 - ansonsten bleibt alles gleich
1
$regfile = "m8def.dat"
2
$crystal = 3686400
3
$baud = 19200
4
5
6
Dim I As Integer
7
I = 0
8
Do
9
I = I + 1
10
Print "Test" ; I
11
Wait 1
12
Loop
13
End

Die Fusebits habe ich verglichen und die Frequenzen 4MHz Int RC Osz sind 
bei allen drei eingestellt.

Nun kommen aber nur bei einem die richtigen Zeichenketten an zB
Test1
Test2

bei den anderen beiden erscheinen hinter  dem "Test1" noch zwei 
"Klötzchen"


Was kann man denn da noch einstellen bzw wo könnte der Fehler liegen????

Vielen Dank wenn jemand da eine Idee hat

von Klaus D. (kolisson)


Lesenswert?

Max .x schrieb:
> $crystal = 3686400

Das entspricht nicht 4Mhz.

zudem können die internen Oscis voneinander abweichen.
ggf. mal OscCal bytes in Betracht ziehen.

Gruss K.

von Jean P. (fubu1000)


Lesenswert?

Moin,

Max .x schrieb:
> Die Fusebits habe ich verglichen und die Frequenzen 4MHz Int RC Osz sind
> bei allen drei eingestellt.

Schlechte Idee den internen Takt zu nehmen. Der ist nicht sehr genau und 
eigentlich für Rs232 ungeeignet (sofern nicht über das calibration 
Register angepasst wurde).

Zudem schau dir mal diese Codezeilen an:
1
$regfile = "m8def.dat"
2
$crystal = 3686400
3
$baud = 19200

Na fällt dir was auf ?!
Du benutzt interne 4MHz und sagst im Programm, das dein Takt 3,6864MHZ 
hat.

Gruß

von T.M .. (max)


Lesenswert?

Ich habe das aber noch nie anders gemacht und habe das STK500 nun schon 
etliche Jahre.
Ich hatte da noch nie einen zusätzlichen Quarz angeschlossen.
Was müsste ich denn ändern bzw wie lässt sich das mit dem calibration 
register anpassen?
ich habe das schon im AVR Studio gesehen, aber da kann ich nur 
verscheidene Werte auslesen für 1MHz, 2MHz, 4Mhz, 8MHz

EDIT:
Ich habe jetzt mal die Zeile $crystal = 3686400 rausgenommen und nun 
funktionierts.
Nur sind die 4MHz ja nicht sehr genau um die Baudrate zu nutzen. Da ist 
ja diese krumme Frequenz idealer.
In der Schaltung später nehme ich ja auch keinen 4Mhz sondern die 
3,68MHz

Wie funktioniert denn das mit dem Kalibrieren, Bei dem einem AVR gings 
ja  und davor komischerweise auch^^
Habe auch schon verschiedene Netzteil etc getestet

von T.M .. (max)


Lesenswert?

OK, ich habe es gefunden. danke für den Denkanstoß

man muss wohl einen externen Quarz beim avr studio auswählen, dann 
klappts auch wieder mit der krummen Frequenz.
Warum dieser eine AVR dann aber doch anders auch funktioniert ist mir 
noch ein Rätsel

von Klaus D. (kolisson)


Lesenswert?

Max .x schrieb:
> OK, ich habe es gefunden. danke für den Denkanstoß
>
> man muss wohl einen externen Quarz beim avr studio auswählen, dann
> klappts auch wieder mit der krummen Frequenz.
> Warum dieser eine AVR dann aber doch anders auch funktioniert ist mir
> noch ein Rätsel

Jetzt kommt Avr Studio ins Spiel ?
Dein Quelltext war Bascom !

Ich bezweifele stark, dass du das Problem gefunden und verstanden hast.
Es wohl wieder so ein Zufallstreffer.

Gruss Klaus

von T.M .. (max)


Lesenswert?

egal, ob du es bezweifelst...es funktioniert

im avr studio kann man übrigens auch die einstellungen setzen, fusebits 
etc

von oldmax (Gast)


Lesenswert?

Hi
> Ich habe das aber noch nie anders gemacht und habe das STK500 nun schon
> etliche Jahre.
Na das ist ja mal ein Argument, welches immer wieder bestätigt, das die 
Experten alle nur hochgesteckt daherreden und den Anfänger mit möglichst 
viel Tricks und Kniffen verunsichern wollen.... Sorry, aber das muß ich 
mal loswerden. Du schreibst, das du dich wunderst, das deine Controller 
unterschiedlich arbeiten und dann die unschlagbare Antwort:
> egal, ob du es bezweifelst...es funktioniert

Also Max punkt x, so wird das nix.....
Gruß oldmax

von Tom (Gast)


Lesenswert?

Max .x schrieb:
> In der Schaltung später nehme ich ja auch keinen 4Mhz sondern die
>
> 3,68MHz

In Deiner Schaltung ist dann aber ein entsprechender Quarz verbaut ? Für 
mich hörte es sich ein bischen so an, als wenn Du meintest mit der 
Anweisung

Max .x schrieb:
> $crystal = 3686400

die Taktfrequenz des MC einzustellen.... dem ist nicht so.... das ist 
nur die Information für Deinen Compiler, wie schnell denn Dein Takt ist, 
den Du anderweitig (intern, extern) eingestellt hast.

Wenn ich Dich falsch interpretiert habe, ziehe ich meine Aussage zurück.

Gruß
Tom

von Klaus D. (kolisson)


Lesenswert?

oldmax schrieb:
> Also Max punkt x, so wird das nix.....
> Gruß oldmax

Merci,
ich fand den Spruch auch gewagt und prickelnd.

.. aber dass muss er halt wissen ob er sich das leisten kann.

Klaus

von T.M .. (max)


Lesenswert?

Große Verwirrung^^ Momentan läuft das Ding ja und macht auch was ich 
will
Meinetwegen können wir uns wieder alle lieb haben und belassen das Thema 
hier.

von oldmax (Gast)


Lesenswert?

Hi
So ganz kann ich deine Reaktion nicht verstehen. Natürlich funktioniert 
eine serielle Verbindung auch ohne externen Taktgeber. (Quarz) aber eben 
nicht stabil. Wenn jetzt bei 20° C dein Projekt Ergebnisse liefert, it 
es bei 25° C oder 14° C nicht garantiert.... So in der Richtung haben 
die Antworten gezeigt. Vielleicht nicht so deutlich.
>Meinetwegen können wir uns wieder alle lieb haben und belassen das Thema
>hier.
Das zeigt, das du vermutlich ein großes Problem mit vernünftiger 
Kommunikation hast. Es hätte gereicht, wenn du mitteilst, das dein 
Problem gelöst ist. Und für andere, die mitlesen und ähnliche Probleme 
haben, vielleicht auch noch die Ursache es Fehlers. aber
>Große Verwirrung^^ Momentan läuft das Ding ja und macht auch was ich
>will
zeigt auch, das du selber nicht weißt, warum und das bedeutet auch, das 
dein Projekt unzuverlässig ist. Wie auch immer, ich laß mich denn doch 
nochmal zu einem Kommentar hinreißen:
"Solche Mtmenschen liebe ich....."
Gruß oldmax

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.