Відповіді на ваші запитання різні залежно від того, яка ваша кінцева мета. Якщо вам потрібна кілька або менше цих пристроїв, вам слід полегшити розробку, а не турбуватися про вартість деталей. Якщо ви збираєтеся виготовити тисячу і більше таких, варто проаналізувати свої вимоги та зменшити вартість апаратного забезпечення пристрою.
Невеликі кількості
Якщо ви робите одноразовий або невеликий запуск цих пристроїв, тоді ваші зусилля з розвитку збираються зменшити ваші витрати за кожний товар, і вам слід зосередитись на тому, що буде найпростішим / швидким для вашого розвитку, а не на витратах / розмір мікроелектроніка.
В цілому інкапсуляція може зменшити складність, підвищивши вашу продуктивність. Якщо у вас є жорсткі вимоги в режимі реального часу, такі як ваш контроль BLDC, PID-петлі тощо, то вам може бути швидше використовувати окремі контролери спеціально для тих завдань, які спілкуються з контролерами, де ви зберігаєте інтерфейс користувача та інші часові завдання.
Тож у цьому випадку відповідь на ваші запитання:
Чи гарна ідея підходу "все в одному", коли потрібно робити багатозадачність, чи краще сегментувати та ізолювати, і
Шкала трохи спрямовує на сегментацію та ізоляцію. Основна причина полягає в тому, що налагодження системи в режимі реального часу може зайняти багато часу, а утримання таких завдань на власному процесорі обмежує змінні, які ви повинні вимірювати або контролювати, намагаючись знайти, чому щось не працює.
Як я можу інтуїтивно дізнатись, чи є у мікроконтролера, на який я дивлюсь, достатня обчислювальна потужність, щоб зробити те, що мені потрібно, виходячи зі списку завдань?
У цьому випадку різниця у вартості між 32-бітовим процесором з великою кількістю ресурсів і 8-бітним процесором з обмеженими ресурсами невелика щодо кількості часу, який ви збираєтеся витратити на роботу над розробкою. Немало підстав намагатися розібратися, яка потужність вам потрібна - просто отримайте найбільший процесор, який ви відчуваєте, що можете його розробити і використовувати. Якщо в якийсь пізній момент вам доведеться витратити гроші на оптимізацію дизайну, виміряти фактичне використання ресурсів процесора порівняно просто, то вибирайте процесор-лізингодавець, який може впоратися з фактичним навантаженням. До цього часу використовуйте найбільший і не переживайте за те, щоб знайти "найкращу форму".
Масове виробництво
Якщо ви плануєте виготовити багато з цих пристроїв, то ретельний аналіз принесе значну економію коштів. Взагалі кажучи, більший мікроконтролер обійдеться менше двох мікроконтролерів, здатних замінити один мікроконтролер, хоча, безумовно, є винятки залежно від конкретних необхідних завдань. У цих кількостях вартість апаратного забезпечення, ймовірно, буде значно більшою, ніж вартість розробки, тому слід розраховувати витратити більше часу на аналіз своїх вимог та виконання розробки, ніж ви б, якби ви робили лише кілька.
Чи гарна ідея підходу «все в одному», коли потрібно робити багатозадачність, або краще сегментувати та ізолювати?
Підхід «все в одному», як правило, буде дешевшим протягом життя всього проекту, ніж кілька процесорів. Це зажадає більше часу на розробку та налагодження, щоб переконатися, що різні завдання не конфліктують, але сувора конструкція програмного забезпечення обмежить це майже стільки, скільки має окреме обладнання.
Як я можу інтуїтивно дізнатись, чи є у мікроконтролера, на який я дивлюсь, достатня обчислювальна потужність, щоб зробити те, що мені потрібно, виходячи зі списку завдань?
Вам потрібно буде зрозуміти завдання, які ви хочете виконати, і скільки ресурсів вони забирають. Припустимо, було правдою:
Ваші підпрограми BLDC PI будуть споживати X циклів часу процесора 100 разів на секунду, і кожному потрібно близько 50 байт оперативної пам’яті для роботи, 16 байт EEPROM для настройки та 1 кб спалаху для коду. Кожному з них знадобляться 3 шістнадцять бітових ШІМ-периферійних пристроїв у мікроконтролері. Можливо, вам потрібно буде вказати тремтіння, яке матиме конкретні вимоги до затримки переривання.
Ваші USB та послідовні програми будуть вимагати Y циклів процесорного часу за необхідності, 2 кб оперативної пам’яті, 64 байт EEPROM та 8 кб спалаху. Для цього знадобиться USB та послідовна периферія.
Ваш графічний інтерфейс споживає Z циклів потужності процесора 30 разів на секунду, і йому знадобляться 2 кб оперативної пам’яті, 128 байт EEPROM та 10k спалах. Він використовуватиме 19 вводу-виводу для зв'язку з РК-дисплеєм, кнопками, ручками тощо.
Коли ви вперше починаєте, може бути важко зрозуміти, що насправді X, Y, Z, і це трохи зміниться в залежності від архітектури процесора. Однак ви повинні мати змогу зрозуміти, під час оцінки бального парку, скільки потрібно оперативної пам’яті, eeprom та флеш-дизайну та яких периферійних пристроїв вам потрібно. Ви можете вибрати сімейство процесорів, яке відповідає вашій пам’яті та периферійним вимогам і має широкий спектр варіантів продуктивності в межах цієї сім’ї. У цей момент для розробки ви можете просто використовувати найпотужніший процесор у сім'ї. Після того, як ви реалізуєте свій дизайн, ви зможете легко перенести сімейство з точки зору потужності на дешевший варіант, не змінюючи дизайн або середовище розробки.
Після того, як ви зробили достатньо цих конструкцій, ви зможете оцінити X, Y і Z краще. Ви будете знати, що підпрограми BLDC PI, хоч і виконуються часто, є досить маленькими і вимагають дуже мало циклів. USB та послідовні програми вимагають багато циклу, але трапляються нечасто. Користувальницький інтерфейс вимагає декількох циклів часто, щоб знайти зміни, але для оновлення дисплея, наприклад, потрібно буде багато циклів, наприклад, для оновлення дисплея.