;==================================================================================================
; PCF8584 Generic 
;==================================================================================================
;
PCF_BASE  	.EQU  0F0H
PCF_ID   	.EQU  0AAH
CPU_CLK	  	.EQU  12

PCF_RS0     	.EQU  PCF_BASE
PCF_RS1    	.EQU  PCF_RS0+1
PCF_OWN	 	.EQU  (PCF_ID >> 1)        	; PCF'S ADDRESS IN SLAVE MODE

REGS0     	.EQU  PCF_BASE
REGS1    	.EQU  REGS0+1
;
;T4LC512D	.EQU	10100000B		; DEVICE IDENTIFIER
;T4LC512A1	.EQU	00000000B		; DEVICE ADDRESS
;T4LC512A2	.EQU	00001110B		; DEVICE ADDRESS
;T4LC512A3	.EQU	00000010B		; DEVICE ADDRESS
;T4LC512W	.EQU	00000000B		; DEVICE WRITE
;T4LC512R	.EQU	00000001B		; DEVICE READ
;
;I2CDEV1W  	.EQU	(T4LC512D+T4LC512A1+T4LC512W)
;I2CDEV1R	.EQU	(T4LC512D+T4LC512A1+T4LC512R)
;
;I2CDEV2W  	.EQU	(T4LC512D+T4LC512A2+T4LC512W)
;I2CDEV2R	.EQU	(T4LC512D+T4LC512A2+T4LC512R)
;
;I2CDEV3W  	.EQU	(T4LC512D+T4LC512A3+T4LC512W)
;I2CDEV3R	.EQU	(T4LC512D+T4LC512A3+T4LC512R)
;
; CONTROL REGISTER BITS
;
PCF_PIN  	.EQU  10000000B
PCF_ES0  	.EQU  01000000B
PCF_ES1  	.EQU  00100000B
PCF_ES2  	.EQU  00010000B
PCF_EN1  	.EQU  00001000B
PCF_STA  	.EQU  00000100B
PCF_STO  	.EQU  00000010B
PCF_ACK  	.EQU  00000001B
;
PCF_START_    	.EQU  (PCF_PIN | PCF_ES0 | PCF_STA | PCF_ACK)
PCF_STOP_     	.EQU  (PCF_PIN | PCF_ES0 | PCF_STO | PCF_ACK)
PCF_REPSTART_ 	.EQU  (          PCF_ES0 | PCF_STA | PCF_ACK)
PCF_IDLE_     	.EQU  (PCF_PIN | PCF_ES0           | PCF_ACK)
;
; STATUS REGISTER BITS
;
;PCF_PIN  	.EQU  10000000B
PCF_INI   	.EQU  01000000B   ; 1 if not initialized 
PCF_STS   	.EQU  00100000B
PCF_BER   	.EQU  00010000B
PCF_AD0   	.EQU  00001000B
PCF_LRB   	.EQU  00001000B
PCF_AAS   	.EQU  00000100B
PCF_LAB   	.EQU  00000010B
PCF_BB    	.EQU  00000001B
;
; CLOCK CHIP FREQUENCIES
;
PCF_CLK3   	.EQU	000H
PCF_CLK443 	.EQU	010H
PCF_CLK6   	.EQU	014H
PCF_CLK8   	.EQU	018H
PCF_CLK12  	.EQU	01cH
;
; TRANSMISSION FREQUENCIES
;
PCF_TRNS90 	.EQU	000H	;  90 kHz */
PCF_TRNS45 	.EQU	001H	;  45 kHz */
PCF_TRNS11 	.EQU	002H	;  11 kHz */
PCF_TRNS15 	.EQU	003H	; 1.5 kHz */
;
; TIMEOUT AND DELAY VALUES (ARBITRARY)
;
PCF_PINTO	.EQU	65000
PCF_ACKTO	.EQU	65000
PCF_BBTO	.EQU	65000
PCF_LABDLY	.EQU	65000
;
; DATA PORT REGISTERS
;
#IF (CPU_CLK = 443)
PCF_CLK .EQU PCF_CLK443
#ELSE 
 #IF (CPU_CLK = 8)
PCF_CLK .EQU PCF_CLK8
 #ELSE 
  #IF (CPU_CLK = 12)
PCF_CLK .EQU PCF_CLK12
  #ELSE ***ERROR
  #ENDIF
 #ENDIF	
#ENDIF
;
DS7_OUT		.EQU	10000000B		; SELECT SQUARE WAVE FUNCTION
DS7_SQWE	.EQU	00010000B		; ENABLE SQUARE WAVE OUTPUT
DS7_RATE	.EQU	00000000B		; SET 1HZ OUPUT
;
DS7_DS1307    	.EQU  	11010000B   		; DEVICE IDENTIFIER
DS7_W   	.EQU  	00000000B   		; DEVICE WRITE
DS7_R   	.EQU  	00000001B   		; DEVICE READ
;
DS7_READ   	.EQU    (DS7_DS1307 | DS7_R)	; READ
DS7_WRITE 	.EQU    (DS7_DS1307 | DS7_W)	; WRITE
;
DS7_CTL		.EQU	(DS7_OUT | DS7_SQWE | DS7_RATE)
;
PCF8574   	.EQU 	01000000B    		; DEVICE IDENTIFIER
PCF8574A  	.EQU 	00001110B    		; DEVICE ADDRESS
PCF8574W  	.EQU 	00000000B    		; DEVICE WRITE 
PCF8574R  	.EQU 	00000001B    		; DEVICE READ
;	
I2CLCDR  	.EQU  (PCF8574+PCF8574A+PCF8574R)
I2CLCDW  	.EQU  (PCF8574+PCF8574A+PCF8574W) 
