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

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

[复制链接]
攻城狮Melo 发布时间:2024-7-2 17:22
8 ~8 c& \2 _5 O9 Y% R7 e
01问题背景
6 z5 i2 T2 G/ \% V* m# _客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。
  g4 r* K3 I0 N5 n6 I检查客户的原理图并未发现明显的问题。
1 G, d+ a7 ?4 ^: `6 a6 _1 _
* w5 i7 m+ m2 Q
5 k7 J0 w8 M5 n% ]* n; O" {
02问题复现5 c# L7 C; ^$ ]7 _6 _; h7 n
测试配置:硬件测试平台 NUCLEO-STM32H563ZI。6 a# H- O  N9 p+ R; O; A  O" ]
软件工具版本: 5 g  X+ h6 g5 G! w# l& B
STM32CubeMX Version: 6.9.2
) n' a: d% Q" P% O- e, I9 u+ YSTM32Cubeide Version: 1.13.2
7 M; h7 G; Z. @4 I3 k: c- d0 N+ |7 g5 L# u8 d

. h( q3 |6 K& O2.1. 测试 1:PB14 开漏输出异常
# N7 Y$ e3 F, i5 y2.1.1. 测试配置 7 V/ x" y' L5 I! l% G
& m1 Y, T1 O  }: u+ B& a; N8 i: _

, C& x+ l3 A  ~7 c  H2 x2 G. H 微信图片_20240702171716.png / y( M) h5 I2 ]4 q
▲ 图1. PB14 配置
" i* j- V2 _# j/ V* x' o( t4 z& C/ V3 v, d' Y

( @5 j$ ^; F4 S# V* I- K2.1.2. 测试结果
9 @6 T( B" S' K+ C: T/ w测试结果见图 2: * @8 |7 R' T9 {3 }9 R& K1 N

+ |8 `( X" _8 J2 C7 d 微信图片_20240702171709.png 8 ]/ B" V) W& G  H. ^
% O# m0 @& B# M% T3 x
▲ 图2. PB14 输出波形* t  m6 p- G- K8 M9 d+ K! q

, g" s7 v8 o# ?6 {: K
8 Z+ Y! r; ^; |- C6 U; y4 u5 l
从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。
) M2 r9 P9 n2 `
  U6 A! }3 l5 g. R0 \7 R& x1 t; {

6 |$ v: o& n/ Y# J( i查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:7 P) U/ o3 Z# I2 e# Q) \5 [+ F0 z2 c" Q$ B$ W

$ r2 N2 ^. s$ C/ ^2 D

5 _4 J/ D- P$ W 微信图片_20240702171706.png
0 a7 R& b! j6 g. x& D

  m! {, H7 ], ]6 Y, J# {/ Y▲ 图3. PB14 定义
& h1 H8 U2 c( ^0 I/ ]1 I7 |# m, Q9 A" j$ ~

1 r( H  W1 f" _& [1 g其中_c 表示该 pin 脚具有 USB type-c PD 功能。
( y6 h# S1 W7 K- j& n$ N" D% k: Y/ a& b* B4 u
3 l! Z0 Q# w; f$ }) T$ g
查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:3 a7 H" W2 e2 x7 r

  p$ T  v! k! q# Z
7 Q! z. @5 F% I6 n+ T
微信图片_20240702171703.png
4 \: U) Y. C3 Q/ x8 ]& W% L& G
+ c2 P# U# z" o1 N▲ 图4. UCPD_DBDIS 描述
: Z0 }! \8 G: _# K* X% a1 t* ~  `
" e2 v5 O6 n: T- K% Z. }
! W: U' y( v* V3 A6 |* W
根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。
, S  L9 F! r, E9 m; z
5 C# |; w/ ]5 X4 c4 e
7 s0 G7 V8 c3 E9 Y  A3 b6 s
修改测试代码,增加如下代码:- D; t* F  U0 O5 ]7 T
  1. /* USER CODE BEGIN 2 */% K* o. t( B- l( F' ]- s5 J6 _
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);" v+ V2 }# M  S& R
  3. /* USER CODE END 2 */
复制代码
( |, r( |  [: M

8 i' m2 z/ G7 I& q8 B再次测试 PB14 输出,波形如下
* c. N1 Z6 |) `3 G" Q+ k! `: ^6 j# {- i- V$ c' f

# t/ m0 v, @  E# R# N  r: x( ^$ \ 微信图片_20240702171659.png
  e4 c' v7 h; q. V* `8 W7 Y
9 @" k/ Q* z: H4 G: K
▲ 图5. PB14 输出的波形
7 q+ o/ s8 {" w. U9 f( `1 J+ Y: n/ Y) V- X& C

+ [! {! l5 W1 b  v此时的波形输出符合预期,测试正常。
  H. t( z* w% z9 R
- O$ s7 D! G. }" y5 z" V
/ F3 T$ Y) b: u6 `0 G. E6 N. F
" G* V0 z- X, ~, c- F/ W# }2 l

0 W5 ?$ e; M6 U  q2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO
7 U; U# j1 |4 K7 Z; K! q使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。- N% A3 Q0 V7 K) P: Q3 S$ Z
  ?* u0 J) ~/ ^$ j
9 M9 u3 d7 g" B: ~3 `% M/ a1 G9 @+ ^
2.2.1. GPIO 配置 1
. q& i6 ]) I) r+ U' [, M+ e2 ^* Y+ u+ c2 z
& J: z% I6 _% A$ m
微信图片_20240702171655.png
' w( O8 k* _1 z2 |/ V7 c5 f  F# ]

2 ?/ t1 q# h/ d4 l1 h( b6 m▲ 图6. PB14/PB15 配置 1 9 G8 h: f5 J$ H( \3 v& P" Q; c
9 C8 ]6 S) k+ n. X# g, A

0 F$ H4 N& i& B0 u+ B) Y 微信图片_20240702171652.png
, ~9 l+ N$ O& o

: P2 p* s" s' Y▲ 图7. TIM12 配置 1
4 ^- {4 F9 {# g7 w$ S/ ^5 d0 i' v+ g. {

4 g8 L0 g# k6 x1 K2 j- g6 S% T2.2.2. 测试结果 1
9 w5 r5 a& Z! r: }# y" t: e1 G5 \- \1 y: B3 h; T5 e

& X& n% W; q: A8 g3 a! q! X, P3 y 微信图片_20240702171649.png
! [, \  `0 Q- a) Z1 T8 x
1 Z1 d5 y) g; Q2 m' `( X
▲ 图8. PB14/PB15 输出波形图 1 0 a% n6 ?, i' V. E" O
此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。' o' R& a- o% [# u7 ^4 R

% T6 p( S4 ?  `* C% u5 l6 _1 q
; E0 Z7 f- j$ O$ Z4 n" @; B
微信图片_20240702171644.png 9 ]+ I, f: N+ a( N2 ]  U( Z
2 S. s/ y; O3 G# n
▲ 图9. TM12 配置 2 0 ?; B/ s/ z6 N* D# A, a( J
' k( u8 i- o8 s# G- S# |- l
& q& I1 h' z5 B9 z, L
2.2.3. 测试结果 2
" X; @5 K& Q5 P# D# p( l8 v+ H! m/ K& b) n4 b

7 h7 f- Z% k) M( L) p1 Y8 | 微信图片_20240702171641.png
; w0 L8 ]7 [) _8 f# r' E0 H

" }+ Z: ]# z  V6 z, d▲ 图10. PB14/PB15 输出波形图 2 ) Q9 S6 F4 |& Z- v
  f$ s5 i: G4 C3 L: t
# W, ^7 {  K$ v3 t8 j
此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。$ _; o- z2 ?+ b# L0 ?
; I4 T4 G, ]2 Y* {" s
& A6 A/ F7 Q  I' h  O
微信图片_20240702171628.png
% g& A7 B1 }# V& }
8 j8 N# l+ L* f$ t1 d' u0 k1 I5 v
▲ 图11. PB14_medium PB15_low 输出波形图   k$ s/ I9 ~" z9 R* I8 b* O
) U2 D, C5 v  \" w- x' j
: ~6 r& |3 K6 v5 Z
综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。
) P& m" `+ p( s# g. R' p# D; L( c8 K5 G

+ J4 z2 z1 U! ^7 @, j' Z. U2 \03小结
* ?% ~$ {; u) N8 Q' {& n由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。" i4 C. T+ x& y( g. Y

2 t/ v6 }3 h3 G! t6 x

; I0 [8 [6 ]: U( O1 D7 o, h如有侵权请联系删除
" k; A% n) h8 \* A' K) X6 y
" w$ j; i% A& f! @0 }3 @
转载自: STM32
! v5 \' R# E6 p
# i& s, C2 F- P
收藏 评论0 发布时间:2024-7-2 17:22

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版