mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART mit Mega8 kann nur senden.. ?


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen.

Im Anhang findet ihr die Eagle-Dateien für mein Board, auf welchem ein 
Mega8 über die serielle Schnittstelle mit einem PC kommunizieren können 
soll.

Programmiert wird in Bascom.
Das Problem: Ich kann problemlos Daten vom AVR an den PC senden und 
diese in mehreren Terminalprogrammen anschauen.
Nur: Ich kann keine Daten vom PC an den Controller senden.

Beispielprogramm:

$regfile="m8def.dat"
$crystal=3686400
$baud=2400

Dim i as Byte

Print "Hallo"

Do
If UCSRA.RXC=1 Then
i=UDR

Select case i
Case "H"
Print "Hallo"
Case "A"
print "Adieu"
Case Else
Print "Unbkannter Befehl"
End select
End if
Loop
End

In den Terminalproggis sehe ich jeweils das "Hallo", doch wenn ich dann 
ein H oder ein A schicke, passiert gar nix. Es kommt nichts zurück.
Die Terminalprogramme werden auf einem Windows98SE Laptop von 1998 
laufengelassen, der hat einen COM-Port, sollte klappen.

Darum meine Anfrage hier, ob jemand mal die Hardware prüfen könnte, ob 
ich alles richtig verbunden habe.
(brauche nur einfache Übertragung, also nix Handshake etc.)

Herzlichen Gruss und Danke

Mario

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

Bewertung
0 lesenswert
nicht lesenswert
Hier noch das Board

Gruss
Mario

Autor: Muraer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir ist gerade noch etwas aufgefallen.

Ich hab ein Programm geschrieben, dass immer nur "Hallo" sendet, zum 
Testen.

Am alten Windows 98 Schlepptop kommt alles korrekt an.

Verwende ich hingegen das genau gleiche Terminalprogramm mit genau den 
gleichen Einstellungen unter Windows XP (hab zwei PCs probiert), dann 
kommt garnix an. Hänge ich den AVR danach an den Laptop, kommt wieder 
alles sauber an....
Wieso will das unter XP nicht?

Das Empfangsproblem besteht aber auch beim Windows 98.

Herzlichen Gruss
Mario

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

Bewertung
0 lesenswert
nicht lesenswert
Mach mal folgendes:
Im Twerminalprogramm stellst du ein 'No Handshake'

Deine RS232 ist auf dem Bord dahingehend nicht sehr gut
beschaltet. Wenn du sowieso kein Handshake haben willst,
dann mach die Beschaltung so wie hier:

http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART

Achte darauf, wie die Pins 4,8,6 beschaltet sind.

Autor: unsichtbarer WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[OT]
Geiler Schaltplan!
[/OT]

Sonst kann ich mich nur Karl-Heinz anschliessen.

Autor: Muraer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aaalso,
ich hab mal die Schaltung aus eurem Link hergestellt.

Nun kann ich an den PCs gar nix mehr lesen. (Bei XP ging es unterdessen 
auch).

ABER:

Der AVR sendet alle 50mS etwas.
Wenn ich am Oszi gucke (messe gegen GND), dann "zuckt" es regelmässig 
auf am AVR an Pin PD1, am Kabel (PC-Seite) zuckt es an Pin3.
Der AVR sendet also etwas...

Nur: Wieso kommt bei den PCs nichts an? Baudraten stimmen, Handshake ist 
aus..??

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Brücken drin?

DTR - DSR und RTS -CTS jeweils auf der PC-Seite brücken, auch wenn ohne 
Handshake eingestellt ist. Die Controller-ICs reagieren da sehr 
verschieden, weil das meist schon in der Hardware ausgewertet wird.
Müßten Pin 6 mit Pin 4 und Pin 7 mit Pin 8 gebrückt sein, wenn ich jetzt 
nicht mit der Belegung irre.

Gruß aus Berlin
Michael

Autor: Muraer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs genau so gemacht, wie es im obigen Schaltplan steht.

wie meinst du denn, auf PC-Seite brücken... Da kann ich ja nur Stecker 
einstecken. Mehr ja nicht.
Ich hab jetzt Pin 4,6,8 auf meinem Board gebrückt.
Pin 2 ist mit Pin 14 des MAX verbunden, Pin 3 mit Pin 13 des Max, Pin 5 
liegt auf GND.

Mein Kabel:
2==>3
3==>2
5==>5

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich hab mal die Schaltung aus eurem Link hergestellt.

Das ist gut.

> Nun kann ich an den PCs gar nix mehr lesen. (Bei XP ging es unterdessen
> auch).

Das ist schlecht.

> Der AVR sendet alle 50mS etwas.
> Wenn ich am Oszi gucke (messe gegen GND), dann "zuckt" es regelmässig
> auf am AVR an Pin PD1,

Das ist wiederum gut...

> am Kabel (PC-Seite) zuckt es an Pin3.

Das ist nun wiederum schlecht, da Pin3 TXD ist (hier kommen die Daten 
vom PC raus)!

> Der AVR sendet also etwas...

Das mag sein... nun musst du nur noch auf einer Seite Pin 2 mit Pin 3 
tauschen und gut is.

Gruß,
Magnetus

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe eben erst in Deine "Schaltung" geschaut, das dürfte so nicht 
klappen... Der MAx legt Dir die Quittungsleitungen fest und wenn Du Pech 
hast, will der Controller im PC dann nicht.

Gruß aus Berlin
Michael

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

laut seiner Schaltung hat er Pin 2 ist mit Pin 14 des MAX verbunden, das 
ist Rx auf der AVR-Seite. Sein Kabel hat Pin 2 auf Pin 3 PC, das würde 
also stimmen.
Die umgekehrte Richtung laut Schaltung und Kabelbeschreibung auch.
Wenn das Kabel selbst gebaut ist, auf der PC-Seite Brücke zwischen 4 und 
6 sowie zwischen 7 und 8 (jeweils!, nicht alles miteinander...).
Wenn es ein voll beschaltetes Kabel ist, kannst Du natürlich auch auf 
der AVR-Seite brücken. Das würde mich aber wundern, denn ein 1:1 Kabel 
hätte dann auch 2 mit 2 und 3 mit 3 verbunden. Fertige gekreuzte Kabel 
(eben 2 mit 3 und 3 mit 2) sind Null-Modem-Kabel, da ist der Rest meist 
auch speziell beschaltet bzw. gebrückt...

Ich benutze immer 1:1 mit allen 9 Adern beschaltet, auf der AVR-Seite 
eine Buchse, dort dann 2 und 3 gekreuzt und obige Brücken.

Kabel sind normale 9pol. Sub-D-Verlängerungen aus der Kramkiste.

Gruß aus Berlin
Michael

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die vom AVR gesendeten Daten beim PC auf Pin 3 ankommen kann das 
nicht funktionieren!!!

Autor: Muraer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, I hobs!
Hab die Leitungen auf MAX-Seite getauscht.

Jetzt geht alles!

Herzlichen Gruss und vielen Dank!

Mario

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.