Loading...
Searching...
No Matches
at24cxxx_defines.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2019 Otto-von-Guericke-Universität Magdeburg
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
9#pragma once
10
25
26#include "kernel_defines.h"
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
35#define AT24CXXX_POLL_DELAY_US (1000UL)
39#define AT24CXXX_CLEAR_BYTE (0x00)
50#define AT24CXXX_DEF_DEV_ADDR (0x50)
51
59#define AT24C01A_EEPROM_SIZE (128U)
63#define AT24C01A_PAGE_SIZE (8U)
67#define AT24C01A_PAGE_WRITE_DELAY_US (5000U)
71#define AT24C01A_MAX_POLLS (1 + (AT24C01A_PAGE_WRITE_DELAY_US \
72 / AT24CXXX_POLL_DELAY_US))
73
74
82#define AT24C02_EEPROM_SIZE (256U)
86#define AT24C02_PAGE_SIZE (8U)
90#define AT24C02_PAGE_WRITE_DELAY_US (5000U)
94#define AT24C02_MAX_POLLS (1 + (AT24C02_PAGE_WRITE_DELAY_US \
95 / AT24CXXX_POLL_DELAY_US))
96
97
105#define AT24C04_EEPROM_SIZE (512U)
109#define AT24C04_PAGE_SIZE (16U)
113#define AT24C04_PAGE_WRITE_DELAY_US (5000U)
117#define AT24C04_MAX_POLLS (1 + (AT24C04_PAGE_WRITE_DELAY_US \
118 / AT24CXXX_POLL_DELAY_US))
119
120
128#define AT24C08A_EEPROM_SIZE (1024U)
132#define AT24C08A_PAGE_SIZE (16U)
136#define AT24C08A_PAGE_WRITE_DELAY_US (5000U)
140#define AT24C08A_MAX_POLLS (1 + (AT24C08A_PAGE_WRITE_DELAY_US \
141 / AT24CXXX_POLL_DELAY_US))
142
143
151#define AT24C16A_EEPROM_SIZE (2048U)
155#define AT24C16A_PAGE_SIZE (16U)
159#define AT24C16A_PAGE_WRITE_DELAY_US (5000U)
163#define AT24C16A_MAX_POLLS (1 + (AT24C16A_PAGE_WRITE_DELAY_US \
164 / AT24CXXX_POLL_DELAY_US))
165
166
174#define AT24C32_EEPROM_SIZE (4096U)
178#define AT24C32_PAGE_SIZE (32U)
182#define AT24C32_PAGE_WRITE_DELAY_US (10000U)
186#define AT24C32_MAX_POLLS (1 + (AT24C32_PAGE_WRITE_DELAY_US \
187 / AT24CXXX_POLL_DELAY_US))
188
189
197#define AT24C64_EEPROM_SIZE (8192U)
201#define AT24C64_PAGE_SIZE (32U)
205#define AT24C64_PAGE_WRITE_DELAY_US (10000U)
209#define AT24C64_MAX_POLLS (1 + (AT24C64_PAGE_WRITE_DELAY_US \
210 / AT24CXXX_POLL_DELAY_US))
211
212
220#define AT24C128_EEPROM_SIZE (16384U)
224#define AT24C128_PAGE_SIZE (64U)
228#define AT24C128_PAGE_WRITE_DELAY_US (5000U)
232#define AT24C128_MAX_POLLS (1 + (AT24C128_PAGE_WRITE_DELAY_US \
233 / AT24CXXX_POLL_DELAY_US))
234
235
243#define AT24C256_EEPROM_SIZE (32768U)
247#define AT24C256_PAGE_SIZE (64U)
251#define AT24C256_PAGE_WRITE_DELAY_US (5000U)
255#define AT24C256_MAX_POLLS (1 + (AT24C256_PAGE_WRITE_DELAY_US \
256 / AT24CXXX_POLL_DELAY_US))
257
258
266#define AT24C512_EEPROM_SIZE (65536U)
270#define AT24C512_PAGE_SIZE (128U)
274#define AT24C512_PAGE_WRITE_DELAY_US (5000U)
278#define AT24C512_MAX_POLLS (1 + (AT24C512_PAGE_WRITE_DELAY_US \
279 / AT24CXXX_POLL_DELAY_US))
280
281
289#define AT24CS04_EEPROM_SIZE (512U)
293#define AT24CS04_PAGE_SIZE (16U)
297#define AT24CS04_PAGE_WRITE_DELAY_US (5000U)
301#define AT24CS04_MAX_POLLS (1 + (AT24CS04_PAGE_WRITE_DELAY_US \
302 / AT24CXXX_POLL_DELAY_US))
303
304
312#define AT24CS08_EEPROM_SIZE (1024U)
316#define AT24CS08_PAGE_SIZE (16U)
320#define AT24CS08_PAGE_WRITE_DELAY_US (5000U)
324#define AT24CS08_MAX_POLLS (1 + (AT24CS08_PAGE_WRITE_DELAY_US \
325 / AT24CXXX_POLL_DELAY_US))
326
327
335#define AT24C1024_EEPROM_SIZE (131072U)
339#define AT24C1024_PAGE_SIZE (256U)
343#define AT24C1024_PAGE_WRITE_DELAY_US (5000U)
347#define AT24C1024_MAX_POLLS (1 + (AT24C1024_PAGE_WRITE_DELAY_US \
348 / AT24CXXX_POLL_DELAY_US))
349
350
358#define AT24MAC_EEPROM_SIZE (256U)
362#define AT24MAC_PAGE_SIZE (16U)
366#define AT24MAC_PAGE_WRITE_DELAY_US (5000U)
370#define AT24MAC_MAX_POLLS (1 + (AT24MAC_PAGE_WRITE_DELAY_US \
371 / AT24CXXX_POLL_DELAY_US))
372
373
381#define M24C01_EEPROM_SIZE (128U)
385#define M24C01_PAGE_SIZE (16U)
389#define M24C01_PAGE_WRITE_DELAY_US (5000U)
393#define M24C01_MAX_POLLS (1 + (M24C01_PAGE_WRITE_DELAY_US \
394 / AT24CXXX_POLL_DELAY_US))
395
396
401#if IS_USED(MODULE_AT24C1024)
402#define AT24CXXX_EEPROM_SIZE (AT24C1024_EEPROM_SIZE)
403#define AT24CXXX_PAGE_SIZE (AT24C1024_PAGE_SIZE)
404#define AT24CXXX_MAX_POLLS (AT24C1024_MAX_POLLS)
405#elif IS_USED(MODULE_AT24C512)
406#define AT24CXXX_EEPROM_SIZE (AT24C512_EEPROM_SIZE)
407#define AT24CXXX_PAGE_SIZE (AT24C512_PAGE_SIZE)
408#define AT24CXXX_MAX_POLLS (AT24C512_MAX_POLLS)
409#elif IS_USED(MODULE_AT24C256)
410#define AT24CXXX_EEPROM_SIZE (AT24C256_EEPROM_SIZE)
411#define AT24CXXX_PAGE_SIZE (AT24C256_PAGE_SIZE)
412#define AT24CXXX_MAX_POLLS (AT24C256_MAX_POLLS)
413#elif IS_USED(MODULE_AT24C128)
414#define AT24CXXX_EEPROM_SIZE (AT24C128_EEPROM_SIZE)
415#define AT24CXXX_PAGE_SIZE (AT24C128_PAGE_SIZE)
416#define AT24CXXX_MAX_POLLS (AT24C128_MAX_POLLS)
417#elif IS_USED(MODULE_AT24C64)
418#define AT24CXXX_EEPROM_SIZE (AT24C64_EEPROM_SIZE)
419#define AT24CXXX_PAGE_SIZE (AT24C64_PAGE_SIZE)
420#define AT24CXXX_MAX_POLLS (AT24C64_MAX_POLLS)
421#elif IS_USED(MODULE_AT24C32)
422#define AT24CXXX_EEPROM_SIZE (AT24C32_EEPROM_SIZE)
423#define AT24CXXX_PAGE_SIZE (AT24C32_PAGE_SIZE)
424#define AT24CXXX_MAX_POLLS (AT24C32_MAX_POLLS)
425#elif IS_USED(MODULE_AT24C16A)
426#define AT24CXXX_EEPROM_SIZE (AT24C16A_EEPROM_SIZE)
427#define AT24CXXX_PAGE_SIZE (AT24C16A_PAGE_SIZE)
428#define AT24CXXX_MAX_POLLS (AT24C16A_MAX_POLLS)
429#elif IS_USED(MODULE_AT24C08A)
430#define AT24CXXX_EEPROM_SIZE (AT24C08A_EEPROM_SIZE)
431#define AT24CXXX_PAGE_SIZE (AT24C08A_PAGE_SIZE)
432#define AT24CXXX_MAX_POLLS (AT24C08A_MAX_POLLS)
433#elif IS_USED(MODULE_AT24C04)
434#define AT24CXXX_EEPROM_SIZE (AT24C04_EEPROM_SIZE)
435#define AT24CXXX_PAGE_SIZE (AT24C04_PAGE_SIZE)
436#define AT24CXXX_MAX_POLLS (AT24C04_MAX_POLLS)
437#elif IS_USED(MODULE_AT24C02)
438#define AT24CXXX_EEPROM_SIZE (AT24C02_EEPROM_SIZE)
439#define AT24CXXX_PAGE_SIZE (AT24C02_PAGE_SIZE)
440#define AT24CXXX_MAX_POLLS (AT24C02_MAX_POLLS)
441#elif IS_USED(MODULE_AT24C01A)
442#define AT24CXXX_EEPROM_SIZE (AT24C01A_EEPROM_SIZE)
443#define AT24CXXX_PAGE_SIZE (AT24C01A_PAGE_SIZE)
444#define AT24CXXX_MAX_POLLS (AT24C01A_MAX_POLLS)
445#elif IS_USED(MODULE_AT24CS04)
446#define AT24CXXX_EEPROM_SIZE (AT24CS04_EEPROM_SIZE)
447#define AT24CXXX_PAGE_SIZE (AT24CS04_PAGE_SIZE)
448#define AT24CXXX_MAX_POLLS (AT24CS04_MAX_POLLS)
449#elif IS_USED(MODULE_AT24CS08)
450#define AT24CXXX_EEPROM_SIZE (AT24CS08_EEPROM_SIZE)
451#define AT24CXXX_PAGE_SIZE (AT24CS08_PAGE_SIZE)
452#define AT24CXXX_MAX_POLLS (AT24CS08_MAX_POLLS)
453#elif IS_USED(MODULE_AT24MAC)
454#define AT24CXXX_EEPROM_SIZE (AT24MAC_EEPROM_SIZE)
455#define AT24CXXX_PAGE_SIZE (AT24MAC_PAGE_SIZE)
456#define AT24CXXX_MAX_POLLS (AT24MAC_MAX_POLLS)
457#elif IS_USED(MODULE_M24C01)
458#define AT24CXXX_EEPROM_SIZE (M24C01_EEPROM_SIZE)
459#define AT24CXXX_PAGE_SIZE (M24C01_PAGE_SIZE)
460#define AT24CXXX_MAX_POLLS (M24C01_MAX_POLLS)
461#else /* minimal */
462#define AT24CXXX_EEPROM_SIZE (128U)
463#define AT24CXXX_PAGE_SIZE (4U)
464#define AT24CXXX_MAX_POLLS (6U)
465#endif
467
468#ifdef __cplusplus
469}
470#endif
471
Common macros and compiler attributes/pragmas configuration.