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

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

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

& G0 q  k6 g) n7 x' }4 I: I: W* i! W+ u01问题背景2 p8 Q% G7 T6 X# g* Y
客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。) J& z/ J; Q; |3 w
检查客户的原理图并未发现明显的问题。/ W$ ^4 J! _7 b/ h5 I1 m' F

9 j% A1 x* j9 \4 V8 p+ ~  n* D

; J$ [, y+ U( C4 \* r02问题复现* X- Z4 Y3 S- [8 q6 M/ D6 M4 H
测试配置:硬件测试平台 NUCLEO-STM32H563ZI。5 b1 ^/ @( M& F8 [
软件工具版本:
+ p5 s: }5 B; u5 E9 q% bSTM32CubeMX Version: 6.9.2
  q  b" w; b) d) g; x* R$ f$ jSTM32Cubeide Version: 1.13.2/ y% _5 T6 L4 {7 {8 n

/ e7 l; n( q- P  Q- q$ F
% t) J4 d' s0 l- F
2.1. 测试 1:PB14 开漏输出异常 6 w4 o; t/ z$ D# y9 d
2.1.1. 测试配置
7 R& Y2 X  i/ x  c/ N5 r! o* O4 I' N9 k7 i9 i
6 i/ q. A0 q8 e1 b6 U
微信图片_20240702171716.png ! ~0 [, t- V5 K, d
▲ 图1. PB14 配置# {1 v) U7 K& n# ]3 d2 \" {

  |% r7 i; o' t$ |6 Y& n
, ~/ X2 ?$ _8 L
2.1.2. 测试结果/ d9 i  T9 H" O
测试结果见图 2: 4 _7 R6 M: L- `/ {

8 Y' d( ^- P! M 微信图片_20240702171709.png ) v5 @. |' d5 ?! ~. I) f
) t, e! x( G% P6 |/ g
▲ 图2. PB14 输出波形6 T( M& [3 _" [5 S7 ~. t
& b  Y! C- W/ _0 u# J; b

: Z% V2 O- k' _+ v2 Z& z1 }* D6 e从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。
7 K" U; Q7 I/ m5 ]/ e2 i2 s) [+ X8 X5 B
! t7 w: r+ V- \& [% p3 `# Y+ ~
查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:
& [6 h- s* {. u% ^6 M& `6 k4 K2 u: f% o
  G; k4 C, T7 }7 r: j- z
微信图片_20240702171706.png
! ^9 r: o; s6 _8 c5 O+ O/ Z
# w) \% U6 z/ ]* Y
▲ 图3. PB14 定义 4 O8 ?0 |& n/ y2 ~& c) }0 p; \
8 z7 N5 t1 h* F! {% V9 M( M
( `2 h7 c$ K" M! K0 x1 I: C
其中_c 表示该 pin 脚具有 USB type-c PD 功能。- z  x7 v1 S6 c8 w
/ Q& t/ d. ^3 Z  H- E' b5 t$ P
1 @8 H' Z; S, ]" Y
查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:  L, l% I( n; Q/ |5 e

+ [' @" E/ @% l  ]  T

6 v7 w+ n2 W# t1 W4 h1 t9 k0 l 微信图片_20240702171703.png 7 C9 X' Q6 h3 Q/ \/ O9 ?

4 r; x2 n0 O2 E8 `- a$ d6 ]▲ 图4. UCPD_DBDIS 描述 % `- V; [' ^9 M" S+ i" C' C" B' o& c) E' f

6 p+ V6 w6 @3 h$ |

0 V8 _4 Y/ |6 h! x& p' Q根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。
2 w2 }, A" y1 f
: J# M; \% f/ d  y8 }

/ k% v; \0 Q5 `) ?% H. ~  j7 `( w; r修改测试代码,增加如下代码:4 N- Q0 A( s/ T8 F* i8 G% h5 ^7 R" m
  1. /* USER CODE BEGIN 2 */2 g8 R2 V4 X4 z; z( d- X
  2. SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);
    1 e% M( r( ^: y8 L
  3. /* USER CODE END 2 */
复制代码

6 o# X5 j& E2 I
8 ~7 j) r6 H; t) t* E再次测试 PB14 输出,波形如下 ! G% h! C3 q: d

/ A* h  q8 J  m1 v$ r- C% |

% Y5 @& W3 z6 z, H: ` 微信图片_20240702171659.png + `; X/ K2 a0 [' T* G1 b- N5 J+ [& I

5 b: C9 T; L! d2 r▲ 图5. PB14 输出的波形
+ M% A' m, @. t
  L6 x7 h9 P8 a* O; }

1 X: z# t2 m/ D& W0 r1 A此时的波形输出符合预期,测试正常。
3 G- j& w' ]% U/ t5 ^( r8 `9 _& O8 S

( t' R$ q$ F, k& y$ u" H
) a! F+ d/ g" J3 g( l2 X( K  t' G

. d7 g$ P/ e& H2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO1 e$ s' F4 e6 r2 @
使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。. D4 I+ a4 c% i0 N4 U; |4 N" N3 _3 o
* s4 q0 H# R/ I( w, W3 _
" z+ h+ h+ Y0 g: V0 E" [- c7 U8 Q
2.2.1. GPIO 配置 1
+ v1 g5 Q1 n" X/ v) z5 ^' D/ T
5 ^! H0 y# P# h- V/ C, r, O1 P
2 ?8 h. S* C; {1 d: n# R: n; ^
微信图片_20240702171655.png
% w5 i: s: d# x

% A& S, a" C5 }8 [! q▲ 图6. PB14/PB15 配置 1 2 x) ^: v  x! Y$ s. K" M
( U, s! p4 q3 O! Y  _* l* c& O
0 L. P. E5 r$ X& l+ u- O2 r# E
微信图片_20240702171652.png
4 h2 ~: z9 K) i4 P
5 {% \* I5 Z9 z! J# |! U
▲ 图7. TIM12 配置 1
2 l) a. B4 c  Q! i6 O  C% t1 ^% U$ z+ p( S
( f+ W7 g- b8 D2 ^7 ?3 k' V2 i8 b
2.2.2. 测试结果 1 $ |! Z* b2 d2 a' E) `6 r/ ]+ q

" U1 e$ t6 F- L* V3 }
. |# a" {* D. i0 i) g( p& z. Q' Y7 x
微信图片_20240702171649.png . \; b4 U9 u+ V  z- e  I- V" y3 k
9 q# R+ b0 |& l! W5 W6 r2 x9 T
▲ 图8. PB14/PB15 输出波形图 1 3 A5 [3 n8 {( b# n# ]
此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。! J6 h0 X. x2 U% K6 M/ F

/ Y, ]2 N! a( }

! p1 X. D$ h. M3 k 微信图片_20240702171644.png
  L" G( X" m! L( E# O% r. S0 G

6 i2 n% c/ z3 F$ G& b▲ 图9. TM12 配置 2 ' q# E% ], b2 n' ~6 R

; `. T, q' V8 O# n9 F) L3 k

$ ]$ V( r% a3 u* i" W  C, F2.2.3. 测试结果 2 & Z! z* p/ j, R9 y# T& w
8 t. v; Y: Y7 I( W& x1 w4 d6 m+ @! j

/ G7 m2 |; F) b 微信图片_20240702171641.png 1 m2 r6 c/ n0 a( p0 J% X' _9 w; d
' l" l+ _& d, }3 @, j! f
▲ 图10. PB14/PB15 输出波形图 2 0 B1 X3 F! Y7 O5 L& _/ ~- x, h( }
% e5 A4 {/ @  T+ P
6 g1 K6 R5 ?) w4 v2 H- w$ P* j9 _' U
此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。
; y, v( W$ f% B' m/ G8 u$ ]5 c$ Q6 }
( C9 I, b2 x8 |

  Z' _- r- E6 I; i 微信图片_20240702171628.png
; r* M9 a7 a3 _( T9 F+ A

* {9 \" \# h. u- B7 Z▲ 图11. PB14_medium PB15_low 输出波形图 5 U& q2 ^) D4 X+ N5 `/ d
- s6 `0 _- [7 C# o" X

: N+ r% ]& b5 i综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。
3 j7 W2 M8 c$ ~5 F7 B7 O
# z& a" m, F; c. m3 N9 v
/ o) \$ G1 R, J$ G. L& L
03小结4 R8 I8 S- D! G1 K4 `
由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。* @; ~  N% G8 x/ @, J2 k

+ C. [3 k  W; {

6 T9 @8 Z5 ^* n; b1 ^; z. g. t* x如有侵权请联系删除
% C$ x  D- s3 p7 U
8 Z$ `/ p5 B' A' `& A6 a% R3 ^
转载自: STM32
8 u3 {5 t/ W8 w  Q: ~: d3 r8 ]# I% D
收藏 评论0 发布时间:2024-7-2 17:22

举报

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