From eca7d9fd212a8795f278660cdad853088fa01186 Mon Sep 17 00:00:00 2001 From: ProDrone Date: Tue, 22 Sep 2015 17:56:34 +0200 Subject: [PATCH] Add CLI variable i2c_overclock Add i2c_overclock to master config and bump version Start using the i2c_overclock CLI setting to initialize i2c clock speed selector for F1 targets. --- src/main/config/config.c | 3 ++- src/main/config/config_master.h | 1 + src/main/io/serial_cli.c | 1 + src/main/main.c | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/config/config.c b/src/main/config/config.c index 289f2e571d..84bbaf4de2 100755 --- a/src/main/config/config.c +++ b/src/main/config/config.c @@ -128,7 +128,7 @@ static uint32_t activeFeaturesLatch = 0; static uint8_t currentControlRateProfileIndex = 0; controlRateConfig_t *currentControlRateProfile; -static const uint8_t EEPROM_CONF_VERSION = 108; +static const uint8_t EEPROM_CONF_VERSION = 109; static void resetAccelerometerTrims(flightDynamicsTrims_t *accelerometerTrims) { @@ -453,6 +453,7 @@ static void resetConf(void) resetSerialConfig(&masterConfig.serialConfig); masterConfig.emf_avoidance = 0; + masterConfig.i2c_overclock = 0; resetPidProfile(¤tProfile->pidProfile); diff --git a/src/main/config/config_master.h b/src/main/config/config_master.h index 723af0ccf8..d14345dc8e 100644 --- a/src/main/config/config_master.h +++ b/src/main/config/config_master.h @@ -26,6 +26,7 @@ typedef struct master_t { uint8_t mixerMode; uint32_t enabledFeatures; uint8_t emf_avoidance; // change pll settings to avoid noise in the uhf band + uint8_t i2c_overclock; // i2c clockspeed, 0 = 400kHz default (conform specs), 1 = 800kHz, 2 = 1200kHz motorMixer_t customMotorMixer[MAX_SUPPORTED_MOTORS]; #ifdef USE_SERVOS diff --git a/src/main/io/serial_cli.c b/src/main/io/serial_cli.c index 8452e3eb6a..d1023872c9 100644 --- a/src/main/io/serial_cli.c +++ b/src/main/io/serial_cli.c @@ -325,6 +325,7 @@ typedef struct { const clivalue_t valueTable[] = { { "emf_avoidance", VAR_UINT8 | MASTER_VALUE, &masterConfig.emf_avoidance, 0, 1 }, + { "i2c_overclock", VAR_UINT8 | MASTER_VALUE, &masterConfig.i2c_overclock, 0, 2 }, { "mid_rc", VAR_UINT16 | MASTER_VALUE, &masterConfig.rxConfig.midrc, 1200, 1700 }, { "min_check", VAR_UINT16 | MASTER_VALUE, &masterConfig.rxConfig.mincheck, PWM_RANGE_ZERO, PWM_RANGE_MAX }, diff --git a/src/main/main.c b/src/main/main.c index 95b6f63988..e563cd29e6 100644 --- a/src/main/main.c +++ b/src/main/main.c @@ -168,6 +168,7 @@ void init(void) // Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers // Configure the Flash Latency cycles and enable prefetch buffer SetSysClock(masterConfig.emf_avoidance); + i2cSetClockSelect(masterConfig.i2c_overclock); #endif #ifdef USE_HARDWARE_REVISION_DETECTION