diff options
| author | Limor "Ladyada" Fried <limor@ladyada.net> | 2020-02-05 12:45:15 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-05 12:45:15 -0500 |
| commit | 06b43069a1813b8fb286feada55ac473589c6d80 (patch) | |
| tree | 78a6f6fc1eb7cddf1f3f4db7b173b3598ff8286f | |
| parent | 433671f5eb1e4ac94615301c3b41c6a01935274a (diff) | |
| parent | b6da2fa17321305d957d54cd278910a81cfb9392 (diff) | |
Merge pull request #2588 from dhalbert/nrf-fix-i2c-speed
nrf: fix i2c frequency setting
| -rw-r--r-- | ports/nrf/common-hal/busio/I2C.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/ports/nrf/common-hal/busio/I2C.c b/ports/nrf/common-hal/busio/I2C.c index 219fbf447..37cb192df 100644 --- a/ports/nrf/common-hal/busio/I2C.c +++ b/ports/nrf/common-hal/busio/I2C.c @@ -137,11 +137,17 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self, const mcu_pin_obj_t * nrfx_twim_config_t config = NRFX_TWIM_DEFAULT_CONFIG(scl->number, sda->number); - // change freq. only if it's less than the default 400K - if (frequency < 100000) { - config.frequency = NRF_TWIM_FREQ_100K; - } else if (frequency < 250000) { +#if defined(TWIM_FREQUENCY_FREQUENCY_K1000) + if (frequency >= 1000000) { + config.frequency = NRF_TWIM_FREQ_1000K; + } else +#endif + if (frequency >= 400000) { + config.frequency = NRF_TWIM_FREQ_400K; + } else if (frequency >= 250000) { config.frequency = NRF_TWIM_FREQ_250K; + } else { + config.frequency = NRF_TWIM_FREQ_100K; } self->scl_pin_number = scl->number; |
