www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kommunikation Mega8-16 -> RS232


Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

es gibt unzählige Beiträge zu dem Thema, aber ich pack es einfach nicht.

Aufgabe:
ATMEGA8-16 soll Strings an PC senden, Programm (minimal) in BASCOM
$regfile = "m8def.dat"
$crystal = 3686400
$baud = 19200
Do
   Print "Hello"
Loop

eigentlich simpel, aber es kommt nur Datenschrott an. Vermutung: falsche 
Baudrate!? Ich habe verschiedenes für Baud und Crystal ausprobiert, 
immer ohne Erfolg. Auch das ASM-Beispiel aus dem Tutorial tut nicht.
Die Taktfreq. habe ich mit einem Zähler schon genau ausgemessen und 
entsprechend eingetragen - nix!  :-((
Was muß im Terminalprog. eingestellt sein (habe schon zwei verschiedene 
Programme getestet) ??  9600, keine Parität, 8 Datenbit, 1 Stopbit, 
keine Protokoll ?!

Danke für Eure Hilfe,

Manni

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Signalmasse zwischen AVR und PC vergessen? Bzw. auf dem Targetboard 
nicht an die DSUB-Buchse Pin 5 (9-pol) bzw. 7 (25-pol) gelegt?

Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
durchgemessen, ist drauf

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was muß im Terminalprog. eingestellt sein (habe schon zwei verschiedene
> Programme getestet) ??  9600, keine Parität, 8 Datenbit, 1 Stopbit,
> keine Protokoll ?!

1. Wenn du in deinem Programm die Baudrate auf 19200 Baud setzt, wirst
   du mit 9600 Baud am PC nie und nimmer was brauchbares empfangen
   können.

2. keine Parität, 8 Datenbit, 1 Stopbit und kein Protokoll sind ein
   guter Anfang ;)

Gruß,
Magnetus

Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, die Baudrate war natürlich aufeinander abgestimmt. Ich habe nur 
den Code aus einem "Probierstatus" herauskopiert.

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Manni,

die Fuses hast Du natürlich richtig gesetzt .....

Otto

Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Otto,

kann man den in BASCOM Fuses setzten? Im AVR-Studio ist mir die 
Möglichkeit durchaus bekannt, aber was muss gesetzt werden?
=> kurz gesagt, Fuses habe ich (aus Unwissenheit) keine gesetzt.

Autor: DarkBeast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also iss der mega noch auf werkseinstellunge was die fuses angeht ??

wenn ja läuft der mit internem takt soweit ich mich erinnere und dann 
stimmt dein $crystal nicht oder irre ich da ??

schau doch mal ins datenblatt vom mega da steht drinn mit was der 
standartmässig läuft

da bascom ja den &crystal wert nimmt um die bautratenregister richtig zu 
setzen passt das dann nicht

Autor: DarkBeast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups sehe gerade du hast ja nen mega8 wenn der noch auf standart steht 
dann läuft der mit 1Mhz

dann sollte ein

$crystal = 1000000

dein problem lösen

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Manni,

wenn Du Deinen Quarz nutzen und auch möchtest, dass der AVR mit dieser 
Frequenz auch arbeitet, musst Du die Fuses setzen - siehe AVR-Tutorium.

Gruss Otto

Autor: Frank L. (hermastersvoice)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwas stimmt hier nicht überein. Es wird behauptet die Taktfrequenz 
wurde genau gemessen und dann wird von einem ungefuseten Chip 
geschrieben. Werksmässig laufen M8 und M16 mit 1MHz und das ohne 
externen Schwinger. Wie siehts denn nun in Wirklichkeit aus? Etwas 
nachdenken vorm drauflosbasteln und drauflosposten könnte nicht schaden!

bye

Frank

Autor: DarkBeast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm ich gehe mal davon aus das er sich ein eval board gekauft hat hats 
zusammengebastelt und angeschlossen

der quarz ist drauf also auch angeschlossen und schwingt kann also 
gemessen werden

nur ohne gsetzte fuses isset dem mega wurst ob da 1Hz oder 50Ghz 
dranhängen der läuft dann nur mit internem 1Mhz takt bis man ihm sagt:

 so du läuftst jetzt mit dem externen quarz

und das geht halt über die fuses.

nach der frequenz die er da gemessen hat dürfte das das board von Rowalt 
sein oder irre ich mich?

naja wenn gibt es da auch ein buch zu und da ist eigentlich alles zu 
diesem board erklärt inklusive fuses und bascom

Autor: Frank L. (hermastersvoice)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nur durch anhängen schwingt ein Quarz nicht, dazu braucht er schon den 
anregenden Oszillator im Controller und Der ist aus wenn der Chip intern 
getaktet wird. Wenn allerdings auf dem Board ein Oszillator statt eines 
Quarzes drauf ist dann würde Der natürlich munter schwingen. 
Interessiert nur den Chip garnicht :-)

bye

Frank

Autor: DarkBeast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wusste ich noch nicht bin selber noch nicht ganz so lange dabei

ok wieder was gelernt

naja auf jeden fall läuft der quarz nur wenn die Fuses richtig gesetz 
sind und wenn er das erwähnte board hat ist im dazugehörigen buch auch 
alles schön übersichtlich erklärt auch wie die fuses per bascom 
eingestellt werden

Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

mal langsam - einfach so Augen zu und durch bin ich auch nicht. Ich 
stehe am Anfang meiner "AVR_Karriere" und kenne sicher die meisten 
Tricks und Kniffe nicht. Nebenbei: Ich nutzte ein STK500
Ich habe am Pin des IC gemessen und sowohl mit externem Quarz (16MHz) 
und Boardtakt 3,68.. MHz den Takt am Pin gemessen. Das waren die 
angegebenen Werte.
Der Controlelr läuft intern mit 1MHz und ich habe über AVR-Studio die 
Fuses ausgelesen und kann das damit bestätigen (SUT_CKSEL: Int. RC Osc. 
1 MHz; Start-up time: 6 CK + 64 ms; default value)
Leider löst aber auch "baud=1000000" das Problem nicht.

Autor: DarkBeast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
öhm ich nehme doch an du meinst

$crystal = 1000000

und nicht baud = 1000000

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und selbst dann besteht die Lösung nicht darin, in BASCOM
das 1 Mhz einzutragen, sondern den Prozessor umzufusen, dass
er den externen Quarz auch tatsächlich benutzt.

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.