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

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

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

# T4 b$ y, R$ J4 R8 x01问题背景
- i! }+ {, O6 i  z0 S; f客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。, V8 i3 M7 _# A
检查客户的原理图并未发现明显的问题。
; G* ^. }4 s1 m. I" v
* U! d& H, e7 S3 J2 }- A' t! ?
* N  p: d) d# |6 l% g. o
02问题复现
& {; y! i) O( ^9 e& G测试配置:硬件测试平台 NUCLEO-STM32H563ZI。
- Q% m  @1 v# L软件工具版本: 1 h; K4 R$ c) T
STM32CubeMX Version: 6.9.2 % j9 @$ t% |8 \1 d& e2 l9 l
STM32Cubeide Version: 1.13.2
3 f; L$ B% n  y* q
) l: a& P; \9 O
- x* v  o. I6 A& S- i
2.1. 测试 1:PB14 开漏输出异常 , F: ?# h; S% x6 [) c
2.1.1. 测试配置
/ k) ]& e  b, ~% o, M5 w
# R0 z! Z* G& R9 x; W+ S; {
5 b7 f/ N0 T$ ~
微信图片_20240702171716.png
& L9 b* k, S  o7 H# T▲ 图1. PB14 配置
# F8 e; Y5 I4 i. Z0 d3 S# W3 u9 K. u$ c: Y# t

  r5 X) C4 B4 j) G" ~9 `2.1.2. 测试结果3 r2 q3 ?, {  n0 D2 H4 @/ Y: q
测试结果见图 2:
. b8 N6 L, V* E' U' `6 ~9 d' `0 W6 q. n
微信图片_20240702171709.png ( i  K/ K  o! [) }
$ L3 u& G  `. l' o5 h. F
▲ 图2. PB14 输出波形; J" X9 |! x7 u; z( C: g# _
6 p: E: [4 `+ K% }2 D
  ~0 p% ?* h! o+ ?- K8 s3 _( J0 B
从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。
8 X8 z" |' g5 `# ]$ U* h7 Y( \, U1 Z1 I: M/ n. ?

# p2 e$ M# d8 h6 F, l+ l, E2 H查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:: l; x3 Q+ M. X6 D9 w4 z

* a9 z" |" m0 }% J% k

# D& s- Q& z" _8 r; | 微信图片_20240702171706.png 8 H' S* x' v5 q; ~: @7 H
$ i+ C# W( ], v0 m( v$ r3 u; m( u
▲ 图3. PB14 定义 ( B3 t2 R7 U2 U: U

0 |2 N' m7 C6 D* `2 ?/ c7 P- b+ P

% T& @$ ^% J& g. Z2 u其中_c 表示该 pin 脚具有 USB type-c PD 功能。8 [2 ^& Q$ A8 h7 w5 J( E
( m6 D$ l; U; `7 I2 I; {

) b- c- \2 ]+ a  x: N+ F查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:7 @1 v/ j1 M+ B8 O5 B' N7 N

- {: c5 A$ A" H, H% k6 o
- A' j9 X2 c# D: g; H1 F
微信图片_20240702171703.png 9 ^9 f! O+ I* L; i0 a- ~; X
; A' @: P5 o) ]' H" D. s) ^
▲ 图4. UCPD_DBDIS 描述
8 y; Y8 s1 `8 k8 B, m
  q$ k1 o8 D0 F# D$ R  Q
  k6 c5 L# c4 l8 Z3 |- {
根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。$ `( u* w9 W! h* _. j# K
1 d1 H- x, w1 a" E4 y
- u  h6 k# X. V( k' d+ H
修改测试代码,增加如下代码:
2 ^% P5 r) G0 f5 B  v2 F/ V: I
  1. /* USER CODE BEGIN 2 */
    1 v5 K. T# u1 H! h8 k) N
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);
    4 q1 q- a) G' `6 Y
  3. /* USER CODE END 2 */
复制代码
+ S- p( t2 j+ z6 \' t1 y

5 R& i$ h$ ]$ t- q- K) [' |8 a5 e/ T再次测试 PB14 输出,波形如下 9 Y! y/ o6 v# V  d: d

/ a! E  y' |7 i2 \0 q4 K
, Z; a' _: e& E0 ^+ _
微信图片_20240702171659.png
/ j, c+ W( L" x( @4 B6 p

1 n" x: T2 }, ^▲ 图5. PB14 输出的波形; ]: E, `7 |. K6 C7 X

, r9 j( G  T- E/ X; `
8 A" t7 V3 @3 n& F4 u4 T  d0 e
此时的波形输出符合预期,测试正常。
# |' B! L7 i4 m
9 c! r2 }3 z  s3 _4 N. j

' Q- F: ]& J5 T% L( Q) F
) K0 ^# {8 q3 y

) z: y3 N9 U, x2 Q: ]3 m/ |" m2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO) W6 b8 ^' P: L0 ?7 b# S% `
使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。3 T0 s6 I; }- `2 H% `
5 g/ S, x. C& ~4 W

4 l1 p2 b& }" w- @; `0 n2.2.1. GPIO 配置 1 - p: d( R/ D1 k: I3 p. I& H% `- R
; E8 y4 e4 g0 \. k  o8 C
4 V, X& C, i" R' n
微信图片_20240702171655.png
0 P5 \3 N2 P# T
1 s/ [* M+ [8 j0 T* u: d+ ~' o! Y1 w, u
▲ 图6. PB14/PB15 配置 1
5 J. A) E5 T- t: W  R, b5 s
2 P8 {+ s3 Z4 t8 W4 H* V0 _& R
2 p* V2 J8 y' x5 b8 c8 S, [
微信图片_20240702171652.png
- F7 a0 I3 `) J. j. P
" p& Z3 x" B& s2 F
▲ 图7. TIM12 配置 1
, H' [0 s7 K% Z2 n- O" H9 q% z
* ?0 D2 G  d' F/ u
1 T. c0 Y$ H; y* l( V3 ~% i
2.2.2. 测试结果 1
- H( u# F( R" @! R; n$ s% _4 C$ \$ L+ K4 [, u. @
/ j' ~! k0 X$ C) Z& ]! D
微信图片_20240702171649.png ( x: F8 K/ k9 j! e( r

! _! B) p  K9 _( i/ Q▲ 图8. PB14/PB15 输出波形图 1
% d% k8 b( }6 ~6 c% t1 ~( O此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。
- X1 J  x/ B' P
6 V: C" y4 J9 f5 Z

: y2 f5 I) R0 z- U, H" h! f 微信图片_20240702171644.png
' J: @$ j. P% ]+ T/ K9 c

- O% }, _0 T& h: L▲ 图9. TM12 配置 2
, v' M. a4 I* m/ C! m5 i  D: R) x. Q. i) f9 F1 H4 m2 x3 j, u

1 f/ X0 U  P* T) ^* B* U9 k2.2.3. 测试结果 2 $ h& K3 D, [4 ?3 ~: ~) Z

8 _. y5 V/ B$ c! l0 X! h; }

0 D- s1 }$ y2 U  _ 微信图片_20240702171641.png
) F2 y/ ?- i1 G" q8 m5 d

, H& f" x1 e. p* q* R$ ^▲ 图10. PB14/PB15 输出波形图 2 " D8 U- g2 }; D2 i! E, J

1 O: L& w: E0 }0 @* `# e! @

2 z) \# k1 x5 Z此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。
2 ~4 M4 ^; J0 Z: A8 |; G: P, M! k1 `" D( l

! m/ {, O' R, a 微信图片_20240702171628.png $ N" y4 B1 h2 p) ~& p' ~/ V

  t& `& E  f/ [9 D, C2 J' _. K▲ 图11. PB14_medium PB15_low 输出波形图 . n/ ~( ]& C6 P1 W9 K/ c$ n

0 N+ r7 c7 Z) p3 X% c4 K* h
8 _1 ]% R: j, C$ K+ y) Y1 L% w
综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。
6 u8 F& P$ ^: H, O4 j9 W
/ d9 R+ P+ E% W: @2 l& G

# O- J, }8 m* [8 F5 i9 t03小结
2 r8 E/ e1 }0 N7 ~由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。/ ], r) M2 @, ?6 \" |0 p, M  l6 [
! l& m0 Y# ^  x9 |4 U1 J; i

5 k9 \3 M, y6 [. ?5 G* _如有侵权请联系删除
5 G  Q: |: O  Z( S
% ~' ?8 A% [1 L1 U$ P, K5 V6 ?
转载自: STM320 ^0 K  t& C2 b; w

( i! m2 ]8 n3 c7 n
收藏 评论0 发布时间:2024-7-2 17:22

举报

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