pub struct BusTiming {
pub scl_pp_low: u8,
pub scl_i3c_high: u8,
pub scl_od_low: u8,
pub scl_i2c_high: u8,
pub bus_free: u8,
pub bus_idle: u8,
pub sda_hold_1_5: bool,
pub wait_time: u8,
}Expand description
SCL waveform timing in kernel clock cycles.
These values correspond to the fields in TIMINGR0 and TIMINGR1.
The ST CubeMX / I3C_CtrlTimingComputation utility can compute them from
desired bus frequencies; the defaults match the Nucleo-N657X0 I3C examples.
Fields§
§scl_pp_low: u8SCL low duration in I3C push-pull phases (TIMINGR0.SCLL_PP).
scl_i3c_high: u8SCL high duration for I3C messages (TIMINGR0.SCLH_I3C).
scl_od_low: u8SCL low duration in open-drain phases (TIMINGR0.SCLL_OD).
scl_i2c_high: u8SCL high duration for legacy I2C messages (TIMINGR0.SCLH_I2C).
bus_free: u8Bus free duration (TIMINGR1.FREE).
bus_idle: u8Bus idle / hot-join duration (TIMINGR1.AVAL).
sda_hold_1_5: boolSDA hold time: true = 1.5 cycles, false = 0.5 cycles (TIMINGR1.SDA_HD).
wait_time: u8Activity state of new controller (TIMINGR1.ASNCR), typically 0.
Trait Implementations§
impl Copy for BusTiming
impl Eq for BusTiming
impl StructuralPartialEq for BusTiming
Auto Trait Implementations§
impl Freeze for BusTiming
impl RefUnwindSafe for BusTiming
impl Send for BusTiming
impl Sync for BusTiming
impl Unpin for BusTiming
impl UnwindSafe for BusTiming
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more