Электроника, схемотехника, от души и с умом: для начинающих и для бывалых
аудио

Простой генератор пилообразного сигнала

[Read in English] 

Не стану утверждать, что "пила" просто необходима для отладки аудио-усилителей. Удобно, конечно, посмотреть, не скривилось ли что напрочь - с пилою видны на глаз, и часто нагляднее, чем с синусоидой, всяческие ограничения сигнала или какие-нибудь переходные искажения.

Данный проект я собрал "до кучи" к генератору синусоиды на мосте Вина. Использую его регулярно для отслеживания характера ограничений по амплитуде в своих конструкциях. Так же пила оказалась незаменимой в выявлении всевозможных подсвистов усилителей, которые не видны ни на синусе любой частоты, ни на прямоугольнике...

В этой статье:

  • Качественный генератор "пилы" на 555 таймере
  • Повторитель с огромным входным сопротивлением
  • Регулятор усиления от -1 до +1
  • Линейность на уровне профессионального оборудования, используя бюджетные ОУ

555 таймер

Важно: в данной конструкции необходимо использовать только качественный КМОП вариант 555 таймера. Например вот этот: TLC555 datasheet от TI.
Более старые, биполярные варианты 555, выдают совершенно неприличную грязь и к тому же так "бухают" в питание, что это уже ни чем не отфильтровывается.

На мой взгляд, одна из наиболее наглядных отрисовок блок-схемы микросхемы 555:

Блок-схема КМОП таймера 555
  1. GND - Ground = "Земля", отрицательный вывод питания
  2. TRIG - Trigger = Триггер
  3. OUT - Output = Выход
  4. RESET = Сброс
  5. CONT - Control voltage = Управляющее напряжение
  6. THRES - Threshold = Порог
  7. DISCH - Discharge = Разряд
  8. VDD - Positive supply voltage = Положительное напряжение питания

 

Задающий генератор пилообразного сигнала

Принцип работы данного генератора исключительно прост, по сути - используем 555 в стандартном включении.

Формирователь пилообразного сигнала

 

  • R1, R3 = 36 кОм
  • R2, R4 = 100 кОм
  • VT1 = MPS2907A ~= КТ361 🙂
  • C4 = 10 нФ
  • C1, C3 = 0.1 мкФ
  • C2 = 10 мкФ

Источник тока на транзисторе VT1 обеспечивает линейный заряд времязадающего конденсатора С4. Так же как и пороговые напряжения в 555 таймере, ток, генерируемый данным источником прямо пропорционален напряжению питания. Всё вместе это обеспечивает практически постоянную частоту генерации независимо от величины питающего напряжения.

Пороговое напряжение 555-го (вход 5 "CONT") слегка "притянуто" к земле, чтобы добавить доступного падения напряжения для работы источника тока.

Разряд времязадающего конденсатора производится быстро, через вывод 7 "DISCH". Надо заметить, что полевой транзистор задаёт постоянный ток разряда - спад пилы получается так же практически идеально линейный.

 

Повторитель с высоким входным импедансом

Полученный практически идеальный пилообразный сигнал на конденсаторе, к сожалению, не может быть подан прямиком в нагрузку - любая нагрузка будет искажать форму сигнала и влиять на частоту генерации. Необходим повторитель с возможно бОльшим входным импедансом. В моём варианте LM324 (datasheets: National/TI, Fairchild, OnSemi) отлично справляется с задачей, при условии использования внешних источников тока (об этом - чуть ниже).

Буфер с огромным входным импедансом
  • R5, R6 = 330 кОм
  • C5, C6 = 0.1 мкФ

Можно обойтись без усложнений и использовать простой буферный каскад, если вместо бюджетного LM324 применить высококлассные (дорогие) ОУ со входами на полевых транзисторах.

Регулятор усиления от -1 до +1

Удобно иметь возможность регулировать не только амплитуду сигнала, но так же и полярность.

Регулятор усиления от -1 до +1
  • R7, R8, PR1 = 10 кОм

 

Настоящий класс "А"

Для получения образцовой линейности усилителей применён тот же трюк, что и в моём генераторе синусоидального сигнала на мосте Вина: загрузка выходов ОУ источниками тока. Таким образом весьма посредственные выходные каскады ОУ LM324, в оригинале работающие практически в классе "B", т.е. без начального тока покоя, переводятся в честный отднотактный класс "А".

Источники тока для загрузки выходов ОУ
  • R9 = 6.2 кОм
  • VT2-VT4 = KT503

По факту в своём макете я использовал 5 транзисторов в параллель для загрузки всех 4 выходов LM324.

 

Работа от одного источника питания

Формирование виртуальной земли при питании от одного источника (батарей) подробно описано в статье про генератор на мосте Вина. В макете я использовал общие цепи питания для обоих генераторов.

Формирование виртуальной земли со сдвигом
  • VD2 = красный светодиод 1.7 Вольта
  • R10, R11 = 2 кОм
  • C10, C11 = 0.1 мкФ (керамика или плёнка)
  • C12, C13 >= 10 мкФ

 

Тестируем!

"Пила", как она есть на выходе генератора:

Почти идеальная пила уже от 6 вольт питания

Данная картинка получена при питании от батареек в сумме дающих 6 вольт. Если немного поднять питающее напряжение - форма сигнала станет неотличима на глаз от идеальной. Замечу, что в отличие от генератора на мосте Вина, у которого есть АРУ, здесь амплитуда сигнала на выходе генератора будет линейно зависеть от напряжения питания.

 

Собираем

TLС555CP + LM324 = два генератора

Примечание: настоятельно рекомендую поставить отдельный выключатель питания для микросхемы таймера, буде данная схема собрана как у меня в паре с генератором синусоиды с низким THD - помехи даже от КМОП 555 весьма ощутимы. Простенький "джампер" вполне подойдёт на роль такого выключателя (синенький, слева от 555 на картинке).

 

31 комментарий

  1. Евгений

    Притягивать пороговое напряжение не имеет смысла, т.к. генератор тока с указанными Вами параметрами сохраняет работоспособность при заряде емкости С4 до напряжения 0,74 от напряжения питания, а срабатывание триггера происходит при 2/3 питания (0,67).
    Кроме того, если увеличить ток заряда приблизительно в 10 раз путем уменьшения резистра R3 с 36 кОм до 3,6 кОм и, соответственно, увеличить емкость С4 тоже в 10 раз, чтобы частота генератора осталась на месте, в этом случае условное выходное сопротивление уменьшится соответственно в 10 раз и появится возможность использовать операционный усилитель со входным сопротивлением 200-500 кОм и получением линейности около 0,02%.
    Можно также заменить резистор R1 на стабилитрон, в этом случае частота генератора не будет меняться при изменении питающего напряжения. Конечно, необходимо резистором R2 обеспечить необходимый ток стабилитрона.
    С уважением, Евгений.

    • serge

      Евгений, спасибо за интересный разбор! Отвечу по пунктам…

      1) «Притягивать» пороговое имело смысл в моём случае чтобы дать больше «свободного места» по напряжению для ИТ при низком напряжении питания. Симулятор не учитывает всех эффектов, происходящих в реальном железе. Схема конечно же работала. Но линейность без такой подтяжки была не ах — завал было видать на глаз.

      2) Полностью согласен, что увеличив ёмкость и ток заряда можно снизить требование к входному импедансу усилителя. Ну согласитесь, повторитель с большим входным — весьма изящное решение 😉

      3) А вот и нет 😉 В случае, когда ток ИТ не зависит от напряжения питания (вместо R1 источник опорного напряжения) — частота будет уменьшаться пропорционально росу напряжения питания схемы. Если же собрано именно так, как на схемке у меня — частота генератора практически не меняется при изменении напряжения питания схемы от 6 до 15 вольт. Растёт напряжение питания => растёт пороговое напряжение, и ток заряда тоже растёт, время заряда ёмкости до порога остаётся практически неизменным.

  2. Евгений

    Извиняюсь по поводу стабилитрона я погорячился.

    • serge

      Свои люди — сочтёмся 😉
      Евгений, на самом деле спасибо большое, что делитесь мыслями! Значит не зря я тут развёл всё это сайто-строение.
      А ошибаться я не боюсь, буду лишь рад, если кто научит уму-разуму.

  3. Евгений

    Не ошибается тот кто ничего не делает. А идея с шунтированием полевика резистором для уменьшения искажений хороша. Кстати если из буфера убрать емкости за счет уменьшения выходного сопротивления генератора, то его можно будет использовать на более низких частотах. Взгляд со стороны позволяет или укрепиться в своей идее или подкорректировать её. И то и то хорошо.

  4. Евгений

    По поводу стабилитрона и обсуждать нечего я и написал вдогонку, что погорячился, а вот по поводу линейности поспорю и утверждаю что и теоретически и практически проверено что линейность генератора тока сохраняется вплоть до падения напряжения UКЭ=0,5-0,6V для кремниевых транзисторов. Следовательно минимально допустимое напряжение при котором обеспечивается линейность UR3+UКЭ, UR3=UR1-UБЭ, UБЭ=0,6…0,65V следовательно минимально допустимое напряжение для генератора тока Umin =<UR1. Проще говоря минимально допустимое напряжение при котором сохраняется линейность равна падению напряжению на R1. А оно в свою очередь = Uп*R1/R1+R2 (током базы пренебрегаем) и в соответствии с вашими номиналами резисторов составляет 0,265Uп
    а мы как известно ограничены 1/3Uп. Есть даже запас 0,333-0,265=0,068Uп=408mv. Так что симулятор здесь ни причем.
    Решение с повторителем действительно изящное слов нет, но у него есть недостаток на низких частотах емкости будут источником не линейности.
    Приятно общаться с человеком который представляет работу схемы и её дискретных элементов ведь в основном сейчас народ пытается программировать контроллер не зная при этом закона Ома.

    • serge

      Хмммм, Евгений, вы всё так правильно посчитали. Можно я не полезу сейчас в схемку отрывать R4 и выяснять в деталях, откуда же мне тогда померещился завал… Хотя… а что если не было у меня на тот момент полных 6 Вольт питания — вполне возможно 🙂

      Знаете, программировать можно и не зная закон Ома. Вот только к великому сожалению ваша аллегория про закон Ома и в программировании нынче применима. Мне по работе порою приходится сталкиваться с такими перлами в коде — мама не горюй…

  5. Pingback: Simple high-quality saw-tooth test signal generator | MyElectrons

  6. Яков

    Здравствуйте, Сергей!

    Большое Вам спасибо за схему пилообразного генератора, — хорошо работает!
    Посоветуйте мне, пожалуйста, как на её базе собрать схему, которая позволит получить пилообразные колебания с частотой 30 кГц при напряжении 200 В и токе 50 мА.

    Слаботочный генератор по Вашей схеме с питанием 14В, выдающий 1.2 В, я собрал, но не знаю, как сделать соответствующий усилитель.
    Из мощных транзиторов меня есть TIP 150 и IRF 640.

    С уважением,

    Яков

    • serge

      Яков,
      благодарю за Ваш отзыв!
      Конечно для Вашей задачи потребуется сообразный усилитель. Есть у меня в загашнике несколько идей для высоковольтного повторителя (в рамках проекта лампомерки), вот только руки до этого дела пока не дошли. Подписывайтесь на рассылку (вверху странички, рассылаются только новые статьи с этого сайта) — сразу будете в курсе 😉

  7. Maximoose

    А вот почему бы не использовать LM2904 со связью по постоянному току? У него синфазный сигнал и выход до V-, а максимальный входной ток — 30 нА. При этом стоит он рубля 4, если брать одну штуку. По-моему, это сильно бы упростило схему без потери функциональности.

    • serge

      Maximoose,
      спасибо за подсказку! Конечно можно, выбор Ваш весьма удачный. В мире ещё много очень хороших ОУ, а некоторые даже по доступным ценам…

      Ответ на Ваш вопрос «почему не LM2904» лежит совсем не в области электроники и компонентной базы 😉 Генератор этот я собирал сразу после переезда, в тот момент под рукой ничего кроме нескольких выпаянных из старого хлама деталюшек не было, правильных магазинов не знал ещё… Вот и выбор ОУ: тогда получилось хорошо из того, что было, а потом в статье уже хотелось показать те несколько красивых приёмов, которые могут пригодиться и в Ваших разработках.

  8. Alex

    Сергей, здравствуйте опять!
    Скажите, зачем после выхода С стоит 2 операционных усилителя? Почему не как в статье о генераторе Вина? Ок, почему точно так же нельзя воткнуть переменный резистор — понятно — иммеданс должен быть большим, но почему 2 ОУ?

    • serge

      Алекс, приветствую!
      Первый ОУ — это повторитель с очень большим входным сопротивлением.
      Второй ОУ — просто регулируемый усилитель, заодно и полярность позволяет изменять.
      На одном ОУ (со входами на bjt: 0.2мкА ток смещения) не получается не подгрузить генератор и тем самым не покорёжить пилу. Ну и мой перфекционизм тут подыграл 😉
      В генераторе же на мосте Вина не было необходимости иметь большое входное сопротивление буфера.

      Так уж тогда сложилось, что кроме скромненьких lm324 ничего дельного в закромах не было, а генератор хотелось собрать срочно 🙂
      Если бы на момент построения данного генератора у меня под рукой оказался приличный ОУ со входами на полевиках — обошелся бы одним неинвертирующим буфером с регулировкой в цепи ООС.

      • Alex

        Ага… Моя вас понимай… Ну да, в синус генераторе вы и так почти все на землю через подстроечный резистор спускаете… Спасибо!!! Я правда еще не понимаю почему вы выходы A и B нагружаете (проверяя через звуковую карту я не вижу разницы в сигнале при под-/отключенных 2n2222 ), но пока еще попробую сам разобраться… Я просто пытаюсь слепить из 3х генераторов 1 используя минимальное к-во повторений в конструкции… Но пока еще не все сами по себе работают))))

        • serge

          Про нагрузку выходов ОУ на ИТ в статейке про ген. на мосте Вина вроде подробно и даже с картинкой-примером. Ступеньки были хорошо видны лишь на синусе на выходе самого генератора. В остальных же местах я просто считаю по умолчанию, что без них лучше, даже если ООС их давит до незаметного на глаз уровня.

          В Вашем же случае скорее всего ОУ применён весьма качественный, да и смотрелка на звуковухе может просто не видеть достаточно высокочастотных искажений (тех самых ступенек).

          Ограничение снизу вообще может не появиться при достаточном напряжении питания (и опять же более качественном ОУ).

          • Alex

            Спасибо за ответ! Нет, я элементы беру 1 в 1 — ОУ у меня LM324. Я себе осциллограф на новый год подарил))) скоро приедет — тогда и поисследую внимательней.

            То что вы предлагаете схемы их неидеальных элементов — это супер, потому что позволяет понимать не только принцип действия, но и ограничения той или другой схемы.

  9. Роман

    Здравствуйте!
    В процессе изучения вашей схемы возник воспрос: а как образуется смещение в отрицательное напряжение, то есть сигнал строится относительно нуля, хотя питание везде положительное?
    С уваением, Роман.

    • serge

      Роман, здравствуйте!
      Пролистал статью и понял — схемку хорошо было бы более внятно перерисовать 🙂
      Сигнал центрируется относительно т.н. виртуальной земли, и разделительный конденсатор С5 тому способствует.
      Успехов!
      — Сергей.

      • Alex

        Добавлю как физик — поскольку ток не стационарный, можно грубо сказать что у тока есть определенная инерция. Конденсатор на напряжение реагирует с опозданием на четверть периода (для синусоиды). в результате напряжение как бы «перелетает через ноль».

      • Роман

        Сергей, спасибо за быстрый ответ!
        Такой вопрос еще возник сразу: если этот сигнал пилы относительной виртуальной земли подключить к схемам, где используется «реальная» земля, та же самая, что на подается на «V-«, нужна ли какая-то развязка или как грамотно их объединить?

        • serge

          Если питание генератора гальванически завязано с тестируемой схемой — необходимо использовать разделительный конденсатор по выходу фильтра.
          Или как вариант — запитать генератор от двуполярного источника, возможно даже от самой тестируемой схемы.

  10. Роман

    Сергей, не совсем понял, про какой фильтр вы говорите?

    • serge

      «…по выходу генератора», конечно же! 🙂
      Простите, это у меня сейчас одни фильтры в голове 😉

      • Роман

        Сергей, теперь все стало на свои места)
        Большое спасибо за помощь и за ваш замечательный сайт!

  11. Андрей

    Здравствуйте.

    Собрал по аналогии схему, работает не совсем так, как хотелось бы. Возник ряд проблем с сигналом пилы: плывет частота — со временем она уменьшается (довольно медленно, но все таки). После повторителя, частота почему-то увеличивается, где-то в два раза, и фронты пилы получаеются заваленными (медленне спадают). Наверно не правильно выбрал операционник, взял этот — http://www.analog.com/static/imported-files/data_sheets/AD8661_8662.pdf . Еще такой момент, почему-то виртуальная земля сильно смещена , если питаю напряжением 15 В, то виртуальная земля где-то в районе 2В относительно ботровой земли. Подскажите, пожалуйста, в чем тут могут быть проблемы?

    • Андрей

      Забыл написать: поменял резисторы R1, R2 на 1 и 2,4 кОм соответвенно и C4 на 75 пФ, все это для задания нужной мне частоты.

      • serge

        Андрей, приветствую!

        ОУ Вы выбрали, на сколько я могу судить по документации, очень даже подходящий. А вот с номиналами — что-то не очень понятно. Судя по всему слишком высоко по частоте «забрались» 🙂

        Попробуйте запустить в точности с теми же номиналами, что в статье. С качественным ОУ в данной схеме вполне можно не подгружать выходы источниками тока. Посмотрите, что получится, расскажите. Дальше можем вместе подумать, как получить нужный Вам результат. 😉

        • Андрей

          Сергей, спасибо а ответ!

          Собрал с вашими номиналами, осталась примерно та же картина, до повторителя частота одна (1.3 кГц), после 1.36 кГц. Не сильно, конечно, отличаются, но видимо при увеличении частоты эта разница возрастает. Фронты также начинают немного заваливаться после повторителя. Так же осталось непонятно, почему виртуальная земля, сильно смещена от «центра» напряжения питания.
          Вообще мне нужно порядка 80 кГц частота. Буду рад советам.

  12. Сергей

    serge, источник тока на транзисторе из-за эффекта Эрли имеет низкое выходное сопротивление, поэтому пила неидеальна. Я применяю ИТ на ОУ. Либо по схеме источника тока Хауленда, либо по более известной схеме в паре с полевым. Вот тогда пила идеальна. Но вот с мощными полевыми (при больших токах) из-за их входной ёмкости, нагружающей ОУ, схема неустойчива и требуется коррекция на опережение фазы. Последовательно с инвертирующим входом установить резистор (кОмы), а с выхода ОУ на инвертирующий вход «кинуть» конденсатор. Его ёмкость (от пФ до сотен пФ) подбирают в зависимости от частотных свойств ОУ.

  13. Pingback: Simple high-quality saw-tooth test signal generator | MyElectrons

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.