你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【实战经验】STM32H7 DMA 传输异常案例分析

[复制链接]
STMCU-管管 发布时间:2019-3-19 09:51
STM32H7 DMA 传输异常案例分析$ `7 A; s% e% C# x" d. W: p# p
前言 1 K, O2 C4 G' ?# k5 X$ K/ O. I  A

& s( @9 j. l! k/ ], r' p2 e2 f& @, X8 N利用 ST 提供的辅助开发工具 STM32CubeMX,可以快速开发 STM32 应用。在本文中讨论的 ADC 应用,同样是建立在STM32CubeMX 生成工程的基础上。具体为在 STM32H743ZI 上,利用 DMA 自动实现 ADC 数据周期采集和转移,在采集指定数量的采样值后产生中断,对数据进行处理。 % ?' {/ R5 {0 \( \

! L3 N$ X3 R' X* ^. Y文中仅对上述实现过程中出现的一种异常,进行介绍和分析。不涉及具体的 ADC 采集和处理实现的介绍。
5 _0 ~% m# O! _7 L0 F. R& P

# [1 }8 N* I$ d) o: T2 o一 实验环境 / {$ T+ h+ Q+ i3 g5 w9 s
  R* o6 @- W% n: C6 m5 f# _% L! v
硬件平台:Nucleo-H743ZISTM32CubeMX
# i) e8 Z& X/ |0 f, q( D, G3 S* f/ F% V& K1 E# i
版本:v4.28.0STM32CubeH7 & A+ m" ~& q1 k2 T7 d
( j( `: x: B; W3 k( R
版本:v1.2.0 " B, s5 V2 a& ~9 G% ]
1 B5 X/ r( C2 n: M, d( i1 i
IDE: MDK-ARM v5.25.2.0 (优化级别 Level3) 3 ]8 j; B5 C( Q; z
8 G; B- K% D8 v9 D- P# a. d
首先利用 STM32CubeMX 生成 ADC 应用的初始化工程,涉及的配置如下所示5 F( ]# t; d. w0 u

* z! A& j) t/ l& i& \
1.png

5 W: u, M1 V$ e6 o3 r5 M9 Q然后在工程中增加对 ADC 周期采集和 DMA 传输实现的命令,如下所示。并且增加回调函数内容,本文中实现仅添加了空指令。在调试过程中,在空指令处增加断点,判断 ADC DMA 传输半完成和传输完成中断是否正常进入。9 u) W: ~( z' N9 N. C

+ Y6 V: V' l8 Q1 t1 f' ]0 P
1.png

2 A4 b% |6 {# w6 d- A; E6 C
注: 如果在编译链接的过程中,出现没有定义 ECC_IRQn 提示,需将 stm32h7xx_hal_msp.c 中对HAL_NVIC_SetPriority(ECC_IRQn, 0, 0);的调用移除。
, A8 L* Y. n5 J. [, R+ ]
二 异常现象
, D! F2 V5 w2 P( Q
在运行过程中,无法进入 HAL_ADC_ConvHalfCpltCallback 和 HAL_ADC_ConvCpltCallback 回调函数(分别对应 DMA传输半完成和传输完成回调函数)。
$ d  |- U/ }2 k7 `- `
跟踪中断服务函数,发现在首次 DMA1 传输后,DMA_LISR 寄存器值为 0x8。即 TEIF0 置位,Stream 0 出现传输错误。
7 r# L# Y( j6 p8 V  Y" P) r! O
三 原因分析
& Y3 F, q% r( G* \5 t) N* d
根据错误信息,问题可能与 DMA 1 传输错误有关。重点围绕 DMA1 传输配置, 进行检查,并没有发现异常。

: W' K, `. T5 c) c
不过,同样的初始化配置和执行命令,放置在 ADC 例程(路径: STM32Cube_FW_H7_V1.2.0\Projects\STM32H743ZINucleo\Examples\ADC\ADC_DMA_Transfer),进行编译链接后,能够正常执行。
: l- d1 k% D' ]2 _) g3 H7 _
比对两者间的工程配置,发现在 RAM 分配上存在差异。下图为 STM32CubeMX 生成工程中,对应的 RAM 分配情况。与此对应,例程中 RAM 分配至 IRAM2 (0x24000000)。
9 i, k1 W7 `! p* D9 r
4 q) s$ b. k6 `) y, S$ B2 U
............
, x: j. m! b# W+ p, M4 Y8 w. i- F
想了解更多,请下载原文阅读
1 T" \! [# b+ Z/ ]
赞 收藏 1 评论1 发布时间:2019-3-19 09:51

举报

1个回答
Kevin_G 回答时间:2019-3-19 12:27:09
已收藏

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版