![]() |
Arduino+CANBus Shield - непонятка
Добрый вечер
Имеем arduino mega 2560+CANBus shield (sparkfun) и мерседес Пробовал разные скетчи и библиотеки. По сути они ничем не отличаются. Ситуация следующая: подключаем шилд к машине (на колодку магнитолы, там есть CAN и я знаю его скорость), на компе смотрим терминалом. Запускаем шилд, смотрим в терминале, что всё запустилось нормально без ошибок. Вставляю ключ зажигания, приходят две посылки и ..... всё. После этого, чтобы ещё что-то получить необходимо сбросить питание с ардуины и шилда и вытащить ключ. Тогда опять придут те же две посылки, если вставить ключ. А если не вставить ключ после переключения питания, а, например, нажать на кнопку снятия с охраны или постановку на охрану на родном ключе, то придут 6 посылок, но .... дальше опять тишина. Т. е. после подключения шилда приходят N первых посылок, после чего не приходит ничего пока не передёрнешь питание. Добавил моргание светодиода по переполнению таймера 2, он моргает исправно всё время. Пробовал изменять скорость - или тишина, или приходит одна посылка из 3х байт, а на нужной скорости посылки по 8 байт. Сделал ещё вот что. Подключил к одному компу VAGCOM с Васей диагностом (это кабель и программа для машин концерна VAG, кабель рабочий) а к другому шилд, соединил их между собой, и на Васе попробовал обращаться к разным блокам. Шилд всё отлично принимал. Причём без всяких переключений питания принимал столько пакетов, сколько отправлялось. По крайней мере, Вася пытался три раза достучаться к какому нибудь блоку, и шилд принимал три раза много всяких посылок. Потом я выбирал другой блок - и шилд опять всё принимал. Пробовал и к пассату подключить шилд, аналогичная ситуация. Может кто сталкивался с подобным или знает рецепт, как его готовить? |
Какой тип шины используется в мерсе? (HS-CAN? FT-CAN? ) какая скорость?
|
За тип не скажу, а скорость в данном месте (это CAN-B) - 83.333kbps
Я нашёл на забугорном форуме, что подключали mcp2551+mcp2515 к мерсу, вот только тема старая, не отзывается никто |
Когда я подключился в своей машине с шилдом на mcp2551 (HS-CAN) , а шина FT-CAN, сеть вообще умерла , все приборы потухли. Пришлось переделывать шилд под FT-CAN на TJA-1054. Короче, может в мерсе тоже Fault-tolerant CAN? Подробнее можешь почитать в соседней теме: Blaupunkt...
|
Допустим, но в пассате ситуация аналогичная. А для подключения к нему родной провод (VAGCOM) использует как раз микрочиповские элементы
И потом, у меня всё продолжает работать, ничего не отваливается. Просто приём пакетов прекращается после получения первой порции |
В машине может быть несколько сетей can: диагностическая, мультимедийная, кузова и т.д. VAGCOM - это диагностический прибор? Если да - то он подключается, как раз, к диагностической can, которая HS-CAN. А по поводу отваливается... у некоторых получается считать данные в FT-CAN прибором HS-CAN, оно может работать, но как-то криво. Попробуй узнать какая у тебя шина, может поискать в тех. документации на авто? Может есть принципиальная схема майфуна? А может вскрой магнитолу и посмотри какая микросхема подключена к can.
|
Конечно, есть несколько Кан шин
Но в пассате к шине комфорта тоже подключается микрочип Вскрыть магнитолу - это мысль, потому что по мерсам в инете информации крохи Но я подозреваю, что проблема в другом |
Попробуйте не с мегой, а с уно или леонардо.
У меня такой шилд без проблем в шкоде работает и с тем, и с другим. С Мегой могут быть проблемы. |
А что может быть не так с мегой? Там используется только SPI да UART по большому счёту.
Просто есть только мега. Хотя есть какие то просто авээрки старые ... |
Цитата:
|
У меня все это нормально работает. Срежте дорожку которая терминирует резистор на 120 ом. Гже он есть на вики у сиидсьудио.
|
На этом шилде (sparkfun, а не seedstudio, я указал в первом сообщении) нет этого резистора в принципе. Эти два шилда не совсем идентичны
Вроде нано ещё где-то валялась ... И сама Мега32 ... Не покупать же ещё одну плату. Попробую наваять из меги32 Хотя не верю, что причина в этом |
Тогда сорри, у меня от сиидстудио
|
А работает с мегой?
|
Цитата:
|
Цитата:
|
Цитата:
Осциллографом смотрел? |
Шина продолжает работать, шилд не видит данные. Чтобы увидел, нужно его обесточить и вытащить ключ зажигания. Потом включить шилд и вставить ключ. Если сначала вставить ключ, а потом включить шилд - ничего не примет. Можно ещё вместо ключа нажать на кнопки ключа, тогда шилд тоже принимает пакеты (6 штук). Причём для кнопок открытия и закрытия - разные
Осцилом (USB) посмотрел, как смог. Данные бегают |
А можно взглянуть на код прошивки?
|
Вложений: 2
Библиотека почти стандартная - я добавил только скорость 83.333 для мерса (там несколько таких скоростей - экспериментировал, на 3м варианте приём стабильный)
Скетч содержит элементы для вывода информации на I2C дисплей и использование джойстика, но я их почти сразу заремил и оставил только консоль. Попробовал сейчас на столе ещё с elm327 его скрестить. От elm'a пакеты приходят. Но тоже только один раз. т.е. запускаю elm на автоопределение протокола и шилд принимает пару пакетов (на соот-ей текущей выбранной скорости). elm ничего не находит, что и понятно, и отключается. Запускаю сканирование ещё раз - и шилд уже ничего не принимает. Помогает reset. Код скетча (он же есть и в архиве) Код:
// demo: CAN-BUS Shield, receive data |
В магнитоле стоит TJA1054AT - Fault-tolerant CAN transceiver
Так что с мерсом вроде понятно, почему не пашет. Но почему такая же петрушка и на пассате b6? |
Вложений: 1
Посмотрел твой код.
Есть одно замечание: все переменные, которые используешь в прерываниях (Flag_Recv, toggle, count) нужно объявлять 'volatile', возможно в этом проблема. И мне, в свое время, чем-то не понравилась эта библиотека от seeedstudio, я использовал другую. В архиве приложил. Есть еще программка для вычисления регистров скорости для mcp2515 - MBTime, мне очень помогла. |
Про MBTime, конечно же, знаю. Без неё скорость посчитать трудно. Но и в ней можно задавать различные параметры. Поэтому у меня и было несколько вариантов для скорости 83.333
Библиотеку попробую, спасибо. Да и про volatile был не в курсе. Нужно возвращаться на обычные avr'ки. |
Часовой пояс GMT +4, время: 18:55. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot