24 #ifndef __STM32F4_DISCOVERY_AUDIOCODEC_H
25 #define __STM32F4_DISCOVERY_AUDIOCODEC_H
60 #define AUDIO_MAL_MODE_NORMAL
66 #define AUDIO_MAL_DMA_IT_TC_EN
71 #define EVAL_AUDIO_IRQ_PREPRIO 0
72 #define EVAL_AUDIO_IRQ_SUBRIO 0
93 #define I2C_SPEED 100000
98 #define I2S_STANDARD_PHILLIPS
104 #define CODEC_MCLK_ENABLED
109 #define VERIFY_WRITTENDATA
116 #define AUDIO_RESET_GPIO_CLK RCC_AHB1Periph_GPIOD
117 #define AUDIO_RESET_PIN GPIO_Pin_4
118 #define AUDIO_RESET_GPIO GPIOD
121 #define CODEC_I2S SPI3
122 #define CODEC_I2S_CLK RCC_APB1Periph_SPI3
123 #define CODEC_I2S_ADDRESS 0x40003C0C
124 #define CODEC_I2S_GPIO_AF GPIO_AF_SPI3
125 #define CODEC_I2S_IRQ SPI3_IRQn
126 #define CODEC_I2S_GPIO_CLOCK (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOA)
127 #define CODEC_I2S_WS_PIN GPIO_Pin_4
128 #define CODEC_I2S_SCK_PIN GPIO_Pin_10
129 #define CODEC_I2S_SD_PIN GPIO_Pin_12
130 #define CODEC_I2S_MCK_PIN GPIO_Pin_7
131 #define CODEC_I2S_WS_PINSRC GPIO_PinSource4
132 #define CODEC_I2S_SCK_PINSRC GPIO_PinSource10
133 #define CODEC_I2S_SD_PINSRC GPIO_PinSource12
134 #define CODEC_I2S_MCK_PINSRC GPIO_PinSource7
135 #define CODEC_I2S_GPIO GPIOC
136 #define CODEC_I2S_WS_GPIO GPIOA
137 #define CODEC_I2S_MCK_GPIO GPIOC
138 #define Audio_I2S_IRQ_Handler SPI3_IRQ_Handler
141 #define AUDIO_MAL_DMA_PERIPH_DATA_SIZE DMA_PeripheralDataSize_HalfWord
142 #define AUDIO_MAL_DMA_MEM_DATA_SIZE DMA_MemoryDataSize_HalfWord
143 #define DMA_MAX_SZE 0xFFFF
146 #define DAC_DHR12L1_ADDRESS 0x4000740C
147 #define DAC_DHR12R1_ADDRESS 0x40007408
148 #define DAC_DHR8R1_ADDRESS 0x40007410
149 #define AUDIO_DAC_CHANNEL DAC_Channel_1
152 #define AUDIO_I2S_DMA_CLOCK RCC_AHB1Periph_DMA1
153 #define AUDIO_I2S_DMA_STREAM DMA1_Stream7
154 #define AUDIO_I2S_DMA_DREG CODEC_I2S_ADDRESS
155 #define AUDIO_I2S_DMA_CHANNEL DMA_Channel_0
156 #define AUDIO_I2S_DMA_IRQ DMA1_Stream7_IRQn
157 #define AUDIO_I2S_DMA_FLAG_TC DMA_FLAG_TCIF7
158 #define AUDIO_I2S_DMA_FLAG_HT DMA_FLAG_HTIF7
159 #define AUDIO_I2S_DMA_FLAG_FE DMA_FLAG_FEIF7
160 #define AUDIO_I2S_DMA_FLAG_TE DMA_FLAG_TEIF7
161 #define AUDIO_I2S_DMA_FLAG_DME DMA_FLAG_DMEIF7
163 #define Audio_MAL_I2S_IRQ_Handler DMA1_Stream7_IRQ_Handler
167 #define AUDIO_DAC_DMA_CLOCK RCC_AHB1Periph_DMA1
168 #define AUDIO_DAC_DMA_STREAM DMA1_Stream0
169 #define AUDIO_DAC_DMA_DREG DAC_DHR12L1_ADDRESS
170 #define AUDIO_DAC_DMA_CHANNEL DMA_Channel_0
171 #define AUDIO_DAC_DMA_IRQ DMA1_Stream0_IRQn
172 #define AUDIO_DAC_DMA_FLAG_TC DMA_FLAG_TCIF0
173 #define AUDIO_DAC_DMA_FLAG_HT DMA_FLAG_HTIF0
174 #define AUDIO_DAC_DMA_FLAG_FE DMA_FLAG_FEIF0
175 #define AUDIO_DAC_DMA_FLAG_TE DMA_FLAG_TEIF0
176 #define AUDIO_DAC_DMA_FLAG_DME DMA_FLAG_DMEIF0
178 #define Audio_MAL_DAC_IRQ_Handler DMA1_Stream0_IRQ_Handler
182 #define CODEC_I2C I2C1
183 #define CODEC_I2C_CLK RCC_APB1Periph_I2C1
184 #define CODEC_I2C_GPIO_CLOCK RCC_AHB1Periph_GPIOB
185 #define CODEC_I2C_GPIO_AF GPIO_AF_I2C1
186 #define CODEC_I2C_GPIO GPIOB
187 #define CODEC_I2C_SCL_PIN GPIO_Pin_6
188 #define CODEC_I2C_SDA_PIN GPIO_Pin_9
189 #define CODEC_I2S_SCL_PINSRC GPIO_PinSource6
190 #define CODEC_I2S_SDA_PINSRC GPIO_PinSource9
197 #define CODEC_FLAG_TIMEOUT ((uint32_t)0x1000)
198 #define CODEC_LONG_TIMEOUT ((uint32_t)(300 * CODEC_FLAG_TIMEOUT))
205 #define AUDIO_INTERFACE_I2S 1
206 #define AUDIO_INTERFACE_DAC 2
209 #define OUTPUT_DEVICE_SPEAKER 1
210 #define OUTPUT_DEVICE_HEADPHONE 2
211 #define OUTPUT_DEVICE_BOTH 3
212 #define OUTPUT_DEVICE_AUTO 4
215 #define DEFAULT_VOLMIN 0x00
216 #define DEFAULT_VOLMAX 0xFF
217 #define DEFAULT_VOLSTEP 0x04
219 #define AUDIO_PAUSE 0
220 #define AUDIO_RESUME 1
223 #define CODEC_PDWN_HW 1
224 #define CODEC_PDWN_SW 2
227 #define AUDIO_MUTE_ON 1
228 #define AUDIO_MUTE_OFF 0
237 #define VOLUME_CONVERT(x) ((Volume > 100)? 100:((uint8_t)((Volume * 255) / 100)))
238 #define DMA_MAX(x) (((x) <= DMA_MAX_SZE)? (x):DMA_MAX_SZE)
247 void EVAL_AUDIO_SetAudioInterface(uint32_t Interface);
248 uint32_t EVAL_AUDIO_Init(uint16_t OutputDevice, uint8_t Volume, uint32_t AudioFreq);
249 uint32_t EVAL_AUDIO_DeInit(
void);
250 uint32_t EVAL_AUDIO_Play(uint16_t* pBuffer, uint32_t Size);
251 uint32_t EVAL_AUDIO_PauseResume(uint32_t Cmd);
252 uint32_t EVAL_AUDIO_Stop(uint32_t CodecPowerDown_Mode);
253 uint32_t EVAL_AUDIO_VolumeCtl(uint8_t Volume);
254 uint32_t EVAL_AUDIO_Mute(uint32_t Command);
255 void Audio_MAL_Play(uint32_t Addr, uint32_t Size);
256 void DAC_Config(
void);
261 uint16_t EVAL_AUDIO_GetSampleCallBack(
void);
268 void EVAL_AUDIO_TransferComplete_CallBack(uint32_t pBuffer, uint32_t Size);
273 void EVAL_AUDIO_HalfTransfer_CallBack(uint32_t pBuffer, uint32_t Size);
277 void EVAL_AUDIO_Error_CallBack(
void* pData);
286 uint32_t Codec_TIMEOUT_UserCallback(
void);
This file contains all the functions prototypes for the GPIO firmware library.
CMSIS Cortex-M4 Device Peripheral Access Layer Header File. This file contains all the peripheral reg...