Bonjour Pierre
Tu n'es pas flou dans tes explications.
Pour le commentaire de la dernière ligne, c'est la valeur 0x01 qu'il faudrait écrire (en respectant le fait qu'un bit sans importance est écrit à 0), même si 0x03 va aussi. l'important c'est de mettre le bit D0 à 1 pour sortir du mode stand-by (toutes les LED y compris celles des digits éteintes) du MAX et d'avoir le D5 à 0. Ce registre a encore le bit D1 en lecture uniquement qui renseigne si c'est un MAX6958 ou un MAX6959 (donc en écriture c'est un X), et le bit D5 qui écrit à 1 remets l'état des Digits et des Led à l'état par défaut.
Honnêtement là maintenant je ne sais pas pourquoi cela ne marche toujours pas.
Soit c'est une erreur de code que je n'arrive pas à voir, soit c'est un problème matériel. Pour définir le quel c'est, il faut retirer les LED et faire tourner le code qui les contrôles. Si dans ce cas les digits s'affichent correctement alors c'est un problème matériel, sinon c'est un problème de code.
Pour le problème matériel, le datasheet n'indique aucune tension de LED minimal, sauf que si il en a une, les LED classiques (1.6V) sont plus basse que celle des digits 7 segments (2.0 et plus). C'est solvable au moyen de résistances.
Pour un problème de code, c'est que en écrivant dans le registre 0x24, il y a modification d'un autre, pourquoi? Il faudra attendre les collègues plus calés sur l'I2C des MCP que moi...
Delias
Partager