DDS генератор, или генератор Прямого Цифрового Синтеза в настоящее время уже далеко не новинка. На просторах интернета представлено большое количество схем, преимущественно на микроконтроллерах AVR. В качестве ЦАП-а в основном выступает R-2R матрица, но присутствуют конструкции и на микросхеме AD9850 (к слову, низкой стоимостью они не отличаются). Но к сожалению (или у счастью?), в них не было нужного мне: небольшие размеры и низкая стоимость. Как итог, была разработана данная схема.
В данной статье я хочу представить DDS генератор, выполненный на микроконтроллере ATmega8. Для отображения информации используется графический LCD LPH8731-3C. Данное устройство позволяет получить периодичный сигнал с произвольной формой (разрешение 100 точек) и заданной амплитудой.
Технические характеристики:
- Напряжение питания: 5В
- Потребляемый ток: <100мА
- Мин. выходное напряжение: 0.5В
- Макс. выходное напряжение: 2,5В
- Шаг установки напряжения: 0,5В
- Мин. частота сигнала: 10Гц
- Макс. частота сигнала: 2кГц (10кГц)
- Шаг установки частоты: 10Гц (100Гц)
- Количество предустановленных сигналов: 8
- Отображение данных: графический ЖКИ
- Возможность добавления формы сигнала «на ходу» (без перепрошивки): отсутствует
- Яркость подсветки: регулируется, необходима перепрошивка
- Макс. количество форм в памяти: не менее 20
Схема устройства представлена ниже:
Основа схемы, как уже упоминалось, микроконтроллер ATmega8-16AU. Индекс «…16» необходим, так как в схеме применен кварцевый резонатор на 16МГц. ЦАП выполнен на R-2R матрице. Данный ход позволяет избежать применения специальных микросхем, но к сожалению, не позволяет добиться реального разрешения ЦАП выше 10 .. 12бит (в любительских условиях). К выходу матрицы через резистивный делитель напряжения (R17, RV1) подключен операционный усилитель, включенный по схеме повторителя и служит для усиления тока.
Управление устройством осуществляется посредством кнопок. На переднюю панель целесообразно выносить только кнопки SB1-SB4. Кнопка SB5 играет роль «функциональной», и позволяет использовать отличные от «основных» действия для кнопок SB1-SB4. Переключатель SA1 включает/выключает «генерацию» и кнопки управления соответственно. В первом его положении включено управление и отключено генерирование сигнала, а в другом ситуация диаметрально противоположна первому. Разъем J2 можно не разводить на плате, так как он предназначен лишь для подачи на плату питания на время программирования микроконтроллера (но придется цепляться напрямую к дорожкам).
Печатная плата:
Печатная плата устройства выполнена на двухстороннем фольгированном материале и имеет размеры ( _ х _ ). Основная сложность при ее изготовлении — разводка дорожек для посадки микроконтроллера, но если у вас есть опыт изготовления подобных плат и/или возможность использовать фоторезист/ЛУТ , то проблем при изготовлении быть не должно.
При сборке устройства настоятельно рекомендую проверить, хорошо ли пропаяны переходные отверстия а так же надежность контакта ножек микроконтроллера и дорожек печатной платы. Я пропустил всего 1 непропай ножки микроконтроллера, и в результате на поиски проблемы ушло пару дней.
Прошивка
Прошивка для микроконтроллера была написана в WinAVR. Для заливки .hex файла использовался программатор USBasp и софт Khazama AVR Programmer. Скриншот с примером выставления fuse-битов представлен ниже. Так как на печатной плате специальный разъем для программирования не предусматривался, то для прошивки микроконтроллера придется временно припаяться к соответствующим дорожкам (пины микроконтроллера «MISO», «MOSI», «SCK», «RESET»).
Сборка и компоновка устройства
При помещении устройства в корпус, желательно установить кнопку SB5 на боковой его грани. Выключатель SA1 в моем варианте находился на нижнем торце, как и разъем для подключения нагрузки. Разъем USB установлен в верхней части корпуса потому, что в планах было использование DC-DC преобразователя 3.7 -> 5В. Но так как хотелось универсальности, решил сделать этот блок съемным.
Возможная замена элементов
Микроконтроллер можно использовать только ATmega8-16AU. Операционный усилитель LM358 аналогичным (к примеру, NE532, OP04, OP221, OP290, …) в корпусе SO-8, и про возможное несоответствие выводов забывать не стоит. Транзистор Q1 можно взять любой маломощный n-p-n, к примеру отечественный КТ315 или КТ3102. Резисторы R1-R16 желательно брать с минимальный допуском (0,5…1%), но пойдут и более распространенные 2…5% (но тут форма сигнала может быть немного хуже). Причем, желательно взять резисторы одного номинала (пусть будет 10кОм), и потом там где требуется 2R ставить 10кОм, а где R — 2х10кОм параллельно. Конденсаторы C1, C2 желательно брать в диапазоне 22…33пФ. Кварцевый резонатор использован низкопрофильный, на частоту 16МГц. Резистор RV1 — многооборотный. Стабилитрон можно ставить только на 3.3В.
LCD дисплей можно использовать только с желтой подложкой и надписью «LPH8731-3C». Он встречается в мобильных телефонах Siemens A60, A65 и др. и имеет разрешение 101×80 пикселей.
Настройка
Правильно собранное устройство в наладке не нуждается, и должно работать сразу после сборки и прошивки контроллера. Если этого не произошло, то проверьте на короткое дорожки на печатной плате, правильность подключения LCD дисплея, целостность проводов от переключателя SA1 а так же исправность стабилитрона и источника питания/кабеля USB.
При успешном первом включении, необходимо с помощью осциллографа и подстроечного резистора RV1 настроить уровень выходного сигнала согласно установкам на дисплее.
Назначение кнопок: SB1 — «Влево» (Вых. напряжение меньше), SB2 — «Вправо» (Вых. напряжение больше), SB3 — «Частота +10» (Частота +100), SB4 — «Частота -10» (Частота -100) <— SB5 — Отжата (Нажата).
Фото и видео устройства:
На двух фото ниже видно, как можно получить большую частоту, нежели 2кГц. Но приходится качеством сигнала (для прямоугольных не принципиально).
Осциллограммы сигналов, полученных с помощью данного устройства:
Внешний вид собранного устройства:
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | МК AVR 8-бит | ATmega8A-AU | 1 | |||
U2 | Операционный усилитель | LM358 | 1 | Корпус SO-8 (LM358D)) | ||
Q1 | Биполярный транзистор | BC547 | 1 | |||
D1 | Стабилитрон | BZX55C3V3 | 1 | |||
RV1 | Подстроечный резистор | 220 кОм | 1 | |||
R1-R9 | Резистор | 2.2 кОм | 9 | 0805, 1% | ||
R10-R16, R32 | Резистор | 1.1 кОм | 8 | 0805, 1% | ||
R17 | Резистор | 100 кОм | 1 | 0805 | ||
R19-R23 | Резистор | 5.6 кОм | 5 | 0805 | ||
R24-28, R18 | Резистор | 10 кОм | 5 | 0805 | ||
R29, R30 | Резистор | 220 Ом | 2 | 0805 | ||
R31 | Резистор | 75 Ом | 1 | 0805 | ||
R33 | Резистор | 510 Ом | 1 | 0805 | ||
C1, C2 | Конденсатор | 27 пФ | 2 | 0805 | ||
C3 | Конденсатор | 100 нФ | 1 | 0805 | ||
LCD1 | LCD-дисплей | LPH8731-3C | 1 | Желтая подложка | ||
X1 | Кварцевый резонатор | 16 МГц | 1 | Низкопрофильный | ||
SB1-SB5 | Кнопка | Кнопка мембранная | 5 | |||
SA1 | Переключатель | Переключатель с парой нормально разомкнутых контактов | 1 | |||
J4 | Разъем | USB разъем | 1 | |||
J1-J3 | Разъем | PLS-40 | 1 | |||