Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/MarksBench/mb_24x256_512
Very simple MicroPython module/driver for Microchip 24x256 and 24x512 I2C EEPROM devices
https://github.com/MarksBench/mb_24x256_512
Last synced: 3 months ago
JSON representation
Very simple MicroPython module/driver for Microchip 24x256 and 24x512 I2C EEPROM devices
- Host: GitHub
- URL: https://github.com/MarksBench/mb_24x256_512
- Owner: MarksBench
- License: mit
- Created: 2021-06-04T06:28:55.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-06-04T07:12:50.000Z (over 3 years ago)
- Last Synced: 2024-04-22T13:31:30.262Z (7 months ago)
- Language: Python
- Size: 20.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-micropython - mb_24x256_512 - Very simple MicroPython module/driver for Microchip 24x256 and 24x512 I2C EEPROM devices. (Libraries / Storage)
README
# mb_24x256_512
Very simple MicroPython module/driver for Microchip 24x256 and 24x512 I2C EEPROM devices. Works with RP2040 (tested with Raspberry Pi Pico) but should also work with other boards that have hardware or software I2C and are capable of running MicroPython v1.15.This module is intended to make using the 24x256/512 as simple as possible. It has the following functions:
- Write a value (range 0-255) to an EEPROM address (range 0-32767(24x256) or 0-65535(24x512)).
- Read a value from an EEPROM address, values are returned as an integer (range 0-255)
- And that's it.Author: [email protected]
Version: 0.1, 2021-06-04
**NOTE(1): There is no guarantee that this software will work in the way you expect (or at all). Use at your own risk.
**NOTE(2): This driver is intended to be as simple as possible to use. *As a result it does byte writes instead of page writes. That means that each time you write a byte, the entire page is re-written in the EEPROM. This can/will wear the EEPROM significantly faster than doing a page write.* Other options are sequential writes or page writes but they are not part of this driver.
**NOTE(3): Thanks to KJRC on the Adafruit forums for testing and providing feedback and ideas
Prerequisites:
- RP2040 silicon (tested with Raspberry Pi Pico), should work with other MCUs with HW or SW I2C
- MicroPython v1.15
- 24x256/512 connected to hardware I2C pins, should also work with SW I2CUsage:
- Set up I2C (software or hardware)
- Create constructor:
thisMemoryChipDeviceName = mb_24x256_512.mb_24x256_512(i2c, i2c_address, EEPROM_DEVICE)
where i2c_address is a base-10 value that corresponds to the 7-bit i2c address of the EEPROM, and
where EEPROM_DEVICE is either "24x256" or "24x512"
- To write a single byte to an address:
thisMemoryChipDeviceName.write_byte(address, value)
- To read a single byte from an address:
thisMemoryChipDeviceName.read_byte(address), value is returned as an int of range 0-255.For more information, consult the Raspberry Pi Pico Micropython SDK documentation at:
https://datasheets.raspberrypi.org/pico/raspberry-pi-pico-python-sdk.pdf
and the MicroPython documentation at:
https://micropython.organd the Microchip 24x256/512 datasheets at:
https://www.microchip.com