mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Add board config HW I2C for external sensors.
This commit is contained in:
parent
08520c5618
commit
353ca203ee
@ -108,6 +108,20 @@
|
||||
#define SCCB_SCL_PIN (GPIO_PIN_8)
|
||||
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
||||
#define SCCB_TIMING (I2C_TIMING_STANDARD) // ignored
|
||||
#define SCCB_FORCE_RESET() __HAL_RCC_I2C1_FORCE_RESET()
|
||||
#define SCCB_RELEASE_RESET() __HAL_RCC_I2C1_RELEASE_RESET()
|
||||
|
||||
/* FIR I2C */
|
||||
#define FIR_I2C (I2C2)
|
||||
#define FIR_I2C_AF (GPIO_AF4_I2C2)
|
||||
#define FIR_I2C_CLK_ENABLE() __I2C2_CLK_ENABLE()
|
||||
#define FIR_I2C_CLK_DISABLE() __I2C2_CLK_DISABLE()
|
||||
#define FIR_I2C_PORT (GPIOB)
|
||||
#define FIR_I2C_SCL_PIN (GPIO_PIN_10)
|
||||
#define FIR_I2C_SDA_PIN (GPIO_PIN_11)
|
||||
#define FIR_I2C_TIMING (I2C_TIMING_FULL)
|
||||
#define FIR_I2C_FORCE_RESET() __HAL_RCC_I2C2_FORCE_RESET()
|
||||
#define FIR_I2C_RELEASE_RESET() __HAL_RCC_I2C2_RELEASE_RESET()
|
||||
|
||||
/* DCMI */
|
||||
#define DCMI_TIM (TIM1)
|
||||
|
||||
@ -106,6 +106,20 @@
|
||||
#define SCCB_SCL_PIN (GPIO_PIN_8)
|
||||
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
||||
#define SCCB_TIMING (I2C_TIMING_STANDARD)
|
||||
#define SCCB_FORCE_RESET() __HAL_RCC_I2C1_FORCE_RESET()
|
||||
#define SCCB_RELEASE_RESET() __HAL_RCC_I2C1_RELEASE_RESET()
|
||||
|
||||
/* FIR I2C */
|
||||
#define FIR_I2C (I2C2)
|
||||
#define FIR_I2C_AF (GPIO_AF4_I2C2)
|
||||
#define FIR_I2C_CLK_ENABLE() __I2C2_CLK_ENABLE()
|
||||
#define FIR_I2C_CLK_DISABLE() __I2C2_CLK_DISABLE()
|
||||
#define FIR_I2C_PORT (GPIOB)
|
||||
#define FIR_I2C_SCL_PIN (GPIO_PIN_10)
|
||||
#define FIR_I2C_SDA_PIN (GPIO_PIN_11)
|
||||
#define FIR_I2C_TIMING (I2C_TIMING_FULL)
|
||||
#define FIR_I2C_FORCE_RESET() __HAL_RCC_I2C2_FORCE_RESET()
|
||||
#define FIR_I2C_RELEASE_RESET() __HAL_RCC_I2C2_RELEASE_RESET()
|
||||
|
||||
/* DCMI */
|
||||
#define DCMI_TIM (TIM1)
|
||||
|
||||
@ -155,6 +155,20 @@
|
||||
#define SCCB_SCL_PIN (GPIO_PIN_8)
|
||||
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
||||
#define SCCB_TIMING (I2C_TIMING_STANDARD)
|
||||
#define SCCB_FORCE_RESET() __HAL_RCC_I2C1_FORCE_RESET()
|
||||
#define SCCB_RELEASE_RESET() __HAL_RCC_I2C1_RELEASE_RESET()
|
||||
|
||||
/* FIR I2C */
|
||||
#define FIR_I2C (I2C2)
|
||||
#define FIR_I2C_AF (GPIO_AF4_I2C2)
|
||||
#define FIR_I2C_CLK_ENABLE() __I2C2_CLK_ENABLE()
|
||||
#define FIR_I2C_CLK_DISABLE() __I2C2_CLK_DISABLE()
|
||||
#define FIR_I2C_PORT (GPIOB)
|
||||
#define FIR_I2C_SCL_PIN (GPIO_PIN_10)
|
||||
#define FIR_I2C_SDA_PIN (GPIO_PIN_11)
|
||||
#define FIR_I2C_TIMING (I2C_TIMING_FULL)
|
||||
#define FIR_I2C_FORCE_RESET() __HAL_RCC_I2C2_FORCE_RESET()
|
||||
#define FIR_I2C_RELEASE_RESET() __HAL_RCC_I2C2_RELEASE_RESET()
|
||||
|
||||
/* DCMI */
|
||||
#define DCMI_TIM (TIM1)
|
||||
|
||||
@ -164,6 +164,20 @@
|
||||
#define SCCB_SCL_PIN (GPIO_PIN_8)
|
||||
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
||||
#define SCCB_TIMING (I2C_TIMING_STANDARD)
|
||||
#define SCCB_FORCE_RESET() __HAL_RCC_I2C1_FORCE_RESET()
|
||||
#define SCCB_RELEASE_RESET() __HAL_RCC_I2C1_RELEASE_RESET()
|
||||
|
||||
/* FIR I2C */
|
||||
#define FIR_I2C (I2C2)
|
||||
#define FIR_I2C_AF (GPIO_AF4_I2C2)
|
||||
#define FIR_I2C_CLK_ENABLE() __I2C2_CLK_ENABLE()
|
||||
#define FIR_I2C_CLK_DISABLE() __I2C2_CLK_DISABLE()
|
||||
#define FIR_I2C_PORT (GPIOB)
|
||||
#define FIR_I2C_SCL_PIN (GPIO_PIN_10)
|
||||
#define FIR_I2C_SDA_PIN (GPIO_PIN_11)
|
||||
#define FIR_I2C_TIMING (I2C_TIMING_FULL)
|
||||
#define FIR_I2C_FORCE_RESET() __HAL_RCC_I2C2_FORCE_RESET()
|
||||
#define FIR_I2C_RELEASE_RESET() __HAL_RCC_I2C2_RELEASE_RESET()
|
||||
|
||||
/* DCMI */
|
||||
#define DCMI_TIM (TIM1)
|
||||
|
||||
@ -152,6 +152,21 @@
|
||||
#define SCCB_SCL_PIN (GPIO_PIN_6)
|
||||
#define SCCB_SDA_PIN (GPIO_PIN_7)
|
||||
#define SCCB_TIMING (I2C_TIMING_STANDARD)
|
||||
#define SCCB_FORCE_RESET() __HAL_RCC_I2C1_FORCE_RESET()
|
||||
#define SCCB_RELEASE_RESET() __HAL_RCC_I2C1_RELEASE_RESET()
|
||||
|
||||
/* FIR I2C */
|
||||
// TODO which I2C can be used for external sensors ?
|
||||
#define FIR_I2C (I2C2)
|
||||
#define FIR_I2C_AF (GPIO_AF4_I2C2)
|
||||
#define FIR_I2C_CLK_ENABLE() __I2C2_CLK_ENABLE()
|
||||
#define FIR_I2C_CLK_DISABLE() __I2C2_CLK_DISABLE()
|
||||
#define FIR_I2C_PORT (GPIOB)
|
||||
#define FIR_I2C_SCL_PIN (GPIO_PIN_10)
|
||||
#define FIR_I2C_SDA_PIN (GPIO_PIN_11)
|
||||
#define FIR_I2C_TIMING (I2C_TIMING_FULL)
|
||||
#define FIR_I2C_FORCE_RESET() __HAL_RCC_I2C2_FORCE_RESET()
|
||||
#define FIR_I2C_RELEASE_RESET() __HAL_RCC_I2C2_RELEASE_RESET()
|
||||
|
||||
#define DCMI_PWDN_PIN (GPIO_PIN_4)
|
||||
#define DCMI_PWDN_PORT (GPIOD)
|
||||
|
||||
@ -172,13 +172,36 @@ void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
|
||||
|
||||
GPIO_InitStructure.Pin = SCCB_SDA_PIN;
|
||||
HAL_GPIO_Init(SCCB_PORT, &GPIO_InitStructure);
|
||||
} else if (hi2c->Instance == FIR_I2C) {
|
||||
/* Enable I2C clock */
|
||||
FIR_I2C_CLK_ENABLE();
|
||||
|
||||
/* Configure FIR I2C GPIOs */
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
GPIO_InitStructure.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
|
||||
GPIO_InitStructure.Mode = GPIO_MODE_AF_OD;
|
||||
GPIO_InitStructure.Alternate = FIR_I2C_AF;
|
||||
|
||||
GPIO_InitStructure.Pin = FIR_I2C_SCL_PIN;
|
||||
HAL_GPIO_Init(FIR_I2C_PORT, &GPIO_InitStructure);
|
||||
|
||||
GPIO_InitStructure.Pin = FIR_I2C_SDA_PIN;
|
||||
HAL_GPIO_Init(FIR_I2C_PORT, &GPIO_InitStructure);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
|
||||
{
|
||||
if (hi2c->Instance == SCCB_I2C) {
|
||||
SCCB_FORCE_RESET();
|
||||
SCCB_RELEASE_RESET();
|
||||
SCCB_CLK_DISABLE();
|
||||
} else if (hi2c->Instance == FIR_I2C) {
|
||||
FIR_I2C_FORCE_RESET();
|
||||
FIR_I2C_RELEASE_RESET();
|
||||
FIR_I2C_CLK_DISABLE();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user