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

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

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

porsche2492
Сообщения: 68
Зарегистрирован: 21 янв 2018, 00:42
Предприятие: Авиаавтоматика
Откуда: Курск

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

Сообщение porsche2492 » 01 сен 2021, 13:11

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.

porsche2492
Сообщения: 68
Зарегистрирован: 21 янв 2018, 00:42
Предприятие: Авиаавтоматика
Откуда: Курск

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

Сообщение porsche2492 » 01 сен 2021, 13:25

Я проинициализировал порты все правильно и с нумерацией все верно. Но не могу понять почему CAN0 не работает и какие проблемы в инициализации самого CAN.

Аватара пользователя
Лашкевич
Сообщения: 297
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

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

Сообщение Лашкевич » 01 сен 2021, 13:28

Попробуйте встроить свою инициализацию в motorcontroldemo, запустить motorcontroldemo, чтобы работал, а потом переинициализировать CAN своей инициализацией, по команде какой-то (например, через юникон). И проверьте, будет после этого работать CAN или нет. Может быть, в вашей программе что-то забыто по сравнению с motorcontroldemo. Может, тактирование не включено где-то в GPIO или в CAN, может в коде ошибка, может ножки где-то в другом месте переопределяются как-то.
Если после вызова своей инициализации сломается, можно свои строки инициализации своей подкомменчивать и найти, от какой строки всё ломается.
Способ так себе, конечно, потому что кенопен драйвер motorcontroldemo тоже будет пытаться работать, но при желании после вызова своей инициализации можно остановить вызов co_1ms_calc, чтобы он не считался, и сделать свою функцию, отправляющую что-то в CAN.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

porsche2492
Сообщения: 68
Зарегистрирован: 21 янв 2018, 00:42
Предприятие: Авиаавтоматика
Откуда: Курск

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

Сообщение porsche2492 » 01 сен 2021, 14:55

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

Аватара пользователя
Лашкевич
Сообщения: 297
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

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

Сообщение Лашкевич » 01 сен 2021, 15:15

Я не предложил взять из motorcontroldemo, там она внутри библиотеки, а предложил добавить вашу в код motorcontroldemo и вызвать её после того, как CAN заработает в motorcontroldemo.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

porsche2492
Сообщения: 68
Зарегистрирован: 21 янв 2018, 00:42
Предприятие: Авиаавтоматика
Откуда: Курск

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

Сообщение porsche2492 » 01 сен 2021, 16:41

Смотрю регистр NSR в поле LEC стоит код ошибки 001.

serg_vega
Сообщения: 69
Зарегистрирован: 20 июл 2020, 15:50
Предприятие: АО "ВНИИ "Вега"

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

Сообщение serg_vega » 18 ноя 2021, 11:13

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

SanekV
Специалист
Сообщения: 17
Зарегистрирован: 01 ноя 2013, 09:38

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

Сообщение SanekV » 18 ноя 2021, 11:31

По ТУ:
допускается возможность одновременной подачи и снятия напряжений питания и напряжений входных сигналов.

serg_vega
Сообщения: 69
Зарегистрирован: 20 июл 2020, 15:50
Предприятие: АО "ВНИИ "Вега"

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

Сообщение serg_vega » 18 ноя 2021, 11:37

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

_sva_
Специалист
Сообщения: 205
Зарегистрирован: 12 ноя 2009, 17:42
Откуда: Воронеж
Contact:

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

Сообщение _sva_ » 22 ноя 2021, 10:53

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

Ответить

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

Пользователи онлайн

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя