查看: 2418|回复: 1

[经验] 嵌入式系统的核心器件:STM32G071开发事项

[复制链接]
  • TA的每日心情
    无聊
    2018-11-16 10:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2020-1-2 09:40:15 | 显示全部楼层 |阅读模式
    分享到:
    每一个工程师最不愿意的见到的是:为 MCU 选型而烦恼。
    MCU 作为嵌入式系统的核心器件,其选型可以说是重中之重,成本、性能、开发难易.......


    ST 推出的新一代入门级利器 STM32G0 就是为了打破成本、性能、开发难易这个不可能三角!


    接下来让我们来数数G0为你的新项目省下来的各种费用。


    最让人激动的是,不但省下了这么多外围器件成本,而且G0本身的价格媲美同等配置的F0!



    那么,在设计应用中,有没有需要特别避过的坑?



    小马哥,资深蝶粉,在G0开发中,被PD0,PD2引脚使用困扰,让我们一起复盘小马哥踩过的坑和他的解决之道。
    STM32G071  PD0 PD2引脚使用注意事项
    【背景】STM32G071的PD0,PD2作为外部中断使用,外部接10K上拉电阻拉到3.3V。外部设备被触发后电平为低电平,正常无信号。
    【问题】在以上背景下,按道理外部设备正常时(未触发中断),IO口输入电平应该是3.3V。但是实际上测量到的是0.9V,这和触发后的0V,都被单片机识别为低电平,故无法触发中断。
    【分析解决】查阅STM32G0数据手册可知:


    这个引脚的电平为FT_c,我们知道FT是容忍5V,那么FT_c是什么意思?再看说明:


    然后去用户手册查看GPIO相关说明,找到以下内容:


    基本上了解状况了,然后看一下相关寄存器说明:


    具体说明:


    由以上说明,大致可以判断如何操作:在初始化IO的时候,顺便把SYSCFG registers的 UCPD2_STROBE位设置一下就 OK 了。
    HAL库操作:
    HAL_SYSCFG_StrobeDBattpinsConfig(SYSCFG_CFGR1_UCPD2_STROBE);
    LL库操作:
    MODIFY_REG(SYSCFG->CFGR1, (SYSCFG_CFGR1_UCPD1_STROBE |SYSCFG_CFGR1_UCPD2_STROBE), SYSCFG_CFGR1_UCPD2_STROBE);
    请再注意,其实PA8和PA15也是这样的,如果我们不需要这个下拉电阻,需要按照上面的操作一下。
    那么为什么 STM32G071 有这样的设置呢?看下面IO功能即可知道,这几个引脚其实是:

    [td]
    PD0UCPD2_CC1
    PD1UCPD2_CC2
    PA8UCPD1_CC1
    PB15UCPD1_CC2



    也就是TYPE-C充电管理的相关引脚,所以会有这样的设置,关于TYPE-C相关知识,可以自行百度了解详情。

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-2 16:37
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2020-1-2 16:40:29 | 显示全部楼层
    很高兴与你一起成长
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2025-1-13 07:58 , Processed in 0.126217 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.