Hi MInhle,
Check the link and see the table.
I2CRead/I2CWrite part of PicBasic Pro manual
What is address size for over 24LC16 (2K bytes) devices?
BR,
-Gusse-
Hi MInhle,
Check the link and see the table.
I2CRead/I2CWrite part of PicBasic Pro manual
What is address size for over 24LC16 (2K bytes) devices?
BR,
-Gusse-
thank Gusse,
i replaced data address (I: in this case) by WORD . . and/or change R from 10K to 6K. ..it doesnot work.
(in the data sheet of 24lc256 dooesnot mention anything data address.
VOLTAGE drop across: R_SCL (10K or 6K) : ~5V (unchanged)
R_SDA (10K or 6K): ~2.5V
!! is it possible the EEPROM: DEATH??
Hi MInhle,
If you are running with internal oscillator then speed is 4MHz, not 20MHz. Also you should tell that to compiler.
14.2.6 INTERNAL 4 MHZ OSCILLATOR
The internal RC oscillator provides a fixed 4 MHz
(nominal) system clock at VDD = 5V and 25°C, see
“Electrical Specifications” section for information on
variation over voltage and temperature.Code:DEFINE OSC 414.2.7 CLKOUTCLKOUT is RA6, which is also your I2C data pin. Disable CLKOUT or change I2C data pin to other IO.
The PIC16F62X can be configured to provide a clock
out signal by programming the configuration word. The
oscillator frequency, divided by 4 can be used for test
purposes or to synchronize other logic.
If you are not using comparator then disable those.
I hope these modifications will bring up some life to your EEPROM interface.Code:CMCON = 7
BR,
-Gusse-
hello GUSSE,
i got a BONUS now. the led is on (pin2 only) and flash
i lookk for error in teh program and let u knoow later
thanks for your help
HI Gusse,
the modifications were made.
as indicated.
defined OSC 4 ;no effect: ( INTCLOUT is set in the fuse window)
SDA PORTA.3
SCL PORRT.4
......
R_SDA & R_SCL: 4.5k
a led on portb flashed is due to error that i cannot see where it comes from
not write nor read. i assume EEPROM???
Hi MInhle,
Below is very simple I2C write and read test script.
If write and read are successfully executed then LED will blink for 0.5s.Code:<code><font color="#000000">CMCON = 7 TRISA = %11000000 TRISB = %00000000 SDA <b>VAR </b>PortA.3 SCL <b>VAR </b>PortA.4 LED <b>VAR </b>PortB.0 <font color="#000080"><i>'Indicator LED (change if needed) </i></font>I2CDeviceEEprom <b>VAR BYTE </b>I2CAddressEEprom <b>VAR WORD </b>TEMP1 <b>VAR BYTE </b>TEMP2 <b>VAR BYTE </b>I2CDeviceEEprom=$A0 <font color="#000080"><i>'DeviceID 10100000 = $A0 = %1010 A2=0, A1=0, A0=0 R/W=0 </i></font><b>DEFINE </b>OSC 4 Main: I2CAddressEEprom = 0 TEMP1 = 1 <b>GOSUB </b>Write_I2C <b>PAUSE </b>10 <b>GOSUB </b>Read_I2C <b>IF </b>TEMP1 = TEMP2 <b>THEN HIGH </b>LED <font color="#000080"><i>'If OK then 0.5s LED blink </i></font><b>PAUSE </b>500 <b>LOW </b>LED <b>ELSE HIGH </b>LED <font color="#000080"><i>'If FAIL then 2s LED blink </i></font><b>PAUSE </b>2000 <b>LOW </b>LED <b>ENDIF GOTO </b>Main Write_I2C: <b>I2CWRITE </b>SDA, SCL, I2CDeviceEEprom, I2CAddressEEprom,[ TEMP1 ] <b>RETURN </b>Read_I2C: <b>I2CREAD </b>SDA, SCL, I2CDeviceEEprom, I2CAddressEEprom,[ TEMP2 ] <b>RETURN END </b></code>
2s LED blink will be an indication of fail.
BR,
-Gusse-
hello Gusse,
I copy you program. run ---> the light is solid.,
i tr to put direcly data into EEProm, the out put is whatever,,,
i.e.
i = 0 ; data address
b0 = $2a ; data to be stored
i2cwrite .......... i, [b0]
b0 = 0
i2cread .........i,[b0]
run ----> whatever... output (BONUS ONLY)
i have to replace the EEPROm
thanks for your time
regards,
Bookmarks