Страница 5 из 7

Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе

Добавлено: 01 сен 2021, 13:11
porsche2492
Disona писал(а): 01 сен 2021, 12:36
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
В проекте проинициализировано 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: H14 / H15
    GPIOH->ALTFUNCNUM1_bit.PIN14 = 3;   // CAN1_TX
    GPIOH->ALTFUNCNUM1_bit.PIN15 = 3;   // CAN1_RX
    GPIOH->ALTFUNCSET = GPIO_PIN_14 | GPIO_PIN_15;
#endif 

У меня работает can0 и can1 видеться в программе Unicon. Но при своей инициализации не видиться can0.

Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе

Добавлено: 01 сен 2021, 13:25
porsche2492
Я проинициализировал порты все правильно и с нумерацией все верно. Но не могу понять почему CAN0 не работает и какие проблемы в инициализации самого CAN.

Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе

Добавлено: 01 сен 2021, 13:28
Лашкевич
Попробуйте встроить свою инициализацию в motorcontroldemo, запустить motorcontroldemo, чтобы работал, а потом переинициализировать CAN своей инициализацией, по команде какой-то (например, через юникон). И проверьте, будет после этого работать CAN или нет. Может быть, в вашей программе что-то забыто по сравнению с motorcontroldemo. Может, тактирование не включено где-то в GPIO или в CAN, может в коде ошибка, может ножки где-то в другом месте переопределяются как-то.
Если после вызова своей инициализации сломается, можно свои строки инициализации своей подкомменчивать и найти, от какой строки всё ломается.
Способ так себе, конечно, потому что кенопен драйвер motorcontroldemo тоже будет пытаться работать, но при желании после вызова своей инициализации можно остановить вызов co_1ms_calc, чтобы он не считался, и сделать свою функцию, отправляющую что-то в CAN.

Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе

Добавлено: 01 сен 2021, 14:55
porsche2492
Лашкевич писал(а): 01 сен 2021, 13:28 Попробуйте встроить свою инициализацию в motorcontroldemo, запустить motorcontroldemo, чтобы работал, а потом переинициализировать CAN своей инициализацией, по команде какой-то (например, через юникон). И проверьте, будет после этого работать CAN или нет. Может быть, в вашей программе что-то забыто по сравнению с motorcontroldemo. Может, тактирование не включено где-то в GPIO или в CAN, может в коде ошибка, может ножки где-то в другом месте переопределяются как-то.
Если после вызова своей инициализации сломается, можно свои строки инициализации своей подкомменчивать и найти, от какой строки всё ломается.
Способ так себе, конечно, потому что кенопен драйвер motorcontroldemo тоже будет пытаться работать, но при желании после вызова своей инициализации можно остановить вызов co_1ms_calc, чтобы он не считался, и сделать свою функцию, отправляющую что-то в CAN.
Инициализацию CAN я брал не с ПО motorControlDemo я там ее не нашел.

Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе

Добавлено: 01 сен 2021, 15:15
Лашкевич
Я не предложил взять из motorcontroldemo, там она внутри библиотеки, а предложил добавить вашу в код motorcontroldemo и вызвать её после того, как CAN заработает в motorcontroldemo.

Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе

Добавлено: 01 сен 2021, 16:41
porsche2492
Смотрю регистр NSR в поле LEC стоит код ошибки 001.

Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе

Добавлено: 18 ноя 2021, 11:13
serg_vega
Рисуем схему на МК 1924ВК028. Самое начало. Так я и не понял про последовательность подачи питания. Стр 39 : "Необходимо соблюдать следующий порядок подачи напряжения питания: сначала подаются напряжения питания UCC1, UCC3, UCC4, затем напряжение UCC2, а затем входные напряжения низкого уровня UIL и высокого уровня UIH. "
При этом из схемы примера (1921VK028_typical_sch.pdf) скачанного здесь же эта последовательность не прослеживается!!! То есть все стабилизаторы включены без использования каких-либо ENABLE, то есть все питания подаются примерно одновременно, гарантированного порядка подачи напряжений не соблюдается. Это, получается, допустимо?

Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе

Добавлено: 18 ноя 2021, 11:31
SanekV
По ТУ:
допускается возможность одновременной подачи и снятия напряжений питания и напряжений входных сигналов.

Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе

Добавлено: 18 ноя 2021, 11:37
serg_vega
SanekV писал(а): 18 ноя 2021, 11:31 По ТУ:
допускается возможность одновременной подачи и снятия напряжений питания и напряжений входных сигналов.
Где взять ТУ? В РП про это ничего не сказано. Во всяком случае, поиск по ключевому слову "допускается" ничего не дал.

Re: Новый 32-разрядный микроконтроллер в BGA400 корпусе

Добавлено: 22 ноя 2021, 10:53
_sva_
serg_vega писал(а): 18 ноя 2021, 11:37
SanekV писал(а): 18 ноя 2021, 11:31 По ТУ:
допускается возможность одновременной подачи и снятия напряжений питания и напряжений входных сигналов.
Где взять ТУ? В РП про это ничего не сказано. Во всяком случае, поиск по ключевому слову "допускается" ничего не дал.
Для получения ТУ направьте официальный запрос в наш адрес.