|
* D* i4 j+ D ]! p3 M( l 01问题背景0 ^, P/ q: {% e2 F' j 客户在使用 STM32H565 开发新项目的时候遇到一个问题,PB14 在开漏时无法上拉到 3V3,且其输出的 PWM 频率比其它 GPIO 低。且多片芯片的表现类似。2 J. r( I9 Z; ?1 E; c5 F, a* q. C 检查客户的原理图并未发现明显的问题。# o8 p( n6 o9 P( H & M: W+ x0 k3 Q- `4 w 02问题复现3 i) e' b: o: U+ ?" e7 q 测试配置:硬件测试平台 NUCLEO-STM32H563ZI。 软件工具版本: STM32CubeMX Version: 6.9.2 0 |+ C: G$ j2 I STM32Cubeide Version: 1.13.2 & m# Z ~% y( W* K8 N; u 2.1. 测试 1:PB14 开漏输出异常 # f- c# a" G+ S* W 2.1.1. 测试配置 * W9 u. ~& L! X. ^1 I, N1 K8 ]! ?
▲ 图1. PB14 配置 * b: C! v A: H9 }% N: i4 u' _& N 2.1.2. 测试结果0 ^0 U/ y( ~7 |9 t9 A E# ~ 测试结果见图 2:
▲ 图2. PB14 输出波形' I0 @* q7 S% r/ _2 a- | 2 x4 z3 R k0 W4 S, e ; Z+ E, B' J& F5 f3 c2 r 从测试结果看 PB14 无法上拉到 3V3,高电平只有 1.704V,似乎有个下拉电阻分了压。 k9 K' R# b2 ^) F& J* A& J - a$ I& f/ `7 S) r 查看芯片的规格书 DS14258 Rev 1 Table 14. STM32H562xx and STM32H563xx pin/ball definition,关于 PB14 其 IO 定义如下图:9 E: u5 K, w& A # M( T. A4 E6 J+ U
& b/ p! Q8 R) o, i ▲ 图3. PB14 定义 6 {; }% }! R& k: _ 其中_c 表示该 pin 脚具有 USB type-c PD 功能。 查找 RM0481 Rev1,查看 10.11.8 PWR USB Type-C power delivery register (PWR_UCPDR)寄存器描述如下:
▲ 图4. UCPD_DBDIS 描述 6 i! l$ p, V/ c: Z6 p! E 根据 UCPD_DBDIS 的描述,当芯片退出复位时,对于 CC1,CC2 pin 默认下拉。这 也就解释了客户遇到的,开漏模式时无法上拉到 3.3V 的现象。 ; x9 W2 O3 M9 z1 C% Z, i7 q 修改测试代码,增加如下代码:5 B; z2 b7 v: K8 K. w- X& y
再次测试 PB14 输出,波形如下 ! N8 Q* @+ D1 u0 M! Y
& B7 B; o! ~( M1 K% T8 {+ c/ ^ ▲ 图5. PB14 输出的波形# ~( k& C* [8 O: J: p ; X7 H8 Z6 j; X4 M" x 此时的波形输出符合预期,测试正常。 - E% O1 A- d% v$ K& I5 V1 a( P ! Q* V& | ^" x8 s4 A # X+ `; z( }8 K 2.2. 测试 2:PB14 的 PWM 输出频率低于其他的 GPIO 使用 TIM12 在 PB14/PB15 作为 PWM 输出。对比管脚为 PB15。 $ Z4 S W Q7 ?' c 2.2.1. GPIO 配置 1 5 f; o4 p/ W7 v7 g5 x: Y. f ) g+ L! c* B: Y/ G& a
$ X8 V+ K* v& x* y. j ▲ 图6. PB14/PB15 配置 1 ! D# _/ \# |% g$ M1 O# h- S
3 \+ ]1 w9 N$ p ▲ 图7. TIM12 配置 1 9 n, O; D, [1 }6 ? 2.2.2. 测试结果 1 % ?1 Z. j3 n% u, a; L
▲ 图8. PB14/PB15 输出波形图 1 2 q, _+ _4 k( V ^* J0 U, s; S 此时 PB14 的 GPIO 输出为 0。修改 TIM12 的配置降低 PWM 频率再次测试。 3 O* j5 T) B- Z
▲ 图9. TM12 配置 2 6 I2 V: }% [9 ~ + S1 _' ?; h" u1 ]3 g& Q 2.2.3. 测试结果 2 ! T6 d+ A s" b! e% T0 s$ @
▲ 图10. PB14/PB15 输出波形图 2 R5 r1 Y j1 m2 b : _* r- k: H3 u6 X' g$ ] } 7 Y5 K! J5 C2 |4 U! K Q8 _ 此时的 PB14 是有输出的但波形幅值变小,似乎是 GPIO 设置的速度的问题造成的,修改 GPIO 速度 Maximum output speed 为 medium,再次测试。波形图如下。' K# s6 }) C0 i* D0 Z! W" e+ v 2 W( [6 ^) F! z! [& |1 G , E h% e8 ]4 |, g! O
7 ?$ b, J* [+ d ▲ 图11. PB14_medium PB15_low 输出波形图 综合上述实验 1,2 可以看出 PB14 的输出 PWM 的最大频率确实是低于其它 GPIO 的。 / A T3 {# W |0 u* D& C7 a- U 03小结 由于 PB13,PB14 都连接到 USB PD,对于 PB14,PB13 的最大 GPIO 输出速度也是有 限制的,GPIO 输出速度只支持 low 和 medium, 最大 medium 速度为 10Mhz。关于这 些描述会添加在下一版本的 DS14258 中。 4 |# z9 I7 I. Z1 t/ ^! M 如有侵权请联系删除( {- m* S) t7 ?( I# N7 Q 转载自: STM32 |
【NUCLEO-H533RE评测】-01-开箱及资料准备
【STM32H503评测】+基于STM32CubeMX生成工程点灯
实战经验 | LAT1585 STM32H5在使能TrustZone下实现High-Cycle的数据存储
详解STM32单片机的堆栈
STM32大神笔记,超详细单片机学习汇总资料
小白也能明白的STM32的低功耗与唤醒机制
STM32芯片命名规则
STM32 引脚到底有多少?为什么一个引脚能当好几个用?
STM32时钟详解
经验分享 | STM32H563 SPI DMA应用演示
微信公众号
手机版