24LC512 EEPROM #15312
Unanswered
qian2feng
asked this question in
RP2040 / Pico
24LC512 EEPROM
#15312
Replies: 2 comments 5 replies
-
There is a driver for 24xx512 EEPROM chips. |
Beta Was this translation helpful? Give feedback.
0 replies
-
Hello Peter
I have used your driver to access 24xx512 EEPROM, Same problem still exist.
I run the full_test() in eep_i2c.py
The result is :
Available commands:
help() Print this text.
test() Basic fuctional test.
full_test() Read-write test of EEPROM chip(s).
fstest() Check or create a filesystem.
cptest() Check a filesystem by copying source files to it.
Utilities:
get_eep() Initialise and return an EEPROM instance.
cp() Very crude file copy utility.
>> full_test()
1 chips detected. Total EEPROM size 65536bytes.
Page size: 64
Instantiated EEPROM
Testing with 256 byte blocks of random data...
Address 65280..65536 written
Address 0..256 readback failed.
Address 256..512 readback failed.
Address 512..768 readback failed.
Address 768..1024 readback failed.
Address 1024..1280 readback failed.
Address 1280..1536 readback failed.
Address 1536..1792 readback failed.
Address 1792..2048 readback failed.
Address 2048..2304 readback failed.
Address 2304..2560 readback failed.
Address 2560..2816 readback failed.
Address 2816..3072 readback failed.
Address 3072..3328 readback failed.
Address 3328..3584 readback failed.
Address 3584..3840 readback failed.
Address 3840..4096 readback failed.
Address 4096..4352 readback failed.
Address 4352..4608 readback failed.
Address 4608..4864 readback failed.
Address 4864..5120 readback failed.
Address 5120..5376 readback failed.
Address 5376..5632 readback failed.
Address 5632..5888 readback failed.
Address 5888..6144 readback failed.
Address 6144..6400 readback failed.
Address 6400..6656 readback failed.
Address 6656..6912 readback failed.
Address 6912..7168 readback failed.
Address 7168..7424 readback failed.
Address 7424..7680 readback failed.
Address 7680..7936 readback failed.
Address 7936..8192 readback failed.
Address 8192..8448 readback failed.
Address 8448..8704 readback failed.
Address 8704..8960 readback failed.
Address 8960..9216 readback failed.
Address 9216..9472 readback failed.
Address 9472..9728 readback failed.
Address 9728..9984 readback failed.
Address 9984..10240 readback failed.
Address 10240..10496 readback failed.
Address 10496..10752 readback failed.
Address 10752..11008 readback failed.
Address 11008..11264 readback failed.
Address 11264..11520 readback failed.
Address 11520..11776 readback failed.
Address 11776..12032 readback failed.
Address 12032..12288 readback failed.
Address 12288..12544 readback failed.
Address 12544..12800 readback failed.
Address 12800..13056 readback failed.
Address 13056..13312 readback failed.
Address 13312..13568 readback failed.
Address 13568..13824 readback failed.
Address 13824..14080 readback failed.
Address 14080..14336 readback failed.
Address 14336..14592 readback failed.
Address 14592..14848 readback failed.
Address 14848..15104 readback failed.
Address 15104..15360 readback failed.
Address 15360..15616 readback failed.
Address 15616..15872 readback failed.
Address 15872..16128 readback failed.
Address 16128..16384 readback failed.
Address 16384..16640 readback failed.
Address 16640..16896 readback failed.
Address 16896..17152 readback failed.
Address 17152..17408 readback failed.
Address 17408..17664 readback failed.
Address 17664..17920 readback failed.
Address 17920..18176 readback failed.
Address 18176..18432 readback failed.
Address 18432..18688 readback failed.
Address 18688..18944 readback failed.
Address 18944..19200 readback failed.
Address 19200..19456 readback failed.
Address 19456..19712 readback failed.
Address 19712..19968 readback failed.
Address 19968..20224 readback failed.
Address 20224..20480 readback failed.
Address 20480..20736 readback failed.
Address 20736..20992 readback failed.
Address 20992..21248 readback failed.
Address 21248..21504 readback failed.
Address 21504..21760 readback failed.
Address 21760..22016 readback failed.
Address 22016..22272 readback failed.
Address 22272..22528 readback failed.
Address 22528..22784 readback failed.
Address 22784..23040 readback failed.
Address 23040..23296 readback failed.
Address 23296..23552 readback failed.
Address 23552..23808 readback failed.
Address 23808..24064 readback failed.
Address 24064..24320 readback failed.
Address 24320..24576 readback failed.
Address 24576..24832 readback failed.
Address 24832..25088 readback failed.
Address 25088..25344 readback failed.
Address 25344..25600 readback failed.
Address 25600..25856 readback failed.
Address 25856..26112 readback failed.
Address 26112..26368 readback failed.
Address 26368..26624 readback failed.
Address 26624..26880 readback failed.
Address 26880..27136 readback failed.
Address 27136..27392 readback failed.
Address 27392..27648 readback failed.
Address 27648..27904 readback failed.
Address 27904..28160 readback failed.
Address 28160..28416 readback failed.
Address 28416..28672 readback failed.
Address 28672..28928 readback failed.
Address 28928..29184 readback failed.
Address 29184..29440 readback failed.
Address 29440..29696 readback failed.
Address 29696..29952 readback failed.
Address 29952..30208 readback failed.
Address 30208..30464 readback failed.
Address 30464..30720 readback failed.
Address 30720..30976 readback failed.
Address 30976..31232 readback failed.
Address 31232..31488 readback failed.
Address 31488..31744 readback failed.
Address 31744..32000 readback failed.
Address 32000..32256 readback failed.
Address 32256..32512 readback failed.
Address 32512..32768 readback failed.
Address 65280..65536 readback passed
Accordiing to this result, i think the data that should be wrote to address (32769-65535) wrote to the address (0-32767).
I have tried to run your driver and test program on three different micropython uf2, and I have also brought three different 24lc512 eeprom ics for test,
but Result is the same. What do you think that I should do to access the full 64k bytes in 24xx512?
Thank for your time.
…________________________________
发件人: Peter Hinch ***@***.***>
发送时间: 2024年6月20日 19:04
收件人: micropython/micropython ***@***.***>
抄送: qian2feng ***@***.***>; Author ***@***.***>
主题: Re: [micropython/micropython] 24LC512 EEPROM (Discussion #15312)
There is a driver for 24xx512 EEPROM chips<https://github.com/peterhinch/micropython_eeprom>.
―
Reply to this email directly, view it on GitHub<#15312 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AMR2LI5MFXPE5N2YC5CG3F3ZIKZKTAVCNFSM6AAAAABJTCXCC2VHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4TQMRXG4YDI>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
5 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello,
So, I wrote this and I'm trying to confirm that my chip does have a 64k bytes
but the result of my code redirects itself back to 32k after I run this code
have anyone had a similar problem or can help me w this
I would be much thankful
Here is the code:
import time
from machine import I2C, Pin, Timer,UART,ADC
t24C512= 512 * 1024 / 8 #512 Kbits
i2c=I2C(0, scl=Pin(9), sda=Pin(8), freq=100000)
class SingleEEPROM():
capacity=0
address=0x54
def init(self, chipType=t24C512, addr=0x54):
self.capacity=int(chipType)
self.address=int(addr)
def writeEEPROM(self, eeaddress, value):
data = bytearray(3)
data[0]=eeaddress >> 8 #MSB
data[1]=eeaddress & 0xFF #LSB
data[2]=value
i2c.writeto(self.address,data)
time.sleep(.05)
def readEEPROM(self, eeaddress):
data = bytearray(2)
data[0]=eeaddress >> 8 #MSB
data[1]=eeaddress & 0xFF #LSB
i2c.writeto(self.address,data)
value=i2c.readfrom(self.address,1)
return value[0]
eep=SingleEEPROM(t24C512)
for i in range(0, 16):
a=eep.writeEEPROM(65536-i, i+3)
print("Writing",65536-i,"to",i+3)
for i in range(0, 16):
a=eep.readEEPROM(32768-i)
print(32768-i,"=",a)
The result is here:
Writing 65536 to 3
Writing 65535 to 4
Writing 65534 to 5
Writing 65533 to 6
Writing 65532 to 7
Writing 65531 to 8
Writing 65530 to 9
Writing 65529 to 10
Writing 65528 to 11
Writing 65527 to 12
Writing 65526 to 13
Writing 65525 to 14
Writing 65524 to 15
Writing 65523 to 16
Writing 65522 to 17
Writing 65521 to 18
32768 = 3
32767 = 4
32766 = 5
32765 = 6
32764 = 7
32763 = 8
32762 = 9
32761 = 10
32760 = 11
32759 = 12
32758 = 13
32757 = 14
32756 = 15
32755 = 16
32754 = 17
32753 = 18
Beta Was this translation helpful? Give feedback.
All reactions