하드웨어 설계시 74HC245A  (74AC245A, 74LVC245A, 74FCT245A ... ) 는 아주 많이 사용한다.

32bit MCU 설계시 버스의 확장이나 커넥터 등으로 연결할때 약방의 감초처럼 쓰인다.

너무 쉽게 사용하다보니 이칩의 문제점에 대해 간과하는 것 같다.


먼저 245 버퍼의 핀을 보자

  • OE        버스출력 활성화핀 (LOW 일 때 활성화)
  • DIR        버스방향 설정핀
  • A(8)       한쪽의 8비트 양방향 포트
  • B(8)       다른쪽의 8비트 양방향 포트

245 버퍼는 A 입력을 B 출력으로 내주거나

B 입력을 A 출력으로 내주는 역할을 한다.

방향을 결정하는 것이 DIR 핀이고  출력을 활성화 하는 핀이 OE 핀이다.

여기까지는 모두 알고 있는 것이고....


두가지 경우에 대해서 고찰해 보자


1. 245 버퍼를 단방향으로만 사용할때


단방향일때는 OE 신호를 무조건 풀다운 하는경우가 많다.

그리고 DIR 핀도 고정할 것이다.

이때 DIR 핀이 출력일 경우 상태편 245도 같은 출력이라면 어떻게 될까?

전원이 켜지고 안정화 되기전  245 버퍼가 출력 끼리 만나는 일이 발생할 수 도 있다.

이런 경우 칩이 손상될 수 있다.

이런것을 방지하려면 OE 신호를 전원이 켜진 후 늦은 시간에 활성화 시키는 것이다.


참고. 245 명칭뒤에 A 가 붙어 74HC245A 라고 표시된다. A 가 붙으면 전류를 높였다는 표시이다.

        최소 20mA 이며 FCT 의 경우 최대 60mA 도 드라이빙한다.


2. 245 버퍼를 보드들을 연결하는 버스버퍼로 사용할때

sch-74hc245-bus.png

 

위와 같이 회로를 설계할 것이다.

문제는 전원이 켜질때 CS# 신호선이 어떤상태일지 모른다는 것이다.

마찬 가지로 OE# 신호선도 모른다.

이렇게 보드들을 서로 백판넬을 사용하여 연결할 경우 전원이 켜진 상태에서 카드를 연결할때가 있다.

이때 전원이 인가될 시점에 245 버퍼의 출력이 만나는 경우가 있다.

역시 CS# 신호선을 풀업하여 놓는 것이 좋다.

또한 외부버스로 나가는 신호선에 모두 댐핑저항을 연결하는 방법이 좋다.

출력끼리 만나는 것을 저항이 막아줄 것이기 때문이다.

이런버스에 카드가 여러개 달리면 각 보드에 타이밍이 틀어지게 된다. 245 버퍼에 무리가 갈수 있으니

설계시에 조심하도록 한다. 특히나 버스를 고속으로 운용하면 큰일난다. 이런것들은 저속으로 ....



요즘 나오는 245 버퍼는 여간해서는 죽지 않는다.

하지만 양전원 버퍼 74ALVC4245 이 칩은 정말 잘 죽는다. 나는 이칩을 절대 사용하지 않는다.

3.3V 와 5V 를 버스를 연결할때 기냥 3.3V 전원의 단전원 245  를 사용하자  LVC245 나 AC245 는 5V 토일런스가 있다.


회로를 글로 설명하는 일은 정말이지 어렵다.  ㅜ.ㅜ