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

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

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

+ C4 B; \) t$ ]) N! k& i01问题背景+ G+ k5 N) @) }# o2 v
客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。: s( n+ L1 u1 W; T0 c
检查客户的原理图并未发现明显的问题。: A( s2 J$ b6 I" q
: N5 ^2 J1 A: |9 {- f8 N8 L  q
' z  p. x  l3 \$ c+ s9 g( ^
02问题复现
* T" W% c0 h% }6 X# M" d7 s测试配置:硬件测试平台 NUCLEO-STM32H563ZI。4 I% d7 s; H! |4 v2 b
软件工具版本:
4 ^' [  ]  V! `8 i8 B# ySTM32CubeMX Version: 6.9.2 7 ^' C( j3 Q4 {! G! W
STM32Cubeide Version: 1.13.27 R( z  D& ]2 ^
9 L* Q  |+ m% n+ U* ?& B

$ F* a$ P1 w! f8 f# C" A2.1. 测试 1:PB14 开漏输出异常 # G& V, o- A; L, W
2.1.1. 测试配置
( N; q; n5 Z; L8 N7 ~1 b. L* W; [1 g% k' T, e: P% N
4 p2 x- G$ k4 c8 q' E; b, M
微信图片_20240702171716.png
: x/ j+ n( T5 f% ]▲ 图1. PB14 配置
2 A& }: d7 H2 w* V) ~" v# n# r
( L. d& q8 m# x8 Y3 L$ A
2.1.2. 测试结果
% K$ H8 Q$ P4 G3 |1 Q测试结果见图 2:
  A; g' i% I& z) @5 ?# g4 ?7 B2 N  Q0 K
微信图片_20240702171709.png 2 }8 G% e2 ~" u! {# ]

" Z5 w4 n; M; @) y* a7 x8 ^0 }▲ 图2. PB14 输出波形& k; e2 ]" W5 \) `( J+ P* L
7 K& r7 g1 F+ e; M3 x: p& s

) a9 e' F- _1 g9 w% v+ v从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。
( l/ U. ?' o. i9 Q6 l% k6 f2 v( ^1 d0 u9 F) q; f$ [6 `5 I+ _
* ?# \+ f. _. E
查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:
4 g3 l: d5 |# w5 B& r* K4 `- B6 p1 X, \; d" O+ }

8 W& N" ]7 @: I8 B  E1 C 微信图片_20240702171706.png
$ V- H% z# }1 p/ \3 L

" n$ f/ B2 ~9 b0 F, @( ?▲ 图3. PB14 定义 ( A8 \; Z# Q2 E4 Q7 T5 d
# X+ K3 J: p3 q- a0 |
7 o6 K7 d: g; _8 |; [
其中_c 表示该 pin 脚具有 USB type-c PD 功能。$ ?8 {' c! F, V  c  J" c; \
$ X. e  `# x. V8 L
  B' \; n) f2 V9 A
查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:
( A& R7 _9 w6 |3 v. m# k# Z
$ E: t  b9 ^9 w* T% R

# F. [! D4 w2 \6 i& H/ ] 微信图片_20240702171703.png
$ y$ ^8 \9 g7 @6 j: a% U+ @. ~# v3 k8 [
▲ 图4. UCPD_DBDIS 描述
9 g: E5 r2 X5 M! c
, A5 `  g: x  `1 Z% J, H' o
, p2 A7 F  D: P; j! J- u1 i2 E
根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。% o' Y2 m* L/ W5 R6 y+ Q

8 Y! k+ l; U1 i2 z/ L1 ?- m8 Y

4 l7 U8 t, s$ d2 c8 P6 y修改测试代码,增加如下代码:
6 u! _! T  s3 {4 r0 Z# Y
  1. /* USER CODE BEGIN 2 */7 F; `3 W  E8 n* d4 u& b) R" h. X
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);
    ; _0 b5 E2 B6 s0 [: A3 f) G
  3. /* USER CODE END 2 */
复制代码
( |3 Y1 `; G3 D9 p! a* k3 P

5 S' ~  R. O! c0 z再次测试 PB14 输出,波形如下 3 V1 _+ d+ ^6 z, d  u! R8 g
% b' t3 }+ R# K' j1 g$ }7 N9 {: u

" ?# h5 A  t5 z, H, }9 ` 微信图片_20240702171659.png
8 A9 b* i) O; M1 \5 }! i
2 o+ g' \- ^& b
▲ 图5. PB14 输出的波形, z- j3 ^6 n& ?5 g  I6 m1 F
, D* [6 H& E$ O' d) k$ t4 z

9 N1 t" p9 [; D此时的波形输出符合预期,测试正常。
/ h/ t8 l' e% N& c
: d7 M9 w3 c2 R3 U8 T# Z

; B# q- p6 S: H0 v7 y
; U0 B4 v9 ?* x
! L# P. A& }$ Y2 ~, Z5 h
2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO8 v: \) k7 x- h  A* \% T  [0 J
使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。  ]3 N9 }+ s# K$ Y, i/ H! {
( p) U- Y! M; _" d) M- c# {; X  X

2 h& p. U  c$ j* g1 T1 b6 S2.2.1. GPIO 配置 1
; ^: L5 }; r/ h
4 _/ A2 ], ~6 }* D% K% X7 i

+ K4 _) e9 _8 Q0 ~, U" k; _6 J 微信图片_20240702171655.png   C  w6 ?+ v( F2 G9 U% d
  n& C. q( _% D' _; j1 C
▲ 图6. PB14/PB15 配置 1 . ]( |8 R2 {5 N# F! U1 P
- y# {/ C$ i* ?4 u6 _

0 f7 ^. C: s$ G; y 微信图片_20240702171652.png & O4 n! `" R) s& r* H( o* f
/ A4 \' R3 O" k5 J+ @8 {
▲ 图7. TIM12 配置 1
" s' a+ t5 k- x; ?+ n2 x; Q# c. ^. J3 Z$ ^; d

7 Z/ d0 G+ d7 ^' d$ B2.2.2. 测试结果 1 3 v/ }1 k1 o, q, V/ A/ I2 d4 ?
) `! i( I3 P1 i/ R

1 r& Z. P5 b8 M2 O* X9 K  P 微信图片_20240702171649.png
& y* o( ~$ t8 Q( A4 r  C$ w, D; t/ T: E

$ _1 E! O1 c; P▲ 图8. PB14/PB15 输出波形图 1
# B$ E" s( k; X, j- X8 h4 {此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。6 n6 w% F4 Z- {% P
: G+ X% ^# b* v: q3 C* E5 }

! L2 c8 ?/ v; h( D# ^% ], ] 微信图片_20240702171644.png 9 u  D  [% F- |0 E5 S: C* X' ?7 d
/ m8 W% }" x  P- h
▲ 图9. TM12 配置 2
5 P) p# `* e7 Q3 a1 J8 _# j
3 u7 o7 _. y% w0 @9 S; m7 C8 e: `( A
  T4 \' k/ d: B3 G8 a
2.2.3. 测试结果 2 5 W" V) g6 _4 m$ z9 l2 u

5 s; V! H/ C: E, h1 ?
) `" C2 [& e9 a
微信图片_20240702171641.png
' r/ C5 }6 y$ `6 a1 _
* K, d+ H. a% _& y& ]8 \" q- h# \
▲ 图10. PB14/PB15 输出波形图 2
8 \( p! {9 x5 ]  G0 @+ H
1 w$ i: D; a5 ]  E# t" m

- C2 Z- T. q) V& S此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。
6 o+ y& P3 ]5 k. P9 e" @- K
% n+ k+ H# `; b# [

9 K$ ^3 _4 d+ r 微信图片_20240702171628.png
! t3 g- m/ @9 k3 z6 {$ c" k8 ~
. X+ ^( b, `6 {
▲ 图11. PB14_medium PB15_low 输出波形图
( m& t1 j$ d4 O1 E0 I9 E" e: z' @6 N

" }3 i, C, p' d' w) A2 j综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。
6 s( F8 n, W, O& _: J
! ^( f( g+ Q4 s' K) j

; N1 d  g7 d. n" ^2 P  X( ]/ @03小结
" ]: W9 @, x7 ^! a$ D- T0 F由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。. e  C2 s8 J8 p% e: Z1 e- }5 I
- k  i" a& T8 E# Z- o4 n
: o4 C, u# k1 v3 k, v; N
如有侵权请联系删除
2 }4 q! _7 C! u; {
3 R$ |' U; ^1 Q
转载自: STM32
3 j6 y8 e! k( p- M: H7 l
& {2 B: O+ N4 l6 p& n
收藏 评论0 发布时间:2024-7-2 17:22

举报

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