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
    +关注

    关注

    242

    文章

    23252

    浏览量

    660575
  • STM32
    +关注

    关注

    2270

    文章

    10895

    浏览量

    355743
  • 复位电路
    +关注

    关注

    13

    文章

    322

    浏览量

    44586

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

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

收藏 人收藏

    评论

    相关推荐

    STM32F0技术介绍及对比

    STM32F0技术介绍及对比手中有利器,方为真英雄。
    发表于 04-29 16:50 17次下载

    STM32F0硬件开发入门

    分享一份STM32F0的硬件开发资料
    发表于 12-16 17:23 26次下载

    STM32F0系列产品简介

    STM32F0系列产品简介
    发表于 09-29 15:13 22次下载

    STM32F0系列概览

    STM32F0系列是基于Cortex-M0内核的32位入门级产品系列,沿用现有STM32优异基因,针对8位MCU市场,为成本敏感型应用而设计的。 STM32F0 总览
    发表于 11-29 18:13 4547次阅读
     <b class='flag-5'>STM32F0</b>系列概览

    使用Coocox建立STM32F0项目

    使用Coocox建立基于STM32F0 Discovery的项目
    的头像 发表于 07-06 02:09 3275次阅读
    使用Coocox建立<b class='flag-5'>STM32F0</b>项目

    关于STM32F0讲座:内核

    STM32F0产品技术讲座:第一节 内核
    的头像 发表于 07-05 00:15 3933次阅读

    STM32F0—电源控制

    STM32F0—电源控制(开关电源技术与设计 潘永雄pdf)-电源控制 PWR
    发表于 09-29 18:29 50次下载
    <b class='flag-5'>STM32F0</b>—电源控制

    stm32f0 discovery开发包

    stm32f0 discovery开发包分享
    发表于 09-07 15:30 11次下载

    AN5145_从STM32F0系列迁移到STM32G0系列的应用

    AN5145_从STM32F0系列迁移到STM32G0系列的应用
    发表于 11-21 17:06 17次下载
    AN5145_从<b class='flag-5'>STM32F0</b>系列迁移到<b class='flag-5'>STM32G0</b>系列的应用

    AN5145_从STM32F0系列到 STM32G0 系列的应用移手册

    AN5145_从STM32F0系列到 STM32G0 系列的应用移手册
    发表于 11-21 17:06 13次下载
    AN5145_从<b class='flag-5'>STM32F0</b>系列到 <b class='flag-5'>STM32G0</b> 系列的应用移手册

    AN4617_从STM32F0STM32L0的软件移植

    AN4617_从STM32F0STM32L0的软件移植
    发表于 11-21 17:06 5次下载
    AN4617_从<b class='flag-5'>STM32F0</b>到<b class='flag-5'>STM32L0</b>的软件移植

    UM1779_STM32CubeF0入门之STM32F0系列

    UM1779_STM32CubeF0入门之STM32F0系列
    发表于 11-22 08:22 9次下载
    UM1779_<b class='flag-5'>STM32CubeF0</b>入门之<b class='flag-5'>STM32F0</b>系列

    STM32F0—电源控制

    电子发烧友网站提供《STM32F0—电源控制.pdf》资料免费下载
    发表于 07-31 14:56 0次下载
    <b class='flag-5'>STM32F0</b>—电源控制

    为什么STM32F0系列芯片里面没有VTOR

    为什么基于STM32G0STM32L0系列芯片里有VTOR而STM32F0系列又没有? 用过STM32G0STM32L0系列芯片并做过I
    的头像 发表于 09-09 15:40 1552次阅读
    为什么<b class='flag-5'>STM32F0</b>系列芯片里面没有VTOR

    STM32F0系列MCU硬件电路boot设计

    Boot配置的作用是用于选择芯片上后从何处读取可执行代码运行,STM32F0系列MCU可以从Main flash memory、System memory、Embedded SRAM三个地方boot。
    的头像 发表于 09-27 14:21 2937次阅读
    <b class='flag-5'>STM32F0</b>系列MCU硬件<b class='flag-5'>电路</b>boot设计