Table des matières:

Connecter deux OOBoards ensemble à l'aide d'I2C : 4 étapes
Connecter deux OOBoards ensemble à l'aide d'I2C : 4 étapes

Vidéo: Connecter deux OOBoards ensemble à l'aide d'I2C : 4 étapes

Vidéo: Connecter deux OOBoards ensemble à l'aide d'I2C : 4 étapes
Vidéo: LISTEN TO THIS CUSTOM EXHAUST! 🤯😱 #shorts 2024, Novembre
Anonim
Connecter deux OOBoards ensemble à l'aide d'I2C
Connecter deux OOBoards ensemble à l'aide d'I2C

Cette instructable explique comment connecter deux OOBoards à l'aide d'I2C.

Étape 1: connexion au bus réseau I2C

Connexion au bus réseau I2C
Connexion au bus réseau I2C
Connexion au bus réseau I2C
Connexion au bus réseau I2C

Il y a deux bus I2C sur les OOBoards, un bus local et un bus réseau.

Le code OOPIC est essentiellement un langage interprété, c'est-à-dire que le "code" est stocké dans l'EEPROM, et lu/interprété par le microprocesseur en temps réel. L'EEPROM utilise le bus LOCAL I2C pour communiquer avec le microcontrôleur. Si vous deviez regarder ce bus local sur l'oscilloscope, vous verriez un bavardage constant. Sur les cartes OOBoards, le bus local est ce qui est connecté au connecteur I2C, ce n'est pas forcément ce que l'on veut. Le bus NETWORK est généralement le bus qui est utilisé pour communiquer avec d'autres appareils/oopics, sur les OOBoards ce bus n'a pas de connecteur. Afin d'accéder à ce bus, vous devez souder des fils aux broches 42 et 37 du microcontrôleur (marquées N_SDA, N_SCL sur le schéma respectivement).

Étape 2: ajouter les résistances de pullup

Une fois les connexions SDA et SCL effectuées sur chaque processeur, les deux cartes peuvent

être reliés entre eux en connectant SDA à SDA, SCL à SCL et en connectant un fil de terre commun entre les cartes. Vous aurez également besoin d'une résistance de rappel sur chaque ligne (j'ai utilisé 12k, mais c'est exactement ce que j'avais en train de traîner). Notez que vous n'avez besoin que d'une résistance de pullup par ligne pour un total de deux résistances (pas 4).

Étape 3: programmer l'esclave

Maintenant que les connexions physiques sont là, vous devrez programmer le microcontrôleur esclave. J'ai ajouté un code ci-dessous qui devrait vous aider à démarrer.

Dim SLAVE As New oDDELinkDim LED As New oDIO1Sub Main() &aposset notre adresse I2C à 2 (remarque, cela doit correspondre à l'adresse distante que nous avons définie dans le code maître) ooPIC. Node = 2 &apossetup une LED LED. IOLine = 5 LED. Direction = cvOutput &aposnow, reliez la sortie de notre objet DDELink à &aposthe LED, et allumez-la… maintenant automatiquement, la LED clignotera SLAVE. Output. Link(LED) SLAVE. Operate = cvTrueEnd Sub

Étape 4: programmer le maître

Enfin, programmez le microcontrôleur maître. Portez une attention particulière aux lignes qui définissent la propriété. Location du DDELink: à moins qu'elle ne soit définie correctement, cela ne fonctionnera PAS !

Dim Master en tant que nouveau oDDELinkDim wire en tant que nouveau oWireDim hz1 en tant que nouveau oBitSub Main() & aposlink la minuterie de 1 seconde au bit auquel nous pouvons accéder & aposthis bit basculera désormais une fois par seconde wire. Input. Link(ooPIC. Hz1) wire. Output. Link (hz1) wire. Operate = cvTrue &aposthis définit l'adresse I2C de notre microcontrôleur local &aposthe interface I2C n'est pas active jusqu'à ce qu'une adresse soit définie ooPIC. Node = 1 &aposnow nous configurons notre objet DDELink, notre entrée est le bit hz1 &aposnotez que le l'objet a également une propriété. Output qui est utilisée &aposlorsque nous sommes en mode réception Master. Input. Link(hz1) &aposc'est l'adresse I2C du microcontrôleur distant, notez que &aposin le code esclave, nous lui disons d'avoir une adresse de 2 Master. Node = 2 &aposugh…c'est la partie merdique, c'est "l'adresse" de l'&aposobject DDELink dans l'espace mémoire slave&aposs. Afin de comprendre ce nombre, &aposnous devons ouvrir et compiler le code esclave, puis aller dans Affichage->Code compilé. &aposcherchez quelque chose comme: &aposL*. Construct. Begin;Dim as new oDDELink &aposwhere * est un nombre quelconque, et est le nom de votre objet DDELink &aposin votre code esclave. La ligne immédiatement en dessous devrait se lire quelque chose comme: &aposC0020:041;This.. Address &aposthe nombre à droite de &apos:&apos est l'adresse de l'objet DDELink esclave Master. Location = 41 &aposthis indique l'objet que nous allons envoyer data (c'est-à-dire, copier les données de notre propriété. Input &aposto la propriété slaves.output (remarque, si vous définissez ceci pour recevoir, c'est le contraire) Master. Direction = cvSend &aposturn it on, mais rien ne se passe encore… Master. Operate = cvTrue Faire &aposcheck pour voir si nous transmettons actuellement des données If Master. Transmitting = cvFalse Alors &aposset cette valeur à 1 obligera le maître à envoyer la valeur à l'esclave &aposnote, ceci est automatiquement remis à 0 à la fin de la transmission Master. Sync = 1 End If LoopEnd Sub

Conseillé: