pub struct Eeprom<'a, I2C> {
i2c: I2C,
config: EepromConfig,
busy: bool,
_phantom: PhantomData<&'a ()>,
}Expand description
EEPROM driver handle
Fields§
§i2c: I2C§config: EepromConfig§busy: bool§_phantom: PhantomData<&'a ()>Implementations§
Source§impl<'a, I2C> Eeprom<'a, I2C>where
I2C: I2c<'a>,
impl<'a, I2C> Eeprom<'a, I2C>where
I2C: I2c<'a>,
Sourcepub fn new(i2c: I2C, config: EepromConfig) -> Result<Self, EepromError>
pub fn new(i2c: I2C, config: EepromConfig) -> Result<Self, EepromError>
Create a new EEPROM driver instance
Sourcepub fn is_device_ready(&mut self) -> Result<(), EepromError>
pub fn is_device_ready(&mut self) -> Result<(), EepromError>
Check if the EEPROM device is ready
Sourcepub fn read(&mut self, address: u32, data: &mut [u8]) -> Result<(), EepromError>
pub fn read(&mut self, address: u32, data: &mut [u8]) -> Result<(), EepromError>
Read data from EEPROM
Sourcepub fn write(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
pub fn write(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
Write data to EEPROM
Sourcefn write_pages(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
fn write_pages(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
Write data with page boundary handling
Sourcefn write_chunk(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
fn write_chunk(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
Write a single chunk (within page boundary)
Sourcefn read_with_8bit_address(
&mut self,
address: u32,
data: &mut [u8],
) -> Result<(), EepromError>
fn read_with_8bit_address( &mut self, address: u32, data: &mut [u8], ) -> Result<(), EepromError>
Read with 8-bit addressing
Sourcefn read_with_16bit_address(
&mut self,
address: u32,
data: &mut [u8],
) -> Result<(), EepromError>
fn read_with_16bit_address( &mut self, address: u32, data: &mut [u8], ) -> Result<(), EepromError>
Read with 16-bit addressing
Sourcefn read_4kbit(
&mut self,
address: u32,
data: &mut [u8],
) -> Result<(), EepromError>
fn read_4kbit( &mut self, address: u32, data: &mut [u8], ) -> Result<(), EepromError>
Read from 4Kbit EEPROM (uses device address bits)
Sourcefn read_8kbit(
&mut self,
address: u32,
data: &mut [u8],
) -> Result<(), EepromError>
fn read_8kbit( &mut self, address: u32, data: &mut [u8], ) -> Result<(), EepromError>
Read from 8Kbit EEPROM (uses device address bits)
Sourcefn read_16kbit(
&mut self,
address: u32,
data: &mut [u8],
) -> Result<(), EepromError>
fn read_16kbit( &mut self, address: u32, data: &mut [u8], ) -> Result<(), EepromError>
Read from 16Kbit EEPROM (uses device address bits)
Sourcefn write_with_8bit_address(
&mut self,
address: u32,
data: &[u8],
) -> Result<(), EepromError>
fn write_with_8bit_address( &mut self, address: u32, data: &[u8], ) -> Result<(), EepromError>
Write with 8-bit addressing
Sourcefn write_with_16bit_address(
&mut self,
address: u32,
data: &[u8],
) -> Result<(), EepromError>
fn write_with_16bit_address( &mut self, address: u32, data: &[u8], ) -> Result<(), EepromError>
Write with 16-bit addressing
Sourcefn write_4kbit(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
fn write_4kbit(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
Write to 4Kbit EEPROM
Sourcefn write_8kbit(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
fn write_8kbit(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
Write to 8Kbit EEPROM
Sourcefn write_16kbit(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
fn write_16kbit(&mut self, address: u32, data: &[u8]) -> Result<(), EepromError>
Write to 16Kbit EEPROM
Sourcefn delay_ms(&self, _ms: u32)
fn delay_ms(&self, _ms: u32)
Simple delay function - in real implementation, this would use the system timer
Sourcepub fn config(&self) -> &EepromConfig
pub fn config(&self) -> &EepromConfig
Get the EEPROM configuration
Source§impl<'a, I2C> Eeprom<'a, I2C>where
I2C: I2c<'a>,
Convenience functions for common operations
impl<'a, I2C> Eeprom<'a, I2C>where
I2C: I2c<'a>,
Convenience functions for common operations
Sourcepub fn write_byte(&mut self, address: u32, data: u8) -> Result<(), EepromError>
pub fn write_byte(&mut self, address: u32, data: u8) -> Result<(), EepromError>
Write a single byte
Sourcepub fn read_u16(&mut self, address: u32) -> Result<u16, EepromError>
pub fn read_u16(&mut self, address: u32) -> Result<u16, EepromError>
Read a u16 value (big-endian)
Sourcepub fn write_u16(&mut self, address: u32, data: u16) -> Result<(), EepromError>
pub fn write_u16(&mut self, address: u32, data: u16) -> Result<(), EepromError>
Write a u16 value (big-endian)
Sourcepub fn read_u32(&mut self, address: u32) -> Result<u32, EepromError>
pub fn read_u32(&mut self, address: u32) -> Result<u32, EepromError>
Read a u32 value (big-endian)
Sourcepub fn write_u32(&mut self, address: u32, data: u32) -> Result<(), EepromError>
pub fn write_u32(&mut self, address: u32, data: u32) -> Result<(), EepromError>
Write a u32 value (big-endian)
Sourcepub fn clear_range(
&mut self,
start_address: u32,
length: u32,
) -> Result<(), EepromError>
pub fn clear_range( &mut self, start_address: u32, length: u32, ) -> Result<(), EepromError>
Clear (fill with 0xFF) a range of EEPROM