Ultrasons, ruban à mesurer (4 / 13 étapes)

Étape 4: quelques mots sur bus I²C

je sais il y a beaucoup d’informations sur le protocole I²C là-bas sur le web, encore je vais vous donner une brève description, pour rendre l’instructable plus complète.

Brève description du bus
Le bus I²C est un 8 ou 10 bits, protocole de communication série bidirectionnelle, ayant des taux de transfert de 100 KHz, 400 KHz ou récemment 1 MHz (plus de mode rapide). Le bus est constitué de deux signaux bidirectionnels (généralement appelé SCL - serial clock, SDA - données série). Ces signaux se connecter à chaque périphérique I²C dans notre circuit avec que nous voulons communiquer.
Ligne de Thhe SDA est utilisé pour le transfert de données série, la ligne SCL assure que la communication est en phase, dans les deux sens. Outre ces deux, nous devons également I²C maître et les esclaves I²C pour partager un terrain d’entente.

Les broches des dispositifs connectés à un bus I²C sont à collecteur ouvert, ou drain ouvert. Cela signifie qu’ils peuvent apporter à la ligne flottante de communication au sol, et ils peuvent libérer pour atteindre le niveau auquel ils sont tirés vers le haut.
Il est très important de comprendre, que le terme « rejet » ne signifie pas un « 1 », cela signifie seulement, que le maître ou l’esclave n’est pas conduire la ligne de communication. Cela dit, nous devons veiller à ce que la ligne n’est pas devient faible, quand il n’est pas censé. Cela peut être fait en installant une traction sur le rail d’alimentation du circuit. On ne dois pas (ou ne doivent pas) mettre un pull-up à tous les esclaves dans le circuit, ce qui signifierait une connexion parallèle, ce qui - si trop de résistances ont été installés - ne permettrait pas la goupille pour ramener la ligne.
La valeur de la résistance utilisée n’a pas besoin d’être une valeur donnée, généralement quelques résistance k fonctionne parfaitement.

Le protocole I²C est maître-esclave basé. Un maître décide quand les périphériques esclaves communiquent, par l’intermédiaire de certaines données envoyées sur le bus I²C. Dans notre cas, le PIC doit être configuré comme un esclave, puisque l’Arduino sera le maître du circuit. Un esclave est généralement un capteur, une puce de mémoire ou quoi que ce soit en mesure d’étendre les fonctionnalités d’un microcontrôleur.
Toutes les transmissions sont déclenchées par le maître, les esclaves ne communiquent pas quoi que ce soit, sauf si le maître est leur demandant de le faire. Fonctionnement correct de bus I²C suppose qu’une adresse unique esclave est reconnue que par un seul esclave. Quand un esclave est sélectionné, tous les autres esclaves doivent garder le silence.
Le capitaine est responsable de toutes sortes d’horaires - dans la plupart des systèmes (maître unique) la ligne d’horloge est modifiée uniquement par le maître. Autrement dit, la vitesse de la transmission est dictée par le maître I²C du circuit.

• Chaque fois qu’un capitaine souhaite démarrer une transmission, il exécute une séquence de démarrage sur le bus I²C. Une condition de démarrage se produit, lorsque la ligne SDA est amenée au niveau faible, tandis que la ligne SCL est élevée.
• Lorsque le maître veut envoyer un signal, que la transmission est terminée, il envoie une condition d’arrêt, un front montant sur SDA tandis que la valeur SCL est élevée.
• Données se transmet dans le laps de temps entre ces deux événements. Pour un peu de données pour être valide, le SDA doit changer pas de valeur, tandis que la valeur SCL est élevée. Dans l’affirmative, la séquence de bits est interprété à tort comme un arrêt ou commencer à condition et conduit à l’échec de la communication.

Dans mon cas, la transmission de données se faite en groupes de 8 bits. Les données - suivant le modèle big endian - sont cadencées avec le bit le plus significatif va en premier. Après que chaque bit de la 8-ème obtient cadencé, l’esclave doit signaler pour le transfert à considérer un échange de données avec succès. Ce signal est appelé un « reconnaître », et il suppose, que l’esclave fait la ligne SDA descendre au 9-ème horloge signal sur la ligne SCL.

Comme j’ai mentionné précédemment, chaque esclave doit avoir une adresse unique esclave. Cette adresse esclave est 7 bits de longs, ce qui signifie, qu’un total de 128 périphériques peut être attaché au bus I²C, sans n’importe quel genre de trifouillage du circuit.
Quand il s’agit d’aborder, le maître envoie 8 bits, 7 que qui sont l’esclave adresse bits, le dernier d'entre eux, déterminer si le maître désire lire ou écrire dans les registres internes de périphériques esclaves. Ce dernier morceau est connu comme le bit R/W, un « 0 » sur ce champ de bits signifie une écriture, un « 1 » sur ce champ de bits signifie une lecture.
Par exemple, si l'on veut écrire dans un dispositif esclave avec l’adresse esclave 0b1010000, celui-ci doit l’adresser 0b1010000 après le démarrage de la première condition. Si un maître veut lire à partir du même appareil, le premier octet après la condition de départ doit être 0b10100001. Ceux-ci, transformés en donner hexadécimal 0xA0 et 0xA1. Fiches techniques normalement donnent l’adresse de l’esclave au format hexadécimal.

Dans certains cas, le fabricant permet à l’utilisateur d’ajouter plus de la même puce au bus I²C : Ceci est réalisé en permettant à l’utilisateur de contrôler un nombre de bits d’adresse esclave. Par exemple, une EEPROM I²C habituellement a les 3 bits de poids faible de son adresse esclave mis en évidence sur les broches. En tirant ces moyens élevés un « 1 » à la caractéristique dans l’octet d’adresse esclave, en les tirant à sol signifie un « 0 » à cet endroit.

Il existe des situations, où le maître est tout simplement trop rapide pour l’esclave, il veut lire plus vite, que l’esclave pouvait gérer. Pour éviter ce genre de situations, les fabricants d’appareils esclave I²C peuvent construire dans une caractéristique, qui permet à l’esclave tirer la ligne SCL faible, alors qu’ils sont occupés à l’exécution des commandes du maître. Si l’esclave est fait avec mesure, lecture, télédétection, etc. - il libère la ligne SCL, permettant les tractions prendre la ligne haute. Le maître ne lance pas un autre transfert, à moins qu’il voit la ligne SCL haute. Ceci est souvent dénommé 'qui s’étend de horloge'.

Exemple d’une condition de départ, suivie d’une commande de lecture de l’esclave 0xA3. L’opération de lecture est valide, nous avons maintenant ce qui, de l’accusé de réception (reconnaître) le signal envoyé par l’esclave.

J’ai zoomé un peu sur la fin du même transfert de données pour capturer les deux signaux de plus, l’arrêt et l’accusé de réception négatif. Ce modèle binaire se produit à la fin d’une séquence de lecture.

Malheureusement, je n’étais pas en mesure de capturer l’horloge qui s’étend de phases, mais si je vois un tout en travaillant avec le PIC I²C, je m’assurerai de le montrer aux lecteurs.

Donc, nous venons d’apprendre cela et que sur le protocole de communication série nous utiliserons, maintenant nous allons le voir en action. Tout d’abord, permettez-moi de vous présenter un Comité de l’exemple, un outil PC et un programme de microcontrôleur.

Articles Liés

Ruban à mesurer à ultrasons

Ruban à mesurer à ultrasons

/ * Style Definitions * / table. MsoNormalTable {mso-style-name: « Table Normal »; mso-tstyle-rowband-taille: 0; mso-tstyle-colband-taille: 0; mso-style-noshow:yes ; mso-style-parent: "";" mso-rembourrage-alt: 0 à 5.4pt 0 à 5.4pt ; mso-para
Ruban à mesurer à ultrasons numérique

Ruban à mesurer à ultrasons numérique

Cette instructable montrera comment construire une mesure de bande numérique à l'aide d'un HC - SR04 capteur de distance à ultrasons et un Arduino Pro Mini. Cela a été inspiré par électronique pour tout le monde est instructable qui peuvent être trou
Horloge de ruban à mesurer en résine

Horloge de ruban à mesurer en résine

Nous avons voulu faire une horloge depuis un certain temps. Nous avons aussi voulu essayer de moulage et de coulée un objet qui a été un peu plus grand et plus détaillées, donc nous avons pu vraiment tester les limites de l'utilisation Famowood Glaze
Automarquage du ruban à mesurer

Automarquage du ruban à mesurer

L'auto-étiquetage ruban à mesurer un mètre ruban est une unité de marquage tout en un. Lorsque vous marquez une mesure traditionnellement, parfois il se sent comme vous avez besoin d'une troisième main. Si vous êtes mesurer et marquer votre mur pour
Mise à jour : ruban à mesurer de réparation - réparation supplémentaire pour Lufkin Pee Wee (étape 4 partir)

Mise à jour : ruban à mesurer de réparation - réparation supplémentaire pour Lufkin Pee Wee (étape 4 partir)

occasionnellement, au printemps sur un mètre à ruban auto-rétractable, va devenir un peu cintrées ou étirée afin que le ruban ne rentre pas entièrement dans l'affaire sur son propre.Eh bien, aucuns plus en train de farcir ne retour dans (cela seuleme
Mesurer la hauteur à l’aide de la trigonométrie (Hack de ruban à mesurer)

Mesurer la hauteur à l’aide de la trigonométrie (Hack de ruban à mesurer)

Mesurer la hauteur à l'aide d'un ruban à mesurer peut être très stressant. Lorsque vous essayez de mesurer quelque chose qui est trop élevé, le mètre-ruban va commencer à plier vers l'arrière. Récemment, j'ai vu certains travailleurs de la difficulté
Cachettes, issu d’un stylo et un ruban à mesurer (deux endroits différents) suivi d’un goodie

Cachettes, issu d’un stylo et un ruban à mesurer (deux endroits différents) suivi d’un goodie

donc j'ai eu quelques idées pour faire ces « portefeuilles » parce que si vous aimez avoir traîner pour quand vous en avez besoin d'argent ou si vous voulez avoir l'argent mais avez peur quelqu'un va vous voler. Laisse le visage. Qui va prendre ta pl
L’antenne de ruban à mesurer

L’antenne de ruban à mesurer

vous cherchez un projet amical facile gamin ? Vous cherchez un projet visant à encourager une nouvelle génération de radioamateurs ?Ce projet est rare, donc c'est quelque chose qui saisira certainement l'attention de tout le monde, en particulier un
Antenne de ruban à mesurer de 433 MHz-costumes suivi émetteur UHF !

Antenne de ruban à mesurer de 433 MHz-costumes suivi émetteur UHF !

Ce Instructable a trait à la conception et évaluation d'un simple ruban à mesurer fondé antenne Yagi à 433 MHz 3 éléments.  Un récepteur efficace a été fait par « persuader » un ~ US$ 4 Dorji 433 MHz demander module de données (Amplitude Shift Keying
Titulaire de ruban à mesurer

Titulaire de ruban à mesurer

Eh bien, j'ai au moins 3/4 d'une douzaine de rubans à mesurer autour de la maison en divers endroits. Casiers, rayonnages, armoire, couple de boîtes à outils ont leur propre. Mais j'ai juste fini un traîneau de scie de table (a va faire un instructab
Catalogue des tricheurs : Broken ruban à mesurer

Catalogue des tricheurs : Broken ruban à mesurer

Voici un autre Instructable dans ma série de « Shop tricheurs. » Ce code triche vous aidera à utiliser votre cassés rubans à mesurer, ainsi vous pouvez obtenir tous les dernier pouce hors d'eux. Si vous voulez connaître certaines de mes autres cheats
Ruban à mesurer en pouces

Ruban à mesurer en pouces

il est toujours un ruban à mesurer dans mon sac à main, sac à dos, aussi bien que même dans mon sac de voyage. N'importe quel moment, n'importe où que c'est nécessaire. Maintenant j'ai besoin pas continuer à chercher mon seul et seulement en plastiqu
Clip de ceinture en métal (pour ruban à mesurer) - fait @TechShop !

Clip de ceinture en métal (pour ruban à mesurer) - fait @TechShop !

Ruban à mesurer est cher de nos jours, en particulier ceux avec des agrafes de ceinture.J'ai eu ce petit dans une quincaillerie et pensé que je ferais moi-mêmeRemarque : Acier n'était probablement pas le meilleur matériel, parce que le MT lui-même ét
Mise à niveau de ruban à mesurer pour couteaux de poche EDC (swiss army type)

Mise à niveau de ruban à mesurer pour couteaux de poche EDC (swiss army type)

je voulais un dirigeant sur mon nouveau couteau de poche EDC (-prendre chaque jour), le Victorinox Cybertool 41.Alors j'ai décidé de me faire une mise à niveau de ruban à mesurer qui peut être facilement fait de différentes façons pour n'importe quel