1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-23 08:15:26 +03:00

Remove overclock (emf_avoidance) as unstable and unsafe feature (#420)

This commit is contained in:
Konstantin Sharlaimov 2016-08-02 09:20:53 +03:00 committed by GitHub
parent 9d8a0848ed
commit 9ef4de8209
5 changed files with 2 additions and 26 deletions

View file

@ -87,7 +87,7 @@ enum {
}; };
// Set system clock to 72 (HSE) or 64 (HSI) MHz // Set system clock to 72 (HSE) or 64 (HSI) MHz
void SetSysClock(bool overclock) void SetSysClock(void)
{ {
__IO uint32_t StartUpCounter = 0, status = 0, clocksrc = SRC_NONE; __IO uint32_t StartUpCounter = 0, status = 0, clocksrc = SRC_NONE;
__IO uint32_t *RCC_CRH = &GPIOC->CRH; __IO uint32_t *RCC_CRH = &GPIOC->CRH;
@ -149,14 +149,6 @@ void SetSysClock(bool overclock)
#endif #endif
switch (clocksrc) { switch (clocksrc) {
case SRC_HSE: case SRC_HSE:
if (overclock) {
if (RCC_CFGR_PLLMUL == RCC_CFGR_PLLMULL6)
RCC_CFGR_PLLMUL = RCC_CFGR_PLLMULL7;
else if (RCC_CFGR_PLLMUL == RCC_CFGR_PLLMULL9)
RCC_CFGR_PLLMUL = RCC_CFGR_PLLMULL10;
}
// overclock=false : PLL configuration: PLLCLK = HSE * 9 = 72 MHz || HSE * 6 = 72 MHz
// overclock=true : PLL configuration: PLLCLK = HSE * 10 = 80 MHz || HSE * 7 = 84 MHz
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMUL); RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMUL);
break; break;
case SRC_HSI: case SRC_HSI:

View file

@ -564,7 +564,6 @@ static void resetConf(void)
resetSerialConfig(&masterConfig.serialConfig); resetSerialConfig(&masterConfig.serialConfig);
masterConfig.looptime = 2000; masterConfig.looptime = 2000;
masterConfig.emf_avoidance = 0;
masterConfig.i2c_overclock = 0; masterConfig.i2c_overclock = 0;
masterConfig.gyroSync = 0; masterConfig.gyroSync = 0;
masterConfig.gyroSyncDenominator = 2; masterConfig.gyroSyncDenominator = 2;

View file

@ -27,7 +27,6 @@ typedef struct master_t {
uint32_t enabledFeatures; uint32_t enabledFeatures;
uint8_t persistentFlags; uint8_t persistentFlags;
uint16_t looptime; // imu loop time in us uint16_t looptime; // imu loop time in us
uint8_t emf_avoidance; // change pll settings to avoid noise in the uhf band
uint8_t i2c_overclock; // Overclock i2c Bus for faster IMU readings uint8_t i2c_overclock; // Overclock i2c Bus for faster IMU readings
uint8_t gyroSync; // Enable interrupt based loop uint8_t gyroSync; // Enable interrupt based loop
uint8_t gyroSyncDenominator; // Gyro sync Denominator uint8_t gyroSyncDenominator; // Gyro sync Denominator

View file

@ -556,7 +556,6 @@ typedef struct {
const clivalue_t valueTable[] = { const clivalue_t valueTable[] = {
{ "looptime", VAR_UINT16 | MASTER_VALUE, &masterConfig.looptime, .config.minmax = {0, 9000}, 0 }, { "looptime", VAR_UINT16 | MASTER_VALUE, &masterConfig.looptime, .config.minmax = {0, 9000}, 0 },
{ "emf_avoidance", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, &masterConfig.emf_avoidance, .config.lookup = { TABLE_OFF_ON }, 0 },
{ "i2c_overclock", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, &masterConfig.i2c_overclock, .config.lookup = { TABLE_OFF_ON }, 0 }, { "i2c_overclock", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, &masterConfig.i2c_overclock, .config.lookup = { TABLE_OFF_ON }, 0 },
{ "gyro_sync", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, &masterConfig.gyroSync, .config.lookup = { TABLE_OFF_ON } }, { "gyro_sync", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, &masterConfig.gyroSync, .config.lookup = { TABLE_OFF_ON } },
{ "gyro_sync_denom", VAR_UINT8 | MASTER_VALUE, &masterConfig.gyroSyncDenominator, .config.minmax = { 1, 32 } }, { "gyro_sync_denom", VAR_UINT8 | MASTER_VALUE, &masterConfig.gyroSyncDenominator, .config.minmax = { 1, 32 } },

View file

@ -124,14 +124,7 @@ void ledStripInit(ledConfig_t *ledConfigsToUse, hsvColor_t *colorsToUse, modeCol
void spektrumBind(rxConfig_t *rxConfig); void spektrumBind(rxConfig_t *rxConfig);
const sonarHcsr04Hardware_t *sonarGetHardwareConfiguration(currentSensor_e currentSensor); const sonarHcsr04Hardware_t *sonarGetHardwareConfiguration(currentSensor_e currentSensor);
#ifdef STM32F303xC
// from system_stm32f30x.c
void SetSysClock(void); void SetSysClock(void);
#endif
#ifdef STM32F10X
// from system_stm32f10x.c
void SetSysClock(bool overclock);
#endif
typedef enum { typedef enum {
SYSTEM_STATE_INITIALISING = 0, SYSTEM_STATE_INITIALISING = 0,
@ -179,14 +172,8 @@ void init(void)
SCB->CPACR = (0x3 << (10*2)) | (0x3 << (11*2)); SCB->CPACR = (0x3 << (10*2)) | (0x3 << (11*2));
#endif #endif
#ifdef STM32F303xC
SetSysClock(); SetSysClock();
#endif
#ifdef STM32F10X
// Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers
// Configure the Flash Latency cycles and enable prefetch buffer
SetSysClock(masterConfig.emf_avoidance);
#endif
i2cSetOverclock(masterConfig.i2c_overclock); i2cSetOverclock(masterConfig.i2c_overclock);
#ifdef USE_HARDWARE_REVISION_DETECTION #ifdef USE_HARDWARE_REVISION_DETECTION