Problems with eeprom
Otmar
Posts: 7
Hello all,
i have a problem with the NS_eeprom_drv.010 located on the Hydra CD.
The driver does not work correctly then i write more than 2^15 bytes (32768 bytes) to the eeprom.
I dont know if the read or the write function is not working.
Is their maybe a newer version of the driver?
I am using the Hydra-Board with the AT24C1024 eeprom.
Thanks
i have a problem with the NS_eeprom_drv.010 located on the Hydra CD.
The driver does not work correctly then i write more than 2^15 bytes (32768 bytes) to the eeprom.
I dont know if the read or the write function is not working.
Is their maybe a newer version of the driver?
I am using the Hydra-Board with the AT24C1024 eeprom.
Thanks
Comments
The first programm stores 26720 bytes of data to the eeprom(start_adress=$1FFFF-26720 only one write cycle) -> everything works fine
The second programm should store 9212 bytes (start_adress=$1FFFF-35932) -> only the data below $1FFFF-32768 is written
Maybe the problem is that i am trying to write over a 32k bounce in one write cycle?
Andr
It looks like that the serial I2C eeproms from atmel support "page write mode" and "byte write mode".
From the Datasheet:
*BYTE WRITE: To select a data word in the 1024K memory requires a 17-bit word address. The
word address field consists of the P0 bit of the device address, then the most significant word
address followed by the least significant word address (see Figure 7-2 on page 11)
A write operation requires the P0 bit and two 8-bit data word addresses following the device
address word and acknowledgment. Upon receipt of this address, the EEPROM will again
respond with a zero and then clock in the first 8-bit data word. Following receipt of the 8-bit data
word, the EEPROM will output a zero. The addressing device, such as a microcontroller, then
must terminate the write sequence with a stop condition. At this time the EEPROM enters an
internally timed write cycle, TWR, to the nonvolatile memory. All inputs are disabled during this
write cycle and the EEPROM will not respond until the write is complete (see Figure 7-2 on page
11).
This is why the first programm works-> the driver uses the "byte write mode"
In version 1.0 of the eeprom driver is a bug.
One constant is wrong : addr_msb_mask long 1<<17 should be addr_msb_mask long 1<<16 then everything works fine.
In version 1.1 the bug is solved. I found the version 1.1 in the package of the "HAM tool".
Thanks for your help