Skip to main content
added 25 characters in body
Source Link
Rookie91
  • 2.1k
  • 5
  • 30
  • 48

I'm using C18 compiler and 24LC256 EEPROM. I would like to know how to handle Rollover case in terms of large EEPROM write.I'm writing a Routine that writes 120 Bytes every half an hour and i would like to know how can i save/store my data easily as Page Write will take only 5 ms as equal to a single write operation.The Page size here is 64 Bytes.And i have to write for 10 hours making it 2.4 K space per day.

Well the problem i have is:

1.I want to use Page Write Efficiently and wants to prevent Roll over condition. page size starts from 0-63 , 64-127 ,128-191,192-255...up to 32 K. I want to Predict when is the Page Limit coming and wants the Page Write to shift accordingly.

eg: If i start with 0th address: 0-63 will occupy 64 bytes and 64-117 will occupy the next 56 Bytes. Then for the next Page Write i can only write 20 locations and have to write 64 and 20 in another two Page Write Operations.

Note:Dedicating starting Page Locations for each Page Write is not required.

Page write operations are limited to writing
bytes within a single physical page,
regardless of the number of bytes actually
being written. Physical page boundaries
start at addresses that are integer
multiples of the page buffer size (or ‘page
size’) and end at addresses that are
integer multiples of [page size - 1]. If a
Page Write command attempts to write
across a physical page boundary, the
result is that the data wraps around to the
beginning of the current page (overwriting
data previously stored there), instead of
being written to the next page, as might be
expected. It is, therefore, necessary for the
application software to prevent page write
operations that would attempt to cross a
page boundary

I have been trying to find an algorithm to do so. It would be extremely helpful if you sort out this issue or suggest your insights.

Regards

Arookie

I'm using C18 compiler and 24LC256 EEPROM. I would like to know how to handle Rollover case in terms of large EEPROM write.I'm writing a Routine that writes 120 Bytes every half an hour and i would like to know how can i save/store my data easily as Page Write will take only 5 ms as equal to a single write operation.The Page size here is 64 Bytes.And i have to write for 10 hours making it 2.4 K space per day.

Well the problem i have is:

1.I want to use Page Write Efficiently and wants to prevent Roll over condition. page size starts from 0-63 , 64-127 ,128-191,192-255...up to 32 K. I want to Predict when is the Page Limit coming and wants the Page Write to shift accordingly.

eg: If i start with 0th address: 0-63 will occupy 64 bytes and 64-117 will occupy the next 56 Bytes. Then for the next Page Write i can only write 20 locations and have to write 64 and 20 in another two Page Write Operations.

Note:Dedicating starting Page Locations for each Page Write is not required.

Page write operations are limited to writing
bytes within a single physical page,
regardless of the number of bytes actually
being written. Physical page boundaries
start at addresses that are integer
multiples of the page buffer size (or ‘page
size’) and end at addresses that are
integer multiples of [page size - 1]. If a
Page Write command attempts to write
across a physical page boundary, the
result is that the data wraps around to the
beginning of the current page (overwriting
data previously stored there), instead of
being written to the next page, as might be
expected. It is, therefore, necessary for the
application software to prevent page write
operations that would attempt to cross a
page boundary

I have been trying to find an algorithm to do so. It would be extremely helpful if you sort out this issue.

Regards

Arookie

I'm using C18 compiler and 24LC256 EEPROM. I would like to know how to handle Rollover case in terms of large EEPROM write.I'm writing a Routine that writes 120 Bytes every half an hour and i would like to know how can i save/store my data easily as Page Write will take only 5 ms as equal to a single write operation.The Page size here is 64 Bytes.And i have to write for 10 hours making it 2.4 K space per day.

Well the problem i have is:

1.I want to use Page Write Efficiently and wants to prevent Roll over condition. page size starts from 0-63 , 64-127 ,128-191,192-255...up to 32 K. I want to Predict when is the Page Limit coming and wants the Page Write to shift accordingly.

eg: If i start with 0th address: 0-63 will occupy 64 bytes and 64-117 will occupy the next 56 Bytes. Then for the next Page Write i can only write 20 locations and have to write 64 and 20 in another two Page Write Operations.

Note:Dedicating starting Page Locations for each Page Write is not required.

Page write operations are limited to writing
bytes within a single physical page,
regardless of the number of bytes actually
being written. Physical page boundaries
start at addresses that are integer
multiples of the page buffer size (or ‘page
size’) and end at addresses that are
integer multiples of [page size - 1]. If a
Page Write command attempts to write
across a physical page boundary, the
result is that the data wraps around to the
beginning of the current page (overwriting
data previously stored there), instead of
being written to the next page, as might be
expected. It is, therefore, necessary for the
application software to prevent page write
operations that would attempt to cross a
page boundary

I have been trying to find an algorithm to do so. It would be extremely helpful if you sort out this issue or suggest your insights.

Regards

Arookie

Problem is specified with data from datasheet
Source Link
Rookie91
  • 2.1k
  • 5
  • 30
  • 48

I'm using C18 compiler and 24LC256 EEPROM. I would like to know how to handle Rollover case in terms of large EEPROM write.I'm writing a Routine that writes 120 Bytes every half an hour and i would like to know how can i save/store my data easily as Page Write will take only 5 ms as equal to a single write operation.The Page size here is 64 Bytes.And i have to write for 10 hours making it 2.4 K space per day.

Well the problem i have is:

1.I want to use Page Write Efficiently and wants to prevent Roll over condition. page size starts from 0-63 , 64-127 ,128-191,192-255...up to 32 K. I want to Predict when is the Page Limit coming and wants the Page Write to shift accordingly.

eg: If i start with 0th address: 0-63 will occupy 64 bytes and 64-103117 will occupy the next 4456 Bytes. Then for the next Page Write i can only write 20 locations and have to write 64 and 20 in another two Page Write Operations.

Note:Dedicating starting Page Locations for each Page Write is not required.

Page write operations are limited to writing
bytes within a single physical page,
regardless of the number of bytes actually
being written. Physical page boundaries
start at addresses that are integer
multiples of the page buffer size (or ‘page
size’) and end at addresses that are
integer multiples of [page size - 1]. If a
Page Write command attempts to write
across a physical page boundary, the
result is that the data wraps around to the
beginning of the current page (overwriting
data previously stored there), instead of
being written to the next page, as might be
expected. It is, therefore, necessary for the
application software to prevent page write
operations that would attempt to cross a
page boundary

I have been trying to find an algorithm to do so. It would be extremely helpful if you sort out an issue for this issue.

Regards

Arookie

I'm using C18 compiler and 24LC256 EEPROM. I would like to know how to handle Rollover case in terms of large EEPROM write.I'm writing a Routine that writes 120 Bytes every half an hour and i would like to know how can i save/store my data easily as Page Write will take only 5 ms as equal to a single write operation.The Page size here is 64 Bytes.And i have to write for 10 hours making it 2.4 K space per day.

Well the problem i have is:

1.I want to use Page Write Efficiently and wants to prevent Roll over condition. page size starts from 0-63 , 64-127 ,128-191,192-255...up to 32 K. I want to Predict when is the Page Limit coming and wants the Page Write to shift accordingly.

eg: If i start with 0th address: 0-63 will occupy 64 bytes and 64-103 will occupy the next 44 Bytes. Then for the next Page Write i can only write 20 locations and have to write 64 and 20 in another two Page Write Operations.

Note:Dedicating starting Page Locations for each Page Write is not required.

I have been trying to find an algorithm to do so. It would be extremely helpful if you sort out an issue for this.

Regards

Arookie

I'm using C18 compiler and 24LC256 EEPROM. I would like to know how to handle Rollover case in terms of large EEPROM write.I'm writing a Routine that writes 120 Bytes every half an hour and i would like to know how can i save/store my data easily as Page Write will take only 5 ms as equal to a single write operation.The Page size here is 64 Bytes.And i have to write for 10 hours making it 2.4 K space per day.

Well the problem i have is:

1.I want to use Page Write Efficiently and wants to prevent Roll over condition. page size starts from 0-63 , 64-127 ,128-191,192-255...up to 32 K. I want to Predict when is the Page Limit coming and wants the Page Write to shift accordingly.

eg: If i start with 0th address: 0-63 will occupy 64 bytes and 64-117 will occupy the next 56 Bytes. Then for the next Page Write i can only write 20 locations and have to write 64 and 20 in another two Page Write Operations.

Note:Dedicating starting Page Locations for each Page Write is not required.

Page write operations are limited to writing
bytes within a single physical page,
regardless of the number of bytes actually
being written. Physical page boundaries
start at addresses that are integer
multiples of the page buffer size (or ‘page
size’) and end at addresses that are
integer multiples of [page size - 1]. If a
Page Write command attempts to write
across a physical page boundary, the
result is that the data wraps around to the
beginning of the current page (overwriting
data previously stored there), instead of
being written to the next page, as might be
expected. It is, therefore, necessary for the
application software to prevent page write
operations that would attempt to cross a
page boundary

I have been trying to find an algorithm to do so. It would be extremely helpful if you sort out this issue.

Regards

Arookie

Tweeted twitter.com/#!/StackElectronix/status/423391497879552000
Source Link
Rookie91
  • 2.1k
  • 5
  • 30
  • 48

How to effectively tackle long page write in EEPROM

I'm using C18 compiler and 24LC256 EEPROM. I would like to know how to handle Rollover case in terms of large EEPROM write.I'm writing a Routine that writes 120 Bytes every half an hour and i would like to know how can i save/store my data easily as Page Write will take only 5 ms as equal to a single write operation.The Page size here is 64 Bytes.And i have to write for 10 hours making it 2.4 K space per day.

Well the problem i have is:

1.I want to use Page Write Efficiently and wants to prevent Roll over condition. page size starts from 0-63 , 64-127 ,128-191,192-255...up to 32 K. I want to Predict when is the Page Limit coming and wants the Page Write to shift accordingly.

eg: If i start with 0th address: 0-63 will occupy 64 bytes and 64-103 will occupy the next 44 Bytes. Then for the next Page Write i can only write 20 locations and have to write 64 and 20 in another two Page Write Operations.

Note:Dedicating starting Page Locations for each Page Write is not required.

I have been trying to find an algorithm to do so. It would be extremely helpful if you sort out an issue for this.

Regards

Arookie