Страница 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
По ТУ:
допускается возможность одновременной подачи и снятия напряжений питания и напряжений входных сигналов.
Где взять ТУ? В РП про это ничего не сказано. Во всяком случае, поиск по ключевому слову "допускается" ничего не дал.
Для получения ТУ направьте официальный запрос в наш адрес.