реклама на сайте
подробности

 
 
> Работа stm32f103 с ELM327 (не удается установить связь)
voicek
сообщение May 6 2015, 11:19
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 10-10-10
Из: Королёв Моск.обл.
Пользователь №: 60 052



Проектирую автомозг на STM32. Пытаюсь настроить общение с адаптером OBD2 ELM327 USB по кан шине.

В режиме loopback с отрванным драйвером MCP2551, посылка отправляется и приходит.
Подключаю драйвер. Режим normal, sjw=1, ts1=3, ts2=4, bpr=18, если частота APB1 - 36МГц, то скорость получается 250 Kbaud.
Пытаюсь отправлять из терминала в ELM данные. Модуль кан генерит прерывание по ошибкам (я его включил), и в регистре ESR в поле LEC выставляется значение 0х01. По даташиту это - Stuff Error.

000: No Error
001: Stuff Error
010: Form Error
011: Acknowledgment Error
100: Bit recessive Error
101: Bit dominant Error
110: CRC Error
111: Set by software

Что обозначает Stuff Error? Может кто ковырял подобную связку, поможите...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
lead_seller
сообщение May 6 2015, 18:58
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 27-10-08
Пользователь №: 41 225



Stuff error - это ошибка стаффинга.
Возникает она в случае, если передающее устройство передает больше чем 5 одинаковых бит. В стандарте CAN заложено прореживание последовательностей из 5 одинаковых бит, противоположными битами. Например, если вы передаете 0xFF ну или 0b1111 1111, то в шину будет передано 0b111110111.
Соответственно, либо к Вам приходит сообщение, которое нарушает этот стандарт (а это может происходить из-за разницы в скоростях приемник-передатчик), либо Ваша шина находится в доминантном состоянии, что расценивается как непрерывная передача бита "1". Посмотрите, что происходит на шине, при включении Вашего приемника. И посмотрите, что происходит на ногах CAN_RX и CAN_TX драйвера.
Попробуйте поотправлять сообщения при подключенном драйвере, но отключенной шине.

При включении любого CAN-приемника в сеть, Вы должны увидеть прямоугольный импульс - это проходит тестирование шины.
Так же, при начале передачи каждого пакета вы увидите переход из рецессии в доминанту - это занятие линии.
Go to the top of the page
 
+Quote Post
voicek
сообщение May 9 2015, 13:23
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 10-10-10
Из: Королёв Моск.обл.
Пользователь №: 60 052



Заработало. Банально ошибся. Драйвера пишу свои, и в функции настройки скорости передачи, регистрам sjw, ts1, ts2, bpr задавал значения из аргументов, т.е. 1,2,3,4.. А считаем то с нуля, т.е. 1 в аргументе - 0 в регистре... sm.gif Поправил и все взлетело... sm.gif Спасибо комраду lead_seller, за то что откликнулся...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 00:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.0136 секунд с 7
ELECTRONIX ©2004-2016