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

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

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

5 G1 D  `( g. C) }. w  }# f01问题背景
1 w# x4 ]) b  r" V客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。
; N# C6 K# i% s1 G检查客户的原理图并未发现明显的问题。
6 d  v% ~+ }9 g3 ~) ~: r, k+ F! k* C* c  A

) }, m; R9 U- h/ t, l02问题复现2 e) G: c& ~9 T8 I9 Q/ Y# P$ T
测试配置:硬件测试平台 NUCLEO-STM32H563ZI。! f6 s* I7 D4 ?; ^$ B
软件工具版本:
5 z1 ^/ O* L  }STM32CubeMX Version: 6.9.2 % K1 t0 i" M' M# i' c. F6 k1 y% R
STM32Cubeide Version: 1.13.2
; N5 ~4 S$ T+ _( v  o1 b9 o$ Q- p' v6 I; M9 o+ l6 z
3 Y0 ?( ~# b, L9 B) [# H7 F, b
2.1. 测试 1:PB14 开漏输出异常 2 P& B5 I8 J4 k0 j9 y9 C
2.1.1. 测试配置
4 M8 E% W2 b  g8 c' b; I" g& E) k6 i; Y, T( m7 z; L

/ Y' j1 D" v( t1 ^/ p 微信图片_20240702171716.png
6 u' b! L9 T% n" y+ }▲ 图1. PB14 配置( h/ B5 F5 \( ~! I$ ^

4 |) x7 v% O+ O/ c1 W

/ `8 g1 J: N1 n5 T/ U2.1.2. 测试结果
/ d9 x$ T) [) L4 I+ [! E6 `, T: V测试结果见图 2: + {& j: C. y# y1 a( Q* a: p
4 M+ a, q& K9 k
微信图片_20240702171709.png 0 i1 ?2 U: J, {8 y

6 W2 g2 K" G0 }" x6 s) B# g# r▲ 图2. PB14 输出波形
7 W$ P+ C% L! E& R
, T9 g9 @* X4 ]1 [0 T/ w9 J7 v+ ?9 O7 X

$ _/ i6 w5 P: b5 e/ {. w; M从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。7 @. I6 g4 b* G8 a1 C+ v4 O) V; {6 ]

9 X5 y% e2 {/ C( Z8 U

$ m9 O; ]+ B- l查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:
  r3 M" i  _/ S* F7 u7 h5 v& e8 Y4 O4 x+ Y9 l# F: _  g
3 g6 G/ l. [0 [/ h" L# A  o
微信图片_20240702171706.png
+ ?, M/ a: c4 Z
: r( |2 ^% e6 L) J
▲ 图3. PB14 定义 1 d3 E6 ?  _- B

$ t2 }% P5 p: M* z. I* F
! E) U6 F1 v% l- C
其中_c 表示该 pin 脚具有 USB type-c PD 功能。8 D1 i1 m+ w1 `, B  P
& S& ]6 m8 {$ @

1 Z: ~' D8 G; b5 u1 V* n/ B查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:1 {- F) X9 V8 f2 p) l5 m
8 C* n) T. l1 |8 p: Y, P) x; p# d

( Q3 y6 R" T% z6 m& n0 V" f6 L6 p 微信图片_20240702171703.png 3 J' g6 ]5 L9 ^: H5 Q" D2 s8 `! H9 w

+ K8 s9 S( B, w2 ]▲ 图4. UCPD_DBDIS 描述
7 N# j" J4 H8 s- b, J# [+ \4 n- D) w' u3 k+ E

/ Y" N! l7 P9 i: Y4 h  j根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。
& O3 t' s! z: W* T! q
( f) ?4 J# K" x6 q

+ X) r0 u$ F" D. d$ F修改测试代码,增加如下代码:
6 }4 R+ i7 Q3 F/ P8 h0 m
  1. /* USER CODE BEGIN 2 */
    + j2 }) c+ }4 R
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);; E& X2 {. v& `$ T# a. p
  3. /* USER CODE END 2 */
复制代码

! o, ]( S$ H# y6 r
; j( ^! H- \) Y4 ]/ Y! d再次测试 PB14 输出,波形如下 3 K7 ~9 S# y- w/ K% N) W2 q( A8 R: P& t
( Z! L5 N. e+ b4 R  ^0 c8 s; X

8 U. j& m9 m7 Z7 ^3 S% B2 o 微信图片_20240702171659.png
" l6 N  A8 |6 K* s, _8 G
, M, ~; ]% F. D
▲ 图5. PB14 输出的波形
0 b: W* z. s% |. Y9 x9 _: u4 d
% L+ c* W( o% m; o; o! u8 L
& `; [7 H5 C* K
此时的波形输出符合预期,测试正常。 ( L1 q( ~6 W. g
5 {6 C0 I4 Y/ L+ N: t, f
# H. L6 D7 `2 y9 e9 l
6 q% x# L5 F& C$ y7 T6 z, k
  F) ~+ l$ _4 z) [
2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO
+ e8 I, |1 G* A' w( w; n4 s使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。/ F& t* y# e! {
$ A: {, C( ~' D% g: s) h2 _

7 k$ r! Z( w; K( D" E0 ]2 T8 i7 g2.2.1. GPIO 配置 1
: Y2 o3 T8 z3 B8 G8 D" {' h. ~  `6 {6 N! I
9 v& n# X1 h- X
微信图片_20240702171655.png 3 c$ _' J: V* O

& C1 K4 D( k' W! [▲ 图6. PB14/PB15 配置 1   T$ g% W7 h* o3 h% T2 q
8 m; P8 J# j! N3 y% I: R/ h$ |

6 F6 P; U4 q/ p6 B! H 微信图片_20240702171652.png % R3 [8 g& t% }3 ~# x

0 {7 U  V" \! ~+ h$ F7 k' W7 _6 a▲ 图7. TIM12 配置 10 d) Q+ G# b9 }( E! A" s

2 S" \) q/ ~% |+ q2 V  Y# j
6 y2 K$ H$ H$ k( d, ?
2.2.2. 测试结果 1
  x: z/ E; @+ G% ~* _9 Y0 T( ^9 z6 t; A" o9 F: A& ~

/ B/ v$ A, G1 z% |/ @" F 微信图片_20240702171649.png ) ?+ Z2 m' V5 t- q+ I/ L+ D  c4 f6 C

+ \% j+ h) R) R6 Q8 Y$ \0 j2 @▲ 图8. PB14/PB15 输出波形图 1 0 y1 Y2 e& ~9 P; ~
此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。* C/ P) ~) Y! \; A5 b  h) ~
9 d4 w# {* I0 S. r2 B
( m$ q( x. t/ T1 V5 z
微信图片_20240702171644.png * k: P, H2 Z) s; K
( N; t9 A7 s+ R5 {
▲ 图9. TM12 配置 2
& W' |* s: v6 s9 N0 E7 I3 G4 E* L* D9 i

3 @5 t: h# R9 n, J) Z2.2.3. 测试结果 2
# p9 k5 o& }; ~4 S& ~# P" b7 b5 x0 b/ @; u

+ H) ~% D$ ^( l4 J 微信图片_20240702171641.png
+ F) G& U5 p- r3 K. Q( g
  D% ~9 q, w3 c8 D# N
▲ 图10. PB14/PB15 输出波形图 2 . S* j5 p* ~+ G2 O  v# R1 E/ _! N+ G

/ C8 A+ G( M" F5 g; x! ~0 L, e
! z4 U1 B$ ~& b9 c! p) G3 z; g( L
此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。
7 f& e- \4 M( S& E# _( z2 A$ b  {, \4 Q# L3 s8 K" W

, D  q' h9 [) ^/ j/ \2 \4 W 微信图片_20240702171628.png
0 t* m3 N0 O3 y) y/ ^1 Z1 L* \- l% F

) g" e/ W/ U7 X: M: T▲ 图11. PB14_medium PB15_low 输出波形图
' W( X. \1 k! [2 o) F! e: H8 u; Q% A' H# z
' z! t! b, W: _
综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。5 D3 k# C1 a' Q

- q: v' j8 b8 V0 h

3 j# M( ~  Q4 O. Z9 B; B2 a4 h( L8 q: a03小结$ ^/ k9 \; }: {& [1 i( i' Z5 i
由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。1 P' J- n$ c3 u* H" e4 x
% w+ i% d. f/ j8 S2 S! K5 z
6 X+ u% X9 T0 Y# x1 \3 l# q
如有侵权请联系删除0 c$ A+ @" z( v" H# x+ @8 y
0 @2 d1 r% d' O  t
转载自: STM321 _# H$ ^, O& |) L
8 j! u% G/ g1 z
赞 收藏 评论0 发布时间:2024-7-2 17:22

举报

0个回答

所属标签

相似技术帖

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