|
|
@ -66,28 +66,28 @@ |
|
|
; RTC LATCH WRITE |
|
|
; RTC LATCH WRITE |
|
|
; --------------- |
|
|
; --------------- |
|
|
; |
|
|
; |
|
|
; BIT SBC SBC-004 MFPIC N8 N8-CSIO MK4 SC130 SC131 SC126 MBC RPH |
|
|
|
|
|
; ----- ------- ------- ------- ------- ------- ------- ------- ------- --------------- ------- ------- |
|
|
|
|
|
; D7 RTC_OUT RTC_OUT -- RTC_OUT RTC_OUT RTC_OUT -- -- RTC_OUT,I2C_SDA RTC_OUT RTC_OUT |
|
|
|
|
|
; D6 RTC_CLK RTC_CLK -- RTC_CLK RTC_CLK RTC_CLK -- -- RTC_CLK RTC_CLK RTC_CLK |
|
|
|
|
|
; D5 /RTC_WE /RTC_WE -- /RTC_WE /RTC_WE /RTC_WE -- -- /RTC_WE /RTC_WE /RTC_WE |
|
|
|
|
|
; D4 RTC_CE RTC_CE -- RTC_CE RTC_CE RTC_CE -- -- RTC_CE RTC_CE RTC_CE |
|
|
|
|
|
; D3 NC CLKSEL /RTC_CE NC NC NC -- -- /SPI_CS2 CLKSEL -- |
|
|
|
|
|
; D2 NC SPK RTC_CLK SPI_CS SPI_CS NC /SPI_CS1/SPI_CS1/SPI_CS1 SPK -- |
|
|
|
|
|
; D1 -- -- RTC_WE SPI_CLK NC NC -- -- FS LED1 -- |
|
|
|
|
|
; D0 -- -- RTC_OUT SPI_DI NC NC -- -- I2C_SCL LED0 -- |
|
|
|
|
|
; |
|
|
|
|
|
; RTC LATCH READ |
|
|
|
|
|
; -------------- |
|
|
|
|
|
; |
|
|
|
|
|
; D7 -- -- -- -- -- -- -- -- I2C_SDA -- -- |
|
|
|
|
|
; D6 CFG CFG -- SPI_DO CFG -- -- -- -- CFG -- |
|
|
|
|
|
; D5 -- -- -- -- -- -- -- -- -- -- -- |
|
|
|
|
|
; D4 -- -- -- -- -- -- -- -- -- -- -- |
|
|
|
|
|
; D3 -- -- -- -- -- -- -- -- -- -- -- |
|
|
|
|
|
; D2 -- -- -- -- -- -- -- -- -- -- -- |
|
|
|
|
|
; D1 ---- -- -- -- -- -- -- -- -- CLKSEL -- |
|
|
|
|
|
; D0 RTC_IN RTC_IN RTC_IN RTC_IN RTC_IN RTC_IN -- -- RTC_IN RTC_IN RTC_IN |
|
|
|
|
|
|
|
|
; BIT SBC RCBUS SBC-004 MFPIC K80W N8 N8-CSIO MK4 SC130 SC131 SC126 MBC RPH |
|
|
|
|
|
; ----- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- --------------- ------- ------- |
|
|
|
|
|
; D7 RTC_OUT RTC_OUT RTC_OUT -- -- RTC_OUT RTC_OUT RTC_OUT -- -- RTC_OUT,I2C_SDA RTC_OUT RTC_OUT |
|
|
|
|
|
; D6 RTC_CLK RTC_CLK RTC_CLK -- -- RTC_CLK RTC_CLK RTC_CLK -- -- RTC_CLK RTC_CLK RTC_CLK |
|
|
|
|
|
; D5 /RTC_WE /RTC_WE /RTC_WE -- -- /RTC_WE /RTC_WE /RTC_WE -- -- /RTC_WE /RTC_WE /RTC_WE |
|
|
|
|
|
; D4 RTC_CE RTC_CE RTC_CE -- -- RTC_CE RTC_CE RTC_CE -- -- RTC_CE RTC_CE RTC_CE |
|
|
|
|
|
; D3 NC NC CLKSEL /RTC_CE /RTC_CE NC NC NC -- -- /SPI_CS2 CLKSEL -- |
|
|
|
|
|
; D2 NC NC SPK RTC_CLK RTC_CLK SPI_CS SPI_CS NC /SPI_CS1/SPI_CS1/SPI_CS1 SPK -- |
|
|
|
|
|
; D1 -- -- -- RTC_WE RTC_WE SPI_CLK NC NC -- -- FS LED1 -- |
|
|
|
|
|
; D0 -- -- -- RTC_OUT RTC_OUT SPI_DI NC NC -- -- I2C_SCL LED0 -- |
|
|
|
|
|
; |
|
|
|
|
|
; RTC LATCH READTCH READ |
|
|
|
|
|
; ---------------------- |
|
|
|
|
|
; |
|
|
|
|
|
; D7 -- -- -- -- -- -- -- -- -- -- I2C_SDA -- -- |
|
|
|
|
|
; D6 CFG -- CFG -- -- SPI_DO CFG -- -- -- -- CFG -- |
|
|
|
|
|
; D5 -- -- -- -- -- -- -- -- -- -- -- -- -- |
|
|
|
|
|
; D4 -- -- -- -- -- -- -- -- -- -- -- -- -- |
|
|
|
|
|
; D3 -- -- -- -- -- -- -- -- -- -- -- -- -- |
|
|
|
|
|
; D2 -- -- -- -- -- -- -- -- -- -- -- -- -- |
|
|
|
|
|
; D1 -- -- -- -- -- -- -- -- -- -- -- CLKSEL -- |
|
|
|
|
|
; D0 RTC_IN RTC_IN RTC_IN RTC_IN RTC_IN RTC_IN RTC_IN RTC_IN -- -- RTC_IN RTC_IN RTC_IN |
|
|
; |
|
|
; |
|
|
.ECHO "DSRTC: MODE=" |
|
|
.ECHO "DSRTC: MODE=" |
|
|
; |
|
|
; |
|
|
@ -106,15 +106,6 @@ DSRTC_IDLE .EQU %00100000 ; QUIESCENT STATE |
|
|
RTCDEF .SET RTCDEF | DSRTC_IDLE ; FOR HBIOS MAINLINE |
|
|
RTCDEF .SET RTCDEF | DSRTC_IDLE ; FOR HBIOS MAINLINE |
|
|
; |
|
|
; |
|
|
#DEFINE DSRTC_OPRVAL HB_RTCVAL |
|
|
#DEFINE DSRTC_OPRVAL HB_RTCVAL |
|
|
; |
|
|
|
|
|
; VALUES FOR DIFFERENT BATTERY OR SUPERCAPACITOR CHARGE RATES |
|
|
|
|
|
; |
|
|
|
|
|
DS1d2k .EQU %10100101 ; 1 DIODE 2K RESISTOR (DEFAULT) |
|
|
|
|
|
DS1d4k .EQU %10100110 ; 1 DIODE 4K RESISTOR |
|
|
|
|
|
DS1d8k .EQU %10100111 ; 1 DOIDE 8K RESISTOR |
|
|
|
|
|
DS2d2k .EQU %10101001 ; 2 DIODES 2K RESISTOR |
|
|
|
|
|
DS2d4k .EQU %10101010 ; 2 DIODES 4K RESISTOR |
|
|
|
|
|
DS2d8k .EQU %10101011 ; 2 DIODES 8K RESISTOR |
|
|
|
|
|
; |
|
|
; |
|
|
.ECHO "STD" |
|
|
.ECHO "STD" |
|
|
; |
|
|
; |
|
|
@ -137,11 +128,38 @@ DSRTC_IDLE .EQU %00001000 ; QUIESCENT STATE |
|
|
.ECHO "MFPIC" |
|
|
.ECHO "MFPIC" |
|
|
; |
|
|
; |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
; |
|
|
|
|
|
#IF (DSRTCMODE == DSRTCMODE_K80W) |
|
|
|
|
|
; |
|
|
|
|
|
DSRTC_IO .EQU RTCIO ; RTC PORT |
|
|
|
|
|
; |
|
|
|
|
|
DSRTC_DATA .EQU %00000001 ; BIT 0 IS RTC DATA OUT |
|
|
|
|
|
DSRTC_CLK .EQU %00000100 ; BIT 2 IS RTC CLOCK (CLK) |
|
|
|
|
|
DSRTC_WR .EQU %00000010 ; BIT 1 IS DATA DIRECTION (WE) |
|
|
|
|
|
DSRTC_CE .EQU %00001000 ; BIT 3 CHIP ENABLE (/CE) |
|
|
|
|
|
; |
|
|
|
|
|
DSRTC_MASK .EQU %00001111 ; MASK FOR BITS WE OWN IN RTC LATCH PORT |
|
|
|
|
|
DSRTC_IDLE .EQU %00001000 ; QUIESCENT STATE |
|
|
|
|
|
; |
|
|
|
|
|
#DEFINE DSRTC_OPRVAL HB_RTCVAL |
|
|
|
|
|
; |
|
|
|
|
|
.ECHO "K80W" |
|
|
|
|
|
; |
|
|
|
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
.ECHO ", IO=" |
|
|
.ECHO ", IO=" |
|
|
.ECHO DSRTC_IO |
|
|
.ECHO DSRTC_IO |
|
|
.ECHO "\n" |
|
|
.ECHO "\n" |
|
|
; |
|
|
; |
|
|
|
|
|
; VALUES FOR DIFFERENT BATTERY OR SUPERCAPACITOR CHARGE RATES |
|
|
|
|
|
; |
|
|
|
|
|
DS1d2k .EQU %10100101 ; 1 DIODE 2K RESISTOR (DEFAULT) |
|
|
|
|
|
DS1d4k .EQU %10100110 ; 1 DIODE 4K RESISTOR |
|
|
|
|
|
DS1d8k .EQU %10100111 ; 1 DOIDE 8K RESISTOR |
|
|
|
|
|
DS2d2k .EQU %10101001 ; 2 DIODES 2K RESISTOR |
|
|
|
|
|
DS2d4k .EQU %10101010 ; 2 DIODES 4K RESISTOR |
|
|
|
|
|
DS2d8k .EQU %10101011 ; 2 DIODES 8K RESISTOR |
|
|
|
|
|
; |
|
|
DSRTC_BUFSIZ .EQU 7 ; 7 BYTE BUFFER (YYMMDDHHMMSSWW) |
|
|
DSRTC_BUFSIZ .EQU 7 ; 7 BYTE BUFFER (YYMMDDHHMMSSWW) |
|
|
; |
|
|
; |
|
|
; RTC DEVICE PRE-INITIALIZATION ENTRY |
|
|
; RTC DEVICE PRE-INITIALIZATION ENTRY |
|
|
@ -190,6 +208,9 @@ DSRTC_INIT: |
|
|
#IF (DSRTCMODE == DSRTCMODE_MFPIC) |
|
|
#IF (DSRTCMODE == DSRTCMODE_MFPIC) |
|
|
PRTS("MFPIC$") |
|
|
PRTS("MFPIC$") |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
#IF (DSRTCMODE == DSRTCMODE_K80W) |
|
|
|
|
|
PRTS("K80W$") |
|
|
|
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
; PRINT RTC LATCH PORT ADDRESS |
|
|
; PRINT RTC LATCH PORT ADDRESS |
|
|
PRTS(" IO=0x$") ; LABEL FOR IO ADDRESS |
|
|
PRTS(" IO=0x$") ; LABEL FOR IO ADDRESS |
|
|
@ -598,7 +619,7 @@ DSRTC_CMD: |
|
|
LD A,(DSRTC_OPRVAL) ; INIT A WITH QUIESCENT STATE |
|
|
LD A,(DSRTC_OPRVAL) ; INIT A WITH QUIESCENT STATE |
|
|
OUT (DSRTC_IO),A ; WRITE TO PORT |
|
|
OUT (DSRTC_IO),A ; WRITE TO PORT |
|
|
CALL DLY2 ; DELAY 2 * 27 T-STATES |
|
|
CALL DLY2 ; DELAY 2 * 27 T-STATES |
|
|
#IF (DSRTCMODE == DSRTCMODE_MFPIC) |
|
|
|
|
|
|
|
|
#IF ((DSRTCMODE == DSRTCMODE_MFPIC) | (DSRTCMODE == DSRTCMODE_K80W)) |
|
|
AND ~DSRTC_CE ; ASSERT CE (LOW) |
|
|
AND ~DSRTC_CE ; ASSERT CE (LOW) |
|
|
#ELSE |
|
|
#ELSE |
|
|
OR DSRTC_CE ; ASSERT CE (HIGH) |
|
|
OR DSRTC_CE ; ASSERT CE (HIGH) |
|
|
@ -624,7 +645,7 @@ DSRTC_CMD: |
|
|
; |
|
|
; |
|
|
DSRTC_PUT: |
|
|
DSRTC_PUT: |
|
|
LD B,8 ; LOOP FOR 8 BITS |
|
|
LD B,8 ; LOOP FOR 8 BITS |
|
|
#IF (DSRTCMODE == DSRTCMODE_MFPIC) |
|
|
|
|
|
|
|
|
#IF ((DSRTCMODE == DSRTCMODE_MFPIC) | (DSRTCMODE == DSRTCMODE_K80W)) |
|
|
OR DSRTC_WR ; SET WRITE MODE |
|
|
OR DSRTC_WR ; SET WRITE MODE |
|
|
#ELSE |
|
|
#ELSE |
|
|
AND ~DSRTC_RD ; SET WRITE MODE |
|
|
AND ~DSRTC_RD ; SET WRITE MODE |
|
|
@ -634,7 +655,7 @@ DSRTC_PUT1: |
|
|
OUT (DSRTC_IO),A ; DO IT |
|
|
OUT (DSRTC_IO),A ; DO IT |
|
|
CALL DLY1 ; DELAY 27 T-STATES |
|
|
CALL DLY1 ; DELAY 27 T-STATES |
|
|
|
|
|
|
|
|
#IF (DSRTCMODE == DSRTCMODE_MFPIC) |
|
|
|
|
|
|
|
|
#IF ((DSRTCMODE == DSRTCMODE_MFPIC) | (DSRTCMODE == DSRTCMODE_K80W)) |
|
|
RRA ; PREP ACCUM TO GET DATA BIT IN CARRY |
|
|
RRA ; PREP ACCUM TO GET DATA BIT IN CARRY |
|
|
RR E ; ROTATE NEXT BIT TO SEND INTO CARRY |
|
|
RR E ; ROTATE NEXT BIT TO SEND INTO CARRY |
|
|
RLA ; ROTATE BITS BACK TO CORRECT POSTIIONS |
|
|
RLA ; ROTATE BITS BACK TO CORRECT POSTIIONS |
|
|
@ -667,7 +688,7 @@ DSRTC_PUT1: |
|
|
DSRTC_GET: |
|
|
DSRTC_GET: |
|
|
LD E,0 ; INITIALIZE WORKING VALUE TO 0 |
|
|
LD E,0 ; INITIALIZE WORKING VALUE TO 0 |
|
|
LD B,8 ; LOOP FOR 8 BITS |
|
|
LD B,8 ; LOOP FOR 8 BITS |
|
|
#IF (DSRTCMODE == DSRTCMODE_MFPIC) |
|
|
|
|
|
|
|
|
#IF ((DSRTCMODE == DSRTCMODE_MFPIC) | (DSRTCMODE == DSRTCMODE_K80W)) |
|
|
AND ~DSRTC_WR ; SET READ MODE |
|
|
AND ~DSRTC_WR ; SET READ MODE |
|
|
#ELSE |
|
|
#ELSE |
|
|
OR DSRTC_RD ; SET READ MODE |
|
|
OR DSRTC_RD ; SET READ MODE |
|
|
@ -724,7 +745,7 @@ DSRTC_END: |
|
|
DSRTC_STAT .DB 0 ; DEVICE STATUS (0=OK) |
|
|
DSRTC_STAT .DB 0 ; DEVICE STATUS (0=OK) |
|
|
DSRTC_TEMP .DB 0 ; TEMP VALUE STORAGE |
|
|
DSRTC_TEMP .DB 0 ; TEMP VALUE STORAGE |
|
|
; |
|
|
; |
|
|
#IF (DSRTCMODE == DSRTCMODE_MFPIC) |
|
|
|
|
|
|
|
|
#IF ((DSRTCMODE == DSRTCMODE_MFPIC) | (DSRTCMODE == DSRTCMODE_K80W)) |
|
|
DSRTC_RTCVAL .DB DSRTC_IDLE ; LOCAL LATCH SHADOW FOR MFPIC |
|
|
DSRTC_RTCVAL .DB DSRTC_IDLE ; LOCAL LATCH SHADOW FOR MFPIC |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
|