当前位置: 首页 > news >正文

[其他芯片] 由按键检测和LED驱动异常到对CH452A芯片的复位功能的思考

最近项目上使用了CH452A芯片,板子上用了两颗CH452A,一颗用于驱动LED阵列,一颗用于检测KEY阵列,CPU板上的MCU分别通过4线接口与按键板上的CH452A进行通信,另外,将CH452A的复位引脚RST1连接到了MCU的GPIO口,起初的目的是为了通过MCU对CH452A进行硬件上的手动复位,其中芯片的复位引脚RST1即第28pin如下所示:

605756982a7086f44d.png(148.06 KB, 下载次数: 0)

下载附件

2026-2-4 09:55 上传

硬件上的框图大概如下图所示:

因为MCU资源有限,所以两颗CH452A的复位脚共用MCU的同一个GPIO口进行控制操作。

然后我这边自测期间出现过两次程序一直正常运行着,但同时出现了按键无法检测和LED无法驱动的异常现象,本来说等再复现的时候喊硬件同事来看下情况。

然后搭建了一套给应用测试,结果很快就出现上面的现象,所以开始了排查之路。

因为之前看过CH452A的用户手册,里面的关于复位操作和设计注意事项什么的,也有说明:

而我们的设计其实就在CH452A和单片机分属两块PCB的情况,因此连接线长度已经尽量短,目测10多厘米长吧,看上去也蛮粗的了。不过目前的硬件RST1引脚和GND直接只是串接了一颗电阻,没有接一个对地的滤波电容。

然后目前软件上MCU和CH452A的通信速度,用逻辑分析仪测试了一下DLCK的波形,大概是440KHZ左右,应该不算高吧:

从使用示波器测试出的DCLK波形来看,也还可以。

硬件同事开始给应用测试使用的连接CPU板和按键板的连接线直接使用了很长的线,目的是方便硬件的各种测试。然后硬件开始排查问题,一不小心的操作,换了实际需要使用的10多厘米长的线,然后测试看了一下,基本上都正常了。

其实我之前就猜测估计是复位引脚信号RST1突然变异常导致的,不然的话,不可能每次出现,两颗CH452A芯片都不行,百分之99就是这个复位信号的锅。

数据手册上对RST1引脚的描述是这样的:

也就是给RST1发送高电平信号,既可以复位CH452A芯片。因此,之前在软件上的初始化芯片的设计也是按下面代码写的:

复制

  1. #define CH452_RESET_SET() gpio_bits_write(KEY_CH452_RST1_GPIO, KEY_CH452_RST1_PIN, TRUE)
  2. #define CH452_RESET_CLR() gpio_bits_write(KEY_CH452_RST1_GPIO, KEY_CH452_RST1_PIN, FALSE)
  3. //pin reset
  4. CH452_RESET_SET();
  5. CH452_Delay(CHIP_RESET_DELAY);
  6. CH452_RESET_CLR();

芯片每次上电都能正常运行,说明这种引脚复位芯片的操作是成功的。

但是应用测试那边还是同时出现了按键无法检测和LED无法驱动的异常现象,我就直接让硬件把复位连接线去掉,直接把复位脚短接到按键板上的GND上面,反正软件上可以通过复位命令对芯片进行复位操作:

通过命令复位的代码如下:

复制

  1. void CH452_Delay(uint32_t count)
  2. {
  3. #if 0
  4. uint32_t i;
  5. for(i = 0; i < count; i++)
  6. {
  7. __asm("nop");
  8. }
  9. #else
  10. __IO uint32_t delay_time = count * (system_core_clock / 24000000);
  11. do
  12. {
  13. __NOP();
  14. }
  15. while(delay_time --);
  16. #endif
  17. }

复制

  1. void CH452_Write(uint8_t chip_index, uint16_t cmd)
  2. {
  3. uint8_t i;
  4. CH452_LOAD_CLR(chip_index); //命令开始,LOAD=0
  5. for(i=0; i<12; i++) //送入12位数据,低位在前
  6. {
  7. // 输出位数据
  8. if (cmd & 1)
  9. {
  10. CH452_DIN_SET(chip_index);
  11. }
  12. else
  13. {
  14. CH452_DIN_CLR(chip_index);
  15. }
  16. CH452_DCLK_CLR(chip_index);
  17. CH452_Delay(DLCK_FREQ_DELAY);
  18. cmd>>=1;
  19. CH452_DCLK_SET(chip_index); //上升沿有效
  20. CH452_Delay(DLCK_FREQ_DELAY);
  21. }
  22. CH452_LOAD_SET(chip_index); //加载数据,LOAD上升沿
  23. //命令数据加载周期不小于6US,to test
  24. CH452_Delay(CMD_LOAD_DELAY);
  25. //ENABLE_KEY_INTERRUPT();
  26. }

复制

  1. //command reset
  2. CH452_Write(chip_index, CH452_RESET);
  3. CH452_Delay(CHIP_RESET_DELAY);

硬件修改了,即直接分别把两颗芯片的复位脚短接到按键板上的GND上面,然后直接上电测试,发现按键检测正常,LED驱动也正常,奇怪了,这样子软件还没有操作对芯片的上电复位操作,芯片上电后也可以直接正常工作?我用自己的调试环境验证了一下,即把上电复位操作的代码全部屏蔽掉再测试,确实啊,芯片上电后也可以直接正常工作。

我又去看了用户手册关于复位的说明,关于芯片内部复位有下面的说明:

难道其意思是不管板子上电的时候有没有通过RST1引脚对芯片进行复位,或者有没有通过MCU发送命令对芯片进行复位,芯片都可以进入正常的工作状态?按目前实测结果来看,应该是这样子了。

硬件修改以后,目前测试倒是还没有出现异常。

主要是MCU无法知道按键检测是否正常, LED驱动是否正常,不然的话,还可以在芯片出现异常的时候,MCU通过RST1引脚给芯片复位一下,并且重新初始化一下芯片配置。

看来使用CH452A芯片,做好抗干扰设计太重要了;目前的抗干扰稳定性主要就要靠硬件了,不知道到时硬件干扰测试和EFT测试会是什么情况?能不能一次性成功?偷偷捏把汗~~

不过这里有一点,CH452A芯片还有一个比功能,在其他芯片上还真是没见过,算我第一次见,即可以通过RST引脚或者RST#引脚输出复位信号给MCU,让MCU产生复位:

根据MCU是低电平复位还是高电平复位,将RST或者RST#连接到MCU的复位引脚信号就可以了,类似手册里面的参考设计图:

其实就是在CH452A芯片产生复位的时候,该芯片会通过RST或者RST#引脚输出电平信号:

后续如果测试还是出现异常,那说不定真要考虑这种设计了,再不行就是换方案了。

以上便是我由按键检测和LED驱动异常到对CH452A芯片的复位功能的解读和思考~~


---------------------
作者:dffzh
链接:https://bbs.21ic.com/icview-3505616-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

http://www.jsqmd.com/news/1402082/

相关文章:

  • 从编排到委托:OpenClaw如何重塑AI Agent开发范式
  • 信誉好的平台二锯源头厂家怎么联系?认准远恒机械准没错 - 装修教育财税推荐2026
  • 想找Python相关实习?提前掌握这些技能,面试官直接过初审
  • Windows11安装Docker Desktop全流程指南
  • 基于DeepSeek V4与LangChain构建低成本AI数据分析Agent实战
  • VSCode集成Cppcheck:Windows下C/C++静态代码分析实战指南
  • AI论文平台哪个最好?2026实测
  • 华为 CANN 9.0.0 Ubuntu x86_64 A2芯片 安装指南
  • AI Agent技术解析:从核心原理到国产化落地实战
  • 深度测评:2026年刚需首选的专业降AIGC软件
  • 《大话数据结构》第8章精读:二叉排序树(BST)完整 C++ 实现(插入、查找、删除、遍历)
  • 广元出发西藏旅游,选对旅行社和地接社,你的西藏摄影团才不算白去| 附:旅行社电话 - 西藏康泰旅行社
  • Agent怎么学?先做一个会暴露问题的真实项目
  • 活塞环硬质积碳为什么难清除?DCCS双通道协同免拆治理技术全面科普 - 天下观知
  • 2026年汉阳餐厅推荐值得试吗?实测5家讲清适配场景
  • 【泄底】星咏师的记忆(阿津川辰海)
  • GitHub 双仓库静态部署完整配置手册(适配你的项目)
  • 星之图解密:浙江核磁室专用精密空调全方案,核磁专用空调/恒温恒湿机房空调/MRI屏蔽室空调,核磁专用空调公司选哪家 - 企业权威推荐大使
  • 凯里公式 (一般也不用)
  • 讲解机械制图基础知识(39),机械制图基础知识之镶块、支架组合体介绍
  • 2026 年至今,湘西值得关注的彩色透水混凝土订制厂家有哪些,踩上去比鹅卵石还舒服?这玩意儿竟成了小区步道网红款,好多人不知道它还能防内涝 - 行业推荐官【认证】
  • 重邮802数据结构代码题:从看懂到写出的四步拆解法
  • 伯藜伴夏 | 那些手作生花的伴夏瞬间
  • 2026年诚信的云南有机玻璃板定制厂家哪家好?源头实力解析 - 装修教育财税推荐2026
  • Gradle国内镜像配置全攻略:原理、方案与实战避坑指南
  • 50元内AI降噪方案:手机+开源工具实战指南
  • 直播联营创业稳健合作渠道 苏音娱乐公众号加盟挂靠稳妥 - nuanyin
  • 老人独居看护摄像头怎么选?跌倒检测+一键呼叫,让牵挂落地的技术方案
  • 数据中心建设、5G+智慧校园
  • Windows端口检查全攻略:从netstat到PowerShell实战排查