Interface avec le Raspberry Pi

Bonjour à tous,

Après les premiers tests concluants des IO de Domodin, j’ai commencé à réfléchir au format des données échangées entre le PIC et le Rpi, et à leur implémentation.

Comme on peut le voir sur le schéma, j’ai choisi d’utiliser l’I2C du Rpi plutôt que le SPI, ou que le serial. Pourquoi cela ? Car je pense utiliser à l’avenir les bus SPI pour un écran, voir un module RF, et sachant qu’en SPI on a besoin d’un Chip Select, je préfère voir large. De plus l’I2C est largement suffisant en débit, et vu que je contrôle l’adresse de l’esclave (le PIC), je n’aurai jamais de problème d’adressage. Le bus série quant à lui sera réservé à la télé-info.

Je n’ai jamais codé d’esclave I2C, je vais donc copier le fonctionnement des esclaves que je connais, par exemple une mémoire EEPROM. Le principe est simple : l’esclave est comme un tableau, où l’on vient lire ou écrire à certaines adresses. Le comportement en lecture peut également être différent de celui en écriture. Bref cela amène pas mal de possibilité.

J’ai donc commencé par lister les commandes que je compte envoyer :

  • Ordre fil pilote (Numéro du fil [0 à 5], ordre [ARRET, HORS GEL, ECO, CONFORT])
  • Commande du relais (Numéro du relais [0 ou 1], ordre [ON, OFF])
  • Activation du délestage (ON, OFF)
  • Ordre du délestage (tout en même temps, Fils pilote puis relais, relais puis fils pilotes, etc.)
  • Lecture des valeurs de courant des relais (0 ou 1)
  • Controle des LEDs de statuts.

Ce qui, convertit en tableau, donne :

Adresse Ordre
0 Fil pilote 0 (1/2/3/4)
5 Fil pilote 5 (1/2/3/4)
6 Relais 1 (bit 0)
7 Relais 1 (bit 0)
8 bit 7 : delestage enable
8 bit 1:0 = 00 tout, 01 FP puis relais, 10 relais puis FP
9 Courant relais 1 MSB
A Courant relais 1 LSB
B Courant relais 2 MSB
C Courant relais 2 LSB
D Contrôle des LEDs (ON/OFF/TOGGLE)

Cela sera implémenté dans le PIC par un tableau: à chaque modifications du tableau (à cause de la réception d’un ordre), je mets à jour les IO, et réciproquement à chaque modification des IO, je mets à jour le tableau.

Vis-à-vis de la télé-info, pour le moment le PIC renvoie directement ce qu’il reçoit au Rpi, sans modification; et en parallèle, il détecte le message de dépassement de consommation pour faire le délestage correspondant.

Voila ! et comme d’habitude, n’hésitez pas à commenter 🙂

Advertisements

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s