no_stddriver for the Winbond W25Q256JV NOR flash chip.
- Async API using
embedded-hal-async - Blocking API using
embedded-hal - Implements
embedded-storage-asyncandembedded-storage - Optional
littlefs2adapter viaLittlefsAdapter - Optional
defmtsupport
This crate is based on the w25q32jv driver by tweedegolf.
use w25q256jv::W25q256jv;
let mut flash = W25q256jv::new(spi, hold, wp)?;
flash.blocking_erase_sector(0)?;
flash.blocking_write(0, b"hello")?;
let mut buf = [0u8; 5];
flash.blocking_read(0, &mut buf)?;use w25q256jv::{W25q256jv, SECTOR_SIZE};
let mut flash = W25q256jv::new(spi, hold, wp)?;
flash.erase_range(0, SECTOR_SIZE).await?;
flash.write(0, b"hello").await?;
let mut buf = [0u8; 5];
flash.read(0, &mut buf).await?;Enable the littlefs2 feature and wrap the flash driver in LittlefsAdapter:
use typenum::{U16, U256};
use w25q256jv::{LittlefsAdapter, W25q256jv};
type FlashStorage<'a, SPI, HOLD, WP> = LittlefsAdapter<'a, SPI, HOLD, WP, U256, U16>;
let mut flash = W25q256jv::new(spi, hold, wp)?;
let mut storage = FlashStorage::new(&mut flash);defmt: enablesdefmt::FormatforErrorlittlefs2: enablesLittlefsAdapterandlittlefs2integrationreadback-check: verifies writes and erases by reading back data (slower)
MIT