Attiny85 et quartz 20MHz externe

Bonjour !

Je ne comprends pas, j'ai un Attiny85 que je souhaiterais utiliser avec un quartz 20MHz externe.
Lorsque j'upload un sketch sur le Attiny85 en sélectionnant le type de carte "Attiny85 1MHz", j'ai l'impression que le programme tourne plus rapidement que lorsque je sélectionne "20MHz", bien sur avec un quartz 20MHz connectée aux broches "XTAL1" et "XTAL2".

Est-ce normal ou me suis-je planté quelque part ?

Merci beaucoup par avance :slight_smile:

Bonjour,
non c'est normal.
Jacques

D'accord, merci.
Mais la logique ne voudrait pas que ce soit l'inverse ?

Lorsque tu sélectionnes 1MHz toutes les temporisations sont calculées pour cette valeur de quartz.
Si le quartz fait 20MHz alors tous les délais sont 20x plus courts.

Mais et donc, en utilisant un quartz 20MHz et en choisissant la Attiny85 1MHz, ça veut dire que l'Attiny85 est 20x plus "puissant" que d'origine ?

Un Attiny85 avec un quartz à 1MHz exécute les instructions à 1MHz.
Un Attiny85 avec un quartz à 20MHz exécute les instructions à 20MHz.
Maintenant si tu déclares à la compilation que l'horloge est de 1MHz alors que l'horloge de l'Attiny85 est de 20MHz toutes les fonctions dépendantes de l'horloge seront fausses (les timers, la vitesse des liens série) car le compilateur fait ses calculs pour la configuration des périphériques sur des informations erronées.
Il ne sera pas plus puissant pour autant.

Bonjour,

Pour que ton attiny85 tourne à la bonne horloge, tu dois ajouter dans ton fichier board.txt du repertoire /arduino (ou attinycore, ché plus) une entrée pour ta config. Celle-ci devra faire apparâitre les bons fuses (high_fuse, low_fuse, extended_fuse) afin que la puce soit correctement programmée.

Je n'ai pas trouvé de attiny85 tournant à 20Mhz sur AVR® Fuse Calculator – The Engbedded Blog (J'ai mal vu ou le site n'est pas complet ???)

J'ai trouvé ceci sans aucune garantie :

attiny85-20.name=ATtiny85 (external 20 MHz clock)
attiny85-20.bootloader.low_fuses=0xfe
attiny85-20.bootloader.high_fuses=0xdf
attiny85-20.bootloader.extended_fuses=0xff
attiny85-20.upload.maximum_size=8192
attiny85-20.build.mcu=attiny85
attiny85-20.build.f_cpu=20000000L
attiny85-20.build.core=arduino:arduino
attiny85-20.build.variant=tiny8

@+

Zoroastre.