[其他芯片] 由按键检测和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芯片。因此之前在软件上的初始化芯片的设计也是按下面代码写的复制#define CH452_RESET_SET() gpio_bits_write(KEY_CH452_RST1_GPIO, KEY_CH452_RST1_PIN, TRUE)#define CH452_RESET_CLR() gpio_bits_write(KEY_CH452_RST1_GPIO, KEY_CH452_RST1_PIN, FALSE)//pin resetCH452_RESET_SET();CH452_Delay(CHIP_RESET_DELAY);CH452_RESET_CLR();芯片每次上电都能正常运行说明这种引脚复位芯片的操作是成功的。但是应用测试那边还是同时出现了按键无法检测和LED无法驱动的异常现象我就直接让硬件把复位连接线去掉直接把复位脚短接到按键板上的GND上面反正软件上可以通过复位命令对芯片进行复位操作通过命令复位的代码如下复制void CH452_Delay(uint32_t count){#if 0uint32_t i;for(i 0; i count; i){__asm(nop);}#else__IO uint32_t delay_time count * (system_core_clock / 24000000);do{__NOP();}while(delay_time --);#endif}复制void CH452_Write(uint8_t chip_index, uint16_t cmd){uint8_t i;CH452_LOAD_CLR(chip_index); //命令开始,LOAD0for(i0; i12; i) //送入12位数据低位在前{// 输出位数据if (cmd 1){CH452_DIN_SET(chip_index);}else{CH452_DIN_CLR(chip_index);}CH452_DCLK_CLR(chip_index);CH452_Delay(DLCK_FREQ_DELAY);cmd1;CH452_DCLK_SET(chip_index); //上升沿有效CH452_Delay(DLCK_FREQ_DELAY);}CH452_LOAD_SET(chip_index); //加载数据,LOAD上升沿//命令数据加载周期不小于6US,to testCH452_Delay(CMD_LOAD_DELAY);//ENABLE_KEY_INTERRUPT();}复制//command resetCH452_Write(chip_index, CH452_RESET);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所有任何人未经允许禁止转载。

相关新闻

GitHub 双仓库静态部署完整配置手册(适配你的项目)

GitHub 双仓库静态部署完整配置手册(适配你的项目)

✨个人主页:编程的一拳超人 ⛺️ 欢迎关注:👍点赞 📢留言 😍收藏 于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 GitHub 双仓库静态部署完整配置手册(适配你的项目…

2026/10/25 17:58:57 阅读更多 →
电赛H题车载平衡滚球系统实战:从PID控制到嵌入式开发全解析

电赛H题车载平衡滚球系统实战:从PID控制到嵌入式开发全解析

最近在准备电赛的同学,是不是被各种“平衡”“控制”“运动系统”搞得有点头大?特别是看到“车载平衡滚球”这种题目,第一反应可能是:这得用上多少高深的算法和复杂的机械结构?别急,这篇文章就是来帮你“拆…

2026/10/25 18:31:05 阅读更多 →
C++内联函数深度解析:从编译器优化到性能调优实践

C++内联函数深度解析:从编译器优化到性能调优实践

1. 从一次性能调优的“误会”说起最近在帮同事排查一个C项目的性能瓶颈,发现了一个挺有意思的现象。项目里有个高频调用的、计算量很小的工具函数,同事为了“优化性能”,把它声明成了inline。但实际用性能分析工具一跑,发现这个函…

2026/10/25 21:48:17 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/25 22:36:10 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/26 4:52:12 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/26 5:00:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/26 3:16:46 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 12:00:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 13:21:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →