Яке місце знаходяться в 8- і 16-бітових мікроконтролерах? Чому 32-розрядні не перейняли?


9

Яка реальна точка відключення з точки зору компромісу між вартістю та продуктивністю для вибору 32-бітових мікроконтролерів?

Іншими словами, із зростанням та домінуванням архітектури ARM, чому ми все ще використовуємо 8-бітні та 16-бітні мікроконтролери? Вони все ще значно дешевші?

Я розумію, що дуже низьким класам пристроїв не потрібні ресурси, пропоновані більшими та складнішими архітектурами. Однак яка реальна мотивація все-таки використовувати їх, якщо здається, що витрати збігаються до одного діапазону?


1
Споживання енергії?
Леон Геллер

7
Найдешевший 32-розрядний µC на Digikey, який я бачу, становить приблизно 0,64 долара, найдешевший 8-бітний - 0,35 долара. Якщо ви велика компанія, яка збирається створити мільйон простих віджетів, це дуже важлива різниця.
Самуїл

@LeonHeller На перший погляд я схильний погоджуватися, але дивлюсь на те, що я зробив у коментарях запропонованої відповіді.
Бруно Мораї

2
Перегляд рівних цін на DigiKey - не геніальне керівництво, тому що належним чином крихітні мікрофони у невеликих вбудованих додатках малої потужності, які масово виробляються, ніхто не купує їх у DigiKey, і, швидше за все, вони купують штампи, щоб не пристати пакет чіпів для пайки на дошці. 8-бітний мікрофон завжди буде меншим, простішим, отже, дешевшим та меншим за потужністю, ніж 32-бітний еквівалентний за конструкцією. Так, маржа падає до мінливості для багатьох людей, але в масових обсягах навіть 1/10-та частина зекономленої копійки варта того.
Джон У

Ось відповідна стаття, на яку я потрапив на веб-сайті Electronic Design: 8 Bit або 32 Bit? Вибір MCU наступного дизайну
Гарт Вілсон

Відповіді:


17

Можливо, рік тому була значна різниця між 8-бітовими низькими кінцевими і найдешевшими 32-бітовими мікроконтролерами. Більше не так.

Виходячи з масових цін Digi-Key, ви можете отримати 8-бітний PIC10F200 на 35ȼ в 2500 кількостях у пакеті SOT-23-6. Ви отримуєте 32-розрядний CY8C4013SXI-400 (ARM Cortex-M0) на 36ȼ в 2500 кількостях в упаковці SOIC-8. (Масове ціноутворення в Digi-Key не є реалістичним з точки зору того, що фактично платять виробники, що, мабуть, набагато менше, але я вважаю, що це справедливо використовувати для грубого порівняння цін між різними продуктами на аналогічні кількості.)

Тож ОП правильно, вони сходяться.

Так чому 32-бітні чіпи більше не використовуються? Як я вже говорив у своєму першому абзаці, ціна співвідношення ціни та розміру сталася лише за останній рік чи 18 місяців. І у них ще тривалий шлях, перш ніж буде достатньо фішок для конкурентоспроможності.

З 6875 мікросхем ARM, доступних у Digi-Key, є лише чотири на складі з ціновою кількістю за долар. Четверо . Тим часом інженерам на вибір є сотні 8-бітових мікросхем під долар.

Але давайте скажемо, що було щонайменше кілька десятків 32-бітових мікросхем низького класу. Чи автоматично вони будуть обрані над 8-бітовими?

Перш за все, ви повинні ознайомити їх з інженерами. Завжди є великий опір змінам. Нові речі, які потрібно вивчити - з апаратної точки зору, навчившись інтегрувати новий мікросхем у схему. Існують нові інструменти, як програмові програмісти, нові компілятори тощо. Для інженерів мікропрограмного забезпечення, навчившись використовувати абсолютно новий набір периферійних пристроїв та таймерів (в основному реєструють макети та значення бітів).

32-бітний приємний і все таке, але якщо вам не потрібно робити багато важких обчислень, який сенс? Якщо у вас є лише чотири штифти GPIO, доступ до них внутрішньо як 32-розрядний регістр не дає переваги перед використанням 8-бітного регістра.

Я думаю, що споживання електроенергії завжди буде на користь 8-бітових мікросхем.

Наприклад, PIC10F200 притягує 175 мкА, працюючи на 4 МГц і 2 В і 100 нА в режимі сну. CY8C4013SXI-400 в режимі сну складає приблизно 800 мкА, працює при 4 МГц і 2 В та 1 мкА. (Лист даних для CY8C4013SXI не мав цифр ні для 4 МГц, ні для 2В, тому мені довелося зробити деяку оцінку - в цьому аркуші написано, що він складає 2 мА при 6 МГц і 3.3 В).

Так ARM притягує в 4,5 рази більше струму під час пробудження і в 10 разів під час сну. Це не здається великим, але його різниця між бігом по монетній камері протягом 3 місяців або протягом року. (Я припускаю, що обидва мікроконтролера здебільшого роблять синхронізацію, оновлюють порти і т. Д. І не роблять реальних важких обчислень. Якщо це останнє, і 8-бітний мікро-мікроскоп повинен робити багато багатобайтової арифметики протягом тривалого періоду з часом вона втрачає частину своєї переваги.)

Цікаво, що ARM витягує приблизно в чотири рази більше струму, ніж 8-гіркий, а він, у свою чергу, має внутрішні регістри та шляхи передачі даних, які в чотири рази ширші. Я не думаю, що це збіг обставин. Для CMOS споживання енергії приблизно пропорційно кількості транзисторів, що перемикаються, і ARM, очевидно, робить набагато більше за виконану інструкцію.

Оскільки більше постачальників ARM випускають фішки низького класу, я не здивуюся, якби такі постачальники, як Microchip, ще більше знизили ціни. У будь-якому випадку, з цінами, більш-менш рівними пакетами аналогічного розміру, але набагато меншими 32-бітовими мікросхемами, які можна вибрати, я думаю, що 8-бітні мікроконтролери все ще будуть деякий час, особливо тому, що ви познайомилися з ними десятки тисяч інженерів.


Для споживання електроенергії з реалізованими режимами сну вам також доведеться враховувати ефективність коду. Якщо MCU прокидається тригером, а потім виконує деякий код і повертається до сну, кількість годинних галочок, необхідних для завершення завдання, буде досить актуальною. Я думаю, що більша частина поточного споживання MCU відбувається від генератора, що працює на повній швидкості. Щоб виконати таку ж роботу, як 32 гіркі, 8 гірким, ймовірно, знадобиться приблизно в п’ять разів більше, ніж кількість циклів, просто тому, що вони, як правило, набагато менш ефективні, навіть коли роблять просту арифметику.
Лундін

(І це не стільки тому, що вони мають 8-бітну шину даних, а головним чином тому, що всі основні 8-бітні ринки ринку мають старовинні дизайнерські ядра процесора з 70-х та 80-х років.)
Лундін,

1
@Lundin Я говорю це у своїй відповіді - якщо 8-гірка має багато фантазійної математики в ISR, тоді вона втрачає частину своєї переваги. Але якщо це просто встановлення деяких прапорів або оновлення реєстру, це буде ефективніше.
tcrosley

5

Три основні моменти:

  • Ціна
  • Розмір
  • Споживання енергії

50 ¢, коли ви замовляєте 10000 фішок, це досить великі гроші. Ще більше, коли ви замовляєте 100 000 фішок.

Ви можете отримати 8 бітових чіпів, значно менших, ніж 32-бітні мікросхеми, наприклад, PIC10, який доступний в пакеті SOT23-6.

32-бітні мікросхеми, оскільки вони, як правило, швидше заробляються та роблять більше, споживають набагато більше енергії, ніж маленький 8-бітовий чіп. Батареї витрачаються швидше, системи живлення повинні забезпечувати більш струм (а значить, і дорожче) тощо.

Зрештою, навіщо б ви купували джунґнаут, щоб взяти чашку цукру поруч?


2
Просто порівняйте дві мікросхеми одного виробника - наприклад, PIC18F25K20 та PIC32MX250F512 від Microchip. Обидва сучасні MCU. Обидва таблиці мають Idd vs тактову швидкість. 8-бітний графік збільшується при 5mA, 32-розрядний - 20mA. Якщо ви подумаєте над цим, 8-бітна операція зробить що-небудь до 8 засувок - 32-бітний зробив би те саме (або еквівалент) 32 засувкам. Це в 4 рази більше засувок, якими потрібно маніпулювати, тому в 4 рази більше типового споживання струму.
Majenko

2
Струм холостого ходу для 32-бітового інтервалу становить від ~ 0,5 мА до 7 мА. Графік 8 біт для струму на холостому ходу вимірюється за шкалою µA і перевищує 7 мкА - лише 4 мкА при роботі при нормальній кімнатній температурі ...!
Маєнко

3
Викопайте кілька таблиць даних і шукайте себе.
Маєнко

2
Це припускаючи, що вся мікросхема - це обробка. Речі потребують часу, який не залежить від швидкості мікросхеми, наприклад, зчитування даних із зовнішніх датчиків тощо. 32-бітний процесор 80 МГц не збирається читати 100 КГц I2C пристрій швидше, ніж 8 МГц 8-бітний процесор.
Majenko

3
Не забувайте про застаріле програмне забезпечення (особливо для систем, що потребують сертифікації) та ознайомлення з розробниками, вибір периферійних оперативної пам’яті / флеш-пам’яті (конструкція мікроконтролера з процесором більш високої продуктивності використовуватиме більше мікросхем для пам’яті; Cortex-M з 256 байтами оперативної пам’яті здається малоймовірним найближчим часом), і вибір пакету / напруги. Хороша відповідь також повинна пояснити, чому 16-бітний ринок не працює краще (і більш сучасні 8-бітні ISA, такі як AVR), і чому 4-бітний ринок, здається, дуже обмежений (годинник і що ще?).
Пол А. Клейтон

2

Розроблені мною програмою UC для комерційних продуктів майже ніколи не обробляли розміри даних, що перевищують 8 біт; тож навіть якби 32-бітні були тією ж ціною, що і 8-бітні, користі все одно не було б. Як сказав хтось інший, ми намагаємось дізнатись все, що знайоме, і ми можемо швидше вибити це. Останній, який я розробив, виявився всіляко підштовхувати PIC16, який я використовував, але це було не через розмір даних. Якщо я буду робити більше подібного, то мені справді слід навчитися ARM.


Я б здогадався, що для більшості додатків з невеликим мікро-мікрофоном найбільший необхідний розмір даних складе 16 біт або, можливо, 24. Більшій програмі не потрібно буде робити багато з речами, що перевищують 8 біт, але їм потрібно щось робити. З іншого боку, майже кожен 8-розрядний мікроконтролер, який коли-небудь робився (якщо не абсолютно кожен), має прапор перенесення, що дозволяє використовувати послідовність операцій для виконання 16-бітового (або навіть більшого).
supercat

2

Я б очікував, що чіпи ARM візьмуть на себе більшість функцій, де щось поводиться як "комп'ютер". З іншого боку, багато 8-бітових мікроконтролерів звикають робити речі, які можна зробити за допомогою відносно простого програмованого логічного пристрою або помірної кількості воріт, але насправді це можна зробити дешевше та / або з меншим поточним малюванням за допомогою простий 8-бітний мікрофон. При розробці складніших додатків часто простіше використовувати 32-розрядний мікро, ніж 8-бітний, але якщо ціль цілі полягає в тому, щоб, наприклад, дивитись і денутувати певний вхід і, якщо він виходить високим, почати виводити 200 імпульси на певному виході з інтервалом 1 мс, потім 100 через інтервали 2 мс, потім 100 на 3 мс, потім пауза на 100 мс, і продовжуйте робити це, поки вхід не знизиться, спроектувати код для цього може бути простішена 8-бітовому мікро, ніж на 32-бітному. Різниця у вартості між 8-бітними та 32-бітовими мікросередовищами може бути недостатньою у багатьох випадках, щоб виправдати витрачені додаткові інженерні зусилля на те, щоб проект "вписався" в 8-бітний мікрофон, але у випадках, коли 32-бітна частина не буде Не економте ніяких інженерних зусиль, немає причин витрачати навіть копійки додатково.


Я погоджуюсь, але зазначаю, що підтримка та знаходження двох інструментальних ланцюгів передбачає власні зусилля.
Скотт Сейдман

2
@ScottSeidman: Правда. З іншого боку, можливо, варто також згадати, що деякі 8-бітні мікрофони можуть починати запуск коду майже відразу при включенні живлення, тоді як 32-бітні мікрофони, які я бачив, займають трохи більше часу.
supercat

Цікаво, чи зможемо ми колись побачити ліцензію ARM на 8-бітних платформах. Є кілька чудових особливостей реалізації ARM, наприклад, можливість просто не тактирувати цілі периферійні пристрої та шини, які повинні змушувати 8-бітні ARMS запускати кільця навколо інших платформ з точки зору потужності потягування. Якщо mfct зробить CMSIS сумісними бібліотеками, я думаю, вони врешті-решт знищуть великих гравців.
Скотт Сейдман

@ScottSeidman: Насправді, те, що я хотів би бачити, - це конструкції, які можуть мати чутливі до часу частини периферійних пристроїв (наприклад, таймери, генератори швидкості передачі тощо) з постійною базою часу, яка не залежить від швидкості процесора. , але я бачив лише мінімальну підтримку такої концепції. Силікону це було б не важко, але я б здогадався, що інструментам синтезу не вистачає засобів для того, щоб робити такі ефекти ефективно.
supercat

@supercat Я не впевнений в інших мікроконтролерах, але PIC32 має концепцію периферійних тактових шин, які можна встановити на різну тактову частоту від основної тактової частоти. Таким чином, ви можете змінити швидкість процесора, наприклад, щоб заощадити енергію, і все одно зберігати однакові годинники PB, щоб вам не довелося перепрограмувати всі свої периферійні швидкості передачі тощо
tcrosley

1

Хоча я погоджуюся, що вартість процесора та споживання електроенергії є головними причинами, я ще не розглядав перерахованих тут питань - це місце на друкованій платі. Для багатьох видів вбудованих систем, таких як, скажімо, електронна шкала для ванної кімнати, немає великої потреби в великій кількості вводу / виводу, немає користі для більшого розміру шини і немає користі для швидшої обробки. Однак євигода для меншого пакету з меншою кількістю штифтів, оскільки це робить компонування та маршрутизацію друкованої плати простішою та часто меншою. Якщо плата може бути спроектована як двошарова дошка, а не 4-шарова дошка, є значна економія витрат, а менший підрахунок штифтів, який часто постачається з 8-бітовими процесорами, як правило, сприяє економії коштів, ніж 32- бітові процесори, які, як правило, мають більше контактів і фізично більші пакети.


Ви розумієте, що це питання на 2 1/2 роки, правда?
Олін Латроп

@Olin Інша точка зору не шкодить.
м.Алін

@OlinLathrop: так, мій 8-бітний процесор / годинник та календар працює добре. :)
Едвард

0

Навіть у 8-бітовому світі, як відомо, нові типи потребують дуже довгих часів, щоб перейти на користь старших типів - див.

У багатьох випадках змін не відбувається, оскільки це не приносить додаткової цінності і пов'язане з витратами на вивчення нової технології, яка ще не виявилася там, щоб залишитися та / або, як очікується, все ще буде рухомою ціллю (що робить це цікаво людям, які хочуть зосередитись на технології MCU, але дратують людей, які хочуть зосередитись на їх застосуванні, а не постійно виправляти та повторно перевіряти виробниче програмне забезпечення, щоб адаптувати цьогорічний урожай ARM!). Для одних компонент, який уже не розробляється, є застарілим, для інших він остаточно стає стабільним , і хоча він може потребувати обхідних шляхів для врослих помилок, він принаймні забезпечує стабільну платформу для них. Потік лави не завжди є антипатернним, яким він є розбитим, - як правило, гори залишаються найгіршими.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.