Go Down

Topic: Fréquence quartz de l'Arduino (Read 7297 times) previous topic - next topic

Rigolo

Bonjour,
J'ai deux cartes de méga. Sur l'une la fréquence du quartz est à 16 MHz (normal) l'autre est à 12 (copie chinoise). Les fonctions delays et milis sont elles affectées avec cette fréquence moindre?
Merci.

hazerty565

#1
Feb 06, 2016, 11:57 am Last Edit: Feb 06, 2016, 12:02 pm by hazerty565
"millis" et "micros" sont generé par l'oscillateur interne.

L'Arduino est dotée d'une horloge à quartz interne reglabe jusqu'a la frequence de 16 Mhz.

Lorsque votre programme démarre, cette horloge est utilisée afin de permettre à la fonction "millis" de vous renvoyer le nombre de millisecondes écoulées depuis le démarrage de votre programme.

Elle permet également à la méthode "micros" de renvoyer le nombre de microsecondes écoulées depuis le démarrage du programme. Grâce à ces fonctions, nous allons pouvoir exécuter des instructions au moment voulu.


il est simple d'utiliser la fonction "delay", mais elle montre rapidement ses limites lorsque on  veux exécuter des instructions de manière concurrente.

tu peux utilisé sans quartz aussi, tu peux generé un signal par une sortie PWM, et la rebouclé sur une entré analogique, ce qui fait office de quartz, pour une synchro ..

trimarco232

Quote
Sur l'une la fréquence du quartz est à 16 MHz (normal) l'autre est à 12 (copie chinoise)
ce n'est pas normal. Toutes les instructions dépendant de la vitesse d'horloge iront différemment, à commencer par le bootloader qui ne fonctionnera plus après remise à jour ...

... et c'est aussi très étonnant : pardonne-moi, mais tu ne confonds pas avec le quartz du ch340g, par hasard ?

Artouste

bonjour
avis identique à celui de trimarco
sur un mega "officiel" l'horloge de l'atmega est fournie par un résonateur et pas un quartz (idem uno)
le quartz est utilisé par le 16U2 qui gere l'USB

les clones asia utilisent pour la gestion USB des chips dediés qui peuvent eux utiliser une horloge 12MHz

68tjs

Idem trimarco232 et Artouste : le micro-controleur n'est pas équipé avec un quartz mais avec un résonnateur.

Un résonnateur c'est tout petit et il n'y a rien d'écrit dessus, ou seulement un code cabalistique.

Un résonnateur c'est moins précis qu'un quartz  (100 fois moins) mais c'est moins cher et la précision reste suffisante pour l'usage des cartes arduino.

Par contre pour l'UART il faut absolument de la précision c'est pour cela  qu'il y a ce quartz, effectivement très fréquement à 12 MHz.



trimarco232

Quote
Par contre pour l'UART il faut absolument de la précision c'est pour cela  qu'il y a ce quartz, effectivement très fréquement à 12 MHz.
L'usb et l'uart se contentent d'une relative précision, l'un ou l'autre %. Depuis, parfois, ce quartz est omis au profit d'un rc interne qui au besoin se cale sur l'usb host.


Quote
tu peux generer un signal par une sortie PWM, et le reboucler sur une entrée analogique, ce qui fait office de quartz, pour une synchro ..
intéressant, peux-tu développer ?

ChristopheFr

Ca m'a aussi intrigué. Sur une carte générique, j'ai juste un quartz 12Mz, utilisé pour piloter le CH340 je présume, et aucun autre quartz ou résonnateur externe n'est visible.
D'après le datasheet, l'ATMega possède un résonnateur interne, mais il est calibré à 8Mhz.
Avec la fonction millis(), j'ai mesuré une fréquence de 15,8Mhz.
La carte se comporte comme si elle était cadencé à 16Mhz.
Résonnateur interne à 16Mhz?

Artouste

un résonateur ça prend la place d'un compo cms
il faut savoir où chercher

trimarco232

#8
Feb 06, 2016, 05:08 pm Last Edit: Feb 06, 2016, 05:10 pm by trimarco232
Quote
faire produire par le micro-contrôleur de communication un signal d'horloge qui serait injecté sur l'entrée XTAL1 du micro-contrôleur d'application
cela me rappelle un projet que j'ai laissé sans suite :

ChristopheFr

un résonateur ça prend la place d'un compo cms
il faut savoir où chercher
Merci.
Au temps pour moi, j'ai fini par le trouver en cherchant à la loupe. J'avais encore en mémoire les vieux résonnateurs des posts radio (rien à voir niveau dimension :D ).

Rigolo

Bon comme j'ai pas réussi à trancher avec vos posts, j'ai simplement fait un delay de 10 mins sur les deux cartes et lancé un chrono à coté: sur la "normale" 10min + ou - 1 seconde. Sur la copie à 12 Mhz: 10 mins et 5 secondes. Conclusion le quartz de 12 Mhz n'augmente pas le delay de 16/12, quand à la précision... un petit décalage apparemment.

fdufnews

Il n'y avait rien à trancher on t'a juste expliqué que le quartz 12MHz est utilisé par l'interface USB et non pas par l'ATmega.

68tjs

+1
Tu as vérifié que le délai réalisé avec un atmega + résonnateur 16MHz était égal à celui réalisé par autre atmega + résonnateur 16MHz.

Nous sommes rassuré, à la dispertion de fabrication près, 16 MHz = 16 MHz.

Go Up