Unable to write to 64K EEPROM Upper Half
william chan
Posts: 1,326
Help !
When I write to an address higher than 32K in a 24C512 eeprom,
like below,
OBJ
i2c : "basic_i2c_driver"
eeprom.WriteLong(i2c#bootpin,i2c#eeprom,32768,data)
it actually overwrites the Propeller's own program.
This happens everytime.
Then the Propeller cannot be reset since it's own program is corrupted.
What could be wrong?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.fd.com.my
www.mercedes.com.my
When I write to an address higher than 32K in a 24C512 eeprom,
like below,
OBJ
i2c : "basic_i2c_driver"
eeprom.WriteLong(i2c#bootpin,i2c#eeprom,32768,data)
it actually overwrites the Propeller's own program.
This happens everytime.
Then the Propeller cannot be reset since it's own program is corrupted.
What could be wrong?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.fd.com.my
www.mercedes.com.my
Comments
Everything else works with this eeprom.
Have you tested the basic_i2c_driver with this eeprom before?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.fd.com.my
www.mercedes.com.my
There's nothing in the code that would cause addresses to wraparound at 32K. The only mechanism for
what you're reporting would be a substitution of a 32K byte EEPROM for the expected 64K byte EEPROM.
It was a wrong chip that was plugged in.
The basic_i2c_driver now works with the correct 24LC512 chip.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.fd.com.my
www.mercedes.com.my