48363

[i] Режимы запуска МК К1986ВК214 и К1986ВК234

Дата последнего изменения: 15.01.2024 15:45:54
На рисунке 1 приведена диаграмма запуска МК К1986ВК214/234.

Рисунок 1 - Диаграмма запуска МК К1986ВК214/234

В МК К1986ВК214/234 таблица векторов прерываний не может быть перенесена и всегда располагается с адреса 0x0000_0000. В связи с этим в МК с адреса 0x0000_0000 предусмотрен доступ к двум областям памяти, предназначенных для хранения программы. В ходе работы МК в адресное пространство, начиная с адреса 0x0000_0000, может отображаться одна из следующих областей памяти:
  • BOOT ROM (0x0000_0000 - 0x0000_1FFF) – область информационной Flash-памяти с загрузочной программой объёмом 8 Кбайт;
  • EEPROM (0x0000_0000 - 0x0001_FFFF) – область основной Flash-памяти программ объёмом 128 Кбайт (для К1986ВК234).
  • EEPROM (0x0000_0000 - 0x0000_FFFF) – область основной Flash-памяти программ объёмом 64 Кбайт (для К1986ВК214).
Область памяти, которая отображается с адреса 0х0000_0000, определяется значением бита FPOR регистра BKP_REG_0E, таблица 1.

Таблица 1 – Отображение различных областей памяти в адресное пространство, начиная с адреса 0х0000_0000, в зависимости от FPOR 

Бит FPOR регистра BKP_REG_0E

Область памяти, отображаемая с адреса 0x0000_0000

0

BOOT ROM (0x0000_0000 - 0x0000_1FFF)

1

EEPROM (0x0000_0000 - 0x0001_FFFF) - для К1986ВК234

EEPROM (0x0000_0000 - 0x0000_FFFF) - для К1986ВК214


Включение питания

После включения питания бит FPOR сброшен и МК начинает выполнять загрузочную программу из области памяти BOOT ROM. Так как BOOT ROM – это информационная область Flash-памяти, то стандартная загрузочная программа может быть изменена на пользовательскую.

В случае изменения загрузочной программы, стандартная загрузочная программа может быть восстановлена с помощью стандартных Flash-загрузчиков (FLM файла для среды Keil и Flashloader для среды IAR). Для восстановления стандартного программного загрузчика МК должен запуститься без установки бита FPOR, после чего необходимо в среде разработки Keil или IAR выполнить операцию стирания Flash-памяти. Если при выполнении операции стирания Flash-памяти загрузчик обнаруживает, что бит FPOR не установлен, то помимо стирания основной Flash-памяти, также стирается информационная Flash-память, после чего записывается стандартная загрузочная программа.

На стадии производства МК (К1986ВК214/234 – дата производства с 2020 года) программируются стандартной загрузочной программой. После запуска загрузочная программа по состоянию выводов MODE[1:0] (PC0, PB0) определяет, в каком из режимов будет функционировать МК. Перед опросом состояния этих выводов, для них включается внутренняя подтяжка к шине «Общий» (встроенные резисторы подтяжки к шине «Общий» имеют сопротивление ~50 кОм). В дальнейшем выводы MODE[1:0] (PC0, PB0) могут использоваться в пользовательской программе.

Сброс МК

После программного сброса (регистр SCB->AIRCR), аппаратного сброса (вывод RESET) или сброса от сторожевого таймера МК начинает выполнение из области памяти, определяемой значением бита FPOR.

Значение FPOR определяется выбранным режимом работы после включения питания. Если перед сбросом МК работал в режиме MODE[1:0] = 00, «Микроконтроллер в режиме отладки», то бит FPOR был установлен загрузочной программой, поэтому после сброса будет выполнен запуск из области памяти EEPROM. Бит FPOR сбрасывается только по сбросу при включении основного и батарейного питания, поэтому область памяти BOOT ROM в данном случае становится не доступна до повторного включения питания.

Если перед сбросом МК работал в режиме «UART загрузчик», MODE[1:0] = 01, 10, то бит FPOR не был установлен загрузочной программой, поэтому после сброса будет выполнен запуск загрузочной программы из области BOOT ROM.

Режимы работы

Таблица 2 – Режимы первоначального запуска МК

MODE[1:0]

Режим

Стартовый адрес/ таблица векторов прерываний

Описание

00

Микроконтроллер в режиме отладки

0х00000000

Процессор начинает выполнять программу из внутренней FLASH памяти программ.

01

UART загрузчик

Определяется пользователем / 0x00000000

Микроконтроллер через интерфейс UART1 на выводах PB[1], PB[0] получает код программы в ОЗУ для исполнения

10

UART загрузчик

Определяется пользователем / 0x00000000

Микроконтроллер через интерфейс UART1 на выводах PB[1], PB[0] получает код программы в ОЗУ для исполнения

11

Запрещенная ситуация

Режим для проверки микросхемы после производства. Микросхема перестает работать как микроконтроллер


Режим «Микроконтроллер в режиме отладки», MODE[1:0] = 00

После определения данного режима работы загрузочная программа выполняет следующие действия:

- устанавливает бит FPOR регистра BKP_REG_0E, после чего происходит сброс МК;

- после сброса начинается выполнение программы из основной Flash-памяти МК.

Режим «UART загрузчик», MODE[1:0] = 01, 10

После определения данного режима работы загрузочная программа выполняет следующие действия:

- в контроллере портов ввода-вывода настраивает выводы для работы UART1: TX – PB[0] и RX – PB[1];

- настраивает контроллер UART1 со следующими параметрами:
  • начальная скорость – 9600 Бод;
  • количество бит данных – 8;
  • четность – нет;
  • количество Stop-бит – 1;
  • загрузчик не использует FIFO UART1;
  • загрузчик всегда выступает в качестве Slave, а внешнее устройство, подающее команды – в качестве Master;
  • данные передаются младшим битом вперед;
- ожидает принятия по интерфейсу UART команды.
Подробная информация о работе UART загрузчика и доступных командах приводится в спецификации, пункт «UART загрузчик». В статье «Тестируем Bootloader в режиме UART» приводится подробное описание тестирования МК в режиме «UART загрузчик».

Сохранить статью в PDF

Документация

Теги

Была ли статья полезной?