LE MONDE DU DIAGNOSTIC AUTO
Bienvenue sur le forum "Le monde du diag auto".

Afin de profiter pleinement de tout ce que vous offre notre forum, merci de vous présentez, si vous êtes déjà membre ou de rejoindre notre communauté si vous ne l'êtes pas encore.

LE MONDE DU DIAGNOSTIC AUTO

Diagnostic et Mécanique Automobile.
 
Accueil  FAQ  Rechercher  S'enregistrer  Connexion  
Présentation simplifiée et obligatoire pour avoir accès au forum
Hebergeur d'image
Derniers sujets
» interface et oui encore
par guygnolle Aujourd'hui à 20:19

» crochet d'attelage 308 sw
par le chat 60 Aujourd'hui à 19:54

» Erreur sur module IHKA
par AP.20141 Aujourd'hui à 18:43

» AUDI A4 ne demare ps
par Cocobeley Aujourd'hui à 18:17

» besoin d'aide pour l'achat de materiel
par chaco Aujourd'hui à 17:58

» Présentation de Arnaud
par fred9545 Aujourd'hui à 17:52

» Problème de sonde... oui encore... désolé ^^
par chaco Aujourd'hui à 17:40

» Remplacement pompe LUCAS par une pompe mécanique
par ursule Aujourd'hui à 16:59

» ESPACE 4 ventilateur Moteur se met en route dès le démarage
par sined4751 Aujourd'hui à 16:09

» Cic qui coupe
par sined4751 Aujourd'hui à 15:46

» multiecuscan 3.1 full
par vincent55 Aujourd'hui à 15:33

» Interface alliance hs ?
par pouettedu76 Aujourd'hui à 15:18

» Vidange BVA
par jmr Aujourd'hui à 14:38

» Présentation de Jean Michel
par heineken Aujourd'hui à 14:11

» Panne courante direction assistée électrique Modus
par wooky69650 Aujourd'hui à 13:19

» Outil Maxiecu 2
par lenainportnawak Aujourd'hui à 13:17

» Nouveau : guide d'installation , d'utilisation et dépannage servicebox
par heineken Aujourd'hui à 12:52

» Problème feux de route
par thouve Aujourd'hui à 12:22

» Présentation de David
par fred9545 Aujourd'hui à 11:50

» Présentation de René
par jeager13 Aujourd'hui à 10:32

» BMW Rheingold ISTA-D 3.53.30 FR + ISPI NEXT (ISTA-P 3.57)
par avaiti Aujourd'hui à 9:58

» Présentation de Guy
par fred9545 Hier à 19:09

» Présentation de niko
par heineken Hier à 18:39

» Présentation de christian
par fred9545 Hier à 18:07

» Comment changer la langue de Lexia3, DiagBox, PP2000
par paulcl Hier à 17:55

» pour interroger mon q5.
par haka47 Hier à 17:33

» tutoriel Montage Amplis Logic7 "Dsp" E90/2007
par PlessE90 Hier à 17:26

» besoin d'aide diagnostic
par PlessE90 Hier à 17:06

» Frein de parking Renault Scénic 2
par sined4751 Hier à 15:58

» Présentation de Bobbux
par fred9545 Hier à 14:34

» codage etc...
par ochi91 Hier à 11:15

» probleme pas de puissance laguna 2 dci 100
par djams Hier à 11:01

» doc & schémas d'instalation alarme et centralisation
par fred9545 Hier à 10:53

» Vibrations toit ouvrant
par Mad Penguin Hier à 9:56

» Présentation de jacques
par piloujc Hier à 9:37

» Présentation de nelson
par pilou Hier à 9:24

» Présentation de Ben
par fred9545 Hier à 7:21

» ics alfa 166
par Symbiose93 Hier à 7:20

» Présentation de alexandre
par micka Hier à 4:21

» Tuto installation/utilisation ncsexpert en image
par atlantys02 Hier à 1:58

Qui est en ligne ?
Il y a en tout 171 utilisateurs en ligne :: 35 Enregistrés, 2 Invisibles et 134 Invités :: 1 Moteur de recherche

benji, bluespeed, bnania, bubu04, chevel, Cocobeley, djams, dragon455, fred9545, GregA4-51, guygnolle, jbouteyre, jcinfo, jeantalus, jeje88, joss, le chat 60, lolo85v, Mad Penguin, Malbar419, manu62126, marteric, momo59, patmikel, patrick33000, phm59, piem, Pit971, popeye05, rhakim, roger69, scorpium59, titi6619, totophe14, ulysse79

Le record du nombre d'utilisateurs en ligne est de 334 le Ven 15 Aoû - 17:00
Membres les plus tagués
@Alliottom59 (33)
 
@heineken (28)
 
@fred9545 (22)
 
@popeye05 (21)
 
@ulysse79 (15)
 
@micka (14)
 
@Digidid (14)
 
@scorpium59 (13)
 
@pouettedu76 (11)
 
@Guyguy307 (10)
 
Pub

Partagez | .
 

 Explications sur le fonctionnement d'une VCI

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


Messages : 14
Date d'inscription : 04/05/2016

MessageSujet: Explications sur le fonctionnement d'une VCI   Lun 12 Sep - 6:34

Je voudrais résumer dans ce post tout ce que j’ai compris  sur le fonctionnement de nos interfaces Actia, en espérant que ça puisse servir aux personnes qui ont des problèmes.

C'est le fruit de pas loin de 2 mois de travail et j’ai beaucoup appris grâce aux contributions de plusieurs d’entre-vous (merci notamment  à titoun et nlc pour tous leurs posts  ainsi qu’à tunglt sur un autre forum) et avec mes propres galères. Après tout ça j'ai voulu investiguer un peu plus par curiosité donc j'ai décortiqué le fonctionnement du Fujitsu, du PIC, des optocoupleurs, désassembler le bootloader, une partie du firmware, le soft du PIC et je me suis fait un espion SPI pour connecter à la flash Winbond et au PIC !  Il y a certainement quelques bêtises dans ce que je raconte donc n’hésitez pas à les signaler. Quelques redites aussi :-)
J’ai acheté un clone chinois « full-chip » sur aliexpress et après quelques petits problèmes, j’ai enfin réussi à la faire dialoguer, le tout sur du Win 7, avec virtualbox et diagbox 7 xx. Elle était livrée en rev B (donc reconnue comme une Actia normale, pas Evolution) et avec un firmware 4.3.0. Ca marche sans pb avec les derniers diagbox avec quelques limitations donc je l’ai upgradé en rev C/evolution.

PHOTOS


Quelques photos de la bête pour commencer, avec la carte-micro (qui contient le micro fujitsu, la ram, la mémoire flash, les optocouplers, le contrôleur USB) et la carte relais (12 relais, le PIC pour commander les relais, le transceiver CAN et quelques circuits annexes). C’est une full-chip mais comme toujours sur les clones, il manque quelques composants. Rien de grave, l’assemblage et les soudures sont de bonne qualité.
Noter les numéros des composants et connecteurs sur les photos car j'y fais référence (suivant le clone, les numéros peuvent être différentes, voire pas indiqués).

Carte microcontrôleur:

[Vous devez être inscrit et connecté pour voir cette image]

Le micro Fujitsu MB90F546GS (aka MB90, en U11) qui contient toute l'intelligence. Pas récent, on voit que la conception commence à dater sérieusement et on pourrait faire beaucoup plus intégré et moins cher aujourd'hui, mais il fait le boulot. Une SRAM Samsung de 4Mbits (U13) et un driver USB (U12) pour connecter la VCI au PC.
Il y a aussi une mémoire Flash série Winbond 25080 8Mbits ou Spansion 4Mbits (moins chère) en U2 qui utilise le protocole SPI.

A noter, 7 optocoupleurs d'isolation entre carte relais et carte micro, a priori des fakes car les originaux sont beaucoup trop chers. Sur les clones non "full-chip", il en manque pour faire encore moins cher  Ici des HCPL0500, 0638 et 0639 mais certains clones utilisent d’autres modèles.

Les deux HA86 sont des quadruples XOR qui sont utilisés en convertisseur de tension pour les signaux car la Winbond travaille en 3 3V et le MB90 en 5V.  Le ACT04 est un inverseur (6 portes), utilisés entre la carte relais et certains optocoupleurs  Le AHCT125 est un buffer quadruple qui sert entre le MB90 et la SRAM, ainsi qu'entre la Winbond et le MB90 (convertisseur signal 3 3V en  5V). Le HA08 est un quadruple AND et doit servir à commander la SRAM depuis le MB90.
Le quartz 4MHz est un modèle bas de gamme pas très précis mais suffisant.

L'arrière:

[Vous devez être inscrit et connecté pour voir cette image]

Les deux AHC573 (U20 et U21) sont des portes 3 états (8 portes) certainement utilisées entre le MB90 et la SRAM.
Souvent (tout le temps ?), il manque une résistance de pull-up de 10k (à droite de C41) sur la pin P94/TXO du MB90 (CAN TX) et ça peut poser problème des aléatoires sur le bus CAN d'après titoun. Facile d'en souder une sur les deux petits plots de soudure.

Il peut aussi manquer une résistance de pull-up sur la sortie de la flash SPI winbond d’après nlc (R49,  10kohm entre DO/pin2 et Vcc 3V/pin8 de la mémoire), ce qui empêche la mémoire d’être lue correctement par le MB90 et donc le bootloader Rev C/evolution ne peut pas fonctionner. Si elle manque et que vous n’avez pas de résistance miniature, on peut en souder une de taille normale directement par dessus la mémoire entre les pattes 2 et 8 si c'est plus facile que de la mettre sur le verso de la carte.

Sur certaines cartes, les résistances qui déterminent le courant qui passe dans les entrées des optocoupleurs quand le signal vaut "1" peuvent être inadaptées aux optos (suivant les modèles utilisés), voir plus loin.

Carte relais :

[Vous devez être inscrit et connecté pour voir cette image]

Les 12 relais, un convertisseur CAN (MCP255), un PIC 16F684, un comparateur de tension (2901) et convertisseur 12V->5V (2674). Sur ma carte, il manque un filtre sur la ligne CAN à droite du MCP255 (TDK common mode filter ZJYS51R5-2PT-01).

L'arrière:

[Vous devez être inscrit et connecté pour voir cette image]

Deux convertisseurs série->parallèle (HC595, U11 et U12) et des transistors darlingtons (ULN2003, U8 et U9) pour alimenter les relais.


DIAGNOSTIQUER SI LA VCI FONCTIONNE


Comme je n’arrivais pas à faire détecter que l’interface était branchée à la voiture (message « Veuillez connecter une VCI ! » dans diagbox à chaque fois que je lançais le diag), j’ai tout démonté et mis directement le 12V sur le connecteur ODB, sans voiture (c’est ce 12V qui est utilisé pour détecter que la sonde est branchée à la voiture ). Et là, miracle, diagbox reconnait que la VCI est branchée. Bref, tout ça pour se rendre compte qu’il y a avait un énorme faux contact dans le connecteur ODB de l’interface
Donc on peut vérifier si la VCI fonctionne sans être dans sa voiture : on met le 12V, comme si elle était branchée à la voiture et on lance diagbox. On doit pouvoir entendre les relais qui commutent. Si diagbox dit qu'il faut brancher la VCI, c'est qu'il y a un problème. S'il dit qu'il ne peut pas lire le VIN, c'est normal :-)  Pour faire "claquer" les relais, il faut lancer une session de diag. En cours de session, les relais n’ont plus de raison de commuter.
Pour mettre du 12V, on peut utiliser une petite alim 12V, voire une pile de 9V (à confirmer). On la branche entre la masse (broche 3 ou 4) et le + (broche 1 ou 2) du connecteur ODB (photo), ou bien entre les pattes de la varistance, ou bien sur le connecteur 12V qui est à l'opposé sur la carte relais ou bien…sur le câble ODB.
J’en ai profité pour noter les câblages.

Le connecteur 2x11 pt sur lequel arrive le câble ODB (CON1):

[Vous devez être inscrit et connecté pour voir cette image]

Les broches 1 et 2 sont branchées sur le +12V de l’ODB et vont sur le + de la varistance. Les 3 et 4 sont branchées sur la masse électrique de l’ODB et vont sur le – de la varistance .
Certains fils ne sont pas utilisés sur l’ODB Euro5 mais servent sur des voitures plus anciennes.

Brochage prise ODB £uro 5:

[Vous devez être inscrit et connecté pour voir cette image]

Tout ce beau monde va sur les relais. Ils servent à faire la connexion entre les bonnes "broches" de la prise ODB et le microcontrôleur Fujitsu (le brochage de la prise ODB dépend de la génération de la voiture). Au passage, les relais des VCI clones ne sont souvent que des contrefaçons à bas prix donc peuvent marcher plus ou moins bien.

Interface carte micro – carte relais  (connecteur 2x6 pt – CON2/J2):

[Vous devez être inscrit et connecté pour voir cette image]

Les deux cartes sont reliées par un connecteur 12 points.
Certains signaux sont des commandes venant du Fujitsu  D’autres sont les bus CAN (connectés au MCP255) et K (?). Il y a enfin des tensions d’alimentation venant de la carte relais et générées à partir du 12V de l’ODB.
Sur la broche 3, on doit retrouver du 5V si le 12V ODB est présent (tension entre broche 3 et broche 10 qui est la masse).
Sur la broche 2, on doit retrouver du 5V si le 12V ODB est présent et que diagbox n'est pas lancé
Sur la broche 11, on doit retrouver 12V si le 12V ODB est présent et que diagbox n'est pas lancé.
Les broches 7, 8 et 9 servent à la communication entre le MB90 et le PIC.
Les broches 1 et 4 servent au bus CAN.
Les broches 5, 6 et 12 semblent servir pour le bus K-Line mais ça reste à confirmer.


ALIMENTATION CARTE RELAIS:

U5 (LM2904) est  le convertisseur de tension responsable de la génération du 5V pour les circuits de la carte relais. Il prend en entrée le 12V ODB (qui passe dans la diode de protection D3) et génère le 5V qui alimente toute la logique sur la carte relais et une partie de la carte micro. Il accepte du 8 à 40V en entrée donc il est très tolérant  D4 est la diode zener qui génère la tension de référence pour ce convertisseur. L1 est l'inductance qui filtre la tension de sortie. Le 5V en sortie alimente le voltage comparator (U1-ST 2901)  Il alimente aussi le PIC par l’intermédiaire du transistor Q3 quand le MB90 en donne l'ordre. Il alimente aussi en direct le transceiver CAN (U3-MCP255). Il sert aussi à alimenter sur la carte micro les optocoupleurs qui sont dans la direction carte micro->carte relais ainsi que l'inverseur U3 ACT04.


PIC 16F684 ET RELAIS:


Le PIC (U2, juste à gauche des relais) commande les relais. Ils sont alimentés en 5V. Le PIC envoie les commandes de commutations aux relais, suivant les ordres qu’il a reçus du microcontrôleur MB90. Le PIC sort ses commandes sous forme série (pin 7/RC3), chaque bit étant une commande de ON/OFF à destination d’un des 12 relais. Les HC595 (U8 et U9 au dos de la carte) font la conversion série->parallèle et attaquent les darlingtons ULN2003 (U11 et U12) qui sont là uniquement pour fournir assez de puissance pour commander les bobines des relais. A chaque nouveau diag, le MB90 envoie la config des relais à appliquer par le PIC. Il envoie aussi des commandes au PIC en cours de session (vu à l’oscillo).

Le PIC a un deuxième rôle : il peut mesurer trois signaux analogiques connectés sur ses entrées RC0/AN4, RC1/AN5 et RC2/AN6 et renvoyer ces mesures au MB90 et donc au PC. Impossible de trouver de quels signaux il s'agit et pour quelles générations de voiture ça peut être utile.
Le PIC n’est allumé et utilisé par le MB90 que pendant un diagnostic. Le reste du temps, il est éteint.
Le MB90 est capable de reprogrammer le PIC et de recharger son programme (il se trouve dans le firmware du Fijitsu, entre FC0030-FC0086D, le premier mot de 16 bits étant le nb d'octets à télécharger). En regardant dans le firmware, on voit qu'il tente de le reflasher s'il ne répond pas ou répond avec une mauvaise version de soft ou bien à la première utilisation (mémoire winbond vierge). Cette vérification est faite à chaque fois qu’on lance du diag dans diagbox. Si le MB90 décide de reflasher le soft du PIC, il le redémarre en mode "programmation" en appliquant du 12V sur Vpp (P73=1, broche 11 du connecteur à 0V) et il envoie le programme par ICSPCLK et ICSPDATA. Dans le cas contraire, il démarre le PIC en mode "normal" en appliquant P73=0 (pour mettre Vpp à 0V, càd 12V sur la broche 11 du connecteur). En pratique, à part à la première utilisation, ça ne doit jamais arriver car le programme du PIC est le même depuis la nuit des temps (V1.0.0@08.01.07) donc il n'y a aucun besoin de mise à jour. Ca pourrait servir dans le futur. Ce fonctionnement est plutôt une bonne nouvelle parce que ça veut dire que si vous corrompez le programme en bricolant ou si vous devez remplacer le PIC suite à une panne, le soft sera automatiquement rechargé.

Il est aussi possible de lire la mémoire du PIC ou de la reprogrammer si ça vous amuse en débranchant la carte micro et en utilisant le connecteur CON2. Il suffit de mettre les broches 2 et 11 du CON2 à 0V (ça commande l'alimentation du PIC et ça met Vpp=12V), de mettre du 12V ODB (le PIC démarre et se met en attente), puis de se servir des broches 7 et 9 du CON2 (data & clock) pour communiquer (protocole série en 0-5V). Par contre attention, quand on envoie les commandes de clock et data, il faut bien être en 0-5V et pas en 0-3V car sinon le PIC loupe des changements d'horloge ou ne décode pas bien les commandes de programmation. Ca fout la zone et il peut même exécuter des commandes farfelues, comme l'effacement de sa mémoire (ça m'est arrivé avec mon programmateur maison STM32 donc prudence !).

Schema du PIC et commande des relais:

[Vous devez être inscrit et connecté pour voir cette image]

Le convertisseur 5V (LM2904 - U5) est chargé de fournir le 5V à la carte relais à partir du 12V ODB. Ce 5V sert aussi à alimenter certains optocoupleurs de la carte micro.
L’alimentation du PIC en 5V (pin 1 Vdd) est commandée par le MB90 via le transistor Q3 (MOSFET-P) qui agit comme un interrupteur. Il y a une résistance de pull-up au 5V de 100kohm pour bloquer Q3 par défaut.
Le Vpp 12V du PIC (pin 4 Vpp) est fourni par le 12V ODB (via une résistance de protection D3) et n’est appliqué uniquement en cas de reflashage du PIC par le MB90 (la commande Vpp venant du MB90 va sur le transistor Q4 qui aussi un MOSFET-P monté en interrupteur). Il y a une résistance de pull-up au 12V de 100kohm pour bloquer Q4 par défaut.
Le PIC (RA0=data, RA1=clock, RA2=chip select) reçoit la config depuis le Fujitsu (port serie 2) en mode SPI. La communication avec le PIC se fait à environ 6.5kHz, qui est quasiment la vitesse max à laquelle le PIC peut communiquer de manière fiable vue la conception du soft. La pin RA0/data sert à communiquer dans les deux sens entre le PIC et le MB90 (SIN2 et SOT2), c’est pour ça que le signal data va sur deux optocoupleurs, un dans chaque sens. Ce bus série est aussi utilisé par le MB90 pour communiquer avec la Winbond d’où la nécessité du Chip Select pour savoir avec quel circuit on cause (en fait, le firmware du MB90 fait quelques accès à la Winbond pendant qu'il est en transaction avec le PIC, on voit les deux Chip Select à 0 en même temps ! C'est peu gênant car le MB90 inhibe la lecture du PIC mais malgré tout c'est pas propre, le PIC pourrait décoder n'importe quoi, mais ça va trop vite pour lui.. ouf.
A noter que si le MB90 doit reflasher le PIC, la communication se fait à beaucoup plus grande vitesse (environ 100kHz) car la communication n'est pas assurée par le soft du PIC mais par du hardware dédié (mode ICSP).

Capture au lancement d'un diagnostic:

[Vous devez être inscrit et connecté pour voir cette image]

Note : ne pas faire attention aux échelles de tension, l’oscillo n’était pas calibré et j’avais mis ma sonde du canal A en x10…

Au démarrage d'un diagnostic, le MB90 teste le PIC puis lui envoie ses commandes. Le format est assez basique (facilement compréhensible en désassemblant une partie du firmware) : le MB90 envoie 0x55, suivi d’un octet de commande et d’un octet donnant le nb d’octets supplémentaires pour les paramètres de la commande qu’il va envoyer, puis ces paramètres, puis il relâche le signal data en envoyant 0xFF (c’est du drain ouvert avec pull-up). Le PIC traite la commande puis répond au bout d’un petit délai (1ms max)  par 0x55 et répète l’octet de commande reçu suivi d’un octet contentant le nb d’octets de la réponse qu’il va envoyer et suivent les octets de réponse.

Il y a 3 commandes acceptées par le PIC:
- Commande 0 : demande la version de firmware du PIC, la réponse fait 15 octets (V1.0.0@08.01.07)
0x55 0x00 0x00 0x55 0x00 0x0F 0x56 0x31 0x2E 0x30 0x2E 0x30 0x40 0x30 0x38 0x2E 0x30 0x31 0x2E 0x30
- Commande 1 : interrogation des valeurs lues sur les ADC du PIC, un octet de paramètre pour choisir l’ADC (xx : 00=>ADC AN6/RC2, 01=>ADC AN5/RC1, 03=>ADC AN4/RC0), la réponse fait 2 octets (16 bits par valeur analogique)
0x55 0x01 0x01 xx 0x55 0x01 0x02 yy zz
- Commande 2 : envoi de la configuration des relais, 2 octets de paramètres (une bitmap de 14 bits de ON/OFF, 1 bit par relais), la réponse fait 1 octet et vaut toujours 0 (ok) :
0x55 0x02 0x02 xx yy 0x55 0x02 0x01 0x00

Si le PIC reçoit autre chose, il renverra une erreur :
- 0x55 0xFF 0x01 0x0C : la trame reçue du MB90 ne commence pas par 0x55
- 0x55 cmd  0x01 0x0B : erreur sur le nb d'octets des paramètres transmis par le MB90
- 0x55 cmd  0x01 0x0C : commande inconnue reçue du MB90
- 0x55 0x01 0x01 0x0C : numéro d'ADC demandé par le MB90 non valable (0, 1, 3 acceptés)
- 0x55 0x01 0x01 0x0D : le convertisseur ADC n’a pas encore converti la valeur (pas prêt)
Si le PIC ne répond pas comme il faut, le MB90 en déduit qu’il y a un problème et signalera que la VCI n’est pas connectée.

Voici les différentes étapes au lancement d’un diagnostic :
- Lecture du numéro de série de l(interface
- Test de la présence du 5V sur carte relais 
- Si pas de 5V détecté alors affiche message « connectez une VCI » et reboucle sur 1 périodiquement
- Allumage du PIC
- Envoi de la demande de version du soft (CS=0, 0x55, 0x00, 0x00)
- Si le PIC répond avec une mauvaise version ou ne répond pas, le MB90 éteint le PIC et va tenter le reflashage (on redémarre avec Vpp=12V et on envoie le soft). Si le reflashage ne fonctionne pas alors on a le message « connectez une VCI ». Si le reflashage est ok, on repart à l’étape 3
- Demande de la tension lue sur l’entrée AN0 de l’ADC (CS=0, 0x55, 0x01, 0x01, 0x00)
- Application de la config aux relais (CS=0, 0x55, 0x02, 0x02 xx yy), dépend de la voiture
- Communication avec la voiture : lecture du VIN, etc…

A chaque calculateur, il relit le numéro de série, reteste la présence du 5V sur la carte relais, relit la tension sur AN0, réapplique la configuration relais (la même évidemment !) et ... communique avec le calculateur et passe au calculateur suivant.
J’ai fait un petit émulateur à base de STM32 que j’utilise pour communiquer avec le PIC directement sans la carte micro. Ca m'a permis de tester le bon fonctionnement PIC et aussi de lire son programme et de le reprogrammer. J'ai fait aussi l'inverse, à savoir un "émulateur de PIC" que je peux connecter au Fujitsu à travers les optocoupleurs pour tester tout l’étage optocoupleurs et comprendre les commandes du Fujitsu. Ca marche très bien 
Chose assez rigolote: le PIC reste en transmission tant que le signal CS n'est pas relâché. Si on continue à appliquer une clock après avoir reçu tous les octets de la réponse, le PIC continue gentiment à transmettre les octets qui suivent dans sa mémoire. On peut faire un dump des 128 octets de la SRAM :-)
Quand il reçoit une commande de configuration des relais, le PIC envoie la configuration sous forme série aux convertisseurs série-parallèle : RC3 sert à envoyer les bits de config (les deux HC595 sont en série, la sortie du 1er fournit l’entrée au 2ème), RA5 sert à générer la clock qui fait avancer les bits dans les convertisseurs, RC4 commande le chargement des sorties des convertisseurs et RC5 valide les sorties.


CARTE-MICRO


Le composant principal est le microcontrôleur Fujitsu MB90F546GS (256Ko de ROM et 8Ko de RAM). Il y a aussi une RAM statique  (U13 - Samsung de 4Mbits), une mémoire FLASH série (U2 - Winbond 8Mbits ou Spansion 4Mbits), un régulateur 3V3 pour alimenter cette mémoire FLASH, un contrôleur USB (USBN9604) pour la connexion avec le PC, des optocoupleurs (pour isolation électrique avec la voiture) et quelques composants secondaires.

Brochage du MB90 :

[Vous devez être inscrit et connecté pour voir cette image]

Le MB90 est connecté à la SRAM Samsung K6X4016C3F-UF55 et au USBN9604. Le port de données 8 bits est partagé et va sur P00-P07 (85-92)du MB90. Le chemin des bits de données 8-15 et des bits d’adresses de la SRAM n’est pas très clair.
Le INT4 (29) reçoit les interruptions de l’USBN9604 (broche 4 - INT). Le P21 (2) génère le CS de l'USBN. Le P31/RD (10) va sur le RD (2) de l’USBN et le P32/WR (12) va sur le WR (3).
Le port série 2 (SCK2/SOT2/SIN2 – 26/25/28) est relié à la flash SPI Winbond ainsi qu’au PIC (via les optocoupleurs). Quand le MB90 communique avec la Winbond, il « déconnecte » l’arrivée du signal data venant du PIC (P71).  Quand il communique avec le PIC, la « déconnexion » de la Winbond est faite automatiquement grâce au HCT125 dont la sortie est en open-drain.
Le chip select de la Winbond est fait par P92 (71). Le chip select du PIC est fait par P91 (70). Le chip select de la SRAM est fait par P21 (2).
Le port CAN TX0/RX0 (73/74) est relié au driver CAN (MCP255) via les optocoupleurs.
La commande d’allumage du PIC est faite par P73 (56). La commande du Vpp (12V) du PIC est faite par P74 (57).
P40/P44/P45 (18/22/24) vont vers la carte relais (bus K-Line ?). P77 (60) lit des infos de la carte relais (bus K-Line ?).
La LED verte est pilotée par P90.


OPTOCOUPLEURS (montés sur carte micro)


[Vous devez être inscrit et connecté pour voir cette image]

Ils servent à faire l'isolation électrique entre la carte micro (donc l'USB PC) et la carte relais (voiture), ça évite de griller l’USB du PC s'il y a une grosse surtension qui vient de la voiture ou si du 12V arrive là où il ne devrait pas (ce qui n’empêchera pas la carte relais de cramer).
Ce sont la plupart du temps des contrefaçons et ils sont carrément absents sur les clones les moins chers. Sur l'original, il s'agit de HCPL 063N pour les doubles (plus chers) et HCPL 0500 pour les simples.  Je n'ai pas fait le schéma complet de la sonde mais je doute qu'ils soient extrêmement utiles car il y a plein de composants à traverser entre la voiture et l'USB. Ces composants font "tampon" et je pense qu'ils grilleront avant que ça n'arrive jusqu'à l'USB. C'est un avis qui n'engage que moi :-) et dans le doute c'est mieux de les avoir.

U4  (HCPL0500): coupleur simple de la carte micro vers carte relais: commande l'alimentation du PIC
U5  (HCPL0500): coupleur simple de la carte micro vers carte relais : commande du Vpp 12V du PIC
U6  (HCPL0638): coupleur double de la carte relais vers carte micro : signal CAN RX et signal K-Line (?)
U7  (HCPL0638): coupleur double de la carte micro vers carte relais : signal K-Line (?) et signal CAN TX
U8  (HCPL0639): coupleur double de la carte micro vers carte relais : signal Chip Select et signal data pour le PIC
U9  (HCPL0638) : coupleur double de la carte micro vers carte relais : signal Clock pour le PIC et signal K-Line (?)
U10 (HCPL0500) : coupleur simple de la carte relais vers carte micro : 5V venant de la carte relais. Permet de signaler au MB90 la présence de l'alimentation sur la carte relais (et donc que la VCI est connectée à l'ODB). Cet optocoupleur sert aussi à lire le signal data en provenance du PIC par le MB90.

Schéma d’ensemble de l’interface carte micro-carte relais :


[Vous devez être inscrit et connecté pour voir cette image]

MB90 P73 : Un 1 commande l’alimentation du PIC (0V sur pin 3 U4 et 0V sur J2-2 donc débloque le transistor Q3, qui est un MOSFET-N et qui travaille en interrupteur),  0 l’éteint (5V sur J2-2 si carte relais branchée car il y a une résistance de pull up au 5V sur la carte relais et donc Q3 est bloqué).
MB90 P74 : Un 1 commande le Vpp à 12V du PIC (0V sur pin 3 U5 et 0V sur J2-12 donc débloque transistor Q4), 0 met le Vpp à 0 (12V sur J2-12 si carte relais branchée car il y a une résistance de pull-up au 12V sur la carte relais donc Q4 est bloqué). Ca n’est utilisé par le MB90 que quand il y a besoin de charger ou de mettre à jour le soft du PIC dans sa mémoire flash.
MB90 P91 : Un 0 commande le chip select du PIC (0V sur J2-8), ce qui informe le PIC qu’il faut qu’il écoute le bus série (signal data et signal clock) car le MB90 veut communiquer avec lui.  S’il est à 1, le PIC ignore ce qui passe sur le bus.
MB90 P71 : Un 1 permet d’activer la sortie 2 de U10 (pin5 U10 passe à 0) pour lire ce qu'envoie le PIC. Un 0 permet de la désactiver en la passant en « flottant » (le port est partagé avec la Winbond), ce qui est la valeur par défaut. Le MB90 le passe à 1 quand il veut lire ce que lui envoie le PIC. Plus exactement, P50=1 a une double fonction : quand on lance un diagnostic, il sert à tester la présence du 5V venant de la carte relais donc du 12V ODB (P71 mis à 1 pendant 10us et P50 vaut 0 si le 5V de la carte relais est présent), ce qui va déclencher la commande d’alimentation du PIC par le MB90 (sinon message « brancher une VCI » et il reteste périodiquement). C’est ce qu’on voit aussi dans le code du firmware. Ce signal est en tout cas un bon trigger pour un oscillo afin d’examiner ce qui passe dans le sens PIC->MB90.

Note sur le fonctionnement des optocoupleurs U6,  U7, U8 et U9 :
Sur le schéma de ma carte, on voit que toutes les résistances d'entrée qui sont utilisées quand le MB90 est relié directement à l'optocoupleur sont des 1k/1.2k (R40, R33, R46), ce qui est trop élevé : il faudrait plutôt des 470 ohms pour respecter un courant de 5-6mA nécessaire à la LED des optocoupleurs HCPL0638/639: If=(Vcc-1.6V)/R donc avec 5V et 1k, ça donne environ 3.4mA. Mais si on les diminue, il n’est pas sûr que le MB90 puisse débiter suffisamment de courant (c’est la raison pour laquelle elles ne sont pas à 470ohms, alors que les autres circuits, HA86, HA08 et ACT04 peuvent débiter assez) donc au final ça ne marchera pas forcément mieux
La seule solution propre serait de mettre un optocoupleur qui a besoin de moins de courant (les originaux sont des HCPL 063 et 051 et ils n’ont besoin que de 3mA, d'où la valeur des résistances sur la carte). Sur ma carte, j’aurais fait les modifications suivantes si j'avais eu un problème : passer les résistances R74 et R75 (entrées de U4 et U5) à 470 ohms et changer U8 et U9 par des HCPL-063.
Note sur les optocoupleurs U4, U5 et U10  HCPL-0500 :
d’après la datasheet, ces optocoupleurs sont prévus pour fonctionner avec un If nominal plus fort. C’est la raison pour laquelle R20=220 ohm sur U10. Par chance, R74 et R75=1.2kohm fonctionnent aussi car cet optocoupleur est finalement assez tolérant. Mais ça pourrait ne pas être le cas.
Un problème plus important peut arriver avec U10. U10 est alimenté à travers le transistor T21. La capacité de découplage est mise entre le 5V (pin 8) et la masse (et non la pin 5) et ça m’a causé des problèmes dans ce que reçoit le MB90 du PIC (certainement du parasitage mal filtré peut-être à cause de la résistance interne de T21). Même si je n’ai rien vu de suspect au scope,  j’ai mis une capacité (1uF) directement entre la pin 5 et la masse et la communication PIC->MB90 se passe sans soucis. Une capacité de petite valeur (entre 300pF et 1nF)  entre la pin 6 (reliée à SIN2) et la masse me résolvait aussi le problème, en assurant le filtrage/lissage directement sur la sortie (qui va sur SIN2), mais la capa empêchait la com entre le MB90 et la Winbond (SIN2 sert aussi à ça) car la vitesse de transmission est bien plus élevée qu’avec le PIC. Chose étonnante, c’est que ce pb n’est pas apparu tout de suite avec ma VCI mais un peu plus tard quand j’ai commencé à bricoler.

Vue des résistances des coupleurs sur le verso de la carte:


[Vous devez être inscrit et connecté pour voir cette image]

Au passage, un petit divertissement pour savoir lire la nomenclature des résistances : le 3ème chiffre est le coefficient multiplicateur x10 à appliquer aux deux premiers, càd le nombre de zéro à rajouter derrière les deux premiers chiffres. 222 => 2200 ohms (2.2k), 471 : 470ohms, 105=1Mohms. Simple :-)
Les capacités (les petits composants marrons avec un Cxx) sont là pour faire du filtrage sur les tensions d'alimentation. Leur valeur n'est pas critique.
Dans la version simplifiée, la plupart des optocoupleurs sont remplacés par des transistors MOSFET. Ca n’est pas un problème en soi (on perd l’isolation électrique) mais ces MOSFET être trop lents dans les transitions des signaux car mal utilisés (résistance montée en série sur la gate alors qu'elle doit aller entre la Gate et la Source, cherchez un post du tunglt sur Correction hardware du problème communication aléatoire ).
Une remarque au passage: l'étage optocoupleur est assez tolérant car il fonctionne encore quand la carte relais est alimentée en 3V (au lieu de 5V).


SOFT DANS LE MB90F546


Il y a deux programmes dans la flash MB90 : le firmware (en simplifiant, se charge de la communication avec la voiture) et le bootloader (gère la communication USB, donc c'est lui qui "dit" comment votre VCI est reconnue par Windows, càd en "evolution" ou pas).

Mise à jour du firmware:


Le firmware peut-être mis à jour par Diagbox si nécessaire (et si MAJ_COM=TRUE dans le fichier C:\AWRoot\bin\launcher\ap ini) ou bien par l'utilitaire PSA Interface Checker développé par scarymistake).

Mise à jour du bootloader:


Il existe plusieurs générations de bootloader, la dernière est la révision C qui passe le driver USB en "evolution"  Windows reconnait la sonde en "USB Com Board Evolution Driver (UMDF)" sur Win7, 8 ou 10 ou "USB Com Board Evolution (multi-instance)" sur Win XP. C'est la même chose. En revision B, elle apparait comme USB Com Board Driver (multi-instance ou UMDF). Sur l'USB, la VCI s'identifie avec un Vendor ID = 0x103 et un Product ID = 0xF008 (sur une evolution) ou 0xF000 (non evolution), c'est comme ça que Windows installe le bon driver.
Le fait d'être en révision B n'empêche pas d'utiliser les toutes dernières versions de Diagbox mais il y aura quelques limitations avec les voitures les plus récentes. Si vous avez des pbs de calculateurs inconnus dans les diags sur un véhicule récent, vous aurez intérêt à passer en "evolution" et mettre un firmware récent et utiliser un diagbox récent.
Le bootloader ne peut être mis à jour que par le programme de nlc ou par méthode « hard » en utilisant le connecteur J1 via une interface série. L'utilitaire de nlc a rendu la méthode hard un peu obsolète, sauf si la VCI est totalement plantée et n’est plus détectée par Windows. On pourrait aussi mettre à jour le bootloader par PSA Interface Checker mais il reste qu'il faut aussi écrire le numéro de série dans la Flash SPI (voir plus bas) sans quoi ça bloque la VCI une fois en « evolution » (attend une 30aine de seconde avant de monter l'USB et la sonde n'est pas fonctionnelle). Je ferai un autre post là-dessus  L’utilitaire de nlc fait à la fois l’upgrade du bootloader et la programmation du numéro de série dans la Winbond.

Numéro de série de la VCI:


Le numéro de série est un numéro en théorie unique mais les clones chinois utilisent le même (suivant le fabricant  du clone…). Donc ACTIA a implémenté un mécanisme dans le firmware pour blacklister les numéros de série utilisés par les clones connus. Si j'ai bien compris, diagbox empêche de lancer une session de diag si la VCI est blacklistée (message "Veuillez connecter une VCI" doit apparaitre ?). Ces numéros sont dans les firmwares et le blacklisting a été implémenté à partir de la version 4.2.8. Donc certaines personnes restent en 4.2.4. Rester sur un ancien firmware n'empêche pas d’utiliser les dernières versions de diagbox mais ça entraîne des limitations dans la communication avec les calculateurs. En ayant désassemblé une partie du code du firmware, je pense que la blacklist est aussi implémentée dans Diagbox car seuls les numéros 013150, 001663 et  006258 sont blacklistés (ça n’a pas changé d’un iota depuis la 4.2.8 jusqu’à la 4.3.4 actuelle et ce sont les seuls numéros testés), vous pouvez jeter un œil à l’offset 0x2008F du fichier appli.com. Pour ceux qui sont bloqués, il ne reste qu’à changer le numéro de série de la VCI, par ex grâce au programme de NLC ou en le reflashant. Autre solution : patcher le code du firmware pour qu’il retourne un autre numéro de série, très faisable mais à refaire à chaque nouveau firmware donc intérêt limité….
Vous pouvez lire votre numéro de série dans les fichiers XML  généré par diagbox à chaque session de diag (C:\oud\traces ou C:\AWroot\dtwr\trace). Pour générer un fichier log, il suffit de lancer une session de diag, même sans voiture.
Depuis la revision C du bootloader (passage en « evolution » du driver USB), le numéro de série de l’interface est stockée dans la mémoire Flash SPI Winbond (avant ça le numéro de série était stocké dans la flash du MB90 et il semble que cette mémoire ne contenait aucune donnée cruciale). Certains clones low-cost sont buggés et il leur manque une résistance de pull-up qui empêche le MB90 de lire correctement cette mémoire. Ils ne peuvent pas passer en « evolution / rev C» sans modif hardware pour rajouter cette résistance (voir plus haut dans ce post).

Flashage "hard" du MB90F546:


A part la méthode "nlc", l'autre méthode pour reflasher le bootloader dans le MB90 est d'utiliser le connecteur J1 2x6 points (en général il n’y a pas de connecteurs, juste les plots). Même si elle est un peu désuète maintenant qu'il y a le programme de nlc, si vous est nostalgique ou bien si vous avez brické votre VCI, la méthode est très simple : si le connecteur n’est pas installée, on soude quelques fils sur les plots de façon à forcer les broches P01, P02 et MD0 à 0V et MD1 et MD2 à 5V du MB90 (le RST peut rester en l'air) et on connecte TX/RX  à un PC. En branchant l'USB sur la sonde, le Fujitsu démarre directement en mode "flashage".

[Vous devez être inscrit et connecté pour voir cette image]

Il faut connecter TX et RX au PC via un convertisseur USB<->Série (un FT232 à quelques £uros fait très bien l’affaire, tous les forums vous parleront de passer par du RS232 et MAX232, c’est inutile et c’est bien plus compliqué à mettre en œuvre et plus cher !). Attention au sens du TX et du RX : le TX de la VCI va vers le PC, le RX de la VCI vient du PC. Sur un FT232, il faut configurer la tension (5V ou 3.3V), donc mettre 5V même si ça doit quand même marcher si elle est configurée en 3.3V,  et enfin on connecte les P0x et MDx aux 0 et 5V, soit directement, soit à travers une petite résistance genre 100ohms-1kohm si on est inquiet de nature. Dernière chose, on connecte les masses (0V – broche 7) de la VCI et du FT232 mais surtout pas les 5V (le FT232 est alimenté par son USB, la VCI est alimentée par son USB).

[Vous devez être inscrit et connecté pour voir cette image]

Mon montage est un peu plus compliqué car j’ai câblé tous les fils du connecteur et j’ai mis des résistances de 100ohms pour protéger et un bouton reset avec pull up au 5V pour faire joli (ça marche quand même si le RST reste en l’air) et une led pour confirmer que la VCI est bien alimentée. On peut donc faire plus simple, sans aucun composant.

A ce stade on peut brancher les USB de la VCI et du FT232. Maintenant on lance soit FlashKit 2.9, soit isp-mb9x  (c’est affaire de goût, les deux fonctionnent très bien et permettent de lire la FLASH ou de l'écrire, FlashKit utilise l’interface graphique ou la ligne de commande alors que isp-mb9x est en ligne de commande uniquement et a aussi besoin du programme Fujitsu Flash Programmer for FMC16LX, càd PCW16LXsetup.exe). Ca n'est pas très rapide (256Ko à 9600 bauds) mais ça marche.
Le principe est que le Fujitsu démarre en mode "bi-ROM" (burn-in ROM) dès qu'il reconnait les valeurs sur MD0=0/MD1=1/MD2=1/PA0=0/PA1=0. Dans ce mode, il exécute un programme spécial qu'il charge en RAM et attend alors des commandes du PC (port SIN1/SOT1). Les commandes permettent de lire la flash, l'écrire, etc . Quand il est mode "bi-ROM", il n'exécute pas l'appli Actia et donc la LED verte ne s'allume pas, pas d'inquiétude !
Une fois fini, pour que la VCI reboote "normalement", on débranche l’USB, on débranche MD0/MD1/MD2/PA01/PA0/TX/RX sinon il redémarrera en mode flashage, et on rebranche l'USB. Une chose utile à savoir est qu'une fois qu'on a exécute Flashkit ou isp-mb9x, il faut faire un reset du Fujitsu (ou bien débrancher/rebrancher l'USB de la VCI) si on veut lancer à nouveau ces programmes sinon le MB90 ne se remettra pas en mode « bi-ROM ».

Pour info, le mapping de la mémoire FLASH interne du Fujitsu (256Ko de FC0000 à FFFFFF):
FC0000-FF4BF5 : image du firmware (le fichier appli com, chargé par Diagbox ou par PSA Interface Checker), le point d'entrée de l'application est FE1000 (lancé par le bootloader après son init). Le nom/version du firmware est stocké en FE0002-FE0034. Le programme du PIC est stocké dà mettre dans la flash du PIC est en FC00030-FC0102F (le 1er mot de 16 bits contient le nb d'octets à écrire dans le PIC).

FF4BF6-FFBFFF : inutilisé à partir de bootloader rev C (rempli de 0xFF)  A noter que sur les anciens bootloader (avant Rev C/evolution), le numero de série était stocké ici, en FFA000-FFA052, et pas dans la Winbond

FFC000-FFFFF : image du bootloader (16ko)  C'est cette partie qu'il faut flasher pour passer la VCI en "evolution"
Mémoire SPI (Winbond ou Spansion) :
Depuis la revision C du bootloader, elle contient le numéro de série de la VCI certainement pour le rendre plus difficilement accessible et modifiable.
Si on flash le bootloader evolution par la méthode hard, la VCI ne démarrera pas s'il ne trouve pas l’identifiant de la VCI dans la mémoire SPI (plus précisément le bootloader lit la zone 0006-000F, càd « /963830 C/ », le numéro de série n’est lu que quand on lance un diagnostic sous diagbox). Donc la partie importante pour démarrer le bootloader se trouve dans les 32ers octets et ça c’est qu’il faut mettre à jour.
Exemple de contenu de la SPI Winbond :
00000 41 43 54 49 41 2F 39 36 33 38 33 30 20 20 43 2F     ACTIA/963830  C/
00010 34 32 2D 30 37 2F 30 31 32 33 34 35 D8 FF FF FF       42-07/012345    
00020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF                      
00030 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF                      
00040 12 01 00 01 FF FF FF 08 3A 10 08 F0 00 01 00 00        
00050 00 01 09 02 20 00 01 01 00 00 5A 09 04 00 00 02      
00060 FF FF 00 00 07 05 85 02 40 00 FF 07 05 06 02 40      
00070 00 FF 00 FF FF FF FF FF FF FF FF FF FF FF FF FF                    
00080 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF                      
..
10000 FF FF FF FF FF FF FF FF FF FF FF 00 00 FC 00 F5
10010 4B FF 00 C2 23 00 FF FF FF FF FF FF FF FF FF FF          
10020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF                      
le reste est à 0xff

Le numéro de série est le 012345 dans cet exemple. On peut mettre ce qu'on plus ou moins ce qu’on veut. Il y a un CRC sur la chaine de caractères ACTIA/963830 C/42-07/012345 ; il est  ajouté à la fin de la chaine et vaut 0xD8 dans cet exemple (somme sur 8 bits des valeurs ASCII des caractères de la chaîne).
Seuls ces 29 octets sont importants. Le reste doit être mis à 0xFF, notamment la zone en 0x1000x, qui est la valeur quand la flash est effacée (il faut faire un Chip Erase). Le bootloader reinitialise les autres valeurs s'ils trouvent des 0xFF. S'il trouve des valeurs qu'il n'aime, le bootloader se bloque (j'en sais quelque chose, j'ai expérimenté) : la VCI ne monte pas sur l'USB et Windows ne la voit pas et la LED reste allumé sans avoir clignoté. Curieusement, il y a une tempo et au bout d'environ 30 sec, il la monte mais elle est en erreur. C'est le comportement avec le bootloader evolution. Donc elle n'est pas totalement brickée et on peut toujours refaire la programmation par la méthode nlc.

Schema de la Flash SPI (Winbond 8Mb ou Spansion 4Mb)

[Vous devez être inscrit et connecté pour voir cette image]

La Winbond communique en série avec le MB90 par le Serial I/O 2 (SIN2/SOT2/SCLK2) du MB90 via le HA86 : Data Output (DO) -> SIN2, DataInput (DI) <-SOT2, Clock (CLK) <- SCLK2 et CS <- P92
Ce port sert aussi à communiquer avec le PIC d’où l’utilité d'avoir un signal chip select pour chacun. Cette interface est configurée en 1MHz quand le MB90 communique avec la Winbond.
La Winbond fonctionne en 3.3V (régulateur juste à droite) et ne supporte pas qu’on lui applique du 5V donc le HA86-U1 sert à faire la conversion 5V->3.3V des signaux venant du Fujitsu (SCK2, SOT2 et CS). Le HA86-U14 sert à faire la conversion 3.3V->5V pour l’autre sens (Data Ouput->SIN2). On utilise le U15-HCT125 de façon à ce que le DO fonctionne en « open-drain » avec une résistance de pull-up de façon à pouvoir mettre plusieurs périphériques sur la liaison SPI (ici, deux).
Pour intercepter DI, DO, CLK et CS et programmer la Flash, on peut soit utiliser une pince SOIC8, soit souder directement des fils sur les pattes de la Winbond/Spansion (DI, DO, CLK, CS, 3V et 0V) avec un fer à souder équipé d’une panne fine. Je déconseille d’essayer de la souder, à moins d’être équipé pour. Ensuite on relie à un programmateur de mémoire flash à 10€ à brancher sur PC genre CH341A. Personnellement j’utilise un bricolage maison à partir d’une carte STM32 mais c’est un autre sujet.
Pour programmer, il faut travailler avec la VCI éteinte (VCI débranchée de l'USB) et mettre le 3.3V depuis le programmateur car si le Fujitsu est alimenté, il force le signal CLK à zéro, même quand il est en état RESET (les autres signaux sont relâchés dans l’état reset).



PROBLEMES HARDWARE FREQUENTS


Les clones chinois sont de qualité très variable et ils leur manquent des composants (même sur une full chip). Beaucoup de pbs hardware sont liés à la partie optocoupleurs ou à des soudures mal faites.

En cas de pb avec la VCI, les points à vérifier :
- La qualité des soudures
- Que les soudures font contact (a position des composants est plus ou moins aléatoire sur certaines cartes)
- Le 12V arrive-t-il sur la carte relais : on doit trouver du 5V sur la broche 3 du connecteur entre les deux cartes (sinon Diagbox affichera un message « Veuillez connecter une VCI »)
- Que le PIC est bien commandé par la carte micro : on doit avoir du 5V sur la broche 2 du connecteur quand on branche la VCI à l’ODB puis ça doit passer à 0 (allumage du PIC) quand on fait un diagnostic. La broche 11 doit avoir du 12V (elle passe à 0 uniquement quand le MB90 flashe la mémoire du PIC)
- Que le PIC est bien alimenté pendant un diagnostic (5V sur VCC pin 1 du PIC, 12V sur VDD pin 4)
- Les relais sont-ils bien commandés par le PIC ? On doit les entendre au lancement d’un diag sur Diagbox
- Les optocoupleurs fonctionnent-ils ? Le mieux est d’avoir un oscilloscope pour vérifier que les signaux traversent mais on peut aussi vérifier avec un voltmètre les valeurs statiques. Les valeurs des résistances peuvent être trop élevées pour qu’il y ait assez de courant qui traversent les LED (voir la partie sur les optocoupleurs)  et on peut essayer de diminuer celles de 1k/1.2k. L’autre solution est de mettre les mêmes coupleurs que sur la sonde originale, à savoir des HCPL 063N et 0500.
- Si c’est une version simplifiée avec moins d’optocoupleurs, vérifier que les MOSFET qui remplacent les optocoupleurs véhiculent bien les signaux (càd. qu'ils sont bien soudés, avec des résistances adaptéess, et ne déforment pas les signaux :  oscilloscope de rigueur, voir un post de tunglt sur « Correction hardware du problème communication aléatoire »)
- Absence de la résistance de pull-up sur le bus CAN (10kohm sur la pin TX94 du MB90) : provoque des pbs de communication sur le bus CAN (voir la photo du dos de la carte micro)
- Absence de la résistance de pull-up sur Data Output de la mémoire Flash SPI : le MB90 ne peut pas lire correctement la mémoire flash SPI Winbond/Spansion. La VCI ne fonctionne plus après upgrade en Rev C/evolution ou bien échec d’upgrade avec le programme de nlc ; il faut vérifier la présence de R49 (voir la photo du dos de la carte micro ou mesurer la valeur à l’ohmètre entre pin DO et 3V3 sur la Winbond qui doit valoir environ 10kohm)
- La LED verte reste fixe quand on branche la sonde et Windows met une 30aine de seconde avant de la reconnaître (PSA Interface Checker indique un Reference Serial=????) : ça indique que le contenu de la memoire Winbond est corrompu, il faut la réinitialiser (méthode nlc ou flashage directe). Attention : si vous bricolez sur le bus série et que vous parasitez les signaux SIN2, SOT2 ou CLK2 du MB90  et que le MB90 n'arrive pas à lire correctement la Winbond, il risque de la corrompre en tentant de la réécrire. Expérience vécue. Il ne faut pas oublier que la communication à la Winbond se fait à environ 1MHz.
- Si on lancement d'un diagnostic, Diagbox demande de connecter une VCI en affichant un dessin de voiture alors cela veut dire que le MB90 n'a pas detecté le 12V ODB ou bien n’arrive pas à communiquer avec le PIC. S'il affiche uniquement un message texte sans aucun dessin alors il y a un problème avec le MB90, ce qui est a priori plus grave (par ex contenu de la Winbond corrompu, il faut vérifier si PSA Interface Checker arrive encore à lire le Reference Serial).


Dernière édition par benji le Lun 12 Sep - 19:15, édité 1 fois
Revenir en haut Aller en bas
titoun
Pilier du Forum
Pilier du Forum


Messages : 175
Date d'inscription : 16/05/2014
Age : 43
Localisation : Au milieu des montagnes ...

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Lun 12 Sep - 7:54

Bonjour,

Beau travail et beau résumé de tout ce qui peut être fait sur XS EVO !

Les vieux briscard comme moi n'ont plus qu'à aller pointer au chômage .....  Laughing 

Cdlt.

_________________
Passionné de mécanique, d'électronique et d'info.
Revenir en haut Aller en bas
Alliottom59
Fondateur et Admin
Fondateur et Admin


Messages : 14183
Date d'inscription : 08/12/2012
Age : 34
Localisation : Maubeuge sous le parapluie mais les fesses au chaud

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Lun 12 Sep - 8:34

Bonjour,

beau travail et en plus avec les félicitations de Titoun


_________________
Tous comptes ne respectant pas les règles de présentation seront remis a "0".
La carte des membres est disponible ci-dessous.

[Vous devez être inscrit et connecté pour voir ce lien]

[Vous devez être inscrit et connecté pour voir cette image] Le monde du diagnostic auto  [Vous devez être inscrit et connecté pour voir cette image]

Je ne réponds pas aux demandes d'aide ou code en MP.  [Vous devez être inscrit et connecté pour voir cette image]

Vous approuvez une réponse dans un sujet ?
Alors faite le savoir en cliquant sur la main verte.


Des fois, je me demande pourquoi, avoir passé des centaines heures à fonder ce forum, à le référencer.....
A passer du temps à aider au mieux ces membres pour le peu de reconnaissance. 
Car certaines personnes juge sans connaître les difficultés à gérer au mieux ce lieu de partage.
J'invite ces personnes à créer et à manager un forum... avant de critiquer.
Revenir en haut Aller en bas
http://www.lemondedudiagauto.com
benji
Petit Nouveau
Petit Nouveau


Messages : 14
Date d'inscription : 04/05/2016

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Lun 12 Sep - 9:16

Merci mais je ne pense pas que les vieux briscards puissent pointer au chômage. Plein de gens auront encore besoin de leur aide Very Happy
Revenir en haut Aller en bas
Invité
Invité



MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Lun 12 Sep - 10:33

Bonjour benji
Super boulot
Un ++ avec encouragements
Super
Lol Jp59
Revenir en haut Aller en bas
titoun
Pilier du Forum
Pilier du Forum


Messages : 175
Date d'inscription : 16/05/2014
Age : 43
Localisation : Au milieu des montagnes ...

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Lun 12 Sep - 12:33

Petit conseil,

Protèges ton travail comme tu le souhaites ( pseudo sur schémas, fais en un pdf avec pass...etc ) avant que quelqu'un se l'approprie... et poste le sur les autres forums!

Cdlt.

_________________
Passionné de mécanique, d'électronique et d'info.
Revenir en haut Aller en bas
benji
Petit Nouveau
Petit Nouveau


Messages : 14
Date d'inscription : 04/05/2016

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Lun 12 Sep - 19:27

Tu as raison mais d'un autre côté je n'ai pas envie de verrouiller trop les infos. Quand je vois que le travail de nlc a été pompé et est revendu sur le net, je suis un peu dégouté pour lui. Je me fais pas trop d'illusions et je sais qu'il y a de bonnes chances que certains utilisent ces infos pour un usage commercial. Mais d'un autre côté, il faut touché un peu sa bille. Je me suis développé quelques firmwares tunés pour diagnostiquer les pbs et des émulateurs et ça je ne sais pas si et comment je vais les partager.

Et puis si je n'avais pas trouvé librement plein d'infos sur les forums, je n'aurais pas été bien loin.

Pour les autres forums, j'hésite un peu car pour la plupart il faut montrer patte blanche ou payer. Ils sont pas aussi sympas que lmdda cheers
Revenir en haut Aller en bas
bibi38
Pro
Pro


Messages : 503
Date d'inscription : 19/08/2014
Age : 64
Localisation : Nord Isère

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Lun 12 Sep - 21:07

Bonsoir benji
Super boulot et merci pour le partage
Je vient de lire tu post et comprendre un peut mieux le fonctionnement des SX et comme dit titoun protège ton travail

_________________
Tout problème a une solution il suffit de la trouver
Revenir en haut Aller en bas
sanglier63
Novice
Novice


Messages : 27
Date d'inscription : 25/05/2015

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Mar 13 Sep - 4:35

Bonjour à tous,
Un grand bravo Benji, et comme on dit je me coucherai moins "C-N"!!!
Merci bien pour ces supers explications sur nos clones.
Longue vie au forum.
Sanglier63.
Revenir en haut Aller en bas
fredd53
Petit Nouveau
Petit Nouveau


Messages : 10
Date d'inscription : 25/05/2016

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Mar 13 Sep - 11:32

Chapeau bas pour ce résumé très complet,
+1 pour au moins taguer tes photos car même si sa venais a être pomper au moins le mérite te reviendra.
Revenir en haut Aller en bas
autodiagauto
Novice
Novice


Messages : 27
Date d'inscription : 21/03/2013
Age : 69
Localisation : G.K

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Mar 13 Sep - 12:31

Salut
je n’aie aucun problème avec ma vci
mais je garde jalousement ce document
très important
merci benji

_________________
Ceux qui comprennent ne comprennent
   pas qu'on ne comprenne pas
[Vous devez être inscrit et connecté pour voir cette image] Avec un sourire, on peut tout obtenir [Vous devez être inscrit et connecté pour voir cette image]
Revenir en haut Aller en bas
chris16
Connaisseur
Connaisseur


Messages : 268
Date d'inscription : 28/11/2013

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Mar 13 Sep - 12:34

Chose assez rigolote: le PIC reste en transmission tant que le signal CS n'est pas relâché. Si on continue à appliquer une clock après avoir reçu tous les octets de la réponse, le PIC continue gentiment à transmettre les octets qui suivent dans sa mémoire. On peut faire un dump des 128 octets de la SRAM :-)

Et vous trouvez ça drôle!!!lol!
.
Je ne comprends absolument rien à ce que tu racontes... néanmoins je salue bien bas ton travail, je n'ai plus l'envie d'apprendre ça dans mon coin mais je t’envie.

Revenir en haut Aller en bas
fred9545
Modérateur
Modérateur


Messages : 10095
Date d'inscription : 11/12/2012
Age : 55
Localisation : mon cul sur le fauteuil devant l'écran (95)

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Mar 13 Sep - 13:20

bonjour

beau travail

_________________
saleté de souris a bas prix en réclame , périmée fournie par picsou [Vous devez être inscrit et connecté pour voir cette image]

aucune aide ni aucun mot de passe ne sera donné par mail
Revenir en haut Aller en bas
http://www.solutions-mecanique.fr/index.php
phm59
Pilier du Forum
Pilier du Forum


Messages : 788
Date d'inscription : 19/12/2012
Localisation : proche de béthune

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Lun 19 Sep - 10:08

salut,beau travail
Revenir en haut Aller en bas
http://www.kwp2000.net
speedunlcok
Petit Nouveau
Petit Nouveau


Messages : 24
Date d'inscription : 31/07/2016

MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Lun 19 Sep - 12:28

super travail mon ami

Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Explications sur le fonctionnement d'une VCI   Aujourd'hui à 20:20

Revenir en haut Aller en bas
 

Explications sur le fonctionnement d'une VCI

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
LE MONDE DU DIAGNOSTIC AUTO  :: Peugeot, Citroën :: Peugeot & Citroën :: Interface Lexia 3, pp2000, Diagbox-