Librairie SoftwareSerial

Bonjour à tous,

J'aurais voulu savoir si la librairie SoftwareSerial fonctionne à la fréquence de 1 Mhz sur un attiny85 ?
J'aimerais baisser la consommation de mon microcontroleur en diminuant sa fréquence d'horloge.

Merci.

Salut,

Normalement ça semble marcher ... Mais avec certaine limitations : visiblement 9600 bauds à l'air OK mais c'est très limite. Mieux vaut privilégier le 4800 bauds. Ensuite le RC interne n'étant pas très précis, attention aux erreurs potentielles sur le timing. Mettre en place une checksum par exemple.

Enfin si tu veux économiser tout est à prendre en compte, notamment la mise en sommeil. il est parfois plus économique de réveiller le µC à pleine puissance pour terminer la tâche plus rapidement et donc retourner en sommeil plus rapidement

Salut B@tto et merci pour ta réponse.

En fait je ne peux pas envoyer l'Attiny en sommeil, puisqu'il effectue des calculs tout le temps par contre je peux descendre à 300 baud, je n'envoie en fait que 4 valeurs (2 float et 2 entiers) via un module Bluetooth série sur l'Attiny (d'où l'utilisation de la librairie SoftwareSerial).

J'ai vu sur la Datasheet du uC qu'en baissant la tension d'alim., je diminue la conso. mais c'est surtout la fréquence qui joue.

Sinon je n'ai pas bien compris le lien entre la fréquence et les erreurs sur le timing ? plus la fréquence d'horloge est élevée moins il y'a d'erreurs de transmission ? où c'est en lien avec les baud ?
Personnellement travailler à 1 MHz et 300 baud, c'est parfait.

Merci à toi.

En fait c'est une question de précision : le RC interne n'a pas une précision d'enfer, et plus ton débit est élevé, plus une erreur absolue sur le temps devient gênante. Concrètement à 9600 baud ça fait 0.1 ms/bit. Si ton erreur sur l'horloge devient supérieure à 0.1 ms, et bien la transmission sera erronée puisque la communication en série est asynchrone (= il n'y pas d'horloge réelle comme sur du SPI ou de l'i2c, elle est virtuelle).

1 Mhz à 2% d'erreur (et je suis généreux) ça fait vite des ms d'erreur ... Bon après à chaque bit de start il y a resynchro, donc il ne faut pas que l'erreur sur 10 bits soit > à un bit en lui même

Salut B@tto,

En fait je reviens vers toi, vu que la librairie Softwareserial ne fonctionne visiblement pas à 1 MHz, j'ai une erreur en compilant qui me dit de choisir une fréquence de 8 ou 16 MHz ...

Saurais-tu où je pourrais trouver une librairie série compatible à la fréquence d'horloge de 1 MHz ?
cela me permettrait de diviser la consommation de l'Attiny85 par 5 (même >5).

J'ai une autre question en rapport avec la référence de tension interne (INTERNAL1V1 & INTERNAL2V56) que l'on trouve dans l'Attiny et qui peut être utiliser par le CAN pour mesurer une tension.

En fait lorsque j'utilise la fonction analogReference (INTERNAL1V1) ou analogReference (INTERNAL2V56) il y'a une erreur dans la compilation... Je ne comprends pas d'où cela peut venir ?

Merci pour ton aide.

Problème résolu,

la référence interne (1.1V & 2.56V) de l'Attiny85 fonctionne très bien, c'était une erreur du code.

La librairie Softwareserial ne fonctionne pas à 1 MHz (dommage) donc utilisation d'un des modes de sommeil disponibles de l'Attiny pour réduire la conso. électrique (voir datasheet).

Salut.