임베디드 스터디 - 카운터 회로
이번 글 참고자료:
한빛아카데미, 디지털 논리회로4판
ElectronicsTutorials
카운터
- 입력되는 펄스의 수를 세는 논리회로
- 발진기의 주파수 측정 등 디지털 계측 및 시스템으로 자주 응용됨
- 일반적으로 1개의 입력, $n$개의 출력으로 구성 ($n$-bit 카운터)
비동기식 카운터 (Asynchronous Counter)
- 첫 번째 플립플롭(FF)이 클럭 펄스를 인가받고, 나머지 FF는 이전 FF의 출력으로 활성화된다. 대표적인 IC로 7493(4-bit 비동기식)이 있다.
- 클럭의 영향이 다음 FF으로 파급된다는 뜻에서 리플 카운터 (Ripple Counter) 라고도 불림.
- 클럭 입력마다 FF이 개별적으로 상태가 업데이트된다
- 각 FF의 출력이 주파수 분주 기능을 수행할 수 있다.
동작 속도
비동기식 카운터를 설계할 때, 클럭 주파수는 다음 조건을 만족해야한다. $f_{max}$은 최대 클럭 주파수, $n$은 FF의 수, $t_{pd}$는 각 FF의 전파 지연 시간이다.
$f_{max} \leq \dfrac{1}{n \cdot t_{pd}}$
동기식 카운터 (Synchronous Counter)
- 모든 FF가 클럭 펄스를 동시에 인가받는다. 대표적인 IC로 74163(4-bit 동기식)이 있다.
- 고속 카운팅에 유리하다.
- 비동기식과 마찬가지로 주파수 분주용으로 사용할 수 있다.
동작 속도
동기식 카운터는 비동기식과 달리 모든 FF가 같은 클럭 펄스를 인가받기에, 전체 회로의 지연 시간은 FF의 지연 시간과 AND 게이트의 지연시간을 합한 값과 같다. 따라서 최대 클럭 주파수는 총 지연 시간에 반비례한다. 비동기식 카운터와 달리 동기식 카운터는 최대 클럭 주파수가 FF의 수에 영향을 받지 않으므로 고속 카운팅에 유리한 것이다.
$t_{pd_{Max}} = t_{pd_{FF}} + t_{pd_{AND}}$
$f_{max} \leq \dfrac{1}{t_{pd_{Max}}}$
Modulo-N 카운터
- 카운터가 특정 수까지만 카운팅되고 마지막에서는 다시 초기값으로 순환한다. 대표적인 예로 BCD 카운터(74162 IC)가 있다.
- Modulo-N, 줄여서 MOD-N 카운터라고 한다. N은 카운터가 셀 수 있는 숫자의 개수이다.
- MOD-N 카운터를 설계할 때, 카운팅하는 숫자의 개수에 따라 FF의 수를 만족해야한다.
IC에 따라 다를 수 있으나, 마지막 수에 해당하는 비트가 발생하면, 해당 비트에 대한 NAND 로직을 통해 $\overline{CLEAR}$ 나 $\overline{LOAD}=0000$에 신호를 인가하여 초기화할 수 있다.
$N_{FF}=⌈\log_{2} N_{MOD}⌉$
진리표
클럭($CLK$) $Q_{3}$ $Q_{2}$ $Q_{1}$ $Q_{0}$ 10진수 0 0 0 0 0 0 1 0 0 0 1 1 2 0 0 1 0 2 3 0 0 1 1 3 4 0 1 0 0 4 5 0 1 0 1 5 6 0 1 1 0 6 7 0 1 1 1 7 8 1 0 0 0 8 9 1 0 0 1 9 10 0 0 0 0 0 (리셋)
프리셋
- 카운터의 초기값을 임의의 수로 설정할 수 있다.
프리셋 카운터의 Modulus는 다음 조건을 따른다.
$(프리셋 카운터의 Modulus)=(최대 modulus 2^n) - (프리셋 수)$
- EX) 4-bit 카운터(MOD-16)에서 프리셋값 6을 설정한 경우 Modulus = 2⁴ - 6 = 16 - 6 = 10 → MOD-10 카운터로 동작
업다운 카운터
- 카운터 동작을 상향, 하향으로 전환할 수 있는 카운터. 대표적인 IC로 74193(4-bit 업다운)가 있다.
- $UP/\overline{DOWN}$ 신호를 통해 카운터의 동작을 제어할 수 있다.
링 카운터
- 시스템의 각 상태에서 오로지 한 개의 FF만 논리 1이 되는 카운터. N개의 FF으로 N개의 상태를 만들 수 있다.
진리표
클럭($CLK$) $Q_{0}$ $Q_{1}$ $Q_{2}$ $Q_{3}$ 0 1 0 0 0 1 0 1 0 0 2 0 0 1 0 3 0 0 0 1 4 1 0 0 0
존슨 카운터
- 링 카운터의 변화형태. N개의 FF으로 2N개의 상태를 만들 수 있다.
- 각 카운터 동작마다 인접 상태의 1비트만 변화하므로, 글리치 위험성이 감소한다. Grey Code의 동작 이점과 유사하다.
진리표 (4-bit Johnson Counter)
클럭($CLK$) $Q_{0}$ $Q_{1}$ $Q_{2}$ $Q_{3}$ 0 0 0 0 0 1 1 0 0 0 2 1 1 0 0 3 1 1 1 0 4 1 1 1 1 5 0 1 1 1 6 0 0 1 1 7 0 0 0 1 8 0 0 0 0
BLDC 6-step 정류 시퀀스
BLDC 모터는 3개의 상(Phase)에 순차적으로 전류를 인가해야 회전하는데, 3개 상의 High/Low 패턴은 총 6가지이다. 3-bit 존슨 카운터를 사용해 6개의 상태를 만들어내면, BLDC의 전류 제어를 적절하게 수행할 수 있다.
진리표 (3-bit Johnson Counter)
Step Q2 Q1 Q0 U V W 1 0 0 0 H L — 2 0 0 1 H — L 3 0 1 1 — H L 4 1 1 1 L H — 5 1 1 0 L — H 6 1 0 0 — L H





