<>STM32G070填坑(1)–默认下拉的4个引脚

意法半导体新系列STM32微控制器STM32G0系列,基于Arm Cortex-M0 +内核,在严格的功率预算内提供出色的性能。
新系列意味着资料少,网上分享的调试经验也少(目前是几乎没有);不像STM32F系列铺天盖地的资料和各种调试经验。
最近因项目需要进行STM32G070的开发调试,记录下遇到的一些问题。

<>PD0/PD2/PB15/PA8默认4K下拉

在项目中,PB15和PA8被用于按键检测,同时外接了10K的上拉电阻,上电(3.3V)后发现两引脚的电压为0.9V左右;在排除了其他可能的情况后,我拔掉了MCU(没错,就是这么简单粗暴),引脚电压恢复为3.3V,正常了。如此看来,问题出在MCU引脚上,根据电压值,应该是引脚下拉了4K左右的电阻。
最终在用户手册(RM0454)中找到了问题的原因:

Bit 10 UCPD2_STROBE: PD0 and PD2 pull-down configuration strobe
Upon power on, internal pull-down resistors on PD0 and PD2 pins are enabled
(connected). Setting this bit disables (disconnects) the internal pull-down
resistors.
This bit is only available in STM32G070xx. It is reserved in STM32G030xx.
Bit 9 UCPD1_STROBE: PB15 and PA8 pull-down configuration strobe
Upon power on, internal pull-down resistors on PB15 and PA8 pins are enabled
(connected). Setting this bit disables (disconnects) the internal pull-down
resistors.
This bit is only available in STM32G070xx. It is reserved in STM32G030xx.

MCU上电后,这4个引脚默认连接了下拉电阻。

<>解决方法

我们的应用中,不需要这个下拉电阻,所以在代码中进行配置即可:
HAL_SYSCFG_StrobeDBattpinsConfig(SYSCFG_CFGR1_UCPD1_STROBE |
SYSCFG_CFGR1_UCPD2_STROBE);
<>扩展–UCPD

这里简单分享下为什么这4个引脚会默认连接下拉电阻。

STM32G0微控制器是世界上首个支持USB Type-C规格的通用微控制器。意法半导体创新的USB Type-C Power Delivery
(UCPD)接口IP模块整合通过认证的USB Type-C连接器管理和PD协议处理与微控制器功能,包括Arm®Cortex®-M0 +内核、高达512
KB的闪存以及外围设备,例如,12位2.5 MSPS ADC、2通道DAC、快速比较器和高精度定时器。
片上集成多达两个UCPD接口。每个接口都支持USB-C 用电(SNK)、供电(SRC)或用电供电双角色 (DRP),并支持USB
PD功能选项,例如,PPS(编程电源)模式、通信(CC)线固件升级和验证消息。

PD0/PD2/PB15/PA8正好就是这个两个UCPD接口的CC控制引脚。

技术
©2019-2020 Toolsou All rights reserved,
vue的v-if与v-show的区别C语言控制台小游戏,打砖块用C++跟你聊聊“原型模式” (复制/拷贝构造函数)身价530亿美元!世界首富前妻再嫁化学老师:承诺捐赠一半财富关于过年ESP8266/ESP32 系统篇: 优化系统启动时间java简单的抽奖算法,抽奖Demo比特币站上5.2万美元 美团CEO王兴:理论上中本聪已经是世界首富了连 CEO 都不香了?这些互联网大佬接连辞任比尔·盖茨:疫情后彻底恢复正常可能要到2022年末