8051 Probleme mit UART Kommunikation

Gast #4408984
Lesenswert?

Hallo zusammen:

ich möchte einen AT89C5131 mit 12 MHz den FS20 Empfänger von ELV 
(FS20WUE)über UART verbinden. Die Kommunkation mit einem 
Terminalprogramm am PC funktioniert, wenn ich jedoch den gleichen Befehl 
vom Mikrocontroller per UART an den FS20WUE sende, erhalte ich vom 
FS20WUE keine Reaktion. Der FS20WUE hängt am seriellen Port P3.0/P3.1, 
parallel dazu ist ein MAX232 angeschlossen, mit dem ich die Daten am PC 
empfangen kann.

Hat jemand eine Idee, woran es liegen könnte?
1
#include <at89c5131.h>            
2

3
void Uart_Init(crystal_t systemCrysal)
4
{
5
    // init uart
6
    SCON |= 0x50;        // SM1 (2^6) = 1; REN (2^4) = 1;
7

8
//-------------------------------------------------
9
    // Timer2 init
10
    T2CON |= 0x30;    // TCLK (2^4) = 1; RCLK (2^5) = 1;
11
    TR2 = 1;          // Timmer2 run T2CON 2^2
12

13
    if(systemCrysal == _12MHz)
14
    {
15
        // Reloadwert fuer 12MHz Quarz
16
        RCAP2H = 0xFF;
17
        RCAP2L = 0xB2;
18
    }
19
    else if  (systemCrysal == _24MHz)
20
    {
21
        // Reloadwert fuer 24MHz Quarz
22
        RCAP2H = 0xFF;
23
        RCAP2L = 0x66;
24
    }
25
    else {}
26

27
//-------------------------------------------------
28
    TI = 1;        // SCON; Ermoeglicht das Benutzen von printf()
29
}
30

31
void serial_send(unsigned char dat){
32
  while(!TI);
33
  TI = 0;
34
  SBUF = dat;
35
}
36

37
  unsigned char serial_read(){
38
  while(!RI);
39
  RI = 0;
40
  return SBUF;
41
}
42

43

44

45
void main (void){
46
  
47

48
  Uart_Init (_12MHz);
49
  
50
  serial_send (0x02);
51
  serial_send (0x01);
52
  serial_send (0xF0);
53

54

55
  while(1){
56
    
57
    
58
    serial_read();
59
  P2_0 = RI;
60
  P2_1 = TI;
61

62
  }}
#4409548
Lesenswert?

Ich kann immer nur dazu raten, sich anzusehen, was auf der 
Schnittstelle passiert. Embedded Firmware zu schreiben, ohne in der Lage 
zu sein, sich die elektrischen Signale, die man erzeugt, ansehen zu 
können, scheint mir so ähnlich zu sein, wie mit geschlossen Augen Regie 
bei Filmaufnahmen zu führen.

Statt Oszi würde evtl. sogar die Soundkarte genügen, wenn die Rx- und 
Tx-Signal weit genug herunter geteilt werden und z. B. mit Audacity 
dargestellt werden.

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