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

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

[复制链接]
攻城狮Melo 发布时间:2024-7-2 17:22
* D* i4 j+ D  ]! p3 M( l
01问题背景0 ^, P/ q: {% e2 F' j
客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。2 J. r( I9 Z; ?1 E; c5 F, a* q. C
检查客户的原理图并未发现明显的问题。# o8 p( n6 o9 P( H

  P# K) n2 T& T7 _5 v
& M: W+ x0 k3 Q- `4 w
02问题复现3 i) e' b: o: U+ ?" e7 q
测试配置:硬件测试平台 NUCLEO-STM32H563ZI。
& a1 [' p( N% n' Z: T0 ~+ c软件工具版本:
9 P2 X6 r4 r3 U+ N( r5 y, D" ZSTM32CubeMX Version: 6.9.2 0 |+ C: G$ j2 I
STM32Cubeide Version: 1.13.2
3 g  [: E) }4 L+ w5 |  {
- w& K  @' ^( l3 w, Z, f
& m# Z  ~% y( W* K8 N; u
2.1. 测试 1:PB14 开漏输出异常 # f- c# a" G+ S* W
2.1.1. 测试配置
8 U3 `  l3 X" v6 D$ D* W9 u. ~& L! X. ^1 I, N1 K8 ]! ?

0 _0 {, z1 F4 @5 F& E 微信图片_20240702171716.png $ A& V' F. ?( m  p. W2 c, M
▲ 图1. PB14 配置
- K6 K  r3 z" H( \* b: C! v  A: H9 }% N: i4 u' _& N

- U7 O4 ]# p& I7 W8 W: Y0 y2.1.2. 测试结果0 ^0 U/ y( ~7 |9 t9 A  E# ~
测试结果见图 2:
' v, v7 i2 M* N' G
9 c2 g& c5 p7 t3 o* [  @4 `! C 微信图片_20240702171709.png
+ Q6 p. z$ X3 U3 l/ _# X+ f
7 }) [! a2 z6 ~" ~" }▲ 图2. PB14 输出波形' I0 @* q7 S% r/ _2 a- |
2 x4 z3 R  k0 W4 S, e
; Z+ E, B' J& F5 f3 c2 r
从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。  k9 K' R# b2 ^) F& J* A& J
- a$ I& f/ `7 S) r

+ B8 B: U3 K( s* G  L" Z查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:9 E: u5 K, w& A
# M( T. A4 E6 J+ U

2 ~" U/ E  r! `3 P$ n, H6 b 微信图片_20240702171706.png % r3 H! s3 A4 y5 ]/ s4 F
& b/ p! Q8 R) o, i
▲ 图3. PB14 定义
2 I' y. q1 D; r) j- m6 {; }% }! R& k: _

+ V/ r- q* l# s其中_c 表示该 pin 脚具有 USB type-c PD 功能。
) s, ?, y& a" k, o$ a0 t. H
. c7 Q# u, \: B" r+ `7 }' f5 W

6 W- D" l4 Y# J1 L4 n查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:
+ ^/ V8 V( T% R" F, t
  P3 _6 X4 C0 X' u( Z# |$ [

' n$ b) O3 I* [% Z# U0 i 微信图片_20240702171703.png 4 @5 `4 B$ Q8 S' B5 j  p

& h' c# \( z5 |( C% _' }▲ 图4. UCPD_DBDIS 描述
2 w' W" N9 U+ ^! i
- W7 u1 _: P# D1 ]
6 i! l$ p, V/ c: Z6 p! E
根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。
; X2 ?) {' l$ _$ S# @; x9 W2 O3 M9 z1 C% Z, i7 q

" H; F: f4 u% X4 x: r$ P修改测试代码,增加如下代码:5 B; z2 b7 v: K8 K. w- X& y
  1. /* USER CODE BEGIN 2 */
    * W, R0 Q& h/ g% w) ?) ?
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);& w+ T+ v8 ^7 w! p) G. `
  3. /* USER CODE END 2 */
复制代码
/ k7 R; g2 F6 X$ V0 I; E5 H) V

6 M9 p, _$ f; L- ^' ?- }: H再次测试 PB14 输出,波形如下 ! N8 Q* @+ D1 u0 M! Y

; \0 T8 g8 G& n6 L% K5 Z) t( k3 z

! ?9 v; M" v: y0 \! w 微信图片_20240702171659.png
( s: d. x9 x) S! l# P
& B7 B; o! ~( M1 K% T8 {+ c/ ^
▲ 图5. PB14 输出的波形# ~( k& C* [8 O: J: p
; X7 H8 Z6 j; X4 M" x

4 q" p! m, n8 l  O此时的波形输出符合预期,测试正常。 - E% O1 A- d% v$ K& I5 V1 a( P

& n$ z& A# V7 F7 q: u
! Q* V& |  ^" x8 s4 A

( h: p" L. q5 o
# X+ `; z( }8 K
2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO
9 M" q& Y- @% ?7 @! `使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。
. L. Z. f) |- S/ M+ F
( l% L9 [/ i# Y+ n& Y) R
$ Z4 S  W  Q7 ?' c
2.2.1. GPIO 配置 1 5 f; o4 p/ W7 v7 g5 x: Y. f

" x! Z4 p$ W! C( X, }1 R
) g+ L! c* B: Y/ G& a
微信图片_20240702171655.png
  d+ f' k4 I0 C5 s9 E8 f" `
$ X8 V+ K* v& x* y. j
▲ 图6. PB14/PB15 配置 1
" l& t" R6 v1 K. i) T1 j: s
' J0 r: M9 w# B* ]
! D# _/ \# |% g$ M1 O# h- S
微信图片_20240702171652.png , X, m4 r2 x  R# W4 o
3 \+ ]1 w9 N$ p
▲ 图7. TIM12 配置 1
: }! ?; E2 T9 j/ i: w3 b9 n, O; D, [1 }6 ?

" q, }- Q- @. m- x, G( d2.2.2. 测试结果 1
; e9 J* z! U5 Y6 _% @
* Z  I, V9 H" D) H* ]1 {, d
% ?1 Z. j3 n% u, a; L
微信图片_20240702171649.png
7 {- I* P  m  E# `$ S: z# W7 I2 }( P4 d

; d" M9 I/ \9 ?/ k" |& W▲ 图8. PB14/PB15 输出波形图 1 2 q, _+ _4 k( V  ^* J0 U, s; S
此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。
1 b% Z0 P8 B) d3 O* j5 T) B- Z

/ [% E  h0 }/ Y! G3 { 微信图片_20240702171644.png
9 E: T3 O3 I5 X) ^: L) P9 M

1 l( A0 g  a7 H9 Y  Z4 z▲ 图9. TM12 配置 2 6 I2 V: }% [9 ~
+ S1 _' ?; h" u1 ]3 g& Q

6 Q6 ~) c5 b  S9 d1 {2.2.3. 测试结果 2
# V$ e, _' S/ \4 l7 ?! T6 d+ A  s" b! e% T0 s$ @

( |( \- O6 [$ _1 R0 o* I 微信图片_20240702171641.png
/ _5 Y4 {/ F; L; ~) @  p

! o. {$ X6 C& r- N" D▲ 图10. PB14/PB15 输出波形图 2   R5 r1 Y  j1 m2 b
: _* r- k: H3 u6 X' g$ ]  }
7 Y5 K! J5 C2 |4 U! K  Q8 _
此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。' K# s6 }) C0 i* D0 Z! W" e+ v
2 W( [6 ^) F! z! [& |1 G
, E  h% e8 ]4 |, g! O
微信图片_20240702171628.png
4 |' s% v+ e) G& N; L6 g, w: w
7 ?$ b, J* [+ d
▲ 图11. PB14_medium PB15_low 输出波形图
' R/ g+ Y. d9 }( L1 U7 u
- w" @* E3 p  }" k7 T" z9 ?. B

5 F2 s/ n% Y3 ~* T综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。
4 B  [4 P$ z# Q+ q7 a3 b
& [5 `* N" N& ^% Q0 M- u8 ~& @
/ A  T3 {# W  |0 u* D& C7 a- U
03小结
6 x- O; Y6 H# M3 P( c0 a由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。
8 s- [8 {5 u$ N, f+ y5 t4 |# z9 I7 I. Z1 t/ ^! M

+ c- N) n7 ]) L+ V& I如有侵权请联系删除( {- m* S) t7 ?( I# N7 Q

" g' {) A7 B9 R9 E6 i4 N7 E转载自: STM32
% B! e8 m* [7 z8 A
; W% C- J/ Q0 d; e' U
赞 收藏 评论0 发布时间:2024-7-2 17:22

举报

0个回答

所属标签

相似技术帖

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