Hola de nuevo, como en el datasheet no he visto nada de activar las resistencias de pull-up en el porta he decidido conectar la eeprom al portb y activar las resistencias de pull-up y tambien SDA Y SDL de la eeprom los he puesto en el pic como entradas por que sino no puedo activar las resistencias de pull-up. Me sigue sin funcionar no se que estoy haciendo mal, no se si lo que he hecho para ctivar las resistencias de pull-up está vien, este es el programa con unas pequeñas modificaciones:
" I2CREAD and I2WRITE Commands
"
" Write to the first 16 locations of an external serial EEPROM
" Read first 16 locations back and send to serial out repeatedly
" Note: for EEPROMS with byte-sized address
"Include "modedefs.bas" " Include serial modes
define OSC 4
include "bs2defs.bas"
DEFINE LOADER_USED 1
Define I2C_INTERNAL 1
DEFINE I2C_SLOW 1
ADCON1=7
cont CON %10100000
TRISB.5=1:TRISB.4=1 "pongo SDA y SCL com entradas para poder activar las resistencias pull-up
OPTION_REG.7=0 "pull-up are enable by individual port latch values
DPIN var PORTB.5 " I2C data pin
CPIN var PORTB.4 " I2C clock pin
B_0 var byte
B_1 var byte
B_2 var byte
B_2=150: B_0=10:B_1=0
I2CWRITE DPIN,CPIN,cont,B_0,[B_2] " Write each location"s address to itself
Pause 30 " Delay 10ms after each write
serout2 portc.6,188,[dec B_1,"-"]
I2CREAD DPIN,CPIN,cont,B_0,[B_1] " Read 2 locations in a row
Pause 30
Serout2 portc.6,188,[dec B_1,"-",dec B_2] " Print 2 locations
end
no se si está bien lo que estoy haciendo?
si que sacandome por el serie 0-32-150 y en teoria tendría que sacarme 0-150-150 que raro y si desactivo el define : Define I2C_INTERNAL 1, por el serie me tira 0-255-150.