从引脚有限的微处理器上压榨出额外输出引脚

技术分类: 微处理器与DSP  | 2007-07-18
来源:EDN | 作者:Armatron International Inc. Abel Raynus

  现在许多设计采用来自Freescale和Microchip的低成本微控制器,但在过去十年中,产品封装趋向于越来越小的引脚特征,如8个、甚至6个引脚。虽然这些封装减少了PCB板面积,但它们也减少了可用I/O引脚,当需要添加功能而不移植到一个较大封装时,给设计者设置了障碍。

  为了克服输入引脚的稀少的问题,通过写一个复用和选择输入引脚的程序,设计者可以增加小型微处理器输入。但这种方法并不扩展输出引脚,由于大部分设计需要同时驱动多个引脚。图1显示如何通过增加了移位寄存器来解决这个问题。

通过增加了移位寄存器扩展输出引脚

图1 你需要更多的输出引脚吗?

  比如,基于IC1(Freescale半导体的9-bit,flash存储的MC68HC908QT1微处理器,它只有8个引脚)设计增加一个8-LED。产品仅有4个多用途输出口,因而默认情况下驱动不了八个分离的LED。为了解决这个问题,你可以加入IC2, 74HC595串入串出/并出锁存移位寄存器芯片,该芯片可从半导体供应商处得到。该寄存器的锁存功能允许与特殊数据位相关的LED选择性驱动。

  根据其数据手册,74HC595芯片通过SPI协议接受信号。不幸的是

,低端微控制器,如MC68HC908QT1,缺乏SPI协议的硬件支持,但你可以在软件中通过以下步骤模拟SPI:

  1.通过不定义控制微处理器芯片IC1的PA4引脚不锁存移位寄存器输出。

  2.启动MSB,从处理器的内部数据寄存器复制1位,转移到处理器的PA0(SD)的输出上。

  3.在PA1引脚上产生一个时钟脉冲。

  4.对所有的八个数据位重复步骤2和3。

  5.定义微处理器的PA4引脚输出锁存数据到IC2(74HC595)。

  图2显示了传送数据$F0从IC1到IC2的时序图。

传送数据

图2 时序图

  表1展示了通过发送5个连续字节给IC2点亮LED,LED值为:$03, $0c,$30,$c0和$55。前4个字节沿着柱状图每秒一步的逐渐点亮两个LED。最后一个字节点亮并锁存所有奇数LED。表格仅包含了常用的指令,容易转化为其他微处理器的汇编语言。

 

  SPI仅需要三个输出引脚,空出了微处理器剩余I/O引脚可以满足其它功能,也允许远程设置移位寄存器/LED驱动――比如,带LED的单独显示板。有适当的缓冲时,寄存器输出引脚也能驱动其他负载,如电机、继电器和白炽灯等。

       英文原文:

  Squeeze extra outputs from a pin-limited microcontroller

  Shift register expands small-footprint μC I/O.

  Abel Raynus, Armatron International Inc, Malden, MA; Edited by Brad Thompson and Fran Granville -- EDN, 8/4/2005

  Many of today's designs use low-cost microcontrollers from Freescale and Microchip, but during the last decade, device packages have resorted to ever-smaller footprints featuring as few as eight or even six pins. Although these packages minimize pc-board area, they also reduce the number of available I/O pins and pose problems for designers who need to add one more function without migrating to a device that occupies a larger package.

  To overcome a shortage of inputs, a designer can increase a small microcontroller's inputs by writing a program that multiplexes and polls the input pins. However, this approach doesn't lend itself to extending outputs, because most designs require simultaneously driving multiple pins. Figure 1 shows how to solve the problem by adding a shift register.

0
0
(请您对文章做出评价)
1】【2
加载中

对文章的评论

更多评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

  • 博客推荐

  • 论坛推荐

  • 在线研讨会