Merge pull request #1010 from betaflight/i2c_gpio

Increase GPIO speed to 50Mhz for i2c as per @digitalentity inav
This commit is contained in:
borisbstyle 2016-08-15 20:07:05 +02:00 committed by GitHub
commit 7bba6de63f
2 changed files with 8 additions and 4 deletions

View File

@ -53,19 +53,23 @@ static void i2cUnstick(IO_t scl, IO_t sda);
#ifndef I2C1_SDA #ifndef I2C1_SDA
#define I2C1_SDA PB9 #define I2C1_SDA PB9
#endif #endif
#else #else
#ifndef I2C1_SCL #ifndef I2C1_SCL
#define I2C1_SCL PB6 #define I2C1_SCL PB6
#endif #endif
#ifndef I2C1_SDA #ifndef I2C1_SDA
#define I2C1_SDA PB7 #define I2C1_SDA PB7
#endif #endif
#define IOCFG_I2C IO_CONFIG(GPIO_Mode_AF_OD, GPIO_Speed_50MHz)
#endif #endif
#ifndef I2C2_SCL #ifndef I2C2_SCL
#define I2C2_SCL PB10 #define I2C2_SCL PB10
#endif #endif
#ifndef I2C2_SDA #ifndef I2C2_SDA
#define I2C2_SDA PB11 #define I2C2_SDA PB11
#endif #endif
@ -398,8 +402,8 @@ void i2cInit(I2CDevice device)
IOConfigGPIOAF(scl, IOCFG_I2C, GPIO_AF_I2C); IOConfigGPIOAF(scl, IOCFG_I2C, GPIO_AF_I2C);
IOConfigGPIOAF(sda, IOCFG_I2C, GPIO_AF_I2C); IOConfigGPIOAF(sda, IOCFG_I2C, GPIO_AF_I2C);
#else #else
IOConfigGPIO(scl, IOCFG_AF_OD); IOConfigGPIO(scl, IOCFG_I2C);
IOConfigGPIO(sda, IOCFG_AF_OD); IOConfigGPIO(sda, IOCFG_I2C);
#endif #endif
I2C_DeInit(i2c->dev); I2C_DeInit(i2c->dev);

View File

@ -29,9 +29,9 @@
#ifndef SOFT_I2C #ifndef SOFT_I2C
#if defined(USE_I2C_PULLUP) #if defined(USE_I2C_PULLUP)
#define IOCFG_I2C IO_CONFIG(GPIO_Mode_AF, 0, GPIO_OType_OD, GPIO_PuPd_UP) #define IOCFG_I2C IO_CONFIG(GPIO_Mode_AF, GPIO_Speed_50MHz, GPIO_OType_OD, GPIO_PuPd_UP)
#else #else
#define IOCFG_I2C IOCFG_AF_OD #define IOCFG_I2C IO_CONFIG(GPIO_Mode_AF, GPIO_Speed_50MHz, GPIO_OType_OD, GPIO_PuPd_NOPULL)
#endif #endif
#define I2C_HIGHSPEED_TIMING 0x00500E30 // 1000 Khz, 72Mhz Clock, Analog Filter Delay ON, Setup 40, Hold 4. #define I2C_HIGHSPEED_TIMING 0x00500E30 // 1000 Khz, 72Mhz Clock, Analog Filter Delay ON, Setup 40, Hold 4.