Struct rp_pac::i2c::regs::IcSsSclHcnt
source · #[repr(transparent)]pub struct IcSsSclHcnt(pub u32);
Expand description
Standard Speed I2C Clock SCL High Count Register
Tuple Fields§
§0: u32
Implementations§
source§impl IcSsSclHcnt
impl IcSsSclHcnt
sourcepub const fn ic_ss_scl_hcnt(&self) -> u16
pub const fn ic_ss_scl_hcnt(&self) -> u16
This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. This register sets the SCL clock high-period count for standard speed. For more information, refer to ‘IC_CLK Frequency Configuration’. This register can be written only when the I2C interface is disabled which corresponds to the IC_ENABLE[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 6; hardware prevents values less than this being written, and if attempted results in 6 being set. For designs with APB_DATA_WIDTH = 8, the order of programming is important to ensure the correct operation of the DW_apb_i2c. The lower byte must be programmed first. Then the upper byte is programmed. NOTE: This register must not be programmed to a value higher than 65525, because DW_apb_i2c uses a 16-bit counter to flag an I2C bus idle condition when this counter reaches a value of IC_SS_SCL_HCNT + 10.
sourcepub fn set_ic_ss_scl_hcnt(&mut self, val: u16)
pub fn set_ic_ss_scl_hcnt(&mut self, val: u16)
This register must be set before any I2C bus transaction can take place to ensure proper I/O timing. This register sets the SCL clock high-period count for standard speed. For more information, refer to ‘IC_CLK Frequency Configuration’. This register can be written only when the I2C interface is disabled which corresponds to the IC_ENABLE[0] register being set to 0. Writes at other times have no effect. The minimum valid value is 6; hardware prevents values less than this being written, and if attempted results in 6 being set. For designs with APB_DATA_WIDTH = 8, the order of programming is important to ensure the correct operation of the DW_apb_i2c. The lower byte must be programmed first. Then the upper byte is programmed. NOTE: This register must not be programmed to a value higher than 65525, because DW_apb_i2c uses a 16-bit counter to flag an I2C bus idle condition when this counter reaches a value of IC_SS_SCL_HCNT + 10.
Trait Implementations§
source§impl Clone for IcSsSclHcnt
impl Clone for IcSsSclHcnt
source§fn clone(&self) -> IcSsSclHcnt
fn clone(&self) -> IcSsSclHcnt
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Default for IcSsSclHcnt
impl Default for IcSsSclHcnt
source§fn default() -> IcSsSclHcnt
fn default() -> IcSsSclHcnt
source§impl PartialEq for IcSsSclHcnt
impl PartialEq for IcSsSclHcnt
impl Copy for IcSsSclHcnt
impl Eq for IcSsSclHcnt
impl StructuralPartialEq for IcSsSclHcnt
Auto Trait Implementations§
impl Freeze for IcSsSclHcnt
impl RefUnwindSafe for IcSsSclHcnt
impl Send for IcSsSclHcnt
impl Sync for IcSsSclHcnt
impl Unpin for IcSsSclHcnt
impl UnwindSafe for IcSsSclHcnt
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)