![shequ.stmicroelectronics.cn](./template/st_v1/static/img/logo2.png)
01问题背景) r. q0 s: \, {, x* Q' W, P 客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。 检查客户的原理图并未发现明显的问题。# o# z" O- z- K& l - L. V4 r; _6 }! s: u# e 02问题复现 测试配置:硬件测试平台 NUCLEO-STM32H563ZI。& I# g. `7 H/ p2 R# W 软件工具版本: 1 ~ Y8 i# {( n4 g STM32CubeMX Version: 6.9.2 STM32Cubeide Version: 1.13.2: r) U+ G4 N! R9 j . ]! K: o5 h" v) K5 t, f- a' J6 E3 B 2.1. 测试 1:PB14 开漏输出异常 2.1.1. 测试配置 ![]() ▲ 图1. PB14 配置' }0 V; ]' w' |" i) a 0 Q* q+ d* O0 G " ~) i+ Q' t6 K3 {% H 2.1.2. 测试结果 测试结果见图 2: / p. V8 B, J/ t ?! B; i * i3 s3 }' ]- [8 v! z" w ![]() & M' i! a& Q1 f/ o- H. f9 M# O. e) L9 P ▲ 图2. PB14 输出波形 " [0 e4 {$ E `! u: R1 z 从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。 & I" b+ g* R2 `) f ) w! `; r- H( H 查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图: - z" j/ v8 b4 U& _ ![]() ▲ 图3. PB14 定义 8 y6 @" ~% e% \6 r/ L0 q0 v7 k : s8 l9 l# u$ ?6 |* H 其中_c 表示该 pin 脚具有 USB type-c PD 功能。 , u& z. Y# i" `8 a( f& z3 i 查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:+ Y- Q1 O) g |' p) ]. H. @( }2 p + E. p) S* [/ o( v. k' c" F& ] ![]() ▲ 图4. UCPD_DBDIS 描述 # n. w# ~1 z1 } 4 B& J( ]& [# W2 @5 p& M5 z, w! x : I) P1 D( \( E( f6 k0 p 根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。, \) h7 D2 v9 c- v* x: B' ~9 i $ @6 W7 M& V5 w1 `' ~ W" U 修改测试代码,增加如下代码:9 X* R3 a6 c: c$ w& a
* _% `* O; ~* O4 r; M- v7 w5 K0 x 再次测试 PB14 输出,波形如下 ) |6 T! |, M9 ~/ [$ T ![]() ▲ 图5. PB14 输出的波形5 c/ j, {6 J y/ U' S) D% } 7 [- i8 q; L9 z 8 G0 T/ m% J+ w1 e6 `6 U 此时的波形输出符合预期,测试正常。 ' i" d" D: z$ d. K: } $ [# I$ R2 G& V 0 N! z7 j- I6 U+ i4 |: r. Q5 G 6 ^! M: V B/ B* | 2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO F' _! L$ X4 t; Q M 使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。5 j' G' w7 b- _! Y) P8 L 2.2.1. GPIO 配置 1 + y# s9 ^/ Y: T( m, j ![]() 5 F! @; b2 R! o ▲ 图6. PB14/PB15 配置 1 / n: P: P6 b1 Y: g C2 z3 u " U/ b( n* a: y* {. y ![]() ▲ 图7. TIM12 配置 1 t; P( V& H, e0 G+ U* h2 }0 X 2.2.2. 测试结果 1 : G( G. r' \. J; [( Q ) p+ ?$ s( D/ J" I, F% E- v. p ( q: M1 j- S: U ![]() ▲ 图8. PB14/PB15 输出波形图 1 此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。 : P8 W0 j3 k* b. t ![]() $ s# z" d m8 I ▲ 图9. TM12 配置 2 5 R& H T# [$ t6 F3 Q# L* n# p 2.2.3. 测试结果 2 f) V Y- C, E3 i W( C# J9 s 8 l6 y! D/ ?5 `$ F& [* Z7 b4 { 2 @! c( m$ O' d1 M ![]() ▲ 图10. PB14/PB15 输出波形图 2 此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。& e. p# V6 k0 b v2 Z3 e7 | { " }1 k% w2 f: | ![]() ▲ 图11. PB14_medium PB15_low 输出波形图 6 W. ?: J, f$ p: R: G 2 [6 m& l0 u' b% J6 f 4 d0 H0 O5 t+ m8 X 综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。) M. f0 P* W9 u) a1 H F2 | ) P' p! O% e$ K- X: w8 o 8 @) M7 i: P8 {. J/ `6 Q5 J. \* w# j$ [ 03小结3 V2 i" I. q1 N' g% z7 O4 I- n 由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。 # q* c( d/ m4 a( @& j W1 e, X. M $ X9 u; e& A3 U+ J' o0 `; a: F 如有侵权请联系删除- p& E8 k" H8 E& s* w6 x5 z 转载自: STM32- {7 W3 P5 L" n$ r |
【NUCLEO-H533RE评测】4、移植TouchGFX
【NUCLEO-H533RE评测】3 SPI驱动st7735
基于STM32H7 SPI NSS 功能的灵活应用经验分享
【NUCLEO-H533RE评测】coremark 跑分
【NUCLEO-H533RE评测】2、低功耗模式电流测量
【NUCLEO-H533RE评测】-01-开箱及资料准备
【NUCLEO-H533RE评测】1、i3c与X-NUCLEO-IKS4A1A亲密接触
行业应用篇 | AI 浪潮带火光通信,STM32H5 助力高速光模块应用
基于STM32H563ZI官方评估版使用经验分享
基于STM32H5 DA证书链之体验经验分享