PDA

Просмотр полной версии : Blaupunkt RD4 + CANhacker


autowp
03.11.2013, 18:10
День добрый.

Пытаюсь "на столе" завести магнитолу Blaupunkt RD4 (Peugeot/Citroen).
Не заводится: только CD-дека активна (забирает/отдает диск).
Т.к. магнитола в машине берет на себя в т.ч. ф-ии управления БК, то это наверное не удивительно.

Пытаюсь связаться с ней через CAN (иных связей с машиной у неё нет, а значит тут должно быть что-то, что влияет на её запуск/незапуск).

В качестве CAN адаптера использую http://amprog.ru/magazin2/canhacker-canusb с оригинальной программой-клиентом http://www.canhack.de/viewtopic.php?t=132

На шине тишина, а при попытке что-либо отправить загорается диод "error". Не пойму, что я делаю не так.
К сожалению я не знаю скорости CAN шины, которую следует выставить в настройках, но даже перепробовав все стандартные значения не получил ничего.

Может кто-нить что-нибудь подсказать, подтолкнуть в какую сторону копать?

awtoap
03.11.2013, 19:13
Для начала надо было выяснить про наличии самого CAN у бошки. Возможно там что-то свое.

autowp
04.11.2013, 04:23
Для начала надо было выяснить про наличии самого CAN у бошки. Возможно там что-то свое.

Судя по распиновке
Part A
...
Pin 10: data CAN high
Pin 13: data CAN low
Pin 16: ground - "масса" магнитолы
...

и по многочисленным (http://www.check-engine.ru/cars.php?list=models&brand=Peugeot) упоминаниям (http://www.youtube.com/watch?v=4gVKXUtPnBA) в сети (http://2din.su/e-store/list.php?SECTION_ID=8491), там именно CAN

Vic26
04.11.2013, 13:10
для начала надо определить скорость CAN шины, без этого дальше не сдвинешься

autowp
06.11.2013, 00:23
Скорость, судя по всему, 125kbps.

Магнитола рабочая - попробовал в машине - играет (только громко пищит каждые 2 сек, наверное какая-то защита).

Удалось получить первые признаки жизни: на скорости 125kbps, короткими проводами со снятым сопротивлением на canhacker (124 Ом между CAN-L и CAN-H) - получил "сигнал" [00 00] от ID=420 при включении питания магнитолы. Не при каждом включении - иногда загорается can error

Дальше ни с места: вернуть сопротивление - сигнал теряется, взять провод подлиннее (витую пару 2м) - сигнал теряется. Сопротивление со стороны магнитолы - сигнал теряется

Vic26
06.11.2013, 15:24
попробуй в машине почитать, если скорость правильная то будет много данных.

autowp
06.11.2013, 23:10
попробуй в машине почитать, если скорость правильная то будет много данных.

Пожалуй стоит попробовать. Чтобы не трогать провода - повеситься на CAN вместо магнитолы. Хотя я почти уверен в 125kbps

А пока ...

Предположил, что USB питание чем-то не устраивает и попробовал запитать CAN-адаптер от +12V через предусмотренные для этого контакты. Ничего не изменилось.

Полез напрямую в COM-порт через putty (терминал), из которого выудил, что код ошибки - 77.
Если я правильно понимаю, и это код от микросхемы SJA1000, то, согласно документации (http://www.nxp.com/documents/data_sheet/SJA1000.pdf), ошибка расшифровывается как "form error/error delimiter". Чем мне это знание помогло? Увы, ничем )

awtoap
06.11.2013, 23:21
Полярность кана не перепутал

autowp
06.11.2013, 23:37
Полярность кана не перепутал

Вот прям после вашего сообщения позвонил
между 13ым пином Part A (https://docs.google.com/document/d/1IAcHeXjPeKjOenuIdTnW4M7g0ISFCYODGsfomtJbuTY/edit) и 2ым пином (https://docs.google.com/file/d/0B9Rg9f6Q6NEFb094a1NBMnVmYk0/edit),
между 10ым пином Part A (https://docs.google.com/document/d/1IAcHeXjPeKjOenuIdTnW4M7g0ISFCYODGsfomtJbuTY/edit) и 7ым пином (https://docs.google.com/file/d/0B9Rg9f6Q6NEFb094a1NBMnVmYk0/edit)

Всё правильно. И земля на месте (на обоих пинах)

awtoap
06.11.2013, 23:45
Попробуй подключись к автомобильной шине...добейся стабильной работы железки.

autowp
07.11.2013, 01:32
Попробуй подключись к автомобильной шине...добейся стабильной работы железки.

Попробовал.

Скорость 125kbps. Снял дампы шины после включения зажигания и в простое. Все почти нормально ... в простое загорелся error, но продолжал писать лог - спишу это на колхозное соединение.

Сначала забыл снять терминатор (125Ом) - с ним ничего не принимало.

fmy1
08.11.2013, 14:14
awtoap
А не стоит ли у тебя в магнитоле в качестве CAN трансивера tja1054t?
Судя по схеме на магнитолу так оно и есть. Но схема похоже не совсем от твоей, хотя и Blaupunkt RD4, нужно проверить. А в канхакере стоит PCA82C250. И они не совсем совместимы на физическом уровне, хотя и работают совместно, но коряво.
Скорей всего CAN шина в машине (комфорт) Fault-tolerant (Low Speed tja1054t ) А каннахер работает на High-Speed (PCA82C250).
Для корректной работы надо или заменить PCA82C250 в канхакере на что –то подходящее, или сделать адаптер High-Speed to Fault-tolerant . А можно ничего не делать)) У меня точно так же работает канхакер (коряво). Хотя магнитола не Blaupunkt и машина совсем не Citroen.) Хотел сначала всё переделать, но потом плюнул. Работает и слава богу.)

Vic26
08.11.2013, 22:41
Я все таки думаю что скорость немного не совпадает, возможно там 125 с какими нибудь десятыми. Например у опеля одна шина 33.333 kbps а вторая 95.238 kbps
А CAN-транcиверы все совместимы между собой, если соответствуют стандарту.
Есть конечно вариант однопроводной CAN-шины, там другие трансиверы, но это не тот вариант.

autowp
09.11.2013, 00:30
Да, TJA1054T и стоит.

На всякий случай прозвонил, что это именно он (ибо есть ещё CAN ченджера).

Fault-tolerant адаптеры (ISO 11898-3) - какие-то уж слишком дорогие, редкие, с гальванической развязкой и корпусом от на ДИН-рейку. Страшна

Есть какой-то прибор, который можете порекомендовать попробовать?

fmy1
09.11.2013, 01:12
...
А CAN-транcиверы все совместимы между собой, если соответствуют стандарту...


Я не был бы столь категоричен.)
http://savepic.su/3752044.jpg
Да, TJA1054T и стоит.

На всякий случай прозвонил, что это именно он (ибо есть ещё CAN ченджера).
Fault-tolerant адаптеры (ISO 11898-3) - какие-то уж слишком дорогие, редкие, с гальванической развязкой и корпусом от на ДИН-рейку. Страшна
Есть какой-то прибор, который можете порекомендовать попробовать?

Таких готовых конверторов по вменяемой цене я тоже не встречал.
Только если самому спаять. Рублей в 300 наверно выйдет.)

autowp
09.11.2013, 01:32
https://www.peak-system.com/produktcd/Pdf/English/PCAN-TJA1054_UserMan_eng.pdf

Вот что мне нужно )

85 евров. Ух, жлобы

awtoap
09.11.2013, 01:40
Во бляха...я тоже считал, что физический уровень кан везде одинаковый.
Возможно этот переходник тебе поможет ). На края купить эту TJA и ноги RX TX присобачить к канхакеру, предварительно отсоединив эти линии от PCA.

fmy1
09.11.2013, 02:03
https://www.peak-system.com/produktcd/Pdf/English/PCAN-TJA1054_UserMan_eng.pdf
Вот что мне нужно )
85 евров. Ух, жлобы


Вообще то 85 евров за пару микросхем стоимостью 100р. действительно жлобство.
Наверняка просто скрестили PCA82C251 и TJA1055, что по типу этого
http://savepic.su/3798117.jpg
(Но что то мне в ней не нравится))
А чего ты так переживаешь? Работает и работает, всё равно совершенства не достичь.

autowp
09.11.2013, 02:05
Так не работает жешь толком. Дома вообще никак, а в машине с error'ами

autowp
09.11.2013, 02:15
Пригляделся, на canhacker'е стоит не PCA82C250 (http://www.nxp.com/documents/data_sheet/PCA82C250.pdf), а MCP2551 (http://users.ece.utexas.edu/~valvano/Datasheets/MCP2551.pdf), что впрочем ничего не меняет, не смотря на наличие фразы "The MCP2551 is a high-speed CAN, fault-tolerant device" в даташите

fmy1
09.11.2013, 02:33
А ты в машине на какую шину подключал? На диагностическую или которая на приёмник?

autowp
09.11.2013, 02:34
А ты в машине на какую шину подключал? На диагностическую или которая на приёмник?

Вместо приемника повесился

fmy1
09.11.2013, 02:42
Это только предположение, на диагностической должна быть High-Speed.
У меня по крайней мере так. Частота на ней 500 kBd, а на комфорте 83.3 kBd
Можно попробовать. И сравнить.

fmy1
09.11.2013, 02:44
И ещё. Всё таки уточни точную частоту шин. В сервис мануале должна быть.

awtoap
09.11.2013, 03:23
fmy1 Как раз привел схему того переходника (без индикации разве что)

fmy1
10.11.2013, 18:28
Вот для пыжиков случайно наткнулся.
http://savepic.su/3772248.jpg
http://savepic.su/3767128.jpg

Т.е выходит что 500kb/s (для диагностической)
И 125 (для комфорта)

fmy1 Как раз привел схему того переходника (без индикации разве что)
Там не совсем всё ласково. )

autowp
10.11.2013, 18:44
Вот для пыжиков случайно наткнулся.

Т.е выходит что 500kb/s


Там не совсем всё ласково. )
500 на Engine CAN, а на Comfort 125 - экспериментально уже подтвердилось.

>> Там не совсем всё ласково. )
А что там не ласково? Сейчас за неимением иного смотрю в сторону сборки переходника

fmy1
10.11.2013, 18:56
Дык ты попробовал на 500? И как?

autowp
10.11.2013, 19:04
Дык ты попробовал на 500? И как?

Дома: ни на какой другой сторости, кроме 125 вообще ничего не получил. НА 125 не стабильно получаю пару сообщений.

В машине: на 125 получил массу сообщений, но все равно не стабильно - контроллер сваливается в ошибку. На других скоростях тишина.

Пробовал ли я на 500 - вот прям точно сказать не могу - точно помню, что пробовал все меньшие (чем 125) скорости и точно пробовал 250.

На CAN Engine вообще ничего не пробовал

fmy1
10.11.2013, 19:13
На CAN Engine вообще ничего не пробовал
Вот, а с этого и надо было начать.) В машине.
Прежде чем огород городить, убедится полностью в работоспособности.)

autowp
11.11.2013, 23:19
Вот, а с этого и надо было начать.) В машине.
Прежде чем огород городить, убедится полностью в работоспособности.)

Убедился. В машине на 500kbps через OBD.

Право, лучше бы не работал - я бы хоть вывод, что дело в девайсе сделал. А так - остаюсь при своём непонимании.

autowp
11.11.2013, 23:50
Она ожила!

По порядку

1. Взял записанный в машине лог команд на комфорт шине при включении зажигания и запустил его циклически: магнитола зашелестела приводом и заиграла музыкой. Правда как-то очень тихо.
При этом canhacker постоянно с самой первой команды горит ошибкой.
Если взять запись шины, которую я сделал в момент простоя автомобиля с включенным зажиганием - магнитола не включится. Только с записи включения зажигания. Если остановить воспроизведение записи CAN, то магнитола выключается за 0.5-1сек после остановки.

2. Магнитола пищит раз в 1-2 секунды, заглушая музыку, о чём я снял видео (простите за вертикальный кадр - от счастья забыл все нормы приличия). Это защита. Надо прошить VIN.
Скорее всего среди команд, отправляемых при включении зажигания он присутствует и сверяется магнитофоном с сохраненным значением и можно было бы исправить прям в записи с шины, но гораздо проще подключить к машине и поменять, чем искать иголку в стоге сена.
[интересно, а подключить дома lexia к магнитоле в отсутствии BSI реально? =) ]

kDh184-9N-k

На видео видно как магнитола вырубается при попытке увеличить громкость - думаю, что всему виной маломощный БП. В машине такого не было.


Теперь надо найти ту самую команду, что вселяет в магнитофон жизненную силу

fmy1
12.11.2013, 15:18
..............

Право, лучше бы не работал - я бы хоть вывод, что дело в девайсе сделал. .......

Так наоборот хорошо.) Девайс значит рабочий.
....

Это защита. Надо прошить VIN. .........

Теперь надо найти ту самую команду, что вселяет в магнитофон жизненную силу

Аналогично.
Надо циклически подавать команду (500мс), а иначе выключится. “Ключевые” команды (замок зажигания) с ID- 000
А вот с кодом на магнитолу не так. Он просто PIN код, не привязанный к VIN,у, но зашит в мозгах авто, и конечно по шине проползает, но в неявном виде, в общем не удалось его локализовать. И его не перешить.

autowp
13.11.2013, 01:23
Попробовал завести дисплей (бк) по той же схеме

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

bsfPsDgVMQI

Что это может быть? Таки VIN-защита или дефект дисплея/подключения?

P.S. Шлю лучи негатива в карму продавану этого дисплея, не сообщившего о битых полосках пикселей

autowp
15.11.2013, 00:22
Так наоборот хорошо.) Девайс значит рабочий.


Аналогично.
Надо циклически подавать команду (500мс), а иначе выключится. “Ключевые” команды (замок зажигания) с ID- 000


Изучил запись. Устройства/сообщения с ID=000 нет.

Чтобы "всё работало" надо раз в 100мс посылать команду
036 8 0E 00 00 0F 01 00 00 A0
(можно увеличить интервал до 200мс, но не более. На записи ровно 100мс)

Больше ничего не требуется.

На всей записи от ID=036 приходят только такие команды, кроме одного случая - в самом начале записи
036 8 0E 00 00 0F 03 00 00 A0
что вероятно соответствует промежуточному положению ключа, через которое он проходит до включения зажигания.

Магнитола и дисплей активно спамят на шину. Тут меня встретило неожиданное: по каким-то причинам я рассчитывал увидеть несколько (два) ID, соответствующих отправителю сообщения: дисплею и магнитоле, но это оказалось не так.

ID (binary) ID DLC Data Period Count
000 1101 1111 0DF 3 10 00 50 0 1306
001 0011 0001 131 5 81 00 00 00 00 0 6434
001 0101 1011 15B 8 04 00 00 00 00 00 00 00 0 1357
001 0110 0101 165 4 CC C0 20 00 0 6522
001 0110 0111 167 8 09 06 FF FF 7F FF 00 00 0 6417
001 1010 0101 1A5 1 ED 0 1264
001 1110 0000 1E0 5 91 00 A2 00 80 0 1321
001 1110 0101 1E5 7 3F 3F 42 3F 3F 47 0F 0 1353
001 1110 1101 1ED 1 10 0 1324
010 0010 0101 225 5 20 00 40 04 82 0 1303
010 0110 0101 265 4 80 00 00 00 0 1304
010 1010 0101 2A5 8 00 00 00 00 00 00 00 00 0 1258
011 0010 0101 325 3 00 03 00 0 1319
011 0110 0101 365 5 0A 36 13 00 00 0 1266
011 1010 0101 3A5 6 01 01 2F 01 2B 00 0 1329
011 1110 0101 3E5 6 00 00 00 00 00 00 0 1229
011 1111 0110 3F6 7 00 7D D0 00 00 C0 01 0 702
100 0010 0000 420 2 00 00 0 141
100 1010 0101 4A5 8 50 F8 EB 80 03 04 05 06 0 4
101 0010 0000 520 8 00 00 00 00 26 00 00 00 0 599
101 0010 0101 525 8 05 00 00 00 00 00 00 00 0 660
101 1110 0000 5E0 8 20 1E 03 04 05 0E 20 0D 0 63
101 1110 0101 5E5 8 25 1A 07 04 0C 00 20 11 0 67

По всей видимости ID используется не для идентификации отправителя, а для идентификации типа сообщения (например: сообщение об изменении громкости).

З.Ы. Дисплей перестал моргать. Почему - не понял

fmy1
15.11.2013, 19:50
Изучил запись. Устройства/сообщения с ID=000 нет.
Я и не утверждал. Это у меня так.) Это одно из условий, хотя и не единственное, но позволяющее включить магнитолу.
Изучил запись. Устройства/сообщения с ID=000 нет.
Чтобы "всё работало" надо раз в 100мс посылать команду
(можно увеличить интервал до 200мс, но не более. На записи ровно 100мс)

Ну выходит что мне повезло в пять раз больше.)))

а для идентификации типа сообщения
Ага, можно сказать и так.
З.Ы. Дисплей перестал моргать. Почему - не понял
Это он понял тщетность своих попыток и смерился со своей судьбой.)

А ты на “столе” запускаешь всю эту хрень без резистора?
И какая цель изысканий?

autowp
15.11.2013, 19:59
А ты на “столе” запускаешь всю эту хрень без резистора?

Да, потому как с ним читать с шины не получается (писать - вроде нормально)

>> И какая цель изысканий?

Андроид в машину.
Главное - процесс. Впрочем, чтобы процесс имел цель, я её придумал

- микровзаимодействие через кан с магнитолой
- графический интерфейс срабатывания парктроника на экране андроида

autowp
15.11.2013, 20:01
>> Это одно из условий, хотя и не единственное, но позволяющее включить магнитолу.

Как минимум магнитолу ещё можно включать непосредственным нажатием на power, но дома она так не включается. Почему - пока не понимаю. Без зажигания на кан-комфорте никаких сигналов нет, значит контект одинаковый дома и в авто

autowp
15.11.2013, 22:51
Отучил магнитолу от старого VIN и приучил к новому.

Впрочем всего этого можно было не делать, знай я старый VIN.

По порядку.

Магнитола по-видимому не совсем такая как у меня, потому что DiagBox её не признал, однако это не помешало посмотреть в ней старый VIN и поменять на новый. VIN хранится полностью.
К сожалению включить AUX и отключить "наличие усилителя" не удалось из-за лаконичного "failed to programming", что наверное связано с unknown ECU. Можно было бы попробовать прикинуться Citroen C5 II и попробовать снова, но терпеть тормозной DiagBox не было больше сил.

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

Стал было методом "половинного деления" искать команду отправки PIN/VIN/checksum ... но остановился и решил проверить самое простое - наличие своего вина в ASCII .

В общем вот он, через 300мс после включения зажигания
2B6 8 32 31 34 39 36 34 36 34
21496464

Не смотря на то, что хранится полный VIN, на шину выдается только serial number и соответственно только он и сравнивается.

Достаточно один раз отправить после подачи питания на магнитолу. Повторять команду нет смысла.

fmy1
16.11.2013, 15:58
Да, потому как с ним читать с шины не получается (писать - вроде нормально)
А ты попробуй. Данные не читаются, да и хрен с ними. И понаблюдай. )

Как минимум магнитолу ещё можно включать непосредственным нажатием на power....
А у меня по определению включить лишь кнопкой невозможно! Так оно задумано, что в принципе удобно, если привыкнуть.
Отучил магнитолу от старого VIN и приучил к новому.
Поздравлям!

autowp
23.11.2013, 02:01
Бес вселился.

Решил-таки попробовать собрать "конвертер" CAN сигнала по приведенной схеме.
Заказал в поднебесной микросхемы и начал прикидывать что да как.

Плат я никогда не делал, поэтому конечно совершу какие-то ляпы и грубые ошибки, однако интерес в этом есть.

Сформулировал некоторые требования:
- не трогать canhacker
- коннектор переходника должен быть 1в1 как у canhacker
- переходник должен оставить возможность питаться от +12V
- переходник должен уметь питаться от canhacker (через USB)

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

на котором есть +5V. Им-то и решено было воспользоваться для подачи питания.

Вариант с размещением собственного стабилизатора на +5V не устраивает тем, что требует обязательного питания "от машины"

В качестве инструмента для создания схемы выбрал Eagle CAD. Управление в программе ужасное, нетипичное для программ в принципе. Да что там говорить: это первая в моей жизни программа, для которой я нашел ролик "How to copy and paste (http://www.youtube.com/watch?v=_Cp2g2sduPI)"

Нужных мне элементов в стандартной библиотеке не нашлось, поэтому обе микросхемы пришлось рисовать с нуля. Благо корпус у них достаточно простой (SOIC) и не вызывает вопросов.

Пассивные компоненты брал совершенно без какого-либо понимания, ориентируясь только лишь на маленький корпус. Думаю, что это не принципиально и что-нибудь так или иначе найду.

Итак, принципиальная схема:

http://pccar.ru/attachment.php?attachmentid=33659&stc=1&d=1385154692

Почти полностью повторяет то, что было приведено в этом посте выше, с небольшими доработками (разъемы, WAKEUP для TJA).

Но до конца дело довести не удалось:
- Осталось совершенно непонятным назначение VREF на MCP.
- Полное непонимание зачем и как использовать VCC и BAT на TJA. Правильно ли я понимаю, что без +12 на BAT драйвер будет выключен?

Если вразумите - буду благодарен.


Однако это не помешало мне ради экспириенса натыкать элементы на виртуальную плату и зароутить по имеющейся схеме:

http://pccar.ru/attachment.php?attachmentid=33658&stc=1&d=1385154692

Роутилось автоматически. Получилось весьма компактненько.
Однако мне совершенно не понятно, на сколько такая плата готова, например, к отправке в фирму, печатающую платы?
Не понятно, как наносить контуры элементов, надписи, чтобы они были напечатаны.

В аттаче даташиты и исходники

З.Ы. как сделать, чтобы картинки в миниатюрах не дублировались?

Vic26
25.11.2013, 17:27
Если ты решил изготавливать плату, то почему бы не повторить тот же самый Can-Hacker, только заменить в нем CAN-драйвер на нужный. Это будет более предсказуемый результат чем с переходником.

fmy1
25.11.2013, 20:59
Бес вселился.

уважаю! )

....WAKEUP для TJA).

Зря брат, верни на место, или ещё лучше через 100к. на +

- Осталось совершенно непонятным назначение VREF на MCP.

Не бери в голову. Оставь в покое и не парься.) Это просто референсное напряжение, никакого значения в данном случае не имеющее.Если ты решил изготавливать плату, то почему бы не повторить тот же самый Can-Hacker, только заменить в нем CAN-драйвер на нужный. Это будет более предсказуемый результат чем с переходником.
Вот это точно

autowp
01.12.2013, 19:06
Если ты решил изготавливать плату, то почему бы не повторить тот же самый Can-Hacker, только заменить в нем CAN-драйвер на нужный. Это будет более предсказуемый результат чем с переходником.

Мысль здравая, но я побаиваюсь большей сложности схемы: большее поле для ошибок.

Зря брат, верни на место, или ещё лучше через 100к. на +
Почему? Он же инверсный (low - проснись)
Вернуть на место (оставить в воздухе) мне не позволила программа - говорит, что это bad idea оставлять висящие input'ы


_________________________

Тем временем продолжил discovering RD4.
Решил, что надо начать с того, чтобы сделать мало-мальски удобный инструмент для анализа данных, а раз уж сам анализ для меня в новинку, то требуется какая-то микрозадача для решения.

Показалось, что не слишком сложным и одновременно ёмким будет эмуляция меню выбора CD-треков. Думаю, что не ошибся с выбором.

Для тех, кто не знаком с магнитолой: splash screen с линейным списком названий треков (cd-text), навигация вверх/вниз и, собственно всё.

Fast-forward: Java-приложение (во имя crossplatform), rxtx library, написание canhacker commands layer, поверх него canframe layer

Первым делом нужно было определить круг сообщений, отвечающих за это меню. Под это дело была сделана табличка с фильтром по id сообщений.
С её помощью не сложно было установить, что за это меню отвечают сообщения с arbitrationID = 0x125

7-и и 2-х байтовые фреймы, не сложный формат данных, show/hide и up/down заработали быстро.

И тут я вставил диск с CD-text'ом...
Оказалось, что по 0x125 идёт мультифрейм (ISO 15765-2 (http://en.wikipedia.org/wiki/ISO_15765-2)).
Пришлось проложить ещё один layer CanMessage, собирающий мультифреймы в одно сообщение.

Названия треков в latin-1 (привет, кириллица). 20 байт на исполнителя и 20 на название трека и формат 0x125ых команд полностью собран.

125 6 01110000 TTTTTTTT AAAAAAAA 0SXEBBBB MMMMMMMM 00000000 [[JJJJJJJJ x20] [HHHHHHHH x20] x0-4]
Показать меню списка треков.
TTTTTTTT - количество треков,
AAAAAAAA - offset экрана списка треков,
S - флаг "покажи список треков"
E - флаг "список треков сдвинулся" на 1 позицию выше или ниже за пределы 4х видимых в данный момент. Направление сдвига определяется по BBBB
BBBB - offset выбранного трека внутри экрана списка треков
MMMMMMMM - дескриптор текстовых данных, идущих далее.
каждая пара бит соответствует наличию исполнителя и названия трека, идущих далее пакетами по 20 байт в соответствующем порядке.
Позиции соответствуют позициям на экране, кроме ситуации наличия флага E
[JJJJJJJJ x20] - 20 байт имени исполнителя
[HHHHHHHH x20] - 20 байт названия трека

125 1 00000000 Спрятать меню списка треков. (Нажатие на OK после выбора трека в LIST, нажатие на ESC, по таймаут)

Пруфпикча
S4wn_jOJ2KY
(не знаю как лучше снять видео, в котором участвует яркий монитор. Но смею заверить, что слева - магнитола :smile2: )


А также собран небольшой набор инструментов, потребность в которых возникла в процессе:
- canhacker commands monitor
- can frame filter & monitor
- can message filter & monitor


Вопросы:
1. Как принято определять, какие пакеты являются мультифреймовыми?
В данный момент я хардово вписал, что сообщения 0x125 - мультифрейм, но, наверное, есть правильный способ?
Было предположил, что вообще все сообщения ходят по ISO 15765-2, но, например, сообщение с VIN кодом противоречит этому.

2. Изучать формат сообщений было конечно интересно, но все-таки очень хотелось бы разыскать какой-нибудь reference manual, где бы они были хотя бы перечислены. Но гугл почему-то не помог мне в этом. Не подскажете?



Вот тут (https://docs.google.com/spreadsheet/ccc?key=0AtRg9f6Q6NEFdGtPdTJNUUNpTkQ3OC1TTjdfRUtBV nc) начал складировать инфу по CAN сообщениям
А вот тут (https://github.com/autowp/CanClient) сорцы java (не пинайте - первый java экспириенс)

fmy1
01.12.2013, 22:02
Почему? Он же инверсный (low - проснись)
Вернуть на место (оставить в воздухе) мне не позволила программа - говорит, что это bad idea оставлять висящие input'ы


Когда STB и EN на +,он не играет значения. Судя по даташиту : To prevent a false local wake-up during an open wire at pin WAKE, this pin has a weak pull-up current source towards VBAT. However, in order to prevent EMC issues, it is recommended to connect a not used pin WAKE to pin BAT. Но это правда для Low power modes. Ну и по схемам магнитол, там на +, одна схема кстати от твоей.) НО!!! На моей магнитоле оказалось на 0.))) Специально влез и глянул(схемы то нет). Во как!. Так что поменял мнение, видимо можно и так и так.)
Слушай, а платки ты будешь делать? Если не затруднит одну для меня? Соответственно с меня..) Буду признателен

autowp
01.12.2013, 22:11
Сначала на соплях соберу, посмотрим, заработает ли в принципе. Ну а коли да, так и платку непременно надо будет сделать. Минимальный тираж так или иначе сделает "пару" лишних копий.
Но это все не скоро - когда из поднебесной все придет - одному богу известно

fmy1
01.12.2013, 22:31
Ну мне не к спеху, год лежит, ещё подождёт.)
Может видел? К сожалению только схема расположения, но грамотно, что терминальные можно менять.
http://savepic.ru/4854478.jpg

autowp
04.12.2013, 01:24
Подумалось попробовать самый обычный ELM327 с bluetooth (какой был под рукой) запустить в роли can-adapter'a.

Вроде соединил всё: low, high, +12 и 2xGND, а он даже лампочкой не моргнул.

Может ему ещё что-то особенное надо? На распиновке OBDII ничего не вижу. Не подскажете?

fmy1
06.12.2013, 23:58
Никак не пойму, а в чём проблема? Не присоединить, или присоединить но не работает?

autowp
07.12.2013, 00:00
Присоединил, но оно не включается. В автомобиле оно сразу лампочками мигать начинает и bluetooth-девайс светится

fmy1
07.12.2013, 00:06
Тогда не понял следующее, а к чему его сейчас подключаешь?

autowp
07.12.2013, 00:06
К описанному выше комплекту магнитола + дисплей

fmy1
07.12.2013, 00:12
Аааа.., ясно. Тогда не знаю. Вернее так, не подключал к магнитоле, но скрещивал для проверки каннахер и ELM. В общем после некоторых танцев с бубнами получил что-то и всё, большего и не надо было. Но у меня USB, и светик питание по крайней мере загорался сразу.

Dmitry8
10.12.2013, 09:28
autowp, в твоей машине есть штатные парктроники?

autowp
10.12.2013, 11:50
есть

Dmitry8
11.12.2013, 10:08
Хочу подключить нештатный парктроник, чтобы работал как штатный (звук с динамиков, изображение на дисплее), в дальнейшем рассматриваю вариант замены дисплея на планшет с андройдом. Для этого спаял для arduino can-bus шилд на mcp2515+mcp2551. Проверил на столе: две ардуины по can благополучно обмениваются сообщениями. Когда же подключил к can в машине - приборная панель стала показывать --- , на центральном дисплее пропали все значения, короче can-info вырубилась полностью. После отключения моего девайса, слава богу, все заработало. Что я делаю не так? Машина citroen c4 2012 года.

awtoap
11.12.2013, 14:13
Почитайте тему с самого начала...возможно это тот же случай

autowp
11.12.2013, 14:26
Не-не, он завалил сетку. Выглядит абсолютно также, как я однажды нечаянно кинул землю за CAN-L или CAN-H в peugeot - сеть умерла, стрелки приборной панели "легли на ноль" и т.п.

mas_u
11.12.2013, 15:34
Такая же хрень - если во время передачи по сети подключить к ней доп. устройство. Если подключать при вытащенном из замка зажигания ключе, то пакеты проходят нормально. Правда я подключаюсь уже после приемо-передатчика.

Dmitry8
11.12.2013, 23:34
Подключал по 3-м проводам: CAN-H, CAN-L, GND. Сейчас замерил сопротивление на шилде: Между CAN-H и CAN-L 50 кОм, с землей CAN-H и CAN-L около 15 мОм.

linoobs1
17.12.2013, 16:59
скорость на твоем кан нужно выставить такую, как и в сети автомобиля и будет счастье

Dmitry8
19.12.2013, 11:47
В мануалах на этой шине указана скорость 125Кбит/с, такую же указал в скетче.

linoobs1
19.12.2013, 19:43
В мануалах на этой шине указана скорость 125Кбит/с, такую же указал в скетче.

тебе нужно выставить скорость твоего устройства такую, какаю использует твой автомобиль это первое, для BMW 100 kb/s. Второе, сопротивление между линиями не нужно и третье, читай форумы на свою авто или распиновку штатного радио, дабы правильно подключить линии Hi и Low. На столе это одно, а в машине это другое и еще, я не знаю какой код для твоего контроллера, но если настроены Extendet_ID то пакеты ты не увидишь, надо на Standart_ID переключать.

Dmitry8
20.12.2013, 14:19
Я извиняюсь, наверное непонятно написал. Скорость в шине моего автомобиля (125Кбит/с) я узнал из официальной документации для сервисных центров. Сопротивления, конечно же, не ставил. Точки подключения к шине определил по электрическим схемам из той же документации.

linoobs1
20.12.2013, 19:57
Я извиняюсь, наверное непонятно написал. Скорость в шине моего автомобиля (125Кбит/с) я узнал из официальной документации для сервисных центров. Сопротивления, конечно же, не ставил. Точки подключения к шине определил по электрическим схемам из той же документации.

если все правильно, но при подключении машина вешается, значит что-то не правильно, могу предположить либо скорость не та, либо ваш кан не выставляет нужную скорость, у меня на бмв машина вешалась, когда выставил скорость 125, а на 100 все работает. Проверяйте все с начала, а если уже проверяли, значит начните все заново :big: либо отложите так на пол годика, потом с новыми силами опять начнете, где-то ведь сидит зараза

Dmitry8
21.12.2013, 01:23
Спасибо за советы, еще хотел уточнить: обязательно ли подключать "землю"? или достаточно CAN-H и CAN-L?

dzmitry
21.12.2013, 02:26
Спасибо за советы, еще хотел уточнить: обязательно ли подключать "землю"? или достаточно CAN-H и CAN-L?

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

Dmitry8
21.12.2013, 18:50
autowp, не мог бы ты отловить пакеты относящиеся к парктронику? Скорее всего в наших авто системы одинаковы.

autowp
21.12.2013, 21:29
В целом - это одна из целей, но в данный момент у меня машины нет под рукой, будет только после нового года.
Так что, отловлю-то обязательно, но когда - не знаю

Dmitry8
21.12.2013, 22:37
Отлично! буду следить за темой. На какой скорости подключаешься к can-шине? а то я после постов linoobs1 начал сомневаться.

autowp
21.12.2013, 22:39
125 на магнитоле, 500 на OBD разъеме

mas_u
24.12.2013, 00:21
Подумалось попробовать самый обычный ELM327 с bluetooth (какой был под рукой) запустить в роли can-adapter'a.

Вроде соединил всё: low, high, +12 и 2xGND, а он даже лампочкой не моргнул.

Может ему ещё что-то особенное надо? На распиновке OBDII ничего не вижу. Не подскажете?

Это распиновка с внутренней части разъема (где провода припаяны).
Тоже пробовал его подключить, только нифига он у меня не сниферит. На выходе mcp2551 данные есть, но как их вывести в терминал не понял. Правда у меня can шина в которой гуляют 4 однобайтовых посылки с левыми id. Скорость - 125
В терминале
> at cs
T:00 R:00

mas_u
24.12.2013, 01:18
Это распиновка с внутренней части разъема (где провода припаяны).
Тоже пробовал его подключить, только нифига он у меня не сниферит. На выходе mcp2551 данные есть, но как их вывести в терминал не понял. Правда у меня can шина в которой гуляют 4 однобайтовых посылки с левыми id. Скорость - 125
В терминале
> at cs
T:00 R:00
up:
Если поставить скорость в сети 500 кбит и настроить адаптер на ISO 15765-4 CAN (11 BIT ID, 500 Kbaud) - команда "AT SP 6" и че-нибудь послать, то адаптер отсылает в сеть 8 байтовое сообщение с id - 0x7DF.

Если я правильно понял то со скоростью 125 он работать не будет.

autowp
24.12.2013, 01:41
Там есть CAN USER1 (125)

AT SP B


Только с параметрами надо поиграться согласно табличке: как минимум 11bit выставить, переменную длину пакета, отключить множитель 8/7, ... ( PP 2C SV XX, PP 2C ON )
http://elmelectronics.com/DSheets/ELM327DS.pdf 58 страница

Возможно ещё error checking отключить ( PP 2A SV XX, PP 2A ON )

mas_u
24.12.2013, 01:46
Там есть CAN USER1 (125)

AT SP B




да, тоже работает)))

up:
поставил - pp 2c sv c0 - отсылается кол-во байт как посылаешь в терминале.
Как поменять идентификатор?

mas_u
24.12.2013, 03:42
Как поменять идентификатор?

сам отвечу:

заголовок сообщения (идентификатор) - AT SH XXX
текущий протокол - AT DP
вывод всех сообщений в терминал - AT MA
показывать идентификатор - AT H1
фильтр по идентификатору - АT CRA XXX

iGeophysix
13.01.2014, 12:37
ууууууууу.... давно я на форуме не был!
Делаю аналогичную фигню только для Ниссан - Инфинити.
У меня проблема - показания климат-контроля показываются только на ЖК экране.
такой же кан читалкой я смог найти команды, но не могу никак перехватить абсолютные значения (только приращения).

Как ты нашел эти мультиплексоры и что это? :-)
я методом проб и ошибок работаю :-( мало че понимаю. Но уже кое-че добился.

autowp
13.01.2014, 13:32
>> но не могу никак перехватить абсолютные значения (только приращения)
Ну их может и нет. Зачем бы дублировать в виде абсолютных и приращений.
Очевидно, при включении (зажигания/дисплея) отправляется исходное значение, а дальше только приращения. Найти будет не просто.

Да ещё всякие шуточки встречаются: не знаю как у инфинити, но у французов, например, шкалы баланса/басы/высокие/фронт на дисплее пронумерованы от -9 до 9, что соответствует сигналам на CAN: 36-3F,40-48

-9 36
-8 37
-7 38
-6 39
-5 3A
-4 3B
-3 3C
-2 3D
-1 3E
0 3F
+1 40
+2 41
+3 42
+4 43
+5 44
+6 45
+7 46
+8 47
+9 48

Хотя казалось бы чего проще эти цифры так и посылать F7...09

>> Как ты нашел эти мультиплексоры и что это? :-)
Мультиплексоры?

iGeophysix
13.01.2014, 14:29
Хотя казалось бы чего проще эти цифры так и посылать F7...09

Ну иногда они заморачиваются - будь здоров.
Допустим с градусами все просто. Есть проблема с направлением потока - в лицо, на окно, в ноги. Цифры - можно открутить в одну сторону до упора - климат регулируется от 18 до 32 (или 34) градусов. Так можно провести калибровку. А вот направление обдува циклическое :-( Хотя надо попробовать что бывает, если нажать режим Auto, а потом тыкнуть в переключение режима.

Это нужно на случай, если комп принял значение, а климат контроль глюканул и моно было перекалибровать все.
Управляющую фигульку можно на Kivy/Python написать :-)


>> Как ты нашел эти мультиплексоры и что это? :-)
Мультиплексоры?

ааааай.... это в голове утром каша. Мультифреймы... ну уже понял, что это:-)

Glouck
14.01.2014, 04:55
ууууууууу.... давно я на форуме не был!
Делаю аналогичную фигню только для Ниссан - Инфинити.
Тоже ковыряюсь с CAN в Ниссане... Хочется выудить оттуда температуру на улице и в салоне. Подскажи, попадались ли тебе эти данные?
Может есть где-нибудь на просторах и-нета хоть какое-то описание CAN фреймов по Ниссанам?

iGeophysix
14.01.2014, 10:23
Тоже ковыряюсь с CAN в Ниссане... Хочется выудить оттуда температуру на улице и в салоне. Подскажи, попадались ли тебе эти данные?
Может есть где-нибудь на просторах и-нета хоть какое-то описание CAN фреймов по Ниссанам?

Температура внутри есть аналоговая. ищи Ambient Sensor в мануалах (http://www.nicoclub.com/archives/use-nicoclub-coms-factory-service-manual-database.html)
А не проще свои термометры на это повесить? :-)

Glouck
15.01.2014, 02:19
Температура внутри есть аналоговая. ищи Ambient Sensor в мануалах (http://www.nicoclub.com/archives/use-nicoclub-coms-factory-service-manual-database.html)
А не проще свои термометры на это повесить? :-)
Спасибо за ссылку - читаю с интересом, но я там все-равно не нашел информации по адресам CAN фреймов.
Ну, мне не настолько сильно это надо, чтобы свои термометры вешать... Просто если уж подключился к шине (я оттуда беру угол поворота руля), то почему бы не вытащить еще что-нибудь полезное.

Foblas
17.01.2014, 16:03
Занимаюсь аналогичной фигней на 407 пыже.
Сейчас на стадии сборки целеза.
Цель такаяже, засунуть БК, климат, парктроник и остальные свистелки в паланшет, с него же управлять всем этим делом.
Я после длительного гугления остановился на связке arduino+canduino (https://code.google.com/p/canduino/). Canduino собран, осталось проверить заработает ли он и увижу ли я заветные фреймы в андроиде в каком нибудь виде.
Полчасика посидел в машине с canhacker, нашел фреймы для регулирования громкости, переключения страниц бортового, смена источника звука (радио диск ченжер и т.д.).
Был бы совсем не против объединить усилия по расшифровке can на авто группы PSA .

autowp
17.01.2014, 16:19
Ну давай вместе составлять google docs файл в начатом мной формате
https://docs.google.com/spreadsheet/ccc?key=0AtRg9f6Q6NEFdGtPdTJNUUNpTkQ3OC1TTjdfRUtBV nc&usp=drive_web#gid=0
или во вновь созданном.

Так или иначе, кинь инвайт на G+ профайл (см. личку), чтобы я разделил права на файл. Ну и вообще для коммуникации

Dmitry8
17.01.2014, 16:53
Здесь уже обсуждали про несовсем корректную работу контроллеров на mcp2551 с нашей шиной: Fault-tolerant (Low Speed tja1054t ). В моём случае CAN-сеть совсем сдохла после подключения. Foblas, мой девайс собран примерно по той же схеме что у тебя. Ты еще не подключал шилд в машине?

Glouck
19.01.2014, 03:43
Здесь уже обсуждали про несовсем корректную работу контроллеров на mcp2551 с нашей шиной: Fault-tolerant (Low Speed tja1054t ).
А с "нашей" - это с какой?
Я использую mcp2551+mcp2515 в nissan'е - проблем нет. Причем "нет" от слова совсем - т.е. заработало сразу, при первом же включении.

Dmitry8
19.01.2014, 23:11
А с "нашей" - это с какой?
Я использую mcp2551+mcp2515 в nissan'е - проблем нет. Причем "нет" от слова совсем - т.е. заработало сразу, при первом же включении.

"С нашей" я имел в виду кан-шину в pegeout/citroen. В ниссане может быть по другому.

fray2000
05.02.2014, 00:38
что то все заглохло

Dmitry8
08.12.2014, 15:19
После длительного перерыва решил снова попытаться подключиться к can-шине. Заказал TJA-1054 и пока посылка в пути стал прикидывать как скрестить TJA-1054T и mcp-2515. Появились вопросы: 1) Можно ли обойтись без подключения 14 ноги (BAT)? Я так понимаю что на неё должно подаваться 12В. 2) Как правильно выбрать номинал резисторов RTH, RTL?

Glouck
08.12.2014, 15:43
Почитал даташит на 1054...
IMHO, что я понял оттуда:
1. можно не подключать, но тогда некоторые варианты сбоев шины нельзя будет распознать (оно и не надо, кмк)
2. так же, не подключать - т.к. оно будет этими резисторами терминировать шину, в случае сбоев, а оно тебе надо?

Dmitry8
08.12.2014, 15:59
Glouck , Спасибо за ответ! Для начала хочу два устройства на столе научить между собой передавать пакеты, потом уже в машину. В этом случае RTH/RTL = 500 - 16000 Ом, судя по даташиту, но непонятно от чего зависит номинал?

Dmitry8
09.12.2014, 13:30
Вот накатал примерную схему, прошу высказывайте замечания.

http://pccar.ru/attachment.php?attachmentid=37789&stc=1&d=1418117110

Dmitry8
19.01.2015, 10:04
Собрал два устройства по схеме ниже, одно отправляет данные по CAN, другое принимает и передаёт их в uart. В общем, не работает. Может реализация CAN от микрочипа несовместима с tja1054? и я пытаюсь скрестить ужа и ежа?
http://pccar.ru/attachment.php?attachmentid=38222&stc=1&d=1421647000

Glouck
19.01.2015, 14:17
А ты шину чем-нибудь терминировал на концах (кроме RTH/RTL резисторов)?
http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/CAN-Bus_Elektrische_Zweidrahtleitung.svg/220px-CAN-Bus_Elektrische_Zweidrahtleitung.svg.png

Dmitry8
19.01.2015, 14:22
А ты шину чем-нибудь терминировал на концах (кроме RTH/RTL резисторов)?
http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/CAN-Bus_Elektrische_Zweidrahtleitung.svg/220px-CAN-Bus_Elektrische_Zweidrahtleitung.svg.png

Нет, приведённая картинка для HS-CAN, а тут FT-CAN, я так понимаю что терминирующие резисторы здесь висят на каждом котроллере, отдельно для каждой линии. Если я не прав - поправьте меня.

Glouck
19.01.2015, 15:00
Это не важно - терминировать все-равно надо - 120 ом на краях.

Цитата из дш на 1054 про RTL/RTH резисторы:
Size of termination resistors depends on system size. The overall system termination should be about 100 Ohms per CAN line.

Вот, кстати, почитай, там есть про то, сколько надо для RTH/RTL:
http://www.nxp.com/documents/application_note/AH_FTCAN3.pdf

Почитал внимательнее, в общем, выходит, что и без терминаторов по твоей схеме (5.6к RTL/RTH) должно работать на столе с коротким проводом...

Dmitry8
20.01.2015, 16:16
Заработало! :dance1: Ошибка была в прошивке.

INRatnikov
02.02.2015, 18:03
Вопрос? По данной схеме можно научиться через PC управлять системой авто? У меня тот же RD4

Dmitry8
03.02.2015, 10:09
Управлять можно устройствами находящимися в сети CAN-Info, в моём случае (citroen c4 2012г.) это приборная панель, магнитола, центральный дисплей, парктроник ... Но у меня RD5 и я пока в машине не подключал. Удалось завести два устройства на столе, обмениваются данными по протоколу CAN. Есть у меня в наличии и дисплей, такой же как в машине, но заставить работать его пока не удалось. Как уже писали в этой теме для успешного пуска помимо питания нужно отправить определённый пакет по can-шине, а вот какой именно - это загадка. Пользователю с ником autowp удалось разгадать эту загадку путём прослушивания и записи пакетов с can-шины в своём авто , а затем отправки этих данных уже в магнитолу. Чем я тоже собираюсь заняться в ближайшее время. INRatnikov , в вашем случае - некоторые пакеты уже известны и вы сможете управлять устройствами в своём авто.

Dmitry8
06.02.2015, 17:15
Странное дело: подключил девайс в машине - результат тот же , всё потухло. Я в полном недоумении, что происходит? Как подключиться к шине? Спецы скажите что я делаю не так?

Foblas
07.02.2015, 01:38
Терминатор уберите, если есть. При подключении к шине авто он не нужен.

Glouck
07.02.2015, 03:41
Странное дело: подключил девайс в машине - результат тот же , всё потухло.
Потухло - в смысле перестала работать шина в авто? А RTH/RTL резисторы какие? А замерить сопротиление на шине между L и H, при выключенном (снять клемму с АКБ) и включенном питании - сколько?

Dmitry8
07.02.2015, 09:06
Терминатор уберите, если есть. При подключении к шине автор он не нужен.
Здесь немного иначе устроено, терминируется по отдельности каждая линия, на микросхеме для этого предусмотрены специальные ножки RTH и RTL, без них драйвер находится в статусе Error.

Dmitry8
07.02.2015, 09:19
Потухло - в смысле перестала работать шина в авто? А RTH/RTL резисторы какие? А замерить сопротиление на шине между L и H, при выключенном (снять клемму с АКБ) и включенном питании - сколько?
Потухло - на спидометре ---, магнитола отключалась, на центральном дисплее ---. Такая же картина была при подключении к шине с помощью can-шилда на mcp2551 с ардуиной. Резисторы 5,6k. При подключении только одного провода CANH или CANL - так же все тухнет. Кстати, на столе два девайса по одному проводу благополучно обмениваются данными. Попробовал поменять местами CANH и CANL - к моему удивлению, ничего не погасло, но и данных я не увидел. Когда питание девайса выключено и он висит на шине, все работает нормально.

lti1
07.02.2015, 10:32
Потухло - на спидометре ---, магнитола отключалась, на центральном дисплее ---. Такая же картина была при подключении к шине с помощью can-шилда на mcp2551 с ардуиной. Резисторы 5,6k. При подключении только одного провода CANH или CANL - так же все тухнет. Кстати, на столе два девайса по одному проводу благополучно обмениваются данными. Попробовал поменять местами CANH и CANL - к моему удивлению, ничего не погасло, но и данных я не увидел. Когда питание девайса выключено и он висит на шине, все работает нормально.
У меня так же было, когда я подключил CAN Shild с Arduino к авто, но неверно в скетче указал скорость шины, нужно было 125 Кбит/с, а я установил 100 Кбит/с, как только изменил, все приборы ожили. Правда я подключался к FF3.

Glouck
07.02.2015, 20:03
Такая же картина была при подключении к шине с помощью can-шилда на mcp2551 с ардуиной. Резисторы 5,6k. При подключении только одного провода CANH или CANL - так же все тухнет. Кстати, на столе два девайса по одному проводу благополучно обмениваются данными. Попробовал поменять местами CANH и CANL - к моему удивлению, ничего не погасло, но и данных я не увидел. Когда питание девайса выключено и он висит на шине, все работает нормально.
Попробуй убрать резисторы RTH/RTL - при включении питания девайса оно их подключает к шине, возможно из-за этого все ложится, ну и со скоростью тут правильно сказали - если не та - может тоже шину положить.

Dmitry8
08.02.2015, 14:17
Скорее всего дело в скорости передачи данных, дело в том, что в прошивке я явно не указываю скорость в Kbps , там все гораздо сложнее: указываются тайменги в зависимости от системной частоты и желаемой скорости, придётся попробовать разные варианты. lti1 , какой шилд ты использовал для подключения? И какой тип шины у тебя в авто?

lti1
08.02.2015, 15:31
lti1 , какой шилд ты использовал для подключения?
Такой. (http://pccar.ru/showpost.php?p=289078&postcount=95)

lti1 , И какой тип шины у тебя в авто?
В FF3 две шины, высокоскоростная для двигателя и коробки (скорость не знаю) и салонная 125 Кбит/с, вот к последней я как раз и подключался.

Dmitry8
08.02.2015, 16:39
О, я спаял такой же шилд, правда он у меня в машине так и не заработал из-за несовместимости can-hs и can-ft. Пришлось немного переделать, теперь вместо mcp2551 используется Tja1054. А скетч используешь от seedstudio?

lti1
08.02.2015, 16:56
О, я спаял такой же шилд, правда он у меня в машине так и не заработал из-за несовместимости can-hs и can-ft. Пришлось немного переделать, теперь вместо mcp2551 используется Tja1054.
У меня и на FF3 и Skoda Octavia Tour нормально работает, после того как скорость нужную выставил в скетче.
А скетч используешь от seedstudio?
Не совсем понял про какой говорите, дайте ссылку.

Dmitry8
09.02.2015, 09:04
Получилось считать данные шилдом! Но пока не получается отправить, буду дальше разбираться. Ссылку отправил в ЛС. PS: давай на "ты".

Ацкий_Кот
24.03.2015, 17:11
Кстати могло не работать из за того, что авто определяет скорость обмена по термирующим резисторам, чем больше ом тем больше скорость

T_r_D
07.07.2015, 17:34
Dmitry8 А что ты сделал что заработало? И какие в итоге резисторы?

И ещё вопрос в догонку.
Если я не буду отключать ноги RX/TX от микрухи на шилде, а припаяю к ним провода и подцеплю 1054, и буду подавать питание на микруху на шилде или на 1054 через переключатель это заведётся?
Или нужно поднимать в воздух ноги RX/TX от микрухе что на шилде обязательно, а вместо них цеплять rx/tx 1054?
Просто хочу обойтись одним сдвоенным переключателем для переключения с HI на FT CAN по средствам подачи питания на разные микрухи, а второй группой ногу ардуины коммутировать чтоб при старте выставлялась скорость 500/125 в зависимости от того что подключено.

T_r_D
24.07.2015, 17:17
Народ- поделитесь кто нить 100% рабочей схемой на TJA1054T.
А то у некоторых ноги wake, bat, STB, EN на плюсе висят жёстко, у кого-то через резисторы, у кого-то половину не подключены.
Просто хочется сделать плату, а не паутину плести.

xmetal
29.07.2015, 02:25
Всем привет! T_r_D, я себе сделал так : tja1054 ноги 5,6,7,10,14 жестко +5в. 13-GND. 1,4,8,9 - в воздухе. 2,3 на mcp2515. 11,12 - CAN bus. Подключено временно витой парой длиной около 1 метра. 100Кбит/с, все работает без каких либо резисторов.
Тоже хотел запараллелить к TxRx ножкам tja1050 на модуле, но подумал, что это мне ни к чему, только лишняя нагрузка, выпаял 1050 вообще.

T_r_D
31.07.2015, 10:05
xmetal
8,9 это ноги резисторов сопротивления шины.
они через микруху подключаются к + и -.
Соответственно вывод 14(BAT) должен быть на + бортовой сети авто.

По распиновке я так же почти сделал кроме BAT и WAKE.
WAKE через резистор на + питания микрухи повесил.

Выпаивать не хочу, хочу иметь возможность подключения всех типов шины.
И это только прототип. Далее плату разведу единую с контроллером.

xmetal
31.07.2015, 12:58
Насколько я понимаю вход BAT задействуется только в том случае, если начать погружать микросхему в сон, с помощью STB и EN. А так как эти входы в активном состоянии, то вместо BAT используется питание VCC.

На счет резисторов - работало без них и по одному CAN проводу, естественно с подключенной землей. Не убеждаю их не ставить, просто говорю, что без них тоже все работает.

xmetal
04.09.2015, 16:33
STB и EN соединил с контроллером, чтобы загонять TJA1054 в сон. BAT все так же на VCC. В сон уходит и выходит. Не увидел разницы между Standby и Sleep, кроме разного состояния INH.

xmetal
29.09.2015, 13:02
Возникла проблема. Вроде все работает, но как-то полез в авто сбросить ошибки шнурком и увидел, что кан шина, куда подключено мое устройство, работает в аварийном режиме - по одному проводу. Принес домой, подключил к ГУ, сообщения принимаю, но кан шина все также работает в аварийном режиме. Отвязал питание ГУ и моего устройства, все стало работать нормально. Но если соединить массы проводом, сразу уходит в аварийный режим. Терминирующие резисторы ставил, убирал, результат одинаковый. В чем проблема пока не понял. Может кто что подскажет?

xmetal
16.10.2015, 23:57
Заменил TJA1054 на новую, все пришло в норму.