当前位置:网站首页>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 .
边栏推荐
- Understanding rotation matrix R from the perspective of base transformation
- 深入浅出PyTorch中的nn.CrossEntropyLoss
- 嗨 FUN 一夏,与 StarRocks 一起玩转 SQL Planner!
- 一题多解,ASP.NET Core应用启动初始化的N种方案[上篇]
- 22-07-04 西安 尚好房-项目经验总结(01)
- Codeforces Round #648 (Div. 2) E.Maximum Subsequence Value
- [code practice] [stereo matching series] Classic ad census: (6) multi step parallax optimization
- 2311. 小于等于 K 的最长二进制子序列
- Codeforces round 684 (Div. 2) e - green shopping (line segment tree)
- Kotlin introductory notes (V) classes and objects, inheritance, constructors
猜你喜欢
Hosting environment API
Solution to the problems of the 17th Zhejiang University City College Program Design Competition (synchronized competition)
【阅读笔记】图对比学习 GNN+CL
一题多解,ASP.NET Core应用启动初始化的N种方案[上篇]
Newton iterative method (solving nonlinear equations)
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
nodejs_ 01_ fs. readFile
Confusion matrix
2020 "Lenovo Cup" National College programming online Invitational Competition and the third Shanghai University of technology programming competition
AUTOSAR from getting started to mastering 100 lectures (103) -dbc file format and creation details
随机推荐
. Net service governance flow limiting middleware -fireflysoft RateLimit
Greendao reported an error in qigsaw, could not init daoconfig
scipy.misc.imread()
Ministry of transport and Ministry of Education: widely carry out water traffic safety publicity and drowning prevention safety reminders
notepad++
我的一生.
Codeforces Round #648 (Div. 2) E.Maximum Subsequence Value
高性能Spark_transformation性能
Kotlin introductory notes (V) classes and objects, inheritance, constructors
Unity SKFramework框架(二十二)、Runtime Console 运行时调试工具
基于STM32单片机的测温仪(带人脸检测)
Svgo v3.9.0+
测试老鸟浅谈unittest和pytest的区别
2011-11-21 training record personal training (III)
Codeforces round 684 (Div. 2) e - green shopping (line segment tree)
Deep understanding of C language pointer
Information and entropy, all you want to know is here
OpenGL - Coordinate Systems
Alibaba's ten-year test brings you into the world of APP testing
nodejs_ 01_ fs. readFile