' ========================================================================= ' ' File...... 24LC256.BSP ' Purpose... 24LC256 control via I2C ' Author.... Jon Williams -- Parallax, Inc. ' E-mail.... jwilliams@parallax.com ' Started... 21 MAR 2002 ' Updated... 06 JUL 2004 ' ' {$STAMP BS2p} ' {$PBASIC 2.5} ' ' ========================================================================= ' -----[ Program Description ]--------------------------------------------- ' ' This program demonstrates essential I2C routines and communication with ' the Microchip 24LC256 serial EEPROM. ' -----[ Revision History ]------------------------------------------------ ' -----[ I/O Definitions ]------------------------------------------------- ' SDA PIN 0 ' I2C serial data line SCL PIN 1 ' I2C serial clock line ' -----[ Constants ]------------------------------------------------------- DevType CON %1010 << 4 ' device type DevAddr CON %001 << 1 ' address = %000 -> %111 Wr24256 CON DevType | DevAddr | 0 ' write to 24LC256 Rd24256 CON DevType | DevAddr | 1 ' read from 24LC256 ' -----[ Variables ]------------------------------------------------------- eeAddr VAR Word ' address in EEPROM test VAR Nib outVal VAR Byte ' output to EEPROM inVal VAR Byte ' input from EEPROM ' -----[ EEPROM Data ]----------------------------------------------------- ' -----[ Initialization ]-------------------------------------------------- Setup: DEBUG CLS, ' setup output screen "24LC256 Demo", CR, CR, "Address... ", CR, "Output.... ", CR, "Input..... ", CR ' -----[ Program Code ]---------------------------------------------------- Main: FOR eeAddr = 0 TO 32767 DEBUG CRSRXY, 11, 2, DEC eeAddr, " " FOR test = 0 TO 3 LOOKUP test, [$FF, $AA, $55, $00], outVal DEBUG CRSRXY, 11, 3, IHEX2 outVal I2COUT SDA, Wr24256, eeAddr.HIGHBYTE\eeAddr.LOWBYTE, [outVal] PAUSE 10 inVal = ~outVal I2CIN SDA, Rd24256, eeAddr.HIGHBYTE\eeAddr.LOWBYTE, [inVal] DEBUG CRSRXY, 11, 4, IHEX2 inVal, " " IF (inVal = outVal) THEN DEBUG "Pass" ELSE DEBUG "Fail" ENDIF PAUSE 50 NEXT NEXT END ' -----[ Subroutines ]-----------------------------------------------------