J'utilise PIC18F4680 et j'ai des problèmes pour l'exécuter à partir d'une source d'horloge externe à 40 MHz ou d'un cristal à 10 MHz en mode HSPLL. L'utilisation d'un cristal à 10 MHz en mode HS semble convenir et un cristal à 5 MHz en mode HSPLL fonctionne également très bien.
Ce qui se passe, c'est que le PIC démarre, fonctionne pendant quelques secondes, puis s'arrête pendant un certain temps et redémarre. La période totale du cycle est d'environ 5 secondes à partir de laquelle le PIC fonctionne cesse de fonctionner au début de la seconde seconde.
J'ai également remarqué que parfois, lorsque j'ajoute un condensateur suffisamment grand déchargé au bus d'alimentation de la maquette, le PIC fonctionne correctement. Le point intéressant est que cela ne se produit que si j'ajoute le condensateur alors que le PIC fonctionne déjà. Si j'alimente la maquette avec le condensateur là-bas ou si je place un condensateur qui n'a pas été complètement déchargé, le problème persiste.
J'ai lu sur certains sites que des problèmes similaires au mien peuvent survenir en raison de la consommation d'énergie accrue du PIC sur une fréquence plus élevée et une tension de fonctionnement la plus basse la plus élevée. Dans ces cas, s'il y a de courtes chutes de tension sur l'alimentation, elles sont plus susceptibles d'atteindre la tension de fonctionnement la plus basse du PIC sur cette fréquence, c'est donc une bonne idée d'avoir des condensateurs supplémentaires sur la planche à pain pour résoudre ce problème. Depuis pleine charge à 40 MHz, les utilisations entières de circuit autour de 64 mA, ma première idée était de mettre un peu de condensateurs au tantale en espérant qu'ils seraient assez grand et avoir ESR assez bas pour résoudre le problème. L'un n'a pas aidé et le second n'a pas aidé non plus. J'ai donc ajouté 100 μ Fcondensateur en aluminium et cela n'a pas aidé non plus. Ensuite , j'ai ajouté un condensateur en aluminium sans effet. À la fin, j'ai ajouté un condensateur électrolytique en aluminium de 1 mF, puis pour la première fois, le circuit a bien fonctionné jusqu'à ce qu'il soit éteint et rallumé. Je dois également noter qu'à des fins de test, j'utilise un Vcc de 5,5 V, qui est la tension nominale la plus élevée pour ce microcontrôleur. Cela devrait me laisser de la place jusqu'au 4,2 V qui est la tension de fonctionnement la plus basse à 40 MHz
Ensuite, je l' ai lu que peuvent causer quelques problèmes, donc je mets parfois des sorties flottantes résistances de traction vers le bas à toutes les broches non utilisées et cela n'a pas aidé non plus . Après que je l' ai lu que , parfois , il pourrait y avoir des problèmes si les entrées de l' oscillateur flottaient, j'ai donc essayé de les connecter à la masse à l' aide des 10 M Ohm résistances et cela n'a pas aidé.
En raison de la longueur du fil allant de la sortie de l'oscillateur à l'entrée de l'oscillateur au PIC, je m'attendais à des problèmes, mais je ne m'attendais pas à des problèmes avec le cristal à 10 MHz qui est très proche des broches de l'oscillateur sur le PIC. Aussi avec le cristal, je m'attendrais à des problèmes en mode HS aussi, si la distorsion du signal de l'oscillateur due à la maquette était le problème, mais en mode HS, le PIC fonctionne bien.
J'utilise normalement des condensateurs de 33 pF pour les cristaux, mais j'ai aussi essayé avec 15 pF et je n'ai détecté aucun changement.
Je dois également noter que ce PIC a un moniteur d'horloge à sécurité intégrée et un basculement d'oscillateur interne / externe. J'ai essayé de les activer tous les deux, en espérant qu'ils confirmeraient au moins que le problème est avec l'oscillateur, mais ils n'aident pas le problème. Il n'y a aucune différence, qu'ils soient allumés ou éteints.
J'ai également désactivé à des fins de test la minuterie du chien de garde, la réinitialisation du brunissement et la réinitialisation du dépassement / dépassement de la pile. Je pense que j'ai désactivé toutes les sources de réinitialisation pour cette puce. De plus, le programme est dans une boucle infinie, donc il ne se termine pas.
Le PCF8583 n'a aucun problème et continue de fonctionner correctement même lorsque le PIC se réinitialise, mais d'un autre côté, il a une tension minimale beaucoup plus faible.
Malheureusement, je n'ai pas d'oscilloscope, mais j'ai fait des tests avec une carte son (taux d'échantillonnage de 96 kHz) et j'ai remarqué que lorsque le RTC est activé, il y a un bruit de 25 Hz sur la ligne électrique. Le programme que j'utilise rapporte quelque 300 mV crête à crête, mais je ne sais pas à quel point lui faire confiance et je ne sais pas si cela suffirait à causer des problèmes pour le PIC. Quand tout est éteint, le bruit est d'environ 100 mV crête à crête, donc ça devrait aller.
Au cas où cela aiderait, voici l'image de la planche à pain elle-même: (clic droit -> voir l'image en taille réelle)
Alors, quelqu'un a-t-il une idée de ce qui se passe ici?
En fin de compte, je pourrais simplement exécuter le PIC à 20 MHz, mais si j'avais besoin de plus de puissance de traitement, j'aimerais pouvoir le faire fonctionner à 40 MHz.
MISE À JOUR
J'ai placé un autre régulateur sur la planche à pain elle-même et le bruit capté par la carte son est maintenant beaucoup plus faible (environ 50 mV crête à crête), mais cela n'a pas influencé le problème principal.