포스트

임베디드 스터디 - 카운터 회로

임베디드 스터디 - 카운터 회로

이번 글 참고자료:
한빛아카데미, 디지털 논리회로4판
ElectronicsTutorials

A digital logic designer and circuit simulator. Contribute to hneemann/Digital development by creating an account on GitHub.

카운터

  • 입력되는 펄스의 수를 세는 논리회로
    • 발진기의 주파수 측정 등 디지털 계측 및 시스템으로 자주 응용됨
  • 일반적으로 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}⌉$

Mod-10 카운터

  • 진리표

    클럭($CLK$)$Q_{3}$$Q_{2}$$Q_{1}$$Q_{0}$10진수
    000000
    100011
    200102
    300113
    401004
    501015
    601106
    701117
    810008
    910019
    1000000 (리셋)

프리셋

  • 카운터의 초기값을 임의의 수로 설정할 수 있다.
  • 프리셋 카운터의 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}$ 신호를 통해 카운터의 동작을 제어할 수 있다.

3-bit

링 카운터

  • 시스템의 각 상태에서 오로지 한 개의 FF만 논리 1이 되는 카운터. N개의 FF으로 N개의 상태를 만들 수 있다.

링 카운터

  • 진리표

    클럭($CLK$)$Q_{0}$$Q_{1}$$Q_{2}$$Q_{3}$
    01000
    10100
    20010
    30001
    41000

존슨 카운터

  • 링 카운터의 변화형태. N개의 FF으로 2N개의 상태를 만들 수 있다.
  • 각 카운터 동작마다 인접 상태의 1비트만 변화하므로, 글리치 위험성이 감소한다. Grey Code의 동작 이점과 유사하다.

존슨 카운터

  • 진리표 (4-bit Johnson Counter)

    클럭($CLK$)$Q_{0}$$Q_{1}$$Q_{2}$$Q_{3}$
    00000
    11000
    21100
    31110
    41111
    50111
    60011
    70001
    80000

BLDC 6-step 정류 시퀀스

  • BLDC 모터는 3개의 상(Phase)에 순차적으로 전류를 인가해야 회전하는데, 3개 상의 High/Low 패턴은 총 6가지이다. 3-bit 존슨 카운터를 사용해 6개의 상태를 만들어내면, BLDC의 전류 제어를 적절하게 수행할 수 있다.

  • 진리표 (3-bit Johnson Counter)

    StepQ2Q1Q0UVW
    1000HL
    2001HL
    3011HL
    4111LH
    5110LH
    6100LH
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.