AN-831: 使用ADuC702x系列实现计数器 (Rev. A) PDF

AN-831
应用笔记
One Technology Way • P.O. Box 9106 • Norwood, MA 02062-9106, U.S.A. • Tel: 781.329.4700 • Fax: 781.461.3113 • www.analog.com
使用ADuC702x系列实现计数器
作者:Aude Richard
表1. 转换表
简介
ADuC702x系列的输出端有一个片内可编程逻辑阵列,它
由16个带触发器的门电路组成。该胶连逻辑可以用于实现
不同的功能。本应用笔记说明如何实现一个3位计数器,
但同样的原理也适用于简单序列产生。
PLA
可编程逻辑阵列(PLA)可以看作是胶连逻辑,其作用是消
除对简单外部逻辑的需求。它由两个独立的模块组成,每
个模块包含8个单元。各模块可以具有不同的时钟,但同
一模块内的各单元使用相同的模块时钟。
每个单元都包含一个双输入的查找表和一个触发器。查找
表通过配置可以实现任何基于单输入或双输入的逻辑功
能。触发器可以使用模块时钟,也可以旁路模块时钟。
4
D0
1
0
1
0
1
0
1
0
表2. 函数
D2
Q2
00
0
1
0
1
01
0
1
Q1, Q0
11
1
0
10
0
1
01
1
1
Q1, Q0
11
0
0
10
1
1
A
B
下一输出
D1
0
1
1
0
0
1
1
0
D2
0
0
0
1
1
1
1
0
LOOK-UP
TABLE
D1
Q2
0
1
1
05852-001
00
0
0
D1 = Q1Q0 + Q1 Q0 = Q1 ⊕ Q0
图 1.PLA单元
D0 = Q0
同步计数器
同步计数器中的触发器全都接收同一时钟信号。为实现一
个3位计数器,需要三个触发器和三个输出端,以及用于
确定下一状态的某种逻辑(见表1和表2)。
Q[2:0]
FDC
INV
D
C
CLR
FDC
Q0
Q
D
FDC
Q1
Q
C
CLR
D
Q
C
CLR
GND
CLOCK
AND3B1
Q2
AND2B1
AND2B1
图 2.原理图
Rev. A | Page 1 of 4
OR3
05852-002
3
Q0
0
1
0
1
0
1
0
1
D2 = Q2Q1Q0 + Q2Q1 + Q2Q0
0
2
实际输出
Q1
0
0
1
1
0
0
1
1
Q2
0
0
0
0
1
1
1
1
状态
0
1
2
3
4
5
6
7
AN-831
ADUC702x上的实现
结论
要实现一个3位计数器,需要三个触发器和三个通用输出
端。
由于每个PLA单元仅包含一个双输入门,因此需要将三输
入门替换为双输入门。
D2可以改写为:
使用PLA实现3位计数器有三大优点:
•
•
•
本应用笔记仅讨论了3位计数器的实现,但采用同样的技
术,很容易实现任何简单的序列产生。
D2 = Q2Q1Q0 + Q2Q1 + Q2Q0 = Q2Q1Q0 + Q2Q1Q0
利用双输入门很容易实现这一函数。
该技术的主要缺点在于器件提供的门和输出数量有限。
注意,用于触发器的时钟是完全可编程的。它可以是三个
GPIO中的一个:HCLK、内部振荡器或定时器1溢出。定
时器1溢出包含四个时钟源、一个预分频器和一个32位计
数器,可提供极大的灵活性。
图形化PLA配置工具可从ADI公司网站下载:
www.analog.com。
Q0
ELEMENT 7
CLK
Q1
ELEMENT 6
ELEMENT 1
CLK
Q0
Q2
ELEMENT 2
Q1
ELEMENT 0
ELEMENT 3
CLK
05852-003
Q2
ELEMENT 5
无需外部元件。
作为一种集成解决方案,它不需要处理能力。
时钟是完全可编程的,无需外部时钟信号。
图 3.使用PLA工具的实现方案
Rev. A | Page 2 of 4
AN-831
表3. 摘自随附代码PLAinit.c的相关代码段
//Code Generated By the ADuC 702X PLA Tool
//FileType:
C PLA Configuration File
//Source:
C Source Code
//Date:
24/10/2005 22:20:13
//================================================================
#include "ADuC7026.h"
void
plaInitialize( )
{
// Configure Port Pins for PLA mode
//
In order for the PLA Tool to configure the required GPIO pins
//
you must make the necessary selections on the outputs tab!!!
GP1CON = 0x30000000;
GP2CON = 0x00000330;
// Configure individual elements
PLAELM0 = 0x02DC;
PLAELM1 = 0x07CF;
PLAELM2 = 0x0051;
PLAELM3 = 0x0145;
PLAELM5 = 0x07D1;
PLAELM6 = 0x07CC;
PLAELM7 = 0x018A;
// Clk Source configuration
PLACLK = 0x0004;
}
Rev. A | Page 3 of 4
AN-831
注释
©2011 Analog Devices, Inc. All rights reserved. Trademarks and
registered trademarks are the property of their respective owners.
AN05852-0-1/11(A)
Rev. A | Page 4 of 4
Similar pages