Support officiel calculateurs Megasquirt, Lambda Tech Edge WBO2, Tuner Pro, SportDevices et Fenixecu 

  • Projet R25 V6 Turbo

  • Des questions sur la création de fichier définition ou bien des problèmes pour les utiliser, c'est ici
Des questions sur la création de fichier définition ou bien des problèmes pour les utiliser, c'est ici
 #9738  par RedDog
 28 avr. 2021 13:56
Roger a écrit :
27 avr. 2021 22:05
Salut Manu

Cela semble très bien, mais j'ai déjà le Pocket Romulator. Mais le Pocket Romulator est un peu obsolète par rapport au Ostrich 2.0 :-(

Afin d'analyser quelles adresses sont lues dans l'EPROM, j'ai acheté le LOGICPORT LOGIC ANALYZER (LA1034). http://www.pctestinstruments.com/index.htm
Mais ce n'est pas en temps réel et malheureusement cela ne semble pas fonctionner correctement et la plupart des mesures ne sont pas valides, donc je n'ai qu'une idée approximative des adresses lues.
J'ai déjà lu sur TunerPro RT, mais sans le bon fichier XDF, je ne peux vraiment aller nulle part.
Aïe......
Je pense que tu es sur la mauvaise piste Roger.....
Cet appareil est un analyseur de signaux logiques, un outil d'électronicien.
S'il est capable de lire les signaux, il les lit tous.
Donc, si tu connectes cet appareil au microprocesseur (68HC11) ou à la mémoire ((2764) ou les deux, tu vas lire les lignes d'adresses et de données du processeur mais tu ne feras aucune différence entre les adresses du programme et les adresses des tables etc...
Pas étonnant que tu n'y arrives pas.

La seule et unique solution dans notre cas (pas de XDF spécifique pour ce calculateur), c'est de désassembler le programme contenu dans l'eprom ( c'est fait pour moi) et de l'analyser, pour cela il nous faudrait également le schéma électrique du calculateur (que nous n'avons pas). Cela fait beaucoup de conditions qui ne sont actuellement pas remplies.

Je recherche toujours un calculateur S101716101 de R25 V6 Turbo 205cv en panne pour poursuivre mes recherches car il n'est pas question que je prenne le moindre risque avec celui qui est monté sur la voiture.
 #9740  par Roger
 28 avr. 2021 21:34
Salut RedDog


J'ai fait un adaptateur qui est intégré entre la prise et l'EPROM. Là, j'enregistre les lignes d'adresse et les lignes de données. Le programme génère environ 4 à 5 fichiers par seconde, je lis ces fichiers et le fichier BIN correspondant dans un programme que j'ai écrit moi-même et crée un gros fichier.
En même temps, je vérifie dans le programme si la valeur des lignes de données correspond à la valeur du fichier BIN, si ce n'est pas le cas, je marque la mesure comme invalide. Je charge ensuite le gros fichier dans une base de données et fais mes analyses avec SQL.
RedDog a écrit : tu vas lire les lignes d'adresses et de données du processeur mais tu ne feras aucune différence entre les adresses du programme et les adresses des tables etc...
Non, je ne sais pas cela. Mais c'est ainsi que j'ai découvert que les adresses 182h - 18Ah et 196h - 19Ch dépendent de la température.
Est-il possible que le code de programme commence à l'adresse 3FEh?

As-tu réussi à démonter le code du programme? Tu es un héros! Je voulais faire cela aussi, mais je n'ai pas réussi à trouver le bon programme de démontage.

Je cherchais un calculateur S101716101 aussi, mais je n'en ai pas trouvé non plus. Peut-être que vous êtes encore plus chanceux que moi.
 #9741  par RedDog
 30 avr. 2021 08:26
Roger a écrit : Est-il possible que le code de programme commence à l'adresse 3FEh?
Tout d'abord il faut faire la différence entre adresses du programme et offsets de l' EPROM, je m'explique.

L'espace adressable du 68HC11 est constitué de plusieurs zones :

de 0000 à 00FF : RAM interne 256 octets
de 0100 à 0FFF : espace externe libre
de 1000 à 103F : espace d'adressage des registres internes du processeur
de 1040 à B5FF : espace externe libre
de B600 à B7FF : 512 octets d' EEPROM interne (et oui il y en a une !)
de B800 à DFFF : espace externe libre
de E000 à FFFF : EPROM

On comprendra donc que l'offset 0000 de l'EPROM est en fait l'adresse mémoire E000 pour le processeur !

Ceci étant dit, et pour répondre à ta question l'adresse de début du programme se situe en E328 et donc à l'offset 0328 de l'EPROM

Voici les premières lignes de code :
Code : Tout sélectionner
ROM:E328 0F                                      sei                     ; __RESET
ROM:E328                                                                 ; CME
ROM:E329 8E 00 FF                                lds     #$FF
ROM:E32C CE 10 00                                ldx     #$1000
ROM:E32F CC C1 A9                                ldd     #$C1A9
ROM:E332 A7 24                                   staa    $24,x
ROM:E334 E7 39                                   stab    $39,x
ROM:E336 CC 01 2A                                ldd     #$12A
ROM:E339 A7 3D                                   staa    $3D,x
ROM:E33B E7 3C                                   stab    $3C,x
ROM:E33D 86 02                                   ldaa    #2
ROM:E33F A7 08                                   staa    8,x
 #9770  par Roger
 19 mai 2021 20:30
Salut RedDog

J'ai finalement pu faire deux tests avec votre fichier bin d'origine.

Contrairement à mes attentes, le comportement était encore pire. La vitesse montait et descendait et la valeur lambda oscillait entre 0,82 et 1,42.
Dans le deuxième test, j'ai commencé à ajuster quelques valeurs en fonction de ma cartographie, de sorte qu'à la fin, ce n'était plus si mal. Mais à ce moment-là, le moteur était déjà chaud.
Je suis curieux de savoir comment il se comportera lorsque le moteur sera froid.

Je suis toujours dépassé que vous ayez réussi à démonter le code du programme. Malheureusement, le code d'assemblage est très difficile à lire, ou pouvez-vous?
Mon objectif est de convertir le code assembleur en code de programme C dans l'espoir de pouvoir le lire ensuite. Mais jusqu'à présent, je n'ai toujours pas réussi à générer le code assembleur.
 #9771  par RedDog
 20 mai 2021 13:00
Roger a écrit :
19 mai 2021 20:30
Salut RedDog

J'ai finalement pu faire deux tests avec votre fichier bin d'origine.

Contrairement à mes attentes, le comportement était encore pire. La vitesse montait et descendait et la valeur lambda oscillait entre 0,82 et 1,42.
Bonjour Roger,

Cela est tout a fait normal, vous utilisez un programme (.bin) qui ne correspond pas a votre moteur, de plus vous avez changé la waste-gate et un ou plusieurs capteurs (lesquels ?). Les caractéristiques de ces nouveaux capteurs etc... sont, à n'en pas douter, différentes de celles des éléments d'origine. Tout ceci est bien normal et il vous faudra adapter la carto (voir le logiciel) en fonction, c'est un gros travail et sans comprendre ce que fait le programme, vous n'y arriverez certainement pas.
Roger a écrit : Je suis toujours dépassé que vous ayez réussi à démonter le code du programme. Malheureusement, le code d'assemblage est très difficile à lire, ou pouvez-vous?
Rien de vraiment compliqué, il suffit d'utiliser les bons outils, moi j'utilise IDA (interractive disassembler) un logiciel qui est cher mais j'ai la chance d'en disposer à mon travail !
Roger a écrit : Mon objectif est de convertir le code assembleur en code de programme C dans l'espoir de pouvoir le lire ensuite. Mais jusqu'à présent, je n'ai toujours pas réussi à générer le code assembleur.
INUTILE. Pour générer un code source en C il n'y a qu'une méthode et elle est manuelle (voir intellectuelle).
Inutile car pour cela il faut parfaitement comprendre ce que fait le programme d'origine (en assembleur) ! ! :lol:
Vous trouverez très facilement la documentation sur le 68HC11 et les mnémoniques assembleur correspondants sur internet.

Voilà, j'ai bien désassemblé ce programme pour en obtenir un code source en Assembleur mais pour comprendre ce que fait réellement ce programme il faut maintenant obtenir un schéma électrique du calculateur.

Pour ce faire deux obstacles pour l'instant :

1 - Il faut ôter le vernis du circuit imprimé d'origine pour pouvoir utiliser a minima un multimètre et relever le schéma. Pas question de faire cela sur le calculateur monté sur la voiture, c'est pourquoi j'en cherche un en panne sur lequel je pourrai bricoler sans soucis.

2 - Il faut du temps disponible, ce qui n'est pas mon cas pour l'instant.

Mais toujours heureux de pouvoir échanger mes quelques connaissances avec vous.