'LED'에 해당되는 글 1건
- 2008.10.31 AVR GPIO와 LED 제어 - 실수 하나
2008. 10. 31. 13:58
AVR GPIO와 LED 제어 - 실수 하나
2008. 10. 31. 13:58 in Embedded
코드를 넣고 돌렸는데, 아무런 반응도 없습니다.
결국 device 초기화 루틴을 모두 삭제하고 (AVR MCU의 RESET 이후 초기 모드로), 동작시키니 LED가 켜지면서 정상 동작하는 군요.
나중에 FAE와 통화하면서 알게 된 것인데, 실수가 있었더군요. (LED 제어시 Low On으로 사용)
초기화 코드 중에서
MCUCR |= (1<<PUD);
부분이 있는데, 이것이 GPIO 사용 방법에 문제가 있었더군요.
이 부분을 삭제하니깐 모두 정상동작하는 군요. 분명 이전에는 이 코드와 관계없이 동작하였었는데 말이죠...
AVR GPIO에 LED를 연결하여 사용하려면, AVR GPIO - LED - pull-up register - VCC 순으로 연결하여야 합니다.
그런데 지금 보드에서는 AVR GPIO - register - LED - GND 순으로 연결하였습니다.
LED를 ON 시키기 위해서는 AVR GPIO를 OUTPUT_HIGH 상태로 제어해야 하는데, AVR internal pull-up을 제거하고 하면, 이 line에 전류가 많이 흐르게 되어 아마도 AVR이 정상적으로 동작하지 않는 듯 하더군요.
나중에는 꼭 LED 제어를 Low active로 해야 겠더군요.
결국은 internal pull-up enable 상태로 모두 정상 동작합니다.
참고로 LED 밝기가 형편없습니다. 겨우 켜져있다는 것을 알 정도입니다.
코드 한 줄에 먹통이 되니, 조심 또 조심 해야 겠습니다.