Go Down

Topic: PB avec Logic-Level-Converter-Bi-Directional-Module-5V-to-3-3V et un vnh2SP30 (Read 470 times) previous topic - next topic

fr

Je pense que ce genre de montage devrait fonctionner





Mais quelle valeur pour R3

Quelle référence facile à trouver à petit prix et pas en 100 exemplaires pour le PMosfet ? Je pensais à un BSS84 dispo chez RS... Mais Vgs trop grand il me semble...

hbachetti

Quote
22k pour la résistance de base, ça parait beaucoup.
Avec un gain de 200 minimum, le BC547B est à l'aise en saturation avec une résistance de base de 22K jusqu'à :

3.3V-0.6V / 22000 * 200 = 24mA de courant collecteur.

C'est clair que c'est limite.

On peut adopter une résistance plus faible, car tout dépend du fournisseur. Et il n'y a pas de risque.

Quote
Comment inverser la chose ? Un petit mosfet dont la gate serait commandée par le collecteur permettrait d'augmenter la résistance du collecteur du BC547 tout en permettant le passage de courant suffisant pour déclencher le PWM à au moins 4v... Par exemple un 2N7000 pourrait-il faire l'affaire ? Ou un Pmos ?
Je dirais plutôt un petit MOSFET canal P à la place du BC547B.

Il faut inverser la logique de commande.



Avec éventuellement une résistance entre drain et GND pour forcer le Zéro.

EDIT : tu es sur la bonne voie.

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

68tjs

Le VNH est prévu dans la datasheet pour fonctionner entre 5,5V et 16V.
Ce qui laisse penser qu'il est prévu pour fonctionner en 9/12V.

Pourquoi faire un circuit d'adaptation en 5 V ?
Parce qu'en 9 ou 12 V on peut faire des choses intéressantes comme retourner en avantage la faible valeur de la résistance d'entrée du schéma Polulu : R19 = 1k.




- une source de courant de 4mA dans la résistance d'entrée de 1k (valeur du module Polulu) réalisé avec un PNP.
- Le PNP étant lui même interfacé entre le 5V et le 9/12V par un transistor NPN fonctionant en saturation.
Ce qui ne demanderai pas plus de 5 mA.

Le PNP fonctionne en source de courant, pour cela il doit être en zone non saturée ce qui se traduit par une tension Vce obligatoirement supérieure à un seuil de diode (0,8V). Ici je prendrais 2V pour être à l'aise.
La valeur du courant de la source est fixée par le duo de paramètres : tension entre la base du PNP et l'alim, valeur de R4.

Quand le PNP conduit on veut qu'il fasse passer un courant I5 qui développera 4V dans la résistance R19 de 1k selon le schéma de la carte Polulu. Ce qui donne un courant de 4 mA (U=RI).

La tension aux bornes de R4 sera donc égale à Valim - (Vce + 4V) soit 6V pour une alim 12 volts.
Ce qui donne une valeur de résistance R4 = 6V/4mA = à 1500 ohms.

Le transistor PNP fonctionne en mode linéaire on prend donc son vrai beta moyen et surtout pas de beta forcé.
Je prend 100 pour beta ce qui donne un courant de base (I4) égal à 40 µA.

Dans la résistance R2 il va passer le courant I2 plus le courant I4.
Pour ne pas se prendre la tête je choisi un courant I2 supérieur à 10 fois le courant I4 comme cela I4 devient négligeable devant I2.
Calcul de R2
la tension aux bornes de R2 est égale à celle aux bornes de R4 plus un Vbe que je prend à 0,8V
V(R2) = 6V +0,8V ~= 6,8V
R2 = 6,8V/0,5 mA = 13,6 k

Calcul de R3
La tension aux bornes de R3 est égale à 12V- 6,8V = 5,2V auxquels il ne faut pas oublier de retirer le Vcesat du NPN que je prend à 0,2V
V(R3) = 5V/0,5mA = 10 k

Calcul de R1
Le NPN travaille en saturation je prend un beta forcé de 20.
Pour la commande je prend 3V et pour le Vbe je prend 0,8V. Donc aux bornes de R1 il y a une tension égale à 3V- 08V = 2,2V.
Pour le courant I1 avec un beta forcé de 20 je trouve 25 µA ce qui donne une résistance = 2,2/25µA = 88 k, je prendrai 51,1k car je n'aime pas les trop grosses valeurs de résistance et que 2 µA de plus ou de moins ne changeront rien au résultat.

Soit au total un courant consommé de 4,5 mA.

Edit : sur la copie d'écran la valeur de R2 n'a pas été actualisée : lire 13k au lieu de 10 k

aligote

Bonjour,

Perso, sur le schéma, j'aurais changé le sens de I4 (PNP), ce qui ne change pas trop les autres valeurs car la valeur numérique de I4 est très inférieure à celle de I2:

- On peut ainsi décider de saturer Q2 de façon à limiter à 5V la valeur max à l'entrée du VNH au cas ou sa résistance d'entrée serait un peu supérieure à 1k.
- Compte-tenu que le VCE de Q9 est limité vers -2V ( et non vers -0,1V s'il est saturé) les autres valeurs ne changent pas beaucoup. (La commande par Q2 serait alors plutôt pour 5V sur le VNH, en source de tension)

Serge .D

hbachetti

C'est compliqué :

Avec 1 NPN + 1 PNP : 2 transistors + 4 résistances

Vous ne pensez pas qu'un simple transistor PNP ou un MOSFET canal P serait plus simple ?

Avec 1 seul PNP : 1 transistor + 1 résistance



Ce montage est largement capable de fournir les 4mA demandés.

En inversant la commande par logiciel bien entendu.

Le seul problème est qu'au démarrage la sortie doit être à ZERO pendant un bref instant.
A voir si cela dérange.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

fr

Merci à 68tjs pour sa réponse très pédagogique et très complète, moi qui suis très incompétent sur les montages à transistors j'arrive (presque) à comprendre.
J'en retire 2 questionnements
- le moteur que commande le VNH peut être soit sous 2S en li-ion soit 3S, le montage serait-il à modifier suivant la tension utilisée, donc pas universel ?
- ce montage nécessite l'arrivée de la tension de l'accu donc un fil de plus sur la platine intermédiaire.
- il lui faut 6 composants sans compter le convertisseur banal utilisé pour les pins inA et inB....

Merci aussi à hbachetti pour sa réponse et surtout son " tu es sur la bonne voie".... Mais la route est longue depuis que j'ai commencé à vouloir passer de l'arduino nano à l'esp... Prendre en charge toute la partie html pour avoir une commande de calibration déportée sur navigateur web, résoudre la consommation de l'esp quand on n'a pas besoin du wifi, le pb de la D8 qui fait des siennes à l'initialisation, pouvoir faire une mise à jour du programme par OTA et mettre le tout dans un boitier le plus petit possible réalisé à l'imprimante 3D, tout cela a souvent été nouveau pour moi donc glaner sur le web la doc, la comprendre, la tester et l'adapter.
J'avais cru en venir à bout car sur nano ma variable pwm avait une limite entre 0 et 256 et mon VNH fonctionnait parfaitement sous 3.3V, puis j'ai vu que sur esp il fallait aller jusqu'à 1024 et j'ai grillé 3 vnh avant de comprendre qu'il lui fallait du 5V. J'étais loin de penser qu'en utilisant une tension plus faible on pouvait griller un truc, puis en réfléchissant j'ai compris, les mosfets du HBridge n'étant pas complètement commandés ils chauffaient en pwm presque en allant vers le 100%.

Pour en revenir au problème du 5v sur pwm et en gardant à l'esprit que j'ai déjà un convertisseur sur ma platine, qu'un mosfet canalP doit avoir une tension négative pour fonctionner, ou une nulle.
Le montage suivant ne serait-il pas une solution ?



Le irfr5505 n'est-il pas un peu surdimentionné ? J'ai trouvé souvent l'utilisation d'un BSS84, en SOT23 il est à la portée de mes compétences de soudure en CMS... Ou un BS250P

Et quelles valeurs pour R5 et R6 si mon montage est correct ?

hbachetti

irfr5505 ou irfu5505 : Oui, c'est juste un exemple tiré d'un schéma ICI, censé assurer une sortie à faible impédance.

Le IRFU5505 a un boîtier à pattes traversantes.

Bien sûr ton montage peut se contenter d'un MOSFET plus petit. Mais attention, il doit être "logic level", Vgs threshold faible.

Le BSS84 peut convenir (Vgs threshold = 2V maxi).
Le BS250P sera un peu moins à l'aise (Vgs threshold = 3.5V maxi).

R6 : qq centaines d'ohms. Sert seulement à limiter le courant de gate lors des changements de niveau. Elle protège le circuit de commande de gate.
R5 : 100K. Sert seulement à polariser la gate si elle est en l'air. Optionnelle si tu es sûr que la gate n'est jamais en l'air.

Quote
un mosfet canalP doit avoir une tension négative pour fonctionner, ou une nulle.
Une tension gate négative par rapport à la source.
Si Vsource = 5V et Vgate = 0V c'est OK.
Déclenchement OK si la tension Vgs threshold est suffisamment faible (2V c'est bien).

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

hbachetti

Effectivement, avec un convertisseur de niveau dont tu utilises 3 canaux sur 4, cela assure que la tension de gate / source soit nulle quand tu veux couper le PWM.

Dans ma remarque en #19 j'oubliais qu'avec une commande en 3.3V la tension Vgs vaudrait :
5V si la sortie de l'ESP8266 est à 0
5V - 3.3V = 1.7V si la sortie de l'ESP8266 est à 1

Il y a des chances pour qu'un BSS84 conduise légèrement avec un Vgs de 1.7V. Ce n'est pas optimal.

Mais le convertisseur de niveau est une bonne idée qui résout le problème.

Tu peux aussi faire la même chose avec un PNP genre 2N2907.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

fr

Donc on adopte



Je commande des BSS84, je teste et je reviens vers le forum  :D

fr

Bon, j'ai enfin le temps de m'y remettre...

A première vue le vnh est bien contrôlé

MAIS

il me semble (je n'ai pas d'oscillo pour contrôler) que le temps de fermeture et d'ouverture du mosfet commandant la pin pwm du vnh ne suive pas celui donné par la pin pwm de l'esp.

J'ai  R6 = 1.5 K et R5=150K

Je subodore que c'est sur ces valeurs qu'il faut jouer pour que la durée de conduction soit identique.


Faire baisser R6 pour que la gate du mosfet canal P change plus vite de tension ?


hbachetti

Quote
Faire baisser R6 pour que la gate du mosfet canal P change plus vite de tension ?
Non. Cette résistance protège simplement le convertisseur lors des changements de niveau.
Le BSS84 a une capacité de grille de 45pF maxi. Avec une résistance de 1.5KΩ cela donne une constante de temps de :
0,000000000045×1500 = 0,000000068s = 68 nanosecondes

Tu peux la remplacer par un bout de fil, cela ne changera pas le temps de commutation.

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

fr

Donc ?

Voir du côté du mosfet canal N  sur le convertisseur ?

hbachetti

Sans oscilloscope ça risque d'être compliqué pour vérifier.

Éventuellement, avec un ARDUINO, tu peux mesurer la largeur des impulsions.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

fr

Merci beaucoup !
Dans 3 semaines j'ai accès à un oscillo, je testerais si je ne m'en sors pas avant.

Go Up