Pages: 1 [2]   Go Down
Author Topic: 74HC595 & reboot  (Read 2539 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 1
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

en augmentant c'est maintenant le second registre qui prend le relais ...
Logged

IDF/SO
Offline Offline
Edison Member
*
Karma: 41
Posts: 2264
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Soit plus explicite !
Tu augmente quoi ?
Quel est ton schéma ?

Concernant la mise en route du micro-controleur ce ne doit pas être un problème de stabilisation de l'horloge puisque le bootloader est prévu avec les fuses qui vont bien pour avoir une temporisation de 65 ms.
Par contre il  semble me rappeler (je ne retrouve plus l'endroit ou je l'ai lu) que les I/O sont configurées en entrée  haute impédance.
C'est peut-être là l'origine de ton problème : une entrée haute impédance laissée en l'air capte n'importe qui, il faut une résistance de tirage soit à la masse soit au Vcc pour stabiliser.
Être simplement raccordé au 74HC595 n'est pas suffisant car les entrées du 595 sont aussi à haute impédance.

Pour chaque entrée du 595 essaye de placer une résistance de 10 k entre l'entrée et un rail d'alimentation.
Quel rail : s'il faut que les sorties soient à 0 au démarrage ce sera la masse sinon le Vcc.
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

j'ai suivi ce que tu as dis :


             Capa = 100 nF             R= 10K ohms
GND <----------||-----------|--------/\/\/\----------->Vcc
                                        |     
                                  Reset

j'ai essayé avec un 100 nF c'est pas bon, je suis monté jusqu'a 4µF et idem ou plus exactement le comportement des registres se décale : en fonction de la valeur du condo c'est tel ou tel registre qui "s'allume" (les sorties  sont actives un bref instant).

Je vais tenter tes dernières explications !
Logged

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3566
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

j'ai suivi ce que tu as dis :


             Capa = 100 nF             R= 10K ohms
GND <----------||-----------|--------/\/\/\----------->Vcc
                                        |     
                                  Reset

j'ai essayé avec un 100 nF c'est pas bon, je suis monté jusqu'a 4µF et idem ou plus exactement le comportement des registres se décale : en fonction de la valeur du condo c'est tel ou tel registre qui "s'allume" (les sorties  sont actives un bref instant).

Je vais tenter tes dernières explications !

C'est de la bidouille. Le reset ne modifie pas les sorties comme expliqué précédemment. Il faut être rigoureux.
Pendant la phase d'initialisation on ne maîtrise rien c'est factuel et c'est vrais pour tous les systèmes à base de microprocesseur puisqu'il faut que celui-ci s'initialise d'abord.
Partant de ce constat, il faut faire en sorte que le système intègre cette contrainte dans sa conception. Le plus simple (et le plus sur) c'est de faire en sorte que la puissance ne soit pas appliquée tant que le processeur n'a pas terminé son initialisation. Une fois que le processeur est opérationnel (c-à-d que toutes les sorties sont dans un état connu), il active un relais (électromécanique ou électronique) qui va envoyer la puissance vers les étages de puissance.
« Last Edit: March 12, 2013, 03:55:37 am by fdufnews » Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bon j'ai testé et cela marche pas.

dans ce cas toutes les sorties sont "allumées" :
                    R= 10K ohms
595 Vcc--------/\/\/\----------->Vcc

                                                                      
dans ce cas c'est aléatoire :
                    R= 10K ohms
Gnd--------/\/\/\----------->595 Vcc
                                            
 et avec ou sans le pullup sur OE
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

j'ai suivi ce que tu as dis :


             Capa = 100 nF             R= 10K ohms
GND <----------||-----------|--------/\/\/\----------->Vcc
                                        |     
                                  Reset

j'ai essayé avec un 100 nF c'est pas bon, je suis monté jusqu'a 4µF et idem ou plus exactement le comportement des registres se décale : en fonction de la valeur du condo c'est tel ou tel registre qui "s'allume" (les sorties  sont actives un bref instant).

Je vais tenter tes dernières explications !

C'est de la bidouille. Le reset ne modifie pas les sorties comme expliqué précédemment. Il faut être rigoureux.
Pendant la phase d'initialisation on ne maîtrise rien c'est factuel et c'est vrais pour tous les systèmes à base de microprocesseur puisqu'il faut que celui-ci s'initialise d'abord.
Partant de ce constat, il faut faire en sorte que le système intègre cette contrainte dans sa conception. Le plus simple (et le plus sur) c'est de faire en sorte que la puissance ne soit pas appliquée tant que le processeur n'a pas terminé sont initialisation. Une fois que le processeur est opérationnel (c-à-d que toutes les sorties sont dans un état connu), il active un relais (électromécanique ou électronique) qui va envoyer la puissance vers les étages de puissance.

donc si je comprend bien cela reprend mon idée de transistor piloté par un pin de l'arduino. un thyristor fait l'affaire ?
Logged

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3566
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
un thyristor fait l'affaire ?
Non un thyristor ne fait pas l'affaire. Un thyristor reste enclenché tant qu'il est parcouru par du courant. Donc tu ne pourrais pas le désactiver à la demande.
Déjà est-ce ton circuit de puissance fonctionne en continu ou en alternatif?
Quelles sont les courant mis en jeu en utilisation et au démarrage?
Pour le continu un mosFET ferait l'affaire. Attention au circuit de commande les tensions commutées sont sûrement supérieures aux 5V de l'arduino.
Pour l'alternatif un triac (avec son circuit de commande)  ou un relais statique.
En fait le relais statique est une solution applicable aussi bien au continu qu'à l'alternatif (il existe des modèles pour l'un ou pour l'autre). C'est plus cher mais plus simple pour qui ne veut pas se prendre la tête.
Le relais électromécanique et la solution simple, passe partout et bon marché. Comme c'est un circuit d'activation général, le relais ne commutera pas souvent il pourra durer longtemps. La seul point négatif c'est la puissance nécessaire à son maintient en position active.
Les composant sont à dimensionner en fonction de la tension du courant consommé et du courant d'appel bien entendu.
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
ce qui pose problème c'est le premier niveau de "puissance" que pilote l'arduino.
Je m'explique :
j'ai trois niveaux de puissance (ce qui n'est pas vrai car un niveau de puissance est considéré comme > à 50V si je ne me trompe, mais admettons).

ground zéro : 5Vcc : l'arduino
niveau 1 : 5Vcc  (masse commune) - périphériques en entrée ou sortie tout autour de l'arduino (dont donc les fameux 595).
niveau 2 : 12Vcc, séparé par optocouleur (masse commune de mémoire - voir mon tonton si c'est pas bon lol) : comprend donc tout ce qui est relais n co pilotant le niveau supérieur
niveau 3 : 220Vac séparé par optocoupleur on est dans les appareils 220V de la maison.

en gros on protège le noyau central d'une panne ou court circuit pouvant l'endommager. Si un truc doit "tomber" il tombe seul et on tente de limiter la propagation du court circuit. (j'espère avoir tout compris ce qu'il m'a expliqué, je raconte peut être des conneries... j'espère pas).

donc si ce premier niveau est "maitrisé" les autres en dépendent donc il n'y aura plus de problème de comportement empirique.

pour le thyristor je trouve qu'il est parfait quand même non ?
lors du reboot de l'arduino il est inactif car pas enclenché par l'arduino et donc il n'alimente  pas en 5V les 595.
une fois l'arduino démarré on peut alors l'allumer tranquilou une fois pour toute et il le reste jusqu'a la prochaine coupure de courant, je pourrais presque le faire via mon multiplexer non ?

le mofset est une bonne piste aussi, cependant il va nécessiter une consommation électrique continue comparé au thyristor non ?
« Last Edit: March 12, 2013, 04:24:48 am by fred133084 » Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5091
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


donc si je comprend bien cela reprend mon idée de transistor piloté par un pin de l'arduino. un thyristor fait l'affaire ?
bonjour
si tu travaille sur de la basse tension continue, l'ideal est surement un mosfet N en logic commande
ça coute peanuts cacahouètes  smiley-mr-green et ça s'interface sans aucun composants supplementaires.
perso c'est ce que j'utilise dans ce genre de cas.
Logged

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3566
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
pour le thyristor je trouve qu'il est parfait quand même non ?
lors du reboot de l'arduino il est inactif car pas enclenché par l'arduino et donc il n'alimente  pas en 5V les 595.
Oui et non. S'il y a reboot sans coupure de l'alimentation le thyristor ne tombe pas. Cas lors de la mise à jour du code par exemple.
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mais si il tombe pas c'est pas génant non ?
je cherche a protéger le système contre des comportements anarchiques qui surviennent a la mise en tension de l'ensemble.
donc une fois tout le monde est initialisé cela ne pose plus de soucis dans mon cas.
l'arduino meme si il subit une mise a jour de son code il va reprendre sa pile de "commandes" en cours de traitement et finir tranquilou son taf (ça c'est mon code !).
j'ai implémenté le reset par prog, et effectivement lors d'un reset volontaire de l'arduino les registres ne bronchent pas. Ils restent là ou ils en étaient.

...

mais en fait, ma solution n'est pas bonne. Car pendant le reset de l'arduino du coup les actions continues sans fin ! donc j' en vient au mofset. Et effectivement là on controle quand le "niveau de puissance" est alimenté, ou pas. (c'est bien d'écrire et penser en même temps...).

bon en mosfet je suis pas riche ... j'ai :
IRF510
IRL540N

je vais pas loin avec ça.
Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5091
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


bon en mosfet je suis pas riche ... j'ai :
IRF510
IRL540N

je vais pas loin avec ça.
bonsoir
Tu a besoin de quelle intensité et sous quelle tension en conditions max ?
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

de rien "presque rien" :
5V et qqs mA (de quoi alimenter les optocoupleurs : en simultanés au max je dirais 11 optocoupleurs MOC3041 si je ne m'abuse).

je ne sais plus si du coup cela représente trop de mA que ll'arduino puisse fournir et si du coup il n'y a pas un PNP avant l'optocoupleur !!
Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5091
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

de rien "presque rien" :
5V et qqs mA (de quoi alimenter les optocoupleurs : en simultanés au max je dirais 11 optocoupleurs MOC3041 si je ne m'abuse).

ok
je mettrais simplement un petit bs170 , c'est pas du Nlogic donc mettre une petite R 10K entre gate et gnd
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pas de chance ! il faisait pourtant partie de ma liste d'achat mais au dernier moment j'en ai pas pris... ben voila, un truc de plus a rajouter a la prochaine commande... à suivre donc !
Logged

Pages: 1 [2]   Go Up
Jump to: