本文将展示单个微控制器端口如何通过移位寄存器控制多个输出线路。在本实例中,我们使用的是带选通脉冲控制的移位寄存器,以期达到完美控制输出线路的效果。
移位寄存器输出可驱动LED和继电器等器件。换言之,它们可用作(附加的)通用输出。
如今,移位寄存器可分为仅有数据(DATA)和时钟(CLOCK)输入的移位寄存器(如74HC164)以及带数据、时钟以及选通脉冲(STROBE)控制输入的移位寄存器(如74HC4094或74HC595)。由于不带选通脉冲控制的移位寄存器直连输出线路,因此在移位时,输出线路上会出现短期瞬变。为此,此类移位寄存器可用作驱动不受短期瞬变影响的LED及类似器件——人眼是察觉不到短于10毫秒的LED闪烁的。带有选通脉冲控制的移位寄存器包括两个寄存器。
图1:带选通脉冲输入的移位寄存器逻辑图(74HC4094)。
8-stage shift register:8级移位寄存器
8-bit storage register:8位存储寄存器
3-stage outputs:3级输出
rnBednc
一个是移位寄存器,另一个是存储寄存器。当有新数据加载至移位寄存器时,存储寄存器会将其中保存的数据冻结。当所有新数据移入后,选通脉冲会立即将所有数据位移至存储寄存器。这样,输出线路就不会发生瞬变。这一新特性使该类移位寄存器可以用于驱动瞬变敏感器件,如双向晶闸管(TRIAC)和高亮LED等。
目前有多个仅用少量I/O线路即可驱动移位寄存器的解决方案。本设计实例中引用的一些方案描述的是不带选通脉冲控制的移位寄存器的驱动方法。
1, 2
图2至图4展示了如何通过单条I/O线路驱动带选通脉冲控制的移位寄存器。图2展示了通过数据、时钟和选通脉冲三条线路控制的移位寄存器。
3
图2:通过数据、时钟和选通脉冲三条线路控制的移位寄存器。
DATA:数据
CLOCK:时钟
STROBE:选通脉冲
rnBednc
如果将选通脉冲控制输入连接至5V电压(逻辑1),就可以得到实际意义上的不带选通脉冲控制的移位寄存器。这种情况下,我们可采用参考文献1中的解决方案,使用单条I/O线路驱动数据和时钟输入(见图3)。
图3:一个微控制器端口控制移位寄存器的数据和时钟输入。处于未激活状态的选通脉冲输入连接至5V电压(逻辑1)。
rnBednc
但是,当想要使用选通脉冲信号获得无瞬变输出信号时,我们需要使用到CLOCK和STROBE端口。此外,我们也可以如参考文献4所示,增加一个单稳多谐振荡器电路来进一步改善输出效果。
最后,我们提出的是一种最简单的方案:通过RCD网络控制选通脉冲输入(见图4)。
图4:使用RCD网络,通过一条I/O线路控制移位寄存器(带选通脉冲输入)。
rnBednc
RCD网络由分立电阻器Rn(220KΩ)、电容器Cn(47p)和二极管Dn组成。该网络能够使选通脉冲信号迅速降为0,但在10.34微秒内(时间常量Rn×Cn之积)缓慢升至1。
【分页导航】rnBednc
第1页:方案设计
第2页:如何工作rnBednc
《电子技术设计》网站版权所有,谢绝转载
{pagination}
如何工作
让我们看一下第一个移位寄存器。微控制器直接驱动时钟输入。相同的信号经过RC滤波器并驱动数据输入D(见图5)。
RC滤波器由分立电阻器R(470KΩ)和D输入管脚电容组成,能够产生约1微秒(R×C×ln2之积,即:470KΩ×3pF×0.7)的时延(td)。
要在移位寄存器中写入0,则微控制器保持低电平的时间要长于时延(td)时间(即2.5微秒),随后再变为高电平。
要在移位寄存器中写入1,则微控制器保持高电平的时间要长于时延(td)时间。随后微控制器会产生一个短负脉冲(100纳秒)。
图5:延时电路原理图。
rnBednc
图6所示的波形图证实了这一点。信道1显示的是时钟信号,信道2显示的是数据信号,信道3显示的是选通脉冲信号。我们使用的是泰克公司带高压探头TPP0850的示波器DPO4034,这些探头的输入电阻为40MΩ,而输入电容仅为1.5pF。使用这些探头可以准确地捕捉到数据和选通脉冲信号,且不会导致容性负载极度失真。
图6:采用16个LED点条状/条状图显示方式写入位序列1111100000000000,形成波形图。最上方(黄色)波形为时钟信号,中间(蓝色)波形为数据信号,最下方(粉色)波形为选通脉冲信号。
rnBednc
移位寄存器由时钟信号的上升沿计时,此时对应数据信号的最小值。从波形图中可以看出,逻辑0时数据信号最小值为1.2V,逻辑1时,数据信号最小值为4.2V。移位寄存器的逻辑阈值为2.5V,因此我们可以推断,1.2V和4.2V的电压可以确保足够的电压差。在实际电路中,移位寄存器储存16位数据的时间约为50微秒。
从图6还可以看出,当所有16位数据加载完成后,选通脉冲信号(粉色)呈上升趋势。与不带选通脉冲的移位寄存器相比
1,带选通脉冲的移位寄存器的端口无法长时间保持在高压电平状态,以避免出现不必要的选通脉冲激活现象。在本例中,高电平持续时间不能超过6微秒。
图7中,我们使用放大功能显示写入逻辑1的负时钟脉冲。在现实情况中,微控制器ATTINY13产生该脉冲的时间仅为100纳秒。
图7:写入逻辑1的窄时钟脉冲。
rnBednc
图8所示波形为写入逻辑0的时钟脉冲。
图8:写入逻辑0的时钟脉冲。
rnBednc
图9为使用74HC4094移位寄存器的16 LED点条状/条状图显示图片。其中有两个8位串行输入/并行输出移位寄存器。我们使用的是单面印刷电路板(PCB),因此从图片中可清晰地看到所有构造。
图9:使用两个8位74HC4094移位寄存器的16 LED点条状/条状显示图。
rnBednc
该软件的运作极为简单(
程序清单),它每隔500秒就会依次打开LED,所有LED均打开后,再将其全部熄灭,然后重新进行此循环。以下两段短视频将向您展示LED功能以及显示数据、时钟和选通脉冲信号的示波屏。
参考文献
1. Mijanovic, Zoran and Nedjeljko Lekic, “
Drive 16 LEDs with one I/O line,” EDN, June 9, 2011.
2. Edited by Charles H Small and Fran Granville, “
Microcontroller provides low-cost analog-to-digital conversion, drives seven-segment displays,” EDN, May 10, 2007.
3. Raynus, Abel, “
Squeeze extra outputs from a pin-limited microcontroller,” EDN, August 4, 2005.
4. Rex Niven, “
RC lowpass filter expands microcomputer’s output port,” EDN, June 21, 2007.
原文作者:Zoran Mijanovic & Nedjeljko Lekic
【分页导航】rnBednc
第1页:方案设计
第2页:如何工作rnBednc
《电子技术设计》网站版权所有,谢绝转载