Принцип работы сигма-дельта АЦП (модулятор AD7401A)
Содержание
- Входной каскад на переключаемых конденсаторах
- Физика такта: двухфазный цикл и динамика заряда
- Импульсно-кодовая плотность (PDM) и демодуляция
- Пошаговый расчёт и таблица переходов
Микросхема AD7401A представляет собой изолированный сигма-дельта ($\Sigma$-$\Delta$) модулятор 2-го порядка, преобразующий аналоговое дифференциальное напряжение с токоизмерительного шунта в высокочастотный однобитный цифровой поток данных (PDM) с тактовой частотой 10 МГц.
1. Входной каскад на переключаемых конденсаторах (Switched Capacitor)
Входной каскад AD7401A не использует резистивный делитель. Оцифровка дифференциального напряжения $V_{IN} = V_{IN+} - V_{IN-}$ построена на дискретном переносе порций заряда ключами и конденсаторами.
Емкостные элементы тракта
- $C_S$ (конденсатор выборки входа): малая ёмкость (2–4 пФ), периодически подключаемая ключами то к измерительному шунту, то ко входу интегратора.
- $C_{REF}$ (конденсатор выборки опорного напряжения ЦАП): калиброванная ёмкость (2–4 пФ), формирующая эталонный квант заряда $\pm Q_{REF}$.
- $C_{INT}$ (интегрирующий конденсатор): ёмкость в цепи отрицательной обратной связи интегратора, существенно превосходящая по объёму ёмкости выборки ($C_{INT} \gg C_S,; C_{REF}$).
- $R_{ON}$: активное сопротивление открытых КМОП-ключей коммутатора (~50 Ом).
2. Физика такта: двухфазный цикл и динамика заряда
Тактовая частота MCLK = 10 МГц (период $T = 100~\text{нс}$) делится внутренним генератором на два равных неперекрывающихся полупериода длительностью по 50 нс:
Полупериод Φ1 (0…50 нс) — заряд C_S на 100%
- Ключи подключают $C_S$ напрямую к выводам шунта. Интегратор изолирован.
- Постоянная времени цепи заряда:
$$\tau = R_{ON} \cdot C_S \approx 50~\text{Ом} \times 3~\text{пФ} = 150~\text{пс}$$
- За полупериод 50 нс проходит более 300 τ ($50~\text{нс} / 150~\text{пс} \approx 333$). Конденсатор $C_S$ гарантированно успевает зарядиться до мгновенного напряжения шунта на 100% (с точностью до долей микровольта):
$$Q_{IN}[n] = C_S \cdot V_{IN}[n]$$
- Это исключает влияние нелинейности сопротивления ключей, температуры и высокочастотных флуктуаций при коммутации.
Полупериод Φ2 (50…100 нс) — интегрирование и инжекция опоры
- Ключи отключают $C_S$ от шунта и сбрасывают заряд $Q_{IN}$ в узел суммирования интегратора.
- Одновременно и безусловно 1-битный ЦАП заряжает свой конденсатор $C_{REF}$ на 100% до эталонного напряжения $\pm V_{REF}$ и впрыскивает калиброванный опорный заряд:
$$Q_{REF} = C_{REF} \cdot (\pm V_{REF})$$
Знак определяется решением компаратора на предыдущем такте (отрицательный $-Q_{REF}$, если потенциал интегратора был $\ge 0$; положительный $+Q_{REF}$, если потенциал был $< 0$).
Важнейший физический факт: интегрирующий конденсатор $C_{INT}$ никогда не заряжается до уровня $V_{REF}$! Так как $C_{INT} \gg C_{REF}$ (обычно в 5–10 раз), суммарный заряд изменяет потенциал интегратора лишь на малое дискретное приращение ($\Delta V$):
$$\Delta V_{INT}[n] = \frac{C_S}{C_{INT}} \cdot V_{IN}[n] \pm \frac{C_{REF}}{C_{INT}} \cdot V_{REF}$$
Шаг напряжения составляет всего десятки милливольт ($\pm 30\ldots50$ мВ). Интегратор непрерывно удерживается контуром в узком диапазоне около нулевого порога.
- В конце фазы Φ2 компаратор стробирует итоговый знак $V(C_{INT})$ и защёлкивает его
в выходной D-триггер:
- $V(C_{INT}) \ge 0$ → бит MDAT = 1 (на след. такте компенсация $-Q_{REF}$).
- $V(C_{INT}) < 0$ → бит MDAT = 0 (на след. такте компенсация $+Q_{REF}$).
3. Импульсно-кодовая плотность (PDM) и демодуляция
На линии MDAT передаётся не параллельный двоичный код, а плотность единиц
(Pulse-Density Modulation):
$$D = \frac{N_{ones}}{N_{total}} = \frac{V_{IN}}{2 \cdot V_{REF}} + 0.5$$
| Напряжение на шунте ($V_{IN}$) | Поведение схемы балансировки заряда | Плотность единиц (D) | Выходной поток MDAT |
|---|---|---|---|
| 0 В (ток нулевой) | Входной заряд нулевой. Знак компенсации $\pm Q_{REF}$ инвертируется на каждом такте. | 50.0 % | 1 0 1 0 1 0 1 0... |
| +200 мВ (макс. ток +) | Большой приток заряда. Контур почти на каждом такте инжектирует $-Q_{REF}$. | ≈ 81.25 % | 1 1 1 0 1 1 1 1... |
| -200 мВ (макс. ток -) | Убыль заряда. Контур почти непрерывно подкачивает заряд $+Q_{REF}$. | ≈ 18.75 % | 0 0 0 1 0 0 0 0... |
Параметры цифрового фильтра Sinc³ в ПЛИС
- Децимация (R = 128): фильтр вычисляет 16-битный параллельный код тока каждые $128 \times 100~\text{нс} = 12.8~\text{мкс}$ (частота $78.125~\text{кГц}$).
- Групповая задержка конвейера:
$$\tau_{grp} = \frac{3 \cdot R}{2 \cdot f_{MCLK}} = \frac{3 \cdot 128}{2 \cdot 10~\text{МГц}} = 19.2~\text{мкс}$$
4. Пошаговый расчёт и таблица переходов
Математическая модель одного такта
Пусть на каждом такте $n$: $V_{IN}$ — постоянное входное напряжение (для примера возьмём $V_{IN} > 0$).
- На шаге $\Phi_1$ конденсатор $C_S$ отбирает заряд:
$$Q_{IN} = C_S \cdot V_{IN}$$
-
На шаге $\Phi_2$ в интегратор вводится опорный заряд $Q_{REF}$, полярность которого зависит от предыдущего бита $b[n-1]$:
- Если $b[n-1] = 1$ (накопитель был в плюсе) → вводим минус $(-Q_{REF})$.
- Если $b[n-1] = 0$ (накопитель был в минусе) → вводим плюс $(+Q_{REF})$.
-
Изменение напряжения на интеграторе $C_{INT}$ за такт $n$:
$$\Delta V_{INT}[n] = \frac{Q_{IN} - (2 \cdot b[n-1] - 1) \cdot Q_{REF}}{C_{INT}}$$
- Новое напряжение на интеграторе:
$$V_{INT}[n] = V_{INT}[n-1] + \Delta V_{INT}[n]$$
- В конце фазы $\Phi_2$ компаратор стробирует $V_{INT}[n]$ и формирует новый бит
$b[n]$:
- Если $V_{INT}[n] \ge 0$ → $b[n] = 1$.
- Если $V_{INT}[n] < 0$ → $b[n] = 0$.
Пошаговая таблица (численный пример)
Примем для наглядности нормированные величины:
- Шаг от входа: $\Delta V_{IN} = +0.4\text{ В}$ (положительный ток).
- Шаг от опоры: $\Delta V_{REF} = 1.0\text{ В}$.
- Начальное состояние перед тактом 1: $V_{INT}[0] = +0.1\text{ В}$ (предыдущий бит $b[0] = 1$).
| Такт $n$ | Бит $b[n-1]$ | Действие опоры в фазе $\Phi_2$ | Входной заряд $\Delta V_{IN}$ | Приращение $\Delta V_{INT}[n]$ | Напряжение $V_{INT}[n]$ к концу $\Phi_2$ | Решение компаратора ($V \ge 0$?) | Бит $b[n]$ |
|---|---|---|---|---|---|---|---|
| 0 | — | — | — | — | $+0.10\text{ В}$ | $0.10 \ge 0$ | 1 |
| 1 | 1 | Впрыск $-1.0\text{ В}$ | $+0.4\text{ В}$ | $+0.4 - 1.0 = -0.6\text{ В}$ | $+0.1 - 0.6 = -0.50\text{ В}$ | $-0.50 < 0$ | 0 |
| 2 | 0 | Впрыск $+1.0\text{ В}$ | $+0.4\text{ В}$ | $+0.4 + 1.0 = +1.4\text{ В}$ | $-0.5 + 1.4 = +0.90\text{ В}$ | $+0.90 \ge 0$ | 1 |
| 3 | 1 | Впрыск $-1.0\text{ В}$ | $+0.4\text{ В}$ | $+0.4 - 1.0 = -0.6\text{ В}$ | $+0.9 - 0.6 = +0.30\text{ В}$ | $+0.30 \ge 0$ | 1 |
| 4 | 1 | Впрыск $-1.0\text{ В}$ | $+0.4\text{ В}$ | $+0.4 - 1.0 = -0.6\text{ В}$ | $+0.3 - 0.6 = -0.30\text{ В}$ | $-0.30 < 0$ | 0 |
| 5 | 0 | Впрыск $+1.0\text{ В}$ | $+0.4\text{ В}$ | $+0.4 + 1.0 = +1.4\text{ В}$ | $-0.3 + 1.4 = +1.10\text{ В}$ | $+1.10 \ge 0$ | 1 |
| 6 | 1 | Впрыск $-1.0\text{ В}$ | $+0.4\text{ В}$ | $+0.4 - 1.0 = -0.6\text{ В}$ | $+1.1 - 0.6 = +0.50\text{ В}$ | $+0.50 \ge 0$ | 1 |
| 7 | 1 | Впрыск $-1.0\text{ В}$ | $+0.4\text{ В}$ | $+0.4 - 1.0 = -0.6\text{ В}$ | $+0.5 - 0.6 = -0.10\text{ В}$ | $-0.10 < 0$ | 0 |
Что показывает таблица
Прямая причинно-следственная связь:
- Переход от такта 2 к такту 3: в конце такта 2 получилось $V_{INT} = +0.90\text{ В}$, поэтому выставился бит $b[2] = 1$. Из-за этого на такте 3 опора обязана вычесть $1.0\text{ В}$.
- Переход от такта 3 к такту 4: в конце такта 3 напряжение осталось положительным ($+0.30\text{ В}$), поэтому снова выставился бит $b[3] = 1$, и опора на такте 4 снова вычитает $1.0\text{ В}$.
- И только когда напряжение уходит в минус ($-0.30\text{ В}$ в конце такта 4), появляется бит $b[4] = 0$, заставляя опору на такте 5 сработать «в плюс» ($+1.0\text{ В}$).
Как кодируется входной сигнал:
Последовательность бит на выходе: 1 0 1 1 0 1 1 0 …
На каждые 10 тактов приходится 7 единиц (70%), что строго соответствует среднему заряду:
$$D = 0.5 + \frac{0.4}{2 \cdot 1.0} = 0.5 + 0.2 = 0.70 \text{ (или 70%)}$$
Документация аппаратного тракта сбора данных • Zynq-7000 PL / AD7401A