Використовуйте випадки для зовнішнього АЦП


9

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

Незважаючи на цю щільну інтеграцію, ви все ще можете придбати зовнішні АЦП. Я можу побачити кілька випадків для цього:

  • АЦП потрібно ізолювати від UC.
  • Бітова глибина зразків АЦП повинна бути більшою, ніж АЦП ЦК.
  • Напруга до відчуття далеко не мікроконтролера, і довгі аналогові лінії неприйнятні.
  • Напруга на відчуття знаходиться в суворих умовах, не підходящих для UC.
  • Зовнішній АЦП зразки набагато швидше, ніж АЦП ЦК.
  • Опорне напруга для деяких зразків відрізняється, ніж для інших, вимагаючи декількох штифтів Vref (і, отже, декілька зовнішніх АЦП).
  • У поточному UC недостатньо каналів АЦП, а вартість розміщення нового UC непомірна.
  • Зовнішній АЦП споживає менше енергії, ніж АЦП ЦК (мені знадобиться приклад, щоб повірити).
  • Канали АЦП повинні бути вибіркові одночасно (рідкісний сценарій).
  • Вартість програмування прошивки на час виготовлення переважає вартість дорожчої частини АЦП (навряд чи).
  • На друкованій платі є обмеженість простору, і ніяке ЦК не може вміститися (навряд чи).

Це все добре і добре, але те, що дивується мене, дивно, що зовнішні АЦП, як правило, дещо цінніші, ніж їхні колеги з UC, але при цьому забезпечують еквівалентну функціональність. Наприклад, ви можете придбати частину EFM32Z з 12-бітовим 1 Мс / с АЦП (з внутрішньою посиланням) приблизно за 1 долар США , або ви можете придбати еквівалентний 12-ти бітовий АЦП на 200ksps за приблизно 3,50 долара (ті ж швидкості (ish), відносно однакові показники потужності тощо) і виконати те саме завдання (витяг даних АЦП).

Тоді виникає питання: чи є вагомі причини, що інженер віддасть перевагу зовнішньому АЦП над АЦП ЦК, коли останній може виконувати той же функціонал?


1
Одночасний вибірки є насправді досить поширеним сценарієм у деяких прикладних просторах, наприклад, обробка сигналів.
Jason R

Відповіді:


12

Якщо внутрішній АЦП вашого мікроконтролера виконує завдання, яке вам потрібно, то немає, у зовнішніх АЦП немає необхідності. Але тоді це не те, на кого вони спрямовані.

Ви висвітлили більшість причин зовнішнього АЦП, але є ще кілька, і, на мою думку, це одні з найважливіших причин:

  1. Вам потрібна інша технологія відбору проб - наприклад, внутрішній АЦП є SAR, але вам потрібно зробити Delta Sigma.
  2. Внутрішній АЦП, оскільки він внутрішній і поділяє такий же штамб, що і основний MCU, ніколи не буде на 100% вільним від шуму решти MCU, тому зовнішній зможе зробити наднизький рівень шуму
  3. Мікроконтролер / SoC / FPGA на вибір не має АЦП. Останні два найімовірніші - найпоширеніші SoC і FPGA взагалі не мають АЦП. Так, ви можете отримати ті, що роблять, але багато - ні. Отже, ви додаєте зовнішній.

Для пункту 3 візьміть, наприклад, Raspberry Pi. У ньому взагалі немає АЦП, вам потрібно додати зовнішній, щоб взагалі виконати будь-яку аналогову роботу.


Тепер це цікаво. Що стосується шуму, то замість оплати за отримання зовнішнього АЦП, такий же результат буде досягнутий, отримавши більш високу бітову глибину АЦП та ігноруючи найменш значущі біти вибіркового результату (це, очевидно, передбачає, що додатковий час перетворення з додаткові біти не є фактором, що перешкоджає).
TRISAbits

3
Фактична обробка сигналу може допомогти лише від шуму від процесів, які не залежать від зразків часу (і таким чином сприяють «випадковому» шуму). Значна частина шуму в процесорній системі буде викликана різницею живлення та навантаження на землю, які дещо синхронізовані з процесом вибірки; єдиний спосіб уникнути їх - дозволити АЦП використовувати власні окремі рейки подачі. Зауважте, що повна ізоляція не потрібна, оскільки багато АЦП можуть легко переносити 100 мВ або близько між аналоговим та цифровим VDD / VSS.
supercat

9

Ще кілька причин переваги зовнішнього АЦП:

  1. Багато зовнішніх частин АЦП містять диференційні входи, тоді як вбудовані перетворювачі мікроконтролерів часто не мають. У випадках, коли на входах багато шумів у звичайному режимі, це може бути дуже важливим.

  2. Багато зовнішніх частин АЦП включають ступінь підсилювача перед самим перетворювачем, що дозволяє перетворювачу безпосередньо вимірювати сигнал високого опору. На багатьох мікроконтролерах акт вибірки вхідного сигналу може порушити його. Залежно від характеру вхідного сигналу, це може значно збільшити час збору, необхідний для точних вимірювань.

  3. Навіть якщо внутрішній АЦП шириною дванадцять біт, це, як правило, не означатиме, що він повинен читати точні до однієї частини в 4096. Типовий зовнішній АЦП часто матиме кращі характеристики, ніж внутрішній, навіть якщо обидва мають однакову глибину рекламованого біта.

Інтегрувати АЦП у мікроконтролер досить просто. Інтегрувати хороший АЦП набагато складніше. Вгадайте, що є більш поширеним.


1
АЦП SAR трохи страждають від введення заряду, оскільки миттєво підключення масиву конденсаторів вибірки до входу порушує те, що вимірюється. Якщо джерело вводу не відновиться досить швидко, це призводить до помилки вимірювання. Для більшої роздільної здатності зазвичай потрібна більша внутрішня ємність вибірки. Роздільна здатність Delta-sigma залежить лише від розширення цифрового лічильника. (Хоча хороших специфікацій INL / DNL з високою роздільною здатністю досягти не банально.)
MarkU

@supercat: Я ніколи не розглядав етап підсилювача як частину перетворення. Це відкриває цікаві шляхи вибірки схеми.
TRISAbits

2
@MarkU: У деяких схемах я спостерігав проблему вприскування заряду. Цікаво, що деякі перетворювачі намагаються заряджати вхід до попереднього значення вибірки (від того, який вхід був відібраний останнім), деякі намагаються зарядити його до нуля, і, принаймні, одному довільно («випадково») заряджати його до вищого або менша напруга, яке мені здається дратує. Я не розумію, чому частина зробить останнє; навіть якби довелося заряджати щось, послідовно заряджати до нуля було б краще, ніж заряджати до якогось "випадкового" значення.
supercat

4

Ще одна причина існування деяких зовнішніх АЦП: вони існують набагато довше, ніж мікрофони з внутрішніми АЦП, і розроблені у багатьох продуктах. Можливо, на 20 або 30 років довше. (Напевно, це не стосується частини SOIC, яка пов'язана, хоча це може бути модернізована модифікація, що зменшується, класичної частини)

Якщо АЦП не має зоряної роздільної здатності, точності чи швидкості, але при цьому є преміальна ціна, це може бути причиною.

Навіть для нових конструкцій може бути переважним повторне використання блоків, які працюють добре, а не перепроектування навколо нової частини (навіть якщо отримана інтеграція зменшує вартість BOM). Таке реінжиніринг може бути дорогим; процес затвердження випробувань та регуляторних норм, тим більше.

Тепер, якщо ви починаєте з нуля, а у вибраного мікроконтролера є достатня кількість каналів АЦП, які відповідають вашим вимогам, жодне з перерахованого вище не застосовується.


2

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

Ви маєте рацію, вибирати зовнішній АЦП було б незвично, якби зовнішня версія була абсолютно функціонально еквівалентною. Однак, на мій досвід, мікросхеми з низькою вартістю зазвичай мають досить вразливі АЦП з температурним дрейфом, низьким числом бітів (10 - 12 біт) та шумом від VCC (+/- 20mV в деяких випадках) ... хоча зворотне може бути правдою. .. ви можете покращити звукозаписи, якщо ви перепробовуєте зразки та маєте шум. У наших заходах з розробки продуктів досить рідко базується наш вибір MCU на якості АЦП, присутній в ньому. Зазвичай мова йде більше про ланцюжок інструментів, вартість, наявну мікропрограму тощо. Внутрішні АЦП зазвичай обмежуються не критичними завданнями, такими як зчитування напруги акумулятора.

З різними мікросхемами також можуть виникнути проблеми із спільними таймерами, які потрібно монополізувати для швидкого часу вибірки, але заважати іншим речам MCU (серійні порти програмного забезпечення, ISR тощо), коли вони монополізовані для АЦП.

Також що таке VREF? Якщо ви використовуєте VCC в якості посилання в прошивці, навіть якщо ви відкалібруєте "справжній" VCC, це значення може досить різко коливатися під час операцій. Якщо у вас є бортовий пристрій високого струму (радіо, wifi, MCU тощо) з великим перехідним струмом, VCC може зануритися до 4,8 вольт під час передачі, і якщо ваш зразок трапиться під час цього вікна, і ви наївно перетворюєте 0-1023 Значення читання ADC на напругу з ADC_VAL / 1023 * 5,0 - ви втратили колосальні 200 мВ точності. Або якщо у вас різні режими живлення (USB, бородавка на стіні, акумулятор) - VCC в MCU може змінюватися (особливо з USB). Зовнішні АЦП (навіть з однаковим числом бітів) можуть забезпечити міцний внутрішній струф породи в умовах коливання VCC.

Дозвіл досить важливий. Я думаю, що в реальному світі є деяке використання для 10-12 біт роздільної здатності, але для будь-якого виду реального застосування (виявлення газу, акустичне вимірювання, вимірювання акселерометра, точне вимірювання температури тощо) зазвичай 16-біт мінімальна роздільна здатність для досягнення адекватних характеристик сигналу та шуму. Навіть дуже хороший 32-розрядний MCU, як SAMD Atmel, обмежений 12-бітовими внутрішніми АЦП.

Тремтіння годинника також є проблемою, і також існує деяка невід'ємна неточність, коли для 8-бітових мікросхем потрібно 12-бітове зчитування, і для маніпулювання 12-бітовим значенням потрібно щонайменше 2 тактових цикла, що може бути неправдою із зовнішнім АЦП (оскільки вони можуть мати внутрішні генератори).

Бувають також випадки, коли важлива фізична близькість до датчика та ізоляція від MCU. Деякі дуже чутливі перетворювачі потребують власної кондиціонованої потужності, ізольованих наземних площин та надзвичайно чутливих підсилювальних підсилювальних підсилювачів з пасивними 0,01%.

Інколи є вагомі причини використання внутрішніх АЦП. DMA - одна з причин ... частота вибірки - інша. Легкість перенапруження - ще одне. Взаємодія зовнішніх АЦП з високою швидкістю передачі даних може з'їсти багато цінних мультиплексованих штифтів вводу / виводу та зробити складніший дизайн. Крім того, багато використовуваних нами АЦП засновані на I2C, тому швидкість вибірки дуже обмежена швидкістю шини I2C. Навіть зі швидкістю 1 біт / сек 16-бітове зчитування займає болісно тривалий час.


Це відмінне розуміння! Оскільки роки минули (і мій досвід зростав), я повинен був би погодитися: внутрішні АЦП MCU можуть бути досить в'ялими.
TRISAbits
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.