summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLimor "Ladyada" Fried <limor@ladyada.net>2020-02-05 12:45:15 -0500
committerGitHub <noreply@github.com>2020-02-05 12:45:15 -0500
commit06b43069a1813b8fb286feada55ac473589c6d80 (patch)
tree78a6f6fc1eb7cddf1f3f4db7b173b3598ff8286f
parent433671f5eb1e4ac94615301c3b41c6a01935274a (diff)
parentb6da2fa17321305d957d54cd278910a81cfb9392 (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.c14
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;