BASCOM UART Senden geht empfangen nicht

OP #1383989
Lesenswert?

Hab mir eine Platine geätzt und auch alle Leiterbahnen auf kurzschluss 
getestet. Habe den MAX 232 in SMD Form verlötet. Laut Datenblatt gibt es 
zu dem DIP IC keine Unterschiede. 
http://www.mikrocontroller.net/wikifiles/e/ee/AVR-RS232.png

Ich kann mit dem aufgelöteten Atmega 8 auch zum PC senden und erhalten 
ohne Störsignale 100 %tig das was ich mit dem Atmega versende, aber wenn 
ich vom PC etwas an den Atmega schicke, gibt es keine Reaktion darauf.

Code:
$regfile = "m8def.dat"
$baud = 19200
$crystal = 4000000

Ein Alias 1
Aus Alias 0

Dim I As Byte
Config Pinb.0 = Output
Portb.0=Aus

Print "Start"
Do
  i = Ischarwaiting()
  If i = 1 Then
    i = Waitkey()
    Select Case i
    Case "H"
      Print "Hallo"
    Case "h"
      Print "hallo"
    Case "t"
      Portb.0 = EIN
    Case Else
      Print "Unbekannter Befehl"
    End Select
  End If
Loop
End

Und ja ich habe schon eine halbe stunde gegoogelt nach gemessen und die 
SuFu genutzt. Der gepostete ode ist nur ein Testprogramm und nicht das 
Hauptprogramm
Gast #1384021
Lesenswert?

Hast Du am 9pol. Sub-D Stecker Deines Layouts die Pins
7 (RTS) mit 8 (CTS)
und
1 (DCD), 4 (DTR) und 6 (DSR)
miteinander verbunden? Ich musste das bei allen RS-232 Schaltungen 
machen, die ich an einen seriellen Port des PC angeschlossen habe.
Es funktionierte sonst nicht, wegen Handshake/Flusskontrolle.
RTS: Ready To Send
CTS: Clear To Send
DCD: Data Carrier Detected
DTR: Data Terminal Ready
DSR: Data Set Ready
Lies' Dir mal die Spezifikation der RS-232 Schnittstelle durch :-).
Gast #2227512
Lesenswert?

Konnte das Problem gelöst werden? Ich habe nämlich dasselbe. Verwende 
folgenden Testcode:
1
$regfile = "m32def.dat"
2
$crystal = 16000000
3
$baud = 9600
4

5
$framesize = 32
6
$swstack = 32
7
$hwstack = 32
8

9
Dim Relaisinp As Byte
10

11
Print "Hallo Welt"
12

13
Do
14

15
   If Ischarwaiting() <> 0 Then
16

17
      Relaisinp = Waitkey()
18
      Print Relaisinp
19

20
   End If
21

22
Loop

"Hallo Welt" kommt korrekt am Terminal an, jedoch reagiert der 
Controller (Atmega32) auf kein gesendetes Zeichen.

Es sind am RS232 nur die Pins RxD, TxD und die Signalmasse beschaltet, 
was doch eigentlich zum einfachen Senden und Empfangen reichen sollte.

Wäre schön, wenn mir jemand helfen kann. Den Code von Klaus habe ich 
ebenfalls ausprobiert - keine Reaktion.

Viele Grüße,
Chris
Gast #2228379
Lesenswert?

Leider funktionieren beide Vorgehensweisen nicht. Kann es ein 
Hardwarefehler sein? Müssen die anderen Leitungen verschaltet werden? 
Das Terminal meldet "UART Receiver Framing Error". Kann dies den Fehler 
verursachen?
Danke für die Hilfe, Chris

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren