Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


Ответ
Опции темы

Знатокам шины CAN. Как программно можно сбросить счетчики ошибок шины CAN по приему и передаче?

Непрочитано 04.12.2018, 11:29   #1
retro55
Временная регистрация
 
Регистрация: 15.12.2006
Сообщений: 74
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 3 сообщении(ях)
retro55 на пути к лучшему
По умолчанию Знатокам шины CAN. Как программно можно сбросить счетчики ошибок шины CAN по приему и передаче?

Дело в том, что в нормальном режиме, когда можно и передавать в шину CAN сообщения и принимать сообщения, отсутствие подтверждения камень воспринимает не иначе, как ошибку, увеличивает счетчик ошибок передачи TEC на 8. Досчитал до 250 и привет родителям, входит в ступор, который называется bus of состоянием. Вывести его из этого состояния мне не удалось никакими силами. Вообще как я понял, единственным метод борьбы с счетчиками это передача и прием правильных сообщений, то-есть с подтверждением, все как положено. Сбросить счетчики мне удалось только путем полного выключения платы. Можно конечно работать в режиме loopback, но тогда не сможешь читать сообщения с шины, а только свои собственные, что не очень интересно. Камень stm32f205 с двумя CAN шинами.
Реклама:

Последний раз редактировалось retro55; 04.12.2018 в 11:34. Причина: jhgvkkuj
retro55 вне форума   Ответить с цитированием
Непрочитано 04.12.2018, 11:41   #2
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Знатокам шины CAN. Как программно можно сбросить счетчики ошибок шины CAN по приему и передаче?

Вполне можно с этим бороться, я на STM32F042 тоже сначала мучился (при отсутствии "слушателей" на шине было невесело), но настройками удалось выкрутиться.
Вот так все ошибки сбрасываются:
Код:
    if(CAN-›ESR & (CAN_ESR_BOFF | CAN_ESR_EPVF | CAN_ESR_EWGF)){ // much errors - restart CAN BUS
        MSG("bus-off, restarting\n");
        // request abort for all mailboxes
        CAN-›TSR |= CAN_TSR_ABRQ0 | CAN_TSR_ABRQ1 | CAN_TSR_ABRQ2;
        // reset CAN bus
        RCC-›APB1RSTR |= RCC_APB1RSTR_CANRST;
        RCC-›APB1RSTR &= ~RCC_APB1RSTR_CANRST;
        can_status = CAN_ERROR;
}
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!

Последний раз редактировалось eddy; 04.12.2018 в 11:44.
eddy вне форума   Ответить с цитированием
Сказали "Спасибо" eddy
retro55 (04.12.2018)
Непрочитано 04.12.2018, 13:16   #3
retro55
Временная регистрация
 
Регистрация: 15.12.2006
Сообщений: 74
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 3 сообщении(ях)
retro55 на пути к лучшему
По умолчанию Re: Знатокам шины CAN. Как программно можно сбросить счетчики ошибок шины CAN по приему и передаче?

Сообщение от eddy Посмотреть сообщение
Вполне можно с этим бороться, я на STM32F042 тоже сначала мучился (при отсутствии "слушателей" на шине было невесело), но настройками удалось выкрутиться.
Вот так все ошибки сбрасываются:
Код:
    if(CAN-›ESR & (CAN_ESR_BOFF | CAN_ESR_EPVF | CAN_ESR_EWGF)){ // much errors - restart CAN BUS
        MSG("bus-off, restarting\n");
        // request abort for all mailboxes
        CAN-›TSR |= CAN_TSR_ABRQ0 | CAN_TSR_ABRQ1 | CAN_TSR_ABRQ2;
        // reset CAN bus
        RCC-›APB1RSTR |= RCC_APB1RSTR_CANRST;
        RCC-›APB1RSTR &= ~RCC_APB1RSTR_CANRST;
        can_status = CAN_ERROR;
}
Ну ты корифей, я только не понял, что то за функция
MSG("bus-off, restarting\n"); // объясни как этим пользоваться
У меня еще вторая проблема
В библиотеке HAL есть функция деинициализации CAN шины, называется HAL_CAN_DeInit ( ( &hcan2 ) ) , так вот эта функция не только выключает CAN шину но и переводит эти два пина в обычные входы. Если эта функция вызывается до того как CAN шина запускалась, то она работает нормально, но если CAN шина уже запускалась, то сразу после команды
/* Configure IO Direction in Input Floating Mode */
GPIOx-›MODER &= ~(GPIO_MODER_MODER0 ‹‹ (position * 2U));
выскакивает 0xf9 счетчик ошибок REC по приему на CAN1 и нормально на CAN2. В последствии я вообще перестал использовать эту функцию деинициализации. Я подозреваю, что там получается соединились два входа. Вход Тх микросхемы Mcp 2551 и вход микропроцессора B9, надо наверно поставить резистор на 3,3V килоом 5.
retro55 вне форума   Ответить с цитированием
Непрочитано 04.12.2018, 13:26   #4
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Знатокам шины CAN. Как программно можно сбросить счетчики ошибок шины CAN по приему и передаче?

Сообщение от retro55 Посмотреть сообщение
что то за функция
Это - для отладки, не обращай на нее внимания.
Сообщение от retro55 Посмотреть сообщение
В библиотеке HAL
Не надо калом пользоваться.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума   Ответить с цитированием
Непрочитано 04.12.2018, 23:02   #5
retro55
Временная регистрация
 
Регистрация: 15.12.2006
Сообщений: 74
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 3 сообщении(ях)
retro55 на пути к лучшему
По умолчанию Re: Знатокам шины CAN. Как программно можно сбросить счетчики ошибок шины CAN по приему и передаче?

Проблема решена.
retro55 вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ускорить компьютер 7Fantomas7 Ремонт оргтехники 111 08.08.2018 05:27


Часовой пояс GMT +4, время: 08:30.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.