도움을 요청했던 다른 분들은 한결같이 회로도상으로는 아무 문제가 없어 보이는데, 나도 잘 모르겠다는 반응이었습니다.
그렇게 프로젝트가 안드로메다로 향하고 있을 무렵, 문득 프로세서와 24V 전원이 연계된 한 곳에 의심이 가기 시작했습니다.
예초 설계 구상에서 공급 전원을 가변으로 줄 수 있도록 하고, 공급되는 전압에 따라서 최대 설정 가능 온도 및 W수에 제한을 두는 기능을 고려하고 넣은 회로였습니다.
공급되는 24V를 저항분압하여 1/11을 ADC 포트에 연결한 다음과 같은 단순 회로입니다.
▲ Voltage Divided ADC Input
전원을 켠 상태에서 ADC_POWER로 표시된 노드의 전압을 재 보면 24V의 1/11인 약 2.2V가 나왔습니다. 1k 저항으로 전류가 흐르지 않고 모두 프로세서로 흐른다고 가정해도 2mA 정도에 불과합니다. 이 정도 전류로 프로세서가 타버린다면 그건 쓰지 말고 그냥 갖다 버려야 하는 것이겠죠.ㅋ
사실 정석대로 한다면 이 부분은 저항분압이 아닌, OP-Amp를 중심으로 한 Signal Conditioning 회로가 들어가야 맞습니다. 하지만 OP-Amp와 주변회로를 장착할 공간이 도저히 나오지 않았으므로 어쩔 수 없이 이런 단순 저항분압 회로를 사용할 수밖에 없었습니다.
이러한 종류의 ADC 신호 입력 회로는 제가 고안해 낸 것이 아니라, 실제 배터리 Cell 전압을 측정하는 ADC 입력 회로에서도 많이 활용되고 있습니다.
예를들어, 1Cell 배터리 Cell 전압이 약 3.7V인데, 보통 이 경우 3.7V보다 낮은 3.3V 로직을 사용합니다. 전원부의 LDO(Low Drop Out) Regulator를 거치면서 발생하는 어쩔 수 없는 현상입니다.
여기서 배터리가 몇 % 남았는지 사용자에게 알려주기 위해서는 LDO 출력전압이 아닌, Cell 전압을 직접 측정해야 합니다. 이 때 3.3V 로직에 3.7V를 직접 연결하면 회로에 손상을 줄 수 있으므로 저항분압으로 반땡하거나 해서 3.3V 이하로 낮춰 ADC를 하고, 나중에 계산할 때 분압 비율을 역산하여 실제 Cell 전압을 계산해내게 됩니다.
여튼, 24V와 연계된 부분은 이곳 뿐이었으므로 우선 이 곳을 제거하고 테스트 해 보기로 결정합니다. ATmega8 칩에서 이 ADC 입력 핀을 펴서 소켓에 장착하고 테스트 해 보았습니다.
결과는 아무 문제 없이 ISP가 연결이 잘 되었습니다. (허허...)
되긴 했지만 왜 되는지 이해할 수 없는, 그런 이상한 기분이었습니다. 그간 칩이 탈때마다 다른곳을 조금씩 바꾸고 테스트 했지만, 이 부분이 잘못되었다고는 생각조차 못했기 때문이죠. (하지만, 나중에 또 다시 하드웨어 문제가 발생하는데, 그 때 이 저항분압 회로가 근본원인이 아니었다는게 밝혀지긴 합니다.)
하드웨어 문제점을 찾고 해결했으나, 당시 제 멘탈은 이 프로젝트를 계속 해 나갈 상황이 아니었습니다. 아주 지쳐있었으니까요.
게다가 곧 여름방학 기간이 되면서 저는 서울에서 약 2달간 인턴으로 일을 하게 되었고, 그 후로는 복학하면서 이래저래 정신이 없어지면서 이 프로젝트는 거의 반년간 동면상태에 들어가게 됩니다.
- 다음 글에 계속 -