목록pwm (11)
마음 속 하늘은 항상 맑음~!

인터넷 상에 돌아다니는 대표적인 7번 스위칭 신호 출력의 555 PWM회로가 있는데, 낮은 주파수에서는 잘 동작하는지는 모르겠지만, 높은 주파수에서는 7번에서 나오는 스위칭 신호가 너무 두루뭉실해져서 제대로 OFF상태를 만들지 못하는 것 같다. 아마 저항이 너무 크거나 하는 문제인 것 같은데, 저 값을 줄이면 저항에 흐르는 전류량이 증가하는 문제가 생긴다. 그래서 7번을 끊고 3번을 스위칭 신호로 이용하면 되는데, 3번을 스위칭 신호로 이용하게 되면 PWM 뿐만 아니라 주파수도 변하는 PWM이 된다. 이 방법은 별로 추천하지 않는다. 결론적으로 이런 임시적인 수정은 큰 의미가 없고, 555PWM을 제대로 구현하려면 7번에서 스위칭 신호가 나오는 회로보다는 3번에서 스위칭 신호가 나오는 회로 도면을 추천한..

그동안 몇몇 PIC과 AVR을 넘어가며 PWM 주파수에 많이 고민하던 중. 낮은 가격에 CCP 모듈이 들어간 12F683을 발견. 얼마전까지 있는 줄 몰랐다가 우연히 영상을 보고 알게 되었다. 12비트 CCP모듈은 물론 8MHz 오실레이터가 있어서 더 높은 클럭을 사용할수도 있다. 그리고 CCP 모듈이 있기에 타이머는 3개를 가진다. 결론적으로 자체 CCP 모듈 덕분에 소프트웨어 PWM은 이제 필요가 없게 되었고, 8비트 정밀도에서 최대 10KHz의 스위칭 주파수가 가능해서 그동안 AVR까지 넘어가며 고민하던 MPPT의 노이즈 문제를 간단하게 해결했다. 4kHz의 그 칼날같은 소리가 전혀 안들리게 되니 너무 기쁘다. 중간에 한가지 어려움은 12F683에서 지금까지 잘 쓰고 있던 openprog가 컨트롤 ..
최근 저렴한 CWT 파워를 구입. 처음엔 모르고 지나갔는데 특유의 PWM 노이즈가 들린다. PWM 주파수가 어느 정도 높아도 낮은 PWM 영역에서는 이 소음은 어쩔 수 없다. 어쨌던 유통사는 이것을 모르는 듯. PWM 신호를 선형적인 전압으로 바꾸는 회로를 찾았고 언제 소음이 정말 거슬리면 테스트를 해봐야겠다. Q1 트랜지스터 모듈은 NPN과 PNP가 같이 있는 것일 뿐, 맞는 짝을 사용하면 되는 것 같다. Q2는 쿨링팬의 전류를 넘지않는 300mA 이상의 값을 가지는 P채널 FET나 트랜지스터를 사용하면 될 것 같다. 다르게 OP-AMP로 만들어진 방법도 있는데, OP-AMP의 출력을 아래의 리플 제거 회로에 물리면 팬을 돌릴 전류를 문제없이 만들어낼 것 같다. 언제 테스트하려고 만들지 모르지만 기록해..
아두이노가 세상에 나온건 참 고마운 일이다. AVR 칩들의 프로그래밍을 더 쉽게 만들었다. 돌아다니던 중에 8핀의 ATTiny85가 PWM 기능을 가진 것을 확인하고 그 기능이 정말 궁금했다. 많은 인터넷 문서들을 읽은 후에야 그 기능을 제대로 사용할 수 있었다. 일단 아두이노에서 ATTiny85를 사용하기 위해서는 ATTinycore라는 애드온을 넣어야 한다. 그리고 소스 파일에 헤더를 넣고 평상시의 프로그래밍 그대로 코딩을 하면 된다. 주의할 점은 핀 번호가 기존의 아두이노의 정의를 사용할 수 없다. 그리고 ADC 같은 경우에는 특별한 명칭의 A로 시작하는 번호를 analogRead에 사용해야 정상적으로 읽어올 수 있다. 그리고 내부 헤더 소스파일의 정의를 보면 ATTiny85가 millis()나 d..
아주 간단한 PWM 컨트롤 회로로 고정값으로 PWM을 쓰는 경우에 유용하다. 돌아다니는 기본회로와 다른 점은 C3를 470pF를 써서 더 높은 주파수가 발생하도록 하였다. 간단한 오실로스코프 DSO 138로 파형을 보니 약 21kHz의 주파수로 작동하고 있었다. 555는 HA17555라는 개량형을 사용하였다. 더 주파수 특성이 좋다고 하는데 부품 파는 곳에서는 어지간해서는 대치품으로 이걸 준다. 회로도의 전원 커넥터와 부하 커넥터를 따로 그린 것은 PCB 도안을 만들기 위한 것으로 양면 배선으로 도안되었다. JLCPCB 같은 곳에 맡기면 저렴하게 2달러에 10장을 찍어준다는 이벤트 같은 것을 하고 있는 것 같다. 국내 PCB 제작 업체들은 왜 이리 비싼지 =ㅅ=; (편집) 몇몇 풋프린트와 컴포넌트 위치의..
PWM IC로 쉽게 만들걸 삽질의 연속이다. 문제는 리플이 심해서 곱지않은 영향을 줬던 것. 부하를 걸어서 최대 전류 소비량이 나오는지 제대로 테스트했다. 4MHz 내부클럭으로는 2kHz가 한계다. 2576 PWM이 안망가졌으면 모를 뻔. Buck 회로의 출력단의 콘덴서를 220uF로 만드니 이제서야 안정해졌다. 아래 펌웨어는 2개가 있는데, 하나는 좀 더 빠른 클럭이던 PIC의 OSCCAL값을 조정한 것으로 이건 칩마다 모두 다르다. 동그랗게 파인 것은 그냥 보통 펌웨어를 사용하면 된다. 아마 콘덴서를 바꿔서 필요가 없을지도 모르지만 그냥. 부하가 단절되었을 때 갑자기 오르는 전압을 최대한 방지. 예를 들면 샤오미 보조배터리 컨트롤러 같은 경우. 주기적으로 부하가 끊기는데 전압이 쑤욱 올라간다 =ㅅ=;..
기존의 PWM 구현에서 약간의 변경이 있었다. 예전 펌웨어는 사실상 제대로 동작하지 않는 졸작으로 전압 변동률이 너무 심해 노이즈가 엄청나고 원하는 출력보다 높은 전압까지 올라가는 문제점이 있었는데, 그 문제를 모두 해결. 핀 4번은 접지를 하면, 5V 기준 전압.핀 2번은 다이오드를 대체할 FET의 SYNC신호가 출력되고,핀 3번은 충전 확인을 하는 기능으로 접지를 하면 되고 사용하지 않을 경우에는 그냥 두면 된다. 이 회로를 2개 이용해서 1단은 13.8V, 2단은 5V로 조정해서 보조배터리를 충전하도록 구성. 1단에서 입력 전압은 16~17V가 측정되고 출력은 13.8V가 측정. 2단에서 입력 전압은 13.8V가 측정되고, 출력은 5V정도가 측정. 배터리를 연결하면 전압강하가 많이 발생한다. 충전검..
간단히 기본 회로에서 약간의 구성을 바꾼 buck 컨버터로 5v 출력 전원을 위한 회로. LM2576-5.0이 800냥, 쇼트키 다이오드 150냥 코일 350냥 등등의 가격이다. 출력단에 쇼트키를 물린 것은 배터리 같은 부하를 연결했을 때 반대로 흐르지 않게 하기 위함. 필요가 없을지도 모른다. 최대 출력 전류는 3A. RV1은 쇼트키 다이오드의 전압 강하(0.4v정도)를 보완하기 위해서 조절이 필요하며, 더 높은 전압을 뽑아내는 것도 가능하다. RV1은 10k 이상의 값을 사용하면 된다. 출력전압을 측정하기 위해서는 부하가 물려야 제대로 테스터로 확인이 가능. D2 앞단에서 5.5v로 조절하면 5.3v정도 찍으면 출력으로 5.0v 전압이 나온다. (회로도를 업데이트) R2 10k를 추가했는데, 보다 잘..
기존의 PWM회로의 성능을 더 안정시킨 것으로, 전력 컨트롤 회로의 경우에는 확실히 높은 PWM 주파수를 써야 한다는 것을 깨달음. 1W 정도의 부하에서는 FET에서 미열조차 없어서 그냥 차가운 상태로 기존의 펌웨어에서 발열이 심하던 문제의 해결. 그리고 PWM을 약 1KHz로 조정해서 보다 나은 안정된 전압이 나오도록 함. 기존에는 64레벨로 미세전압 조정이 어려웠지만, 255레벨로 늘려서 더 미세 간격의 조절이 가능해짐. 출력 합선을 인지해서 전압을 낮추는 기능을 넣었고, 이 부분의 소스는 공개하지 않을 예정. LED는 안정된 전압에 도달하면 깜박이는 속도가 느려지고, 평소에는 빠름. PWM 인터럽트 부분의 소스만 공개하자만 다음과 같고, 응용하는데 크게 어렵지 않음. // 상수 선언들. const ..
간단하게 삽질을 해서 만든 FET로 구동하는 PWM 레귤레이터. D3이후의 회로는 일반적인 Buck converter 회로이고, 중요한 것은 바로 Q1, Q2, Q3의 부분이다. Q4는 논리신호를 N ch FET를 켜기위한 BootStrap회로를 컨트롤하는 목적을 가진다. 주의할 점은 Q4로 신호가 반전되어 Q3에서는 반전된 신호가 전달되게 된다. D2는 역전압이 흘러나가지 않게 하기 위해서 사용. PIC는 ADC의 값을 받아서 출력의 전압을 조절하고 PWM값을 수시로 변동시킨다. D3도 아주 중요한데 N ch FET의 기생다이오드로 통해 역방향으로 전류를 흐르지 않게 한다. 이 D3가 없으면 제대로 전압 조절이 안된다. 여기서는 3A의 쇼트키 다이오드를 사용했다. 그냥 3A의 다이오드를 사용해도 상관없..