GAL22V10 으로 신호등 제작하기

글 내용

  수업중 디지털 시스템 설계 시간에 부울식 작성을 이용해서 GAL 소자를 Write하여 신호등을 만들었습니다.
수업시간에 하는 내용에 조금 더 난이도를 높여 신호등을 제작해보았습니다.
내용인즉 수업시간에 만든 신호등은 1Hz 클럭을 이용해 1초마다 녹->노->빨 다음신호의 녹->노->빨  이런식으로 작성이 되었다면, 제가 만든 신호등은 녹색등은 8초, 노란불은 1초가 켜지게 설계를 하였습니다.

기존에 만든 GAL22V10의 신호등은 그대로 두고 외부 회로만 바꾸기로 했습니다.
제가 생각한 회로는 아래와 같습니다.

사용자 삽입 이미지

  회로에서는 노란불은 2초간 켜지고, 녹색불은 20초간 켜지는 클럭 2개를 가변적으로 입력시키는 회로입니다.
녹색불이 켜지지 않은 상태에선 OR 게이트를 통과한 신호가 없기 때문에 Low 신호가 Tri State Buffer로 전달되고, Tri State Buffer에선 not 이 붙은 아래 2초짜리 버퍼에 High신호가 들어가기 때문에 2초짜리 클럭이 CLK로 전달됩니다. 그러면 노란불은 2초간 켜지게 되며 2초후 다음상태의 녹색불이 켜지게 됩니다.
녹색불이 켜지면 OR 게이트를 통과한 신호가 High 신호가 되기때문에 Tri State Buffer에선 20초짜리 클럭이 CLK로 전달되게 되어 녹색은 20초간 켜지게 되는 간단한 회로입니다. (여기까진 이게 동작할줄 몰랐음.ㅋ)

이 회로를 브레드보드에 구현한모습은 아래와 같습니다.
사용자 삽입 이미지Anycall SPH-M4800 | Shutter priority | 0/0sec | Flash did not fire | 2010:05:27 05:47:09

GAL22V10  2개가 일단 신호등 역할을 하게 됩니다.
2입력 OR 게이트인 74LS32를 사용해 녹색신호 4개를 OR게이트 3개를 다중사용하여 4입력 OR게이트로 사용해 출력신호를 만듭니다.
이 신호를 3상버퍼(Tri State Buffer)로 보내 가변 클럭을 만듭니다. 위 회로도처럼 생긴 3상버퍼 소자를 못찾았기 때문에 74LS125의 3상버퍼 2개와 74LS04(NOT gate)를 사용하여 아래 회로를 구현하였습니다.
사용자 삽입 이미지

죄송합니다. 발로그렸습니다.


G에 OR게이트를 통과한 녹색High 신호가 들어가면 2초짜리엔 not을 거쳐 Low가 들어가므로 2초는 무시, not 게이트를 거친low신호가 3상버퍼의 not게이트를 거쳐 다시 High 신호가 들어갑니다. 그러면 20초짜리 클럭이 출력 Y로 나오게 되는것이지요. 결국 Y신호를 GAL22V10에 입력시켜주면 됩니다.

그럼 2초와 20초짜리 클럭은 어떻게 만들어주냐....
대충 카운터를 사용했습니다. 정확히 2초와 20초는 아니고, 4비트 카운터(74LS93)를 이용해서 1초와 8초를 만들어 노란색과 녹색의 시간지연에 사용했습니다. 1초는 Logic Lab Unit 에서 1Hz짜리 클럭이 출력돼 이걸 사용했습니다.

드디어 다 만든 개선된 신호등... 동작 모습을 보시겠습니다..ㅎ

허접하지만  나름 공부도 되고 재미있었습니다..ㅎㅎ

http://seoltang.com/405 
(신호등 관련 제덱파일, 부울식, 핀맵, 세미나 자료, 회로도) - 비공개

티스토리 툴바