IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

[ATmega] Problème avec 2 esclaves sur I2C


Sujet :

Embarqué

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut [ATmega] Problème avec 2 esclaves sur I2C
    Bonjour,

    Je viens vers vous pour vous faire part de mon souci sur lequel je coince depuis un moment, un regard extérieur ne serait pas de trop.
    Je vais essayer d'être aussi clair et exhaustif que possible.

    Objectif : faire communiquer un maître avec ses 2 esclaves par I2C.

    Côté matériel:
    - Une carte maître basée sur un module ARM
    - Une carte esclave basée sur un ATmega328p cadencé à 20Mhz (adresse 0x20)
    - Une carte esclave basée sur un ATmega644 cadencé à 20Mhz (adresse 0x30)
    Chaque esclave possède une led qui reste allumée fixe quand il attend sa donnée et qui clignote 4 fois quand il l'a reçue (voir plus bas).

    Côté logiciel:
    - Le module de la carte maître gère l'I2C en interne, c'est transparent, il n'y a rien à faire de particulier.
    Il envoie une fois 0x05 à l'adresse 0x20 et une fois 0x05 à l'adresse 0x30. Pour les curieux voici le code associé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    	I2cStart(2);						// start
    	I2cOut(2, 0x20);					// envoi adresse carte 1
    	if  (!I2cAck(2,0xff)) DebugPrint("Erreur carte D\n");	// ACK reçu ?	
    	I2cOut(2, 0x05);					// envoi donnee
    	if  (!I2cAck(2,0xff)) DebugPrint("Erreur carte D\n");	// ACK reçu ?
    	I2cStop(2);						// stop
    	
    	I2cStart(3);
    	I2cOut(3, 0x30);		
    	if  (!I2cAck(3,0xff)) DebugPrint("Erreur carte P\n");		
    	I2cOut(3, 0x05);
    	if  (!I2cAck(3,0xff)) DebugPrint("Erreur carte P\n");
    	I2cStop(3);
    
    while(1){}

    - Les 2 esclaves utilisent le code suivant, inspiré de ce lien, pour gérer l'I2C:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     TWAR = adresse;
     while (data_reg != 0x05 )		// attendre DONNEE 0x05
    	{
    		Led(Rouge,1,0);			// led allumée (attente)
    		TwiMatchReadSlave(); 
    		TwiReadSlave();
    	}
    Led(Rouge,4,100);				// led clignotte 4 fois (OK)
    
    //---------------------------------------------------------------------------
    // 				FONCTION VERIFICATION CORRESPONDANCE EN LECTURE				-
    //---------------------------------------------------------------------------
    void TwiMatchReadSlave(void)
    {
        while((TWSR & 0xF8)!= 0x60)				// Loop till correct acknoledgement have been received
        {
            TWCR=(1<<TWEA)|(1<<TWEN)|(1<<TWINT);	// Get acknowlegement, Enable TWI, Clear TWI interrupt flag    
            while (!(TWCR & (1<<TWINT)));			// Wait for TWINT flag 
        }
    	
    }
    
    
    //---------------------------------------------------------------------------
    // 				FONCTION LECTURE REGISTRE I2C								-
    //---------------------------------------------------------------------------
    void TwiReadSlave(void) 
    {
        TWCR= (1<<TWINT)|(1<<TWEA)|(1<<TWEN);	// Clear TWI interrupt flag,Get acknowledgement, Enable TWI   
        while (!(TWCR & (1<<TWINT))); 			// Wait for TWINT flag
        while((TWSR & 0xF8)!=0x80);			// Wait for acknowledgement
        data_reg=TWDR;							// Get value from TWDR
    }


    Le problème relevé:

    Le maître communique bien avec le premier esclave mais pas avec le second.

    Mes observations:
    Le maître communique bien avec chaque esclave séparément.
    Quand les 2 esclaves sont sur le bus I2C, le 1er esclave reçoit la donnée mais pas le second.
    Par contre si je déconnecte le 1er esclave avant ou après envoi de la 1ere trame alors le maître ne bloque pas et le second esclave reçois bien sa donnée.

    Après observation à l'oscilloscope: La ligne SDA (BLEU) comporte bien les données des 2 esclaves mais l'amplitude de SCL (JAUNE) passe de 5V pour la première trame à 1V pour le stop de la première et toute la seconde.

    Nom : i2c_scl_low2.png
Affichages : 583
Taille : 40,7 Ko
    En blanc le start, adresse, ack, donnee, ack de la trame 1. En rouge on a le stop de la trame 1 et la trame 2, la donnée est bien envoyée mais l'amplitude de l'horloge est réduite.
    Ci dessous, un zoom montrant la différence d'échelle sur SCL.
    Nom : i2c_scl_low_zoom.png
Affichages : 578
Taille : 38,1 Ko

    Je soupçonne donc une erreur côté esclave. Ligne SCL bloquée par l'un des esclave ? Conflit entre les 2 esclaves ?
    Quelqu'un à une idée ?

    Merci!

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 273
    Points : 4 842
    Points
    4 842
    Par défaut
    Bonjour

    Pour moi, il y a point étrange, au repos la SCL devrait être à 1 alors que dans tes oscillos, c'est plutôt l'inverse. (Je ne vois pas des traces i2C typiques)
    Ensuite pour avoir des tensions intermédaires comme tu as, c'est que les puces ne travaillent pas en collecteur ouvert comme cela devrait être le cas, et que à certains moments une puce tente de mettre la ligne à 5V en même temps qu'une autre le force à 0 (et chose assez classqiue c'est le 0 qui gagne.)

    Pour l'instant je n'ai pas le temps d'aller dans les datascheets des puces, pour controller tes codes. Il faudrait aussi voir les code d'initialisation du TWI et des pins utilisés par l'I2C.

    Delias

  3. #3
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 208
    Points : 11 688
    Points
    11 688
    Par défaut
    Salut,
    Tu as une tension d'offset assez bizarre juste avant le ACK (en bleu) tu as quasiment 1.5V sur la ligne.

    +1 Delias
    Je dirais également qu'un des composants ne travaille pas en collecteur ouvert.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut
    Premièrement merci de vous pencher sur mon cas

    Oui c'est vrai, au repos SCL devrait être à 1 au lieu de 0. Je me suis fait la même réflexion mais je me suis dit que c'était une particularité du module que j'utilise en tant que maître.

    J'ai fait un second relevé à l'oscillo sans les cartes esclave sur le bus I2C. Cette fois-ci l'horloge se comporte normalement (soit 0V soit 5V mais pas entre les deux).
    Ça prouve que c'est au niveau des esclaves que ça coince.

    Par contre oui cet offset présent sur SDA et SCL, même sans esclave connecté, c'est bizarre. D'autant que la carte qui accueille le module est assez sobre je vois pas trop ce qui pourrait générer ça côté hardware.

    Edit: je viens de sortir la carte de son rack pour la contrôler, je sais pas ce que j'ai fait mais ce décalage par rapport au 0V à disparu.

  5. #5
    Membre actif
    Homme Profil pro
    Technicien Layout
    Inscrit en
    Août 2015
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Layout

    Informations forums :
    Inscription : Août 2015
    Messages : 275
    Points : 292
    Points
    292
    Par défaut
    Bonsoir,

    es tu sur que ta référence (gnd) et la mm entre ton module et ton oscilloscope/analyseur logique?

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 273
    Points : 4 842
    Points
    4 842
    Par défaut
    Bonsoir à tous

    0.2 à 0.6V de tension pour un 0 dans la configuration I2C c'est presque normal (tension de saturation des transistors).
    Est-ce que tu as des branchements fiables de la masse et des deux lignes de bus entres les trois circuits? Est-ce que tu n'as bien qu'une seule fois les résistances de pull-up du bus (soit intégrées et activées dans un circuit, soit externe) si il y en a plusieurs, cela peut-être trop.

    Un point à tester, et c'est une configuration de test. (La présence de ces résistances de test peut empêcher un bon fonctionnement du bus en conditions difficiles: longue ligne ou bruit électrique important)
    Mettre des résistances de pull-up séparées (et désactiver les éventuelles pull-up intégrées dans l'une des puces)
    Prendre 6 résistances d'une valeur significativement inférieur aux pull-up (1/10ème ou 1/20ème de la valeur des pull-up)
    Brancher ces résistances en série sur les ligne SDA et SCL de chaque circuit.
    Puis mesurer les 4 tensions présente sur un bus: Le bus en lui-même et les trois tensions côté circuit des résistances de test.
    Quand une puce tire la ligne à 0, sa tension doit être de 0.2 à 0.6V, celle du bus et des autres modules 0.4 à 0.5 volt en dessus (avec des résistances 1/10ème)
    Si à ce moment là un des circuits reste à quasi 5V, c'est lui qui ne travail pas correctement.

    Maintenant, je n'ai encore jamais utilisé le module TWI d'un AVR, uniquement le SPI configuré en I2C (car je n'ai vraiment utilisé que des AT90S ou des ATTiny jusqu'à maintenant). Mais en lisant la doc, ce qui me parait bizarre c'est que l'activation du TWEN doit empêcher un ATMega de tiré à 1 les lignes SDA/SCL. Donc il doit éviter le problème perçu en première analyse.

    Pour le Code des AVR, juste avec la lecture du datasheet: (Donc sans garantie aucune)
    Est-ce qu'il y a bien un TWCR = (1<<TWEN)|(1<<TWEA) dans l'initialisation du programme donc avant la partie de code que tu nous montres? C'est surtout le TWEN qui est important.
    Ensuite les lignes 17 et 29 si elles doivent vraiment faire ce que le commentaire indique il vaudrait mieux écrire TWCR &= ~(1<<TWI), parce que pour l'instant cela écrit à 1 le TWINT qui d'après la doc est mis à 1 par le matériel et donc le faire par soft peut entrainer des surprises.

    Est-ce que dans le code il y a quelque part une affection aux DDRxn des deux pins du TWI? (DDRC bit4 et DDRC bit5 pour l'ATMega328, je n'ai pas été chercher pour l'autre ATMega) car ils devraient rester à 0 et ne pas être adressé dans le programme.

    Il n'y a pas d'écriture de TWCR sans le TWEN à 1 quelque part dans le code non montré?

    Mais bon toutes ces pistes du code me semble foireuses, car c'est: il est mieux de faire comme cela, mais cela devrait aussi fonctionner si on ne le fait pas, sauf la dernière mais elle est peu probable.

    Delias.

  7. #7
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 208
    Points : 11 688
    Points
    11 688
    Par défaut
    Salut,
    Qu'on s'entende bien sur ce que j'ai écrit plus haut (le dessin ci dessous résume tout) sans compter que l'effondrement du SCL n'est absolument pas normal non plus

    Nom : im21.png
Affichages : 494
Taille : 26,8 Ko

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut
    Histoire de poursuivre sur de bonnes bases j'ai choisi de retirer la carte maître de l'équation. Je l'ai remplacée par une carte d'évaluation (MCP2221) que j'ai retrouvé au fond d'un tiroir et qui permet de générer des signaux I2C grâce à un PC.

    Les signaux fournis sont propres et conforme à ce qu'on peut attendre.

    J'envoie donc toujours la valeur 0x05 à l'adresse 0x20 puis 0x05 à l'adresse 0x30.
    Sans esclaves sur le bus voilà ce que ça donne:
    Nom : I2C_sans_esclaves.png
Affichages : 516
Taille : 36,6 Ko

    Le même problème apparaît dès que les esclaves sont présent sur le bus.
    Avec les deux esclaves sur le bus voilà ce que ça donne:
    Nom : I2C_esclave1_zoom.png
Affichages : 516
Taille : 40,9 Ko

    Avec juste le 2éme esclaves sur le bus voilà ce que ça donne:
    Nom : I2C_esclave2_zoom.png
Affichages : 494
Taille : 41,1 Ko
    Nom : I2C_esclave2.png
Affichages : 499
Taille : 37,4 Ko

    C'est clair que l'esclave qui reçoit la donnée maintient le bus à 0 après réception.

    Je vous post le programme des esclave dès que possible.

    EDIT: Voici le programme des esclaves:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
     
    //###########################################################################
    // 							I2C ESCLAVE								#
    //###########################################################################
    
    
    //---------------------------------------------------------------------------
    // 						LIBRAIRIES											-
    //---------------------------------------------------------------------------
    #include <avr/io.h>
    #include <util/delay.h>
    #include <compat/deprecated.h> 	// pour les fonctions sbi et cbi
    
    //---------------------------------------------------------------------------
    // 						DEFINITION DES CONSTANTES 							-
    //---------------------------------------------------------------------------
    
    #define F_CPU 20000000UL
    
    // LEDS DEBUG : Ld1 = rouge | Ld2 = vert
    #define	LedR_DDR			DDRB	
    #define	LedR_portS			PORTB		
    #define	LedR_broche			PB0
    
    #define	LedV_DDR			DDRD		
    #define	LedV_portS			PORTD		
    #define	LedV_broche			PD7
    
    
    // EQUIVALENCES DIVERSES
    #define	Rouge				0
    #define	Verte				1
    
    //---------------------------------------------------------------------------
    // 				DEFINITION DES VARIABLES GLOBALES 					-
    //---------------------------------------------------------------------------
    unsigned char 	data_reg;	// contient la valeur du buffer i2c (registre TWDR)
    
    
    //---------------------------------------------------------------------------
    // 				PROTOTYPES DE FONCTIONS 							-
    //--------------------------------------------------------------------------- 
    void Ports_Init(void);
    void Init(void);
    void Led(unsigned char couleur, unsigned char nbcli, unsigned short duree); //couleur, nombre clignottement, durée en ms. Led(1,0) -> reste allumee; Led(0,0) -> reste éteinte 
    void TwiReadSlave(void);				// Réception de données en tant...
    void TwiMatchReadSlave(void); 			// ...qu'esclave
    
    
    //###########################################################################
    // 																			#
    // 						DEPART PROGRAMME							#
    // 																			#
    //###########################################################################
    
    int main (void) 
    {
    	Ports_Init();								// initialisations E/S
    	Init();										// initialisation avant démarrage	
    	Led(Verte,4,100);
    	
    	
    	while (data_reg != 0x05 )		// attendre donnee
    	{
    		Led(Rouge,1,0);
    		TwiMatchReadSlave(); 
    		TwiReadSlave();
    	}
    
    	Led(Rouge,4,100);
    
    	
    	while (1){}
    
    	return 1;
    }
    
    
    
    //---------------------------------------------------------------------------
    // 				INITIALISATION DES E/S 								-
    //--------------------------------------------------------------------------- 
    void Ports_Init() 
    {						
    	DDRB = 0;			// tout en entrée
    	DDRC = 0;
    	DDRD = 0;
    	
    	// Configuration des broches en sorties
    	sbi(LedR_DDR,  LedR_broche);
    	sbi(LedV_DDR,  LedV_broche);
    }
    
    
    
    //---------------------------------------------------------------------------
    // 				INITIALISATION AVANT DEMARRAGE 						-
    //--------------------------------------------------------------------------- 
    void Init() 
    {
    	cbi(LedR_portS, LedR_broche);		// Leds à 0
    	cbi(LedV_portS, LedV_broche);		
    	
    	//---------- Initialisation TWI (I2C) en esclave ------
    	TWAR=0x20;	// adresse de cette carte esclave
    }
    
    
    //---------------------------------------------------------------------------
    // 		FONCTION VERIFICATION CORRESPONDANCE EN LECTURE				-
    //---------------------------------------------------------------------------
    void TwiMatchReadSlave(void)
    {
        while((TWSR & 0xF8)!= 0x60)				// Loop till correct acknoledgement have been received
        {
            TWCR=(1<<TWEA)|(1<<TWEN)|(1<<TWINT);	// Get acknowlegement, Enable TWI, Clear TWI interrupt flag    
            while (!(TWCR & (1<<TWINT)));			// Wait for TWINT flag 
        }
    	
    }
    
    
    //---------------------------------------------------------------------------
    // 				FONCTION LECTURE REGISTRE I2C						-
    //---------------------------------------------------------------------------
    void TwiReadSlave(void) 
    {
        TWCR= (1<<TWINT)|(1<<TWEA)|(1<<TWEN);	// Clear TWI interrupt flag,Get acknowledgement, Enable TWI   
        while (!(TWCR & (1<<TWINT))); 			// Wait for TWINT flag
        while((TWSR & 0xF8)!=0x80);			// Wait for acknowledgement
        data_reg=TWDR;							// Get value from TWDR
    }
    
    
    //---------------------------------------------------------------------------
    // 					FONCTION LED DEBUG 								-
    //---------------------------------------------------------------------------
    void Led(unsigned char couleur, unsigned char nbcli, unsigned short duree)
    {
    	switch (couleur)
    		{
    			case 0 :
    				if (nbcli == 1 && duree == 0) {sbi(LedR_portS, LedR_broche);}
    					else if (nbcli == 0 && duree == 0) {cbi(LedR_portS, LedR_broche);}
    						else
    						{
    							while (nbcli > 0)
    							{
    								sbi(LedR_portS, LedR_broche);
    								_delay_ms(duree);
    								cbi(LedR_portS, LedR_broche);
    								_delay_ms(duree);
    								nbcli = nbcli -1;
    							}
    						}
    						break;
    			
    			case 1 :
    				if (nbcli == 1 && duree == 0) {sbi(LedV_portS, LedV_broche);}
    					else if (nbcli == 0 && duree == 0) {cbi(LedV_portS, LedV_broche);}
    						else
    						{
    							while (nbcli > 0)
    							{
    								sbi(LedV_portS, LedV_broche);
    								_delay_ms(duree);
    								cbi(LedV_portS, LedV_broche);
    								_delay_ms(duree);
    								nbcli = nbcli -1;
    							}
    						}
    						break;
    			
    			default :
    				break;
    		}
    		
    }

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 125
    Points : 45
    Points
    45
    Par défaut
    J'ai fini par trouver en tâtonnant.
    Il suffisait de repositionner correctement TWEA et TWEN à la fin de chaque lecture.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TWCR &= ~( (1<<TWEA) | (1<<TWEN) );
    J'en ai fait une fonction plus propre qui retourne la valeur du registre I2C:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    //---------------------------------------------------------------------------
    // 					FONCTION LECTURE I2C EN MODE ESCLAVE					-
    //---------------------------------------------------------------------------
    unsigned char TwiSlaveRead(void)
    {
    	unsigned char data_twi;
    	
    	// --------- matching de l'adresse ---------
    	while((TWSR & 0xF8)!= 0x60)			
        {
            TWCR=(1<<TWEA)|(1<<TWEN)|(1<<TWINT);	  
            while (!(TWCR & (1<<TWINT)));			
        }
    	
    	// --------- reception de la donnée ---------
    	TWCR= (1<<TWINT)|(1<<TWEA)|(1<<TWEN); 
        while (!(TWCR & (1<<TWINT))); 			
        while((TWSR & 0xF8)!=0x80);			
        data_twi=TWDR;							
    	
    	// --------- reset ---------
    	TWCR &= ~( (1<<TWEA) | (1<<TWEN) ); 
    	
    	return data_twi;
    }
    Pour être franc je comprend ce qui ce passe là dedans que superficiellement. Du coup maintenant que j'ai l'esprit libéré de ce problème je vais pouvoir creuser sereinement le datasheet.

  10. #10
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 208
    Points : 11 688
    Points
    11 688
    Par défaut
    Je regarderai un peu plus en détail demain mais je suis un peu perplexe car j'ai l'impression que le problème a été simplement masqué par la desactivation de ACK ?

Discussions similaires

  1. [CSS] probléme avec a:hover sur IE (mais bon sous FF)
    Par lafouin dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 12/02/2009, 15h55
  2. Problème avec les indexes sur une base de données.
    Par osoudee dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/02/2006, 09h24
  3. Problème avec ma connexion sur hotmail
    Par shukin dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 30/01/2006, 14h09
  4. Problème avec port Série sur Win XP
    Par alexorel dans le forum MFC
    Réponses: 9
    Dernier message: 27/10/2005, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo