L'EEPROM émulée : où vit l'identité sans puce dédiée
Sur un calculateur ancien, on repérait facilement la petite EEPROM série : une puce à 8 broches, à côté du microcontrôleur, qui portait l'identité et les adaptatifs. Sur beaucoup de calculateurs récents, cette puce a disparu — sans que les données qu'elle contenait aient disparu pour autant. Elles vivent désormais dans une EEPROM émulée, à l'intérieur de la data flash du processeur.
Pourquoi supprimer la puce dédiée
Intégrer l'émulation EEPROM dans le microcontrôleur présente plusieurs avantages : une puce de moins à approvisionner et à souder, une piste de moins sur la carte, et une donnée d'identité protégée par les mêmes mécanismes de sécurité que le reste du silicium. La contrepartie est une difficulté technique : la data flash est une flash, qui s'efface par secteurs entiers (voir PFlash et DFlash), alors qu'une EEPROM se veut altérable octet par octet. Émuler l'une avec l'autre demande une couche logicielle astucieuse.
Le principe : stocker par enregistrements
L'émulation ne réécrit pas une valeur à la même adresse : elle ajoute un nouvel enregistrement à la suite. Pour modifier un compteur ou un adaptatif, le logiciel écrit une nouvelle version du bloc de données dans un espace libre du secteur, et marque l'ancienne comme périmée. La valeur « courante » est toujours la plus récente. Quand le secteur se remplit, un mécanisme de compactage recopie les seules versions valides dans un autre secteur, puis efface le premier, désormais disponible. Ce va-et-vient est invisible pour l'applicatif, qui croit dialoguer avec une EEPROM classique.
Le wear-leveling : ne pas fatiguer les mêmes cellules
Ce fonctionnement par enregistrements successifs a un effet vertueux : les écritures se répartissent naturellement sur toute la surface du secteur, au lieu de marteler toujours la même cellule. C'est le principe du wear-leveling, qui rallonge la durée de vie de la zone. Il rejoint la logique d'endurance décrite dans l'endurance et la rétention de la flash : une donnée qui change des dizaines de milliers de fois ne peut pas s'écrire toujours au même endroit sous peine d'usure prématurée. C'est pourquoi les zones d'EEPROM émulée sont spécifiées pour un très grand nombre de cycles — de l'ordre de 125 000 sur un AURIX TC2xx.
La robustesse à la coupure d'alimentation
Un calculateur peut perdre son alimentation à tout instant — batterie débranchée, contact coupé en pleine écriture. L'émulation EEPROM est conçue pour survivre à cela : parce que l'ancienne valeur n'est effacée qu'après que la nouvelle est intégralement écrite et validée, une coupure au mauvais moment laisse au pire un enregistrement incomplet, ignoré au redémarrage, mais ne détruit jamais la donnée précédente. Cette tolérance aux pannes est une raison majeure de préférer l'émulation à une écriture directe, et elle explique la fiabilité des adaptatifs modernes face aux aléas électriques.
Où vit l'identité, concrètement
L'émulation EEPROM porte exactement ce que portait l'ancienne puce : le VIN, les codes d'antidémarrage, le codage des injecteurs (les écarts de débit mémorisés), les adaptatifs appris, les compteurs et les codes défaut persistants. Ces données ne sont pas dans la calibration : les modifier ou les perdre par mégarde a des conséquences directes — non-démarrage lié à la chaîne immo, perte d'appairage, déséquilibre cylindre. C'est la raison pour laquelle une intervention respectueuse traite ces zones comme telles, dans le cadre d'une réparation légitime, et ne s'y aventure jamais à l'aveugle. Le VIN dans le calculateur illustre ce point sur un cas concret.
Ce que cela change pour la lecture
Pour le motoriste, la disparition de la puce EEPROM a une conséquence pratique : on ne peut plus lire l'identité en abordant un composant séparé, puisqu'elle est fondue dans la data flash du processeur. Elle se capture donc avec une lecture complète du microcontrôleur, dans les modes décrits par OBD, bench, boot. Sur les architectures qui conservaient une EEPROM externe — Continental en employait beaucoup — la sauvegarde devait explicitement inclure cette puce ; sur les architectures à EEPROM émulée, tout est dans la lecture du processeur, à condition qu'elle soit intégrale. Comprendre cette évolution évite l'erreur classique : chercher une puce qui n'existe plus, ou négliger une zone d'identité désormais invisible à l'œil.
Deux partitions et le scan de démarrage
Le mécanisme repose en pratique sur au moins deux partitions de la data flash utilisées en alternance : l'une active reçoit les nouveaux enregistrements, l'autre sert de réserve. Quand l'active est pleine, le logiciel recopie dans la réserve les seules versions à jour des données, bascule les rôles, puis efface l'ancienne partition — une bascule dite ping-pong qui garantit qu'à tout instant une partition complète et cohérente existe. Au démarrage, une phase de scan parcourt les enregistrements pour reconstituer l'état courant : elle retrouve la dernière version valide de chaque donnée et écarte les enregistrements incomplets laissés par une éventuelle coupure. Ce balayage a un coût — quelques millisecondes à l'amorçage — mais il assure la robustesse. Quand ce mécanisme se dégrade, sur une data flash usée ou après un incident d'alimentation, le calculateur peut lever un code défaut de mémoire interne ou perdre des adaptatifs : ce n'est pas un problème de calibration, mais un symptôme touchant la zone de données. Le distinguer d'un défaut de fichier évite bien des fausses pistes, et rappelle que la donnée d'identité mérite le même respect qu'un composant physique dédié.
Voir aussi PFlash et DFlash, les EEPROM série et la carte mémoire d'un calculateur.
Sur ANP Engineering — file service de reprogrammation moteur pour professionnels : file service ECU, correction de checksum, calculateurs pris en charge, tarifs.
