Êtes-vous déjà arrivé(e) en retard en cours parce que votre réveil s'est arrêté à 3h15 du matin ? À l'époque du lycée, la sonnerie de mon réveil n’était pas très agréable, mais les réprimandes de ma mère étaient bien pires. Mon réveil avait manifestement cessé de fonctionner parce que la pile était morte. Ceci dit, si j’avais été plus attentif, j’aurais remarqué que mon réveil était de plus en plus en retard à mesure que la pile se vidait. En vérité, j'aurais pu la remplacer dans les temps pour éviter de subir les cris aigus de ma mère. Maintenant que j'ai grandi, j'ai laissé de côté mon réveil-matin pour me concentrer sur la conception d'horloges temps réel (Real Time Clock, ou RTC). Les horloges temps réel sont généralement des circuits intégrés (IC) qui mesurent l'écoulement du temps sur base d'une norme prédéfinie. En général, ces horloges consomment très peu d'énergie et sont conçues pour continuer à fonctionner après la mise hors tension du système principal. Si l'horloge temps réel de votre système rencontre un problème, les conséquences sont autrement plus sévères qu'une réprimande maternelle. Étudions pourquoi ces horloges sont si importantes, et quelles bonnes pratiques vous éviteront de finir en retenue.
Votre DRH sera mécontent(e) si vous arrivez en retard
Presque tous les systèmes embarqués sensibles au temps et axés sur des données sont pourvus d’une horloge temps réel. Ces systèmes effectuent des actions spécifiques certains jours, à des moments précis. Par exemple, un système de sécurité de porte peut activer des priorités d’accès différentes en fonction de l'horaire configuré. Un problème de l'horloge temps réel peut empêcher une porte de s'ouvrir quand elle le devrait.
En outre, l'horloge temps réel est critique dans les systèmes embarqués qui enregistrent des événements et des alarmes supposés constituer une base de vérification fiable. Par exemple, dans un système de gestion des RH qui permet de suivre la présence des employés en fonction des heures prestées, ou un système d’alarme incendie qui doit tenir un registre des alertes.
Omettre les bonnes pratiques pendant la conception d'une horloge temps réel peut se révéler coûteux, surtout si les dispositifs ont déjà été déployés sur le terrain. Dans un de mes emplois précédents, les horloges temps réel d'un lot de contrôleurs de paiement autonomes pour un système de stationnement ont développé un problème. Les horloges ralentissaient progressivement par rapport au temps réel. Résultat : des clients mécontents d'avoir reçu des tarifs de stationnement incorrects.
Concevoir le circuit d'une horloge temps réel peut paraître simple puisque vous n'avez besoin que de 5 composants dans la plupart des cas. Il suffit d'une puce RTC dédiée ou d'une RTC intégrée dans un microcontrôleur, d'un cristal, de condensateurs et d'une pile bouton. J'ai pris pour habitude de respecter systématiquement ces instructions de conception :
1. Placez le cristal aussi près que possible de l'horloge temps réel et gardez la trace aussi courte que possible. Vous réduirez ainsi le risque de couplage de bruit.
2. Ne faites passer aucune autre trace entre l'horloge et le cristal, ou sous la trace déjà positionnée. Vous éviterez ainsi le couplage d'interférences indésirables dans le signal d'horloge.
3. Ne routez aucun signal haute vitesse aux abords immédiats d'un circuit d'horloge temps réel. Conservez une distance recommandée de 200 mm entre les deux éléments.
4. Placez un plan de masse sous et autour du circuit d'horloge et éloignez-le des autres plans de masse d'au moins 40 mm.
5. Assurez-vous que vous utilisez la valeur correcte pour les condensateurs de charge du cristal, comme spécifié dans la fiche technique du cristal.
Les erreurs de conception d'une horloge temps réel se traduisent par un ralentissement ou une accélération de l'horloge par rapport au temps réel. Dans certains cas, les symptômes sont évidents dès la conception, et on peut éliminer les erreurs du prototype. De temps à autre, ces problèmes peuvent passer inaperçu lors des tests en laboratoire et n'apparaître qu'en conditions réelles.
Ce fut le cas avec les contrôleurs de paiement, qui fonctionnaient très bien dans notre laboratoire. Or, nous avons été bien vite avertis par les cris des clients en colère, et nous avons dépanné les appareils. Dans notre laboratoire, l'environnement électrique est pour ainsi dire idéal, tandis qu'au-dehors, le réseau électrique se montre souvent bruyant. On peut souffrir de bruits électriques couplés à d’autres appareils, ou d'une mauvaise mise à la masse du bâtiment lui-même. Une fois que nos contrôleurs ont été déployés, ce bruit s'est répandu dans une alimentation de moindre qualité, dans une trace de tension sur le circuit imprimé qui s’étend entre les traces reliant le cristal à l'horloge et dans le signal d'horloge. Ce signal est une onde carrée typique, qui oscille à 32,768 kHz. Toute perturbation faussera l’exactitude de l'horloge temps réel, ce que nous avons constaté de première main.
Retravailler manuellement des centaines de circuits serait une gageure.
Malheureusement, on ne peut pas réparer d'un coup de baguette magique une conception d'horloge ratée quand les produits sont déjà déployés sur le terrain. Dans certains cas, vous pouvez concevoir un autre module d'horloge temps réel fonctionnel et le câbler manuellement au contrôleur.
Dans d'autres cas, les périphériques sont trop serrés dans leur boîtier ou installés dans des produits de consommation de masse. Il est donc impossible de les améliorer. Dans ce cas, il faudra fabriquer des produits de remplacement pourvus d'une horloge fonctionnelle.
Ces situations fâcheuses sont susceptibles de vous coûter du temps et de l'argent, sans parler du préjudice porté à votre réputation. Dès lors, il vaut mieux prendre toutes les précautions d'usage en concevant les circuits d'horloges temps réel. Pour réaliser des économies sur le long terme, utilisez un bon logiciel de conception de circuits imprimés, tel que CircuitStudio d'Altium. Vous pouvez aussi consulter les meilleures pratiques de conception de circuits sur notre blog pour éviter tout problème après le déploiement.
Vous avez des questions sur la conception d'horloges temps réel ? Contactez un expert Altium.