клас ADCAll – доступ до всіх каналів ADC¶
ADCAll відкриває доступ до кожного каналу ADC на MCU через єдиний об’єкт – як до зовнішніх виводів аналогового введення, так і до внутрішніх каналів для температури кристала, опорного напруги 1,21 В та VBAT. Це корисно для моніторингу шини живлення MCU та вбудованих датчиків без необхідності створювати окремий екземпляр ADC для кожного виводу.
Приклад:
import pyb
# 12-bit resolution, internal channels only (temp + VBAT + VREF).
adcall = pyb.ADCAll(12, 0x70000)
temp = adcall.read_core_temp()
vbat = adcall.read_core_vbat()
vref = adcall.read_core_vref()
vdda = adcall.read_vref()
Конструктори¶
- class pyb.ADCAll(resolution: int, mask: int = 0xffffffff)¶
Забезпечує одночасний доступ до кожного каналу ADC на MCU, включаючи внутрішні канали для температури кристала, внутрішнього опорного напруги 1,21 В та
VBAT. Побудова цього об’єкта перемикає всі замасковані зовнішні виводи ADC у режим аналогового введення.resolution– роздільна здатність АЦП-перетворення в бітах (зазвичай8,10або12).mask– 32-бітна маска, що вибирає, які канали увімкнути; бітNвмикає каналN. За замовчуванням0xffffffff(всі канали). Внутрішні канали знаходяться на бітах16(температура),17(VBAT) і18(VREF), тому щоб увімкнути лише внутрішні канали, передайте0x70000.
Вбудований датчик температури відкалібрований на заводі і точний приблизно до ±1 °C, але він вимірює температуру кристала – яка зазвичай на десятки градусів вища за температуру навколишнього середовища, коли MCU активний. Показання є значущими як індикатор температури навколишнього середовища лише для щойно увімкненої плати.
Попередження
Напруга аналогових входів ніколи не повинна перевищувати фактичну напругу живлення.
Методи¶
- read_channel(channel: int) int¶
Зчитати вказаний канал ADC. Зовнішні канали (
0–15) повертають незмасштабовані сирі значення з налаштованою роздільною здатністю; внутрішні канали (16–18) також повертають сирі значення, але наведені нижче спеціальні допоміжні методи перетворюють їх у напруги.
- read_core_temp() float¶
Повернути температуру кристала в градусах Цельсія, обчислену з внутрішнього каналу температури та заводських калібрувальних значень, збережених у MCU.
- read_core_vbat() float¶
Повернути напругу резервної батареї у вольтах. Показання знімається через вбудований дільник напруги (тому простір не обмежує вхідний діапазон ADC) і масштабується назад до фактичної напруги батареї. Дільник активний лише під час перетворення ADC, тому споживання в режимі очікування від резервної батареї є незначним.
- read_core_vref() float¶
Повернути внутрішню опорну напругу 1,21 В (номінальне значення) у вольтах, виміряну відносно напруги живлення MCU як опорного сигналу ADC. Це сирий результат перетворення.
- read_vref() float¶
Повернути напругу живлення MCU у вольтах. Обчислюється шляхом вимірювання внутрішньої опорної напруги та зворотного масштабування з використанням її заводського калібрувального значення. При нормальному рівні 3,3 В показання буде близьким до
3.3. MCU продовжує працювати – а перетворення ADC залишаються значущими – при напрузі живлення від 2 В, за умови дотримання відповідних налаштувань тактової частоти, швидкості доступу до флеш-пам’яті та режиму програмування.