Инструменты пользователя

Инструменты сайта


doc:doclist:standalone

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
doc:doclist:standalone [2019/05/28 15:59]
katya
doc:doclist:standalone [2019/05/28 16:11] (текущий)
katya
Строка 1: Строка 1:
 ======Режим StandAlone в 1986ВЕ1Т====== ======Режим StandAlone в 1986ВЕ1Т======
-В микроконтроллере 1986ВЕ1Т реализован так называемый режим StandAlone. Это режим в котором остаются активны только периферийные блоки Ethernet и ГОСТ Р 52070-2003 (он же MIL-STD-1553,​ он же МКИО). Все остальные блоки, включая ядро, отключается и не тактируются. ​+В микроконтроллере 1986ВЕ1Т реализован так называемый режим StandAlone. Это режимв котором остаются активны только периферийные блоки Ethernet и ГОСТ Р 52070-2003 (он же MIL-STD-1553,​ он же МКИО). Все остальные блоки, включая ядро, отключаются и не тактируются. ​
  
-По сути микроконтроллер становится интерфейсной микросхемой в которой через внешнюю шину можно обратиться к регистрам и памяти блоков ​Eternet ​и МКИО. Образно говоря,​ если в обычном режиме микроконтроллер сам обращается к блокам и реализует тот или иной функционал,​ то в случае StandAlone вместо него это делает какое-то внешнее устройство - например,​ микроконтроллер у которого таких блоков нет.+По сутимикроконтроллер становится интерфейсной микросхемойв которой через внешнюю шину можно обратиться к регистрам и памяти блоков ​Ethernet ​и МКИО. Образно говоря,​ если в обычном режиме микроконтроллер сам обращается к блокам и реализует тот или иной функционал,​ то в случае StandAlone вместо него это делает какое-то внешнее устройство - например,​ микроконтроллеру которого таких блоков нет.
  
-Доступ к блокам осуществляется по внешней шине, которая в режиме StandAlone работает в ведомом режиме. Т.еадрес и управляющие сигналы nCE, nWR и т.д. читаются,​ а не выставляются на шину как в обычном режиме работы МК. Адресная шина в режиме StandAlone 13-битная,​ поэтому на шину адреса необходимо подавать смещения регистров блокаотносительно базового адреса. Например,​ для обращения к регистру CONTORL блока МКИО на шину необходимо подать адрес 0х1000 //(см. спецификация - Описание регистров блока ГОСТ Р 52070-2003)//​.+Доступ к блокам осуществляется по внешней шине, которая в режиме StandAlone работает в ведомом режиме. То есть ​адрес и управляющие сигналы nCE, nWR и т.д. читаются,​ а не выставляются на шину как в обычном режиме работы МК. Адресная шина в режиме StandAlone 13-битная,​ поэтому на шину адреса необходимо подавать смещения регистров блока относительно базового адреса. Например,​ для обращения к регистру CONTORL блока МКИО на шину необходимо подать адрес 0х1000 //(см. спецификация - Описание регистров блока ГОСТ Р 52070-2003)//​.
  
 Выбор же самого периферийного блока (базовый адрес),​ к которому идет обращение,​ задается внешними сигналами:​ Выбор же самого периферийного блока (базовый адрес),​ к которому идет обращение,​ задается внешними сигналами:​
Строка 13: Строка 13:
 |     ::: ​   | MIL-STD-1553B2 ​ |     ​0 ​ |    1    |    0   | |     ::: ​   | MIL-STD-1553B2 ​ |     ​0 ​ |    1    |    0   |
  
-Прерывания от обоих блоков МКИО выводятся наружу когда выбран активным хотя бы один блок МКИО, т.е. один из nCEх = 0. Сигналы прерываний не выводятся наружу,​ только если nCE1=nCE2=1.+Прерывания от обоих блоков МКИО выводятся наружукогда выбран активным хотя бы один блок МКИО, т.е. один из nCEх = 0. Сигналы прерываний не выводятся наружу,​ только если nCE1=nCE2=1.
  
-В спецификации представлена таблица выводов,​ активных в режиме StandAlone - //"​Таблица 3 – Описание выводов микроконтроллера в режиме StandAlone в металлокерамическом корпусе"//​. Она представлена в разделе //"3 - Описание Выводов"//,​ а не в разделе про StandAlone. Размещение не вполне очевидное и по этой причине информация о выводах часто остается не замеченной при знакомстве с режимом StandAlone. В этой таблице указано какими выводами выбирается активный блок, на какие пины выдается сигнал прерывания от блоков и т.д.+В спецификации представлена таблица выводов,​ активных в режиме StandAlone - //"​Таблица 3 – Описание выводов микроконтроллера в режиме StandAlone в металлокерамическом корпусе"//​. Она представлена в разделе //"3 - Описание Выводов"//,​ а не в разделе про StandAlone. Размещение не вполне очевидное и по этой причине информация о выводах часто остается не замеченной при знакомстве с режимом StandAlone. В этой таблице указанокакими выводами выбирается активный блок, на какие пины выдается сигнал прерывания от блоков и т.д.
  
-Необходимо обратить внимание,​ что выводы указанные в таблице 3 настраиваются аппаратно при входе в StandAlone. Т.е. никакой программной настройки и назначения выводов GPIO не требуется.+Необходимо обратить внимание,​ что выводыуказанные в таблице 3настраиваются аппаратно при входе в StandAlone. Т.е. никакой программной настройки и назначения выводов GPIO не требуется.
  
 Как видно из той-же таблицы 3, разрядность шины данных определяется тем, какой блок активен. Как видно из той-же таблицы 3, разрядность шины данных определяется тем, какой блок активен.
Строка 27: Строка 27:
 В ранних ревизиях 1986ВЕ1Т блок МКИО имел в регистре CONTROL только 19 бит, поэтому шина данных была "​растянута"​ до 19 бит. Биты в остальных регистрах блока МКИО не выходят за пределы 16-ти разрядов. Это же относится и к блоку Ethernet, в нем все регистры вообще 16-ти разрядные. С 6-й ревизии МК появились дополнительные биты в регистре CONTROL, доступ к которым по 19-ти битной шине невозможен. Данные биты необходимо настраивать до входа в режим StandAlone. Stick биты так-же не доступны в StandAlone режиме. В ранних ревизиях 1986ВЕ1Т блок МКИО имел в регистре CONTROL только 19 бит, поэтому шина данных была "​растянута"​ до 19 бит. Биты в остальных регистрах блока МКИО не выходят за пределы 16-ти разрядов. Это же относится и к блоку Ethernet, в нем все регистры вообще 16-ти разрядные. С 6-й ревизии МК появились дополнительные биты в регистре CONTROL, доступ к которым по 19-ти битной шине невозможен. Данные биты необходимо настраивать до входа в режим StandAlone. Stick биты так-же не доступны в StandAlone режиме.
  
-В целом, работа с блоками производится аналогично тому, как это производится самим контроллером в обычном режиме. Через регистры производится настройка,​ а по прерываниям,​ которые так-же выведены на внешние выводы,​ необходимо обрабатывать те или иные события блоков. Но необходимо учитывать,​ что шина доступа имеет ограничение по скорости. Скорость работы внешней шины ограничена 50МГц.+В целом, работа с блоками производится аналогично тому, как это производится самим контроллером в обычном режиме. Через регистры производится настройка,​ а по прерываниям,​ которые также выведены на внешние выводы,​ необходимо обрабатывать те или иные события блоков. Но необходимо учитывать,​ что шина доступа имеет ограничение по скорости. Скорость работы внешней шины ограничена 50МГц.
  
 В частности,​ это относится к блоку МКИО в котором до 6-й ревизии не было "​защелкивания"​ флагов случившихся событий. ​ Т.е. можно пропустить выставление и сброс какого-либо флага, пока происходит вход и обработка прерывания. С 6-й версии микроконтроллера,​ такие "​статические"​ флаги зафиксированных событий были добавлены. В частности,​ это относится к блоку МКИО в котором до 6-й ревизии не было "​защелкивания"​ флагов случившихся событий. ​ Т.е. можно пропустить выставление и сброс какого-либо флага, пока происходит вход и обработка прерывания. С 6-й версии микроконтроллера,​ такие "​статические"​ флаги зафиксированных событий были добавлены.
Строка 85: Строка 85:
 </​code>​ </​code>​
  
-Как видно, код аналогичен тому, что приведен в спецификации. Конечно за исключением того, что использованы неправильные названия бит. Т.е. BKP_REG_0E_JTAGA - это бит 6 регистра BKP_REG_0E и в спецификации он назван ​ Stand_Alone. //(Судя по всему, за основу был взят код от серии МК 1986ВЕ9х,​ где действительно два интерфейса Jtag и 6-й бит это и есть разрешение интерфейса JtagA).//+Как видно, код аналогичен тому, что приведен в спецификации. Конечноза исключением того, что использованы неправильные названия битов. Т.е. BKP_REG_0E_JTAGA - это бит 6 регистра BKP_REG_0Eи в спецификации он назван ​ Stand_Alone. //(Судя по всему, за основу был взят код от серии МК 1986ВЕ9х,​ где действительно два интерфейса Jtagи 6-й бит это и есть разрешение интерфейса JtagA).//
  
-Кроме этого по комментариям в коде видно, что после выставления 6-го бита в регистре BKP_REG_0E микроконтроллер переходит в режим StandAlone. При этом ядро выключается и команды более не исполняются. По этой причине в комментариях указано - //"​Instruction is unreachable"//​.+Кроме этогопо комментариям в коде видно, что после выставления 6-го бита в регистре BKP_REG_0E микроконтроллер переходит в режим StandAlone. При этом ядро выключается и команды более не исполняются. По этой причине в комментариях указано - //"​Instruction is unreachable"//​.
  
 ====Пользовательский вход в StandAlone==== ====Пользовательский вход в StandAlone====
-Кроме входа из загрузчика,​ ничто не мешает осуществить тот же вход в StandAlone из пользовательской программы в любое удобное для пользователя время. Этот подход более гибкий и позволяет перед входом в StandAlone осуществить дополнительные настройки доступной периферии. Выбор правда здесь не велик. Как следует из спецификации,​ можно использовать блок PLL и вместо резонатора на HSE осуществить настройку на использование внешнего генератора ​т.евключить режим byPass.+Кроме входа из загрузчика,​ ничто не мешает осуществить тот же вход в StandAlone из пользовательской программы в любое удобное для пользователя время. Этот подход более гибкий и позволяет перед входом в StandAlone осуществить дополнительные настройки доступной периферии. Выборправдаздесь не велик. Как следует из спецификации,​ можно использовать блок PLL и вместо резонатора на HSE осуществить настройку на использование внешнего генераторато есть ​включить режим byPass.
  
-Спецификация умалчивает,​ можно ли заранее настроить сами блоки Ethеrnet и МКИО. И не произойдет ли сброс регистров при входе в StandAlone. Это наверное было бы удобно,​ ведь внешнему устройству не пришлось бы потом прописывать регистры снаружи по внешней шине для инициализации блоков. С другой стороны,​ если внешнему устройству необходимо уметь переинициализировать блоки Ethеrnet и МКИО, осуществлять из сброс и т.д., то настройка блоков все-равно должна быть реализована снаружи.+Спецификация умалчивает,​ можно ли заранее настроить сами блоки Ethеrnet и МКИО. И не произойдет ли сброс регистров при входе в StandAlone. Это наверное было бы удобно,​ ведь внешнему устройству не пришлось бы потом прописывать регистры снаружи по внешней шине для инициализации блоков. С другой стороны,​ если внешнему устройству необходимо уметь переинициализировать блоки Ethеrnet и МКИО, осуществлять из сброс и т.д., то настройка блоков все равно должна быть реализована снаружи.
  
 При работе с режимом StandAlone проявилась интересная особенность. Оказалось,​ что при входе под отладчиком в режим StandAlone, ядро остается активным. Вероятно,​ наличие подключенного отладчика не дает ядру отключиться и уйти в режим Sleep. Косвенное подтверждение этому можно найти у ARM, чье ядро Cortex-M1 служило прототипом для 1986ВЕ1Т - [[http://​infocenter.arm.com/​help/​index.jsp?​topic=/​com.arm.doc.dai0216a/​index.html|ARM Info Center]]. При работе с режимом StandAlone проявилась интересная особенность. Оказалось,​ что при входе под отладчиком в режим StandAlone, ядро остается активным. Вероятно,​ наличие подключенного отладчика не дает ядру отключиться и уйти в режим Sleep. Косвенное подтверждение этому можно найти у ARM, чье ядро Cortex-M1 служило прототипом для 1986ВЕ1Т - [[http://​infocenter.arm.com/​help/​index.jsp?​topic=/​com.arm.doc.dai0216a/​index.html|ARM Info Center]].
Строка 103: Строка 103:
 </​WRAP>​ </​WRAP>​
  
-Принципиально,​ данную особенность можно использовать для того чтобы выяснить,​ сбрасываются ли настройки блоков Ethеrnet и МКИО при входе в StandAlone. Т.е. можно попробовать проинициализировать регистры,​ а затем по шагам в отладчике пройти вход в StandAlone и проверить состояние регистров. Если значения не изменились ​то сброса блоков не происходит.+Принципиально,​ данную особенность можно использовать для того чтобы выяснить,​ сбрасываются ли настройки блоков Ethеrnet и МКИО при входе в StandAlone. Т.е. можно попробовать проинициализировать регистры,​ а затем по шагам в отладчике пройти вход в StandAlone и проверить состояние регистров. Если значения не изменилисьто сброса блоков не происходит.
  
  
  
doc/doclist/standalone.txt · Последние изменения: 2019/05/28 16:11 — katya