Best-404-Error интересуется, можно ли получить результат компиляции длиной менее 512 байт, если исходник написан на языке высокого уровня. Можно, если упростить возлагаемую на прошивку задачу.

Программная реализация усилителя класса D позволяет менять его параметры (частоту ШИМ, скважность в режиме покоя) сменой прошивки.

Схема аппаратной части устройства:



Входные сигналы проходят через конденсаторы для отсечения постоянной составляющей, а затем — через резисторные делители, прибавляющие к ним новую постоянную составляющую порядка +0,55 В. Одновременно конденсаторы и нижние резисторы делителей образуют ФВЧ, отсекающие частоты ниже 28 Гц. Опыт показал, что частоту среза этих фильтров лучше ещё повысить, потому что небольшие искажения возникают всё равно.

Сигналы поступают на первый и третий АЦП микроконтроллера. Опорное напряжение АЦП выбрано равным 1,1 В. Коэффициент деления тактовой частоты составляет 16, поэтому АЦП работают на частоте в 500 кГц. Процедура обработки прерываний циклически переключает первый и третий АЦП. Одно из считанных значений записывается в OCR1A, второе — в OCR1B.

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

Если скважность в режиме покоя выбрана 50-процентной (лучше качество, но меньше экономичность), перед динамическими головками нужны ФНЧ.

Файлы: исходник на C++, результат компиляции Atmel Studio 7.0 (получилось 495 байт), схема в формате Eagle, плата в нём же, G-код для прорезки рисунка платы, её сверления, вырезания в размер.

Плата односторонняя:



Динамические головки подключены через стандартный сдвоенный H-мост L293N:



Усилитель в действии:

Комментарии (8)


  1. iig
    10.06.2019 12:17
    +1

    I make (Я сделаль).
    Мне раньше казалось, что у усилителя есть какие-то параметры (диапазон рабочих частот, коеффициент усиления, АЧХ, ФЧХ).



  1. Astro_Graf
    10.06.2019 13:53
    +1

    Хммм… Интересно! А есть ли у этого какой-либо практический смысл?


    1. nafikovr
      10.06.2019 15:52
      +1

      если учитывать что на паре компараторов можно сделать усилитель намного выше уровнем, то конечно же нет. разве что с целью разобраться с периферией микроконтроллера.


  1. Astro_Graf
    10.06.2019 15:56
    +1

    ясно, я просто только закончил проект на Monster moto Shield VNH2SP30 (30А), подумал может что-то в этом есть :-)


  1. DolphinSoft
    10.06.2019 21:21
    +1

    >результат компиляции Atmel Studio 7.0 (получилось 495 байт)

    0.13 KB (140 Bytes)


  1. klirichek
    11.06.2019 04:37
    +1

    Мне кажется, программу, текст которой занимает 25 строчек (если не считать вводную шапку с комментарием-копирайтом) можно было прямо цитатой в статье разместить.
    (да и не С++ там так-то, а голый С. В общем-то, как и должно быть)


  1. RxMaxx
    11.06.2019 09:43
    +1

    Ждем обзора этого усилка от Сталкера.