; Orange programmer module v1.5 ; June 03. 2000 V. G. & CnCLab ; ; CHIP=X24C01 (128x8) ; X24C01 (XICOR) SOCKET=1 ;"I2C" PING=SCL,0 PING=SDA,1 PINO=TEST,2 PINO=A0, 3 PINO=A1, 4 PINO=A2, 5 CDELAY = 5 ; one set delay [!#SETUP] $WDELAY=10000 [INIT] ; Section RESET ( EEPROM ATMEL ) A0=0,A1=0,A2=0 TEST=0 ; pin TEST = 0 (Dont't care XICOR) P=100 SCL=0,SDA=1 ; set SDA=1 P=1000 ;LOOP=CONST(8,0) {SCL=1,SCL=0} ; out 9 CLK ( DATA SHEET ATMEL ) ;SCL=0,SDA=0,SCL=1,SDA=1 ; Stop [READ] SDA=1,SCL=1,SDA=0,SCL=0 ; Start LOOP=(6,0) {SDA=ADR[I],SCL=1,SCL=0} ; out 7 bits Adr SDA=1,SCL=1,SCL=0 ; out 1 bit, 1=Read Mode SDA=1,SCL=1,SDA?0 ; ACKN check SCL=0 ; end out Adr LOOP=(7,0) {SCL=1,DATA[I]=SDA,SCL=0} ; read byte Data SDA=1,SCL=1,SCL=0 ; out master NO_ACKN SCL=0,SDA=0,SCL=1,SDA=1 ; Stop [WRITE] SDA=1,SCL=1,SDA=0,SCL=0 ; Start LOOP=(6,0) {SDA=ADR[I],SCL=1,SCL=0} ; out 7 bits Adr SDA=0,SCL=1,SCL=0 ; out 1 bit, 0=Write Mode SDA=1,SCL=1,SDA?0 ; ACKN check SCL=0 ; end out Adr LOOP=(7,0) {SDA=DATA[I],SCL=1,SCL=0} ; out 8 bits Data SDA=1,SCL=1,SDA?0 ; ACKN check SCL=0 ; end out Data SCL=0,SDA=0,SCL=1,SDA=1 ; Stop (WriteBegin) P=$WDELAY ; delay: 5 ms + 5 ms (Write Time)