www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik baudrate


Autor: bert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo liebe kollegen!

möchte gerne eine einfache ansteuerung auf einen mega8 zusammenbringen.

verwende pcseitig das programm TERMINAL..

ich bin mir über folgende werte nicht ganz sicher:

.def temp = r16
.equ CLOCK = 4000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1

stimmen diese werte für den mega 8 wenn ich über den internen quarz 
fahren will?

denn wenn ich in TERMINAL folgende werte einstelle bringt er mir immer 
irgendwelche meldungen und durch zufall dann einmal die vom uC gesendete 
nachricht 'A' (welche ich tatsächlich empfangen möchte).

TERMINAL werte:
Baudrate 2400  (bei dieser baudrate kam durch zufall mal der korrekte 
string vom uC)
handshaking: none
parity: none
stopbits: 1
databits: 8


bitte um antwort...

lg,
bert

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woher kommt eigentlich die offenbar unausrottbare Idee, die Dinger 
hätten einen internen Quarz?

Autor: uart uart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also meine kristallkugel sagt mir: nein...

a) die fuses sind auf 4 mhz gesetzt (standard is 1 mhz) ? wenn nicht, 
clock anpassen
b) in deinem prog steht was von baud=9600 dann nimm auch im terminal 
9600

oder guck mal bei der-hammer.info, der hat ein ganz nettes 
terminal-programm...

und sonst poste bitte noch dein programm-listing.

Autor: bert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die fuses sind standard... und dass is laut meiner erfahrung beim mega8 
1 mhz oder?

habe das ganze vorhin auch mit:

.def temp = r16
.equ CLOCK = 1000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1

getestet falls du das meintest??
leider hat er mir bei einer baudrate von 9600 in TERMINAL nur müll 
asciis gebracht :(


was kann das sein?
warum kommt durch zufall manchmal das richtige zeichen?


lg und danke für die antwort

Autor: Hubertus von der Weide (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Woher kommt eigentlich die offenbar unausrottbare Idee, die Dinger
> hätten einen internen Quarz?

Die Idee kommt daher, dass Anfänger i. d. R. als erstes mit einem Quarz 
oder einem Quarzoszillator als frequenzbestimmendes Element in Berührung 
kommen und somit davon ausgegangen wird, dass der interne Oszillator des 
µCs auch durch einen Quarz definiert wird. Durchaus nachvollziehbar, wie 
ich finde. Nur jemand mit fundierten Kenntnissen kann einen integrierten 
Quarz von vorne herein ausschließen.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ohne die Diskussion um Quarz oder nicht Quarz vertiefen zu wollen, der 
AVR hat nur einen internen RC-Oscillator und der ist auch noch ziemlich 
ungenau...

Ohne die Diskussion "UART geht nur mit Quarz" heraufzubeschwören:

.def temp = r16
.equ CLOCK = 1000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1

versuche diese Einstellung und Terminal auf 9600 mal mit etwas 
abweichenden Werten für CLOCK, also 950000 oder 1000050 oder so.
Mit einem Wert wirst Du erstmal nahe genug an der tatsächlichen Frequnz 
Deines AVR sein, damit das Terminalprogramm was sinnvolles empfängt.

Im Zimmer bleibt der Kram da auch erstmal stabil genug, um weiter zu 
experimetieren.

Wenn Du es allerdings immer zuverlässig einsetzen willst, kommst Du um 
einen Quarz wohl nicht drumrum.

Gruß aus Berlin
Michael

Autor: uart uart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, 1 mhz ist standard (seite 30 in der dokumantation)

falls nicht nur rein das "A" im terminal angekommen ist, dann war es 
zufall meiner ansicht nach. hattest du denn eine reihe A's im terminal?

Autor: bert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die antworten!!

leider kann ich im moment nicht mehr testen da mein prog kabel 
eingegangen ist :((((

ich habe auch eine reihe A's bekommen ja, nur wenn ich dann nochmals 
connecte leider wieder nicht.. ich werde sobald als möglich die variante 
von michael testen.

danke

Autor: lolly (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich habe das selbe problem und möchte nun einen externen quarz 
betreiben! Nur da gibt es ein kleines Problem ich kann die Fusebits 
leider nicht setzen! Ich habe ein Programm (PonyProg2000) von meinem 
Kollegen bekommen doch die Fuses lassen sich nicht setzen! Ich verwende 
das OLIMEX MSP430 Development Board. Ich habe andauernd Probeme mit der 
Verbindung zwischen dem PC und dem Mega! Ich kann immer nur einmal die 
Verbindung herstellen und beim zweiten mal geht es einfach nicht mehr! 
Nach einigen zahlreichen Versuchen hat es dann wieder  funktioniert aber 
eben nur ganz kurz! Was kann da sein, gibt es eventuell eine andere 
Möglichkeit.

Anbei befindet sich ein Programm mit dem ich es auch schon versucht 
habe, jedoch ohne Erfolg!

Hoffe es kann mir jemand helfen!

Danke

Autor: dins (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im angehängten Source ist was in
int prog_fusebits(int n); auskommentiert. Mal nachgeschaut?
Ansonsten würde ich avrdude zum flashen empfehlen.
Falls du unter Windows arbeitest: WinAVR, da ist avrdude auch schon mit 
drin.


Autor: lolly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine schnelle Antwort dins!

Ja das mit den auskommentierten dingen ist absicht(das heißt ich hoffe 
das es stimmt) da ich nur die lowfusebits setzen möchte!

Danke für deinen Vorschlag, ich werde demnächst WinAVR testen ich hoffe 
das es funktioniert!!


Danke nochmal, mfG

Autor: Marco S. (masterof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@lolly

mit einem OLIMEX MSP430 Development Board geht es nicht.
Du must einen programmer nehmen der mit den AVR zusammen arbeitet.

Autor: Werbungverschmäher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und bitte immer schön gerade (glatte) quarzfrequenzen nehmen und nicht 
dem irrtum verfallen, dass baudratenquarze besser geeignet wären.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ja nun nicht so wild. Bei glatten 2MHz ist man mit 9600 schon 
dabei, nur eben nicht bei 1MHz. Die recht gängigen 8MHz taugen also bis 
rauf zu 38400 und was will man mehr.

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.