revue technologie

publicité
Les microcontrôleurs PSoC
DENIS PENARD [1]
Dans un nombre croissant d’applications industrielles et grand public,
les systèmes électroniques ont subi des évolutions importantes ces dernières
années. Les plus visibles relèvent de l’électronique numérique, dont la puissance
de traitement s’accroît à mesure que les niveaux de consommation se réduisent
(en téléphonie mobile par exemple). L’autre avancée technologique
concerne l’électronique analogique, qui se fait discrète en s’intégrant désormais
au cœur des microcontrôleurs PSoC (Programmable System on Chip,
système programmable sur puce).
L’auteur nous fait part de l’expérience qu’il a acquise en matière de mise en
œuvre de composants PSoC, au travers d’activités conduites avec ses étudiants
d’IUT. Il donne ici quelques exemples mettant en évidence la diversité
des applications possibles à base de PSoC, ainsi qu’une démarche de projet
de la réalisation de fonctions simples facilement implémentables
dans ces microcontrôleurs.
Les processeurs
à signaux mixtes
Cypress est l’un des leaders du marché
des semi-conducteurs et propose des
solutions pour les réseaux filaires ou
non (USB, WirelessUSB), capteurs
optiques CMOS, mémoires, et processeurs à signaux mixtes reconfigurables. Les processeurs à signaux
mixtes (mixed signal arrays) sont des
puces qui permettent de gérer des
informations aussi bien numériques
qu’analogiques. On sait depuis longtemps intégrer des convertisseurs
analogiques-numériques au sein de
microcontrôleurs, mais l’intégration
de fonctions analogiques sur le silicium (gains programmables, filtres à
capacités commutées, etc.) est relativement récente. Ces processeurs
appartiennent à une nouvelle génération de puces déclinée par Cypress en
familles : PSoC, Power PSoC (processeur de puissance), WirelessUSB.
La dernière-née de ces familles,
celle des Power PSoC, offre de nouvelles perspectives dans l’évolution des systèmes à la frontière de
l’électronique et de l’électronique de
puissance. En effet, les Power PSoC
peuvent fonctionner sous des tensions
variant de 2,5 V à 36 V. Ils sont ainsi
capables de contrôler des transistors
MOS directement.
La famille PSoC est constituée des
références CY8C21x34, CY8C24x23A,
CY8C26xxx, CY8C27x43, CY8C29x66,
qui diffèrent selon le nombre de blocs
numériques et analogiques intégrés,
la taille de la mémoire de programme
(type Flash), celle de la mémoire de
données (type SRAM), le nombre de
broches d’entrée/sortie (de 6 pour
les boîtiers 8 broches à 44 pour les
boîtiers 48 broches). Certaines caractéristiques, comme la tension d’alimentation (de 3,3 V à 5 V), la fréquence
de travail (de 93,7 kHz à 24 MHz) ou
encore la température de fonctionnement, sont communes.
[1] Professeur de génie électrique à l’université
Paris-XI – IUT de Cachan (94).
Courriel : [email protected]
 L’architecture interne d’un PSoC

TECHNOLOGIE 
SEPTEMBRE-OCTOBRE 2006
Device Editor
User
Module
Selection
Placement
and
Parameterization
Source
Code
Generator
Generate
Application
dynamique peut être intéressante si
on veut utiliser un seul transducteur à
ultrasons. Ainsi, lors de l’émission du
train d’impulsion, le microcontrôleur
est configuré en émission (sorties
numériques connectées directement
sur le transducteur) ; une fois le train
d’impulsion émis, il se reconfigure
dynamiquement pour recevoir l’écho
sur le même transducteur.
 Un exemple de fonctions
mots-clés
composant,
logique,
travaux pratiques
Application Editor
Project
Manager
Source
Code
Editor
Build
Manager
Build
All
Debugger
Interface
to ICE
Storage
Inspector
Event &
Breakpoint
Manager
intégrées dans un PSoC
La figure  présente l’architecture
interne d’un PSoC ; la figure  , les
différentes fonctions électroniques
analogiques (amplifier, filter), numériques (counter, timer) et mixtes (ADC,
DAC, PWM) intégrées au PSoC dans
une application donnée.
La reconfiguration dynamique
La reconfiguration dynamique d’un
PSoC est une caractéristique très intéressante pour des applications utilisant
des ressources partagées. Ainsi, un
distributeur de boissons délivre des
boissons pendant toute une journée
(23 h 59 min) moins une minute, pendant laquelle il transfère des données
(statistiques comptables, demande de
maintenance, etc.) par reconfiguration
en modem. Les fonctions qui étaient
utilisées pour l’application principale
(métier) sont déchargées, et le composant se reconfigure avec la fonction de modem.
Le télémètre à ultrasons  est un
autre exemple qui peut être mis en
œuvre en STS. Ce système permet
d’intégrer des fonctions numériques
(compteurs) et analogiques (filtre et
comparateur à seuil programmable).
Dans ce télémètre, la reconfiguration
CapSense ou la détection
tactile capacitive
CapSense est une technologique d’interface gagnant rapidement du terrain
sur les boutons-poussoirs pour les
applications nécessitant un panneau
avant. Elle est présente sur les PSoC
CY8C21x34 et CY8C24x94. L’intérêt
est de supprimer tout élément mécanique d’interface homme-machine,
ces éléments (boutons-poussoirs,
curseurs…) étant remplacés par des
solutions telles que des pistes de circuit imprimé ou des éléments conducteurs intégrés dans du verre (plaques
de cuisson par induction).
Pour réaliser la détection tactile
capacitive, on utilise la technique de
l’oscillateur à relaxation. Ce dernier
comprend un capteur capacitif, une
source de courant de charge, un comparateur, un commutateur de décharge,
un modulateur PWM et un temporisateur. La tension sur le condensateur
croît de manière linéaire jusqu’à ce
que le seuil soit atteint, activant la
sortie du comparateur. Celle-ci ferme
le commutateur qui décharge alors le
condensateur, et un nouveau cycle
de charge peut démarrer (pour des
exemples d’application, voir l’encadré
« La documentation »).
$
"
 Les différentes étapes de
développement d’une application PSoC
La méthode
de développement par projet
Le développement électronique autour
d’un PSoC est un projet qui se traite
de manière classique  . Le contour
du projet défini, les acteurs identifiés,
l’analyse des besoins va faire apparaître des solutions technologiques
réalisables à l’aide de fonctions électroniques intégrées dans le PSoC. Ces
fonctions peuvent être analogiques ou
numériques.
Cette étape conduit au choix d’une
famille de PSoC – nombre d’entrées/
sorties, de blocs analogiques et numériques disponibles permettant d’intégrer le système dans la puce. Cypress
propose un outil de développement,
PSoC Designer  , qui va aider le développeur quant au choix des fonctions
analogiques ou numériques répondant
à ses besoins, et met à disposition les
ressources utilisées par les fonctions
selectionnées.
On se rend vite compte si le PSoC
choisi est adapté ou non. Dans le cas
d’un nouveau projet, aucune configu-
!
#
/00*
%"
!
,&-('),.+,&--
 Le schéma d’un télémètre à ultrasons utilisant un seul transducteur
SEPTEMBRE-OCTOBRE 2006
TECHNOLOGIE 

 L’architecture de l’outil
de développement PSoC Designer
La documentation
D
émarrer avec les PSoC requiert l’aide des documents constructeur. Chaque fonction a son fichier
d’aide associé.
Le manuel de référence des PSoC en donne les caractéristiques hardware complètes :
Technical_reference_manual.pdf (ou TRM)
Pour chaque famille de PSoC, Cypress propose une
datasheet moins détaillée que le TRM, donnant les caractéristiques électriques, les performances, le brochage, les
types de boîtiers. Le côté applicatif est détaillé dans deux
fichiers, qui présentent les jeux d’instructions du microcontrôleur, les fonctions assembleur ou C, la manière de
traiter les interruptions en C, etc. :
Assembly Language User Guide.pdf
C Language Compiler User Guide.pdf
Le site PSoCDeveloper et celui de Cypress donnent un
nombre croissant de notes d’application, documents
incontournables également :
www.psocdeveloper.com
www.cypress.com
Enfin, ce dernier offre de nombreux exemples d’application de la technologie CapSense, à télécharger :
http://www.cypress.com/publishedcontent/publish/
design_resources/more_resources/contents/
psoc_r__example_projects___cy3212_capsense_
training_14.zip

TECHNOLOGIE 
ration ni développement n’ont encore
été réalisés. Dans le cas d’une évolution d’un projet PSoC existant, le
clonage de ce dernier est possible :
on peut ainsi conserver son « patrimoine » (fonctions, code assembleur
ou langage C, configuration du PSoC)
et le transférer à un PSoC de n’importe quelle autre famille – en gardant à l’esprit que si celui-ci possède
moins de ressources, PSoC Designer
n’intégrera qu’une partie des fonctions
du projet original.
Un projet auquel il manquerait des
fonctions peut évoluer simplement
par clonage sur un PSoC ayant plus
de ressources. À ce stade du projet,
les concepteurs du système embarqué
(carte électronique) et ceux de l’application (PSoC) voient leurs développements intimement liés. Tous
ont des contraintes : les premiers en
termes de routage de la carte, et les
seconds, de ressources matérielles
(broches d’entrée/sortie du microcontrôleur, routage interne du PSoC…).
Si le système est flexible, toutes les
configurations ne sont pas possibles
ou permises, et il convient de soigner
cette étape, notamment quand la réalisation de la carte et celle de l’application sont confiées à deux groupes
d’étudiants distincts.
Le déroulement du projet se poursuit par le codage de l’applicatif et
les tests. Le modèle de développement adapté pour les projets PSoC
est celui de la spirale : l’analyse des
besoins conduit aux spécifications,
vient ensuite le développement d’un
prototype (configuration et code), et
enfin la réalisation. Ce processus est
réitéré en revenant à l’analyse des
besoins. C’est l’occasion pour l’étudiant
de maîtriser rapidement la démarche
méthodologique. Il est fortement conseillé de la suivre pour valider successivement chacune des fonctions
intégrées au PSoC (configuration,
développement, tests, validation)…
même si, compte tenu de leur abondance, le nombre d’itérations peut
être élevé et la convergence vers les
objectifs du projet (délais, produit fini)
difficile à atteindre – d’où la nécessité d’un pilotage efficace par l’équipe
pédagogique.
SEPTEMBRE-OCTOBRE 2006
Dans le cadre d’activités en STS
Systèmes électroniques, les PSoC
constituent une solution très intéressante, aussi bien pour la création d’un
nouveau système embarqué (« Élaborer une nouvelle maquette ») que
pour l’évolution d’un système industriel existant (« Adapter le logiciel à
un nouveau cahier des charges »).
En effet, l’intégration des fonctions
analogiques et numériques en fait un
composant adapté à de nombreuses
applications, telles que le pilotage de
bases robotiques mobiles comportant
plusieurs capteurs numériques et analogiques, une interface USB/IrDA, un
contrôleur de machine brushless, une
boussole électronique, un chargeur de
batteries, etc.
Si le développement d’applications
PSoC avec le logiciel PSoC Designer ne
requiert pas de connaître l’architecture
des blocs analogiques et numériques
(au sens hardware), la connaissance
minimale des registres et du cœur du
microcontrôleur est nécessaire pour
l’utilisation de fonctions telles que les
ports d’entrée/sortie. En effet, l’écriture ou la lecture d’un port se fait
par l’utilisation directe du registre
(PRTxDR, « x » étant le numéro du
port). Ainsi, en faisant des parallèles
entre le logiciel PSoC Designer masquant les registres et la documentation complète des PSoC, on montre à
l’étudiant que rien n’est magique et
que l’architecture, qui paraît souple
(et qui l’est relativement), est en réalité « gravée » dans le silicium.
La programmation
de fonctions internes
La mise en œuvre des fonctions
internes au PSoC (CAN, I2C, LCD,
timer, etc.) se réalise toujours selon
le même schéma.
L’environnement de développement
PSoC Designer offre plusieurs vues du
projet : la première concerne la bibliothèque de ressources (fonctions), la
deuxième est relative au placement
des fonctions dans le PSoC, à leur
configuration et interconnexion, et
la dernière permet le développement
de l’application en langage assembleur ou en C.
 Le choix d’une fonction MLI
 L’interconnexion de la MLI
dans le PSoC
 Le panneau de configuration
de la fonction MLI
Quelques exemples
L Pour obtenir une MLI (Modulation
par Largeur d’Impulsion), par exemple,
on choisit le bloc PWM8 (pour PWM
sur 8 bits)  dans la section PWM de
la bibliothèque. Dans cette première
vue, le logiciel informe du nombre
de ressources utilisées et du nombre
de ressources restantes (blocs numériques et analogiques, RAM, ROM…).
La vue d’interconnexion permet de
configurer les fonctions choisies
après les avoir placées dans le PSoC.
Ici encore, PSoC Designer aide à la
décision, en proposant par défaut un
emplacement idoine. Une fonctionnalité du logiciel permet de demander
le prochain emplacement possible.
Ce dernier choisi, on valide le placement du bloc (de la fonction)  ,
et on peut configurer le bloc MLI  .
Une MLI nécessite une horloge de
base, un rapport cyclique, et d’être
connectée sur une pin externe du
PSoC. La configuration effectuée, il
reste à générer l’application, au sens
d’API (interface de programmation) :
des fonctions préétablies pour utiliser la MLI sont ainsi disponibles
pour le développeur  , par exemple
MLI_start() pour démarrer la MLI,
MLI_WritePulseWidth (unsigned
char rapport _ cyclique) pour
changer le rapport cyclique, etc. Les
fonctions de l’API étant construites
à partir du nom du bloc configuré, il
est conseillé de nommer la fonction
de la façon le plus parlante possible,
afin de favoriser la maintenance de
l’application.
Pour un bon usage des blocs-fonctions de PSoC Designer, il vaut mieux
lire le document d’aide associé à la
fonction, qui présente ses caractéristiques techniques ainsi que la manière
de l’utiliser. Des exemples de codes
en assembleur et en C pour l’implémentation dans l’application future
sont également fournis.
Le PSoC permet d’intégrer le filtrage, autre fonction essentielle en
électronique analogique.
Les filtres intégrés sont à capacités commutées  .
Pour obtenir un filtre analogique,
PSoC Designer propose un assistant
qui va se charger de calculer les paraL
//---------------------------------------------------------------------------------------------------------// Exemple en langage C : création d’une MLI de fréquence VC1 et rapport cyclique 50%
//---------------------------------------------------------------------------------------------------------#include <m8c.h>
#include «PSoCAPI.h»
// part specific constants and macros
// PSoC API definitions for all User Modules
void main()
{
MLI _ WritePulseWidth(50) ; //si le registre de période vaut 100, la MLI aura ici un
rapport cyclique de 50 %.
MLI _ Start() ; //démarrage de la MLI
}
 Un exemple de code source de l’application
SEPTEMBRE-OCTOBRE 2006
mètres du bloc à capacités commutées chargé de réaliser le filtrage.
L’assistant est disponible au format
Excel ou sous forme applicative dans
PSoC Designer.
Les paramètres à saisir sont le type
de filtre (Butterworth, Tchebytcheff,
Bessel), la fréquence de coupure et le
gain du filtre. Puis l’assistant donne
les valeurs des capacités C1, C2, C3,
C4, CA et CB, ainsi que la fréquence
d’horloge à appliquer au bloc à capacités commutées.
Les paramètres calculés sont
ensuite à saisir dans la vue d’interconnexion au niveau des caractéristiques
du filtre. La génération de l’application
prend en compte ces paramètres ; il
ne reste plus qu’à démarrer le filtre
(passe_bas_start() par exemple).
Les filtres pouvant être mis en
œuvre permettent un nombre important d’applications : filtrage de porteuses 40 kHz pour transducteurs à
ultrasons, détecteur de synchronisation vidéo, modem, etc.
Une application :
le vélo électrique
à alimentation hybride
La gestion de l’énergie électrique et
une de ses composantes, son stockage,
sont des enjeux majeurs. Les solutions pour le stockage sont diverses.
Pour les applications de transport,
et plus particulièrement pour celles
gourmandes en énergie transitoire,
une solution commence à émerger :
le supercondensateur.
Le vélo électrique à alimentation
hybride (batterie et supercondensateurs) est un exemple d’application susceptible de sensibiliser les
TECHNOLOGIE 

 Un exemple de filtre à capacités commutées intégré au PSoC
Eléments
de stockage
d’énergie
Convertisseur
DC/DC
étudiants à ces problématiques et
facile à mettre en œuvre dans un
établissement scolaire.
Sa motorisation est réalisée avec
une machine à courant continu (MCC1)
intégrée dans la roue arrière. L’alimentation, ou le réglage du transfert
d’énergie issue des éléments de stockage (accumulateur électrochimique
au plomb dans la version commercialisée), se fait à l’aide d’un convertisseur DC/DC (hacheur série dans la
version originale).
La simulation de la résistance à
l’avancement se fait à l’aide d’un home
trainer constitué d’une machine à courant continu à aimants permanents
(MCC2) alimentée par un convertisseur qui modifie le courant (iMCC2) en
fonction d’une consigne qui peut être
modifiée par l’utilisateur afin de simuler divers profils de route ainsi que
des inerties  .
Dans l’alimentation hybride  , les
deux types d’éléments de stockage
d’énergie sont connectés au bus continu (bus DC) par l’intermédiaire de
deux hacheurs réversibles en courant
(hacheur 1 et hacheur 2). La gestion
des flux d’énergie est spécifique à
chaque montage et est assurée par
un PSoC.
Ces deux convertisseurs ont pour
rôle d’adapter les niveaux de tension
MCC1
iMCC2
MCC2
Charge active
programmable
 Le banc expérimental du vélo électrique

TECHNOLOGIE 
SEPTEMBRE-OCTOBRE 2006
des éléments. Pour la batterie, cela
permet d’utiliser des éléments de
faible tension (12 V) par rapport à
la tension du bus DC (z 50 V) ; pour
les supercondensateurs, de s’adapter
à la variation de tension inévitable,
car la variation d’énergie est liée à
celle-ci. Le principe de la commande
est de pouvoir maintenir constante la
tension du bus DC, en agissant sur les
courants des éléments de stockage.
Ils peuvent être positifs ou négatifs
(charge ou décharge).
Chaque hacheur est géré par un
microcontrôleur PSoC qui mesure la
tension des supercaps, la tension du
bus DC et le courant dans l’inductance. Ces hacheurs peuvent recevoir des consignes de fonctionnement
(marche, arrêt, consignes de tension
et de courant, gestion des défauts)
via un bus de terrain I2C. Ils peuvent
également fournir toutes ces données
à la demande du système de gestion
maître.
La commande des transistors MOS
(15 V) est isolée du PSoC afin de s’affranchir des perturbations que pourraient occasionner l’ouverture et la
fermeture des transistors. Pour ce
faire, on utilise des optocoupleurs
rapides et des alimentations à découpage de type Traco Power.
Les flux d’énergie de l’alimentation hybride sont pilotés par un PSoC
maître dont le rôle est d’assurer une
gestion haut niveau. Ainsi, en fonction
d’une stratégie de fonctionnement
qui revient à assister le cycliste au
démarrage, en montée, et à le laisser
pédaler sur du plat ou en descente,
le système va piloter les consignes
de tension de chaque alimentation
(hacheur alimenté par les supercondensateurs et hacheur alimenté par
les batteries).
La détection d’un démarrage (détection de la rotation du pédalier) et
la mesure du courant dans la MCC
entraîne une consigne de tension plus
importante sur le hacheur à supercondensateurs. La batterie peut alors
éventuellement être rechargée par
les supercondensateurs ou bien être
découplée. L’inverse est possible, et le
cycliste va charger les supercondensateurs pendant le pédalage.
Cet exemple illustre une évolution
intéressante des hacheurs dans lesquels la commande réalisée traditionnellement avec des composants
analogiques (comparateurs, gains)
est intégrée dans une puce unique
gérant seule le fonctionnement du
système (asservissement de courant
et de tension, protection en tension
des supercondensateurs, communication avec l’extérieur…).
Les outils d’aide
au développement
Les ateliers de génie applicatifs
En informatique d’une manière générale et en informatique industrielle en
particulier, les éditeurs de logiciels,
outre qu’ils mettent à disposition une
documentation (en encadré), développent des ateliers de génie logiciels
capables de générer tout ou partie
du code de l’application embarquée.
Si des outils d’UML comme Eclipse,
Together, Rational Rose peuvent produire un squelette de code, PSoC
Express, disponible gratuitement
sur le site internet de Cypress Microsystems, permet quant à lui la génération non pas du squelette mais de
toute l’application. Cet outil est particulièrement intéressant pour développer de petites applications de manière
très rapide, par exemple la mise en
œuvre d’une liaison I2C ou la gestion
de la mémoire EEPROM.
PSoC Express permet également
la réalisation d’applications plus
complexes (un contrôle de moteur
par exemple), mais, d’un point de
vue pédagogique, on peut douter de
l’intérêt de développer avec un système qui ne permet pas de maîtri-
Les points clés
Un circuit innovateur qui réduit le nombre
de composant dédiés sur la carte
L Un circuit reconfigurable pendant le
fonctionnement
L La flexibilité de configuration des
fonctions grâce aux blocs numériques et
analogiques
L Une programmation in situ
L La possibilité d’optimisation des
composants externes
L Le coût du système
L
Hacheur 1
Batterie
Hacheur 2
Supercondensateurs
Bus DC
 L’alimentation hybride
ser le code généré, son occupation
en mémoire, etc. PSoC Designer luimême masque déjà une grosse partie
de l’application – mais il s’agit de la
configuration du composant, qui, sans
son aide, serait fastidieuse.
Notons qu’il existe un outil du même
genre chez le concurrent Microchip :
Application Maestro. Cette tendance
à la simplification est bienvenue, mais
rien ne remplace la maîtrise hardware
et software pour la conception et le
développement d’applications embarquées où un haut niveau de fiabilité et
de disponibilité sont requis.
 Le kit de développement CY3210
Le kit PSoC
Pour démarrer avec les PSoC, il est
conseillé d’utiliser un kit de développement tel que le CY3210  . Pour
ceux qui connaissent les PIC de Microchip, il ressemble au kit PicDem2plus.
Sur une carte de petit format (75 s
100 mm), on trouve les fonctions
de base, une alimentation par jack
9-12 V, pile 9 V (régulateur 7805),
un driver max232 avec le connecteur
femelle DB9. Côté microcontrôleur
et expérimentation, la carte possède un emplacement pour un PSoC
28 broches avec un PSoC CY8-2946624PXI, une minicarte type Labdec,
quatre leds CMS, un potentiomètre,
SEPTEMBRE-OCTOBRE 2006
un bouton-poussoir et un connecteur
pour l’afficheur LCD livré avec le
kit. À noter, les ports d’entrée/sortie
sont accessibles par des connecteurs
femelles, ce qui rend aisée la connexion
avec le bouton-poussoir, les leds, le
max232. Le programmateur Miniprog est également fourni et permet,
outre la programmation, d’alimenter
la carte (sous réserve de la limitation
en courant du port USB).
Le kit est distribué en France par
la société Avnet France à Palaiseau.
Son coût se situe en dessous de 50
(kit complet, avec un programmateur
Miniprog, un PSoC CY829466, un
afficheur LCD). Il est possible d’obtenir des échantillons de PSoC auprès
d’Avnet ou sur le site de Cypress.
Une nouvelle étape
L’arrivée des PSoC sur le marché
entraîne des changements dans le
métier de l’électronicien, qui devient
intégrateur de fonctions de haut
niveau. Les entreprises sont aussi
bénéficiaires de cette avancée : elle
leur permet de gagner sur les temps
de conception et de développement,
et d’assurer un retour sur investissement rapide.
La technologie PSoC arrive désormais à maturité. Après le passage de
la logique câblée au microprocesseur,
puis du microprocesseur au microcontrôleur, l’ère de l’intégration massive
de fonctions analogiques sur silicium
est annoncée. La cohabitation cœur
de microprocesseur et réseaux analogiques programmables est désormais assurée. N
TECHNOLOGIE 

Téléchargement