0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32f0按键模块电路经常遇到上电不复位的情况

2oON_changxuemc 来源:lp 2019-04-12 10:46 次阅读

描述:

STM32f0按键模块电路经常遇到上电不复位的情况,芯片采用的是stm32f030,按键模块采用ZLG7290芯片、4X4按键LED矩阵。ZLG7290是周立功公司专门开发的按键芯片,其最大可支持64个按键和64个LED,可通过I2C协议对其读写,ZLG7290与stm32f030复位电路采用datasheet参考电路,如下:

正常情况下,电路上电后会有一个LED全部点亮的过程,上电稳定延时后,LED自动全部熄灭,正常运行时,按下相应按键其对应的LED灯应被点亮。

问题:

STM32复位电路内部有自带的上拉电阻,同时PVD的电源检测阈值采用的是默认值2.2V,采用电池供电,电压表测量引脚电压在2.8V左右,但是电路上电后不能正常运行,LED矩阵上电不能被点亮,按键按下后相应LED灯无反应。

测试

stm32f030复位测试

stm32f030上电复位后,程序依次执行初始化的过程,其中包括设置时钟为内部48MHZ时钟频率,设置并启动串口、I2C等,之后执行LED灯全部点亮函数,延时3s关闭所有LED并进入主功能程序。

测试任务:stm32f030是否能复位:

既然上电后LED灯不能全部点亮,则LED灯全部点亮函数不能正常执行,则在此函数之前添加一个UART串口发送函数。

测试结果:

串口发送函数被执行,在超级终端收到正常的数据。

此时表示stm32f030能正常复位。

测试任务:注释掉LED灯全部点亮函数

此时上电后,LED不能被全部点亮(函数被注释),但是按下按键后相应LED可以被点亮。此时可锁定问题在LED灯全部点亮函数上。

分析:

LED灯全部点亮函数实际上是一个I2C写函数,通过向ZLG7290相应寄存器写入0xFF,可点亮LED。采用上面测试的方法,在函数的每一条语句之前插入一条UART发送函数,分析执行情况,其中

while(I2C_GetFlagStatus(I2C1,I2C_FLAG_TXIS)==RESET);

执行没有问题,再次说明stm32f030能正常复位。但是在

I2C_Senddata(I2C1, data);

语句之后,UART发送函数不能被正常执行,因此问题被锁定。

ZLG7290不能被正常读写,很可能ZLG7290没有被复位。

查阅ZLG7290的datasheet,发现ZLG7290复位时间在20ms左右,其远远大于stm32f030,因而产生ZLG7290没有正常复位的情况。

结论:

电路上电不复位的原因可能是多方面的,特别是stm32f030和外围电路均需要复位的情况,因此各个模块可能需要隔离测试,最终锁定问题才能找到解决的方法。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22450

    浏览量

    645890
  • STM32
    +关注

    关注

    2240

    文章

    10674

    浏览量

    348788
  • 复位电路
    +关注

    关注

    13

    文章

    308

    浏览量

    44277

原文标题:STM32上电复位不正常 手动复位正常的原因

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32F0的SPL库能在STM32G0上用吗?

    原来用的STM32F0系列,使用的V3.5.0的标准外设库。现在改用STM32G0系列,发现官网提供的固件库是STM32CubeG0,里面是HAL和LL库。为了节省开发时间,想还是用SPL库,有对应的SPL吗?
    发表于 04-08 08:29

    基于LABVIEW的STM32F0多路数据采集系统(源码+视

    数据显示界面外,视情况增加一些额外演示功能。增加控制板载LED灯闪烁效果,将采集到的数据发送TXT文件中保存功能。 3、利用LABVIEW自带的VISA串口实现和STM32F0 DISCOVERY板子
    发表于 03-13 17:13

    STM32F0分享】STM32F0各种OS工程源码实验

    STM32F0各种OS工程源码实验
    发表于 03-14 09:46

    【XNUCLEO-F030R8试用体验】之四:stm32f0三要素

    复位系统。通过上图可以看出,stm32f0系列可以由7种情况引发系统复位,分别为:1.NRST引脚低电平、2.窗口看门狗超限事件、3.独立看门狗事件、4.软
    发表于 05-12 08:13

    STM32F0不同代码区跳转时总失败…这些操作你做对了吗?

    应用程序区跳回到用户启动程序区,甚至不同用户程序区的互相跳转等操作。在这些跳转过程中,常常有人的开发工作在此遇到阻碍,甚至破费周折。 在此我们以STM32F0为例,就芯片内不同程序区的跳转问题做些交流
    发表于 06-25 15:28

    stm32F0的库函数

    哪位前辈有stm32F0的库函数呀麻烦发我一下494822650@qq.com
    发表于 06-30 11:10

    STM32F0全系列产品框架介绍

    业内内人士尽人皆知,如今基于STM32F0芯片的各类应用已然遍地开花。 这里借花献佛似地跟大家分享下STM32F0全系列产品的基本框架,自己也趁机学习下。 另外,STM32F0
    发表于 07-04 07:36

    stm32f0的固件库说明

    如题,手里又快stm32f0的板子一直想玩起来,奈何本人原来是玩16位和51单片机的,转到stm32的平台来跟原来的开发寄存器不一样了,所以想找一个stm32f0的固件库慢慢啃啃,求大家给我一个固件
    发表于 09-27 09:25

    STM32F0系列安全手册

    本用户手册介绍了如何在安全相关系统上使用STM32F0系列产品以到达安全完整性等级点击下载STM32中文用户手册: STM32F0系列安全手册引言本文档描述如何在安全相关系统的背景下
    发表于 11-02 18:14

    如何确定STM32F0的门数?

    如何确定STM32F0的门数
    发表于 12-05 18:40

    STM32F0产品列表分享

    STM32F0产品列表
    发表于 02-02 06:09

    如何对STM32F0芯片与STM32F1芯片进行配置呢

    STM32F0芯片与STM32F1芯片有哪些区别呢?如何对STM32F0芯片与STM32F1芯片进行配置呢?
    发表于 11-17 06:44

    STM32F1移植到STM32F0的应用笔记分享

    需要将应用程序移植到其它微控制器。另一方面,为了降低成本,用户可能被迫转换为更小的元件并缩减 PCB 面积。本应用笔记旨在帮助您分析从现有的 STM32F1 器件移植到 STM32F0 器件所需的步骤
    发表于 09-22 07:23

    stm32复位电路工作原理

    stm32复位电路工作原理 相信大家对复位电路已经很熟悉了,复位
    的头像 发表于 08-07 11:59 3.6w次阅读

    stm32手动复位按键出的电容有什么作用?

    stm32手动复位按键出的电容有什么作用? 外部复位电路是嵌入式系统中的一项核心功能。这种电路
    的头像 发表于 09-14 14:22 2292次阅读