ya hemos topado con el secretismo de las repro......joe
Enviado desde MI4 LTE
Versión para Imprimir
ya hemos topado con el secretismo de las repro......joe
Enviado desde MI4 LTE
Bueno, yo he probado y no cambia ni a tiros.
La memoria que lleva es una 29f400 de 4mb de capacidad la canvian por una 29f800 de 8 mb.
Y seguro que programan un apartado para hacer esto. Lo qur no se y no consegui encontrsr es en que idioma estan programadas las ecus. Por eso decia que lo mas fácil sería un interface, o otra cosa que comente hace mucho tiempo un interruptor para escojer repro o de serie, que solo hay que levantar una patilla de dentro la ecu y sacar un cable.
Enviado desde mi Redmi 3 mediante Tapatalk
Habria que ver el diagrama electrico del pedal, canbus, tempomat para hacer las combinaciones.
Luego habrá que saber qué lenguaje emplean las señales que comunica el canbus a la ECU. Tiene su ciencia pero alguien que haya hecho programación en primero de ingeniería sabrá hacer. Yo lamentablemente en mi carrera no se da programación.
De estas cosas jotorresta sabrá. jotoorrestaaaa deja el intercooler y deleitanos jajajaja.
Edito: dejo info a ver si alguien entiende porque yo no llego. No comprendo "flip flop?"
Hola, como bien dicen, las "grandes marcas" hace tiempo que lo tienen y meten màs de 2 bloques de mapas.
El hecho de montar la 800, es como ya han dicho, para duplicar la capacidad de la flash y asi poder meter hasta 4 mapas.
La opciôn b es mediante un interruptor, que decide si alimenta a una flash o a otra, cuando se montan 2 flash superpuestas o bien complicando aûn màs si con el interruptor se selecciona si trabaja a nivel alto o bajo activa la zona baja o la zona alta de la flash.
Asi ya se hacìa en los inicios de la inyecciön en los '90 sin necesidad de montar placas adicionales.
Lögicamente es mås sencillo con aplicaciön desde móvil o desde botones tempomat.
Asi tenemos soluciones para todos los bolsillos.
Saludos.
JajajajaCita:
Iniciado por Whitsnak [Only registered and activated users can see links. Click Here To Register...]
Lenguajes de programación hay tantos como casas comerciales, incluso algunas como Siemens utiliza varios lenguajes incluso mezclados entre si. En el sector industrial tiende todo a estandarizarse, pero aun asi no es fácil comunicar dos equipos de distintas marcas, llegando incluso a necesitar archivos parche para que se entiendan entre si. Imagínate cuando tienes que torear en una línea de producción en la que hay elementos de 3 o 4 marcas distintas.
En el tema ECU ni zorra idea del lenguaje que utilizan y ya sabemos lo oculta que ésta toda esta información. Imagino que es tan sencillo como setear un bit cuando se cumple la condición de sensor pedal embrague on y pulsador tempomat on. Ese bit al que le hemos hecho un set modifica la variable que ataca a un coding o a otro.
Como escribimos esa línea de programa, con que software y en que área de la ECU? Pues ni idea. Tiene que ser muy sencillo, pero como todo en esta vida requiere formacion.
Un biestable o flip flop no es mas que un set reset. Con un impulso Electrico cambia a on y con otro a off, como un interruptor, aunque normalmente se usa en Electronica para otras cosas que no son precisamente interruptores, tales como generadores de pulsos, frecuencia, etc.
Tengo entendido o creo que las señales de salida de la ECU, por ejemplo a las válvulas de vacío van con señales de este tipo, de pulsos a diferentes frecuencias.
Que me corrijan si no es exactamente asi.
Enviado desde mi Aquaris_M4.5 mediante Tapatalk
Por lo que yo se las señales de salida son PWM para activar electroválvulas.
Mi idea mas o menos es usar un analizador lógico conectado a can bus para ver a que ID envía vagcom la trama de bits para cambiar de un mapa a otro, ver toda cadena y copiarla.
Luego crear una interface y programarla (cosa que no se) para que envie esa secuencia cuando se pulse un boton o freno y el tempomat, etc...
Con un amigo que sabe programar conseguimos mover las agujas del cuadro y algunas luces del cuadro (con el cuadro fuera del coche)
Si alguien se anima le puedo echar una mano
Enviado desde mi Redmi 3 mediante Tapatalk
a nosotros nos da igual el lenguaje de programación, nos es transparente....
Una ECU no es mas que un controlador PID en tiempo real con unos parámetros de referencia a alcanzar, a los que llamamos mapas, que no son mas que matrices de datos.
hablar aquí de flip-flops es como si tratamos el tema frenos cerámicos de porsche y empezamos a hablar de las zapatas de un seat 127....
las tecnologías de las ECU actuales se basan en microprocesadores dedicados incluso arquitecturas reconfigurables como las FPGA
Enviado desde MI4 LTE
Las señales que salen de las ECU (por lo menos en PSA) son del tipo RCO (relacion ciclica de apertura). Son señales por impulsos que cierran a masa.
Enviado mediante Tapatalk
Hoy he encontrado un sinónimo mas para mi diccionario personal.
ECU = nizorraidea
Jajaja
Enviado desde mi Aquaris_M4.5 mediante Tapatalk
Es una buena idea conectar un dispositivo para que nos "chive" que comandos envia a la ECU desde VagCom al cambiar el coding.Cita:
A mi esto se me hace grande, lo que es la electricidad y electronica se me da relativamente mal. Pero no descarto hacer una ingenieria electronica en un futuro. Vamos, es el futuro, la autonatización de todo tipo herramientas, maquinas, sistemas, tiende a automatizarse con inteligencia diseñada previamente por humanos.
La electronica es un campo que siempre me ha llamado la atención.
Un saludo.
Engine Computer Unit (supongo!)Cita:
Iniciado por jotorresta [Only registered and activated users can see links. Click Here To Register...]
uce=ECU......unidad de control electrónico.....electronics control unit
Enviado desde MI4 LTE
Cita:ECU = unidad de control del motor (Engine Control Unit) leído al revés en Inglés. :thumbsup:Cita:
Iniciado por CarlosApellido1 [Only registered and activated users can see links. Click Here To Register...]
Claro Computer sería ordenador; si dices ordenador no puedes decir Unit en la misma abreviatura.Cita:
Anotado pues, ahora si me suena bien.
Dicen que nunca te acostarás sin saber una cosa más..:mrgreen2: :demonio:Cita:
Iniciado por CarlosApellido1 [Only registered and activated users can see links. Click Here To Register...]
Hice una placa de circuito para cambiar 2 firmware. Para activar la tarjeta 1 - debe enviar + 12V (1 lógico), Tarjeta 2 - no aplicar (0 lógico). Se puede activar sin apagar el motor.
Adecuado para EDC15VM + y EDC15P +
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Para cambiar el firmware para que?
Con KWP2000+ o MPPS v12 puedes leer y escribir en EDC15
Yo llevo multimapa en el TDI ARL cargado por OBD sin tener que desmontar nada
Actualmente los multimapas se pueden hacer por OBD, sin abrir la ECU. En edc15 edc16 edc17.
Con tempomat, con combinacion de pedales.. Etc.
Lo unico hay que saberlo programar bien.
Enviado desde mi MI 9 mediante Tapatalk
Si a alguno le interesa que me diga por privado.
No hace falta soldar nada en la ecu.
BWF87, sabías que la estructura, lo que es el hexdump de mi coche es diferente a cualquier otro edc15?Cita:
En mi coche no se podía poner multimap pero un conocido parece ser que consiguió reestructurar los mapas para hacerlo funcional como las demás edc15 cotidianas para poder crear el multimap?, yo flipando, lo desconocía en absoluto :mrgreen:
Ea verdad cuando lo miramos, solo tenias un coding, te habra puesto una actualizacion de una ecu con dos codings, con edc15 ea facil q la lectura por obd es lectura completa.Cita:
Iniciado por Whitsnak [Only registered and activated users can see links. Click Here To Register...]
Cuando me refiero a multimap es cambiar de mapa usando los pedales o teclas de tempomat, se puede en todas las ecus, ni que solo tengan un coding
Enviado desde mi MI 9 mediante Tapatalk
Si alguien necesita algo, como creador para que otros lo vendan como tal,en cualquier versión edc15 de cualquier motor que me lo diga,o le mando otra base actualizada con todo corregido y ya que lo haga si quiere para el día de mañana. Saludos!!!
Enviado desde mi Aquaris_A4.5 mediante Tapatalk
Alguien que comente como se puede hacer...?Cita:
Gracias
Enviado desde mi Aquaris V mediante Tapatalk
Y en las edc16 se podría? Que habría que hacer?
En las edc16 se puede, y edc17 tambien. Todo por OBD mediante repro.
Enviado desde mi MI 9 mediante Tapatalk
Tu también por aqui? :D venga barra libre para los que hacen repros que tanto nos ha ayudado a los novatos como yo! JajaCita:
Iniciado por goyodesanctis [Only registered and activated users can see links. Click Here To Register...]
Hope this helps anyone, although there doesnt seem to be much interest in this ECU...
Follow my other post and disable the checksums first.
1st step is to find how the CANBUS is handled. There is a buffer in RAM in which the messages are stored before they are transmitted.
On edc15, finding the buffer is easy. Example: Search for sequence of bytes: 0x280 or 0x288 or any other CAN id used by the ecu...
This will point you to the code which handles canbus:
Code:
ROM:00094156 mov r5, #280h
ROM:0009415A mov CAN_280, r5 ;CAN_280- RAM buffer handling id -0x280
ROM:0009415E movb rl4, #8
ROM:00094160 movb byte_C743, rl4
ROM:00094164 mov r4, #288h
ROM:00094168 mov CAN_288, r4
ROM:0009416C movb rl4, #8
ROM:0009416E movb byte_C74F, rl4
ROM:00094172 mov r4, #380h
ROM:00094176 mov CAN_380, r4
ROM:0009417A movb rl4, #8
ROM:0009417C movb byte_C75B, rl4
ROM:00094180 mov r4, #480h
Now that you've found the CAN buffer, refer to the FR CAN section.
Below, Ive shown the CANBUS buffer handling id 0x280 in my file.
Code:
MEM_EXT:0000C744 CAN_280: ds 2 ; DATA XREF: ROM:0009415Aw
MEM_EXT:0000C746 byte_C746: ds 1 ; DATA XREF: ROM:000945DCw
MEM_EXT:0000C746 ; ROM:0009463Ew ...
MEM_EXT:0000C747 byte_C747: ds 1 ; DATA XREF: ROM:0009468Aw
MEM_EXT:0000C747 ; ROM:0009475Ew
MEM_EXT:0000C748 can_nmot_low: ds 1 ; DATA XREF: ROM:0009468Ew
MEM_EXT:0000C748 ; ROM:00094788w
MEM_EXT:0000C749 can_nmot_high: ds 1 ; DATA XREF: ROM:00094692w
MEM_EXT:0000C749 ; ROM:00094790w
MEM_EXT:0000C74A byte_C74A: ds 1 ; DATA XREF: ROM:00094696w
MEM_EXT:0000C74A ; ROM:00094814w ...
MEM_EXT:0000C74B byte_C74B: ds 1 ; DATA XREF: ROM:loc_948A0w
MEM_EXT:0000C74B ; ROM:000948CAw
MEM_EXT:0000C74C byte_C74C: ds 1 ; DATA XREF: ROM:00094D2Ew
MEM_EXT:0000C74C ; ROM:loc_94DB6w
MEM_EXT:0000C74D byte_C74D: ds 1 ; DATA XREF: ROM:0009469Ew
MEM_EXT:0000C74D ; ROM:000947E6w
MEM_EXT:0000C74E byte_C74E: ds 1 ; DATA XREF: ROM:000945C0w
MEM_EXT:0000C74F byte_C74F: ds 1 ; DATA XREF: ROM:0009416Ew
To use the rpm gauge for showing the present map(or any other parameter like boost, SOI,etc), you'll have to modify the subroutine writing to bytes 3 and 4 of the CAN id 0x280.
Code:
ROM:00094780 calls 9, sub_94002
ROM:00094784 add r0, #4
ROM:00094786 mov r9, r4
ROM:00094788 movb can_nmot_low, rl4
ROM:0009478C mov r4, r9
ROM:0009478E ashr r4, #8
ROM:00094790 movb can_nmot_high, rl4
ROM:00094794 mov r1, word_C420
ROM:00094798 add r1, word_C426
ROM:0009479C cmp r1, word_F962
ROM:000947A0 jmpr cc_SGE, loc_947A6
ROM:000947A2 mov r9, r1
ROM:000947A4 jmpr cc_UC, loc_947AA
r4 contains the actual RPM. We will modify this vaue to whatever we want; to show the map selected in our case.
I inserted my call at 94784, to my routine. Its upto you to decide where to insert this call, but make sure you dont change the original logic.
Next step is to take inputs like clutch, brake or cruise control.
This can also be inferenced from the CAN buffer.
example: id 0x280, byte 0, bit 4 is B_kuppl(clutch pedal).
Find the code which writes to this bit, and you will find B_kuppl
Code:
ROM:00094EBC movb rl4, word_C49A+1
ROM:00094EC0 jmpr cc_NZ, loc_94ED0
ROM:00094EC2 mov r4, word_14D6
ROM:00094EC6 movb rl5, [r4]
ROM:00094EC8 jmpr cc_NZ, loc_94ED0
ROM:00094ECA movb rl4, #8
ROM:00094ECC orb byte_C746, rl4
As seen in above code, 0xC94B contains the status of the clutch pedal. But this is not the global variable. I suppose, this is a temporary RAM address to which the clutch switch status is copied when this subroutine starts(so that as long as the subroutine is still being executed, any change in the clutch status will not be updated. Otherwise, it's possible that at the start of the subroutine the status of the clutch is different from that when the subroutine ends, resulting in unpredictable behaviour)
Find the global variable by searching for xrefs to 0xc94b
Code:
ROM:0009433E movb rl2, byte_C370
ROM:00094342 movb word_C49A+1, rl2
0xc370 is the global variable for B_kuppl.
Repeat this for other variables you want to use(cruise control status is on id 0x388/0x38A and brake pedals on 0x288)
Now, for mapswitching, you need to change the DPP's
Each datablock is referred using DPP0, DPP1 and DPP2. DPP3 is used for CAN.
datablock 1:
DPP0- 0x34
DPP1- 0x35
DPP2- 0x36
datablock 2:
DPP0- 0x38
DPP1- 0x39
DPP2- 0x3A
datablock 3:
DPP0- 0x3C
DPP1- 0x3D
DPP2- 0x3E
This is the code I use for switching between maps and displaying boost on RPM gauge.
Code:
$MOD167 ; Define C167 mode
$SEGMENTED ; Segemented memory mode
$CASE ; Symbols case sensitive
$include (reg167.inc)
NAME MINIMON
ASSUME DPP3:system
StackData0 SECTION DATA SYSSTACK ; Data Section to reserve
; Stack-Memory
DSB 20H ; 32 Byte
StackData0 ENDS ; End of Dummy-Section
DriverCode0 SECTION CODE PUBLIC 'CDRIVER'
DriverProc PROC FAR
mov r4, 0xc036 ;boost
shl r4,#2
movb rl1,0xc370 ;b_kuppl
jnb r1.0, needle
movb rl1,0xc379 ;cc_cancel toggle button
jnb r1.0, xyz
movb rl1,#1
movb 0xc76e,rl1 ;cc_off debounce
jmpr cc_uc, needle
xyz:
movb rl1,0xc76e
jmpr cc_z, needle
movb rl1,#0
movb 0xc76e,rl1
movb rl1,0xc76f ;delay counter
jmpr cc_nz, dpp
movb rl1,#0x7f ; initialize delay counter so that r4 isnt updated by the ECU for atleast ~ 40ms * 0x7F= 5080ms ~ 5sec
movb 0xc76f,rl1
jmpr cc_uc, needle
dpp:
cmp dpp0,#0x3c
jmpr cc_eq, dppl
mov dpp0,#0x3c
mov dpp1,#0x3d
mov dpp2,#0x3e
jmpr cc_uc,needle
dppl:
mov dpp0,#0x34
mov dpp1,#0x35
mov dpp2,#0x36
needle:
mov rl1,0xc76f
jmpr cc_z,end1
subb rl1,#1
mov 0xc76f,rl1
cmp dpp0,#0x3c
jmpr cc_ne, n1
mov r4,#0x2ee0
jmpr cc_uc, end1
n1:
mov r4,#0x3e80
end1:
add r0,#4
mov r9,r4
rets
DriverProc ENDP
DriverCode0 ENDS
END
Enviado desde mi Aquaris V mediante Tapatalk
Ahora entiendo yo porque el arl de mi hermano andaba así y cuando me lo dejaba no....
Me quedo por aquí que para mis dos trastos me vendría bien.
Enviado desde mi Redmi Note 5 mediante Tapatalk
Dejo link por si acaso
[Only registered and activated users can see links. Click Here To Register...]
Pero alguien sabe como meter este archivo con el multimapa? Xq es un archivo bin supongo
Puedes ponerte en contacto commigo xfa? He intentado escribirte y no lo he conseguido. GraciasCita:
Iniciado por manuel_sxgt [Only registered and activated users can see links. Click Here To Register...]
Te refieres al archivo de la flash?
Te va a pedir dinero por algo que no lo ha hecho él, sino un colega cercano que se dedica a estas cosas.Cita:
Te puedo pasar su contacto y lo arregláis si queréis.
Si por favor te lo agradeceria perdona que tardase pero no me ha avisado al correo que me habian contestado
Cita:
Iniciado por Whitsnak [Only registered and activated users can see links. Click Here To Register...]
Ya me he actualizado la HK a KG!!! EEPROM híbrida con mi inmo+flash híbrida Sin error de precalentamiento y con multimapa operativo.
Se puede entonces Néstor actualizar la tuya a KD Passat pero necesitas una EEPROM. No sé si tengo una ori. Y el commander para hacer el híbrido. Es porque si intentas casar con el vcds te dirá que error de programación porque el chk de la EEPROM.es incorrecto
Evidentemente dejando tus duraciones soi bips y pre inyección. Luego los dtc me gusta conservar los hexadecimales de la primigenia no de la nueva