Генератор сигналов на МК ATtiny2313

Сколько я занимаюсь электроникой, всегда хотел заиметь генератор сигналов различной формы. Недавно мне понадобилось получить синусоидальный сигнал с помощью цифровых методов, и я решил что сделаю себе хороший генератор! В итоге я сделал простой, но функциональный генератор сигналов который может генерировать: меандр, треугольник, синус, шум и пилообразный сигналы. Максимально генерируемая частота — 60kHz (килогерц). Пока что в настоящей прошивке, частоту можно устанавливать только при генерации меандра, для остальных сигналов можно устанавливать лишь задержку в микросекундах. Основой устройства является AVR микроконтроллер ATtiny2313, сигнал генерируется с помощью 8 битного цифро-аналогового преобразователя (ЦАП), данные о частоте, сигнале или задержки отображаются на ЖК индикаторе 8×2. Вот собственно принципиальная схема:

Схема генератора сигналов

Для сборки понадобятся детали:
1. Микроконтроллер Attiny2313 — 1шт.
2. ЖК индикатор WH0802 или с HD44780 совместимом — 1шт.
3. Микросхема LM324 — 1шт.
4. Тактовые кнопки без фиксации — 3шт.
5. Резистор 10 кОм — 1шт.
6. Резистор 300 Ом — 1шт.
7. Резистор 2 кОм — 8шт.
8. Резистор 1 кОм — 9шт.

ЦАП собран на резисторах и подключён напрямую к порту B микроконтроллера, сигнал после ЦАПа усиливается с помощью операционного усилителя LM324. ЖК индикатор я применил WH0802 c HD44780 совместимом контроллером, данный ЖКИ имеет 2 строки по 8 знакомест каждая. Существенно применение любого ЖК индикатора с совместимом контроллером с HD44780. Микроконтроллер применить Attiny2313 можно с любыми буквенными индексами, в любых корпусах. Кнопки можно применить любые тактовые, без фиксации. Кнопкой «Выбор» выбирается тип генерируемого сигнала. Кнопками «Плюс» и «Минус» устанавливается частота или задержка. При включении устройства оно сразу начинает генерировать сигнал, по умолчанию это меандр. Напряжение питания: 5 вольт. Вот осциллограммы генерируемых генератором сигналов:

Меандр
Меандр 

Шум
Шум

Пила
Пила

Синус
Синус

Треугольник
Треугольник

Я собрал свой генератор сигналов в пластмассовом корпусе ZIV, вот что получилось:

Генератор сигналов

Первые испытания вместе с самодельным осциллографом:

DDS

Схему я собрал на печатной плате сделанной с помощью ЛУТ, рисунок печатной платы в Sprint Layout 4.0 можно найти в файлах к статье. На плате я использовал детали в SMD корпусах, исключение лишь составляет микросхема LM324, она использована в DIP корпусе. Прошивку для устройства я писал в среде BASCOM-AVR исходник прилагается. Также прилагается проект устройства в программе Proteus. Кстати, после прошивки не забудьте установить следующие фьюз биты (для программы SinaProg):

Фьюз-биты

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1 МК AVR 8-бит ATtiny2313 1
U2 Операционный усилитель LM324 1
R1-R8 Резистор 2 кОм 8
R9-R16, R18 Резистор 1 кОм 9
R17 Резистор 10 кОм 1
R19 Резистор 300 Ом 1
BTN1-BTN3 Кнопка Без фиксации 3
LCD1 LCD-дисплей WH0802 1 HD44780 совместимый