Подключение can bus адаптера китайских магнитол лада веста
ВНИМАНИЕ! Подключение устройства требует специальных знаний! Неправильное подключение устройства может привести к поломке автомобиля!
1. Назначение: Передача всех пакетов информации из кан шины автомобиля в андроид MMS, формат принимаемых пакетов по USB - RealDash Can, Lin 01 VolksWagen для RockChip и Other Lada для MMS Teyes (в остальных случаях работа Lin не гарантируется)
новый версии 3_2, 5-ти и 4-x пиновая ответная часть, если установлен 4 пиновый разъем то нет пина GND в остальном совпадает с 5-ти пиновым, Цвет Can Hi - Зеленый, Can Low - белый, остальные цвета могут отличаться - ориентироваться требуется на нумерацию разъема.
3. Vesta Подключение кан шины: Соединить пин в пин Can Low в 17 пин разъема Mini Iso а Can Hi в 20 пин. Проверяйте ответные пины! может быть так, что 17 и 20 пустой! нужно тянуть от приборки или от OBD - цена вопроса 2 провода или провода кан шины
3.1. Teyes и сними совместимые на базе процессора SC9853 или UIS7862: подключаем в С7, также ориентируемся на фото
3.2. USB подключить в любой свободный порт (Рекомендую в одинарный)
4.1 Teyes
настройки кан пароль обычно 3368 или 168 выбрать Other или Teyes Lada version 1.0,
также динамические линии включаются из настроек в другом меню (на разных ммс по разному). ! , и в этом же меню статические линии отключить.
4.2 Основная программа общая для всех MMS и автомобилей скачивается из PlayMarket : VestaXR (для xRay, Сандеро, Логан2, Dutster она же, переключение из настроек программы) - наиболее оперативная поддержка клиентов в канале Telegram CMGAISD
Аналоговые входы, срабатывают от 4,5 в до 24в - Работа кнопок - Напряжение есть (Значение 2) или нет (Значение 1) - пакет данных USB ID 191
Для полноценной интеграции магнитолы в автомобиль необходимо настроить декодер CAN-BUS шины на работу с конкретной моделью. Рассказываем, как зайти в соответствующие настройки. А так же здесь можно найти пароль от заводских настроек (они же — инженерное меню, скрытые настройки).
Перед настройкой не забудьте обновить ПО CAN-BUS декодера до актуальной версии.
Для начала заходим в список установленных приложений путем нажатия круглой кнопки:
Выбираем пункт “Установки в автомобиле”:
Откроется приложение взаимодействия с системами автомобиля:
Если вы наблюдаете такую же картину, значит магнитола не настроена на взаимодействие с автомобилем. В этом приложении отображаются данные CAN-шины. Если в вашем автомобиле предусмотрено подключение к CAN-BUS (в случае Chevrolet Cobalt и Ravon R4 — да), то необходимо произвести соответствующие настройки.
Для этого в заводских настройках необходимо выбрать тип подключения CAN-шины, марку и модель автомобиля.
Возвращаемся на главный экран и жмем в нижнем правом углу по шестеренке:
Откроются настройки магнитолы. Нас интересует вкладка “Заводские настройки”. Тапаем по ней:
Магнитолой будет предложено ввести пароль для доступа к заводским настройкам. Опасаться этого не стоит, никакого сброса не произойдет. Вводим 168 и жмём “Да”:
В списке заводских настроек прокручиваем до интересующего нас пункта “Выбор системы авто”:
Видим четыре столбца (китайцы как всегда жгут: в слове из трех букв четвертого столбца умудрились допустить ошибку :)): Марка CAN BUS, Система авто, Выбор системы авто, CUN BUS. В первом выбираем производителя своего CAN-декодера. Если не знаете, то посмотрите на его корпусе стикер. Во втором ищем производителя автомобиля, и в третьем, соответственно, модель.
Выходим на главный экран и убеждаемся, что CAN-декодер заработал. В случае Chevrolet Cobalt и Ravon R4 можно попробовать включить подогрев сидений, появится всплывающее окошко с информацией о климате, уличной температуре и закрытых дверях:
На автомобилях, оборудованных мультирулем достаточно просто попробовать изменить громкость или переключить треки соответствующими кнопками. Магнитола должна будет отреагировать на эти действия.
В итоге можно снова зайти в приложение “Установки в автомобиле” и убедиться, что появились элементы управления конкретно для вашего автомобиля:
Среди них можно выделить уровень топлива в бензобаке (показания с ЭБУ ДУТ, особой точностью похвастаться не могут), температура охлаждающей жидкости ДВС, напряжение в бортовой сети, пристегнутые ремни, состояние концевика багажника, ручника, наличие стеклоомывающей жидкости. В некоторых автомобилях даже считываются числовые параметры, такие как обороты, скорость и пробег.
Инструкция по обновлению программного обеспечения CAN-BUS декодеров, применяемых в магнитолах Teyes.
Совместимость магнитол
Прошивки подходят для следующих моделей:
- Teyes SPRO;
- Teyes CC2;
- Teyes SPRO+;
- Teyes CC2+;
- Teyes CC3;
- Kingbeats K2+.
Совместимость CAN-BUS декодеров
Следующие коробочки CAN-декодеров заявлены как совместимые:
Актуальная версия ПО от 23 декабря 2021 года:
Старая версия ПО от 28 сентября 2021 года:
Старая версия ПО от 10 марта 2021 года:
Инструкция по установке
Весь процесс “прошивки” представляет из себя установку четырех APK файлов. APK-файл — разновидность архива, служащая файлом установки программ на устройствах с операционной системой Android. Так что от пользователя каких-то сверх навыков не требуется.
Для начала скачиваем четыре APK файла, расположенные выше в этой статье. Делаем это либо на компьютере с последующим копированием на USB-флешку, либо же открываем данный сайт непосредственно на магнитоле.
Открываем меню приложений на нашей магнитоле Teyes:
Шаг первый — перейти в меню приложений
Среди всех программ находим файловый менеджер — Файлы. Открываем его:
Шаг второй — открываем файловый менеджер
Находим с его помощью заранее скачанные четыре APK файла:
Шаг 3 — находим расположение скачанных файлов обновления
Названия на скриншоте незначительно отличаются, но суть от этого не изменяется. Теперь нам нужно в строгой последовательности установить каждый из них:
CANBUS.apk ➜ MS.apk ➜ Update.apk ➜ US.apk
Для этого просто тапаем по файлу и во всплывающем диалоговом окне подтверждаем установку. Если подобное действие совершается впервые, то система предложит перейти в настройки и разрешить установку из неизвестных источников. Проделываем это и возвращаемся к установке из файлового менеджера.
В итоге остается просто перезагрузить устройство и вновь приступить к настройкам CAN-BUS декодера. Успехов!
Приветствую форумчане. Давно у меня появилась идея создать CANBUS decoder для Lada Vesta под ГУ на базе PX5. Суть в том, что таких устройств для этой машины нет (точнее недавно появилась под ГУ от какого-то производителя и есть еще один, который применяется только для динамических парковочных линий и по достаточно кусачей цене).
Прошу Вас помочь мне в этом деле. На данный момент хочу попробовать только для динамических линий, а далее как пойдет.
Как идет ход моих мыслей:
- на драйве нашел статью по снифферу для CAN.
Как я понял LS CAN мне в этой схеме пока что не нужен. А MS CAN я буду подключать к пинам 6 и 14 раъема OBD (в Весте одна CAN-шина, по факту у меня есть CAN-H и CAN-L, штатно выведенные к ГУ).
BT модуля по идее у меня не будет, вместо этого UART я подключу к ГУ?
Питание можно сделать, а можно по идее запитаться от USB ГУ?
И еще вопрос - возможно ли сделать прошивку микроконтроллера через ГУ, чтобы не выводить лишних проводов и каждый раз не разбирать? Апк написать возможно смогу, если это возможно.
Один форумчанин согласился предоставить мне несколько команд. Пока что я ограничусь углом поворота руля:
Угол поворота руля.
Протокол 6 (CAN).
Адрес блока ЭУР 742
Адрес приемника 762
Запрос блоку 220100
В ответе первые два байта, без учета заголовка. Угол поворота руля = E - 3276,7
Открытый на данный момент вопрос - в каком виде нужно передать информацию по UART в ГУ или где можно запросить эту информацию.
Исходный код MTCCanbus по ссылке
Добавляю код из поста на драйве. Буду пытаться переписать под считывание только нужной информации (пока только угол поворота угла. Кто поможет переписать, буду благодарен. Код буду обновлять по мере правки.
// Instanciation of CAN interface
HardwareCAN canBus(CAN1_BASE);
CanMsg msg ;
CanMsg *r_msg;
CAN_STATUS Stat ;
void CANSetup(CAN_GPIO_MAP remap, CAN_SPEED speed)
// Initialize CAN module
canBus.map(remap); // This setting is already wired in the Olimexino-STM32 board
Stat = canBus.begin(speed, CAN_MODE_NORMAL);
canBus.filter(0, 0, 0);
canBus.set_irq_mode(); // Use irq mode (recommended), so the handling of incoming messages
// will be performed at ease in a task or in the loop. The software fifo is 16 cells long,
// allowing at least 15 ms before processing the fifo is needed at 125 kbps
Stat = canBus.status();
if (Stat != CAN_OK)
* Your own error processing here */ ; // Initialization failed
Serial1.print("Initialization failed");
>
// Send message
// Prepare and send a frame containing some value
void SendCANmessage(long byte dlength=8, byte d0=0x00, byte d1=0x00, byte d2=0x00, byte d3=0x00, byte d4=0x00, byte d5=0x00, byte d6=0x00, byte d7=0x00)
// Initialize the message structure
// A CAN structure includes the following fields:
msg.IDE = CAN_ID_STD; // Indicates a standard identifier ; CAN_ID_EXT would mean this frame uses an extended identifier
msg.RTR = CAN_RTR_DATA; // Indicated this is a data frame, as opposed to a remote frame (would then be CAN_RTR_REMOTE)
msg.ID = id ; // Identifier of the frame : 0-2047 (0-0x3ff) for standard idenfiers; 0-0x1fffffff for extended identifiers
msg.DLC = dlength; // Number of data bytes to follow
// Prepare frame : send something
msg.Data[0] = d0 ;
msg.Data[1] = d1 ;
msg.Data[2] = d2 ;
msg.Data[3] = d3 ;
msg.Data[4] = d4 ;
msg.Data[5] = d5 ;
msg.Data[6] = d6 ;
msg.Data[7] = d7 ;
CANsend(&msg) ; // Send this frame
>
void setup()
pinMode(PC13, OUTPUT); // LED
digitalWrite(PC13, PC13ON);
Serial1.begin(115200);
Serial1.println("Hello World!");
Serial1.println("Starting Astra-H sniffer v01 program");
for (bool flag=0;flag==0;)
<
Serial1.print("trying MS CAN. ");
CANSetup(CAN_GPIO_PB8_PB9,CAN_SPEED_95);
canBus.free();canBus.free();canBus.free();canBus.free();canBus.free();canBus.free();canBus.free(); // make sure receive buffer is empty
delay(200); // wait for receiving something
if ( ( r_msg = canBus.recv() ) != NULL )
Serial1.println(" OK!");
flag=1;
>
else
Serial1.println(" FAILED!");
delay(500);
Serial1.print("trying LS(SW) CAN. ");
CANSetup(CAN_GPIO_PB8_PB9,CAN_SPEED_33);
canBus.free();canBus.free();canBus.free();canBus.free();canBus.free();canBus.free();canBus.free(); // make sure receive buffer is empty
delay(200); // wait for receiving something
if ( ( r_msg = canBus.recv() ) != NULL )
Serial1.println(" OK!");
flag=1;
>
else
Serial1.println(" FAILED!");
delay(500);
>
>
>
Serial1.println("Time (ms) ; ID ; Length ; B0 ; B1 ; B2 ; B3 ; B4 ; B5 ; B6 ; B7 ");
digitalWrite(PC13, PC13OFF);
>
void loop()
while ( ( r_msg = canBus.recv() ) != NULL )
digitalWrite(PC13, PC13ON); // LED shows that recieved data is being printed out
Serial1.print(millis());
Serial1.print("; ");
Serial1.print(r_msg->ID, HEX);
Serial1.print("; ");
Serial1.print(r_msg->DLC);
Serial1.print("; ");
Serial1.print(r_msg->Data[0], HEX);
Serial1.print("; ");
Serial1.print(r_msg->Data[1], HEX);
Serial1.print("; ");
Serial1.print(r_msg->Data[2], HEX);
Serial1.print("; ");
Serial1.print(r_msg->Data[3], HEX);
Serial1.print("; ");
Serial1.print(r_msg->Data[4], HEX);
Serial1.print("; ");
Serial1.print(r_msg->Data[5], HEX);
Serial1.print("; ");
Serial1.print(r_msg->Data[6], HEX);
Serial1.print("; ");
Serial1.println(r_msg->Data[7], HEX);
digitalWrite(PC13, PC13OFF);
canBus.free();
> // close while
> // close void loop
Читайте также: