Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32f105 не работает CAN при передергивании питания
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
yanvasiij
Доброго времени суток!
Ситуация такая. Процессор stm32f105, используется встроенный CAN. Написал софт и отладил его на отладочной плате, там все работало. Пришло целевое железо перенес софт на него - все работает, но с одним крайне неприятным нюансом. Когда передергиваю питание перестают отправляться фреймы по шине CAN. Если запускаю дебаггер - все работает, если сбрасываю через программатор или прошиваю со сбросом - тоже работает. А вот если я отключаю программатор и передергиваю питание, то фреймы по CAN перестают идти, а все остальное работает! Как это может быть? Причем заметил если судорожно передергивать питание иногда CAN начинает работать. Если кто знает или просто есть догадки, помогите.
smalcom
может неправильно инициализировали какой-то вывод и он в воздухе болтается?
yanvasiij
Цитата(smalcom @ Oct 23 2015, 13:34) *
может неправильно инициализировали какой-то вывод и он в воздухе болтается?



И как это может влиять на CAN? Ведь именно он отваливается.
KnightIgor
Цитата(yanvasiij @ Oct 23 2015, 10:36) *
И как это может влиять на CAN? Ведь именно он отваливается.

Когда-то давно пробегала тема errat'ы, что одна нога, ответственная за TAMPER - PC13, будучи незапрограммирована, влияла на узлы, совершенно с ней не связанные. Попробуйте запрограммировать ногу на выход.
yanvasiij
Цитата(smalcom @ Oct 23 2015, 13:34) *
может неправильно инициализировали какой-то вывод и он в воздухе болтается?



Цитата(KnightIgor @ Oct 23 2015, 14:48) *
Когда-то давно пробегала тема errat'ы, что одна нога, ответственная за TAMPER - PC13, будучи незапрограммирована, влияла на узлы, совершенно с ней не связанные. Попробуйте запрограммировать ногу на выход.


Хороша догадка, но увы не помогло. Сделал эти ноги на выход - ничего не изменилось, по-прежнему не стартует CAN при передергивании питания.
esaulenka
1. проверить, как себя ведёт плата, если её запитать, а потом перезапустить процессор (замыканием ноги reset, без всяких отладчиков)
2. сделать какой-нибудь вывод в консоль ошибочных ситуаций. Для CAN'а, скажем - не вошёл в режим конфигурирования, не вышел из него. Что с регистром статуса до передачи, после...
mantech
Цитата(yanvasiij @ Oct 23 2015, 13:34) *
Хороша догадка, но увы не помогло. Сделал эти ноги на выход - ничего не изменилось, по-прежнему не стартует CAN при передергивании питания.


Попробуйте поставить задержку при включении и до инициализации кан.
yanvasiij
Цитата(KnightIgor @ Oct 23 2015, 14:48) *
Когда-то давно пробегала тема errat'ы, что одна нога, ответственная за TAMPER - PC13, будучи незапрограммирована, влияла на узлы, совершенно с ней не связанные. Попробуйте запрограммировать ногу на выход.


Блин, неправильно запрогал ногу, когда эта догадка впервые тут появилась. Я ее случайно настроил на вход. Когда я сделал ее на выход то все заработало! Так что догадка была верной! Спасибо большое!!!
KnightIgor
Цитата(yanvasiij @ Oct 26 2015, 05:49) *
Блин, неправильно запрогал ногу, когда эта догадка впервые тут появилась. Я ее случайно настроил на вход. Когда я сделал ее на выход то все заработало! Так что догадка была верной! Спасибо большое!!!

Спасибо тому, кто эту тему ранее раскопал. Не найду ссылку... Я, кстати, глянул в свой код для F103. Нога PC13 у меня используется как вход, но запрограммирована как выход OK с записаной единицей, что позволяет ее по-прежнему использовать как вход, однако предотвращает непонятки. Комментария самому себе у меня в коде нет, но такой необычный путь сделать PC13 входом явно не случаен.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.