PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMega8 Kommikation mit Terminal [Gelöst]



MDKMurdoc
01.10.2008, 14:48
Hallo zusammen

Ich habe mit bei Pollin das Atmel Evulationsboard 2.1 bestellt und funktioniert
auch alles tadellos. Ich bin noch Anfänger und probiere erstmal rum, dass man weiß was man damit alles anstellen kann.
Später soll der mal Einzug in meine Modellbahn machen.

Nun zu meinem kleinem Problem.

Ich will Daten an das Hyperterminal senden. Nur leider kommt da nix an.
Wenn ich das ganze über Bascom AVR IDE 1.11.9.1 simulieren funktioniert es.
Aber wenn ich es über die Hardware machen möchte ==> NIX da.

Ich nutze wie oben schon genannt ATMega 8.

Was ich bei den FUSE Bits beachten muss. Keine Ahnung. Überall steht was anderes.

Ich habe es schon mit mehreren Baudraten probiert. Mit und Ohne Flusssteuerung.

Als Kabel nutze ich ein ganz normales Serielles Verlängerungskabel.
Kann es sein das es daran liegt??

Hier das Testprogramm mit dem ich das schon die ganze Zeit probiere.



$regfile = "m8def.dat"
$crystal = 8000000
$Baud = 9600
Main:
Do
If Pind.4 = 1 Then
Gosub Textausgabe
Bitwait Pind.4 , Reset
End If
Loop
Textausgabe:
Print "Hello World"
Return


So langsam habe ich keinen Plan mehr woran das noch liegen soll.
Nicht das der MAX 232N hinüber ist.

Bin für jeden Tipp dankbar.


MFG Mario

fhs
01.10.2008, 15:01
Hallo Mario,

welche Frequenz hat der Quarz für den AVR auf Deinem Eval-Board? Welche Fuse-Einstellungen hast Du momentan gewählt?

Gruß

Fred

MDKMurdoc
01.10.2008, 15:14
Hallo Fred

Auf dem Board sind 1 mal 8 MHZ und 2 mal 16 MHZ

Wenn ich über Ponyprog2000 die Fusbits auslese dann steht dort:

SUT0 : checked
CKSEL3 : checked
CKSEL2 : checked
CKSEL1 : checked
BOOTSZ1: Checked
BOOTSZ0: Checked

WDTON : Checked kann nicht verändert werden.

MFG

Mario

fhs
01.10.2008, 15:28
Hallo Mario,

welcher der Quarze ist mit den Pins 9 und 10 (beim DIl-Gehäuse des ATmega8) verbunden? Die CKSEL&SUT0 Fuses sind korrekt für Quarzbetrieb gesetzt.

Von Bascom habe ich keine Ahnung. Sicher schaut mal jemand von den Bascom-Experten auf Deinen Code, ob die Initialisierung korrekt ist. Was ist am Hyperterminal eingestellt? 8N1?

Gruß

Fred

MDKMurdoc
01.10.2008, 15:34
Hallo Fred

an PIN 9 und 10 ist der 16 MHZ Quarz angeschlossen.

Ergo würde ich sagen das ich im Quellcode statt der 8MHz die 16 Mhz auswählen müsste.

MFG

Mario

fhs
01.10.2008, 15:38
Hi,

Ergo würde ich sagen das ich im Quellcode statt der 8MHz die 16 Mhz auswählen müsste.

klar doch!

Gruß

Fred

MDKMurdoc
01.10.2008, 16:29
Hi

So ist auch umgestellt. klappt trotzdem nicht. :(
kann ich irgendwie testen ob die verbindung überhaupt funktioniert?

MFG

Mario

fhs
01.10.2008, 16:56
Hi,

noch einmal: Ich kenne Bascom nicht und weiß nicht, wie viele Daten-Bits/Stoppbits/Paritybits Du sendest und was am Hyperterminal eingestellt ist!

Gruß

Fred

McJenso
01.10.2008, 17:28
Hallo,

bei Bascom kann ich dir leider auch nicht helfen. Wenn möglich, mach eine Brücke zwischen TxD und RxD am Max auf der Seite zum AtMega8. Dafür solltest du das Programm vorübergehend löschen. Dann lädst du dir mal hTerm (http://www.der-hammer.info/terminal/index.htm) und stellst die richtige Baudrate ein.
Wenn du jetzt mit hterm vom Rechner Daten sendest, sollten die als Echo zurück kommen. Dann ist die Verbindung und der Max okay.

Gruß

Jens

Bluesmash
01.10.2008, 17:39
hast du als RS232 Kabel ein einfaches verlängerungskabel wo alle pins "gerade" durchverbunden sind? wenn ja musst du es gegen ein kabel tauschen an dem die pins 2 und 3 gekreutzt sind.
Einfach mal nachmessen ob der pin 2 von der einen seite auf pin 3 auf der anderen seite geht und umgekehrt...

und mach im programm einfach mal:

$regfile = "m8def.dat"
$crystal = 8000000
$Baud = 9600
Do
Print "irgendwas"
Loop

im Terminal musst du folgendes einstellen:
Baudrate 9600
Parity: keine
8 Bits
1 Stopbit

gruss Bluesmash

MDKMurdoc
01.10.2008, 20:20
@Jens

Habe ich gemacht, habe nur eine 1 gesendet, da geht nen fenster auf, Autosend und der sendet und sendet und sendet, da kommt aber anscheinend nix zurück. im oberen Bereits bei Tx scheint dann die Zahl der Zeichen die versucht habe zu senden.

@ Bluemash

habe ich probiert bringt auch nix


:(:(

MFG Mario

McJenso
01.10.2008, 20:38
Hallo,

nach dem Aufrufen von hTerm stellst du Baudrate etc. ein. Den richtigen Com-Port wählen und auf Connect. Soweit wahr es wohl eh klar. Im unteren/mittleren Bereich ist das lange Eingabefeld. Da gibst du einfach ein Zeichen ein. z.B. A Wenn vor dem Feld ASC angewählt ist, solltest du das A auch als Buchstaben und nicht als Wert sehen. Dann Enter. Da geht kein Feld Autosend auf. Es MUSS dann im oberen Bereich das A als Echo wieder ankommen. Macht es das nicht ist es ein Hardwareproblem. Du kannst dann die Brücke vor den Max setzen(aus Sicht des PC's). Wenn da kein Echo zu sehen ist, ist es die Leitung. Du Kannst auch am PC selber brücken. Ohne Echo -> ist es die Com-Schnittstelle.

Gruß

Jens

MDKMurdoc
01.10.2008, 21:03
HI

Also hab gleich an der Com-Schnittstelle angefangen.
Wenn ich da Pin 2 und 3 Brücke passiert auch nichts.

Das komische ist ja jedoch, dass ich den ATMega8 beschreiben kann, dass klappt ohne Probleme.

Könnte es sein das HTerm keinen direkten Zugriff auf die Schnittstelle hat.

ICh nutze Windows 2000 und von ECS nen Laptop mit richtiger eingebauter Schnittstelle.

MFG

McJenso
01.10.2008, 21:22
Hallo,

wenn du auf Connect geklickt hast, ändert sich die Bezeichnung des Buttons in Disconnect. Wenn das nicht passiert, ist die Schnittstelle z.B. durch ein anderes Programm blockiert. Das könnte auch das Flashprogramm sein.
Win2K ist bei mir kein Problem.

Gruß

Jens

MDKMurdoc
02.10.2008, 00:09
Hallo

HTerm springt von Connect auf Disconnect um klappt alels wunderbar. Aber es kommt leider nicht an.

Ich hatte das das mal an meinem Zweiten rechner probiert da klappte das gleich auf Anhieb. brauchte nichtmal Pin 2 und 3 vertauschen.

Das komsiche bei der Laptop ist auch das er auf einmal 2 COM Ports hat.
Einer ist aktiv und beim 2. ist nen gelbes Ausrufezeichen dran.

Das ein Programm den Port blockiert, daran habe ich auch schon gedacht.
Rechner neugestartet nur Hterm aufgemacht, ging trotzdem nicht.

kann jetzt leider nix mehr testen da ich jetzt Nachtschicht schieben muss.

MFG

Mario

holzi
02.10.2008, 05:40
Guten morgen,
benutze doch einfach erst einmal das Terminal im Bascom. Oben in der Menüleiste siehst Du ein Modem. Anklicken und dann über Terminal-Settings den Port mit 9600,8,N,1 einstellen. Wenn dass dann OK sein sollte, kannst Du jedenfalls Hardwareprobleme ausschliessen.

Peter

MDKMurdoc
02.10.2008, 06:06
Hallo Holzi

Wenn ich versuche Daten zu Senden an das Terminal kommt ja nix an bei Meinem Laptop. wenn ich bei meinem anderen Rechner das mache da kommen Daten an.

Ich habe schon am COM Port die PIN 2 und 3 gebrückt gehabt, selbst das ging nicht.

Ich muss nachher nochmal schauen.

Vorallem das komsiche ist ja, wie ich oben geschrieben habe, dass ich jetzt 2 COM Ports im Hardwaremanager habe.
und den ATMega8 kann ich ja auch beschreiben alles.

MFG

Mario

MDKMurdoc
02.10.2008, 18:57
So ich mal wieder.

Die Nachtschicht habe ich hintermir, war sehr stressig.

Zurück zum eigentlichen Thema.

Hab jetzt erstmal alles auf meinen anderen PC verlegt. da klappt die kommunikation zwischen Controller und Terminal wunderbar.

Schnittstelle auf dem Atmel Board ist auch OK. D

er PIC sendet auch fleißig Daten nur kommt dabei nur Müll raus. Immer irgendwelche Symbole womit nicht anfangen kann.

MFG

Mario