Разменям един разходомер за един Правец 8.
Реклама
Collapse
Съобщение
Collapse
No announcement yet.
Fiat Live Data Reader [Bosch EDC15 ECU протокол ?]
Collapse
X
-
А монитор за правеца трябва ли ти? Имам 4 работещи, но за какво ми е този разходомер, като си имам вграден в колата?Велосипед да, но ролкови кънки - не! Балканчето е без акумулатор, симсонката е без гуми. Я, падна ми се и фиатче 126! Вече съм с фиат и напреднал шофьор, та чак съм станал маниак, а сега и фанатик!
Коментар
-
кола
Има в интернет готови платки с дисплеи само се слага програма и показва каквито сложиш синволи демек тя да е допълнение към старата платка нещо такова http://www.techtoys.com.hk/PIC_board...598428483.html
Коментар
-
@vgeorgiev Поздравления! Много готин проект!И аз съм замислил да си направя подобна машинка и намерих доста информация в интернет, а сега попаднах и на тази тема. Бих искал да попитам програмната част на OBDuino ли е, тъй като функционалността е същата и кода се разпространява публично?
Коментар
-
Браво! Много добра реализация, изчетох темата с интерес!На моето Punto 1.9 JTD много ме дразни дървения бордови компютър и аз от първия ден се чудих какво мога да направя за да ми показва малко по-живи данни. От няколко седмици работя по хардуерната част и днес я завърших. Доста ми помогна тази тема и тази статия.Сега започвам да пиша и софтуерната част. Искам да попитам коя е библиотеката, за която говориш тук:vgeorgiev написа:Открих една библиотека, която ми помогна да имплементирам комуникацията.
Коментар
-
Според мен няма как да изгориш ЕКУто през К линията.К линията е отворен колектро/дрейн. Тестер устройството също, като има и пул ъп резистор 510 ohm.Ето библиотеката: http://en.pudn.com/downloads162/doc/...735743_en.htmlEDIT: Ето и фиатската документация на даталинк и апликейшън нивата.Това, което ти трябва е да прочетеш този пдф: fiat_kwp2000.pdfhttps://www.dropbox.com/s/aj15doiw2tn8kua/kpw.rar?dl=0паролата е: fiatforum2014veskoy написа:Браво! Много добра реализация, изчетох темата с интерес!На моето Punto 1.9 JTD много ме дразни дървения бордови компютър и аз от първия ден се чудих какво мога да направя за да ми показва малко по-живи данни. От няколко седмици работя по хардуерната част и днес я завърших. Доста ми помогна тази тема и тази статия.Сега започвам да пиша и софтуерната част. Искам да попитам коя е библиотеката, за която говориш тук:vgeorgiev написа:Открих една библиотека, която ми помогна да имплементирам комуникацията.04/2000 Fiat Brava 1.9 JTD 105+
Коментар
-
vgeorgiev написа:Според мен няма как да изгориш ЕКУто през К линията.К линията е отворен колектро/дрейн. Тестер устройството също, като има и пул ъп резистор 510 ohm.Ето библиотеката: http://en.pudn.com/downloads162/doc/...735743_en.htmlEDIT: Ето и фиатската документация на даталинк и апликейшън нивата.Това, което ти трябва е да прочетеш този пдф: fiat_kwp2000.pdfhttps://www.dropbox.com/s/aj15doiw2tn8kua/kpw.rar?dl=0паролата е: fiatforum2014Код:int main(void){ lcd_init(); lcd_clrscr(); wdt_disable(); // make sure the watchdog is not running UBRRH = UART_BAUDRATE>>8; // set baud rate UBRRL = UART_BAUDRATE; UCSRB =((1<<RXCIE)|(1<<RXEN)|(1<<TXEN)); // enable Rx & Tx, enable Rx interrupt UCSRC =((1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0)); // config USART; 8N1 serial_msg_pntr = (signed char *)&serial_msg_buf[0]; // init serial msg pointer iso_glob.uart_n_baud = N_9600; // set baud rate to 9,6kBaud iso_hardware_init(); // init ISO hardware iso_uart_init(); // init ISO software UART ident(); // send identification to terminal serial_putc(’>’); // send initial command prompt sei(); // enable interrupts if(iso_fast_init() == ISO_RETURN_CODE_OK) { lcd_puts("ECU Connection:"); lcd_goto(40); lcd_puts("Successful!"); } else { lcd_puts("ECU Connection:"); lcd_goto(40); lcd_puts("Error!"); } _delay_ms(500); return 0;}
Код:unsigned char diagmode[6] = {0x82, 0x0A, 0xF1, 0x10, 0x81, 0x01};iso_send_msg(diagmode, sizeof(diagmode);
Коментар
-
Ето рекуестаКод:char rqst(unsigned char data){ unsigned char request[3] = {0x02, RQ_DATA, data}; sei(); timer1_start(T1_PRESCALER); while(TCNT1 < TIME_P3_DEF); iso_send_msg(request, sizeof(request)); return CODE_OK;}
Код:do { iso_recv_msg(msg_buff); ++time_count; db = msg_buff[0] & FMT_MSG_LENGTH; cs = 0; for(i = 0; i < db + 1; i++) cs += msg_buff[i]; if ((msg_buff[db + 1]==cs) && (msg_buff[0]!=0)) res = 1; else res = 0; }while((time_count < TIME_OUT_CNT) && (res == 0));
04/2000 Fiat Brava 1.9 JTD 105+
Коментар
-
Ами вързвам се на 9600 защото четох в предишните коментари, че на 10400 имало проблем.Проверих Unidiag файловете видях, че адреса на екуто е 0x0A, на тестера 0xF1.В iso_fast_init съм ги сложил:Код:/* send StartCommRequest message */ unsigned char start_comm[4] = {0x81, 0x0A, 0xF1, 0x81};
Код:int main(void){ lcd_init(); lcd_clrscr(); wdt_disable(); // make sure the watchdog is not running UBRRH = UART_BAUDRATE>>8; // set baud rate UBRRL = UART_BAUDRATE; UCSRB =((1<<RXCIE)|(1<<RXEN)|(1<<TXEN)); // enable Rx & Tx, enable Rx interrupt UCSRC =((1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0)); // config USART; 8N1 serial_msg_pntr = (signed char *)&serial_msg_buf[0]; // init serial msg pointer iso_glob.uart_n_baud = N_10400; // set baud rate to 9,6kBaud iso_hardware_init(); // init ISO hardware iso_uart_init(); // init ISO software UART ident(); // send identification to terminal serial_putc(’>’); // send initial command prompt sei(); // enable interrupts int iSuccess = 0; if(iso_fast_init() == ISO_RETURN_CODE_OK) { lcd_puts("ECU Connection:"); lcd_goto(40); lcd_puts("Successful!"); iSuccess = 1; } else { lcd_puts("ECU Connection:"); lcd_goto(40); lcd_puts("Error!"); } _delay_ms(500); if(iSuccess == 1) { unsigned char diagmode[5] = {0x81, 0x0A, 0xF1, 0x10, 0x81}; sei(); unsigned char return_code; return_code = iso_send_msg(diagmode, sizeof(diagmode)); unsigned char time_count = 0; unsigned char msg_buff[260]; timeout_multiplier = 0x19; int db, cs, res, i; if(return_code == ISO_RETURN_CODE_OK) { do { iso_recv_msg(msg_buff); ++time_count; db = msg_buff[0] & FMT_MSG_LENGTH; cs = 0; for(i = 0; i < db + 1; i++) { cs += msg_buff[i]; } if ((msg_buff[db + 1]==cs) && (msg_buff[0]!=0)) { res = 1; } else { res = 0; } } while((time_count < timeout_multiplier) && (res == 0)); } unsigned char rpm_request[5] = {0x81, 0x0A, 0xF1, 0x21, 0x30}; int rpm=0; char text[16], rpm_str[5]; while(1) { return_code = iso_send_msg(rpm_request, sizeof(rpm_request)); time_count = 0; db=0; cs=0; res=0; if(return_code == ISO_RETURN_CODE_OK) { do { iso_recv_msg(msg_buff); ++time_count; db = msg_buff[0] & FMT_MSG_LENGTH; cs = 0; for(i = 0; i < db + 1; i++) { cs += msg_buff[i]; } if ((msg_buff[db + 1]==cs) && (msg_buff[0]!=0)) { res = 1; } else { res = 0; } } while((time_count < timeout_multiplier) && (res == 0)); rpm = cs * 1; // RDBLI_2000, 0x21, 0x30, "Engine speed", 1, "Engine speed", 1, "#scaling unsigned 2 X*1 RPM"; lcd_clrscr(); strcpy(text, "RPM: "); itoa(rpm, rpm_str, 10); strcat(text, rpm_str); lcd_puts(text); _delay_ms(150); } } } return 0;}
Коментар
Реклама
Collapse
Коментар