2016년 5월 9일 월요일

슈퍼캡을 사용해 라즈베리 파이용 간이 UPS 만들기

아두이노같이 OS/파일 시스템이 없는 경우는 갑자기 전원이 끊어져도 크게 망가질 부분은 없다. 하지만 라즈베리 파이의 경우 SD 카드에 파일시스템을 관리하고 있기 때문에 정상적으로 shutdown을 하지 않고 갑자기 전원이 나가는 경우 최악의 경우 파일시스템이 망가져 다음번에 정상 부팅이 안 될 가능성이 있다.

그래서 서버를 운영하는데 필수장비 중에 하나가 UPS(Uninterruptible Power Supply)이다.



 내부 동작 원리는 다음과 같다.


정상적으로 전기가 공급되고 있으면 배터리를 충전하면서 동시에 UPS에 연결되어 있는 장비에 전원을 공급해 준다. 하지만 정전이 되면 배터리에 충전되어 있는 전기를 이용해 장비들에 전원을 공급해주게 된다.

정전이 되면 매우 짧은 시간에 배터리에서 전원이 공급되므로 연결되어 있는 장비들은 끊어지지 않고 계속 전력을 공급받을 수 있게 된다. 물론 배터리에 무한정의 전기를 저장할 수 없으므로 짧은 시간 (서버등이 정상적으로 shutdown을 할 수 있는 시간 정도)만 전원을 공급해 줄 수 있다. 그러므로 위의 그림에는 생략되어 있지만 USB 또는 시리얼 통신 등을 통해 정전이 되었다는걸 서버에 알려 줘 안전하게 shutdown 할 수 있게 해 주는 기능을 가지고 있다.

위와 같은 일반적인 상용 UPS는 무겁고 가격도 비싸며 처음 배터리에 충전되는데에도 꽤 시간이 걸린다.

그래서 라즈베리 파이에 사용할 수 있도록 배터리 대신 슈퍼 캐패시터를 사용해 간이 UPS를 만들어 보았다. 10F  용량의 슈퍼캐패시터를 사용했기 때문에 라즈베리 파이 3의 경우 대략 약 1분 정도의 시간동안 전력을 공급해 줄 수 있다.

회로 구성은 다음과 같다.

회로도는 아래에 있다. 대부분의 슈퍼캡은 내압이 2.7V이기 때문에 내압을 5V 이상으로 올리기 위해 두개의 슈퍼캡을 직렬로 연결해 주었다.

PowerIn 쪽에 5V 전원 아답터를 연결해 주고 PowerOut 쪽을 라즈베리 파이의 전원 커넥터에 연결해 주면 된다. 그리고 PwrFail 커넥터(J3)의 +3V3은 라즈베리 파이 커넥터의 17번 핀, PwrFail은 커넥터의 11번 핀(GPIO17)에 연결해 주면 된다.

정상적으로 전원이 공급되면 PwrFail 신호가 'H'를 유지하지만 전원 공급이 끊어지고 슈퍼 캐패시터에서 전원이 공급되면 PwrFail 신호가 'L'로 바뀌게 된다. 그러므로 라즈베리 파이에서 GPIO17번 핀을 감시하다 'L'가 되면 곧바로 shutdown 명령을 수행하면 정전이 되더라도 정상 종료가 되어 파일 시스템이 망가질 일이 없어진다.


먼저 동작 테스트를 위해 위의 회로를 간단하게 만능기판 위에 꾸며 보았다. 위의 사진에서 아래쪽의 작은 LED가 PwrFail 에 연결된 LED로 전원이 공급되고 있으면 불이 켜지고, 전원이 끊어지면 불이 꺼지게 된다. 큰 LED와 DC 모터는 PowerOut에 연결해 놓은 부하(load)이다. 여기서는 라즈베리 파이 대신 전력을 사용하게 된다.


위의 동작 비디오를 보면 처음에는 작은 LED에 빨간 색 불이 켜져 있다. 즉 전원이 공급되고 있다는 것이다. 전원이 공급되고 있으니 당연히 큰 LED에 불이 들어오고 모터가 돌고 있다. 하지만 약 17초 정도쯤에서 빨간색 LED가 꺼진다. 즉 전원 공급이 중단 된 것이다. 하지만 파란색 LED는 계속 켜져 있고 모터도 계속 돌고 있다. 이 시점에서는 외부에서 전원 공급은 없지만 슈퍼 캐패시터에 충전되어 있는 전기로 출력 단자 쪽으로 전기를 공급하고 있는 것이다. 비디오는 짧게 끊었지만 약 3~4분 정도까지 모터가 회전을 지속하였다.

이제 회로 동작 검증은 끝났고 다음번 포스트에서는 직접 라즈베리 파이에 연결한 다음 전원 공급이 끊어질 때 부터 어느 정도까지 버틸 수 있는지 테스트 해 볼 것이다.

댓글 8개:

  1. 라즈에서 테스트 해 보셨는지요.

    답글삭제
  2. R1번을 GND 연결한 부분이 이해가 가지 않습니다.

    답글삭제
  3. Powerin이 Off되면 R1이 없으면 Q2의 베이스 저항이 플로트 상태(H 도 L도 아닌 상태)가 됩니다.
    Power_OFF 상태에서 R1과 R2를 통하여 Q2의 베이스에 확실하게 GND를 걸어주기 위해서지요.

    답글삭제
  4. 다이오드를 사용하면 전압 강하 때문에 라즈베리에 5v 공급이 불가능해지지 않나요?

    답글삭제
    답글
    1. 다이오드 있으니 전압 강하가 있네요. 전원 거꾸로 꼽지 않도록 주의하고, 다이오드 제거하니 온전한 5v 공급되네요.

      삭제
    2. 전원 공급이 끊어지니, 슈퍼 캡에서 제공되는 전압이 점진적으로 떨어지네요. 그래서 DC booster 회로를 뒤에 연결하고 보니, 앞의 다이오드를 제거하기 보다는 안정성을 위해 넣어두는 것이 나을 것 같네요. 경험한 기준으로 적었습니다

      삭제
    3. 실제 적용해보니, 안되네요. 제가 무엇을 잘못했는지 파악이 안됨.

      삭제
  5. powerin 에 5v 들어왔을 때 J3가 high가 되지 않는데, 원인을 찾지를 못하겠네요..T.T

    답글삭제