|
01问题背景 客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。 检查客户的原理图并未发现明显的问题。 , k+ F! k* C* c A 02问题复现2 e) G: c& ~9 T8 I9 Q/ Y# P$ T 测试配置:硬件测试平台 NUCLEO-STM32H563ZI。! f6 s* I7 D4 ?; ^$ B 软件工具版本: STM32CubeMX Version: 6.9.2 % K1 t0 i" M' M# i' c. F6 k1 y% R STM32Cubeide Version: 1.13.2 $ Q- p' v6 I; M9 o+ l6 z 3 Y0 ?( ~# b, L9 B) [# H7 F, b 2.1. 测试 1:PB14 开漏输出异常 2 P& B5 I8 J4 k0 j9 y9 C 2.1.1. 测试配置 ; I" g& E) k6 i; Y, T( m7 z; L
▲ 图1. PB14 配置( h/ B5 F5 \( ~! I$ ^ 2.1.2. 测试结果 测试结果见图 2: + {& j: C. y# y1 a( Q* a: p 4 M+ a, q& K9 k
▲ 图2. PB14 输出波形 从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。7 @. I6 g4 b* G8 a1 C+ v4 O) V; {6 ] 查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图: & e8 Y4 O4 x+ Y9 l# F: _ g 3 g6 G/ l. [0 [/ h" L# A o
: r( |2 ^% e6 L) J ▲ 图3. PB14 定义 1 d3 E6 ? _- B ! E) U6 F1 v% l- C 其中_c 表示该 pin 脚具有 USB type-c PD 功能。8 D1 i1 m+ w1 `, B P & S& ]6 m8 {$ @ 查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:1 {- F) X9 V8 f2 p) l5 m 8 C* n) T. l1 |8 p: Y, P) x; p# d
▲ 图4. UCPD_DBDIS 描述 + \4 n- D) w' u3 k+ E 根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。 修改测试代码,增加如下代码:
再次测试 PB14 输出,波形如下 3 K7 ~9 S# y- w/ K% N) W2 q( A8 R: P& t ( Z! L5 N. e+ b4 R ^0 c8 s; X
, M, ~; ]% F. D ▲ 图5. PB14 输出的波形 & `; [7 H5 C* K 此时的波形输出符合预期,测试正常。 ( L1 q( ~6 W. g 5 {6 C0 I4 Y/ L+ N: t, f # H. L6 D7 `2 y9 e9 l 6 q% x# L5 F& C$ y7 T6 z, k F) ~+ l$ _4 z) [ 2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO 使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。/ F& t* y# e! { $ A: {, C( ~' D% g: s) h2 _ 2.2.1. GPIO 配置 1 8 D" {' h. ~ `6 {6 N! I 9 v& n# X1 h- X
▲ 图6. PB14/PB15 配置 1 T$ g% W7 h* o3 h% T2 q 8 m; P8 J# j! N3 y% I: R/ h$ |
▲ 图7. TIM12 配置 10 d) Q+ G# b9 }( E! A" s 6 y2 K$ H$ H$ k( d, ? 2.2.2. 测试结果 1 ( ^9 z6 t; A" o9 F: A& ~
▲ 图8. PB14/PB15 输出波形图 1 0 y1 Y2 e& ~9 P; ~ 此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。* C/ P) ~) Y! \; A5 b h) ~ 9 d4 w# {* I0 S. r2 B ( m$ q( x. t/ T1 V5 z
( N; t9 A7 s+ R5 { ▲ 图9. TM12 配置 2 0 E7 I3 G4 E* L* D9 i 2.2.3. 测试结果 2 " b7 b5 x0 b/ @; u
D% ~9 q, w3 c8 D# N ▲ 图10. PB14/PB15 输出波形图 2 . S* j5 p* ~+ G2 O v# R1 E/ _! N+ G ! z4 U1 B$ ~& b9 c! p) G3 z; g( L 此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。 ( z2 A$ b {, \4 Q# L3 s8 K" W
▲ 图11. PB14_medium PB15_low 输出波形图 : H8 u; Q% A' H# z ' z! t! b, W: _ 综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。5 D3 k# C1 a' Q 03小结$ ^/ k9 \; }: {& [1 i( i' Z5 i 由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。1 P' J- n$ c3 u* H" e4 x % w+ i% d. f/ j8 S2 S! K5 z 6 X+ u% X9 T0 Y# x1 \3 l# q 如有侵权请联系删除0 c$ A+ @" z( v" H# x+ @8 y 0 @2 d1 r% d' O t 转载自: STM321 _# H$ ^, O& |) L 8 j! u% G/ g1 z |
【STM32H5 评测】1、开发板资源和程序开发
NUCLEO-H5E5ZJ 以太网(Ethernet)移植记录
【STM32H5 评测】1、移植记录(LED / Shell)
H5E5开发板评测-1
H5E5评测-4
H5E5评测-3
H5E5评测-2
【NUCLEO-H533RE评测】-01-开箱及资料准备
【STM32H503评测】+基于STM32CubeMX生成工程点灯
实战经验 | LAT1585 STM32H5在使能TrustZone下实现High-Cycle的数据存储
微信公众号
手机版