ЭФО предлагает со своего склада новую серию преобразователей интерфейсов USB UART компании FTDI FT232RNL-REEL

Таймеры LMC555 задерживают сигнал аппаратного сброса для сбора отладочных данных

Texas Instruments LMC555

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

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

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

Первый таймер LMC555 запускается сигналом переполнения
Рисунок 1. Первый таймер LMC555 запускается сигналом переполнения сторожевого таймера
микроконтроллера и обеспечивает задержку сброса. Второй LMC555 позволяет
микропрограмме запретить готовящийся аппаратный сброс.

Таймеры LMC555 сконфигурированы как ждущие мультивибраторы, на выходах которых сохраняется низкий уровень напряжения до тех пор, пока на вход запуска не придет отрицательный импульс. После запуска выходное напряжение остается высоким в течение времени TH, определяемого номиналами одного резистора и одного конденсатора в соответствии с формулой

TH = 1.1 × RC.

Для правильной работы таймера высокий уровень сигнала на входе запуска должен восстановиться до истечения времени TH. Через время TH выходной сигнал становится низким и остается таким до тех пор, пока на входе запуска не появится другой отрицательный импульс. Таймер также имеет вход сброса с низким активным уровнем, удерживающим на выходе низкий уровень независимо от уровня сигнала на входе запуска. Кроме того, он сбрасывает внутренний триггер таймера для нового временнóго цикла.

Первый LMC555 запускается сигналом переполнения сторожевого таймера микроконтроллера и обеспечивает задержку, которая позволяет микропрограмме записать различные параметры системы до того, как произойдет сброс. Второй LMC555 позволяет микропрограмме запретить готовящийся аппаратный сброс. Для этого она должна удерживать сигнал /WDOVF_CLEAR на низком уровне в течение времени, по крайней мере, не меньшего, чем длительность импульса первой микросхемы таймера.

Эта временная диаграмма для двух отдельных событий переполнения сторожевого таймера показывает, что в первом случае импульс сброса задерживается и не выполняет сброса оборудования, а во втором после заданной задержки возникает импульс сброса.
Рисунок 2. Эта временная диаграмма для двух отдельных событий переполнения сторожевого
таймера показывает, что в первом случае импульс сброса задерживается и не выполняет
сброса оборудования, а во втором после заданной задержки возникает импульс сброса.

На Рисунке 2 показаны временные диаграммы для двух отдельных событий переполнения сторожевого таймера. В первом случае импульс сброса задерживается и не выполняет сброса оборудования, а второе событие демонстрирует импульс сброса, возникающий после определенной временнóй задержки. Приведенные диаграммы соответствуют параметрам, рассчитанным для номиналов компонентов, показанных на Рисунке 1, и длительности импульса переполнения сторожевого таймера микроконтроллера Atmel. Для первого таймера

TH = (1.1)R2C2 = (1.1)(30.1 кОм)(1 мкФ) = 33 мс.

Аналогично для второго таймера

TH = (1.1)R4C5 = (1.1)(1 кОм)(0.01 мкФ) = 11 мкс.

Последовательный конденсатор C3, подтягивающий резистор R3 и диод D1 гарантируют, что уровень сигнала TRG_2 на входе запуска второго таймера будет оставаться высоким до тех пор, пока на выходе таймера OUT_1 не произойдет переход от высокого уровня к низкому. Подтягивающий резистор перезаряжает последовательный конденсатор до напряжения питания после перехода уровня сигнала OUT_1 с высокого на низкий. Постоянная времени, определяемая подтягивающим резистором и последовательным конденсатором, была выбрана меньшей, чем длительность выходного импульса второго таймера. Диод ограничивает напряжение на входе запуска второго таймера до уровня напряжения питания.

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

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

Материалы по теме

  1. Datasheet Texas Instruments LMC555

Electronic Design

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: LMC555 Timers Delay Hardware Reset To Collect Debug Data

61 предложений от 32 поставщиков
Таймер, CMOS, 3МГц, совместим с TTL, 1.5В до 15В питание, DSBGA-8
LMC555M/TR
от 10 ₽
Триема
Россия
LM555 SO8 = NE555DT,ST,TI = LMC555CM
8.00 ₽
Romstore
Россия, Беларусь
LMC555CMX
от 88 ₽
LMC555CMX-NOPB
Texas Instruments
по запросу
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя