Показать сообщение отдельно
Старый 05.08.2015, 05:17   #27
olegik_ah
Новый Пользователь
 
Аватар для olegik_ah
 
Регистрация: 05.08.2015
Возраст: 41
Город: Москва
Регион: 77, 97, 99, 177
Машина: Audi A5
Сообщений: 29
olegik_ah is a jewel in the rougholegik_ah is a jewel in the rougholegik_ah is a jewel in the rough
По умолчанию

Цитата:
Сообщение от Disgraced Посмотреть сообщение
Достал Ардуино Уно, испробовал кучу разных библиотек, результат нулевой.
По прежнему не хочет инициализировать шину.
Похоже проблема в шилде.
Bersenev не могли бы вы дать схему по которой собирали свою щилду?
Привет!
Тоже вмешаюсь в разговор. Не так давно мутил проектик для своей ауди. Тоже весь мозг сломал по поводу can сниффилки. Купил шилд и ардуину - не мог подружить. Что только не делал. И кварц менял и трансивер... После 2 недель пыток пришла мысль о том, что шилд мертв. Шилд, кстати, был такой-же, как у тебя... Покупал я его в России. Было безумно жалко денег на новый шилд. Порылся на алиекспрессе и нашел дешманские варики. И купил сразу по 5 штук
Ардуина нано http://ru.aliexpress.com/item/Nano-3...659109175.html 151руб штучка
CAN шилд http://ru.aliexpress.com/item/5pcs-l...259606078.html 200рублей штучка.

С этим всем заработало почти сразу... Вот мои комменты:
0. Если ни с какими либами шилд не хочет инициализироваться - либо мертв шилд, либо не корректное подключение...
1. Перед включением еще раз проверяем провода. В моем случае ардуина питалась от USB, а шилд от ардуины. Соединяем MOSI, MISO, SCK, +5 и землю. Любой не задействованный DigitalPin в качестве CS для модуля (его же и в скетче указываем). INT по началу можно вообще не использовать.
2. Для общения с машиной нужно только 2 провода CanH и CanL. Общая земля с машиной не нужна. Скорее всего от общей земли с машиной у меня умер трансивер на первом шилде. Если попутать H и L - ничего страшного не будет. Шилд инициализнется, но данных не будет.
3. Важно выбрать нужную либу - если кварц на 8мгц - нужна соответствующая либа. Почти все либы в нете на 16мгц. Просто замена кварца на 16мгц не приносила результатов. Если кварц не совпадает с либой, то инициализация все равно проходит успешно... только данных нет никаких... или в шину начинает что-то срать - аж блоки теряются.
4. В некоторых либах фильтры изначально настроены так, чтобы ничего не принимать (нужно глядеть код либы). В этом случае инициализируем их, чтобы принимать все:
CAN.init_Mask(0, 0);
CAN.init_Filt(0, 0, 0);
CAN.init_Mask(1, 0);
CAN.init_Filt(1, 1, 0);
5. И самое важное. В некоторых автомобилях (к примеру у меня в AUDI) на диагностическом разъеме (ODB) нет вообще ничего и работает он в режиме запрос-ответ. Т.е. если у диаг шины ничего не спросить - то будет тишина. Поэтому нужно вкурить место подключения. У меня 4 различные шины (моторная, комфорт, инфотеймент и диагностическая). Нужно понимать, что не во всех шинах есть вся информация... И скорости у шин могут быть разные. У меня часть 100, часть 500...

Если интересно, то могу прислать фотку с подключением, либу и скетч...
olegik_ah вне форума   Ответить с цитированием