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