Управление питанием (Power Management)
При включении питания и сбросе микроконтроллер начинает
работать в основном активном режиме (Run mode). При этом
все периферийные устройства включены и тактируются, а
микроконтроллер потребляет максимальную мощность. Но
даже в этом режиме, пока ядро микроконтроллера (MCU core)
или процессор выполняет коды программы, приложение может
сократить потребление энергии, понижая тактовую частоту,
распределяя тактирующие импульсы только на те
периферийные устройства, которые необходимо
использовать, отключая неиспользуемые аналоговые
компоненты, такие как, например, АЦП. Когда же
процессору нет необходимости выполнять коды, весь
микроконтроллер в целом может находиться в одном из трех
следующих состояний:
Обычно один из трех режимов выбирают как компромисс
между наименьшим энергопотреблением, скорейшим
пробуждением и доступом к ресурсам.
Контроллер прерываний Interrupt controller (ITC)
Управляет аппаратными векторными прерываниями. Под
каждый порт ввода/вывода выделяется отдельный вектор,
для каждого вывода предусматривается отдельный бит-флаг.
Каждая подсистема архитектуры способна вырабатывать
прерывания при изменении состояния. Для программных
прерываний используется команда TRAP. Контроллер
прерываний может обрабатывать прерывания как с жестким,
так и с циклическим приоритетом и обеспечивает обработку
до четырех уровней вложенности. Максимальное количество
векторных прерываний – 32, плюс три немаскируемых
прерывания (RESET, TRAP и TLI). Маскирование
производится битами I1 и I0 в регистре CPU Condition
Code register (CCR). Приоритеты могут быть заданы в
регистре (ITC-SPRx). Вектор прерывания от RESET
обеспечивает переход на адрес 0x00 8000. В тех
микроконтроллерах семейства, где имеется начальный
загрузчик bootrom, соответствующая программа
записывается в этих адресах компанией STMicroelectronics
при изготовлении. Фиксированные адреса под вектора
прерывания располагаются в области памяти от 0x00 8004
до 0x00 807C.
Система пробуждения Auto-wakeup (AWU)
Оригинальная подсистема, периодически вызывающая
пробуждение из режима Halt на некоторое время для
осуществления функций контроля и возвращающая затем MCU
в состояние Halt. Этот временной интервал образуется
путем деления частоты низкочастотного тактирующего
сигнала внутреннего (LSI)RC-генератора или более
высокочастотного сигнала HSE-генератора.
LSI clock measurement
С помощью этой подсистемы удобно контролировать,
например, точность (LSI)RC-генератора, сравнивая
показания таймера TIM3 на входе capture 1.
Бипер Beeper (BEEP)
Эта подсистема генерирует звуковой сигнал частотой 1, 2
или 4 кГц когда сигнал LS clock имеет частоту 128 кГц.
Одновременно можно использовать систему для калибровки
частоты (LSI)RC-генератора по более точной частоте
HSE-генератора.
Независимый сторожевой таймер Independent watchdog
(IWDG)
Независимый сторожевой таймер можно использовать для
обнаружения как программных, так и аппаратных сбоев. Он
тактируется частотой 128 кГц от встроенного
RC-генератора, работающего независимо от источников
тактирования ядра микроконтроллера.
Оконный сторожевой таймер (WWDG)
Оконный сторожевой таймер может использоваться для
обнаружения ошибок, трудных для тестирования на этапе
разработке программного обеспечения, например,
возникающих вследствие редкого сочетания условий и
внешних факторов. Цепь сторожевого таймера вырабатывает
сигнал сброса MCU по завершении запрограммированного
интервала, в течение которого ни одна из программ не
очистила бит T6. Величина «оконного интервала» может
быть обновлена до истечения обратного отсчета. То есть
ваша программа должна или очистить предназначенный для
этого бит, или увеличить значение в счетчике. Если этого
не произойдет, счетчик обнулится, и при установленном
бите T6 произойдет сброс микроконтроллера.
Кратко о таймерах
В микроконтроллерах STM8S имеются таймеры трех типов:
advanced control (TIM1), общецелевые (TIM2/TIM3/TIM5), и
базовые (TIM4/TIM6). У них различные особенности, но все
они базируются на общей архитектуре. Это упрощает дизайн
различных приложений при использовании разных таймеров
(с идентичной картой регистров, общими базовыми
особенностями).
Универсальный асинхронный приемопередатчик (UART)
Полнодуплексные каналы UART в микроконтроллерах STM8S
(UART1, UART2 или UART3) служат для обмена данными по
индустриальному стандарту в формате NRZ асинхронных
последовательных данных (UART). Универсальные
асинхронные приемопередатчики STM8S имеют широкий
диапазон скорости обмена данными и поэтому могут
использоваться для мультипроцессорной коммуникации. Они
поддерживают также протокол LIN(Local Interconnection
Network) версий 1.3, 2.0, 2.1 и J2602 в режиме мастера.
Контроллер (beCAN)
Поддерживает CAN-протокол версии 2.0 A, B Active.
Основные параметры:
-
итрейт (скорость передачи в битах) до 1 Мбит/с;
-
поддерживает опцию Time Triggered Communication;
-
возможность выбора источника тактирования
(fMASTER или fCANEXT).
Передача
-
три почтовых ящика на передачу (transmit
mailboxes);
-
конфигурируемый приоритет передачи;
-
метка времени в SOF-передаче.
Прием
-
один трехуровневый буфер FIFO на прием;
-
шесть масштабируемых банков фильтров;
-
листинг идентификаторов;
-
конфигурируемое переполнение FIFO;
-
метка времени в SOF-приеме.
Функция связи с фиксированной длительностью
-
запрещение режима автоматической ретрансмиссии;
-
16-битный таймер;
-
программируемое разрешение таймера;
-
метка времени посылается в двух последних байтах
данных.
Управление
Аналогово-цифровой преобразователь Analog digital
converter (ADC)
В микроконтроллерах семейства STM8S имеется два
идентичных 10-битных АЦП со следующими характеристиками:
-
режимы однократного и непрерывного
преобразования;
-
делитель частоты преобразования от 2 до 18;
-
возможность внешнего запуска преобразования от
(ADC_ETR) или таймерного триггера (TRGO);
- функция
сглаживания входных данных за счет усреднения
последовательности измерений;
-
прерывание по окончании преобразования;
-
режим непрерывного преобразования с
буферизацией;
-
допустимый входной диапазон сигнала
преобразования: VSSA ? VIN ? VDDA;
-
режим сканирования для одиночного и непрерывного
преобразования;
-
аналоговый сторожевой таймер на нижний и верхний
порог;
-
прерывание по включению аналогового сторожевого
таймера.
Рис. 8. Аналогово-цифровой преобразователь
Для микроконтроллеров семейства
STM8S, как отмечалось
выше, существует и бесплатная среда разработки от STMicroelectronics. Ее можно скачать с сайта
STMicroelectronics. После инсталляции, которая не должна
вызвать никаких затруднений, можно за несколько минут
начать работать с программой в режиме симуляции
выбранного вами микроконтроллера. Просто запустите
программу stvdebug.exe, расположенную в директории Путь
установки\STMicroelectronics\st_toolset\stvd\.