
01问题背景 客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。, V8 i3 M7 _# A 检查客户的原理图并未发现明显的问题。 * N p: d) d# |6 l% g. o 02问题复现 测试配置:硬件测试平台 NUCLEO-STM32H563ZI。 软件工具版本: 1 h; K4 R$ c) T STM32CubeMX Version: 6.9.2 % j9 @$ t% |8 \1 d& e2 l9 l STM32Cubeide Version: 1.13.2 - x* v o. I6 A& S- i 2.1. 测试 1:PB14 开漏输出异常 , F: ?# h; S% x6 [) c 2.1.1. 测试配置 5 b7 f/ N0 T$ ~ ![]() ▲ 图1. PB14 配置 # W3 u9 K. u$ c: Y# t 2.1.2. 测试结果3 r2 q3 ?, { n0 D2 H4 @/ Y: q 测试结果见图 2: ' `6 ~9 d' `0 W6 q. n ![]() $ L3 u& G `. l' o5 h. F ▲ 图2. PB14 输出波形; J" X9 |! x7 u; z( C: g# _ 6 p: E: [4 `+ K% }2 D ~0 p% ?* h! o+ ?- K8 s3 _( J0 B 从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。 * h7 Y( \, U1 Z1 I: M/ n. ? 查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:: l; x3 Q+ M. X6 D9 w4 z ![]() $ i+ C# W( ], v0 m( v$ r3 u; m( u ▲ 图3. PB14 定义 ( B3 t2 R7 U2 U: U 其中_c 表示该 pin 脚具有 USB type-c PD 功能。8 [2 ^& Q$ A8 h7 w5 J( E ( m6 D$ l; U; `7 I2 I; { 查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:7 @1 v/ j1 M+ B8 O5 B' N7 N - A' j9 X2 c# D: g; H1 F ![]() ; A' @: P5 o) ]' H" D. s) ^ ▲ 图4. UCPD_DBDIS 描述 k6 c5 L# c4 l8 Z3 |- { 根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。$ `( u* w9 W! h* _. j# K 1 d1 H- x, w1 a" E4 y - u h6 k# X. V( k' d+ H 修改测试代码,增加如下代码:
再次测试 PB14 输出,波形如下 9 Y! y/ o6 v# V d: d , Z; a' _: e& E0 ^+ _ ![]() ▲ 图5. PB14 输出的波形; ]: E, `7 |. K6 C7 X 8 A" t7 V3 @3 n& F4 u4 T d0 e 此时的波形输出符合预期,测试正常。 2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO) W6 b8 ^' P: L0 ?7 b# S% ` 使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。3 T0 s6 I; }- `2 H% ` 5 g/ S, x. C& ~4 W 2.2.1. GPIO 配置 1 - p: d( R/ D1 k: I3 p. I& H% `- R ; E8 y4 e4 g0 \. k o8 C 4 V, X& C, i" R' n ![]() 1 s/ [* M+ [8 j0 T* u: d+ ~' o! Y1 w, u ▲ 图6. PB14/PB15 配置 1 2 p* V2 J8 y' x5 b8 c8 S, [ ![]() " p& Z3 x" B& s2 F ▲ 图7. TIM12 配置 1 1 T. c0 Y$ H; y* l( V3 ~% i 2.2.2. 测试结果 1 4 C$ \$ L+ K4 [, u. @ / j' ~! k0 X$ C) Z& ]! D ![]() ▲ 图8. PB14/PB15 输出波形图 1 此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。 ![]() ▲ 图9. TM12 配置 2 : R) x. Q. i) f9 F1 H4 m2 x3 j, u 2.2.3. 测试结果 2 $ h& K3 D, [4 ?3 ~: ~) Z ![]() ▲ 图10. PB14/PB15 输出波形图 2 " D8 U- g2 }; D2 i! E, J 此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。 ; G: P, M! k1 `" D( l ![]() ▲ 图11. PB14_medium PB15_low 输出波形图 . n/ ~( ]& C6 P1 W9 K/ c$ n 8 _1 ]% R: j, C$ K+ y) Y1 L% w 综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。 03小结 由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。/ ], r) M2 @, ?6 \" |0 p, M l6 [ ! l& m0 Y# ^ x9 |4 U1 J; i 如有侵权请联系删除 % ~' ?8 A% [1 L1 U$ P, K5 V6 ? 转载自: STM320 ^0 K t& C2 b; w |
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