Die Antworten auf Ihre Fragen unterscheiden sich je nach Ihrem Endziel. Wenn Sie eine Handvoll oder weniger dieser Geräte benötigen, sollten Sie die Entwicklung vereinfachen und sich nicht um die Teilekosten kümmern. Wenn Sie tausend oder mehr davon herstellen, lohnt es sich, Ihre Anforderungen zu analysieren und die Kosten für die Gerätehardware zu senken.
Kleinmengen
Wenn Sie eine einmalige oder kleine Anzahl dieser Geräte verwenden, werden Ihre Entwicklungsanstrengungen Ihre Einzelkosten übersteigen. Sie sollten sich auf das konzentrieren, was für Sie am einfachsten / schnellsten zu entwickeln ist, und nicht auf die Kosten. Größe der Mikroelektronik.
Im Allgemeinen kann die Verkapselung die Komplexität verringern und Ihre Produktivität steigern. Wenn Sie harte Echtzeitanforderungen haben, wie z. B. Ihre BLDC-Steuerung, PID-Schleifen usw., ist es möglicherweise schneller, separate Steuerungen zu verwenden, die speziell für die Aufgaben geeignet sind, die mit Steuerungen kommunizieren, bei denen Sie die Benutzeroberfläche und andere nicht realistische Steuerungen verwenden. Zeitaufgaben.
In diesem Fall lautet die Antwort auf Ihre Fragen:
Ist der All-in-One-Ansatz eine gute Idee, wenn viel Multitasking durchgeführt werden muss, oder ist es besser, zu segmentieren und zu isolieren und
Die Skala neigt sich leicht zur Segmentierung und Isolierung. Der Hauptgrund dafür ist, dass das Debuggen eines Echtzeitsystems sehr zeitaufwändig sein kann. Wenn Sie solche Aufgaben auf einem eigenen Prozessor ausführen, werden die Variablen eingeschränkt, die Sie messen oder steuern müssen, um herauszufinden, warum etwas nicht richtig funktioniert.
Wie kann ich intuitiv herausfinden, ob der von mir betrachtete Mikrocontroller über genügend Rechenleistung verfügt, um anhand meiner Aufgabenliste das zu tun, was ich brauche?
In diesem Fall ist der Kostenunterschied zwischen einem 32-Bit-Prozessor mit vielen Ressourcen und einem 8-Bit-Prozessor mit begrenzten Ressourcen im Verhältnis zu der Zeit, die Sie für die Entwicklung aufwenden werden, gering. Es gibt keinen Grund, herauszufinden, wie viel Leistung Sie benötigen - holen Sie sich einfach den größten Prozessor, für den Sie das Gefühl haben, dass Sie ihn entwickeln und verwenden können. Wenn Sie zu einem späteren Zeitpunkt das Design kostenoptimieren müssen, ist es relativ einfach, den tatsächlichen Ressourcenverbrauch des Prozessors zu messen. Wählen Sie dann einen Leasing-Prozessor, der die tatsächliche Last bewältigen kann. Verwenden Sie bis dahin die größte und sorgen Sie sich nicht darum, die "beste Passform" zu finden.
Massenproduktion
Wenn Sie vorhaben, viele dieser Geräte herzustellen, führt eine sorgfältige Analyse zu erheblichen Kosteneinsparungen. Im Allgemeinen kostet ein größerer Mikrocontroller weniger als zwei Mikrocontroller, die den einzelnen Mikrocontroller ersetzen können, obwohl es in Abhängigkeit von den spezifischen erforderlichen Aufgaben sicherlich Ausnahmen gibt. Bei diesen Stückzahlen sind die Kosten für die Hardware wahrscheinlich viel höher als die Kosten für die Entwicklung. Daher sollten Sie mehr Zeit für die Analyse Ihrer Anforderungen und die Durchführung der Entwicklung aufwenden, als wenn Sie nur einige wenige erstellen würden.
Ist der All-in-One-Ansatz eine gute Idee, wenn viel Multitasking durchgeführt werden muss, oder ist es besser, zu segmentieren und zu isolieren?
Der All-in-One-Ansatz ist im Allgemeinen über die gesamte Projektlaufzeit kostengünstiger als mehrere Prozessoren. Es wird mehr Entwicklungs- und Fehlerbehebungszeit erfordern, um sicherzustellen, dass die verschiedenen Aufgaben nicht in Konflikt geraten. Durch strenges Softwaredesign wird dies jedoch fast so stark eingeschränkt wie bei Verwendung separater Hardware.
Wie kann ich intuitiv herausfinden, ob der von mir betrachtete Mikrocontroller über genügend Rechenleistung verfügt, um anhand meiner Aufgabenliste das zu tun, was ich brauche?
Sie müssen wissen, welche Aufgaben Sie ausführen möchten und wie viele Ressourcen sie benötigen. Angenommen, Folgendes wäre wahr:
Ihre BLDC-PI-Routinen belegen 100-mal pro Sekunde X-Zyklen Prozessorzeit und benötigen jeweils etwa 50 Byte RAM für den Betrieb, 16 Byte EEPROM für die Optimierung und 1 KB Flash für den Code. Sie benötigen jeweils 3 16-Bit-PWM-Peripheriegeräte im Mikrocontroller. Möglicherweise müssen Sie Jitter angeben, für das bestimmte Anforderungen an die Interrupt-Latenz gelten.
Ihre USB- und seriellen Routinen belegen nach Bedarf Y-Zyklen an Prozessorzeit, 2 KB RAM, 64-Byte-EEPROM und 8 KB Flash. Es werden USB- und serielle Peripheriegeräte benötigt.
Ihre GUI verbraucht 30-mal pro Sekunde Z-Zyklen an Prozessorleistung und benötigt 2 KB RAM, 128 Byte EEPROM und 10 KB Flash. Es werden 19 E / A für die Kommunikation mit dem LCD, den Tasten, Knöpfen usw. verwendet.
Wenn Sie zum ersten Mal anfangen, ist es möglicherweise schwierig zu verstehen, was X, Y, Z tatsächlich sind, und dies wird sich je nach Architektur des Prozessors ein wenig ändern. Sie sollten jedoch in der Lage sein zu verstehen, wie viel RAM, EEPROM und Flash Ihr Design benötigt und welche Peripheriegeräte Sie benötigen. Sie können eine Prozessorfamilie auswählen, die Ihren Speicher- und Peripherieanforderungen entspricht und über eine Vielzahl von Leistungsoptionen in dieser Familie verfügt. Zu diesem Zeitpunkt können Sie für die Entwicklung einfach den leistungsstärksten Prozessor der Familie verwenden. Sobald Sie Ihr Design implementiert haben, können Sie die Familie in Bezug auf Leistung auf eine kostengünstigere Option umstellen, ohne das Design oder die Entwicklungsumgebung zu ändern.
Wenn Sie genug von diesen Entwürfen gemacht haben, können Sie X, Y und Z besser einschätzen. Sie werden wissen, dass die BLDC-PI-Routinen, obwohl sie häufig ausgeführt werden, recht klein sind und nur sehr wenige Zyklen erfordern. Die USB- und seriellen Routinen erfordern viel Zeit, treten jedoch nur selten auf. Die Benutzeroberfläche benötigt einige Zyklen häufig, um Änderungen zu finden, es sind jedoch viele Zyklen erforderlich, um beispielsweise eine Anzeige zu aktualisieren.