Перейти к содержанию
    

Здравствуйте, Уважаемые коллеги.

Начал разбираться с CAN. МК STM32F103C8T6. Запустил в режиме Loopback - отправка сообщений работает, приём тоже. Физически посылка на выводе PA12 присутствует. Теперь соединяю PA12 и PA11 (CAN_TX и CAN_RX) и перехожу в режим Normal. Получаю ошибки: ACK error, и затем EWGF, EPVF и BOFF. Счётчик ошибок передачи увеличивается до 0x80. Использую библиотеку HAL - прошу сильно не пинать за это.

Не пойму, в чём дело - может где что забыл проинициализировать? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

CAN не UART, замыкать TX и RX нельзя.

Нужно подключить второе CAN-устройство через физику, например снифер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как написали выше - RX  и TX замыкать нельзя

 при передаче приемник нужен для определения коллизий

АСК тебе формирует любое другое устройство на кан шине, которое приняло пакет , допустим компьютер 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не соображу, почему нельзя соединять?

Цитата

при передаче приемник нужен для определения коллизий

Вы имеете ввиду, что приёмник получается занят определением коллизий и сообщение принять не сможет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почитайте как работает кан, как происходит борьба за шину.

в момент передачи  кадра приемник слышит только себя.грубо говоря когда передатчик передает, приемник его проверяет. и если кто то другой начинает в этот момент передавать - то приемник видит несоответствие  и дает ошибку арбитража. Это все происходит на аппаратном уровне.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про арбитраж читал. Ну ладно, вроде как немного разъяснили. Придётся делать второе устройство.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Придётся делать второе устройство.

Как можно что-то делать с каном не имея кан сканера, не понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну я начал с режима loopback. Теперь буду делать макет с 2-мя устройствами (а может быть, с 3-мя.).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

51 минуту назад, Vasily_ сказал:

Как можно что-то делать с каном не имея кан сканера, не понятно.

Можно, когда рабочее время разработчика стоит меньше этого сканера.  :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 minutes ago, Aldec said:

RX TX это выход UART,

Интересные сведения, спасибо.

Жаль, что неправильные, ну да ладно, мелочи...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сканер, конечно-же, купим. Сейчас просто пока что ещё нечего было сканировать. Но был макет с установленной стм-кой, на которой попробовал запустить CAN в режиме Loopback и посмотреть на передачу, прерывания и ошибки. А как будет макет с 2-3-мя устройствами - будет и сканер.:biggrin:

1 час назад, Aldec сказал:

RX TX это выход UART,

Интерфейс CAN это сеть, витая пара D+ D-

D+ D- это USB :lol: , а Rx Tx не только у UART, CAN тоже Rx Tx.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в принципе, второе устройство не нужно "чтобы посмотреть" - можно запаять "драйвер" и должно работать

замыкать выходы драйвера для лупбэка не надо :) , резистор 60 Ом (если не ошибаюсь) между CANH и CANL можно поставить.

https://www.chipdip.ru/catalog-show/transmitters-receivers-transceivers-interface?x.4229=ycd&sort=priceup&gq=CAN

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Речь не о конвертерах (о физ. уровне), а о самом контроллере CAN, который, согласно теме, находится внутри STM-ки. А у неё выводы по даташиту обозначены как PA11, PA12 c альтернативными функциями CAN_RX CAN_TX или коротко Rx и Tx.

2 минуты назад, yes сказал:

в принципе, второе устройство не нужно "чтобы посмотреть" - можно запаять "драйвер" и должно работать

замыкать выходы драйвера для лупбэка не надо :) , резистор 60 Ом (если не ошибаюсь) между CANH и CANL можно поставить.

https://www.chipdip.ru/catalog-show/transmitters-receivers-transceivers-interface?x.4229=ycd&sort=priceup&gq=CAN

Вот тут чуть поподробнее:

Чем схема с запаянным драйвером будет отличаться от соединённых выводов МК?

Loopback я запустил, там, понятное дело, выводы соединять не нужно. Вот только когда я перевёл в режим Normal, я ожидал, что если замкну выводы, то будет то-же самое что и при Loopback. А получилось совсем не так - сразу появились ошибки, о которых я писал в начале темы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...