Parlons Arduino > Débuter

Problème i2c sur attiny85

(1/2) > >>

LEX:
Bonjour,
J'ai besoin de vos lumières. Je programme un attiny85 avec un pickit4, ce qui permet d'utiliser le debugWire grâce au logiciel Microchip (Atmel). J'ai compris le fonctionnement le fonctionnement du mode SPI (3 fils) en utilisant le Software Clock. Je souhaitais utiliser le mode TWI en utilisant le Timer/Counter0 Compare Match comme source d'horloge. Dois-je utiliser utiliser OC0A (utilisé normalement pour SDA) ou OC0B en sortie d'horloge ?
Ou utiliser l'interruption du comparateur du timer0 pour basculer la sortie USCK et ainsi créer une horloge ? Difficile d'interpréter le fonctionnement en configurant USICR|=(1<<USICS0)|(1<<USIWM1).
J'aime comprendre le fonctionnement des microcontroleurs et de leur registre.

Pierre59:
Bonjour

J'ai utilisé l'I2C sur un attiny il y a longtemps. Atmel fournissait alors une petite bibliothèque C, pour utiliser l'I2C assez facilement. Elle montrait comment tirer le meilleur parti du hard disponible, en intervenant bien sûr sur les registres.

Si cela vous intéresse je dois pouvoir la retrouver.

Pierre

Il y avait aussi une bibliothèque SPI.

LEX:
Je serai très intéressé par cette bibliothèque. Elle pourrait me permettre à mieux comprendre le fonctionnement des attiny.
Autre question (idiote hélas), j'ai une impression que le système de drain ouvert sur l'attiny avait un comportement capacitif : le début des formes carrés de mes signaux (i2c) a une forme arrondie (résistances pull-up installées, bien sûr) provoquant une sorte de filtre passe-bas et me limitant à des fréquences d'horloge faibles. Sur mon oscilloscope, j'ai remarqué qu'on ne pouvait pas monter jusqu'à 400kb/s. Avez-vous remarqué ce genre de comportement sur ce genre de produit ? Une caractéristique du mosfet à drain ouvert ?

Pierre59:
Bonjour

Voila les fichiers pour faire de l'I2C sur les attiny.

Concernant les résistances de pullup, j'utilise en général des résistances externes de 4.7K pour avoir un pullup énergique.

Pierre

LEX:
Bonjour,
J'ai consulté votre librairie. Elle est intéressante car elle explique bien le fonctionnement de l'attiny (tout modèle confondu) en mode esclave. Mais ce mode ne génère pas d'horloge. Je l'utiliserai pour une application bien particulière. J'ai lu la documentation de Microchip (Atmel) AVR310 et je suis déçu car il utilise en réalité le Software Clock et la librairie delay.h. Et par conséquence, l'exploitation de ces 2 librairies occupe plus d'espace dans la mémoire flash et bloque le process (quand on peut utiliser un ou deux cycles d'horloge pour faire quelque chose en parallèle). J'essaierai de changer mes résistances pull-up et d'observer le tout à l'oscilloscope. Je vous remercie pour la documentation.  ;D

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique