Le Registre OSCCAL [ RESOLU ]

Bonjour à tous,

J'ai une question à laquelle j'ai du mal à répondre malgré mes recherches sur le sujet...
du coup j'en viens à vous demander votre aide et poster sur le forum.

En fait j'utilise un Attiny85 à la fréquence de 8 MHz pour compter le temps sur une période de quelques jours (~3/4 jours), le soucis c'est que la fréquence de l'oscillateur interne n'est pas très précise.
Du coup j'ai vu que je pouvais utiliser le registre OSCCAL pour calibrer l'horloge et compter le temps de manière plus précise.

Je n'ai pas besoin d'une grande précision (pas besoin de RTC DS1307 etc..., ou de quartz externe), juste avoir un 8 MHz plus précis.

Comment donc trouver la bonne valeur à entrer dans le registre OSCCAL ?

Je n'ai pas très bien compris ce que dis la datasheet -> mettre le registre OSCCAL à zéro donne la plus basse valeur de la fréquence et le mettre à B11111111 donne la plus grande valeur de la fréquence ?? de quelle fréquence parlent-ils ?

Merci.

Il manque un peut d'infos cruciale :

Comment compte tu le temps ?

Sous quelle tension d'alimentation est alimenté ton ATTiny ? Si elle est bruité ton quartz va souffrir de même si ton µC est placé dans un endroit chaud.

Yacire:
Comment donc trouver la bonne valeur à entrer dans le registre OSCCAL ?
Je n'ai pas très bien compris ce que dis la datasheet -> mettre le registre OSCCAL à zéro donne la plus basse valeur de la fréquence et le mettre à B11111111 donne la plus grande valeur de la fréquence ?? de quelle fréquence parlent-ils ?

Il faut regarder les abaques en fin de datasheet, la valeur de OSCCAL est donné pour une valeur en Mhz souhaité.

Salut,

tout d'abord merci pour ta réponse,

En fait je n'utilise pas de quartz externe, (comme écrit plus haut) j'utilise l'oscillateur interne de l'attiny85, et
La température est entre 20 et 25 °C soit la température ambiante.

J'alimente mon uC avec un accu LIPO, dont la tension chute doucement de 4.2 à 3V lors de la décharge de l'accu.

Je compte le temps en utilisant les interruptions du TIMER0 en incrémentant une variable dans l'ISR.

Ca marche assez bien le soucis, c'est que je perds quelques minutes par 24h... donc j'aimerais calibrer le RC interne pour plus de précision.

EDIT: Je viens de regarder le graphe qui donne la fréquence en fonction de la valeur d'OSCCAL, mais ca ne m'a pas l'air très précis, en gros ca me donne un intervalle dans lequel se situe la bonne valeur mais ensuite comment savoir quelle est la valeur la plus juste ??

Yacire:
J'alimente mon uC avec un accu LIPO, dont la tension chute doucement de 4.2 à 3V lors de la décharge de l'accu.

Utilise tu la batterie sans régulateur ? si non, il faut impérativement utilisé un régulateur !

Yacire:
Je compte le temps en utilisant les interruptions du TIMER0 en incrémentant une variable dans l'ISR.

Ca marche assez bien le soucis, c'est que je perds quelques minutes par 24h... donc j'aimerais calibrer le RC interne pour plus de précision.

C'est normal, le Timer0 a une faible résolution, et c'est assez limite de l'utilisé sur une si longue durée quand il est mal calibrer. quelle est la durée souhaité de comptage au faite ?

Tu devrais regarder là:http://www.atmel.com/Images/doc2555.pdf

Merci à vous pour vos réponses,

@Standby: En fait je ne vois pas l'utilité d'utiliser de régulateur de tension ... En quoi cela est-il indispensable puisque l'attiny85 fonctionne de 2,7v à 5,5v ??

Pour ce qui est de la durée de comptage de temps, environ 7jours. Sinon je n'ai pas compris non plus en quoi la résolution du TimerO peut influencer l'horloge système ?

@fdufnews: Merci je regarderais ça demain, je n'avais pas pensé à aller voir du coté des AN d'Armel ... Juste une question vu que je programme mon attiny avec l'arduino, cela peut-il poser un problème car en jetant un coup d'oeil rapide, je vois Jtag programmer, mkII etc...

Merci.

Merci pepe,

Cependant si j'utilise un quartz externe pour cadencé mon uC, est-je toujours besoin d'un régulateur ou non ?

Je viens de jeter un oeil sur la démarche à suivre pour calibrer le registre OSCCAL, et ça m'a l'air un peu lourd, du coup je pense utiliser un quartz externe, pourquoi pas un quartz 32,768 kHz qui me fera consommer moins de courant.

Une autre question:

Pour les valeurs des capa. à utiliser avec le quartz 32 kHz, je lis dans la fiche technique:

16 pF & 6 pF, cependant j'ai vu une réalisation sur youtube ou une personne utilise le quartz sans capa mais il précise qu'il l'a retiré d'une montre, est-ce que les capa. peuvent être inclus directement dans le quartz ?

Merci.

OK,

Il semblerait que pour le quartz 32 kHz, l'attiny85 inclus déjà les capa. ce qui expliquerait que dans la vidéo youtube cela fonctionne.

Il est clair qu'on trouve de tout sur Internet mais bon il y'a aussi de bonnes choses :).
On lit page 29 de la fiche technique:

The Low-frequency Crystal Oscillator provides an internal load capacitance, see Table 6-11 at each TOSC pin

Table 6-11. Capacitance of Low-Frequency Crystal Oscillator

Device 32 kHz Osc. Type Cap (Xtal1/Tosc1) Cap (Xtal2/Tosc2)

ATtiny25/45/85 // System Osc.// 16 pF // 6 pF

En fait je ne sais pas si c'est les capa. conseillées ou si elles sont déjà inclus dans le uC ?

Bonjour,

Yacire:
En fait je ne sais pas si c'est les capa. conseillées ou si elles sont déjà inclus dans le uC ?

Dans le uC, certainement pas

Merci à toi pepe,

Je regarderais pour le quartz et ferait des tests avec et sans capa. ; sinon aurais-tu une idée de régulateur (LDO ?) pour alimenter mon uC à partir d'un accu LIPO dont la tension varie de 4.2V à 3V. ?

J'ai regardé et je ne trouve que des régulateurs avec chute de tension de 1V. ce qui est trop... 100 ou 200 mV ce serait bien.

Merci.

Yacire:
J'ai regardé et je ne trouve que des régulateurs avec chute de tension de 1V. ce qui est trop... 100 ou 200 mV ce serait bien.

Merci.

bonjour
DO de 0.350V
voir le LT3080

Merci à Tous pour vos réponses,

C'est beaucoup plus clair maintenant, je passe le sujet en RESOLU.

Yacire.