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

Étape 6: Configurer le PIC comme une esclave I²C

Configuration du module MSSP de la PIC12LF1840T39A
Dans notre cas, nous aurons besoin de configurer le PIC12LF1840T39A d’agir comme un périphérique esclave. Première chose, qui doit être fait, consiste à configurer le module MSSP. La fiche technique décrit cette procédure en détail, ainsi que les transactions.

1. start bit détecté.
2. peu de S de SSP1STAT est situé ; SSP1IF est défini si interruption au démarrage détecte est activée.
3. correspondance adresse avec R/W peu clair est reçu.
4. l’esclave tire SDA faible en envoyant un ACK au maître et définit le bit SSP1IF.
5. logiciel efface le bit SSP1IF.
6. lectures de logiciel a reçu adresse SSP1BUF effacer l’indicateur BF.
7. si SEN = 1 ; Logiciel d’esclave définit CKP bit pour libérer la ligne SCL.
8. le maître des horloges sur un octet de données.
9. esclave disques SDA faible en envoyant un ACK au maître et définit le bit SSP1IF.
10. logiciel efface SSP1IF.
11. logiciel lit l’octet reçu de SSP1BUF BF de compensation.
12. les étapes 8 à 12 sont répétées pour tous les octets reçus du maître.
13. maître envoie Stop condition, peu de réglage P de SSP1STAT et le bus va Idle.

Nous allons commencer à écrire notre programme. Côté de nos configurations habituelles, comme la configuration de l’oscillateur, nous devrons donner des valeurs aux registres MSSP :

SSP1STAT = 0 X 80
1 = commande du débit slew désactivé pour le mode vitesse Standard (100 kHz et 1 MHz)
0 = désactiver SMBus entrées spécifiques
0 = indique que le dernier octet reçu ou transmis était adresse
0 = arrêt bit n’a pas décelé de dernière
0 = start bit n’a pas décelé de dernière
0 = écriture
0 = adresse n’a pas besoin d’être mis à jour
0 = transmettent des données complètes (n’inclut pas les bits ACK et arrêt), SSP1BUF est vide

SSP1CON1 = 0 X 26
0 ne = aucune collision
0 ne = aucun débordement
1 = permet le port série et configure les pins SDA et SCL comme source les broches du port série
1 = désactiver horloge
0110 = I2C esclave, adresse 7 bits

SSP1CON2 = 0 X 00
0 = adresse appel général désactivé
0 = accusé de réception a été reçu
0 = Acknowledge
0 = accusé de réception séquence Idle
0 = recevoir inactif
0 = arrêt condition Idle
0 = condition répétée lancer Idle
0 = horloge étirement est désactivé

SSP1ADD = 0X88
1000100 = adresse 7bits esclave
0 = n’est pas utilisé

SSP1MSK = 0X0F
Esclave de masquage d’adresse, ne cherchez pas match dans les quatre premiers bits

Ce sont donc les paramètres que nous devons appliquer à notre photo pour le faire fonctionner comme prévu. Tout cela va dans la routine d’initialisation, avant notre boucle infinie.
Une fois cela fait, il faut écrire notre écriture, lecture, reconnaître, négative reconnaître, idle, démarrer et arrêter des routines. C’est toujours une bonne chose pour construire quelque chose à partir de zéro, mais si quelqu'un a travaillé avec I²C avant et a déjà ses routines préférées/optimisé - il suffit d’utiliser ceux. J’ai suivi les instructions de la feuille de données, même si je l’avais déjà écrit I²C fonctions tout à l’heure. J’ai commencé à partir de zéro pour des raisons de l’instructable.

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