J'essaie d'utiliser un module potentiomètre numérique X9C103S avec une carte Uno.
Ça fonctionne mais impossible de mémoriser la valeur sélectionnée comme indiqué dans la datasheet.
Est ce que quelqu'un a déjà réussi a mémoriser la valeur avec ce composant?
J'ai essayé la librairie que tu cites et j'ai le même problème: pas de mémorisation.
Peut être que mon module a un problème (mais à part la mémorisation, ça fonctionne).
Je vais commander d'autres modules pour essayer (j'en avais commandé plusieurs mais je ne ne les retrouve plus), mais actuellement les délais sont super longs.
Non, je n'ai pas regardé avec l'analyseur logique. Ça ne me semblait pas utile, le positionnement du potentiomètre fonctionne et d'après la datasheet la mémorisation se fait sur la remontée de CS avec INC à HIGH, ce qui est fait dans mon programme.
J'y ai pensé et j'ai essayé de mettre sous tension en appuyant sur reset pour être sur que l’initialisation des ports ne causait pas le problème et j'ai le même problème.
Peut être un problème à la mise sous tension du chip lui même, mais je n'ai pas vu qu'il fallait prendre des précautions particulières dans la datasheet.
Il faut que INC/ soit à HIGH quand CS/ remonte pour mémoriser. On pourrait le mettre à LOW après remontée de CS/, ça ne devrait rien changer.
Dans le chronogramme de la datasheet INC/ est laissé à HIGH au repos.
fdufnews je pense que tu as raison il se passe des choses à l'init.
J'ai modifié l'initialisation des sorties en les mettant à HIGH avant de les mettre en sortie et comme ça je récupère la valeur après mise hors/sous tension. Le problème c'est que ce n'est pas du tout fiable: 1 fois sur 10 ou sur 20 ça ne fonctionne pas.
Un autre problème est que quand j'appuie sur reset la tension descend de 50mV, comme s'il y avait un pulse de décrément. C'est bien à l'appui sur reset et non au relâchement.
J'ai essayé de voir ce qui ce passe en connectant l'analyseur logique mais quand il est connecté le problème ne se produit pas.
En résumé la mémorisation fonctionne à peu près mais n'est pas du tout fiable (tout au moins je n'ai pas réussi à avoir quelque chose de fiable).
Je laisse donc tomber mon test (c'était juste un test pour voir comment fonctionnait le potentiomètre), et si je dois l'utiliser un jour je mémoriserai la valeur en EEPROM du micro contrôleur.
Au reset, les I/O sont en tri-state. Donc prévoir des pullup/pulldown pour fixer les niveaux.
La valeur par défaut dans le registre DATA des ports c'est 0. Dans setup(), fixer l'état avant de définir le port en sortie permet de ne pas avoir un état 0 non désiré.
Je viens de faire l'essai avec des résistances de pullup de 10k sur CS/ et INC/ et ça semble avoir résolu le problème. Je viens de faire 20 mises hors/sous tension et je récupère bien la valeur mémorisée.
Ça a aussi résolu le problème lors de l'appui sur le reset.