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

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

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

  I7 \; ?* t+ c' D) h01问题背景
  F7 V& Y+ ~" O/ g客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。/ |5 ^2 R- f& r3 c+ l
检查客户的原理图并未发现明显的问题。
! p! r3 [# f# k0 ?- n: r, R( E7 I5 w- Q1 ~2 N

7 C3 D. ~3 a$ T. F  C02问题复现
3 ^; {/ g% A' z2 L% K: X; ]8 d测试配置:硬件测试平台 NUCLEO-STM32H563ZI。
+ C+ w& _7 p+ T- T. s- @软件工具版本: . N# J" y: e# C6 b
STM32CubeMX Version: 6.9.2 2 T& C$ F: [+ W' w1 @8 Q- j
STM32Cubeide Version: 1.13.24 V+ l7 [  ?' e# s# l

5 |9 R. Y6 v& B( q7 n! S
1 R2 y7 B) [4 L* Z
2.1. 测试 1:PB14 开漏输出异常
& C9 D  P" f8 Y( O( e. x2.1.1. 测试配置 9 L; E0 ^' [, j! F9 x
) q6 U; r- J1 \5 d  e7 s6 O* X* u4 s

0 b9 y: ?' m- Z& N: @3 t 微信图片_20240702171716.png
7 [* L# B3 b. h4 [( t7 A5 G▲ 图1. PB14 配置
# u- A1 a$ b2 F. K3 T) r) i0 \9 c+ U  `
( E0 ?) G3 C4 R- x
2.1.2. 测试结果0 j2 E" w3 F" D: t" M) ?
测试结果见图 2:
$ ]/ B  u+ j4 S1 M; F" f! k( H, e0 M9 J! r& w& e' q, q
微信图片_20240702171709.png 3 u6 B# u6 U' v- U% b4 _5 G

* k9 P2 t8 T5 C) O* t4 ~) A▲ 图2. PB14 输出波形) Y. L* J/ s$ l2 w
3 z- I4 |- |' m4 H' z* \; M! a
9 G4 x9 N) w0 _7 m. _" @1 O
从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。
2 I6 r6 k+ d# g: _
3 A* w3 t) l. {. K) F4 Y5 `1 H
7 c  `# H' j: F" A# I# b! m
查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:! E$ y3 Y" J7 f; A9 [" U
! z; ~, ~# V* A( z& T
5 _, Y' F1 v& ~) c! f) ^+ X: E
微信图片_20240702171706.png 5 Y8 e& ~5 U0 B

3 \" T$ g1 r' q& b& k▲ 图3. PB14 定义 6 |; o) Q% g; c9 }% R9 F, |

/ N; g7 e9 X, s! T

8 N. b  y/ ^7 Q其中_c 表示该 pin 脚具有 USB type-c PD 功能。6 S0 t  n! ~+ \& P3 m
" `3 P) M4 N5 Y& \, j- W

  Y8 C' A8 @( @! @. ?$ {' P( p查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:
3 S3 ~; n6 M; B9 c, `% w' H
$ t" n9 Z. y0 r: K  S( B1 ?
  S) F2 s* _8 {1 @4 y; ?
微信图片_20240702171703.png
2 }' H0 w+ W3 S2 q- \* q! A( B6 ^6 F# J9 Y9 Q& O
▲ 图4. UCPD_DBDIS 描述 6 J& ?8 g/ v5 n7 [+ u6 B$ j# g% i

$ r7 I, k8 ^7 c# T% B/ V" O
6 L( v/ \# t4 L0 `, ^. Q
根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。
" H6 F4 {" y# A$ z& ^8 U; s8 w* N1 {' o8 h. [$ I* E$ i5 q

6 p' j. W* Y& r' }修改测试代码,增加如下代码:9 _, ?0 [  k2 f6 o2 N
  1. /* USER CODE BEGIN 2 */8 x0 S4 a8 i8 U' l& @, T7 a7 a  o- r
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);% G4 X! O% e( F' r6 ~7 X/ L: t
  3. /* USER CODE END 2 */
复制代码
( z; ~) ~' t' t$ p9 f- R7 o
  y. I+ a) a) x- V
再次测试 PB14 输出,波形如下
/ [" g7 _7 K0 q% S# A& ^- @
: f. Z$ o, V3 n8 O$ H% j

- P; f7 K8 N% R! `$ D0 b 微信图片_20240702171659.png # V  ~2 o0 ]5 l4 R3 w8 {- N* Y
7 e3 Z2 }* x- t9 y7 W+ w  K
▲ 图5. PB14 输出的波形
0 a2 J  F, z: \/ i4 v1 M3 @
6 P% L) W. T& g/ E4 l+ T' @
: }8 z( b9 s( N0 w1 ?' _
此时的波形输出符合预期,测试正常。
4 B3 {7 z) r# D: X) Z. E
  M1 w% \0 q) d

; ]: O# H, p+ D# j
) S5 T, e! B' T: r6 y4 w

# Y5 H3 F" T9 |2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO
2 V2 \3 t5 C1 F2 Q2 Y使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。
7 ~8 U4 }8 C7 E  ]2 I
$ d% a% T# Z% [; K
, g8 F$ Z, v# D; _1 ]3 f
2.2.1. GPIO 配置 1
' i: g: R$ w4 O( T" J& I! t
1 ~5 s0 _4 F$ D

6 a7 o6 r. L' z4 f$ J 微信图片_20240702171655.png + p  l$ u( k! A  N' G

6 _. x$ S+ |' ?▲ 图6. PB14/PB15 配置 1
. Z. ]: k* L% T8 ]/ w/ h% n5 n( O* ?( Y" ?0 \, o1 N" n

4 w; i% W$ B! A, S 微信图片_20240702171652.png
+ d) E* d  L( `
( p& C! n- @/ u! t  @' k8 z
▲ 图7. TIM12 配置 1
7 e& Y' _2 x4 Z8 n/ c' J  b5 A/ U: [4 o" c/ I: M
% [0 {9 O+ W  t/ Z
2.2.2. 测试结果 1 ' j! E( z. F3 \: ^$ y5 u

" y3 f8 K" [/ k& P- W
6 {! _3 V: D  N6 H& Q5 b
微信图片_20240702171649.png . r( w# B4 Q: V- i, J6 V

5 V- d8 z9 {: o  y8 i  B▲ 图8. PB14/PB15 输出波形图 1 " \8 A6 h& w+ @5 y, ^
此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。
4 v& G3 m$ U$ ^/ _, ^+ [0 [& l6 L+ h7 d: A# o- b; J
! Y; R# q3 Q6 ^: n
微信图片_20240702171644.png ( h! Y4 P1 s4 N2 x1 I
# \* e4 E! B4 r# `/ W8 O
▲ 图9. TM12 配置 2
; j4 t3 N- Q% @' w9 J4 ~
8 |0 t  m! e9 H9 C; j
# r1 \3 N9 t$ n# Q( E
2.2.3. 测试结果 2 % R! S+ ]+ M1 Q

' l+ T2 m! k7 D7 L9 ]+ M

) @% X( H6 G' e- @9 F+ E" n 微信图片_20240702171641.png ; g+ P2 z! R" `2 f

4 L. |: S! L" l" W▲ 图10. PB14/PB15 输出波形图 2
; Y+ Y' b: S/ c
( i* ?+ y; J4 d0 K+ Y4 H6 k/ ]
6 V2 _% {% r# |* ?! U
此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。
6 A4 j( @  A! T5 C6 S5 k
' v) z( U# P5 l5 x& A' q; ^
7 [+ d% z: x0 V- M) ^5 N
微信图片_20240702171628.png + k3 b6 Q- X5 U# w8 u
# ^6 L" N6 c; w, e/ Y9 M
▲ 图11. PB14_medium PB15_low 输出波形图 $ Z3 A6 s$ ^. h. g
5 g* i& z* ?( O9 @
0 B" b1 M" ]6 w7 f" _
综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。
7 _# X* T  |1 _+ Q1 s: j( {# A- L+ P, J0 B1 C

' z* h& V) |. I  ?$ P: ]1 [03小结
$ G- e( v* p" f, n. t8 p由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。
, Z4 v& E  B+ K- P0 X) e5 o, N1 J0 ?( c, o
  s5 {+ [' r4 |% @' i  z  e
如有侵权请联系删除( @, J3 a8 A$ \3 y! m; c% M" e
& n% x, w4 M- D4 k" x" X* h' `/ j$ ~
转载自: STM32' [- R: M8 f# b- Z3 H
$ a7 q$ h3 O/ @- h% |. W
收藏 评论0 发布时间:2024-7-2 17:22

举报

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