Forum
Mecachisss, que pena no pode ir :angryfire: :angryfire: :angryfire:
El Bus de direcciones será el mismo, ya que grabo el Motorola como si fuera una NNN, que por cierto hay una diferencia de 14 bits en la dirección 0X0F000 entre la NNN000120 y las NNN500020, supongo que es lo que diferencia las variantes y la mejora de la propia ECU.
No digo que lo vaya a conseguir al 100%, porque seguramente algo del propio hardware de la NNN falte en la MSB. Por lo pronto el coche arranca ( con el inmobilizador completamente quitado, antes no arrancaba, ya los chips del mismo son diferentes en ambas ecu´s, uno es de 8 bit y el otro de 16 bit ).
No se ha hecho antes, porque era muy dificil encontrar un software que interpretara la lectura de las NNN por BDM, que de hecho era imposible. De hecho, se lee por BDM como si fuera una NNN de un turismo Rover, que también llevan un motorola, aunque otra serie.
Hoy por la tarde, voy a probar a leer/escribir en la flash.
El bus de direcciones no puede ser el mismo en una flash de 128k bites a una de 256k bites, Es casi el mismo excepto un bit mas que es el que duplica la capacidad de la memoria.
Recuerda que todo el firmware completo de una NNN son 256k divididos en tres bloques, los dos ya conocidos por todos variante y fuel de 100ky 17k y el loader o SO de la ecu que debe ocupar unos 12k y está al principio de la flash. Todo ello te tiene que caber en la nueva flash de 256k qye la puedes grabar sin problemas desde el grabador, que imagino es lo que habrás hecho, pero otra cosa es luego escribir por medio de la rutina de grabado de las flash de la ecu. Esa rutina está hecha para grabar una 29f200 y no la que tu has montado, por eso es posible que no funcione.
Pero hacer funcionar el firmware de la NNN en una MSB ya es un logro!. Pero ten cuidado con la codificación de inyectores, los inyectores los maneja una PIC que en pura lógica no tiene información sobre como funcionan unos inyectores de 1.750 bar. Aunque te deje meter la configuración es posible que la PIC que maneja inyectores los trate como inyectores de 1.500 bar.
Alucino de lo que estás avanzando, me da que te has pasado unas cuantas noches sin dormir, ¿verdad?.
Ya conocia la pagina,
este hombre lo que ha hecho es leer la flash completa por BDM sin tener que desoldar el chip, para cambiar el nº de chasis.
Como se ve en el mapa del firmware, por ejemplo Nanocom solo lee la parte de la variante y la parte de fuel. Con el nuevo equipo que tengo yo, leo la memoria al completo, pero...................como todo no puede ser bueno, aunque lee toda la memoria al completo, la parte que no es interesante, como el mapa base, lo rellena con FF en hexadecimal, o lo que es lo mismo 0, en decimal, y no aparece ningún dato.
Pero con el lector por BDM o sacando la memoria de la ECU la puedes leer perfectamente.
Otra historia es acceder al MCU ( micro controller unit ), que hasta ahora, por BDM nadie se había preocupado en hacerlo, ya que se puede reprogramar por OBD.
OScar, por OBM sólo se puede leer y escribir lo que el loader o sistema operativo de la ecu, la parte baja de la memoria de deja hacer Ese equipo que dices que lee toda la flash no lo hace, simplemente como sabe que la flash es una 256kbites, lee lo que le deja el OBD y luego lo rellena, casi seguro.
No se como funciona el protocolo de la ECU por OBM pero poco más o menos lo que hacen los programadores es mandar un comando por OBM a la ECU que ella interpreta y ejecuta, por ejemplo "el nancocom" le manda a la ecu un comando "program flash" por el OBM, la ECU lo recibe y activa una rutina que programó el programador original de la ECU que graba solo y exclusivamente la variante y el fuel en su lugares correspondientes de la flash. A partir de aquí la ecu recibe datos por el OBM de lo que tiene que grabar, pero el aparato tipo nanocom nada puede hacer para colocar esos bytes en un sitio u otro, es el software de la ECU el que los graba, los prueba y leugo resetea la ECU para que se ponga en marcha.
El OBM es como un teclado en un programa, por muy jacker que uno sea con un teclado solo no se puede hacer más que lo que el programa te deje hacer. El tema es que tu te estas saltando todo al grabar la flash directamente con el grabador, digamos que es como coger el disco duro y grabarlo en otro ordenador y cambiarlo todo, cuando el ordenador arranca no se entera de nada y ejecuta lo grabado. Podrías hacer que la ecu cantara saetas si quieres, ya que le has cambiado todo el firmware. Pero por OBM de momento solo se puede hacer lo que el programador, y hablo de la persona que diseñó la ecu, quería que se pudiera hacer.
No me has entendido.
La flash la grabo externamente con el willem, es una 29F400 y con un adaptador paso de PLCC44 a TSOP44. Cuando la abro con cualquier editor hexa, ya no tiene secretos, está toda la información, desde el mapa base, al VIN, variante, fuel, etc.
Pero al lado del Motorola hay 10 pines, que es desde donde se graba la MCU, y es ahí donde yo conecto, con otro equipo distinto, borrar y pegar todo el controlador de una NNN.
Luego elimino un chip al completo, que la placa base de las NNN no tiene pero están las pistas, ese chip es el que contiene el mapa base de las MSB, que es de 128 kb, la diferencia está en que en las NNN tenemos una flash para todo y en las MSB estaba partido en 2, pero la placa base es practicamente la misma.
El chip de los inyectores es el mismo en ambas, es la MCU la que no deja ( por el software grabado que tiene ) admitir los codigos de los inyectores.
La 1º prueba que hice fue quitar el motorola al completo de una NNN estropeada y soldarlo en una MSB ( vaya trabajito ) , quitar el chip del mapa base y colocar una 29F400 ( era la que tenia en el momento ) grabada solo a la mitad. Carlos M estaba de testigo ocular, aunque tambien le gusta pegarle al soldador.
El coche arranca durante 2 sg y se para..............claro el inmobilizador............lo elimino y el coche arranca.
Hasta aqui las pruebas, en 1 hora comento algo mas, que voy a probar a leer/grabar.
Ese equipo que dices que lee toda la flash no lo hace, simplemente como sabe que la flash es una 256kbites, lee lo que le deja el OBD y luego lo rellena, casi seguro.
Cierto, pero la información viable no rellenada con FF es más de 116 kb , como poco son 200 kb ( no lo he medido ) , debe leer un bloque del mapa base ( quizás es para corregir el cheksum o porque tiene una opción de recuperación que graba en un log )
¿ cuantas noches sin dormir ? mejor no te lo cuento.
No me has entendido.
La flash la grabo externamente con el willem, es una 29F400 y con un adaptador paso de PLCC44 a TSOP44. Cuando la abro con cualquier editor hexa, ya no tiene secretos, está toda la información, desde el mapa base, al VIN, variante, fuel, etc.
Pero al lado del Motorola hay 10 pines, que es desde donde se graba la MCU, y es ahí donde yo conecto, con otro equipo distinto, borrar y pegar todo el controlador de una NNN.
Luego elimino un chip al completo, que la placa base de las NNN no tiene pero están las pistas, ese chip es el que contiene el mapa base de las MSB, que es de 128 kb, la diferencia está en que en las NNN tenemos una flash para todo y en las MSB estaba partido en 2, pero la placa base es practicamente la misma.
El chip de los inyectores es el mismo en ambas, es la MCU la que no deja ( por el software grabado que tiene ) admitir los codigos de los inyectores.
La 1º prueba que hice fue quitar el motorola al completo de una NNN estropeada y soldarlo en una MSB ( vaya trabajito ) , quitar el chip del mapa base y colocar una 29F400 ( era la que tenia en el momento ) grabada solo a la mitad. Carlos M estaba de testigo ocular, aunque tambien le gusta pegarle al soldador.
El coche arranca durante 2 sg y se para..............claro el inmobilizador............lo elimino y el coche arranca.
Hasta aqui las pruebas, en 1 hora comento algo mas, que voy a probar a leer/grabar.
¿para que has desoldado el procesador entero?. Son el mismo en ambas ecus, ¿no?. El procesador no tiene programación ninguna, es solo un procesador.
No fué por gusto.
La MSB que tenía disponible tenía como diria............como quemada la parte de arriba del motorola y no funcionaba, de ahí empezó el experimento. Ya sé que no se puede hacer nada con él, por eso lo cambié entero, por probar a ver que sacaba en claro.
Acabo de probar, el coche arranca, pero no acelera >:( >:(
::) ::) No tengo el Rovacom a mano, pero me da que es porque la MSB es de un automatico y tiene el Can Bus activado ( vaya jaleo que tengo ahora mismo en la pelota, me bailan los numeros ). No es de la configuración del acelerador porque no se enciende la luz del " milf ".....................
Lo de leer por BDM era por la fiabilidad, porque me he dado cuenta que con el willen, hay bits que cambian de posición al verlos con el heditor de hexa y sin embargo en las lecturas independientes de Nanocom o Rovacom, esos bits aparecen correctos.
Me explico:
- Abres una curva con el editor, te vas a la parte donde está escrita la variante y el mapa de fuel que luego aparece en los settings, y coincide en situación y letras y numeros.
- Lees la flash entera con el willem, abres el fichero con el editor y dichas letras/numeros están cambiados de sitio unos por otros, lo mismo pasa con el VIN ¿ porque ?, no lo sé, a ver si se te ocurre algo fiera
No os aclarais.
Si desoldais la patilla SOGT-ulakk del chiliborcio, se os pondrá automáticamente la terminal en modo PAvrnos
MTAO, y solo entonces podreís leer el contenido de la ECU. 😮 ::) ;D
Que es que no tenéis ni idea de cosas de estas, con lo sencillas que son ;D
Si estudiarais un poquito.... sólo un poquito ;D
;D ;D ;D ;D ;D
No fui a clase el día que explicaron como hacer magdalenas en el microondas.
Bueno, no es que quiera meter la zarpa demasiado, ya que ni tengo Td5, ni MSB ni NNN, pero bueno, ahí va:
No se que micro lleva la placa, pero supongo que con paciencia y ganas habrá sitio para programar empezando desde 0x00 unas 60 instrucciones, que hagan lo siguiente: Comprobar que se quiere entrar en modo programar, por ejemplo mandanado unos 4 pulsos de reloj mediante el OBD y que el ordenador responda con una secuencia concreta por ejemplo 1-0-1-1. Si se entra en el modo programar, hacer una rutina para que se programe la Flash por OBD, como se quiera, asincrona o síncronamente, desde la última instruccion del la rutina de programación hasta el final de la memoria.
Pegas que puede tener:
1: Que el MSB no permita por diseño del procesador escriba en las direcciones de memoria de programa o que aunque la arquitectura lo permita que no haya hardware implementado que lo permita.
2: Que no haya sitio suficiente para meter esas 60-70 instrucciones.
3: Que hay que mover todo el programa 70 istrucciones "hacia alante", que si se consigue desensamblar no es dificil.
4: Que controlar el puerto OBD no sea tan facil en código máquina.
Espero que no os volvaís locos 🙂 Yo acabo de hacer un examen de microprocesadores y casi me parece que veo el mundo en hexadecimal jijijijiji
No metes la zarpa Garmen, hay veces que un detalle hace que las cosas funcionen, no como alguno..............que descarta las cosas antes de probar..................hay veces que no funcionan, pero hay otras que sí.
Caber, caben 70 instrucciones, pero de programar, lo dejo para los que saben, a mí eso de momento se me escapa, no me da tiempo a aprender tantas cosas.
Este tema es simplemente otro reto más, por un foro alemán en el que un usuario decia que se podía hacer, pero no daba más explicaciones ni detalles.
Ya no puedo hacer más pruebas hasta la semana que viene.
Lo de leer por BDM era por la fiabilidad, porque me he dado cuenta que con el willen, hay bits que cambian de posición al verlos con el heditor de hexa y sin embargo en las lecturas independientes de Nanocom o Rovacom, esos bits aparecen correctos.
Me explico:
- Abres una curva con el editor, te vas a la parte donde está escrita la variante y el mapa de fuel que luego aparece en los settings, y coincide en situación y letras y numeros.
- Lees la flash entera con el willem, abres el fichero con el editor y dichas letras/numeros están cambiados de sitio unos por otros, lo mismo pasa con el VIN ¿ porque ?, no lo sé, a ver si se te ocurre algo fiera
Efectivamente eso ocurre, ya lo detecte hace años y me dejó un poco confuso. Lo que está claro es que la parte buena, la que vale, es la que lees con el programador externo, esa es el verdadero código máquina de la memoria, lo que el OBD (antes decía OBM equivocado) lee es algo que ha sido procesado y cambiado de forma intencionada. ES una práctica habitual con otros dispositivos.
Yo tengo un procesador desoldado a pistola en la sierra y creo que con las patillas bien, por si acaso lo necesitas.
Bueno, no es que quiera meter la zarpa demasiado, ya que ni tengo Td5, ni MSB ni NNN, pero bueno, ahí va:
No se que micro lleva la placa, pero supongo que con paciencia y ganas habrá sitio para programar empezando desde 0x00 unas 60 instrucciones, que hagan lo siguiente: Comprobar que se quiere entrar en modo programar, por ejemplo mandanado unos 4 pulsos de reloj mediante el OBD y que el ordenador responda con una secuencia concreta por ejemplo 1-0-1-1. Si se entra en el modo programar, hacer una rutina para que se programe la Flash por OBD, como se quiera, asincrona o síncronamente, desde la última instruccion del la rutina de programación hasta el final de la memoria.
Pegas que puede tener:
1: Que el MSB no permita por diseño del procesador escriba en las direcciones de memoria de programa o que aunque la arquitectura lo permita que no haya hardware implementado que lo permita.
2: Que no haya sitio suficiente para meter esas 60-70 instrucciones.
3: Que hay que mover todo el programa 70 istrucciones "hacia alante", que si se consigue desensamblar no es dificil.
4: Que controlar el puerto OBD no sea tan facil en código máquina.Espero que no os volvaís locos 🙂 Yo acabo de hacer un examen de microprocesadores y casi me parece que veo el mundo en hexadecimal jijijijiji
Es una excelente idea, pero complicada.
El procesador es un motorola de la serie 68000 destinado a tiempo real, muy robusto y lento pero seguro.
Lo ideal sería hacer esa rutina que se ejecute al arranque y con un interruptor externo, poder activar otra rutina que nos deje flashear la memoria entera por el OBM sin tener que recurrir a la actual rutina de flash de la ECU.
El problema de diseño de estas ecus es que la memoria es tan pequeña que no da para hacer un backup completo a la hora de hacer una nueva programación. En dispositivos modernos con seguridad lo que se hace es descargar el nuevo firmware en una parte de memoria no usada, una vez descargada se comprueba por medio de checksums y otros algoritmos, y luego se prueba dejando un perro guardián de tal forma que si al arrancar se cuelga, automáticamente un interruptor del perro guardián hace que se ejecute de nuevo el firmware antiguo descartando el nuevo.
La falta de este sistema se ha cargado ya varias ecus, ya que las modificaciones que hacemos de los mapas de fuel se hacen sobre el código máquina sin mucho control del programa o más bien nulo control, y si te equivocas la lías parda.
Muchas suerte Oscar y ya nos contarás, pero sigo pensando que falta en la MSB el hardware que grabe la flash y sin eso no se va a poder grabar.
De cualquier forma, desoldar y soldar el motorola es un trabajo importante, nunca creí que con esas pedazos de mano que tienes de apretar culatas pudieras hacer un trabajo de semejante precisión. Llévate una ecu abierta al nacional para que la gente vea de lo que se habla. Las patillas deben estar separadas unas de otras por unas 5 décimas de milímetro o menos.
