ATTiny USI I2C Introduction - une interface de communication puissant, rapide et pratique pour vos projets ATTiny ! (5 / 8 étapes)

Étape 5: Implémentation du Code ATTiny USI I2C - USI Hardware

Alors, avant de nous pencher sur code, jetons un œil sur la feuille de données.  Plus précisément, je m’intéresse à la feuille de données ATTiny2313 car c’est la puce que j’utilise, mais le même matériel USI peut être trouvé dans beaucoup de différents modèles ATTiny.  Notez que les broches de sortie peuvent différer entre les puces, mais dans le cas contraire, le matériel fonctionne de la même manière et a les mêmes registres.

Le matériel de l’USI a trois broches:

DO - sortie de données, utilisé pour trois fils (SPI) mode de communication uniquement

DI/SDA-série/entrée de données, utilisé comme SDA dans configuration I2C

Denise/SCL - horloge, utilisé comme SCK en configuration I2C

En outre, le matériel de l’USI a trois registres:

Données de déplacements USIDR - Registre à décalage données USI - dans et hors de la quincaillerie de l’USI

USISR - USI Status Register - a les drapeaux d’État et compteur 4 bits (voir ci-dessous)

USICR - USI contrôle Register - a permet d’interrompre, horloge modes et fonctions du logiciel horloge stroboscopique

Compteur 4 bits

Le compteur 4 bits occupe les 4 bits de poids faible de USISR et est utilisé pour chronométrer les interruptions de débordement lors du fonctionnement en mode esclave ainsi que pour aider à générer des impulsions d’horloge SCK en mode "master".  Étant un compteur 4 bits, il compte vers le haut de 0 à 15 avant débordement.  À pleins à craquer, il peut déclencher une interruption (USI_OVERFLOW_vect, activé par un peu en USICR).  Ceci est utilisé pour la table d’État esclavagiste USI pour garder une trace de transmission qu’il bascule entre les États de transmission (plus à ce sujet dans la section de code slave).

Lorsqu’il agit comme un maître, le compteur 4 bits est utilisé avec le bit horloge stroboscopique USICR pour générer l’horloge de la SCK.  Vous mettre le compteur à déborder dans le nombre d’impulsions d’horloge vous souhaitez générer (généralement 8 ou 1, avec 8 étant une transmission de données et 1 étant une transmission ACK/NACK).  Ensuite, vous en boucle jusqu'à ce que les débordements de compteur, continuellement définissant le bit de stroboscope de horloge et effectuant une délai d’attente.  Plus d’informations sur cela peut être vu dans la section code maître.

Unité de contrôle horloge à deux fils (détecteur de Condition de départ)

L’unité de commande d’horloge TWI est un module à l’USI qui surveille la ligne SCK pour démarrer et arrêter des conditions.  Son but premier est le détecteur de la condition de démarrage, qui, lorsque activé, génère une interruption de la USI_START_vect dès qu’il détecte une condition de départ valide.  Ce gestionnaire d’interruption est le point de départ pour la manutention de transmission mode esclave I2C USI et doit mettre en place le compteur 4 bits débordement après que la transmission de l’adresse s’est produite.  A partir de là, l’interruption de débordement gère le reste de ce message I2C et réinitialise le détecteur de condition de départ pour le prochain message.

Lire la fiche technique

Je n’entrerai pas dans les détails sur chacun des bits dans chacun de ces registres, mais si vous cherchez à écrire du code de l’USI, il est essentiel que vous Lisez ces sections de la feuille de données.  Je recommande la lecture de l' ensemble universel Interface Serial - section USI (pages 142-150 de la fiche technique complète de ATTiny2313).  Cela vous donnera toutes les informations dont vous aurez besoin en plus de ce que j’ai souligné ici.

Articles Liés

Arduino Solar Shield - une source solaire DIY pour vos projets sans attendre pour les PCB

Arduino Solar Shield - une source solaire DIY pour vos projets sans attendre pour les PCB

cette instructable est une version basique de Bley Joel ("il est 09:00 le samedi, la foule ordinaire doit lire aléatoirement dans") Bouclier solaireet cela devrait fonctionner pour la plupart arduinos.  Je l'ai testé avec Arduino Pro de SparkFun
Comment faire une Cascade à peu de frais 80 poissons filtrent pour vos amis louche

Comment faire une Cascade à peu de frais 80 poissons filtrent pour vos amis louche

je suis fatigué de payer un ensemble-lotta-comptant pour mes filtres poissons Cascade 80 que j'avais pour remplacer toutes les deux semaines. Alors j'ai décidé de faire mon propre, utilisation de four à vent couvre, charbon actif et et un filtre usag
Arduino contrôlée stores automatisés avec une interface utilisateur Web

Arduino contrôlée stores automatisés avec une interface utilisateur Web

cette instructable est un guide détaillé sur la façon de construire un contrôleur automatisé pour exécuter un moteur pouvant fonctionner à l'ouverture et la fermeture des stores. Le contrôleur permet les blinds ouvrir et fermer basé sur un calendrier
PC sous contrôle Robot Bluetooth (avec une interface graphique utilisateur!)

PC sous contrôle Robot Bluetooth (avec une interface graphique utilisateur!)

Dans ce Instructable je vais vous montrer comment construire un robot qui est contrôlé par l'intermédiaire de Bluetooth à l'aide d'un clavier, dispose d'une interface utilisateur graphique construite avec traitement qui affiche l'entrée au clavier et
AVRSH : Une interface d’interprète de commande pour Arduino/AVR.

AVRSH : Une interface d’interprète de commande pour Arduino/AVR.

Jamais voulu être « connecté » à votre Microcontrôleur AVR ? Jamais pensé que ce serait cool de « chat » un registre pour voir son contenu ? Avez-vous toujours voulu un moyen d'allumer et éteindre les différents sous-systèmes périphériques de votre A
DIDI : Une Interface MIDI portable pour une utilisation DJ

DIDI : Une Interface MIDI portable pour une utilisation DJ

Arrière-planDIDI a été mon projet de dernière année de mon baccalauréat en technologie musicale et électronique appliquée à l'Université de York. Mon défi était de créer une pièce de musique portable technologie. Ayant eu quelque expérience avec DJ d
Interface de communication 1-wire

Interface de communication 1-wire

ce qui est de la technologie 1-Wire ?La base de la technologie 1-Wire est un protocole série en utilisant une référence de ligne plus au sol de données unique pour la communication. Master 1-Wire lance et contrôle la communication avec un ou plusieur
TapTunes - une Interface Tap à iTunes

TapTunes - une Interface Tap à iTunes

dans le cadre de mon projet à terme Human-Computer Interaction, je fouette un petit programme qui permettrait aux utilisateurs de contrôler iTunes en cliquant sur les différents modèles sur un capteur piézoélectrique.  La base de ce projet était le K
Début microcontrôleurs partie 2: Création d’une Interface SPI du programmateur au microcontrôleur

Début microcontrôleurs partie 2: Création d’une Interface SPI du programmateur au microcontrôleur

Bonjour, nous espérons que vous avez apprécié la partie 1 de début de microcontrôleurs. Nous allons avancer dans la partie 2 et de commencer à parler sur les interfaces et comment obtenir votre microcontrôleur pour communiquer avec un ordinateur.Donc
Cubecube : Une Interface Tangible CAD.

Cubecube : Une Interface Tangible CAD.

Cubecube - un projet open source hardware - est une interface tactile tangible pour la CAO (conception assistée par ordinateur.) Design open source plateformes continuent d'émerger, il est l'occasion d'explorer de nouvelles possibilités dans la façon
Introduction à une tension de la courroie numérique jauge.

Introduction à une tension de la courroie numérique jauge.

Car j'ai plus ou moins fait entretien complet sur le mien, j'ai toujours voulu une tension de la courroie numérique jauge pour vous assurer que mes ceintures accessoires ont été installés correctement. Arrive alors le btt2880 de landtek que j'ai vu s
Comment faire une boîte commune

Comment faire une boîte commune

qui lit mon profil peut vous l'aviez remarqué que pour travailler le bois est le premier sur ma liste d'intérêts. Alors, où sont tous les articles de menuiserie ? Toujours est-il que je ne document souvent ces projets. Faire des joints à emboîtement
Chauffage avec VSCP et une interface web de la maison

Chauffage avec VSCP et une interface web de la maison

Mes parents sont retraités et vivent dans le sud de la France. Chauffer pendant l'été, mais il peut aussi être froid en hiver.Ils utilisent pour voyager pendant plusieurs semaines au cours de l'hiver pour visiter des amis et famille, et qu'ils chauff
Interface d’ordinateur de mains-libres bricolage pour moins de 200 $: oculomètre + EMG + Arduino

Interface d’ordinateur de mains-libres bricolage pour moins de 200 $: oculomètre + EMG + Arduino

Dans l'ensemble, il s'agit d'un projet génial, cool et en fait sorte de pratique ! (Tri-force de pouvoir!!!) Mais pour de vrai, à la fin de la journée, vous apprendrez comment faire tant de choses et d'avoir quelques technologie de fine pointe sur vo