Реле Tianbo - ресурс 10 млн переключений

Формирование микроконтроллерами интервалов времени без использования таймеров

В настоящее время микроконтроллеры находят применение во всех областях нашей жизни. Встроенные в них периферийные устройства варьируются от линий ввода-вывода общего назначения до USB интерфейсов, что обеспечивает универсальность их применения в широком спектре аппаратуры. Формирование интервалов времени является важной задачей типового микроконтроллерного приложения. Дешевые микроконтроллеры имеют один или два встроенных таймера, а так же часто имеют встроенный сторожевой таймер. Иногда в аппаратуре требуется реализовать больше таймеров без значительного увеличения ее стоимости. Программные таймеры не годятся для критичных по времени приложений, так как контроллер полностью занят.

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

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

Схема на рис.1 использует I/O1, обычную линию ввода-вывода, для управления RC фильтром. Выходной сигнал с RC фильтра поступает на инвертор с триггером Шмидта, выход которого соединен с линией I/O2, имеющей функцию генерации прерывания при изменении состояния. После подачи питания, I/O1 в низком состоянии и, соответственно, выход триггера Шмидта в высоком состоянии. После инициализации, I/O1 переходит в высокое состояние. Конденсатор C1 начинает заряжаться с постоянной времени, равной R1C1. Когда напряжение на нем достигнет верхнего порогового уровня, выходной сигнал триггера Шмидта переключится в низкое состояние и вызовет прерывание от I/O2. В ISR (подпрограмме обработки прерывания) счетчик увеличивается и включает I/O1 в низкое состояние. Теперь, C1 разряжается через R1. Напряжение достигает нижнего порогового уровня, снова вызывая прерывание. Так как циклы повторяются, значение счетчика отражает время =счетчикxR1C1. Инвертирующий триггер Шмидта служит для защиты схемы от дребезга.

https://www.rlocman.ru/i/Image/2009/03/19/13.gif

Listing 1 содержит программу для микроконтроллера ATMEGA64 компании Atmel. В листинге, порт D, вывод 5 играет роль I/O1 а вывод 3, имеющий второе назначение как INT3, играет роль I/O2 схемы, приведенной на рис.1. Тип фронта для формирования прерывания, в данном случае, циклически изменяется: передний-задний-передний. Для многих микроконтроллеров этого не требуется, так как любое изменение логического состояния вызывает прерывание. На рис.2 приведены осциллограммы работы схемы при реализации на ATMEGA64 и 74HC14.

https://www.rlocman.ru/i/Image/2009/03/19/14.gif

Преимуществами данной схемы являются ее низкая цена, независимость формируемого периода времени от тактовой частоты микроконтроллера и возможность получения величины периода от минут до часов изменением номиналов резистора и конденсатора. Например, имея резистор номинала 10 МОм, конденсатор - 10 мкФ и 16-тибитный регистр в качестве счетчика, вы можете получить максимальную величину формируемого периода, равную 75.85 дням.

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя