Je viens tout juste de comprendre que les lignes de données et d'horloge I 2 C (SDA et SCL) doivent avoir des résistances de rappel.
Eh bien, j'ai construit quelques horloges avec le RTC DS1307 (voir la fiche technique ) conformément au schéma ci-dessous. Notez que j'ai omis les deux résistances de rappel.
Les deux horloges fonctionnent bien, l'une d'elles fonctionne depuis plus de 3 mois maintenant. Comment est-ce possible? En tout cas, je voulais savoir:
Que se passe-t-il lorsque les tranches I 2 C sont omises?
Le manque de tractions risque-t-il d’endommager l’un ou l’autre de ces deux CI dans mon tableau?
Je cherche des réponses qui traitent de mon cas spécifique de connexion d’ATmega328P à un RTC DS1307, comme indiqué dans les schémas que j’ai fournis, mais si la question n’est pas trop vaste, il serait utile de savoir ce qui se passe lorsque les tractions sont omises en général. , c’est-à-dire dans d’autres scénarios de fonctionnement en I 2 C.
PS J'ai fait des recherches sur le Net pour trouver la réponse, mais je pouvais simplement trouver des articles sur le dimensionnement des tractions.
Mise à jour: J'utilise Arduino IDE 1.03 et mon firmware gère le RTC à l'aide de la librairie DS1307RTC Arduino (via ses fonctions RTC.read()
et RTC.write()
). Cette bibliothèque utilise Wire.h
à son tour pour parler au RTC.
Mise à jour 2: Vous trouverez ci-dessous une série de prises de vue que j’ai prises pour aider à expliquer le fonctionnement de l’I 2 C sans les tractions externes.
Mise à jour 3 (après ajout des versions I 2 C): vous trouverez ci-dessous une autre série de prises de vue prises après avoir ajouté des résistances de protection (4K7) appropriées aux lignes I 2 C (sur le même tableau). Les temps de montée sont passés d’environ 5 µs à 290 ns. Je 2 C est beaucoup plus heureux maintenant.