LPC5528 + 74HC595 IO 扩展方案介绍

一、概述

本文将介绍一种在 LPC5528 平台上通过 74HC595 芯片实现 IO 扩展的方法,由于 LPC5528 芯片的封装最多只有 100 个引脚,有效 IO 个数最多只有 64 个,对于一些对 IO 数量要求比较多的应用,例如 3D 打印机,LPC5528 本身的 IO 数并不能满足应用的要求,因此需要外接 IO 扩展芯片,本文将介绍一种通过 74HC595 芯片实现 IO 扩展的方案,该方案的优势在于成本低,灵活性好。本文将从该方案的实现原理,实现方法以及 IO 速率优化等几个方面详细进行介绍。

二、原理介绍

74HC595 是一个 8 位的串行输入并行输出的位移缓冲器,并行输出为 3 态输出,具有 100 MHz 的移位速率,74HC595 的功能框图如下图所示,

                                                                图 2.1 74HC595 功能框图

以下为 74HC595 芯片的引脚功能描述。

                                                                图 2.2 74HC595 引脚功能描述

Q0~Q7 为 8 位的并行输出,Q7S 为串行数据输出,用来串联其它的串并转换芯片,该引脚接下一级的串行数据输入引脚。SHCP 为移位时钟输入,时钟上升沿到来时对数据进行移位操作,STCP 为存储寄存器时钟输入,上升沿到来时将移位寄存器的数据送到存储寄存器,OE 为输出使能引脚,低电平有效,该引脚有效时将存储寄存器的值送到输入引脚,DS 为串行数据输入引脚。

该芯片的时序图如下所示。

                                                                     图 2.3 74HC595 芯片时序图

三、实现方法

3.1 电路图

下面我们将介绍在 LPC5528 平台上通过 2 片 74HC595 芯片实现 IO 扩展,输入端只需要 3 个 IO 口并可实现 16 位的并口输出,具体的原理图如下图所示。

                                                               图 3.1 74HC595 级联电路图

3.2 实现代码

代码的实现基于 Arduino 框架,74HC595 实现串并转换的函数实现如下图所示,函数输入参数为并口 IO 的期望输出值,每一位置一代表对应的 IO 输出高电平。

                                                               图 3.2 74HC595 驱动代码



下图 3.3 为主函数的实现代码,用来测试并口 IO 的翻转速率,LPC5528 的主频已经设置为最高的 150 MHz。

                                                                      图 3.3 主函数代码

该函数的功能是控制并口输出的其中一个 IO 翻转,图 3.4 为 74HC595 输入端的波形,图 3.5 为输出 IO 口的波形,可以看到一次串并转换所需的时间大约为 5.16 us,因此 IO 翻转速率为 200 KHZ 左右。

                                                              图 3.4 74HC595 输入波形


                                                                      图 3.5 IO 实测波形

四、优化 IO 速率

以上的串并转换代码是通过直接调用 Arduino API 实现的,因此还存在着优化的空间,下面我们可以通过汇编代码来实现串并转换,节省所需执行的指令数量,从而提高串并转换的 IO 输出速率。如下图所示为通过汇编实现的串并转换代码。

                                                                     图 4.1 汇编代码

通过使用汇编代码,我们实测的 IO 输出波形如下图所示,一次串并转换所需的时间缩减为 1.22 us 左右,IO 翻转速率提升到了 800 KHZ左右,相比直接使用 Arduino API 的提升了 4 倍的速率。

                                                                      图 4.2 IO 实测波形

五、参考资料

  1. 《UM11126》,https://www.nxp.com.cn/webapp/sps/download/preDownload.jsp?render=true
  2. 《74HC_HCT595》,https://assets.nexperia.com/documents/data-sheet/74HC_HCT595.pdf

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论