Type Definition rp2040_pac::i2c0::IC_SDA_HOLD[][src]

type IC_SDA_HOLD = Reg<u32, _IC_SDA_HOLD>;
Expand description

I2C SDA Hold Time Length Register\n\n The bits [15:0] of this register are used to control the hold time of SDA during transmit in both slave and master mode (after SCL goes from HIGH to LOW).\n\n The bits [23:16] of this register are used to extend the SDA transition (if any) whenever SCL is HIGH in the receiver in either master or slave mode.\n\n Writes to this register succeed only when IC_ENABLE[0]=0.\n\n The values in this register are in units of ic_clk period. The value programmed in IC_SDA_TX_HOLD must be greater than the minimum hold time in each mode one cycle in master mode, seven cycles in slave mode for the value to be implemented.\n\n The programmed SDA hold time during transmit (IC_SDA_TX_HOLD) cannot exceed at any time the duration of the low part of scl. Therefore the programmed value cannot be larger than N_SCL_LOW-2, where N_SCL_LOW is the duration of the low part of the scl period measured in ic_clk cycles.

This register you can read, reset, write, write_with_zero, modify. See API.

For information about available fields see ic_sda_hold module

Trait Implementations

Register IC_SDA_HOLD reset()’s with value 0x01

Register size

Reset value of the register

read() method returns ic_sda_hold::R reader structure

write(|w| ..) method takes ic_sda_hold::W writer structure