LTC2400 + ESP8266

Bonjour,
J'aimerai une aide si vous avez utilisé un LTC2400 avec un ESP8266 (ou ESP32) car je n'arrive à rien avec ce composant (ou presque) Toute info est bonne à prendre, merci.

Bonjour

câblage réalisé ?
Alimentation(s) ?
Code testé ?

"Toute information détaillée sur ce qui a été testé est bonne à prendre" également !!!!!

Désolé de ne pas avoir donné beaucoup de détails, j’avais espéré une réponse par une personne ayant testé et fait fonctionné. Mais merci beaucoup pour la réponse, donc voici mes tests basé principalement sur :

Mais ça ne fonctionne pas sur ESP8266 (surement trop rapide) je pensais que ce composant fonctionnait en I2C, mais il n’en ait rien. J’ai cablé comme préconisé par B@tto, j’ai même essayé en mettant des résistance de tirage vers le +5v et là j’ai commencé à avoir des valeurs (sinon toujours valeur = 1.0) j’ai utilisé un potentiomètre (je suis électronicien) et je n’obtiens pas de valeurs fiables si Vref est 5v, mais j’obtiens des valeurs avec Vref=3.3v (en branchant bien entendu sur les tensions voulues) “je patine dans la choucroute”
Bref, une aide est bienvenue.

le LTC2400 est très peu utilisé, les chances d'obtenir içi de l'aide d'une personne l'utilisant sont minces.... davantage encore avec un ESP8266 !! L'intérêt qu'il présentait pour les ponts de jauges a pratiquement disparu avec l'apparition du HX711 et les nombreux modules bon marché l'utilisant.

L'ESP8266 a des contraintes concernant les GPIO et les tensions (alim et GPIO)
Le code de Batto(de 2010) ne peut être utilisé tel quel.

SI tu consens à montrer ton schéma et le code testé sur ESP8266 certains içi prendont sans doute le temps d'aller voir la Data Sheet du LTC2400 (interface SPI et pas I2C !!) et de faire des propositions.

Ok, merci pour la réponse, je prépare ça et je reviens poster, merci beaucoup.

Voici le code, les connexions utilisées sont décrient dans le script.

/*
 * Processeur     : ESP8266 (WEMOS D1 Mini)
 * Mesure 24 bits : LTC2400 CS8
 * 

LTC2400 Connexions
******************
1 : Vcc  5V
2 : Vref 5V
3 : Vin  Tension à mesurer. Important : mettre une résistance de 4.7K entre le point de mesure et la patte, sinon ça fait n'importe quoi dans les basses tensions.
4 : GND
5 : CS   Relier à GND pour une connexion constante, sinon à utiliser comme Chip Select.
6 : SDO a relier à un pin digital de l'arduino (MISO).
7 : SCK a relier à un pin digital de l'arduino (SCK).
8 : F0 Horloge à relier soit au 5V (50Hz), soit au GND (60Hz), (pas pris le temps de tester l'influence sur la qualité de la mesure), la seule chose qui apparait dans la datasheet c'est que relié au GND elle va plus vite. Donc pour ma part, GND

Informations
************
 24 bits = 2^24 = 16777215  => 5v / 16777215  = 2.9802 10-7 v = 0.00000029802 v
 18 bits = 2^18 = 262143    => 5v / 262143    = 1.9073 10-5 v = 0.000019073 v
 12 bits = 2^12 = 4095.99   => 5v / 4095.99   = 1.2207 10-3 v = 0.0012207 v

*/

int LTCSCK = D5;                                                                                                     // Pin 7 du LTC2400
int LTCSDO = D6;                                                                                                     // Pin 6 du LTC2400
int BufferLTC[31];
float MesureVolt = 0.0;                                                                                              // Valeur de la mesure en volt (0 à 5v)
float Vref = 5.00;                                                                                                   // La tension que vous envoyez sur le pin 2 du LTC2400
boolean State;
unsigned long Tmillis = millis();


void setup() {
  Serial.begin(115200);
  pinMode(LTCSDO, INPUT);
  pinMode(LTCSCK, OUTPUT);
  digitalWrite(LTCSCK, LOW);
}

void loop() {
  if ((millis() - Tmillis) >= 5000) {
    Tmillis = millis();
    MesureVolt = Mesure();
    Serial.println(MesureVolt);
  }
}

unsigned long Mesure() {
  float V = 0.0;
  digitalWrite(LTCSCK, HIGH);                                                                                        // Cycle pour lancer conversion
  delay(1);
  digitalWrite(LTCSCK, LOW);
  delay(140);

  State = digitalRead(LTCSDO);

  int nb = 0;
  while(State == HIGH) {
    delay(1);
    State = digitalRead(LTCSDO);
    nb++;
    if (nb >= 5000) break;
  }
 
  for(int x=0; x<=31; x++) {
    BufferLTC[x] = '\0';                                                                                             // Mise à zero de la variable
  }

  for (int i=31; i>=1; i--) {
    digitalWrite(LTCSCK,HIGH);                                                                                   // Cycle horloge
    digitalWrite(BUILTIN_LED,HIGH);
    delay(5);
    digitalWrite(LTCSCK,LOW);
    digitalWrite(BUILTIN_LED,LOW);
    delay(5);
                                       
    if (State == HIGH){
      BufferLTC[i] = 1;
    } else {
      BufferLTC[i] = 0;
    }
    State = digitalRead(LTCSDO);
  }
                                                                         
  V = 0.00;

  for (int x=27; x>=4; x--) {
    double y = pow(2.00, (x-4.00));
    V = V + BufferLTC[x] * y;
  }

  if (BufferLTC[29] == 0) V = 0.00;
  if (BufferLTC[28] == 1) V = Vref;

  V = V * Vref * 1000000.0;
  V = V / 16777215.00;

  return V;
}

Merci pour ton aide.

Connections ?
D5 et D6 : OK pour l'horloge et le transfert des données vers l'ESP8266
...mais tu ne dis pas ce que tu as fait de l'entrée Fo du LTC2400

pas pris le temps de détailler le code pour voir comment le LTC2400 est interrogé...

Alimentation 5V : juste une remarque qui est peut être sans rapport avec le problème rencontré

l'ESP8266 fonctionne sous 3,3V et le LTC2400 actuellement sous 5V

-le signal d'horloge arrive au LTC entre 0 et 3,3V, le niveau haut est donc un peu juste , faiblement supérieur au seuil de 2,5V (VIHmin)

-l'entrée MISO de l'ESP8266 (fonctionnant sous 3,3V) voit arriver un signal D0 montant à 5V
Le fabricant des ESP8266 ne décrit pas dans la Data Sheet son composant comme 'tolérant au 5V' sur ses entrées GPIO. Il ne garantit donc pas que tous les ESP8266 survivent longtemps à une surtension de 1,7V (50%)
Les retours d'utilisateurs semblent montrer que les ESP8266 ont la 'peau dure' et indiquent que leur composant survit à la surtension. C'est juste une prise de risque que chacun gère comme il l'entend !

Au vu de sa notice technique le LTC2400 peut être alimenté entre 2,7V et 5,5V
L'alimenter en 3,3V alignerait les niveaux logiques avecceux de l'ESP8266

Bonjour merci pour la réponse,

J'ai testé le point F0 du LTC2400 relié au +5v et au 0v(GND) cela ne fait que le faire fonctionner en 50Hz ou 60Hz.
Pour le fait des tensions différentes, je ne me suis pas expliqué, c'est vrai, mais ces tensions ont été interfacé avec des UJT (transistors) pour palier au problème, et ça fonctionne car les niveaux sont respectés (j'utilise cela avec beaucoup d'autres montage)
J'ai aussi essayé en 3.3v pour l'ensemble, mais je n'obtiens pas mieux.
J'ai pas mal cherché pour voir si une librairie existait, mais rien trouvé.
Tel quel, j'en suis à me demander si je ne vais pas passer au MCP3421 qui ne fait que 18bits, la résolution s'en ferait sentir, mais la mise en œuvre est facilité, car il existe des librairies et il tourne en I²C, plus simple comme protocole.

Merci d'avoir pris le temps de me répondre.

Bonjour

L'entrée E est reliée, je voulais m'assurer que le composant était configuré en 'horloge interne'
Pour l'adaptation des niveaux logiques les transistors à utiliser sont des Mosfets, pas des transitors unijonction (UJT)
Sans schéma tous les doutes sont permis !!

Avant d'abandonner le LTC2400 voici une autre source d'inspiraion dans laquelel le composant est interrogé en utilisant la librairie SPI. Les 32 bits sont extraits par 4 SPI.transfer() successifs.
L'exemple est pour un LKTC2440 (à 4 entrées et il faut l'adapter au LTC2400)
http://dangerousprototypes.com/forum/index.php?topic=4247.0#p42051

Pardon pour les UJT, effectivement ce sont des MOSFET réponse trop rapide sans réflexion.

Merci pour le lien, je vais fouiller et je viendrai poster, même si au final ça fonctionne, ça pourrait en aider d'autres.

Pour l'adaptation vers ESP8266, voci l'info sur sa librairie SPI :
https://arduino-esp8266.readthedocs.io/en/2.6.3/libraries.html#spi

Merci encore, ça ne pourra que m'aider, là je ne peux pas, mais je m'y remet dans la journée.

Merci beaucoup.