PCCar.ru - Ваш автомобильный компьютер


Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Общение с машиной

Ответ
 
Опции темы
Старый 20.06.2015, 22:36   #1
Disgraced
Пользователь
 
Регистрация: 17.02.2015
Возраст: 30
Город: surgut
Регион: 86
Машина: miata
Сообщений: 34
Disgraced is on a distinguished road
По умолчанию Arduino+CANBUS Shield

Помогите разобраться.
Имеется автомобиль семейства Mazda.

Имеется Ардуино Про Микро и CAN-BUS Shield.

Между собой соединял согласно даташита про микры и MCP2515 (прозванивал ноги).
Цитата:
Сообщение от lti1 Посмотреть сообщение
CAN-BUS Shield -> Ардуино
MOSI -> MOSI
MISO -> MISO
SCK -> SCK
CS -> к пину 10 ардуины
INT -> к пину 2 ардуины
GND -> GND
К одной из колодок содержащей CAN_H и CAN_L контакты подключился воткнув в колодку пару иголок, получившееся соединение прозвонил - контакт есть. Данные по шине в месте подключения передаются - инфа 100%.

Согласно найденной информации шина в мазде работает на скорости 500 kbps.
Пробовал залить example receive скетч идущий с CANBUS либой.
Эффект нулевой - в мониторе порта вообще ничего.
Судя по внешнему виду шилда - терминирующего резистора на нём нет, но для эксперимента выпаял резистор R2 - не помогло.
Что я делаю не так, и что мне надо сделать, чтобы стало как надо. Вопрос стоит не в расшифровке сообщений идущих по can, а в их простом получении, для начала.

PS диагностические приблуды мне не нужны. Использую ардуину с шилдом, потому как в итоге хочу получить самостоятельное устройство непрерывно передающее по шине определенную информацию.
Если есть альтернативные ардуине варианты (стоящие копейки) то предлагайте.
Миниатюры
Нажмите на изображение для увеличения
Название: IMG_20150620_204723.jpg
Просмотров: 983
Размер:	163.0 Кб
ID:	40245  

Последний раз редактировалось admin; 17.03.2017 в 02:23.
Disgraced вне форума   Ответить с цитированием
Старый 21.06.2015, 19:57   #2
Farman
Пользователь
 
Регистрация: 16.03.2009
Возраст: 33
Город: Baku
Регион: другой - для добавления сообщить ab
Машина: 2011\Opel Insignia
Сообщений: 65
Farman is on a distinguished road
По умолчанию

GND c массой на машине подключаете?
Farman вне форума   Ответить с цитированием
Старый 22.06.2015, 11:09   #3
Disgraced
Пользователь
 
Регистрация: 17.02.2015
Возраст: 30
Город: surgut
Регион: 86
Машина: miata
Сообщений: 34
Disgraced is on a distinguished road
По умолчанию

Цитата:
Сообщение от Farman Посмотреть сообщение
GND c массой на машине подключаете?
Нет, а надо? Если да, то мне непонятен принцип подключения - в авто сеть 12V, а ардуина с шилдом питаются от 5V с усб. Да и куда подключать - на ардуине только CAN_H и CAN_L.

В соседней теме у людей не работают параллельно подключенные к колодке OBD устройства - может причина в этом? Хотя у меня подключение скорее последовательное.
Disgraced вне форума   Ответить с цитированием
Старый 22.06.2015, 11:45   #4
Lehas
Пользователь
 
Регистрация: 13.09.2012
Город: Киров
Регион: 43
Машина: VW Touran
Сообщений: 62
Lehas is a jewel in the roughLehas is a jewel in the roughLehas is a jewel in the roughLehas is a jewel in the rough
По умолчанию

Цитата:
Сообщение от Disgraced Посмотреть сообщение
Нет, а надо? Если да, то мне непонятен принцип подключения - в авто сеть 12V, а ардуина с шилдом питаются от 5V с усб. Да и куда подключать - на ардуине только CAN_H и CAN_L.

В соседней теме у людей не работают параллельно подключенные к колодке OBD устройства - может причина в этом? Хотя у меня подключение скорее последовательное.
массу можно к корпусу разъема подключить.
В can шине не бывает последовательного подключения.
Lehas вне форума   Ответить с цитированием
Старый 23.06.2015, 13:20   #5
Disgraced
Пользователь
 
Регистрация: 17.02.2015
Возраст: 30
Город: surgut
Регион: 86
Машина: miata
Сообщений: 34
Disgraced is on a distinguished road
По умолчанию

Цитата:
Сообщение от Lehas Посмотреть сообщение
массу можно к корпусу разъема подключить.
В can шине не бывает последовательного подключения.
да, с последовательным соединением тупанул, но земля нафиг не нужна.
у шилда своя земля, у авто своя.
проблема не в этом. может быть всё таки в параллельном соединении? хотя если все системы в авто итак параллельно висят, то добавление шилда ничего не должно менять.
Disgraced вне форума   Ответить с цитированием
Старый 23.06.2015, 14:34   #6
Lehas
Пользователь
 
Регистрация: 13.09.2012
Город: Киров
Регион: 43
Машина: VW Touran
Сообщений: 62
Lehas is a jewel in the roughLehas is a jewel in the roughLehas is a jewel in the roughLehas is a jewel in the rough
По умолчанию

а масса шилда, ардуины и компа как нибудь с массой машиной соединены? шилд начинает принимать данные если подключена масса и can_h, на шилде начинает мигать светодиод.
Lehas вне форума   Ответить с цитированием
Старый 23.06.2015, 16:33   #7
lti1
Старший Пользователь
 
Аватар для lti1
 
Регистрация: 17.01.2010
Возраст: 41
Город: Самара
Регион: 63, 163
Машина: Skoda Octavia Tour && ̶F̶F̶3̶
Сообщений: 449
lti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond repute
По умолчанию

Масса не обязательна. У меня на Octavia Tour и на FF3 без массы всё отлично принимает и отправляет.
lti1 вне форума   Ответить с цитированием
Старый 23.06.2015, 16:51   #8
Lehas
Пользователь
 
Регистрация: 13.09.2012
Город: Киров
Регион: 43
Машина: VW Touran
Сообщений: 62
Lehas is a jewel in the roughLehas is a jewel in the roughLehas is a jewel in the roughLehas is a jewel in the rough
По умолчанию

Цитата:
Сообщение от lti1 Посмотреть сообщение
Масса не обязательна. У меня на Octavia Tour и на FF3 без массы всё отлично принимает и отправляет.
по одному проводу в любом случае работать не будет. либо обе кан, либо кан-х и масса
Lehas вне форума   Ответить с цитированием
Старый 23.06.2015, 17:08   #9
Disgraced
Пользователь
 
Регистрация: 17.02.2015
Возраст: 30
Город: surgut
Регион: 86
Машина: miata
Сообщений: 34
Disgraced is on a distinguished road
По умолчанию

Цитата:
Сообщение от Lehas Посмотреть сообщение
по одному проводу в любом случае работать не будет. либо обе кан, либо кан-х и масса
Ну так у меня и подключены оба can.
На шилде очень быстро моргает светодиод RX, почти непрерывно, и немного реже моргает светодиод TX - значит шилда чтото принимает. И либо не передаёт на ардуину, либо делает это неправильно.
Или ошибка в соединении ардуино-шилд или загвоздка в скетче.
Попробовал ради эксперимента в скетче разные скорости шины указывать - результата нет.
В мониторе порта вообще ничего не отображается. Если скорость неправильная так и должно быть? Или должен быть поток ничего не значащих цифр?
Disgraced вне форума   Ответить с цитированием
Старый 24.06.2015, 14:12   #10
Disgraced
Пользователь
 
Регистрация: 17.02.2015
Возраст: 30
Город: surgut
Регион: 86
Машина: miata
Сообщений: 34
Disgraced is on a distinguished road
По умолчанию

Итак, шина работает на скорости 500kbps - это 100%.
Прозвонил все контакты на моём безымянном шилде и на ардуине - подключены они между собой верно - 99%
Залил скетч с вот таким содержанием:
Код:
    if(CAN_OK == CAN.begin(CAN_500KBPS))                   // init can bus : baudrate = 500k
    {
        Serial.println("CAN BUS Shield init ok!");
    }
    else
    {
        Serial.println("CAN BUS Shield init fail");
        Serial.println("Init CAN BUS Shield again");
        delay(1000);
    }
В мониторе порта увидел ответ CAN BUS Shield init ok!
Значит дело в скетче для приёма сообщений с can шины.
Нашел вот такую информацию:
Цитата:
Сообщение от brokly;
Аппаратные фильтры настраивают получение драйвером только сообщений с определенными ID, вплоть до отключения приема сообщений. В вашей бибилиотеке это функции :

1
INT8U init_Mask(const INT8U num,const INT32U ulData); /* init Masks */
2
INT8U init_Filt(const INT8U num,const INT8U ext,const INT32U ulData); /* init filters */
Масок всего две.

Фильтров шесть, причем при определенных обстоятельствах первые два фильтра взаимодействуют с первой маской, остальные 4 со второй. Попробуйте проинициализировать фильтры так :
кодрасечатать?
1
CAN.init_Mask(0, 0); // разрешить маскам получать обычные сообщения
2
CAN.init_Filt(0, 0, 0); // разрешить фильтрам получать обычные сообщения
3
CAN.init_Mask(1, 0); // разрешить маскам получать расширенные сообщения
4
CAN.init_Filt(1, 1, 0); // разрешить маскам получать расширенные сообщения
Немного не отдупляю, как проинициализировать фильтры.
Disgraced вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 15:42.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Яндекс.Метрика