Kommunikation Mega8-16 -> RS232

Gast #741239
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
1
$regfile = "m8def.dat"
2
$crystal = 3686400
3
$baud = 19200
4
Do
5
   Print "Hello"
6
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
Gast
> 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
Gast
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.
Gast
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
Gast
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
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
Gast
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
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
Gast
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
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.