GN⁺ 5달전 | parent | ★ favorite | on: 발진기를 만드는 것은 어렵다(lcamtuf.substack.com)
Hacker News 의견
  • 오래된 전자공학 농담 중에 “발진기를 만들고 싶으면 증폭기를 만들어보라”는 말이 있음
    80년대에 읽은 Television Magazine 기사에서 Philips 라디오의 서비스 노트를 다루던 글이 떠올랐음
    거기엔 “Fix VIUPS”라는 수리 지시가 있었는데, 저항 몇 개와 커패시터 몇 개를 바꾸는 정도였음
    저자는 그게 뭔지 궁금해서 Philips 본사까지 연락했는데, 결국 엔지니어가 “VIUPS는 고장 났을 때 나는 소리 이름임”이라고 답했다고 함 — “VIUPS VIUPS VIUPS”

    • 내가 들은 버전은 “증폭기는 발진하고, 발진기는 발진하지 않는다”였음
    • 이건 no-input 테크닉으로 쉽게 시연할 수 있음. 오디오 믹서의 출력을 입력으로 다시 연결하면 피드백이 생기고, 그로부터 다양한 톤을 만들 수 있음
      다만 조심해서 해야 함 — 시연 영상
    • 공감됨, 진짜 공명(resonates) 하는 이야기임
    • AM 라디오로 이웃을 괴롭히는 가장 쉬운 방법은 재생형 AM 수신기의 이득을 너무 높이는 것임
      그러면 발진해서 같은 주파수로 소음을 방출함. 여기에 탄소 마이크를 추가하고 게인을 최대로 하면 간단한 AM 송신기가 됨
  • LC 발진기는 만들기 꽤 쉬움
    나는 무작위 회로 토폴로지를 생성하고 SPICE 시뮬레이션으로 발진 여부를 찾는 프로그램을 만들었음
    그 결과, 가장 단순한 형태는 인덕터 1개, 커패시터 2개, 저항 1개, 트랜지스터 1개로 구성된다는 걸 발견했음
    이 회로군을 “LCCRT 발진기”라 부르고, 가능한 조합을 모두 생성해보니 12개의 고유한 토폴로지가 있었음
    실제로 테스트해보니 안정적이었고, 금속 탐지기에도 사용했음 — 프로젝트 링크

    • “새로운” 발진기라지만 사실 전부 콜피츠(Collpitts) 발진기의 변형임. 이미 100년 전에 연구된 구조들이라 겸손이 필요함
    • CS 전공자로서 전자공학 입문 수준인데, 왜 글이 LC 발진기가 아닌 트랜지스터 중심인지 궁금했음
    • 멋짐! Q-팩터 기준으로 분류해보면 더 흥미로울 듯함
    • 접근 방식이 인상적이었음. 저장소를 구경하면서 영감을 많이 받았음
    • Hacker News에 글 올리면 항상 이런 일 생김 — 누군가가 지식으로 압도
  • 어릴 때 전자공학을 시작했을 때, 발진기를 만들려면 증폭기를 만들고, 증폭기를 만들려면 발진기를 만들게 됐음
    7살짜리의 야망은 기술보다 컸음. 수많은 시도 끝에야 증폭기가 발진하지 않게 만들 수 있었음
    저항 색 코드를 읽는 법도 몰랐지만, 안다고 착각했음

    • “7살의 야망”이라는 말이 너무 좋음. 절대 잃지 말아야 할 태도임
    • 종종 우리를 막는 건 “이건 불가능하다”는 성숙한 이해심
    • 3살짜리의 “왜?”와 7살짜리의 야망을 합치면 세상에서 가장 생산적인 천재가 나올지도 모름
  • 기사에 나온 전구(lightbulb) 이야기를 짧게 설명하고 싶음
    발진기에서 깨끗한 사인파를 얻는 게 어려운 이유는 이득 안정화 때문임
    이득이 너무 낮으면 진동이 사라지고, 너무 높으면 포화되어 고조파가 생김
    전구는 짧은 시간에는 선형 저항처럼, 긴 시간에는 비선형 저항처럼 동작함
    필라멘트가 가열되면 저항이 증가하므로, 이를 이용해 자기 안정화 발진기를 만들 수 있음
    전구를 증폭기의 이득 조정 저항으로 사용하면 거의 완벽한 사인파를 얻을 수 있음

  • 발진기는 단순히 이득을 위상 지연(>90도) 주위에 걸어주는 것임
    문제는 얼마나 예측 가능하고 안정적이게 만들 수 있느냐임
    외부 요인(온도, 전압, 시간 등)에 덜 민감하게 만드는 게 핵심이며, 이를 위해선 Allan Variance 같은 개념을 참고하면 좋음

    • “부엉이의 나머지를 그려라” 밈처럼, 발진기 만드는 건 말처럼 쉽지 않음
      진공관 발명 이후에도 안정적인 발진기를 만드는 데 오랜 시간이 걸렸음
      결국 성공한 회사가 있었는데, 그게 바로 Hewlett-Packard였음
  • 발진기의 발명은 사실 우연한 사고였다고 읽은 적 있음
    누군가 증폭기를 만들다 입력과 출력을 잘못 연결해 “삐익” 소리를 냈고, 그게 발진기의 시작이었음
    당시엔 고주파를 만들기 위해 AC 발전기를 사용했는데, 15kHz 정도가 한계였음
    이 실수로부터 양의 피드백 개념이 생겼고, 이후 고전적인 발진기 회로들이 등장했음

  • 언급되지 않은 두 가지 회로가 있음
    하나는 “Two Transistor Metronome”으로, 아버지와 함께 7~8살 때 만들었음
    두 트랜지스터가 일종의 SCR처럼 동작하는 릴랙세이션 발진기임 — 회로 링크
    Roland TB303이나 Korg MS 시리즈의 발진기도 이와 유사한 구조를 사용함

    • 내가 생각한 건 Astable Multivibrator였음. 아마 같은 회로일 듯
      일반적으로 NPN 트랜지스터 두 개를 사용하는 버전이 많음 — 참고 링크
  • 기타 이펙터를 디버깅하려고 신호 인젝터를 만들어봤음
    Astable Multivibrator가 너무 많은 고조파를 만들어서 입력단에서도 들릴 정도였음
    거의 Juggernaut처럼 신호를 밀어붙이는 느낌이었음
    필터를 배우는 좋은 계기였고, 결국 깨끗한 사인파를 만들어낼 수 있었음

  • 발진기가 어려운 이유는 우리가 요구하는 정확도(spec) 가 너무 높기 때문임
    예를 들어 시계용 발진기는 단 5개의 부품으로 구성되지만, 하루에 1초 오차 이내(100ppm)를 요구함
    전력, 시동, 온도 안정성 등 모든 조건을 만족시키는 게 어렵음
    단순히 진동만 원한다면 노이즈 제너레이터를 만들면 됨
    초보자에게는 555 타이머가 가장 쉬운 발진기임. ±10% 정도의 오차는 있지만 대부분의 용도엔 충분함
    555는 비교기 2개, 전압 분배기, 커패시터로 구성된 단순한 구조임
    하지만 현대 회로는 더 빠르고 정확해야 하므로, 초보자용 글이라면 555 중심으로 설명하는 게 좋음

  • 음악 중심의 전자공학에 관심 있다면 Moritz KleinYouTube 채널을 추천함

    • 링크를 보자마자 Moritz Klein일 거라고 바로 알았음