From 86228c599f638e2ce0291a43d20a72eb0b8e1ed3 Mon Sep 17 00:00:00 2001 From: Rob Tillaart Date: Fri, 1 Aug 2025 11:43:10 +0200 Subject: [PATCH] update readme.md (#84) - update readme.md --- CHANGELOG.md | 4 ++++ I2C_eeprom.cpp | 2 +- I2C_eeprom.h | 4 ++-- LICENSE | 2 +- README.md | 54 ++++++++++++++++++++++++++++++++-------------- library.json | 2 +- library.properties | 2 +- 7 files changed, 48 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 430875b..f30010e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [1.9.3] - 2025-08-01 +- update readme.md + + ## [1.9.2] - 2024-11-25 - fix #79, wrong default in constructor - kudos to ekinohito diff --git a/I2C_eeprom.cpp b/I2C_eeprom.cpp index 9c317d5..55094f5 100644 --- a/I2C_eeprom.cpp +++ b/I2C_eeprom.cpp @@ -1,7 +1,7 @@ // // FILE: I2C_eeprom.cpp // AUTHOR: Rob Tillaart -// VERSION: 1.9.2 +// VERSION: 1.9.3 // PURPOSE: Arduino Library for external I2C EEPROM 24LC256 et al. // URL: https://github.com/RobTillaart/I2C_EEPROM diff --git a/I2C_eeprom.h b/I2C_eeprom.h index 9dc9237..8cf796b 100644 --- a/I2C_eeprom.h +++ b/I2C_eeprom.h @@ -2,7 +2,7 @@ // // FILE: I2C_eeprom.h // AUTHOR: Rob Tillaart -// VERSION: 1.9.2 +// VERSION: 1.9.3 // PURPOSE: Arduino Library for external I2C EEPROM 24LC256 et al. // URL: https://github.com/RobTillaart/I2C_EEPROM @@ -11,7 +11,7 @@ #include "Wire.h" -#define I2C_EEPROM_VERSION (F("1.9.2")) +#define I2C_EEPROM_VERSION (F("1.9.3")) #define I2C_DEVICESIZE_24LC512 65536 #define I2C_DEVICESIZE_24LC256 32768 diff --git a/LICENSE b/LICENSE index 09c29af..35dd82b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2011-2024 Rob Tillaart +Copyright (c) 2011-2025 Rob Tillaart Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 61a08b6..68bd63a 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Arduino Library for external I2C EEPROM - 24LC512, 24LC256, 24LC64/32/16/08/04/0 ## Description -This library is to access external I2C EEPROM up to 64KB (= 512 Kbit) in size. +This library is to access the external I2C EEPROM up to 64KB (= 512 Kbit) in size. MicroChip 24LC512, 24LC256, 24LC64, 24LC32, 24LC16, 24LC08, 24LC04, 24LC02, 24LC01 and equivalents. Also confirmed working M24512-W, M24512-R, M24512-DF (See #68). @@ -50,22 +50,48 @@ before calling **I2C_eeprom.begin()**. ### Related - https://github.com/RobTillaart/I2C_24LC1025 +- https://github.com/RobTillaart/I2C_CAT24M01 +- https://github.com/RobTillaart/I2C_EEPROM ## Schematic ```cpp - +---U---+ - A0 | 1 8 | VCC = 1.7V to 5.5V - A1 | 2 7 | WP = write protect pin - A2 | 3 6 | SCL = I2C clock - GND | 4 5 | SDA = I2C data - +-------+ - -Default address = 0x50 .. 0x57 depending on three address lines (A0, A1, A2). + +---U---+ + A0 | 1 8 | VCC = 1.7V to 5.5V + A1 | 2 7 | WP = write protect pin + A2 | 3 6 | SCL = I2C clock + (VSS) GND | 4 5 | SDA = I2C data + +-------+ ``` +## I2C + +I2C address = 0x50 .. 0x57 depending on three address lines (A0, A1, A2). + +Read the datasheet, section device addressing. + + +### I2C multiplexing + +Sometimes you need to control more devices than possible with the default +address range the device provides. +This is possible with an I2C multiplexer e.g. TCA9548 which creates up +to eight channels (think of it as I2C subnets) which can use the complete +address range of the device. + +Drawback of using a multiplexer is that it takes more administration in +your code e.g. which device is on which channel. +This will slow down the access, which must be taken into account when +deciding which devices are on which channel. +Also note that switching between channels will slow down other devices +too if they are behind the multiplexer. + +- https://github.com/RobTillaart/TCA9548 + + + ## Interface ```cpp @@ -88,9 +114,9 @@ constructor, with optional Wire interface. Furthermore it checks if the deviceAddress is available on the I2C bus. Returns true if deviceAddress is found on the bus, false otherwise. Optionally one can set the **WP** writeProtect pin. (see section below). -If the **WP** pin is defined the default will be to **not** allow writing. +If the **WP** pin is defined, the default behaviour will be to **not** allow writing. - **bool isConnected()** test to see if deviceAddress is found on the bus. -- **uint8_t getAddress()** returns device address set in the constructor. +- **uint8_t getAddress()** returns deviceAddress set in the constructor. ### Write functions @@ -243,13 +269,9 @@ Manual control ## Limitation -The library does not offer multiple EEPROMS as one continuous storage device. +The library does not offer multiple EEPROMS as one continuous storage device. -## Operation - -See examples - ## Future #### Must diff --git a/library.json b/library.json index c2eb02a..d251b2f 100644 --- a/library.json +++ b/library.json @@ -15,7 +15,7 @@ "type": "git", "url": "https://github.com/RobTillaart/I2C_EEPROM.git" }, - "version": "1.9.2", + "version": "1.9.3", "license": "MIT", "frameworks": "*", "platforms": "*", diff --git a/library.properties b/library.properties index f459f76..a69064c 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=I2C_EEPROM -version=1.9.2 +version=1.9.3 author=Rob Tillaart maintainer=Rob Tillaart sentence=Library for I2C EEPROMS