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

CAN stm32f767 without phy

Всем привет!

 

Пытаюсь получить отправляемое сообщение в режиме loopback на nucleo платке. Платка одна и без физики кана.

 

Кану клоки включил, скорость настроил, в регистре CAN_BTR битик loopback режима поставил.

Фильтры настроил на прием по маске, маска 0.

На tx пине вижу правильную посылку. Ни прерывания, ни счетчика сообщений входного фифо не вижу.

 

Если loopback отключить - то вижу ретрансмиты, если включить то посылается и вижу статусы удачной посылки, ack игнорируется - то есть как бы все как должно быть в loopback.

Однако если физически tx и rx на плате не замкнуть, то кан не выходит даже из слип режима, на rx видит вечный 0. Так и должно быть? Соединения rx и tx внутри кристалла не происходит?

 

Кто пробовал запускать в loopback, можно это сделать без внешней физики?

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


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

post-45848-1529430138_thumb.png

Я только начал работать с STM32F429 (возможно нет принципиальных различий с CAN для 767).

У него в док приведена схема с "внутренней" перемычкой. И то что идет по физическому Rx - игнорируется.

Соотв-но или Loop back не включился, или что-то с фильтрацией. "Лепить" схему управления внешней перемычкой для само-диагностики как-то не логично.

IMHO.

 

ps

Если не секрет, на чем базируется исх.код и какие ср-ва разработки используете ?

 

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


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

У миландровской реализации CAN для ARM есть бит приема/игнорирования собственных сообщений (Receive own packets). Может и тут есть похожая настройка?

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


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

ну кан всегда слушает входную линию и при передаче естественно слушает прием для арбитража.

Режим loopback отбрасывает реакцию на отсуствие ака - это работает

А еще я полагал что линия rx станет точной копией TX но почему то это не так. Если подключить физику то она сама транслирует TX на RX, но по описанию RX пин должен был игнорироваться...

Он даже из слипа не выходит, без физики, явно слушает RX с 0 уровнем и ждет там единиц.

Физика работает так же как просто перемычка RX-TX но данных все равно не принимаю:(...

 

 

 

П,С, код на плюсах, своя библиотека, компилим gcc

 

 

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


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

-------------------------------------------------------------------------------------

В общем разобрался, тему можно закрывать.

Для старта на RX нужна 1, чтобы кан вышел из слип режима. Для этого надо подключить либо внешнюю физику, либо просто замкнуть RX на TX,

может можно ногу сделать выходной и зажать в 1.

После того как кан вышел из слип мода он уже работает в loopback нормально, независимо есть перемычка или физика, или нет. Вот...

 

проблема приема, естественно, была связана с неправильными фильтрами.

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


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

В общем разобрался, тему можно закрывать.

Спасибо за инф.

Мануалы от STM увеличивают степень неопределенности во Вселенной.

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


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

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

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

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

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

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

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

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

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

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