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

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

[复制链接]
STMCU-管管 发布时间:2019-3-19 09:51
STM32H7 DMA 传输异常案例分析
% n2 ^& C4 x8 E2 r* a% N  s前言
: V, [7 p! a9 Y& d5 ^! i& Q. o9 g9 m( I6 Y; M% e" t8 K
利用 ST 提供的辅助开发工具 STM32CubeMX,可以快速开发 STM32 应用。在本文中讨论的 ADC 应用,同样是建立在STM32CubeMX 生成工程的基础上。具体为在 STM32H743ZI 上,利用 DMA 自动实现 ADC 数据周期采集和转移,在采集指定数量的采样值后产生中断,对数据进行处理。 * G5 \1 t3 M+ i$ \9 w. m8 i% {/ ]

" O* x/ X. Z7 Y- W+ s6 c! J文中仅对上述实现过程中出现的一种异常,进行介绍和分析。不涉及具体的 ADC 采集和处理实现的介绍。
, I1 E  H& w8 {2 I0 s7 H
3 j* v  }' c7 Z/ S6 w
一 实验环境 : w% ~. R6 [( t% O9 N
6 M4 S- W, T9 j6 g
硬件平台:Nucleo-H743ZISTM32CubeMX
9 l( v$ g9 l: ^' ~) w
1 B0 s2 [6 b+ o8 }+ z% d( k版本:v4.28.0STM32CubeH7
1 _7 {: F4 l( n/ U  n% f2 k
8 e! V, E* \8 y4 V% ?' |2 y
版本:v1.2.0 - Z9 i7 A6 J/ O4 B7 ~3 c
+ h- V- m/ c" r$ a3 x
IDE: MDK-ARM v5.25.2.0 (优化级别 Level3) 6 X( r- Y) I: Y! j+ |
7 G8 z% y5 }" j) ?4 `; U
首先利用 STM32CubeMX 生成 ADC 应用的初始化工程,涉及的配置如下所示" u- p- ]( A: V  ^
( ~  ]$ ^+ W8 O% c8 r9 y
1.png

3 x% V4 \) A( {5 y- r然后在工程中增加对 ADC 周期采集和 DMA 传输实现的命令,如下所示。并且增加回调函数内容,本文中实现仅添加了空指令。在调试过程中,在空指令处增加断点,判断 ADC DMA 传输半完成和传输完成中断是否正常进入。9 u0 R# [7 }0 m0 M

+ T' x4 i9 Z+ h8 d# ~1 L
1.png

& J% Q5 j  S& z' |6 B0 q* H+ E0 D
注: 如果在编译链接的过程中,出现没有定义 ECC_IRQn 提示,需将 stm32h7xx_hal_msp.c 中对HAL_NVIC_SetPriority(ECC_IRQn, 0, 0);的调用移除。

! M* _4 I3 k- Q9 G
二 异常现象
* _- a# L1 R0 \) @: X( W
在运行过程中,无法进入 HAL_ADC_ConvHalfCpltCallback 和 HAL_ADC_ConvCpltCallback 回调函数(分别对应 DMA传输半完成和传输完成回调函数)。
6 |5 L5 Q4 b3 h* s7 D
跟踪中断服务函数,发现在首次 DMA1 传输后,DMA_LISR 寄存器值为 0x8。即 TEIF0 置位,Stream 0 出现传输错误。

* R) R$ |, ?6 ^" f
三 原因分析

) j, W3 X1 i" ?( c
根据错误信息,问题可能与 DMA 1 传输错误有关。重点围绕 DMA1 传输配置, 进行检查,并没有发现异常。

7 L3 _* t# X( u
不过,同样的初始化配置和执行命令,放置在 ADC 例程(路径: STM32Cube_FW_H7_V1.2.0\Projects\STM32H743ZINucleo\Examples\ADC\ADC_DMA_Transfer),进行编译链接后,能够正常执行。

* T3 M5 X: Y" t4 N
比对两者间的工程配置,发现在 RAM 分配上存在差异。下图为 STM32CubeMX 生成工程中,对应的 RAM 分配情况。与此对应,例程中 RAM 分配至 IRAM2 (0x24000000)。
* w! K0 e3 f# R, p
) ~5 l( P/ O4 i# @3 a5 g
............

. f4 }: E  f  l0 ~0 y& R
想了解更多,请下载原文阅读
1 P) W1 o* ^1 g6 O! B) T9 W3 o
收藏 1 评论1 发布时间:2019-3-19 09:51

举报

1个回答
Kevin_G 回答时间:2019-3-19 12:27:09
已收藏
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版