12 étapes de la vie d’une plaque à induction professionnelle (5/12)

Exemple de développement de code avec outil de conception d'une plaque à induction professionnelle

Etape 5 : Le microcontrôleur et son code

Typiquement, un système électronique moderne comporte au moins un microcontrôleur, circuit intégré programmable qui peut réaliser un grand nombre de fonctions. Ces fonctions dépendent des possibilités du microcontrôleur, mais aussi du besoin, de l’application, défini par le logiciel embarqué (enregistré) dans sa mémoire programme, appelé aussi ‘firmware’, ou plus simplement ‘code’.

  • Les possibilités du microcontrôleur

Les possibilités du microcontrôleur sont de plus en plus évoluées.

Typiquement on trouve un  ‘cœur’ (CPU). Celui-ci traite des instructions sur des données binaires utilisant 32bits,  avec une architecture RISC (une liste d’instructions ) fournie par la société ARM, leader mondial en ce domaine.

Puis différentes mémoires, de taille très variables, volatiles pour les variables, non volatiles pour enregistrer le code.

Puis une grande variété de ‘périphériques’ : blocs de fonction tels que modules de mesure analogiques (ADC), timers pour générer des signaux ou des délais, horloge temps réel avec calendrier, interfaces de communication filaires ( ports série, USB, SPI, I2C, Ethernet, ….) ou sans fil , telles que Wifi, Bluetooth, ISM, NFC,….

Tout ceci pour quelques euros, voire moins d’un euro , et une très faible consommation électrique ! Les progrès sont permanents.

  • Le code

Le code ordonnance toutes ces ressources pour réaliser les fonctions voulues. Dans le cas de nos cuiseurs à induction, il s’agit d’exécuter la demande de l’utilisateur, c’est-à-dire  appliquer la puissance ou la température de chauffe demandée, tout en supervisant le système pour assurer un fonctionnement sûr et une très grande longévité de l’appareil.  Nous effectuons en permanence, un grand nombre de mesures de courants, tensions et températures  pour réaliser cette tâche de supervision.

Malgré le grand nombre de langages de programmation aujourd’hui disponibles, la majorité des développement pour microcontrôleurs s’effectuent toujours en langage C ou C++. Loin d’être le langage idéal, il constitue cependant un bon compromis, avec une programmation haut niveau permettant de ‘descendre’ si besoin au niveau des instructions et registres de base du ‘micro’ et une forte communauté de développeurs.

La plupart des fabricants de microcontrôleurs fournissent gratuitement des environnements de développement (IDE) puissants et relativement ‘user friendly’, avec librairies et exemples de code, et souvent un module de déverminage.

Nous utilisons l’outil LPCXPRESSO/MCUXPRESSO, basé sur l’IDE Eclipse, fourni par NXP, le fabricant de nos microcontrôleurs.

Un exemple de code est montré ci-dessous. Il représente, de façon simplifiée, une construction très classique de machine d’état (state machine). Celui-ci gère, ici avec la variable ‘operating mode’, l’état du cuiseur et le passage d’un mode à l’autre ( STOP, ALERT, POTCHK, NORMAL,..).

Exemple de développement de code avec outil de conception  (IDE Eclipse)

Exemple de développement de code avec outil de conception d'une plaque à induction professionnelle

 

Note personnelle à l’usage des compatriotes patriotes: il nous semble aujourd’hui obligatoire de coder en anglais, avec des commentaires en anglais…

L’anglais est de fait la langue technique.

 

 


Rédiger un commentaire

Votre adresse e-mail ne sera pas publiée.