Le meilleur de la puce Française...
 
AccueilAccueil  CalendrierCalendrier  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  

Partagez | 
 

 Motronic, Recherche et developpement.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Motronic, Recherche et developpement.   Dim 26 Juil - 22:41

Bonjour,

Voici 3 ans que je fais de la recherche sur les calculateurs Motronic BMW.

Je me suis inscrit sur ce forum pour partager mes recherches et approfondir encore plus les decouvertes sur ces ECUs.

Sur internet on trouve beaucoup de contenu sur des sites etrangers maiss malheuresement les informations sont parfois érronées.

Je peux dire qu'aujourd'hui c'est devenu une vrai passion, j'y passe enormement de temps, mes connaissance en electronique me limite sur certains points (j'y reviendrai plus tard), et c'est un peu sur ce point que je compte sur vous.

Mon calculateur de prédilection est le Motronic 3.3.1 de BMW (Avec gestion du vanos).

La structure est très proche des Motronic 5.2 (993T), M3.8.1 (Vr6) qui m'ont beaucoup aidé à avancer.

Voici ce que j'ai pu trouver dans l'eprom de 64 Ko :

Adresse :

0000-CFFF : C'est la partie la plus floue, je pense qu'il y a du code constructeur, en début de programme il doit y avoir le code processeur aussi.
D000-E7BF : Constante, Single, Code défaut, Calibration des periphériques (Débimetre, sonde eau, air, etc...) Cartes, Répertoire, etc..
E7B0 : Checksum pour la zone de calibration D000-E7BF
FE20 : Il reste peu de code qui change en fonction des autos du même modèle, à developper.

On constate enormement d'espace vide (FF), ceci est sans doute du à une transition de BMW lorsqu'ils sont passé d'Eprom 32Ko à 64Ko pour la gestion Vanos.


Dans la zone de calibration (D000-E7BF) on trouve (mes découvertes) :

Singles, Constantes :

- Le limiteur de régime 16 Bits (à diviser par 4)
- Le limiteur de régime 16 Bits en cas de perte signal vitesse.
- Le buffer du limiteur de régime (coupure injection de 125 tours lorsque regime maxi dépassé)
- Des valeurs qui permettent l'entrée en action de certains composant :
(Charge minimum, Température eau minimum, délais en seconde minimum pour entré en action lambda)
- Adaptation de la sonde lambda, Correction mini et maxi.
- Calibration des sondes, Eau, Air
- Table de transfert débimetre (Je cherche à convertir cette table pour l'utilisation d'un capteur map dans l'utilisation de montage turbo)
- Constante injection, permettant de faire varier la quantité injecté de manière globale.

Je sais que dans cette zone se trouve, l'activation de différent élément (lambda par exemple, canister, antidémarrage) et aussi les codes défauts actif ou non, j'y travaille.

Ensuite viennent les maps :

Elles sont identifiés dans un premier temps par des axes.

Elle comporte toujours un identifiant avant les axes, ceux que j'ai décodé (en décimal):

208 - Regime (facteur 40)
211 - Tension ?
213 - Charge (facteur 0.05 Precision 2)
214 - Vitesse (facteur 1)
215 - Température Eau
216 - Tension Batterie

Puis vient un chiffre, le nombre de valeurs dans l'axe :

208 (Cool indique 8 pas de régime.

Ces axes fonctionnent par soustraction, je m’étalerais pas vous connaissez déjà.


Organisation des Maps (dans l'ordre) :

Injection et allumage :

Pour l'injection et l'allumage, on commence toujours par les maps ralenti, pleine charge et ensuite charge partielle.

Ces maps sont en double, une pour vanos actif, l'autre inactif.

Vanos :

Le vanos, est un systeme à simple déphasage (deux positions), Ouvert ou fermé, de ce que j'ai pu en déduire à l'aide de mon émulateur, il fonctionne pour les axes, en fonction de la vitesse et du régime moteur. On le commande à l'aide de seuil de charge, soit en lui donnant une charge facile à dépasser pour qu'il s'active/se desactive, ou avec une charge impossible à depasser de maniere à ce qu'il ne se declenche plus.

Il y a des maps pleine charge, partielle, des tables de charge minimum et maximum.

Il y a des parametres que je n'ai pas cerné encore, car les maps sont en double, peut etre pour un type de transmission (MT,AT comme pour les maps de ralenti..), ou encore en fonction de l'indice d'octane... Je cherche.

Les maps de correction :

On trouve tout un tas de maps de correction, d'injection, d'allumage, en fonction de la temeprature eau, air ou tension batterie. Très pratique pour ameliorer le fonctionnement à froid lors d'utilisation à l'ethanol, (j'ai une voiture qui démarre du premier coup et par tout les temps)

Ces maps sont casi exclusivement en 2D.

Les maps cliquetis :

En cours de déchiffrage, il existe une map modifiant la sensibilité en fonction du régime et de la température.

Il y a forcement des fenetres de début, de fin d'ecoute et de gain, pour filtrer mais je ne les ai pas encore trouvée.



J'aimerais acceder à la memoire intégrée dans le processeur, mais je ne sais pas comment faire, si vous avez des idées..
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jammaster
Admin
Admin
avatar

Messages : 668
Date d'inscription : 21/08/2009
Age : 37
Localisation : LYON

MessageSujet: Re: Motronic, Recherche et developpement.   Lun 27 Juil - 9:03

Salut!

Très intéressant tout ça.

Le "vieux" MP3.1 à une ROM embarqué sur le MCU de 64kbits.
Je pense que ton MCS96 doit être dans le même cas.
Les Motronic de première génération avaient un vrai 80c51 avec 2 Roms distincts (ROM de bas niveau et ROM client).
La ROM de bas niveau était une 27c64.
Nanou, du forum, m'a envoyé cette ROM de 8ko qui provient d'un M1.3. (et je l'en remercie encore!)
Il "semblerait" qu'elle soit identique au ROM interne de la génération 8Bits SIEMENS 80C515.

Pour ton cas, je pense que tu vas devoir la dumper (!).
Je ne sais pas si l'ecu des E36 est en DIP/PLCC ou encore Flash.
Sinon, les grandes lignes pour faire un dump de ta ROM interne:
- vérifier ta table d'adressage de ton MCU et surtout ton mode d'adressage (il se définit en hardware par 2 ou 3 pins à +VCC ou +VSS)
- ton mode d'adressage / table d'adressage doit être en ROM Interne + RAM Interne + RAM Externe
- Il faut un "bout" de code qui va copier les offsets de ta ROM interne (début de table) en "fin" de RAM externe (du moins après ton code).
- Tu dois copier ce bout de code sur une SRAM de la guerre compatible TTL au standard 27Cxxx. Je te mets sur la voie avec une SRM20256LC10 par ex ou SRM20512LC10. en DIP28 (si elles se trouvent encore? ebay, ali, digikey?)
- ...Avec un prog d'eprom qui prends les SRAM (TOP2048, TOP3000, Willem Etc...)
- Tu dois laisser ta SRAM Alimenté avec un condo de forte capa ou batterie (15000uf 16V ou pile avec diode d'anti retour).
- ...Le tout bien sur, pendant que tu prog ton "Trojan" sur ton prog.
- Tu retires le tout et pose sur ton ecu.
- Tu démarres ton ecu.
- Tu retires ta SRAM et tu la pose sur ton prog.
- ... Et tu lis le tout!

Je l'ai fait sur un MCU motorla 68701 (à base de 6800).
Après je connais très mal le 80C196 d'intel et ses modes d'adressage!

Bon courage!





Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://axgti.forumactif.org
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Re: Motronic, Recherche et developpement.   Lun 27 Juil - 20:30

Wahou, sacré job, tout ca pour trouver quoi la dedans ?

J'ai encore avancé hier, sur la partie cliquetis, j'ai identifié la zone qui le gere, j'ai des maps en 10x6 regime/charge, une map de sensibilité en fonction temperature.

Je posterais des imprimé écrans voir si vous pouvez m'aider.

J'ai trouvé d'autres singles qui gere apparement l'activation/cible lambda, malgres qu'elle soit à bande etroite, je pense que l'on doit pouvoir faire fonctionner une large bande.

Antidémarrage, et limiteur de vitesse, a vérifier sur route.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jammaster
Admin
Admin
avatar

Messages : 668
Date d'inscription : 21/08/2009
Age : 37
Localisation : LYON

MessageSujet: Re: Motronic, Recherche et developpement.   Lun 27 Juil - 23:04

La rom interne te permet de "merger" ta rom client/constructeur (bmw) avec ta rom interne (bosch). Tu peux ensuite désassembler le tout avec ida pro. Sans ton interne, tu ne peux pas avoir un code désassemblé qui tienne la route (branchement, entrées/sorties). Tu peux ensuite envisager un "launch control" en asm! De plus, tu dois avoir un capteur de vitesse sur ta boite... ;-)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://axgti.forumactif.org
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Re: Motronic, Recherche et developpement.   Mar 28 Juil - 1:52

Le capteur de vitesse est sur le pont.

Qu'entend tu par asm ?

As tu déjà entendu parlé d'un retrait d'avance en fonction d'une correction lambda importante ? Je cherche un parametre comme celui... Soit par une mise en défaut Lambda et un retrait conséquent, soit un parametre auto adaptatif..
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jammaster
Admin
Admin
avatar

Messages : 668
Date d'inscription : 21/08/2009
Age : 37
Localisation : LYON

MessageSujet: Re: Motronic, Recherche et developpement.   Mar 28 Juil - 2:23

ASM = assembleur.
C'est le langage de bas niveau par excellence.
Tu prog en mnémonique et ton logiciel d'assemblage de compile tout ça en exécutable prêt à être brûlé sur une eprom.

Le retrait d'avance pour les corrections lambda importante est là pour protéger ton moteur de présence d'eau dans le carburant.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://axgti.forumactif.org
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Re: Motronic, Recherche et developpement.   Mar 28 Juil - 3:30

Et elle existe cette correction ? Ce n'est donc pas une legende ? l'as tu trouvé sur ton écu ? J'ai beau retourner l'eprom dans tous les sens, impossible de mettre la main dessus...

Il me reste pourtant plus que 5 identifiants d'axes à trouver :

204 :
206 :
207 :
208 : Regime
209 :
211 : Temperature Air
212 :
213 : Charge
214 : Vitesse
215 : Temeprature Eau
216 : Tension Batterie

Parmis la liste que je peut eventuellement caser quelque part, j'ai : Tension capteur cliquetis, Potentiometre papillon, j'y travaille, apres il en restera plus que 3, si tu as des idées..


Celui qui maitrise l'assembleur, peut faire absolument n'importe quoi quand il maitrise les entrées-sorties ? Je suppose que c'est le travail de toute une vie non ?

Que faire pour s'initier à ce language ?


Ca fait beaucoup de question en meme temps, mais j'ai deja jeter un oeil dans IDA, et quand j'insert le fichier de mon Eprom dedans en proc 80196, j'obtiens ceci...

Je ne sais pas si ca à un sens, j'ai ouvert l'adresse du limiteur de regime et j'obtiens cette liste d'adresse qui ont l'air en lien avec celui ci, c'est comme ca que j'ai trouvé le buffer du limiteur de regime..

Je ne sais pas si c'est un coup de chance...

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jammaster
Admin
Admin
avatar

Messages : 668
Date d'inscription : 21/08/2009
Age : 37
Localisation : LYON

MessageSujet: Re: Motronic, Recherche et developpement.   Mar 28 Juil - 4:21

Ils semblerait qu'il te manque pas mal de choses sur IDA et c'est du au fait que tu n'as pas ta ROM interne de mergé avec ta ROM externe (même problème sur MP3.1).
Je ne sais pas si quelqu'un aurait dumpé celle-ci sur la toile, car après, un petit "coup" de winhex pour coller tes 2 roms ensemble et c'est gagné!

Pour tes variables, la charge interne à l'ecu et à part de la position du papillon.
Donc tu peux rajouter ta position angulaire en variable (Ne me demande pas laquelle, je n'en sais rien).
Je connais mal ton ecu donc vérifis bien ce que tu as en capteur (altitude, humidité?, température habitacle pour la clim qui modifierait ton régime de ralenti avec des tables en 2D).
Tu peux prévoir aussi une variable qui correspondrait à ta valeur interne du knock. (je pense plus à une valeur filtré, corrigé - comme la charge, plutôt qu'une valeur brute).

Méfis toi aussi quand tu commences à éditer tes ROMs. Comprends bien que tu as du code et de la data mélangé (tables et code/routines).
C'est pour cela qu'il faut avoir un dump de tout ton plan d'adressage ROM. (interne + externe)





Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://axgti.forumactif.org
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Re: Motronic, Recherche et developpement.   Mar 28 Juil - 4:44

Je vais lire ca pour eviter de te poser des questions simples, et quand je buterais sur quelques choses je reviendrais te poser des questions, je pense que sans bases c'est mort :

openclassrooms.com/courses/en-profondeur-avec-l-assembleur/les-systemes-de-numeration-partie-1


Pour ce qui est des entrées et sorties :

Entrées :

- Capteur de cliquetis
- Débimetre
- Potentiometre papillon
- Capteur arbre à cames
- Capteur Pmh
- Tension Batterie
- Temperature Air
- Temperature Eau
- 1 Sonde oxygene
- Commande climatisation


Sorties :

- Injecteurs
- Electrovanne ralenti
- 6 Bobines
- Solenoide Vanos
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jammaster
Admin
Admin
avatar

Messages : 668
Date d'inscription : 21/08/2009
Age : 37
Localisation : LYON

MessageSujet: Re: Motronic, Recherche et developpement.   Mar 28 Juil - 4:54

Oui j'ai complètement oublié ton VANOS.
Par contre je crois que tu as des ecus à simple et double VANOS??? ( admission et admi + echap ?)
Regardes quand même, si tu as un schematic du M3.3.1, si il a une entrée "clim" voir si c'est lui qui pilote le compresseur (?)

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://axgti.forumactif.org
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Re: Motronic, Recherche et developpement.   Mar 28 Juil - 5:06

Jammaster a écrit:
Oui j'ai complètement oublié ton VANOS.
Par contre je crois que tu as des ecus à simple et double VANOS??? ( admission et admi + echap ?)
Regardes quand même, si tu as un schematic du M3.3.1, si il a une entrée "clim" voir si c'est lui qui pilote le compresseur (?)


Je vais jeter un oeil.

325i E36 = M3.3.1 Simple Vanos admission On/Off
M3 E36 = M3.3 Simple Vanos admission Variable
M3 E36 3.2 = Siemens MSS Double Vanos Variable


Entrée clim, dans l'objectif d'une activation en fonction de la charge ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jammaster
Admin
Admin
avatar

Messages : 668
Date d'inscription : 21/08/2009
Age : 37
Localisation : LYON

MessageSujet: Re: Motronic, Recherche et developpement.   Mar 28 Juil - 5:25

...Je pense plus à une entrée clim qui ferait varier ton avance et/ou tes fuel map en idle pour la compensation ralentis.
Tu n'avais pas aussi la 3.25i"S" qui avait le VANOS Variable en continue comme sur la M3 3.0L?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://axgti.forumactif.org
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Re: Motronic, Recherche et developpement.   Mar 28 Juil - 5:35

Jammaster a écrit:
...Je pense plus à une entrée clim qui ferait varier ton avance et/ou tes fuel map en idle pour la compensation ralentis.
Tu n'avais pas aussi la 3.25i"S" qui avait le VANOS Variable en continue comme sur la M3 3.0L?

La mention S n'a existé que sur des E30, hormis la 318is E36.

Les maps regime de ralenti, sont en 3 exemplaires :

- manuelle clim
- manuelle hors clim
- automatique

En carburant au ralenti, il n'y a qu'une map principale. Peut etre qu'effectivement autour il y a des maps faisant du retrait ou de l'ajout en fonction de si elle est active ou non.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Re: Motronic, Recherche et developpement.   Mar 28 Juil - 20:44

J'ai potassé le cours que j'ai posté plus haut sur la base de fonctionnement de l'assembleur.

Je le recommande à tout ceux qui n'y connaisse rien comme moi, car il est expliqué simplement, ca ouvre vraiment des portes...

J'en attaque un deuxieme : openclassrooms.com/courses/apprenez-a-programmer-en-assembleur-x86/introduction-installation-3


Je pense que c'est indispensable pour allez plus loin dans la compréhension d'un ecu.

Seul bemol, apparement l'architecture de mon processeur est plus recente que les m1.3 (80196)

Mais comme chaque nouveau processeur reprend l'achitecture des anciens, on devrait s'en sortir.

Je m'attend à des modifs comme la taille des registres, ils sont peut etre étendu comme j'ai pu le voir dans les cours... Ca on vera aprés.

Ensuite, je posterais les schemas electriques, des photos hautes resolutions de mon ecu, et j'essairai de voir où mene les differentes pistes reliés à mes capteurs.

Tout ca si vous etes OK, car tout seul je pense que c'est mort..
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jammaster
Admin
Admin
avatar

Messages : 668
Date d'inscription : 21/08/2009
Age : 37
Localisation : LYON

MessageSujet: Re: Motronic, Recherche et developpement.   Mer 29 Juil - 6:03

je crois que le MCS96 a 4 sorties numériques 8bits multiplexées et 3 sorties PWM.
Tes sorties PWM doivent servir pour les injecteurs?
Tu es en full group, batch ou sequential?
Injés basse impédance? (savoir si tu as de l'électronique analogique pour limiter le courant de maintient des te injés (PWM) ).

Saches aussi que tout le boulot que tu fais et que tu laisses en écrit sera profitable pour la communauté et surtout ... toi!
Si tu savais le nombre de fois où je relie quelques posts pour me remémorer des offsets, pinouts, couples de serrage etc...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://axgti.forumactif.org
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Re: Motronic, Recherche et developpement.   Jeu 30 Juil - 6:43

PWN je ne sais pas c que c'est, il faut que j'etudie...

Sequentiel, tu parle de l'allumage ? Oui j'ai 6 bobines jumostatiques et l'allumage est séquentiel.

Dans les 14 Ohms pour les injecteurs (donc haute ?)

Avant d'aller plus loin, peux tu me confirmer que mon processeur est un mcs196 ?

Car je me suis fié à un vieux commentaire sur le net :






Aussi, je suis passé en début d'aprem, chez DMC Compétition, le patron Denis M. est super sympa, il était en train d'ecrire du code pour mettre au point un calculateur de toute pièce sur base de 8051,
il a regardé mon assembleur et m'a dit que j'avais du boulot, car le language n'etait pas le meme que sur le 8051.

Par contre, je lui ai montré un fichier decompiler de 325i E30 ECU 173 sur base 8051, et la il été comme chez lui, du genre à faire ce qu'il en voulait...

Du coup il m'a souhaité du courage, un peu déconcertant pour commencer, mais il m'a confié qu'avec l'emulateur et en passant par le serial port, il y a surement quelque chose à faire..
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Re: Motronic, Recherche et developpement.   Ven 31 Juil - 8:16

http://avrj.cours.pagesperso-orange.fr/documents/8051/8051_07.pdf

http://avrj.cours.pagesperso-orange.fr/documents/8051/8051_01.pdf

Je comprends un quart de ce qu'il y a marqué la dedans.

Mais de ce que je comprend, avec un port serie, on peut communiquer avec le 8051.

Ca tombe bien, j'ai un m1.3 sous la main, qui n'aura ps vraiment d'avenir.

Si vous pouviez m'expliquer la marche a suivre pour faire un test de recup irom du 8051, ca pourrait peut etre me permettre d'avancer sur mon 80196...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Re: Motronic, Recherche et developpement.   Sam 1 Aoû - 4:17

[/URL]

J'ai trouvé ca, faut que je trouve ce qu'est un MAX232, l'utilité du truc...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jammaster
Admin
Admin
avatar

Messages : 668
Date d'inscription : 21/08/2009
Age : 37
Localisation : LYON

MessageSujet: Re: Motronic, Recherche et developpement.   Mer 5 Aoû - 1:08

La famille MCS51 intègre une liaison série d'origine.
Il faut l'interfacer au standard RS232 (MAX232).
Je pense que tu vas plus galérer à récupérer ta ROM interne avec une liaison série.
Le plus simple est vraiment de faire un Trojan avec une RAM ou un émulateur d'EPROM (ostrich, romulator).
Mon Ostrich 2.0 se comporte comme une SRAM.
Tu peux donc "balancer" un bout de code qui écrit directement dans l'espace "ROM" qui est en fait un espace RAM avec l'émulateur.
C'est la façon la plus simple je pense.

Ton MCU fait bien parti de la famille MCS96.
Par contre entre un 80C196 ou 87C196 ??? je ne sais pas (le 87 à le double en RAM embarqué je crois)

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://axgti.forumactif.org
kaisen
Nouveau
Nouveau


Messages : 13
Date d'inscription : 24/07/2015

MessageSujet: Re: Motronic, Recherche et developpement.   Sam 8 Aoû - 1:52

Désolé, un peu moins de temps que d'habitude.

J'ai un ostrich 2 a la maison, peux tu etre plus precis sur la methode ?

Merci et bonne journée
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Motronic, Recherche et developpement.   

Revenir en haut Aller en bas
 
Motronic, Recherche et developpement.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» RECHERCHE COUSSINETS DE BOITE DE VITESSE
» recherche calculateur injection W124
» Recherche poulie vilo 75V6 en motronic
» Recherche Repsol
» Recherche impuls speed

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
AX GTi :: Technique :: Logiciels-
Sauter vers: