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

基于STM32H5 PB14输出波形异常分析经验分享

[复制链接]
攻城狮Melo 发布时间:2024-7-2 17:22

3 b$ s* ~* A+ g: f" a8 e' z01问题背景* v: o! x4 O) l0 u4 O5 b
客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。
5 k( E* v+ y; Z1 \检查客户的原理图并未发现明显的问题。: G. T% h3 I: g  H# M) D0 g
, a7 V$ o& n/ y4 m0 {* k

$ e& u/ o% X5 c0 r02问题复现
0 W4 X7 K, f5 z1 t. t测试配置:硬件测试平台 NUCLEO-STM32H563ZI。
5 j$ b( M/ T$ o5 H, Q/ h软件工具版本:
3 r" i- b  M) I8 f3 ^7 x& qSTM32CubeMX Version: 6.9.2 3 N7 l$ E& ?. _0 Q1 I
STM32Cubeide Version: 1.13.2
) z- y7 }# S8 B* W2 H/ }, s& K" J
6 k. Z3 A# b5 V& p4 X: D* V

4 j/ E. K; v5 h; c9 o2.1. 测试 1:PB14 开漏输出异常
; z% O6 M# s, P) S! n# {* D2.1.1. 测试配置
% F& |& K2 ?- ~: E+ i6 i# J7 ~# h1 s$ c: ^3 ?
% h6 L; ~# E, N  f) b
微信图片_20240702171716.png 0 k! Y3 G' l6 R8 D* D! D
▲ 图1. PB14 配置
) `8 l1 }) d* g
$ r  O0 k4 e% o. X/ [9 A

: q% S3 p4 c& x8 J) Z2.1.2. 测试结果
' K3 v8 ^  }$ b, \/ U9 w) ^测试结果见图 2: 3 q+ Y) `  s: e3 p. s; K5 _
2 V! s! i1 s- q5 A+ Z
微信图片_20240702171709.png
8 o: Y* w7 P7 q; k
# C2 s) ?# A( v) [7 S$ ~+ ^! G+ D6 N▲ 图2. PB14 输出波形
5 \. z  H- o3 s1 f3 P2 y. T5 o4 N

4 r$ F( @+ V! @7 h& n* V从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。
# q# y+ K# w3 ]8 e2 I' p8 h' }9 t0 I3 T1 k
4 m1 |2 ~# d4 J  N0 m- y9 B
查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:% K4 L3 u0 G0 l1 ^/ o3 y

8 i+ m! X' x$ D( Z" H& M% U

( |# N* h$ Y7 A( @8 f- b 微信图片_20240702171706.png 8 F: [4 v( `8 D, R
- r" J$ u6 U) ?- |0 ^: w+ _; Y
▲ 图3. PB14 定义 4 c6 M6 A9 d$ d! N+ J( Y
  @/ |# N: p# k1 w9 q

. e9 f* X* c# z: N8 G, O, y9 g6 o& R其中_c 表示该 pin 脚具有 USB type-c PD 功能。% Z3 U- z: r" H  r

9 \' N1 ^$ l$ O' i: r. A! ^

0 M  }& J. G3 J  V6 l+ _' b- ]查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:3 r6 J. E* y0 Y6 o- j( Q) \

. g! V% U. b3 g5 h2 B

4 }7 F/ s" {1 o1 ]& q% T 微信图片_20240702171703.png
! M* w7 c/ u: `6 M5 H$ N. P* @5 A/ q# r# Y
▲ 图4. UCPD_DBDIS 描述 . q: w% d; p% E# j& p
8 f; l8 X- i& q" F8 i& K" i( B
$ T5 B0 X1 `- Q1 s8 p, O9 |
根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。+ N5 e9 C- t& Q; C6 H

. O, b* i$ @: X' T2 _/ R- q
: q: k/ Y0 w3 V9 z
修改测试代码,增加如下代码:& b) u) V# g8 ?- b
  1. /* USER CODE BEGIN 2 */* S% {6 v  g/ F  b  L
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);
    ! y0 R" l& j: P  ~0 K, W
  3. /* USER CODE END 2 */
复制代码
4 Y: n# K+ [: \* n: m2 e/ n
7 c9 r1 x- z1 n) l
再次测试 PB14 输出,波形如下 / v0 P1 c; p; `2 s: @; j7 H& X" h) {

* X7 |+ x5 N! [. f

+ j3 ]* d* h. C6 l* V, c 微信图片_20240702171659.png / _, S& Z7 f+ X
) r* q8 e$ @2 k+ ~+ I+ o8 A8 l
▲ 图5. PB14 输出的波形
; n# `* U  @* w+ Z9 m' Z( j
1 y5 p, D  l! j: e
/ _: Y8 `" k' n
此时的波形输出符合预期,测试正常。
0 T1 S$ w) c- M9 B5 j/ F+ B9 i+ H+ ?$ t
  e/ N' w$ W4 S' d

6 n& \. m( G# r3 j5 k. A

7 h7 Y7 u4 C1 [4 {2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO$ P% b4 m1 Z! @( @; R& n( N0 w
使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。
  l9 F0 H  y# G6 u( n4 M6 y
, ~& ^1 Q% f/ l& h

7 x/ J5 R/ W' l8 M2.2.1. GPIO 配置 1
( A8 ?" }+ D) x0 X( c: U3 q  ?0 V$ c

+ u  {3 ?! u* d! f 微信图片_20240702171655.png
' a* i) @; V5 u

6 @3 _6 S) \- b! z; G8 v▲ 图6. PB14/PB15 配置 1 # L3 {; |% I1 u7 C, g& ]3 W" a! {

/ y% c  {3 g$ j8 v& O, o3 \; e

( h" C! T0 J8 V 微信图片_20240702171652.png
0 O7 j3 Q8 q0 ^" i! C1 p# b
/ H, ]" U. W4 `3 o! d
▲ 图7. TIM12 配置 1: G( u. k% U& Z( b4 L

# r  y7 h5 v, o3 x% `5 N/ C

' X* n7 y1 e5 g: Z; N3 c* V9 K2.2.2. 测试结果 1
' L& Z1 X6 z2 h# _9 _8 i4 ?+ T4 _* c% W3 h( A# A# k6 z
# y( S3 k$ a1 ?1 S3 c* ~
微信图片_20240702171649.png
+ C9 M: i5 q6 S  }( K+ L! p, C2 }
  |6 s0 L! P5 T* b1 G6 \2 s; A
▲ 图8. PB14/PB15 输出波形图 1
3 y1 ^6 P0 G% F7 S) o; p; j1 K此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。4 x7 ~- V# e# N2 W9 E7 l) O
$ y: y. U4 _/ m; S) q  o. y3 d

$ M6 w5 U+ m8 h- F1 ]& i+ ?4 k$ ^( W 微信图片_20240702171644.png
" M, M! i% P9 @2 i  v; O
+ `2 \5 {6 a- L8 R- M' F
▲ 图9. TM12 配置 2 . [( [+ T5 T$ n6 a1 `

$ c. h1 T5 X) a( r) O/ O, L& \
. @+ y0 y5 P7 s& n
2.2.3. 测试结果 2
9 {) U2 p- W/ r+ H9 G7 l7 S1 K) t* g
7 J6 ~4 t; `7 D  A$ l
微信图片_20240702171641.png
8 T; L# k/ Y+ u" F4 Z, a

, ?& Z0 a7 F8 x▲ 图10. PB14/PB15 输出波形图 2 0 x, `  \/ {5 c* A, @
' ]1 W* ?" a* t2 \

+ k  N% ^7 F" h5 X此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。
# u' k& q, Y# x8 Y: z; E5 ^9 B. B" C6 F5 u/ Q

) Z8 I3 ]5 C3 z; N 微信图片_20240702171628.png
; k  d* r+ o0 T, {

8 m9 o2 B" x* [( Q; x▲ 图11. PB14_medium PB15_low 输出波形图 ' ^; `* @, H  K* g

% e# T9 s5 P: y; w+ E! ]& c1 f( J

% f( @; w  w# w' e" I& j: w综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。, l4 Q. V' ~4 Z: C- J

  K; j' z; L# g, E+ P3 Q6 ?' e$ ^
+ o7 ~; ?9 C' H" S
03小结
# B! l- H: E# M由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。  Y* G( |& ?) W$ B) Y* k  F

2 u: Q- w1 G! k2 ^* `6 Q
( r3 M0 ~# T2 Y$ X
如有侵权请联系删除
" |9 A) s" @* }6 v9 x
' @5 I' m3 t7 V# p0 n
转载自: STM32! L3 J% H$ `8 d, U. M

- ^( c; f3 ]% i1 o. d& t
收藏 评论0 发布时间:2024-7-2 17:22

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版