Информационный портал технической поддержки Центра проектирования интегральных микросхем |
На рисунке 1 приведена диаграмма запуска МК К1986ВЕ92QI и МК К1901ВЦ1QI
Рисунок 1 - Диаграмма запуска МК К1986ВЕ92QI и МК К1901ВЦ1QI
Примечание - Для МК К1901ВЦ1QI режим UART-загрузчика доступен только при MODE[2:0] = 110.
Загрузочная программа расположена в области BOOT ROM (масочное ПЗУ), начиная с адреса 0x0000_0000, и не может быть изменена.
После включения питания МК начинает выполнять загрузочную программу, которая по состоянию выводов MODE[2:0] (PF[6:4]) определяет, в каком из режимов будет функционировать МК. Перед опросом состояния этих выводов, для них включается внутренняя подтяжка к шине «Общий» (встроенные резисторы подтяжки к шине «Общий» имеют сопротивление ~50 кОм). Состояние этих выводов опрашивается загрузочной программой только один раз после подачи питания. В дальнейшем выводы MODE[2:0] (PF[6:4]) могут использоваться в пользовательской программе.
Считанное с выводов MODE[2:0] значение режима работы МК записывается в регистр MDR_BKP->REG_0E, поле MODE[2:0]. В данном регистре также устанавливается бит FPOR, указывающий на то, что произошёл запуск по включению питания. Бит FPOR сбрасывается только по сбросу при включении основного и батарейного питания. Далее на основании значения MODE[2:0] осуществляется переход в выбранный режим работы.
После аппаратного сброса (вывод RESET) или сброса от сторожевого таймера МК начинает выполнять загрузочную программу. Так как бит FPOR регистра MDR_BKP->REG_0E уже был установлен ранее при запуске по включению питания, то загрузочная программа не опрашивает выводы MODE[2:0] (PF[6:4]), а считывает значение поля MODE[2:0] из регистра MDR_BKP->REG_0E. На основании значения MODE[2:0] осуществляется переход в выбранный режим работы.
MODE[2:0] |
Режим |
Стартовый адрес/таблица векторов прерываний |
Описание |
000 |
Микроконтроллер в режиме отладки |
0х0800_0000 |
Процессор начинает выполняет программу из внутренней FLASH памяти программ. При этом установлен отладочный интерфейс JTAG_B |
001 |
Микроконтроллер в режиме отладки |
0х0800_0000 |
Процессор начинает выполняет программу из внутренней FLASH памяти программ. При этом разрешается работа отладочного интерфейса JTAG_А |
010-011 |
Микропроцессор в режиме отладки |
0х1000_0000 |
Процессор конфигурирует внешнюю системную шину в режим работы ROM с Wait_States = 0xF и начинает выполняет программу из внешней памяти, установленной на внешней системной шине. При этом разрешается работа отладочного интерфейса JTAG_B |
100 |
Зарезервировано |
- |
- |
101* |
UART загрузчик без отладки |
Определяется пользователем |
Микроконтроллер через интерфейс UART2 на выводах PD[1:0] получает код программы в ОЗУ для исполнения. При этом отладочный интерфейс JTAG/SWD заблокирован |
110* |
UART загрузчик без отладки |
Определяется пользователем |
Микроконтроллер через интерфейс UART2 на выводах PF[1:0] получает код программы в ОЗУ для исполнения. При этом отладочный интерфейс JTAG/SWD заблокирован |
110** |
UART загрузчик без отладки |
Определяется пользователем |
Микроконтроллер через интерфейс UART3 на выводах PF[1:0] получает код программы в ОЗУ для исполнения. При этом отладочный интерфейс JTAG/SWD заблокирован |
111* |
Тестовый режим работы |
- |
Микросхема переводится в тестовый режим работы, к выводам JTAG_A подключается тестовый TAP-контроллер. |
После определения данного режима работы загрузочная программа выполняет следующие действия:
- при MODE[2:0] = 000 разрешает работу интерфейса JTAG_B в регистре MDR_BKP->REG_0E;
- при MODE[2:0] = 001 разрешает работу интерфейса JTAG_A в регистре MDR_BKP->REG_0E;
- устанавливает адрес таблицы векторов в значение 0x0800_0000 (VTOR);
- устанавливает адрес указателя стека в значение, считанное из ячейки с адресом 0x0800_0000 (SP);
- осуществляет безусловный переход по адресу, считанному из ячейки 0x0800_0004 (вектор RESET_HANDLER).
После определения данного режима работы загрузочная программа выполняет следующие действия:
- при MODE[2:0] = 010 разрешает работу интерфейса JTAG_B в регистре MDR_BKP->REG_0E;
- настраивает в контроллере портов ввода-вывода набор выводов МК для работы с внешней памятью:
- устанавливает адрес таблицы векторов в значение 0x1000_0000 (VTOR);
- устанавливает адрес указателя стека в значение, считанное из ячейки с адресом 0x1000_0000 (SP);
- осуществляет безусловный переход по адресу, считанному из ячейки 0x1000_0004 (вектор RESET_HANDLER).
После определения данного режима работы загрузочная программа выполняет следующие действия:
- запрещает работу интерфейса JTAG_A и JTAG_B в регистре MDR_BKP->REG_0E;
- при MODE[2:0] = 101 в контроллере портов ввода-вывода настраивает выводы для работы UART2: TX – PD[1] и RX – PD[0];
- при MODE[2:0] = 110 в контроллере портов ввода-вывода настраивает выводы для работы UART2: TX – PF[1] и RX – PF[0];
- настраивает контроллер UART2 со следующими параметрами:
После определения данного режима работы загрузочная программа выполняет следующие действия:
- запрещает работу интерфейса JTAG_A и JTAG_B в регистре MDR_BKP->REG_0E;
- в контроллере портов ввода-вывода настраивает выводы для работы UART3: TX – PF[1] и RX – PF[0];
- настраивает контроллер UART3 со следующими параметрами:
После определения данного режима работы микросхема переводится в тестовый режим работы, при этом к выводам JTAG_A подключается тестовый TAP-контроллер. Микросхема может быть переведена в тестовый режим также при установке в единицу бит JTAG A и JTAG B в регистре REG_0E блока батарейного домена или при установке высокого уровня на выводе JTAG_EN (только для микросхем К1986ВЕ94GI).
Сайт: | https://support.milandr.ru |
E-mail: | support@milandr.ru |
Телефон: | +7 495 221-13-55 |