Struct imxrt_hal::lpi2c::Timing

source ·
pub struct Timing { /* private fields */ }
Expand description

LPI2C timing parameters.

The implementation computes BUSIDLE based on the clock configuration values, but you can override this after construction.

The simplest way to construct a Timing is to use ideal().

Implementations§

source§

impl Timing

source

pub const fn ideal(clock_hz: u32, clock_speed: ClockSpeed) -> Self

Compute timing parameters assuming an ideal I2C bus.

This constructor assumes that

  • the SDA / SCL rise times are negligible (take less than one functional clock cycle).
  • there’s no need for glitch filters (FLITSCL = FILTSDA = 0).

These assumptions may not hold true for high clock speeds and I2C bus loadings. If that’s the case, you may find it’s better to define timing parameters yourself.

Note that this function can run at compile time. Consider evaluating in a const context to avoid the possibility of panics.

Panics

After evaluating all prescalars, this function panics if the computed clock period cannot be represented in the 6 bits available for the configuration.

source

pub const fn new( clock_configuration: ClockConfiguration, prescaler: Prescaler ) -> Self

Computes timing parameters assuming an ideal circuit.

Define LPI2C timings by the clock configuration values, and a prescaler.

source

pub const fn clock_configuration(&self) -> ClockConfiguration

Returns the clock configuration.

source

pub const fn prescaler(&self) -> Prescaler

Returns the prescaler.

source

pub const fn override_busidle(self, busidle: u32) -> Self

Override the BUSIDLE parameter.

The minimum BUSIDLE is computed by CLKLO, SETHOLD, and CLKHI. Use this method to override the value.

Trait Implementations§

source§

impl Clone for Timing

source§

fn clone(&self) -> Timing

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Timing

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for Timing

source§

fn eq(&self, other: &Timing) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for Timing

source§

impl Eq for Timing

source§

impl StructuralEq for Timing

source§

impl StructuralPartialEq for Timing

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.