Jump to content

    

CAN шина STM32F103

7 минут назад, Ioann_II сказал:

В чём заключается отличие? У меня в макете с 1 МК при отсутствии ACK счётчик ошибок увеличивался каждый раз на 8 - это оно?

Контроллер будет увеличивать счетчик ошибок до состояния Error Passive. В этом состоянии при очередной ошибке ACK Error счетчик увеличиваться не будет, поскольку это вполне нормальная ситуация - последний абонент отключился от шины и не принимает сообщений. Передатчик отправителя при этом не должен уйти в Bus Off.

 

Цитата

Про CanFestival - а где его скачать и посмотреть?

На официальном сайте, конечно же. Краткий ликбезЛикбез побольше.

Share this post


Link to post
Share on other sites
5 часов назад, Ioann_II сказал:

А подскажите, а то пока что, как новичок в этом интерфейсе, не соображу, как прочитать эти адресные биты?

Я не знаю как в вашем МК. Но должна быть возможность задать маску адреса. У меня XMC4700. В нём для приёма CAN-сообщений конфигурируются message-объекты (MO). Для MO желающего принимать кадры с определёнными ID прописывается это ID в поле адреса. Но можно также задать маску для этого адреса. И замаскировать часть битов. Тогда в этот MO будут приниматься все CAN-сообщения соответствующие маске. А дальше просто - читаем из принятого MO замаскированные адресные биты и используем их как данные.

Думаю в STM должна быть аналогичная возможность задать маску ID.

Share this post


Link to post
Share on other sites

Благодаря всем откликнувшимся, в основном разобрался. На столе работает макет, с 3-мя устройствами, обмен идёт не первые сутки.

Хотелось запастись Вашими советами по обработке возможных ошибок - на какие ошибки надо обратить внимание в первую очередь, а какие можно не обрабатывать. На столе ведь идеальные условия... а если реальная линия передачи и в реальных условиях? Тем более, что предполагается достаточно длинная линия передачи - до 50 метров. Практики пока ещё у меня нет.

Спасибо.

Share this post


Link to post
Share on other sites

CAN аппаратно самодостаточный интерфейс.

В разных МК, конечно, общий набор ошибок может немного отличаться.

Но, как правило, ошибки самого CAN (Bus Off, Frame Error, и т.д.) едины для всех реализаций контроллеров.

Что делать с этими ошибками, конечно же, зависит от проекта. Я обязательно обрабатываю ошибки, связанные не столько с шиной, сколько с FIFO и мэйлбоксами.

Из ошибок шины, в основном, смотрю на Bus Off. Все остальные объединяю в один обработчик и использую, скорее, опционально, а не железобетонно (мониторинг сети, статистика ошибок).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now