AT24C32 EEPROM, ktorá sa dodáva s modulom DS3132 RTC, má 32kbit priestoru, čo znamená, že dokáže uložiť 4096 bajtov alebo 4096 znakov pri použití 8-bitového kódovania znakov, ako je ASCII.

Aby sme na ňu mohli uložiť užitočné dáta, musíme ju rozdeliť na rovnaké bloky, ktoré budú dáta obsahovať. Ak chceme využiť celý dostupný priestor, mali by sme sa zamerať na delitele čísla 4096:

prvý faktordruhý faktor
14096
22048
41024
8512
16256
32128
6464

Toto sú všetko dobre známe čísla – mocniny dvojky ako faktory (celočíselné delitele) čísla 4096. Vidíme napríklad, že pamäť by sme mohli rozdeliť na 1 blok o veľkosti 4096 bajtov alebo na 2048 blokov, každý 2 bajty dlhý. Ale tieto rozhodnutia nie sú príliš užitočné. Ak chceme dospieť k nejakému praktickému číslu, musíme optimalizovať buď veľkosť bloku, alebo počet blokov.

Ak si zvolíme veľkosť bloku 32 bajtov – aby sme naraz uložili pomerne veľa dát – sme obmedzení na 128 blokov, ako vidíme v tabuľke vyššie:

4096 bajtov / 32 bajtov na blok = 128 blokov

To by znamenalo, že náš datalogger by bol schopný uložiť posledných 128 zápisov. Ak sa rozhodneme, že potrebujeme podporovať aspoň 256 rôznych zápisov (blokov) dát, musíme všetky dáta záznamu vtesnať do 16 bajtov:

4096 bajtov / 256 blokov = 16 bajtov na blok

Šestnásť bajtov na blok – nie skvelé, nie hrozné. Záleží to všetko na zaznamenaných dátach. Ak sa tam všetky požadované informácie zmestia, skvelé. Ak nie, hrozné. Mohli by sme si tiež zvoliť nejaké ľubovoľné číslo, napríklad 21 bajtov na blok:

4096 bajtov / 21 bajtov na blok = 195,047619048 bajtov na blok

Samozrejme, zlomkami bajtu sa tu zaoberať nebudeme. Vyššie to skôr znamená, že máme k dispozícii 195 plných blokov a nejaké bajty zostanú nepriradené niekde – zvyčajne na začiatku alebo na konci pamäťového priestoru. V tomto konkrétnom prípade je to vlastne len jeden nepoužitý bajt:

4096 bajtov MODULO 21 bajtov na blok = 1 nepriradený bajt

Alebo inými slovami:

195 blokov * 21 bajtov na blok = 4095 priradených bajtov

Tento jediný bajt sa dá použiť na nejaký iný účel, napríklad ako konfiguračný príznak. Len sa uistite, že sa mení menej často ako samotné bloky dát sa zaznamenávajú, inak daný bajt opotrebujete skôr!

Odkazy #

Toto je 64. príspevok #100daystooffload.