Lines Matching refs:hmdf
215 static void MDF_AcqStart(MDF_HandleTypeDef *const hmdf, const MDF_FilterConfigTypeDef *const pF…
249 HAL_StatusTypeDef HAL_MDF_Init(MDF_HandleTypeDef *hmdf) in HAL_MDF_Init() argument
254 if (hmdf == NULL) in HAL_MDF_Init()
261 assert_param(IS_MDF_ALL_INSTANCE(hmdf->Instance)); in HAL_MDF_Init()
262 assert_param(IS_MDF_FILTER_BITSTREAM(hmdf->Init.FilterBistream)); in HAL_MDF_Init()
263 assert_param(IS_FUNCTIONAL_STATE(hmdf->Init.SerialInterface.Activation)); in HAL_MDF_Init()
274 hmdf->SndLvCallback = HAL_MDF_SndLvlCallback; in HAL_MDF_Init()
275 hmdf->SadCallback = HAL_MDF_SadCallback; in HAL_MDF_Init()
276 hmdf->AcqCpltCallback = HAL_MDF_AcqCpltCallback; in HAL_MDF_Init()
277 hmdf->AcqHalfCpltCallback = HAL_MDF_AcqHalfCpltCallback; in HAL_MDF_Init()
278 hmdf->ErrorCallback = HAL_MDF_ErrorCallback; in HAL_MDF_Init()
281 if (hmdf->MspInitCallback == NULL) in HAL_MDF_Init()
283 hmdf->MspInitCallback = HAL_MDF_MspInit; in HAL_MDF_Init()
285 hmdf->MspInitCallback(hmdf); in HAL_MDF_Init()
288 HAL_MDF_MspInit(hmdf); in HAL_MDF_Init()
301 assert_param(IS_MDF_PROC_CLOCK_DIVIDER(hmdf->Init.CommonParam.ProcClockDivider)); in HAL_MDF_Init()
302 assert_param(IS_FUNCTIONAL_STATE(hmdf->Init.CommonParam.OutputClock.Activation)); in HAL_MDF_Init()
304 ADF1->CKGCR |= ((hmdf->Init.CommonParam.ProcClockDivider - 1U) << MDF_CKGCR_PROCDIV_Pos); in HAL_MDF_Init()
305 if (hmdf->Init.CommonParam.OutputClock.Activation == ENABLE) in HAL_MDF_Init()
307 assert_param(IS_MDF_OUTPUT_CLOCK_PINS(hmdf->Init.CommonParam.OutputClock.Pins)); in HAL_MDF_Init()
308 assert_param(IS_MDF_OUTPUT_CLOCK_DIVIDER(hmdf->Init.CommonParam.OutputClock.Divider)); in HAL_MDF_Init()
309 assert_param(IS_FUNCTIONAL_STATE(hmdf->Init.CommonParam.OutputClock.Trigger.Activation)); in HAL_MDF_Init()
310 … ADF1->CKGCR |= (((hmdf->Init.CommonParam.OutputClock.Divider - 1U) << MDF_CKGCR_CCKDIV_Pos) | in HAL_MDF_Init()
311 hmdf->Init.CommonParam.OutputClock.Pins | in HAL_MDF_Init()
312 (hmdf->Init.CommonParam.OutputClock.Pins >> 4U)); in HAL_MDF_Init()
313 if (hmdf->Init.CommonParam.OutputClock.Trigger.Activation == ENABLE) in HAL_MDF_Init()
315 …assert_param(IS_MDF_OUTPUT_CLOCK_TRIGGER_SOURCE(hmdf->Init.CommonParam.OutputClock.Trigger.Source)… in HAL_MDF_Init()
316 … assert_param(IS_MDF_OUTPUT_CLOCK_TRIGGER_EDGE(hmdf->Init.CommonParam.OutputClock.Trigger.Edge)); in HAL_MDF_Init()
317 ADF1->CKGCR |= (hmdf->Init.CommonParam.OutputClock.Trigger.Source | in HAL_MDF_Init()
318 hmdf->Init.CommonParam.OutputClock.Trigger.Edge | in HAL_MDF_Init()
328 if ((status == HAL_OK) && (hmdf->Init.SerialInterface.Activation == ENABLE)) in HAL_MDF_Init()
331 if ((hmdf->Instance->SITFCR & MDF_SITFCR_SITFACTIVE) != 0U) in HAL_MDF_Init()
338 assert_param(IS_MDF_SITF_MODE(hmdf->Init.SerialInterface.Mode)); in HAL_MDF_Init()
339 assert_param(IS_MDF_SITF_CLOCK_SOURCE(hmdf->Init.SerialInterface.ClockSource)); in HAL_MDF_Init()
340 assert_param(IS_MDF_SITF_THRESHOLD(hmdf->Init.SerialInterface.Threshold)); in HAL_MDF_Init()
341 hmdf->Instance->SITFCR = 0U; in HAL_MDF_Init()
342 hmdf->Instance->SITFCR |= ((hmdf->Init.SerialInterface.Threshold << MDF_SITFCR_STH_Pos) | in HAL_MDF_Init()
343 … hmdf->Init.SerialInterface.Mode | hmdf->Init.SerialInterface.ClockSource); in HAL_MDF_Init()
346 hmdf->Instance->SITFCR |= MDF_SITFCR_SITFEN; in HAL_MDF_Init()
353 hmdf->Instance->BSMXCR &= ~(MDF_BSMXCR_BSSEL); in HAL_MDF_Init()
354 hmdf->Instance->BSMXCR |= hmdf->Init.FilterBistream; in HAL_MDF_Init()
357 v_mdfHandle = hmdf; in HAL_MDF_Init()
360 hmdf->ErrorCode = MDF_ERROR_NONE; in HAL_MDF_Init()
361 hmdf->State = HAL_MDF_STATE_READY; in HAL_MDF_Init()
375 HAL_StatusTypeDef HAL_MDF_DeInit(MDF_HandleTypeDef *hmdf) in HAL_MDF_DeInit() argument
380 if (hmdf == NULL) in HAL_MDF_DeInit()
387 assert_param(IS_MDF_ALL_INSTANCE(hmdf->Instance)); in HAL_MDF_DeInit()
397 if ((hmdf->Instance->SADCR & MDF_SADCR_SADACTIVE) != 0U) in HAL_MDF_DeInit()
399 hmdf->Instance->SADCR &= ~(MDF_SADCR_SADEN); in HAL_MDF_DeInit()
403 if ((hmdf->Instance->DFLTCR & MDF_DFLTCR_DFLTACTIVE) != 0U) in HAL_MDF_DeInit()
405 hmdf->Instance->DFLTCR &= ~(MDF_DFLTCR_DFLTEN); in HAL_MDF_DeInit()
409 if ((hmdf->Instance->SITFCR & MDF_SITFCR_SITFACTIVE) != 0U) in HAL_MDF_DeInit()
411 hmdf->Instance->SITFCR &= ~(MDF_SITFCR_SITFEN); in HAL_MDF_DeInit()
415 hmdf->Instance->DFLTIER = 0U; in HAL_MDF_DeInit()
416 hmdf->Instance->DFLTISR = 0xFFFFFFFFU; in HAL_MDF_DeInit()
423 if (hmdf->MspDeInitCallback == NULL) in HAL_MDF_DeInit()
425 hmdf->MspDeInitCallback = HAL_MDF_MspDeInit; in HAL_MDF_DeInit()
427 hmdf->MspDeInitCallback(hmdf); in HAL_MDF_DeInit()
429 HAL_MDF_MspDeInit(hmdf); in HAL_MDF_DeInit()
436 hmdf->State = HAL_MDF_STATE_RESET; in HAL_MDF_DeInit()
449 __weak void HAL_MDF_MspInit(MDF_HandleTypeDef *hmdf) in HAL_MDF_MspInit() argument
452 UNUSED(hmdf); in HAL_MDF_MspInit()
463 __weak void HAL_MDF_MspDeInit(MDF_HandleTypeDef *hmdf) in HAL_MDF_MspDeInit() argument
466 UNUSED(hmdf); in HAL_MDF_MspDeInit()
487 HAL_StatusTypeDef HAL_MDF_RegisterCallback(MDF_HandleTypeDef *hmdf, in HAL_MDF_RegisterCallback() argument
497 hmdf->ErrorCode |= MDF_ERROR_INVALID_CALLBACK; in HAL_MDF_RegisterCallback()
502 if (hmdf->State == HAL_MDF_STATE_READY) in HAL_MDF_RegisterCallback()
507 hmdf->AcqCpltCallback = pCallback; in HAL_MDF_RegisterCallback()
510 hmdf->AcqHalfCpltCallback = pCallback; in HAL_MDF_RegisterCallback()
513 hmdf->SadCallback = pCallback; in HAL_MDF_RegisterCallback()
516 hmdf->ErrorCallback = pCallback; in HAL_MDF_RegisterCallback()
519 hmdf->MspInitCallback = pCallback; in HAL_MDF_RegisterCallback()
522 hmdf->MspDeInitCallback = pCallback; in HAL_MDF_RegisterCallback()
526 hmdf->ErrorCode |= MDF_ERROR_INVALID_CALLBACK; in HAL_MDF_RegisterCallback()
531 else if (hmdf->State == HAL_MDF_STATE_RESET) in HAL_MDF_RegisterCallback()
536 hmdf->MspInitCallback = pCallback; in HAL_MDF_RegisterCallback()
539 hmdf->MspDeInitCallback = pCallback; in HAL_MDF_RegisterCallback()
543 hmdf->ErrorCode |= MDF_ERROR_INVALID_CALLBACK; in HAL_MDF_RegisterCallback()
551 hmdf->ErrorCode |= MDF_ERROR_INVALID_CALLBACK; in HAL_MDF_RegisterCallback()
574 HAL_StatusTypeDef HAL_MDF_UnRegisterCallback(MDF_HandleTypeDef *hmdf, in HAL_MDF_UnRegisterCallback() argument
579 if (hmdf->State == HAL_MDF_STATE_READY) in HAL_MDF_UnRegisterCallback()
584 hmdf->AcqCpltCallback = HAL_MDF_AcqCpltCallback; in HAL_MDF_UnRegisterCallback()
587 hmdf->AcqHalfCpltCallback = HAL_MDF_AcqHalfCpltCallback; in HAL_MDF_UnRegisterCallback()
590 hmdf->SadCallback = HAL_MDF_SadCallback; in HAL_MDF_UnRegisterCallback()
593 hmdf->ErrorCallback = HAL_MDF_ErrorCallback; in HAL_MDF_UnRegisterCallback()
596 hmdf->MspInitCallback = HAL_MDF_MspInit; in HAL_MDF_UnRegisterCallback()
599 hmdf->MspDeInitCallback = HAL_MDF_MspDeInit; in HAL_MDF_UnRegisterCallback()
603 hmdf->ErrorCode |= MDF_ERROR_INVALID_CALLBACK; in HAL_MDF_UnRegisterCallback()
608 else if (hmdf->State == HAL_MDF_STATE_RESET) in HAL_MDF_UnRegisterCallback()
613 hmdf->MspInitCallback = HAL_MDF_MspInit; in HAL_MDF_UnRegisterCallback()
616 hmdf->MspDeInitCallback = HAL_MDF_MspDeInit; in HAL_MDF_UnRegisterCallback()
620 hmdf->ErrorCode |= MDF_ERROR_INVALID_CALLBACK; in HAL_MDF_UnRegisterCallback()
628 hmdf->ErrorCode |= MDF_ERROR_INVALID_CALLBACK; in HAL_MDF_UnRegisterCallback()
643 HAL_StatusTypeDef HAL_MDF_RegisterSndLvlCallback(MDF_HandleTypeDef *hmdf, in HAL_MDF_RegisterSndLvlCallback() argument
652 hmdf->ErrorCode |= MDF_ERROR_INVALID_CALLBACK; in HAL_MDF_RegisterSndLvlCallback()
657 if (hmdf->State == HAL_MDF_STATE_READY) in HAL_MDF_RegisterSndLvlCallback()
659 hmdf->SndLvCallback = pCallback; in HAL_MDF_RegisterSndLvlCallback()
664 hmdf->ErrorCode |= MDF_ERROR_INVALID_CALLBACK; in HAL_MDF_RegisterSndLvlCallback()
679 HAL_StatusTypeDef HAL_MDF_UnRegisterSndLvlCallback(MDF_HandleTypeDef *hmdf) in HAL_MDF_UnRegisterSndLvlCallback() argument
683 if (hmdf->State == HAL_MDF_STATE_READY) in HAL_MDF_UnRegisterSndLvlCallback()
685 hmdf->SndLvCallback = HAL_MDF_SndLvlCallback; in HAL_MDF_UnRegisterSndLvlCallback()
690 hmdf->ErrorCode |= MDF_ERROR_INVALID_CALLBACK; in HAL_MDF_UnRegisterSndLvlCallback()
727 HAL_StatusTypeDef HAL_MDF_AcqStart(MDF_HandleTypeDef *hmdf, const MDF_FilterConfigTypeDef *pFilterC… in HAL_MDF_AcqStart() argument
748 else if (hmdf->State != HAL_MDF_STATE_READY) in HAL_MDF_AcqStart()
753 else if ((hmdf->Instance->DFLTCR & MDF_DFLTCR_DFLTACTIVE) != 0U) in HAL_MDF_AcqStart()
760 if ((hmdf->Instance->SADCR & MDF_SADCR_SADACTIVE) != 0U) in HAL_MDF_AcqStart()
769 hmdf->Instance->DFLTCR = 0U; in HAL_MDF_AcqStart()
770 MDF_AcqStart(hmdf, pFilterConfig); in HAL_MDF_AcqStart()
784 HAL_StatusTypeDef HAL_MDF_PollForAcq(MDF_HandleTypeDef *hmdf, uint32_t Timeout) in HAL_MDF_PollForAcq() argument
789 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_PollForAcq()
798 … while (((hmdf->Instance->DFLTISR & MDF_DFLTISR_RXNEF) != MDF_DFLTISR_RXNEF) && (status == HAL_OK)) in HAL_MDF_PollForAcq()
811 …uint32_t error_flags = (hmdf->Instance->DFLTISR & (MDF_DFLTISR_DOVRF | MDF_DFLTISR_SATF | MDF_DFLT… in HAL_MDF_PollForAcq()
817 hmdf->ErrorCode |= MDF_ERROR_ACQUISITION_OVERFLOW; in HAL_MDF_PollForAcq()
821 hmdf->ErrorCode |= MDF_ERROR_SATURATION; in HAL_MDF_PollForAcq()
825 hmdf->ErrorCode |= MDF_ERROR_RSF_OVERRUN; in HAL_MDF_PollForAcq()
829 hmdf->Instance->DFLTISR |= error_flags; in HAL_MDF_PollForAcq()
833 hmdf->ErrorCallback(hmdf); in HAL_MDF_PollForAcq()
835 HAL_MDF_ErrorCallback(hmdf); in HAL_MDF_PollForAcq()
842 if ((hmdf->Instance->DFLTCR & MDF_DFLTCR_ACQMOD) == MDF_MODE_ASYNC_SINGLE) in HAL_MDF_PollForAcq()
844 hmdf->State = HAL_MDF_STATE_READY; in HAL_MDF_PollForAcq()
859 HAL_StatusTypeDef HAL_MDF_GetAcqValue(const MDF_HandleTypeDef *hmdf, int32_t *pValue) in HAL_MDF_GetAcqValue() argument
871 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_GetAcqValue()
873 if (hmdf->State != HAL_MDF_STATE_READY) in HAL_MDF_GetAcqValue()
883 *pValue = (int32_t) hmdf->Instance->DFLTDR; in HAL_MDF_GetAcqValue()
895 HAL_StatusTypeDef HAL_MDF_AcqStop(MDF_HandleTypeDef *hmdf) in HAL_MDF_AcqStop() argument
900 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_AcqStop()
903 if (hmdf->State == HAL_MDF_STATE_READY) in HAL_MDF_AcqStop()
905 if ((hmdf->Instance->DFLTCR & MDF_DFLTCR_DFLTACTIVE) != MDF_DFLTCR_DFLTACTIVE) in HAL_MDF_AcqStop()
918 if ((hmdf->Instance->SADCR & MDF_SADCR_SADACTIVE) != 0U) in HAL_MDF_AcqStop()
920 hmdf->Instance->SADCR &= ~(MDF_SADCR_SADEN); in HAL_MDF_AcqStop()
927 hmdf->Instance->DFLTCR &= ~(MDF_DFLTCR_DFLTEN); in HAL_MDF_AcqStop()
930 hmdf->Instance->DFLTISR |= (MDF_DFLTISR_DOVRF | MDF_DFLTISR_SATF | MDF_DFLTISR_RFOVRF | in HAL_MDF_AcqStop()
934 hmdf->State = HAL_MDF_STATE_READY; in HAL_MDF_AcqStop()
947 HAL_StatusTypeDef HAL_MDF_AcqStart_IT(MDF_HandleTypeDef *hmdf, const MDF_FilterConfigTypeDef *pFilt… in HAL_MDF_AcqStart_IT() argument
968 else if (hmdf->State != HAL_MDF_STATE_READY) in HAL_MDF_AcqStart_IT()
973 else if ((hmdf->Instance->DFLTCR & MDF_DFLTCR_DFLTACTIVE) != 0U) in HAL_MDF_AcqStart_IT()
980 if ((hmdf->Instance->SADCR & MDF_SADCR_SADACTIVE) != 0U) in HAL_MDF_AcqStart_IT()
992 hmdf->Instance->DFLTIER |= (MDF_DFLTIER_DOVRIE | MDF_DFLTIER_FTHIE); in HAL_MDF_AcqStart_IT()
998 hmdf->Instance->DFLTIER |= MDF_DFLTIER_RFOVRIE; in HAL_MDF_AcqStart_IT()
1002 hmdf->Instance->DFLTIER |= MDF_DFLTIER_SATIE; in HAL_MDF_AcqStart_IT()
1008 hmdf->Instance->DFLTIER |= (pFilterConfig->SoundActivity.SoundLevelInterrupt == ENABLE) ? in HAL_MDF_AcqStart_IT()
1014 hmdf->Instance->DFLTCR = 0U; in HAL_MDF_AcqStart_IT()
1015 MDF_AcqStart(hmdf, pFilterConfig); in HAL_MDF_AcqStart_IT()
1028 HAL_StatusTypeDef HAL_MDF_AcqStop_IT(MDF_HandleTypeDef *hmdf) in HAL_MDF_AcqStop_IT() argument
1033 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_AcqStop_IT()
1036 if (hmdf->State == HAL_MDF_STATE_READY) in HAL_MDF_AcqStop_IT()
1038 if ((hmdf->Instance->DFLTCR & MDF_DFLTCR_DFLTACTIVE) != MDF_DFLTCR_DFLTACTIVE) in HAL_MDF_AcqStop_IT()
1051 if ((hmdf->Instance->SADCR & MDF_SADCR_SADACTIVE) != 0U) in HAL_MDF_AcqStop_IT()
1053 hmdf->Instance->SADCR &= ~(MDF_SADCR_SADEN); in HAL_MDF_AcqStop_IT()
1060 hmdf->Instance->DFLTCR &= ~(MDF_DFLTCR_DFLTEN); in HAL_MDF_AcqStop_IT()
1063 hmdf->Instance->DFLTIER &= ~(MDF_DFLTIER_FTHIE | MDF_DFLTIER_DOVRIE | MDF_DFLTIER_SATIE | in HAL_MDF_AcqStop_IT()
1065 hmdf->Instance->DFLTISR |= (MDF_DFLTISR_DOVRF | MDF_DFLTISR_SATF | MDF_DFLTISR_RFOVRF | in HAL_MDF_AcqStop_IT()
1069 hmdf->State = HAL_MDF_STATE_READY; in HAL_MDF_AcqStop_IT()
1083 HAL_StatusTypeDef HAL_MDF_AcqStart_DMA(MDF_HandleTypeDef *hmdf, const MDF_FilterConfigTypeDef *pFil… in HAL_MDF_AcqStart_DMA() argument
1106 else if (hmdf->State != HAL_MDF_STATE_READY) in HAL_MDF_AcqStart_DMA()
1111 else if ((hmdf->Instance->DFLTCR & MDF_DFLTCR_DFLTACTIVE) != 0U) in HAL_MDF_AcqStart_DMA()
1118 if ((hmdf->Instance->SADCR & MDF_SADCR_SADACTIVE) != 0U) in HAL_MDF_AcqStart_DMA()
1131 hmdf->Instance->DFLTIER |= MDF_DFLTIER_RFOVRIE; in HAL_MDF_AcqStart_DMA()
1135 hmdf->Instance->DFLTIER |= MDF_DFLTIER_SATIE; in HAL_MDF_AcqStart_DMA()
1141 hmdf->Instance->DFLTIER |= (pFilterConfig->SoundActivity.SoundLevelInterrupt == ENABLE) ? in HAL_MDF_AcqStart_DMA()
1147 hmdf->Instance->DFLTCR = MDF_DFLTCR_DMAEN; in HAL_MDF_AcqStart_DMA()
1150 hmdf->hdma->XferCpltCallback = MDF_DmaXferCpltCallback; in HAL_MDF_AcqStart_DMA()
1151 hmdf->hdma->XferHalfCpltCallback = MDF_DmaXferHalfCpltCallback; in HAL_MDF_AcqStart_DMA()
1152 hmdf->hdma->XferErrorCallback = MDF_DmaErrorCallback; in HAL_MDF_AcqStart_DMA()
1153 SrcAddress = (pDmaConfig->MsbOnly == ENABLE) ? (((uint32_t) &hmdf->Instance->DFLTDR) + 2U) : in HAL_MDF_AcqStart_DMA()
1154 (uint32_t) &hmdf->Instance->DFLTDR; in HAL_MDF_AcqStart_DMA()
1155 if ((hmdf->hdma->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_MDF_AcqStart_DMA()
1157 if (hmdf->hdma->LinkedListQueue != NULL) in HAL_MDF_AcqStart_DMA()
1159 …hmdf->hdma->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = pDmaConfig->DataLengt… in HAL_MDF_AcqStart_DMA()
1160 hmdf->hdma->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = SrcAddress; in HAL_MDF_AcqStart_DMA()
1161 … hmdf->hdma->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = pDmaConfig->Address; in HAL_MDF_AcqStart_DMA()
1163 status = HAL_DMAEx_List_Start_IT(hmdf->hdma); in HAL_MDF_AcqStart_DMA()
1172 … status = HAL_DMA_Start_IT(hmdf->hdma, SrcAddress, pDmaConfig->Address, pDmaConfig->DataLength); in HAL_MDF_AcqStart_DMA()
1177 hmdf->State = HAL_MDF_STATE_ERROR; in HAL_MDF_AcqStart_DMA()
1183 MDF_AcqStart(hmdf, pFilterConfig); in HAL_MDF_AcqStart_DMA()
1197 HAL_StatusTypeDef HAL_MDF_AcqStop_DMA(MDF_HandleTypeDef *hmdf) in HAL_MDF_AcqStop_DMA() argument
1202 if (hmdf->State == HAL_MDF_STATE_READY) in HAL_MDF_AcqStop_DMA()
1204 if ((hmdf->Instance->DFLTCR & MDF_DFLTCR_DFLTACTIVE) != MDF_DFLTCR_DFLTACTIVE) in HAL_MDF_AcqStop_DMA()
1212 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_AcqStop_DMA()
1219 if (HAL_DMA_Abort(hmdf->hdma) != HAL_OK) in HAL_MDF_AcqStop_DMA()
1222 hmdf->State = HAL_MDF_STATE_ERROR; in HAL_MDF_AcqStop_DMA()
1231 if ((hmdf->Instance->SADCR & MDF_SADCR_SADACTIVE) != 0U) in HAL_MDF_AcqStop_DMA()
1233 hmdf->Instance->SADCR &= ~(MDF_SADCR_SADEN); in HAL_MDF_AcqStop_DMA()
1237 hmdf->Instance->DFLTCR &= ~(MDF_DFLTCR_DFLTEN); in HAL_MDF_AcqStop_DMA()
1240 hmdf->Instance->DFLTIER &= ~(MDF_DFLTIER_SATIE | MDF_DFLTIER_RFOVRIE | MDF_DFLTIER_SDDETIE | in HAL_MDF_AcqStop_DMA()
1242 hmdf->Instance->DFLTISR |= (MDF_DFLTISR_SATF | MDF_DFLTISR_RFOVRF | MDF_DFLTISR_SDDETF | in HAL_MDF_AcqStop_DMA()
1246 hmdf->Instance->DFLTCR &= ~(MDF_DFLTCR_DMAEN); in HAL_MDF_AcqStop_DMA()
1249 hmdf->State = HAL_MDF_STATE_READY; in HAL_MDF_AcqStop_DMA()
1261 HAL_StatusTypeDef HAL_MDF_GenerateTrgo(const MDF_HandleTypeDef *hmdf) in HAL_MDF_GenerateTrgo() argument
1266 if (hmdf->State != HAL_MDF_STATE_READY) in HAL_MDF_GenerateTrgo()
1268 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_GenerateTrgo()
1299 HAL_StatusTypeDef HAL_MDF_SetDelay(MDF_HandleTypeDef *hmdf, uint32_t Delay) in HAL_MDF_SetDelay() argument
1307 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_SetDelay()
1314 if ((hmdf->Instance->DLYCR & MDF_DLYCR_SKPBF) == MDF_DLYCR_SKPBF) in HAL_MDF_SetDelay()
1321 hmdf->Instance->DLYCR |= Delay; in HAL_MDF_SetDelay()
1336 HAL_StatusTypeDef HAL_MDF_GetDelay(const MDF_HandleTypeDef *hmdf, uint32_t *pDelay) in HAL_MDF_GetDelay() argument
1346 else if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_GetDelay()
1353 *pDelay = (hmdf->Instance->DLYCR & MDF_DLYCR_SKPDLY); in HAL_MDF_GetDelay()
1367 HAL_StatusTypeDef HAL_MDF_SetGain(MDF_HandleTypeDef *hmdf, int32_t Gain) in HAL_MDF_SetGain() argument
1375 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_SetGain()
1398 tmp_register = (hmdf->Instance->DFLTCICR & ~(MDF_DFLTCICR_SCALE)); in HAL_MDF_SetGain()
1399 hmdf->Instance->DFLTCICR = (tmp_register | (register_gain_value << MDF_DFLTCICR_SCALE_Pos)); in HAL_MDF_SetGain()
1413 HAL_StatusTypeDef HAL_MDF_GetGain(const MDF_HandleTypeDef *hmdf, int32_t *pGain) in HAL_MDF_GetGain() argument
1423 else if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_GetGain()
1432 … register_gain_value = ((hmdf->Instance->DFLTCICR & MDF_DFLTCICR_SCALE) >> MDF_DFLTCICR_SCALE_Pos); in HAL_MDF_GetGain()
1460 HAL_StatusTypeDef HAL_MDF_PollForSndLvl(MDF_HandleTypeDef *hmdf, uint32_t Timeout, uint32_t *pSound… in HAL_MDF_PollForSndLvl() argument
1471 else if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_PollForSndLvl()
1476 else if ((hmdf->Instance->SADCR & MDF_SADCR_SADACTIVE) == 0U) in HAL_MDF_PollForSndLvl()
1485 …while (((hmdf->Instance->DFLTISR & MDF_DFLTISR_SDLVLF) != MDF_DFLTISR_SDLVLF) && (status == HAL_OK… in HAL_MDF_PollForSndLvl()
1500 *pSoundLevel = hmdf->Instance->SADSDLVR; in HAL_MDF_PollForSndLvl()
1503 *pAmbientNoise = hmdf->Instance->SADANLVR; in HAL_MDF_PollForSndLvl()
1506 hmdf->Instance->DFLTISR |= MDF_DFLTISR_SDLVLF; in HAL_MDF_PollForSndLvl()
1520 HAL_StatusTypeDef HAL_MDF_PollForSad(MDF_HandleTypeDef *hmdf, uint32_t Timeout) in HAL_MDF_PollForSad() argument
1525 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_PollForSad()
1530 else if ((hmdf->Instance->SADCR & MDF_SADCR_SADACTIVE) == 0U) in HAL_MDF_PollForSad()
1539 …while (((hmdf->Instance->DFLTISR & MDF_DFLTISR_SDDETF) != MDF_DFLTISR_SDDETF) && (status == HAL_OK… in HAL_MDF_PollForSad()
1554 hmdf->Instance->DFLTISR |= MDF_DFLTISR_SDDETF; in HAL_MDF_PollForSad()
1567 __weak void HAL_MDF_AcqCpltCallback(MDF_HandleTypeDef *hmdf) in HAL_MDF_AcqCpltCallback() argument
1570 UNUSED(hmdf); in HAL_MDF_AcqCpltCallback()
1581 __weak void HAL_MDF_AcqHalfCpltCallback(MDF_HandleTypeDef *hmdf) in HAL_MDF_AcqHalfCpltCallback() argument
1584 UNUSED(hmdf); in HAL_MDF_AcqHalfCpltCallback()
1599 __weak void HAL_MDF_SndLvlCallback(MDF_HandleTypeDef *hmdf, uint32_t SoundLevel, uint32_t AmbientNo… in HAL_MDF_SndLvlCallback() argument
1602 UNUSED(hmdf); in HAL_MDF_SndLvlCallback()
1615 __weak void HAL_MDF_SadCallback(MDF_HandleTypeDef *hmdf) in HAL_MDF_SadCallback() argument
1618 UNUSED(hmdf); in HAL_MDF_SadCallback()
1648 HAL_StatusTypeDef HAL_MDF_PollForCkab(MDF_HandleTypeDef *hmdf, uint32_t Timeout) in HAL_MDF_PollForCkab() argument
1653 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_PollForCkab()
1655 if (hmdf->State != HAL_MDF_STATE_READY) in HAL_MDF_PollForCkab()
1664 if ((hmdf->Instance->SITFCR & MDF_SITFCR_SITFACTIVE) == 0U) in HAL_MDF_PollForCkab()
1670 if ((hmdf->Instance->SITFCR & MDF_SITFCR_SITFMOD) != MDF_SITF_NORMAL_SPI_MODE) in HAL_MDF_PollForCkab()
1682 … while (((hmdf->Instance->DFLTISR & MDF_DFLTISR_CKABF) != MDF_DFLTISR_CKABF) && (status == HAL_OK)) in HAL_MDF_PollForCkab()
1697 hmdf->Instance->DFLTISR |= MDF_DFLTISR_CKABF; in HAL_MDF_PollForCkab()
1710 HAL_StatusTypeDef HAL_MDF_CkabStart_IT(MDF_HandleTypeDef *hmdf) in HAL_MDF_CkabStart_IT() argument
1715 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_CkabStart_IT()
1717 if (hmdf->State != HAL_MDF_STATE_READY) in HAL_MDF_CkabStart_IT()
1726 if ((hmdf->Instance->SITFCR & MDF_SITFCR_SITFACTIVE) == 0U) in HAL_MDF_CkabStart_IT()
1732 if ((hmdf->Instance->SITFCR & MDF_SITFCR_SITFMOD) != MDF_SITF_NORMAL_SPI_MODE) in HAL_MDF_CkabStart_IT()
1742 hmdf->Instance->DFLTISR |= MDF_DFLTISR_CKABF; in HAL_MDF_CkabStart_IT()
1745 if ((hmdf->Instance->DFLTISR & MDF_DFLTISR_CKABF) == MDF_DFLTISR_CKABF) in HAL_MDF_CkabStart_IT()
1752 hmdf->Instance->DFLTIER |= MDF_DFLTIER_CKABIE; in HAL_MDF_CkabStart_IT()
1765 HAL_StatusTypeDef HAL_MDF_CkabStop_IT(MDF_HandleTypeDef *hmdf) in HAL_MDF_CkabStop_IT() argument
1770 if (hmdf->State != HAL_MDF_STATE_ACQUISITION) in HAL_MDF_CkabStop_IT()
1772 if (hmdf->State != HAL_MDF_STATE_READY) in HAL_MDF_CkabStop_IT()
1781 if ((hmdf->Instance->SITFCR & MDF_SITFCR_SITFACTIVE) == 0U) in HAL_MDF_CkabStop_IT()
1787 if ((hmdf->Instance->SITFCR & MDF_SITFCR_SITFMOD) != MDF_SITF_NORMAL_SPI_MODE) in HAL_MDF_CkabStop_IT()
1797 hmdf->Instance->DFLTIER &= ~(MDF_DFLTIER_CKABIE); in HAL_MDF_CkabStop_IT()
1800 hmdf->Instance->DFLTISR |= MDF_DFLTISR_CKABF; in HAL_MDF_CkabStop_IT()
1832 void HAL_MDF_IRQHandler(MDF_HandleTypeDef *hmdf) in HAL_MDF_IRQHandler() argument
1839 tmp_reg1 = hmdf->Instance->DFLTIER; in HAL_MDF_IRQHandler()
1840 tmp_reg2 = hmdf->Instance->DFLTISR; in HAL_MDF_IRQHandler()
1847 hmdf->Instance->DFLTISR |= MDF_DFLTISR_DOVRF; in HAL_MDF_IRQHandler()
1850 hmdf->ErrorCode |= MDF_ERROR_ACQUISITION_OVERFLOW; in HAL_MDF_IRQHandler()
1854 hmdf->ErrorCallback(hmdf); in HAL_MDF_IRQHandler()
1856 HAL_MDF_ErrorCallback(hmdf); in HAL_MDF_IRQHandler()
1864 hmdf->AcqCpltCallback(hmdf); in HAL_MDF_IRQHandler()
1866 HAL_MDF_AcqCpltCallback(hmdf); in HAL_MDF_IRQHandler()
1870 if ((hmdf->Instance->DFLTCR & MDF_DFLTCR_ACQMOD) == MDF_MODE_ASYNC_SINGLE) in HAL_MDF_IRQHandler()
1872 hmdf->State = HAL_MDF_STATE_READY; in HAL_MDF_IRQHandler()
1879 hmdf->Instance->DFLTISR |= MDF_DFLTISR_RFOVRF; in HAL_MDF_IRQHandler()
1882 hmdf->ErrorCode |= MDF_ERROR_RSF_OVERRUN; in HAL_MDF_IRQHandler()
1886 hmdf->ErrorCallback(hmdf); in HAL_MDF_IRQHandler()
1888 HAL_MDF_ErrorCallback(hmdf); in HAL_MDF_IRQHandler()
1895 hmdf->Instance->DFLTISR |= MDF_DFLTISR_CKABF; in HAL_MDF_IRQHandler()
1898 hmdf->ErrorCode |= MDF_ERROR_CLOCK_ABSENCE; in HAL_MDF_IRQHandler()
1902 hmdf->ErrorCallback(hmdf); in HAL_MDF_IRQHandler()
1904 HAL_MDF_ErrorCallback(hmdf); in HAL_MDF_IRQHandler()
1911 hmdf->Instance->DFLTISR |= MDF_DFLTISR_SATF; in HAL_MDF_IRQHandler()
1914 hmdf->ErrorCode |= MDF_ERROR_SATURATION; in HAL_MDF_IRQHandler()
1918 hmdf->ErrorCallback(hmdf); in HAL_MDF_IRQHandler()
1920 HAL_MDF_ErrorCallback(hmdf); in HAL_MDF_IRQHandler()
1927 hmdf->Instance->DFLTISR |= MDF_DFLTISR_SDDETF; in HAL_MDF_IRQHandler()
1931 hmdf->SadCallback(hmdf); in HAL_MDF_IRQHandler()
1933 HAL_MDF_SadCallback(hmdf); in HAL_MDF_IRQHandler()
1945 sound_level = hmdf->Instance->SADSDLVR; in HAL_MDF_IRQHandler()
1948 ambient_noise = hmdf->Instance->SADANLVR; in HAL_MDF_IRQHandler()
1951 hmdf->Instance->DFLTISR |= MDF_DFLTISR_SDLVLF; in HAL_MDF_IRQHandler()
1955 hmdf->SndLvCallback(hmdf, sound_level, ambient_noise); in HAL_MDF_IRQHandler()
1957 HAL_MDF_SndLvlCallback(hmdf, sound_level, ambient_noise); in HAL_MDF_IRQHandler()
1968 __weak void HAL_MDF_ErrorCallback(MDF_HandleTypeDef *hmdf) in HAL_MDF_ErrorCallback() argument
1971 UNUSED(hmdf); in HAL_MDF_ErrorCallback()
1982 HAL_MDF_StateTypeDef HAL_MDF_GetState(const MDF_HandleTypeDef *hmdf) in HAL_MDF_GetState() argument
1985 return hmdf->State; in HAL_MDF_GetState()
1993 uint32_t HAL_MDF_GetError(const MDF_HandleTypeDef *hmdf) in HAL_MDF_GetError() argument
1996 return hmdf->ErrorCode; in HAL_MDF_GetError()
2018 static void MDF_AcqStart(MDF_HandleTypeDef *const hmdf, const MDF_FilterConfigTypeDef *const pFilte… in MDF_AcqStart() argument
2029 hmdf->Instance->DFLTCR |= (pFilterConfig->AcquisitionMode | pFilterConfig->FifoThreshold | in MDF_AcqStart()
2037 hmdf->Instance->DFLTCR |= (pFilterConfig->AcquisitionMode | pFilterConfig->FifoThreshold | in MDF_AcqStart()
2060 hmdf->Instance->DFLTCICR = (pFilterConfig->DataSource | pFilterConfig->CicMode | in MDF_AcqStart()
2066 hmdf->Instance->DLYCR = pFilterConfig->Delay; in MDF_AcqStart()
2070 hmdf->Instance->DFLTRSFR = 0U; in MDF_AcqStart()
2075 hmdf->Instance->DFLTRSFR |= pFilterConfig->ReshapeFilter.DecimationRatio; in MDF_AcqStart()
2080 hmdf->Instance->DFLTRSFR |= MDF_DFLTRSFR_RSFLTBYP; in MDF_AcqStart()
2089 hmdf->Instance->DFLTRSFR |= pFilterConfig->HighPassFilter.CutOffFrequency; in MDF_AcqStart()
2094 hmdf->Instance->DFLTRSFR |= MDF_DFLTRSFR_HPFBYP; in MDF_AcqStart()
2113 …hmdf->Instance->SADCR = (pFilterConfig->SoundActivity.Mode | pFilterConfig->SoundActivity.FrameSiz… in MDF_AcqStart()
2119 …hmdf->Instance->SADCR = (pFilterConfig->SoundActivity.Mode | pFilterConfig->SoundActivity.FrameSiz… in MDF_AcqStart()
2133 … hmdf->Instance->SADCFGR = ((pFilterConfig->SoundActivity.MinNoiseLevel << MDF_SADCFGR_ANMIN_Pos) | in MDF_AcqStart()
2141 … hmdf->Instance->SADCFGR = ((pFilterConfig->SoundActivity.MinNoiseLevel << MDF_SADCFGR_ANMIN_Pos) | in MDF_AcqStart()
2150 hmdf->Instance->SADCR = 0U; in MDF_AcqStart()
2151 hmdf->Instance->SADCFGR = 0U; in MDF_AcqStart()
2155 hmdf->State = HAL_MDF_STATE_ACQUISITION; in MDF_AcqStart()
2160 hmdf->Instance->SADCR |= MDF_SADCR_SADEN; in MDF_AcqStart()
2164 hmdf->Instance->DFLTCR |= MDF_DFLTCR_DFLTEN; in MDF_AcqStart()
2174 MDF_HandleTypeDef *hmdf = (MDF_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in MDF_DmaXferCpltCallback() local
2179 hmdf->State = HAL_MDF_STATE_READY; in MDF_DmaXferCpltCallback()
2183 hmdf->AcqCpltCallback(hmdf); in MDF_DmaXferCpltCallback()
2185 HAL_MDF_AcqCpltCallback(hmdf); in MDF_DmaXferCpltCallback()
2196 MDF_HandleTypeDef *hmdf = (MDF_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in MDF_DmaXferHalfCpltCallback() local
2199 hmdf->AcqHalfCpltCallback(hmdf); in MDF_DmaXferHalfCpltCallback()
2201 HAL_MDF_AcqHalfCpltCallback(hmdf); in MDF_DmaXferHalfCpltCallback()
2212 MDF_HandleTypeDef *hmdf = (MDF_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in MDF_DmaErrorCallback() local
2215 hmdf->ErrorCode |= MDF_ERROR_DMA; in MDF_DmaErrorCallback()
2218 hmdf->ErrorCallback(hmdf); in MDF_DmaErrorCallback()
2220 HAL_MDF_ErrorCallback(hmdf); in MDF_DmaErrorCallback()