최근 사용하는 디스플레이 보드 중 LED가 비정상적으로 동작하는 형태를 봤습니다.
참 당혹 스러운 상황이었는데요.
상황을 설명하자면
핀 PORT를 출력으로 설정하고 HIGH를 주는경우 LED1이 동작
LED1● LED2○
반대로 LOW를 주는경우 LED2가 동작
LED1○ LED2●
이러한 상황이었습니다.
그런데 회로도는 제공하지 않는 상황에서 LED를 끄거나 두개모두 켜야 하는 상황이 된.........
매우 난감한 상황에서 일단 PWM을 통해서 LED2개를 켜는데 성공하였습니다.
예를 들면 전압 레벨을 중간정도 맞춰주면 LED 2개가 켜지더군요.
그런데 반대로 꺼야 하는 상황은 도무지 해결책이 안보이다가
Tri-state 일명 Hi-Z 상태를 만들면 두개의 LED가 꺼지는 상황을 발견하였습니다.
그러면서 발견한 아래표를 찾았습니다.
아~~ 유레카~
대략 Tri-state가 저는 HIGH도 LOW도 아닌 상태 이렇게 알고 있었는데 (선무당이 사람 잡네요...ㅜㅜ)
이게 아니라 저항이 매우 높은 상태(High Impedance) 즉 전기가 통하지 않는 상태를 말한다고 하네요...
사실 Tri-state상태는 모터 드라이버IC를 살펴보면 간혹 나오는 용어라 알고는 있었지만 MCU도 해당되는지 몰랐습니다.
역시나 여전히 모르는 건 많고 공부할 건 태산같이 많은 나날이네요. ^^;;
반응형
'b. 임베디드 > AVR' 카테고리의 다른 글
[AVR128DA48] TWI (I2C) 동작 (PCA9685) (0) | 2022.04.05 |
---|---|
[AVR128DA] Bootloader (0) | 2021.12.01 |
AVR128DA48 CURIOSITY Nano 시작... (0) | 2021.11.12 |
[ATtiny1616] 40W BLDC Motor 제어 (2) | 2021.06.23 |
[ATmega328] WS2812B RGB 타이밍 및 동작 (1) | 2019.01.04 |
[ATtiny2313A] 외부인터럽트 (길게누르기, 짧게누르기) (0) | 2018.11.18 |
[ATtiny2313A] 외부인터럽트 예제 (0) | 2018.11.16 |
[ATtiny2313A] BUTTON 예제 (0) | 2018.11.16 |