Add SAI initialization and board config.

This commit is contained in:
iabdalkader 2020-10-25 00:25:41 +02:00
parent 57934928a9
commit 5fe0460488
2 changed files with 74 additions and 0 deletions

View File

@ -268,6 +268,47 @@
#define SOFT_I2C_SPIN_DELAY 64 #define SOFT_I2C_SPIN_DELAY 64
// SAI4
#define AUDIO_SAI (SAI4_Block_A)
#define AUDIO_SAI_CK_PORT (GPIOE)
#define AUDIO_SAI_CK_PIN (GPIO_PIN_2)
#define AUDIO_SAI_CK_AF (GPIO_AF10_SAI4)
#define AUDIO_SAI_D1_PORT (GPIOB)
#define AUDIO_SAI_D1_PIN (GPIO_PIN_2)
#define AUDIO_SAI_D1_AF (GPIO_AF10_SAI4)
#define AUDIO_SAI_DMA_STREAM BDMA_Channel1
#define AUDIO_SAI_DMA_REQUEST BDMA_REQUEST_SAI4_A
#define AUDIO_SAI_DMA_IRQ BDMA_Channel1_IRQn
#define AUDIO_SAI_DMA_IRQHandler BDMA_Channel1_IRQHandler
#define AUDIO_SAI_CLK_ENABLE() __HAL_RCC_SAI4_CLK_ENABLE()
#define AUDIO_SAI_CLK_DISABLE() __HAL_RCC_SAI4_CLK_DISABLE()
#define AUDIO_SAI_DMA_CLK_ENABLE() __HAL_RCC_BDMA_CLK_ENABLE()
// SAI1
// Set SAI1 clock source in system ex: Sai1ClockSelection = RCC_SAI1CLKSOURCE_PLL;
// #define AUDIO_SAI (SAI1_Block_A)
//
// #define AUDIO_SAI_CK_PORT (GPIOE)
// #define AUDIO_SAI_CK_PIN (GPIO_PIN_2)
// #define AUDIO_SAI_CK_AF (GPIO_AF2_SAI1)
//
// #define AUDIO_SAI_D1_PORT (GPIOB)
// #define AUDIO_SAI_D1_PIN (GPIO_PIN_2)
// #define AUDIO_SAI_D1_AF (GPIO_AF2_SAI1)
//
// #define AUDIO_SAI_DMA_STREAM DMA2_Stream6
// #define AUDIO_SAI_DMA_REQUEST DMA_REQUEST_SAI1_A
// #define AUDIO_SAI_DMA_IRQ DMA2_Stream6_IRQn
// #define AUDIO_SAI_DMA_IRQHandler DMA2_Stream6_IRQHandler
//
// #define AUDIO_SAI_CLK_ENABLE() __HAL_RCC_SAI1_CLK_ENABLE()
// #define AUDIO_SAI_CLK_DISABLE() __HAL_RCC_SAI1_CLK_DISABLE()
// #define AUDIO_SAI_DMA_CLK_ENABLE() __HAL_RCC_DMA2_CLK_ENABLE()
// Enable additional GPIO banks for DRAM... // Enable additional GPIO banks for DRAM...
#define OMV_ENABLE_GPIO_BANK_F #define OMV_ENABLE_GPIO_BANK_F
#define OMV_ENABLE_GPIO_BANK_G #define OMV_ENABLE_GPIO_BANK_G

View File

@ -304,6 +304,39 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)
#endif #endif
} }
#if defined(AUDIO_SAI)
void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai)
{
GPIO_InitTypeDef GPIO_InitStruct;
if (hsai->Instance == AUDIO_SAI) {
AUDIO_SAI_CLK_ENABLE();
GPIO_InitStruct.Pin = AUDIO_SAI_CK_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Alternate = AUDIO_SAI_CK_AF;
HAL_GPIO_Init(AUDIO_SAI_CK_PORT, &GPIO_InitStruct);
GPIO_InitStruct.Pin = AUDIO_SAI_D1_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Alternate = AUDIO_SAI_D1_AF;
HAL_GPIO_Init(AUDIO_SAI_D1_PORT, &GPIO_InitStruct);
}
}
void HAL_SAI_MspDeInit(SAI_HandleTypeDef* hsai)
{
if (hsai->Instance == SAI4_Block_A) {
AUDIO_SAI_CLK_DISABLE();
HAL_GPIO_DeInit(AUDIO_SAI_CK_PORT, AUDIO_SAI_CK_PIN);
HAL_GPIO_DeInit(AUDIO_SAI_D1_PORT, AUDIO_SAI_D1_PIN);
}
}
#endif
void HAL_MspDeInit(void) void HAL_MspDeInit(void)
{ {