Фильтр по тематике

Два режима 8-разрядного ШИМ в микроконтроллере ATtiny2313

В статье представлено устройство, реализующее ШИМ на базе микроконтроллера ATtiny2313. В микроконтроллере задействован таймер/счётчик, работающий в режимах Phase Correct PWM (ШИМ, корректный по фазе) и Fast PWM (быстрый ШИМ).

15.05.2017 874 0
Два режима 8-разрядного ШИМ в микроконтроллере ATtiny2313

В предыдущей статье [1] уже рассказывалось о структуре микроконтроллера ATtiny2313, тем не менее, стоит сделать ряд дополнений. В микроконтроллере имеется два таймера счётчика общего назначения: 8-разрядный таймер/счётчик 0 (Т/С0) и 16-разрядный таймер/счётчик 1 (Т/С1). Оба таймера могут работать в режиме ШИМ. Модуль 16-разрядного таймера/счётчика 1 позволяет с высокой точностью формировать временные интервалы, генерацию периодических сигналов, импульсы заданной длительности. Отметим основные особенности Т/С1:

  • 16-разрядная структура;
  • два независимых модуля совпадения;
  • двойная буферизация регистров совпадения;
  • модуль захвата;
  • схема фильтрации помех в режиме захвата;
  • режим сброса при совпадении (автоперезагрузка);
  • помехозащищённый, фазонезависимый широтноимпульсный модулятор (ШИМ);
  • изменяемый период ШИМ;
  • генератор сигналов;
  • счётчик внешних событий;
  • четыре независимых источника прерывания (TOV1, OCF1A, OCF1B, ICF1).

В ATtiny2313 таймер/счётчик 1 был модифицирован и улучшен по сравнению с предыдущими версиями этого счётчика (например, в микросхеме AT90S2313). Новый Т/С1 полностью совместим с более ранними версиями по следующим параметрам:

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

И всё же, несмотря на предпринятые меры по совместимости нового 16-разрядного таймера/счётчика 1 со старым вариантом, в некоторых случаях совместимость будет неполная.

Изменили своё название, но имеют те же функциональные возможности и местоположение в регистрах, следующие служебные биты:

  • PWM10 изменён на WGM10;
  • PWM11 изменён на WGM11;
  • CTC1 изменён на WGM12.

Использованы следующие новые биты в регистрах управления:

  • биты FOC1A и FOC1B введены дополнительно в регистр TCCR1A;
  • бит WGM13 введён дополнительно в регистр TCCR1B.

Рассмотрим подробнее все особенности работы Т/С1 указанного микроконтроллера в режиме ШИМ. Модуль Т/С1 поддерживает следующие режимы работы:

  • режим Normal;
  • режим сброса при совпадении (СТС);
  • режим Phase Correct PWM (ШИМ, корректный по фазе);
  • режим Phase Correct and Frequency Correct PWM (ШИМ, корректный по фазе и частоте);
  • режим Fast PWM (быстрый ШИМ).

Микроконтроллер в представленном устройстве, как уже упоминалось, работает в режиме Phase Correct PWM (ШИМ, корректный по фазе) и Fast PWM (быстрый ШИМ). Общая информация о настройках режимов микроконтроллера была приведена в [1].

Различные режимы работы Т/С1, в зависимости от устанавливаемых битов регистров TCCR1А, TCCR1В, приведены в таблице, где BOTTOM = 0х0000, MAX = 0хFFFF. Значение TOP зависит от выбранного режима и может иметь одно из трёх фиксированных значений: 0х00FF, 0х01FF, 0х03FF, также оно может определяться значением регистра OCR1A или регистра ICR1.

В режиме Phase Correct PWM и Fast PWM таймер/счётчик Т/С1 можно использовать как 8-, 9- или 10-разрядный широтно-импульсный модулятор. В этом случае счётчик и регистр OCR1А (ОСR1В) работают как защищённый от дребезга независимый ШИМ с отцентрированными импульсами.

Принципиальная схема широтно-импульсного модулятора (далее – устройство) на базе микроконтроллера ATtiny2313-PU представлена на рисунке 1.

В устройстве задействован 8-разрядный Phase Correct PWM с выходом ОСА1, а также 8-разрядный Fast PWM с выходом ОСА1. Поэтому в регистр TCCR1A загружается число 0b11000001. В указанных режимах для Т/С1 можно задать тактовый сигнал: CК, СК/8, СК/64, СК/256, СК/1024.

Для согласования двухразрядного числа, индицируемого на индикаторах HG1, HG2 c конечным значением Т/С1, в программе заложена формула: Y = 2,5 × X, где X – число, индицируемое на индикаторах, а Y – число, загружаемое в счётчик Т/С1. На дисплее в этом случае индицируется относительная величина (в %) загрузки числа в счётчик. Реально в счётчик загружается число от 0 до 247.

Индикатор HL1 включается с вывода 11 микроконтроллера DD1. Через порт В микроконтроллер DD1 управляет клавиатурой (кнопки S1…S5) и динамической индикацией. Динамическая индикация собрана на транзисторах VT2…VT5, цифровых семисегментных индикаторах HG1, HG2. Резисторы R4…R11 – токоограничительные для сегментов индикаторов HG1…HG4. Коды для включения данных индикаторов при функционировании динамической индикации поступают на порт В микроконтроллера DD1. Для функционирования клавиатуры задействован также вывод 6 микроконтроллера DD1. Выходной сигнал ШИМ поступает на контакт 1 соедините-ля Х2 с выхода эмиттерного повторителя, собранного на транзисторе VT1.

Элементы интерфейса устройства: клавиатура (кнопки S1…S5), индикатор HL1 и блок индикации (дисплей) из четырёх цифровых семисегментных индикаторов HG1…HG4. Кнопки клавиатуры имеют следующие назначения:

  • S1 (Δ) – увеличение на единицу значения ШИМ (в %) при удержании данной кнопки в нажатом состоянии более двух секунд (значение ШИМ, индицируемое на дисплее, увеличивается на 5 единиц за одну секунду);
  • S2 (∇) – уменьшение на единицу значения ШИМ (в %) при удержании данной кнопки в нажатом состоянии более двух секунд (значение ШИМ, индицируемое на дисплее, уменьшается на 5 единиц за одну секунду);
  • S3 (C) – выключения ШИМ (при выключении ШИМ выключается индикатор HL1, на выводе 15 микроконтроллера DD1 логическая 1);
  • S4 (Реж. ШИМ) – выбор режима работы Phase Correct PWM или Fast PWM;
  • S5 (Выбор Ч) – выбор частоты тактового генератора (CК, СК/8, СК/64, СК/256, СК/1024).

Разряды индикации интерфейса имеют следующие назначения:

  • 1 разряд (индикатор НG1) отображает «десятки» относительного значения ШИМ;
  • 2 разряд (индикатор НG2) отображает «единицы» относительного значения ШИМ;
  • 3 разряд (индикатор НG3) отображает «1» в режиме Phase Correct PWM и «2» в режиме Fast PWM;
  • 4 разряд (индикатор НG4) отображает «1» при заданной тактовой частоте CК, «2» – при СК/8, «3» – при СК/64, «4» – при СК/256, «5» – при СК/1024.

Фотография устройства на макетной плате приведена на рисунке 2.

Системный сброс микроконтроллера DD1 осуществляется сигналом низкого уровня, через RC-цепь (резистор R3, конденсатор С3). При инициализации индикатор HL1 отключён. На индикаторах HG1…HG4 индицируются нули. Для перевода устройства в рабочий режим необходимо кнопками S1 (Δ) и S2 (∇) установить необходимое значение ШИМ, при этом включится индикатор HL1. Для отключения ШИМ нажать на кнопку S3 (С), на выводе 15 микроконтроллера при этом установится логическая 1.

Программа состоит из трёх основных частей: процедура инициализации, основная программа, работающая в замкнутом цикле, и подпрограмма обработки прерывания от таймера T/C0 (соответственно, метки INIT, SE1 и S0).

В основной программе происходит инкремент и декремент заданного значения ШИМ.

В подпрограмме обработки прерывания от таймера/счётчика T/C0 происходит опрос клавиатуры и перекодировка двоичного числа значений времени в код для отображения информации на семисегментных индикаторах и отображения разрядов в динамической индикации. В памяти данных микроконтроллера с адреса $60 по $63 организован буфер отображения для динамической индикации.

Каждый байт из функциональной группы в цикле, в подпрограмме обработки прерывания таймера T/C0 (метка S0), после перекодировки выводится в порт РВ микроконтроллера DD1. В процессе обработки подпрограммы прерывания происходит опрос клавиатуры. Выводимый при этом в порт PВ микроконтроллера байт для клавиатуры представляет собой код «бегущий ноль». После записи данного байта в порт PВ, микроконтроллер DD1 анализирует сигнал на входе 6 порта D. В рамках указанной подпрограммы, при любой нажатой кнопке, на входе 6 микроконтроллера присутствует логический 0. Таким образом, каждая кнопка клавиатуры привязана к своему разряду в выводимом байте данных.

При нажатии на кнопку S1 текущее значение ШИМ на дисплее увеличивается на единицу и устанавливается флаг, разрешающий увеличивать значение ШИМ, индицируемое на дисплее. Одновременно запускается счётчик, организованный на регистре R2, формирующий интервал в две секунды. Если кнопка удерживается более двух секунд, значение ШИМ, индицируемое на дисплее, увеличивается на 5 единиц за одну секунду. Интервал времени, в течение которого происходит увеличение, организован в регистре R1. При отпускании кнопки S1 все указанные счётчики обнуляются.

Аналогичным образом организована работа кнопки S2 для уменьшения значения ШИМ, индицируемого на дисплее. При нажатии на кнопку S2 текущее значение на дисплее уменьшается на единицу. Если кнопка удерживается более двух секунд, значение, индицируемое на дисплее, уменьшается на 5 единиц за одну секунду. Счётчики приведённого алгоритма для кнопки S2 организованы, соответственно, в регистрах R3 и R4.

В регистре R22 осуществляется выбор разрядов в динамической индикации. При инициализации в регистр R22 заносится число 0b00000001. При каждом обращении к подпрограмме обработки прерывания единица сдвигается влево, подготавливая включение следующего разряда. В подпрограмме также осуществляется проверка: не вышла ли единица за пределы разрядной сетки, т.е. после числа 0b00010000 в R22 загружается снова 0b00000001. Все флаги, которые используются при работе программы, выполнены на регистрах R24 и R25. Назначение каждого флага приведено в тексте программы, которую можно найти в дополнительных материалах к статье на сайте журнала (www.soel.ru).

Разработанная программа на ассемблере занимает порядка 0,7 Кбайт памяти программ микроконтроллера. Потребление тока по каналу напряжения +5 В составляет не более 100 мА. В схеме, представленной на рисун-ке 1, применены конденсаторы С1…С5 типа К10-17а. Конденсатор С6 – типа К50-35. Применены резисторы типа С2-33Н-0.125.

Литература

  1. Шишкин Сергей. ШИМ на микроконтроллере ATTINY2313-PU. Современная электроника. 2017. №3.

Скачать

20175060.zip / ZIP, 4 КБ

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

15.05.2017 874 0
Комментарии
Рекомендуем
Знаменитый разработчик радиотелескопов, волноводов, РЛС и радаров А.А. Пистолькорс

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

Среди исследователей и разработчиков, стоявших у истоков разных областей современной электроники, есть много имён, известных лишь в научном сообществе. Тем не менее без них развитие отечественной радиоэлектроники было бы другим. В статье рассказывается о научном пути и результатах исследований доктора наук Александра Александровича Пистолькорса, как фундаментальных, так и прикладных, нашедших широкое применение в развивающихся областях науки и техники в ХХ веке и определивших на десятилетия вперёд прогресс в развитии радиотехники, электроники и связи. Метод наведённых ЭДС, принцип двойственности, теория связанных линий для передачи информации, оптические волноводы и фазированные антенные решетки, голографические линзы, фотонные кристаллы – их создание и совершенствование напрямую связано с Александром Пистолькорсом.
31.03.2026 СЭ №3/2026 134 0
Космическая версия зарождения жизни Часть 2. Неопознанные атмосферные образования Роуна Джозефа с точки зрения современной науки

Космическая версия зарождения жизни Часть 2. Неопознанные атмосферные образования Роуна Джозефа с точки зрения современной науки

В первой части статьи были рассмотрены видеозаписи результатов американо-итальянской системы привязанных спутников (TSS-1R), полученные ровно тридцать лет назад во время миссии космического шаттла «Колумбия» (22 февраля 1996 года). В опубликованной не так давно статье известного астробиолога Роуна Джозефа [1] предлагалось интерпретировать некоторые атмосферные плазменные образования, зафиксированные на этих видеозаписях, как самоорганизующиеся субстанции, которые миллиарды лет назад могли инициировать зарождение биологической жизни на Земле. Во второй части статьи показано, насколько доказательны с точки зрения современной науки новые аргументы в поддержку внеземного зарождения жизни, предложенные Роуном Джозефом.
30.03.2026 СЭ №3/2026 143 0
Линейные интегральные стабилизаторы напряжения с низким падением напряжения на регулирующем элементе

Линейные интегральные стабилизаторы напряжения с низким падением напряжения на регулирующем элементе

В статье представлены интегральные линейные стабилизаторы с малым падением напряжения на регулирующем элементе (LDO-стабилизаторы, Low Dropout Output), выпускаемые предприятием XMTI (Xi’an Microelectronics Technology Institute), для применения в качестве вторичного источника электропитания в аппаратуре с батарейным питанием, дополнительных стабилизаторов напряжения в импульсных источниках питания. Линейные регуляторы подразделяются на радиационно-стойкие модели для применения в бортовой аппаратуре космических аппаратов и модели уровня качества Military для аппаратуры специального применения. Выпускаются микросхемы для формирования положительного и отрицательного напряжения, а также с расщеплённым выходом для питания аналоговых устройств. Выходное напряжение может быть фиксированным и регулируемым.
26.03.2026 СЭ №3/2026 223 0

ООО «ИнСАТ»  ИНН 7734682230  erid = 2SDnjeHksEz
ООО «ИнСАТ»  ИНН 7734682230  erid = 2SDnjddDXPx
  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться