1921ВК028 MILSTD1553B (ГОСТ Р52070 2003) как оконечное устройство.

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

skyazimuth
Сообщения: 1
Зарегистрирован: 08 ноя 2023, 16:51
Предприятие: RIRT

Re: 1921ВК028 MILSTD1553B (ГОСТ Р52070 2003) как оконечное устройство.

Сообщение skyazimuth »

Добрый день!

1 В примере и в документации не очень понятно назначение поля дескриптора "Указатель на следующий дескриптор".

Код: Выделить всё

	  mstd0_rt_tx_desc[i].NEXT_DESCR_PTR = (uint32_t) &mstd0_rt_tx_desc[i]; //Замыкаем цепочку сообщений;
2 Не понятно как работает поле RUN регистра MILSTD0->RTSTAT, наблюдаю всегда "1".
При этом поле ACT этого регистра работает вроде логично - выставляется в «1» после командного слова и сбрасывается в «0» перед выдачей ответного слова (проверил на форматах 1, 2).

3 Отладочная плата КФДЛ.441461.024 КДФЛ.687265.003 В. При установке переключателей SA5 (адрес ОУ) 00001 в поле RTADDR регистра MILSTD0->RTCON вижу "2", при 00010 - вижу "1".
В других случаях ожидаемо:
00100 - 4
01000 - 8
10000 - 16
Ошибка в разводке или в микроконтроллере. К ножках, естественно, не посмотреть.

4 Как в принципе предполагается защита от возможной коллизии если буфер на передачу меняется во время выдачи данных в линию (при асинхронном изменении буферов)?
dav
Сообщения: 225
Зарегистрирован: 14 дек 2015, 08:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: 1921ВК028 MILSTD1553B (ГОСТ Р52070 2003) как оконечное устройство.

Сообщение dav »

skyazimuth писал(а): 08 ноя 2023, 17:29 Добрый день!

1 В примере и в документации не очень понятно назначение поля дескриптора "Указатель на следующий дескриптор".

Код: Выделить всё

	  mstd0_rt_tx_desc[i].NEXT_DESCR_PTR = (uint32_t) &mstd0_rt_tx_desc[i]; //Замыкаем цепочку сообщений;
2 Не понятно как работает поле RUN регистра MILSTD0->RTSTAT, наблюдаю всегда "1".
При этом поле ACT этого регистра работает вроде логично - выставляется в «1» после командного слова и сбрасывается в «0» перед выдачей ответного слова (проверил на форматах 1, 2).

3 Отладочная плата КФДЛ.441461.024 КДФЛ.687265.003 В. При установке переключателей SA5 (адрес ОУ) 00001 в поле RTADDR регистра MILSTD0->RTCON вижу "2", при 00010 - вижу "1".
Ошибка в разводке или в микроконтроллере. К ножках, естественно, не посмотреть.

4 Как в принципе предполагается защита от возможной коллизии если буфер на передачу меняется во время выдачи данных в линию (при асинхронном изменении буферов)?
Доброго времени суток!
1) Предполагается использование цепочки дескрипторов для задействования разных буферов при приеме и передаче данных.
Поле дескриптора "Указатель на следующий дескриптор" (NEXT_DESCR_PTR) содержит адрес места в памяти, где находится следующий дескриптор в цепочке, на который переключится интерфейс MilStd после выполнения передачи в соответствии с текущим дескриптором. Данное поле необходимо при создании списка дескрипторов. То есть для одного подадреса можно создать набор дескрипторов (с разной конфигурацией), управляющих передачами. Для указания последнего дескриптора в списке, в данное поле записывается значение 03h или указатель на этот же самый дескриптор.

Как пример, можно создать список дескрипторов, состоящий из двух элементов. Поле указателя на следующий дескриптор (для первого) будет указывать на второй, а поле указателя второго обратно на первый. Для каждого из них можно создать отдельные буферы в памяти (и записать их адреса в поле указателя на буфер). Для отслеживания, какой из дескрипторов отработал последним, можно отслеживать (например в прерывании) изменение управляющего и статусного слова дескриптора (CTRLSTAT). У данного слова, после выполнения передачи, изменятся поля DV и TIME (установится бит DV и в поле TIME будет записано время передачи). Чтобы при дальнейшей работе дескриптор мог сработать снова, нужно программно сбросить бит DV слова CTRLSTAT дескриптора. Если бит DV не сбросить, следующая передача выполнена не будет. Это может помочь для предотвращения коллизии.
2) Поле RUN регистра MILSTD0->RTSTAT установлено, когда удаленный терминал слушает линию и готов принимать команды, фактически - когда установлен бит RTEN регистра MILSTD0->RTCON.
3) Да, на топологии платы макетно-отладочной для MILSTD0 перепутаны разряды 0 и 1 адреса удаленного терминала.
4) см. п.1.
JIEXA77
Сообщения: 14
Зарегистрирован: 01 июн 2023, 14:32
Предприятие: Агат

Re: 1921ВК028 MILSTD1553B (ГОСТ Р52070 2003) как оконечное устройство.

Сообщение JIEXA77 »

Всем доброго дня!

Может быть немного не по теме, но ни у кого нету примера для использования данного МК в качестве КШ.

Сейчас как рас стоит задача освоить работу с МПИ.
Чтобы не использовать внешний источник канала МПИ хочу замкнуть 2 канала между собой.
Один будет КШ, а второй ОУ (УТ).
Почему-то примеров работы с МПИ не нашел (

Заранее благодарен,
Алексей
dav
Сообщения: 225
Зарегистрирован: 14 дек 2015, 08:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: 1921ВК028 MILSTD1553B (ГОСТ Р52070 2003) как оконечное устройство.

Сообщение dav »

JIEXA77 писал(а): 15 янв 2024, 17:47 Всем доброго дня!

Может быть немного не по теме, но ни у кого нету примера для использования данного МК в качестве КШ.
Доброго времени суток!

Пример взаимодействия КШ с ОУ можно получить из SDK на GitFlic: https://gitflic.ru/project/niiet/k1921v ... ch=develop
OlegX
Сообщения: 1
Зарегистрирован: 11 апр 2025, 10:44
Предприятие: ПАО НПП Импульс

Re: 1921ВК028 MILSTD1553B (ГОСТ Р52070 2003) как оконечное устройство.

Сообщение OlegX »

Добрый день! Как заставить УТ выдеть адрес на внешних линиях? На отладочной плате прием/передача работает на программе примера. Но в программе адрес устанавливается программно.
В регистре RTCON бит RTEIS всегда снят. Адрес установлен по-умолчанию 1F до его перезаиси программным путем.
ea
Администратор
Сообщения: 104
Зарегистрирован: 10 окт 2014, 09:08

Re: 1921ВК028 MILSTD1553B (ГОСТ Р52070 2003) как оконечное устройство.

Сообщение ea »

OlegX писал(а): 11 апр 2025, 11:20 Добрый день! Как заставить УТ выдеть адрес на внешних линиях? На отладочной плате прием/передача работает на программе примера. Но в программе адрес устанавливается программно.
В регистре RTCON бит RTEIS всегда снят. Адрес установлен по-умолчанию 1F до его перезаиси программным путем.
По аппаратному сбросу микроконтроллера осуществляется захват адреса удаленного терминала с соответствующих выводов при корректно установленном бите четности адреса. В дальнейшем захваченный по сбросу адрес Оконечного Устройства можно прочитать или перезаписать через регистр MILSTDx->RTCON. Но перед этим необходимо подать тактирование для модуля MILSTD в регистрах RCU и настроить соответствующие выводы GPIO, на альтернативных выводах которых расположены сигналы внешней установки адреса удаленного терминала.
Перезаписать адрес удаленного терминала можно записью в регистр MILSTDx->RTCON с ключем RTKEY = 0x1553.

Например, MILSTDx_ADR0 = 1, MILSTDx_ADR1 - MILSTDx_ADR4 = 0, MILSTDx_ODDADR = 0, в регистре MILSTDx->RTCON, можно будет прочитать значение адреса удаленного терминала 0x01.

Например, MILSTDx_ADR0 = 1, MILSTDx_ADR1 = 1, MILSTDx_ADR2 - MILSTDx_ADR4 = 0, MILSTDx_ODDADR = 1, в регистре MILSTDx->RTCON, можно будет прочитать значение адреса удаленного терминала 0x03.
nppsem
Сообщения: 103
Зарегистрирован: 26 апр 2010, 16:09

Re: 1921ВК028 MILSTD1553B (ГОСТ Р52070 2003) как оконечное устройство.

Сообщение nppsem »

dav писал(а): 10 май 2023, 17:46
andzdv писал(а): 26 апр 2023, 20:12 В нашем случае интерфейсные микросхемы 5559ИН13У1 греются как утюги. Как представляется, выходы TXEN в режиме УТ должны включатся исключительно на время передачи ОС или СД на аппаратном уровне (когда порт включен в режиме альтернативной функции МПИ). Просьба помочь!
Доброго времени суток!
Интерфейсные микросхемы 5559ИН13У1 греются в случае появления на входах передатчика запрещенной комбинации. Для 5559ИН13У1 запрещенная комбинация - низкий логический уровень на входах DI1 и DI2 (таблица истинности на стр. 10 технического описания 5559ИН13У1 ).
Так как микроконтроллер 1921ВК028 при отсутствии передач переводит выводы TxD и TxDN в состояние логического нуля, мы на плате макетно-отладочной перед входом передатчика устанавливали инвертеры.
1921VK028_MKIO_sch.PNG
Вывод TX_EN изменяет свое состояние только при приеме команд "Блокировать передатчик" и "Разблокировать передатчик". При этом прием команд "Блокировать передатчик" и "Разблокировать передатчик" по каналу А изменяют состояние вывода TX_EN канала B, а прием - по каналу B - изменяет вывод канала A.
Правильно понимаю, что от момента подачи питания и до настройки выводов TxD и TxDN таковые находятся в Z-состоянии, а резисторы подтягивающие входы инвертора к питанию дают лог."0" по его выходам, т.е. ту самую запрещённую комбинацию для 5559ИН13?
Alexandr31415
Сообщения: 5
Зарегистрирован: 24 ноя 2025, 09:37
Предприятие: АО МНПК Авионика

Re: 1921ВК028 MILSTD1553B (ГОСТ Р52070 2003) как оконечное устройство.

Сообщение Alexandr31415 »

Доброе утро!
Реализовал оконечное устройство по Вашему примеру https://gitflic.ru/project/niiet/k1921v ... ch=develop. Контроллер шины использую внешний. Корректные данные приходят только на 1 подадрес, на остальные приходит заданное количество слов, но в словах данных 0xEEEE. в чем может быть проблема?
Alexandr31415
Сообщения: 5
Зарегистрирован: 24 ноя 2025, 09:37
Предприятие: АО МНПК Авионика

Re: 1921ВК028 MILSTD1553B (ГОСТ Р52070 2003) как оконечное устройство.

Сообщение Alexandr31415 »

В дополнение к предыдущему сообщению, используемый формат обмена 1 (КШ -> ОУ).
Alexandr31415
Сообщения: 5
Зарегистрирован: 24 ноя 2025, 09:37
Предприятие: АО МНПК Авионика

Re: 1921ВК028 MILSTD1553B (ГОСТ Р52070 2003) как оконечное устройство.

Сообщение Alexandr31415 »

В дополнение к двум предыдущим сообщениям, работа проводилась на отладочной плате КФДЛ.441461.024 В КФДЛ.687265.003 В на которой установлен контроллер с маркировкой 2334.
Ответить

Вернуться в «32-разрядные микроконтроллеры»