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

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

[复制链接]
STMCU-管管 发布时间:2019-3-19 09:51
STM32H7 DMA 传输异常案例分析
% a- `' {7 m9 X6 k前言 ! W% _4 l. V' u9 N; `( ?- m) m
# [1 ?4 ~# }. k* T2 B
利用 ST 提供的辅助开发工具 STM32CubeMX,可以快速开发 STM32 应用。在本文中讨论的 ADC 应用,同样是建立在STM32CubeMX 生成工程的基础上。具体为在 STM32H743ZI 上,利用 DMA 自动实现 ADC 数据周期采集和转移,在采集指定数量的采样值后产生中断,对数据进行处理。 1 H5 I) S2 O$ j, J  d0 D% \0 d% l3 \8 k, y

3 t, C; y5 o' c% d7 o文中仅对上述实现过程中出现的一种异常,进行介绍和分析。不涉及具体的 ADC 采集和处理实现的介绍。
( z: O7 t7 Y/ ?+ P3 {
9 O! X3 Z2 S* R+ u
一 实验环境
3 q7 P$ y, J* h: T

. @$ y2 b) P" a; V; g( }2 ]硬件平台:Nucleo-H743ZISTM32CubeMX * T* T. l$ G: G' V. A

% f! V6 \. f% o) p5 F版本:v4.28.0STM32CubeH7 + e3 G3 i6 \" u/ O6 k3 i' z, L
3 J  i* F% j; \2 U" T6 a6 S
版本:v1.2.0
8 M0 h! S$ {2 h" ~- c& p
* f& R; [/ k' _7 pIDE: MDK-ARM v5.25.2.0 (优化级别 Level3) # m  C3 z: @4 L( C

. |' ]* i# j) _3 M! @" H. m6 X首先利用 STM32CubeMX 生成 ADC 应用的初始化工程,涉及的配置如下所示
- Q4 O- E5 ^3 N' x5 c7 E! l0 ]+ `9 E
1.png
3 P3 S" j: u7 j/ _* @# d
然后在工程中增加对 ADC 周期采集和 DMA 传输实现的命令,如下所示。并且增加回调函数内容,本文中实现仅添加了空指令。在调试过程中,在空指令处增加断点,判断 ADC DMA 传输半完成和传输完成中断是否正常进入。
; u% l' Z0 ]. v/ e1 f2 Y! ]' P, W/ N1 B% @1 y5 M
1.png
3 Y: D  \- s; k- N1 x) v/ r2 I  N+ T
注: 如果在编译链接的过程中,出现没有定义 ECC_IRQn 提示,需将 stm32h7xx_hal_msp.c 中对HAL_NVIC_SetPriority(ECC_IRQn, 0, 0);的调用移除。
, T, n/ x+ Z: b' B* C+ c8 C2 t. M
二 异常现象

2 ?7 m/ p% k: q3 n- \1 q
在运行过程中,无法进入 HAL_ADC_ConvHalfCpltCallback 和 HAL_ADC_ConvCpltCallback 回调函数(分别对应 DMA传输半完成和传输完成回调函数)。
$ ]; I  z- w7 ^! K9 p
跟踪中断服务函数,发现在首次 DMA1 传输后,DMA_LISR 寄存器值为 0x8。即 TEIF0 置位,Stream 0 出现传输错误。
3 G6 `( V) R) P, Z2 @
三 原因分析
. i' H5 u6 v8 B) U8 |* B  S
根据错误信息,问题可能与 DMA 1 传输错误有关。重点围绕 DMA1 传输配置, 进行检查,并没有发现异常。
. p) W0 O' y4 U4 K! d+ W& [
不过,同样的初始化配置和执行命令,放置在 ADC 例程(路径: STM32Cube_FW_H7_V1.2.0\Projects\STM32H743ZINucleo\Examples\ADC\ADC_DMA_Transfer),进行编译链接后,能够正常执行。
' M- M2 t! R+ H8 x* B! t3 p
比对两者间的工程配置,发现在 RAM 分配上存在差异。下图为 STM32CubeMX 生成工程中,对应的 RAM 分配情况。与此对应,例程中 RAM 分配至 IRAM2 (0x24000000)。
( G5 H8 R  u6 i5 v. x% F

; r3 E% x  U$ z& O/ y
............

7 c  V8 V) W+ k) p! r8 @4 M
想了解更多,请下载原文阅读

: a% Z0 Q2 T! C
收藏 1 评论1 发布时间:2019-3-19 09:51

举报

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