Цитата(Огурцов @ Oct 6 2008, 20:30)

Можно ли в AT45DB дописывать (не стирая предыдущие данные) данные в сектор, в который уже была сделана запись ?
Осторожно с этим надо.
У AT45DBxxx
B написано недвусмысленно:
Цитата
Buffer to Main Memory Page Program without Built-in Erase
A previously erased page within main memory can be programmed with the contents of either buffer 1 or buffer 2.
.....
Successive page programming operations without doing a page erase are not recommended. In other words, changing bytes within a page from a ”1” to a ”0” during multiple page programming operations without erasing that page is not recommended.
У AT45DBxxx
D несколько невнятно:
Цитата
It is necessary that the page in main memory that is being programmed has been previously erased using one of the erase commands (Page Erase or Block Erase).
Может можно дописывать (имели ввиду всего лишь то, что без стирания не "запишутся" единички), может нет.
Цитата(Огурцов @ Oct 6 2008, 20:30)

Теоретически, есть еще 56 байт в NV-RAM, которые пока не используются. Хотя на сектор (512 байт) их не достаточно.
Накапливать в них фрагмент и потом его весь сбрасывать. Например, читая во внутренний буфер AT45DB какую-то страницу, дописывая в нужное место фрагмент из RTC, записывая этот буфер в массив со стиранием.
И гарантированно "честно", и меньше стираний, меньше самих операций записи.