Новый 32-разрядный микроконтроллер в BGA400 корпусе
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе
большое спасибо за подробные ответы.
Замечание к РП (версия от 20.12.2019)
В приложении А, при описании блока АЦП Смещение регистра BSTAT указано 008h, а смещение регистра FSTAT 00Сh.
В файле K1921VK0028.h при описании модуля АЦП эти регистры переставлены (FSTAT = 08h, BSTAT = 0Ch). Вероятно, в SDK правильное смещение, иначе были бы проблемы с рабочими примерами.
Замечание к РП (версия от 20.12.2019)
В приложении А, при описании блока АЦП Смещение регистра BSTAT указано 008h, а смещение регистра FSTAT 00Сh.
В файле K1921VK0028.h при описании модуля АЦП эти регистры переставлены (FSTAT = 08h, BSTAT = 0Ch). Вероятно, в SDK правильное смещение, иначе были бы проблемы с рабочими примерами.
-
- Сообщения: 69
- Зарегистрирован: 21 янв 2018, 00:42
- Предприятие: Авиаавтоматика
- Откуда: Курск
Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе
1921ВК028 имеет ли приемку ВП?
Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе
Добрый день. Имеет.
Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе
Добрый день!
Подскажите, а в перечень ЭКБ 2020 г. микросхема 1921ВК028 попала?
Заранее спасибо за ответ.
Подскажите, а в перечень ЭКБ 2020 г. микросхема 1921ВК028 попала?
Заранее спасибо за ответ.
Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе
Добрый день, не планируется ли портирование ОСРВ на этот микроконтроллер? Хотим использовать библиотеку PJSIP, для оцифровки речи, аудиоконференций, но она не поддерживается FreeRTOS. А Embox, uClinux, RTEMS подошли бы гораздо лучше.
Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе
Здравствуйте!
Какой максимальный ток потребления у 1921ВК028?
В РП на 1921ВК028 от 20.12.2019 в таблице 2.4 на странице 39 сказано не более 1А, но на рисунках Г.8, Г.9 на страницах 643, 645 ток судя по графикам ток не более 0,25А.
Не совсем понял такое расхождение, можно ли получить комментарий по этому поводу?
Какой максимальный ток потребления у 1921ВК028?
В РП на 1921ВК028 от 20.12.2019 в таблице 2.4 на странице 39 сказано не более 1А, но на рисунках Г.8, Г.9 на страницах 643, 645 ток судя по графикам ток не более 0,25А.
Не совсем понял такое расхождение, можно ли получить комментарий по этому поводу?
Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе
Здравствуйте! Существует проблема с запуском MILSTD1553B (ГОСТ Р52070 2003, он же МКИО) на микроконтроллере К1921ВК028. Необходимо настроить как ОУ (УТ в терминологии документации микроконтроллера). Есть ли у кого примеры реализации? Благодаря plib028 легко запустил ШИМ, АЦП, BFLASH, по поводу MILSTD1553B пусто...
после отправки сообщения с одним словом данных
MILSTD0->IR_bit.RTTE взводится в "1" - ошибка доступа к таблице УТ.
Код: Выделить всё
uint32_t RX_Dim[128];
struct C_Word{
uint32_t Tx_Sz : 5;
uint32_t Tx_Irq : 1;
uint32_t Tx_Log : 1;
uint32_t Tx_En : 1;
uint32_t Rx_Sz : 5;
uint32_t Rx_Irq : 1;
uint32_t Rx_Log : 1;
uint32_t Rx_En : 1;
uint32_t Bc_Rx_En : 1;
uint32_t Ign_Dat_Valid : 1;
uint32_t Wrap : 1;
uint32_t unused : 13;
};
typedef union {
uint32_t all;
struct C_Word bit;
}C_Word;
typedef struct {
C_Word Control_Word;
uint32_t RX_Pointer;
uint32_t TX_Pointer;
uint32_t unused;
}Str_Tab_Sub;
Str_Tab_Sub Tab_Podadres[32] __attribute__((aligned(512))); // таблица подадресов.
void MKIO_Init(void){
uint16_t n;
RCU_AHBClkCmd(RCU_AHBClk_MILSTD0, ENABLE);
RCU_AHBRstCmd(RCU_AHBRst_MILSTD0, ENABLE);
RCU_MILSTDClkCmd(MILSTD0_Num, ENABLE);
RCU_MILSTDClkConfig(MILSTD0_Num,RCU_PeriphClk_PLLClk, 4, ENABLE);
RCU_MILSTDRstCmd(MILSTD0_Num, ENABLE);
Freq_MKIO = RCU_GetMILSTDClkFreq(MILSTD0_Num); // проверка тактовой
// =================================== Иницализация УТ МКИО =========================== >>>
// Иницализация таблицы подадресов.
for( n=0; n<32; n++){
Tab_Podadres[n].Control_Word.all = 0;
Tab_Podadres[n].RX_Pointer =03;
Tab_Podadres[n].TX_Pointer =03;
Tab_Podadres[n].unused =0;
}
MILSTD0->RTSADDR_bit.SATB = ((uint32_t) &Tab_Podadres[0])>>9 ; //начальный адрес таблицы подадресов.
Tab_Podadres[0].RX_Pointer = (uint32_t) &RX_Dim[0];
Tab_Podadres[0].Control_Word.bit.Rx_En = 1;
Tab_Podadres[0].Control_Word.bit.Rx_Sz = 1;
Tab_Podadres[1].RX_Pointer = (uint32_t) &RX_Dim[0];
Tab_Podadres[1].Control_Word.bit.Rx_En = 1;
Tab_Podadres[1].Control_Word.bit.Rx_Sz = 1;
Tab_Podadres[2].RX_Pointer = (uint32_t) &RX_Dim[0];
Tab_Podadres[2].Control_Word.bit.Rx_En = 1;
Tab_Podadres[2].Control_Word.bit.Rx_Sz = 1;
MILSTD0->RTCON_bit.BRS = 0;
MILSTD0->RTCON_bit.SYDS = 0;
MILSTD0->RTCON_bit.SYS =0;
MILSTD0->RTCON_bit.RTEN = 1; //в регистр конфигурации УТ: установить бит RTEN
// <<< =================================== Иницализация УТ МКИО
}
MILSTD0->IR_bit.RTTE взводится в "1" - ошибка доступа к таблице УТ.
-
- Сообщения: 69
- Зарегистрирован: 21 янв 2018, 00:42
- Предприятие: Авиаавтоматика
- Откуда: Курск
Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе
Не могу понять почему у меня не работает CAN0 на отладочной плате "MotorControlBoard3-1921ВК028". При этом когда я перехожу на CAN1 все у меня нормально работает. Не подскажите в чем проблема тут. Проинициализировал CAN в соответствии с руководством пользователя на МК1921ВК028. При этом сам интерфейс CAN0 работает(Проверял путем заливки ПО MotorControlDemo в отладочную плату и видимости CAN устройства в программе "Unicon" ) Ниже прикрепляю файлы модуля CAN.
Конфигурация ножек:
Код: Выделить всё
//Конфигурация пинов для модуля CAN1
GPIOH->ALTFUNCNUM1_bit.PIN14 = 3; // CAN1_TX
GPIOH->ALTFUNCNUM1_bit.PIN15 = 3; // CAN1_RX
GPIOH->ALTFUNCSET =GPIO_PIN_14 | GPIO_PIN_15;
//Конфигурация пинов для модуля CAN0
GPIOС->ALTFUNCNUM1_bit.PIN12 = 1; // CAN0_TX
GPIOС->ALTFUNCNUM1_bit.PIN13 = 1; // CAN0_RX
GPIOС->ALTFUNCSET =GPIO_PIN_12 | GPIO_PIN_13;
- Disona
- Сообщения: 77
- Зарегистрирован: 06 дек 2016, 11:18
- Предприятие: НПФ Вектор
- Откуда: Москва
- Контактная информация:
Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе
Здравствуйте.porsche2492 писал(а): ↑31 авг 2021, 20:48 Конфигурация ножек:Код: Выделить всё
//Конфигурация пинов для модуля CAN1 GPIOH->ALTFUNCNUM1_bit.PIN14 = 3; // CAN1_TX GPIOH->ALTFUNCNUM1_bit.PIN15 = 3; // CAN1_RX GPIOH->ALTFUNCSET =GPIO_PIN_14 | GPIO_PIN_15; //Конфигурация пинов для модуля CAN0 GPIOС->ALTFUNCNUM1_bit.PIN12 = 1; // CAN0_TX GPIOС->ALTFUNCNUM1_bit.PIN13 = 1; // CAN0_RX GPIOС->ALTFUNCSET =GPIO_PIN_12 | GPIO_PIN_13;
Пока не очень понимаем, в чём причина, но в приведённом коде кое-что не сходится.
Вроде как выходит, что неправильно натсроен именно CAN1:
для ножек C14 и C15 номер CAN-функции - это 1, а не 3.
А вот для CAN0, вроде, всё настроено верно.
Вы не могли в своём проекте выставить C14 и C15 в "1" и проверить, не заработал ли CAN0?
Может быть, какая-то путанница с нумерациями CAN-ов?
У нас в примере MotorControlDemo сделано так:
Код: Выделить всё
#ifdef CAN_1_ENABLE
// CAN0: C12 / C13
GPIOC->ALTFUNCNUM1_bit.PIN12 = 1; // CAN0_TX
GPIOC->ALTFUNCNUM1_bit.PIN13 = 1; // CAN0_RX
GPIOC->ALTFUNCSET = GPIO_PIN_12 | GPIO_PIN_13;
#endif
#ifdef CAN_2_ENABLE
// CAN1: C14 / C15
GPIOC->ALTFUNCNUM1_bit.PIN14 = 1; // CAN1_TX
GPIOC->ALTFUNCNUM1_bit.PIN15 = 1; // CAN1_RX
GPIOC->ALTFUNCSET = GPIO_PIN_14 | GPIO_PIN_15;
#endif
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
ООО "НПФ Вектор"