Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
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
26
#include "
kernel_defines.h
"
27
28
#ifdef __cplusplus
29
extern
"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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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
468
#ifdef __cplusplus
469
}
470
#endif
471
kernel_defines.h
Common macros and compiler attributes/pragmas configuration.
Generated on Fri Jun 20 2025 21:02:36 by
1.9.1