我从旧点钞机上拆下了一块有三位数码管和三个按键的控制板,板上的控制芯片是TM1628,准备将其改造为智能小车上使用,三位数码管正好可以用来显示电池的电压,三个按键可用来调整智能小车的设置(智能小车另有一块LCD5110显示屏),另外再添加五色LED信号灯的驱动。本次显示电池电压的ADC转换尚未完成,数码管、五色LED灯及键盘的驱动已经完成。
下图是控制板的正面,安装了一个三位的数码管和三个微动按键:
下图为控制板的反面,TM1628芯片在中央:
首先从网上搜集资料入手,找到了TM1628控制芯片的数据手册,基本掌握了芯片的功能和使用方法。这是一块带键盘扫描功能的LED驱动专用控制芯片,有28个引脚,最大可以扫描10*2个按键,可以控制从4位17段到7位11段数码管显示。在这块旧点钞机拆下的控制板上,三个按键占用了KEY1的KS1~KS3引脚,三位数码管的位码对应GRID1~GRID3引脚、段码对应SEG4~SEG10引脚,新添加的五色LED灯就利用了GRID4对应的SEG4~SEG8引脚。下图是TM1628管脚定义:
这是控制板上TM1628芯片与三位数码管引脚对应资料:
TM1628芯片的控制主要靠三个引脚,分别是STB(类似片选)、CLLK(时钟)和DIO(数据读写),按照数据手册给出的时序要求编写好驱动代码,通过逻辑分析仪调整好延时,芯片就被成功驱动起来了。在驱动过程中走了一点弯路,原来的控制板上CLK引脚没有上拉电阻(也许设计在点钞机主控板了),造成CLK设置成高电平时,不足1微秒就被自动拉低,无论如何调整延时都无济于事,最后是断开CLK引脚测试才发现这个问题,添加了上拉电阻后顺利地通过测试。
为了方便添加五色LED灯,在控制板上添加了六脚排针,然后通过飞线连接到相应的芯片引脚上。下图是添加排针后控制板的正面:
下图是反面,排针通过飞线与芯片引脚连接:
下图为测试过程: