Генератор ШИМ сигнала на микроконтроллере с регулируемой скважностью

Это простой ШИМ-генератор работающий от стабилизированного источника питания с напряжением 4,75…5,25 В. На его выходе генерируется прямоугольный сигнал с постоянной частотой 1 Гц, но с регулируемым коэффициентом заполнения в диапазоне 0…100% с шагом 1%, в зависимости от установленных перемычек J1-J7.

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

Основой генератора является популярный микроконтроллер ATmega48. Вместо него можно использовать модели ATmega88 или ATmega168, которые отличаются только большим объемом памяти.

Управляющая программа написана на ассемблере и идентична для каждого из упомянутых микроконтроллеров (занимает 2440 байт флэш-памяти). После включения источника питания или сброса микроконтроллера с помощью кнопки S1 управляющая программа конфигурирует вывод PB0 (№ 14) в качестве выхода с низким логическим уровнем (LOW), а все остальные выводы — как входы с высоким логическим уровнем (включены внутренние подтягивающие резисторы).

Генератор ШИМ сигнала на микроконтроллере с регулируемой скважностью

Затем микроконтроллер считывает состояние перемычек J1-J7, которые подключены к контактам PD0…PD6. Если все перемычки открыты (OFF), программа переходит к выполнению цикла, генерирующего сигнал с заполнением 0% (режим 0) и на выходе генератора все еще остается низкое логическое состояние (LOW).

Однако если при помощи перемычек установлено некоторое двоичное значение X = 1…99 (J1 — самый младший бит), то программа переходит к соответствующему циклу (режим X), который выполняется без прерывания.

В каждом таком цикле есть две инструкции, которые переключают состояние выхода PB0 на противоположное. Время между переключениями различается (за исключением 50% заполнения), но их сумма всегда равна 1 секунде. Благодаря этому на выходе генератора получается прямоугольный сигнал с различным заполнением, но всегда с частотой 1 Гц.

Если перемычками установлено двоичное значение X > 99, программа переходит к выполнению цикла, генерирующего 100% сигнал (режим 100), при этом на выходе генератора постоянно высокое логическое состояние (HIGH).

Для правильной работы генератора необходимо использовать кварцевый резонатор Q1 с номинальной частотой 4 МГц, поскольку циклы в управляющей программе написаны именно для этой частоты микроконтроллера.

Резистор R2 и конденсатор C1 образуют низкочастотный фильтр, который подавляет дребезг контактов, возникающий в момент нажатия кнопки S1. Транзисторы VT1 (BC547) и VT2 (BC557) работают в качестве выходного буфера с током до 100 мА.

Все возможные для установки комбинации перемычек J1-J7 и соответствующий им коэффициент заполнения сигнала, приведены в следующей таблице.

generator-shim-signala-na-mikrokontrollere-s-reguliruemoj-skvazhnostyu-tab

После пайки всех элементов убедитесь, что нет коротких замыканий. Подайте питание и запрограммируйте микроконтроллер, используя любой ISP программатор через разъем CON3. Контакты разъема CON3 расположены стандартным образом, рекомендованным Atmel.

4

При программировании необходимо установить соответствующие fuse и lock биты:

  • FL (Fuse Low): $F7
  • FH (Fuse High): $DF
  • FE (Fuse Extended): $F9 ($FF для ATmega48)
  • LB (Lock Bits): $FF

При таких настройках:

  • используется внешний кварцевый резонатор (биты CKSEL3-0 = 0111);
  • делитель частоты на 8 отключен, что вызывает тактирование микроконтроллера на полной частоте резонатора (CKDIV8 = 1);
  • увеличено время запуска до 65 мс после включения напряжения питания (SUT1-0 = 11);
  • отключена генерация тактовой частоты микроконтроллера на выводе PB0 (CKOUT = 1);
  • включена возможность сброса PC6 (RSTDISBL=1) и программирования через последовательный интерфейс (SPIEN=0).

После программирования микроконтроллера отключите программатор от платы. Затем перемычками  J1-J7 установите комбинацию, которая соответствует выбранному коэффициенту заполнения, и нажмите кнопку S1. На выходе генератора должен появиться прямоугольный сигнал с частотой 1 Гц и выбранной скважностью.

Скачать прошивку (2,6 Kb, скачано: 147)

источник

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

Ваш электронный адрес не будет опубликован.

*