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

STM32H723 的序列 ADC 无法启动转换

[复制链接]
STMCU小助手 发布时间:2023-2-18 16:00
1. 前言客户使用 ADC 进行序列转换,配置完成后,不调用 Cube 库函数而使用寄存器操作进行ADC 转换,发现无法启动 ADC 转换,且无任何报错。如果只使用一个通道转换 ADC,则可以正常启动 ADC 转换。
2 a. C8 d2 M* [/ d* F, g
) g" r* x. M: q. K! l
' h0 g' q" i% `5 i3 L. X
2. 现象复现% Z7 J  j: c+ _! n% M3 M
使用 CubeMx 配置下面的 ADC 序列转换程序。; J# D8 c) Z* t' S

7 d' ^( ?! p4 y  @& l+ ]

, z! k  K- k9 v' q2 ]5 E1 b5 N `TI{~JHWYD6)H{TCW(9VKXK.png / `" d* W' ?( A$ R0 B

3 ?3 g6 R2 j9 V5 n# X
4 f& X5 X0 B2 e. w
正常的使用 Cube 函数启动 ADC 函数为:HAL_ADCEx_InjectedStart(&hadc1),此种情况下 ADC 可以正常转换,无任何问题;如果客户使用下面的操作进行启动 ADC 转换则出现 ADC 停止采样:
- p3 g8 s7 ~1 F" G: ?ADC1->CR |= 0x01; // ADEN =1# W! e0 }/ G# }: ?8 \% s' a
ADC1->CR |= 0x08; // JADSTART = 1
/ ^# Z. R9 ~9 G" P9 T; A寄存器无报错,而且 JADSTART 一直等于 1,但 ADC 没有启动转换。4 I, n2 `: f: z/ L

' P0 j2 A4 p/ X' _. F

1 U5 y( V- o0 X$ Q W[Y17J1NUP~85]8KDB`8S{N.png
1 U; h7 _$ _8 o" I, t! ]
- ]' f. u  ^; C. ~

+ [- P. a& O# S如果客户改为只采样一个通道,而不进行多通道序列采样,则上述写法也无任何问题,ADC 可正常转换。2 y* W9 d/ l, i# Y& e7 I, n8 Q
6 ^! o# e$ l+ U9 ?, \7 ?

# R1 B, S! i) N5 M- Q3. 问题分析与解决3 h) Q1 K% L& O% b0 _
从 HAL 库中启动 ADC 代码看上去,实际 Cube 库函数做了很多判别,因此我们关心下ADC 启动序列在参考手册中的说明:
4 e) s6 C( G# k  D( z# Y+ B: Q2 g9 M: |, B
8 ^* P% d4 Z9 x" ^) _) E# p
XL5HQR27_IITDHD5X0KC9~G.png
+ |/ E: S  `2 W8 ]6 [/ d
$ H; ?1 _, C9 Y" c5 X% T: C

  j0 B# h' Q" T" G$ \可以看到 ADEN 置位后需要等待 ADRDY 置 1 后进行 ADC 转换。
: ?# H' C. m3 }  [) |6 H' w- Y$ X5 E. c! k; ^
5 q) m& @5 F/ ]. C0 X8 R
%2~RVV@BPF}E04_33DL7QE9.png
6 p! c: H$ @  ]& y9 L, t从时序图上也可以看到 ADEN 后,有一个 tsTAB 的时间,此后 ADC 可以转换。客户的配置忽略了这个过程,导致 ADC 进入异常,因此需要增加必要的等待代码。如下所示:/ N$ r  G: I3 ]. b4 o/ h
ADC1->ISR |= 0x01; // Clear ADRDY" S: E: h  R2 I
ADC1->CR |= 0x01; // ADEN = 1, a* }5 B8 b- R: b9 i$ y5 p' ^2 o: J
while((ADC1->ISR & 0x01) == 0x00) ;// Wait for ADRDY == 1 % I& `9 _3 J# w  I1 N
ADC1->CR |= 0x08; // JADSTART = 1
& t; ]( b5 E8 a- b& F2 a8 ^/ _8 I
2 ~* z) f' Y* a' d8 V4 b9 f
完整版请查看:附件 STM32H723 的序列 ADC 无法启动转换.pdf (310.04 KB, 下载次数: 3)
赞 收藏 评论0 发布时间:2023-2-18 16:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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