2021-12-07 04:40 AM
hello
ı use stm32h723zg and ı use bdma for adc3 , I was wondering if bdma can be used with adc3. I looked in the reference guide but couldn't find it. I will be glad if you help.
2021-12-07 05:01 AM
Data Sheet should indicate the H7xx devices having an ADC3
Will need to check later.
2021-12-07 05:11 AM
I didn't fully understand what you were saying.
2021-12-07 05:38 AM
also h723 has error in bdma partition. bdma's register are not available in cube ide. only it have IFCR,ISR.
2021-12-07 06:12 AM
a) Not all H7 have an ADC3
b) I will look at the DS/RM when I'm at a computer
Part looks to have ADC3 on AHB4, and the BDMA should be able to use it provided the destination buffer is in the SRAM4 (D3 Domain)
2021-12-07 06:23 AM
MY code is:
LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_BDMA);
// NVIC_SetPriority(BDMA_Channel1_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0));
// NVIC_EnableIRQ(BDMA_Channel1_IRQn);
LL_BDMA_InitTypeDef BDMA_InitStruct = {0};
BDMA_InitStruct.Direction=LL_BDMA_DIRECTION_PERIPH_TO_MEMORY;
BDMA_InitStruct.MemoryOrM2MDstAddress=(uint32_t)&sina;
BDMA_InitStruct.MemoryOrM2MDstDataSize=LL_BDMA_MDATAALIGN_WORD;
BDMA_InitStruct.MemoryOrM2MDstIncMode=LL_BDMA_MEMORY_NOINCREMENT;
BDMA_InitStruct.Mode=LL_BDMA_MODE_CIRCULAR ;
BDMA_InitStruct.NbData=1;
BDMA_InitStruct.PeriphOrM2MSrcAddress=(uint32_t)&ADC3->DR;
BDMA_InitStruct.PeriphOrM2MSrcDataSize=LL_BDMA_PDATAALIGN_WORD;
BDMA_InitStruct.PeriphOrM2MSrcIncMode=LL_BDMA_PERIPH_NOINCREMENT;
BDMA_InitStruct.PeriphRequest=LL_DMAMUX2_REQ_ADC3;
BDMA_InitStruct.Priority=LL_BDMA_PRIORITY_VERYHIGH;
LL_BDMA_StructInit(&BDMA_InitStruct);
LL_BDMA_Init(BDMA,LL_BDMA_CHANNEL_1,&BDMA_InitStruct);
// LL_BDMA_EnableIT_TC(BDMA, LL_BDMA_CHANNEL_1);
LL_BDMA_EnableChannel(BDMA, LL_BDMA_CHANNEL_1);
2021-12-07 06:26 AM
adc works but dma does not send data
2021-12-07 06:31 AM
2021-12-07 06:34 AM
Is sina[] in SRAM4 (0x38000000) ?
If the BDMA throws a Transfer Error, probably not..
2021-12-07 06:38 AM
> I was wondering if bdma can be used with adc3.
Yes. BDMA is hooked up to DMAMUX2 per the reference manual. DMAMUX2 is connected to ADC3 through requests 26/27 (ADC3_IT/ADC3_AWD). See "17.3.3 DMAMUX2 mapping".