Страница 1 из 2

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

Добавлено: Ср окт 06, 2010 10:27 pm
Володимир
Делаю бортовой компьютер, на PIC16F876A http://www.bk-ukraine.narod.ru/shema.files/image003.jpg у неё есть встроенный аппаратный компорт, настроил его на скорость 10400 но никак не могу законектится к микасу. Посилаю посылку #F0#81#10#F1#81#03 но никак не могу получить ответ, или там нужно выдержать какой то интервал после передачи?

Скажите у микас 10.3+ начальная скорость точно 10400?

Добавлено: Чт окт 07, 2010 7:18 am
romik
Посылка не правильная, ни тебе байтов заголовка, ни контрольки.

Добавлено: Чт окт 07, 2010 8:54 am
Володимир
romik писал(а):Посылка не правильная, ни тебе байтов заголовка, ни контрольки.
Посылка правильная и отвечает документу "Keyword Protocol 2000",

#81- байт определяющий формат сообщения;
#10 - байт определяющий адрес приемника сообщения;
#F1 - байт определяющий адрес источника сообщения;
#81 - Идентификатоp запроса startCommunication
#03 - Контрольная сума

Чтобы не лоханутся специально мониторил компорт при обмене разными прогами диагностики, у свех запрос startCommunication выглядит именно так.

Добавлено: Чт окт 07, 2010 9:04 am
chipsoft
Возможно неправильно делается WakeUp перед подачей StartCommunication. У Вас в посылке он выглядит как F0.
Скорость правильная - 10400, но после установки связи ее можно изменить на большую - вплоть до 57600.

Добавлено: Пт окт 08, 2010 11:24 pm
Володимир
chipsoft писал(а):Возможно неправильно делается WakeUp перед подачей StartCommunication. У Вас в посылке он выглядит как F0.
Скорость правильная - 10400, но после установки связи ее можно изменить на большую - вплоть до 57600.
Одну причину неработоспособности нашел, это искажение данных аппаратного порта микроконтроллера, пришлось переделать на програмный, подключил к-лайн и промониторил порт все передается как надо.

Подскажите по механизму "быстрой" инициализации, как правильно прочитать диаграму чтобы сделать WakeUp, какой алгоритм выбрать?

1. послать байт F0 выдержать паузу 50мс и послать комманду StartCommunication выдержать паузу 25мс прочитать ответ.

2. послать байт F0 выдержать паузу 25мс и послать комманду StartCommunication выдержать паузу 25мс прочитать ответ.

3. засечь время послать байт F0 подождать пока пройдет 50мс и послать комманду StartCommunication выдержать паузу 25мс прочитать ответ

или както иначе?

Добавлено: Сб окт 09, 2010 11:44 am
romik
Интересно, откуда взялся байт F0? Если таким образом пытаетесь имитировать FastInit, то передавать его нужно не на 10400. А лучше почитать в том же документе "Keyword Protocol 2000" на странице 6. Там даже картинка есть.

Добавлено: Сб окт 09, 2010 10:20 pm
Володимир
romik писал(а):Интересно, откуда взялся байт F0? Если таким образом пытаетесь имитировать FastInit, то передавать его нужно не на 10400. А лучше почитать в том же документе "Keyword Protocol 2000" на странице 6. Там даже картинка есть.
Картинка есть, также написано что для инициализации и передачи начальных сообщений диагностический тестер должен использовать скорость передачи данных равную 10400, но нигде нет как выполнить "Wake up Pattern".

Из картинки я могу предположить что байт #F0 (%11110000) нужно передавать на низкой скорости чтобы он передавался на протяжении 50ms (20 бод) или в линию на 25 ms подать логическую еденицу, потом на 25 ms логический ноль, а потом послать команду StartCommunication.

Поправте меня если я не прав.

Добавлено: Вс окт 10, 2010 2:28 pm
romik
Правильный ответ - во втором абзаце Вашего сообщения.

Добавлено: Пн окт 11, 2010 10:14 am
Володимир
romik писал(а):Правильный ответ - во втором абзаце Вашего сообщения.
Ясно, вечером попробую, скажите а микас 10.3+ поддерживает скорость 38400 бод, а то 57600 програмный порт уже не тянет.

Добавлено: Пн окт 11, 2010 12:13 pm
romik
Подерживает, хотя для БК это даже много.

Добавлено: Пн окт 11, 2010 12:30 pm
Володимир
romik писал(а):Подерживает, хотя для БК это даже много.
Возможно, попробую на малой скорости может даные будут менятся вовремя.

Добавлено: Пн окт 11, 2010 9:21 pm
Володимир
romik писал(а):Правильный ответ - во втором абзаце Вашего сообщения.
Подскажите что я делаю не так, а то и сам замучался в гараж бегать и соседи наверное уже волнуются почему я кадый вечер каждые 5 минут бегаю в гараж, делаю инициализацию таким кодом.

serout2 PORTC.6, 6230, [$f0] //Посылаю в микас байт $f0 на скорости 160 бод, пробовал и 200 бод результату ноль

Вместо посылки $f0 также пробовал посылать на 25мс лог.еденицу а потом на 25 мс лог.ноль

serout2 PORTC.6, speed, [$81,$10,$F1,$81,$03] //Посылаю в микас команду StartCommunication на скорости 10400

pause 25 //Жду время Р2 25 милисекунд

serin2 PORTC.7, speed, 500, startCom2, [otv[0],otv[1],otv[2],otv[3],otv[4],otv[5],otv[6],otv[7],otv[8],otv[9],otv[10],otv[11],otv[12]]//На протяжении 500 мс жду ответ от микаса на скорости 10400 бод

Результату ноль.

Добавлено: Пн окт 11, 2010 9:41 pm
chipsoft
Снимите ЭБУ с машины и дома пробуйте :) А чтобы понять, что делаете не так - подключите осцилограф, думаю сразу найдете причину ошибки.

Добавлено: Пн окт 11, 2010 9:52 pm
Володимир
chipsoft писал(а):Снимите ЭБУ с машины и дома пробуйте :) А чтобы понять, что делаете не так - подключите осцилограф, думаю сразу найдете причину ошибки.
Но алгоритм работы правильный или нет?

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