Forum: Mikrocontroller und Digitale Elektronik Seltsame RS232 - Ausgabe


von Dennis B. (danrulz81)


Lesenswert?

Hallo zusammen,

ich hab mir mal Bascom gezogen und ein bisschen rumgespielt. Jetzt 
wollte ich mal das obligatorische "Hallo Welt" an den Konsolenemu 
senden. Doch dort kommen nur seltsame Zeichen an.

Mein Code sieht so aus:
1
$regfile = "m8515.dat"                                      
2
$crystal = 8000000                                         
3
$baud = 9600
4
5
DO
6
    Print "Hallo Welt"
7
    Wait 1
8
Loop

Jetzt hab ich zur Verbindung das Programmierkabel verwendet. PD0 und PD1 
sind wie im Handbuch mit den RS232-Spare Pins verbunden.

Warum bekomme ich so seltsame Zeichen? Ich würde sie gerne hier 
darstellen, nur copy und paste geht nicht, da anderer PC, und auf der 
Tastertur gibts die nicht.

von Mh. M. (mhm)


Lesenswert?

Dennis Brenzel schrieb:
> Warum bekomme ich so seltsame Zeichen?

Also bei seltsamen Zeichen würde ich zu erst mal sagen: 
Baudratenproblem. Die Baudraten von Empfänger und Sender stimmen also 
nicht überein.

Ansonsten wären ein paar mehr Informationen nicht schlecht:
- Welchen µC verwendet?
- Welche Taktquelle am µC?
- Eventuell Nullmodemkabel verwendet?
- Massen verbunden?
- µC sicher korrekt mit dem PC verbunden, also vermutlich über 
Pegelwandler?

von Dennis B. (danrulz81)


Lesenswert?

µC ist der mit dem STK500 mitgelieferte ATmega8515L.
Taktquelle ist intern.
Wenn das mitgelieferte Programmierkabel Nullmodem ist, dann ja.
Massen sind verbunden.
µC auch sicher verbunden.

Baudrate ist auf beiden Seiten 9600.

von Michael M. (Gast)


Lesenswert?

mal die fuses angeschaut, was für einen takt der interne macht?
ich würde auf 1MHz wetten

von El Patron B. (bastihh)


Lesenswert?

Ich würde eher einen externen Baudratenquarz nehmen, in deinem Falle 
müsste es mit 7,3728 MHz gehen.

Grüße

von Dennis B. (danrulz81)


Lesenswert?

An den Fusebits hab ich zwar nicht rumgespielt, aber ich check das mal.

von Mh. M. (mhm)


Lesenswert?

Dennis Brenzel schrieb:
> Taktquelle ist intern.

Ja, und da wird vermutlich das Problem liegen: Verwende mal einen 
externen Quarz oder einen Quarzoszillator, dann wird es vermutlich 
passen.

von Dennis B. (danrulz81)


Lesenswert?

Warum kann ich denn nicht den internen Taktgeber verwenden?

von Michael M. (Gast)


Lesenswert?

weil jetzt gleich alle sagen werden, dass der zu ungenau ist...
jungs, für 9600 bei zimmertemperatur auf einem stk tut ers schon.
10eur, dass das problem woanders liegt.

von peterfido (Gast)


Lesenswert?

Wenn Du an den Fuses nichts verstellt hast, dann probier als Takt mal 
1000000 statt 8000000.

von Dennis B. (danrulz81)


Lesenswert?

btw.: Welches Fusebit muss ich denn auf welchen Wert stellen, damit er 
bei 8MHz taktet? Ich dachte, dass diese Rate standartmäßig eingestellt 
sei.

von Michael M. (Gast)


Lesenswert?

standard kannst du aus dem datenblatt lesen.
ansonsten: google doch mal nach avr fuse calculator, falls du nur eine 
hex-ausgabe bekommst.

von Dennis B. (danrulz81)


Lesenswert?

Der Fuse Calc ist super, nur verwende ich kein AVRdude.

von Michael M. (Gast)


Lesenswert?

du willst uns jetzt aber nicht sagen, dass du avr studio verwendest, 
oder?

von Dennis B. (danrulz81)


Lesenswert?

Nein, ich spiele seit Freitag mit Bascom rum.

von g457 (Gast)


Lesenswert?

> Welches Fusebit muss ich denn auf welchen Wert stellen, damit er
> bei 8MHz taktet? Ich dachte, dass diese Rate standartmäßig eingestellt
> sei.

Das RTFM vom mega8515 sagt, dass per default 1.0MHz eingestellt ist 
(Fußnote 1 in Tabelle 12 in [1]). Ergo stell mal die Fuses richtig ein, 
dann klappt das auch mit dem UART :-)

HTH

[1] http://atmel.com/dyn/resources/prod_documents/doc2512.pdf

von Michael M. (Gast)


Lesenswert?

der atmel, der beim stk500 mitgeliefert wird, hat ein demoprogramm 
drauf.
daher lässt sich nicht mit sicherheit sagen, ob die fuses nicht dafür 
angepasst wurden.

von g457 (Gast)


Lesenswert?

> daher lässt sich nicht mit sicherheit sagen, ob die fuses nicht dafür
> angepasst wurden.

Ui, da hat potenziell schon jemand an den Fuses rumgespielt? ..noch ein 
Grund mehr, die gemäß RTFM auf bekannte (und gewünschte) Werte zu setzen 
;-)

Ansonsten kann ich nur auf die AVR-Checkliste verweisen [1]

HTH und nix für ungut

[1] http://www.mikrocontroller.net/articles/AVR_Checkliste#UART.2FUSART

von Dennis B. (danrulz81)


Lesenswert?

So, hab jetzt den internen Takt auf 8 MHz gestellt. War in der Tat auf 1 
MHz. trotzdem bekomm ich folgende Ausgabe:
TasÃer 7 gedrüc¿z

von Michael M. (Gast)


Lesenswert?

DAS kann jetzt der zu schlechte interne oszillator sein.
wenn du mit der baudrate runtergehst und die fehler dabei weniger 
werden, wars das.

von Dennis B. (danrulz81)


Lesenswert?

Naja, ich bin ja schon auf 9600. Viel weniger kann ich im Bascom nicht 
einstellen. Da werd ich wohl auf
>>7,3728 MHz
externen Oszi umsteigen müssen. Es war auch nur mal zum ausprobieren.

von spess53 (Gast)


Lesenswert?

Hi

>DAS kann jetzt der zu schlechte interne oszillator sein.
>wenn du mit der baudrate runtergehst und die fehler dabei weniger
>werden, wars das.

Begründung!

MfG Spess

von Marco (Gast)


Lesenswert?

Schon komisch, wenn man

Print "Hallo Welt"

ausgibt, und am PC kommt

"TasÃer 7 gedrüc¿z"

da muss noch was ganz anderes faul sein!!!!

von Dennis B. (danrulz81)


Lesenswert?

"Hallo Welt" ist bei mir jetzt zu "Taster 7 gedrückt" mutiert.

von HildeK (Gast)


Lesenswert?

Dennis Brenzel schrieb:
> So, hab jetzt den internen Takt auf 8 MHz gestellt. War in der Tat auf 1
> MHz.

Ich verstehe nicht, warum du nicht das angebotene Feature vom STK500 
einer wählbare externe Taktfrequenz, natürlich quarzstabil, nutzt. Z.B. 
auf den angebotenen 3.686MHz, damit sollte eine UART-Verbindung mit 9600 
problemlos möglich sein.

Alternativ kannst du versuchen herauszubekommen, auf welcher Frequenz 
dein Oszillator tatsächlich schwingt (Pin toggeln lassen und messen) und 
dann die Parameter für die UART-Register entsprechend anpassen.

von Michael M. (Gast)


Lesenswert?

HildeK schrieb:
> Ich verstehe nicht, warum du nicht das angebotene Feature vom STK500
dazu müsste man das handbuch gelesen haben =)

von Michael M. (Gast)


Lesenswert?

spess53 schrieb:
>>wenn du mit der baudrate runtergehst und die fehler dabei weniger
>>werden, wars das.
>
> Begründung!

tatsache, die dürfte sich sehr schwierig gestalten... war eine antwort 
rein nach bauchgefühl.
sorry, mein fehler.

von Dennis B. (danrulz81)


Lesenswert?

Ganz einfach, weil ich kein Quarz habe. Da bringt mir das lesen eines 
Handbuches auch nichts. :p

von spess53 (Gast)


Lesenswert?

Hi

>Ganz einfach, weil ich kein Quarz habe.

Wenn du dich ernsthaft mit µC beschäftigen willst, wirst du um Quarze 
nicht herumkommen.

MfG Spess

von weinbauer (Gast)


Lesenswert?

war da am STK kein Quarz dabei? ... ich meine mich zu erinnern,
dass da in der Packung, gleich neben dem Manual einer war.

von spess53 (Gast)


Lesenswert?

Hi

>war da am STK kein Quarz dabei?

Lt. Handbuch und meiner Erinnerung, nicht.

MfG Spess

von (prx) A. K. (prx)


Lesenswert?

spess53 schrieb:

>>war da am STK kein Quarz dabei?
>
> Lt. Handbuch und meiner Erinnerung, nicht.

Der hier benötigte Quarz steckt am internen Controller des STK500 und 
der hat einen per Studio programmierbaren und per Jumper auf den 
Takteingang des steckbaren Controllers durchschaltbaren Taktausgang, der 
bis 3,68MHz geht. Also kann man ebendiesen Takt verwenden, wenn man mit 
UART arbeitet.

von spess53 (Gast)


Lesenswert?

Hi

>Der Quarz steckt am internen Controller des STK500....

Meine Aussage bezog sich auf:

>ich meine mich zu erinnern, dass da in der Packung, gleich neben dem Manual
>einer war.

>und der hat einen per Studio programmierbaren und per Jumper auf den
>steckbaren Controller >durchschaltbaren Taktausgang, der bis 3,68xxxMHz
>geht.

Auch schon mal nachgemessen?

MfG Spess

von (prx) A. K. (prx)


Lesenswert?

spess53 schrieb:

> Auch schon mal nachgemessen?

Ok, der ist der Bezeichnung im Schaltbild nach zu schliessen wohl ein 
Kermikschwinger. Für UART ist dieses Detail irrelevant.

von spess53 (Gast)


Lesenswert?

Hi

Du brauchst mit das STK500 nicht erklären. Ich hatte vor etlichen Jahren 
mal die angezeigten Frequenzen nachgemessen. Und wenn ich mich recht 
erinnere gab es da, für mich unakzeptable, Differenzen.

MfG Spess

von (prx) A. K. (prx)


Lesenswert?

spess53 schrieb:

> Du brauchst mit das STK500 nicht erklären.

Habe ich deshalb auch nicht ;-).

> Ich hatte vor etlichen Jahren
> mal die angezeigten Frequenzen nachgemessen. Und wenn ich mich recht
> erinnere gab es da, für mich unakzeptable, Differenzen.

Yep, mir kam deine Frage auch komisch vor (deshalb der Edit). Und habe 
mal die Bezeichnung von dem Ding gegoogelt. Das Manual nennt das zwar 
einen crystal, aber die Bezeichnung passt zu einem handelsüblichen 
Keramikschwinger und der darf schon seine 0,5% Abweichung haben. Für 
eine Uhr ist das nix, für UART ist es ok.

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.