1个不稳定版本
0.1.0 | 2020年7月14日 |
---|
#947 in 嵌入式开发
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