BLOC 6 voies

Discutions générales sur le DSPiy et tout ce qui s'y rattache
GoodNoize
Messages : 860
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » jeu. 26 sept. 2024 20:15

Aussi : Alain à relevé que les deux UCD utilisés voie MID n'on pas la même température alors qu'il devraient se suivre.
Je pense à un couplage mécanique platine UCD / Dissipateur ALU diffèrent.

ça semble se vérifier au multimetre et sa sonde.

Sur les D500 : T° Transistor = T° dissipateur
TH3 (MID) : T° Transistor = T° dissipateur
TH4 et TH5 : Delta de 3°

J'ai du serrer les boulons un peu plus fort sur l'UCD qui est branché en TH3. Le couplage est meilleur

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » ven. 27 sept. 2024 09:30

je regarde tes relevés ce we. j'ai besoin de revoir le tout pour clarifier le calcul de températures.
J'ai mis une vraie CTN 10K dans mon environnement de dév pour me rapprocher un peu de la réalité.
a suivre

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » ven. 27 sept. 2024 14:58

juste quelques détails :
sous excel, choisis plutot type de graphique "nuage de points".
Avec le graphe que tu as choisi, excel considère que les données en abscisse sont régulièrement étalées ce qui bien sur n'est pas le cas dans les fichiers logs. Cela fausse complètement l'échelle de l'axe horizontal.
Nuage de points est fait pour ça. Il calcule tout seul pour répartir correctement les données sur l'axe abscisses. Ca donne une vision réelle de la dynamique.

Image

Sinon, je vois chez moi que le résultat est sensible au 3V3.
Chez moi il n'y a que 3,2V. Par acquis de conscience, tu pourras revérifier chez toi ?

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3770
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » ven. 27 sept. 2024 18:58

Sinon, je vois chez moi que le résultat est sensible au 3V3.

C’est un problème avec ces cartes. L’ESP32 a une tension de référence interne mais indisponible en externe. On prend donc comme référence pour les CTN une tension de 3V3 qui est très approximative.
Il y aurait moyen de faire une sorte d’autocalibration en mesurant simplement le 3V3 mais pour cela il faut y dédier une entrée ADC et si ma mémoire est bonne on utilise toutes les entrées.

Maintenant, de ce que j’ai vu et surtout pour l’application, on n’est pas à quelques degrés vu que l’on ne connaît même pas la température max et/ou idéale aux points de mesures.

Si l’on veut pousser la chose, on pourrait aussi faire du dt/dt :-| en fait du delta de temperature par delta temps.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » ven. 27 sept. 2024 21:17

un lien pour montrer comment faire pour calibrer : https://github.com/e-tinkers/esp32-adc-calibrate mais ta mémoire est bonne : plus d'adc disponible pour jouer à ça.

Pour l'instant Alex voit un décalage de 6°C ce qui me parait anormal. Pour la beauté du geste, j'aimerai bien aussi trouver une solution pour éviter les dents de scie quand l'adc oscille sur une valeur charnière qui fait basculer de +- 1°C. Je ne comprend pas non plus que deux amplis identiques qui font mid L et R aient une température qui diffère de 5°C, mais ça ce n'est pas le logiciel.

Chez moi avec un potentiomètre de simulation de CTN je ne pouvais pas avancer.
Du coup, j'ai sorti une CTN du tiroir "récup". Comme je n'avais pas ses paramètres j'ai commencé par la mesurer. 10K, beta 3600.

Ensuite j'ai regardé de plus près l'adc de l'ESP32-S3 que j'utilise en dév. Il est dit partout qu'Espressif a bien travaillé et que ses adc sont bien linéaires. C'est vrai, mais la pente annoncée n'est pas correcte. Celle d'ESP est fausse de près de 5% p/r à la réalité.

En mettant dans le firmware les bonnes valeurs, c'est bon. La température affichée est maintenant conforme avec mon multimètre de référence avec 1 à 2°C max de différence sur une plage de 20° à 70°C. Pas testé au delà. Il sert maintenant de thermomètre a mon bureau :)
En revanche j'ai vu l'Adc faire des zig zag quand la led de warning s'est déclenchée. Il en faut peu pour le perturber!

Pour l'ESP32-S3 c'est bon. Maintenant l'esp32 normal. Je vais voir ce que je peux en tirer mais c'est chronophage.

J'en ai profité aussi pour remettre au clair les calculs. PDF à suivre quand la mise en page sera peaufinée.

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3770
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » sam. 28 sept. 2024 08:26

L’on sait que la tension de référence n’est pas commune à tous les ESP.

Pour, moi, le plus simple et universel serait d’avoir un mécanisme de calibration réglable par l’utilisateur.
Un coefficient pouvant être négatif qui s’additionne à la valeur mesurée et un second multiplicateur.
Comme cela on peut calibrer en tenant compte de tous les éléments statiques.
A voir si nécessaire pour chaque entrée ou l'ensemble.
Soit l'utilisateur accède à ces 2 deux coef soit tu crée une crée une séquence calibration basée su minimum 2 points de mesure.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » sam. 28 sept. 2024 11:16

oui c'est une idée, mais pour ça il faut dabord être sur du type de correction a effectuer.
Personnellement je n'aime pas corriger le résultat pour tomber juste sans savoir pourquoi.
Pour déjà vérifier si une simple correction ax+b suffit, il faut des points de mesure suffisants de la température réelle (mesuré au thermomètre) et de ce que dit le système pour comparer les deux courbes. Ca manque. Et si chaque utilisateur doit paramétrer son système en faisant des mesures de température, ca devient compliqué.
A ce stade, d'après le peu de mesures que j'ai vu, il suffirait de faire -6 ou -7 . Une correction aussi simple est inexpliquée et parait improbable mais pourquoi pas.

Le problème est entièrement lié à la conversion de l'adc. Ce sera pareil pour tous les amplis a l'intérieur d'un ampli, cad pour les 6 Adc, a moins qu'un Adc ne soit défectueux.
J'ai bien vu que les Adc sont sujets au bruit. Sur ma carte imparfaite, ils ne donnent pas systématiquement la même valeur, même lorsqu’ils mesurent la même pin au même instant. Mais ça influait sur le résultat final pour 1° ou 2° au maximum. Dans la marge de tolérance.

Pour l'instant je me base sur ce qu'ont raconté des diyers sur des sites internet pour l'Adc et c'est pas bon. Je compte faire mes manips sur un ESP Wroom et voir.

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3770
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » sam. 28 sept. 2024 12:00

Il y aussi moyen de calibrer uniquement l’ADC en mettant à la place d’une sonde une résistance fixe connue.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » sam. 28 sept. 2024 18:57

Pour le S3 c'est la pente qui était fausse. Un point (ou deux points suffisamment éloignés pour assurer le coup) et hop calibration faite.

Pour l'esp32 je sais pas encore. Pour l'instant c'est mal parti : j'ai refait un montage "allégé" avec un ESP32 wroom et firmware ajusté pour ma ctn (beta 3600).
Il me dit 16 à 17° là où il en fait 22. Donc 5 à 6°de différence mais dans l'autre sens que chez Alex!
Je m'attaque à capturer sa courbe tension/adc et on verra bien.

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3770
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » sam. 28 sept. 2024 19:20

22°c tu as de la chance. :mrgreen:

Comme expliqué plus haut, oui, la tension 3V3 influence beaucoup. Tu pourrais le simuler/calculer facilement.
Disons pour une valeur de résistance donnée 3V35 et 3V20.

Pour rappel, la doc d’expressif indique bien qu’il y a des différences de références selon les modèles. Ce qui est surprenant, pas logique, mais bon c’est chinois aussi. :mrgreen:

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » sam. 28 sept. 2024 19:58

https://docs.espressif.com/projects/esp ... s/adc.html
j'aurai du commencer par lire attentivement ça

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3770
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » sam. 28 sept. 2024 20:37

Exactement, problème de notre époque, on cherche un peu partout, mais la base reste la doc du fabricant et surtout datasheet.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » sam. 28 sept. 2024 21:41

mea culpa sur ce coup. google m'a mis dans les pattes des jolis sites qui m'ont ébloui. Tu l'avais bien dit pourtant :amen:

mes premiers résultats montrent que l'ESP32 est bien linéaire sur la plage qui nous intéresse mais mon exemplaire est de 6% à 20% différent de l'exemple montré par l'espagnol sur son site. Pas étonnant que ça parte en vrille.
Demain je modifie le code pour mettre une équation de droite de type y= A.x + B avec les deux coeffs que j'ai obtenu ce soir.

Si ça marche comme espéré, j'ai un nouveau chapitre a écrire dans ma doc et deux paramètres a rajouter dans les settings. pfff on n'en finit jamais.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » dim. 29 sept. 2024 12:59

ayé, l'ESP32 me dit 21° quand il fait 21,7°C. Acceptable. :)

Avec un potentiomètre multitours (coup de chance d'avoir ça dans le tiroir sinon trop galère d'être précis) j'ai fait varier Uc (tension qui entre dans l'adc) et reporté les valeurs Adc moyenne que me dit le firmware. Ca donne les points bleus. C'est bien linéaire sur la plage qui nous intéresse de 0,5V à 2,5V. (correspond à une plage de ~16°C à ~100°C).

La droite grise c'est celle utilisée en v6.5. Je j'avais prise sur le site https://www.luisllamas.es/en/esp32-adc/ en pensant que c'était bon pour tous les ESP32. Mais non!!! mais c'est différent pour chaque ESP32 et Espressif le dit bien sur son site.

En orange ce que j'ai utilisée pour mon ESP32.
C'est une droite avec une équation du type y = a x +b. Ici adc = a.Uc + b .
J'ai fait une moyenne sur les points bleus et déterminé les valeurs a=1250 et b=-125

Image

Ca c'est fait :)

J'ai essayé sur deux pins Adc (la 34 et la 35) : le résultat des mesures est légèrement différent, parfois avec l'effet des arrondis, ca peut donner 1°C de différence mais rien de significatif.
Je pars du principe que la calibration est à faire pour chaque ESP32 mais pas pour chaque pin Adc de chaque ESP32.

J'ai complètement sous estimé la lecture correcte des ADC de l'ESP32 8/ . J'ai de la lecture et de l'occupation a venir.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » dim. 29 sept. 2024 16:59

je progresse :)

Après beaucoup de galères et de recherches, j'ai fini par réussir à obtenir avec Arduino le vrai Vref du chip qui est stocké par Espressif dans l'ESP32 lors de la fabrication.
Je ne sais pas encore comment l'exploiter mais c'est déjà un début :)

Un retourne 1177mV. Un autre autre 1121 mV.

Code : Tout sélectionner

/*
ESP32 : lecture de Vref de l'ADC dans eFUSE, Bloc 0 
pour les chips fabriqués depuis janvier 2018.

La valeur théorique de Vref est 1100 mV.
Selon Espressif, la valeur réelle peut varier de 1000 à 1200mV.

Selon Espressif, la valeur réelle déterminée apres calibration en usine 
est mise dans eFuse lors de la fabrication.

Sur mon exemplaire d'ESP32, ce programme retourne :
  Valeur brute Vref(bits 8 à 12) : 0xC 
  Vref : 1177 mV
*/

#include <soc/efuse_reg.h>

void setup() {
  Serial.begin(115200);
  delay(1000);

/*
  // Lecture des valeurs dans eFuse Block 0
  Serial.println("Valeurs eFuse Block 0 :");

  for (int32_t block0Address = EFUSE_BLK0_RDATA0_REG; block0Address <= EFUSE_BLK0_RDATA3_REG; block0Address += 4) {
    uint32_t block = REG_READ(block0Address);
    Serial.printf("Block 0 RDATA: 0x%08X\n", block);
  }
*/

  // Vref est dans EFUSE_BLK0_RDATA2_REG, bits 8 à 12 selon efuse_reg.h
  uint32_t rdata2 = REG_READ(EFUSE_BLK0_RDATA2_REG);
  uint32_t vref = (rdata2 >> EFUSE_RD_ADC_VREF_S) & EFUSE_RD_ADC_VREF_V;

  // Conversion de la valeur brute en millivolts 
  uint32_t vref_mv = 1100 + (vref - 1) * 7;  // Ajustement de la formule pour obtenir la vraie Vref

  Serial.printf("Valeur brute Vref (bits 8 à 12): 0x%X\n", vref);
  Serial.printf("Vref : %d mV\n", vref_mv);
}

void loop() {}

GoodNoize
Messages : 860
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » dim. 29 sept. 2024 18:36

Hello,
j'ai pris pas mal de retard j'ai du rattrapage :aille:

J'ai pu faire un relevé en 3 points ce soir
Un au repos, un en marche stabilisé, puis avec un sèche cheveux jusqu'à pseudo stabilisation des T°.
Dernière étape pas évidente : ça a pas mal fluctué pendant un long moment.
Et puis le flux d'air fausse pas mal la mesure prise avec la sonde du multi..
Et relever la T° et la tension avec le même appareil faut faire fissa :gene:
Bref j'ai galéré et c'est surement pas très fiable.

Sur les pico de mon ESP32 : tension de 3V09 à la place de 3V3..

Voir l'Excel en PJ
Fichiers joints
MESURES 29-09-24.xlsx
(10.78 Kio) Téléchargé 641 fois

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3098
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » dim. 29 sept. 2024 18:45

on s'entrecoupe ! on dirait un forum :hehe:
3,1V au lieu de 3,3 ça change la donne!
merci pour les mesures. Ca devrait permettre une tentative de calibration.


je continue : je me pose plein de questions sur ce qu'on peut faire en paramétrant l'ADC.
Voilà le genre de mesures de valeurs ADC.

Deux séquences de séries de 10 Mesures. Dans une série, elles sont séparées de 2 secondes. avg est la moyenne de la série avec laquelle est calculée la température.
En colonne, TH1 et 4 étant sur la même pin, ce sont deux lectures successives de la même pin et pourtant a chaque fois un peu différentes.

Code : Tout sélectionner

18:03:31:350 -> ++ Adc TH[1]: 2797,2795,2811,2839,2790,2771,2853,2877,2858,2624, avg=2802, T°= 22
18:03:31:357 -> ++ Adc TH[4]: 2791,2801,2819,2873,2812,2791,2835,2870,2861,2559, avg=2801, T°= 22


La plage des 10 mesures (donc sur 20 secondes) s'étale de 2559 à 2858. Je trouve que c'est un grand écart. Je suspecte du bruit lors des mesures.

On peut paramétrer l'ADC de l'ESP32 par plusieurs fonctions:

1- analogReadResolution(bits): Set the resolution of output of analogRead. Default is 12-bit but possible values are 9 to 12.
2- analogSetWidth(bits): Sets the sample bits and read resolution. Default is 12-bit but range is 9 to 12.
3 - analogSetClockDiv(clockDiv): Set the divider for the ADC clock. 1-255. default is 1
4 - analogSetSamples(samples) : default is 1
5 - analogSetCycles(cycles) : 1 à 255, 8 par défaut
6 - analogSetAttenuation(attenuation): Set the attenuation for all channels. Default is 11db but possible values are 0db, 2_5db, 6db, and 11db.
7 - analogSetPinAttenuation(pin, attenuation): Set the attenuation for a particular pin.
8 - analogSetVRefPin(pin): Set pin to use for ADC calibration if ESP32 is not already calibrated. Possible pins are 25, 26 or 27.


Pour stabiliser et limiter l'impact du bruit, j'imagine:

1. passer la résolution à 10bits, puis multiplier la valeur lue par 4 pour ne pas avoir a toucher aux formules. Est ce que cela va stabiliser ?
2. j'ai du mal a comprendre la différence avec 1
3. ca va ralentir. pas d'idée
4. 1 sample c'est peu. J'augmenterai bien à 4 pour voir
5. pas d'idée

6 et 7 : je vois bien. On touche pas. Laisser à 11dB puisqu'on a une plage de mesure de tension qui monte jusqu'à 2.5V. C'est un peu dommage car l'ADC est plus linéaire a 6dB. On aurait pu anticiper et ajuste la résistance en série avant les CTN mais c'est un peu tard maintenant

8 : j'ai essayé et ne fonctionne pas. Peut etre parce que mes ESP sont déjà calibrés en usine. Pas grave puisque je sais trouver Vref directement.

GoodNoize
Messages : 860
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » dim. 29 sept. 2024 18:49

Personnellement je n'aime pas corriger le résultat pour tomber juste sans savoir pourquoi.


ça je m'en doutais ::d

Si tu veux pas te prendre la tête et ne pas faire du chronophage, tu mets -7 dans la courbe de correction. Je vérifie chez Sagem si ça se tiens et l'affaire est close.

On me dis dans l'oreillette que ça va pas te plaire :hehe:


Retourner vers « DSPiy général »

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot] et 8 invités