No estoy seguro de que te des cuenta de las implicaciones de una página de eeprom.
Aquí está la hoja de datos 24LC256
Una opción para llenarlo es escribir bytes individuales. Usando ese modo, envía la dirección de byte de eeprom para cada byte que desea escribir, por lo que la ubicación de la página no representa ningún límite.
Una opción alternativa es escribir un bloque. El tamaño del bloque para el dispositivo en particular es de 64 bytes, por lo que los límites de las páginas son
0-63
64-127
128-191
....
Cuando escribes un bloque, solo envías la dirección de la memoria una vez y luego envías los bytes a almacenar. La dirección se incrementa internamente para cada nuevo byte.
Las escrituras de página solo se pueden usar dentro de los límites de una página, para alcanzar los límites de la página, debe detenerse y comenzar una nueva escritura enviando la dirección nuevamente.
Si inicia una escritura de bloque desde una dirección que está cerca del final del bloque, solo puede escribir unos pocos bytes hasta el final de la página en lugar de los 64 bytes. Por ejemplo, si inicia una escritura de bloque desde la dirección eeprom 126, entonces solo puede escribir dos bytes, en las ubicaciones 126 y 127. Si continúa escribiendo bytes, la dirección se desplaza y sobrescribe el inicio del bloque (en este caso, 64, 65 ..)
En cualquier caso, los valores de cualquier ubicación de eeprom donde no se haya realizado una acción de escritura o borrado mantienen el valor existente.
Así que para tu pregunta
¿Puedo escribir menos de 64 bytes?
Claro que puede hacerlo con escrituras de bytes individuales o con escritura de página pero dentro de los límites de la página que serán (0-63, 64-127 ...)
En caso afirmativo, ¿qué sucede con esas ubicaciones? (¿Se mantendrá en BFF o en 0)?
¿Se explicaron los valores anteriores en la ubicación donde no se ha realizado un ciclo de escritura o borrado? Mantenga su valor existente. Por lo general, eeprom no escrito tiene 0xff escritos en todas las ubicaciones de bytes para que esto se mantenga.