1921ВК035 (общие вопросы)

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

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

Nikita543
Сообщения: 5
Зарегистрирован: 26 окт 2023, 19:05
Предприятие: АО НИТИ Авангард

Re: 1921ВК035 (общие вопросы)

Сообщение Nikita543 »

Добрый день, сброс не помог, тоже самое пишет, по сборке в векторе есть проект ВК035 blinky, с соответствующим дебагом. Может быть есть мысли еще?
Nikita543
Сообщения: 5
Зарегистрирован: 26 окт 2023, 19:05
Предприятие: АО НИТИ Авангард

Re: 1921ВК035 (общие вопросы)

Сообщение Nikita543 »

Можно ли по логу понять идет прошивка мк или нет в принципе?
Аватара пользователя
Disona
Сообщения: 80
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Контактная информация:

Re: 1921ВК035 (общие вопросы)

Сообщение Disona »

Nikita543 писал(а): 02 ноя 2023, 11:43 1. Vector
2. Плата макетно-отладочная для К1921ВК035, сделана по схеме из КФДЛ.441461.018РЭ
3. Проект из примера, blinky
4. Загружаю в RAM, я так понимаю, что необходимо закомментировать в build.id flash, и поставить галочку в runtime options.
Добрый день.

Действительно, в RAM что-то не очень работает, будем разбираться.

Попробуйте для начала во флеш прошиваться.
Для этого в build.ld верните строчку с флешем, а рамовскую закомментируйте.

В настройках дебаг-сессии оставьте галочку Debug in RAM.

Кроме того, обратите внимание на то, что при отладке/прошивке JTAG-ом нужно ставить джампер J5 (рядом с разъёмом JTAG) в соответствующее положение.
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
Nikita543
Сообщения: 5
Зарегистрирован: 26 окт 2023, 19:05
Предприятие: АО НИТИ Авангард

Re: 1921ВК035 (общие вопросы)

Сообщение Nikita543 »

Добрый день.
Во флэш попробовали, пишет break at address 0x368 with no debug information(поменялся адрес, раньше был 0x0)
По поводу джампер не очень понятно, уточните пожалуйста, прикрепляем фото платы и лог
| Показать
Open On-Chip Debugger 0.10.0+dev-00540-g00c3c91-dirty (2019-01-24-08:45)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
none separate
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : clock speed 1800 kHz
Info : STLINK v2 JTAG v27 API v2 SWIM v6 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 2.081374
Info : k1921vk035.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : Listening on port 3333 for gdb connections
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000368 msp: 0x20004000
Info : K1921VK035 detected
flash 'k1921vk035' found at 0x00000000
Started by GNU MCU Eclipse
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : accepting 'gdb' connection on tcp/3333
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000368 msp: 0x20004000
semihosting is enabled
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000368 msp: 0x20004000, semihosting
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000368 msp: 0x20004000, semihosting
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000003a msp: 0x20004000, semihosting
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000368 msp: 0x20004000, semihosting
===== арм v7m registers
(0) r0 (/32): 0x00000000
(1) r1 (/32): 0x00000000
(2) r2 (/32): 0x00000000
(3) r3 (/32): 0x00000000
(4) r4 (/32): 0x00000000
(5) r5 (/32): 0x00000000
(6) r6 (/32): 0x00000000
(7) r7 (/32): 0x00000000
(8) r8 (/32): 0x00000000
(9) r9 (/32): 0x00000000
(10) r10 (/32): 0x00000000
(11) r11 (/32): 0x00000000
(12) r12 (/32): 0x00000000
(13) sp (/32): 0x20004000
(14) lr (/32): 0xFFFFFFFF
(15) pc (/32): 0x00000368
(16) xPSR (/32): 0x01000000
(17) msp (/32): 0x20004000
(18) psp (/32): 0x00000000
(19) primask (/1): 0x00
(20) basepri (/8): 0x00
(21) faultmask (/1): 0x00
(22) control (/2): 0x00
(23) d0 (/64): 0x0000000000000000
(24) d1 (/64): 0x0000000000000000
(25) d2 (/64): 0x0000000000000000
(26) d3 (/64): 0x0000000000000000
(27) d4 (/64): 0x0000000000000000
(28) d5 (/64): 0x0000000000000000
(29) d6 (/64): 0x0000000000000000
(30) d7 (/64): 0x0000000000000000
(31) d8 (/64): 0x0000000000000000
(32) d9 (/64): 0x0000000000000000
(33) d10 (/64): 0x0000000000000000
(34) d11 (/64): 0x0000000000000000
(35) d12 (/64): 0x0000000000000000
(36) d13 (/64): 0x0000000000000000
(37) d14 (/64): 0x0000000000000000
(38) d15 (/64): 0x0000000000000000
(39) fpscr (/32): 0x00000000
===== кортекс-M DWT registers
(40) dwt_ctrl (/32)
(41) dwt_cyccnt (/32)
(42) dwt_0_comp (/32)
(43) dwt_0_mask (/4)
(44) dwt_0_function (/32)
(45) dwt_1_comp (/32)
(46) dwt_1_mask (/4)
(47) dwt_1_function (/32)
(48) dwt_2_comp (/32)
(49) dwt_2_mask (/4)
(50) dwt_2_function (/32)
(51) dwt_3_comp (/32)
(52) dwt_3_mask (/4)
(53) dwt_3_function (/32)
Info : dropped 'gdb' connection
Вложения
IMG_20231113_090153.jpg
IMG_20231113_090153.jpg (5.31 МБ) 297 просмотров
Аватара пользователя
Disona
Сообщения: 80
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Контактная информация:

Re: 1921ВК035 (общие вопросы)

Сообщение Disona »

Nikita543 писал(а): 13 ноя 2023, 10:07 Добрый день.
Во флэш попробовали, пишет break at address 0x368 with no debug information(поменялся адрес, раньше был 0x0)
По поводу джампер не очень понятно, уточните пожалуйста, прикрепляем фото платы и лог
А, так у вас самодельная плата.
Тогда никаких джамперов вам не нужно, джамперы это на нашей отладочной плате MotorControlBoard.

Судя по вашем логу, у вас как будто отладчик отключается от контроллера после загрузки прошивки.
Программа на main() не останавливается после прошивки?
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
Wolver
Сообщения: 2
Зарегистрирован: 15 ноя 2023, 08:05
Предприятие: ВНИИА

Re: 1921ВК035 (общие вопросы)

Сообщение Wolver »

Здравствуйте. Интересуют возможности снижения тока потребления до минимальных значений. Какой нижний предел по току потребления, в каком режиме его можно достигнуть?
Результаты исследований показали примерно 6.5 мА (deep sleep+внешний генератор на 1кгц, вся периферия выкл). Есть ли способ понизить потребление ещё ниже?
Также интересует возможность выхода мк из глубокого сна, пользуясь внутренней периферией (требуется пробуждение 10 раз в секунду) . Что сидит на fclk? Systick, как я понимаю, также останавливается в данном режиме.
Аватара пользователя
Disona
Сообщения: 80
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Контактная информация:

Re: 1921ВК035 (общие вопросы)

Сообщение Disona »

Nikita543 писал(а): 13 ноя 2023, 10:07 Добрый день.
Во флэш попробовали, пишет break at address 0x368 with no debug information(поменялся адрес, раньше был 0x0)
По поводу джампер не очень понятно, уточните пожалуйста, прикрепляем фото платы и лог
| Показать
Open On-Chip Debugger 0.10.0+dev-00540-g00c3c91-dirty (2019-01-24-08:45)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 2000 kHz
adapter_nsrst_delay: 100
none separate
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : clock speed 1800 kHz
Info : STLINK v2 JTAG v27 API v2 SWIM v6 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 2.081374
Info : k1921vk035.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : Listening on port 3333 for gdb connections
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000368 msp: 0x20004000
Info : K1921VK035 detected
flash 'k1921vk035' found at 0x00000000
Started by GNU MCU Eclipse
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : accepting 'gdb' connection on tcp/3333
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000368 msp: 0x20004000
semihosting is enabled
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000368 msp: 0x20004000, semihosting
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000368 msp: 0x20004000, semihosting
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000003a msp: 0x20004000, semihosting
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000368 msp: 0x20004000, semihosting
===== арм v7m registers
(0) r0 (/32): 0x00000000
(1) r1 (/32): 0x00000000
(2) r2 (/32): 0x00000000
(3) r3 (/32): 0x00000000
(4) r4 (/32): 0x00000000
(5) r5 (/32): 0x00000000
(6) r6 (/32): 0x00000000
(7) r7 (/32): 0x00000000
(8) r8 (/32): 0x00000000
(9) r9 (/32): 0x00000000
(10) r10 (/32): 0x00000000
(11) r11 (/32): 0x00000000
(12) r12 (/32): 0x00000000
(13) sp (/32): 0x20004000
(14) lr (/32): 0xFFFFFFFF
(15) pc (/32): 0x00000368
(16) xPSR (/32): 0x01000000
(17) msp (/32): 0x20004000
(18) psp (/32): 0x00000000
(19) primask (/1): 0x00
(20) basepri (/8): 0x00
(21) faultmask (/1): 0x00
(22) control (/2): 0x00
(23) d0 (/64): 0x0000000000000000
(24) d1 (/64): 0x0000000000000000
(25) d2 (/64): 0x0000000000000000
(26) d3 (/64): 0x0000000000000000
(27) d4 (/64): 0x0000000000000000
(28) d5 (/64): 0x0000000000000000
(29) d6 (/64): 0x0000000000000000
(30) d7 (/64): 0x0000000000000000
(31) d8 (/64): 0x0000000000000000
(32) d9 (/64): 0x0000000000000000
(33) d10 (/64): 0x0000000000000000
(34) d11 (/64): 0x0000000000000000
(35) d12 (/64): 0x0000000000000000
(36) d13 (/64): 0x0000000000000000
(37) d14 (/64): 0x0000000000000000
(38) d15 (/64): 0x0000000000000000
(39) fpscr (/32): 0x00000000
===== кортекс-M DWT registers
(40) dwt_ctrl (/32)
(41) dwt_cyccnt (/32)
(42) dwt_0_comp (/32)
(43) dwt_0_mask (/4)
(44) dwt_0_function (/32)
(45) dwt_1_comp (/32)
(46) dwt_1_mask (/4)
(47) dwt_1_function (/32)
(48) dwt_2_comp (/32)
(49) dwt_2_mask (/4)
(50) dwt_2_function (/32)
(51) dwt_3_comp (/32)
(52) dwt_3_mask (/4)
(53) dwt_3_function (/32)
Info : dropped 'gdb' connection
Ещё раз добрый день.

Я проверил пример со светодиодом в конфигурации под RAM-память.
Оказалось, там есть проблема с инициализацией указателя стека. По умолчанию он автоматически берётся процессором из адреса 0x00000002. Этот адрес лежит во флеше и, если флеш не прошит(а), то там лежит значение 0xFFFFFFFF - таким образом указатель стека становится равным 0xFFFFFFFF, а это несуществующий адрес. В результате при первом же обращении к стеку (например, вызов функции main()) процессор будет попадать в ошибку.

Однако, пример для флеша я проверил и он работает корректно.
Почему не работает у вас - затрудняюсь ответить по вашим логам.

Из вышесказанного два предложения:
1. Предлагаю проверить аппаратную часть - тактирование, питание, выводы JTAG, ножку сервисного стирания FLASH (должна быть подвязана к земле).
2. При проверке пользуйтесь конфигурацией для FLASH.
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
Dmitry
Сообщения: 2
Зарегистрирован: 20 ноя 2023, 10:09
Предприятие: ПАО КМЗ

Re: 1921ВК035 (общие вопросы)

Сообщение Dmitry »

Здравствуйте, начинаю работать с 1921ВК035 и появилось несколько вопросов:
1. plib035 для шины can нет?
2. есть пример настройки работы UART через DMA?
3. возможно использовать SWD на выводах PA2, PA3 и при этом использовать PA4, PA5, PA6 как GPIO?
4. последние коммиты в "k1921vkx_sdk/platform/plib035" датированы 19-м годом, библиотека приняла окончательный вид?
dav
Сообщения: 199
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: 1921ВК035 (общие вопросы)

Сообщение dav »

Wolver писал(а): 16 ноя 2023, 19:05 Здравствуйте. Интересуют возможности снижения тока потребления до минимальных значений. Какой нижний предел по току потребления, в каком режиме его можно достигнуть?
Результаты исследований показали примерно 6.5 мА (deep sleep+внешний генератор на 1кгц, вся периферия выкл). Есть ли способ понизить потребление ещё ниже?
Также интересует возможность выхода мк из глубокого сна, пользуясь внутренней периферией (требуется пробуждение 10 раз в секунду) . Что сидит на fclk? Systick, как я понимаю, также останавливается в данном режиме.
Доброго времени суток!
1) Если необходимо снизить потребление и при этом была возможность пробуждения по таймеру, то подойдет только режим сна (Sleep).
2) Из глубокого сна (DeepSleep) можно пробудить контроллер только по прерыванию GPIOA, GPIOB или NMI. К fclk подключены: ядро, GPIOA, GPIOB, NMI и RXEV.
3) Данный микроконтроллер не разрабатывался как низкопотребляющий.
Dmitry
Сообщения: 2
Зарегистрирован: 20 ноя 2023, 10:09
Предприятие: ПАО КМЗ

Re: 1921ВК035 (общие вопросы)

Сообщение Dmitry »

Dmitry писал(а): 20 ноя 2023, 10:18 Здравствуйте, начинаю работать с 1921ВК035 и появилось несколько вопросов:
1. plib035 для шины can нет?
2. есть пример настройки работы UART через DMA?
3. возможно использовать SWD на выводах PA2, PA3 и при этом использовать PA4, PA5, PA6 как GPIO?
4. последние коммиты в "k1921vkx_sdk/platform/plib035" датированы 19-м годом, библиотека приняла окончательный вид?
Сам отвечу на второй вопрос инициализации DMA UART для восьмибитных массивов:
Инициализация UART1 и DMA | Показать

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


DMA_CtrlData_TypeDef DMA_CTRLDATA __ALIGNED (512);
DMA_ChannelInit_TypeDef DMA_ChannelInitStruct;

/*!
 * \brief Инициализация UART1 для printf
 * интерфейс: USART1, Tx - PB8, скорость 115200
 * dma: DMA1, DMA_CH_UART1TX
 */
void
dbg_setup_uart_default ()
{
    UART_Init_TypeDef UART_InitStruct;

    RCU_AHBClkCmd (RCU_AHBClk_GPIOB, ENABLE);
    RCU_AHBRstCmd (RCU_AHBRst_GPIOB, ENABLE);
    GPIO_AltFuncCmd (GPIOB, GPIO_Pin_8, ENABLE);
    GPIO_DigitalCmd (GPIOB, GPIO_Pin_8, ENABLE);

    /* Инициализация UART1 */
    RCU_UARTClkConfig (UART1_Num, RCU_PeriphClk_PLLClk, 0, DISABLE);
    RCU_UARTClkCmd (UART1_Num, ENABLE);
    RCU_UARTRstCmd (UART1_Num, ENABLE);
    UART_StructInit (&UART_InitStruct);
    UART_InitStruct.BaudRate = 115200;
    UART_InitStruct.Tx = ENABLE;
    UART_InitStruct.Rx = ENABLE;
    UART_InitStruct.FIFO = ENABLE;
    UART_Init (UART1, &UART_InitStruct);
    UART_Cmd (UART1, ENABLE);

    /* Базовый указатель */
    DMA_BasePtrConfig ((uint32_t)(&DMA_CTRLDATA));

    /* Инициализация контроллера DMA */
    DMA_Init_TypeDef DMA_InitStruct;
    DMA_StructInit (&DMA_InitStruct);
    DMA_InitStruct.Channel = DMA_Channel_UART1_TX;
    DMA_InitStruct.ChannelEnable = ENABLE;
    DMA_Init (&DMA_InitStruct);

    DMA_MasterEnableCmd (ENABLE);

    /* Инициализация канала DMA1 - UART1 TX */
    DMA_ChannelInitStruct.SrcDataSize = DMA_DataSize_8;
    DMA_ChannelInitStruct.SrcDataInc = DMA_DataInc_8;
    DMA_ChannelInitStruct.DstDataSize = DMA_DataSize_8;
    DMA_ChannelInitStruct.DstDataInc = DMA_DataInc_Disable;
    DMA_ChannelInitStruct.DstDataEndPtr = (uint8_t*)(&UART1->DR);
    DMA_ChannelInitStruct.Mode = DMA_Mode_Basic;
    /* Указатель на источник, кол-во передаваемых байт и инициализация структуры происходит в функции отправки данных */
    /* DMA_ChannelInitStruct.SrcDataEndPtr = 0; */
    /* DMA_ChannelInitStruct.TransfersTotal = 0; */
    /* DMA_ChannelInit (&DMA_CTRLDATA.PRM_DATA.CH[DMA_CH_UART1TX], &DMA_ChannelInitStruct); */
}
Отправка кол-ва байт cnt восьмибитного массива array | Показать

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

send_to_dma (uint8_t* array, uint8_t cnt)
{
    DMA_ChannelEnableCmd (DMA_Channel_UART1_TX, ENABLE);
    DMA_ChannelInitStruct.TransfersTotal = cnt;
    DMA_ChannelInitStruct.SrcDataEndPtr = array;
    DMA_ChannelInit (&DMA_CTRLDATA.PRM_DATA.CH[DMA_CH_UART1TX], &DMA_ChannelInitStruct);
    DMA_MasterEnableCmd (ENABLE);
    UART_DMATxCmd (UART1, ENABLE);
} 
Ответить

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