MCU 32bits et RTOS

Règles du forum
Cette section est dédié a vos projets, descriptions et demandes d'aide.
Merci de limiter le nombre de sujet par projets.
Lorsqu'un sujet deviens long vous pouvez éditer le premier message pour maintenir à jour le descriptif et garder en lisibilité
Avatar de l’utilisateur
Bertvoldenuit
Electrolab::Membre
Messages : 22
Enregistré le : 03 mars 2017, 10:45

MCU 32bits et RTOS

Messagepar Bertvoldenuit » 13 déc. 2018, 11:39

Bonjour,

Je suis en train de faire une refonte total de l'électronique embarqué de mon projet du variomètre pour planeur.
Je divise le problème en 2 modules indépendants :
1) un module affichage : une aiguille pilotée par un stepper type switec X27.168 via un driver et un petit LCD ou OLED ~1.3" le tout géré par un petit MCU
2) un module calculs et communications

Pour le 2ième module, je souhaite utiliser un MCU assez véloce car l'objectif final est d'obtenir le gain d'énergie total (potentiel et cinétique) du planeur sur un signal stable dans un délai nettement inférieur à 1 seconde. Pour cela j'ai besoin de lire les différents capteurs, accéléro 9 axes, 2 baromètres (pression statique, dynamique) 10, 20 fois par seconde, les interpréter (calculs) et les lisser (filtre de kalman). Le tout en communiquant avec divers équipements externes et internes. Il me faut au minimum 4 ports série.

N'étant pas encore un spécialiste des RTOS, je souhaiterais dans un premier temps utiliser Arduino IDE car j'ai déjà un programme qui tourne et pour la simplicité d'utilisation. Ensuite, je passerai sur un RTOS. J'étais parti sur la conception d'un PCB avec l'utilisation de MCU sur un format Arduino Nano. Cela permet d'utiliser la Arduino Nano avec Arduino IDE et une Nucléo STM32F303 au format Nano avec un RTOS mais il n'y a pas assez de port série... Je pars maintenant sur un MCU directement soudé sur le PCB.

Je me pose donc les questions suivantes:
1) Quel MCU (32bits à priori) est compatible sur Arduino et sur un RTOS et en plus qui peut facilement être debuggable?
Jusque là j'ai trouvé:
- le Atmel SAM3X8E du Arduino Due est compatible avec la plupart des RTOS (NuttX, FreeRTOS, mbed). Mais est-il debuggable facilement?
- les boards type Nucléo STM32 fonctionnent sur mbed et sont débuggable mais ne sont pas compatible Arduino

2) Chercher la compatibilité avec Arduino est elle une mauvaise piste? je ne me rends pas compte du gap qu'il y a entre Arduino et l'utilisation et l'installation d'un environnement de développement sur un RTOS. Mbed semble le plus abordable mais on me recommande d'utiliser plutôt NuttX.

Bertrand.
Avatar de l’utilisateur
f4grx
Electrolab::CA
Messages : 827
Enregistré le : 26 sept. 2016, 13:58

Re: MCU 32bits et RTOS

Messagepar f4grx » 13 déc. 2018, 12:13

hello
je connais pas ton niveau en soft système (applicatif t'as l'air de gérer)...

mbed, tous les gens qui ont essayé d'en faire des trucs sérieux sont tous rapidement arrivés a la conclusion que " sédlamerd' "

le problème c'est qu'arduino et tout son env ont des capacités et des dimensionnements largement inférieurs (et totalement incomparables) avec les systèmes arm32 bits embarqués. Les arduinos musclés, c'est cool, mais en pratique personne s'en sert pour des vrais trucs, donc peu d'aide en cas de besoin, etc etc

Ceci dit, si ton soft est bien structuré, et que les accès au matériel sont isolés dans des routines (dites HAL ou hardware abstraction layer), pour migrer d'arduino a stm32 tu n'auras que celles ci a réécrire, pas tout l'algo principal.

NuttX je sais m'en servir ainsi que quelques autres au lab, on peut te conseiller, et y'a une bonne communauté sur le google group. Ca contient pas mal de drivers, c'est très puissant, ca capitalise sur les dévs faits par la communauté, mais ca demande pas mal d'investissement personnel pour bien le prendre en main (lire : courbe d'aprentissage exigeante, linux, console, édition de fichiers, recherches dans pas mal de docs éparses et compréhension du code).

Mieux que la nucleo tu prendre une stm32f4discovery avec un stm32f407, tu auras tous les ports dispo. Une nucleo avec un STM32F4 (pas F3 ou moins, y'a la F411 IIRC) devrait aussi avoir tous ses ports dispo. Ces cartes sont supportées par NuttX, ca aide pour démarrer.

je te déconseille stm32cube qui permet d'écrire du code "bare metal" non seulement l'outil lui même est insupportable et fait perdre du temps, mais en plus les codes générés manquent souvent de flexibilité et de fonctionnalité en dehors des chemins balisés.
Avatar de l’utilisateur
Flax
Electrolab::CA
Messages : 759
Enregistré le : 01 mars 2017, 20:46
Contact :

Re: MCU 32bits et RTOS

Messagepar Flax » 13 déc. 2018, 13:28

f4grx a écrit :mbed, tous les gens qui ont essayé d'en faire des trucs sérieux sont tous rapidement arrivés a la conclusion que " sédlamerd' "

Pour préciser, étant un grand utilisateur de MBED - mais je me soigne - je préciserais en disant que c'est quand-même ultra-pratique pour faire un petit POC quick and dirty avec un peu plus de performance qu'un Arduino (32bits au lieu de 8bits, fréquence CPU plus élevée, fréquences périphériques plus élevées ...). Par contre pour un vrai projet compliqué avec plus que deux périphériques différents, ou sur un petit MCU, il faut oublier.

Pour les STM32, perso j'avais commencé à jouer avec l'environnement Eclipse repackagé de ST, en gratuit ya System Workbench d'AC6, ou TrueStudio d'Atollic. C'est fonctionnel, mais si on aime pas Eclipse et/ou les trucs tiers non-libres, il faut aller taquiner du makefile avec GCC. Perso ça dépasse mes capacités cognitives, je suis trop vieux pour ces conneries, donc je fais du clickou-clickou.

Toujours sur STM32, pour le HAL, il y a les libs standard fournies par ST, qui sont pratiques mais buggées :P (par exemple dixit Yannick les valeurs de prescaler sur les timers ne sont pas bonnes, détaaaaaail). Mais ça peut être une bonne base pour faire le HAL qui va bien. Surtout que, bon, des UART, c'est pas la mort comme périphérique à gérer. Et encore pour préciser sur CubeMX, oui le code généré c'est de la merde et il ne faut pas l'utiliser "en prod", par contre ça peut être utile pour comparaison, pour voir ce qu'on doit mettre dans les registres pour avoir telle ou telle config. Pas plus.

Niveau carte, je pense que ton choix de ne plus utiliser une carte toute faite est judicieux, car si tu as besoin de 4 UART, il est totalement improbable que tu arrives à trouver une carte au format Arduino Nano qui en ait autant. Donc MCU en direct je pense qu'il n'y a pas d'autre salut (sinon carte plus grosse, mais je pense que ça ne convient pas mécaniquement). Mais ce n'est pas idiot de prendre un MCU qui existe sur une carte d'éval un peu plus grosse qui ait tous les ports dispo, pour avoir une plateforme de dev / test fonctionnelle qui ne soit pas que ta carte. Ça permet de mieux discriminer quand tu as un problème, pour savoir si c'est un problème de code ou un problème de ta carte.
Avatar de l’utilisateur
rude_ulm
Electrolab::Membre
Messages : 159
Enregistré le : 03 mars 2017, 10:52
Localisation : Houilles

Re: MCU 32bits et RTOS

Messagepar rude_ulm » 13 déc. 2018, 14:36

Perso je partirais sur PIC32 avec FreeRTOS
Avantages c'est propre et ça dépote
Inconvénients le compilateur en version gratuite n'est pas trop optimisé mais on peut activer un essai gratuit de 60 jours
Il y a chez Olimex une carte de développement assez sympa
https://www.olimex.com/Products/PIC/Dev ... e-hardware
qui peut te permettre de démarrer facilement

Dom (au PIC de la tech)
Avatar de l’utilisateur
Flax
Electrolab::CA
Messages : 759
Enregistré le : 01 mars 2017, 20:46
Contact :

Re: MCU 32bits et RTOS

Messagepar Flax » 13 déc. 2018, 15:57

Bertvoldenuit a écrit :1) Quel MCU (32bits à priori) est compatible sur Arduino et sur un RTOS et en plus qui peut facilement être debuggable?

Compatible Arduino et un peu sérieux tu as les teensy : https://www.pjrc.com/teensy/
A partir de la 3.0 c'est du Freescale Cortex-M4, donc avec un OS ça devrait bien se passer. Par contre je ne sais pas dire s'il est "facilement débuggable" selon tes critères.

Bertvoldenuit a écrit :2) Chercher la compatibilité avec Arduino est elle une mauvaise piste?

Grmpf ... J'aurais tendance à dire que oui, c'est un mauvais critère. L'IDE est vraiment basique, pas de débug, et les libs sont faciles d'usage, mais pas forcément optimisées / propres. Après, il y a des gens qui travaillent sur des libs Arduino optimisées pour faire de la perf'. Je vais tâcher de retrouver ça, je me demande 'ailleurs si ce ne sont pas les mecs derrière la Teensy qui développent ça. Par ailleurs je ne sais pas trop comment on peut faire coucher Arduino et un OS ... Ah ben si on peut : https://www.hackster.io/feilipu/using-f ... ino-ebc3cc
Et comme dit GRX, si tu as bien séparé l'applicatif et le HAL, en changeant d'environnement tu n'as "que" le HAL à changer, l'applicatif peut être gardé tel quel.

Mais bon, je ne peux pas m'empêcher de dire : tu as déjà bénéficié de l'Arduino pour faire la mise au point sur ton protoype actuel. Il est grand temps de monter en compétence et de passer sur des outils pour adultes :diable:

[HS]: c'est marrant comment, sur ce genre de topic "pourriez-vous m'aider à choisir une solution technique" on ne peut pas s'empêcher de pousser ses outils préférés :happy1: Flax : "oui, bon, MBED c'est de la merde, d'accord, mais quand-même gnagnagna", GRX : "NUTTX ! NUTTX !", rude_ulm : "PIC ! PIC !" :mdr3: On devrait monter un sketch, chuis sûr ya moyen d'animer des soirées. Et encore, je me suis retenu de proposer du FPGA pour troller GRX :ange: Là ça aurait été festival sons et lumières ![/HS]
FRoussel
Electrolab::Membre
Messages : 95
Enregistré le : 01 mars 2017, 12:41

Re: MCU 32bits et RTOS

Messagepar FRoussel » 13 déc. 2018, 16:12

Flax a écrit :[HS]: c'est marrant comment, sur ce genre de topic "pourriez-vous m'aider à choisir une solution technique" on ne peut pas s'empêcher de pousser ses outils préférés :happy1: Flax : "oui, bon, MBED c'est de la merde, d'accord, mais quand-même gnagnagna", GRX : "NUTTX ! NUTTX !", rude_ulm : "PIC ! PIC !" :mdr3: On devrait monter un sketch, chuis sûr ya moyen d'animer des soirées. Et encore, je me suis retenu de proposer du FPGA pour troller GRX :ange: Là ça aurait été festival sons et lumières ![/HS]


IDE arduino, beaucoup de pattes, rapide, de la mémoire, une communauté d'amateurs et de pros..... Vous avez dit ESP32 ?

Je suis déjà parti......
Francis
Maximusk
Electrolab::CA
Messages : 49
Enregistré le : 15 nov. 2017, 08:58

Re: MCU 32bits et RTOS

Messagepar Maximusk » 13 déc. 2018, 16:14

Flax a écrit :et les libs sont faciles d'usage, mais pas forcément optimisées / propres


Voire pas fonctionnelles sur des cartes autres que arduino Uno / Nano / Mega.
Avatar de l’utilisateur
Steve
Electrolab::CA
Messages : 844
Enregistré le : 26 sept. 2016, 00:08
Référent : Zone Meca

Re: MCU 32bits et RTOS

Messagepar Steve » 13 déc. 2018, 16:39

Bon nats n'a pas encore suggéré mutekh...
Mon avis c'est que tu as probablement intérêt à partir d'une board de dev toute faite et pas chère, genre une nucleo, avec le bon MCU dessus, et de commencer à faire un peu de dev dessus avec divers outils pour voir comment ça se passe, avant de te lancer directement dans le tirage d'un pcb.
Avatar de l’utilisateur
rude_ulm
Electrolab::Membre
Messages : 159
Enregistré le : 03 mars 2017, 10:52
Localisation : Houilles

Re: MCU 32bits et RTOS

Messagepar rude_ulm » 13 déc. 2018, 16:55

Pour éviter 4 ports série on se rappellera utilement que Philips en 1982 a inventé l' I2C (ou IIC ) qui est toujours d'actualité, et Ô miracle, est utilisé par plein de périphériques Arduino et (re) Ô surprise les capteurs 6/9/10 DOF qui vont bien sur ton projet, donc rajouter des périphériques ne devrait pas être un PB

Après c'est vrai que porter des libs Arduino sur d'autres µC c'est du taf, mais mais mais ... quid de l'arduino nano avec un Cortex M10 ?

https://www.banggood.com/fr/Wemos-SAMD2 ... rehouse=CN

trouvé en 10 secondes j'ai pris le premier

D'accord ça ne vaut pas un PIC :) mais ça mérite peut être le détour

Dom
Maximusk
Electrolab::CA
Messages : 49
Enregistré le : 15 nov. 2017, 08:58

Re: MCU 32bits et RTOS

Messagepar Maximusk » 13 déc. 2018, 18:48

Sauf qu'il doit connecter son microcontrôleur a plusieurs équipements externes et internes. Et c'est probablement eux qui ont besoin de port série et qui ne sont pas compatibles I²C.

L'arduino nano avec un cortex M10 c'est... pas une arduino nano. Le pinout est le même mais le form factor est légèrement différent, c'est du micro USB au lieu du mini, et c'est pas le même micro, donc pas la même compatibilité logicielle (y compris avec les libs arduino).

Pour faire un truc serieux (pour de l'aéronautique par exemple), il ne faut pas compter sur arduino, le hardware est moyen (LDO sous dimensionnés, connectique pas du tout adaptée aux vibrations) et le software est carrément pourri pour autre chose que du projet amateur (la fonction millis utilisée par tout ce qui est chronométré et pas bloquant qui overflow au bout de 90 jours...). No way que je monte dans un planeur ou un avion qui contient de l'électronique à base d'arduino, même redondé 20 fois !

Pour moi tu prends une nucleo (pas cher du tout) ou une discovery (un peu plus cher mais toujours abordable) , tu apprends à programmer sur STM32, et après tu peux concevoir ton PCB avec n'importe quelle gamme de MCU (les STM32 ça va du petit micro TSSOP-16 au BGA avec contrôleur d'écran HD intégré). La nucleo avec un F411 coûte à peine 11€ de mémoire, et ça sort des usines ST, pas d'un fabricant de contrefaçons chinoises.

Retourner vers « Les Projets »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité