Микроконтроллеры зависают: причины. Применение сторожевого таймера. Интерфейсы. Коммуникации. Ввод.

Причины зависания микро-контроллеров. Устройства ввода. Интерфейсы (10+)

Микроконтроллеры - самоучитель - Зависание. Интерфейсы. Ввод

Оглавление :: ПоискТехника безопасности :: Помощь

Зависание. Сторожевой таймер

Это, я вам скажу, вещь! Автоматика на то и автоматика, что работает 99.9% времени без присутствия человека. А вдруг датчик не ответил? А вдруг ошибка в алгоритме вызвала сбой и зависание? Контроллер может зависнуть также из-за помех по цепям питания или радиопомех.

Чтобы вам спалось спокойнее, в МК живет маленький человечек, который может нажать в экстренном случае на кнопку 'RESET'. Называется он – сторожевой таймер. Это абсолютно неподконтрольная микроконтроллеру штуковина, которая обязательно перезагрузит МК, если в течение определенного времени он не сбросил специальный флаг. Таким образом, вы можете быть уверены, что без вашего участия в критической ситуации, человечек прибежит к кнопке 'RESET' и нажмет ее! Управлять сторожевым таймером вы можете прямо в программе, разрешая его в одних сегментах программы и запрещая в других.

Вашему вниманию подборка материалов:

Практика проектирования электронных схем Искусство разработки устройств. Элементная база. Типовые схемы. Примеры готовых устройств. Подробные описания. Онлайн расчет. Возможность задать вопрос авторам

Коммуникации. Интерфейсы

Для нашего счастья существует целый воз модулей Ethernet, GSM, COM, USB, Bluetooth, радио-, которые можно успешно спаривать с МК и организовывать каналы данных, в т.ч. по радиосвязи. Это может быть использовано для удаленного управления (существуют разработки web-сервера на базе МК), удаленного мониторинга, распределенной системы «умный дом» и так далее и тому подобное. Все ограничено лишь полетом вашей фантазии и квалификацией.

Устройства ввода

Тут выбор опять же ограничен вашей квалификацией и фантазией. Можете использовать любую клавиатуру или просто кнопку, потенциометр или промышленный переключатель. Даже тачпэд. Вопрос только лишь в наличии драйвера к выбранному вам устройству. Если для кнопки драйвер не нужен вообще, то для тачпэда вам необходима будет специальная библиотека функций для взаимодействия с этим устройством. В самом плохом случае – дейташит перед вами и сами, сами, сами. Пишем код.

Простой пример схемы

Большинство из вышеназванных расширений и возможностей мы постараемся более детально рассмотреть в следующих статьях. А пока попробуем сделать малюсенький примерчик. Он исключительно логический. Токоограничивающих резисторов тут нет, светодиоды применены просто как класс устройств. Цепи питания в ISIS прорисовывать не обязательно. Достаточно указать, что выводы подключены либо к шине +5В, либо VCC/VDD. Кварцевый резонатор в данном случае нам тоже не нужен. МК будет тактироваться, используя внутренний генератор тактовой частоты. Он не очень стабильный, но для наших потребностей это совершенно не важно.

В свойствах микроконтроллера в ISIS необходимо выбрать режим использования внутреннего RC-генератора. При программировании реального МК это делается с помощью фьюзов (fuses). О них немного позже.

Использовать я буду Proteus 7 Pro и CodeVisionAVR 2.05 Pro.

Что мы с вами сделаем? Попробуем поработать над тем, чтобы принять входной сигнал, например, с кнопки. И сгенерировать выходной сигнал. Например, зажечь светодиод. Это универсальная штука. Потому как вместо кнопки может быть все, что душе угодно. А вместо светодиода – любое исполнительное устройство.

Возьмем для этой небольшой задачки 'малюсенький' микроконтроллер ATMega8. Нам больше и не нужно. Порты обозначаются следующим образом: Порт А будет PA, порт B – PB. Обычно каждый порт состоит из 8 выходов (1 байт) и каждый выход (PIN) будет нумероваться как PB0-PB7.

Через слеш (/) указываются дополнительные функции порта. Например, PD0/RXD. Это значит, что этот порт может выполнять работу регистра общего назначения, а также служить для передачи данных USART. Или PC6/RESET. Тут вам должно быть понятно без объяснений. Конечно же, этот порт будет использоваться как шина для подачи сигнала 'RESET', приводящего к перезагрузке МК.

Сделаем контур сброса, индикатор питания и нашу кнопку мы подключим на вывод PB0. Почему? Да просто так. Совершенно произвольно. Безусловно, в более крупных проектах следует очень вдумчиво относиться к выбору портов МК. От этого зависит и удобство кодирования, и доступные функции на порту. О дополнительных функциях портов мы поговорим в следующей части.

(читать дальше...) :: (в начало статьи)

Оглавление :: ПоискТехника безопасности :: Помощь

 

К сожалению в статьях периодически встречаются ошибки, они исправляются, статьи дополняются, развиваются, готовятся новые. Подпишитесь, на новости, чтобы быть в курсе.

Если что-то непонятно, обязательно спросите!
Задать вопрос. Обсуждение статьи.

Еще статьи

Полевой транзистор. Определение. Обозначение. Типы, виды, категории, к...
Полевой транзистор. Определение. Обозначение. Классификация ...

Тиристорный выключатель, переключатель, коммутатор. Тиристор (тринисто...
Тиристор в переключательных схемах переменного тока. Схема твердотельного реле. ...

Трансформатор розжига, поджига. Запальный блок. Искра, искровой разряд...
Схема самодельного трансформатора розжига, источника искр для горелки и не тольк...

Транзисторы КТ503, 2Т503. Справочник, справочные данные, параметры, цо...
Характеристики и применение биполярных транзисторов КТ503 (КТ503А, КТ503Б, КТ503...

Повышающий импульсный источник питания. Онлайн расчет. Форма. Подавлен...
Как рассчитать повышающий импульсный преобразователь напряжения. Как подавить пу...

Пушпульный импульсный преобразователь напряжения, источник питания. Ко...
Как сконструировать пуш-пульный импульсный преобразователь. В каких ситуациях пр...

Инвертирующий импульсный преобразователь напряжения. Силовой ключ - би...
Как сконструировать инвертирующий импульсный источник питания. Как выбрать мощны...

Термодатчик, датчик температуры, LM135, LM235, LM335, LM335Z, LM335AZ,...
Термодатчики LM135 - LM335. Данные, применение, цоколевка....