From aa7c320821480d6174c591707838af63f796b236 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sun, 17 Jan 2016 22:44:07 +0100 Subject: [PATCH] [Horus] Shutdown noise removed --- radio/src/targets/horus/hal.h | 5 ++++- radio/src/targets/horus/pwr_driver.c | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index bff7b6ab1..083279e41 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -207,12 +207,15 @@ #define SD_SDIO_TRANSFER_CLK_DIV SD_SDIO_CLK_DIV(24000000) // Audio -#define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1ENR_DMA1EN) +#define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOI | RCC_AHB1Periph_GPIOA | RCC_AHB1ENR_DMA1EN) #define AUDIO_RCC_APB1Periph (RCC_APB1ENR_TIM6EN | RCC_APB1ENR_DACEN) #define AUDIO_TIMER TIM6 #define AUDIO_TIMER_DAC_IRQn TIM6_DAC_IRQn #define AUDIO_DMA_STREAM DMA1_Stream5 #define AUDIO_DMA_IRQn DMA1_Stream5_IRQn +#define AUDIO_SHUTDOWN_GPIO GPIOI +#define AUDIO_SHUTDOWN_GPIO_PIN GPIO_Pin_9 // PI.09 + // I2C Bus: TPL0401A-10DCK digital pot for volume control #define I2C_RCC_AHB1Periph RCC_AHB1Periph_GPIOB diff --git a/radio/src/targets/horus/pwr_driver.c b/radio/src/targets/horus/pwr_driver.c index f280f307a..c75f4a92d 100644 --- a/radio/src/targets/horus/pwr_driver.c +++ b/radio/src/targets/horus/pwr_driver.c @@ -35,8 +35,8 @@ void pwrInit() GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_Init(PWR_GPIO, &GPIO_InitStructure); - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_Init(GPIOI, &GPIO_InitStructure); + GPIO_InitStructure.GPIO_Pin = AUDIO_SHUTDOWN_GPIO_PIN; + GPIO_Init(AUDIO_SHUTDOWN_GPIO, &GPIO_InitStructure); // Init Module PWR GPIO_ResetBits(EXTMODULE_GPIO_PWR, EXTMODULE_GPIO_PIN_PWR); @@ -54,6 +54,16 @@ void pwrOn() void pwrOff() { + // Shutdown the Audio amp + GPIO_InitTypeDef GPIO_InitStructure; + GPIO_InitStructure.GPIO_Pin = AUDIO_SHUTDOWN_GPIO_PIN; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_Init(AUDIO_SHUTDOWN_GPIO, &GPIO_InitStructure); + GPIO_ResetBits(AUDIO_SHUTDOWN_GPIO, AUDIO_SHUTDOWN_GPIO_PIN); + GPIO_ResetBits(PWR_GPIO, PWR_GPIO_PIN_ON); }