DesignSpark Electrical Logolinkedin
Ask a Question

27 Sep 2018, 10:46

PSoC 6 Wi-Fi de Cypress, un système sur circuit programmable pour tous

"Je suppose qu'il est tentant de tout traiter comme un clou si votre seul outil est un marteau."
Abraham H. Maslow, Vers une psychologie de l'être (1962)

L'expression "Si vous n'avez qu'un marteau, tout ressemble à un clou" est souvent attribuée au psychologue Abraham Maslow (concepteur de la hiérarchie des besoins), mais le vieux proverbe anglais qu'il a paraphrasé remonte à la nuit des temps. Utile pour remettre en question la solution trouvée pour un problème, cette expression vous aidera aussi à bien réfléchir à l'ordinateur monocarte (SBC) adapté au lancement d'un nouveau projet. Votre SBC favori est-il vraiment le bon choix ?

Dans de nombreux cas, un SBC sera le bon choix : il est peu coûteux et facile à programmer, en vous permettant d'assembler rapidement des parties pour tester une nouvelle idée. Mais qu'en est-il si vous souhaitez quelque chose de plus durable et avez même l'intention de commercialiser votre réalisation ?

C'est peut-être le moment d'envisager alors l'utilisation d'une carte de développement de microcontrôleur embarquée pour valider votre concept. Tous les grands fabricants de silicium proposent des cartes de développement pour leurs microcontrôleurs. Ces kits sont assez polyvalents et économiques. Aussi, votre choix de carte sera en général dicté par la technologie spécifique que vous souhaitez utiliser (vous pouvez par exemple avoir un penchant pour Cypress Semiconductor dans le domaine de la technologie de détection capacitive) et par la préférence que vous accordez à un environnement de développement disponible pour cette carte. Si vous envisagez de réaliser un produit commercial, le coût unitaire du système sur puce (SoC) basé sur la carte de développement sera également un facteur à prendre en compte.

Si vous avez l'intention de lancer un nouveau projet parfaitement adapté à une unité SoC embarquée, alors le kit PSoC 6 Wi-Fi Pioneer de Cypress pourrait être votre carte de développement (175-4669)

Kit PSoC 6 WiFi-BT Pioneer de Cypress

L'unité PSoC 6 est un système sur puce embarqué programmable à faible consommation qui se destine aux développeurs d'applications IoT et de produits portables. Elle intègre un processeur ARM Cortex CM0+ de 100 MHz, pouvant être utilisé pour les opérations à très faible consommation, et un coprocesseur ARM Cortex M4 de 150 MHz, pour une plus grande puissance de traitement.

Dans le cas du kit Pioneer, le PSoC 6 est placé sur une carte qui donne accès à toutes les fonctionnalités internes (au moyen d'un matériel de programmation KitProg2 embarqué) ainsi qu'à différents éléments externes :

  • LED utilisateur (bien sûr !)
  • Coulisse de détection capacitive, boutons et embase de proximité
  • Module WLAN et Bluetooth de 4 GHz
  • Écran TFT 4"
  • Détecteur de mouvement
  • Capteur de lumière ambiante
  • Codec audio 32 bits
  • Microphone PDM
  • Les embases sont compatibles avec les shields Arduino 3,3 V et les Pmod Digilent

Le kit inclut aussi un câble USB (type A vers type C) pour l'alimentation et le téléchargement ascendant de programmes, ainsi que 4 fils volants 4" et 2 fils de capteur de proximité 5".

Programmation

À ce stade, les inquiétudes que suscite la programmation du microcontrôleur freinent en général l'enthousiasme. Est-ce que ce sera difficile ? Est-ce que je dois comprendre les arcanes complexes du microprocesseur ?

Soyons francs : il faut une certaine phase de familiarisation pour bien programmer le PSoC 6, puisque celui-ci est truffé de fonctionnalités. Mais si vous connectez déjà des choses jusqu'au niveau des broches GPIO de votre SBC et obtenez des résultats concluants, vous aurez les capacités nécessaires pour maîtriser les E/S et les principales fonctions de la plupart des microprocesseurs.

Vous devrez vous familiariser avec l'environnement de développement intégré (IDE) PSoC Creator et, si vous souhaitez utiliser le Wi-Fi, avec l'IDE WICED Studio basé sur Eclipse. Vous devrez aussi avoir des connaissances en langage de programmation C, mais vous serez assisté : Cypress propose un grand nombre de tutoriels vidéo, des programmes modèles, de l'assistance, et vous pourrez aussi poser des questions à la communauté très engagée.

Premiers pas

La première opération à effectuer est de connecter le PSoC 6 au Wi-Fi. Pour simplifier le processus, la carte contient un programme préchargé qui la configure comme point d'accès Wi-Fi avec un SSID de "WICED Config" :

Sur un PC Windows, cliquez sur l'icône de connexion Wi-Fi dans la barre des tâches (elle se trouve habituellement entre l'icône Batterie et l'icône Volume sonore) et sélectionnez la connexion nommée "WICED Config". Ou bien accédez à : Paramètres -> Wi-Fi sur votre smartphone pour sélectionner le réseau "WICED Config". Le mot de passe est "12345678".

Une fois connecté, vous pouvez ouvrir un navigateur Internet et saisir "http://192.168.0.1" dans la barre d'adresse. Vous accédez alors à une page simple sur laquelle vous pouvez sélectionner et remplir des données pour votre propre concentrateur réseau :

Lorsque la carte est connectée à votre réseau, elle démarre un serveur http, puis se synchronise avec un serveur de temps. L'écran TFT affiche les paramètres actuels de rapport cyclique PWM, ainsi que la tension de sortie du capteur de lumière. Vous pouvez augmenter/réduire le rapport cyclique PWM au moyen du curseur CapSense et varier la luminosité de LED5 au moyen des boutons Capsense.

Si vous revenez à l'unité que vous avez utilisée pour la connexion au point d'accès Wi-Fi du PSoC 6 et saisissez à présent dans la barre du navigateur l'adresse (sur votre propre réseau cette fois) affichée sur l'écran TFT, vous accéderez à une petite page Internet bien structurée qui vous indique l'heure, la date, la tension du capteur de lumière et le rapport cyclique PWM.

Ce qui est bien avec ce système de fourniture simple, c'est que vous obtenez le code source, ainsi que d'autres données, à titre d'exemple (CE222494) que vous pouvez alors tout simplement appliquer pour démarrer votre projet en un temps record. Il vous explique aussi comment lire des capteurs et CapSense, écrire sur l'écran TFT, utiliser le Wi-Fi de différentes façons, et ce qu'il faut faire pour assembler tous ces éléments.

Exemples

Concernant le logiciel modèle, vous devez télécharger et installer l'IDE WICED Studio afin d'exploiter pleinement le programme. Vous trouverez tout le logiciel et tous les documents nécessaires pour votre développement ici, sur le site Internet de Cypress.

WICED Studio dispose d'un installateur Windows standard (et le guide du kit PSoC 6 WiFi-BT Pioneer, disponible au format PDF, contient des instructions). Aussi, nous ne nous étendrons pas sur les étapes d'installation. Nous allons plutôt étudier maintenant le programme modèle que vous pourrez utiliser pour vous familiariser avec l'IDE WICED.

Voici quelques précautions à prendre avant de créer et charger le premier programme :

  1. Si vous utilisez WICED Studio 6.1, vous devriez appliquer ce correctif pour résoudre un problème d'implémentation connu d'OpenOCD. Si vous employez une version plus récente (au moment de lire cet article), vous n'en aurez sans doute pas besoin.
  2. Veillez à brancher le câble USB fourni sur le bon connecteur USB C. Les deux alimentent la carte, mais vous utiliserez le connecteur USB C sur le côté droit de la carte (J10) pour la programmation – pas celui sur le bord supérieur placé à côté du connecteur USB A standard (J28).
  3. Assurez-vous que la LED2 est éteinte. Si elle est allumée, le mode "KitProg" est actif. Ce mode vous permet d'effectuer un débogage basique d'unités comme la mémoire flash au moyen du logiciel PSoC Programmer. Mais nous ne voulons pas réaliser cela lorsque nous utilisons WICED Studio. Aussi, appuyez sur SW3 pour régler votre kit en mode "CMSIS_DAP", le mode exigé pour éteindre la LED2.

Une fois ces opérations effectuées, suivez les instructions du Guide du kit PSoC 6 WiFi-BT Pioneer pour réaliser ce premier programme.

La première opération consiste à lancer WICED Studio. Ce logiciel est accessible avec le bouton Démarrer de Windows, dans le menu Démarrer > Tous les programmes > Cypress WICED-Studio.

Dans le menu déroulant Target Selector, sélectionnez 43xxx_Wi-Fi.

Comme exemple, vous allez créer le programme "scan", qui explore les points d'accès Wi-Fi et imprime sur un terminal, par le biais du port USB, une liste des éléments trouvés. Pour créer et exécuter cette application, vous devez établir un fichier makefile qui explique au compilateur et au lieur comment créer l'application et l'utiliser après la génération. Heureusement, il suffit pour cela d'ajouter une ligne d'instruction dans la fenêtre Make Target.

La première chose à définir est un chemin de destination : celui-ci indique au compilateur où il peut trouver le code. Toutes les applications dans WICED Studio doivent être placées dans le répertoire /apps. Le chemin de destination doit donc inclure toute la hiérarchie des sous-répertoires du répertoire /apps, où l'application créée est archivée. L'exemple que vous allez utiliser se trouve dans apps/snip/scan et le makefile se sert du point (.) comme séparateur. Vous définirez donc l'emplacement de la manière suivante :

snip.scan

Vous devez ensuite saisir le nom de la plate-forme après un trait d'union pour montrer au compilateur à quel microcontrôleur le code compilé se destine :

snip.scan-CY8CKIT_062

Puis, vous devez indiquer au logiciel ce qu'il doit faire de l'application créée. Dans le cas de l'exemple "scan", vous voulez charger toutes ressources d'application dans la mémoire flash, télécharger l'application elle-même et réinitialiser le PSoC 6 pour qu'il exécute l'application :

snip.scan-CY8CKIT_062 download_apps download run

Voici donc la ligne complète que vous ajouterez dans la fenêtre Make Target. Pour cela, vous cliquez avec le bouton droit de la souris sur 43xxx_Wi-Fi dans la fenêtre Make Target et cliquez sur "New…" dans le menu qui s'affiche :

Vous pouvez alors ajouter dans le makefile l'information définie dans le champ Target Name :

Cela sera ajouté à une liste de fichiers makefile existants. Avant de créer le projet, il convient de double-cliquer (ou de cliquer avec le bouton droit de la souris et de sélectionner Build Target) sur "Clean" Make Target. Cela supprime les étapes intermédiaires et le résultat de toute création précédente. La nouvelle création est donc "vierge" et compile et lie tout à partir du début.

Maintenant, vous pouvez créer et charger l'application. Localisez la cible "snip.scan-CY8CKIT_062 download_apps download run" dans la liste Make Targets et effectuez un double-clic dessus (ou cliquez sur le bouton droit de la souris et sélectionnez Build Target) :

Le téléchargement du système de fichiers Ressources peut prendre quelques minutes. Ne vous inquiétez donc pas si cela vous paraît long. À la fin, le message bleu "Build Finished" s'affiche pour confirmer le bon déroulement. Super !

Pour voir ce que le PSoC 6 sort, vous avez besoin d'un émulateur de terminal tel que Tera Term ou Putty. Vous devez connaître le port "COM" utilisé pour connecter l'émulateur. Pour cela, vous pouvez ouvrir le Gestionnaire de périphériques de Windows (saisissez "Gestionnaire de périphériques" dans le champ de recherche à côté du bouton Windows dans Windows 10). Explorez la liste des ports COM et développez cette entrée :

Bien, vous savez maintenant que c'est le port COM5 et pouvez entrer cette donnée dans les paramètres Putty :

Vous devez vous assurer que votre configuration permet d'exécuter une session de communication série :

En effleurant la fonction "Open", vous obtenez quelque chose de ce genre :

L'application est exécutée correctement, mais si vous devez déboguer le code, vous pouvez créer une version de débogage. Cette version peut être générée sans optimisation du compilateur et permet de placer des points d'interruption dans le code, où il est possible d'arrêter l'exécution et de vérifier si les variables sont conformes aux attentes à cet endroit du code. Cette version de débogage est réalisable avec :

snip.scan-CY8CKIT_062-debug download_apps download

Le guide utilisateur du kit contient des indications sur la manière de déboguer votre code.

Le mot de la fin

J'espère avoir pu montrer à tous ceux qui sont suffisamment à l'aise avec un Arduino ou un Raspberry Pi que les microcontrôleurs en général et le Cypress PSoC 6 Wi-Fi en particulier n'ont rien d'effrayant. Avec un peu de patience lors de l'inévitable phase de familiarisation, vous pouvez commencer à utiliser les puissantes ressources de ces unités dans le cadre de vos propres projets.

Mark completed his Electronic Engineering degree in 1991 and went on to work in real-time digital signal processing applications engineering, later moving into technical marketing.

27 Sep 2018, 10:46

Commentaires