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

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

[复制链接]
攻城狮Melo 发布时间:2024-7-2 17:22
8 h, l: L$ }- ^# Q2 A
01问题背景
9 D9 R( t9 T' [& {7 }客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。
& I8 K, P5 z: e& Z) y; W  s5 F  M  L3 t  e检查客户的原理图并未发现明显的问题。
, m( r& f; J2 ?/ T# O/ `- G* ^' M0 x1 B
4 E3 w! E9 q) I: Z( c$ v
02问题复现' C* i. a! F3 m5 k+ i* _
测试配置:硬件测试平台 NUCLEO-STM32H563ZI。+ A4 w' f6 e. s  ?4 V- O! t* B' J
软件工具版本:
; O* i# I9 ^! p  S* b( M) tSTM32CubeMX Version: 6.9.2
& e' U- Y( k- O: h- t* CSTM32Cubeide Version: 1.13.2  H# x7 i! D5 [  S/ ]; C
" o2 c, g$ ^( L0 Y, _" t
" g5 I1 e0 W% D
2.1. 测试 1:PB14 开漏输出异常 9 j0 N$ c5 N' R3 X# {5 p
2.1.1. 测试配置 $ v" n0 _8 x4 {+ c

* H8 J) I$ X, @9 ?" W* X$ y

; ]8 y# J) u. A( M1 k5 ^9 | 微信图片_20240702171716.png
( l2 _" v1 W0 S▲ 图1. PB14 配置
2 H3 p1 r7 u( Z3 h( @* q( u" v: l+ A& n* t* h0 D8 b
0 o0 I: r8 u) g9 L9 M3 |0 z: c& v
2.1.2. 测试结果! U1 E- G" K2 K0 n  E; d" W# _
测试结果见图 2:
& t, p! r$ y/ b" |- u+ w, @+ w$ g
; d5 w8 t% u7 Y% B- c0 t 微信图片_20240702171709.png
1 o) u# M8 d( ?7 m0 o  v+ \) I& v; V; d" R- ]4 n# @
▲ 图2. PB14 输出波形; A& u, [& J" e
9 [+ S2 T4 Z' K5 Z) ?+ E  u

2 g7 ]6 o( C+ o- T2 l! E/ ^从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。8 f# r  |7 i/ t# k3 z+ w
& Z6 v  h# d- r4 L/ j9 j6 c
- K' V1 |0 O3 z
查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:7 c4 d! k( W& g( f# I

0 l: G/ f1 U: Z: |
  X  g/ F/ f' }- X4 b7 l0 h! o
微信图片_20240702171706.png # _% ~  l% [: m- {% m9 X  ?7 I

, e: y' f/ F( o+ d4 ?) S: u- Z▲ 图3. PB14 定义
  @* `) I5 Z  h. o
. c# R' k4 Q# B) o% w
* f1 u! R) r0 Q& i( R8 {
其中_c 表示该 pin 脚具有 USB type-c PD 功能。
2 R2 K8 W1 ?+ ?2 V0 s) }  a
7 g' r: O! V/ f) y" x' o3 g  S; t
9 q: F: B) A6 S$ K: o4 y
查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:
) h: `3 B* f& }. v/ e
. q7 w' i5 J) p/ Y
3 [1 y* [2 o1 w  s0 Z8 t1 B, S
微信图片_20240702171703.png ) v; X+ Y2 K% Y( T( O

) {( p! _% h7 \/ w# M* P. y▲ 图4. UCPD_DBDIS 描述
$ y- j2 q' g# A# {6 P8 e
9 i8 B! {$ W) `& V
, Y( ?: M' u  K2 Y& N9 j
根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。
2 g  w6 J) Q, T6 r- f; C9 w' L
, G: ~/ E* {' E" Q3 _: Z: S
3 O! i7 x. [, Q
修改测试代码,增加如下代码:
0 z( w7 b2 B8 i& E* x9 ?
  1. /* USER CODE BEGIN 2 */
    / H7 D9 u& T; y* p# ?; A
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);0 ^' X- h  D5 f- L
  3. /* USER CODE END 2 */
复制代码

% }7 N# @( M% {7 C' m& h4 L9 f  r; Q8 M( S$ F8 z! L. Z
再次测试 PB14 输出,波形如下
, S& ?5 x2 t2 t2 {
, A: i% L3 {& [6 ^. k. I* B) i; O
1 s  p( ^6 F' L' x
微信图片_20240702171659.png 2 F1 M. ^+ U. m4 `- l, s

( X9 r- J+ x% e( r; z/ s, Y▲ 图5. PB14 输出的波形
0 T0 S" o0 `5 y' q. O. {8 M9 j) \. Q) P. j" T# S
( u- f3 d& ^( K' i
此时的波形输出符合预期,测试正常。 . {4 E& k7 |  i

! t$ Y2 y0 t/ P
$ ^+ d# S. }% e* e
: V. Y$ K& m! \7 }
+ N& \- i2 S9 S6 h$ K" b8 b* B. A$ }
2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO
/ m$ W& _" X' \& A/ Y' }使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。
# j! m6 G* H; X. s, J8 T9 K4 A+ X/ G3 \; w- G' `6 R

( @$ L" x9 d4 \! ^, M2.2.1. GPIO 配置 1
, O4 J8 ?/ m8 E+ C. r( c
1 ^' I3 \- |9 A& h! o

. @* X# X/ `8 g" V% I 微信图片_20240702171655.png 8 u& P0 x" }# ]( t

; U9 t' G7 S4 K: s▲ 图6. PB14/PB15 配置 1
- E3 s/ b6 c+ |, ~! y' Q  F! A
* _5 F, Q/ I, u
' }! u7 r/ n: t0 ]7 {% b
微信图片_20240702171652.png * `. P4 {$ S4 j1 s9 Y6 ]
6 S6 g% N  r" f! D+ Z" z
▲ 图7. TIM12 配置 16 t6 |  U  z4 H- D( ]  q8 A
- r2 u# |% |  w4 }! E3 b0 x
3 H4 e8 R; X+ W) j. [$ e7 c# ~
2.2.2. 测试结果 1
7 v9 G; l4 k' Q7 E& P
/ g3 L' n& B7 i7 D7 X0 s* _: U) T

9 Y1 W# K4 \6 ^' u+ L: {5 O 微信图片_20240702171649.png 1 Y8 z3 J% G. g( ~' X2 x  g

1 A( n% V& ]0 T3 C  ?* l4 v5 ?▲ 图8. PB14/PB15 输出波形图 1
- f7 F: a- H. S6 I6 ^% l: W此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。
) Y! `; v  D% p3 Q; h, C" \5 \! E3 S; E
8 i- l- {6 I: C" m
微信图片_20240702171644.png
( y( L2 s0 {: H+ @
5 o" F! \, Z; e4 D9 {
▲ 图9. TM12 配置 2 & @. N6 F! n$ @: t  [* O- m
+ p" k4 @$ y3 ?5 q  g

% g: r9 X5 q$ b$ X& O2.2.3. 测试结果 2
* a7 r; F8 {0 W- T& Q: ]! k" t  L3 K& z' l) N
2 X: ~  i  d0 {& A9 {
微信图片_20240702171641.png . y9 m7 `0 V5 z/ O, _; M% ^. H

, _% n! T2 P) }3 @5 S# s▲ 图10. PB14/PB15 输出波形图 2
: [, S2 ~: [) E, c  A$ f" B  c5 D# I1 d

( V1 _1 j4 A$ H  k3 q! y此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。! F* B* q* Z" u9 v( M( T, |, V
* x# Q0 }$ ?# i% e& h. Z) v1 B9 C
: |" E( B- }" |9 v9 O
微信图片_20240702171628.png 3 l1 E4 V, s  Q! ]% `

1 J" F0 o' ^' ~▲ 图11. PB14_medium PB15_low 输出波形图
& y& i9 h& c) h( N+ ~# ^  l
! S4 D+ _9 |0 }! A1 x

% P" s  `4 I  {" k综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。
" q" b0 C1 r8 V8 ]" b$ J: p
2 f( Q- s) d  W* w5 E4 V6 B4 w! L- d

; w  H& P7 r( P03小结5 c" L( D& [& j" ^1 t
由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。2 m% [+ t9 a( f9 h* A6 k

! p  {  A% V% `6 J+ F
. k) T2 n8 _% R; g7 h: K
如有侵权请联系删除
7 q7 s4 l6 Q) L

8 h4 G2 k) F! I# S转载自: STM32
2 g( h! q; z8 c( y' I6 i6 Q+ V1 w$ D; L$ r2 l6 ^
收藏 评论0 发布时间:2024-7-2 17:22

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版