VW Scanner - портативный сканер для VAG небольшой отчетец

  • Автор темы Pasha@VR6
  • Дата начала
  • Ответы 348
  • Просмотры 232К
Но у нас Shift - тоже обрабатываемая кнопка...
вообщем кнопки я уже сделал - в последней прошивке (см 1 страницу этой ветки)...
выходные провел за травлением, сверлением и паянием конечной версии сканера на 3310...
сегодня буду испытывать чего я такого наразводил :) (update: испытал - все работает :dance2: )

p.s. EagleB3 я там кое чего наваял, попробуйте, как будет время, новую прошивку...

p.p.s. сделал еще кое-какие исправления, скинул Pasha@VR6, так что смотрим чуть позже первую страницу...

встаёт вопрос о помехах!!!
Имеем: сканер работал в режиме измерений около 1 часа (дальше было лень ждать) при заглушенном двигателе... ни одного дисконекта...
при запущенном движке дисконект наступает от 2 минут до 20.... надо давить помехи, но я не могу понять по чем они лезут, питание или K-linе ? (сегодня попробую поставить дросель по питанию и керамики навешать побольше...)
 
Вообщем решил поделиться с миром что я такого сотворил:
встречаем сканер на базе индикатора от NOKIA 3310. :confused:

Как это выглядит на данный момент:


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



меню:






ввод адреса:



режим измерений:



000 блок измерений:



ошибки:



Информация о блоке:




98 блок - адаптация:






Архив со схемой, платой в SprintLayot5 и прошивкой для atmega8515 или at90s8515 и снимками экрана:

плата уже расчитана на установку пзу типа 24сХХ - на схеме пока ее нету - чуть позже дорисую...
платку делал по утюжной технологии :)

Вот такие у нас пироги :drinks:
 
Заканчиваю руссификацию сканера (относительную.. ибо переводить все меню влом - да и по английски они понятнее выглядят), и расшифровку ошибок...
возникли вопросы:
как сократить такую фразу - ибо длинные они, а память не резиновая
1. "выход из диапазона адаптации. больше верхнего предела под нагрузкой"
2. "выход из диапазона регулирования. меньше нижнего предела"
и тд..
я сократил фразу так:
"вых. из диапазона адапт.> верхнего предела-под нагрузк."
но все равно длинно получается... может кто метко и немногословно передаст данное состояние ;)
 
А что у нас с помехами??? Решилась проблема?

Заметил такую весч: при незаведенном двигателе - более менее, хотя связь иногда рвецца. На заведенном - рвецца чаще, НО! ЭБУ АБС и АКПП одинаково отлично держат коннект как на заведенном, так и на заглушенном двигателе. Проблема тока с ЭБУ двигателя.
 
у меня на незаведенной машине связь не рвется вообще (по крайней мере 50 минут ждал - надоело) АБС не рвет связь на заведенной машине тоже (пол дня катался по городу смотрел скорость каждого колеса), а вот двиг.... подбором резистора подтяжки на мс31999 добился того что двиг рвет связь намного реже, но дальше уже нужно брать осцилл и смотреть моменты когда пропадает связь... а его пока нету :( (попробую на выходных подключиться напрямую к ЭБУ - если рвать не будет, значит зависимость идет от длины жгута от ЭБУ до ОДБ разъема)

p.s. сделав себе тестовую прошивку - заметил что связь пропадает именно при получении чего-то от ЭБУ, и никогда при передаче блоков к нему... копаю дальше...
 
Дописал расшифровку ошибок, но только для Индикатора НОКИИ3310 (там 6 строк по 14 символов, на 2 по 16 будет совсем не информативно :( )
работает так:
смотрим ошибки в цифровом виде, если хочется расшифровки - жмем энтер(связь с блоком разрываем, ибо поиск в ПЗУ по I2C шине идет долго) и листаем ошибки в расшифрованном виде - например:
ДМРВ
ОБРЫВ/К.З. на+

ЛЯМБДА
НЕТ СИГНАЛА

и тд.
в пзу внесено уже 134 ошибки по двигателю, абс и подушкам безопасности.. (не заполнено и половины 8 кб пзушки - которую можно расширить до 64 кб без изменения программы и схемы)
архив с прошивками схемой и печатной платой...

хекс eepromw.hex заливаем в контроллер - включаем - ждем пока не напишет save complete
заливаем scaner.hex
Работаем.
програмирование пзушки идет самим контроллером, в него шьется прошивка - которая заполняет пзу и строит таблицу адресов соответствия... (мне пока так было быстрее и проще, но можно и программатором шить, только сделать прогу на каких-нить дельфях для добавления ошибок в удобном виде...)

p.s. если кто-хочет помоч с прогой на "языке высокого уровня" пишите в личку... ;)
 
Pasha@VR6 написал(а):
А что у нас с помехами??? Решилась проблема?

На двигателе 2Е (скорость 1200 бит/сек) наработка on-line порядка 8 часов. Не подряд, но кусками 45мин...2часа. Ни одного слета!

А вот АБС (Teves MK 04, 9600 бит/сек) моментально расстыковывается во время движения, но это, КМК, не бага, а фича. При заведенном двигателе тоже ни одного слета.

Если есть проблемы с надежностью коннекта, то, во-первых, КМК, полезно указывать скорости, на которых работает блок. И, во-вторых, если "проблемный" блок устанавливает связь на 9600 попробуйте поработать с ним на 10400 и наоборот. По крайней мере в теории возможен вариант, когда автоматический определитель скорости коннекта сработает неверно.
 
долго я не писал - в отпуске просто (и еще и Папой стал :) )
Посмотрел еще раз исходник, подправил кое что... Все равно связь периодически с двигом рвется, а так-как при заглушенном двигателе она не рвется, и при связи с АБС (на тех же 9600) она таже НИКОГДА!!! не обрывалась, то тут все-же что-то со схемой и помехами... Нужен хороший цифровой осцилл (или приставка к ноуту) и писать протокол обмена - смотреть момент когда идет обрыв...
Есть небольшое описание протокола, где написано что при неправильном байте девайс (мастер - сканер или блок) посылает этот байт еще раз, но проверить это - нужно переписать все процедуры обмена, а вот в правильности того дока я не уверен.... :(
расследование продолжается :)

p.s. Вопрос: 000525-03-10 "Лябмда - Нет сигнала" - что сие означает? сигнал с лямбды идет - вижу как напруга прыгает... а ошибка периодически вылазит?
 
Переписал практически с нуля обмен с блоком (отладочного кода больше чем реального :) ) и немножко офигел от того что вышло... связь рвется не при передаче или приеме блока, а при проверке на окончание (иногда приходит не 03 а фиг знает что), и при при проверке длины блока (стоит выдавать "ошибка" если блок длиннее 128 байт).
Сейчас пишу вывод на экран сырых данных идущих с блока и передаваемых в него... будем анализировать!!!

Запихал все в мыльницу - вышло очень даже ничего :)
 
Блин тут проблема в чем то другом зарыта мне кажется в обрыве связи! И помехи в машине и все такое не причем, т.к. с пасатом В5+ работало отлично без всяких разрывов 40мин точно, на моейв теч 5 мин рвет и все ,а чаще всего при трогании с места обрыв связи, чтото не то с протоколом! Ну или всетаки схемотехника !!!!Хотя с пасей другим работает вить!!!!!
 
Для отчета.
Проверял Гольф 4 2002 гв как говорится полный "фарш".
Сканер первоначальной схемы без каких либо доработак с прошивкой 2.3 не увидел ABS и Коробку. Двигатель опросился на скорости 9600 без проблем.
 
Остается только искать осцилл под комп с функцией длительной записии, покататься до 5-10 раз обрывов.... тогда все будет видно - что не так у нас.
Посоветуйте может кто схему такого девайса - несложного в сборке?
 
Остается только искать осцилл под комп с функцией длительной записии

Ну я смотрю вы норовите совсем от правильного пути отклониться...

Посоветуйте может кто схему такого девайса - несложного в сборке

Собирать такой девайс самостоятельно ? Сочувствую.

покататься до 5-10 раз обрывов.... тогда все будет видно

Разбирать осциллограммы с K линии запоминающего осциллографа используемого в качестве универсального логгера для того чтобы понять что не так в верхнеуровнем протоколе ? Сочувствую.

Если можно подсказывать: ковырять исходники MonoScan нужно - такой шанс. И тогда, например, станет ясно почему “иногда приходит не 03 а фиг знает что”.
Но в этом деле я не помощник – я и так сделал больше положенного – выложил результаты своей работы по взлому этого kw1281

Нет, если гордость не позволяет, то конечно нужно делать самому. Но шансов с этим микропроцессорным девайсом, без нормальных и объемных логов, уж очень мало, по моему
 
Hounddog написал(а):
Если можно подсказывать: ковырять исходники MonoScan нужно - такой шанс. И тогда, например, станет ясно почему “иногда приходит не 03 а фиг знает что”.
Но в этом деле я не помощник – я и так сделал больше положенного – выложил результаты своей работы по взлому этого kw1281

Да вот кстати как моноскан работает не рветсвязь???

Вить исходя из того что вагкомы и прочее стабильно работают остается что в програме чтото не то!! Яж вроде правильно думаю!

Может Hounddog что нибудь подскажет он небось програму сначало писал для моноскана или только оболочку??
 
да при чем тут гордость? :) %) ;)
Я с радостью приму любую помощь, (тем более тоже не для одного себя делаю - причем если кто хочет помочь, то и исходники можно дать... (только вот коментариев там мало, а асма 3000 строк разбирать - дело неблагодарное :( )) и кстати поковырять исходники моноскана - это дельная мысль!! причем в голове моей она уже давно - а вот времени у меня сейчас нету совсем :(, но я обязательно этим займусь... ;)

p.s. не понимаю тогда одного - при незаведенном моторе - вылетов НЕТУ вообще....
отсюда я и делал выводы о помехах, но сейчас у меня закрадываются сомнения о своих предположениях %)
 
Cyber_RAT написал(а):
отсюда я и делал выводы о помехах, но сейчас у меня закрадываются сомнения о своих предположениях %)

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

  Итак, поэтапно процесс обмена данными выглядит следующим образом.
Программа ( пока передает команду - статус Master ) :
- посылает в порт первый байт команды
- ожидает конца передачи и очищает буфер приемника от принятого эха
- переключается на прием и ожидает ответа устройства
Устройство ( пока принимает команду - статус Slave ) :
- очищает буфер приемника и ждет прихода байта
- принимает байт, инвертирует и посылает в порт
- ожидает конца передачи и очищает буфер приемника
- переключается на прием и ожидает прихода следующего байта
Программа :
- принимает возвращенный байт
- если он является инверсией от переданного, то посылает в порт следующий байт команды
- если он не является инверсией переданного, то повторяет передачу того же байта
- если сделаны три безуспешные попытки передачи одного и того же байта - обрывает коннект
  Описанная процедура циклически повторяется до тех пор, пока не будет передан последний байт команды (03 - признак окончания передаваемого блока). После передачи байта 03 подтверждение приема не требуется, и программа автоматически переходит в режим ожидания ответа устройства.

???
 
- если он не является инверсией переданного, то повторяет передачу того же байта

И как бедное устройство определит это следующий байт или повтор предыдушего ?
 
А вот об этом и я думал очень долго - но так и не понял пока 8(
 
Hounddog написал(а):
И правильные выводы, судя по всему. Искажения действительно происходят. Но с изучением этого вопроса по осциллу - это ты перегнул...

Ну Ваг ком както борется с этими искажениями???? И провода намного длинше и не чего!!! Сранность в том как мне кажется, т.к. нет цикличности обрывов связи, всетаки может 1 мин проработать а может и 10мин, в одном и томже месте, иногда както они могут между собой договорится а иногда и нет! У меня например большинство обрывов связи происходит когда трогаешся, резко газу даешь, не может ЭБУ давать какую нибудь паузу в обмене данных(о которой мы не знаем,и программа соответственно тоже), когда он занят ???? Т.е. это чаще вмоемслучае случается при переходных режимах двигателя, ЭБУ в этот момент начинает интенсивно шевилить мозгами!!!
 
Назад
Сверху Снизу