링 카운터와 존슨 카운터: 설계, 동작 원리 및 실용적 응용
링 카운터
링 카운터는 마지막 단계의 출력이 첫 번째 단계로 피드백되는 특수한 시프트 레지스터입니다. 클럭 펄스가 인가되면 데이터 패턴이 무한히 순환합니다.
예를 들어, 4단계 링 카운터에서 패턴은 4번의 클럭 펄스마다 반복되지만, 레지스터는 먼저 데이터 워드로 초기화되어야 합니다. 단일 '1'(예: 1000)을 로드하는 것이 가장 일반적이며, 쉽게 시각화할 수 있는 패턴을 제공합니다.

1000을 로드한 후, 각 단계의 파형은 1클럭 주기의 지연을 제외하면 동일합니다.

이 구성은 4로 나누는 카운터 역할을 하며, 클럭 입력과 어떤 출력을 비교해도 4:1 주파수 비율을 보입니다.
임의의 분주비 구현
10으로 나누는 카운터를 만들려면 10단계가 필요합니다. 단일 '1'이 10번의 클럭 펄스마다 순환합니다.

초기화 요구사항
링 카운터는 파워업 시 초기화되어야 합니다. 각 플립플롭의 초기 상태가 정의되지 않기 때문입니다. 일단 초기화되면 패턴이 지속되어야 하지만, 노이즈가 시간이 지남에 따라 상태를 손상시켜 시퀀스를 깨뜨릴 수 있습니다.
기존의 동기식 이진 카운터는 자가 수정 기능이 있어 장기 동작에서 더 신뢰할 수 있습니다.

기존 카운터와의 비교
이진 카운터는 2단계와 디코더 게이트를 사용하는 반면, 링 카운터는 자가 디코딩이지만 더 많은 단계가 필요합니다. 디코딩된 출력이 필요하고 대부분의 로직이 단일 시프트 레지스터 패키지에 있는 경우 링 카운터가 매력적일 수 있으나, 그렇지 않으면 단순한 이진 카운터가 더 바람직합니다.

동기식 이진 카운터의 디코딩된 파형은 링 카운터와 일치합니다: (QA QB)가 00, 01, 10, 11을 순환합니다.
존슨 카운터
스위치-테일 링 카운터라고도 하는 존슨 카운터는 마지막 단계의 보수(Q')를 첫 번째로 피드백함으로써 링 카운터의 여러 한계를 극복합니다. 존슨 카운터는 주어진 분주비에 대해 링 카운터의 절반 단계만 필요합니다.
예를 들어, 4단계 존슨 카운터는 입력 클럭을 8로 나누지만, 4단계 링 카운터는 4로만 나눕니다.
존슨 카운터는 일반적으로 파워업 시 모두 0으로 클리어되어 알려진 상태를 설정합니다.

단일 '1'이 도입되면, 카운터는 4개의 0과 4개의 1로 이루어진 시퀀스를 거쳐 8상태 사이클을 생성합니다.

다상 출력 생성
4단계 존슨 카운터는 4개의 중첩된 50% 듀티 사이클 위상을 생성합니다. 3단계 존슨 카운터를 360Hz 클럭으로 구동하면 60Hz에서 120° 위상 차이를 가진 3개의 사각파를 생성합니다.
상태 디코딩
존슨 카운터의 각 상태는 단순한 2입력 게이트로 디코딩할 수 있습니다. 4단계 카운터의 경우 8개의 2입력 AND 게이트로 8개 상태를 디코딩합니다.

카운터 길이에 관계없이 2입력 디코더 게이트만 필요합니다. AND 게이트 입력을 반전시키면 로직을 단순화할 수 있지만, 아래 다이어그램은 CD4022B 데이터시트를 따릅니다.

8개의 디코딩된 출력(G0~G7)은 각각 8클럭 주기 내 한 클럭 기간 동안 액티브 하이로 유지됩니다. 예를 들어, G0는 QA와 QD가 모두 로우일 때 하이입니다.

허용되지 않는 상태와 오류 수정
4단계 시프트 레지스터는 16개의 이진 상태를 표현할 수 있지만, 존슨 카운터에서는 8개만 유효합니다. 나머지 8개는 허용되지 않는 상태입니다. CD4022B는 두 개의 NOR 게이트로 구성된 허용되지 않는 상태 검출기를 포함합니다.
실제로는 파워업 시 카운터를 리셋하여 허용되지 않는 상태 진입을 방지합니다. 허용되지 않는 상태(예: 010)가 발생하면 NOR 게이트가 다음 입력을 0으로 강제하여 허용 가능한 상태(예: 000)로 변환합니다.
몇 번의 클럭 후에는 어떤 허용되지 않는 상태도 수정됩니다. 그러나 중요한 응용 분야에서는 항상 파워업 시 카운터를 리셋해야 합니다.
존슨 카운터 장치
디코딩된 출력을 갖춘 집적 회로가 4000 시리즈와 74HC 패밀리 모두에 있습니다. CD4017은 10개의 디코딩된 출력(모듈로-10)을, CD4022는 8개의 디코딩된 출력(모듈로-8)을 제공합니다. 74HC 변형은 더 낮은 전압(2V~6V)에서 동작하며 더 높은 출력 드라이브를 제공합니다.
- CD4017 존슨 카운터, 10개 디코딩 출력 (CD4022 존슨 카운터, 8개 디코딩 출력)
- 74HC4017 존슨 카운터, 10개 디코딩 출력

실용적인 응용 분야
그림 1은 74HC4017이 10개의 LED를 구동하여 1초에 5번씩 링을 돌며 하나씩 점등하는 것을 보여줍니다. 74HC4017의 4mA 출력 능력(VOH = 4.6V at 4mA)은 LED 점등에 충분하지만, 일반적인 LED 전류는 10~20mA입니다.

555 타이머가 클럭 펄스를 제공하며, 555가 카운터의 클럭 입력을 안정적으로 구동할 수 없으면 추가 버퍼를 삽입할 수 있습니다.
존슨 카운터는 3상 사각파 생성에도 사용됩니다. P1=QA, P2=QC, P3=QB'를 선택하면 출력이 120° 간격을 가집니다. 로우패스 필터링과 증폭으로 이를 3상 정현파로 변환하여 전원 공급 장치나 모터 드라이브에 사용할 수 있습니다.

3상 스테퍼 모터의 경우, 중첩된 출력을 드라이버 IC(ULN2003 또는 개별 달링턴 쌍)에 적합한 비중첩 파형(P0, P1, P2)으로 디코딩합니다.

단일 CD4017로 3번째 카운트 후 리셋되도록 하여 각 상태가 다음 리셋 전 전체 클럭 기간 동안 지속되게 할 수 있습니다.

관련 워크시트