#microchip #eeprom #embedded-hal-driver #mems #spi-driver

no-std microchip-eeprom-25x

一个与Microchip 25xxxx EEPROM通过SPI接口的平台无关的驱动程序

1 个不稳定版本

0.1.0 2020年7月14日

#756嵌入式开发

MIT/Apache

14KB
200

Microchip 25x嵌入式HAL SPI驱动crate

Rust HAL实现(使用SPI驱动程序)用于Microchip的25系列EEPROM芯片。

支持型号

型号 数据手册 密度(位) 页面大小(字节)
25LC080C 链接 8k 16
25LC080D 链接 8k 32
25LC160C 链接 16k 16
25LC160D 链接 16k 32
25LC320A 链接 32k 32
25LC640A 链接 64k 32
25LC128 链接 128k 64
25LC256 链接 256k 64
25LC512 链接 512k 128
25LC1024 链接 1024k 256

用法

在Cargo.toml中将作为依赖项包括

[dependencies.microchip-eeprom-25x]
version = "<version>"

        let mut e25x = microchip_eeprom_25x::Eeprom25x::new(spi, cs, wp ,hold)?;
        e25x.release_from_deep_sleep_and_get_manufacturer_id();
        // 24 bit address
        let address = 0x55aa00u32;
        let write_reg = microchip_eeprom_25x::e25x_write_from_address_command(address);
        let write_reg: [u8; 4] = write_reg.to_be_bytes();
        let mut buffer = [write_reg[0], write_reg[1], write_reg[2], write_reg[3], 0xFF, 0x10, 0xAA];
        // Set up write latch
        e25x.write_enable();
        let result = e25x.transfer(&mut buffer);
        let read_reg = microchip_eeprom_25x::e25x_read_from_address_command(0x55aa00u32);
        let read_reg: [u8; 4] = read_reg.to_be_bytes();
        let mut read_buffer = [read_reg[0], read_reg[1], read_reg[2], read_reg[3], 0, 0, 0];
        e25x.transfer(&mut buffer)?;
        assert_eq!(read_buffer[4], 0xFF);
        assert_eq!(read_buffer[5], 0x10);
        assert_eq!(read_buffer[6], 0xAA);

使用嵌入式HAL实现来获取SPI和GPIO OutputPin用于保持线、写保护线和芯片选择。

依赖项

~99KB