跳过主要内容

AN-1179多路复用4位LED驱动器和4x4键盘扫描仪

内容

参考文献

有关文件及软件,请浏览:

//www.xmece.com/亚博电竞菠菜products/greenpak

下载我们的免费GreenPAK设计软件[1],打开。gp文件[2],并使用GreenPAK开发工具[3]在几分钟内将设计冻结到您自己的定制IC中。

yabo国际娱乐Dialog Semiconductor提供了一个完整的应用笔记[4]库,包括设计示例以及Dialog IC内的功能和模块的说明。

  1. GreenPAK设计软件,软件下载和用户指南,Dialog Semiconductoryabo国际娱乐
  2. AN-1179多路复用4位LED驱动器和4x4键盘扫描仪.GP,GreenPak设计文件,对话半导体yabo国际娱乐
  3. GreenPAK开发工具, GreenPAK开发工具网页,Dialog半导体yabo国际娱乐
  4. GreenPAK应用笔记,GreenPak应用笔记网页,对话框半导体yabo国际娱乐
  5. SLG46538对话框数据表,半导体yabo国际娱乐

作者:伊万Hnoievyi

介绍

这个应用说明演示了一个实用的解决方案,四位数7段LED显示控制和一个4x4键盘扫描仪。它还将演示使用一个GreenPAK™IC通过I2C总线发送和接收数据。

为了将四位数字LED显示器和一个4x4键盘连接到微控制器(MCU),通常需要20个I/O引脚。然而,使用GreenPAKSLG46538VIC只使用三个I/O引脚就可以节省MCU的硬件资源。设计中使用的主要组件有异步状态机(ASM)、双向I/O引脚、I2C串行通信模块和组合功能宏单元。

操作理论

本应用笔记的基本思想是使用SLG46538V IC的双向引脚,这样就可以同时使用相同的端口连接数字LED显示屏的阴极和16个按键,这些按键排列在四排四列。在多路复用模式下,LED显示控制和键盘扫描控制发生在不同的时间。基本方案如图1所示,图2为多路复用模式的时序图。

图1所示。SLG46538V GreenPAK IC的外部连接
图2。多路复用模式的时序图

在LED显示控制模式下,显示屏上的四位数字一个接一个地亮起来,每个数字亮起来大约需要2毫秒。然后,在接下来的~2毫秒,按键在键盘扫描模式下被扫描。整个周期持续约9.7毫秒,之后重复该过程。Q1-Q4晶体管应为PNP型,集电极电流至少为200ma(如PMBT5401)。

应该在数字显示器上显示的数据和通过扫描键盘得到的数据通过I2C总线传输。当扫描键盘时,如果按下任何键,GreenPAK IC将产生一个中断。当芯片产生中断时,通过扫描获得的数据会定期更新。

一个标准的7段LED显示器可以显示从0到9的数字,一些字母的字母表,和一个小数点。显示器上的每个数字都有一个共同的阳极。为了点亮任何段,逻辑低电平信号必须传送到其阴极。

实现- LED显示电路

图3。LED显示电路设计

在本设计中,为了实现多路显示模式,我们使用了GreenPAK的ASM(异步状态机)模块。输出信号来自RC振荡器块,频率为:

RC OSC FREQ(25 kHz)/ 24≈1042Hz

管延迟把频率分成两半。的模式发生器(PGEN)DFF0- - - - - -DFF2块从这个信号同步。这些块提供一个信号来转换ASM转换为另一种状态,并在低逻辑级别切换为PIN6PIN17PIN15PIN12(连接到晶体管Q1-Q4),在显示器上显示相应的数字。的ASM块有8个输出连接到内部矩阵。每八个输出的逻辑水平是基于ASM块的当前状态,并由连接矩阵输出RAM定义。这8个输出通过内部矩阵连接到以下引脚:PIN13(赛格。一个),PIN16(赛格。b),PIN18(赛格。c),PIN19(赛格。d),PIN3(赛格。e),平快(SEG。G)和PIN10(赛格。DP)。

图4。ASM中开关状态的顺序

微控制器通过2线总线I2C串行通信模块与芯片进行通信。MCU使用以下命令序列开始数据交换:

开始位→控制字节' 0x00 '(写)→地址字节→数据字节→…→停止位

为了在显示器上显示数据,它必须被写入连接矩阵输出RAM的以下寄存器中:

表1。用于数据存储的寄存器显示在LED显示屏上
数字
地址字节十六进制
注册位
信号功能
数字1(常见阳极1)
0 xd1
reg < 1679:1672 >
RAM 8输出为ASM- Digit_1输出
数字2(普通阳极2)
0 xd2
reg < 1687:1680 >
RAM 8输出为ASM- Digit_2输出
数字3(共阳极3)
0 xd3
丽笙王<1695:1688>
RAM 8输出为ASM- Digit_3输出
数字4(共阳极4)
0 xd4
reg < 1703:1696 >
RAM 8输出为ASM- Digit_4输出

这些数据存储在寄存器中并显示,直到它们再次通过I2C被覆盖,或者IC被重新启动。在后一种情况下,这些寄存器将恢复默认值(' 0xFF ',存储在NVM中)。

图5。连接矩阵输出RAM的默认配置

图6显示了通过I2C总线传输的示例数据,并将其输出到LED显示屏。

图6。举例说明LED显示数据寄存器从连接矩阵输出RAM

在LED显示控制模式下,SLG46538V IC的所有输出(除了通过I2C总线提供数据交换)的输出配置为数字推挽输出。

实现-键盘扫描

完成LED显示控制模式后,IC进入键盘扫描模式。的DFF0触发器输出设置为逻辑高电平,ASM进入“Scan column 1”状态。在扫描模式下,转换ASM从一个州到另一个州是由OSC0边缘DET0边缘DET1macro-cells。这些边缘探测器在边缘下降处形成一个短脉冲OSC0信号输出,并且在这种模式下机器状态之间的过渡频率比在显示模式下大4倍。在键盘扫描模式下4比特LUT1将输出设置为逻辑低电平,交换PIN3平快PIN7,PIN10引脚进入数字输入模式。这些引脚配置了10个kΩ上拉电阻。

图7。键盘扫描电路

ASM在每个引脚(PIN13, PIN16, PIN18, PIN19)之间交替发送逻辑低电平脉冲。这些引脚连接到键盘的四列。其他四个引脚(PIN3平快PIN7,PIN10)连接到键盘的四行。当在扫描过程中按下任何键盘按钮时,输出引脚的逻辑低电平被转移到相应的输入引脚。这时,4比特LUT0输出得到一个逻辑高级别。

这种设计允许代码只确定一个按钮按下。每个按钮都有一个独特的4位代码(见图1),由3位lut (LUT4-LUT9)。然后将其存储在的输出中DFF3-DFF6直到下一个扫描模式周期。该代码可由单片机通过I2C总线获得,该总线应读取以下数据寄存器:

表2。用于存储识别按下的按钮的数据的寄存器
键盘代码
地址字节十六进制
注册位
寄存器位定义
D0
0 xf1
reg < 1932 >
LUT3_0 / DFF3输出
D1
0 xf1
reg < 1933 >
LUT3_1 / DFF4输出
D3
0 xf1
reg < 1934 >
LUT3_2 / DFF5输出
D4
0 xf1
reg <1935>
LUT3_3 / DFF6输出

为了做到这一点,MCU必须通过I2C总线启动数据传输:

开始位→控制字节' 0x00 '(写)→开始位→控制字节' 0x01 '(读)→地址字节' 0xF1 '→数据字节→停止位。

中断信号来自PIN4当键盘扫描周期处于活动状态并按下任意按钮时,将输入单片机。MCU接收中断并读取按钮代码(' 0xF1 '字节中四个最重要的位)。

按钮按下分析的算法必须在控制器的程序中实现,连同去弹滤波器。

显示扫描模式的总时间约为9.7 ms,但如果有必要,可以增加或减少。为了做到这一点,“时钟”predivider价值和“OUT0”第二个分压器的值OSC0宏单元必须通过I2C更改:

图8。OSC0默认设置
表3。用于OSC0宏单元分压器设置的寄存器
地址字节
注册位
信号功能
寄存器位定义
A7
REG <1340:1339>
OSC时钟预分频器25kHz/2MHz
00: Div1
01: Div2
10: Div4
11: Div8
A8
reg < 1349:1347 >
内部OSC 25kHz/2MHz分频器控制矩阵输入<27> (OUT0)
000: OSC / 1
001: OSC / 2
010: OSC / 3
011: OSC / 4
100: OSC / 8
101: OSC / 12
110:OSC / 24
111: OSC / 64

请记住,重新启动IC后,所有设置和数据寄存器返回到它们的默认值。

结论

使用SLG46538V GreenPAK IC和它的资源(I2C, ASM,双向引脚等),它很容易构建一个设备显示数据在4个7段LED显示屏上,4 × 4键盘扫描仪只使用3个MCU I/O引脚。这对于大批量生产简单产品尤其有效,因为MCU的空闲I/O引脚可以用于其他任务。亚博电竞菠菜

该解决方案可用于开发电子代码门锁、信令设备、简单可编程电源或时钟和计时器等设备。此外,该设备可以实现为Arduino或其他平台的“屏蔽”板。