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
Администратор
Сообщения: 57
Зарегистрирован: 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.
Ответить

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