ai: задание дополнено ЦАП на лестнице R-2R (схема, веса пинов, таблица кодов, оценка реальной разрядности); задание B4, баллы 10->12
This commit is contained in:
@@ -119,6 +119,48 @@ GP15 ──[R1 1к]──┬──[R2 1к]──┬──► к схеме
|
||||
|
||||
---
|
||||
|
||||
## ЦАП на лестнице R-2R
|
||||
|
||||
При `B > 1` генератор выводит код **параллельно по нескольким пинам** —
|
||||
это цифро-аналоговый преобразователь, который ты собираешь снаружи.
|
||||
Простейший вариант — лестница R-2R:
|
||||
|
||||
```
|
||||
GP15 ──[R]──┬──[R]──┬──[R]──┬─ ... ─┬──[R]──┬──► выход
|
||||
│ │ │ │ │
|
||||
[2R] [2R] [2R] [2R] [2R]
|
||||
│ │ │ │ │
|
||||
GND GND GND GND GND
|
||||
|
||||
R = 10 кОм, 2R = 20 кОм (оба из ряда E24)
|
||||
8 бит: 7 резисторов R + 9 резисторов 2R
|
||||
```
|
||||
|
||||
Каждый узел делит напряжение ровно вдвое, поэтому вклад пина падает
|
||||
вдвое от старшего к младшему:
|
||||
|
||||
| Пин | Вес | Доля шкалы |
|
||||
|---|---|---|
|
||||
| GP15 (MSB) | 128 | 50 % |
|
||||
| GP14 | 64 | 25 % |
|
||||
| GP13 | 32 | 12,5 % |
|
||||
| GP12 | 16 | 6,25 % |
|
||||
| GP11 | 8 | 3,125 % |
|
||||
| GP10 | 4 | 1,56 % |
|
||||
| GP9 | 2 | 0,78 % |
|
||||
| GP8 (LSB) | 1 | 0,39 % |
|
||||
|
||||
Выход: `U = U_пит · код / 256` (при питании 3,3 В шаг ≈ 13 мВ).
|
||||
|
||||
**Про точность.** Обычные резисторы 5 % дают надёжно 3–4 бита, 1 % —
|
||||
5–6 бит, для всех восьми нужны 0,1 %. Сколько получилось у тебя —
|
||||
измеряешь в задании **B4**.
|
||||
|
||||
Собранную лестницу подключай к АЦП **через буфер-повторитель на ОУ**:
|
||||
выходное сопротивление лестницы ≈ R = 10 кОм, без буфера шкала просядет.
|
||||
|
||||
Подробности — в `task.md`, §2.6 и задание B4.
|
||||
|
||||
## Порядок сдачи
|
||||
|
||||
1. Собрать и откалибровать стенд (часть A).
|
||||
|
||||
Binary file not shown.
@@ -103,6 +103,80 @@ K(f) = 1 / √(1 + (f/f_c)²), f_c = 1/(2π·R·C)
|
||||
наклон за f_c: −20 дБ/дек
|
||||
```
|
||||
|
||||
### 2.6. Многобитный вывод — это и есть ЦАП (лестница R-2R)
|
||||
|
||||
Пока `B = 1`, генератор выдаёт один бит: либо 0, либо 1. Дробную точность
|
||||
даёт дельта-сигма (усреднение во времени). Но при `B > 1` вывод идёт
|
||||
**параллельно по нескольким пинам**, и это уже настоящий цифро-аналоговый
|
||||
преобразователь — только его надо собрать снаружи.
|
||||
|
||||
Простейший вариант — **лестница R-2R**:
|
||||
|
||||
```
|
||||
R R R R
|
||||
GP15(MSB) ──┴──┬──2R──┴──┬──2R──┴── ... ──┬──► выход
|
||||
│ │ │
|
||||
2R 2R 2R
|
||||
│ │ │
|
||||
GND GND GND
|
||||
(GP15 — старший бит, дальше по убыванию до GP8)
|
||||
```
|
||||
|
||||
Почему работает: каждый узел лестницы делит напряжение **ровно вдвое**,
|
||||
поэтому вклад пина в выход падает вдвое от старшего к младшему:
|
||||
|
||||
| Пин | Вес в единицах младшего бита | Доля шкалы |
|
||||
|---|---|---|
|
||||
| GP15 (MSB) | 128 | 50 % |
|
||||
| GP14 | 64 | 25 % |
|
||||
| GP13 | 32 | 12,5 % |
|
||||
| GP12 | 16 | 6,25 % |
|
||||
| GP11 | 8 | 3,125 % |
|
||||
| GP10 | 4 | 1,5625 % |
|
||||
| GP9 | 2 | 0,781 % |
|
||||
| GP8 (LSB) | 1 | 0,391 % |
|
||||
|
||||
То есть код `1000 0000` (единица только на GP15) даёт половину шкалы,
|
||||
`0100 0000` — четверть, и так далее. Отсюда `U_вых = U_пит · код / 256`.
|
||||
|
||||
**Что важно для макета:**
|
||||
|
||||
- **Номиналы.** Нужны резисторы R и 2R, причём в 2 раза точно. Удобно
|
||||
взять **R = 10 кОм, 2R = 20 кОм** (оба есть в ряду E24). Понадобится
|
||||
7 резисторов R и 9 резисторов 2R для восьми бит.
|
||||
- **Точность.** Чтобы не терять биты, допуск резисторов должен быть
|
||||
меньше половины младшего бита:
|
||||
|
||||
| Биты | Шаг шкалы | Нужен допуск лучше |
|
||||
|---|---|---|
|
||||
| 3 | 12,5 % | 6 % |
|
||||
| 4 | 6,25 % | 3 % |
|
||||
| 5 | 3,1 % | 1,5 % |
|
||||
| 6 | 1,56 % | 0,8 % |
|
||||
| 8 | 0,39 % | 0,2 % |
|
||||
|
||||
Обычные резисторы 5 % дают надёжно **3–4 бита**, 1 % — **5–6 бит**.
|
||||
Для восьми бит нужны 0,1 % или калибровка каждого уровня. Это хороший
|
||||
повод обсудить со студентами, почему настоящие ЦАП стоят дорого.
|
||||
|
||||
- **Выходное сопротивление** лестницы ≈ R. При R = 10 кОм это высокая
|
||||
нагрузка для входа АЦП и заметная погрешность при подключении
|
||||
нагрузки. Ставят **буфер на ОУ** (повторитель) между лестницей и АЦП.
|
||||
Он же убирает влияние сопротивления нагрузки на шкалу.
|
||||
|
||||
- **Быстродействие.** Паразитная ёмкость макета (~10–20 пФ) вместе с
|
||||
R = 10 кОм даёт срез в сотни кГц. Для генератора до ~30 кГц этого
|
||||
хватает; на высоких частотах берут R = 1 кОм.
|
||||
|
||||
- **Разрядность пинов.** Если `B < 8`, старшие биты всё равно на GP15 —
|
||||
то есть при `B = 4` работают GP15…GP12, и они занимают **старшие**
|
||||
входы лестницы. Выход при этом использует всю шкалу (выравнивание
|
||||
по старшему биту, см. §2.2).
|
||||
|
||||
> **Ожидаемый результат.** При питании 3,3 В и 8 битах шаг ≈ 13 мВ.
|
||||
> Студент может ввести код прямо в отчёт и сравнить с расчётным
|
||||
> напряжением — это и есть «заглянуть внутрь ЦАП».
|
||||
|
||||
---
|
||||
|
||||
## 3. Часть A. Сборка и настройка стенда
|
||||
@@ -224,9 +298,61 @@ python 02-izmerenie-achh.py --port /dev/ttyACM0 \
|
||||
**Контрольный вопрос:** почему реальная АЧХ за `f_c` уходит круче
|
||||
−20 дБ/дек? (подсказка: паразитные параметры, вход ADC)
|
||||
|
||||
### Задание B4 (0,5 ч). Сравнение и отчёт
|
||||
### Задание B4 (1 ч). Собрать ЦАП на лестнице R-2R
|
||||
|
||||
Свести результаты трёх схем в таблицу:
|
||||
Это самая «железная» часть: вы собираете настоящий цифро-аналоговый
|
||||
преобразователь и убеждаетесь, что многобитный вывод — это он и есть.
|
||||
|
||||
**Схема** (8 бит, MSB на GP15; при `B=4` работают GP15…GP12):
|
||||
|
||||
```
|
||||
GP15 ──[R]──┬──[R]──┬──[R]──┬─ ... ─┬──[R]──┬──► выход (в АЦП)
|
||||
│ │ │ │ │
|
||||
[2R] [2R] [2R] [2R] [2R]
|
||||
│ │ │ │ │
|
||||
GND GND GND GND GND
|
||||
|
||||
R = 10 кОм, 2R = 20 кОм (оба из ряда E24)
|
||||
```
|
||||
|
||||
**Порядок:**
|
||||
|
||||
1. Собрать лестницу на макетной плате. При 8 битах нужно
|
||||
**7 резисторов R и 9 резисторов 2R**.
|
||||
2. Поставить **буфер-повторитель на ОУ** между выходом лестницы и АЦП
|
||||
(иначе выходное сопротивление ≈ R исказит измерения).
|
||||
3. Проверить таблицу кодов. Подать на генератор прямоугольник с малой
|
||||
скважностью или использовать режим `D`, чтобы задавать отдельные коды,
|
||||
и измерить выход мультиметром:
|
||||
|
||||
| Код | Ожидаемое U_вых (при 3,3 В) | Измерено |
|
||||
|---|---|---|
|
||||
| `0000 0001` (GP8) | 13 мВ | |
|
||||
| `0000 0010` (GP9) | 26 мВ | |
|
||||
| `0000 0100` (GP10) | 52 мВ | |
|
||||
| `1000 0000` (GP15) | 1,65 В | |
|
||||
| `1111 1111` | 3,28 В | |
|
||||
|
||||
4. **Оценить реальную разрядность.** Сравнить шаг с разбросом: если
|
||||
соседние коды неразличимы, бит потерян. Записать, сколько бит реально
|
||||
работает на ваших резисторах.
|
||||
|
||||
5. **Проверить форму сигнала.** Вернуть `B 8`, `W S`, подать синус и
|
||||
посмотреть выход лестницы осциллографом: сигнал будет ступенчатым —
|
||||
видно квантование по уровням. Это и есть работа ЦАП.
|
||||
|
||||
**Контрольные вопросы:**
|
||||
|
||||
- Почему в лестнице R-2R нужны ровно два номинала, а не восемь разных
|
||||
сопротивлений (по одному на каждый бит)?
|
||||
- Что произойдёт с точностью, если один из резисторов 2R окажется
|
||||
20,5 кОм вместо 20 кОм?
|
||||
- Почему выходное сопротивление лестницы равно R и как это влияет на
|
||||
измерения через АЦП?
|
||||
|
||||
### Задание B5 (0,5 ч). Сравнение и отчёт
|
||||
|
||||
Свести результаты четырёх схем в таблицу:
|
||||
|
||||
| Схема | f_c расчёт | f_c опыт | Расхождение | Наклон расчёт | Наклон опыт |
|
||||
|---|---|---|---|---|---|
|
||||
@@ -234,11 +360,14 @@ python 02-izmerenie-achh.py --port /dev/ttyACM0 \
|
||||
| Дифференциатор | | | | +20 дБ/дек | |
|
||||
| RC-фильтр | | | | −20 дБ/дек | |
|
||||
|
||||
Отдельно — таблица кодов ЦАП (задание B4) и вывод о реальной разрядности.
|
||||
|
||||
Сделать выводы:
|
||||
|
||||
- какой разброс дали допуски компонентов;
|
||||
- где опыт расходится с расчётом сильнее всего и почему;
|
||||
- какую роль сыграла калибровка генератора (задание A2).
|
||||
- какую роль сыграла калибровка генератора (задание A2);
|
||||
- сколько бит реально дал самодельный ЦАП и почему не все восемь.
|
||||
|
||||
---
|
||||
|
||||
@@ -246,13 +375,15 @@ python 02-izmerenie-achh.py --port /dev/ttyACM0 \
|
||||
|
||||
Отчёт содержит:
|
||||
|
||||
1. Схемы: ФНЧ стенда, интегратор, дифференциатор, RC-фильтр.
|
||||
1. Схемы: ФНЧ стенда, интегратор, дифференциатор, RC-фильтр,
|
||||
**лестница R-2R**.
|
||||
2. Настройки генератора из `I` (включая `CPC` после калибровки).
|
||||
3. Осциллограммы: синус с генератора, пила интегратора, импульсы
|
||||
дифференциатора.
|
||||
дифференциатора, **ступенчатый синус с выхода ЦАП**.
|
||||
4. Три графика АЧХ с наложенными расчётными кривыми.
|
||||
5. Итоговую таблицу из задания B4.
|
||||
6. Выводы по расхождениям.
|
||||
5. **Таблицу кодов ЦАП** (задание B4) с расчётом и измерением.
|
||||
6. Итоговую таблицу из задания B5.
|
||||
7. Выводы по расхождениям и о реальной разрядности ЦАП.
|
||||
|
||||
| Задание | Баллы |
|
||||
|---|---|
|
||||
@@ -262,10 +393,17 @@ python 02-izmerenie-achh.py --port /dev/ttyACM0 \
|
||||
| B1. Интегратор | 2,0 |
|
||||
| B2. Дифференциатор | 2,0 |
|
||||
| B3. RC-фильтр | 1,0 |
|
||||
| B4. Сводка и выводы | 1,0 |
|
||||
| **Итого** | **10** |
|
||||
| B4. ЦАП на R-2R | 2,0 |
|
||||
| B5. Сводка и выводы | 1,0 |
|
||||
| **Итого** | **12** |
|
||||
|
||||
Зачёт — при **6 и более** баллах.
|
||||
Зачёт — при **7 и более** баллах (из 12).
|
||||
|
||||
> Почему заданий стало больше. Сборка ЦАП — это отдельная практическая
|
||||
> работа, которая выросла из «многобитного вывода»: студент своими руками
|
||||
> делает преобразователь, без которого работа генератора остаётся
|
||||
> непонятной. Если времени мало — задание B4 можно вынести в СРС
|
||||
> (собрать дома и принести измерения).
|
||||
|
||||
---
|
||||
|
||||
@@ -284,7 +422,14 @@ python 02-izmerenie-achh.py --port /dev/ttyACM0 \
|
||||
резистора утечки её нельзя реализовать?
|
||||
6. Как по АЧХ отличить идеальный интегратор от апериодического звена?
|
||||
7. Почему наклон АЧХ звена первого порядка равен −20 дБ/дек?
|
||||
8. Как допуски R и C влияют на `f_c` и что даёт анализ Monte Carlo?
|
||||
8. Как допуски R и C влияют на `f_c`?
|
||||
|
||||
**По ЦАП (задание B4):**
|
||||
|
||||
9. Почему в лестнице R-2R достаточно двух номиналов резисторов?
|
||||
10. Как связан код на пинах с выходным напряжением ЦАП?
|
||||
11. Почему самодельный ЦАП на резисторах 5 % не даёт все 8 бит?
|
||||
12. Зачем между лестницей и АЦП ставят буфер на ОУ?
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user