[其他芯片] 由按键检测和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/8/17 4:04:44 阅读更多 →
电赛H题车载平衡滚球系统实战:从PID控制到嵌入式开发全解析

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

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

2026/8/17 3:43:07 阅读更多 →
C++内联函数深度解析:从编译器优化到性能调优实践

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

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

2026/8/16 2:55:49 阅读更多 →

最新新闻

从Plan-Execute到混合PEV:构建高效AI运维诊断Agent的架构演进

从Plan-Execute到混合PEV:构建高效AI运维诊断Agent的架构演进

1. 项目概述:从“计划-执行”到混合PEV的必然之路在运维自动化的世界里,诊断问题一直是个“脏活累活”。想象一下,半夜三点,线上服务突然告警,CPU飙升,内存泄漏,日志刷屏。传统的脚本化工具要么…

2026/8/17 6:07:11 阅读更多 →
汽车高压与储能BMS方案深度解析:从芯片选型到算法策略

汽车高压与储能BMS方案深度解析:从芯片选型到算法策略

1. 项目概述:BMS方案全景解析最近和几个做动力电池和储能项目的朋友聊天,发现大家虽然都在谈BMS(电池管理系统),但聊到具体方案选型时,经常是“公说公有理,婆说婆有理”。有人执着于汽车高压BMS…

2026/8/17 6:07:11 阅读更多 →
蓝色商务PPT模板:从开箱即用到高阶定制,提升项目汇报效率

蓝色商务PPT模板:从开箱即用到高阶定制,提升项目汇报效率

这次我们来看一个面向商务场景的PPT模板资源——“蓝色简约商务风项目计划报告PPT模板”。对于经常需要制作项目汇报、方案演示的职场人士和技术团队来说,一个设计专业、结构清晰的模板能极大提升效率。这个模板的核心价值在于提供了一套即拿即用的视觉框架&#xf…

2026/8/17 6:07:11 阅读更多 →
MATLAB控制系统设计:从传递函数到离散化的完整流程解析

MATLAB控制系统设计:从传递函数到离散化的完整流程解析

1. 从传递函数到波特图:一个经典控制回路的分析起点在控制系统设计、信号处理乃至电路分析的日常工作中,我们常常会面对一个抽象的数学描述——传递函数。它简洁地刻画了系统输入与输出之间的动态关系,但如何直观地“看见”这个系统的频率响应…

2026/8/17 6:07:11 阅读更多 →
Vue3项目Element Plus图标引入与优化实战指南

Vue3项目Element Plus图标引入与优化实战指南

1. 项目概述:为什么要在Vue3项目中引入Element Plus Icon?如果你正在用Vue3开发一个后台管理系统、一个企业级应用,或者任何一个需要精致用户界面的项目,那么图标(Icon)几乎是一个绕不开的需求。按钮上需要…

2026/8/17 6:07:11 阅读更多 →
安卓设备深度控制:ADB与Fastboot工具链从入门到实战

安卓设备深度控制:ADB与Fastboot工具链从入门到实战

1. 项目概述:从“黑盒”到“白盒”的钥匙如果你曾经对手机里那些删不掉的内置应用感到烦躁,或者想给自己的设备刷入一个更纯净、更个性化的系统,那么你大概率已经听说过adb和fastboot这两个词。它们就像是通往安卓设备“后台”的两把关键钥匙…

2026/8/17 6:06:11 阅读更多 →

日新闻

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必修课? 如果你用LabVIEW做过稍微复杂点的项目,尤其是涉及界面响应、多任务并行或者硬件IO等待的场景,大概率遇到过这样的窘境:前面板点个按钮,整个程序就“卡死…

2026/8/17 0:00:08 阅读更多 →
LabVIEW异步调用实战:解决界面卡顿与并行处理难题

LabVIEW异步调用实战:解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必经之路如果你在LabVIEW里写过稍微复杂点的程序,尤其是涉及到界面响应、多任务并行或者硬件IO等待,大概率会遇到一个头疼的问题:程序“卡”住了。前面板点不动,进度条不更新…

2026/8/17 0:00:08 阅读更多 →
飞书局域网文件传输实战:3种方案实现高速点对点传输

飞书局域网文件传输实战:3种方案实现高速点对点传输

1. 项目概述:为什么要在局域网内用飞书传文件? 飞书作为一款主流的协同办公套件,其核心功能是围绕云端协作设计的。无论是文档、表格还是文件,通常的分享逻辑都是“上传到云端 -> 生成链接 -> 分享给同事”。这个流程在互联…

2026/8/17 0:00:08 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/17 2:58:27 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/17 2:58:30 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/17 2:58:32 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →