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

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

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

: m% W, c, ^# Q- N; a: r$ \3 U01问题背景0 e, N* N# e$ D
客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。
" H, g) P$ S4 ^4 o2 |) \! h& p检查客户的原理图并未发现明显的问题。
* i2 x0 h2 K4 X7 V9 x4 S
! d+ w; Y6 l- ]* U9 Y

% R' h8 O1 _2 R02问题复现- R  }1 n* M: K+ L
测试配置:硬件测试平台 NUCLEO-STM32H563ZI。
+ X6 r0 a% c+ r& \1 Q" i: ?软件工具版本:
7 S' G& e: Q2 ISTM32CubeMX Version: 6.9.2
& v2 w! t1 T3 t- B: Z- NSTM32Cubeide Version: 1.13.2
9 z5 W- B9 u6 _9 S) n
. V% z, Y: d2 a7 w( T# N2 J& ]
( {- d  N2 O8 ~* V# H" I
2.1. 测试 1:PB14 开漏输出异常 5 p1 i2 s7 ~1 \
2.1.1. 测试配置 2 Q" ?: ]# {" B8 b

8 w* B) \' _- @4 D9 e- u' |7 f

) R( k! x1 S' `# }' | 微信图片_20240702171716.png
) I+ a, ]. c  b9 |) o5 |/ G3 z▲ 图1. PB14 配置, Y) s. D1 m% \/ _

( M! p- l0 T3 _0 U1 q

- |1 u! c2 G# H2 }7 }! j+ l* b2.1.2. 测试结果- u  _! w" w3 O' l
测试结果见图 2:
/ M; t# l9 t; Q; d. K  O4 q2 }2 \5 v$ f
" s' V1 N+ v( N, N% u 微信图片_20240702171709.png
' c3 |- j1 o! W0 f) S1 X1 v; Q* Z/ z
▲ 图2. PB14 输出波形$ M& N- V# U5 p9 ]5 U3 z
4 V5 A2 b4 S! f  }; t
# |2 v4 B* P' {6 w# `
从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。
& S6 D$ m* A! x8 }( }1 |' k
2 q( ?; c8 |6 `: a
; S+ H* V! p/ }7 n
查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:
) R+ X% g4 \& q# Y- G5 S' E, _9 {+ Q% H! e. Z
( ?  @% J4 F4 b
微信图片_20240702171706.png 2 v4 C+ [- J( f7 `

1 e# G5 T* U% S. j- `" `9 ?▲ 图3. PB14 定义 , |+ Y0 x& G- }) E! z$ q
. ~9 i& [7 F: m- t1 X+ _

2 A/ u- L7 a2 l4 P+ J$ ^! o* `9 p# `其中_c 表示该 pin 脚具有 USB type-c PD 功能。
% c3 K3 a/ l: |" }& [
2 @1 M: p) u9 a1 }
6 O( A' m, b9 R! m$ f0 |
查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:+ d% j8 M5 p. a( M% l
+ _8 ?8 R; T, U" V! ?  z" M: J" N# ^
/ K, W2 i/ N- L- F3 G$ m, m9 Q
微信图片_20240702171703.png
/ m$ L# P* w$ i  A5 V- Y
  Z  n" d+ k5 B" _, \▲ 图4. UCPD_DBDIS 描述
4 W. V7 N, o' U& q% n1 H% ?3 d0 ]5 _! K  N) W8 _
0 Y8 j' j9 W4 L) g- Q- u; ?, o
根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。# L# T6 H1 L' H" q0 B9 _
* V' @* `4 V7 o! K
! U9 h* C: A+ c: k  T9 ?# G' S
修改测试代码,增加如下代码:
5 f5 A' f( }. V3 N9 u
  1. /* USER CODE BEGIN 2 */
    9 ^. U. I6 {5 P# G# k, t& }; _
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);
    6 }5 [6 J: q' J3 ~
  3. /* USER CODE END 2 */
复制代码

& L4 c# |# w# }+ e2 w
% u6 ^  S. T3 y5 O再次测试 PB14 输出,波形如下
2 _0 G# h0 k5 n2 @, v% T/ m
4 G" O% j; l7 l" M
) c, ^; H4 K( r
微信图片_20240702171659.png & s9 \4 z3 Y3 b5 E) k% u, \" |
& Q- ~3 H+ m) i2 w3 ?
▲ 图5. PB14 输出的波形" B# N4 [4 S* t3 W' Y0 H' c* y) N
0 ?* l! F+ V0 K5 w1 j5 ]

, T3 t8 W6 B& P4 a2 R此时的波形输出符合预期,测试正常。 # k% o1 r5 r/ O5 v
0 e% ^) x  u, w1 P1 }# k

+ k7 n$ Y, N( s1 _9 j% B# y: v; E
' _# E: {" ]  L5 e+ d4 K- \( ?
( W; ?% E* Y: K# M
2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO$ f3 j; J; T  L" ^" B: x* D' a' ^
使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。
) H8 a, U7 O% b8 p6 M  N" d$ O6 ~1 [1 l( ^9 j  G7 t( ?! x) F' P; j
; J+ o3 Z/ U' P7 m6 m5 I
2.2.1. GPIO 配置 1
  q- n$ M; O( n! C) P
2 P  e, t, r* C
/ ^, \* C! j* L- ~* o5 j: ?
微信图片_20240702171655.png 2 |: S$ q$ s( Q$ {3 \' D
! i4 v  r4 A0 ~0 Q+ N
▲ 图6. PB14/PB15 配置 1
2 a% m( r' d& I8 Z( c
( M' q, i6 X+ w6 I# W
% ]( f& X/ k( q2 W' y
微信图片_20240702171652.png
3 b+ D% Q! j. V" ~, d: ?% e  D
) X0 e" k  D% I
▲ 图7. TIM12 配置 1
7 r9 ~7 M# ~1 i6 f2 U" [  b4 h6 k; w$ e8 R6 U) b8 R9 Y% c
1 G$ b' E. ]2 C$ J
2.2.2. 测试结果 1 ) R, a$ ?6 ^+ G3 o; u! F

% f" x/ C% `8 I1 e" _- e' a, K5 V

2 H1 v& Y9 k$ z" l 微信图片_20240702171649.png * x1 Y# Q! L$ m( {5 D
, G5 i# h6 c: ]& {* y7 m2 B3 A! d
▲ 图8. PB14/PB15 输出波形图 1 - @$ D2 Q7 N4 L6 ?, I# {
此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。! `3 r, `) ?# ]" B0 h* @

4 y# g- J/ R& f. p6 F* |/ n
) ], a! a3 ]- F% d5 \5 S
微信图片_20240702171644.png 7 B; c0 T' q! G. U3 ~
) j* `6 r# C! p2 S# q! A
▲ 图9. TM12 配置 2 0 i$ b$ g- Q% x4 {( I

4 v% ]* S% j* g/ ^2 {# q$ q# j

: R3 B5 o4 a: G# d7 p6 S2.2.3. 测试结果 2
& }" H+ {$ r5 v0 P( t, z- d3 o1 O# \+ |  F6 l' f. u* l0 v
! G7 J: e, r* Q. U
微信图片_20240702171641.png
- F/ U8 o( M+ L6 e
7 w) Y8 I! |3 ?6 l
▲ 图10. PB14/PB15 输出波形图 2
+ f: i" J) M8 I5 j9 M
. u' M. ^. Z9 f* Y( m: j9 i
: U, W) y8 y3 u+ E, h' M; |* {
此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。
' I) w% `* P/ j' m$ E" i2 t' C4 O- Q5 n* @2 X+ i5 t: W. f
5 W& o+ v9 j) [  j( k
微信图片_20240702171628.png
& e+ _& b4 A! ]+ i- C) |1 L& b: l

/ k+ u* S% _: A$ C4 C▲ 图11. PB14_medium PB15_low 输出波形图 - J  A4 F( V  x3 s- h) T  Y

# R9 H0 K* Z* k  L4 J, \
0 l+ L& B5 @+ Q
综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。
4 `5 \9 b0 a* ^1 E9 h
! j; _0 z; u# m: _& R0 s

9 ~/ B+ o8 h% S8 K" P9 J03小结' s' F, s" x. f7 W! Z
由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。, t# i  ~& h- l5 D1 S

5 l) O' l3 Y( l( o% |
  s1 C3 \' W9 w
如有侵权请联系删除/ ~7 n. X, _* o# v5 _3 O* j
2 W, n/ f! P- K
转载自: STM32
: f$ W+ N0 ~3 Q8 q" n4 V* t6 M0 ~2 H
赞 收藏 评论0 发布时间:2024-7-2 17:22

举报

0个回答

所属标签

相似技术帖

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