DMA Requests - CubeMX - Memory to Peripheral setup questions
Complete noob in both uCs and C trying to understand how to actually read the documentation and where to look for the answers.
I am using CubeMX to generate a majority of my code and using HAL.
I have succesfully got DMA transfer to update different timer parameters by following example code from youtube and other locations:
- Create a data Arrray
- Trigger Event Selection : Update Event
- Select TIMxUP DMA request (Mem to peripheral, Word, Circular)
- HAL_DMA_Start(hdma, SrcAddress, DstAddress, DataLength)
- TIMx->DIER |= (1<<8)
Ok for most part I am just poking around changing the array and destinations to view the signal results. Cascading timers; using timers as the input clock to other timers; using timers to update different registers on other timers. Just exploring at an extremely basic level.
Some timers do not have the TimxUP DMA event and have selections like TIMxUP/CH1 or TIM8/CH1/CH2/CH3.
After several nights I am just hitting a wall. Valley of Despair. I cannot figure out how to use these different "Requests" in my code or how to use them to move data from an array to a destination.
HAL_TIM_OC_Start_DMA(htim, Channel, pData, Length)
Why does the update event have a destination and this not? Can I use the toggle functionality on a timer channel to DMA from an array to another timers PSC ?
