做小家电方案这几年,我手里经手过的LCD驱动芯片和键盘扫描方案加在一起少说也有几十款,但真正让我愿意在项目里反复复用的,其实不多。FZH1643算一个。这颗芯片最吸引我的地方不是某个单项参数有多顶尖,而是它把显示驱动、键盘扫描和I2C通信捏在了一个封装里,还给了用户很大的模式切换自由度。今天借这个机会,把这颗芯片从选型思路到软硬件实操完整拆一遍,希望能帮到正在做带按键的人机交互面板、又不想被IO口数量和扫描逻辑拖住的朋友。
1. 为什么需要一颗“LCD+键盘扫描”二合一的驱动芯片
1.1 传统方案的痛点
我们先从项目初期最常遇到的局面说起。你做一个带显示和按键的产品,比如温控器、电磁炉面板、空气净化器控制板,核心需求其实就两件事:把段码LCD显示出来,把按键状态读回来。
以前的做法多半是MCU直接驱动LCD。一个8位COM、16位SEG的段码屏,一下就占掉24个IO口,再加上几个矩阵按键,单片机的引脚瞬间捉襟见肘。更麻烦的是,段码LCD驱动需要持续的交流波形刷新,MCU要不停跑刷新中断,否则LCD会偏置极化、显示变淡甚至出现残影。主控被显示刷新占掉大量时间,按键扫描和业务逻辑就被挤得很难受。
后来有人改用HT1621、FD633之类的纯LCD驱动芯片,显示问题缓解了,按键扫描还是得回到MCU这边。IO口是省了,但按键还是得一条条线接到MCU上,而且一旦按键多起来,矩阵扫描逻辑、消抖逻辑、多按键组合判断全都压在主控头