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

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

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

ea
Администратор
Сообщения: 110
Зарегистрирован: 10 окт 2014, 09:08

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

Сообщение ea »

Добрый день.
Проверьте на нашей отладочной плате КФДЛ.441461.024 пример из репозитория https://gitflic.ru/project/niiet/k1921v ... nch=master
Пример проекта демонстрирует корректный обмен данными на нашей плате.

Перед запуском примера необходимо соединить два разъема XS12 и XS14. Далее в режиме отладки принтые данные можно проконтроллировать путем просмотра значений массива MILSTD_RT_RX_MASS[]. В примере на ряд подадресов передается разное количество слов данных из массива: 0xBC00, 0xBC01, 0xBC02, 0xBC03, 0xBC04, 0xBC05, 0xBC06, 0xBC07, 0xBC08, 0xBC09, 0xBC0A, 0xBC0B, 0xBC0C, 0xBC0D, 0xBC0E, 0xBC0F, 0xBC10, 0xBC11, 0xBC12, 0xBC13, 0xBC14, 0xBC15, 0xBC16, 0xBC17, 0xBC18, 0xBC19, 0xBC1A, 0xBC1B, 0xBC1C, 0xBC1D, 0xBC1E, 0xBC1F.

В случае успешного обмена данными от КШ микроконтроллера необходимо удостовериться в корректности передаваемых данных внешнего контроллера шины.
Alexandr31415
Сообщения: 5
Зарегистрирован: 24 ноя 2025, 09:37
Предприятие: АО МНПК Авионика

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

Сообщение Alexandr31415 »

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

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

Сообщение Alexandr31415 »

ea писал(а): 16 дек 2025, 09:57 Добрый день.
Проверьте на нашей отладочной плате КФДЛ.441461.024 пример из репозитория https://gitflic.ru/project/niiet/k1921v ... nch=master
Пример проекта демонстрирует корректный обмен данными на нашей плате.

Перед запуском примера необходимо соединить два разъема XS12 и XS14. Далее в режиме отладки принтые данные можно проконтроллировать путем просмотра значений массива MILSTD_RT_RX_MASS[]. В примере на ряд подадресов передается разное количество слов данных из массива: 0xBC00, 0xBC01, 0xBC02, 0xBC03, 0xBC04, 0xBC05, 0xBC06, 0xBC07, 0xBC08, 0xBC09, 0xBC0A, 0xBC0B, 0xBC0C, 0xBC0D, 0xBC0E, 0xBC0F, 0xBC10, 0xBC11, 0xBC12, 0xBC13, 0xBC14, 0xBC15, 0xBC16, 0xBC17, 0xBC18, 0xBC19, 0xBC1A, 0xBC1B, 0xBC1C, 0xBC1D, 0xBC1E, 0xBC1F.

В случае успешного обмена данными от КШ микроконтроллера необходимо удостовериться в корректности передаваемых данных внешнего контроллера шины.
Добрый день. Проверили данный проект, оказался тоже работоспособным.
НО обнаружилось следующее:
- если работать с заголовочным файлом К1921VK028.h версии V2.16 от 26.03.2019 из device_pack для Keil работает некорректно (портятся указатели на приемные буфера подадресов кроме нулевого, проблема в отсутствии поля Reserved в структуре MILSTD_RT_DESC_TypeDef);
- если использовать К1921VK028.h v 2.19 28.08.2023 из папки platform Вашего примера, то все работает корректно.

Вот проблемная структура из v2.16

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

typedef struct {
    union {
        __IO uint32_t CTRLSTAT;                                  *!< Control and status word *
        __IO _MILSTD_RT_DESC_CTRLSTAT_TypeDef CTRLSTAT_bit;      *!< Control and status word: bit access *
    };
    __IO uint32_t DBUFF_PTR;                                     *!< Data buffer pointer, 16-bit aligned *
    __IO uint32_t NEXT_DESCR_PTR;                                *!< Pointer to next descriptor, 16-byte aligned or 0x0000003 to indicate end of list *
} MILSTD_RT_DESC_TypeDef;
, а вот из Вашего v2.19.

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

typedef struct {
    union {
        __IO uint32_t CTRLSTAT;                                  *!< Control and status word *
        __IO _MILSTD_RT_DESC_CTRLSTAT_TypeDef CTRLSTAT_bit;      *!< Control and status word: bit access *
    };
    __IO uint32_t DBUFF_PTR;                                     *!< Data buffer pointer, 16-bit aligned *
    __IO uint32_t NEXT_DESCR_PTR;                                *!< Pointer to next descriptor, 16-byte aligned or 0x0000003 to indicate end of list *
    __IO uint32_t Reserved;
} MILSTD_RT_DESC_TypeDef;
Ответить

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