-         

Ergebnis 1 bis 9 von 9

Thema: RS232 keine Verbindung. Was mache ich falsch?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    21.03.2008
    Ort
    Liestal
    Alter
    33
    Beiträge
    17

    RS232 keine Verbindung. Was mache ich falsch?

    Anzeige

    Hallo Leute

    Folgendes: ich habe mir eine Schaltung gemäss http://www.roboternetz.de/wissen/ima...ung_max232.gif zusammengebastelt, allerding funktioniert die Übertragung mit UART nicht und ich weiss nicht woran es liegt. Wenn ich es mit dem PC verbinde, werden die gesendeten Bytes nicht empfangen.

    Ich arbeite mit Lochrasterplatinen und habe das UART-Modul auf eine eigene Platine gepackt. Ich nehme an, dass das Problem hier liegt. Ein Softwarefehler ist aber auch nicht auszuschliessen…

    So sieht die Platine aus:
    Vorderseite:

    Rückseite:


    Erklärung:
    Von der 4-poligen Steckleiste kommt RXD & TXD vom uC (Atmega32) plus noch +5V und GND
    Von der 3-poligen Steckleiste kommt RXD & TXD vom PC plus GND


    Im Anhang ist noch die Lochmaster-Datei.

    Übrigens ich habe ein MAX232CPE von Maxim und im Datenblatt steht, man solle 1uF Kondensatoren benutzen. Ich habe 4,7uF eingesetzt (für C1-C4). Spielt das eine Rolle?

    Hier noch das Quellcode für meine Tests:
    Code:
    '###################################################
    'step5.bas.BAS
    'für
    'RoboterNetz.de AVR Tutorial in RN-Wissen
    '
    'Autor: Frank Brall
    'Weitere Beispiele und Beschreibung der Hardware
    'unter
    '  http://www.Roboternetz.de oder
    '  http://www.Roboternetz.de/wissen
    '#######################################################
    
    
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 1000000
    $baud = 9600
    
    Config Portb.1 = Output
    
    Config Pind.7 = Input
    Portd.7 = 1
    
    
    Do
      If Pind.7 = 1 Then
        Portb.1 = 1                                             'Pin wird auf High, also 5V geschaltet
        Print "Schalter nicht gedrückt"
      Else
        Portb.1 = 0                                             'Pin wird auf Low, also 0V geschaltet
        Print "Schalter gedrückt"
      End If
      Wait 1
    Loop
    
    End
    Hat jemand eine Idee woran es liegen könnte? Oder wie kann ich feststellen, wo das Problem liegt? Welche Spannungen sollte ich z.B. bei TXD bekommen, wenn etwas gesendet wird?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken rs232_914.jpg  
    Angehängte Dateien Angehängte Dateien

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    10.06.2006
    Ort
    Duisburg-Rheinhausen
    Alter
    71
    Beiträge
    80
    Hallo Fred84b
    Du solltes erstens dann auch 1uF nehmen, die Kondensatoren haben die Aufgabe einer Ladepumpe.Um 12V- u.12V+ fuer die RS232 .
    Zum anderen hast du ein Null-Modemkabel dazwischen? Bei dem Kabel sind RX----TX u.TX------RX gekreuzt.
    Bzw kommt da etwas an, Buchstaben -salat oder zeichen.
    Zum anderen Kondensator nochmal ueberpruefen ob Du + u. - vertauscht hast.
    Gruß raggy

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    21.03.2008
    Ort
    Liestal
    Alter
    33
    Beiträge
    17
    Hi raggy

    Ich habe dank dir schon grosse Fortschritte gemacht!

    Es gab zwei Probleme.
    1.Das Problem mit dem Kreuzen. Es war tatsächlich gekreuzt. Obwohl ich selber ein Kabel zurechtgebastelt habe… naja habe wohl irgendwo was falsch gemacht. Aber das Hauptproblem war Nr.2
    2.Nämlich: ich hatte beim Ausprobieren das AVR-ISP Dongle am uC steckengelassen und es beim PC entfernt. Und das hat, aus noch ungeklärten Gründen, meine Schaltung lahmgelegt…

    Jetzt kommt aber das nächste Problem: die Zeichen werden am Computer falsch empfangen, bzw es kommen Sachen wie "ääüü[¨üüöö]". Ich habe noch nicht gross herumexperimentiert, aber ich nehme an, das ist ein kleineres Problem. Ich habe lediglich die Databits-Länge beim Terminal verändert (und es kam nicht besser).

    Gruss und Danke
    Fred

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2005
    Ort
    Kaiserslautern
    Beiträge
    794
    Hi,

    dann liegt es (ziemlich) sicher an der Baudrate. Einen µC-Programmfehler von dir kannst du ziemlich einfach ausschließen:
    Nimm dem Mikrocontroller aus der Schaltung raus (also nur den MAX232) und verbinde die Tx/Rx-Leitungen, die du eigentlich an den Mikrocontroller anschließen würdest. Dann solltest du aufm PC immer genau das erhalten, was du auch gesendet hast.
    Wenn das ohne Probleme klappt, sieht's schonmal recht gut aus für die Schaltung des MAX232s.

    Danach kannst du dich um den Mikrocontroller kümmern, wobei du vorallem auf die Baudrate achten solltest. Ist ein externer Quarz angeschlossen und sind die Fuses richtig eingestellt? (Läuft der Mikrocontroller wirklich auf dem richtigen Takt?)

    Dein Programm hab ich mir erstmal nicht näher angeguckt, das sollte vielleicht jemand anders machen, der sich auf Bascom versteht.

    Gruß, CowZ

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    10.06.2006
    Ort
    Duisburg-Rheinhausen
    Alter
    71
    Beiträge
    80
    Hi fred84b
    Das mit 1Mhz (1000000 Hz) ergibt 7,84% erro und ich darf annehmen das
    es der Takt des Atmega32 ist ( ??) dann duefte die Fehlerquote noch höher liegen.
    besorg Dir einen Externen Quarz 3686400 Hz
    In Bascom Option-->Compiler-->Communication ist kann man sehen welcher Quarz wieviel % erro hat.je naeher Null je besser.
    Der interne Takt des Atmega** unterliegt zu vielen schwankungen zB.Temperatur.Der PC soll die selbe Baudzahl haben wie der Atmega.
    und 8.n.1.Flußsteuerung keine!
    Gruß raggy

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    21.03.2008
    Ort
    Liestal
    Alter
    33
    Beiträge
    17
    Ja! Über Nacht ist es mir auch eingefallen. Ich benutze tatsächlich noch den internen Takt. Wird wohl daran liegen.

    Ich habe schon eine 16MHz Quarz gekauft, habe sie aber noch nicht eingebaut.

    Gruss,
    fred

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    10.06.2006
    Ort
    Duisburg-Rheinhausen
    Alter
    71
    Beiträge
    80
    Hallo fred84b
    Noch einen Tip besorg Dir im Internet mal ein gutes Terminal Programm zb. HTerm
    Zum anderen hier ist auch eine Suche im Forum
    da gibt mann den Begriff ein den man sucht und unten das Forum.
    ZB. UART
    Forum :Bascom ......
    Man kan aus nichts so gut lernen,wie aus den Fehlern anderer.ich habe auch so angefangen.
    Gruß raggy und viel Spaß.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    21.03.2008
    Ort
    Liestal
    Alter
    33
    Beiträge
    17
    So, jetzt hat es geklappt.
    Quarz eingebaut und schon war die Übertragung fehlerfrei.

    Danke raggy und CowZ!
    Gruss, fred

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.11.2006
    Ort
    K-Town
    Alter
    39
    Beiträge
    178
    könntest auch auf internen Takt 4Mhz / 9600 stellen oder 8Mhz - funktioniert für deine Anwendung genausogut ohne ext. Quarz...!
    die Einen sagen so, die anderen sagen so....!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •