- Labornetzteil AliExpress         
Ergebnis 1 bis 9 von 9

Thema: Atmega8 via RS232 mit PC verbinden scheitert (Linux)

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    03.08.2007
    Beiträge
    31

    Atmega8 via RS232 mit PC verbinden scheitert (Linux)

    Nabend.
    Seit einiger Zeit versuche ich, eine serielle Verbindung zwischen meinem Mega 8 und meinem PC herzustellen. Leider hat es bisher nicht geklappt und diverse Forenbeiträge und tutorials haben nichts gebracht.
    da ich nicht genau weiß, ob mein problem software oder hardwarebedingt ist, habe ich erstmal hier gepostet.

    Bei mir sieht es wiefolgt aus:


    Der Microcontroller initialisiert den UART mit 9600 Baud (8MHz externer Quarzoszillator)

    Code:
    #define BAUD 9600
    #define MYUBRR F_CPU/16/BAUD-1
    unsigned int ubrr = MYUBRR;
    UBRRH = (unsigned char)(ubrr>>8);
    UBRRL = (unsigned char)ubrr;
    UCSRB = (1<<TXEN); // Sendekanal aktivieren
    UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); // Asynchron 8N1
    Dann sendet er immer, wann möglich, aber durch nen timer auf 6Hz (willkürliche zahl) begrenzt:
    Code:
    if(UCSRA & (1<<UDRE)) // UART Data Register Empty = 1 => Senden
    {
    	UDR = (char)'x';
    }
    An Pin 3 des Controllers kann ich 5V messen. Da mir kein Oszilloskop zur Verfügung steht, kann ich da leider ncihts weiter drüber aussagen.

    Der TTL Pegel wird dann durch einen Ordnungsgemäß beschalteten MAX232 umgewandelt (ja, er hat auch ne stromversorgung).
    Hier messe ich -7.2V.

    das verlängerungskabel ist ca 2m lang und hat zwei buchsen.

    Am Rechner selbst lese ich die serielle Schnittstelle unter linux mit "cat /dev/ttyD1" aus.
    Aber es passiert nichts.
    Konfiguration der Schnittstelle:

    Code:
    homeserv:~# setserial /dev/ttyD1 -a
    /dev/ttyD1, Line 1, UART: 16550A, Port: 0x1008, IRQ: 18
    	Baud_base: 9600, close_delay: 50, divisor: 0
    	closing_wait: 3000
    	Flags: spd_normal skip_test
    Jetzt kommt das kuriose:
    Wenn ich den Controller über den MAX232 mit dem PC verbinde, kommt garnichts an.
    Wenn ich aber den TTL Pegel direkt mit dem PC verbinde und ein wenig über den Kontakt kratze (wohl prelleffekt) kommen am PC nicht identifizierbare daten an:

    Ich weiß leider nicht, wo der Fehler steckt, allerdings habe ich ein paar Überlegungen angestellt:

    *Die serielle Schnittstelle am PC funktioniert, da ich an kommende daten sehe.
    *sind ankommende daten wegen des pegels falsch oder sendet er nicht richtig ?
    *wieso kommen nur daten an, wenn ich über den kontakt kratze
    *wieso kommen über den MAX garkeine sichtbaren daten an ?
    *ein problem mit modem / nullmodem kabel meine ich ausschließen zu können, da mit TTL am richtigen pin etwas ankommt. die beschaltung hier muss also auch okay sein



    kann mir da einer weiterhelfen ?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken seriell.png  

Berechtigungen

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

LiFePO4 Speicher Test