'12F675'에 해당되는 글 8건

  1. 2016.08.08 MPPT 펌웨어 업데이트.
  2. 2015.08.22 12F675를 이용한 MPPT
  3. 2015.08.03 PWM 고민의 해결.
  4. 2015.07.23 12F675롤 이용한 PWM,
  5. 2015.06.12 PWM 회로의 펌웨어 업데이트.
  6. 2014.11.21 12F675를 이용한 ADC를 가져오기.
  7. 2014.08.24 쿨링팬 컨트롤러 회로 개선.
  8. 2014.08.14 12F675에 대한 이야기 더하기 아두이노 전원부 이야기.
2016.08.08 08:45

MPPT 펌웨어 업데이트.

 많은 시도 끝에 전압 변동이 적게 보다 안정한 조정이 되는 알고리즘을 다시 구현하고 최대 태양광 패널의 상한 값을 최대 전류량의 전압에 이하로 만들었다. 이전의 알고리즘은 태양광 패널의 상한값 보다 더 올라가는 경향이 있었는데, 그로 인해 출력 전력이 낮아지는게 있었다.

 그리고  보다 단순화된 조절 알고리즘은 변동폭을 많이 줄이도록 해서 조금 더 안정적인 출력을 내도록 한다.

 상한값 이하로 만드는 것이 패널특성에 대해 조정이 필요한지 여부는 더 알아봐야 할 부분. 실험치로 얻어내는 것은 역시 항상 이런 특성에 맞추기가 힘들다.


 여튼 기존보다 더 잘 동작하고 더 많은 전력을 낼 수 있도록 동작하는 것은 확인.


12f675MPPT-fw6.zip



'기타' 카테고리의 다른 글

libreelec 0813  (0) 2016.08.15
FFSplit 로 만들어보는 nginx rtmp 서버.  (10) 2016.08.12
MPPT 펌웨어 업데이트.  (0) 2016.08.08
libreelec 0727  (0) 2016.07.28
libreelec 0725  (0) 2016.07.26
Libreelec 0722  (0) 2016.07.23
Trackback 0 Comment 0
2015.08.22 12:36

12F675를 이용한 MPPT

12F675를 10개를 샀기 때문에 몽땅 이걸로 만든다. 그리고 uC중에 쩰 싸다 =_=; 초저가는 아니지만 뭔가 만들기에 딱이다.


 이걸로 태양광의 최대 효율점을 찾는다는 MPPT를 만들었다. MPPT는 전류와 전압의 최적점을 찾는다. 이러한 구현에는 PV의 전압과 전류가 중요하다. 전압은 분압을 통해 ADC로 읽어낼 수 있지만, 문제는 바로 전류.

 0.1옴의 전력이 높은 선트 저항으로 하는 방법이 가장 일반적이지만, 이 부분을 FET의 저항으로 대체할 수 있는지 시도해보기로 했다.


 11m옴으로 양단의 전압 강하를 얻어내서 OP-AMP로 증폭시켜 ADC로 보낸다. 그렇게 FET D와 S의 양단에 걸리는 전압으로 전류를 대충 감지하는 것으로 정확한 값을 얻어내는 것은 힘들다. 그냥 전압과 전류의 곱이 최대이면 전력이 된다는 점을 이용하는 것으로 추천하기엔 좋지 않은 방법이다.


 어떻든 이 구상은 성공했지만, LM258의 오프셋 전압이 문제가 되었다. 양단이 0V라도 출력으로 전압이 나오는데, 이것이 이득 증폭에 걸리면 아주 커진다. 이게 항상 같은 값이 아니고 LM258각각이 완전히 다르게 나오는 것도 문제. 아휴 참 이거 사람 미치게 만드는 요소다. 10k와 100k로 10배 이득으로 하는게 가장 오프셋이 적고 일반적이라고 한다.







그렇게 만들어진 회로. Buck 컨버터와 함께 전압을 측정하는 부분과 전류를 측정하는 부분을 추가적으로 배치한 것.


 왜 BUK9511 N 채널 FET냐면 이걸 또 50개(개당 100원) 샀다. 다른걸루 논리레벨 N채널 11밀리옴의 FET를 사용하면 된다. =ㅅ=;


 왜 2N2222A와 2N2907A이나면 각각 100개 50개 샀다. BC547과 BC557을 사용해도 된다. =ㅅ=;



아직 완벽한 테스트는 없고 그냥 동작만 확인.

LM358N의 오프셋 값은 자동으로 저장되고 비교에 사용된다. 로직이 두리뭉실하지만 문제 없으리라 본다.


좀 더 실험.


결국 실험하고, 회로도도 고치고 일반 전원 상태에서 확인. 좀 더 FET의 저항값을 늘릴려고 게이트 전압을 2.5v로 낮춤. 문제는 태양광 패널에서 제대로 되는냐인데 =ㅅ=;



 전류량을 측정하는 부분이 참 지랄맞다. 결국 ADC입력을 안정화시키는 방법으로 재구성을 하기는 했지만, 제대로 동작할지는 더 테스트를 해봐야 할 것 같다.


 전압을 측정하는 부분에도 역시 같은 것을 해줘야 했다. 그리고 컨트롤 회로의 안정화를 위해 100uF으로 교체. 원하는 동작을 하는 것 같은데, 문제는 비가 오는 날씨라 태양광의 전력량이 너무 낮다. 어쨌던 다시 테스트.


 좀 더 실험을 통해 개선. 문제는 PWM으로 인해서 전압과 전류를 재는 곳에 튀는 전압이 너무 많았다. 로우 패스 필터를 제대로 개선해서 문제를 해결. 비교적 덜 튀도록 하니 안정적인 전압 변화를 보였다. 흐린 날이라 높은 출력이 패널에서 나올 때는 어떻게 될련지.


 어떻던 이전보다는 덜 튀는 전압 변화를 보다 적게 튀는 방향으로 작동하는 것을 확인.


 보다 더 수정을 가해서 더 안정하도록 했는데, 이게 맞는는 모르겠다. 부하 때문인지 패널이 17.0v에서 최대 전력인데 13v정도에서 멈춘다. 측정된 값으로 이론적 계산으로는 그냥 직접 연결하는 것보다 조금 더 전력이 나오는데 이게 최대 전력인지는 확실하지 않다.


 만약 더 정확도를 높이고 싶다면 R4와 R2를 1M까지 조정해서 사용하면 된다. 2A를 넘겨서 사용할 일은 없을거라 생각된다. 만약 저항을 바꾸면 EEPROM의 0번째 바이트 값을 무부하시 OP-AMP 7번에서 측정된 값에

0번째 EEPROM값 = 측정값 / 3.6 * 0124,

20mV라면 20 * 10 ^ -3 / 3.6 * 1024로 5.68888로 올림해서 6으로 하면 된다.

로 수정하면 된다.


12f675MPPT-new8.zip



Trackback 0 Comment 0
2015.08.03 19:58

PWM 고민의 해결.

PWM IC로 쉽게 만들걸 삽질의 연속이다. 문제는 리플이 심해서 곱지않은 영향을 줬던 것. 부하를 걸어서 최대 전류 소비량이 나오는지 제대로 테스트했다. 4MHz 내부클럭으로는 2kHz가 한계다. 2576 PWM이 안망가졌으면 모를 뻔.





Buck 회로의 출력단의 콘덴서를 220uF로 만드니 이제서야 안정해졌다.


아래 펌웨어는 2개가 있는데, 하나는 좀 더 빠른 클럭이던 PIC의 OSCCAL값을 조정한 것으로 이건 칩마다 모두 다르다. 동그랗게 파인 것은 그냥 보통 펌웨어를 사용하면 된다. 아마 콘덴서를 바꿔서 필요가 없을지도 모르지만 그냥.


부하가 단절되었을 때 갑자기 오르는 전압을 최대한 방지. 예를 들면 샤오미 보조배터리 컨트롤러 같은 경우. 주기적으로 부하가 끊기는데 전압이 쑤욱 올라간다 =ㅅ=;



많은 실험을 거듭하며 최대한 전류를 뽑아내도록 했다. 아마도 콘덴서 용량의 부족인 듯. 330uF으로 하면 좀 더 나아지려나. 최대 전류 뽑아내느라 힘들었다. 그래도 안되면 100uF를 기판에 하나 더 붙여야겠다.


200uF도 전류량이 부족하다. 그래서 대폭 캐패시터 용량을 늘려서 420uF으로 새로이 타이밍을 조절. 2A는 문제없이 나오는 것 같다. 단일 부품 중에는 420uF이 없으니 470uF을 사용하면 된다.



고려하지 않은 부분이 13.8v에서의 타이밍. 들쭉날쭉 심했던 것을 어느 정도 잡았는데, 고출력 부하가 없어서 확실한 수치는 못잡았다. 대충 비율로 산정해서 값을 만들었고, 크게 흔들리지는 않는 값이다. 400uF/420UF/470uF의 펌웨어가 포함. 470uF는 실험을 못해봤다.



가장 안정적 전압을 만들어내기 위해 펌웨어를 업데이트. 갑작스런 단절로 인한 전압 불안정을 해결. 완전하지는 않지만 잘 동작한다. 아직도 13.8v에서의 실험은 못해보고 있다. 5v는 잘 동작.


오실로스코프가 없으니 참 찾기가 힘들다. 일단 전류량을이 최대로 나오는 상태로 조정. 캐패시터 영향은 전류에만 있는 듯.


가장 잘 동작하도록 펌웨어를 만듦. 아마도 ADC의 가장 안정적인 조건의 타이밍이나 주파수가 문제였던 것 같다. 중간에 12볼트에서 5볼트로 가는 버퍼를 만들어서 태양광 패널쪽에 전압이 낮게 걸리는 것을 바로 잡았는데 최대 부하에서 정상적으로 동작하는 것을 확인. 타이밍 등이 여전히 별루지만, 간단히 사용하는데는 문제가 없는 것 같다. 뭐 어떻게 더 변화를 줄 수 있는 방법도 없다. T0CKI로 외부 클럭으로 타이머0를 돌리는 것을 생각도 해봤지만, 회로를 다시 고쳐야하는 것 때문에 포기. 약 84%의 duty로 PWM을 소화할 수 있다. 최대 출력시 대충 83%대의 PWM으로 유지되는 것 같다. 85%정도로 늘리면 안정적일 것 같지만 이젠 귀찮다. PWM 조정으로 주파수가 2.7k정도로 늘었다.



12f675-pwmfet-new-19.zip


Trackback 0 Comment 0
2015.07.23 11:15

12F675롤 이용한 PWM,

 기존의 PWM 구현에서 약간의 변경이 있었다. 예전 펌웨어는 사실상 제대로 동작하지 않는 졸작으로 전압 변동률이 너무 심해 노이즈가 엄청나고 원하는 출력보다 높은 전압까지 올라가는 문제점이 있었는데, 그 문제를 모두 해결.


핀 4번은 접지를 하면, 5V 기준 전압.

핀 2번은 다이오드를 대체할 FET의 SYNC신호가 출력되고,

핀 3번은 충전 확인을 하는 기능으로 접지를 하면 되고 사용하지 않을 경우에는 그냥 두면 된다.






12f675-pwmfet-NEW.zip


 이 회로를 2개 이용해서 1단은 13.8V, 2단은 5V로 조정해서 보조배터리를 충전하도록 구성.

 1단에서 입력 전압은 16~17V가 측정되고 출력은 13.8V가 측정.

 2단에서 입력 전압은 13.8V가 측정되고, 출력은 5V정도가 측정. 배터리를 연결하면 전압강하가 많이 발생한다.


 충전검사 기능은 테스트를 해보지 않았다. 단락(쇼트)방지 기능을 넣었는데 제대로 작동할련지는 =ㅅ=;


 효율이 어떻게 될련지는 모르겠지만 일단 되는걸루 만족.



12f675-PwmFet-NEW-2.zip


 타이밍 조절을 한 새로운 펌웨어. 4MHz는 전압에 대한 PWM값을 조절하는데 역시 부족한 타이밍이다. 좀 더 전압 변동이 적도록 노력을 해봤지만 장담하기엔 어렵다. 자잘한 기능을 없애고 검사 루프만을 넣는게 최선인 듯. 무부하시에 전압 변동률은 좀 크다. 부하시에는 0.03이 최고 변동.


 대충 태양광 패널에서의 동작은  전류가 충분한 경우에는 1단의 PWM은 안정적인 느린 점멸을 함. 전류가 부족하면 빠르게 깜박인다. 전류가 충분하면 입력값은 17v(최고 전류 전압)이고 출력은 조정한 값이 그대로 나온다. 반대로 부족하면 전압강하가 발생한다. 전압이 6~8V까지 떨어진다.


 아직 이게 제대로된 동작인지는 확실히 모르겠다. 전류량이 충분할 때 보조배터리에 유입되는 전류량과 1단 회로와 2단 회로의 사이의 전류량은 서로 다른 값이라 가늠하기가 어렵다.


 무부하시 리플이 커서 최대값 5.25V(허용오차 최대값)정도의 전압으로 조정하는게 가장 나은 것 같다. 부하시엔 큰 문제가 없다. 조정값의 안정적인 확인은 샤오미 USB LED로 확인. 폴리퓨즈가 들어있는 것 같은데, 큰 전압이 걸리면 꺼진다. 계속 켜져 있으면 허용값 안에서의 전압으로 조정되는 것을 의미.



12f675-PwmFet-New-3.zip

 크게 다른 점은 없고, 충전 기능에 대한 코드 보강과 루프 단순화와 최적화.



12f675-PwmFet-NEW-4.zip

이전의 방법론은 다 틀림. 타이밍 문제로 많은 코드를 루프안에서 돌릴 수 없는 상황을 간과한 탓,

가장 짧은 코드로 만드는게 이롭다는 것을 깨달음.



'하드웨어' 카테고리의 다른 글

변화값을 가지는 입력에서 OP AMP에서 ADC입력을 만드는 법.  (0) 2015.08.16
PWM 고민의 해결.  (0) 2015.08.03
12F675롤 이용한 PWM,  (0) 2015.07.23
kicad  (0) 2015.06.22
LM2576-5.0을 이용한 PWM buck 컨버터.  (0) 2015.06.18
N채널 FET의 Bootstrap.  (1) 2015.06.16
Trackback 0 Comment 0
2015.06.12 13:01

PWM 회로의 펌웨어 업데이트.

 기존의 PWM회로의 성능을 더 안정시킨 것으로, 전력 컨트롤 회로의 경우에는 확실히 높은 PWM 주파수를 써야 한다는 것을 깨달음. 1W 정도의 부하에서는 FET에서 미열조차 없어서 그냥 차가운 상태로 기존의 펌웨어에서 발열이 심하던 문제의 해결.


 그리고 PWM을 약 1KHz로 조정해서 보다 나은 안정된 전압이 나오도록 함. 기존에는 64레벨로 미세전압 조정이 어려웠지만, 255레벨로 늘려서 더 미세 간격의 조절이 가능해짐.


 출력 합선을 인지해서 전압을 낮추는 기능을 넣었고, 이 부분의 소스는 공개하지 않을 예정.



12f675-PwmFet_firmware.zip

LED는 안정된 전압에 도달하면 깜박이는 속도가 느려지고, 평소에는 빠름.


 PWM 인터럽트 부분의 소스만 공개하자만 다음과 같고, 응용하는데 크게 어렵지 않음.


// 상수 선언들.

const
   c138 = 942;    // 13.8 * 1024 / 15
   { 4MHz }
   PWM_MAX = 255;   // 1000000 / 4 / 255
   PWM_LOW = 0;
   TMR1L_LOAD=$38; // 1000000 / 1000
   TMR1H_LOAD=$fc;



// 인터럽트 초기화 부분

     OPTION_REG:=%11010001;        // ~1KHz @ 4MHz, PSA->time 0, 001=> 1:4

     TMR0IE_bit:=1;
     PEIE_bit:=1;
     TMR1CS_bit:=0;
     TMR1IE_bit:=1;
     TMR1L:=TMR1L_LOAD;
     TMR1H:=TMR1H_LOAD;
     TMR1ON_bit:=1;
     GIE_bit:=1;      // enable Interrupt


// 1ms 딜레이.

function Delay1ms(var t:byte; limit:byte):Boolean;
var
  ts:byte;
begin
  if limit>0 then begin
    ts:=TICK_1000;
    if t<=ts then
      ts:=ts-t
      else
        ts:=255-t+1+ts;
    Result:=ts>=limit;
  end else
    Result:=True;
  if Result then
    t:=TICK_1000;
end;


// 인터럽트 핸들러

procedure Interrupt(); iv 0x0004; ics ICS_AUTO;
begin
     if T0IF_bit=1 then begin
       { PWM MAX 96% }
       if PWM_SIG=1 then begin
         ON_PWM:=VOL_PWM;
         if ON_PWM=0 then
           TMR0:=ON_PWM
         else begin
           TMR0:=PWM_MAX-ON_PWM;
           PWM_SIG:=0;
         end;
       end else begin
         TMR0:=ON_PWM;
         PWM_SIG:=1;
       end;
       T0IF_bit:=0;
     end;
     if T1IF_bit=1 then begin
       Inc(TICK_1000);
       TMR1L:=TMR1L_LOAD;
       TMR1H:=TMR1H_LOAD;
       T1IF_bit:=0;
     end;
end;


 타이머 1을 이용해서 1밀리초를 체크하도록 수정했고, 타이어 0로 PWM을 컨트롤. 소프트웨어 PWM이라 한계가 있는데, 최대 PWM이 96%정도.


 간단하게 실험한 결과, 부하가 걸리면 전압강하로 본래 패널의 전압이 나오지 않고 상당히 하락함. 위의 펌웨어에서는 0.6v미만이면 합선으로 간주하던 것을 0.3v로 더 내린 펌웨어.


12f675-PwmFet-firmware-03v.zip


5v PWM 옵션을 추가. 2번핀을 접지시키면 5v출력으로 조정됨.


12f675-PwmFet-firmware-03v-add5v.zip


'하드웨어' 카테고리의 다른 글

LM2576-5.0을 이용한 PWM buck 컨버터.  (0) 2015.06.18
N채널 FET의 Bootstrap.  (1) 2015.06.16
PWM 회로의 펌웨어 업데이트.  (0) 2015.06.12
납축전지 충방전 컨트롤러.  (0) 2015.05.31
PWM 레귤레이터.  (0) 2015.05.29
KiCAD r5640 32비트.  (0) 2015.05.24
Trackback 0 Comment 0
2014.11.21 17:41

12F675를 이용한 ADC를 가져오기.

 ATTiny2313이나 ATTiny4313은 ADC가 없다. 그래서 다른 방법으로 ADC를 읽어오는 방법을 고안했는데, 약간의 딜레이를 무시하고 사용할 수 있도록 고려했다.



 이러한 핀 중에서 7,6,5를 아날로그 입력으로 이용하고, 4번을 읽을 때 1번으로 하면 활성화되도록 했으며, 읽을 수 있는 상태가 되면 2번이 1이 된다. 3번으로 클럭을 입력하면 높은 비트에서 낮은 비트 순으로 10비트의 데이터를 전달한다.


1. GP3에 1을 할당.

2. GP5가 1이 될 때까지 대기.

3. GP4에 클럭을 입력. 0에서 1이 되면 비트가 GP5에 설정된다. 10번을 반복해서 ADC0, 10번을 반복해서 ADC1, 10번을 반복해서 ADC2를 얻는다. 높은 비트에서 낮은 비트 순으로로 출력된다.

4. 만약 GP3가 0이 되면 도중에 중단된다.


 대충 이러한 방법론으로 동작한다. 남는 핀이 없어서 4번째 채널까지는 불가능하다. 일단 프로토타입으로 구성한 것 뿐이고 실험이 필요할 것 같다.


더보기


Trackback 0 Comment 0
2014.08.24 21:51

쿨링팬 컨트롤러 회로 개선.





 아무리 펌웨어를 만져도 잡음의 해결이 없는 것 같아서 결국 실험을 통한 회로를 재구성하기로 해서 만들어진 결과물. C3에 전하가 충전되서 방전되기 때문에 트랜지스터에 열이 조금 많이 나는 현상이 발생. C3에 직렬로 4.7k를 하나 더 연결해야 하는 것 같은데 일단 이렇게 안들리니. 대충 PWM 잡음 잡는게 1k저항일 땐 4.7uF을 쓰고 4.7k저항일 땐 1uF저항을 쓰면 제대로 해결되는 것 같다. 이는 12F675의 개별적인 칩 특성도 안타는 효과적인 결과를 만들어낸다.


 C와 E에는 1uF만 연결해야 한다는 실험적인 최종 결과. 열이 많이 나는 이유는 80MM 팬이 0.19(190m)A를 소모. BC547을 해도 MJE3055T를 해도 마찬가지다. BC547에서는 조금 더 뜨거웠던 듯 싶다. MJE3055T는 조금 덜 뜨거워 트랜지스터를 만져도 뜨끈뜨끈하다는 느낌만 난다. 하지만 BC547은 앗뜨거 느낌이 확실하게 났고 결국 장시간 운용하면 망가질게 뻔하다는 결론이 도출. MJE3055T는 그냥 공냉이 가능할 정도로 뜨겁다. 방열판은 달지 않아도 될 정도의 온도라서 망가질 것 같지는 않다.


 VGA소형팬의 경우에는 BC547에서도 열은 전혀나지 않는다.


 쿨링팬 날개 마찰음 말고는 소리가 거의 들리지 않는 것을 확인하고 쿨링팬 만들기는 완전 종료. 이제 더 이상 손 안대도 될 것 같다.


 트랜지스터나 FET의 선택시 전류량과 함께 전력량의 선택도 중요한 것 같다. 이는 안정적인 동작의 영역을 결정하는 것으로 전압에 따른 최대 전류량이나 전류에 따른 최대전압을 결정. 3055T는 75W로 거의 문제가 없고 비슷한 제품들 중에 구하기 쉽고 제일 저렴하다. 더 작은 전력량의 BD135도 괜찮은 선택이지만 판매하는 곳에 따라 3055보다 비싼 경우도 있어서 비추. 12V라면 75/12=6.25A의 전류량에 적합하다는 식으로 결정하는 것 같다. 안정적인 동작영역(ASO)을 데이터시트에서 참고하면서 고르면 될 듯 하다. BC547은 0.625W 정도로 80MM 쿨링팬을 돌리기엔 부적합하다.


Trackback 0 Comment 0
2014.08.14 16:56

12F675에 대한 이야기 더하기 아두이노 전원부 이야기.

 12F675가 만든 시기에 따라서 특성이 약간 다르다는 것은 확인. 칩의 맨아래 숫자는 yyww라는 4자리 숫자인데 년도와 만든 주(week)를 표시. 묘하게 여러개 구입한 칩에 2010년도와 2013년도의 제품이 혼합되어 있었다.


 가장 주목할만한 특성은 PWM의 노이즈로 2010년도는 1uf의 콘덴서로 잡아내기 힘든데 반해, 2013년도는 많이 줄어든 특성을 보임. 그리고 다르게 내장 클럭 발생기의 정확도는 2010년도가 정확해서 아주 칼같다. 하지만 2013년도는 약간 더 클럭이 높은 상태로 설정되어 있어서 560Hz까지의 범위에 이르는 클럭이 PMW으로 나온다.


 결국 2010년도의 노이즈 문제를 잡을려면 트랜지스터의 C와 E단에 1~4uF의 콘덴서를 붙어주는게 나은 것 같다. 1uF도 많이 작아지기는 하는데 여전히 좀 들린다. 노이즈 문제에 대해서는 좀 더 개선해야 할 것 같다. 좀 더 실험해본 결과, 1uF으로는 어림도 없다는 결론을 내림. 2uF나 3.3uF정도까지 고려해야함. 4.7uF은 어떨지 모르겠으나 현재론 칩의 특성이기도 하지만 PWM관련이기 보다는 신호적 특성이고 콘덴서 붙이는 것 말고는 빠른 대안은 없다는 것. 지금 현재는 2uF으로 다른 칩에서 소음을 많이 줄임.


 실험용 이외로 또 하나를 만들어 둔 것으로 2013년도 생산칩을 이용해서 내부 케이스 쿨링팬에 대충 붙여서 소음도 적고 잘 돌아가는 것을 여차저차 확인.



 그리고 그동안 못했던 아두이노의 전원부에 대한 이야기가 있는데, 만약 USB와 외부전원을 동시에 연결하면 어디의 전원이 사용될까라는 의문에 대한 답을 얻었다. 전원부에는 OPAMP가 있어서 전원부에서 얻어지는 전원이 7.5V이상이면 USB 전원을 사용하지 않고 외부 전원을 사용하며 USB 신호연결은 가능하다. 전원만 차단되는 것으로 외부 전원을 연결시켜도 문제없이 USB로 연결할 수 있다.


 

 대충 전원의 회로는 외부 전원의 분압된 전압과 아두이노 보드의 3.3V를 비교해서 분압된 전압에서 3.3을 빼서 그 결과 음수가 나오면 하단의 P패널 FET를 동작시켜 USB 전압을 받고 아니면 외부 전원을 사용하는 방식. 입력 전압이 3.3의 두배이거나 크면 OPAMP의 결과값이 0보다 크거나 같아져서 USB전원은 차단된다. 아마도 안정적인 공급을 위해 표준화된 전압인 7.5V라고 잡은 듯하고 6V는 아슬아슬하다. 6,7.5,9,12이런식의 표준화된 전압이 주로 사용되는 이유에서 그런 것 같다.


Trackback 0 Comment 0