- Notifications
You must be signed in to change notification settings - Fork23
Platform agnostic Rust driver for 24x series serial EEPROM devices using embedded-hal
License
Apache-2.0, MIT licenses found
Licenses found
eldruin/eeprom24x-rs
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This is a platform agnostic Rust driver for the 24x series serial EEPROM,based on theembedded-hal traits.
This driver allows you to:
- Read a single byte from a memory address. See:
read_byte(). - Read a byte array starting on a memory address. See:
read_data(). - Read the current memory address (please read notes). See:
read_current_address(). - Write a byte to a memory address. See:
write_byte(). - Write a byte array (up to a memory page) to a memory address. See:
write_page(). - Read
CSx-variant devices' factory-programmed unique serial. See:read_unique_serial(). - Use the device in generic code via the
Eeprom24xTrait.
Can be used at least with the devices listed below.
These devices provides a number of bits of serial electrically erasable andprogrammable read only memory (EEPROM) organized as a number of words of 8 bitseach. The devices' cascadable feature allows up to 8 devices to share a common2-wire bus. The devices are optimized for use in many industrial and commercialapplications where low power and low voltage operation are essential.
| Device | Memory bits | 8-bit words | Page size | Datasheet |
|---|---|---|---|---|
| 24x00 | 128 bits | 16 | N/A | 24C00 |
| 24x01 | 1 Kbit | 128 | 8 bytes | AT24C01 |
| M24x01 | 1 Kbit | 128 | 16 bytes | M24C01 |
| 24x02 | 2 Kbit | 256 | 8 bytes | AT24C02 |
| M24x02 | 2 Kbit | 256 | 16 bytes | M24C02 |
| 24x04 | 4 Kbit | 512 | 16 bytes | AT24C04 |
| 24x08 | 8 Kbit | 1,024 | 16 bytes | AT24C08 |
| 24x16 | 16 Kbit | 2,048 | 16 bytes | AT24C16 |
| 24x32 | 32 Kbit | 4,096 | 32 bytes | AT24C32 |
| 24x64 | 64 Kbit | 8,192 | 32 bytes | AT24C64 |
| 24x128 | 128 Kbit | 16,384 | 64 bytes | AT24C128 |
| 24x256 | 256 Kbit | 32,768 | 64 bytes | AT24C256 |
| 24x512 | 512 Kbit | 65,536 | 128 bytes | AT24C512 |
| 24xM01 | 1 Mbit | 131,072 | 256 bytes | AT24CM01 |
| 24xM02 | 2 Mbit | 262,144 | 256 bytes | AT24CM02 |
To use this driver, import this crate and anembedded_hal implementation,then instantiate the appropriate device.In the following examples an instance of the device AT24C256 will be createdas an example. Other devices can be created with similar methods like:Eeprom24x::new_24x64(...).
Please find additional examples using hardware in this repository:driver-examples
use eeprom24x::{Eeprom24x,SlaveAddr};use embedded_hal::blocking::delay::DelayMs;use linux_embedded_hal::{Delay,I2cdev};fnmain(){let dev =I2cdev::new("/dev/i2c-1").unwrap();let address =SlaveAddr::default();letmut eeprom =Eeprom24x::new_24x256(dev, address);let memory_address =0x1234;let data =0xAB; eeprom.write_byte(memory_address, data).unwrap();Delay.delay_ms(5u16);let read_data = eeprom.read_byte(memory_address).unwrap();println!("Read memory address: {}, retrieved content: {}", memory_address,&read_data);let _dev = eeprom.destroy();// Get the I2C device back}
To enabledefmt (version0.3.x) support, when specifying the dependency oneeprom24x, add the feature "defmt-03".
[dependencies]eeprom24x = {version ="0.7.2",features = ["defmt-03"] }
For questions, issues, feature requests, and other changes, please file anissue in the github project.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE orhttp://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT orhttp://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submittedfor inclusion in the work by you, as defined in the Apache-2.0 license, shallbe dual licensed as above, without any additional terms or conditions.
About
Platform agnostic Rust driver for 24x series serial EEPROM devices using embedded-hal
Topics
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors6
Uh oh!
There was an error while loading.Please reload this page.