Forum: Mikrocontroller und Digitale Elektronik UART -> MAX232


von Daniel S. (dsparka)


Angehängte Dateien:

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:
1
#include <avr/io.h>
2
#include <util/delay.h>
3
4
#define BAUD 9600UL
5
#define UBRR_BAUD   ((F_CPU / (16UL * BAUD)) - 1)
6
7
void initialize_uart(void) {
8
    // Baudrate einstellen (Normaler Modus)
9
    UBRRH = (uint8_t) (UBRR_BAUD >> 8);
10
    UBRRL = (uint8_t) (UBRR_BAUD & 0x0ff);
11
12
    // Aktivieren von receiver und transmitter
13
    UCSRB = (1 << TXEN);
14
15
    // Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
16
    UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);
17
}
18
19
int main() {
20
  initialize_uart();
21
  const char OK = 'k';
22
  const char NK = 'n';
23
  const char TE = 't';
24
  DDRA = 0x00;
25
  DDRC = 0xFF;
26
  while(1) {
27
    _delay_ms(50.);
28
    PORTC = 0xFF;
29
    _delay_ms(50.);
30
    PORTC = 0x00;
31
    while(!(UCSRA & ( 1 << UDRE))) {}
32
    PORTC = 0xff;
33
    PORTC = 0x00;
34
    if(PINA & 0x1) {
35
      UDR = NK;
36
    } else if(PINA & (1 << 1)){
37
      UDR = TE;
38
    } else {
39
      UDR = OK;
40
    }
41
  }
42
}
Weiss hier jemand wo das Problem liegt? Wir verzweifeln hier.


Gruß, Daniel

von Uwe .. (uwegw)


Lesenswert?

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

von Christian (Gast)


Lesenswert?

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

von Daniel S. (dsparka)


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!

von Daniel S. (dsparka)


Lesenswert?

My fault! Hatte den D-Sub-Stecker falsch angelötet :-)

Gruß, Daniel

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.