Підсистема початкового скидання в мікроконтролерах

МК складається з статичних тригерів, регістрів і лічильників. Після подачі живлення їх треба примусово встановити в певне логічне стан, інакше через загального хаосу виконання програми стане непередбачуваним. Імпульс початкового скидання подається на висновки RST (ReSeT) або RES (інверсний RESet). Відрізняються вони між собою, відповідно, позитивної (Рис. 2.16) і негативною (Рис. 2.17) формою сигналу.

Підсистема початкового скидання в мікроконтролерах

Підсистема початкового скидання в мікроконтролерах

Підсистема початкового скидання в мікроконтролерах

Резистори Rrst і напівпровідникові. Їх роль грають не повністю закриті польові транзистори, що знаходяться всередині МК. Призначення резисторів - забезпечити прив'язку входу тригера Шмітта DDI до загального проводу або до шини харчування. Тим самим ланцюг скидання не буде «висіти в повітрі» і не буде ловити зовнішні перешкоди. Слід враховувати, що напівпровідникові резистори, на відміну від звичайних, мають нелінійну залежність опору від напруги живлення (Рис. 2.18). Крім того, з технологічних причин важко забезпечити їх однакові опору від партії до партії і від мікросхеми до мікросхеми. Розкид неконтрольований і становить десятки відсотків.

Діод VD1 захищає вхід скидання від статичної електрики і випадкових викидів негативного напруги. Струм через діод в імпульсі не повинен перевищувати 10. 20 мА.

МК, совместімиес MCS-51, традиційно використовують схему «позитивного» скидання. З цим пов'язана повчальна історія. Старожили пам'ятають, що перші мікросхеми i8051 (без букви «С» в назві) на початку 1980-х років робилися за технологією я-МОП. Як наслідок, контролер споживав значний струм в статиці. Для зниження енергопотре

Блена розробники застосували наступний трюк - вхід скидання RST поєднали з входом подачі резервного живлення від зовнішньої батареї. Якщо основне живлення пропадало, то активізувалося резервне. При цьому на вході RST постійно був ВИСОКИЙ рівень, який припиняв роботу ядра ЦПУ, але зберігав інформацію в ОЗУ. Якби скидання проводився імпульсом негативною форми, то розробники не змогли б скористатися таким технічним рішенням.

Підсистема початкового скидання в мікроконтролерах

Надалі стався перехід на більш прогресивну КМОП-технологію, при якій логічні вентилі практично не споживають струм в статиці. Тепер сигнал скидання може мати будь-яку полярність з «прив'язкою» вхідного резистора до загального проводу або до харчування.

Цікаве спостереження. Фірми, які розробляють нові сімейства МК, чомусь дружно використовують схему з «негативним» скиданням. Її і пропонується ввести до складу ідеалізованого МК.

Організація початкового скидання

Початкове обнулення сучасних МК проводиться в наступних випадках (Рис. 2.19):

  • Power-On - внутрішній автоматичне скидання, який активізується відразу після подачі живлення;
  • Brown-Out - скидання від внутрішнього детектора «просідань» напруги живлення; _
  • External Reset - зовнішній скидання низькими рівнем на виведенні RES;
  • Watch-Dog - скидання від внутрішнього «сторожового» таймера при випадковій зупинці роботи ЦПУ або зависанні програми;
  • JTAG - програмний скидання через оцінний інтерфейс JTAG.

Всі джерела скидання рівноцінні, що підкреслює логічний елемент «АБО», що знаходиться всередині МК. Установка режимів скидання проводиться конфігураційними бітами, а також програмно-доступними регістрами з області SFR. Налаштовуватися можуть: поріг спрацьовування детектора «просідань» напруги, тривалість часу затримки таймера очікування Watch-Dog, моменти включення / відключення генератора G1.

Вузол апаратного скидання Power-On присутній у всіх без винятку МК. Якщо напруга живлення стабільно в часі і подається різким стрибком, то зовнішні елементи для скидання теоретично взагалі не потрібні. Обнулення проводиться автоматично вузлом Power-On по досягненню певного порогу.

При високій швидкості наростання харчування (орієнтовно за час не більше 1. 5 мс) вхід скидання RES підключають до ланцюга Vcc трьома способами: безпосередньо, через зовнішній резистор опором 1___10 кОм або залишають вільним, покладаючись на внутрішній резистор МК.

Підсистема початкового скидання в мікроконтролерах

Перший варіант повністю усуває шлях перешкод, але виключає «кнопковий» скидання і можливість повторного програмування. Другий варіант дозволяє підключити кнопку скидання, що зручно при лабораторному макетування в домашніх умовах. Третій варіант дозволяється за відсутності перешкод і наявності всередині МК підтягує резистора R ^ опором до 100 кОм.

Якщо напруга живлення наростає більш тривалий час (для різних сімейств МК по-різному), то рекомендується установка зовнішніх RC-ланцюжків (Рис. 2.20, а, б) зі стандартними значеннями:

  • Л, = 10 кОм, С, = 0.1 мкФ при часу наростання 5. 20 мс. Наприклад, подача харчування Vcc перемикачем, який розташовується між інтегральним стабілізатором напруги +5 В і МК;
  • Л, = 10 кОм, С, = 10 мкФ при часу наростання 20. 100 мс. Це актуально, наприклад, при включенні пристрою в мережу 220 В загальним тумблером. Якщо ємність конденсатора С1 більше 1 мкФ, то для прискорення його розряду ставлять діод VD1 типу 1N4148 (КД522Б), а для захисту входу скидання від перенапруги ще й резистор R2. Ці перестраховки продовжують МК життя.

Вузол детектора Brown-Out з'явився в архітектурі МК порівняно недавно. Зокрема, в сімействі Atmel AT90S його ще # не було, що призводило до непередбачуваних збоїв і мимовільного стирання осередків пам'яті EEPROM. Фізика процесів проста. При критично низькій напрузі харчування вузол програмування пам'яті ще працездатний, а ЦПУ вже не управляємо. Отже, в осередку пам'яті може заноситися довільна інформація. У наявності конструктивний дефект, тому сімейство AT90S було повністю знято з виробництва і замінено родинами ATmega, ATtiny, в яких детектор Brown-Out передбачений на постійній основі.

Детекторна ланцюг вимірює напруга живлення Vcc і виробляє сигнал скидання ЦПУ при досягненні програмно заданого порогу в районі 2. 4 В. Є гістерезис 0.1. 0.15 В, що перешкоджає повторному рестарту при невеликих коливаннях напруги. В результаті підвищується стійкість при харчуванні від полуразряженного батарей / акумуляторів, а також при потужних електромагнітних наводках.

Детектор отримав назву «Brown-Out», оскільки відстежує короткочасні «коричневі» (англ. «Brown») осідання напруги. Чому «коричневі»? Тому що цей колір світліший, ніж чорний, яким на сленгу позначають повне зникнення харчування «Black-Out».

Детектор Brown-Out можна включити і вимкнути установкою певних конфігураційних бітів. Через них же задаються пороги спрацьовування напруги 2. 4 В, які, до речі, мають пристойний технологічний розкид.

Тут знаходиться «підводний камінь», про який часто «спотикаються» розробники, якщо встановлюють поріг спрацьовування детектора Brown-Out рівним або вище, ніж робоче харчування. Типовий приклад: Vcc = 3.6 В, а конфігураційні біти налаштовані на поріг 4 В. В такому випадку МК приблизно через секунду після подачі живлення скинеться внутрішнім сигналом Brown-Out, потім знову почне програму і знову скинеться, не встигнувши толком нічого зробити.

Напрошується висновок - первинну налагодження програмного забезпечення слід проводити при вимкненому вузлі Brown-Out, але потім обов'язково його включити, перевірити і постійно експлуатувати на об'єкті.

Вузол Watch-Dog, він же «сторожовий таймер», «прикордонний пес», «собака в караулі». Якщо сторожовий таймер включений, то він постійно збільшує значення свого лічильника. Через проміжок часу, рівний «тайм-ауту» Watch-Dog, виконується примусовий скидання МК. Однак, користувач має можливість вставити в програму спеціальну команду WDR (Watch-Dog Reset), щоб обнулити лічильник і тим самим відстрочити момент скидання. Якщо відстрочку виробляти вчасно, то пристрій буде нормально функціонувати, а розробник буде впевнений утому, що його дітище «не зациклений». Час «тайм-ауту» задається регістрами з області SFR і може становити від однієї мілісекунди до декількох секунд.

Якщо програма чомусь «зависла» на одному місці або стався збій, то чергова команда WDR в ЦПУ не надходить, «сплячий дог» прокидається і примусово скидає МК. Програма стартує заново, як після натискання кнопки скидання. Тим самим запобігають аварійні зупинки програми, що корисно при автономній роботі пристрою в необслуговуваних людиною пунктах.

Тактується Watch-Dog від окремого внутрішнього /? С-генератора G1 частотою 0.1. 1 МГц, що дозволяє йому виконувати свою функцію навіть при повному зникненні зовнішнього тактового сигналу. Частота генерації залежить від температури і напруги живлення. Загальний дозвіл / заборона на роботу «сторожового таймера» встановлюється конфігураційними битами.

Вузол Watch-Dog є корисним, але не обов'язковим для домашнього застосування. Щоб не заплутатися, на перших порах його краще взагалі не використовувати. Благо, при початкових заводських налаштуваннях конфігураційних бітів, Watch-Dog за замовчуванням відключений і ніяк не впливає на роботу МК.

Вузол зовнішнього скидання активізується, якщо на вході RES протягом декількох мікросекунд утримується НИЗЬКИЙ рівень. На більш короткі імпульси вхід скидання не реагує. Це зроблено спеціально, щоб підвищити стійкість перед перешкодами. Джерелами зовнішнього скидання можуть служити: механічна кнопка, керуючий логічний рівень, мікросхема монітора харчування, а також будь-який вузол автоматики, що має вихід «сухий контакт» або «відкритий колектор».

Підсистема початкового скидання в мікроконтролерах

Вузол скидання через JTAG характерний тільки для найновіших IV! К, в яких присутній однойменний інтерфейс. Програмісту надається можливість при налагодженні послати команду з умовною назвою «MK_RESET», примусово скидаючи IV! До в початкове положення. Така технологія корисна для досвідчених розробників, оскільки вимагає спеціальних знань і навичок.

Вибір конкретної схеми скидання залежить від умов експлуатації. Наприклад, якщо сумарна ємність конденсаторів фільтра між ланцюгами Vcc і GND становить понад 1000 мкФ, то, швидше за все, знадобиться зовнішня RC-ланцюжок (Рис. 2.20, а, б). Якщо поруч з висновком RES на друкованій платі проходить силова комутаційна ланцюг, то для з'ясування причин збоїв корисно тимчасово з'єднати лінію скидання МК з харчуванням. Якщо прилад розташовується поблизу від джерела потужних індустріальних перешкод, то на вході скидання рекомендується поставити додаткову мікросхему супервізора харчування, яка продублює вузол-Brown-Out. Логіка міркувань проста. Копійчаний супервизор «кашу маслом не зіпсує», зате він зможе врятувати в непередбаченій ситуації.

Джерело: Рюмик С.М. 1000 і одна мікроконтролерна схема. (Випуск 1)