mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART -> MAX232


Autor: Daniel S. (dsparka)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
wir versuchen hier mithilfe eines MAX232 Zeichen an den PC zu senden. 
Das ganze funktioniert solange die RxD-Leitung vom ISP (USB-AVR Lab) mit 
der des µC verbunden ist. Trennen wir diese Verbindung sendet der µC 
nichts mehr. Eine Test-LED an PINC0 blinkt weiterhin fröhlich vor sich 
hin.
Der verwendete Code:
#include <avr/io.h>
#include <util/delay.h>

#define BAUD 9600UL
#define UBRR_BAUD   ((F_CPU / (16UL * BAUD)) - 1)

void initialize_uart(void) {
    // Baudrate einstellen (Normaler Modus)
    UBRRH = (uint8_t) (UBRR_BAUD >> 8);
    UBRRL = (uint8_t) (UBRR_BAUD & 0x0ff);

    // Aktivieren von receiver und transmitter
    UCSRB = (1 << TXEN);

    // Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
    UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);
}

int main() {
  initialize_uart();
  const char OK = 'k';
  const char NK = 'n';
  const char TE = 't';
  DDRA = 0x00;
  DDRC = 0xFF;
  while(1) {
    _delay_ms(50.);
    PORTC = 0xFF;
    _delay_ms(50.);
    PORTC = 0x00;
    while(!(UCSRA & ( 1 << UDRE))) {}
    PORTC = 0xff;
    PORTC = 0x00;
    if(PINA & 0x1) {
      UDR = NK;
    } else if(PINA & (1 << 1)){
      UDR = TE;
    } else {
      UDR = OK;
    }
  }
}
Weiss hier jemand wo das Problem liegt? Wir verzweifeln hier.


Gruß, Daniel

Autor: Uwe ... (uwegw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fehler in der Masseverbindung der Schnittstelle zum PC? Und die Masse 
kommt dann über das ISP-Kabel...

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vom genannten Problem abgesehen würde der Spannungsregler sicherlich 
auch ganz gern einen Kondensator auf der Eingangsseite sehen.. :-)

Autor: Daniel S. (dsparka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Fehler. Hatte vergessen zu erwähnen das -7,9V am ISP RxD anliegen.
Entfernt man den ISP liegen an RxD und TxD durchgehend 5V an.

Gruß, Daniel

€dit: Der Kondensator wurde hinzugefügt. Danke für den Tipp!

Autor: Daniel S. (dsparka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
My fault! Hatte den D-Sub-Stecker falsch angelötet :-)

Gruß, Daniel

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.