Golikov 0 19 июня, 2018 Опубликовано 19 июня, 2018 · Жалоба Всем привет! Пытаюсь получить отправляемое сообщение в режиме loopback на nucleo платке. Платка одна и без физики кана. Кану клоки включил, скорость настроил, в регистре CAN_BTR битик loopback режима поставил. Фильтры настроил на прием по маске, маска 0. На tx пине вижу правильную посылку. Ни прерывания, ни счетчика сообщений входного фифо не вижу. Если loopback отключить - то вижу ретрансмиты, если включить то посылается и вижу статусы удачной посылки, ack игнорируется - то есть как бы все как должно быть в loopback. Однако если физически tx и rx на плате не замкнуть, то кан не выходит даже из слип режима, на rx видит вечный 0. Так и должно быть? Соединения rx и tx внутри кристалла не происходит? Кто пробовал запускать в loopback, можно это сделать без внешней физики? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 19 июня, 2018 Опубликовано 19 июня, 2018 · Жалоба Я только начал работать с STM32F429 (возможно нет принципиальных различий с CAN для 767). У него в док приведена схема с "внутренней" перемычкой. И то что идет по физическому Rx - игнорируется. Соотв-но или Loop back не включился, или что-то с фильтрацией. "Лепить" схему управления внешней перемычкой для само-диагностики как-то не логично. IMHO. ps Если не секрет, на чем базируется исх.код и какие ср-ва разработки используете ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novikovfb 17 20 июня, 2018 Опубликовано 20 июня, 2018 · Жалоба У миландровской реализации CAN для ARM есть бит приема/игнорирования собственных сообщений (Receive own packets). Может и тут есть похожая настройка? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 20 июня, 2018 Опубликовано 20 июня, 2018 · Жалоба ну кан всегда слушает входную линию и при передаче естественно слушает прием для арбитража. Режим loopback отбрасывает реакцию на отсуствие ака - это работает А еще я полагал что линия rx станет точной копией TX но почему то это не так. Если подключить физику то она сама транслирует TX на RX, но по описанию RX пин должен был игнорироваться... Он даже из слипа не выходит, без физики, явно слушает RX с 0 уровнем и ждет там единиц. Физика работает так же как просто перемычка RX-TX но данных все равно не принимаю:(... П,С, код на плюсах, своя библиотека, компилим gcc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 20 июня, 2018 Опубликовано 20 июня, 2018 · Жалоба ------------------------------------------------------------------------------------- В общем разобрался, тему можно закрывать. Для старта на RX нужна 1, чтобы кан вышел из слип режима. Для этого надо подключить либо внешнюю физику, либо просто замкнуть RX на TX, может можно ногу сделать выходной и зажать в 1. После того как кан вышел из слип мода он уже работает в loopback нормально, независимо есть перемычка или физика, или нет. Вот... проблема приема, естественно, была связана с неправильными фильтрами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 20 июня, 2018 Опубликовано 20 июня, 2018 · Жалоба В общем разобрался, тему можно закрывать. Спасибо за инф. Мануалы от STM увеличивают степень неопределенности во Вселенной. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться