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

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

[复制链接]
攻城狮Melo 发布时间:2024-7-2 17:22
$ u- J  o  l( o( ^
01问题背景
* ^/ w7 s" O) f* s; [, a客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。$ H* a& N. z+ a$ _
检查客户的原理图并未发现明显的问题。2 j& j( J* J5 r! b0 U7 u. R5 G

; ^1 l7 C* E8 L; B

( {7 Z9 v# k+ }+ v+ b% P+ S02问题复现
) w/ b8 ~" ?* ]5 G- c8 F7 E, i测试配置:硬件测试平台 NUCLEO-STM32H563ZI。, g/ \, t  Y* p- N+ \" p2 E8 }8 q
软件工具版本: 5 Y# \! T' @/ u" \2 z: k
STM32CubeMX Version: 6.9.2 + e, ?: t1 \0 l+ W4 \: u
STM32Cubeide Version: 1.13.2) s" L/ c6 W4 `1 u4 |

) x2 P- m" m: O0 ~  _
5 V/ `; M( Z. E2 p' e) a7 }
2.1. 测试 1:PB14 开漏输出异常 2 m5 ]: W% ^4 y2 A
2.1.1. 测试配置 ) F5 i  f6 G$ e* U

2 o1 x* P& h4 w2 S, x7 d$ o

. E6 s6 ^" _4 l- i# f* c. K; p 微信图片_20240702171716.png
" m! [  K8 A+ z+ E/ I4 P▲ 图1. PB14 配置9 _1 `6 A* A* b, @/ g8 w5 ?% ]

0 W$ E' J. l- t! G
# Z, j- T# j2 q+ e8 B0 e
2.1.2. 测试结果
$ Y4 V* \# N+ G7 n6 S! E测试结果见图 2: % |% A+ {# S" g( `$ r( N% b
9 g! \! U8 s- @5 R* t
微信图片_20240702171709.png : I- {1 V' I! o3 `7 W. [4 \$ w5 q
1 ~4 x$ n6 M6 ~1 ~8 ?
▲ 图2. PB14 输出波形+ w5 z( G3 ^/ e! g! i
3 [! g3 ]& Y3 u6 ]/ g0 J% J
9 s2 k' e" l& R" V
从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。+ W8 S  p- W! l$ u
5 z; A3 W- z6 Q: U8 z' N0 y8 P0 n
2 ~7 A& o" C' F$ c9 l% }* f" b4 B
查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:8 U  G' x3 c7 j6 c

4 g+ C" \3 m8 j: X0 i# J6 E" ^

$ A! E! P: h0 z  u6 T 微信图片_20240702171706.png 5 A! C" y0 K4 s, [3 R) n* f

4 F1 g! L4 B0 T; B- ]▲ 图3. PB14 定义
/ o' r* O9 e: A5 {/ U0 m$ D& J' b& t  {; Y, a- g. g2 U5 w
. E, v. M* g8 R4 V
其中_c 表示该 pin 脚具有 USB type-c PD 功能。# ]2 F. B( Y* X+ `  K
$ q3 M1 F/ `' n5 k8 a& m
# b7 ~) U# W% G3 |2 {$ ~
查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:
$ k$ O$ }3 d* x" ?7 |
" J  K; @3 s: h" H; w
5 H# j* w, A. J& O1 w5 o
微信图片_20240702171703.png
2 x6 a9 x" C/ a$ H$ w! ]8 t
: u: D. Z- L' a( j5 t& }# r▲ 图4. UCPD_DBDIS 描述
' m$ H. U+ r, @2 u4 a7 d" K1 m5 f* d% |8 O

" z, t4 a. q! M0 i0 b* ]根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。! s4 ^, R' G! ^7 h; U0 X: N( |
8 P5 ?# H0 G* d; r; \) m1 j

- G# \/ e2 k2 C  h修改测试代码,增加如下代码:
  {. M. I. ?: [( \: c3 n7 Q6 F
  1. /* USER CODE BEGIN 2 */) A% w0 ?, {& W5 b
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);" i! [5 q6 F" u
  3. /* USER CODE END 2 */
复制代码
, j' l8 m, Q1 F

$ y6 _" k; E/ `1 L7 g7 a2 e再次测试 PB14 输出,波形如下 3 _& @& z- w" F
  g+ @) c- T3 _3 ]6 c8 S1 D9 g( N1 s

/ P; S( x# q  G+ }/ y! @1 A$ R1 i 微信图片_20240702171659.png
% H4 S& T9 p. ~% y0 I
4 f! G: M) ^0 X  h+ e* F, r
▲ 图5. PB14 输出的波形
& b: ^6 ]8 i5 O
) j. H( A# H6 @
* n' J0 Y2 P4 k# h$ b6 I- \9 n
此时的波形输出符合预期,测试正常。
8 l$ ^5 H- |1 n" ^1 T+ l
; q2 o" m4 k: G3 K# V) h

7 o$ v; B' J) z' d, C2 p) M0 W8 b
' A1 v0 |& B* j* K4 A

( L: h. D" f: B8 O2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO; Q. |9 _$ Y$ e# r3 Z
使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。
# j2 X% f4 [8 K& A4 E: A
8 J: N1 t- y% `) D3 x* H% G( t

. _( U( |6 T- ?5 h" q2.2.1. GPIO 配置 1 9 l# \+ s$ X/ b$ x5 w9 O9 A
: W" n; d( r: D

5 l9 H; r$ h4 a  } 微信图片_20240702171655.png
5 B; o) C4 n- u4 D! u% k5 x5 J$ m
  T2 }4 q; M0 m- k! a5 j3 R* c
▲ 图6. PB14/PB15 配置 1 ! Z  U$ @; V  d  k' \* \" e4 A
" z$ a$ H; L- H# K. j$ C

3 i- @: X. }/ O4 I3 j- a# @( a 微信图片_20240702171652.png
" L, t) S7 m) n' C9 _
! x% r/ n2 k! c* q% d0 b+ a5 k
▲ 图7. TIM12 配置 19 z. C+ s1 E# N: I, @5 c' Y, z/ M

/ E8 h: U5 _6 s2 e9 n

  v- i# u5 A# u4 Y/ o5 A1 ]1 F' F2.2.2. 测试结果 1
5 Y" i' M; J2 P. w$ c% ^" u4 x) W6 |+ N  |3 Q3 L1 f5 \

3 k4 d+ p* i* `8 u( y1 P 微信图片_20240702171649.png
& o0 c5 x& I' D1 g- J
' E/ E, J5 N# H9 P" Z0 y/ ~  O
▲ 图8. PB14/PB15 输出波形图 1 ' e( {. u( J- x. c" {0 W6 Z7 w7 m
此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。( {6 I; ]4 P( b) L* j4 \9 b- d

# o7 R( Y$ d9 f
  M: ], p4 R( A( x' p2 `
微信图片_20240702171644.png   j( A7 x! G8 b5 D; c5 E

% M2 d* A" g, Z, L# H6 m▲ 图9. TM12 配置 2 " l, E4 B! j, D5 s! A/ t
1 }+ m& [5 p7 b& ?" V
1 n( `2 r1 M/ B
2.2.3. 测试结果 2 % |! Y4 M  Z3 b

6 \+ ^" [6 Z$ O+ {& o, [7 X
) A6 b8 \% \% c7 s3 Y2 ?% K+ S6 x
微信图片_20240702171641.png - F5 m  t: j: R, e/ U

4 g# X. Q8 h) N; k/ r  d3 p▲ 图10. PB14/PB15 输出波形图 2 % O6 ~9 e, e3 L+ g. p

. v% I* w5 I0 |( k
/ J) r6 Y# J! e+ n6 q7 i# b
此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。
! j, `7 ]# J8 x3 Y4 q+ I( V) q* R2 f: a
: a5 v4 u$ j( s0 d& ?
微信图片_20240702171628.png
9 B& C4 g1 V- j( N9 T- n$ y, p

/ a- b/ q* }) \8 e" ]0 C- Z▲ 图11. PB14_medium PB15_low 输出波形图 " q, W7 v; d1 p* j' y+ j/ P
! Y# o% b% H  K: A, I7 a
$ S' p/ G% Z+ H
综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。- f) ~" X6 d: I: _( c

( F+ u# }; f& t/ A2 v( V  V

; e6 Y- x; c' [* _% T03小结
3 L0 |& I5 f2 k) a9 l由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。
7 b4 y% y% r$ r1 e/ B
& r5 k3 w2 |- ^0 Q
7 G1 t% j+ F1 f
如有侵权请联系删除/ m2 e/ f/ Z4 e4 V$ R% P+ o6 `7 S5 Y

# I  l5 r4 G* W" P6 b, c转载自: STM32
, q2 n% L$ _2 i. F9 Z9 o, z0 P* c3 g8 g0 R3 j' Z' I/ ]4 A( {0 Q2 Y6 ~
收藏 评论0 发布时间:2024-7-2 17:22

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版