Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: 2w-bus modem Kategorie: Hardware (von alandro - 16.05.2006 23:55)
 Als Antwort auf 2w-bus modem von alandro - 23.03.2006 18:09
alandro nutzt:  CC1-Unit V1.1
> Hey, Jo,
>
> Problem: Habe mein altes 2W-Bus-Modem mit I2C-Schnittstelle
> über den Jordan gejagt!
>
> Bei Conrad gibt es nur noch das Modem-SM mit serieller
> Schnittstelle RS232.(Hutschienenmodell)
> Frage: Da ja an der CControl Basic-Unit eine 2. serielle
> Schnittstelle vorhanden ist, die bisher bei mir immer
> brach lag (angeschlossen an Ports PA 6 und 7 und schon verdrahtet mit dem Schnittstellenwandler MAX232) möchte ich
> diese mittels eines Treibers für dieses Modem aktivieren.
> Die 1. Schnittstelle bleibt dann auch wunderbar frei für
> den Terminalanschluss und ich habe noch 2 Ports dazugewonnen.(PB 6 und 7 - kann man immer gebrauchen.)
> Hat jemand dafür eine Lösung parat, wie man das Modem
> über diesen Anschluss kommunizieren lassen kann?
> Für Hilfe wäre ich sehr dankbar.

Man muß noch ein neues Datenkabel zusammenbauen, wo
die Kabel für RTS und CTS herausgeführt sind.Die schließt
man dann an die das 2W-Bus Modem-SM an.
Pin7 nach Modem RX
Pin8 nach Modem TX
Jetzt ist es möglich mit dem Modem und C-Contol Station
zu kommunizieren und gleichzeitig ein Terminalprogramm
am PC zu benutzen.
;--------------------------------------------------------------------------
;Treiberprogramm zum Ansteuern des 2W-Bus Modems-SM mit serieller Schnittstel-
;le an der C-Control Basic, Ports A7(RTS) u. A8(CTS).Es wird jeweils ein Da-
;tenramen von 8 Bytes bertragen, beim Senden MSB zuerst.

;Vorbereitung zum Senden      
          brset $06,$00,spr11;jump if Pin7,PortA high
loop1:    brset $07,$00,loop1
loop0:    brclr $07,$00,loop0
          bset $06,$00     ;Pin 7 von PortA high setzen (RTS)
;-----------------------------------------------
;         Senderoutine
spr11:    ldx #$00
spr4:     lda $a1,x       ;Anfang Buffer (sog. RS232 Schnittstelle) $a1-$a8, wie beim 2W-Bus Modem mit I2C
Schnittstelle
          incx            ;        
          stx $dc         ;Register zwischenspeichern (RAM-Speicherstelle)
          sec             ;markiert des Ende der Bytes (set carry)      $111
spr1:     bclr $06,$00    ;Pin 7 von Port A low setzen (Startbit senden)
spr2:     ldx #$20        ;Verzgerung
spr3:     decx
          bne spr3
          rora            ; rotate right thru carry, LSB zuerst
          bcc spr1        ; branch if carry clear
          clc           ; alle Bits die im Datenbyte gestzt sind werden $120
                          ; gelscht,so da?am Ende im accu 0 steht
          bset $06,$00    ; eine 1 senden (keine Beeinflussung der Flags)
          bne spr2        ; alle 8 Bits bertragen?,dann Aussprung
          bset $06,$00    ; Stopbit setzen
          ldx #$20        ; Verzgerung
spr5:     decx
          bne spr5
          ldx $dc
          cpx #$08        ; alle 8 Byts durch?
          bne spr4
;-----------------------------------------------
;         Empfangsroutine
;         bclr $07,$04       ; Pin 8 PortA auf Eingang schalten (CTS)
                             ; (nicht ntig, alle Ports sind bei Initialisie-
                             ; rung auf Eingang geschaltet
          ldx #$a1           ; Startadresse Buffer nach (x)
spr6:     brset $07,$00,spr6 ; Pin 8 PortA low, warten auf Startbit
          lda #$31           ;Verzgerung, 2 cycles                     $132
spr7:     deca               ; 1 cycle
          bne spr7           ; 2        3*32+2=98
          lda #$80           ;im accu jetzt Byte: b10000000
          sta,x              ;das gesetzte Bit1 wird jeweils 8 mal nach
spr10:    brclr $07,$00,spr8 ;rechts geschoben und wird dann zum carry,
spr8:     lda #$22           ;was den Aussprung aus der Schleife bewirkt.
spr9:     deca               ;Verzgerung
          bne spr9
          ror,x              ;carry bit speichern, LSB zuerst           $142
          bcc spr10           ;weiter bis alle 8 Bits empfangen
;spr11:    brclr $07,$00,spr11;warte solange PortA,Pin 8 low ist
          incx               ;ist das letztes Byte empfangen?
          cmpx #$a9
          bne spr6           ;
          cli
          rts

 Antwort schreiben

Bisherige Antworten:

Re: 2w-bus modem (von alandro - 17.05.2006 0:05)