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_SCL_PIN (GPIO_PIN_8)
|
||||||
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
||||||
#define SCCB_TIMING (I2C_TIMING_STANDARD) // ignored
|
#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 */
|
/* DCMI */
|
||||||
#define DCMI_TIM (TIM1)
|
#define DCMI_TIM (TIM1)
|
||||||
|
|||||||
@ -106,6 +106,20 @@
|
|||||||
#define SCCB_SCL_PIN (GPIO_PIN_8)
|
#define SCCB_SCL_PIN (GPIO_PIN_8)
|
||||||
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
||||||
#define SCCB_TIMING (I2C_TIMING_STANDARD)
|
#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 */
|
/* DCMI */
|
||||||
#define DCMI_TIM (TIM1)
|
#define DCMI_TIM (TIM1)
|
||||||
|
|||||||
@ -155,6 +155,20 @@
|
|||||||
#define SCCB_SCL_PIN (GPIO_PIN_8)
|
#define SCCB_SCL_PIN (GPIO_PIN_8)
|
||||||
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
||||||
#define SCCB_TIMING (I2C_TIMING_STANDARD)
|
#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 */
|
/* DCMI */
|
||||||
#define DCMI_TIM (TIM1)
|
#define DCMI_TIM (TIM1)
|
||||||
|
|||||||
@ -164,6 +164,20 @@
|
|||||||
#define SCCB_SCL_PIN (GPIO_PIN_8)
|
#define SCCB_SCL_PIN (GPIO_PIN_8)
|
||||||
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
#define SCCB_SDA_PIN (GPIO_PIN_9)
|
||||||
#define SCCB_TIMING (I2C_TIMING_STANDARD)
|
#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 */
|
/* DCMI */
|
||||||
#define DCMI_TIM (TIM1)
|
#define DCMI_TIM (TIM1)
|
||||||
|
|||||||
@ -152,6 +152,21 @@
|
|||||||
#define SCCB_SCL_PIN (GPIO_PIN_6)
|
#define SCCB_SCL_PIN (GPIO_PIN_6)
|
||||||
#define SCCB_SDA_PIN (GPIO_PIN_7)
|
#define SCCB_SDA_PIN (GPIO_PIN_7)
|
||||||
#define SCCB_TIMING (I2C_TIMING_STANDARD)
|
#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_PIN (GPIO_PIN_4)
|
||||||
#define DCMI_PWDN_PORT (GPIOD)
|
#define DCMI_PWDN_PORT (GPIOD)
|
||||||
|
|||||||
@ -172,13 +172,36 @@ void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
|
|||||||
|
|
||||||
GPIO_InitStructure.Pin = SCCB_SDA_PIN;
|
GPIO_InitStructure.Pin = SCCB_SDA_PIN;
|
||||||
HAL_GPIO_Init(SCCB_PORT, &GPIO_InitStructure);
|
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)
|
void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
|
||||||
{
|
{
|
||||||
if (hi2c->Instance == SCCB_I2C) {
|
if (hi2c->Instance == SCCB_I2C) {
|
||||||
|
SCCB_FORCE_RESET();
|
||||||
|
SCCB_RELEASE_RESET();
|
||||||
SCCB_CLK_DISABLE();
|
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