Обновление ChipLoaderNG 3.7.0, подробнее тут: viewtopic.php?f=19&t=11442

Делаю БК, не могу законектится к Микас 10.3+

Обсуждаются вопросы, связанные со всевозможным железом, использующемся для чип-тюнинга и диагностики (K-Line алаптеры, дилерское оборудование,...)

Модераторы: blistograd, chipsoft

Володимир
Сообщения: 221
Зарегистрирован: Пт авг 08, 2008 9:27 am
Откуда: Украина

Сообщение Володимир » Пн окт 11, 2010 10:48 pm

chipsoft писал(а):
Володимир писал(а):Но алгоритм работы правильный или нет?
Если бы он был правильным, то все работалдо бы. Очень похоже, что проблема с WakeUp-ом. Осцилограф в Вашем случае все прояснит.
Осцилографа к сожалению нет.

Володимир
Сообщения: 221
Зарегистрирован: Пт авг 08, 2008 9:27 am
Откуда: Украина

Сообщение Володимир » Вт окт 12, 2010 7:20 am

Ну раз осцилографа нет попробую такой алгоритм:

1. посылка лог еденицы в линию
2. пауза 25 мс
3. посылка лог ноля в линию

далее паузу перед командой StartCommunication попробую циклически менять, может там получается задержка перед посылкой первого байта и команда WakeUp выходит за пределы 50мс.

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

Аватара пользователя
chipsoft
CHIPSOFT.RU
Сообщения: 8315
Зарегистрирован: Вс дек 18, 2005 1:23 pm
Откуда: Украина, Киев

Сообщение chipsoft » Вт окт 12, 2010 8:28 am

Вы чем паузу делаете? И уверены ли Вы, что она именно составляет 25 мс?

Вот примерно так должно работать:

uart = new UART();
uart->Open("\\\\.\\COM11",10400,8,ONESTOPBIT,NOPARITY);
uart->SetTimeOuts(200,200,200,200,200);
uart->WakeUpECU();
uart->CreateSBuffer("\x81\x10\xf1\x81\x03",5);
uart->WriteBytes();
uart->TimerWait(200);
uart->ReadBytes(xx);

void UART::WakeUpECU(unsigned int Delay)
{
Purge(PURGE_RXCLEAR | PURGE_TXCLEAR);
BreakON();
TimerWait(Delay); // 25 mc
BreakOFF();
TimerWait(Delay); // 25 mc
Purge(PURGE_RXCLEAR | PURGE_TXCLEAR);
}
CHIPSOFT J2534 Pro: 5 CAN BUS, 1 SWCAN, 8 KLine, 5 - 20V Voltage generator
Онлайн магазин CHIPSOFT: shop.chipsoft.com.ua

Володимир
Сообщения: 221
Зарегистрирован: Пт авг 08, 2008 9:27 am
Откуда: Украина

Сообщение Володимир » Вт окт 12, 2010 9:36 am

chipsoft писал(а):Вы чем паузу делаете? И уверены ли Вы, что она именно составляет 25 мс?
В PicBasicPro есть команда Pause, которая делает задержку в милисекундах.
chipsoft писал(а):Вот примерно так должно работать:

uart = new UART();
uart->Open("\\\\.\\COM11",10400,8,ONESTOPBIT,NOPARITY);
uart->SetTimeOuts(200,200,200,200,200);
uart->WakeUpECU();
uart->CreateSBuffer("\x81\x10\xf1\x81\x03",5);
uart->WriteBytes();
uart->TimerWait(200);
uart->ReadBytes(xx);

void UART::WakeUpECU(unsigned int Delay)
{
Purge(PURGE_RXCLEAR | PURGE_TXCLEAR);
BreakON();
TimerWait(Delay); // 25 mc
BreakOFF();
TimerWait(Delay); // 25 mc
Purge(PURGE_RXCLEAR | PURGE_TXCLEAR);
}
На каком языке это написано?

Володимир
Сообщения: 221
Зарегистрирован: Пт авг 08, 2008 9:27 am
Откуда: Украина

Сообщение Володимир » Вт окт 12, 2010 10:29 am

chipsoft писал(а):Вы чем паузу делаете? И уверены ли Вы, что она именно составляет 25 мс?
Чтобы быть есче более точным попробую делать паузу в микросекундах.
PAUSE US 25000 25 милисекунд должно получится.

Аватара пользователя
chipsoft
CHIPSOFT.RU
Сообщения: 8315
Зарегистрирован: Вс дек 18, 2005 1:23 pm
Откуда: Украина, Киев

Сообщение chipsoft » Вт окт 12, 2010 2:45 pm

Володимир писал(а):
chipsoft писал(а):Вы чем паузу делаете? И уверены ли Вы, что она именно составляет 25 мс?
Чтобы быть есче более точным попробую делать паузу в микросекундах.
PAUSE US 25000 25 милисекунд должно получится.
Где именно Вы делаете эту паузу? Если в Виндовс, функциями языка программирования, то пауза в таком случае может отличаться от заданной на +- 70%. Для некоторых ЭБУ это критично.
CHIPSOFT J2534 Pro: 5 CAN BUS, 1 SWCAN, 8 KLine, 5 - 20V Voltage generator
Онлайн магазин CHIPSOFT: shop.chipsoft.com.ua

Володимир
Сообщения: 221
Зарегистрирован: Пт авг 08, 2008 9:27 am
Откуда: Украина

Сообщение Володимир » Вт окт 12, 2010 3:44 pm

chipsoft писал(а):Где именно Вы делаете эту паузу? Если в Виндовс, функциями языка программирования, то пауза в таком случае может отличаться от заданной на +- 70%. Для некоторых ЭБУ это критично.
Это не в виндовс, пишу прошивку для микроконтролера PIC16F876A на языке PicBasicPro, если верить авторам литературы точность паузы зависит от точности работы тактового генератора, учитывая что у меня генератор на 16 мГц то ошибка должна быть не очен большой.

Володимир
Сообщения: 221
Зарегистрирован: Пт авг 08, 2008 9:27 am
Откуда: Украина

Сообщение Володимир » Вт окт 12, 2010 9:37 pm

Как говорил кот Матроскин "Ура, заработало", алгортм работы у меня получился такой:

PORTC.6=1 //лог еденица на вих к-лайн
pause 300 //пауза 300 мс, время Tidle
PORTC.6=0 //лог ноль на вих к-лайн
pauseus 25000 //пауза 25000 мкс, время TiniL
PORTC.6=1 //лог еденица на вих к-лайн
pauseus 24000 //пауза 24000 мкс
serout2 PORTC.6, speed, [$81,$10,$F1,$81,$03] //посылка в микас команды StartCommunication
serin2 PORTC.7, speed, 700, startCom2, [otv[0],otv[1],otv[2],otv[3],otv[4],otv[5],otv[6]] //чтение ответа

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

Кто хочет посмотреть на проект БК заходите на сайт http://www.bk-ukraine.narod.ru/ Первая рабочая прошивка появится к концу недели, она уже на сегодня показывает дату и время, а также показывает мгновенныq расход топлива, путевой\часовой в зависимости стоит автомобиль или едет положение дросселя и режим работы двигателя.

Спасибо всем откликнувшимся за помощь.

Володимир
Сообщения: 221
Зарегистрирован: Пт авг 08, 2008 9:27 am
Откуда: Украина

Сообщение Володимир » Чт ноя 04, 2010 10:37 pm

Подскажите, если програмой АКМ делать калибровку дросселя, то калибровку делает сам микас или это АКМ записывает в микас минимальное и максимальное напряжение на ДПДЗ?

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей