Salut à tous,
J’ai créé un PCB custom sur lequel un STM32 vient piloter deux drivers de LEDs (des PCA9622 de NXP : datasheet). Afin de tester l’I2C, mon programme envoie des data à une adresse bidon dans une boucle infinie.
Mon problème : Je n’ai aucun signal sur mes lignes SCL et SDA. Elles sont tout le temps à l’état bas.
Ce que j’ai testé :
- J’ai vérifié mes connections avec un multimètre, toutes les soudures semblent correctes
- J’ai retiré les pull up de l’I2C puis retesté, puis je les ai remplacées par des 10k. Rien n’a changé
- J’ai trouvé ce post sur un autre forum : post. Même si le STM32 n’est pas celui que j’utilise, la même errata sheet existe pour ma référence : Errata sheet. J’ai testé le workaround proposé par ST qui est implémentée en commentaire du post. J’ai dû le modifier en commentant les lignes GPIO_InitStructure.Alternate car GPIO_InitTypeDef n’a pas de membre Alternate. Je ne vois toujours pas de clock ni de data.
- J’ai dessoudé les solder jump des deux PCA pour voir si le problème venait d’eux. Les lignes I2C ne sont donc plus reliées à rien. Pourtant, je n’observe toujours rien sur SDA et SCL.
Avant de faire mon PCB custom, j’avais testé un PCA avec une Nucleo et ça fonctionnait bien donc je ne pense donc pas que le problème vienne d’une non-compatibilité entre le STM32 en 3.3V et le PCA9622 en 5V.
Je précise également que n’ayant pas d’alim de labo possédant 2 sorties, le 3.3V est pris d’une Nucleo (qui me sert aussi pour le ST-link) branchée sur l’ordinateur. Le 5V vient de l’alim de labo. Tous les grounds sont connectés entre eux.
Les parties de mon schéma concernées :
Pièce jointe 469022
Je suis un peu désespérée, je ne sais plus quoi tester. Merci à tous ceux qui prendront le temps de répondre.
Léa
-----