IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Cypress PSoC 4 : ma carte configurée en esclave I2C
Et pilotée par une Raspberry Pi - Parties 1 à 6, un billet de f-leb

Le , par f-leb

0PARTAGES

Partie 1 - Présentation d’un mini-projet expérimental (de confiné)

L’objectif est de configurer ma carte de développement PSoC 4 référencée CY8CKIT-044 (microcontrôleur à cœur de processeur ARM Cortex M0 48 MHz, 128 Ko Flash, 16 Ko SRAM) en composant esclave pour le protocole I2C. Le composant maître, à l’initiative de la communication donc, sera une carte Raspberry Pi 3 (voire 4 à priori, même si non testé).


Communication I2C entre Raspberry Pi et carte PSoC 4

Vous vous dites que j’aurais pu faire communiquer le Pi avec une carte Arduino plutôt qu’avec une carte ésotérique. En effet, j’aurais pu

Mais imaginez la situation où votre carte microcontrôleur pilote une multitude de capteurs (environnementaux ou autres) et que vous souhaitiez plus tard collecter ces données, les stocker dans une base de données SQL, pouvoir les consulter depuis une page Web sur votre réseau domestique, ou piloter votre centrale de capteurs depuis une interface graphique programmée avec votre langage ou framework préféré, en Python, C/C++ ou Java. Un serveur Web, un serveur de base de données SQL, une IHM, toutes ces choses sont classiques sur un ordinateur PC ou notre Raspberry Pi. Vous auriez pu (dû) mieux concevoir votre prototype dès le départ, connecter vos capteurs directement au Pi via son port GPIO, envisager un ESP32 ou tout autre matériel IoT, soit… Mais vous trouvez que vos capteurs s’interfacent plus facilement avec votre carte à microcontrôleur avec des bibliothèques toutes prêtes (c’est souvent même encore plus simple s’il s’agit d’une Arduino).

Ou alors vous gardez votre carte à microcontrôleur, et vous faites en sorte qu’elle puisse échanger ses données avec une carte maître (Raspberry Pi), en passant par un protocole série standard, l’I2C par exemple. Votre carte à microcontrôleur devient alors un « gros » capteur personnalisé, adressable et interrogeable depuis le Pi avec seulement deux fils (SDA et SCL) pour la communication maître-esclave.

La carte PSoC 4 comprend une LED RVB intégrée en surface de la carte :


Pour mon expérience, la carte PSoC 4 sera configurée en esclave I2C, et pilotée depuis le Pi. Le Pi devra pouvoir piloter chaque composante Rouge, Vert ou Bleu (valeur entre 0 et 255). Il pourra aussi interroger la carte PSoC 4 pour récupérer les valeurs des composantes R, V et B en cours, au démarrage du système notamment. Pour le pilotage côté Pi, je prévois une interface graphique avec des glissières, le tout programmé en C avec GTK pour l’IHM et la bibliothèque bcm2835 pour la communication I2C.


Let’s go

Une erreur dans cette actualité ? Signalez-nous-la !