DIY - RFR Active Pedal : électronique

  • Je ne comprend pas pourquoi tu veux avoir accès au VREF de 5V (j'imagine que tu parles du VREF interne, provenant d'une référence de tension de précision externe de 2.5V et multiplié par 2 en interne).

    Je ne comprend pas pourquoi tu lit l'ADS à 4 KHz alors qu'il peut faire lui même le filtrage à 1000 Hz, avec un filtre FIR de meilleure qualité qu'un Biquad. D'ailleurs, à quelle fréquence a tu réglé ton biquad ?

    Perso j'ai fait des essais avec l'ADS1256 (avec la même carte que toi et avec une plus évoluée), et même avec une load cell à 2mV/V, qui théoriquement va sortir 10mV max si alimenté en 5V, avec un gain de 64 et 1000 SPS je suis loin d'avoir 16 bits de précision. Quand je parle de précision je ne parle pas de la précision théorique, mais bien celle que j'ai en pratique et qui est sérieusement entachée de bruit. Sur cette carte la mesure n'est pas radiométrique car la tension qui alimente la load cell n'est pas celle qui est utilisée pour la référence de tension (sauf si tu alimente la load cell avec le 2.5V, mais dans ce cas on tombe à 15 bits max théoriques).

    Dans la doc, à 1000 SPS, buffer et gain de 64, la résolution sans bruit est déjà donnée à 15.6 bits. Et ça c'est "en laboratoire"...

    J'arrive à 16 bits de précision en baissant drastiquement les SPS, mais à 1000 SPS je suis loin de les avoir (la load cell utilisée pour le test a un câble blindé, 2mV/V, et 120 Kg max)

    Comment tu mesures le bruit/la précision de ta mesure ?

  • Juste sur l'ADS, je lis "Since the power supply voltage of ADS1256 is 5V, and the measured voltage should be 2V lower than the power supply voltage, the module is only suitable for measuring analog voltages within 3V."

    ???


    Citation
    Les levels shifters c'est pour les loosers

    ça va j'ai compris !! :cut:

    PaulStoffregen a écrit :

    If you were using that mosfet plus 2 resistor circuit, which Adafruit, Sparkfun and others promote as universally useful for all 3-5V level translation, I'd be amazed it it worked. It's really terrible for any sort of high speed signal. Worst yet, it badly distorts signals, because the high to low transition is fast, but low to high is very slow. I've ranted on this many time... but I will again... I believe those companies do everyone a huge disservice by promoting that mosfet circuit as useful for nearly all level translation. In practice, it's really only great for I2C protocol. It's terrible for almost everything else!

    If you *really* want to translate it to 3.3V, perhaps a chip like a 74LCX125 might be useful? It has excellent performance, with delay under 6ns, and equal delay to propagate both low to high and high to low. The 6 buffers within a single chip have a maximum skew (differing delay) of only 1ns.

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Aucun rapport avec les niveaux logique, ces 2V en dessous des 5v c'est pour les entrées analogiques, avec le buffer activé. buffer désactivé on peut aller jusqu'à AVDD + 0.1

    Tu fais bien de citer Paul, il sait de quoi il parle. Il a d'ailleurs énormément contribué à l'environnement Arduino, et pour concevoir les Teensy (notamment les 4.x), il faut toucher sa bille en électronique.

  • Et si c'est trop coûteux en terme de gestion des interruptions, on pourrait utiliser un circuit dédié avec un quadrature clock converter suivi d'un compteur ?

    The LS7183N and LS7184N are CMOS quadrature clock converters.

    Quadrature clocks derived from encoders are converted to strings of Up Clocks and Down Clocks (LS7183N) or to a Clock and an Up/Down direction control (LS7184N).

    These outputs can be interfaced directly with standard Up/Down counters for direction and position sensing of the encoder.

    https://lsicsi.com/datasheets/LS7183N_LS7184N.pdf


    Carlton : tu utilises les Compteurs de Pulse de l'ESP32 ?

    Pulse Counter (PCNT) - ESP32-S3 - — ESP-IDF Programming Guide latest documentation

    The PCNT (Pulse Counter) module is designed to count the number of rising and/or falling edges of input signals. The ESP32-S3 contains multiple pulse counter units in the module. Each unit is in effect an independent counter with multiple channels, where each channel can increment/decrement the counter on a rising/falling edge. Furthermore, each channel can be configured separately.

    PCNT channels can react to signals of edge type and level type, however for simple applications, detecting the edge signal is usually sufficient. PCNT channels can be configured react to both pulse edges (i.e., rising and falling edge), and can be configured to increase, decrease or do nothing to the unit’s counter on each edge. The level signal is the so-called control signal, which is used to control the counting mode of the edge signals that are attached to the same channel. By combining the usage of both edge and level signals, a PCNT unit can act as a quadrature decoder.

    Besides that, PCNT unit is equipped with a separate glitch filter, which is helpful to remove noise from the signal.

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

    Message modifié 3 fois, dernière modification par RacingMat (12 juin 2023 à 19:00).

  • Salut,

    Je voulais accéder au VREF de l'ADC pour lui donner une autre tension de Ref que le 5V : du 3.3v en espérant gagné un cran de gain.

    J'ai une loadcell de class 3 de 3kg en 2mV/V sous 12V stabilisé avec un gain de 64, buffer, mais je n'ai pas activé le filtre. Je ne crois pas aux filtres des fpga embarqués, j'ai probablement tort, dit moi.

    J'ai mesuré la déviation du signal numérique reçu après avoir fait un décalage de 8bits à droite pour n'avoir que 16b de lecture. Le loadcell posé sur la table, je n'ai pas de variation de la valeur reçue.

    Le biquad je l'ai rajouté parce qu'on en avait parlé, aucune autre raison. Je l'ai calé à 4khz avec une freq de coupure à 1khz pour viré tout ce qui est au dessus de la freq du FFB.

    Pourquoi 4khz, bein parce que ca me paraissait bien, aucune raison scientifique ou technique, j'avais envie de lire vite pour filtrer le signal et le passer à un autre process que je voulais à 1khz, sans avoir trop de bruit :)

    Je suis partisan du fail-fast pour les projets collaboratifs, ca permet de sortir des pièces à frapper (comme on dit dans la marine) et ca évite le standby. Mais dans l'approche fail-fast il faut un processus d'amélioration continue : je suis à votre écoute :)

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • Sur l'ADS1256 la vref fournie est x2, donc il faudrait que tu prennes une ref externe de 1.2V par ex pour avoir 2.4V en interne. Mais de toute façon en utilisant une ref externe, si elle n'est pas utilisée pour alimenter la load cell, on n'est pas en mesure radiométrique, donc je ne suis pas convaincu que ça présente un intéret. Si la load cell est alimentée avec le 5V de l'USB, ça va récupérer le bruit qui en provient. Et même en utilisant une ref de 5 ou 12V (avec un booster) pour alimenter la load cell, on aura pas forcément la même dérive en température.

    Ensuite ta load cell alimentée en 12V, ben tu triche déjà :B . Mais bon admettons qu'on refasse un 12V avec un booster bien filtré. Quand tu la charges à 1.5 Kg tu arrives à 32768 sur tes 16 bits ? Non bruité ?

    Les filtres ce n'est pas une religion, il n'y a pas à y croire ou pas, c'est des maths... Les ADC ne sont pas des FPGA (Field Programmable Gate Array). Et les meilleurs filtres que tu puisses faire en terme de conservation de la forme du signal ce sont les FIR. Les biquad sont des IIR, c'est plus efficace en terme de calcul et d'espace mémoire nécessaire mais ça présente des inconvénients. Les filtres intégrés dans la plupart des ADC sont des FIR (souvent des moyennes en fait, qui sont un type particulier de FIR).

    Je ne connais pas le terme Fail-Fast.... moi j'essaie plutôt le Suceed-Fast :B mais bon c'est rare d'y arriver

  • Oui t'as qu'a faire ça, et rajoute des levels shifters on sait jamais :hihihi:

    quel moqueur !

    Sérieusement, y'a bien des cas où un circuit intégré est plus puissant/robuste/performant qu'un code embarqué !

    Là une puce dédiée pour compter les fronts, ça peut être bien non ?

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Oui quand tu utilises des vieux MCU obsolètes et que tu as des signaux en quadrature à une fréquence élevée par rapport à celle du MCU. Autant il y a 10 ans ça pouvait avoir du sens, autant aujourd'hui je ne pense pas. Tous les MCU modernes tournent à plus de 48 MHz, et la plupart ont des décodeurs de quadrature hardware intégrés. Et le prix de tes IC c'est le prix d'un SamD21 ou d'un ESP32, donc vraiment je ne vois pas l'intérêt. Désolé d'être moqueur, mais pour moi c'est pareil que les tutos que tu trouves sur le net pour te faire des boites à boutons, où les mecs rajoutent des résistances de pull up et des condensateurs pour les boutons, ce qui est totalement inutile puisque t'as des pull up en interne de tous les MCU et que tu peux faire le debounce en soft. Pourquoi faire simple et pas cher quand on peut faire compliqué et cher.

  • Ah merci pour les explications circonstanciées 😊 j'aime bien comprendre

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Mouais, pourquoi pas, même si je pense que 10 bits c'est pas assez comme précision, et que de toute façon à partir du moment où t'as fait une alim +/- 10V, autant mettre un ampli OP et amplifier une sortie 0-3.3V vers +/- 10V. Cela dit, je n'ai pas relu tout le topic mais apparemment il y avait moyen de régler des paramètres dans le drive pour ne pas avoir besoin de passer en +/- 10 V.

    De toute façon ça reste une solution de test provisoire, au final pour faire bien, il faut communiquer en numérique avec le drive pour envoyer les commandes de couples et récupérer la position.

  • Hello,

    l'aasd peut etre configuré pour donner 100% a la tension que tu souhaites : 3.3, 5, 10v...

    Je trouve le MCP suffisant pour nos premiers tests, ca vaut pas un adc haut de gamme, mais ca sera suffisant pour le poc

    Vincent

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • il y avait moyen de régler des paramètres dans le drive pour ne pas avoir besoin de passer en +/- 10 V.

    De toute façon ça reste une solution de test provisoire, au final pour faire bien, il faut communiquer en numérique avec le drive pour envoyer les commandes de couples et récupérer la position.

    oui "en réglant un gain de 66%/V et un offset de -1500 mV tu peux piloter le "bousin" entre 0 et 3 V :B

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Hello :)

    Je ne suis pas super fan des offsets négatifs : ca peut se mettre à tourner plein couple si l'esp32 n'est pas alimenté, ou si le câble de commande a un faux contact. Je vais gérer le sens de rotation avec un pin de l'aasd.

    L'avantage avec le MCP, c'est qu'on passe en 12b sur un signal 5V, donc plus de précision (même s'il a une marge d'erreur qui lui est propre) sur une amplitude de signal plus grande. La lecture coté AASD n'en sera que meilleure : on va utiliser la plage 0-5V sur 4096 de précision pour 3Nm vs 0-3V sur 255 de précision pour 6Nm (-3..3).

    Je suis en train de regarder les paramètres de l'aasd pour régler

    une commande mixte couple/vitesse sélectionnable avec une PIN,

    une commande en analogique,

    une pin pour l'Enable du driver,

    une pin pour récupérer les alarmes de l'aasd.

    On n'est pas très loin de ce que fait Thanos. Je n'ai pas envie d'activer l'autodétections de fin de course auto de l'aasd contrairement à ce qu'il fait...

    Vincent

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • Avec un pin sur le signal Enable, et une résistance de pull up ou down, si l'ESP32 n'est pas alimenté pas de pb. Et avec une fin de course de toute façon la pédale ira en fin de course. Et le câble de commande qui a un faux contact, c'est de toute façon problématique, c'est aussi un problème s'il y a un faux contact sur un des signaux encodeurs. Perso je ne conçois pas mes systèmes en partant du principe qu'il va y avoir un faux contact mais bon chacun fait comme il veut :B

    Tant qu'à utiliser un IC extérieur pour générer une tension analogique, autant utiliser un vrai DAC, avec plus de bits tant qu'à faire (16 par ex).

  • Salut Etienne,

    merci pour les compléments, j'ai en effet rajouté un pin EN sur pull down coté assd, comme ca si l'esp32 ne le remonte pas, c'est qu'il y a un pb ;)

    Tu aurais les REF d'un DAC sérieux, en 16b j'ai trouvé des DAC audio, mais j'ai un doute sur les gains des aop intégrés au circuit audio tout fait.

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • Je n'en ai pas encore implémenté, mais c'est vrai que la plupart du temps au dessus de 16 bits on tombe sur des DAC prévus pour l'audio. Cela dit ce n'est pas forcément un problème. Sauf sur aliexpress où tous les modules DAC que j'ai vu sont pour l'audio, et ont un filtre passe haut en sortie.

    Je pensais tester celui là un de ces 4, mais aucune idée de ce que ça vaut ou si ça convient :

    CS4334-KSZR Cirrus Logic | C330424 - LCSC Electronics

    L'avantage est qu'il est simple, et pas cher. Dès qu'on veut plus de 16 bits les prix grimpent vite.

    Plus cher mais peut être plus adapté :

    DAC8411IDCKR Texas Instruments | C2926925 - LCSC Electronics