Forum: Mikrocontroller und Digitale Elektronik Bascom+RS232=Müll?


von Jonathan M. (jona)


Angehängte Dateien:

Lesenswert?

Hallo Forum,

Zu erst einmal:
Ich benutze das STK500 mit einem ATmega8535 und Bascom.
Zwischen meinem PC und dem STK500 ist ein USB/Seriell Converter.

Ich bin gerade dabei mit Bascom und RS232 zu experimentieren.Dazu habe 
ich wie beschreiben mein STK verkabelt und habe ein einfaches Programm 
dazu
geschrieben,das "Hello World" ausgeben soll.
Rausgekommen ist leider nur das im Anhang...
Woran kann das liegen?
(Ich hab mal gelesen man soll einen Quarz nehmen,aber bei meinem Versuch 
war
ja nahezu kein einziges Zeichen richtig,abgesehen davon ist das Kabel 
zum PC
gerademal 1,5m lang)

MfG

Jonathan

von Cyblord -. (cyblord)


Lesenswert?

Baudrate korrekt eingestellt?

von Karl H. (kbuchegg)


Lesenswert?

Jonathan M. schrieb:

> Woran kann das liegen?
Das deine Taktfrequenz des µC nicht mit der übereinstimmt, mit der 
BASCOM die UART eingestellt hat.

> (Ich hab mal gelesen man soll einen Quarz nehmen,aber bei meinem Versuch
> war
> ja nahezu kein einziges Zeichen richtig,

Ja, so ist das.
Wobei es erstaunlich ist, dass die Anzahl der Zeichen pro Zeile 
übereinstimmt und der Zeilenvorschub scheinbar immer richtig ist.

von Jonathan M. (jona)


Lesenswert?

Hallo,
Danke für die schnellen ANtworten.
@cyblord ----:
Ja

@ Karl Heinz Buchegger:
Ich hab in allen Einstellungen von Communcation bis zu den Fuse-Bits die 
einzelnen Frequenzen überprüft.

Was ich komisch finde ist,dass statt dem "W" von "World" immer so ein 
Pfeil
ist.Bei falscher Frequenz von dem RC Oszillators müssten da doch 
willkürliche Werte kommen !?

MfG

Jonathan

von Cyblord -. (cyblord)


Lesenswert?

Das sieht fast so aus als ob die Daten um ein Bit verschoben wären. 
Allerdings erklärt das den korrekten Zeilenumbruch nicht. Schon 
merkwürdig irgendwie.

von Mike R. (thesealion)


Lesenswert?

Jonathan M. schrieb:
> Was ich komisch finde ist,dass statt dem "W" von "World" immer so ein
> Pfeil ist.Bei falscher Frequenz von dem RC Oszillators müssten da doch
> willkürliche Werte kommen !?

Das ist schon richtig, dein RC Oszillator scheint zumindestens auf einer
festen Frequenz zu laufen :)
Die High/Low Folge, die von deinem Controller auf der RS232 gesendet 
wird,
sieht immer gleich aus. Da der PC immer die gleiche "Maske" benutzt um 
diese
Folge zu entschlüsseln, sieht die Antwort auch immer gleich aus.

Welchen Takt und welche Baudrate hast du denn eingestellt?

von Jonathan M. (jona)


Lesenswert?

Takt:1Mhz
Baudrate:2400

von spess53 (Gast)


Lesenswert?

Hi

>Das sieht fast so aus als ob die Daten um ein Bit verschoben wären.

Nicht direkt verschoben. Bit7 ist gesetzt. Die unteren Bits (nicht alle 
überprüft) stimmen (meist).

MfG Spess

von Jonathan M. (jona)


Lesenswert?

So,wer mein Programm sehen will:

$regfile = "m8535.dat"
$crystal = 1000000
$baud = 2400
$hwstack = 40
$swstack = 16
$framesize = 32


Do


Print "Hello World"

Waitms 500

Loop

Obwohl das wahrscheinlich nichts nützen wird...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das ist

 ╚  Õ  ý  ý  ´     Î  ´  r  ý  d
C8 E5 EC EC EF 20 D7 EF 72 EC 64

bzw.


 ╚  Õ  ý  ý  ´     Î  =  r  l  õ
C8 E5 EC EC EF 20 D7 2D 72 6C E4

Gewünscht ist

 H  e  l  l  o     W  o  r  l  d
48 65 6C 6C 6F    77 6F 72 6C 64

Was fällt auf?

Fast immer wenn es schiefgeht, ist Bit 7 gesetzt.

--> Baudratenproblem.

von Jonathan M. (jona)


Lesenswert?

Gut zu wissen :-)
Aber was und vor allem WO soll ich da was ändern?

Mfg

Jonathan

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Takt mit Quarz stabilisieren, nicht den internen RC-Oszillator 
verwenden. Quarzfrequenz so wählen, daß der Baudratenfehler so gering 
wie möglich ist.

Siehe "Wichtiger Hinweis 2" unter 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART#UART_konfigurieren

von spess53 (Gast)


Lesenswert?

Hi

>Aber was und vor allem WO soll ich da was ändern?

Hast du einen Quarz herumliegen?

MfG Spess

von Jonathan M. (jona)


Lesenswert?

Ok,das heisst das der interne Oszillator praktisch so gut wie dauern 
STABIL
auf einer anderen Frequenz läuft.
Und dann noch eine Frage:
In dem "Wichtiger Hinweis 2" steht,man kann den RC Oszillator auch 
kalibrieren.Da ich gerade keinen Quarz habe....ist das überhaupt 
sinnvoll?

von Jonathan M. (jona)


Lesenswert?

@Spess53:

In welchem Frequenzbereich sollten die denn sein?

von Frank (Gast)


Lesenswert?

a) noch bequemer als ein (einfacher) Quarz ist ein Quartzgenerator, so 
ein 4-beiniges Ding. Der schwingt wirklich immer an. Einzuspeisen in 
einen der Quartzanschlüsse des Mega ...

b) wenn sowas nicht zur Hand, einfach (zum Test) die Baudrate noch 
weiter senken

c) irgendwo gab es doch auch noch eine Methode, den RC-Oszi zu 
"kalibrieren" ... weiss nur im Moment nicht wie. Nimms als Stichwort ...

von Cyblord -. (cyblord)


Lesenswert?

Also bei mir ging bisher wirklich JEDER AVR mit einer Baudrate =<9600 
Baud auch mit internen Oszillator ohne Probleme und ohne Kalibireren. 
Ich glaube einfach nicht dass ein derart konstantes Problem von der 
Ungenauigkeit des internen Oszillators herührt. Das ist keine zufällig 
auftretende Störung, es muss sich um ein generelles Problem handeln.

gruß cyblord

von RTFM (Gast)


Lesenswert?

Jonathan M. schrieb:
> In welchem Frequenzbereich sollten die denn sein?

Es sind die "Baudratenquartze". Deren Wert ist immer ein Vielfaches von 
14400. Google weis genaueres.

von Falk B. (falk)


Lesenswert?

@  Jonathan M. (jona)

>Ok,das heisst das der interne Oszillator praktisch so gut wie dauern
>STABIL auf einer anderen Frequenz läuft.

Mehr oder weniger.

>Und dann noch eine Frage:
>In dem "Wichtiger Hinweis 2" steht,man kann den RC Oszillator auch
>kalibrieren.

Ja, mit dem OSCCAL Register.

>Da ich gerade keinen Quarz habe....ist das überhaupt
>sinnvoll?

Kann man machen für einen schnellen Test.

von Jonathan M. (jona)


Lesenswert?

Ich habe jetzt mal die Baudrate auf 1200 gesetzt........
Das Ergebnis:
Die "Wahrscheinlichkeit",dass 7 Buchstaben richtig sing und am richtigen 
Ort sind wird größer.
(Blick auf Kühlschrank schweifend :DDD)

von Falk B. (falk)


Lesenswert?


von Jonathan M. (jona)


Angehängte Dateien:

Lesenswert?

Der Screenshot...

MfG

Jonathan

von Falk B. (falk)


Lesenswert?

@  Jonathan M. (jona)

>Ich habe jetzt mal die Baudrate auf 1200 gesetzt........
>Das Ergebnis:
>Die "Wahrscheinlichkeit",dass 7 Buchstaben richtig sing und am richtigen
>Ort sind wird größer.

9600 Baud gehen mit 1 MHz sowieso nicht, weil der Teilerfaktor zu krumm 
ist, 6,5irgendwas.

1200 Baud sind schon mal 26,0x, da spielt nur noch der Oszillatorfehler 
rein.

von RTFM (Gast)


Lesenswert?

RTFM schrieb:
> "Baudratenquartze". Deren Wert ist immer ein Vielfaches von

0,0144 MHz

Dann ergibt das so Werte wie
3,6864 MHz
7,3728 MHz
usw.

von Falk B. (falk)


Lesenswert?

Moment, hat das STK500 nicht einen Quarz, den man nur jumpern muss?

von Jonathan M. (jona)


Lesenswert?

Nein,

nur einen Steckplatz für den Quarz

von Falk B. (falk)


Lesenswert?

1
When the XTAL1 jumper is mounted, the STK500 internal clock system is used as main
2
clock to the target AVR. The internal clock system can either use a crystal in the
3
on-board crystal socket or a software-generated clock from the master microcontroller.
4
The frequency of the software-generated clock can be set from 0 to 3.68 MHz. The
5
default value is 3.68 MHz. Section 5.3.5.3 on page 5-7 explains how to set the clock frequency
6
from AVR Studio

von Jonathan M. (jona)


Lesenswert?

Aha

Sorry,habs nicht gewusst.Ich werde mir dann aber mal nen Qurz besorgen 
und
es dann ausprobieren.

Danke für alle Antworten!

MfG

Jonathan

von Falk B. (falk)


Lesenswert?

@  Jonathan M. (jona)


>Sorry,habs nicht gewusst.Ich werde mir dann aber mal nen Qurz besorgen
>und es dann ausprobieren.

Was zum Geier hindert dich daran, den Jumper JETZT richtig zu setzen und 
den Takt per Software am STK500 JETZT richtig einzustellen?

von Jonathan M. (jona)


Lesenswert?

Dass der Jumper RICHTIG sitzt und erst lesen muss wie ich es einstelle,
weil ich mit dem AVR Studio keine Erfahrung habe.

von Jonathan M. (jona)


Lesenswert?

Hallo nochmal,
Gerade habe ich in der Anleiung fürs STK500 gelesen und das hier 
gefunden:

5.3.5.3 Oscillator The STK500 development board uses a programmable 
oscillator circuit that offers a
wide range of frequencies for the target device.
Since it is not possible to generate an unlimited number of frequencies, 
the STK500
user interface will calculate the value closest to the value written to 
the oscillator text
box. The calculated value is then presented in the oscillator text box, 
overwriting the
previously written number.

Aber wo ist diese "oscillator text box"?

MfG

Jonathan

von Karl H. (kbuchegg)


Lesenswert?

Jonathan M. schrieb:
> Hallo nochmal,
> Gerade habe ich in der Anleiung fürs STK500 gelesen und das hier
> gefunden:
>
> 5.3.5.3 Oscillator The STK500 development board uses a programmable
> oscillator circuit that offers a
> wide range of frequencies for the target device.
> Since it is not possible to generate an unlimited number of frequencies,
> the STK500
> user interface will calculate the value closest to the value written to
> the oscillator text
> box. The calculated value is then presented in the oscillator text box,
> overwriting the
> previously written number.
>
> Aber wo ist diese "oscillator text box"?

Wo der in BASCOM ist, weiss ich nicht.
Aber im AVR-Studio (4-er) ist er wohl im Programmierdialog im Reiter 
"HW-Settings". Da gibt es einen schönen Schieber, mit dem man die 
Einstellung machen kann.

von Jonathan M. (jona)


Lesenswert?

Hi,
Den "Schieber" kenne ich.Hab mich schon zehn mal gefragt,wozu der gut 
ist...jetzt weiß ich es.Danke!

MfG

Jonathan

von Jonathan M. (jona)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

Soooo,nach ein bisschen Frequenz-und Versorgungsspannungsfummeln sieht 
das
Ergebnis jetzt aus wie im Anhang!
Danke an alle und vor allem an Falk Brunner wegen seinem Hinweis :-)
Bis zum nächsten Mal...

MfG

Jonathan

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jonathan M. schrieb:
> Bis zum nächsten Mal...

Bis dahin kannst Du ja auch mal lernen, daß man den Text, der in einem 
Terminalfenster zu sehen ist, auch direkt als Text in die 
Zwischenablage kopieren kann, und daß Screenshots nicht als JPG-Datei 
zu erstellen sind. Letzteres steht auch deutlich unter dem Eingabefeld 
für das Hochladen von Dateien:

> Bitte das JPG-Format nur für Fotos und Scans verwenden!
> Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.

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.