
01问题背景 客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。 检查客户的原理图并未发现明显的问题。 02问题复现 测试配置:硬件测试平台 NUCLEO-STM32H563ZI。 软件工具版本: 1 ?! F4 v/ s; N$ @7 R ] STM32CubeMX Version: 6.9.2 % r% w$ m# @7 [( f STM32Cubeide Version: 1.13.2 Q: f8 z. g( X7 E9 _ 2.1. 测试 1:PB14 开漏输出异常 2.1.1. 测试配置 ^% h0 e+ z+ E4 M* w0 D " z4 l1 f! I0 S9 J' [# \ ![]() ▲ 图1. PB14 配置 2 [! [' m, o8 z+ Z; Z4 X+ |. w 2.1.2. 测试结果 测试结果见图 2: a* ^5 H) h9 K6 |2 q2 {% U ![]() : g7 \+ j3 s2 T2 w ▲ 图2. PB14 输出波形% ?$ }0 Y% ]* v5 Y1 g3 B: { " [6 Z2 C! l' Y 从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。5 l3 d+ p* N! A) Y/ q8 x6 m b" y 7 G% _1 N& I, ^% s2 q ' B8 o( F+ S, y k* s 查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图: ![]() ( |1 r! I6 W2 }2 N- a+ _! H9 j ▲ 图3. PB14 定义 " X5 y8 ~ k: C+ B4 v% Y , ^. r# n8 [# h4 H* O% K 其中_c 表示该 pin 脚具有 USB type-c PD 功能。5 t$ C E/ ^! y) S' \ - w. o7 y7 w' _, U0 _! v 0 H! J# b9 A) _ 查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:; ?: | U4 j6 D% _ , `7 i' r2 j. P6 j C8 Y/ @ ![]() ▲ 图4. UCPD_DBDIS 描述 , e( o, {, G+ ^9 x * q. a9 U; O u/ l) d: b 根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。 修改测试代码,增加如下代码:' ^' h3 Q4 _0 @/ N2 l0 J
再次测试 PB14 输出,波形如下 ) D- V8 g# \& W5 N" a 3 E9 x8 N1 L. q* K/ r ![]() ▲ 图5. PB14 输出的波形 ' |& S7 H/ Z0 Z8 H 此时的波形输出符合预期,测试正常。 ' u" p7 \5 q9 }" O: l' x; R 6 j* Z5 V5 y6 a0 e9 J 2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO 使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。 2.2.1. GPIO 配置 1 6 |9 n7 P R; S ![]() 2 n! Q9 ?, V" o- [7 V- @ ▲ 图6. PB14/PB15 配置 1 ' B/ u# W; P0 G2 }( t- Q t% g; E/ W% D7 B5 {/ D" j 9 X$ f, Y/ i: s4 v& o& Y ![]() # _! y( v8 J | J' N. [- G ▲ 图7. TIM12 配置 1$ k2 v9 i6 @: E2 i! O# ]5 c6 j 2.2.2. 测试结果 1 7 E- P& e% k; v3 t, p 3 F D. w3 t. _- R" F# o ![]() ( w4 r0 B/ A) |1 J ▲ 图8. PB14/PB15 输出波形图 1 此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。 ![]() / ]* k3 {( t# F ▲ 图9. TM12 配置 2 v) s; {& [0 m! n* w$ r . H+ C. u9 C* Q' a1 J; @3 p 2.2.3. 测试结果 2 $ a, C/ M) y+ @9 K | 8 E1 w9 Y& L5 ^+ M ![]() ▲ 图10. PB14/PB15 输出波形图 2 : `0 K9 D) I% t $ c) M3 g5 t' [' E& i* v6 b 此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。" ?# M+ h1 q- l7 \. p / t! Y# h0 y/ h2 T2 B' b ![]() - {9 q& }: H ]; E x5 E. w ▲ 图11. PB14_medium PB15_low 输出波形图 7 z$ I9 q2 Q# ^2 e1 _ b ( U4 k/ m& P# M6 X8 O+ Q$ h 1 V1 w5 A& [6 b( ?$ a 综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。 3 F; k8 d4 _5 ~$ [9 [- m$ n 2 N" P( c& G7 n$ [& ^5 Z8 F/ Q 03小结 由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。 如有侵权请联系删除4 b Q% i5 u; w4 I7 F 转载自: STM323 }( q1 i* A" D ) M% D! g2 P! }; ~! k$ s |
STM32H7的TCM,SRAM等五块内存基础知识
STM32H7的TCM,SRAM等五块内存基础知识
简单了解一下STM32H7的BDMA
NUCLEO-H563ZI刷入Micropython固件并点亮LED灯
【NUCLEO-H533RE评测】+点亮小灯
【NUCLEO-H533RE评测】+09 低功耗测试
【NUCLEO-H533RE评测】+08 初识FreeRtos
【NUCLEO-H533RE评测】+07 IIC调试
【NUCLEO-H533RE评测】+06 ADC调试
【NUCLEO-H533RE评测】+05 调试PWM