ovn 0 June 28, 2021 Posted June 28, 2021 (edited) · Report post На плате NUCLEO-F446RE( STM32F446RE) CAN2 работает, а CAN1 ошибка инициализации при одинаковом коде, хоть в Кубике, хоть ручками. Есть идеи почему не работает CAN1? Edited June 28, 2021 by ovn Quote Share this post Link to post Share on other sites More sharing options...
x893 4 June 28, 2021 Posted June 28, 2021 · Report post Конечно есть ! Потому что 1 != 2 Quote Share this post Link to post Share on other sites More sharing options...
ovn 0 June 29, 2021 Posted June 29, 2021 · Report post 16 часов назад, x893 сказал: Конечно есть ! Потому что 1 != 2 А без шуток? Quote Share this post Link to post Share on other sites More sharing options...
Arlleex 36 June 29, 2021 Posted June 29, 2021 · Report post 20 минут назад, ovn сказал: А без шуток? А какие тут могут быть шутки, когда Цитата ...ошибка инициализации при одинаковом коде... Quote Share this post Link to post Share on other sites More sharing options...
jcxz 52 June 29, 2021 Posted June 29, 2021 · Report post 4 минуты назад, Arlleex сказал: А какие тут могут быть шутки, когда Полистайте топик вверх: Для ТС нет разницы не то что между 1 и 2, но даже между разными МК. Поэтому не удивительно что у него не работает. Quote Share this post Link to post Share on other sites More sharing options...
ovn 0 June 29, 2021 Posted June 29, 2021 (edited) · Report post У STM32F103С8 один контроллер CAN, ещё и общее с USB прерывание, у STM32F446RE два контроллера CAN, CAN2 работает принимает-посылает, CAN1 ошибка инициализации такая же как в самом начале темы, т. е. причины проблемы не понятны, тактовый генератор стартует, флаг выставляется, код инициализации контроллеров идентичен(1 != 2 млять, естественно дескрипторы контроллеров и структуры разные). Похоже никто не может ответить почему, никто с этим не сталкивался. Ясно, что Кубик сам по себе глючный, хотя SPI флешка с использованием стандартных настроек Кубика и API функций HAL(см. соседнюю тему) заработала сразу. Edited June 29, 2021 by ovn Quote Share this post Link to post Share on other sites More sharing options...
Arlleex 36 June 29, 2021 Posted June 29, 2021 · Report post Да конечно не сталкивался, потому что только Вам и никому более не известно, что Вы там ковыряете и что там у Вас в коде нагенерировалось. У меня что на F429 оба CAN-а работают, что на F446. Код накатан без экосистемы куба, поэтому чем он отличается от Вашего я без понятия, как и Вы (это должно быть очевидно). Проверяйте схемы синхронизации периферии, везде ли правильные делители, везде ли правильно настроены GPIO; в конце концов, нет ли соплей между Rx/Tx, да и вообще есть ли контакт с нужных GPIO на Rx/Tx приемопередатчика. А то на отладочных платах любят 0-резисторами (отсутствующими по дефолту) подключаться к штырям. Quote Share this post Link to post Share on other sites More sharing options...
ovn 0 June 30, 2021 Posted June 30, 2021 (edited) · Report post 15 часов назад, Arlleex сказал: Да конечно не сталкивался, потому что только Вам и никому более не известно, что Вы там ковыряете и что там у Вас в коде нагенерировалось. У меня что на F429 оба CAN-а работают, что на F446. Код накатан без экосистемы куба, поэтому чем он отличается от Вашего я без понятия, как и Вы (это должно быть очевидно). Проверяйте схемы синхронизации периферии, везде ли правильные делители, везде ли правильно настроены GPIO; в конце концов, нет ли соплей между Rx/Tx, да и вообще есть ли контакт с нужных GPIO на Rx/Tx приемопередатчика. А то на отладочных платах любят 0-резисторами (отсутствующими по дефолту) подключаться к штырям. Проблема вроде не в PHY(физическом уровне). https://stackoverflow.com/questions/64840408/cannot-exit-sleep-mode-of-bxcan-on-stm32f429igt-in-loopback-mode ан...нет https://www.cyberforum.ru/arm/thread2011314-page2.html Решение: "Если нет трансивера и хочется погонять Сайлент лупбек то подтяните софтово ножку тх (или Rx) не помню к 3.3 и все будет ок. Иначе Кан не стартанёт" Подтянул RX CAN1 GPIO Pull-up, и инициализация прошла, а на CAN2 работает без подтяжки. Чудны дела твои, Господи. Edited June 30, 2021 by ovn Quote Share this post Link to post Share on other sites More sharing options...
Arlleex 36 June 30, 2021 Posted June 30, 2021 · Report post У Вас что, Loopback-mode? Вы на реальной сети проверяете или как? Quote Share this post Link to post Share on other sites More sharing options...
ovn 0 June 30, 2021 Posted June 30, 2021 (edited) · Report post 34 минуты назад, Arlleex сказал: У Вас что, Loopback-mode? Вы на реальной сети проверяете или как? Изначально, на STM32F103C8, вопрос был про Loopback-mode, не проходит инициализация, уже потом, когда заработало, в этом режиме, подключал физику. В общем, контроллер CAN тут сделан так, что он не работает без PHY(физики), хоть в Normal, хоть в Loopback, ему нужен приёмопередатчик, который RX подтянет к логической единице, если его нет, надо софтово подтягивать. Интересно, в RM про это написано? Edited June 30, 2021 by ovn Quote Share this post Link to post Share on other sites More sharing options...
Arlleex 36 June 30, 2021 Posted June 30, 2021 · Report post Сейчас то в чем проблема? Quote Share this post Link to post Share on other sites More sharing options...