m95320

crates.io docs.rs

[embedded-hal] Rust driver for STMicroelectronics M95320 32-Kbit serial SPI bus EEPROM

some features not yet implemented, basic read and write is working

This create is mostly ripped-off from the spi-memory crate: https://github.com/jonas-schievink/spi-memory

Usage

Add an entry to your Cargo.toml:

toml [dependencies] m95320 = "1.0.2"

Example

Using rppal on a Raspberry Pi: ``` use rppal::gpio::Gpio; use rppal::spi::{Bus, Mode, SlaveSelect, Spi};

use m95320::prelude::*; use m95320::m95320::Flash;

const GPIOMEMORYCHIP_SELECT: u8 = 27;

fn main() { let gpio = Gpio::new().unwrap(); let cs = gpio.get(GPIOMEMORYCHIPSELECT).unwrap().intooutput(); let spi = Spi::new(Bus::Spi0, SlaveSelect::Ss0, 10000000, Mode::Mode0).unwrap();

let mut flash = Flash::init(spi, cs).unwrap();

let status = flash.read_status().expect("get status");
println!("status registers: {:?}", status);

let mut page_buffer: [u8; 32] = [0x0; 32];

flash.erase_sectors(0, 2).expect("erase");

let hello = String::from("hello memory!");
for (i, byte) in hello.as_bytes().into_iter().enumerate() {
    page_buffer[i] = byte.clone();
}

flash.write_bytes(0, &mut page_buffer).expect("write");

flash.read(0, &mut page_buffer).expect("read");
println!("bytes read: {:?}", page_buffer);

} ```

Check the API Documentation for how to use the crate's functionality.