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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.