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

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

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

! D+ y+ i* z: \# m" M# e/ d8 {01问题背景) r. q0 s: \, {, x* Q' W, P
客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。
7 V. G) |0 E9 z, ]检查客户的原理图并未发现明显的问题。# o# z" O- z- K& l
- L. V4 r; _6 }! s: u# e

& ]' w, u, [% j( U02问题复现
5 x! I" K4 m; ^. X% v; _3 w测试配置:硬件测试平台 NUCLEO-STM32H563ZI。& I# g. `7 H/ p2 R# W
软件工具版本: 1 ~  Y8 i# {( n4 g
STM32CubeMX Version: 6.9.2
6 A9 F; D  A& z3 Y" @0 l% \STM32Cubeide Version: 1.13.2: r) U+ G4 N! R9 j

: t9 k0 B; W4 S% G8 ?! U; h0 a
. ]! K: o5 h" v) K5 t, f- a' J6 E3 B
2.1. 测试 1:PB14 开漏输出异常
# m3 V0 z) i* W2.1.1. 测试配置
8 B' Z$ f' m, R* n
9 H. f( L5 A) P5 q' P8 R/ Z- p

6 t% B5 S( H  [ 微信图片_20240702171716.png
' e+ J/ ~% l) g) C▲ 图1. PB14 配置' }0 V; ]' w' |" i) a
0 Q* q+ d* O0 G
" ~) i+ Q' t6 K3 {% H
2.1.2. 测试结果
( M! d! D7 a' L+ K0 C测试结果见图 2: / p. V8 B, J/ t  ?! B; i
* i3 s3 }' ]- [8 v! z" w
微信图片_20240702171709.png 1 b4 p5 ]3 I# q& L! L$ d% B
& M' i! a& Q1 f/ o- H. f9 M# O. e) L9 P
▲ 图2. PB14 输出波形
6 f6 n* i5 k! i: ~
' {' F- G4 G  h5 Y8 I
" [0 e4 {$ E  `! u: R1 z
从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。
/ L  n, |  X( z. y& I" b+ g* R2 `) f
) w! `; r- H( H
查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:
# k" ]' Y7 w. l3 H# ]" y- z" j/ v8 b4 U& _

+ Z& h. b$ N! ?" Q7 x! s 微信图片_20240702171706.png ; k$ n3 R) V2 P" c

1 a" \$ |  V; _9 T$ h▲ 图3. PB14 定义 8 y6 @" ~% e% \6 r/ L0 q0 v7 k

& \0 W( {0 a( z8 H, t
: s8 l9 l# u$ ?6 |* H
其中_c 表示该 pin 脚具有 USB type-c PD 功能。
0 f7 p6 G1 U- E  a) o, h% Q$ n+ k
/ z/ U8 g/ z1 T) X$ C7 w" G( d  i
, u& z. Y# i" `8 a( f& z3 i
查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:+ Y- Q1 O) g  |' p) ]. H. @( }2 p
+ E. p) S* [/ o( v. k' c" F& ]

3 N% c: O3 X0 A. v1 C1 D0 }: T 微信图片_20240702171703.png , q% A6 T& m+ G/ T9 I1 l) \

- j# W5 t2 ~  L% |# a5 D5 w▲ 图4. UCPD_DBDIS 描述 # n. w# ~1 z1 }
4 B& J( ]& [# W2 @5 p& M5 z, w! x
: I) P1 D( \( E( f6 k0 p
根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。, \) h7 D2 v9 c- v* x: B' ~9 i
$ @6 W7 M& V5 w1 `' ~  W" U

  H. ~0 W* \. s7 E( S修改测试代码,增加如下代码:9 X* R3 a6 c: c$ w& a
  1. /* USER CODE BEGIN 2 */
    ! ~/ j4 s8 O- `: V( B6 {6 S. d
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);
    / V: e* L! L' w, Q
  3. /* USER CODE END 2 */
复制代码

* f9 _* |! ~$ a5 J9 P9 [" T8 g* _% `* O; ~* O4 r; M- v7 w5 K0 x
再次测试 PB14 输出,波形如下 ) |6 T! |, M9 ~/ [$ T

* |0 A) K/ @9 V9 A

# ?! ]0 S1 _+ e$ I* Q6 g& F 微信图片_20240702171659.png 3 Q7 ~, G# [( ~/ m& P. U: f

4 g5 z. N; c7 Z4 M' {# q* m' E' h▲ 图5. PB14 输出的波形5 c/ j, {6 J  y/ U' S) D% }
7 [- i8 q; L9 z
8 G0 T/ m% J+ w1 e6 `6 U
此时的波形输出符合预期,测试正常。 ' i" d" D: z$ d. K: }
$ [# I$ R2 G& V

' @! E+ y- p+ S% P: X7 ?0 N! z7 j- I6 U+ i4 |: r. Q5 G
6 ^! M: V  B/ B* |
2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO  F' _! L$ X4 t; Q  M
使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。5 j' G' w7 b- _! Y) P8 L

8 o1 A+ m0 j" T+ s  x0 J; _6 j

( E9 ?& A$ F) Z; D- m0 X4 s2.2.1. GPIO 配置 1
5 d; U7 w0 y) D: z) W& ^
4 g" ^& W: ^7 H. T" K" d% o& o7 R& k
+ y# s9 ^/ Y: T( m, j
微信图片_20240702171655.png & K1 P3 I, G' G6 w: A. e
5 F! @; b2 R! o
▲ 图6. PB14/PB15 配置 1 / n: P: P6 b1 Y: g  C2 z3 u

$ ~# v) [( U  O2 x' b$ ]
" U/ b( n* a: y* {. y
微信图片_20240702171652.png
& K9 k1 @; F3 S% P. {7 d

/ P- L' F( S0 _1 {▲ 图7. TIM12 配置 1
5 l4 |- x. Q- B& x4 I* r
4 T) Z) K9 J7 A  [9 P
  t; P( V& H, e0 G+ U* h2 }0 X
2.2.2. 测试结果 1 : G( G. r' \. J; [( Q
) p+ ?$ s( D/ J" I, F% E- v. p
( q: M1 j- S: U
微信图片_20240702171649.png
# m5 ?! l% X" O$ a6 L9 \& _

, {( K, v) y. ?. e! k- y; Q9 n1 L+ \/ K▲ 图8. PB14/PB15 输出波形图 1
$ a* E" Z5 g% c( E, W8 N此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。
. Z5 A; d# i( O8 @1 }
( }9 i) s0 m1 b9 P
: P8 W0 j3 k* b. t
微信图片_20240702171644.png 3 x1 K7 a8 P: S/ U6 ?" X% c- M
$ s# z" d  m8 I
▲ 图9. TM12 配置 2
2 b+ v2 N9 h$ \% ~& I
5 |0 H8 G$ w% t4 j! N, a" K  M* k
5 R& H  T# [$ t6 F3 Q# L* n# p
2.2.3. 测试结果 2   f) V  Y- C, E3 i  W( C# J9 s
8 l6 y! D/ ?5 `$ F& [* Z7 b4 {
2 @! c( m$ O' d1 M
微信图片_20240702171641.png
# B- f0 t( ~  P2 D; o; \; o  {: s

/ i" e* M3 T2 \' b: Y" X▲ 图10. PB14/PB15 输出波形图 2
$ L3 E; |3 n6 C/ e& V! C4 X+ W4 R' L
4 b$ i6 J8 J; _/ ^7 z$ G5 }

; p9 H3 _0 @* p( M) C此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。& e. p# V6 k0 b  v2 Z3 e7 |  {
" }1 k% w2 f: |

0 D3 |1 R# f$ t4 g9 e, G+ } 微信图片_20240702171628.png $ H1 _' w2 N. m5 d

" [5 ~: R4 S: q- a& ?' h▲ 图11. PB14_medium PB15_low 输出波形图 6 W. ?: J, f$ p: R: G
2 [6 m& l0 u' b% J6 f
4 d0 H0 O5 t+ m8 X
综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。) M. f0 P* W9 u) a1 H  F2 |
) P' p! O% e$ K- X: w8 o
8 @) M7 i: P8 {. J/ `6 Q5 J. \* w# j$ [
03小结3 V2 i" I. q1 N' g% z7 O4 I- n
由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。
, T; }9 ]$ y3 N6 Z/ Z# q* c( d/ m4 a( @& j  W1 e, X. M
$ X9 u; e& A3 U+ J' o0 `; a: F
如有侵权请联系删除- p& E8 k" H8 E& s* w6 x5 z

  y' s, G( J) q1 y" o转载自: STM32- {7 W3 P5 L" n$ r

/ `9 M) C( `0 z; x0 d
收藏 评论0 发布时间:2024-7-2 17:22

举报

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