Forum Électro-Bidouilleur

Merci de vous connecter ou de vous inscrire.

Connexion avec identifiant, mot de passe et durée de la session
Recherche avancée  

Nouvelles:

Le Forum est maintenant chiffré (préambule https). Bien sûr, des liens externes insérés dans les sujets vont demeurer inchangés. Mais la composition des pages du Forum est désormais sécurisée. Si des problèmes d'affichage surviennent, veillez à vider votre cache pour ce site.

Auteur Sujet: [Résolu] Réglage de la dérive sur une RTC Microchip MCP794110  (Lu 1920 fois)

guigui

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
[Résolu] Réglage de la dérive sur une RTC Microchip MCP794110
« le: Février 18, 2020, 06:00:26 pm »

Bonjour,

Je travaille sur sur un petit prototype utilisant un PIC 18F45K50 et une RTC MCP794110.
Tout fonctionne parfaitement, mis à  part une dérive de quelques secondes par jour.

En suivant le datasheet, j'essaye d'utiliser la fonction "digital trimming" de la RTC pour compenser cette dérive.
Pour celà  j'ai fait les calculs fournis qui m'ont permis de déterminer que j'ai une dérive d'environ -46 ppm.

J'écrirs cette valeur dans le registre OSCTRIM selon les instructions, mais celà  semble semble sans effet.
Quand je relis le registre, je reçois systématiquement 0 et, après de nouvelle mesure, la RTC dérive toujours de -46 ppm.

Pour info, j'utilises MPLAB X avec les drivers I2C et RTC fournis par le configurateur intégré à  l'IDE et toutes les autres fonctionnalités de la puce fonctionnent.

J'ai aussi essayé d'arrêter la RTC avant d'écrire, mais le registre reste malgré tout à  0.

Existe-t-il une procédure spéciale pour utiliser cette fonction?

EDIT :
Après une lecture attentive du code du driver fourni par Microchip, il me semble que c'est lui qui pose problème.
En effet les masquages de bits utilisés pour séparer la valeur et le signe m'ont l'air d'avoir été fait à  l'envers  :o

J'ai fait de nouveau essais en retirant la logique de masquage, ce qui me permet de manipuler l'octet entier directement et de gérer le signe moi-même.
Et là , je peux bien relire la valeur que j'écris.

Je vais donc retenter un calibrage pour voir si ça marche mieux  :)

Pour info :
Le datasheet de la RTC : https://ww1.microchip.com/downloads/en/DeviceDoc/MCP79410-MCP79411-MCP79412-Battery-Backed%20I2C-RTCC-20002266J.pdf
Le digital trimming est détaillé page 30.
Ci-joint le code des fonctions fournies par Microchip (obtenu via le Code Configurator de MPLAB X).

EDIT : Le problème venait bien du driver. Maintenant que je l'ai retiré pour accéder directement au registre, la fonction de calibration fonctionne parfaitement.
« Modifié: Février 26, 2020, 11:40:40 pm par guigui »
IP archivée