#microchip #eeprom #嵌入式HAL驱动 #mems #spi驱动

不依赖std microchip-eeprom-25lcxx

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

1个不稳定版本

0.1.0 2020年7月14日

#947 in 嵌入式开发

MIT/Apache

14KB
200

Microchip 25LCxx嵌入式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-25lcxx]
version = "<version>"

        let mut e25x = microchip_eeprom_25lcxx::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_25lcxx::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_25lcxx::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用于保持线、写保护线和片选。

依赖关系

~100KB