Les réponses à vos questions sont différentes selon votre objectif final. Si vous avez besoin d'une poignée ou moins de ces appareils, vous devez faciliter le développement et ne pas vous soucier du coût des pièces. Si vous voulez en faire un millier ou plus, cela vaut la peine d'analyser vos besoins et de réduire le coût du matériel de l'appareil.
Petites quantités
Si vous effectuez une série unique ou unique de ces appareils, vos efforts de développement vont submerger vos coûts par article, et vous devez vous concentrer sur ce qui sera le plus facile / le plus rapide à développer pour vous, plutôt que sur le coût / taille de la microélectronique.
En général, l'encapsulation peut réduire la complexité et augmenter votre productivité. Si vous avez des exigences difficiles en temps réel, telles que votre contrôle BLDC, les boucles PID, etc., il peut être plus rapide d'utiliser des contrôleurs séparés spécifiquement pour les tâches qui communiquent avec les contrôleurs où vous conservez l'interface utilisateur et d'autres non-réels. tâches de temps.
Donc dans ce cas, la réponse à vos questions est:
L'approche tout-en-un est-elle une bonne idée lorsque vous devez faire beaucoup de multitâche, ou est-il préférable de segmenter et d'isoler, et
L'échelle penche légèrement vers la segmentation et l'isolement. La raison principale est que le débogage d'un système en temps réel peut prendre beaucoup de temps, et garder ces tâches sur leur propre processeur limite les variables que vous devez mesurer ou contrôler lorsque vous essayez de trouver pourquoi quelque chose ne fonctionne pas correctement.
Comment savoir intuitivement si le microcontrôleur que je regarde a suffisamment de puissance de calcul pour faire ce dont j'ai besoin en fonction de ma liste de tâches?
Dans ce cas, la différence de coût entre un processeur 32 bits avec beaucoup de ressources et un processeur 8 bits avec des ressources limitées est faible par rapport au temps que vous allez consacrer au développement. Il n'y a aucune raison d'essayer de déterminer la puissance dont vous avez besoin - obtenez simplement le plus gros processeur que vous pensez pouvoir développer et l'utiliser. Si, à un moment ultérieur, vous devez optimiser les coûts de conception, il est relativement facile de mesurer l'utilisation réelle des ressources du processeur, puis choisissez un processeur bailleur capable de gérer la charge réelle. Jusque-là, utilisez le plus grand et ne vous inquiétez pas de trouver le "meilleur ajustement".
Production de masse
Si vous prévoyez de fabriquer un grand nombre de ces appareils, une analyse minutieuse entraînera des économies de coûts importantes. De manière générale, un microcontrôleur plus gros coûtera moins de deux microcontrôleurs capables de remplacer le microcontrôleur unique, bien qu'il existe certainement des exceptions en fonction des tâches spécifiques requises. À ces quantités, le coût du matériel sera probablement beaucoup plus élevé que le coût de développement, vous devez donc vous attendre à passer plus de temps à analyser vos besoins et à effectuer le développement que si vous n'en faisiez que quelques-uns.
L'approche tout-en-un est-elle une bonne idée quand il faut faire beaucoup de multitâche, ou est-il préférable de segmenter et d'isoler?
L'approche tout-en-un sera généralement moins coûteuse sur la durée de vie du projet que plusieurs processeurs. Cela nécessitera plus de temps de développement et de débogage pour s'assurer que les différentes tâches n'entrent pas en conflit, mais une conception logicielle rigoureuse limitera presque autant que le ferait un matériel séparé.
Comment savoir intuitivement si le microcontrôleur que je regarde a suffisamment de puissance de calcul pour faire ce dont j'ai besoin en fonction de ma liste de tâches?
Vous devrez comprendre les tâches que vous souhaitez effectuer et le nombre de ressources qu'elles nécessitent. Supposons que ce qui suit était vrai:
Vos routines BLDC PI consommeront X cycles de temps de processeur 100 fois par seconde, et chacune a besoin d'environ 50 octets de RAM pour le fonctionnement, 16 octets d'EEPROM pour le réglage et 1k flash pour le code. Ils auront chacun besoin de 3 périphériques PWM à 16 bits dans le microcontrôleur. Vous devrez peut-être spécifier la gigue, qui aura des exigences spécifiques de latence d'interruption.
Vos routines USB et série consommeront Y cycles de temps de processeur au besoin, 2 Ko de RAM, 64 octets d'EEPROM et 8 Ko de flash. Il faudra des périphériques USB et série.
Votre interface graphique consommera Z cycles de puissance de processeur 30 fois par seconde, et aura besoin de 2 Ko de RAM, 128 octets d'EEPROM et 10 000 Flash. Il utilisera 19 E / S pour les communications avec l'écran LCD, les boutons, les boutons, etc.
Lorsque vous démarrez pour la première fois, il peut être difficile de comprendre ce que sont réellement X, Y, Z, et cela changera un peu en fonction de l'architecture du processeur. Cependant, vous devriez être en mesure de comprendre, dans une estimation approximative, la quantité de RAM, eeprom et flash dont votre conception aura besoin, et de quels périphériques vous avez besoin. Vous pouvez choisir une famille de processeurs qui répond à vos besoins en matière de mémoire et de périphériques et dispose d'un large éventail d'options de performances au sein de cette famille. À ce stade, pour le développement, vous pouvez simplement utiliser le processeur le plus puissant de la famille. Une fois que vous avez mis en œuvre votre conception, vous pouvez facilement passer de la famille en termes de puissance à une option à moindre coût sans changer votre environnement de conception ou de développement.
Après avoir fait suffisamment de ces conceptions, vous pourrez mieux estimer X, Y et Z. Vous saurez que les routines BLDC PI, bien qu'elles s'exécutent souvent, sont assez petites et nécessitent très peu de cycles. Les routines USB et série nécessitent beaucoup de cycle, mais se produisent rarement. L'interface utilisateur nécessite fréquemment quelques cycles pour trouver des modifications, mais nécessitera souvent de nombreux cycles pour mettre à jour un affichage, par exemple.