Concevoir des circuits avec une durée de vie plus longue


11

J'ai appris le microcontrôleur pic pendant un certain temps et j'ai une quantité raisonnable de connaissances sur la manipulation de l'électronique numérique. J'ai travaillé sur des projets électroniques de base et maintenant je dois travailler sur certaines applications commerciales.

Ma question est de savoir comment concevoir et construire des circuits fiables et durables. J'ai construit un circuit de contrôleur d'éclairage automatique qui prend l'entrée d'un LDR et affiche la valeur de la lecture analogique sur un panneau à sept segments. Ensuite, il fait quelques calculs et contrôle une lumière à travers un relais. Ce circuit doit être allumé en permanence (24h / 24). Les premiers mois, le circuit a parfaitement fonctionné, mais après environ 6 mois, il a commencé à mal fonctionner. Il a montré des choses insensées sur l'affichage à 7 segments (il n'a montré que des parties de chiffres), puis il allume l'ampoule sur le voyant LED mais il n'allume pas le relais. Ce n'est pas le comportement attendu. Le truc, c'est que ça ne fonctionnera pas toujours de cette façon. Parfois, cela fonctionne parfaitement. Puis il recommence à mal fonctionner. Il n'y a pas d'ordre exact dans lequel cela fonctionne.

Maintenant, ma question est de savoir pourquoi ces circuits se comportent de cette façon. Je suppose que cela peut être parce qu'il fonctionne toute la journée sans aucun intervalle. Ce type d'application doit fonctionner toute la journée. J'utilise PIC car je ne connais que la photo. Atmal est-il plus fiable que pic? (J'ai demandé parce que atmal est utilisé dans la plupart des applications d'automatisation, plus fréquemment que l'image n'est utilisée) J'ai besoin des conseils d'un expert en électronique numérique. Comment se construit ce type d'applications industrielles? Y a-t-il des règles spéciales à suivre? Comment concevoir des circuits plus fiables? Tout conseil ou orientation d'un expert sera très apprécié. Je vous remercie...

ÉDITER

Comme cela est suggéré dans les réponses, je vais modifier ma réponse en fournissant des ressources supplémentaires pour aider à comprendre les bogues dans la conception.

Ci-dessous, une image décrivant à quoi ressemble le circuit après sa construction. C'est un transformateur à prise centrale 12V qui alimente le circuit, il est redressé à l'aide d'un redresseur demi-onde, puis régulé à l'aide d'un CI 7805.

entrez la description de l'image ici

Voici la conception schématique.

entrez la description de l'image ici

Si des informations supplémentaires sont nécessaires, je fournirai tout le nécessaire. Si le programme est nécessaire, je l'ajouterai. Le programme est un peu long, il utilise des interruptions.


6
Si vous utilisez un CI dans les limites spécifiées (voir la fiche technique), presque tous les fabricants garantissent une durée de vie de 10 ans. Et c'est à haute température. Vous pouvez blâmer les composants, mais je pense que le problème est qu'il se passe quelque chose d'inattendu dans votre conception. Ou peut-être que l'une des puces a souffert d'une décharge ESD et qu'elle ne fait surface que maintenant. Vous devez d'abord trouver le composant défectueux avant de pouvoir vous conseiller.
Bimpelrekkie

2
En plus de ce que FakeMoustache a dit, je doute que le PIC soit la source de l'échec. Il s'agit très probablement de composants discrets ou liés à la conception du circuit.
DigitalNinja

1
J'ai des PIC qui travaillent tout le temps dans de nombreux endroits difficiles. Pas d'issues. Le seul problème que j'ai eu était la corrosion des fiches et un condensateur TFT électrique forcé avec une broche cassée.
Szidor

1
Et BTW, je suppose que vous voulez dire Atmel au lieu de "atmal". De plus, PIC est un microC de MicroChip (MicroChip les fabrique). Atmel est également un fabricant de microC, ils fabriquent les microContrôleurs Atmega. Les deux sont simplement des circuits intégrés numériques fabriqués dans des processus de fabrication similaires et ayant une fiabilité similaire. Si l'un était plus ou moins fiable que l'autre, personne ne les achèterait (au même prix qu'ils sont).
Bimpelrekkie

3
Vous devez publier un schéma et, idéalement, une image du système en difficulté. Je doute aussi que vos problèmes soient «l'espérance de vie», mais qu'il manque plutôt quelque chose de vraiment basique, comme la propreté de l'alimentation électrique ou EMI.
Techydude

Réponses:


17

Avant de commencer à penser au changement, assurez-vous d'avoir une bonne conception solide. Vous devez commencer à réfléchir à toutes les façons dont vous pourriez avoir des problèmes dans votre conception. Un bon moyen de le faire est d'arrêter de considérer un microprocesseur comme une "boîte magique" dans laquelle vous mettez du code et faites ce que vous lui dites et commencez à penser à son fonctionnement, au niveau de la porte et au niveau du système. Vous devez garder votre microprocesseur heureux.

  1. Alimentation - Si l'alimentation des microprocesseurs n'est pas propre, elle ne fonctionnera pas correctement. Cela signifie regarder la conception du PCB et vous assurer que vous avez un bon chemin à faible inductance de votre alimentation et vous assurer que vous avez des bouchons d'alimentation adéquats près de la puce. Surveillez et mesurez la puissance d'une conception dont vous savez qu'elle ne fonctionne pas avec un oscilloscope et un voltmètre, est-ce la puissance? Voyez-vous que le problème se produit en cas de pic ou de baisse de puissance? Voyez-vous des pointes ou des creux sur votre ligne Vcc?
  2. Code \ Clock - Y a-t-il une erreur dans le code qui l'empêche de fonctionner correctement? Avez-vous regardé le code dans une unité intermittente? Vérifie-t-il (correspond-il) le code que vous avez maintenant? Obtenez-vous une dégradation du flash? Et l'horloge? La puissance peut en fait dégrader l'horloge avec le temps . Votre horloge est-elle ce dont elle a besoin? Si vous ralentissez l'horloge, votre code cesse-t-il de fonctionner?
  3. Protection environnementale. Utilisez-vous le microprocesseur selon les spécifications pour lesquelles il a été conçu? La température est-elle constante dans les unités défaillantes? Se trouvent-ils dans une zone avec des facteurs environnementaux tels que la poussière, les EMI, les ESD ou la température qui pourraient provoquer leur défaillance. Vos intrants sont-ils protégés du monde extérieur, les gens pourraient-ils zapper l'unité? La chaleur fera du mal à l'électronique avec le temps. Obtenez une caméra thermique et voyez si tout est normal

Ce que vous devez vraiment faire, c'est trouver le mécanisme de défaillance, vous devez savoir pourquoi il échoue. Une fois que vous savez pourquoi son échec, vous pouvez résoudre le problème. Si vous ne trouvez pas cela, vous devrez rendre votre conception invincible pour éviter tout problème. Sinon, vous pourriez changer de microprocesseur et avoir toujours les mêmes problèmes. Si vous voulez changer, ST fabrique quelques excellents microprocesseurs qui sont plus adaptés aux applications industrielles.


2
Ajoutez le rayonnement à la liste des facteurs environnementaux. Les rayonnements ionisants de la plupart des types (atomiques, photoniques, etc.) peuvent faire subir à l'électronique des SEU ou des perturbations à événement unique qui se traduisent par une sortie tronquée.
rdtsc

Comme vous l'avez suggéré, j'ai mis à jour ma réponse en ajoutant les ressources supplémentaires. la conception schématique et une image si le circuit. s'il vous plaît pouvez-vous trouver des bugs dans la conception.
danial weaber

Merci beaucoup. J'ai eu une idée et plus de connaissances sur la conception de circuits plus fiables. Je dois en savoir plus avant de commencer à construire des applicatuons commerciales. Merci beaucoup. Accepté comme réponse.
danial weaber

Je suppose que le rayonnement n'est pas un facteur, mais si vous exécutez ces choses à côté d'une centrale nucléaire ou d'une autre source de rayonnement (ou dans l'espace, cela devient un problème grave avec un MCU commercial ayant quelques SEU par semaine, même Rad les processeurs durs auront des SEU). Un MCU régulier pourrait avoir un SEU mais je pense que ce serait de l'ordre des années pour la probabilité de cela dans un environnement normal.
Voltage Spike

@danial weaber a 7805 ne va pas arrêter une coupure de courant avec les bouchons que vous avez. Disons que la consommation d'énergie du 5V reg est de 100mA max (vous pouvez exécuter ces calculs si vous mesurez votre courant max réel), ce serait comme une charge de 50Ohm. Votre cap est de 10 uf donc tau = RC -> tau = 50 * 10uf = 0,5 ms. C'est approximativement le temps qu'il vous faudrait pour avoir un problème. Vous voudrez peut-être acheter une «verrue murale» chinoise bon marché pour quelques dollars qui peuvent tolérer des pertes de tension sur le secteur. Ou vous pouvez utiliser un convertisseur DC-DC qui pourrait être plus tolérant. À quoi ressemble votre mise à la terre sur le PCB?
Voltage Spike

7

Puisque vous ne le dites pas, je me demande comment le circuit en difficulté est physiquement construit - car cela ressemble exactement au type de problème qui est généralement observé lorsque quelqu'un qui ne soude pas construit un circuit sur une planche à pain temporaire "push to connect" et part pendant quelques mois.

Si cela ressemble à votre cas, il y a votre problème; sinon, je soupçonnerais toujours de mauvaises connexions, mais cela devient plus un problème de «compétence à souder» qu'un problème de «défaut de souder quoi que ce soit».


3
Ajouter à cette technique de soudage incorrecte peut produire des joints avec une faible résistance mécanique et d'autres problèmes qui provoquent la défaillance du joint après une période de temps beaucoup plus courte.
crasic

Merci beaucoup. J'ai mis à jour ma réponse et si vous pouvez trouver un bug dans la conception, ce serait très reconnaissant.
danial weaber

Les soudures semblent bonnes, aucun effet n'est visible dans la soudure. Peut-il s'agir d'un problème lié au programme. Mais alors comment ça marche bien à la fois
danial weaber

... fournir une image du côté soudure? En ce qui concerne les problèmes de programmation qui fonctionnent parfois, parfois non, diverses options ont déjà été mentionnées dans les commentaires sur la question. Et il y a la prise dans laquelle l'IC est un point de défaillance potentielle sans soudure (entre la prise et les broches de l'IC.) Les prises sont parfois une bonne idée, mais peuvent causer des problèmes. Si les problèmes s'améliorent pendant un certain temps si vous retirez et remplacez le CI, cela pourrait faire partie du problème. ... aussi, vos condensateurs de filtre d'alimentation semblent un peu petits - tous de 33 pF entre le pont et l'entrée du régulateur? Vraiment?
Ecnerwal

5

Vous n'avez pas de condensateur de découplage sur l'alimentation PIC, mais sur une petite carte comme celle-ci, vous vous en sortirez probablement. Vous pouvez également vouloir ajouter une protection contre les baisses de tension afin que le PIC soit réinitialisé si la tension tombe en dessous d'un seuil.

Mais je regarderais votre code.

Pour commencer, vous devriez avoir le chien de garde activé sur le micro. Si le code cesse de fonctionner correctement, le chien de garde le redémarrera.

Cependant, vous avez probablement un bug quelque part. En tant qu'ingénieur logiciel embarqué de profession, je suppose que c'est lié aux interruptions, car c'est là que les débutants font le plus souvent des erreurs. Cependant, en tant que débutant, il y a un ensemble énorme d'erreurs que vous pouvez faire dans le code, donc ce n'est que le premier endroit où je chercherais. (Ne soyez pas offensé - j'ai moi-même fait beaucoup de ces erreurs, y compris quand j'aurais vraiment dû mieux savoir. ;-)


+1 merci beaucoup. Maintenant je comprends que j'ai fait des erreurs. J'ai besoin d'en apprendre beaucoup plus avant de commencer à créer des applications commerciales.
danial weaber

3

Je suis d'accord avec les commentaires que vous avez besoin d'un joli gros condensateur de chaque côté du 7805. Surtout avec un relais là-bas. Je pense que c'est le problème racine. J'ajouterais également un condensateur de découplage sur les lignes d'alimentation du PIC.

Je chercherais également des joints secs.

Je serais également en train de vérifier minutieusement mon programme et d'utiliser n'importe quelle installation de surveillance.

Mais voici quelques extraits intéressants de votre question:

Il a montré des choses insensées sur l'affichage à 7 segments (il n'a montré que des parties de chiffres)

J'essaierais de comprendre ce qui s'est passé. Le PIC s'est-il écrasé par exemple?

Maintenant, si j'ai bien lu votre schéma, pour que chacun des affichages à 7 segments montre quelque chose , et quelque chose de différent et de constant sur au moins deux d'entre eux, alors chacun des Q1, Q2 et Q3 doit encore être tourné allumé en séquence et les sorties vers les segments doivent être correctes. Cela me dirait que votre PIC exécute toujours au moins une partie de son code, mais d'une manière ou d'une autre la sortie numérique a été brouillée. Par exemple, il n'a peut-être pas été donné un chiffre 0-9 à afficher, mais un chiffre 17 ou similaire (pour lequel il obtient la disposition des chiffres à partir d'un emplacement de mémoire aléatoire).

Vous dites:

il allume l'ampoule sur la LED d'indication mais il n'allume pas le relais

En regardant le schéma, à moins que la sortie PIC ne soit pulsée ou quelque chose (pas impossible car c'est également un port de sortie de minuterie), cela devrait être soit une panne électrique (par exemple, joint sec), un problème d'alimentation (voir ci-dessus concernant les condensateurs) , ou le transistor Q4 n'est (peut-être) pas complètement saturé. Je n'ai pas lu la fiche technique PIC, mais un BC547 a un I C maximum de 100mA (j'espère que cela suffit pour piloter votre relais et la LED), et un hFE de 120 à ce genre de niveau, vous aurez donc besoin d'environ 1mA en. 10k pourrait donc être un peu beaucoup. Je pourrais essayer 3k3.

De plus, vous n'avez aucun moyen utile de débogage. Comme votre affichage est allumé en permanence, vous pouvez peut-être faire clignoter le point décimal final une fois par seconde (ou similaire) pour indiquer que tout va bien.

Si je devais prendre un coup de fou sauvage dans l'obscurité, je suppose que, surtout lorsque le relais est activé, le circuit consomme beaucoup de courant. En raison de l'absence d'un grand condensateur du côté entrée du 7805, lorsque la tension alternative croise zéro, le 7805 ne fournira aucun courant de sortie (et peut en effet drainer le condensateur lui-même) - à partir de la fiche technique du 7805 . la tension d'entrée doit rester typiquement 2,0 V au-dessus de la tension de sortie même pendant le point bas de la tension d'ondulation d'entrée » . La tension sur le PIC sera donc réduite, peut-être assez pour le planter. Mettez une portée de la ligne 5V à côté du PIC et si vous ne voyez rien d'autre qu'une belle ligne 5V solide, vous savez que vous avez un problème.


+1 merci beaucoup. Cette réponse m'a donné une bonne idée de la façon de concevoir le circuit et de certaines erreurs que j'ai faites. Je vais vérifier les condensateurs et dire les résultats.
danial weaber

3

Chaque fois que vous avez un comportement erratique dans un microprocesseur, il existe deux sources principales pour le problème. 1) condensateurs "bypass" manquants ou insuffisants, 2) broches "flottantes" du microprocesseur.
Chaque "puce" doit avoir un capuchon de dérivation, juste au niveau de la broche de puce connectée à Vcc (+ 5v).
Toute broche non utilisée doit être attachée haut ou bas, mais ne doit jamais être laissée "flottante".

Je suis d'accord que vous ne conduisez pas "assez fort" Q4, je recommande 1K pour R12.


+1 merci dans la réponse. Je vais essayer d'ajouter les condensateurs bipass. Est-il nécessaire d'attribuer des valeurs aux broches que je n'utilise pas dans la conception.
danial weaber

Le mot correct est "découplage" du condensateur, pas "bypass". A également convenu que les épingles flottantes peuvent faire des choses amusantes. J'ajouterais une troisième source principale - des baisses de tension ou des conditions de réinitialisation douteuses similaires. Mais même dans ce cas, lorsque vous avez un débutant qui fait des choses complexes avec des interruptions, mon argent est toujours sur le logiciel.
Graham
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.