DMAMUX peripheral is a dma request router/trigger, present on g0, wb, h7 and l4+. Basically it allows to easily map peripheral requests to whatever dma channel we want to use (similarily to the DMA_CSELR register, but without limitation) but, it also also adds some clever dma request synchronization and even some dma request generation logic via internal request generator "channels", allowing some requests chaining, or triggering reqs from non dma capable peripherals. nb: g0 only features 1 dmamux bloc, supports 7 irq and 4 generators, l4+ supports 13 dma channels and 3 generators and h7 has two dmamuxes, with support for the 15 dma channels and 7 generators - so as much CxCR and RGxCR register - but they are bit to bit compatible - excluding of course the sync/sig and dma requests id mappings. btw, currently, request generator channels are defined in common header, but maybe we should define them in device header ? or we dont care (like for dma channels, only defined in dma_f24 but not for other devices ?). See ST AN5224 for more information
15 KiB
15 KiB