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

 
 
 
Reply to this topicStart new topic
> stm32 bxCAN при выходе из buss off не сбрасывает REC, из-за чего плохо выглядит на шине в сравнении с другим железом
yes
сообщение Sep 20 2018, 15:19
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



то есть вышел из bus off и практически сразу в него свалился, а остальные ноды не отваливаются, продолжают работать.
ну то есть шина шумная - все ноды отваливаются периодически, но у stm-а получается период короткий и слишком большие паузы между "доступностью шины"

стоит ABOM - то есть автоматом должен поймать 128 кусков по 11 рецесив бит и т.д.
вручную управлять выходом из bus off (то есть инициализирую по прерывания BOF) такая же фигня, счетчик REC остается в том состоянии что был (и TEC тоже, по-моему, но сейчас чего-то я засомневался - посмотрю позже)
а по описанию обработчика ошибок в CAN - должен выходить после инициализации с REC=TEC=0

это бага такая или я что-то не так делаю?

в принципе, сбросить эти счетчики у меня получилось сбросом всего камня, но хотелось бы найти более гуманный способ (ну и задержку сброс/запуск дает, и переделывать код под такой режим лень....)
Go to the top of the page
 
+Quote Post
редактор
сообщение Sep 24 2018, 07:04
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



BUS OFF чаще всего из-за несовпадения скорости (например внутренний генератор неточный).
Пересброс СAN обычно делается через его повторную инициализацию (чтоб весь МК не сбрасывать). Если в параметрах уверены - достаточно бывает установить режим инициализации СAN сбросить флаги ошибок, затем вернуться в рабочий режим.
PS - CAN использую не от STM.


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Sep 24 2018, 08:14
Сообщение #3


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

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



Я вопрос изучал года три назад (на STM32F105), и, в итоге, для сброса ошибок не делаю НИ-ЧЕ-ГО. Бит ABOM работает - при наступлении тишины в шине всё само собой восстанавливается.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
yes
сообщение Sep 24 2018, 19:30
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



я не говорю, что не работает и не восстанавливается:
на некотором удаленном тестбенче, с которого доступны только логи из устройства (прежде всего результаты периодических опросов статус-бит CAN-a, счетчиков ошибки и т.п.) и CAN-логгера, видно, что устройство на stm32 отваливается от шины чаще и имеет большую среднюю задержку на передачу сообщений

при отладе я увидел, что REC не сбрасывается
а тут написано
http://www.can-wiki.info/doku.php?id=can_faq:can_faq_erors
A node which is Bus Off is permitted to become Error Active (no longer Bus Off) with its error counters both set to 0 after 128 occurrence of 11 consecutive recessive bits have been monitored on the bus.

то есть после сброса stm32 оказывается не в active, а passive error

вопросы к более опытным товарищам: может ли это влиять на задержки? какой механизм выхода из BOF (сброс REC или нет) реализован в can контроллерах других фирм? может встречалась худшая работа stm, чем других контроллеров на одной шине?
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 27 2018, 07:42
Сообщение #5


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



ABOM = ENABLE ?

а. вижу да.

Сообщение отредактировал Jenya7 - Sep 27 2018, 07:43
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th April 2024 - 02:05
Рейтинг@Mail.ru


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