МК складається з статичних тригерів, регістрів і лічильників. Після подачі живлення їх треба примусово встановити в певне логічне стан, інакше через загального хаосу виконання програми стане непередбачуваним. Імпульс початкового скидання подається на висновки 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)