61616

[I] Работа модуля МКИО на отладочных платах Миландр К1986ВЕ8Т и К1986ВК01GI

Автор статьи: Лампадов Илья Александрович (Инженер)
Дата последнего изменения: 08.12.2025 17:18:10

Введение

Данная статья является логическим продолжением статьи "Пример работы МКИО на К1986ВЕ8Т"

Особенность отладочной платы для микроконтроллера К1986ВЕ8Т заключается в том, что на неё можно установить сразу два модуля МКИО производства компании Миландр на базе микросхемы 5559ИН13У (протестирован также модуль на базе микросхемы 5559ИН67Т), задействовав оба контроллера МКИО внутри микросхемы К1986ВЕ8Т (в микроконтроллере К1986ВК01GI два контроллера МКИО). В вышеприведенной статье как раз рассматривался пример такого подключения в рамках одной платы, где один модуль работает в роли контроллера шины (КШ), а второй в роли оконечного устройства (ОУ).

Но в реальных изделиях зачастую необходима организация подключения между двумя разными устройствами, и в данном случае для такой организации были выбраны отладочные платы К1986ВЕ8Т и К1986ВК01GI - в общем и целом аналогично можно организовать подключение между двумя другими устройствами. В рамках отладочной платы К1986ВК01GI  можно также как и на плате с К1986ВЕ8Т подключить два разных модуля, так как физические разъемы для подключения модулей используют линии обоих контроллеров МКИО (подробнее в статье "Использование внешних модулей на отладочной плате К1986ВК01GI (Электросила) - версия платы EVB v0.3").

Проект для отладочной платы К1986ВЕ8Т будет использоваться из исходной статьи в неизменном виде (для IDE Keil с использованием библиотеки SPL). Напомню, что в этом проекте модуль, который устанавливается в разъем, использующий линии MIL0, будет работать в режиме оконечного устройства (ОУ), а модуль, который устанавливается в разъем, задействующий линии MIL1, будет работать в режиме контроллера шины (КШ). 

Проект для отладочной платы К1986ВК01GI написан также для IDE Keil, но по большей части (то есть используются и библиотеки SPL) на регистровом уровне с соответствующими подробными комментариями по коду для большего понимания механики происходящего, но общая логика проекта полностью повторяет проект для К1986ВЕ8Т. Особенности следующие:
  1. Частота следования импульсов тактовых сигналов настраивается в проекте для К1986ВК01GI на 120 МГц, что входит в допустимый диапазон по документации. На отладочной плате применяется кварцевый резонатор на 8 МГц. С помощью блока PLL на выходе получается частота 120 МГц, а для соответствия стандарту блока МКИО, в самом блоке используется делитель 120, чтобы получить необходимую частоту 1 МГц. В проекте для К1986ВЕ8Т на выходе для тактирования по HSE получается частота 80 МГц, в блоке МКИО используется делитель 80.
    Важно отметить, что приходящая на блок МКИО частота должна быть не меньше 24 МГц - в противном случае работа блока не гарантируется;
  2. Разъемов для подключения модуля МКИО на базе микросхемы 5559ИН13У (либо на базе 5559ИН67Т) в отладочной плате К1986ВК01GI два, поэтому для примера конфигурируются только порты для блока MIL0, которые выведены на разъем "Модуль 1". Причем конфигурируется только основной канал А. При необходимости с минимальными изменениями проектов можно добиться работы по резервному каналу В.
Имея в наличии два модуля МКИО, две рассматриваемые отладочные платы и проекты к ним, можно организовать следующий функционал по обмену:
  • Отладочная плата К1986ВЕ8Т в роли контроллера шины (КШ) - Отладочная плата К1986ВК01GI в роли оконечного устройства (ОУ);
  • Отладочная плата К1986ВК01GI в роли контроллера шины (КШ) - Отладочная плата К1986ВЕ8Т в роли оконечного устройства (ОУ).
Важно помнить, что для подключения отладочных плат необходимо применять кабель COM 9F/9F (мама - мама) прямой распайки (1-1, 2-2…9-9)

Конфигурация и запуск проектов для работы К1986ВЕ8Т в роли КШ - К1986ВК01GI в роли ОУ

Проект для К1986ВЕ8Т остаётся в неизменном виде. Один из модулей подключается в разъем, использующий линии MIL1.

В проекте для К1986ВК01GI необходимо оставить активной строку кода, в которой проводится конфигурация работы блока MIL0 в режиме оконечного устройства (ОУ), при этом закомментировать строчку, которая конфигурирует блок MIL0 для работы в режиме контроллера шины (КШ), как это показано в фрагменте кода 1:
// Controller Bus 
// MDR_MIL0_STD_1553->CONTROL = (120 << 11)|(1 << 2) | (1 << 4); // and | (1<<19) if use module on 5576IN67 

// End Point
MDR_MIL0_STD_1553->CONTROL = (120 << 11)|(1 << 6)|(1 << 4)|(2 << 2); // and | (1<<19) if use module on 5576IN67. attention comment cycle while 
Фрагмент кода 1

Поскольку К1986ВК01GI будет работать в роли оконечного устройства (ОУ), а проект является универсальным, то весь цикл while(1) необходимо закомментировать, потому что в нём применен код, который актуален, если работа К1986ВК01GI будет вестись в роли контроллера шины (КШ). 

Далее выполняется подключение модуля МКИО в разъем на отладочной плате К1986ВК01GI и соединение двух модулей между собой.

Запуск программ выполняется по классическому сценарию:
  • К1986ВЕ8Т. Проект запускается из-под ОЗУ с соответствующим файлом *.ini;
  • К1986ВК01GI. Программа записывается в микроконтроллер стандартными средствами.
Результатом работы такого подключения будет следующее поведение:

В случае успешной отправки командного слова (КС) со стороны К1986ВЕ8Т на К1986ВК01GI будет моргать светодиод VD7 на отладочной плате К1986ВЕ8Т. В случае, если передача будет идти с ошибкой (реализуется при отключении кабеля), будет моргать светодиод VD14.

Конфигурация и запуск проектов для работы К1986ВК01GI в роли КШ - К1986ВЕ8Т в роли ОУ

Проект для К1986ВЕ8Т остаётся в неизменном виде. Один из модулей подключается в разъем, использующий линии MIL0.

В проекте для К1986ВК01GI необходимо оставить активной строку кода, в которой проводится конфигурация работы блока MIL0 в режиме контроллера шины (КШ), при этом закомментировать строчку, которая конфигурирует блок MIL0 для работы в режиме оконечного устройства (ОУ), как это показано в фрагменте кода 2:
// Controller Bus 
MDR_MIL0_STD_1553->CONTROL = (120 << 11)|(1 << 2) | (1 << 4); // and | (1<<19) if use module on 5576IN67 

// End Point
// MDR_MIL0_STD_1553->CONTROL = (120 << 11)|(1 << 6)|(1 << 4)|(2 << 2); // and | (1<<19) if use module on 5576IN67. attention comment cycle while 
Фрагмент кода 2

Поскольку К1986ВК01GI будет работать в роли контроллера шины (КШ), а проект является универсальным, то необходимо убедиться, что все строчки цикла while(1) не являются закомментированными, так как важно обеспечить постоянную передачу командного слова со стороны К1986ВК01GI с последующим контролем обмена - код цикла while(1) и выполняет эти функции.

Далее выполняется подключение модуля МКИО в разъем на отладочной плате К1986ВК01GI и соединение двух модулей между собой.

Запуск программ выполняется по аналогичному сценарию из пункта текущей статьи "Конфигурация и запуск проектов для работы К1986ВЕ8Т в роли КШ - К1986ВК01GI в роли ОУ"

Результатом работы такого подключения будет следующее поведение:

В случае успешной отправки командного слова (КС) со стороны К1986ВК01GI на К1986ВЕ8Т будет гореть синий светодиод на отладочной плате К1986ВК01GI. В случае, если передача будет идти с ошибкой (реализуется при отключении кабеля), будет гореть светодиод красный. Параллельно будет происходить моргание светодиода VD14 (наличие ошибки в обмене) на отладочной плате К1986ВЕ8Т, поскольку программа записывалась без изменений, и в цикле while(1) контроллер пытается постоянное отправить командное слово (КС)

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

Теги

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