48070

[i] Режим StandAlone в МК К1986ВЕ1QI (К1986ВЕ1FI, К1986ВЕ1GI)

Дата последнего изменения: 30.11.2023 09:02:34
Материал из настоящей статьи, относящийся к микросхеме К1986ВЕ1QI, распространяется в том числе на микроконтроллеры К1986ВЕ1FI и К1986ВЕ1GI

В микроконтроллере К1986ВЕ1QI реализован режим StandAlone, который предназначен для доступа к контроллерам интерфейса Ethernet и интерфейса по ГОСТ Р52070-2003 (МКИО) по внешний асинхронному интерфейсу системной шины. При этом ядро и все остальные блоки находятся в состоянии сброса за исключением генератора тактовой частоты, который обеспечивает тактирование контроллеров.

В режиме StandAlone микроконтроллер представляет собой интерфейсную микросхему, к которой через внешнюю системную шину можно обратиться к регистрам и памяти контроллеров Ethernet и МКИО. Если в обычном режиме микроконтроллер сам обращается к контроллерам и реализует тот или иной функционал, то в случае StandAlone вместо него это делает внешнее устройство - например, микроконтроллер, у которого таких контроллеров нет.

Работа c контроллерам производится аналогично тому, как это реализуется самим микроконтроллером в обычном режиме. Через регистры производится настройка, а по прерываниям, которые также выведены на внешние выводы, необходимо обрабатывать те или иные события. В случае работы с интерфейсом Ethernet на выводе ETH_INT запрос (активный уровень - высокий) будет формироваться до тех пор, пока не будет прочитан регистр (если бит RCLR_EN регистра G_CFGl установлен в 1) или пока не будет сброса записью 1 в соответствующий разряд регистра IFR. В случае работы с блоком МКИО время удержания сигналов INT1/2, при возникновении прерывания, составляет 2 такта процессора. Например, в режиме Stand Alone 2, при источнике тактирования на генераторе HSE = 8 МГц, длительность импульса INT составит 25 нс. При этом, флаги в регистре STATUS, позволяющие определить событие прерывания, удерживаются не менее 1 и не более 4 мкс.  

Подробное описание выводов МК, задействованных в режиме StandAlone, приведено в спецификации, таблица – "Описание выводов микроконтроллера в режиме StandAlone".

При работе с выводами прерываний от контроллеров МКИО есть особенность. В МК К1986ВЕ1QI выводы прерываний INT1 и INT2 активны, только когда на одном из выводов nCEx установлено состояние низкого логического уровня. Состояние на выводе ITCMLAEN не влияет на активность выводов INT1 и INT2. Таким образом при обращении к одному из контроллеров МКИО будут активны сразу два выводы прерываний INT1 и INT2. 

Внешний асинхронный интерфейс системной шины

В режиме StandAlone МК К1986ВЕ1QI имеет внешний асинхронный интерфейс системной шины с раздельными параллельными шинами адреса и данных, а также управляющие сигналы выбора контроллера, записи, чтения и выбора байт данных. Для внешнего управляющего устройства МК в режиме StandAlone является ведомым.

В режиме StandAlone используется 13-разрядная шина адреса и 16- или 19-разрядная шина данных, в зависимости от того, к какому контроллеру осуществляется доступ:

  • шина адреса: 13-разрядная;

  • шина данных:

  • 16-разрядная для Ethernet;
    19-разрядная для МКИО.

В зависимости от обращения к контроллеру Ethernet или МКИО применяется различная адресация. При доступе к контроллеру МКИО адресация является словной, т.е. на 1 значение адреса приходится 32-разрядное слово. При доступе к контроллеру Ethernet адресация является байтовой, т.е. на 1 значение адреса приходится 1 байт. Поэтому, при обращении к контроллеру МКИО смещение, указанное в спецификации для требуемого регистра, необходимо сдвинуть на 2 разряда вправо перед передачей на шину адреса. Например, для обращения к регистру CONTROL контроллера МКИО, смещение которого составляет 0x1000, необходимо на шине адреса установить значение 0x400. При доступе к контроллеру Ethernet смещения регистров, указанные в спецификации, совпадают со значением адреса, которое необходимо задать на шине адреса.

Временные диаграммы цикла записи и чтения при тактовой частоте работы МК 50 МГц приведены в спецификации, раздел «Режим StandAlone». При этом необходимо учитывать, что сигналы A[12:0], D[18:0], BE[1:0], nCEx должны быть установлены внешним устройством до начала цикла обмена и не должны изменять своего состояния в течение всего цикла обмена. Допускается удерживать сигнал nCEx в состоянии логического нуля на протяжении нескольких последовательных циклов обмена.

При увеличении частоты работы МК пропускная способность внешней системной шины увеличивается. Однако необходимо учитывать, что частота работы внешней системной шины ограничена частотой 50 МГц для К1986ВЕ1QI. Частота работы внешней шины определяется минимальной длительностью сигнала шины между переключениями, в цикле записи это сигнал nWR в активной фазе. Максимальная частота работы внешней шины 50 МГц для К1986ВЕ1QI является теоретическим пределом, поэтому не рекомендуется работать с МК по внешней шине на максимальной частоте.

Выбор периферийного контроллера, к которому будет выполнено обращение, задается сигналом ITCMLAEN: при ITCMLAEN = 0 доступ осуществляется к контроллерам МКИО, при ITCMLAEN = 1 доступ осуществляется к контроллерам Ethernet. С помощью сигналов nCEx осуществляется выбор конкретного контроллера, как показано в таблице 1.

Таблица 1 - Выбор периферийного контроллера в зависимости от сигналов ITCMLAEN и nCEx

Периферийный контроллер   Доступ
ITCMLAEN nCE1 
nCE2 
                    Ethernet
       
Ethernet 1, область регистров
        1
    0     1   
Ethernet 1, область данных     1     0   
                    МКИО MIL-STD-1553B1         0     0     1
MIL-STD-1553B2     1     0   


Вход в режим StandAlone

Для входа в режим StandAlone предусмотрено два способа:

  1. вход из загрузочной программы при задании соответствующих логических уровней на выводах MODE[2:0];
  2. вход из пользовательской программы. 

Аппаратный вход в StandAlone

Вход в режим StandAlone из начального загрузчика в зависимости от значений на выводах MODE[2:0] может быть осуществлён в трёх режимах, как показано в таблице 2.

Таблица 2 - Вход в режим StandAlone при старте МК

MODE[2:0] Режим ITCMLAEN Активный блок
      001 StandAlone1        1       Ethernet
      010 StandAlone2        0         МКИО
      011 StandAlone3        0         МКИО
       1       Ethernet

Код, который исполняется в начальном загрузчике при выборе одного из режимов MODE[2:0], приведён в спецификации, раздел "Режим StandAlone". 

Подробное описание режимов загрузки МК К1986ВЕ1QI приведено в статье "Запуск МК К1986ВЕ1QI".

Пользовательский вход в StandAlone

Вход в режим StandAlone может быть выполнен также из пользовательской программы путём установки бита Stand_Alone в регистре BKP_REG_0E. Этот подход более гибкий и позволяет перед входом в режим StandAlone осуществить дополнительные настройки тактирования. Согласно спецификации, можно выполнить подходящую настройку осциллятора HSE для режима работы либо с внешним резонатором, либо с внешним генератором (режим BYPASS), а также установить требуемые настройки частоты в блоке PLL. После перехода в режим StandAlone ядро и все периферийные блоки, кроме контроллера тактовых частот, контроллеров Ethernet и контроллеров МКИО, переходят в состояние сброса. Для выбора активного контроллера (Ethernet или МКИО) управляющее устройство должно установить на выводе ITCMLAEN соответствующий логический уровень (таблица 1).

При работе в режиме StandAlone есть особенность: при входе в StandAlone в режиме отладки ядро не выключается и остается активным, так как наличие подключенного отладчика не дает ядру перейти в режим Sleep.

При переходе в режим StandAlone из пользовательской программы происходит сброс всей периферии, за исключением блока тактовых частот. Это означает, что необходима инициализация блока (Ethernet или МКИО), с которым предполагается работа в StandAlone, управляющим устройством. Как следствие, это урезает функционал блока МКИО, поскольку при работе с ним шина данных становится 19-ти разрядной и ограничивает доступ к старшим битам регистра CONTROL [23:19].  

Выход из режима StandAlone

Выход из режима StandAlone осуществляется только при сбросе по включению основного и батарейного питания.

Это связано с тем, что МК работает в режиме StandAlone при установленном бите Stand_Alone в регистре BKP_REG_0E батарейного домена. Чтобы выйти из режима StandAlone необходимо сбросить бит Stand_Alone. Так как в режиме StandAlone ядро находится в состоянии сброса, то сброс бита Stand_Alone может быть выполнен только аппаратно при сбросе по включению основного и батарейного питания. При сбросе по выводу Reset регистры батарейного домена не сбрасываются.

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

Теги

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