Il s'agit de VDS :
Pièce jointe 253746
La tension VGS est la suivante (et la même pour tous les MOS, au déphasage près de 2ms entre chaque commande) :
Pièce jointe 253741
Si je les enlève, je retombe sur un oscillogramme de ce type pour VDS (potentiel flottant) :
Pièce jointe 253742
et du coup il y a superposition visuelle des plans (le MOS reste passant plus longtemps que prévu).
Avec la résistance de pulldown, on voit que le MOS devient passant de façon intempestive pendant un bref instant (post #17 photo 2), ce qui envoie une brève impulsion positive sur les LEDs.
Sans cette résistance, on avait la courbe précédente (décharge RC), qui correspond à la capacité parasite des LEDs et du MOS, déchargée lentement par un courant de fuite quelconque.
La résistance de pulldown ne sert à rien à part rendre le phénomène visible à l'oscilloscope.
D'après le post #15, 2è image, le VGS du MOS est bon et ne devrait pas amener une conduction parasite.
Quelques remarques :
- Le MOS est mal choisi, il aurait fallu un modèle "logic level", pas un qui se commande en 10V.
- Le 74HCT138 devrait être remplacé par un 74HC138 pour plus d'immunité au bruit.
Bref, je t'explique ton problème.
Quand le PIC change l'état des sorties, les trois sorties ne changent pas exactement en même temps. Les signaux ne mettent pas le même temps non plus pour voyager dans les fils. Et le 74HCT138 est un circuit combinatoire et non un circuit synchrone, autrement dit lors d'un changement en entrée, il y aura "n'importe quoi" en sortie pendant quelques dizaines de ns, puis la valeur correcte apparaîtra.
Donc, il y a réellement une impulsion de commande et on ne la voit pas sur l'oscillo.
La fréquence d'échantillonnage de l'oscillo n'est pas inscrite à l'écran.
Si l'impulsion est courte, c'est facile de la louper avec un scope antique comme celui-ci.
Solution : lors de chaque changement d'état sur les trois lignes :
- désactiver OE (ce qui met toutes les sorties du HCT138 à 1)
- envoyer le prochain code sur 3 bits
- attendre (quoique un PIC18 c'est tellement lent que juste attendre la prochaine instruction devrait suffire)
- réactiver les sorties (seule la bonne s'activera)
Je dirais 90% de chances que ce soit ça, les 10% restants problème de CEM, ou niveaux logiques flous, ou alims qui flanchent, glitch, etc, dans le merdier de fils.
C'est exactement ce que fait le soft...Solution : lors de chaque changement d'état sur les trois lignes :
- désactiver OE (ce qui met toutes les sorties du HCT138 à 1)
- envoyer le prochain code sur 3 bits
- attendre (quoique un PIC18 c'est tellement lent que juste attendre la prochaine instruction devrait suffire)
- réactiver les sorties (seule la bonne s'activera)
Quel MOS peut convenir dans ce cas ? Il doit pouvoir tenir dans les 10A pour prendre très large.
Il existe d'autres circuits logiques qui peuvent remplacer le 74HCT138 tout en gardant la même fonctionnalité ?
Dernière modification par Donut ; 20/07/2014 à 15h51.
> C'est exactement ce que fait le soft...
Vérifie à l'oscillo que le OE est bien désactivé avant que le code change, et réactivé après (et pas en même temps).
Ensuite, on va chercher si il y a une impulsion parasite sur la grille : mets la sonde de l'oscillo entre la grille et le drain, règle sur quelque chose comme 100ns/div, et joue avec le niveau de trigger pour chercher une impulsion brève.
> Quel MOS peut convenir dans ce cas ?
10A t'es sûr ? Tu vas mettre vraiment beaucoup de LED ?...
C'est quoi la ref des MOS?
Je crois lire IRF9640 mais pas sûr.
Si c'est bien ça tu peux le garder, avec un Rds(on) de 0.5 Ohm ça ira bien tant que ton courant ne dépassera pas 1A (.5V de chûte sur VDS @1A).
Le Vgs(th) est entre 2V et 4V.
Le code est bien modifié 20µs après que OE est à l'état bas :
20140720_170446.jpg
Voie 1: OE
Voie 2 : LSB de l'adresse
La mesure de VDG montre effectivement de brèves impulsions :
20140720_170852.jpg
Qui sont à peine perceptibles sur VGM :
20140720_171014.jpg
Le fautif est donc le 74HCT138 qui affiche un état transitoire sur les sorties, même quand OE est à l'état bas...
Dans ce cas que faire ? Ajouter un buffer ? Utiliser un autre MUX ?
10A c'est un peu exagéré. Si on considère 30mA par cathode, avec 25 leds par plan, on est sur du 2,3A tout au plus.
C'est bien ça.
Dernière modification par Donut ; 20/07/2014 à 17h29.
Hmmmm... Les traces ont l'air bien, en plus tu as connecté le bon Output Enable du 138 (celui qui s'active avec un 1) du moins sur le schéma...
> La mesure de VDG montre effectivement de brèves impulsions :
C'est les pics de courant qui circulent dans tes fils à la commutation des MOS, qui se traduisent par des petits pics de tension... c'est pas grave... sauf les fois où c'est grave
Les explications faciles disparaissent assez vite on dirait !
C'est un peu le problème des plaques d'expé : ça marche ... ou pas, dès qu'il y a un peu de di/dt ou de flancs un peu raides...
Tu peux mesurer l'alim entre masse et +5V le plus près possible des MOS ?
Pour les MOS j'aurais mis des logic level PMOS ou bien pourquoi pas des NMOS (avec une commande en bootstrap), dans les 50-100mOhm de RdsON à Vgs 5V, par exemple des double en SO8, spécifiquement des AO4840 parce qu'il m'en reste un tube
Dernière modification par bobflux ; 20/07/2014 à 19h31.
Peux-tu mettre une capa de 10µF tantale aux bornes de VDD et GND de ton 78HCT138 pour voir?
Et relier tes sources en étoile au GND (GND principal de ta carte, à l'arrivée).
Tu alimentes comment et avec quoi tout le bouzin?
Je viens de voir la photo du post#15, du coup le doute n'est plus permis, il faut que tu retravailles ton câblage, notamment les masses.
Merci à tous pour vos réponses, je vais refaire le cablâge.
Je dois recevoir les autres TLC5940 bientôt (je n'en utilise qu'un pour l'instant), j'en profiterai pour optimiser les connexions.
Éventuellement, je peux souder un ou deux MOS et le MUX sur une platine d'essais pour voir ce que ça donne.
Si tu ne veux pas passer le temps de faire un circuit imprimé, tu peux le faire en dead-bug sur un bout d'epoxy cuivré vierge qui servira de plan de masse.