Многофункциональный генератор на PIC16F870

Этот проект основан на схеме функционального генератора, описанного на веб-сайте Mondo. Я лишь сделал очень незначительные изменения и исправил некоторые очевидные опечатки в схеме. Код переписан для синтаксиса Microchip MPLAB IDE.

Характеристики генератора:
  Частотный диапазон: 11 Гц — 60 кГц
  Цифровая регулировка частоты с 3 различными шагами
  Форма сигнала: синус, треугольный, прямоугольный, пульс, пакетный, sweep, шум
  Выходной диапазон напряжения: ± 15В для синуса и треугольника, 0-5В для других
  Синхронизация: выход для импульсного сигнала.

Устройство питается от 12-вольтового трансформатора, который обеспечивает достаточно высокое (более 18 В) постоянное напряжение, необходимое для нормальной работы стабилизаторов 78L15 и 79L15. Питание в ±15 В необходимо для того, чтобы ОУ LF353 на выходе давал полный спектр сигналов при 1кОм нагрузки. При использовании питания ±12 В этот резистор должен быть не менее 3 кОм.

Датчик вращения (поворотный энкодер) который я использовал – ALPS SRBM1L0800 в виде 2-х переключателей в круге на схеме. Автор, вероятно, использовал другой, так что некоторые изменения в коде программы контроллера были необходимы. Мой датчик имеет две группы контактов: ВЫКЛ и ВКЛ (когда ротор перемещается в соответствующем направлении). Таким образом, изменение прерывания PORTB должны быть созданы, если одна из пар контактов коротится. Это достигается за счет подключения обоих групп контактов на контакты PIC16 (RB4 — RB7), которые проверяются программой на изменение состояния. К счастью, RB4 не был использован в оригинальном дизайне, так что я просто перенаправлен RB3 на RB4. Другая модификация вызвана использованием поворотного энкодера, потому я немного изменил прерывания микропрограммы. Я заставил регулятор, сохранять состояние в течении 100 последовательных измерений вместо 10 в оригинальном дизайне. Заметим, что некоторые ножки PIC используются для перенаправления +5 В для упрощения компоновки печатной платы, поэтому они настроены в качестве входов портов.

Печатная плата предусматривает три резисторных сборки. Одна – R/2R – для ЦАП из Bourns 4310R серии. Сборка ЦАП резисторов может быть построена и на дискретных резисторах по схеме выше. Следует использовать резисторы с допуском до ± 1% или лучше. Светодиодные ограничительные резисторы серии Bourns 4306R. Яркость светодиодов может быть увеличена изменением сопротивления ограничительных резисторов до 220 – 330 Ом.

Генератор собран в 179x154x36 мм  пластиковом корпусе с алюминиевыми передней и задней панелями. Уровень выходного сигнала регулируется переменным резистором Alfa 1902F серии. Все другие компоненты устанавливаются на передней и задней панелях (кнопки, разъемы, светодиодные сборки, разъем питания). Платы крепятся к корпусу болтами в 6мм с пластиковыми прокладками.

Генератор производит 9 различных форм сигналов и работает в 3-х режимах, которые выбираются с помощью кнопки «Выбрать (Select)» и их индикация выводится на 3-х верхних (по схеме) светодиодах. Датчик вращения корректирует параметры сигнала в соответствии со следующей таблицей:

Режим Форма

Sine

Triangle

Square

Saw

H-pulse

L-pulse

Burst

Sweep

Noise

Режим 1

freq

freq

freq

freq

Freq

freq

freq

freq

Режим 2

width

width

cycles

cycles

Режим 3

rate

delta

rate

Сразу после включения генератор переходит в режим 1 и генерирует синус. Тем не менее, начальная частота довольно низкая и по крайней мере одного щелчка регулятора хватит, чтобы увеличить ее.

P.S. От себя добавлю: при повторении устройства с авторской печатной платой прибор отказался заводиться (возможно на печатной плате есть ошибка), а при монтаже на макетной плате – генератор начал работать сразу.

Ниже вы можете скачать исходники asm, прошивку и файлы печатных плат (Eagle)

Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

Схема генератора.
МикроконтроллерPIC16F8701

Сдвиговый регистрCD74HC1641

Операционный усилительLF3531

Мультиплексор/демультиплексорCD4053B1

Линейный регуляторLM78051

Линейный регуляторLM78L151

Линейный регуляторLM79L151

Выпрямительный диод1N40023

Конденсатор22 пФ2

Конденсатор51 пФ1

Конденсатор100 пФ1

Конденсатор1000 пФ1

Конденсатор0.1 мкФ1

Электролитический конденсатор1 мкФ2

Электролитический конденсатор4.7 мкФ1

Электролитический конденсатор100 мкФ2

Электролитический конденсатор500 мкФ1

Резистор470 Ом6

Переменный резистор1 кОм1

Резистор2.7 кОм1

Резистор4.7 кОм1

Резистор10 кОм4

Резистор15 кОм1

Резистор22 кОм1

Резиторный блокR/2R x 10K1

Кварцевый резонатор20 МГц1

Светодиод6

Поворотный энкодерALPS SRBM1L08001
Или две тактовые кнопки
Тактовая кнопка2
Состав резисторного блока R/2R x 10K.
Резистор10 кОм9

Резистор20 кОм9
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

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

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