Skip to content

Commit 208ec71

Browse files
authored
Merge pull request #5190 from jepler/issue4883
samd: diagnose out of range I2C frequency
2 parents f6d1caa + 26d3365 commit 208ec71

File tree

1 file changed

+7
-0
lines changed
  • ports/atmel-samd/common-hal/busio

1 file changed

+7
-0
lines changed

ports/atmel-samd/common-hal/busio/I2C.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,13 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
119119
// clkrate is always 0. baud_rate is in kHz.
120120

121121
// Frequency must be set before the I2C device is enabled.
122+
// The maximum frequency divisor gives a clock rate of around 48MHz/2/255
123+
// but set_baudrate does not diagnose this problem. (This is not the
124+
// exact cutoff, but no frequency well under 100kHz is available)
125+
if (frequency < 95000) {
126+
mp_raise_ValueError(translate("Unsupported baudrate"));
127+
}
128+
122129
if (i2c_m_sync_set_baudrate(&self->i2c_desc, 0, frequency / 1000) != ERR_NONE) {
123130
reset_pin_number(sda->number);
124131
reset_pin_number(scl->number);

0 commit comments

Comments
 (0)