Forum: Mikrocontroller und Digitale Elektronik C515 kompatibel?


von khs (Gast)


Lesenswert?

Versuche hier die serielle Schnittstelle für den C515 µC zu 
programmieren.
Die Quarzfrequenz ist 12 MHz, P3.0 = RXD, P3.1 = TXD.
Kann man beim C515 den Timer2 für die serielle Schnittstelle nicht
verwenden wie z. B. beim 8052?
Habe es mit folgenden Unterprogrammen versucht,
aber keine Antwort bekommen.

SD_BAUD_9600  EQU  100h-36    ; = 0DDh
SD_BAUD_4800  EQU  100h-72    ; = 0BAh
SD_BAUD_2400  EQU  100h-144  ; = 074h
; ===============================
SDINIT:
    MOV  SCON,#01010000b    ; set Mode 1 (8 Bit UART)
            ; Receive enabled
    ORL  PCON,#00000000b    ; Set SMOD=0, division by 2
    MOV  T2CON,#00000000b  ; Clear T2CON
    SETB  RCLK      ; Set Receive Mode for T2
    SETB  TCLK      ; Set Transmit Mode for T2
    MOV  TH2,#0FFh    ; Set High-Counter to 0FFh
    MOV  TL2,#SD_BAUD_9600  ; Set Low-Counter to Reload value
    MOV  RCAP2L,#SD_BAUD_9600  ; Set Low-Reload to Reload value
    MOV  RCAP2H,#0FFh    ; Set High-Reload to 0FFh
    SETB  TR2      ; Start Timer 2
    SETB  TI      ; Enable TI
    RET
; ================================
; SDSEND:   Send 1 Byte to serial Port
; -------
;    Registers: A : Byte to be sent
;
;
SDSEND:
    PUSH  PSW      ; save PSW
    JNB  TI,$      ; Wait until sendbuffer is empty
    CLR  TI      ; Clear sendbuffer flag
    MOV  SBUF,A      ; put it into serial buffer
    POP  PSW      ; restore PSW
    RET
; 
======================================================================== 
===================
; SDRECEIVE:   Receive 1 Byte from serial Port
; ---------
;    Registers: A : Byte received (OUTPUT)
;
;
SDRECEIVE:
    PUSH  PSW      ; save PSW
    JNB  RI,$      ; Wait until byte is in buffer
    CLR  RI      ; Clear receivebuffer flag
    MOV  A,SBUF      ; put it into Acc
    POP  PSW      ; restore PSW
    RET


Kann mir jemand das passend machen?

von Joerg L. (Firma: 100nF 0603 X7R) (joergl)


Lesenswert?

Schau mal ins Datenblatt.
Da ist von Timer 1 und von einem dedizierten Baudraten-Generator die 
Rede:
<http://www.keil.com/dd/docs/datashts/infineon/80x515_um.pdf>;
Seite 51ff
Von Timer2 steht da nichts.

von Reinhard Kern (Gast)


Lesenswert?

khs schrieb:
> Kann mir jemand das passend machen?

So trivial ist das nicht, der 515 hat eine ganz andere Schnittstelle, 
u.a. mit Baudrate Generator.

Auszug:
1
;
2
;  Serial Port starten
3
;
4
  A51FUNC  SIINIT,SERIAL
5
  clr  ES
6
  mov  trmidx,#255
7
  mov  rcvidx,#0
8
  mov  lrchar,#0
9
  mov  lanaddr,#0
10
  mov  rcvto,#0
11
  mov  trmto,#0
12
  setb  BD
13
  mov  a,PCON
14
  orl  a,#80h  ;Baud rate gen ein
15
  mov  PCON,a
16
  mov  SCON,#01011000b  ;Mode 1,Rcv ein
17
  setb  ES
18
  setb  V24RTS
19
  setb  V24CTS
20
  setb  EAL
21
  ret

Da kommt natürlich noch eine menge dazu, z.B. eine Interrupt Service 
Routine, aber das wird für dich sowieso nicht passen.

Gruss Reinhard

von khs (Gast)


Lesenswert?

Danke für die Antworten.

Habe gestern noch im Tread
Assembler Crashkurs 8051
in diesem Forum einen Link zu einem ausführlichen
C515er-Datenblatt gefunden, da war auch der Timer 1
für die serielle Schnittstelle angegeben, geht scheinbar mit
T2 gar nicht.
T1 soll mir auch recht sein, doch in dem Auszug von
 Reinhard Kern
kann ich widerum einige Labels nicht zuordnen, wie z. B.
trmidx,lanaddr.
PCON,SCON, ES, oder EAL zwar schon.
Eine genauere Quellenangabe wäre von Vorteil.
Der 515er ist scheinbar bei den Heimwerkern weniger vorhanden als
die 40poligen, habe aber auch noch nicht so intensiv danach
gesucht und gegoogelt.
Vielleicht hat da doch noch jemand hilfreiches eingestellt,
oder Tips dazu, Gruß
Hans

von Munsti (Gast)


Lesenswert?

khs schrieb:
> Der 515er ist scheinbar bei den Heimwerkern weniger vorhanden

Wie auch, die alte Krücke ist doch schon lange abgekündigt. Wenn du 
unbedingt etwas mit 8051 machen willst, schau bei Silabs, NXP oder Atmel 
rein.

von Manuel X. (vophatec)


Angehängte Dateien:

Lesenswert?

Im Anhang ASM Quelltext für die S1 des 80C517.

Sollte aber passen. Allerdings sind afaik die Register S0CON beim 515 
z.b. nur SCON etc.

weiteres sollte der Siemens A51 Pocket Guide zu tage fördern können :)

von khs (Gast)


Lesenswert?

Den C515 verwende ich hier deshalb, weil ich da im Schrott eine 
komplette
Steuerplatine mit gesockeltem Eprom und gesockeltem 68pol. MC fand.
außer einem 24c02, einem Relais und einem Drucksensorwar da nichts 
drauf,
so daß da noch jede Menge frei Ports da sind.
Es gibt natürlich modernere Sachen, aber mit so einer fertigen
Platine spart man sich eine neue und viel Löterei.
Die Programmierung ist natürlich nicht "ISP", aber ich verwende bei
der Entwicklung auch keine Eproms, sondern habe da einen
Batterie-gepufferten RAM-Adapter, den ich mit einem homemade-Eprommer
ruckzuck überschreiben kann.

Unter der Adresse
http://www.microcontroller-online.de/microcontroller/theorie/uc_doku_kapitel_08.html
fand ich eine Beschreibung wo es heißt
Die serielle Schnittstelle des 80(C)515/-535 ist vollständig kompatibel 
mit der des 80(C)51.
...der ja nur 2 Timer hat.

Danke auch für das File, das mir zu der ausführlichen deutschen
Beschreibung in obigem Link  sicher noch mehr hilft.

Gruß
Hans

von Georg G. (df2au)


Angehängte Dateien:

Lesenswert?

Anbei alles für die serielle Schnittstelle des 515, passend für Keil.

von Munsti (Gast)


Lesenswert?

khs schrieb:
> Den C515 verwende ich hier deshalb, weil ich da im Schrott eine
> komplette
> Steuerplatine mit gesockeltem Eprom und gesockeltem 68pol. MC fand.

Was hast du denn vor? Möchtest du nur ein wenig spielen? Oder altes 
Wissen auffrischen? Oder hast du ein kleines Projekt?

Heute gibt es von 5...25€ Demo Boards verschiedener Hersteller. Die 
Dinger haben ein paar Led, Taster, Poti, ... drauf. Ports, 
Schnittstellen, ADC, ... sind auf Stiftleisten geführt. Die haben 
Versorgung, JTAG, RS232, ... über USB.
Die Quälerei mit EPROM-Emulator und dem alten MC würde ich mir schenken.

von khs (Gast)


Lesenswert?

Das ganze soll eine Pumpen-/Solarheizungssteuerung werden, nicht nur
zum basteln und probieren.

Habe inzwischen schon gemerkt, daß die einzelnen Derivate je nach
Ausstattung Unterschiede aufweisen, wie auch der 517 mit 2 mal
RXD/TXD.

Trotzdem habe ich am Samstag schon auf Anhieb ein einfaches
Programm hinbekommen, da ich hier 12 MHz habe und den internen
Baudratengenerator verwenden konnte, hier die paar Zeilen:

;********************* S1_RT.ASM 
*****************************************
$NOMOD51
$INCLUDE (C515.MCU)
; Übertragung mit serieller Schnittstelle
; Übertragungsrate 4800 Bd, 8Bit
  ORG 0
         LJMP  main
main:    NOP
s1_ini:  MOV   SCON,#01010000b ;8 Bit,Mode 1, Receiver enable
  SETB  BD    ;Baudratengenerator einsch.
  ANL  PCON,#01111111b ;4800 Bd SMOD = 0 = Vorgabe
;  ORL  PCON,#10000000b ;9600 Bd SMOD = 1
init:    MOV   R3,#0            ;Empfangsregister löschen
mainlp:  MOV   P5,R3            ;Kontrollausgabe des empf. Zeichens
;----------  ISR serielle Schnittstelle 1
;Senden: Datenwort muß in R2 stehen
;Empfangen: Datenwort ist in R3

;seriell: PUSH  ACC
seriell: MOV   A,SCON
         JNB   ACC.0,seriell     ;wenn I.-Request-Flipflop RI=1
empfang: MOV   R3,SBUF         ;empfangenes Zeichen nach R3
         ANL   SCON,#11111110b ;Interrupt-Request-Flipflop RI löschen
  MOV   P5,R3    ; zum testen des Programms
  MOV  R2,P5
  LCALL  senden    ; Echoausgabe
  LJMP  seriell
senden:  MOV   SBUF,R2         ;Senden starten
sen_ti0: MOV   A,SCON          ;Warten, bis Senden beendet, d.h. TI=1
         JNB   ACC.1,sen_ti0
         ANL   SCON,#11111101b  ;TI1 löschen
  RET
END


Ist zwar noch nicht interruptgesteuert, deshalb werde ich mir das
File von  Georg G. auch noch vornehmen, vielen Dank dafür.

Daß es für 5 € schon Demos gibt, hätte ich jetzt nicht gedacht.
Habe da noch ein paar Platinen für 40pol. 51er, muß aber schon
zugeben, bis man sich da durchgepiepst hat und ev. noch einiges
entfernen muß braucht schon auch seine Zeit.

Danke noch mal für alle Antworten, Gruß
Hans

von Peter D. (peda)


Lesenswert?

khs schrieb:
> Der 515er ist scheinbar bei den Heimwerkern weniger vorhanden

Siemens hat sich zu lange auf seinen alten OTP und ROM-less Dampflocks 
ausgeruht und die anderen im Flash-Zug an sich vorbei brausen lassen, 
allen voran Atmel.

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.