Управляемый генератор прямоугольных колебаний на attiny2313

Цифровой генератор на ATMEGA8

Еще один простой цифровой генератор, который позволяет генерировать:

– сигналы разной формы с частотой до 64999 Гц;

– прямоугольные импульсы до 8 МГц

– видеосигнал, вертикальные полосы градации серого.

   Не претендую на авторство этого проекта, в интернете много вариантов такого генератора, первоисточник мне установить не удалось. За основу взял эту разработку.

Переделал схему и прошивку под ATMEGA8 (такие переработки тоже попадались), переработал под свои потребности. Генератор собран и испытан.

Если по ходу эксплуатации буду что-то дорабатывать, то все обновления будут выкладываться в этой статье.

Описание генератора.

         1. Генерирование сигналов.

– синусоида, диапазон                             1 ÷ 64 999 Гц;

– прямоугольные импульсы, диапазон       1 ÷ 64 999 Гц;

– треугольные  импульсы, диапазон          1 ÷ 64 999 Гц;

– прямая пила, диапазон                          1 ÷ 64 999 Гц;

– обратная пила, диапазон                       1 ÷ 64 999 Гц;

– высокочастотные прямоугольные

импульсы.                                               Ступенчато от 1кГц до 8МГц.

– шум;

– видеосигнал вертикальных полос градации серого и звуковой сигнал 1 кГц.

2. Установка.

В основном режиме при остановленном генераторе кнопками UP/DOWN выбор формы сигнала.

Кнопками LEFT/RIGHT перемещение между разрядами частоты. Устанавливаемый разряд мигает. При установке тысяч и десятков тысяч существуют программные ограничения, чтобы максимальная частота не превысила 64 999 Гц.

При установке частоты высокочастотных импульсов частота устанавливается ступенчато из ряда: 8000, 4000, 2000, 1000, 500, 400, 250, 200, 125, 100, 50, 40, 25, 16, 10, 8, 5, 4, 2, 1 кГц.

Запуск/остановка генератора производится кнопкой START.

При запущенном генераторе можно изменять частоту только для высокочастотного генератора. Для изменения других параметров следует сначала остановить генератор.

Выбранные настройки записываются в энергонезависимую память.

Схема генератора:

Осциллограммы работы генератора:

Телевизионный сигнал вертикальные полосы:

В архиве прошивка для микроконтроллера, FUSE, проект в Proteus (почти схема), описание, файл LCDALPHA.DLL для корректного отображения кириллицы при симуляции в Proteus.

24.08.2015

Добавил схему, по которой велось изготовление прибора, и печатную плату.

Печатная плата состоит из двух частей – основная и кнопки управления.

Печатаная плата разрабатывалась по имеющиеся в наличии детали и под условия монтажа в конкретный корпус, в котором уже установлен источник стабилизированного питания +-9V.

Источник: http://sxem.org/2-vse-stati/24-izmerenija/136-tsifrovoj-generator-na-atmega8

DDS генератор на микроконтроллере ATmega16. Часть 1. Схемотехническое решение

» Схемы » Генераторы · Измерения · Применение микроконтроллеров

15-11-2010

В первой части статьи рассматривается схемотехническое решение, устройство и конструкция DDS генератора (генератор с прямым цифровым синтезом формы сигнала) на микроконтроллере Atmel ATmega16. В приборе, кроме синтеза сигнала различной формы и частоты, реализуется возможность регулировки амплитуды и смещения выходного сигнала.

Основные характеристики прибора:

  • простое схемотехническое решение, доступные компоненты;
  • односторонняя печатная плата;
  • сетевой источник питания;
  • специализированный выход частоты от 1 МГц до 8 МГц;
  • DDS выход с регулировкой амплитуды и смещения;
  • форма выходного DDS сигнала: синусоида, прямоугольные импульсы, пилообразные импульсы, треугольные импульсы, ЭКГ, шум;
  • для отображения текущих параметров используется двухстрочный ЖК дисплей;
  • пятикнопочная клавиатура;
  • шаг перестройки частоты: 1, 10, 10, 1000, 10000 Гц;
  • восстановление последней конфигурации при включении;
  • регулировка смещения: –5 В … +5 В;
  • регулировка амплитуды: 0 … 10 В;
  • регулировка частоты: 0 … 65534 Гц.

За основу прибора, а точнее алгоритм работы микроконтроллера, была взята разработка DDS генератора Jesper Hansen. Предложенный алгоритм был немного переработан и адаптирован под компилятор WinAVR-GCC

Сигнальный генератор имеет два выхода: выход DDS сигнала и выход высокочастотного сигнала (1 – 8 МГц) прямоугольной формы, который может использоваться для «оживления» микроконтроллеров с неправильными установками Fuse-битов или для других целей.

Высокочастотный сигнал поступает непосредственно с микроконтроллера, с вывода OC1A (PD5). DDS сигнал формируется микроконтроллером с использованием цепочки резисторов R2R (ЦАП), регулировка смещения и амплитуды возможна благодаря использованию низкопотребляющего операционного усилителя LM358N.

Блок-схема DDS генератора

Как видно, для питания устройства необходимо три напряжения: +5 В, +12 В, –12 В. Напряжения +12 В и –12 В используются для аналоговой части устройства на операционном усилителе для регулировки смещения и амплитуды.

Принципиальная схема источника питания изображена на рисунке ниже.

Кликните для уеличения

В источнике питания используются стабилизаторы напряжения LM7812, LM7805, LM7912 (стабилизатор отрицательного напряжения –12 В).

Внешний вид источника питания для генератора

Возможно использование компьютерного блока питания форм-фактора ATX, для этого необходимо распаять переходник в соответствии со схемой:

Принципиальная схема прибора

Кликните для увеличения

Для сборки прибора потребуется:

  • микроконтроллер ATmega16;
  • кварцевый резонатор 16 МГц;
  • стандартный двухстрочный ЖК индикатор на базе контроллера HD44780;
  • R2R ЦАП выполненный в виде цепочки резисторов;
  • сдвоенный операционный усилитель LM358;
  • два потенциометра;
  • пять кнопок;
  • несколько коннекторов и разъемов.

Рисунок печатной платы

Примененные компоненты, за исключением микроконтроллера и разъемов, в корпусах для поверхностного монтажа (smd).

Прибор смонтированный в корпусе

Тестовый запуск

Загрузки

Принципиальная схема и печатная плата (формат Eagle) – скачать
Проект для симуляции в среде Proteus – скачать

Во второй части статьи рассмотрим алгоритм работы микроконтроллера и его основные отличия от версии, автором которой является Jesper Hansen, понакомимся с порядком работы и опциями меню. Кроме того, будут предоставлены изображения формы сигналов с DDS выхода генератора, снятых с помощью осциллографа.

Дополниельно имеется второй вариант конструкции DDS генератора на микроконтроллере ATmega16.

scienceprog.com

Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
  • Кто пробовал сваять?
  • Смотрите ветку Функцинальный генератор, начиная с 4 поста идет обсуждение этой конструкции, и пользователи QED и куко собрали этот генератор. И в протеусе был проверен – работает.
  • скажите кто-нибудь, пожалуйста, перечень компонентов для блока питания используемые в первом( http://www.rlocman.ru/shem/schematics.html?di=69926 ) варианте генератора. в частности интересует какой модель трансформатора и выпрямитель использовал автор. или хотя бы полные аналоги. из просьбы ясно, что я в электротехнике не силён, но думаю собрать осилю без углубления в дебри предмета. Просто форс-мажор. С конденсаторами и 3-мя стабилизаторами всё понятно. Собственно вот эта схема прикреплена.
  • Трансформатор любой маломощный с двумя вторичными обмотками с выходным напряжением 15 В (переменка). В частности автор использовал трансформатор TS6/47 (2х15 В/2х0.25 А) Диодный мостик тоже любой маломощный сгодится. На фотке в статье виден и трансформатор и диодный мостик.
  • а подскажите пожалуйста, какая связь должна быть между вторичным выходом трансформатора и выпрямителем, учитывая схему БП автора?:confused: ну имею ввиду, если на выходе трансформатора 15в (вроде нашел вот такой -ТПС-7.2(2х15В)сим.(7.2Вт)15Вх2_7.2Вт_сим .(0.24А)х2 – 160,00руб) , то какой выпрямитель к нему? и на случай, если 12в на выходе трансформатора?
  • Не совсем понял вопрос, честно говоря… Трансформатор указанный вами вроде подходит… Мостик вполне, думаю подойдет к примеру DB106
  • Vadzz, спасибо огромное за подсказку. если DB106 подходит, значит и имеющий аналогичные параметры W08 подойдет. это так? просто, именно его имеется возможность(желание) купить. и ещё не смог разобраться с номиналами конденсаторов на схеме автора, подскажите, пожалуйста. они в все в nF(нанофарад-нФ)?
  • W08 – вполне подойдет. Конденсаторы в схеме блока питания или в схеме самого генератора? Если блок питания – то там все кондеры в микрофарадах (2000 мкф, 100 мкф, 0.1 мкф). В схеме генератора – по-моему только два кондера в обвязке кварца 18 пикофарад.
  • Vadzz, безгранично благодарю. вроде все вопросы сняты. Со схемой самого генератора вроде немного проще(есть файл EAGLE). Буду воплощать в реальность. Если всё будет путём, то попробую выложить печатную плату (формат Eagle) Блока питания .
  • Обязательно должно все получиться у вас… Рисунок печатной платы выкладывайте, кому-то обязательно пригодится…
  • Я спаял и пользуюсь. Честно говоря по ходу возникли несколько проблем: 1) недостаток – невозможна перестройка частоты при включенном генераторе. Т.е. если нужно менять частоту, то сначала выключаем генерацию сигнала, потом перестраиваем частоту, потом снова включаем генерацию сигнала. Это зачастую неудобно, когда нужно следить за реакцией налаживаемого устройства на плавное изменение частоты. Например для управления оборотами шаговика перестраивать частоту нужно только плавно. 2) недостаток – дважды слетал EEPROM. Автор предусмотрел запоминание установленных режимов в EEPROM, но это совсем не обязательно. Уж лучше бы ничего не запоминал и не использовал его совсем. Или в крайнем случае при повреждении EEPROM грузил установки “по умолчанию” из FLASH. Зато был бы надежнее. В целом в остальном работой я доволен. Просьба к тем, кто смыслит в написании программ для AVR исправить эти два недостатка.
  • По поводу перестройки частоты “налету” тут скорее всего нужно использовть DMA, чего в подобных микроконтроллерах нет. Может я ошибаюсь… надо глянуть исходники генератора… Насчет “слетает EEPROM” – интересно конечно причину узнать, но два раза я думаю еще не показатель.
  • Готовые генераторы на ad9850(51) есть здесь: http://radiokit.tiu.ru/product_list/group_802113
  • Готовые генераторы на AD9850 это хорошие девайсы, но другое дело когда собираешь и налаживаешь сам…
  • Разрушение данных в EEPROM приводит к полной неработоспособности генератора. Очень неприятная проблема в самый неподходящий момент. Я обычно внутри корпуса генератора держу запасной запрограммированый контроллер. Но это же не выход из положения. Почему не предусмотреть сохранение только текущих данных, которые не повлияют в целом на работоспособность, если будет разрушение EEPROM? При потере данных из Flash грузим установки по умолчанию. Все остальное, что касается работоспособности программы хранится во Flash. Так надежнее будет работать. ПРЕДЛАГАЮ разместить список ссылок с другими проектами генераторов на AVR.
  • Тут несколько людей собирали этот генератор (с их слов конечно же), они ничего не говорили по этому поводу, есть ли такая проблема у них или нет…
  • Подскажите,в данном генераторе есть возможность менять только частоту или скважность тоже?
  • В характеристика генератора указано, что можно менять частоту, к сожалению возможности менять скованность нет…
  • парни подскажите по поводу RESET джампера -когда его включить и когда снять….. благодарю
  • Нормальное состояние джампера – разомкнут.И это скорее всего не джампер, а имелось ввиду разъем для возможности подключения кнопки, с помощью которой можно будет сбрасывать мк, если вдруг чего…
Читайте также:  Программирование мк avr в ос ubuntu
Полный вариант обсуждения »

При перепечатке материалов с сайта прямая ссылка на РадиоЛоцман обязательна.

Приглашаем авторов статей и переводов к публикации материалов на страницах сайта.

Источник: https://www.rlocman.ru/shem/schematics.html?di=69926

Как тактировать AVR

Прежде чем разбирать, какие бывают источники тактирования, чем они отличаются, их плюсы и минусы и тд,  нам нужно определиться, что вообще означает словосочетание тактовая частота. Да и вообще, что означает термин «частота»?

Как нам говорит учебник физики, частота — это количество колебаний, произведенных за определенный промежуток времени. Чаще всего этот промежуток времени называют периодом и для удобства измерений его берут равным одной секунде.

Какие можно привести примеры подобных колебаний? Это могут быть часы с кукушкой, маятник, качели

и даже круги на воде от камушка, который мы кинули в воду:

Более подробно про частоту и период можно прочитать в статье Электрические сигналы и их виды.

Так, теперь ближе к делу. Что же такое тактовая частота?

Любая операция МК или его мегакрутого брата-микропроцессора состоит из отдельных элементарных действий, то есть тактов.

Получается, тактовая частота — это сколько тактов в секунду может выполнить наш МК или процессор. Отсюда напрашивается вывод, чем больше тактовая частота, тем больше количество операций  за секунду может сделать МК или микропроцессор.

В МК AVR тактовая частота в основном измеряется в МегаГерцах. Как помните, приставка «Мега» означает один миллион. Если у нашего МК тактовая частота 8 МегаГерц, то это означает, что он может выполнять 8 000 000 тактов в секунду, или, грубо говоря,  около 8 000 000  различных операций в секунду ;-).

Пусть вас не пугает это число, потому что ваши настольные компьютеры, телефоны и планшеты уже работают на частоте в несколько ГигаГерц. Гига — это уже миллиард! Например, если частота процессора вашего компа 2 ГГц, это означает, что он может произвести 2 миллиарда операций в секунду).

Мало? Как оказалось на практике, уже стает мало)).

Вернемся к нашим баранам), а именно, к тактовой частоте. Допустим, мы имеем МК Tiny 2313, сконфигурированный на работу 8 МегаГерц и который  может выполнять при этом 8 миллионов тактов в секунду. Каждая операция процессора состоит из тактов.

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

Граничная частота МК Tiny 2313, как говорит нам Datasheet, довольно высокая и составляет аж целых 20 МГц! Это довольно много по меркам МК

Правда, это только с применением внешнего кварцевого резонатора.

Кварцевый резонатор, называемый часто просто кварц, может выглядеть по-разному:

На схемах он обозначается так:

На кварце часто указана частота, на которой он работает. Ниже на фото мы видим кварц, который работает на частоте 8 МегаГерц (8.000MHz)

В большинстве случаев стараются указывать частоту на корпусе кварца. Если у вас есть какое-либо ненужное цифровое устройство, вы вполне можете выпаять кварц на нужную частоту прямо оттуда. Но в  большинстве случаев в этом нет необходимости, так как  новый кварцевый резонатор  в радиомагазине стоит порядка 20-30 рублей.

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

Нам достаточно уменьшить частоту МК в восемь раз и программа будет для нас выполняться медленнее в восемь раз. Забегая вперед, скажу, что сделать это мы можем очень легко, выставив всего одну галочку при программировании фьюз-битов, в бите CKDIV 8.

Также легко мы можем отменить все наши изменения.

Этот способ мы использовали при прошивке МК в прошлой статье.

Существуют 4 варианта, которые применяются для тактирования МК:

— тактирование от внутреннего RC-генератора

— тактирование от внешнего кварца

— тактирование от внешнего генератора

— тактирование от RC-цепочки

Тактирование от внутреннего RC-генератора.

На тактирование от внутреннего RC генератора МК настроен сразу с завода и не требует внешних деталей.

Это означает, что с помощью МК, питания +5 Вольт и одного светодиода с резистором, мы уже можем заставить наш МК работать и выполнять программу без всяких сложных настроек и дополнительных деталей, задав скорость программно, путем выставления задержки «Delay».

  Имейте ввиду, что встроенный RC-генератор может работать только на четырех частотах: 1, 2, 4 или 8 МегаГерц, поэтому если вам требуется какая-нибудь эксклюзивная частота, типа 1 638 000  Герц, то такой способ не прокатит.

Тактирование от внешнего кварца

Тактирование от внешнего кварца чуточку сложнее.  Как же нам подключить внешний кварц? Для начала нам надо найти цоколевку МК, которую мы собираемся тактировать от внешнего кварца. Пусть в нашем примере это  будет Тiny 2313. Чтобы подключить внешний кварц, достаточно найти ножки микросхемы с названием «XTAL1»  и «XTAL2».

 Потом подсоединить кварц вот по такой схеме:

Потом при прошивке надо правильно выставить фьюзы. О них мы с вами поговорим в следующих статьях.

На реальных платах можно увидеть примерно вот такие схемы  расположения элементов с тактированием от кварца. Здесь изображен  МК AVR  в корпусе TQFP , конденсаторы в SMD исполнении, скорее всего в корпусе 0805, и кварц.

А здесь изображен МК в  корпусе DIP , два керамических конденсатора, так называемые “желтые капельки”, и кварц.

Как видно на схеме подключения кварца к МК, номинал нужных нам конденсаторов должен составлять 15-22 пикофарада. Расшифровать номинал таких конденсаторов, можно с помощью этого рисунка:

Тактирование от внешнего генератора.

К тактированию от внешнего генератора прибегают тогда, когда требуется синхронизовать МК с внешними цепями, либо этот МК тактируют какой-либо своей частотой от генератора частоты. Тактирующий сигнал подают на ножку XTAL1:

Тактирование от RC-цепочки

Тактирование от RC-цепочки осуществляется вот по такой схеме:

Здесь мы берем конденсатор емкостью не менее 22 пФ, а резистор от 10 Ом и до 100 КилоОм. По простой формуле можно с легкостью рассчитать частоту, на которой будет тактироваться наш МК:

где

F — частота, Гц.

R — сопротивление резистора, Ом.

С — емкость, Фарад.

Внутренний RC-генератор и внешняя RC-цепь дают нестабильную частоту, которая «гуляет» и зависит от температуры. Для того чтобы помигать светодиодом и прочих неответственных действий, нам это будет не принципиально. В наших проектах, поначалу не требующих особой точности, мы будем использовать тактирование от внутреннего RC-генератора.

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

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

Действительно, если МК сконфигурирован для работы от внутреннего RC-генератора, вам достаточно подать на него питание +5 Вольт и землю, и микроконтроллер включится и начнет выполнять программу.

Читайте также:  Ограничение тока электромагнита

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

Что же делать в таком случае? В первую очередь не паниковать) и собрать схему с тактированием от кварца, и тогда мы сделаем видимым наш МК, который вдруг может быть переставать у вас определяться оболочкой программатора и работать в схеме, если вы ошибочно переведете МК в режим тактирования от кварца, путем выставления определенных фьюзов. Об этом мы как-нибудь еще поговорим

Источник: https://www.ruselectronic.com/istochniki-taktirovaniya-mikrokontrollerov-avr/

Функциональный генератор на микроконтроллере

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

Принципиальная схема генератора на МК

Параметры устройства

  • Частотный диапазон: 10 Гц – 60 кГц
  • Цифровая регулировка частоты с 3 различными шагами
  • Формы сигнала: Sine, Triangle, Square, Saw, H-pulse, L-pulse, Burst, Sweep, Noise
  • Выходной диапазон: 15 В для синуса и треугольника, 0-5 В для других режимов
  • Имеется выход для синхронизации импульсов

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

Регулятор уровня использован ALPS SRBM1L0800. В схеме следует использовать резисторы с погрешностью ±1% допуска или лучше. Ограничители тока светодиодов – резисторы 4306R серии. Яркость может быть увеличена в зависимости от предпочтений исполнителя. Генератор собран в пластиковом корпусе 178x154x36 мм с алюминиевой передней и задней панелями.

Многие контактные компоненты монтируются на передней и задней панелях (кнопки, ручки, разъемы RCA, светодиодные сборки, разъем питания). Печатные платы крепятся к корпусу болтами с пластиковыми прокладками. Все остальные элементы генератора смонтированы на печатных платах – блок питания отдельно. Левая кнопка по середине для изменения режима, правая – для выбора частоты режима.

Генератор вырабатывает различные сигналы и работает в трех режимах, которые выбираются с помощью клавиши “Select” и указываются тремя верхними (на схеме) светодиодами. Поворотный регулятор изменяет параметры сигнала в соответствии со следующей таблицей:

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

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

Все файлы проекта – прошивки PIC16F870, рисунки плат, находятся в архиве.

Источник: http://el-shema.ru/publ/kontroller/funkcionalnyj_generator_na_mikrokontrollere/9-1-0-381

Регулятор мощности на микроконтроллере ATtiny2313

Рис.1 Принципиальная схема регулятора мощности

На рис.1 приведена схема простого регулятора мощности на микроконтроллере ATtiny2313(V). Регулятор предназначен для работы с активной нагрузкой, подключаемой к сети напряжением 220 В. Напряжение подается на вход X1, нагрузка подсоединяется к выходу X2.

Источником тактовой частоты DD1 выбран внутренний генератор сторожевого таймера, работающий на частоте ≈128 кГц. Благодаря этому энергопотребление устройства очень мало.

Общий ток не превышает 15 мА, что легко позволяет реализовать также бестрансформаторное питание.

Регулирование мощности нагрузки производится изменением коэффициента заполнения импульсов на ШИМ-выводе OC0B DD1. Импульсы поступают на сток транзистор VT1.

Он включен в диагональ моста VD5…VD8 и может работать без радиатора с токоприемниками до 400 Вт.

Из-за слишком высокого уровня помех генерируемых в сеть, ШИМ-модуляция не является самым лучшим способ управления потребителями большей мощности.

Для формирования ШИМ-импульсов на выводе OC0B таймер-счетчик 0 функционирует в режиме Fast PWM (быстрый ШИМ). Частота импульсов FOC0B выбрана постоянной. Она зависит от модуля счета, определяемого содержимым регистра OCR0A:

FOC0B = Fclk/(OCR0A*N),

где Fclk – частота тактового генератора, N-коэффициент деления предделителя частоты таймера-счетчика 2.

Коэффициент заполнения импульсов αOC0B, а значит и мощность, отдаваемая в нагрузку, будет пропорционален содержимому регистра совпадения OCR0B:

αOC0B = OCR0B/OCR0A.

В данном примере в настройках микроконтроллера выбраны N=1 (предделитель отключен), OCR0A=100, т.е. FOC0B = 1280 Гц и αOC0B = OCR0B/100. Изменяя программно значения OCR0B от 0 до 100, получим диапазон регулировки мощности 0…100%.

Значение мощности нагрузки постоянно отображается 3-разрядном индикаторе с общим анодом HG1. Циклическая смена символов, а также опрос кнопок SB1…SB3, происходят во время прерывания по совпадению регистра OCR1AH:OCR1AL и счетного регистра таймера-счетчика 1. Таймер-счетчик 1 при этом работает в режиме CTC (сброс при совпадении). Частота FOCR1A с которой происходят прерывания:

FOCR1A = Fclk/((OCR1AH:OCR1AL+1)*N),

где N-коэффициент деления предделителя частоты таймера-счетчика 1.

В программе FOCR1A = 200 Гц (N=1, OCR1AH:OCR1AL=639). Таким образом, смена каждого из трех символов и опрос кнопок происходят каждые 20 мс (т.е. с частотой 200/4=50 Гц).

Рис.2 Алгоритм работы регулятора мощности

Алгоритм работы регулятора мощности приведен на рис.2. В основном цикле программа реагирует на нажатие кнопок и производит двоично-десятичное преобразование величины мощности нагрузки в 3-разрядное число (0…100) для вывода на индикатор.

Каждое нажатие SB1 заставляет изменить состояние выхода на противоположное: нагрузка подключается с указанной мощностью, либо обесточивается. Признаком активизированного выхода является светящаяся десятичная точка в младшем разряде индикатора.

Кнопки SB2 и SB3, соответственно, уменьшают и увеличивают мощность в нагрузке. При длительном нажатии модификация параметра происходят быстрее (≈10% в секунду). Если ни одна кнопка не нажата, то через 5 с после последнего изменения, значение мощности и состояния выхода (вкл./выкл.) сохраняются в EEPROM-памяти.

Для защиты от зависания включен сторожевой таймер с периодом сброса 125 мс.

Скачать

Источник: http://cxema.my1.ru/publ/istochniki_pitanija/reguljatory_moshhnosti/reguljator_moshhnosti_na_mikrokontrollere_attiny2313/105-1-0-5250

Управляемый генератор прямоугольных колебаний на ATtiny2313

Управляемый генератор прямоугольных колебаний на ATtiny2313

Когда-то в [Л.1] был описан управляемый генератор прямоугольных колебаний TTL-уровня на микроконтроллере ATTiny2313. Он мог производить 31 фиксированную частоту (от 0,1 Hz до 4 MHz), имел очень ординарную схему и управлялся подачей двоичного кода на управляющие входы.

Зависимо от логического уровня на 5 управляющих разрядах, генератор производил одну из предустановленных в его программке частот, номер которой задавался подключением этих управляющих входов к «земле» либо к шине питания.

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

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

Меня же данная схема заинтриговала в качестве простого лабораторного генератора.

Конечно, это не кандидатура суровым устройствам промышленного производства, но где-то и таковой «микроконтроллерный мультивибратор» понадобиться может (в особенности беря во внимание его простоту, точность и дешевизну) — например, он прекрасно подойдет для калибровки частотомеров и в подобных случаях, когда нужно отъюстировать какую-нибудь шкалу; его можно использовать во время тестов с цифровыми схемами либо выходными каскадами импульсных БП; для проверки трансформаторов и катушек зажигания (подключив их к массивному источнику тока через соответственный транзисторный ключ), разных фильтров и т. п. Ну и убеждаться в работоспособности только-только собранного УНЧ безопаснее, подавая на его вход сигнал от такового вот самодельного генератора, а не с возлюбленного MP-3 проигрывателя либо «планшета» — в случае ошибок в монтаже (к примеру, если на вход УНЧ просочится напряжение питания), в худшем случае будет разрушен копеечный выходной транзистор, а не дорогая «игрушка».

Но описанная схема имела ряд недочетов, затрудняющих ее внедрение в качестве лабораторного прибора: во-1-х, это уже упомянутое неудобство управления (кнопки в этом случае оказались бы уместнее); во-2-х — отсутствие какой-нибудь индикации избранного режима; в-3-х — отсутствие посреди выходных частот сетевой (50 Hz), которая бывает нужна при работе с трансформаторами либо сетевыми фильтрами; и в-четвертых — нерегулируемый уровень выходного напряжения (что бывает необходимо при испытаниях тех же УНЧ). Потому, используя приведенную в [Л.1] схему как «техническое задание», я разработал новое устройство и «прошивку» к нему, отвечающие приведенным выше требованиям. Получившаяся схема представлена на Рис.1.

Читайте также:  Бортовой компьютер для эбу bosch 7.9.7+ на msp430

Как и в оригинале, это генератор, вырабатывающий прямоугольные колебания размеренной частоты с периодом 1:1 (т. е., меандр с 50%-заполнением), но количество генерируемых частот увеличено до 42.

Значения большинства вырабатываемых частот отличаются от тех, что были в [Л.1]; вприбавок уменьшено количество частот наименее 1 Hz, необходимость в каких появляется достаточно изредка.

Перечень всех частот, генерируемых прибором, приведен в Табл.1 (в конце статьи).

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

Выходные импульсы формируются за счет деления тактовой частоты МК с помощью 16-разрядного внутреннего таймера-счетчика T1, работающего в режиме «сброс при совпадении», они аппаратно выводятся на контакт 15 микросхемы.

Внутренний 8-разрядный таймер-счетчик T0, также работающий в режиме «сброс при совпадении», сформировывает интервалы переключения разрядов индикатора HG1, реализуя тем динамическую индикацию. Выходами динамической индикации являются полосы PB0 и PB1 МК, они усиленны транзисторными ключами на VT1 и VT2.

Сформированный выходной сигнал с вывода 15 МК подается на усилитель тока, который собран на транзисторе VT3, включенном по схеме эмиттерного повторителя. Применение усилительного каскада позволило развязать выход МК от нагрузки и защитить его от неожиданностей (к примеру, от КЗ либо от подачи напряжения на выход устройства).

Переменным резистором R12 можно регулировать уровень выходного сигнала — от нуля до фактически напряжения питания. Резистор R13 ограничивает ток через транзистор на неопасном уровне (ок. 125 mA), предохраняя последний от выхода из строя при КЗ в нагрузке.

Резистор R14 «подтягивает» выход к потенциалу «земли» — это нужно, сначала, для работы с цифровой логикой: понятно, что отсутствие какого или напряжения на собственном входе (а при лог.0 на выводе 15 МК транзистор VT3 закрыт, и напряжение на его эмиттере отсутствует) большая часть цифровых микросхем интерпретируют как лог.1.

Резистор R14 «подтягивает» выход устройства к «земле» в те моменты, когда VT3 закрыт, что уверенно распознается присоединенными к этому выходу цифровыми микросхемами как лог.0. Устройство имеет возможность отключать выходной сигнал кнопкой S1.

В таком состоянии импульсы на выводе 15 отсутствуют, транзистор VT3 закрыт, на выходе устройства повсевременно находится лог.0. Повторное нажатие S1 опять включает выходной сигнал. Светодиод HL1 является индикатором наличия выходных импульсов.

Устройство питается от стабилизированного источника питания напряжением 3,5-5 V.

Если нужно запитать прибор от источника с напряжением, превосходящим 5 V (к примеру, от «Кроны» либо БП от игровой приставки), то в схему нужно ввести стабилизатор с подходящим выходным напряжением — к примеру, интегральный, на микросхеме типа 7805, либо параметрический, на стабилитроне и транзисторе. Диодик VD1 защищает схему от случайной переполюсовки питания — он может быть хоть каким, на ток более 150 mA (лично я для этого использую «раритетные» Д226 либо Д7 из старенькых припасов — нужно же их куда-то девать:)). Диодик можно и не ставить, если конструкция разъема питания исключает переполюсовку (либо если вы уверенны, что не ошибетесь при подключении питания). При желании можно также добавить и выключатель питания.

Метод работы с устройством последующий: при включении питания импульсы на выводе 15 МК отсутствуют, светодиод HL1 не пылает, на табло HG1 отображается номер избранного режима. Для того чтоб на выходе прибора появились импульсы, нужно надавить на кнопку S1, после этого зажгется HL1, сигнализируя о возникновении импульсов на выводе 15 МК.

Повторное нажатие на S1 опять отключит выходной сигнал (т. о. S1 работает по принципу триггера). Переключать режимы работы устройства можно как при включенном, так и при выключенном кнопкой S1 выходном сигнале. Кнопка S2 наращивает, а S3 уменьшает номер режима.

Режимы переключаются по кругу — после режима №42 (5 MHz) следует режим OF (отсутствие выходного сигнала); очередное нажатие на S2 включит режим №1 (0,5 Hz). Кнопка S3 ведет себя аналогично, только переключает в оборотную сторону (№1-OF-№42).

Значение избранного режима запоминается в энергонезависимой памяти (EEPROM), потому при последующем включении прибора активным будет тот режим, в каком прибор работал перед выключением питания.

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

Прошивка для МК была написана на чистом ассемблере (с помощью безвозмездно распространяемой среды AVR Studio-4 от фирмы-производителя данного чипа), по этому занимает в его флэш-памяти всего 602 б. Установка fuse-ячеек в программке PonyProg приведена на Рис.2.

(Внимание! Если употребляется последовательное программирование, то не трогайте биты SPIEN и RSTDISBL — они должны быть такими же, как и у нового MK — в неприятном случае предстоящее перепрограммирование МК будет труднодоступным! Просто, перед программированием считайте fuse-ячейки «свежайшего» МК (Security and Configuration Bits -> Read), и при записи новых значений оставьте биты SPIEN и RSTDISBL такими, какими они были прочитаны.)

Резисторы, применяемые в устройстве — компактные, мощностью 0,125 Вт (не считая R13 — он на 0,25 Вт); их сопротивление может отличаться от обозначенного в достаточно широких границах.

Все транзисторы устройства работают в главном режиме, потому могут быть хоть какими маломощными, структуры NPN — как русскими, так и забугорными. Принципиально только, чтоб VT3 мог уверенно работать на наибольшей выходной частоте прибора (5 MHz).

В качестве HG1 можно использовать хоть какой сдвоенный семисегментный индикатор для динамической индикации с общими анодами.

Если нет сдвоенного, то HG1 полностью можно собрать и на 2-ух одинарных индикаторах, прямо до «старых» АЛСххх — главное, чтоб общим выводом для всех частей был анод. Светодиод HL1 — хоть какой, который не жаль:). Все кнопки — подпружиненные, без фиксации. Выходной разъем — типа «Азия».

Внешний облик генератора, присоединенного к осциллографу, показан на Рис.3 (слева — блок питания, он на 9В (от приставки типа Dendy), но в его корпус был установлен интегральный стабилизатор типа 7805 — в конечном итоге, на выходе 5В), а так же, на Рис.

4, осциллограмма выходного сигнала, снятая с помощью осциллографа С1-19Б — на Рис.5. «Внутренности» прибора не фотографировал, т. к. собрал его достаточно издавна и посадил крышку на клей, а разбирать (т. е.

разламывать) корпус как-то неохота… В качестве корпуса для данного генератора была применена разветвительная коробка для открытой проводки, но вероятны и другие варианты. Для удобства работы таблицу режимов лучше распечатать и наклеить обоесторонним скотчем к корпусу прибора (у меня она — с оборотной стороны, на фото не видна).

Микроконтроллер нужно установить на панельке, чтоб его можно было просто перенести в программатор для записи «прошивки» (разъемов для внутрисхемного программирования ISP я обычно не делаю — перенос микросхемы в панельку программатора мне не доставляет никаких неудобств).

Тип монтажа может быть хоть какой (прямо до SMD); я использовал традиционный — печатный, но набросок платы не привожу, т. к. она вышла довольно-таки «кривой» (фактически, повторяет принципную схему); неплохой вариант — собрать все на «макетке» с дырочками (размер ~80×80 мм).

Литература:

1. Горчук Н. В. — Генератор с цифровым управлением, ж.»Радиоконструктор», 12-2009, стр.18;

Таблица 1:

Перечень РЕЖИМОВ ГЕНЕРАТОРА

Частота, Гц

Частота, Гц

Частота, Гц

Частота, Гц

1

0,5

12

25

23

2 000

33

100 000

2

0,625

13

50

24

2 500

34

125 000

3

1

14

62,5

25

5 000

35

200 000

4

1,25

15

100

26

6 250

36

250 000

5

2

16

125

27

10 000

37

500 000

6

2,5

17

200

28

12 500

38

625 000

7

5

18

250

29

20 000

39

1 000 000

8

6,25

19

500

30

25 000

40

1 250 000

9

10

20

625

31

50 000

41

2 500 000

10

12,5

21

1 000

32

62 500

42

5 000 000

11

20

22

1 250

OF — выходной сигнал отсутствует

Generator2313.rar (17 Кб)
Генератор Proteus AVR Микроконтроллер

Источник: http://bloggoda.ru/2017/08/24/upravlyaemyj-generator-pryamougolnyx-kolebanij-na-attiny2313/

Ссылка на основную публикацию
Adblock
detector