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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Манипуляторы (http://pccar.ru/forumdisplay.php?f=163)
-   -   ДжосТик iDrive CAN + Android + Andruino (http://pccar.ru/showthread.php?t=22942)

Ацкий_Кот 20.03.2015 19:01

ДжосТик iDrive CAN + Android + Andruino
 
Всем доброго времени суток, хочу поставить себе джостик с iDrive, который работает по кан шине.
Ставить будем в bmw e39 , уже стоит мафн на андроиде в стиле под родной, теперь хотелось бы и джостик в тему.

Собственно джостик.

http://www.euronavi.ru/published/pub...285%29_enl.jpg

Имеет распиновку +12, Groung , Can-H , Can-L

Имеем в наличие андруинку Nano v7

Хотелось бы с помощью нее будить джостик и ловить с него данные.

В джостике на выходе висит микруха TJA1055T

Собственно вопрос номер один,
как разбудить устройство , тобишь данный джостик, при подаче питания нуль реакции, джостик новый куплен у оффдилера бмв.

зы темы аналогичные видел, но там простые джостики коммутировали напрямую андруинкой. Хотелось бы здесь реализовать полноценный джостик. С функционалом клавишь согласно их гравировке ))

T3CHNIK 20.03.2015 22:02

Я заморачивался! скажем так если сами не осилите скеч для ардуины то можете забыть о родной схеме.....
Правда у меня был от Е60
Выпотрошил девайс и перерезал дорожки всех кнопок (там движения кнопок лево право верх низ это физические кнопки а не сенсорные) потом выпотрошил клавиатуру с ЭНКОДЕРОМ и подключил нужные клавиши к кнопкам джойстика! потом удалил сенсоры с крутилки и воткнул механический энкодер которого подключил к той-же плате от клавиатуры....
Покажется что колхоз и конечно жалко ковырять чудо девайс от БМВ (мне было пофиг так как не люблю бмв) но это самый легкий и надежный способ
в винде кнопки можно перенаправить с помощью KeyRemapper а в андрюше Multilanguage key refinder

cherkasoff 20.03.2015 23:45

Цитата:

Сообщение от Ацкий_Кот (Сообщение 323779)
Имеет распиновку +12, Groung , Can-H , Can-L
Имеем в наличие андруинку Nano v7
Хотелось бы с помощью нее будить джостик и ловить с него данные.
В джостике на выходе висит микруха TJA1055T

Собственно вопрос номер один,
как разбудить устройство , тобишь данный джостик, при подаче питания нуль реакции, джостик новый куплен у оффдилера бмв.
зы темы аналогичные видел, но там простые джостики коммутировали напрямую андруинкой. Хотелось бы здесь реализовать полноценный джостик. С функционалом клавишь согласно их гравировке ))

Нужна ардуина, CAN-шилд, скетч, который будет выводить в терминал всё что получает по CAN.

Подать питание на джойстик, крутить-нажимать и смотреть, ловит ли что-нибудь ардуина. Скорее всего будет ловить. А там уже писать скетч.

Ацкий_Кот 23.03.2015 09:51

Цитата:

Сообщение от cherkasoff (Сообщение 323793)
Нужна ардуина, CAN-шилд, скетч, который будет выводить в терминал всё что получает по CAN.

Подать питание на джойстик, крутить-нажимать и смотреть, ловит ли что-нибудь ардуина. Скорее всего будет ловить. А там уже писать скетч.

Спасиб, жду когда приедет каншилд, вопрос в том как будить джостик.

Ацкий_Кот 23.03.2015 09:58

Хотя есть идея изучить TJA1055T , ибо смысл использовать двойное преобразование , в кан потом обратно из кан, может удасться подключить на прямую не используя кан шину.

Смотрю даташит и не могу понять, эта микруха тупой трансивер или при определенной кодовой последовательности она бУдит устройство.

cherkasoff 23.03.2015 17:00

Цитата:

Сообщение от Ацкий_Кот (Сообщение 323946)
Хотя есть идея изучить TJA1055T , ибо смысл использовать двойное преобразование , в кан потом обратно из кан, может удасться подключить на прямую не используя кан шину.

Смотрю даташит и не могу понять, эта микруха тупой трансивер или при определенной кодовой последовательности она бУдит устройство.

Не пойму, что значит будить? Он либо работает и отправляет коды, либо нет.

awtoap 23.03.2015 20:35

Это значит что пока джойстик не получить заветную команду скажем на пробуждение или что установлены в машине соответствующие блоки, которые будут реагировать на этот джойст по шине, он не будет отдавать свои данные.

cherkasoff 24.03.2015 00:19

Порыл интернеты, вот что пишут про БээНВэ:

Цитата:

No, K-CAN from E60 onwards is woken up over CAN. The modules use the Philips TJA1054 CAN transceiver that has a "wakeup" output, and that is used to enable the "inhibit" input of the devices main power control device (often an Infineon TLE4262). The slave devices on the bus are always supplied with Battery Voltage and ground. Any activity on the bus therefore causes the can transceiver to enable the devices power, which powers up the onboard micro. The micro then looks for a command to "stay awake". If it doesn't receive this command, it just goes back to sleep after about 4 secs.
Таким образом, чип должен получать с каким-то интервалом команду "не засыпай".

Вот еще, здесь уже пишут ЧТО ИМЕННО надо отправлять:

Цитата:

To send a wake up command to the k-can you need to sent a Terminal 15 / R on command.
This is canbus is 0x130, it will wake up all canbus devices (radio, Kombi, iDrive etc)

Sending packet {0x130, 5, 45, 40, 21, 8F, FE} at least every 750mS at the most and it will keep components awake.
The above command basically says, the ID is 0x130, it's 5 bytes long and the engine is running with the key in the ignition.
Осталось только понять что за K-CAN и чем оно отличается от CAN. Судя по всяким описаниям, это CAN на скорости 100kbps. В библиотеках я такое видел, вроде бы.

А вот еще пишут что iDrive это вообще ни какой не CAN:
Цитата:

the iDrive knob is actually LIN-bus protocol not CAN-BUS
Чем дальше в лес, тем больше дров :be:

cherkasoff 24.03.2015 00:22

Нашел еще вот такой проект iDrivino - ардуино и iDrive. Наверняка там можно нарыть интересного. Информации в сети - горы. Надо только лопату побольше и копать глубже :D

Ацкий_Кот 24.03.2015 15:37

Спасибо за информацию, я не сильно знаю енглишь, но в первом цитировании сказано что от любого сигнала просыпается или всетаки второе вернее ?
То что там кан это 100% точно , максимальная 128кб\с скорость, и описание интерфейса подтверждает это.

Осталось дождаться с эбея каншилд и пробовать.

Ацкий_Кот 25.03.2015 18:42

202 FD 00, а также только первые отсчетов байт, так что мы могли бы использовать только 202 FD (для максимальной яркости) или 202 44 (для тусклой яркости)

Также после отправки этой команды яркости, CON бодрствует, 100mA @ 12В

Чтоб не забыть , это корявый перевод гугла ))

Ацкий_Кот 17.04.2015 14:32

Посылка 5C1
F0 00 00 63 - ПРИ АКТИВАЦИИ БЛОКА (ВКЛ ЗАЖИГАНИЯ)
00 00 00 63 - ОТПУСКАНИЕ КЛАВИШИ
13 00 XX 63 - ИЗМЕНЕНИЕ ГРОМКОСТИ, XX - направление колеса от 00 до 0F, при увеличении приращение на 1, при уменьшении декремент на 1, ограничено одним полубайтом, зацикленно, т.е при увеличении громкости после 0F следует 00, при уменьшении после 00 следует 0F
2A 00 00 63 - НАЖАТИЕ КОЛЕСА ГРОМКОСТИ
02 00 00 63 - СТРЕЛКА ВЛЕВО
03 00 00 63 - СТРЕЛКА ВПРАВО
14 00 XX 63 - КОЛЕСО ИЗМЕНЕНИЯ ПУНКТА МЕНЮ, XX - аналогично громкости
28 00 00 63 - НАЖАТИЕ КОЛЕСА МЕНЮ
1A 00 00 63 - КНОПКА "ТЕЛЕФОН"

Ацкий_Кот 05.05.2015 15:41

Апну немного, приехал мой канбусшилд, а андруинка что-то не торопиться... имеющийся "обрезок" андруинки с нерабочим ISP портом оказался, не выдает тактирующие импульсы на ножке SCK

Ацкий_Кот 27.05.2015 10:47

As for "waking up" the iDrive knob, I've never tried what you're doing but I'll go out on a limb and say it doesn't need it. I'm willing to guess the knob is pretty dumb in that it just issues the same CAN commands over & over and lets the CAN gateway deal with the messages. Search my code in file idrivino.pde for the CAN section dealing w/ iDrive knob presses. You will be looking for CAN IDs starting with 0x1B8, which are the knob rotation & MENU button press. If you have an LCI iDrive controller, you'll have to sniff your own buttons related to the new direct buttons like NAV, etc.


заметка

Ацкий_Кот 27.05.2015 12:19

Known Can-Bus Codes so far:
(0x202, 2, 0xFD 0x00) – Light to maximum.

заметка

Ацкий_Кот 02.06.2015 12:38

Девайсы получил, с шилдом соединился удачно, но пока не могу понять как разбудить устройство, и если коды что выше верные, не могу понять как их отправить, по сути адрес данные посылки каким образом посылать, пока непонятно в теле программы адрес прописывать или из терминальной строки в каком то формате отправлять.

Ацкий_Кот 02.06.2015 15:42

С адресом вроде разобрался , в скетче задается, осталось разобраться с данными подбирать из имеющихся

lti1 02.06.2015 16:00

Я вот так в шину FF3 отправлял:
PHP код:

unsigned char stmp0[8] = {0x80,0xC3,0x00,0x02,0x00,0x00,0x00,0x00};
unsigned char stmp1[8] = {0x80,0xC3,0x00,0x01,0x00,0x00,0x00,0x00};

void loop()
{
   
CAN0.sendMsgBuf(0x3A08stmp0);
   
delay(1000);

   
CAN0.sendMsgBuf(0x3A08stmp1);
   
delay(1000);



Ацкий_Кот 02.06.2015 18:58

Цитата:

Сообщение от lti1 (Сообщение 329696)
Я вот так в шину FF3 отправлял:
PHP код:

unsigned char stmp0[8] = {0x80,0xC3,0x00,0x02,0x00,0x00,0x00,0x00};
unsigned char stmp1[8] = {0x80,0xC3,0x00,0x01,0x00,0x00,0x00,0x00};

void loop()
{
   
CAN0.sendMsgBuf(0x3A08stmp0);
   
delay(1000);

   
CAN0.sendMsgBuf(0x3A08stmp1);
   
delay(1000);




Спасибо сейчас не около девайса, завтра попробую

Chubaka885 02.06.2015 22:08

Я пробовал в своё время разобраться. Плюнул на всё это и поставил во внутрь ардуино. Год уже работает без проблем.
Будем следить что у вас получится.

Ацкий_Кот 03.06.2015 12:26

Ничего не понимаю пока, ток потребления 85mA , при нажатии на кнопки увелчивается на 0.1mA , при использовании крутилки на 4mA, но цуко нет подсветки, так не могу понять оно пробудилось или нет и почему нет ничего на шине CAN.

Chubaka885 03.06.2015 14:14

Подсветка, скорей всего включается по команде. Там по-моему даже яркость регулируется командами по шине.
Ты уверен что взял правильный CAN шилд?

Gorynch 03.06.2015 14:36

в iDrive используется TJA1054/5, а в шилде у тебя скорее всего MCP2551

Я не стал разбираться с его CAN, потому как машина не BMW была. Просто сделал свою плату с концевиками и прикрутил всё к mega16 и V-USB

lti1 03.06.2015 15:28

А есть ли разница какой чип используется? Протокол CAN единый.

tto4ka 03.06.2015 16:04

Вот тутhttp://www.volcano.at/iDrive/?p=21 у человека все есть :) собираюсь собирать шилд как у него, только на 1054, а то 55 дорогая шибко

Gorynch 03.06.2015 16:51

Цитата:

Сообщение от lti1 (Сообщение 329816)
А есть ли разница какой чип используется? Протокол CAN единый.

Есть

Gorynch 03.06.2015 17:47

Цитата:

Сообщение от tto4ka (Сообщение 329821)
Вот тутhttp://www.volcano.at/iDrive/?p=21 у человека все есть :) собираюсь собирать шилд как у него, только на 1054, а то 55 дорогая шибко

Я бы посоветовал взять Pro micro на atmega32u4 из-за аппаратного USB

tto4ka 03.06.2015 18:20

Так что то я совсем в ардуинах запустался, я что то про мини на сайте производителя не вижу, китайские вижу, а оригинального нет :) Ладно в принципе не важно это :) Все равно едет и то и то :) Если он герберы даст, то перерисую и под про мини и вытравлю и тех и тех плат

Chubaka885 03.06.2015 20:50

Цитата:

Сообщение от tto4ka (Сообщение 329837)
Так что то я совсем в ардуинах запустался, я что то про мини на сайте производителя не вижу, китайские вижу, а оригинального нет :) Ладно в принципе не важно это :) Все равно едет и то и то :) Если он герберы даст, то перерисую и под про мини и вытравлю и тех и тех плат

Для про мини нужен будет USB-UART. PВыше уже написали лучше брать про микро или леонардо.

tto4ka 03.06.2015 21:26

Цитата:

Сообщение от Chubaka885 (Сообщение 329853)
Для про мини нужен будет USB-UART. PВыше уже написали лучше брать про микро или леонардо.

Очепятался я :) Не вижу на сайте про микро :)
В общем мне едет:
Leonardo Pro Micro ATmega32U4 16MHz
Arduino MICRO ATmega32U4 16MHz
На сколь я понял TJA1054at отличается от TJA1055t только энергопотреблением 10ма против 5 и у TJA1055 посильнее защита от скачков напряжения?

Ацкий_Кот 08.06.2015 11:13

Цитата:

Сообщение от Gorynch (Сообщение 329822)

Озадачен.... может в этом трабла....
Хотя поправьте меня TJA1055T разве не совместим с каншилдом на MCP2551

Gorynch 08.06.2015 11:42

либо MCP2515 + TJA1055T, либо MCP2515 + MCP2551
2515 - трансляция сообщений из CAN в SPI
2551, 1055/1054 - согласователь уровней CAN и 2515

P.S. Вместо 2515 может быть сразу контроллер с поддержкой CAN

Ацкий_Кот 08.06.2015 12:05

Сейчас проверил , каншилдом отправляю , usb elm327 принимает данные

Ацкий_Кот 08.06.2015 12:07

Цитата:

Сообщение от Gorynch (Сообщение 330208)
либо MCP2515 + TJA1055T, либо MCP2515 + MCP2551
2515 - трансляция сообщений из CAN в SPI
2551, 1055/1054 - согласователь уровней CAN и 2515

P.S. Вместо 2515 может быть сразу контроллер с поддержкой CAN

Может не так написал у меня в джойстика стоит 1055 , а в шилде 2551 + 2515

awtoap 08.06.2015 12:12

Походу драйвера КАН не совместимы...в шилд тоже нужно пихать TJA1050(1055)

Ацкий_Кот 08.06.2015 12:49

Цитата:

Сообщение от awtoap (Сообщение 330217)
Походу драйвера КАН не совместимы...в шилд тоже нужно пихать TJA1050(1055)

Вот елки зеленые, так отсылать научился данные, вот как бы заставить elm 327 работать на 100кбит\с вместо 125кбит\с для контроля данных

Ацкий_Кот 08.06.2015 13:00

Вложений: 1
Заказал пока 1050 на всякий случай, бум думать може пока едет какой конвертер из навеснухи можно собрать ?

Ацкий_Кот 08.06.2015 15:26

ХМ сейчас глянул даташиты на 1050 и 2551 , микрухи идентичны абсолютно
поправьте если не так


тогда для контроля попробую заставить работать elm327 на 100 кбит\с и добивать джойстик

Gorynch 08.06.2015 16:48

Если внимательно посмотришь на ссылку, что я давал выше, то увидишь, что уровни сигналов разные. Вот именно согласованием уровней и занимаются 2551 и 1055. Каждая заточена под свои уровни.
В джойстике у тебя 1055 преобразует сигнал конотроллера в CAN с соот-ми уровнями. А ты пытаешься их связать с 2551, которая рассчитана на другие уровни. Получается нестыковка.
Скажем так, пока я не заменил 2551 на 1041 (в машине стоит 1041 или 1050, не помню точно), ничего не получалось.
Но пока едет 1050 - пытайся, может получится ;)

Ацкий_Кот 08.06.2015 18:03

Gorynch , спасиб за инфу посмотрим

так а пока я настроил елм327 на 100кб\с
делать так

atdp B - устанавливаем нужный кан протокол с 125кб\с
at pp 2b sv 05 - устанавливаем скорость для него 100кб\с

впринципе в мануале есть, но вдруг с енглишем кто не сильно дружит


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

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