Просмотр полной версии : Arduino+CANBUS Shield
Misha2066
05.10.2018, 22:43
1. Считать пакеты в can-шине при нажатии и отображении на дисплеях соответствующих кнопок при помощи связки Ардуино+кан-шилд.
Первый пункт выполнен. К шине подключился и в мониторе вижу огромное количество пакетов...
Я так и не понял, какой canbus лучше купить?
И что за разъём на первом?
Этот
https://duino.ru/wa-data/public/shop/products/45/19/1945/images/4389/4389.750.jpg (https://duino.ru/CAN-BUS-Shield.html)
Или этот
http://jpegshare.net/images/86/33/8633bedc30da8ebe55f2c8b15aa23333.jpg (http://jpegshare.net/)
Я так и не понял, какой canbus лучше купить?Они принципиально ничем не отличаются, элементная база одинаковая.
И что за разъём на первом?Этот разъем производитель решил приметь для подключения к CAN шине.
8 или 16мГц здесь роли не играет?
Заказал обе короче)
Почему задался вопросом, ценник у них ощутимо разный, одна под 500 рублей, другая 80 руб.
Они одинаковы.
Только та что дороже надевается на ардуину без всяких проводов.
А вот 8 и 16 мегагерц повлияют на библиотеку.
Некоторые умеют только 8, другие только 16, но есть и универсальные.
Misha2066
08.10.2018, 14:52
Насколько я правильно понял, 16 МГц более распространенная. Я себе взял 16 МГц, работает на ура. Вот здесь https://www.drive2.ru/b/513482651483505021/ попытался более менее связно объяснить (наверное больше для себя) как делается подключение.
Может кому нибудь поможет.
Насколько я правильно понял, 16 МГц более распространенная. Я себе взял 16 МГц, работает на ура. Вот здесь https://www.drive2.ru/b/513482651483505021/ попытался более менее связно объяснить (наверное больше для себя) как делается подключение.
Может кому нибудь поможет.
Вот спасибо тебе огромное за труды)
Есть уже успехи?
ПС: про наших зря ты так))) ну да, конкретики нет, но делятся тем что сами знают.
Misha2066
08.10.2018, 21:37
Есть уже успехи?
Есть. Но пока скромные. Подсказали на Драйве несколько адресов, по которым можно увидеть что мне надо, но по ним моя ардуина ничего не видит. Хотя утверждают, что фирменный "Кан-хакер" эти адреса видит, надо его купить только. Хз, верить этим утверждениям или нет.
ПС: про наших зря ты так))) ну да, конкретики нет, но делятся тем что сами знают.
Те кто реально помог, я поблагодарил, как здесь принято, остальные увы... Спрашивал многих, а то что я тогда еще ничего понимал в теме, ну чтож, все мы были маленькими.
Misha2066 почитал статью на драйве- врать не хорошо :)
Инфы в инете по подключению дофига.
С библиотеками идут примеры которые работают из коробки.
А вот что ты не видишь половины пакетов- открой любой блок своей машины и сфоткай кишки. Имею в виду те блоки, которые подключены к шине КАН.
Есть только два предположения-
Или не та шина (в машине она не одна)
Или не тот трансивер.
Да-да! Это проверено уже! На трансивер HS кана идёт только часть пакетов если его зацепить к FT.
Misha2066
09.10.2018, 01:03
Misha2066 почитал статью на драйве- врать не хорошо :)
Инфы в инете по подключению дофига.
С библиотеками идут примеры которые работают из коробки.
А вот что ты не видишь половины пакетов- открой любой блок своей машины и сфоткай кишки. Имею в виду те блоки, которые подключены к шине КАН.
Есть только два предположения-
Или не та шина (в машине она не одна)
Или не тот трансивер.
Да-да! Это проверено уже! На трансивер HS кана идёт только часть пакетов если его зацепить к FT.
Так я и не врал особо, не надо передергивать. Полной, пошаговой инфы подключения "для чайников" я не нашел. Может плохо искал, не буду спорить. К тому же я написал это в основном для себя (см. приписку в посте), это удобно, зашел как в облако и скачал на другой ноут нужную инфу.
Т.к. мне нужен блок климата, я подключался к контактам именно блока климата. Если там нет, то не знаю где еще может быть. Завтра попробую на контактах разъема ОБД посмотреть. А если смотреть эл. схемы машины, то кан-шина одна.
Сфокать кишки вообще не проблема. Найти там контроллер?
Конечно найди.
И всё встанет на свои места.
Вот тебе ссылка на подключение:
Порылся меньше минуты:
http://electronicsworld.ru/can-bus-module-mcp2515/
У гугля спросил это:
https://www.google.com/search?client=firefox-b&ei=Zs-7W-DOKoG4swHD0Y1Y&q=%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5 %D0%BD%D0%B8%D0%B5+can+shield&oq=%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B 5%D0%BD%D0%B8%D0%B5+can+shield&gs_l=psy-ab.3..0i22i30k1.56880.62511.0.62664.10.10.0.0.0.0. 98.832.10.10.0....0...1c.1.64.psy-ab..0.10.828...0j0i67k1j0i13k1j0i13i30k1j0i8i13i30 k1.0.aA7D2P6g5BE
4 ссылка по счёту
По библиотеке уже написал- в каждой есть пример.
С ардуино вообще всё просто- она для совсем не разбирающихся в этом деле сделана. И это как раз хорошо- начать может каждый.
И поэтому почти все библиотеки комплектуются примерами.
Но беда ардуины в тормознутости и отсутствии аппаратных фильтров.
Если ей начать обрабатывать нажатие кнопок, мультифрейм от магнитолы, бортовой комп и ещё и прикидыватся какой нить железкой, за место которой мы её использовали,
то начинаются тормоза.
Хотя как стартовая платформа она очень даже крута.
Ну и по надёжности тоже. Живёт уже лет 5 в машине или около того и не глючит.
Misha2066
09.10.2018, 17:10
T_r_D не совсем то, что я имел ввиду.
Закончим на этом? Я думаю этот флуд здесь не нужен.
Есть более интересные вопросы, например есть обмен между штатной магнитолой и ее дисплеем, или (в моём случае) между блоком климата и матричным дисплеем климата. Если я выложу фото внутренностей дисплея поможешь определить какой там интерфейс и как его считать?
Что-то мне подсказывает, что с этой стороны я быстрее получу результат, чем вылавливать пакеты из общей шины.
А давай путь менять не будем!
Пошли уж со стороны CAN, так давай идти им.
И ни чего сложного в ловле пакетов, тем более которые ты можешь контролировать нету. Так что вскрывай любой блок с CAN и давай смотреть.
Единственное что если там TJA1054 (1055), то придётся на шилде менять 1050 на неё, а для этого её придётся заказать и переходник с SOIC на DIP тоже, ну или платку вытравить.
И жизнь я вам всем чуть упрощу.
Качаем вот это:
https://www.dropbox.com/s/nqnucdyfrv4d6ou/CANHACKER.rar?dl=0
Убираем все библиотеки CAN которые напихали в Arduino IDE.
Добавляем библиотеки отсюда, думаю что разберётесь.
Прошиваете ардуину и радуетесь наблюдению за пакетами в удобной программе.
И обратите особое внимание на библиотеку!
Она универсальна и подходит и для 8 и для 16 мегагерцовой МЦП.
Misha2066
10.10.2018, 00:34
Спасибо большое!
Сегодня уже не успею ничего вскрыть, может завтра.
Пока пробую на столе. Сделал все как написано, удалил старые библиотеки, подключил новые. Ардуина грузится, не ругается. Затем закрываю Ардуину, а КанХакер работать не хочет, пишет, что "КАН интерфейс не отвечает"... Может что-то не так делаю?
Скорость подключения настрой у канхакера и порт.
Скорость 115200.
Порт- ну на какой у тебя ардуина садится....
Ну и не забывай что КОМ порт однопользовательский.
Тоесть все программы которые его используют надо закрыть перед запуском канхакера.
Но думаю это и так понятно.
Ну и в скетче настройку частоты кварца посмотри и если там стоит не частота твоего шилда, то поставь свою.
По-моему там стоит 16 мегагерц.
Это в самом начале выставляется строкой Can232::init(CAN_125KBPS, MCP_16MHz);
А про библиотеку- используй её и для себя. Онаж не только для канхакера. :)
Она точно нормально работает и не глючит.
Misha2066
10.10.2018, 22:35
Еще раз, большое спасибо за помощь! Подключается, начинают сыпать пакеты и меняться данные...
НО! Соединение рвется через несколько секунд (все останавливается) и чтобы снова подключить приходится передергивать ЮСБ шнурок с Ардуиной или нажимать ресет на Ардуине, и снова коннектить канхакера. Иногда для этого нужно перезапускать канхакера. Подкинул доп питание на плату Ардуины, не помогает, поменял ноут, тоже самое.
Уже третий час трахаюсь, уже мыслей умных нет...
Что может быть?
Заставь ардуину мигать диодом на плате и посмотри кто виснет.
У меня таких проблем не было, так что не могу даже представить.
Связка у меня из нано и маленького шилда.
До сих пор валяется и работает нормально.
Ни разу такого глюка не встречал.
Так что выясни для начала кто виснет.
Я настолько давно не копался с ардуиной что уже и забыл половину.
А для себя сделал вот такую штуку:
https://www.dropbox.com/s/o19m6o3otc6i6vn/IMG_20181010_223714.jpg?dl=0
https://www.dropbox.com/s/v5vruyn6xmz4fpd/IMG_20181010_223732.jpg?dl=0
В основе модуль старлайна на котором стоит STM32F105, ну и oled дисплей.
Содержит в себе два входа CAN на дисплее отображаются все пакеты которые приняли, для листания используются две кнопки, а при нажатии на третью блокируется прохождение этого пакета
с порта 1 на порт 2.
Вообще компьютер с собой носить не надо. Пусть не так наглядно как с компом потому что в один момент времени видишь только один ID, но зато компактно.
Для отлова всяких кнопок самое оно.
А если нужно больше, то взять 407VETx и дисплей SSD1963 5".
Сделать ему ориентацию книжную и присобачить пару кнопок для случаев если список ID уйдёт в пол.
Но это так, лирика...
Misha2066
11.10.2018, 00:35
У меня Мега и полноразмерный шилд (втыкается в плату ардуины). Когда дело дойдет до изготовления устройства, то тоже буду делать что-то подобное, никаких разъемов, только пайка.
На шилде СД (ТХ РХ) мигают когда подключаюсь к шине авто, в независимости от состояния самой Ардуины, если полярность не правильная, то не мигают.
Если использую "стандартные" библиотеки и встроенный монитор порта, то вроде не отваливается. Завтра еще проверю.
В инете наткнулся на то, что есть проблемы программы canhacker и windows 10.
Сейчас проверить не на чем, ноута нет чтоб в машину тащить, так что если ещё кто-то проверит, то тебе это поможет.
Я пробовал только на XP, 7 и 8 винде, там проблем не было.
И говорят что даже запус в режиме совместимости на вин10 не помогает...
Misha2066
11.10.2018, 07:21
У меня та же мысль появилась! Оба ноута, что я пробовал, на 10е. Сегодня попробую на 8 ке.
А как посчитать CAN Boudrate для нужной скорости шины? Или это не нужно, если использовать CANHacker в режиме монитора?
https://a.radikal.ru/a34/1810/ef/79c3f337e097.jpg (https://radikal.ru)
Это странный вопрос.
Ни как его не посчитать.
Это скорость шины автомобиля и она задана производителем.
И я выше писал что у скетча нет возможности считывать этот параметр с программы. Скорость шины нужно править в скетче.
Да, это не удобно если скорости шин разные в машине или если несколько авто, но когда я это делал мне это было не надо.
А ща уже не помню что там надо делать чтоб заработала настройка из программы.
Хотя можно взять описание протокола и дописать библиотеку.
Перефразирую.
Реальная скорость шины задается в скетче, но у CANHacker свой протокол. Поймет ли он, если я в скетче задам скорость 100kbps, а в программе укажу 500kbps?
Просто я вижу что CANHacker передает в шилд команду
if (lw232CanChannelMode == LW232_STATUS_CAN_CLOSED) {
idx = HexHelper:: parseNibbleWithLimit(lw232Message[1], LW232_CAN_BAUD_NUM);
lw232CanSpeedSelection = lw232CanBaudRates[idx];
И lw232CanSpeedSelection будет соответствовать 500kbps например
Угу, только и всего.
А потом это ни где не обрабатывается.
Про это выше и написал.
От скорости структура посылки пакета не меняется, так что всё будет хорошо.
Но если хочется чтоб из программы устанавливалась скорость, то нужно её отлавливать в скетче и конфигурировать кан шилд.
Можете допилить, вам только спасибо скажут. :)
PS. Кстати из за того, что в Ардуино нельзя задать нормальные фильтры аппаратные на CAN, то бедной атмеге с 12 мегагерцами приходится жрать
После длительного затишья я уже и заходить сюда перестал. А тут веселуха...
Вдвойне удивительно слышать это от Вас. А чем Вас это не устраивает?
CAN.init_Mask(0, 0, 0x7F8); // there are 2 mask in mcp2515, you need to set both of them
CAN.init_Mask(1, 0, 0x7F8);
CAN.init_Filt(0, 0, PID_REPLY); // 0x7E8 - 0x7EF
И ничего в ардуину не валится.
В Ардуине нет фильтров, более того - вообще для CAN ничего нет. Но в MCP2515 то есть.
Я так и не понял, какой canbus лучше купить?
И что за разъём на первом?
DB9
Это для вот такого кабеля
http://pccar.ru/attachment.php?attachmentid=50296&stc=1&d=1539367068
Misha2066
12.10.2018, 22:41
Продолжаю свою эпопею.
Да, я могу подтвердить, что Канхакер в связке с Ардуиной конкретно глючит в вин 10. Что-то начудили мелкомягкие индусы в новой ОС. Переставил ОС в ноуте, поставил 8.1 и всё отлично работает!
Однако не всё так радостно. Мне нужно найти пакеты климата, один чел с Драйва (владелец Теаны, по факту одноплатформенная машина с моим Мурано), нашел адреса пакетов климата, 0х54А и 0х54В. НО! У меня на этих адресах ничего нет! Есть какой-то обмен на 0х54С, но там всего пара значений, которые меняются без прямой связи с нажатием кнопок климата. Я спросил у этого чела, что не так, на что он мне ответил, что "правильный, православный" CAN-Hacker видит ВСЕ пакеты, а моя поделка большую часть пакетов теряет. Сам он конечно использует правильный девайс. Как думаете, может быть так, что бы в одном адресном диапазоне часть пакетов отлавливается, а часть теряется?
Отвечаю по порядку.
Про аппаратный фильтр МЦП. Он есть, но его мало.
В ардуине конечно нет ни чего для кана.
Если его хватит, то используйте, но как правило, этого фильтра мало. У него 11 или 12 ID всего можно фильтровать (могу ошибаться по количеству).
НСО154 любой покупай.
Разницы нет.
Про пакеты и "правильный" канхакер.
Нет, такого быть не может. Даже если ардуина не успеет отловить пакет, то они, как правило цикличны. Тоесть ID идёт с каким-то интервалом постоянно.
Только значения разные. Потери значений могут быть, а вот всего ID нет.
Рано или поздно его всё равно обработает ардуина.
Соответственно- открой нам уже тайну- разбери любой блок подключённый к КАН в авто.
Такие потери пакетов свойственны когда разные протоколы КАН.
Ну тоесть FS и FT.
Открыв блок поймём какой протокол.
Отличае протоколов не программное, а физическое!
Там уровни сигналов разные.
А если не хочешь вскрывать, то закажи трансивер TJA1054 или TJA1055.
Спаяй всю его обводку и включи его вместо трансивера на шилде.
Вот что я имел в виду под РАЗНЫМИ:
HS CAN
https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/ISO11898-2.svg/744px-ISO11898-2.svg.png
FT CAN
https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/ISO11898-3_Waveform.svg/744px-ISO11898-3_Waveform.svg.png
Нравится?
Совсем похожи да?
Поэтому и сказал- вскрой блок, ну или если есть трансивер под FT(fault tolerant), то пробуй его.
Я пробовал FT читать трансивером HS (Или FS, что одно и тоже. F - fast, H- high), результат похож на твой, только ID побольше...
Но всё равно не полный список.
Так что вскрывай и смотри.
PS. "правильный" канхакер собран на СТМ. Пакетов не теряет, но на этом вся его правильность и заканчивается.
Ещё раз- пакеты, как правило, идут циклично. Тоесть с повтором в несколько миллисекунд. Данные там конечно разные, но ID одинаков.
Так что можно потерять одну посылку ID, но какую-то последующию всё равно поймаешь. Может данные нужные ты и пропустишь, но чтоб совсем пропустить ID не получится.
И "адресный диапазон" тут не подходит. Тут всё в диапазоне 11 или 29 бит пакета. Почитай описание протокола.
Misha2066
13.10.2018, 10:11
Спасибо за разъяснения. Скорее всего дело не в потери пакетов, а в том, что смотреть надо другие адреса. Для моей машины адреса другие, а какие, это и предстоит выяснить.
В общем есть чем заняться на выходных
У тебя при подключении к шине в канхакере должно быть много ID. Если это не так, то или не туда подключился или несовпадение физического протокола.
И не адреса, а идентификаторы пакетов- ID.
Вскрывай блок для начала.
Misha2066
13.10.2018, 14:23
А у меня их много! Начиная с 0хх и до 6хх оооочень много!
До блока еще не добрался, вскрыл дисплей климата, который на фото выше, он проще снимается. Там нет никаких доп. контроллеров, только одна средних размеров микросхема. Но он и не подключен к кану. Может сегодня вечером доберусь до блока климата, тогда будет о чем поговорить.
Ну если много, то ищи в каком твои данные.
Id твоего климата может зависеть даже от ревизии железки, не говоря о производителе...
Misha2066
14.10.2018, 22:36
Нету в кан-шине кнопок климата. Не могу найти. Есть типа команды на исполнительные механизмы, заслонки и реле кондиционера, и еще регулировка оборотов вентилятора.
А какой-то прямой связи с нажатием кнопки и каким-то конкретным пакетом нет.
Походу надо читать обмен между блоком климата и его дисплеем, а там что-то есть, я вижу осциллографом, но на одном проводе. Какой тип обмена не понятно, на плате дисплея нет отдельной микросхемы для связи.
Ну тогда тебе не повезло...
Хотя опыт для CAN получил.
А точно там одна линия?
Или есть ещё такт?
Если есть такт, то похоже на i2c.
но на одном проводе.
Вот например на Рио 13-го года климат никакого отношения к CAN не имеет. Но имеет вывод на диагностическую колодку, И ещё этот провод заходит в BCM, и корейцы пишут, что это K-line. Может это оно?
Misha2066
15.10.2018, 23:02
корейцы пишут, что это K-line. Может это оно?
Возможно. Как бы это узнать точно?
Ардуину можно как-то подключить к этому проводу и GDN и посмотреть? Или надо какой-то специальный девайс, типа анализатора логики?
Только та что дороже надевается на ардуину без всяких проводов.
В этом её большой плюс, особенно для новичка. А минус, что каракатица получается изрядная. И цена.
Примерно вот так
http://pccar.ru/showpost.php?p=382995&postcount=195
Дополню ещё описания.
Можно проверить VIN (на экране только 16 символов):
http://pccar.ru/attachment.php?attachmentid=50317&stc=1&d=1539629535
В режиме прослушки выявил такие ID
2C0 349
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
545 348
C0 0 0 47 0 0 0 0
C5 48 0 8E FF FF FF FF
18F 348
0 3A 0 0 0 42 0 0
FE 73 0 0 0 78 0 20
580 174
0 0 0 0 0 0 0 0
18 0 0 0 0 0 0 0
A0 348
0 79 0 0 0 1E 0 0
E0 82 FF 19 0 43 4 0
A1 348
7B 7D 0 0 1B 0 0 0
88 7D 0 A 61 0 0 0
260 346
0 E E 0 0 0 39 0
7F FF FF 30 0 0 A5 3F
2A0 348
20 0 72 0 0 0 0 0
E0 0 7F 0 0 0 0 0
329 348
F AB 7A 10 11 21 0 E
D3 B8 7A 92 12 88 0 E
316 349
30 E 0 0 E F 0 7F
71 A7 FF 19 FF 39 0 7F
690 35
0 0 0 0 0 0 0 0
0 0 0 0 0 20 0 0
5A0 4
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
В моей машине 12 видов пакетов — адрес, относительная частота, строка минимальных значений, строка максимальных значений.
Как видно из цифр, Ардуина успевает сжирать более 3000 пакетов в секунду.
Что означают цифирки пока не разбирался. Знаю точно, среди них есть инфа о состоянии круиза и оборотах двигателя. (Круиза нет, а инфа есть!)
Прослушка продолжается до нажатия кнопки select.
Результаты прослушки можно сохранить в EEPROM и по особой команде передаются в консоль Arduino IDE.
http://pccar.ru/attachment.php?attachmentid=50318&stc=1&d=1539629731
(На фотке адрес в десятичном формате).
Теоретически можно смотреть и стирать ошибки. У меня ошибок нет, а ломать машину для проверки скетча я не стал :)
Ну и если кому интересно, то вот скетч
https://yadi.sk/d/VD6P8eDB3UqjL9
Сразу не выкладывал, т.к. собирался навести в этом бардаке порядок. Но руки так и не дошли, поэтому выкладываю как есть.
Misha2066
15.10.2018, 23:24
Ладно аккуратная этажерка и скетч, а куда какие провода подключаются? И если всю информацию можно посмотреть в "мониторе порта" или канхакере, то зачем нужен LCD-шилд (https://duino.ru/LCD-Shield-Arduino.html)? Для автономности?
Насколько это достоверно?
А если смотреть эл. схемы машины, то кан-шина одна.
И она сто пудов моторная. И климата и прочего там быть не может. ИМХО
В основе модуль старлайна на котором стоит STM32F105
А это что такое?
А если нужно больше, то взять 407VETx
Прикупил себе такую вещь
https://ru.aliexpress.com/item/Free-shipping-STM32F407VET6-development-board-Cortex-M4-STM32-minimum-system-learning-board-ARM-core-board/32618222721.html?spm=a2g0s.9042311.0.0.973133edJvO yHa
А осваивать совсем нет времени :sad2:
похоже на i2c.
А он в "боевых" условиях применяется? Я считал, что только в рамках одного девайса.
Ардуину можно как-то подключить к этому проводу и GDN и посмотреть? Или надо какой-то специальный девайс, типа анализатора логики?
В K-line не силен (по большому счету вообще ноль). Это однопроводной последовательный интерфейс, работающий по своему протоколу, причем их несколько. Для подключения ардуины нужен как минимум преобразователь уровней (кан-шилд тут вообще не катит) и, самое поганое, программная реализация протокола.
Можно, но сложно (во всяком случае, я не знаю как).
Ладно аккуратная этажерка и скетч, а куда какие провода подключаются? И если всю информацию можно посмотреть в "мониторе порта" или канхакере, то зачем нужен LCD-шилд? Для автономности?
В смысле "куда какие провода "? Нет никаких проводов. Есть только кабель для подключения к розетке OBD.
http://pccar.ru/attachment.php?attachmentid=50296&d=1539367074
И он как-бы стандартный
https://usercontent2.hubstatic.com/12176379_f520.jpg
зачем нужен LCD-шилд? Для автономности?
А мне так удобнее. Во-первых, для управления - через меню. У меня нет столько времени, просиживать часами в машине. Я свой скетч (теперь их уже несколько) постоянно меняю - старые запросы выбрасываю, новые вставляю. А потом ответы ECU в лабораторных, так сказать, условиях как-то изучаю. И ещё для чистоты эксперимента- чтобы всякие канхакеры, ЕЛМ и т. д. своими косяками меня в непонятки не вводили
Про плату старлайна.
Да это модуль 2CAN для сигнализации.
На борту 105 СТМ и трансивер на два порта FT CAN.
Про i2c, куда его только не пихают...
Про vet6. Плата клёвая, но есть один косяк на ней.
Точнее не косяк, а кривая распиновка если на ssd1963 к ней экран подключать. Там такой осминог из проводов выходит!
Может кто знает какой экран можно пин в пин подключить?
А про экранчик, ну это реально удобно.
По поводу уровней сигнала. Если использовать TJA1051 вместо MCP2551, может пропускать данные от каких-то блоков? У меня например TJA1051 работает на 33.33kbps, но я не могу найти пакет от кнопок с руля. В интернете есть известная связка MCP2515+MCP2551 под ардуино
Угу, только и всего.
А потом это ни где не обрабатывается.
Про это выше и написал.
От скорости структура посылки пакета не меняется, так что всё будет хорошо.
Но если хочется чтоб из программы устанавливалась скорость, то нужно её отлавливать в скетче и конфигурировать кан шилд.
Можете допилить, вам только спасибо скажут. :)
Задаю в скетче скорость 33.33, выбираю в CANHacker 500kbps, жму connect и ругается что сканер не отвечает. Пока не разбирался, но думаю что все-таки все обрабатывается
Misha2066
16.10.2018, 17:00
Вот например на Рио 13-го года климат никакого отношения к CAN не имеет. Но имеет вывод на диагностическую колодку, И ещё этот провод заходит в BCM, и корейцы пишут, что это K-line. Может это оно?
Я узнал параметры пакетов идущих в дисплей от блока климата, это (цитата):
скорость передачи 14400,
8 бит данные, 1 стоп бит, и по четности – нечетный(odd)
Посылка состоит из 10 «пакетов.
другими словами двумерный массив из 10 строк по 11 элементов, если на языке СИ, то mass[10][11];
Вот пример реальных данных:
unsigned char data[10][11] =
{
{ 160,0,0,0,120,103,44,0,0,0,51 }, //
{ 161,0,9,0,0,0,0,0,0,0,9 }, //
{ 162,0,0,0,120,103,44,0,0,0,51 }, //
{ 163,0,9,0,0,0,0,0,0,0,9 }, //
{ 164,0,0,0,120,103,44,0,0,0,51 }, //
{ 165,0,9,0,0,0,0,64,0,0,73 }, //
{ 166,0,0,0,120,103,44,0,0,0,51 }, //
{ 167,0,9,0,0,0,0,0,0,0,9 }, //
{ 168,0,0,0,120,103,44,0,0,0,51 }, //
{ 169,0,9,0,0,0,0,0,0,0,9 } //
};
Первая строка начинается с 0xA0(нулевой элемент массива, также его можно назвать ID), вторая 0xA1 …последняя с 0xA9, последний байт в каждой строке контрольная сумма, представляющая собой логическую операцию исключающее ИЛИ (XOR) 1 по 9 элемент(байты данных), т.е. mass[i][10]=mass[i][1]^mass[i][2]^…^mass[i][9];
(конец цитаты)
т.е. надо написать (или взять готовый) скетч, подключить Ардуину цифровым входом к контакту и земле, и получить набор пакетов, каждый их которых будет соответствовать своему изображению на дисплею
Misha2066
16.10.2018, 23:28
Попробовал ради интереса скетч из примера SoftwareSerialExample. Подключился к контакту идущему от блока климата и массе а/м, на контакты 10 Ардуины и GND, светодиод ТХ Ардуины моргает, в мониторе мусор, но по видимому я на верном пути, надо только подобрать скорости обмена и составить правильный скетч.
Ну и наверное уходить из этой ветки, т.к. к кан-шине это никакого отношения уже не имеет.
А я не уверен что библиотека поддерживает 33.33.
Надо смотреть.
Я уже на вскидку не помню.
Попробуй задать стандартную 500 или 125 и посмотри будет ли коннект.
А про климат забавно! Передача по UART это сильно.
Написать парсер под это не сложно.
Misha2066
17.10.2018, 11:54
А я не уверен что библиотека поддерживает 33.33
А что значит 33.33? Вроде скорость по информации из инета 14400
Доброе время суток, коллеги!
Подскажите пожалуйста чайнику. Разбираюсь с примерами к библиотеке mcp2515.h
Не могу понять, как при отправке данных использовать id типа 0x12345678
передает только 0x123 ?
Спасибо.
Включить режим 29 бит видимо.
А что значит 33.33? Вроде скорость по информации из инета 14400
Это скорость шины
Misha2066
18.10.2018, 16:36
Я подключился к контактам идущим на дисплей климата и получил пакеты.
Передача от блока климата идет постоянно и циклично, пакет меняется тогда, когда меняется изображение на дисплее.
Как-то непонятно форум работает - авторизует только с домашнего компа. А с рабочего посылает.
Может кто знает какой экран можно пин в пин подключить?
Обратите внимание, на той же странице продаван предлагает экран специально для этой платы.
Как можно видеть на ILI9341. правда маленький.
На ILI9341 все дисплеи вроде не большие.
Я не вникал, но походу ограничение самого контроллера.
Но за ответ всё равно спасибо.
Кстати идеальный вариант для портативного канхакера выйдет.
Вообще почти без пайки, только КАН трансивер припаять.
Интересно то, что посылки разной длины и нет четкой привязки к тому, что изображено на дисплееПреобразуйте посылки в 16 разрядный код для отображения, будет намного проще анализировать.
Misha2066
19.10.2018, 12:03
Мне кажется, что я не правильно скорость выставил. Как бы это проверить? Информации по этому параметру не нашел.
Misha2066
19.10.2018, 23:43
Похвастаю на последок. Скорость работы uart-шины между блоком климата и дисплеем климата в Ниссан 9600. Это точно.
Появились осмысленные данные, которые напрямую зависят от того, что выводится на дисплей.
Soldat6600
03.01.2019, 23:35
Отправка
unsigned char stmp[8] = {0, 1, 2, 3, 4, 5, 6, 7}; ЭТО ДАТА
CAN0.sendMsgBuf(0x00, 0, 8, stmp); это отправка в адрес 00. и длина пакета 8 байт
тоесть твои ID надо перевести в хекс
Вместо CAN0. надо подставить то название, с котором у тебя проинициализирован MCP
Как отправить вот эти считанные данные: ID: 62F Data: 44 51 16 14 0E
помогите пж., не получается.
Здраствуйте Андруино друзя. Я новьй здес и меня нужна помощ.
Я използуваю arduino nano (https://duino.ru/arduino-nano) + mcp2515 (https://duino.ru/can-bus-modul-mcp2515) и хочу читать message over 95kBPS Mid-Speed Can-Bus. Я попробувал с canhacker но здесь токой baud rate нет, какое библиотеку и конфигурации мне нужнь для четения ета.
Я из Болгарии для ето мой руский токой :). Надеюс ктото делал и даеть насока.
Здраствуйте Андруино друзя. Я новьй здес и меня нужна помощ.
Я използуваю arduino nano + mcp2515 и хочу читать message over 95kBPS Mid-Speed Can-Bus. Я попробувал с canhacker но здесь токой baud rate нет, какое библиотеку и конфигурации мне нужнь для четения ета.
Я из Болгарии для ето мой руский токой :). Надеюс ктото делал и даеть насока.
Нужно указать в коде скорость 95кб/с, а в canhacker можно выбрать любую скорость
Нужно указать в коде скорость 95кб/с, а в canhacker можно выбрать любую скорость
Можно посилать как указать в коде ето скорост.
Можно посилать как указать в коде ето скорост.
В основном скетче, когда создается объект mcp2515, в конструктор передается 2 параметра. Один из них скорость
johnyquest
17.04.2020, 19:47
Ребята, подскажите пожалуйста. Кто-нибудь подключал джойстик от e70 кузова с номером: 6979472?
https://a.allegroimg.com/original/034a70/eef69538475b8ea228a22e019026
Никак не могу нащупать код инициализации.
ID 202 зажигает подсветку, но только после "включения зажигания" - через ID 130.
И командами не отвечает. Работает только в связке с KGM или CAS блоком.
Я уже и шилды проверял (у меня их 2 - на TJA и MCP c 8 и 16 мГц кварцами), и фильтры ставил - нет ответа. Использую CAnHacker 2.00.02
Никак не могу нащупать код инициализации.
Возможно джойстик нужно постоянно пинговать
johnyquest
23.04.2020, 23:57
Возможно джойстик нужно постоянно пинговать
Благодарю за ответ. Думал темка "заглохла":rolleyes2:
Так-то пингую, постоянно, но ответа нет.
Вернее нет ответа об инициализации с ID 5E7, только с ID 4E7
Самое интересное, что джойстик от F06 #9286707 с кнопкой медиа (K_CAN2) - работает.
только с ID 4E7
Так есть ответ или нет?
Работает только в связке с KGM или CAS блоком.
Подключи их в связке и сними лог
johnyquest
26.04.2020, 03:38
сообщения или появляются или нет, закономерности выявить не удалось.
поэтому посадил canl на землю через резюк 10к, подаю "питание" командой ID 130, а потом активирую джойстик циклично ID 1AA, которая в логе.
вроде бы работает.
правда есть один нюанс - джойстик работает до тех пор, пока я не включаю подсветку через ID 202 =)
Добрый день!
Тема ещё жива?
У меня ауди а6 2003 года. Кнопки управления магнитолой с руля идут по Can, имеется магнитола на андроиде где есть возможность подклчюения кнопок по сопротивлению. Хочу сделать конвертер с CAN на сопротивление.
Как понимаю сначала нужно прослушать can и отловить команды нажатия кнопок.
Заказал кан бус шилд по ссылке https://duino.ru/CAN-BUS-Shield.html
Подскажите чего делать дальше (например загружать скетчи), ардуино уно и проичх разновидностей нет, есть только компьютер на винде и конвертелр RS232 в USB.
Ps Видел в теме есть владельцы Вага, может у Вас инфа по командам кнопок с руля.
https://www.audiforum.us/threads/id-codes-can-protocol.4999/
Спасибо за ссылочку. Почитаю.
johnyquest
09.11.2020, 23:17
Всем привет.
Пытаюсь заставить работать приборку Lancer 10 на столе.
Вроде бы все команды нашёл. Но осталось 2 предупреждения на экране:
- низкий уровень тормозной жижи
- электрорейка.
Вдруг кто-нибудь снимал логи и нашёл эти PIDы - прошу подсказать.
Или выложить логи шины CAN comfort приборки.
johnyquest
13.11.2020, 04:19
Нашёл: 1AE 8 10 00 00 00 00 00 00 00 (первый байт - 10 нет тормозухи, 00 -есть)
Работает на vBulletin® версия 3.8.4. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot