当前位置:网站首页>Understanding of smt32h7 series DMA and DMAMUX
Understanding of smt32h7 series DMA and DMAMUX
2022-07-05 09:24:00 【Ruoshui thousand points】
DMA and DMAMUX
DMA: nothing CPU The controller that directly carries out data handling under the participation
DMAMUX: establish DMA Request and DMA Mapping relationship between channels , Functions similar to routing . nothing DMAMUX Of MCU,DMA Request and DMA The mapping relationship of channels is fixed , Cannot be modified by software . With DMAMUX Can be DMA Request and DMA Channels are linked by software , Implement custom links .
With STM32H743 For example :
DMAMUX1:DMAMUX1_Channel0-15 Corresponding DMA1_Stream0-7 and DMA2_Stream0-7.
DMAMUX2:DMAMUX2_Channel0-7 Corresponding BDMA_Channel0-7.
See the figure below for details , Understanding is for reference only .
Example of trigger generator
1. For example, external interrupt EXTI Trigger memory to memory / Peripheral DMA request
nothing DMAMUX Under the circumstances : because EXTI There is no such thing as DMA request , but EXTI To trigger DMA Only in EXTI Start in interrupt DMA, Configure memory to memory / Peripheral DMA after , And then again EXTI Start in interrupt DMA.
Yes DMAMUX Under the circumstances : Trigger signal HAL_DMAMUX1_REQ_GEN_EXTI0 And signal generator DMA_REQUEST_GENERATORx Correlation is equivalent to EXTI0 Possess DMA request , And then configure it DMA Transmission channel , Good configuration EXTI0,EXTI0 Can trigger DMA Realization DMA Transmitted . There may be MCU Have done well EXTI Edge signal and DMA Start the Association , Otherwise, I'll be with you EXTI Start in interrupt DMA What's the difference .( guess , Never used )
2. such as GPIO Trigger DMA Request to implement memory to GPIO Data transmission of
nothing DMAMUX Under the circumstances :GPIO There is no such thing as DMA request , To realize memory to GPIO Of DMA The transmission needs to borrow one DMA request , I used TIM_UP Of DMA request ( Of course, other signals can also be used , As long as it can produce DMA Just ask ), And then in DMA In the configuration, according to the memory to peripheral DMA Just configure it , I can use this to output a fixed waveform signal , The signal CLK and TIM The cycle is consistent , If this waveform wants to appear periodically, you can use another timer , Enable in timer interrupt DMA.
It is essentially a peripheral 1-> Memory -> peripherals 2 The transmission of , peripherals 1 Yes DMA request , peripherals 2 No, DMA request , Using peripherals 1 Request to do peripherals 2 Things about .
Yes DMAMUX Under the circumstances : Trigger signal HAL_DMAMUX1_REQ_GEN_LPTIM1_OUT And signal generator DMA_REQUEST_GENERATORx Generated by Association DMA Request to be used as GPIO Of DMA request , Then configure DMA Transmission channel , To configure LPTIM Timer , Start up DMA after ,LPTIM Each time the timer is generated 1 individual DMA request , send out 1 Data . If DMA If it is a circular mode, it will be based on NDTR Circular transmission , If it is normal mode NDTR After the pass DMA Automatically shut down .
Example of synchronous generator
The synchronization signal is mainly used for periodic starting DMA
1. Regular serial port DMA send data
nothing DMAMUX The situation of : There are serial ports DMA request , There is no need to trigger the generator , Request and directly through peripherals DMA Transmission channel Association , But I want to send serial data regularly , You need to start the serial port in a timer interrupt DMA send out .
Yes DMAMUX The situation of : Start with serial port peripherals and DMA Association of transmission channels , Then select the synchronization signal HAL_DMAMUX1_SYNC_LPTIM1_OUT relation DMAMUX, To configure LPTIM Realize the cycle to send a synchronization signal to start DMA.
The synchronization signal is used to start DMA Of , No DMA Request ,DMA The request comes from the serial port .
Focus on understanding :
1. Trigger signal and synchronization signal are fixed
2. Understand trigger signals HAL_DMAMUX1_REQ_GEN_LPTIM1_OUT and HAL_DMAMUX1_SYNC_LPTIM1_OUT The difference applied in the two projects .
The trigger signal is equivalent to DMA Request signal , The synchronization signal is equivalent to DMA Start signal .
Trigger signals are mostly used for peripherals 1-> Memory -> peripherals 2 The type of , Synchronization signals are mostly used in memory -> Periodic startup in peripheral DMA The situation of .
In trigger signal HAL_DMAMUX1_REQ_GEN_LPTIM1_OUT Next , Each trigger signal causes a DMA request , And one timer DMA Only one request can be transmitted DMA Data blocks .
In the synchronization signal HAL_DMAMUX1_SYNC_LPTIM1_OUT Next , One synchronization signal starts once DMA,DMA The data of the set length will be transmitted , Instead of a single block .
Just understand , Not too much validation .
边栏推荐
- C # compare the differences between the two images
- C language - input array two-dimensional array a from the keyboard, and put 3 in a × 5. The elements in the third column of the matrix are moved to the left to the 0 column, and the element rows in ea
- 一次 Keepalived 高可用的事故,让我重学了一遍它
- C # image difference comparison: image subtraction (pointer method, high speed)
- 阿里云发送短信验证码
- Composition of applet code
- Alibaba's ten-year test brings you into the world of APP testing
- C # draw Bezier curve with control points for lattice images and vector graphics
- 利用请求头开发多端应用
- Deep understanding of C language pointer
猜你喜欢
Figure neural network + comparative learning, where to go next?
Kotlin introductory notes (II) a brief introduction to kotlin functions
编辑器-vi、vim的使用
22-07-04 西安 尚好房-项目经验总结(01)
Kotlin introductory notes (VIII) collection and traversal
Introduction Guide to stereo vision (1): coordinate system and camera parameters
Kotlin introductory notes (VII) data class and singleton class
Applet (global data sharing)
Android 隐私沙盒开发者预览版 3: 隐私安全和个性化体验全都要
一题多解,ASP.NET Core应用启动初始化的N种方案[上篇]
随机推荐
Introduction Guide to stereo vision (6): level constraints and polar correction of fusiello method
NIPS2021 | 超越GraphCL,GNN+对比学习的节点分类新SOTA
编辑器-vi、vim的使用
Codeforces Round #648 (Div. 2) D. Solve The Maze
Kotlin introductory notes (II) a brief introduction to kotlin functions
High performance spark_ Transformation performance
OpenGL - Coordinate Systems
Causes and appropriate analysis of possible errors in seq2seq code of "hands on learning in depth"
Luo Gu p3177 tree coloring [deeply understand the cycle sequence of knapsack on tree]
一题多解,ASP.NET Core应用启动初始化的N种方案[上篇]
Codeworks round 681 (Div. 2) supplement
测试老鸟浅谈unittest和pytest的区别
高性能Spark_transformation性能
2311. 小于等于 K 的最长二进制子序列
The research trend of map based comparative learning (gnn+cl) in the top paper
Progressive JPEG pictures and related
LeetCode 31. 下一个排列
Unity SKFramework框架(二十二)、Runtime Console 运行时调试工具
牛顿迭代法(解非线性方程)
np. allclose