Ioann_II 0 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба Здравствуйте, Уважаемые коллеги. Начал разбираться с CAN. МК STM32F103C8T6. Запустил в режиме Loopback - отправка сообщений работает, приём тоже. Физически посылка на выводе PA12 присутствует. Теперь соединяю PA12 и PA11 (CAN_TX и CAN_RX) и перехожу в режим Normal. Получаю ошибки: ACK error, и затем EWGF, EPVF и BOFF. Счётчик ошибок передачи увеличивается до 0x80. Использую библиотеку HAL - прошу сильно не пинать за это. Не пойму, в чём дело - может где что забыл проинициализировать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mareng 1 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба CAN не UART, замыкать TX и RX нельзя. Нужно подключить второе CAN-устройство через физику, например снифер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
died_once 0 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба Как написали выше - RX и TX замыкать нельзя при передаче приемник нужен для определения коллизий АСК тебе формирует любое другое устройство на кан шине, которое приняло пакет , допустим компьютер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба Не соображу, почему нельзя соединять? Цитата при передаче приемник нужен для определения коллизий Вы имеете ввиду, что приёмник получается занят определением коллизий и сообщение принять не сможет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
died_once 0 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба Почитайте как работает кан, как происходит борьба за шину. в момент передачи кадра приемник слышит только себя.грубо говоря когда передатчик передает, приемник его проверяет. и если кто то другой начинает в этот момент передавать - то приемник видит несоответствие и дает ошибку арбитража. Это все происходит на аппаратном уровне. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба Про арбитраж читал. Ну ладно, вроде как немного разъяснили. Придётся делать второе устройство. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasily_ 59 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба 25 минут назад, Ioann_II сказал: Придётся делать второе устройство. Как можно что-то делать с каном не имея кан сканера, не понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба Ну я начал с режима loopback. Теперь буду делать макет с 2-мя устройствами (а может быть, с 3-мя.). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба 51 минуту назад, Vasily_ сказал: Как можно что-то делать с каном не имея кан сканера, не понятно. Можно, когда рабочее время разработчика стоит меньше этого сканера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aldec 0 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба RX TX это выход UART, Интерфейс CAN это сеть, витая пара D+ D- Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба 27 minutes ago, Aldec said: RX TX это выход UART, Интересные сведения, спасибо. Жаль, что неправильные, ну да ладно, мелочи... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба Сканер, конечно-же, купим. Сейчас просто пока что ещё нечего было сканировать. Но был макет с установленной стм-кой, на которой попробовал запустить CAN в режиме Loopback и посмотреть на передачу, прерывания и ошибки. А как будет макет с 2-3-мя устройствами - будет и сканер. 1 час назад, Aldec сказал: RX TX это выход UART, Интерфейс CAN это сеть, витая пара D+ D- D+ D- это USB , а Rx Tx не только у UART, CAN тоже Rx Tx. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aldec 0 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба Если верить даташитам то на конвертере CAN, RO DI Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 8 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба в принципе, второе устройство не нужно "чтобы посмотреть" - можно запаять "драйвер" и должно работать замыкать выходы драйвера для лупбэка не надо :) , резистор 60 Ом (если не ошибаюсь) между CANH и CANL можно поставить. https://www.chipdip.ru/catalog-show/transmitters-receivers-transceivers-interface?x.4229=ycd&sort=priceup&gq=CAN Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 25 сентября, 2019 Опубликовано 25 сентября, 2019 · Жалоба Речь не о конвертерах (о физ. уровне), а о самом контроллере 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. А получилось совсем не так - сразу появились ошибки, о которых я писал в начале темы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться