реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> STM32f105 не работает CAN при передергивании питания
yanvasiij
сообщение Oct 23 2015, 06:42
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Доброго времени суток!
Ситуация такая. Процессор stm32f105, используется встроенный CAN. Написал софт и отладил его на отладочной плате, там все работало. Пришло целевое железо перенес софт на него - все работает, но с одним крайне неприятным нюансом. Когда передергиваю питание перестают отправляться фреймы по шине CAN. Если запускаю дебаггер - все работает, если сбрасываю через программатор или прошиваю со сбросом - тоже работает. А вот если я отключаю программатор и передергиваю питание, то фреймы по CAN перестают идти, а все остальное работает! Как это может быть? Причем заметил если судорожно передергивать питание иногда CAN начинает работать. Если кто знает или просто есть догадки, помогите.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Oct 23 2015, 08:34
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



может неправильно инициализировали какой-то вывод и он в воздухе болтается?
Go to the top of the page
 
+Quote Post
yanvasiij
сообщение Oct 23 2015, 09:36
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Цитата(smalcom @ Oct 23 2015, 13:34) *
может неправильно инициализировали какой-то вывод и он в воздухе болтается?



И как это может влиять на CAN? Ведь именно он отваливается.
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Oct 23 2015, 09:48
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



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

Когда-то давно пробегала тема errat'ы, что одна нога, ответственная за TAMPER - PC13, будучи незапрограммирована, влияла на узлы, совершенно с ней не связанные. Попробуйте запрограммировать ногу на выход.
Go to the top of the page
 
+Quote Post
yanvasiij
сообщение Oct 23 2015, 10:34
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Цитата(smalcom @ Oct 23 2015, 13:34) *
может неправильно инициализировали какой-то вывод и он в воздухе болтается?



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


Хороша догадка, но увы не помогло. Сделал эти ноги на выход - ничего не изменилось, по-прежнему не стартует CAN при передергивании питания.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Oct 23 2015, 11:53
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



1. проверить, как себя ведёт плата, если её запитать, а потом перезапустить процессор (замыканием ноги reset, без всяких отладчиков)
2. сделать какой-нибудь вывод в консоль ошибочных ситуаций. Для CAN'а, скажем - не вошёл в режим конфигурирования, не вышел из него. Что с регистром статуса до передачи, после...


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 23 2015, 14:45
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(yanvasiij @ Oct 23 2015, 13:34) *
Хороша догадка, но увы не помогло. Сделал эти ноги на выход - ничего не изменилось, по-прежнему не стартует CAN при передергивании питания.


Попробуйте поставить задержку при включении и до инициализации кан.
Go to the top of the page
 
+Quote Post
yanvasiij
сообщение Oct 26 2015, 04:49
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



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


Блин, неправильно запрогал ногу, когда эта догадка впервые тут появилась. Я ее случайно настроил на вход. Когда я сделал ее на выход то все заработало! Так что догадка была верной! Спасибо большое!!!
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Oct 26 2015, 08:55
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



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

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

Сообщение отредактировал KnightIgor - Oct 26 2015, 09:03
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01443 секунд с 7
ELECTRONIX ©2004-2016