DS1302 RTC

Bonjour,

J'ai une petite question sur le DS1302. Il m'arrive un truc que je ne pige pas trop.

J'ai donc un DS1302 pour un de mes projets qui ressemble à celui là.

|500x222

Si je le branche directement sur ma carte arduino uno, VCC sur le 5V et GND sur GND, cela fonctionne impeccable. Si je branche le VCC et le GND sur par exemple une board (j ai essayé avec différentes board, différents câbles, différentes cartes arduino uno aussi) j ai un comportement aléatoire (pas la bonne date, pas possible de mettre à jour etc....)

Pouvez vous m'expliquer ce phénomène s'il vous plaît ?

bonjour,
tu peux être plu clair, car tu dis la même chose dans les deux phrases.

Si je le branche directement sur ma carte arduino uno, VCC sur le 5V et GND sur GND, cela fonctionne impeccable.
Si je branche le VCC et le GND sur par exemple une board (j ai essayé avec différentes board, différents câbles, différentes cartes arduino uno aussi) j ai un comportement aléatoire (pas la bonne date, pas possible de mettre à jour etc…)

il te manque déjà des fils pour afficher l’heure et date.

je n’ai pas parler des fils pour la data car ils n’entre pas en ligne de compte.

je reprends mon explication.

premier montage

je branche le module RTC avec 1 fils vers la sortie 5V de l’arduino UNO et un fils sur le GND de l’arduino UNO.

La cela fonctionne impec

Deuxième montage

Je branche mon module RTC sur une board (tester 3 board différentes) avec les même fils que ceux du montage 1
J’alimente la board à partir d’une carte arduino (tester avec 2 cartes différentes)

La cela devient un système beaucoup moins stable.

  • parfois je ne peux pas mettre à jour le GDH
  • quand je démarre j 'ai un GDH bidon (j’ai été envoyé le 1er décembre 2048 : rien n’a changé :slight_smile: )

Un petit shéma pour aider à comprendre le branchement (mais je suis pas fort pour les dessins)

DS1302 OK.png

DS1302 NOK.png

j'avais compris, mais comment sais tu que cela merdouille?

après, ta board a peut être un coup dans les mirettes, mauvaise isolation, chute de tension,etc... ca s'est déjà vu sur des montages différents avec des choses zarbi.

vérifie la tension en sortie pour voir si ca ne vient pas de là et que tu as bien du 5v et aucune interférence entre le 5v et gnd et autre pins.

les board, c'est bien, mais vu comment c'est fabriqué, surtout si model pas cher du tout, ben on a des surprises comme la tienne.

un truc a tester, remplace ton rtc par une led et vois si ca s'allume de la même facon qu'en direct.

Avec 1 board je veux bien mais avec 3 différentes , avec 2 cartes arduino uno différentes ?

Je sais que ca merdouille car lorsque j'utilise mon RTC sur l'arduino (montage 1) et que je mets la date du jour, Si je passe de suite à un montage type 2 ben là je voyage dans le temps a chaque démarrage et si je repasse en suite au montage de type 1 et ben je reviens à la bonne date. (je vais finir par m'appeler marty McFly et à me trouver une delorean)

Pas de soucis avec les autres matériels sur ces 3 boards que j'utilise (LED , BTN, RESIS, CAPA LCD ...)

J ai vérifié au multimètre, sur mes boards j ai les bonnes tensions.

J'ai tester avec les board à vide ou avec d'autre matériel, même comportement.

NOTA : les fils data restent branchés dans les 2 montages directement sur l'arduino, c est pour cela que je parle juste de l'alimentation. j'ai fais ca histoire de dédouaner la data.

bon vu que je ne reste pas les bras croisé à attendre une réponse.

Je viens de voir sur d'autres forums que ces circuits DS1302 peuvent avoir des problèmes avec les cristaux, vous pensez cela pourrait expliquer le problème ?

Mais dans ce cas quelqu'un peu m'expliquer pourquoi ?

As tu un autre module I2C à tester car ce peut être la fonction I2C qui merdouille sur une carte particulière.

On trouve sur Ebay un objet absolument génial pour vérifier les signaux de communication (I2C, SPI, UART) c'est un clone de l'analyseur logique Saleae. Pour environ 7 € (et entre 15 j et 1 mois de bateau) tu as un objet largement suffisant pour tester les communications. Il se connecte sur un port USB du PC. Le logiciel (téléchargeable gratuitement) possède des capacités d'analyse : par exemple en I2C tu verra en clair à l'écran l'adresse du module et les octets échangés,

Au passage les anglo-saxons parlent de "cristal" et nous en France de "quartz" en fait on devrait dire "cristal de quartz" mais c'est trop long. L'important c'est quand même le mot "quartz" car essayes de faire une horloge avec un verre de ton service en cristal : cela ne fonctionnera pas ;) .

ssayes de faire une horloge avec un verre de ton service en cristal : cela ne fonctionnera pas ;) .

c'est pour ca que ma femme arrête pas de gueuler? :)

infobarquee: c'est pour ca que ma femme arrête pas de gueuler? :)

te plains pas, la mienne me chope tous mes quartz :D

ce n est pas un I2C ce module :)

ben pourtant quand je prends les verres de ma femme et que je fais de la musique avec y a bien une histoire de fréquence non ???? :P

ce n est pas un I2C ce module

Chez Maxim ils ont fait une RTC non I2C sans me prévenir ! Ca va plus.

Après lecture de la datasheet → je n’ai pas d’idée.
Juste une petite : avec la carte qui ne fonctionne pas as tu essayé dans le programme et dans le câblage de changer les 3 broches : peut-être une des 3 trois à un soucis.

Je ferais bien un commentaire (il est vrai pas tès utile pour ton soucis) :
A 1 € tu trouve sur Ebay des DS3231 qui ont les avantages suivants :

  • I2C (2 fils au lieu de 3 avec le DS1302) → protocole de communication beaucoup plus simple et plus c’est simple mieux cela fonctionne.

  • Le quartz est interne au boîtier et compensé en température → module beaucoup plus précis.
    Dérive max sur 1 an dans toute la gamme de température (-40°C / +80°C) < 2minutes.
    Si le module reste dans la gamme 20/25 °C la dérive réelle sera plus faible.
    La dérive du 1302 comme pour le 1307 n’est pas quantifiable car le quartz est extérieur au boîtier. Elle dépend du choix du quartz et de la qualité de l’adaptation du quartz. Les chinois savent faire de très bon quartz mais aussi des très mauvais.

  • En cadeau tu as une eeprom 24C32. Par exemple tu peux y enregistrer les dates de mise à l’heure.
    Dans un programme en production tu peux tester si la dernière mise à l’heure n’est trop ancienne.

le soucis ne se produit que lorsque j agis sur l'alimentation c est a dire VCC et Ground. Parfois cela se produit (toujours sur le montage 2) juste en débranchant l'USB qui alimente l'arduino et en rebranchant.

Ou j ai bien vu d'autre module RTC, mais c est surtout le pourquoi qui m'interesse :p. Je vais bien sur ne pas utiliser cette carte pour mes projets depuis que je me suis rendu compte du problème.

Tu sais faut pas non plus être trop borné. Si en liaison direct cela fonctionne tout le temps et en passant par la plaque de prototypage ça ne fonctionne pas c'est que le problème se trouve dan l'utilisation de la plaque en question. Plusieurs possibilités:

  • plaque pourri, c'est plaque ne sont vraiment pas de bonne qualité et j'en ai fait l'expérience par moi-même plusieurs fois
  • les straps utilisés pour faire les liaisons ne sont souvent pas mieux
  • un truc idiot, sur une plaque de prototypage que j'ai les bus d'alimentation sont coupés au milieu. On se retrouve donc avec 2 demi-bus. Dans le cas d'une carte fonctionnant en I²C, tu peux très bien te retrouver sans alimentation sur ta carte qui se retrouve donc alimentée par le SCL et le SDA (à travers les 2 pullup) et qui fonctionne quand ça lui chante. Un ou deux transferts ça marche, un échange un peu long pompe les capa de découplage et la liaison se coupe.

quand tu mets sur ton breadboard ne branche pas le +5volts juste gnd + le spi, j'ai eu le meme genre de truc : uno+shield lcd (pour afficher l'heure) : rtc fail, sans le shield ok sur le moniteur et aussi quelle lib pour le rtc ?